@visactor/vchart 1.10.0-alpha.5 → 1.10.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +20 -63
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +2 -2
  6. package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  7. package/cjs/core/index.d.ts +1 -1
  8. package/cjs/core/index.js +1 -1
  9. package/cjs/core/index.js.map +1 -1
  10. package/cjs/interaction/dimension-trigger.d.ts +1 -6
  11. package/cjs/interaction/dimension-trigger.js +6 -31
  12. package/cjs/interaction/dimension-trigger.js.map +1 -1
  13. package/cjs/series/base/base-series-transformer.js +4 -3
  14. package/cjs/series/base/base-series-transformer.js.map +1 -1
  15. package/cjs/series/interface/series.js.map +1 -1
  16. package/cjs/series/interface/theme.d.ts +17 -1
  17. package/cjs/series/interface/theme.js +10 -6
  18. package/cjs/series/interface/theme.js.map +1 -1
  19. package/esm/component/data-zoom/scroll-bar/scroll-bar.js +2 -2
  20. package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
  21. package/esm/core/index.d.ts +1 -1
  22. package/esm/core/index.js +1 -1
  23. package/esm/core/index.js.map +1 -1
  24. package/esm/interaction/dimension-trigger.d.ts +1 -6
  25. package/esm/interaction/dimension-trigger.js +6 -32
  26. package/esm/interaction/dimension-trigger.js.map +1 -1
  27. package/esm/series/base/base-series-transformer.js +3 -3
  28. package/esm/series/base/base-series-transformer.js.map +1 -1
  29. package/esm/series/interface/series.js.map +1 -1
  30. package/esm/series/interface/theme.d.ts +17 -1
  31. package/esm/series/interface/theme.js +10 -6
  32. package/esm/series/interface/theme.js.map +1 -1
  33. package/package.json +3 -3
@@ -76,7 +76,7 @@ class ScrollBar extends data_filter_base_component_1.DataFilterBaseComponent {
76
76
  const attrs = this._getAttrs();
77
77
  if (this._component) this._component.setAttributes(attrs); else {
78
78
  const container = this.getContainer();
79
- this._component = new vrender_components_1.ScrollBar(attrs), this._component.addEventListener("scroll", (e => {
79
+ this._component = new vrender_components_1.ScrollBar(attrs), this._component.addEventListener("scrollDrag", (e => {
80
80
  const value = e.detail.value;
81
81
  this._handleChange(value[0], value[1]);
82
82
  })), container.add(this._component);
@@ -101,7 +101,7 @@ class ScrollBar extends data_filter_base_component_1.DataFilterBaseComponent {
101
101
  }
102
102
  _handleDataCollectionChange() {}
103
103
  _initCommonEvent() {
104
- super._initCommonEvent(), this._component && this._component.on("scroll", (e => {
104
+ super._initCommonEvent(), this._component && this._component.on("scrollDrag", (e => {
105
105
  const value = e.detail.value;
106
106
  this._handleChange(value[0], value[1]);
107
107
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/data-zoom/scroll-bar/scroll-bar.ts"],"names":[],"mappings":"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","file":"scroll-bar.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\nimport { isArray, isBoolean, isEmpty, isNil, isNumber, isValid } from '@visactor/vutils';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\nimport type { ScrollBarAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { ScrollBar as ScrollBarComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, IGroup, IGraphic } from '@visactor/vrender-core';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../../constant';\nimport { SCROLL_BAR_DEFAULT_SIZE } from '../../../constant/scroll-bar';\nimport type { IScrollBarSpec } from './interface';\nimport { IFilterMode } from '../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IZoomable } from '../../../interaction/zoom';\nimport type { ILayoutType } from '../../../typings/layout';\nimport type { IModelSpecInfo } from '../../../model/interface';\n\nexport class ScrollBar<T extends IScrollBarSpec = IScrollBarSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.scrollBar;\n type = ComponentTypeEnum.scrollBar;\n name: string = ComponentTypeEnum.scrollBar;\n\n static specKey = 'scrollBar';\n specKey = 'scrollBar';\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // datazoom组件\n protected _component!: ScrollBarComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const compSpec = chartSpec[this.specKey];\n if (isNil(compSpec)) {\n return undefined;\n }\n if (!isArray(compSpec)) {\n return [\n {\n spec: compSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.scrollBar\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n compSpec.forEach((s, i: number) => {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.scrollBar\n });\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec as any, options);\n this._filterMode = spec.filterMode ?? IFilterMode.axis;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n // roam兼容逻辑\n if (isBoolean((this._spec as any).roam)) {\n this._zoomAttr.enable = false; // 对于之前的逻辑而言,只要配置了roam,zoom始终不打开\n this._dragAttr.enable = (this._spec as any).roam;\n this._scrollAttr.enable = (this._spec as any).roam;\n }\n if (this._zoomAttr.enable || this._dragAttr.enable || this._scrollAttr.enable) {\n (this as unknown as IZoomable).initZoomable(this.event, this._option.mode);\n }\n }\n\n /** LifeCycle API**/\n onLayoutEnd(ctx: any): void {\n this._updateScaleRange();\n this.effect.onZoomChange?.();\n super.onLayoutEnd(ctx);\n }\n\n protected _updateScaleRange() {\n if (this._component) {\n this._component.setAttributes({\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y,\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n });\n }\n }\n\n protected _computeWidth(): number {\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n // default value\n return SCROLL_BAR_DEFAULT_SIZE;\n }\n\n protected _computeHeight(): number {\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n // default value\n if (!this._isHorizontal) {\n return this.getLayoutRect().height;\n }\n\n return SCROLL_BAR_DEFAULT_SIZE;\n }\n\n private _getAttrs() {\n return {\n zIndex: this.layoutZIndex,\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y,\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height,\n range: [this._start, this._end],\n direction: this._isHorizontal ? 'horizontal' : 'vertical',\n delayType: this._spec?.delayType,\n delayTime: isValid(this._spec?.delayType) ? this._spec?.delayTime ?? 30 : 0,\n realTime: this._spec?.realTime ?? true,\n ...this._getComponentAttrs()\n } as ScrollBarAttributes;\n }\n\n protected _createOrUpdateComponent() {\n const attrs = this._getAttrs();\n if (this._component) {\n this._component.setAttributes(attrs);\n } else {\n const container = this.getContainer();\n this._component = new ScrollBarComponent(attrs);\n // 绑定事件,防抖,防止频繁触发\n this._component.addEventListener('scroll', (e: any) => {\n const value = e.detail.value;\n this._handleChange(value[0], value[1]);\n });\n container.add(this._component as unknown as INode);\n }\n }\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n super._handleChange(start, end, updateComponent);\n if (this._shouldChange) {\n if (updateComponent && this._component) {\n this._component.setAttribute('range', [start, end]);\n }\n\n this._start = start;\n this._end = end;\n const hasChange = this._handleStateChange(this._statePointToData(start), this._statePointToData(end));\n if (hasChange) {\n this.event.emit(ChartEvent.scrollBarChange, {\n model: this,\n value: {\n filterData: this._filterMode !== IFilterMode.axis,\n start: this._start,\n end: this._end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n }\n\n protected _handleDataCollectionChange() {\n // do nothing\n }\n\n protected _initCommonEvent() {\n super._initCommonEvent();\n if (this._component) {\n this._component.on('scroll', (e: any) => {\n const value = e.detail.value;\n this._handleChange(value[0], value[1]);\n });\n }\n }\n\n protected _getComponentAttrs() {\n const { rail, slider, innerPadding } = this._spec;\n const attrs: Partial<ScrollBarAttributes> = {};\n\n if (!isNil(innerPadding)) {\n attrs.padding = innerPadding;\n }\n\n if (!isEmpty(rail?.style)) {\n attrs.railStyle = transformToGraphic(rail.style) as unknown as IRectGraphicAttribute;\n }\n if (!isEmpty(slider?.style)) {\n attrs.sliderStyle = transformToGraphic(slider.style) as unknown as IRectGraphicAttribute;\n }\n attrs.disableTriggerEvent = this._option.disableTriggerEvent;\n return attrs;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nexport const registerScrollBar = () => {\n Factory.registerComponent(ScrollBar.type, ScrollBar);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/data-zoom/scroll-bar/scroll-bar.ts"],"names":[],"mappings":"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","file":"scroll-bar.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\nimport { isArray, isBoolean, isEmpty, isNil, isNumber, isValid } from '@visactor/vutils';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\nimport type { ScrollBarAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { ScrollBar as ScrollBarComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, IGroup, IGraphic } from '@visactor/vrender-core';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../../constant';\nimport { SCROLL_BAR_DEFAULT_SIZE } from '../../../constant/scroll-bar';\nimport type { IScrollBarSpec } from './interface';\nimport { IFilterMode } from '../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IZoomable } from '../../../interaction/zoom';\nimport type { ILayoutType } from '../../../typings/layout';\nimport type { IModelSpecInfo } from '../../../model/interface';\n\nexport class ScrollBar<T extends IScrollBarSpec = IScrollBarSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.scrollBar;\n type = ComponentTypeEnum.scrollBar;\n name: string = ComponentTypeEnum.scrollBar;\n\n static specKey = 'scrollBar';\n specKey = 'scrollBar';\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // datazoom组件\n protected _component!: ScrollBarComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const compSpec = chartSpec[this.specKey];\n if (isNil(compSpec)) {\n return undefined;\n }\n if (!isArray(compSpec)) {\n return [\n {\n spec: compSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.scrollBar\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n compSpec.forEach((s, i: number) => {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.scrollBar\n });\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec as any, options);\n this._filterMode = spec.filterMode ?? IFilterMode.axis;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n // roam兼容逻辑\n if (isBoolean((this._spec as any).roam)) {\n this._zoomAttr.enable = false; // 对于之前的逻辑而言,只要配置了roam,zoom始终不打开\n this._dragAttr.enable = (this._spec as any).roam;\n this._scrollAttr.enable = (this._spec as any).roam;\n }\n if (this._zoomAttr.enable || this._dragAttr.enable || this._scrollAttr.enable) {\n (this as unknown as IZoomable).initZoomable(this.event, this._option.mode);\n }\n }\n\n /** LifeCycle API**/\n onLayoutEnd(ctx: any): void {\n this._updateScaleRange();\n this.effect.onZoomChange?.();\n super.onLayoutEnd(ctx);\n }\n\n protected _updateScaleRange() {\n if (this._component) {\n this._component.setAttributes({\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y,\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n });\n }\n }\n\n protected _computeWidth(): number {\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n // default value\n return SCROLL_BAR_DEFAULT_SIZE;\n }\n\n protected _computeHeight(): number {\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n // default value\n if (!this._isHorizontal) {\n return this.getLayoutRect().height;\n }\n\n return SCROLL_BAR_DEFAULT_SIZE;\n }\n\n private _getAttrs() {\n return {\n zIndex: this.layoutZIndex,\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y,\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height,\n range: [this._start, this._end],\n direction: this._isHorizontal ? 'horizontal' : 'vertical',\n delayType: this._spec?.delayType,\n delayTime: isValid(this._spec?.delayType) ? this._spec?.delayTime ?? 30 : 0,\n realTime: this._spec?.realTime ?? true,\n ...this._getComponentAttrs()\n } as ScrollBarAttributes;\n }\n\n protected _createOrUpdateComponent() {\n const attrs = this._getAttrs();\n if (this._component) {\n this._component.setAttributes(attrs);\n } else {\n const container = this.getContainer();\n this._component = new ScrollBarComponent(attrs);\n // 绑定事件,防抖,防止频繁触发\n this._component.addEventListener('scrollDrag', (e: any) => {\n const value = e.detail.value;\n this._handleChange(value[0], value[1]);\n });\n container.add(this._component as unknown as INode);\n }\n }\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n super._handleChange(start, end, updateComponent);\n if (this._shouldChange) {\n if (updateComponent && this._component) {\n this._component.setAttribute('range', [start, end]);\n }\n\n this._start = start;\n this._end = end;\n const hasChange = this._handleStateChange(this._statePointToData(start), this._statePointToData(end));\n if (hasChange) {\n this.event.emit(ChartEvent.scrollBarChange, {\n model: this,\n value: {\n filterData: this._filterMode !== IFilterMode.axis,\n start: this._start,\n end: this._end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n }\n\n protected _handleDataCollectionChange() {\n // do nothing\n }\n\n protected _initCommonEvent() {\n super._initCommonEvent();\n if (this._component) {\n this._component.on('scrollDrag', (e: any) => {\n const value = e.detail.value;\n this._handleChange(value[0], value[1]);\n });\n }\n }\n\n protected _getComponentAttrs() {\n const { rail, slider, innerPadding } = this._spec;\n const attrs: Partial<ScrollBarAttributes> = {};\n\n if (!isNil(innerPadding)) {\n attrs.padding = innerPadding;\n }\n\n if (!isEmpty(rail?.style)) {\n attrs.railStyle = transformToGraphic(rail.style) as unknown as IRectGraphicAttribute;\n }\n if (!isEmpty(slider?.style)) {\n attrs.sliderStyle = transformToGraphic(slider.style) as unknown as IRectGraphicAttribute;\n }\n attrs.disableTriggerEvent = this._option.disableTriggerEvent;\n return attrs;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nexport const registerScrollBar = () => {\n Factory.registerComponent(ScrollBar.type, ScrollBar);\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { VChart } from './vchart';
2
2
  import { Factory } from './factory';
3
3
  export { VChart, Factory };
4
- export declare const version = "1.10.0-alpha.5";
4
+ export declare const version = "1.10.0-alpha.6";
5
5
  export type { IVChart } from './interface';
6
6
  export type { IStateSpec, StateValueType } from '../compile/mark';
7
7
  export * from '../typings/spec/common';
package/cjs/core/index.js CHANGED
@@ -35,7 +35,7 @@ Object.defineProperty(exports, "Factory", {
35
35
  get: function() {
36
36
  return factory_1.Factory;
37
37
  }
38
- }), exports.version = "1.10.0-alpha.5", __exportStar(require("../typings/spec/common"), exports),
38
+ }), exports.version = "1.10.0-alpha.6", __exportStar(require("../typings/spec/common"), exports),
39
39
  __exportStar(require("../event/interface"), exports), __exportStar(require("../theme/interface"), exports),
40
40
  __exportStar(require("../constant"), exports), __exportStar(require("./interface"), exports),
41
41
  __exportStar(require("../typings/spec/index"), exports), __exportStar(require("../typings/tooltip"), exports),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAMxC,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAK5B,wDAAsC;AAGtC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAGhB,4CAA0B","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.10.0-alpha.5\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAMxC,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAK5B,wDAAsC;AAGtC,qDAAmC;AAGnC,iDAA+B;AAG/B,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAGhB,4CAA0B","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.10.0-alpha.6\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
@@ -10,7 +10,6 @@ export declare class DimensionTrigger implements ITrigger {
10
10
  protected _option: ITriggerOption;
11
11
  protected _marks: MarkSet;
12
12
  protected _markReverse: MarkSet;
13
- protected _lastDimensionEvent: DimensionEventParams;
14
13
  private _hover;
15
14
  get hover(): IHoverSpec;
16
15
  private _select;
@@ -23,10 +22,6 @@ export declare class DimensionTrigger implements ITrigger {
23
22
  protected initEvent(): void;
24
23
  protected releaseEvent(): void;
25
24
  private initConfig;
26
- protected getEventElement(params: DimensionEventParams, reverse?: boolean): {
27
- el: IElement;
28
- mark: IMark;
29
- }[];
30
- protected dimensionDataEqual(params: DimensionEventParams): boolean;
25
+ protected getEventElement(params: DimensionEventParams, reverse?: boolean): IElement[];
31
26
  private onHover;
32
27
  }
@@ -15,23 +15,19 @@ class DimensionTrigger {
15
15
  }
16
16
  constructor(option) {
17
17
  this._marks = new mark_set_1.MarkSet, this._markReverse = new mark_set_1.MarkSet,
18
- this._lastDimensionEvent = null, this.onHover = params => {
19
- const elements = this.getEventElement(params);
18
+ this.onHover = params => {
20
19
  switch (params.action) {
21
20
  case "enter":
22
- this.interaction.getEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER).forEach((e => {
23
- this.interaction.addEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER_REVERSE, e);
24
- })), this.interaction.clearEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, !1),
25
- elements.forEach((({el: el, mark: mark}) => {
26
- this.interaction.addEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, el);
27
- })), this.interaction.reverseEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER);
21
+ this.interaction.getEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER).forEach((e => this.interaction.addEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER_REVERSE, e))),
22
+ this.interaction.clearEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, !1);
23
+ this.getEventElement(params).forEach((el => this.interaction.addEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, el))),
24
+ this.interaction.reverseEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER);
28
25
  break;
29
26
 
30
27
  case "leave":
31
28
  this.interaction.clearEventElement(interface_2.STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, !0),
32
29
  params = null;
33
30
  }
34
- this._lastDimensionEvent = params;
35
31
  }, this._option = option, this.event = this._option.model.getOption().getChart().getEvent(),
36
32
  this.interaction = option.interaction, this.initConfig(option.mode);
37
33
  }
@@ -65,33 +61,12 @@ class DimensionTrigger {
65
61
  let c;
66
62
  return c = (0, vutils_1.isArray)(datum) ? datum.every(((oneData, i) => oneData === dd.datum[i])) : dd.datum.some((dd_d => dd_d === datum)),
67
63
  reverse ? !c : c;
68
- })).map((el => ({
69
- el: el,
70
- mark: m
71
- })));
64
+ }));
72
65
  items.push(...elements);
73
66
  }));
74
67
  }));
75
68
  })), items;
76
69
  }
77
- dimensionDataEqual(params) {
78
- if (this._lastDimensionEvent === params) return !0;
79
- if (!this._lastDimensionEvent || !params) return !1;
80
- if (this._lastDimensionEvent.dimensionInfo.length !== params.dimensionInfo.length) return !1;
81
- for (let i = 0; i < this._lastDimensionEvent.dimensionInfo.length; i++) {
82
- const last = this._lastDimensionEvent.dimensionInfo[i], current = params.dimensionInfo[i];
83
- if (last.value !== current.value) return !1;
84
- if (last.axis !== current.axis) return !1;
85
- if (last.data.length !== current.data.length) return !1;
86
- for (let j = 0; j < last.data.length; j++) {
87
- const lastData = last.data[j], currentData = current.data[j];
88
- if (lastData.series !== currentData.series) return !1;
89
- if (lastData.datum.length !== currentData.datum.length) return !1;
90
- for (let k = 0; k < lastData.datum.length; k++) if (lastData.datum[k] !== currentData.datum[k]) return !1;
91
- }
92
- }
93
- return !0;
94
- }
95
70
  }
96
71
 
97
72
  exports.DimensionTrigger = DimensionTrigger;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interaction/dimension-trigger.ts"],"names":[],"mappings":"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","file":"dimension-trigger.js","sourcesContent":["import { isEmpty, isArray } from '@visactor/vutils';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { DimensionEventParams } from '../event/events/dimension/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { DimensionEventEnum } from '../event/events/dimension/interface';\n\nimport type { IMark } from '../mark/interface';\nimport type { EventCallback, EventParams, IEvent } from '../event/interface';\nimport type { IHoverSpec, IInteraction, ISelectSpec, ITrigger, ITriggerOption } from './interface';\nimport type { RenderMode } from '../typings/spec';\nimport { MarkSet } from '../mark/mark-set';\nimport { STATE_VALUE_ENUM } from '../compile/mark/interface';\n\nexport class DimensionTrigger implements ITrigger {\n // 事件\n readonly event: IEvent;\n\n protected readonly interaction: IInteraction;\n\n protected _option: ITriggerOption;\n protected _marks: MarkSet = new MarkSet();\n protected _markReverse: MarkSet = new MarkSet();\n\n protected _lastDimensionEvent: DimensionEventParams = null;\n\n private _hover: IHoverSpec;\n get hover() {\n return this._hover;\n }\n private _select: ISelectSpec;\n get select() {\n return this._select;\n }\n\n constructor(option: ITriggerOption) {\n this._option = option;\n this.event = this._option.model.getOption().getChart().getEvent(); // new Event(option.eventDispatcher, option.mode);\n this.interaction = option.interaction;\n this.initConfig(option.mode);\n }\n\n setStateKeys(fields: string[]): void {\n // do nothing\n }\n\n registerMark(mark: IMark): void {\n // do nothing\n if (!isEmpty(mark.stateStyle[STATE_VALUE_ENUM.STATE_DIMENSION_HOVER])) {\n this._marks.addMark(mark);\n }\n if (!isEmpty(mark.stateStyle[STATE_VALUE_ENUM.STATE_DIMENSION_HOVER_REVERSE])) {\n this._markReverse.addMark(mark);\n }\n }\n\n init(): void {\n this.initEvent();\n }\n\n release(): void {\n this.releaseEvent();\n }\n\n // event\n protected initEvent() {\n const event = this.event;\n event.on(DimensionEventEnum.dimensionHover, this.onHover as EventCallback<EventParams>);\n }\n\n protected releaseEvent(): void {\n this.event.release();\n }\n\n private initConfig(mode: RenderMode): void {\n // do nothing\n }\n\n protected getEventElement(params: DimensionEventParams, reverse: boolean = false): { el: IElement; mark: IMark }[] {\n // items 修改遍历方法从 mark\n\n const items: { el: IElement; mark: IMark }[] = [] as unknown as { el: IElement; mark: IMark }[];\n params.dimensionInfo.forEach(df => {\n df.data.forEach(dd => {\n const seriesMark = (reverse ? this._markReverse : this._marks)\n .getMarks()\n .filter(m => m.model === dd.series && m.getVisible());\n\n seriesMark.forEach(m => {\n const markProduct = m.getProduct();\n if (!markProduct || !markProduct.elements) {\n return;\n }\n\n const elements = markProduct.elements\n .filter(e => {\n const datum = e.getDatum();\n let c;\n if (isArray(datum)) {\n c = datum.every((oneData, i) => oneData === dd.datum[i]);\n } else {\n c = dd.datum.some(dd_d => dd_d === datum);\n }\n return reverse ? !c : c;\n })\n .map(el => {\n return {\n el,\n mark: m\n };\n });\n items.push(...elements);\n });\n });\n });\n\n return items;\n }\n\n protected dimensionDataEqual(params: DimensionEventParams) {\n if (this._lastDimensionEvent === params) {\n return true;\n }\n if (!this._lastDimensionEvent || !params) {\n return false;\n }\n if (this._lastDimensionEvent.dimensionInfo.length !== params.dimensionInfo.length) {\n return false;\n }\n for (let i = 0; i < this._lastDimensionEvent.dimensionInfo.length; i++) {\n const last = this._lastDimensionEvent.dimensionInfo[i];\n const current = params.dimensionInfo[i];\n if (last.value !== current.value) {\n return false;\n }\n if (last.axis !== current.axis) {\n return false;\n }\n if (last.data.length !== current.data.length) {\n return false;\n }\n for (let j = 0; j < last.data.length; j++) {\n const lastData = last.data[j];\n const currentData = current.data[j];\n if (lastData.series !== currentData.series) {\n return false;\n }\n if (lastData.datum.length !== currentData.datum.length) {\n return false;\n }\n for (let k = 0; k < lastData.datum.length; k++) {\n if (lastData.datum[k] !== currentData.datum[k]) {\n return false;\n }\n }\n }\n }\n return true;\n }\n\n private onHover = (params: DimensionEventParams) => {\n const elements = this.getEventElement(params);\n switch (params.action) {\n case 'enter':\n // clear last hover\n // eslint-disable-next-line no-case-declarations\n const lastHover = this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER);\n lastHover.forEach(e => {\n this.interaction.addEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER_REVERSE, e);\n });\n this.interaction.clearEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, false);\n // add new\n elements.forEach(({ el, mark }) => {\n this.interaction.addEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, el);\n });\n this.interaction.reverseEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER);\n break;\n case 'leave':\n // clear all\n this.interaction.clearEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, true);\n params = null;\n break;\n case 'click':\n case 'move':\n default:\n break;\n }\n this._lastDimensionEvent = params;\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/interaction/dimension-trigger.ts"],"names":[],"mappings":"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","file":"dimension-trigger.js","sourcesContent":["import { isEmpty, isArray } from '@visactor/vutils';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { DimensionEventParams } from '../event/events/dimension/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { DimensionEventEnum } from '../event/events/dimension/interface';\nimport type { IMark } from '../mark/interface';\nimport type { EventCallback, EventParams, IEvent } from '../event/interface';\nimport type { IHoverSpec, IInteraction, ISelectSpec, ITrigger, ITriggerOption } from './interface';\nimport type { RenderMode } from '../typings/spec';\nimport { MarkSet } from '../mark/mark-set';\nimport { STATE_VALUE_ENUM } from '../compile/mark/interface';\n\nexport class DimensionTrigger implements ITrigger {\n // 事件\n readonly event: IEvent;\n\n protected readonly interaction: IInteraction;\n\n protected _option: ITriggerOption;\n protected _marks: MarkSet = new MarkSet();\n protected _markReverse: MarkSet = new MarkSet();\n\n private _hover: IHoverSpec;\n get hover() {\n return this._hover;\n }\n private _select: ISelectSpec;\n get select() {\n return this._select;\n }\n\n constructor(option: ITriggerOption) {\n this._option = option;\n this.event = this._option.model.getOption().getChart().getEvent(); // new Event(option.eventDispatcher, option.mode);\n this.interaction = option.interaction;\n this.initConfig(option.mode);\n }\n\n setStateKeys(fields: string[]): void {\n // do nothing\n }\n\n registerMark(mark: IMark): void {\n // do nothing\n if (!isEmpty(mark.stateStyle[STATE_VALUE_ENUM.STATE_DIMENSION_HOVER])) {\n this._marks.addMark(mark);\n }\n if (!isEmpty(mark.stateStyle[STATE_VALUE_ENUM.STATE_DIMENSION_HOVER_REVERSE])) {\n this._markReverse.addMark(mark);\n }\n }\n\n init(): void {\n this.initEvent();\n }\n\n release(): void {\n this.releaseEvent();\n }\n\n // event\n protected initEvent() {\n const event = this.event;\n event.on(DimensionEventEnum.dimensionHover, this.onHover as EventCallback<EventParams>);\n }\n\n protected releaseEvent(): void {\n this.event.release();\n }\n\n private initConfig(mode: RenderMode): void {\n // do nothing\n }\n\n protected getEventElement(params: DimensionEventParams, reverse: boolean = false) {\n // items 修改遍历方法从 mark\n\n const items: IElement[] = [];\n params.dimensionInfo.forEach(df => {\n df.data.forEach(dd => {\n const seriesMark = (reverse ? this._markReverse : this._marks)\n .getMarks()\n .filter(m => m.model === dd.series && m.getVisible());\n\n seriesMark.forEach(m => {\n const markProduct = m.getProduct();\n if (!markProduct || !markProduct.elements) {\n return;\n }\n\n const elements = markProduct.elements.filter(e => {\n const datum = e.getDatum();\n let c;\n if (isArray(datum)) {\n c = datum.every((oneData, i) => oneData === dd.datum[i]);\n } else {\n c = dd.datum.some(dd_d => dd_d === datum);\n }\n return reverse ? !c : c;\n });\n items.push(...elements);\n });\n });\n });\n\n return items;\n }\n\n private onHover = (params: DimensionEventParams) => {\n switch (params.action) {\n case 'enter':\n // clear last hover\n // eslint-disable-next-line no-case-declarations\n const lastHover = this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER);\n lastHover.forEach(e => this.interaction.addEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER_REVERSE, e));\n this.interaction.clearEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, false);\n // add new\n const elements = this.getEventElement(params);\n elements.forEach(el => this.interaction.addEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, el));\n this.interaction.reverseEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER);\n break;\n case 'leave':\n // clear all\n this.interaction.clearEventElement(STATE_VALUE_ENUM.STATE_DIMENSION_HOVER, true);\n params = null;\n break;\n case 'click':\n case 'move':\n default:\n break;\n }\n };\n}\n"]}
@@ -20,11 +20,12 @@ class BaseSeriesSpecTransformer extends base_model_transformer_1.BaseModelSpecTr
20
20
  this.markLabelSpec[markName] || (this.markLabelSpec[markName] = []), head ? this.markLabelSpec[markName].unshift(label) : this.markLabelSpec[markName].push(label);
21
21
  }
22
22
  getTheme(spec, chartSpec) {
23
- var _a;
23
+ var _a, _b, _c;
24
24
  const direction = (0, spec_1.getDirectionFromSeriesSpec)(spec), chartTheme = null === (_a = this._option) || void 0 === _a ? void 0 : _a.getTheme(), {markByName: markByName, mark: mark} = chartTheme, type = this._option.type, theme = (0,
25
25
  util_1.transformSeriesThemeToMerge)((0, util_1.get)(chartTheme, `series.${type}`), type, mark, markByName), themeWithDirection = (0,
26
- util_1.transformSeriesThemeToMerge)((0, util_1.get)(chartTheme, `series.${type}_${direction}`), `${type}_${direction}`, mark, markByName);
27
- return (0, util_1.mergeSpec)({}, theme, themeWithDirection);
26
+ util_1.get)(chartTheme, `series.${type}_${direction}`), themeWithStack = (null !== (_c = null !== (_b = spec.stack) && void 0 !== _b ? _b : null == themeWithDirection ? void 0 : themeWithDirection.stack) && void 0 !== _c ? _c : null == theme ? void 0 : theme.stack) ? (0,
27
+ util_1.get)(chartTheme, `series.${type}_stack`) : void 0;
28
+ return (0, util_1.mergeSpec)({}, theme, themeWithDirection, themeWithStack);
28
29
  }
29
30
  transformSpec(spec, chartSpec, chartSpecInfo) {
30
31
  const result = super.transformSpec(spec, chartSpec, chartSpecInfo);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/base/base-series-transformer.ts"],"names":[],"mappings":"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","file":"base-series-transformer.js","sourcesContent":["import { isObject } from '@visactor/vutils';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { ILabelSpec, TransformedLabelSpec } from '../../component/label';\nimport type { IBaseModelSpecTransformerResult } from '../../model/interface';\nimport { BaseModelSpecTransformer } from '../../model/base-model-transformer';\nimport type { ISeriesSpec } from '../../typings';\nimport { array, get, isArray, isValid, mergeSpec, transformSeriesThemeToMerge } from '../../util';\nimport type { SeriesMarkNameEnum } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../interface';\nimport { getDirectionFromSeriesSpec } from '../util/spec';\n\nexport class BaseSeriesSpecTransformer<T extends ISeriesSpec, K> extends BaseModelSpecTransformer<T, K> {\n markLabelSpec: Partial<Record<SeriesMarkNameEnum, TransformedLabelSpec[]>> = {};\n\n getLabelSpec(markName: string) {\n return this.markLabelSpec[markName];\n }\n\n setLabelSpec(markName: string, label: TransformedLabelSpec | TransformedLabelSpec[]) {\n this.markLabelSpec[markName] = array(label);\n }\n\n addLabelSpec(markName: string, label: TransformedLabelSpec, head = false) {\n if (!this.markLabelSpec[markName]) {\n this.markLabelSpec[markName] = [];\n }\n if (head) {\n // 排序靠前的 label 优先布局,尽可能避免碰撞隐藏\n this.markLabelSpec[markName].unshift(label);\n } else {\n this.markLabelSpec[markName].push(label);\n }\n }\n\n getTheme(spec: T, chartSpec: any): K {\n const direction = getDirectionFromSeriesSpec(spec);\n const chartTheme = this._option?.getTheme();\n const { markByName, mark } = chartTheme;\n const type = this._option.type;\n const theme = transformSeriesThemeToMerge(get(chartTheme, `series.${type}`), type, mark, markByName);\n const themeWithDirection = transformSeriesThemeToMerge(\n get(chartTheme, `series.${type}_${direction}`),\n `${type}_${direction}`,\n mark,\n markByName\n );\n return mergeSpec({}, theme, themeWithDirection);\n }\n\n /** 不建议重写该方法,最好重写对应子步骤 */\n transformSpec(spec: T, chartSpec: any, chartSpecInfo?: IChartSpecInfo): IBaseModelSpecTransformerResult<T, K> {\n const result = super.transformSpec(spec, chartSpec, chartSpecInfo);\n this._transformLabelSpec(result.spec);\n return {\n ...result,\n markLabelSpec: this.markLabelSpec\n };\n }\n\n protected _transformLabelSpec(spec: T) {\n // empty\n }\n\n protected _addMarkLabelSpec<V extends ISeries = ISeries>(\n spec: T,\n markName: SeriesMarkNameEnum,\n labelSpecKey: keyof T = 'label' as any,\n styleHandlerName: keyof V = 'initLabelMarkStyle',\n hasAnimation?: boolean,\n head?: boolean\n ): void {\n if (!spec) {\n return;\n }\n const labels = array<ILabelSpec>(spec[labelSpecKey]);\n labels.forEach(labelSpec => {\n if (labelSpec && labelSpec.visible) {\n this.addLabelSpec(\n markName,\n {\n animation: hasAnimation ?? spec.animation,\n ...labelSpec,\n getStyleHandler: (series: V) => (series[styleHandlerName] as any)?.bind(series)\n } as TransformedLabelSpec,\n head\n );\n }\n });\n }\n\n protected _getDefaultSpecFromChart(chartSpec: any): any {\n const spec = (super._getDefaultSpecFromChart(chartSpec) as any) ?? {};\n const { outerRadius, innerRadius, direction } = chartSpec;\n if (isValid(outerRadius)) {\n spec.outerRadius = outerRadius;\n }\n if (isValid(innerRadius)) {\n spec.innerRadius = innerRadius;\n }\n\n if (isValid(direction)) {\n spec.direction = direction;\n }\n\n return Object.keys(spec).length > 0 ? spec : undefined;\n }\n\n protected _mergeThemeToSpec(spec: T, chartSpec: any): { spec: T; theme: K } {\n const theme = this._theme;\n\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(chartSpec);\n // this._originalSpec + specFromChart + this._theme = this._spec\n const merge = (originalSpec: any) => {\n const result = mergeSpec({}, theme, specFromChart, originalSpec);\n const labelTheme = (theme as any).label;\n if (labelTheme && isObject(labelTheme) && isArray(result.label)) {\n result.label = result.label.map((label: ILabelSpec) => mergeSpec({}, labelTheme, label));\n }\n return result;\n };\n\n if (isArray(spec)) {\n return {\n spec: spec.map(specItem => merge(specItem)) as unknown as T,\n theme\n };\n }\n\n return {\n spec: merge(spec),\n theme\n };\n }\n return { spec, theme };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/series/base/base-series-transformer.ts"],"names":[],"mappings":"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","file":"base-series-transformer.js","sourcesContent":["import { isObject } from '@visactor/vutils';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { ILabelSpec, TransformedLabelSpec } from '../../component/label';\nimport type { IBaseModelSpecTransformerResult } from '../../model/interface';\nimport { BaseModelSpecTransformer } from '../../model/base-model-transformer';\nimport type { ISeriesSpec } from '../../typings';\nimport { array, get, isArray, isValid, mergeSpec, transformSeriesThemeToMerge } from '../../util';\nimport type { SeriesMarkNameEnum } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../interface';\nimport { getDirectionFromSeriesSpec } from '../util/spec';\n\nexport class BaseSeriesSpecTransformer<T extends ISeriesSpec, K> extends BaseModelSpecTransformer<T, K> {\n markLabelSpec: Partial<Record<SeriesMarkNameEnum, TransformedLabelSpec[]>> = {};\n\n getLabelSpec(markName: string) {\n return this.markLabelSpec[markName];\n }\n\n setLabelSpec(markName: string, label: TransformedLabelSpec | TransformedLabelSpec[]) {\n this.markLabelSpec[markName] = array(label);\n }\n\n addLabelSpec(markName: string, label: TransformedLabelSpec, head = false) {\n if (!this.markLabelSpec[markName]) {\n this.markLabelSpec[markName] = [];\n }\n if (head) {\n // 排序靠前的 label 优先布局,尽可能避免碰撞隐藏\n this.markLabelSpec[markName].unshift(label);\n } else {\n this.markLabelSpec[markName].push(label);\n }\n }\n\n getTheme(spec: T, chartSpec: any): K {\n const direction = getDirectionFromSeriesSpec(spec);\n const chartTheme = this._option?.getTheme();\n const { markByName, mark } = chartTheme;\n const type = this._option.type;\n // 基本主题\n const theme = transformSeriesThemeToMerge(get(chartTheme, `series.${type}`), type, mark, markByName);\n // 区分方向的主题\n const themeWithDirection = get(chartTheme, `series.${type}_${direction}`);\n // stack 状态下的主题\n const stack = spec.stack ?? themeWithDirection?.stack ?? theme?.stack;\n const themeWithStack = stack ? get(chartTheme, `series.${type}_stack`) : undefined;\n return mergeSpec({}, theme, themeWithDirection, themeWithStack);\n }\n\n /** 不建议重写该方法,最好重写对应子步骤 */\n transformSpec(spec: T, chartSpec: any, chartSpecInfo?: IChartSpecInfo): IBaseModelSpecTransformerResult<T, K> {\n const result = super.transformSpec(spec, chartSpec, chartSpecInfo);\n this._transformLabelSpec(result.spec);\n return {\n ...result,\n markLabelSpec: this.markLabelSpec\n };\n }\n\n protected _transformLabelSpec(spec: T) {\n // empty\n }\n\n protected _addMarkLabelSpec<V extends ISeries = ISeries>(\n spec: T,\n markName: SeriesMarkNameEnum,\n labelSpecKey: keyof T = 'label' as any,\n styleHandlerName: keyof V = 'initLabelMarkStyle',\n hasAnimation?: boolean,\n head?: boolean\n ): void {\n if (!spec) {\n return;\n }\n const labels = array<ILabelSpec>(spec[labelSpecKey]);\n labels.forEach(labelSpec => {\n if (labelSpec && labelSpec.visible) {\n this.addLabelSpec(\n markName,\n {\n animation: hasAnimation ?? spec.animation,\n ...labelSpec,\n getStyleHandler: (series: V) => (series[styleHandlerName] as any)?.bind(series)\n } as TransformedLabelSpec,\n head\n );\n }\n });\n }\n\n protected _getDefaultSpecFromChart(chartSpec: any): any {\n const spec = (super._getDefaultSpecFromChart(chartSpec) as any) ?? {};\n const { outerRadius, innerRadius, direction } = chartSpec;\n if (isValid(outerRadius)) {\n spec.outerRadius = outerRadius;\n }\n if (isValid(innerRadius)) {\n spec.innerRadius = innerRadius;\n }\n\n if (isValid(direction)) {\n spec.direction = direction;\n }\n\n return Object.keys(spec).length > 0 ? spec : undefined;\n }\n\n protected _mergeThemeToSpec(spec: T, chartSpec: any): { spec: T; theme: K } {\n const theme = this._theme;\n\n if (this._shouldMergeThemeToSpec()) {\n const specFromChart = this._getDefaultSpecFromChart(chartSpec);\n // this._originalSpec + specFromChart + this._theme = this._spec\n const merge = (originalSpec: any) => {\n const result = mergeSpec({}, theme, specFromChart, originalSpec);\n const labelTheme = (theme as any).label;\n if (labelTheme && isObject(labelTheme) && isArray(result.label)) {\n result.label = result.label.map((label: ILabelSpec) => mergeSpec({}, labelTheme, label));\n }\n return result;\n };\n\n if (isArray(spec)) {\n return {\n spec: spec.map(specItem => merge(specItem)) as unknown as T,\n theme\n };\n }\n\n return {\n spec: merge(spec),\n theme\n };\n }\n return { spec, theme };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/interface/series.ts"],"names":[],"mappings":"","file":"series.js","sourcesContent":["import type { PanEventParam, ZoomEventParam } from '../../event/interface';\nimport type { IModel } from '../../model/interface';\nimport type { DataSet, DataView, ITransformOptions } from '@visactor/vdataset';\nimport type { IMark } from '../../mark/interface';\nimport type { CoordinateType, IPoint, IPolarPoint } from '../../typings/coordinate';\nimport type { IRegion } from '../../region/interface';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type { IAxisHelper } from '../../component/axis/cartesian/interface';\nimport type { IPolarAxisHelper } from '../../component/axis/polar/interface';\nimport type { ISeriesSeriesInfo, ISeriesSpecInfo, ISeriesStackData } from './common';\nimport type { ISeriesTooltipHelper } from './tooltip-helper';\nimport type { IInvalidType, Datum, DirectionType, IGroup, StringOrNumber } from '../../typings';\nimport type { ISeriesMarkAttributeContext, StateValueType } from '../../compile/mark';\nimport type { StatisticOperations } from '../../data/transforms/dimension-statistics';\nimport type { IGroupMark } from '../../mark/group';\nimport type { IArcLabelSpec } from '../pie/interface';\nimport type { IGeoCoordinateHelper } from '../../component/geo/interface';\nimport type { ILabelMark } from '../../mark/label';\n\n// 使用类型约束系列支持的样式,但是感觉这样不合理 不使用这样的方式去做\n// export interface ISeries<A extends string> extends IModel\n\nexport interface ISeries extends IModel {\n readonly type: string;\n readonly name?: string;\n\n // tooltip\n tooltipHelper: ISeriesTooltipHelper;\n\n // 配置\n getSpec: () => any;\n\n // 坐标系信息\n readonly coordinate: CoordinateType;\n\n // layout\n onLayoutEnd: (ctx: any) => void;\n\n // 数据\n getRawData: () => DataView | undefined;\n getViewDataFilter: () => DataView | undefined;\n getViewData: () => DataView | undefined;\n getViewDataProductId: () => string | undefined;\n getRawDataStatisticsByField: (field: string, isNumeric?: boolean) => { values?: any[]; min?: number; max?: number };\n getViewDataStatistics?: () => DataView | undefined;\n getDataSet?: () => DataSet;\n getFieldAlias: (field: string) => string;\n // 更新原始数据\n updateRawData: (d: any) => void;\n setData?: (dv: DataView) => void;\n rawDataUpdate: (d: DataView) => void;\n viewDataUpdate: (d: DataView) => void;\n viewDataStatisticsUpdate: (d: DataView) => void;\n addViewDataFilter: (option: ITransformOptions) => void;\n reFilterViewData: () => void;\n reTransformViewData: () => void;\n fillData: () => void;\n\n /**\n * 常见数据使用问题\n *\n * 一、使用图表最终展示数据\n * 比如 markline,数值轴 这样的组件\n * 需要操作展示数据,做 筛选 | 变换 的\n * 比如图例,datazoom\n series.getViewData().transform({},false)\n * 需要获取展示数据,生成自身数据做自身展示的 使用消息机制。比如 轴\n series.event.on('viewDataStatisticsUpdate' | 'viewDataUpdate', { filter: ({ model }) => model?.id === series.id }, () => {\n this.updateData();\n });\n *\n * 二、使用图表原始数据\n * 比如图例,datazoom\n * 需要使用原始数据信息,生成自身数据\n * 比如图例,datazoom\n series.getRawData().parserData | latestData // parserData latestData 区别见下面说明\n series.getRawDataStatistics().latestData\n\n series.event.on('rawDataUpdate', { filter: ({ model }) => model?.id === series.id }, () => {\n this.updateData();\n });\n * 或者使用系列自身的特殊api 特殊情况外不建议这样用\n series.getSeriesInfoList()\n\n * 建议:使用数据时需要注意数据更新,使用系列数据更新组件数据的场景,只建议使用消息监听\n series.event.on(\n 'viewDataStatisticsUpdate' |\n 'viewDataUpdate' |\n 'rawDataUpdate',\n { filter: ({ model }) => model?.id === series.id })\n */\n\n // 区域\n getRegion: () => IRegion;\n\n // mark\n initMark: () => void;\n getMarks: () => IMark[];\n getMarksWithoutRoot: () => IMark[];\n getMarkNameMap: () => Record<string, IMark>;\n getMarksInType: (type: string | string[]) => IMark[];\n getMarkInName: (name: string) => IMark | undefined;\n getMarkInId: (id: number) => IMark | undefined;\n\n getRootMark: () => IGroupMark;\n getActiveMarks: () => IMark[];\n\n // example\n /**\n * [\n * {\n * fields: {\n * x: '周一',\n * __VChart_STACK: 'stack'\n * },\n * valueField: 'y',\n * values: [{x: '周一', y: 20}];\n * },\n * {\n * fields: {\n * x: '周一',\n * stack: 'stackA'\n * },\n * valueField: 'y',\n * values: [{x: '周一', y: 20, stack: 'stackA'}];\n * },\n * {\n * fields: {\n * x: '周一',\n * stack: 'stackB'\n * },\n * valueField: 'y',\n * values: [{x: '周一', y: 20, stack: 'stackB'}];\n * },\n * ]\n */\n getStackData: () => ISeriesStackData;\n\n getStack: () => boolean;\n getStackValue: () => StringOrNumber | undefined;\n getPercent: () => boolean;\n getStackOffsetSilhouette: () => boolean;\n\n getStackValueField: () => string;\n setValueFieldToStack: () => void;\n setValueFieldToPercent: () => void;\n setValueFieldToStackOffsetSilhouette: () => void;\n\n getStackGroupFields: () => string[];\n getSeriesField: () => string | undefined;\n getSeriesKeys: () => string[];\n getSeriesStyle: (datum: Datum) => ISeriesSeriesInfo['style'];\n getSeriesInfoInField: (field: string) => ISeriesSeriesInfo[];\n getSeriesInfoList: () => ISeriesSeriesInfo[];\n getGroups: () => IGroup | undefined;\n getDimensionField: () => string[];\n getMeasureField: () => string[];\n getStatisticFields: () => { key: string; operations: StatisticOperations }[];\n\n setSeriesField: (field: string) => void;\n handleZoom?: (e: ZoomEventParam) => void;\n handlePan?: (e: PanEventParam) => void;\n\n // 数据映射\n dataToPosition: (datum: Datum) => IPoint | null;\n dataToPositionX: (datum: Datum) => number | null;\n dataToPositionY: (datum: Datum) => number | null;\n dataToPositionZ?: (datum: Datum) => number | null;\n valueToPosition: (value1: any, value2?: any) => IPoint;\n\n getColorAttribute: () => { scale: IBaseScale; field: string };\n getDefaultColorDomain: () => any[];\n\n getInvalidType: () => IInvalidType;\n\n // 交互\n\n /**\n * 获取系列默认的缩略图形\n * @returns 默认的缩略图形\n */\n getDefaultShapeType: () => string;\n /** 获取系列标签配置 */\n initLabelMarkStyle?: (labelMark: ILabelMark) => void;\n\n getGroupFields: () => string[];\n\n getSpecInfo: () => ISeriesSpecInfo;\n getMarkAttributeContext: () => ISeriesMarkAttributeContext;\n}\n\nexport interface ICartesianSeries extends ISeries {\n readonly coordinate: 'cartesian';\n readonly direction: DirectionType;\n\n scaleX: IBaseScale;\n setScaleX: (s: IBaseScale) => void;\n scaleY: IBaseScale;\n setScaleY: (s: IBaseScale) => void;\n scaleZ?: IBaseScale;\n setScaleZ: (s: IBaseScale) => void;\n // 要考虑基于多个field的场景\n fieldX: string[];\n setFieldX: (field: string | string[], level?: number) => void;\n fieldX2: string;\n setFieldX2: (field: string) => void;\n fieldY: string[];\n setFieldY: (field: string | string[], level?: number) => void;\n fieldY2: string;\n setFieldY2: (field: string) => void;\n fieldZ?: string[];\n setFieldZ: (field: string | string[], level?: number) => void;\n\n positionToData: (p: IPoint) => any | null;\n positionToDataX: (xPos: number) => any | null;\n positionToDataY: (yPos: number) => any | null;\n\n // 轴API\n getXAxisHelper: () => IAxisHelper;\n setXAxisHelper: (h: IAxisHelper) => void;\n getYAxisHelper: () => IAxisHelper;\n setYAxisHelper: (h: IAxisHelper) => void;\n getZAxisHelper: () => IAxisHelper | undefined;\n setZAxisHelper: (h: IAxisHelper) => void;\n\n dataToPositionX1: (datum: Datum) => number | null;\n dataToPositionY1: (datum: Datum) => number | null;\n\n valueToPosition: (value1: any, value2: any) => IPoint;\n valueToPositionX: (value: StringOrNumber | StringOrNumber[], datum?: any) => any;\n valueToPositionY: (value: StringOrNumber | StringOrNumber[], datum?: any) => any;\n}\n\nexport interface IPolarSeries extends ISeries {\n readonly coordinate: 'polar';\n\n outerRadius: number;\n innerRadius: number;\n\n getRadiusField: () => string[];\n setRadiusField: (field: string | string[], level?: number) => void;\n getAngleField: () => string[];\n setAngleField: (field: string | string[], level?: number) => void;\n\n // 轴将是一个实现了 scale 的组件。这里接收的可以是一个轴\n radiusScale: IBaseScale;\n setRadiusScale: (s: IBaseScale) => void;\n angleScale: IBaseScale;\n setAngleScale: (s: IBaseScale) => void;\n\n // TODO:\n positionToData: (point: IPolarPoint) => any;\n radiusToData: (radius: number) => any;\n angleToData: (angle: number) => any;\n\n // 轴\n radiusAxisHelper: IPolarAxisHelper;\n angleAxisHelper: IPolarAxisHelper;\n\n valueToPosition: (value1: any, value2: any) => IPoint;\n}\n\nexport interface IGeoSeries extends ISeries {\n readonly coordinate: 'geo';\n\n nameField?: string;\n valueField?: string;\n\n getMapViewData: () => DataView;\n getNameProperty: () => string;\n\n dataToPosition: (datum: any) => IPoint | null;\n dataToLatitude: (latValue: any) => number | null;\n dataToLongitude: (lonValue: any) => number | null;\n\n positionToData: (p: IPoint) => any;\n latitudeToData: (lat: number) => any;\n longitudeToData: (lon: number) => any;\n\n getCoordinateHelper: () => IGeoCoordinateHelper;\n setCoordinateHelper: (helper: IGeoCoordinateHelper) => void;\n\n valueToPosition: (value1: any, value2: any) => IPoint;\n getDatumCenter: (datum: any) => [number, number];\n}\n\n// 收拢扇区标签形式依赖的 api\nexport interface IArcSeries extends IPolarSeries {\n center: (() => IPoint) | IPoint;\n getRadius: (state?: StateValueType) => number;\n getInnerRadius: (state?: StateValueType) => number;\n\n computeRadius: (r: number, k?: number) => number;\n computeDatumRadius: (datum: any, state?: StateValueType) => number;\n}\n\nexport interface IFunnelSeries extends ISeries {\n getPoints: (datum: any) => IPoint[];\n getCategoryField: () => string;\n\n valueToPosition: (value: any) => IPoint;\n}\n"]}
1
+ {"version":3,"sources":["../src/series/interface/series.ts"],"names":[],"mappings":"","file":"series.js","sourcesContent":["import type { PanEventParam, ZoomEventParam } from '../../event/interface';\nimport type { IModel } from '../../model/interface';\nimport type { DataSet, DataView, ITransformOptions } from '@visactor/vdataset';\nimport type { IMark } from '../../mark/interface';\nimport type { CoordinateType, IPoint, IPolarPoint } from '../../typings/coordinate';\nimport type { IRegion } from '../../region/interface';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type { IAxisHelper } from '../../component/axis/cartesian/interface';\nimport type { IPolarAxisHelper } from '../../component/axis/polar/interface';\nimport type { ISeriesSeriesInfo, ISeriesSpecInfo, ISeriesStackData } from './common';\nimport type { ISeriesTooltipHelper } from './tooltip-helper';\nimport type { IInvalidType, Datum, DirectionType, IGroup, StringOrNumber } from '../../typings';\nimport type { ISeriesMarkAttributeContext, StateValueType } from '../../compile/mark';\nimport type { StatisticOperations } from '../../data/transforms/dimension-statistics';\nimport type { IGroupMark } from '../../mark/group';\nimport type { IGeoCoordinateHelper } from '../../component/geo/interface';\nimport type { ILabelMark } from '../../mark/label';\n\n// 使用类型约束系列支持的样式,但是感觉这样不合理 不使用这样的方式去做\n// export interface ISeries<A extends string> extends IModel\n\nexport interface ISeries extends IModel {\n readonly type: string;\n readonly name?: string;\n\n // tooltip\n tooltipHelper: ISeriesTooltipHelper;\n\n // 配置\n getSpec: () => any;\n\n // 坐标系信息\n readonly coordinate: CoordinateType;\n\n // layout\n onLayoutEnd: (ctx: any) => void;\n\n // 数据\n getRawData: () => DataView | undefined;\n getViewDataFilter: () => DataView | undefined;\n getViewData: () => DataView | undefined;\n getViewDataProductId: () => string | undefined;\n getRawDataStatisticsByField: (field: string, isNumeric?: boolean) => { values?: any[]; min?: number; max?: number };\n getViewDataStatistics?: () => DataView | undefined;\n getDataSet?: () => DataSet;\n getFieldAlias: (field: string) => string;\n // 更新原始数据\n updateRawData: (d: any) => void;\n setData?: (dv: DataView) => void;\n rawDataUpdate: (d: DataView) => void;\n viewDataUpdate: (d: DataView) => void;\n viewDataStatisticsUpdate: (d: DataView) => void;\n addViewDataFilter: (option: ITransformOptions) => void;\n reFilterViewData: () => void;\n reTransformViewData: () => void;\n fillData: () => void;\n\n /**\n * 常见数据使用问题\n *\n * 一、使用图表最终展示数据\n * 比如 markline,数值轴 这样的组件\n * 需要操作展示数据,做 筛选 | 变换 的\n * 比如图例,datazoom\n series.getViewData().transform({},false)\n * 需要获取展示数据,生成自身数据做自身展示的 使用消息机制。比如 轴\n series.event.on('viewDataStatisticsUpdate' | 'viewDataUpdate', { filter: ({ model }) => model?.id === series.id }, () => {\n this.updateData();\n });\n *\n * 二、使用图表原始数据\n * 比如图例,datazoom\n * 需要使用原始数据信息,生成自身数据\n * 比如图例,datazoom\n series.getRawData().parserData | latestData // parserData latestData 区别见下面说明\n series.getRawDataStatistics().latestData\n\n series.event.on('rawDataUpdate', { filter: ({ model }) => model?.id === series.id }, () => {\n this.updateData();\n });\n * 或者使用系列自身的特殊api 特殊情况外不建议这样用\n series.getSeriesInfoList()\n\n * 建议:使用数据时需要注意数据更新,使用系列数据更新组件数据的场景,只建议使用消息监听\n series.event.on(\n 'viewDataStatisticsUpdate' |\n 'viewDataUpdate' |\n 'rawDataUpdate',\n { filter: ({ model }) => model?.id === series.id })\n */\n\n // 区域\n getRegion: () => IRegion;\n\n // mark\n initMark: () => void;\n getMarks: () => IMark[];\n getMarksWithoutRoot: () => IMark[];\n getMarkNameMap: () => Record<string, IMark>;\n getMarksInType: (type: string | string[]) => IMark[];\n getMarkInName: (name: string) => IMark | undefined;\n getMarkInId: (id: number) => IMark | undefined;\n\n getRootMark: () => IGroupMark;\n getActiveMarks: () => IMark[];\n\n // example\n /**\n * [\n * {\n * fields: {\n * x: '周一',\n * __VChart_STACK: 'stack'\n * },\n * valueField: 'y',\n * values: [{x: '周一', y: 20}];\n * },\n * {\n * fields: {\n * x: '周一',\n * stack: 'stackA'\n * },\n * valueField: 'y',\n * values: [{x: '周一', y: 20, stack: 'stackA'}];\n * },\n * {\n * fields: {\n * x: '周一',\n * stack: 'stackB'\n * },\n * valueField: 'y',\n * values: [{x: '周一', y: 20, stack: 'stackB'}];\n * },\n * ]\n */\n getStackData: () => ISeriesStackData;\n\n getStack: () => boolean;\n getStackValue: () => StringOrNumber | undefined;\n getPercent: () => boolean;\n getStackOffsetSilhouette: () => boolean;\n\n getStackValueField: () => string;\n setValueFieldToStack: () => void;\n setValueFieldToPercent: () => void;\n setValueFieldToStackOffsetSilhouette: () => void;\n\n getStackGroupFields: () => string[];\n getSeriesField: () => string | undefined;\n getSeriesKeys: () => string[];\n getSeriesStyle: (datum: Datum) => ISeriesSeriesInfo['style'];\n getSeriesInfoInField: (field: string) => ISeriesSeriesInfo[];\n getSeriesInfoList: () => ISeriesSeriesInfo[];\n getGroups: () => IGroup | undefined;\n getDimensionField: () => string[];\n getMeasureField: () => string[];\n getStatisticFields: () => { key: string; operations: StatisticOperations }[];\n\n setSeriesField: (field: string) => void;\n handleZoom?: (e: ZoomEventParam) => void;\n handlePan?: (e: PanEventParam) => void;\n\n // 数据映射\n dataToPosition: (datum: Datum) => IPoint | null;\n dataToPositionX: (datum: Datum) => number | null;\n dataToPositionY: (datum: Datum) => number | null;\n dataToPositionZ?: (datum: Datum) => number | null;\n valueToPosition: (value1: any, value2?: any) => IPoint;\n\n getColorAttribute: () => { scale: IBaseScale; field: string };\n getDefaultColorDomain: () => any[];\n\n getInvalidType: () => IInvalidType;\n\n // 交互\n\n /**\n * 获取系列默认的缩略图形\n * @returns 默认的缩略图形\n */\n getDefaultShapeType: () => string;\n /** 获取系列标签配置 */\n initLabelMarkStyle?: (labelMark: ILabelMark) => void;\n\n getGroupFields: () => string[];\n\n getSpecInfo: () => ISeriesSpecInfo;\n getMarkAttributeContext: () => ISeriesMarkAttributeContext;\n}\n\nexport interface ICartesianSeries extends ISeries {\n readonly coordinate: 'cartesian';\n readonly direction: DirectionType;\n\n scaleX: IBaseScale;\n setScaleX: (s: IBaseScale) => void;\n scaleY: IBaseScale;\n setScaleY: (s: IBaseScale) => void;\n scaleZ?: IBaseScale;\n setScaleZ: (s: IBaseScale) => void;\n // 要考虑基于多个field的场景\n fieldX: string[];\n setFieldX: (field: string | string[], level?: number) => void;\n fieldX2: string;\n setFieldX2: (field: string) => void;\n fieldY: string[];\n setFieldY: (field: string | string[], level?: number) => void;\n fieldY2: string;\n setFieldY2: (field: string) => void;\n fieldZ?: string[];\n setFieldZ: (field: string | string[], level?: number) => void;\n\n positionToData: (p: IPoint) => any | null;\n positionToDataX: (xPos: number) => any | null;\n positionToDataY: (yPos: number) => any | null;\n\n // 轴API\n getXAxisHelper: () => IAxisHelper;\n setXAxisHelper: (h: IAxisHelper) => void;\n getYAxisHelper: () => IAxisHelper;\n setYAxisHelper: (h: IAxisHelper) => void;\n getZAxisHelper: () => IAxisHelper | undefined;\n setZAxisHelper: (h: IAxisHelper) => void;\n\n dataToPositionX1: (datum: Datum) => number | null;\n dataToPositionY1: (datum: Datum) => number | null;\n\n valueToPosition: (value1: any, value2: any) => IPoint;\n valueToPositionX: (value: StringOrNumber | StringOrNumber[], datum?: any) => any;\n valueToPositionY: (value: StringOrNumber | StringOrNumber[], datum?: any) => any;\n}\n\nexport interface IPolarSeries extends ISeries {\n readonly coordinate: 'polar';\n\n outerRadius: number;\n innerRadius: number;\n\n getRadiusField: () => string[];\n setRadiusField: (field: string | string[], level?: number) => void;\n getAngleField: () => string[];\n setAngleField: (field: string | string[], level?: number) => void;\n\n // 轴将是一个实现了 scale 的组件。这里接收的可以是一个轴\n radiusScale: IBaseScale;\n setRadiusScale: (s: IBaseScale) => void;\n angleScale: IBaseScale;\n setAngleScale: (s: IBaseScale) => void;\n\n // TODO:\n positionToData: (point: IPolarPoint) => any;\n radiusToData: (radius: number) => any;\n angleToData: (angle: number) => any;\n\n // 轴\n radiusAxisHelper: IPolarAxisHelper;\n angleAxisHelper: IPolarAxisHelper;\n\n valueToPosition: (value1: any, value2: any) => IPoint;\n}\n\nexport interface IGeoSeries extends ISeries {\n readonly coordinate: 'geo';\n\n nameField?: string;\n valueField?: string;\n\n getMapViewData: () => DataView;\n getNameProperty: () => string;\n\n dataToPosition: (datum: any) => IPoint | null;\n dataToLatitude: (latValue: any) => number | null;\n dataToLongitude: (lonValue: any) => number | null;\n\n positionToData: (p: IPoint) => any;\n latitudeToData: (lat: number) => any;\n longitudeToData: (lon: number) => any;\n\n getCoordinateHelper: () => IGeoCoordinateHelper;\n setCoordinateHelper: (helper: IGeoCoordinateHelper) => void;\n\n valueToPosition: (value1: any, value2: any) => IPoint;\n getDatumCenter: (datum: any) => [number, number];\n}\n\n// 收拢扇区标签形式依赖的 api\nexport interface IArcSeries extends IPolarSeries {\n center: (() => IPoint) | IPoint;\n getRadius: (state?: StateValueType) => number;\n getInnerRadius: (state?: StateValueType) => number;\n\n computeRadius: (r: number, k?: number) => number;\n computeDatumRadius: (datum: any, state?: StateValueType) => number;\n}\n\nexport interface IFunnelSeries extends ISeries {\n getPoints: (datum: any) => IPoint[];\n getCategoryField: () => string;\n\n valueToPosition: (value: any) => IPoint;\n}\n"]}
@@ -30,15 +30,19 @@ export interface ISeriesTheme {
30
30
  [SeriesTypeEnum.bar]?: IBarSeriesTheme;
31
31
  [SeriesTypeForThemeEnum.bar_vertical]?: IBarSeriesTheme;
32
32
  [SeriesTypeForThemeEnum.bar_horizontal]?: IBarSeriesTheme;
33
+ [SeriesTypeForThemeEnum.bar_stack]?: IBarSeriesTheme;
33
34
  [SeriesTypeEnum.bar3d]?: IBar3dSeriesTheme;
34
35
  [SeriesTypeForThemeEnum.bar3d_vertical]?: IBar3dSeriesTheme;
35
36
  [SeriesTypeForThemeEnum.bar3d_horizontal]?: IBar3dSeriesTheme;
37
+ [SeriesTypeForThemeEnum.bar3d_stack]?: IBar3dSeriesTheme;
36
38
  [SeriesTypeEnum.line]?: ILineSeriesTheme;
37
39
  [SeriesTypeForThemeEnum.line_vertical]?: ILineSeriesTheme;
38
40
  [SeriesTypeForThemeEnum.line_horizontal]?: ILineSeriesTheme;
41
+ [SeriesTypeForThemeEnum.line_stack]?: ILineSeriesTheme;
39
42
  [SeriesTypeEnum.area]?: IAreaSeriesTheme;
40
43
  [SeriesTypeForThemeEnum.area_vertical]?: IAreaSeriesTheme;
41
44
  [SeriesTypeForThemeEnum.area_horizontal]?: IAreaSeriesTheme;
45
+ [SeriesTypeForThemeEnum.area_stack]?: IAreaSeriesTheme;
42
46
  [SeriesTypeEnum.rangeColumn]?: IRangeColumnSeriesTheme;
43
47
  [SeriesTypeForThemeEnum.rangeColumn_vertical]?: IRangeColumnSeriesTheme;
44
48
  [SeriesTypeForThemeEnum.rangeColumn_horizontal]?: IRangeColumnSeriesTheme;
@@ -48,6 +52,7 @@ export interface ISeriesTheme {
48
52
  [SeriesTypeEnum.linearProgress]?: ILinearProgressSeriesTheme;
49
53
  [SeriesTypeForThemeEnum.linearProgress_vertical]?: ILinearProgressSeriesTheme;
50
54
  [SeriesTypeForThemeEnum.linearProgress_horizontal]?: ILinearProgressSeriesTheme;
55
+ [SeriesTypeForThemeEnum.linearProgress_stack]?: ILinearProgressSeriesTheme;
51
56
  [SeriesTypeEnum.boxPlot]?: IBoxPlotSeriesTheme;
52
57
  [SeriesTypeForThemeEnum.boxPlot_vertical]?: IBoxPlotSeriesTheme;
53
58
  [SeriesTypeForThemeEnum.boxPlot_horizontal]?: IBoxPlotSeriesTheme;
@@ -59,11 +64,14 @@ export interface ISeriesTheme {
59
64
  [SeriesTypeForThemeEnum.waterfall_horizontal]?: IWaterfallSeriesTheme;
60
65
  [SeriesTypeEnum.scatter]?: IScatterSeriesTheme;
61
66
  [SeriesTypeEnum.radar]?: IRadarSeriesTheme;
67
+ [SeriesTypeForThemeEnum.radar_stack]?: IRadarSeriesTheme;
62
68
  [SeriesTypeEnum.pie]?: IPieSeriesTheme;
63
69
  [SeriesTypeEnum.pie3d]?: IPie3dSeriesTheme;
64
70
  [SeriesTypeEnum.rose]?: IRoseSeriesTheme;
71
+ [SeriesTypeForThemeEnum.rose_stack]?: IRoseSeriesTheme;
65
72
  [SeriesTypeEnum.map]?: IMapSeriesTheme;
66
73
  [SeriesTypeEnum.circularProgress]?: ICircularProgressSeriesTheme;
74
+ [SeriesTypeForThemeEnum.circularProgress_stack]?: ICircularProgressSeriesTheme;
67
75
  [SeriesTypeEnum.link]?: ILinkSeriesTheme;
68
76
  [SeriesTypeEnum.dot]?: IDotSeriesTheme;
69
77
  [SeriesTypeEnum.wordCloud]?: IWordCloudSeriesTheme;
@@ -82,12 +90,16 @@ export interface ISeriesTheme {
82
90
  export declare enum SeriesTypeForThemeEnum {
83
91
  area_horizontal = "area_horizontal",
84
92
  area_vertical = "area_vertical",
93
+ area_stack = "area_stack",
85
94
  line_horizontal = "line_horizontal",
86
95
  line_vertical = "line_vertical",
96
+ line_stack = "line_stack",
87
97
  bar_horizontal = "bar_horizontal",
88
98
  bar_vertical = "bar_vertical",
99
+ bar_stack = "bar_stack",
89
100
  bar3d_horizontal = "bar3d_horizontal",
90
101
  bar3d_vertical = "bar3d_vertical",
102
+ bar3d_stack = "bar3d_stack",
91
103
  rangeColumn_horizontal = "rangeColumn_horizontal",
92
104
  rangeColumn_vertical = "rangeColumn_vertical",
93
105
  rangeColumn3d_horizontal = "rangeColumn3d_horizontal",
@@ -96,11 +108,15 @@ export declare enum SeriesTypeForThemeEnum {
96
108
  rangeArea_vertical = "rangeArea_vertical",
97
109
  linearProgress_horizontal = "linearProgress_horizontal",
98
110
  linearProgress_vertical = "linearProgress_vertical",
111
+ linearProgress_stack = "linearProgress_stack",
99
112
  boxPlot_horizontal = "boxPlot_horizontal",
100
113
  boxPlot_vertical = "boxPlot_vertical",
101
114
  sankey_horizontal = "sankey_horizontal",
102
115
  sankey_vertical = "sankey_vertical",
103
116
  waterfall_horizontal = "waterfall_horizontal",
104
- waterfall_vertical = "waterfall_vertical"
117
+ waterfall_vertical = "waterfall_vertical",
118
+ circularProgress_stack = "circularProgress_stack",
119
+ radar_stack = "radar_stack",
120
+ rose_stack = "rose_stack"
105
121
  }
106
122
  export declare const seriesMarkInfoMap: Record<SeriesTypeEnum, SeriesMarkMap>;
@@ -10,17 +10,21 @@ var SeriesTypeForThemeEnum;
10
10
 
11
11
  !function(SeriesTypeForThemeEnum) {
12
12
  SeriesTypeForThemeEnum.area_horizontal = "area_horizontal", SeriesTypeForThemeEnum.area_vertical = "area_vertical",
13
- SeriesTypeForThemeEnum.line_horizontal = "line_horizontal", SeriesTypeForThemeEnum.line_vertical = "line_vertical",
13
+ SeriesTypeForThemeEnum.area_stack = "area_stack", SeriesTypeForThemeEnum.line_horizontal = "line_horizontal",
14
+ SeriesTypeForThemeEnum.line_vertical = "line_vertical", SeriesTypeForThemeEnum.line_stack = "line_stack",
14
15
  SeriesTypeForThemeEnum.bar_horizontal = "bar_horizontal", SeriesTypeForThemeEnum.bar_vertical = "bar_vertical",
15
- SeriesTypeForThemeEnum.bar3d_horizontal = "bar3d_horizontal", SeriesTypeForThemeEnum.bar3d_vertical = "bar3d_vertical",
16
+ SeriesTypeForThemeEnum.bar_stack = "bar_stack", SeriesTypeForThemeEnum.bar3d_horizontal = "bar3d_horizontal",
17
+ SeriesTypeForThemeEnum.bar3d_vertical = "bar3d_vertical", SeriesTypeForThemeEnum.bar3d_stack = "bar3d_stack",
16
18
  SeriesTypeForThemeEnum.rangeColumn_horizontal = "rangeColumn_horizontal", SeriesTypeForThemeEnum.rangeColumn_vertical = "rangeColumn_vertical",
17
19
  SeriesTypeForThemeEnum.rangeColumn3d_horizontal = "rangeColumn3d_horizontal", SeriesTypeForThemeEnum.rangeColumn3d_vertical = "rangeColumn3d_vertical",
18
20
  SeriesTypeForThemeEnum.rangeArea_horizontal = "rangeArea_horizontal", SeriesTypeForThemeEnum.rangeArea_vertical = "rangeArea_vertical",
19
21
  SeriesTypeForThemeEnum.linearProgress_horizontal = "linearProgress_horizontal",
20
- SeriesTypeForThemeEnum.linearProgress_vertical = "linearProgress_vertical", SeriesTypeForThemeEnum.boxPlot_horizontal = "boxPlot_horizontal",
21
- SeriesTypeForThemeEnum.boxPlot_vertical = "boxPlot_vertical", SeriesTypeForThemeEnum.sankey_horizontal = "sankey_horizontal",
22
- SeriesTypeForThemeEnum.sankey_vertical = "sankey_vertical", SeriesTypeForThemeEnum.waterfall_horizontal = "waterfall_horizontal",
23
- SeriesTypeForThemeEnum.waterfall_vertical = "waterfall_vertical";
22
+ SeriesTypeForThemeEnum.linearProgress_vertical = "linearProgress_vertical", SeriesTypeForThemeEnum.linearProgress_stack = "linearProgress_stack",
23
+ SeriesTypeForThemeEnum.boxPlot_horizontal = "boxPlot_horizontal", SeriesTypeForThemeEnum.boxPlot_vertical = "boxPlot_vertical",
24
+ SeriesTypeForThemeEnum.sankey_horizontal = "sankey_horizontal", SeriesTypeForThemeEnum.sankey_vertical = "sankey_vertical",
25
+ SeriesTypeForThemeEnum.waterfall_horizontal = "waterfall_horizontal", SeriesTypeForThemeEnum.waterfall_vertical = "waterfall_vertical",
26
+ SeriesTypeForThemeEnum.circularProgress_stack = "circularProgress_stack", SeriesTypeForThemeEnum.radar_stack = "radar_stack",
27
+ SeriesTypeForThemeEnum.rose_stack = "rose_stack";
24
28
  }(SeriesTypeForThemeEnum = exports.SeriesTypeForThemeEnum || (exports.SeriesTypeForThemeEnum = {})),
25
29
  exports.seriesMarkInfoMap = {
26
30
  [type_1.SeriesTypeEnum.bar]: constant_1.barSeriesMark,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/series/interface/theme.ts"],"names":[],"mappings":"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","file":"theme.js","sourcesContent":["import type { IWaterfallSeriesTheme } from '../waterfall/interface';\nimport type { IBoxPlotSeriesTheme } from '../box-plot/interface';\nimport type { IBar3dSeriesTheme, IBarSeriesTheme } from '../bar/interface';\nimport type { ILineSeriesTheme } from '../line/interface';\nimport type { IScatterSeriesTheme } from '../scatter/interface';\nimport type { IAreaSeriesTheme } from '../area/interface';\nimport type { IRadarSeriesTheme } from '../radar/interface';\nimport type { IPie3dSeriesTheme, IPieSeriesTheme } from '../pie/interface';\nimport type { IRoseSeriesTheme } from '../rose/interface';\nimport type { IMapSeriesTheme } from '../map/interface';\nimport type { ICircularProgressSeriesTheme } from '../progress/circular/interface';\nimport type { ILinkSeriesTheme } from '../link/interface';\nimport type { IDotSeriesTheme } from '../dot/interface';\nimport type { IWordCloud3dSeriesTheme, IWordCloudSeriesTheme } from '../word-cloud/interface';\nimport type { IFunnel3dSeriesTheme, IFunnelSeriesTheme } from '../funnel/interface';\nimport type { ILinearProgressSeriesTheme } from '../progress/linear/interface';\nimport type { IGaugePointerSeriesTheme, IGaugeSeriesTheme } from '../gauge';\nimport type { ISankeySeriesTheme } from '../sankey/interface';\nimport type { ITreemapSeriesTheme } from '../treemap/interface';\nimport type { ISunburstSeriesTheme } from '../sunburst/interface';\nimport type { IRangeColumnSeriesTheme } from '../range-column/interface';\nimport type { ICirclePackingSeriesTheme } from '../circle-packing/interface';\nimport type { IHeatmapSeriesTheme } from '../heatmap/interface';\nimport type { ICorrelationSeriesTheme } from '../correlation/interface';\nimport { SeriesTypeEnum } from './type';\nimport type { SeriesMarkMap } from './common';\nimport { bar3dSeriesMark, barSeriesMark } from '../bar/constant';\nimport { lineSeriesMark } from '../line/constant';\nimport { scatterSeriesMark } from '../scatter/constant';\nimport { areaSeriesMark } from '../area/constant';\nimport { radarSeriesMark } from '../radar/constant';\nimport { pie3dSeriesMark, pieSeriesMark } from '../pie/constant';\nimport { roseSeriesMark } from '../rose/constant';\nimport { mapSeriesMark } from '../map/constant';\nimport { circularProgressSeriesMark } from '../progress/circular/constant';\nimport { linkSeriesMark } from '../link/constant';\nimport { dotSeriesMark } from '../dot/constant';\nimport { wordCloudSeriesMark } from '../word-cloud/constant';\nimport { funnel3dSeriesMark, funnelSeriesMark } from '../funnel/constant';\nimport { linearProgressSeriesMark } from '../progress/linear/constant';\nimport { waterfallSeriesMark } from '../waterfall/constant';\nimport { boxPlotSeriesMark } from '../box-plot/constant';\nimport { treemapSeriesMark } from '../treemap/constant';\nimport { sankeySeriesMark } from '../sankey/constant';\nimport { gaugePointerSeriesMark, gaugeSeriesMark } from '../gauge/constant';\nimport { sunburstSeriesMark } from '../sunburst/constant';\nimport { rangeColumn3dSeriesMark, rangeColumnSeriesMark } from '../range-column/constant';\nimport { circlePackingSeriesMark } from '../circle-packing/constant';\nimport { heatmapSeriesMark } from '../heatmap/constant';\nimport { correlationSeriesMark } from '../correlation/constant';\nimport { rangeAreaSeriesMark } from '../range-area/constant';\nimport type { IRangeAreaSeriesTheme } from '../range-area/interface';\nimport { baseSeriesMark } from '../base/constant';\nimport type { ILiquidSeriesTheme } from '../liquid/interface';\nimport { LiquidSeriesMark } from '../liquid/constant';\n\nexport interface ISeriesTheme {\n [SeriesTypeEnum.bar]?: IBarSeriesTheme;\n [SeriesTypeForThemeEnum.bar_vertical]?: IBarSeriesTheme;\n [SeriesTypeForThemeEnum.bar_horizontal]?: IBarSeriesTheme;\n\n [SeriesTypeEnum.bar3d]?: IBar3dSeriesTheme;\n [SeriesTypeForThemeEnum.bar3d_vertical]?: IBar3dSeriesTheme;\n [SeriesTypeForThemeEnum.bar3d_horizontal]?: IBar3dSeriesTheme;\n\n [SeriesTypeEnum.line]?: ILineSeriesTheme;\n [SeriesTypeForThemeEnum.line_vertical]?: ILineSeriesTheme;\n [SeriesTypeForThemeEnum.line_horizontal]?: ILineSeriesTheme;\n\n [SeriesTypeEnum.area]?: IAreaSeriesTheme;\n [SeriesTypeForThemeEnum.area_vertical]?: IAreaSeriesTheme;\n [SeriesTypeForThemeEnum.area_horizontal]?: IAreaSeriesTheme;\n\n [SeriesTypeEnum.rangeColumn]?: IRangeColumnSeriesTheme;\n [SeriesTypeForThemeEnum.rangeColumn_vertical]?: IRangeColumnSeriesTheme;\n [SeriesTypeForThemeEnum.rangeColumn_horizontal]?: IRangeColumnSeriesTheme;\n\n [SeriesTypeEnum.rangeArea]?: IRangeAreaSeriesTheme;\n [SeriesTypeForThemeEnum.rangeArea_vertical]?: IRangeAreaSeriesTheme;\n [SeriesTypeForThemeEnum.rangeArea_horizontal]?: IRangeAreaSeriesTheme;\n\n [SeriesTypeEnum.linearProgress]?: ILinearProgressSeriesTheme;\n [SeriesTypeForThemeEnum.linearProgress_vertical]?: ILinearProgressSeriesTheme;\n [SeriesTypeForThemeEnum.linearProgress_horizontal]?: ILinearProgressSeriesTheme;\n\n [SeriesTypeEnum.boxPlot]?: IBoxPlotSeriesTheme;\n [SeriesTypeForThemeEnum.boxPlot_vertical]?: IBoxPlotSeriesTheme;\n [SeriesTypeForThemeEnum.boxPlot_horizontal]?: IBoxPlotSeriesTheme;\n\n [SeriesTypeEnum.sankey]?: ISankeySeriesTheme;\n [SeriesTypeForThemeEnum.sankey_vertical]?: ISankeySeriesTheme;\n [SeriesTypeForThemeEnum.sankey_horizontal]?: ISankeySeriesTheme;\n\n [SeriesTypeEnum.waterfall]?: IWaterfallSeriesTheme;\n [SeriesTypeForThemeEnum.waterfall_vertical]?: IWaterfallSeriesTheme;\n [SeriesTypeForThemeEnum.waterfall_horizontal]?: IWaterfallSeriesTheme;\n\n [SeriesTypeEnum.scatter]?: IScatterSeriesTheme;\n [SeriesTypeEnum.radar]?: IRadarSeriesTheme;\n [SeriesTypeEnum.pie]?: IPieSeriesTheme;\n [SeriesTypeEnum.pie3d]?: IPie3dSeriesTheme;\n [SeriesTypeEnum.rose]?: IRoseSeriesTheme;\n [SeriesTypeEnum.map]?: IMapSeriesTheme;\n [SeriesTypeEnum.circularProgress]?: ICircularProgressSeriesTheme;\n [SeriesTypeEnum.link]?: ILinkSeriesTheme;\n [SeriesTypeEnum.dot]?: IDotSeriesTheme;\n [SeriesTypeEnum.wordCloud]?: IWordCloudSeriesTheme;\n [SeriesTypeEnum.wordCloud3d]?: IWordCloud3dSeriesTheme;\n [SeriesTypeEnum.funnel]?: IFunnelSeriesTheme;\n [SeriesTypeEnum.funnel3d]?: IFunnel3dSeriesTheme;\n [SeriesTypeEnum.treemap]?: ITreemapSeriesTheme;\n [SeriesTypeEnum.gauge]?: IGaugeSeriesTheme;\n [SeriesTypeEnum.gaugePointer]?: IGaugePointerSeriesTheme;\n [SeriesTypeEnum.sunburst]?: ISunburstSeriesTheme;\n [SeriesTypeEnum.circlePacking]?: ICirclePackingSeriesTheme;\n [SeriesTypeEnum.heatmap]?: IHeatmapSeriesTheme;\n [SeriesTypeEnum.correlation]?: ICorrelationSeriesTheme;\n [SeriesTypeEnum.liquid]?: ILiquidSeriesTheme;\n}\n\n/** 带有方向信息的系列类型,作为主题相关的补充类型 */\nexport enum SeriesTypeForThemeEnum {\n area_horizontal = 'area_horizontal',\n area_vertical = 'area_vertical',\n\n line_horizontal = 'line_horizontal',\n line_vertical = 'line_vertical',\n\n bar_horizontal = 'bar_horizontal',\n bar_vertical = 'bar_vertical',\n\n bar3d_horizontal = 'bar3d_horizontal',\n bar3d_vertical = 'bar3d_vertical',\n\n rangeColumn_horizontal = 'rangeColumn_horizontal',\n rangeColumn_vertical = 'rangeColumn_vertical',\n\n rangeColumn3d_horizontal = 'rangeColumn3d_horizontal',\n rangeColumn3d_vertical = 'rangeColumn3d_vertical',\n\n rangeArea_horizontal = 'rangeArea_horizontal',\n rangeArea_vertical = 'rangeArea_vertical',\n\n linearProgress_horizontal = 'linearProgress_horizontal',\n linearProgress_vertical = 'linearProgress_vertical',\n\n boxPlot_horizontal = 'boxPlot_horizontal',\n boxPlot_vertical = 'boxPlot_vertical',\n\n sankey_horizontal = 'sankey_horizontal',\n sankey_vertical = 'sankey_vertical',\n\n waterfall_horizontal = 'waterfall_horizontal',\n waterfall_vertical = 'waterfall_vertical'\n}\n\nexport const seriesMarkInfoMap: Record<SeriesTypeEnum, SeriesMarkMap> = {\n [SeriesTypeEnum.bar]: barSeriesMark,\n [SeriesTypeEnum.bar3d]: bar3dSeriesMark,\n [SeriesTypeEnum.line]: lineSeriesMark,\n [SeriesTypeEnum.scatter]: scatterSeriesMark,\n [SeriesTypeEnum.area]: areaSeriesMark,\n [SeriesTypeEnum.radar]: radarSeriesMark,\n [SeriesTypeEnum.pie]: pieSeriesMark,\n [SeriesTypeEnum.pie3d]: pie3dSeriesMark,\n [SeriesTypeEnum.rose]: roseSeriesMark,\n [SeriesTypeEnum.geo]: baseSeriesMark,\n [SeriesTypeEnum.map]: mapSeriesMark,\n [SeriesTypeEnum.circularProgress]: circularProgressSeriesMark,\n [SeriesTypeEnum.link]: linkSeriesMark,\n [SeriesTypeEnum.dot]: dotSeriesMark,\n [SeriesTypeEnum.wordCloud]: wordCloudSeriesMark,\n [SeriesTypeEnum.wordCloud3d]: wordCloudSeriesMark,\n [SeriesTypeEnum.funnel]: funnelSeriesMark,\n [SeriesTypeEnum.funnel3d]: funnel3dSeriesMark,\n [SeriesTypeEnum.linearProgress]: linearProgressSeriesMark,\n [SeriesTypeEnum.waterfall]: waterfallSeriesMark,\n [SeriesTypeEnum.boxPlot]: boxPlotSeriesMark,\n [SeriesTypeEnum.treemap]: treemapSeriesMark,\n [SeriesTypeEnum.sankey]: sankeySeriesMark,\n [SeriesTypeEnum.gauge]: gaugeSeriesMark,\n [SeriesTypeEnum.gaugePointer]: gaugePointerSeriesMark,\n [SeriesTypeEnum.sunburst]: sunburstSeriesMark,\n [SeriesTypeEnum.rangeColumn]: rangeColumnSeriesMark,\n [SeriesTypeEnum.rangeColumn3d]: rangeColumn3dSeriesMark,\n [SeriesTypeEnum.circlePacking]: circlePackingSeriesMark,\n [SeriesTypeEnum.heatmap]: heatmapSeriesMark,\n [SeriesTypeEnum.correlation]: correlationSeriesMark,\n [SeriesTypeEnum.rangeArea]: rangeAreaSeriesMark,\n [SeriesTypeEnum.liquid]: LiquidSeriesMark\n};\n"]}
1
+ {"version":3,"sources":["../src/series/interface/theme.ts"],"names":[],"mappings":"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","file":"theme.js","sourcesContent":["import type { IWaterfallSeriesTheme } from '../waterfall/interface';\nimport type { IBoxPlotSeriesTheme } from '../box-plot/interface';\nimport type { IBar3dSeriesTheme, IBarSeriesTheme } from '../bar/interface';\nimport type { ILineSeriesTheme } from '../line/interface';\nimport type { IScatterSeriesTheme } from '../scatter/interface';\nimport type { IAreaSeriesTheme } from '../area/interface';\nimport type { IRadarSeriesTheme } from '../radar/interface';\nimport type { IPie3dSeriesTheme, IPieSeriesTheme } from '../pie/interface';\nimport type { IRoseSeriesTheme } from '../rose/interface';\nimport type { IMapSeriesTheme } from '../map/interface';\nimport type { ICircularProgressSeriesTheme } from '../progress/circular/interface';\nimport type { ILinkSeriesTheme } from '../link/interface';\nimport type { IDotSeriesTheme } from '../dot/interface';\nimport type { IWordCloud3dSeriesTheme, IWordCloudSeriesTheme } from '../word-cloud/interface';\nimport type { IFunnel3dSeriesTheme, IFunnelSeriesTheme } from '../funnel/interface';\nimport type { ILinearProgressSeriesTheme } from '../progress/linear/interface';\nimport type { IGaugePointerSeriesTheme, IGaugeSeriesTheme } from '../gauge';\nimport type { ISankeySeriesTheme } from '../sankey/interface';\nimport type { ITreemapSeriesTheme } from '../treemap/interface';\nimport type { ISunburstSeriesTheme } from '../sunburst/interface';\nimport type { IRangeColumnSeriesTheme } from '../range-column/interface';\nimport type { ICirclePackingSeriesTheme } from '../circle-packing/interface';\nimport type { IHeatmapSeriesTheme } from '../heatmap/interface';\nimport type { ICorrelationSeriesTheme } from '../correlation/interface';\nimport { SeriesTypeEnum } from './type';\nimport type { SeriesMarkMap } from './common';\nimport { bar3dSeriesMark, barSeriesMark } from '../bar/constant';\nimport { lineSeriesMark } from '../line/constant';\nimport { scatterSeriesMark } from '../scatter/constant';\nimport { areaSeriesMark } from '../area/constant';\nimport { radarSeriesMark } from '../radar/constant';\nimport { pie3dSeriesMark, pieSeriesMark } from '../pie/constant';\nimport { roseSeriesMark } from '../rose/constant';\nimport { mapSeriesMark } from '../map/constant';\nimport { circularProgressSeriesMark } from '../progress/circular/constant';\nimport { linkSeriesMark } from '../link/constant';\nimport { dotSeriesMark } from '../dot/constant';\nimport { wordCloudSeriesMark } from '../word-cloud/constant';\nimport { funnel3dSeriesMark, funnelSeriesMark } from '../funnel/constant';\nimport { linearProgressSeriesMark } from '../progress/linear/constant';\nimport { waterfallSeriesMark } from '../waterfall/constant';\nimport { boxPlotSeriesMark } from '../box-plot/constant';\nimport { treemapSeriesMark } from '../treemap/constant';\nimport { sankeySeriesMark } from '../sankey/constant';\nimport { gaugePointerSeriesMark, gaugeSeriesMark } from '../gauge/constant';\nimport { sunburstSeriesMark } from '../sunburst/constant';\nimport { rangeColumn3dSeriesMark, rangeColumnSeriesMark } from '../range-column/constant';\nimport { circlePackingSeriesMark } from '../circle-packing/constant';\nimport { heatmapSeriesMark } from '../heatmap/constant';\nimport { correlationSeriesMark } from '../correlation/constant';\nimport { rangeAreaSeriesMark } from '../range-area/constant';\nimport type { IRangeAreaSeriesTheme } from '../range-area/interface';\nimport { baseSeriesMark } from '../base/constant';\nimport type { ILiquidSeriesTheme } from '../liquid/interface';\nimport { LiquidSeriesMark } from '../liquid/constant';\n\nexport interface ISeriesTheme {\n [SeriesTypeEnum.bar]?: IBarSeriesTheme;\n [SeriesTypeForThemeEnum.bar_vertical]?: IBarSeriesTheme;\n [SeriesTypeForThemeEnum.bar_horizontal]?: IBarSeriesTheme;\n [SeriesTypeForThemeEnum.bar_stack]?: IBarSeriesTheme;\n\n [SeriesTypeEnum.bar3d]?: IBar3dSeriesTheme;\n [SeriesTypeForThemeEnum.bar3d_vertical]?: IBar3dSeriesTheme;\n [SeriesTypeForThemeEnum.bar3d_horizontal]?: IBar3dSeriesTheme;\n [SeriesTypeForThemeEnum.bar3d_stack]?: IBar3dSeriesTheme;\n\n [SeriesTypeEnum.line]?: ILineSeriesTheme;\n [SeriesTypeForThemeEnum.line_vertical]?: ILineSeriesTheme;\n [SeriesTypeForThemeEnum.line_horizontal]?: ILineSeriesTheme;\n [SeriesTypeForThemeEnum.line_stack]?: ILineSeriesTheme;\n\n [SeriesTypeEnum.area]?: IAreaSeriesTheme;\n [SeriesTypeForThemeEnum.area_vertical]?: IAreaSeriesTheme;\n [SeriesTypeForThemeEnum.area_horizontal]?: IAreaSeriesTheme;\n [SeriesTypeForThemeEnum.area_stack]?: IAreaSeriesTheme;\n\n [SeriesTypeEnum.rangeColumn]?: IRangeColumnSeriesTheme;\n [SeriesTypeForThemeEnum.rangeColumn_vertical]?: IRangeColumnSeriesTheme;\n [SeriesTypeForThemeEnum.rangeColumn_horizontal]?: IRangeColumnSeriesTheme;\n\n [SeriesTypeEnum.rangeArea]?: IRangeAreaSeriesTheme;\n [SeriesTypeForThemeEnum.rangeArea_vertical]?: IRangeAreaSeriesTheme;\n [SeriesTypeForThemeEnum.rangeArea_horizontal]?: IRangeAreaSeriesTheme;\n\n [SeriesTypeEnum.linearProgress]?: ILinearProgressSeriesTheme;\n [SeriesTypeForThemeEnum.linearProgress_vertical]?: ILinearProgressSeriesTheme;\n [SeriesTypeForThemeEnum.linearProgress_horizontal]?: ILinearProgressSeriesTheme;\n [SeriesTypeForThemeEnum.linearProgress_stack]?: ILinearProgressSeriesTheme;\n\n [SeriesTypeEnum.boxPlot]?: IBoxPlotSeriesTheme;\n [SeriesTypeForThemeEnum.boxPlot_vertical]?: IBoxPlotSeriesTheme;\n [SeriesTypeForThemeEnum.boxPlot_horizontal]?: IBoxPlotSeriesTheme;\n\n [SeriesTypeEnum.sankey]?: ISankeySeriesTheme;\n [SeriesTypeForThemeEnum.sankey_vertical]?: ISankeySeriesTheme;\n [SeriesTypeForThemeEnum.sankey_horizontal]?: ISankeySeriesTheme;\n\n [SeriesTypeEnum.waterfall]?: IWaterfallSeriesTheme;\n [SeriesTypeForThemeEnum.waterfall_vertical]?: IWaterfallSeriesTheme;\n [SeriesTypeForThemeEnum.waterfall_horizontal]?: IWaterfallSeriesTheme;\n\n [SeriesTypeEnum.scatter]?: IScatterSeriesTheme;\n\n [SeriesTypeEnum.radar]?: IRadarSeriesTheme;\n [SeriesTypeForThemeEnum.radar_stack]?: IRadarSeriesTheme;\n\n [SeriesTypeEnum.pie]?: IPieSeriesTheme;\n [SeriesTypeEnum.pie3d]?: IPie3dSeriesTheme;\n\n [SeriesTypeEnum.rose]?: IRoseSeriesTheme;\n [SeriesTypeForThemeEnum.rose_stack]?: IRoseSeriesTheme;\n\n [SeriesTypeEnum.map]?: IMapSeriesTheme;\n\n [SeriesTypeEnum.circularProgress]?: ICircularProgressSeriesTheme;\n [SeriesTypeForThemeEnum.circularProgress_stack]?: ICircularProgressSeriesTheme;\n\n [SeriesTypeEnum.link]?: ILinkSeriesTheme;\n [SeriesTypeEnum.dot]?: IDotSeriesTheme;\n [SeriesTypeEnum.wordCloud]?: IWordCloudSeriesTheme;\n [SeriesTypeEnum.wordCloud3d]?: IWordCloud3dSeriesTheme;\n [SeriesTypeEnum.funnel]?: IFunnelSeriesTheme;\n [SeriesTypeEnum.funnel3d]?: IFunnel3dSeriesTheme;\n [SeriesTypeEnum.treemap]?: ITreemapSeriesTheme;\n [SeriesTypeEnum.gauge]?: IGaugeSeriesTheme;\n [SeriesTypeEnum.gaugePointer]?: IGaugePointerSeriesTheme;\n [SeriesTypeEnum.sunburst]?: ISunburstSeriesTheme;\n [SeriesTypeEnum.circlePacking]?: ICirclePackingSeriesTheme;\n [SeriesTypeEnum.heatmap]?: IHeatmapSeriesTheme;\n [SeriesTypeEnum.correlation]?: ICorrelationSeriesTheme;\n [SeriesTypeEnum.liquid]?: ILiquidSeriesTheme;\n}\n\n/** 带有方向信息的系列类型,作为主题相关的补充类型 */\nexport enum SeriesTypeForThemeEnum {\n area_horizontal = 'area_horizontal',\n area_vertical = 'area_vertical',\n area_stack = 'area_stack',\n\n line_horizontal = 'line_horizontal',\n line_vertical = 'line_vertical',\n line_stack = 'line_stack',\n\n bar_horizontal = 'bar_horizontal',\n bar_vertical = 'bar_vertical',\n bar_stack = 'bar_stack',\n\n bar3d_horizontal = 'bar3d_horizontal',\n bar3d_vertical = 'bar3d_vertical',\n bar3d_stack = 'bar3d_stack',\n\n rangeColumn_horizontal = 'rangeColumn_horizontal',\n rangeColumn_vertical = 'rangeColumn_vertical',\n\n rangeColumn3d_horizontal = 'rangeColumn3d_horizontal',\n rangeColumn3d_vertical = 'rangeColumn3d_vertical',\n\n rangeArea_horizontal = 'rangeArea_horizontal',\n rangeArea_vertical = 'rangeArea_vertical',\n\n linearProgress_horizontal = 'linearProgress_horizontal',\n linearProgress_vertical = 'linearProgress_vertical',\n linearProgress_stack = 'linearProgress_stack',\n\n boxPlot_horizontal = 'boxPlot_horizontal',\n boxPlot_vertical = 'boxPlot_vertical',\n\n sankey_horizontal = 'sankey_horizontal',\n sankey_vertical = 'sankey_vertical',\n\n waterfall_horizontal = 'waterfall_horizontal',\n waterfall_vertical = 'waterfall_vertical',\n\n circularProgress_stack = 'circularProgress_stack',\n\n radar_stack = 'radar_stack',\n rose_stack = 'rose_stack'\n}\n\nexport const seriesMarkInfoMap: Record<SeriesTypeEnum, SeriesMarkMap> = {\n [SeriesTypeEnum.bar]: barSeriesMark,\n [SeriesTypeEnum.bar3d]: bar3dSeriesMark,\n [SeriesTypeEnum.line]: lineSeriesMark,\n [SeriesTypeEnum.scatter]: scatterSeriesMark,\n [SeriesTypeEnum.area]: areaSeriesMark,\n [SeriesTypeEnum.radar]: radarSeriesMark,\n [SeriesTypeEnum.pie]: pieSeriesMark,\n [SeriesTypeEnum.pie3d]: pie3dSeriesMark,\n [SeriesTypeEnum.rose]: roseSeriesMark,\n [SeriesTypeEnum.geo]: baseSeriesMark,\n [SeriesTypeEnum.map]: mapSeriesMark,\n [SeriesTypeEnum.circularProgress]: circularProgressSeriesMark,\n [SeriesTypeEnum.link]: linkSeriesMark,\n [SeriesTypeEnum.dot]: dotSeriesMark,\n [SeriesTypeEnum.wordCloud]: wordCloudSeriesMark,\n [SeriesTypeEnum.wordCloud3d]: wordCloudSeriesMark,\n [SeriesTypeEnum.funnel]: funnelSeriesMark,\n [SeriesTypeEnum.funnel3d]: funnel3dSeriesMark,\n [SeriesTypeEnum.linearProgress]: linearProgressSeriesMark,\n [SeriesTypeEnum.waterfall]: waterfallSeriesMark,\n [SeriesTypeEnum.boxPlot]: boxPlotSeriesMark,\n [SeriesTypeEnum.treemap]: treemapSeriesMark,\n [SeriesTypeEnum.sankey]: sankeySeriesMark,\n [SeriesTypeEnum.gauge]: gaugeSeriesMark,\n [SeriesTypeEnum.gaugePointer]: gaugePointerSeriesMark,\n [SeriesTypeEnum.sunburst]: sunburstSeriesMark,\n [SeriesTypeEnum.rangeColumn]: rangeColumnSeriesMark,\n [SeriesTypeEnum.rangeColumn3d]: rangeColumn3dSeriesMark,\n [SeriesTypeEnum.circlePacking]: circlePackingSeriesMark,\n [SeriesTypeEnum.heatmap]: heatmapSeriesMark,\n [SeriesTypeEnum.correlation]: correlationSeriesMark,\n [SeriesTypeEnum.rangeArea]: rangeAreaSeriesMark,\n [SeriesTypeEnum.liquid]: LiquidSeriesMark\n};\n"]}
@@ -83,7 +83,7 @@ export class ScrollBar extends DataFilterBaseComponent {
83
83
  const attrs = this._getAttrs();
84
84
  if (this._component) this._component.setAttributes(attrs); else {
85
85
  const container = this.getContainer();
86
- this._component = new ScrollBarComponent(attrs), this._component.addEventListener("scroll", (e => {
86
+ this._component = new ScrollBarComponent(attrs), this._component.addEventListener("scrollDrag", (e => {
87
87
  const value = e.detail.value;
88
88
  this._handleChange(value[0], value[1]);
89
89
  })), container.add(this._component);
@@ -108,7 +108,7 @@ export class ScrollBar extends DataFilterBaseComponent {
108
108
  }
109
109
  _handleDataCollectionChange() {}
110
110
  _initCommonEvent() {
111
- super._initCommonEvent(), this._component && this._component.on("scroll", (e => {
111
+ super._initCommonEvent(), this._component && this._component.on("scrollDrag", (e => {
112
112
  const value = e.detail.value;
113
113
  this._handleChange(value[0], value[1]);
114
114
  }));