@visactor/vchart 2.1.2-alpha.9 → 2.1.3-alpha.0

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/mark/group.js CHANGED
@@ -65,7 +65,8 @@ class GroupMark extends base_mark_1.BaseMark {
65
65
  const newAttrs = this._getAttrsFromConfig(style);
66
66
  if (this._product.context.finalAttrs = newAttrs, this._product.context.diffState === interface_1.DiffState.update) {
67
67
  const hasAnimation = this.hasAnimation(), diffAttrs = (0, mark_1.getDiffAttributesOfGraphic)(this._product, newAttrs);
68
- this._product.context.diffAttrs = diffAttrs, this.hasAnimationByState(this._product.context.animationState) || (hasAnimation ? this._product.setAttributesAndPreventAnimate(diffAttrs) : this._product.setAttributes(diffAttrs));
68
+ this._product.context.diffAttrs = diffAttrs, this.hasAnimationByState(this._product.context.animationState) || (hasAnimation ? (this._product.setAttributesAndPreventAnimate(diffAttrs),
69
+ this._commitPreventedAnimationStaticAttrs(this._product, diffAttrs)) : this._product.setAttributes(diffAttrs));
69
70
  } else this._product.setAttributes(newAttrs);
70
71
  this.needClear = !0;
71
72
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { Maybe } from '../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { log, warn } from '../util/debug';\nimport type { IGroupMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport {\n DiffState,\n type AnimationStateValues,\n type IGroupMark,\n type IMark,\n type IMarkGraphic,\n type MarkType\n} from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { type IMarkCompileOption } from '../compile/mark';\nimport type { IGroup, IGroupGraphicAttribute } from '@visactor/vrender-core';\nimport { registerGroup } from '@visactor/vrender-kits/register/register-group';\nimport { registerShadowRoot } from '@visactor/vrender-kits/register/register-shadowRoot';\nimport { isNil } from '@visactor/vutils';\nimport { traverseGroupMark } from '../compile/util';\nimport { getDiffAttributesOfGraphic } from '../util/mark';\n\nexport class GroupMark extends BaseMark<IGroupMarkSpec> implements IGroupMark {\n static readonly type = MarkTypeEnum.group;\n readonly type = GroupMark.type;\n protected _marks: IMark[] = [];\n getMarks(): IMark[] {\n return this._marks;\n }\n\n protected _diffState = DiffState.enter;\n protected declare _product: Maybe<IGroup>;\n declare getProduct: () => Maybe<IGroup>;\n\n protected isMarkExist(mark: IMark): boolean {\n return this._marks.find(m => m.id === mark.id) !== undefined;\n }\n\n addMark(mark: IMark): boolean {\n if (this.isMarkExist(mark)) {\n warn('Mark already exists, add mark failed.');\n return false;\n }\n\n this._marks.push(mark);\n return true;\n }\n\n removeMark(mark: IMark): boolean {\n const index = this._marks.findIndex(m => m.id === mark.id || m.name === mark.name);\n if (index === -1) {\n warn('Mark does not exists, removeMark failed.');\n return false;\n }\n this._marks.splice(index, 1);\n return true;\n }\n\n getMarkInType(type: MarkType) {\n return this._marks.filter(m => m.type === type);\n }\n\n getMarkInId(id: number) {\n return this._marks.find(m => m.id === id);\n }\n\n getMarkInUserId(id: string | number) {\n let result: IMark | undefined;\n traverseGroupMark(\n this,\n m => {\n result = m;\n },\n m => m.getUserId() === id,\n null,\n true\n );\n\n return result;\n }\n\n getMarkInName(name: string) {\n return this._marks.filter(m => m.name === name);\n }\n\n protected _compileProduct(option?: IMarkCompileOption): void {\n // 编译自身\n super._compileProduct(option);\n\n // 设置zIndex\n // this._product.configure({\n // zIndex: this._markConfig.zIndex\n // });\n\n // 编译子元素\n this.getMarks().forEach(mark => {\n mark.compile({ group: this._product });\n });\n }\n\n protected _getAttrsFromConfig(attrs: IGroupGraphicAttribute = {}) {\n const configAttrs = super._getAttrsFromConfig(attrs);\n\n if (!isNil(this._markConfig.interactive)) {\n configAttrs.pickable = this._markConfig.interactive;\n }\n return attrs;\n }\n\n getGraphics(): IMarkGraphic[] {\n return [this._product as unknown as IMarkGraphic];\n }\n\n renderInner() {\n if (!this._product) {\n return;\n }\n\n const style = this._simpleStyle ?? this.getAttributesOfState({});\n\n this._product.context = {\n ...this._product.context,\n ...this._getCommonContext(),\n diffState: this._diffState\n };\n this._setAnimationState(this._product as unknown as IMarkGraphic);\n const newAttrs = this._getAttrsFromConfig(style);\n this._product.context.finalAttrs = newAttrs;\n\n // TODO: 需要优化,现在group mark 走了一些特殊逻辑\n if (this._product.context.diffState === DiffState.update) {\n const hasAnimation = this.hasAnimation();\n const diffAttrs = getDiffAttributesOfGraphic(this._product as unknown as IMarkGraphic, newAttrs);\n this._product.context.diffAttrs = diffAttrs;\n\n if (!this.hasAnimationByState(this._product.context.animationState)) {\n hasAnimation ? this._product.setAttributesAndPreventAnimate(diffAttrs) : this._product.setAttributes(diffAttrs);\n }\n } else {\n this._product.setAttributes(newAttrs);\n }\n\n this.needClear = true;\n }\n\n clearExitGraphics() {\n // group 暂时不需要clear元素,完成首次渲染后 将状态设置为update\n this._diffState = DiffState.update;\n }\n\n render(): void {\n if (this._isCommited) {\n log(`render mark: ${this.getProductId()}, type is ${this.type}`);\n this.renderInner();\n this.uncommit();\n }\n\n this.getMarks().forEach(mark => {\n mark.render();\n });\n }\n\n release() {\n super.release();\n this.removeProduct(true);\n }\n}\n\nexport const registerGroupMark = () => {\n registerShadowRoot();\n registerGroup();\n Factory.registerMark(GroupMark.type, GroupMark);\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { Maybe } from '../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { log, warn } from '../util/debug';\nimport type { IGroupMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport {\n DiffState,\n type AnimationStateValues,\n type IGroupMark,\n type IMark,\n type IMarkGraphic,\n type MarkType\n} from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { type IMarkCompileOption } from '../compile/mark';\nimport type { IGroup, IGroupGraphicAttribute } from '@visactor/vrender-core';\nimport { registerGroup } from '@visactor/vrender-kits/register/register-group';\nimport { registerShadowRoot } from '@visactor/vrender-kits/register/register-shadowRoot';\nimport { isNil } from '@visactor/vutils';\nimport { traverseGroupMark } from '../compile/util';\nimport { getDiffAttributesOfGraphic } from '../util/mark';\n\nexport class GroupMark extends BaseMark<IGroupMarkSpec> implements IGroupMark {\n static readonly type = MarkTypeEnum.group;\n readonly type = GroupMark.type;\n protected _marks: IMark[] = [];\n getMarks(): IMark[] {\n return this._marks;\n }\n\n protected _diffState = DiffState.enter;\n protected declare _product: Maybe<IGroup>;\n declare getProduct: () => Maybe<IGroup>;\n\n protected isMarkExist(mark: IMark): boolean {\n return this._marks.find(m => m.id === mark.id) !== undefined;\n }\n\n addMark(mark: IMark): boolean {\n if (this.isMarkExist(mark)) {\n warn('Mark already exists, add mark failed.');\n return false;\n }\n\n this._marks.push(mark);\n return true;\n }\n\n removeMark(mark: IMark): boolean {\n const index = this._marks.findIndex(m => m.id === mark.id || m.name === mark.name);\n if (index === -1) {\n warn('Mark does not exists, removeMark failed.');\n return false;\n }\n this._marks.splice(index, 1);\n return true;\n }\n\n getMarkInType(type: MarkType) {\n return this._marks.filter(m => m.type === type);\n }\n\n getMarkInId(id: number) {\n return this._marks.find(m => m.id === id);\n }\n\n getMarkInUserId(id: string | number) {\n let result: IMark | undefined;\n traverseGroupMark(\n this,\n m => {\n result = m;\n },\n m => m.getUserId() === id,\n null,\n true\n );\n\n return result;\n }\n\n getMarkInName(name: string) {\n return this._marks.filter(m => m.name === name);\n }\n\n protected _compileProduct(option?: IMarkCompileOption): void {\n // 编译自身\n super._compileProduct(option);\n\n // 设置zIndex\n // this._product.configure({\n // zIndex: this._markConfig.zIndex\n // });\n\n // 编译子元素\n this.getMarks().forEach(mark => {\n mark.compile({ group: this._product });\n });\n }\n\n protected _getAttrsFromConfig(attrs: IGroupGraphicAttribute = {}) {\n const configAttrs = super._getAttrsFromConfig(attrs);\n\n if (!isNil(this._markConfig.interactive)) {\n configAttrs.pickable = this._markConfig.interactive;\n }\n return attrs;\n }\n\n getGraphics(): IMarkGraphic[] {\n return [this._product as unknown as IMarkGraphic];\n }\n\n renderInner() {\n if (!this._product) {\n return;\n }\n\n const style = this._simpleStyle ?? this.getAttributesOfState({});\n\n this._product.context = {\n ...this._product.context,\n ...this._getCommonContext(),\n diffState: this._diffState\n };\n this._setAnimationState(this._product as unknown as IMarkGraphic);\n const newAttrs = this._getAttrsFromConfig(style);\n this._product.context.finalAttrs = newAttrs;\n\n // TODO: 需要优化,现在group mark 走了一些特殊逻辑\n if (this._product.context.diffState === DiffState.update) {\n const hasAnimation = this.hasAnimation();\n const diffAttrs = getDiffAttributesOfGraphic(this._product as unknown as IMarkGraphic, newAttrs);\n this._product.context.diffAttrs = diffAttrs;\n\n if (!this.hasAnimationByState(this._product.context.animationState)) {\n if (hasAnimation) {\n this._product.setAttributesAndPreventAnimate(diffAttrs);\n this._commitPreventedAnimationStaticAttrs(this._product as unknown as IMarkGraphic, diffAttrs);\n } else {\n this._product.setAttributes(diffAttrs);\n }\n }\n } else {\n this._product.setAttributes(newAttrs);\n }\n\n this.needClear = true;\n }\n\n clearExitGraphics() {\n // group 暂时不需要clear元素,完成首次渲染后 将状态设置为update\n this._diffState = DiffState.update;\n }\n\n render(): void {\n if (this._isCommited) {\n log(`render mark: ${this.getProductId()}, type is ${this.type}`);\n this.renderInner();\n this.uncommit();\n }\n\n this.getMarks().forEach(mark => {\n mark.render();\n });\n }\n\n release() {\n super.release();\n this.removeProduct(true);\n }\n}\n\nexport const registerGroupMark = () => {\n registerShadowRoot();\n registerGroup();\n Factory.registerMark(GroupMark.type, GroupMark);\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { AStageAnimate } from '@visactor/vrender-animate/custom/custom-animate';
2
- import { EasingType } from '@visactor/vrender-core';
2
+ import type { EasingType } from '@visactor/vrender-core';
3
3
  export declare class CallbackDisappearAnimate extends AStageAnimate<any> {
4
4
  protected currentAnimationRatio: number;
5
5
  protected animationTime: number;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/animation/callback-disappear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAMhF,MAAM,OAAO,wBAAyB,SAAQ,aAAkB;IAI9D,YAAY,IAAU,EAAE,EAAQ,EAAE,QAAgB,EAAE,MAAkB,EAAE,MAAW;QACjF,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAJlC,0BAAqB,GAAG,CAAC,CAAC;QAC1B,kBAAa,GAAG,CAAC,CAAC;IAI5B,CAAC;IAED,QAAQ,CAAC,GAAY,EAAE,KAAa,EAAE,GAAQ;QAC5C,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAKS,gBAAgB;QACxB,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;QACD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IAC7B,CAAC;IAES,gBAAgB,CAAC,KAAU,EAAE,MAAyB;;QAC9D,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,mDAAG,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChG,CAAC;CACF","file":"callback-disappear.js","sourcesContent":["import { AStageAnimate } from '@visactor/vrender-animate/custom/custom-animate';\nimport { EasingType } from '@visactor/vrender-core';\n\n/**\n * 特效动画基类,提取公共的WebGL和Canvas 2D操作\n */\nexport class CallbackDisappearAnimate extends AStageAnimate<any> {\n protected currentAnimationRatio = 0;\n protected animationTime = 0;\n\n constructor(from: null, to: null, duration: number, easing: EasingType, params: any) {\n super(from, to, duration, easing, params);\n }\n\n onUpdate(end: boolean, ratio: number, out: any): void {\n super.onUpdate(end, ratio, out);\n this.currentAnimationRatio = ratio;\n this.animationTime = ratio * Math.PI * 2;\n }\n\n /**\n * 获取基于动画进度的时间\n */\n protected getAnimationTime(): number {\n if (this.currentAnimationRatio > 0) {\n return this.animationTime;\n }\n return Date.now() / 1000.0;\n }\n\n protected afterStageRender(stage: any, canvas: HTMLCanvasElement): void {\n return this.params?.callBack?.(stage, canvas, this.currentAnimationRatio, this.animationTime);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/animation/callback-disappear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAMhF,MAAM,OAAO,wBAAyB,SAAQ,aAAkB;IAI9D,YAAY,IAAU,EAAE,EAAQ,EAAE,QAAgB,EAAE,MAAkB,EAAE,MAAW;QACjF,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAJlC,0BAAqB,GAAG,CAAC,CAAC;QAC1B,kBAAa,GAAG,CAAC,CAAC;IAI5B,CAAC;IAED,QAAQ,CAAC,GAAY,EAAE,KAAa,EAAE,GAAQ;QAC5C,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAKS,gBAAgB;QACxB,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;QACD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IAC7B,CAAC;IAES,gBAAgB,CAAC,KAAU,EAAE,MAAyB;;QAC9D,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,mDAAG,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChG,CAAC;CACF","file":"callback-disappear.js","sourcesContent":["import { AStageAnimate } from '@visactor/vrender-animate/custom/custom-animate';\nimport type { EasingType } from '@visactor/vrender-core';\n\n/**\n * 特效动画基类,提取公共的WebGL和Canvas 2D操作\n */\nexport class CallbackDisappearAnimate extends AStageAnimate<any> {\n protected currentAnimationRatio = 0;\n protected animationTime = 0;\n\n constructor(from: null, to: null, duration: number, easing: EasingType, params: any) {\n super(from, to, duration, easing, params);\n }\n\n onUpdate(end: boolean, ratio: number, out: any): void {\n super.onUpdate(end, ratio, out);\n this.currentAnimationRatio = ratio;\n this.animationTime = ratio * Math.PI * 2;\n }\n\n /**\n * 获取基于动画进度的时间\n */\n protected getAnimationTime(): number {\n if (this.currentAnimationRatio > 0) {\n return this.animationTime;\n }\n return Date.now() / 1000.0;\n }\n\n protected afterStageRender(stage: any, canvas: HTMLCanvasElement): void {\n return this.params?.callBack?.(stage, canvas, this.currentAnimationRatio, this.animationTime);\n }\n}\n"]}
@@ -0,0 +1,69 @@
1
+ import type { Transform, Parser } from '@visactor/vdataset';
2
+ import type { IChartConstructor } from '../chart/interface';
3
+ import type { ISeriesConstructor } from '../series/interface';
4
+ import type { IComponentConstructor } from '../component/interface';
5
+ import type { MarkConstructor } from '../mark/interface';
6
+ import type { IRegionConstructor } from '../region/interface';
7
+ import type { ILayoutConstructor } from '../layout/interface';
8
+ import type { IChartPluginConstructor } from '../plugin/chart/interface';
9
+ import type { IComponentPluginConstructor } from '../plugin/components/interface';
10
+ import type { IGraphic } from '@visactor/vrender-core';
11
+ import type { GrammarTransformOption, IStageEventPlugin, VRenderComponentOptions } from './interface';
12
+ import type { MarkAnimationSpec } from '../animation/interface';
13
+ import type { ITriggerConstructor } from '../interaction/interface/trigger';
14
+ import type { IComposedEventConstructor } from '../index-harmony-simple';
15
+ import type { ITooltipProcessorConstructor } from '../component/tooltip/processor/interface';
16
+ import type { IVChartPluginConstructor } from '../plugin/vchart';
17
+ export interface IFactoryRegistry {
18
+ charts: {
19
+ [key: string]: IChartConstructor;
20
+ };
21
+ series: {
22
+ [key: string]: ISeriesConstructor;
23
+ };
24
+ components: {
25
+ [key: string]: {
26
+ cmp: IComponentConstructor;
27
+ alwaysCheck?: boolean;
28
+ createOrder: number;
29
+ };
30
+ };
31
+ graphicComponents: Record<string, (attrs: any, options?: VRenderComponentOptions) => IGraphic>;
32
+ marks: {
33
+ [key: string]: MarkConstructor;
34
+ };
35
+ regions: {
36
+ [key: string]: IRegionConstructor;
37
+ };
38
+ animations: {
39
+ [key: string]: (params?: any, preset?: any) => MarkAnimationSpec;
40
+ };
41
+ implements: {
42
+ [key: string]: (...args: any) => void;
43
+ };
44
+ chartPlugin: {
45
+ [key: string]: IChartPluginConstructor;
46
+ };
47
+ vChartPlugin: {
48
+ [key: string]: IVChartPluginConstructor;
49
+ };
50
+ componentPlugin: {
51
+ [key: string]: IComponentPluginConstructor;
52
+ };
53
+ transforms: {
54
+ [key: string]: Transform;
55
+ };
56
+ dataParser: {
57
+ [key: string]: Parser;
58
+ };
59
+ layout: {
60
+ [key: string]: ILayoutConstructor;
61
+ };
62
+ grammarTransforms: Record<string, GrammarTransformOption>;
63
+ stageEventPlugins: Record<string, IStageEventPlugin<any>>;
64
+ interactionTriggers: Record<string, ITriggerConstructor>;
65
+ composedEventMap: Record<string, IComposedEventConstructor>;
66
+ tooltipProcessors: Record<string, ITooltipProcessorConstructor>;
67
+ formatter?: (text: string | number | string[] | number[], datum: any, formatter: string | string[]) => any;
68
+ }
69
+ export declare const factoryRegistry: IFactoryRegistry;
@@ -0,0 +1,33 @@
1
+ import { fields, filter, fold, csvParser, dsvParser, tsvParser } from "@visactor/vdataset";
2
+
3
+ export const factoryRegistry = {
4
+ charts: {},
5
+ series: {},
6
+ components: {},
7
+ graphicComponents: {},
8
+ marks: {},
9
+ regions: {},
10
+ animations: {},
11
+ implements: {},
12
+ chartPlugin: {},
13
+ vChartPlugin: {},
14
+ componentPlugin: {},
15
+ transforms: {
16
+ fields: fields,
17
+ filter: filter,
18
+ fold: fold
19
+ },
20
+ dataParser: {
21
+ csv: csvParser,
22
+ dsv: dsvParser,
23
+ tsv: tsvParser
24
+ },
25
+ layout: {},
26
+ grammarTransforms: {},
27
+ stageEventPlugins: {},
28
+ interactionTriggers: {},
29
+ composedEventMap: {},
30
+ tooltipProcessors: {},
31
+ formatter: void 0
32
+ };
33
+ //# sourceMappingURL=factory-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/factory-registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA8C3F,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,iBAAiB,EAAE,EAAE;IACrB,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,eAAe,EAAE,EAAE;IACnB,UAAU,EAAE;QAEV,MAAM;QACN,MAAM;QACN,IAAI;KACL;IACD,UAAU,EAAE;QAEV,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;KACf;IACD,MAAM,EAAE,EAAE;IACV,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,mBAAmB,EAAE,EAAE;IACvB,gBAAgB,EAAE,EAAE;IACpB,iBAAiB,EAAE,EAAE;IACrB,SAAS,EAAE,SAAS;CACrB,CAAC","file":"factory-registry.js","sourcesContent":["import type { Transform, Parser } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { fields, filter, fold, csvParser, dsvParser, tsvParser } from '@visactor/vdataset';\nimport type { IChartConstructor } from '../chart/interface';\nimport type { ISeriesConstructor } from '../series/interface';\nimport type { IComponentConstructor } from '../component/interface';\nimport type { MarkConstructor } from '../mark/interface';\nimport type { IRegionConstructor } from '../region/interface';\nimport type { ILayoutConstructor } from '../layout/interface';\nimport type { IChartPluginConstructor } from '../plugin/chart/interface';\nimport type { IComponentPluginConstructor } from '../plugin/components/interface';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { GrammarTransformOption, IStageEventPlugin, VRenderComponentOptions } from './interface';\nimport type { MarkAnimationSpec } from '../animation/interface';\nimport type { ITriggerConstructor } from '../interaction/interface/trigger';\nimport type { IComposedEventConstructor } from '../index-harmony-simple';\nimport type { ITooltipProcessorConstructor } from '../component/tooltip/processor/interface';\nimport type { IVChartPluginConstructor } from '../plugin/vchart';\n\nexport interface IFactoryRegistry {\n charts: { [key: string]: IChartConstructor };\n series: { [key: string]: ISeriesConstructor };\n components: {\n [key: string]: {\n cmp: IComponentConstructor;\n alwaysCheck?: boolean;\n createOrder: number;\n };\n };\n graphicComponents: Record<string, (attrs: any, options?: VRenderComponentOptions) => IGraphic>;\n marks: { [key: string]: MarkConstructor };\n regions: { [key: string]: IRegionConstructor };\n animations: { [key: string]: (params?: any, preset?: any) => MarkAnimationSpec };\n implements: { [key: string]: (...args: any) => void };\n chartPlugin: { [key: string]: IChartPluginConstructor };\n vChartPlugin: { [key: string]: IVChartPluginConstructor };\n componentPlugin: { [key: string]: IComponentPluginConstructor };\n transforms: { [key: string]: Transform };\n dataParser: { [key: string]: Parser };\n layout: { [key: string]: ILayoutConstructor };\n grammarTransforms: Record<string, GrammarTransformOption>;\n stageEventPlugins: Record<string, IStageEventPlugin<any>>;\n interactionTriggers: Record<string, ITriggerConstructor>;\n composedEventMap: Record<string, IComposedEventConstructor>;\n tooltipProcessors: Record<string, ITooltipProcessorConstructor>;\n formatter?: (text: string | number | string[] | number[], datum: any, formatter: string | string[]) => any;\n}\n\nexport const factoryRegistry: IFactoryRegistry = {\n charts: {},\n series: {},\n components: {},\n graphicComponents: {},\n marks: {},\n regions: {},\n animations: {},\n implements: {},\n chartPlugin: {},\n vChartPlugin: {},\n componentPlugin: {},\n transforms: {\n // buildIn transforms\n fields,\n filter,\n fold\n },\n dataParser: {\n // buildIn parser\n csv: csvParser,\n dsv: dsvParser,\n tsv: tsvParser\n },\n layout: {},\n grammarTransforms: {},\n stageEventPlugins: {},\n interactionTriggers: {},\n composedEventMap: {},\n tooltipProcessors: {},\n formatter: undefined\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { fields, filter, fold, csvParser, dsvParser, tsvParser } from "@visactor/vdataset";
1
+ import { factoryRegistry } from "./factory-registry";
2
2
 
3
3
  export class Factory {
4
4
  static registerChart(key, chart) {
@@ -148,10 +148,11 @@ export class Factory {
148
148
  return Factory._componentPlugin[type];
149
149
  }
150
150
  static registerFormatter(func) {
151
- this._formatter = func;
151
+ this._formatter = func, factoryRegistry.formatter = func;
152
152
  }
153
153
  static getFormatter() {
154
- return this._formatter;
154
+ var _a;
155
+ return null !== (_a = factoryRegistry.formatter) && void 0 !== _a ? _a : this._formatter;
155
156
  }
156
157
  static createInteractionTrigger(interactionType, options) {
157
158
  const Ctor = Factory._interactionTriggers[interactionType];
@@ -165,29 +166,25 @@ export class Factory {
165
166
  }
166
167
  }
167
168
 
168
- Factory._charts = {}, Factory._series = {}, Factory._components = {}, Factory._graphicComponents = {},
169
- Factory._marks = {}, Factory._regions = {}, Factory._animations = {}, Factory._implements = {},
170
- Factory._chartPlugin = {}, Factory._vChartPlugin = {}, Factory._componentPlugin = {},
171
- Factory.transforms = {
172
- fields: fields,
173
- filter: filter,
174
- fold: fold
175
- }, Factory.dataParser = {
176
- csv: csvParser,
177
- dsv: dsvParser,
178
- tsv: tsvParser
179
- }, Factory._layout = {}, Factory._grammarTransforms = {}, Factory._stageEventPlugins = {},
169
+ Factory._charts = factoryRegistry.charts, Factory._series = factoryRegistry.series,
170
+ Factory._components = factoryRegistry.components, Factory._graphicComponents = factoryRegistry.graphicComponents,
171
+ Factory._marks = factoryRegistry.marks, Factory._regions = factoryRegistry.regions,
172
+ Factory._animations = factoryRegistry.animations, Factory._implements = factoryRegistry.implements,
173
+ Factory._chartPlugin = factoryRegistry.chartPlugin, Factory._vChartPlugin = factoryRegistry.vChartPlugin,
174
+ Factory._componentPlugin = factoryRegistry.componentPlugin, Factory.transforms = factoryRegistry.transforms,
175
+ Factory.dataParser = factoryRegistry.dataParser, Factory._layout = factoryRegistry.layout,
176
+ Factory._grammarTransforms = factoryRegistry.grammarTransforms, Factory._stageEventPlugins = factoryRegistry.stageEventPlugins,
180
177
  Factory.registerStageEventPlugin = (type, Plugin) => {
181
178
  Factory._stageEventPlugins[type] = Plugin;
182
- }, Factory.getStageEventPlugin = type => Factory._stageEventPlugins[type], Factory._interactionTriggers = {},
179
+ }, Factory.getStageEventPlugin = type => Factory._stageEventPlugins[type], Factory._interactionTriggers = factoryRegistry.interactionTriggers,
183
180
  Factory.registerInteractionTrigger = (interactionType, interaction) => {
184
181
  Factory._interactionTriggers[interactionType] = interaction;
185
- }, Factory._composedEventMap = {}, Factory.registerComposedEvent = (eType, composedEvent) => {
182
+ }, Factory._composedEventMap = factoryRegistry.composedEventMap, Factory.registerComposedEvent = (eType, composedEvent) => {
186
183
  Factory._composedEventMap[eType] = composedEvent;
187
- }, Factory._tooltipProcessors = {}, Factory.registerTooltipProcessor = (type, processor) => {
184
+ }, Factory._tooltipProcessors = factoryRegistry.tooltipProcessors, Factory.registerTooltipProcessor = (type, processor) => {
188
185
  Factory._tooltipProcessors[type] = processor;
189
186
  }, Factory.createTooltipProcessor = (type, tooltip) => {
190
187
  const Cror = Factory._tooltipProcessors[type];
191
188
  return Cror ? new Cror(tooltip) : null;
192
189
  };
193
- //# sourceMappingURL=factory.js.map
190
+ //# sourceMappingURL=factory.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/factory.ts"],"names":[],"mappings":"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","file":"factory.js","sourcesContent":["import type {\n IChartConstructor,\n IChartOption,\n IChart,\n IChartSpecTransformerOption,\n IChartSpecTransformer\n} from '../chart/interface';\nimport type { ISeriesConstructor, ISeriesMarkInfo, ISeriesOption, SeriesMarkNameEnum } from '../series/interface';\nimport type { IComponentConstructor } from '../component/interface';\nimport type { IMarkConstructor, IMarkOption, MarkConstructor } from '../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../mark/interface/type';\nimport type { IRegion, IRegionConstructor } from '../region/interface';\nimport type { IBaseModelSpecTransformer, IBaseModelSpecTransformerOption, IModelOption } from '../model/interface';\nimport type { Transform, Parser } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { fields, filter, fold, csvParser, dsvParser, tsvParser } from '@visactor/vdataset';\nimport type { ILayoutConstructor } from '../layout/interface';\nimport type { IChartPluginConstructor } from '../plugin/chart/interface';\nimport type { IComponentPluginConstructor } from '../plugin/components/interface';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { GrammarTransformOption, IStageEventPlugin, VRenderComponentOptions } from './interface';\nimport type { MarkAnimationSpec } from '../animation/interface';\nimport type { IBaseTriggerOptions, ITriggerConstructor } from '../interaction/interface/trigger';\nimport type { IComposedEventConstructor } from '../index-harmony-simple';\nimport type { ITooltipProcessorConstructor } from '../component/tooltip/processor/interface';\nimport type { ITooltip } from '../component';\nimport type { IVChartPluginConstructor } from '../plugin/vchart';\n\nexport class Factory {\n private static _charts: { [key: string]: IChartConstructor } = {};\n private static _series: { [key: string]: ISeriesConstructor } = {};\n private static _components: {\n [key: string]: {\n cmp: IComponentConstructor;\n alwaysCheck?: boolean;\n createOrder: number;\n };\n } = {};\n private static _graphicComponents: Record<string, (attrs: any, options?: VRenderComponentOptions) => IGraphic> = {};\n private static _marks: { [key: string]: MarkConstructor } = {};\n private static _regions: { [key: string]: IRegionConstructor } = {};\n private static _animations: { [key: string]: (params?: any, preset?: any) => MarkAnimationSpec } = {};\n private static _implements: { [key: string]: (...args: any) => void } = {};\n private static _chartPlugin: { [key: string]: IChartPluginConstructor } = {};\n private static _vChartPlugin: { [key: string]: IVChartPluginConstructor } = {};\n private static _componentPlugin: { [key: string]: IComponentPluginConstructor } = {};\n private static _formatter: (\n text: string | number | string[] | number[],\n datum: any,\n formatter: string | string[]\n ) => any;\n\n static transforms: { [key: string]: Transform } = {\n // buildIn transforms\n fields: fields,\n filter: filter,\n fold: fold\n };\n static dataParser: { [key: string]: Parser } = {\n // buildIn parser\n csv: csvParser,\n dsv: dsvParser,\n tsv: tsvParser\n };\n static _layout: { [key: string]: ILayoutConstructor } = {};\n\n static registerChart(key: string, chart: IChartConstructor) {\n Factory._charts[key] = chart;\n }\n static registerSeries(key: string, series: ISeriesConstructor) {\n Factory._series[key] = series;\n }\n static registerComponent(key: string, cmp: IComponentConstructor, alwaysCheck?: boolean, createOrder?: number) {\n Factory._components[key] = { cmp, alwaysCheck, createOrder: createOrder ?? 0 };\n }\n\n static registerGraphicComponent(key: string, creator: (attrs: any, options?: VRenderComponentOptions) => IGraphic) {\n Factory._graphicComponents[key] = creator;\n }\n\n static createGraphicComponent(componentType: string, attrs: any, options?: VRenderComponentOptions) {\n const compCreator = Factory._graphicComponents[componentType];\n\n if (!compCreator) {\n return null;\n }\n\n return compCreator(attrs, options);\n }\n static registerMark(key: string, mark: MarkConstructor) {\n Factory._marks[key] = mark;\n }\n static registerRegion(key: string, region: IRegionConstructor) {\n Factory._regions[key] = region;\n }\n static registerTransform(key: string, transform: Transform) {\n Factory.transforms[key] = transform;\n }\n\n private static _grammarTransforms: Record<string, GrammarTransformOption> = {};\n\n static registerGrammarTransform(type: string, transform: GrammarTransformOption) {\n Factory._grammarTransforms[type] = transform;\n }\n\n static getGrammarTransform(type: string) {\n return Factory._grammarTransforms[type];\n }\n static registerLayout(key: string, layout: ILayoutConstructor) {\n Factory._layout[key] = layout;\n }\n static registerAnimation(key: string, animation: (params?: any, preset?: any) => MarkAnimationSpec) {\n Factory._animations[key] = animation;\n }\n static registerImplement(key: string, implement: (...args: any) => void) {\n Factory._implements[key] = implement;\n }\n static registerChartPlugin(key: string, plugin: IChartPluginConstructor) {\n Factory._chartPlugin[key] = plugin;\n }\n static registerVChartPlugin(key: string, plugin: IVChartPluginConstructor) {\n Factory._vChartPlugin[key] = plugin;\n }\n static registerComponentPlugin(key: string, plugin: IComponentPluginConstructor) {\n Factory._componentPlugin[key] = plugin;\n }\n\n static createChart(chartType: string, spec: any, options: IChartOption): IChart | null {\n if (!Factory._charts[chartType]) {\n return null;\n }\n const ChartConstructor = Factory._charts[chartType];\n return new ChartConstructor(spec, options);\n }\n\n static getChart(chartType: string) {\n return Factory._charts[chartType];\n }\n\n static createChartSpecTransformer(\n chartType: string,\n option: IChartSpecTransformerOption\n ): IChartSpecTransformer | null {\n if (!Factory._charts[chartType]) {\n return null;\n }\n const ChartConstructor = Factory._charts[chartType];\n const ChartSpecTransformerConstructor = ChartConstructor.transformerConstructor;\n return new ChartSpecTransformerConstructor({\n seriesType: ChartConstructor.seriesType,\n ...option\n });\n }\n\n static createRegion(regionType: string, spec: any, options: IModelOption): IRegion | null {\n if (!Factory._regions[regionType]) {\n return null;\n }\n const RegionConstructor = Factory._regions[regionType];\n return new RegionConstructor(spec, options);\n }\n\n static createRegionSpecTransformer(\n regionType: string,\n options: IBaseModelSpecTransformerOption\n ): IBaseModelSpecTransformer | null {\n if (!Factory._regions[regionType]) {\n return null;\n }\n const RegionConstructor = Factory._regions[regionType];\n const RegionSpecTransformerConstructor = RegionConstructor.transformerConstructor;\n return new RegionSpecTransformerConstructor(options);\n }\n\n static createSeries(seriesType: string, spec: any, options: ISeriesOption) {\n if (!Factory._series[seriesType]) {\n return null;\n }\n const SeriesConstructor = Factory._series[seriesType];\n return new SeriesConstructor(spec, options);\n }\n\n static createSeriesSpecTransformer(\n seriesType: string,\n options: IBaseModelSpecTransformerOption\n ): IBaseModelSpecTransformer | null {\n if (!Factory._series[seriesType]) {\n return null;\n }\n const SeriesConstructor = Factory._series[seriesType];\n const SeriesSpecTransformerConstructor = SeriesConstructor.transformerConstructor;\n return new SeriesSpecTransformerConstructor(options);\n }\n\n static createMark(markType: string, name: string, options: IMarkOption) {\n if (!Factory._marks[markType]) {\n return null;\n }\n const MarkConstructor = Factory._marks[markType] as IMarkConstructor;\n const markInstance = new MarkConstructor(name, options);\n if (markInstance.type === MarkTypeEnum.group) {\n // group 目前关闭交互,不参与事件拾取\n markInstance.setMarkConfig({ interactive: false });\n }\n return markInstance;\n }\n\n static getComponents() {\n return Object.values(Factory._components);\n }\n\n static getComponentInKey(name: string) {\n return Factory._components[name].cmp;\n }\n\n static getLayout() {\n return Object.values(Factory._layout);\n }\n\n static getLayoutInKey(name: string) {\n return Factory._layout[name];\n }\n\n static getSeries() {\n return Object.values(Factory._series);\n }\n\n static getSeriesInType(type: string) {\n return Factory._series[type];\n }\n\n static getRegionInType(type: string) {\n return Factory._regions[type];\n }\n\n static getAnimationInKey(key: string) {\n return Factory._animations[key];\n }\n\n static getImplementInKey(key: string) {\n return Factory._implements[key];\n }\n\n static getSeriesMarkMap(seriesType: string): Partial<Record<SeriesMarkNameEnum, ISeriesMarkInfo>> {\n if (!Factory._series[seriesType]) {\n return {};\n }\n return Factory._series[seriesType].mark;\n }\n\n static getSeriesBuiltInTheme(themeKey: string): Record<string, any> {\n for (const key in Factory._series) {\n const item = Factory._series[key];\n if (item && item.builtInTheme && item.builtInTheme[themeKey]) {\n return item.builtInTheme[themeKey];\n }\n }\n\n return null;\n }\n\n static getComponentBuiltInTheme(themeKey: string): Record<string, any> {\n for (const key in Factory._components) {\n const item = Factory._components[key];\n if (item && item.cmp && item.cmp.builtInTheme && item.cmp.builtInTheme[themeKey]) {\n return item.cmp.builtInTheme[themeKey];\n }\n }\n return null;\n }\n\n static getChartPlugins() {\n return Object.values(Factory._chartPlugin);\n }\n\n static getVChartPlugins() {\n return Object.values(Factory._vChartPlugin);\n }\n\n static getComponentPlugins() {\n return Object.values(Factory._componentPlugin);\n }\n\n static getComponentPluginInType(type: string) {\n return Factory._componentPlugin[type];\n }\n\n static registerFormatter(func: typeof Factory['_formatter']) {\n this._formatter = func;\n }\n\n static getFormatter() {\n return this._formatter;\n }\n\n private static _stageEventPlugins: Record<string, IStageEventPlugin<any>> = {};\n\n static registerStageEventPlugin = (type: string, Plugin: IStageEventPlugin<any>) => {\n Factory._stageEventPlugins[type] = Plugin;\n };\n\n static getStageEventPlugin = (type: string) => {\n return Factory._stageEventPlugins[type];\n };\n\n private static _interactionTriggers: Record<string, ITriggerConstructor> = {};\n\n static registerInteractionTrigger = (interactionType: string, interaction: ITriggerConstructor) => {\n Factory._interactionTriggers[interactionType] = interaction;\n };\n\n static createInteractionTrigger(interactionType: string, options?: IBaseTriggerOptions) {\n const Ctor = Factory._interactionTriggers[interactionType];\n if (!Ctor) {\n return null;\n }\n\n return new Ctor(options);\n }\n\n static hasInteractionTrigger(interactionType: string) {\n return !!Factory._interactionTriggers[interactionType];\n }\n\n private static _composedEventMap: Record<string, IComposedEventConstructor> = {};\n\n static registerComposedEvent = (eType: string, composedEvent: IComposedEventConstructor) => {\n Factory._composedEventMap[eType] = composedEvent;\n };\n\n static getComposedEvent(eType: string) {\n return Factory._composedEventMap[eType];\n }\n\n private static _tooltipProcessors: Record<string, ITooltipProcessorConstructor> = {};\n static registerTooltipProcessor = (type: string, processor: ITooltipProcessorConstructor) => {\n Factory._tooltipProcessors[type] = processor;\n };\n static createTooltipProcessor = (type: string, tooltip: ITooltip) => {\n const Cror = Factory._tooltipProcessors[type];\n if (!Cror) {\n return null;\n }\n return new Cror(tooltip);\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/core/factory.ts"],"names":[],"mappings":"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","file":"factory.js","sourcesContent":["import type {\n IChartConstructor,\n IChartOption,\n IChart,\n IChartSpecTransformerOption,\n IChartSpecTransformer\n} from '../chart/interface';\nimport type { ISeriesConstructor, ISeriesMarkInfo, ISeriesOption, SeriesMarkNameEnum } from '../series/interface';\nimport type { IComponentConstructor } from '../component/interface';\nimport type { IMarkConstructor, IMarkOption, MarkConstructor } from '../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../mark/interface/type';\nimport type { IRegion, IRegionConstructor } from '../region/interface';\nimport type { IBaseModelSpecTransformer, IBaseModelSpecTransformerOption, IModelOption } from '../model/interface';\nimport type { Transform, Parser } from '@visactor/vdataset';\nimport type { ILayoutConstructor } from '../layout/interface';\nimport type { IChartPluginConstructor } from '../plugin/chart/interface';\nimport type { IComponentPluginConstructor } from '../plugin/components/interface';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { GrammarTransformOption, IStageEventPlugin, VRenderComponentOptions } from './interface';\nimport type { MarkAnimationSpec } from '../animation/interface';\nimport type { IBaseTriggerOptions, ITriggerConstructor } from '../interaction/interface/trigger';\nimport type { IComposedEventConstructor } from '../index-harmony-simple';\nimport type { ITooltipProcessorConstructor } from '../component/tooltip/processor/interface';\nimport type { ITooltip } from '../component';\nimport type { IVChartPluginConstructor } from '../plugin/vchart';\nimport { factoryRegistry } from './factory-registry';\n\nexport class Factory {\n private static _charts: { [key: string]: IChartConstructor } = factoryRegistry.charts;\n private static _series: { [key: string]: ISeriesConstructor } = factoryRegistry.series;\n private static _components: {\n [key: string]: {\n cmp: IComponentConstructor;\n alwaysCheck?: boolean;\n createOrder: number;\n };\n } = factoryRegistry.components;\n private static _graphicComponents: Record<string, (attrs: any, options?: VRenderComponentOptions) => IGraphic> =\n factoryRegistry.graphicComponents;\n private static _marks: { [key: string]: MarkConstructor } = factoryRegistry.marks;\n private static _regions: { [key: string]: IRegionConstructor } = factoryRegistry.regions;\n private static _animations: { [key: string]: (params?: any, preset?: any) => MarkAnimationSpec } =\n factoryRegistry.animations;\n private static _implements: { [key: string]: (...args: any) => void } = factoryRegistry.implements;\n private static _chartPlugin: { [key: string]: IChartPluginConstructor } = factoryRegistry.chartPlugin;\n private static _vChartPlugin: { [key: string]: IVChartPluginConstructor } = factoryRegistry.vChartPlugin;\n private static _componentPlugin: { [key: string]: IComponentPluginConstructor } = factoryRegistry.componentPlugin;\n private static _formatter: (\n text: string | number | string[] | number[],\n datum: any,\n formatter: string | string[]\n ) => any;\n\n static transforms: { [key: string]: Transform } = factoryRegistry.transforms;\n static dataParser: { [key: string]: Parser } = factoryRegistry.dataParser;\n static _layout: { [key: string]: ILayoutConstructor } = factoryRegistry.layout;\n\n static registerChart(key: string, chart: IChartConstructor) {\n Factory._charts[key] = chart;\n }\n static registerSeries(key: string, series: ISeriesConstructor) {\n Factory._series[key] = series;\n }\n static registerComponent(key: string, cmp: IComponentConstructor, alwaysCheck?: boolean, createOrder?: number) {\n Factory._components[key] = { cmp, alwaysCheck, createOrder: createOrder ?? 0 };\n }\n\n static registerGraphicComponent(key: string, creator: (attrs: any, options?: VRenderComponentOptions) => IGraphic) {\n Factory._graphicComponents[key] = creator;\n }\n\n static createGraphicComponent(componentType: string, attrs: any, options?: VRenderComponentOptions) {\n const compCreator = Factory._graphicComponents[componentType];\n\n if (!compCreator) {\n return null;\n }\n\n return compCreator(attrs, options);\n }\n static registerMark(key: string, mark: MarkConstructor) {\n Factory._marks[key] = mark;\n }\n static registerRegion(key: string, region: IRegionConstructor) {\n Factory._regions[key] = region;\n }\n static registerTransform(key: string, transform: Transform) {\n Factory.transforms[key] = transform;\n }\n\n private static _grammarTransforms: Record<string, GrammarTransformOption> = factoryRegistry.grammarTransforms;\n\n static registerGrammarTransform(type: string, transform: GrammarTransformOption) {\n Factory._grammarTransforms[type] = transform;\n }\n\n static getGrammarTransform(type: string) {\n return Factory._grammarTransforms[type];\n }\n static registerLayout(key: string, layout: ILayoutConstructor) {\n Factory._layout[key] = layout;\n }\n static registerAnimation(key: string, animation: (params?: any, preset?: any) => MarkAnimationSpec) {\n Factory._animations[key] = animation;\n }\n static registerImplement(key: string, implement: (...args: any) => void) {\n Factory._implements[key] = implement;\n }\n static registerChartPlugin(key: string, plugin: IChartPluginConstructor) {\n Factory._chartPlugin[key] = plugin;\n }\n static registerVChartPlugin(key: string, plugin: IVChartPluginConstructor) {\n Factory._vChartPlugin[key] = plugin;\n }\n static registerComponentPlugin(key: string, plugin: IComponentPluginConstructor) {\n Factory._componentPlugin[key] = plugin;\n }\n\n static createChart(chartType: string, spec: any, options: IChartOption): IChart | null {\n if (!Factory._charts[chartType]) {\n return null;\n }\n const ChartConstructor = Factory._charts[chartType];\n return new ChartConstructor(spec, options);\n }\n\n static getChart(chartType: string) {\n return Factory._charts[chartType];\n }\n\n static createChartSpecTransformer(\n chartType: string,\n option: IChartSpecTransformerOption\n ): IChartSpecTransformer | null {\n if (!Factory._charts[chartType]) {\n return null;\n }\n const ChartConstructor = Factory._charts[chartType];\n const ChartSpecTransformerConstructor = ChartConstructor.transformerConstructor;\n return new ChartSpecTransformerConstructor({\n seriesType: ChartConstructor.seriesType,\n ...option\n });\n }\n\n static createRegion(regionType: string, spec: any, options: IModelOption): IRegion | null {\n if (!Factory._regions[regionType]) {\n return null;\n }\n const RegionConstructor = Factory._regions[regionType];\n return new RegionConstructor(spec, options);\n }\n\n static createRegionSpecTransformer(\n regionType: string,\n options: IBaseModelSpecTransformerOption\n ): IBaseModelSpecTransformer | null {\n if (!Factory._regions[regionType]) {\n return null;\n }\n const RegionConstructor = Factory._regions[regionType];\n const RegionSpecTransformerConstructor = RegionConstructor.transformerConstructor;\n return new RegionSpecTransformerConstructor(options);\n }\n\n static createSeries(seriesType: string, spec: any, options: ISeriesOption) {\n if (!Factory._series[seriesType]) {\n return null;\n }\n const SeriesConstructor = Factory._series[seriesType];\n return new SeriesConstructor(spec, options);\n }\n\n static createSeriesSpecTransformer(\n seriesType: string,\n options: IBaseModelSpecTransformerOption\n ): IBaseModelSpecTransformer | null {\n if (!Factory._series[seriesType]) {\n return null;\n }\n const SeriesConstructor = Factory._series[seriesType];\n const SeriesSpecTransformerConstructor = SeriesConstructor.transformerConstructor;\n return new SeriesSpecTransformerConstructor(options);\n }\n\n static createMark(markType: string, name: string, options: IMarkOption) {\n if (!Factory._marks[markType]) {\n return null;\n }\n const MarkConstructor = Factory._marks[markType] as IMarkConstructor;\n const markInstance = new MarkConstructor(name, options);\n if (markInstance.type === MarkTypeEnum.group) {\n // group 目前关闭交互,不参与事件拾取\n markInstance.setMarkConfig({ interactive: false });\n }\n return markInstance;\n }\n\n static getComponents() {\n return Object.values(Factory._components);\n }\n\n static getComponentInKey(name: string) {\n return Factory._components[name].cmp;\n }\n\n static getLayout() {\n return Object.values(Factory._layout);\n }\n\n static getLayoutInKey(name: string) {\n return Factory._layout[name];\n }\n\n static getSeries() {\n return Object.values(Factory._series);\n }\n\n static getSeriesInType(type: string) {\n return Factory._series[type];\n }\n\n static getRegionInType(type: string) {\n return Factory._regions[type];\n }\n\n static getAnimationInKey(key: string) {\n return Factory._animations[key];\n }\n\n static getImplementInKey(key: string) {\n return Factory._implements[key];\n }\n\n static getSeriesMarkMap(seriesType: string): Partial<Record<SeriesMarkNameEnum, ISeriesMarkInfo>> {\n if (!Factory._series[seriesType]) {\n return {};\n }\n return Factory._series[seriesType].mark;\n }\n\n static getSeriesBuiltInTheme(themeKey: string): Record<string, any> {\n for (const key in Factory._series) {\n const item = Factory._series[key];\n if (item && item.builtInTheme && item.builtInTheme[themeKey]) {\n return item.builtInTheme[themeKey];\n }\n }\n\n return null;\n }\n\n static getComponentBuiltInTheme(themeKey: string): Record<string, any> {\n for (const key in Factory._components) {\n const item = Factory._components[key];\n if (item && item.cmp && item.cmp.builtInTheme && item.cmp.builtInTheme[themeKey]) {\n return item.cmp.builtInTheme[themeKey];\n }\n }\n return null;\n }\n\n static getChartPlugins() {\n return Object.values(Factory._chartPlugin);\n }\n\n static getVChartPlugins() {\n return Object.values(Factory._vChartPlugin);\n }\n\n static getComponentPlugins() {\n return Object.values(Factory._componentPlugin);\n }\n\n static getComponentPluginInType(type: string) {\n return Factory._componentPlugin[type];\n }\n\n static registerFormatter(func: typeof Factory['_formatter']) {\n this._formatter = func;\n factoryRegistry.formatter = func;\n }\n\n static getFormatter() {\n return factoryRegistry.formatter ?? this._formatter;\n }\n\n private static _stageEventPlugins: Record<string, IStageEventPlugin<any>> = factoryRegistry.stageEventPlugins;\n\n static registerStageEventPlugin = (type: string, Plugin: IStageEventPlugin<any>) => {\n Factory._stageEventPlugins[type] = Plugin;\n };\n\n static getStageEventPlugin = (type: string) => {\n return Factory._stageEventPlugins[type];\n };\n\n private static _interactionTriggers: Record<string, ITriggerConstructor> = factoryRegistry.interactionTriggers;\n\n static registerInteractionTrigger = (interactionType: string, interaction: ITriggerConstructor) => {\n Factory._interactionTriggers[interactionType] = interaction;\n };\n\n static createInteractionTrigger(interactionType: string, options?: IBaseTriggerOptions) {\n const Ctor = Factory._interactionTriggers[interactionType];\n if (!Ctor) {\n return null;\n }\n\n return new Ctor(options);\n }\n\n static hasInteractionTrigger(interactionType: string) {\n return !!Factory._interactionTriggers[interactionType];\n }\n\n private static _composedEventMap: Record<string, IComposedEventConstructor> = factoryRegistry.composedEventMap;\n\n static registerComposedEvent = (eType: string, composedEvent: IComposedEventConstructor) => {\n Factory._composedEventMap[eType] = composedEvent;\n };\n\n static getComposedEvent(eType: string) {\n return Factory._composedEventMap[eType];\n }\n\n private static _tooltipProcessors: Record<string, ITooltipProcessorConstructor> = factoryRegistry.tooltipProcessors;\n static registerTooltipProcessor = (type: string, processor: ITooltipProcessorConstructor) => {\n Factory._tooltipProcessors[type] = processor;\n };\n static createTooltipProcessor = (type: string, tooltip: ITooltip) => {\n const Cror = Factory._tooltipProcessors[type];\n if (!Cror) {\n return null;\n }\n return new Cror(tooltip);\n };\n}\n"]}
@@ -167,6 +167,7 @@ export declare class BaseMark<T extends ICommonSpec> extends GrammarItem impleme
167
167
  protected _runEncoder(graphics: IMarkGraphic[], noGroupEncode?: boolean): void;
168
168
  protected _excludeStateControlledDiffAttrs(g: IMarkGraphic, diffAttrs: Record<string, any>): Record<string, any>;
169
169
  protected _hasDiffAttrs(g: IMarkGraphic): boolean;
170
+ protected _commitPreventedAnimationStaticAttrs(g: IMarkGraphic, attrs: Record<string, any>): void;
170
171
  protected _runApplyGraphic(graphics: IMarkGraphic[]): void;
171
172
  protected _updateEncoderByState(): void;
172
173
  protected _runState(graphics: IMarkGraphic[]): void;
@@ -760,6 +760,13 @@ export class BaseMark extends GrammarItem {
760
760
  _hasDiffAttrs(g) {
761
761
  return !!g.context.diffAttrs && Object.keys(g.context.diffAttrs).length > 0;
762
762
  }
763
+ _commitPreventedAnimationStaticAttrs(g, attrs) {
764
+ var _a, _b;
765
+ if (!attrs || !Object.keys(attrs).length) return;
766
+ const graphic = g;
767
+ null === (_a = graphic.setFinalAttributes) || void 0 === _a || _a.call(graphic, attrs),
768
+ graphic._commitAnimationStaticAttributes ? graphic._commitAnimationStaticAttributes(attrs) : null === (_b = graphic.commitInternalBaseAttributes) || void 0 === _b || _b.call(graphic, attrs);
769
+ }
763
770
  _runApplyGraphic(graphics) {
764
771
  const hasAnimation = this.hasAnimation();
765
772
  graphics.forEach(((g, index) => {
@@ -768,7 +775,8 @@ export class BaseMark extends GrammarItem {
768
775
  if (g.setAttributes) {
769
776
  const diffAttrs = this._excludeStateControlledDiffAttrs(g, getDiffAttributesOfGraphic(g, finalAttrs));
770
777
  g.context.diffAttrs = diffAttrs, g.context.reusing ? (g.context.lastAttrs = g.attribute,
771
- g.initAttributes(finalAttrs), g.context.reusing = !1) : hasStateAnimation || (hasAnimation ? g.setAttributesAndPreventAnimate(diffAttrs) : g.setAttributes(diffAttrs)),
778
+ g.initAttributes(finalAttrs), g.context.reusing = !1) : hasStateAnimation || (hasAnimation ? (g.setAttributesAndPreventAnimate(diffAttrs),
779
+ this._commitPreventedAnimationStaticAttrs(g, diffAttrs)) : g.setAttributes(diffAttrs)),
772
780
  !(null === (_b = this.renderContext) || void 0 === _b ? void 0 : _b.progressive) && this._product && g.parent !== this._product && this._product.appendChild(g);
773
781
  } else {
774
782
  const mockGraphic = g;