@visactor/vchart 1.2.1 → 1.2.2-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/build/es5/index.js +1 -1
- package/build/index.js +85 -25
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/area/area.js +2 -1
- package/cjs/chart/area/area.js.map +1 -1
- package/cjs/chart/line/line.js +2 -1
- package/cjs/chart/line/line.js.map +1 -1
- package/cjs/chart/radar/radar.js +2 -1
- package/cjs/chart/radar/radar.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/series/area/interface.d.ts +1 -0
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/line/interface.d.ts +1 -0
- package/cjs/series/line/interface.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +10 -2
- package/cjs/series/mixin/line-mixin.js +53 -6
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/radar/interface.d.ts +1 -0
- package/cjs/series/radar/interface.js.map +1 -1
- package/esm/chart/area/area.js +2 -1
- package/esm/chart/area/area.js.map +1 -1
- package/esm/chart/line/line.js +2 -1
- package/esm/chart/line/line.js.map +1 -1
- package/esm/chart/radar/radar.js +2 -1
- package/esm/chart/radar/radar.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/series/area/interface.d.ts +1 -0
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/line/interface.d.ts +1 -0
- package/esm/series/line/interface.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +10 -2
- package/esm/series/mixin/line-mixin.js +60 -5
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/radar/interface.d.ts +1 -0
- package/esm/series/radar/interface.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,19 +1,24 @@
|
|
|
1
|
+
import type { ISeriesOption } from './../interface/common';
|
|
1
2
|
import type { ITrigger } from '../../interaction/interface';
|
|
2
3
|
import type { ISeries } from '../interface/series';
|
|
3
4
|
import type { IMark, IMarkProgressiveConfig } from '../../mark/interface';
|
|
4
5
|
import type { ILineMark } from '../../mark/line';
|
|
5
6
|
import type { ISymbolMark } from '../../mark/symbol';
|
|
6
7
|
import type { ITextMark } from '../../mark/text';
|
|
7
|
-
import type { DirectionType, IInvalidType, InterpolateType, ILineMarkSpec, ISymbolMarkSpec, Maybe, IMarkTheme } from '../../typings';
|
|
8
|
+
import type { DirectionType, IInvalidType, InterpolateType, ILineMarkSpec, ISymbolMarkSpec, Maybe, Datum, IMarkTheme } from '../../typings';
|
|
8
9
|
import type { ISeriesMarkInfo, ISeriesMarkInitOption, ISeriesTooltipHelper, SeriesMarkMap } from '../interface';
|
|
9
10
|
import type { ILabelSpec } from '../../component/label';
|
|
11
|
+
import type { DimensionEventParams } from '../../event/events/dimension';
|
|
10
12
|
export interface ILineLikeSeriesTheme {
|
|
11
13
|
line?: Partial<IMarkTheme<ILineMarkSpec>>;
|
|
12
|
-
point?: Partial<IMarkTheme<ISymbolMarkSpec
|
|
14
|
+
point?: Partial<IMarkTheme<ISymbolMarkSpec>> & {
|
|
15
|
+
visibleInActive?: boolean;
|
|
16
|
+
};
|
|
13
17
|
label?: Partial<ILabelSpec>;
|
|
14
18
|
}
|
|
15
19
|
export interface LineLikeSeriesMixin extends ISeries {
|
|
16
20
|
_spec: any;
|
|
21
|
+
_option: ISeriesOption;
|
|
17
22
|
_seriesField: string;
|
|
18
23
|
_theme: Maybe<ILineLikeSeriesTheme>;
|
|
19
24
|
_trigger: ITrigger;
|
|
@@ -21,6 +26,7 @@ export interface LineLikeSeriesMixin extends ISeries {
|
|
|
21
26
|
_invalidType: IInvalidType;
|
|
22
27
|
_lineMark: ILineMark;
|
|
23
28
|
_symbolMark: ISymbolMark;
|
|
29
|
+
_symbolActiveMark: ISymbolMark;
|
|
24
30
|
_labelMark: ITextMark;
|
|
25
31
|
_createMark: (markInfo: ISeriesMarkInfo, option?: ISeriesMarkInitOption) => IMark;
|
|
26
32
|
}
|
|
@@ -28,6 +34,8 @@ export declare class LineLikeSeriesMixin {
|
|
|
28
34
|
setSeriesField(field: string): void;
|
|
29
35
|
initLineMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean): ILineMark;
|
|
30
36
|
initLineMarkStyle(direction?: DirectionType, areaCurveType?: InterpolateType): ILineMark;
|
|
37
|
+
protected _getEventElement(params: DimensionEventParams, reverse?: boolean): Datum[];
|
|
38
|
+
protected _dimensionTrigger(params: DimensionEventParams): void;
|
|
31
39
|
initSymbolMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean): ISymbolMark;
|
|
32
40
|
initSymbolMarkStyle(): ISymbolMark;
|
|
33
41
|
initLabelMarkStyle(labelMark?: ITextMark): void;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { PREFIX } from "./../../constant/base";
|
|
2
|
+
|
|
3
|
+
import { DataView } from "@visactor/vdataset";
|
|
4
|
+
|
|
1
5
|
import { AttributeLevel } from "../../constant";
|
|
2
6
|
|
|
3
7
|
import { MarkTypeEnum } from "../../mark/interface";
|
|
@@ -14,6 +18,10 @@ import { SeriesMarkNameEnum } from "../interface";
|
|
|
14
18
|
|
|
15
19
|
import { shouldDoMorph, userAnimationConfig } from "../../animation/utils";
|
|
16
20
|
|
|
21
|
+
import { DimensionEventEnum } from "../../event/events/dimension";
|
|
22
|
+
|
|
23
|
+
import { STATE_VALUE_ENUM } from "../../compile/mark/interface";
|
|
24
|
+
|
|
17
25
|
export class LineLikeSeriesMixin {
|
|
18
26
|
setSeriesField(field) {
|
|
19
27
|
isValid(field) && (this._seriesField = field, this.getMarksInType([ MarkTypeEnum.line, MarkTypeEnum.area ]).forEach((m => {
|
|
@@ -53,8 +61,24 @@ export class LineLikeSeriesMixin {
|
|
|
53
61
|
}
|
|
54
62
|
return lineMark;
|
|
55
63
|
}
|
|
64
|
+
_getEventElement(params, reverse = !1) {
|
|
65
|
+
let data = [];
|
|
66
|
+
return params.dimensionInfo.some((df => (df.data.some((dd => dd.series === this && (data = dd.datum,
|
|
67
|
+
!0))), !data.length))), data;
|
|
68
|
+
}
|
|
69
|
+
_dimensionTrigger(params) {
|
|
70
|
+
const elements = this._getEventElement(params);
|
|
71
|
+
switch (params.action) {
|
|
72
|
+
case "enter":
|
|
73
|
+
this._symbolActiveMark.getDataView().parse(elements), this._symbolActiveMark.getData().updateData(!1);
|
|
74
|
+
break;
|
|
75
|
+
|
|
76
|
+
case "leave":
|
|
77
|
+
this._symbolActiveMark.getDataView().parse([]), this._symbolActiveMark.getData().updateData(!1);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
56
80
|
initSymbolMark(progressive, isSeriesMark) {
|
|
57
|
-
|
|
81
|
+
if (this._symbolMark = this._createMark(lineLikeSeriesMarkMap.point, {
|
|
58
82
|
morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig("point", this._spec)),
|
|
59
83
|
defaultMorphElementKey: this.getDimensionField()[0],
|
|
60
84
|
groupKey: this._seriesField,
|
|
@@ -63,12 +87,28 @@ export class LineLikeSeriesMixin {
|
|
|
63
87
|
}, this._spec.label),
|
|
64
88
|
progressive: progressive,
|
|
65
89
|
isSeriesMark: !!isSeriesMark
|
|
66
|
-
}), this.
|
|
90
|
+
}), !0 === this._spec.activePoint) {
|
|
91
|
+
const activeData = new DataView(this._option.dataSet, {
|
|
92
|
+
name: `${PREFIX}_series_${this.id}_active_point`
|
|
93
|
+
});
|
|
94
|
+
activeData.parse([]), this._symbolActiveMark = this._createMark({
|
|
95
|
+
name: "active_point",
|
|
96
|
+
type: MarkTypeEnum.symbol
|
|
97
|
+
}, {
|
|
98
|
+
morph: !1,
|
|
99
|
+
groupKey: this._seriesField,
|
|
100
|
+
label: null,
|
|
101
|
+
isSeriesMark: !1,
|
|
102
|
+
dataView: activeData
|
|
103
|
+
}), this._symbolActiveMark.setVisible(!1);
|
|
104
|
+
}
|
|
105
|
+
return this._symbolMark;
|
|
67
106
|
}
|
|
68
107
|
initSymbolMarkStyle() {
|
|
69
108
|
var _a;
|
|
70
109
|
const symbolMark = this._symbolMark;
|
|
71
|
-
|
|
110
|
+
if (!symbolMark) return symbolMark;
|
|
111
|
+
if (this.setMarkStyle(symbolMark, {
|
|
72
112
|
fill: this.getColorAttribute()
|
|
73
113
|
}, "normal", AttributeLevel.Series), this._invalidType && this.setMarkStyle(symbolMark, {
|
|
74
114
|
visible: datum => "break" === this._invalidType ? couldBeValidNumber(datum[this.getStackValueField()]) : "link" !== this._invalidType || couldBeValidNumber(datum[this.getStackValueField()])
|
|
@@ -76,8 +116,23 @@ export class LineLikeSeriesMixin {
|
|
|
76
116
|
x: this.dataToPositionX.bind(this),
|
|
77
117
|
y: this.dataToPositionY.bind(this),
|
|
78
118
|
z: this.dataToPositionZ.bind(this)
|
|
79
|
-
}, "normal", AttributeLevel.Series), this._trigger.registerMark(symbolMark), null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(symbolMark)
|
|
80
|
-
|
|
119
|
+
}, "normal", AttributeLevel.Series), this._trigger.registerMark(symbolMark), null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(symbolMark),
|
|
120
|
+
this._symbolActiveMark && this._symbolMark.stateStyle.dimension_hover) {
|
|
121
|
+
this._symbolActiveMark.setVisible(!0), this.event.on(DimensionEventEnum.dimensionHover, this._dimensionTrigger.bind(this));
|
|
122
|
+
for (const state in this._symbolMark.stateStyle) {
|
|
123
|
+
this._symbolActiveMark.stateStyle[state] = {};
|
|
124
|
+
for (const key in this._symbolMark.stateStyle[state]) this._symbolActiveMark.stateStyle[state][key] = {
|
|
125
|
+
style: null,
|
|
126
|
+
level: AttributeLevel.Series,
|
|
127
|
+
referer: symbolMark
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
this._symbolActiveMark.state.changeStateInfo({
|
|
131
|
+
stateValue: STATE_VALUE_ENUM.STATE_DIMENSION_HOVER,
|
|
132
|
+
filter: () => !0
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
return symbolMark;
|
|
81
136
|
}
|
|
82
137
|
initLabelMarkStyle(labelMark) {
|
|
83
138
|
labelMark && (this.setMarkStyle(labelMark, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/mixin/line-mixin.ts"],"names":[],"mappings":"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","file":"line-mixin.js","sourcesContent":["import type { ITrigger } from '../../interaction/interface';\nimport type { ISeries } from '../interface/series';\nimport { AttributeLevel } from '../../constant';\n\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { ILineMark } from '../../mark/line';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { ITextMark } from '../../mark/text';\nimport type {\n DirectionType,\n IInvalidType,\n InterpolateType,\n ILineMarkSpec,\n ISymbolMarkSpec,\n Maybe,\n Datum,\n IMarkTheme\n} from '../../typings';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport { Direction } from '../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_LINEAR_CLOSED_INTERPOLATE } from '../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { couldBeValidNumber, isValid, merge } from '../../util';\nimport type { ISeriesMarkInfo, ISeriesMarkInitOption, ISeriesTooltipHelper, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { ILabelSpec } from '../../component/label';\nimport { shouldDoMorph, userAnimationConfig } from '../../animation/utils';\n\nexport interface ILineLikeSeriesTheme {\n line?: Partial<IMarkTheme<ILineMarkSpec>>;\n point?: Partial<IMarkTheme<ISymbolMarkSpec>>;\n label?: Partial<ILabelSpec>;\n}\n\nexport interface LineLikeSeriesMixin extends ISeries {\n _spec: any;\n _seriesField: string;\n _theme: Maybe<ILineLikeSeriesTheme>;\n _trigger: ITrigger;\n _tooltipHelper: ISeriesTooltipHelper;\n _invalidType: IInvalidType;\n\n _lineMark: ILineMark;\n _symbolMark: ISymbolMark;\n _labelMark: ITextMark;\n\n _createMark: (markInfo: ISeriesMarkInfo, option?: ISeriesMarkInitOption) => IMark;\n}\n\nexport class LineLikeSeriesMixin {\n setSeriesField(field: string): void {\n if (isValid(field)) {\n this._seriesField = field;\n this.getMarksInType([MarkTypeEnum.line, MarkTypeEnum.area]).forEach(m => {\n m.setFacet(this._seriesField);\n });\n }\n }\n\n initLineMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean) {\n this._lineMark = this._createMark(lineLikeSeriesMarkMap.line, {\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n isSeriesMark: isSeriesMark ?? true,\n progressive\n }) as ILineMark;\n return this._lineMark;\n }\n\n initLineMarkStyle(direction?: DirectionType, areaCurveType?: InterpolateType) {\n const lineMark = this._lineMark;\n if (lineMark) {\n this.setMarkStyle(\n lineMark,\n {\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this.coordinate === 'polar') {\n // 极坐标系下需要关闭\n this.setMarkStyle(\n lineMark,\n {\n lineJoin: DEFAULT_CLOSE_STROKE_JOIN,\n curveType: DEFAULT_LINEAR_CLOSED_INTERPOLATE\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const userCurveType = areaCurveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n this.setMarkStyle(\n lineMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n if (this._invalidType) {\n this.setMarkStyle(\n lineMark,\n {\n defined: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n lineMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(lineMark);\n this._tooltipHelper?.activeTriggerSet.dimension.add(lineMark);\n }\n return lineMark;\n }\n\n initSymbolMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean) {\n this._symbolMark = this._createMark(lineLikeSeriesMarkMap.point, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('point', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: merge({ animation: this._spec.animation }, this._spec.label),\n progressive,\n isSeriesMark: !!isSeriesMark\n }) as ISymbolMark;\n return this._symbolMark;\n }\n\n initSymbolMarkStyle() {\n const symbolMark = this._symbolMark;\n if (symbolMark) {\n this.setMarkStyle(\n symbolMark,\n {\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType) {\n this.setMarkStyle(\n symbolMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n symbolMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(symbolMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(symbolMark);\n }\n return symbolMark;\n }\n\n initLabelMarkStyle(labelMark?: ITextMark) {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(labelMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this.dataToPositionZ.bind(this)\n });\n if (this._invalidType) {\n this.setMarkStyle(\n labelMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n}\n\nexport const lineLikeSeriesMarkMap: SeriesMarkMap = {\n [SeriesMarkNameEnum.point]: { name: SeriesMarkNameEnum.point, type: MarkTypeEnum.symbol },\n [SeriesMarkNameEnum.line]: { name: SeriesMarkNameEnum.line, type: MarkTypeEnum.line }\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/mixin/line-mixin.ts"],"names":[],"mappings":"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","file":"line-mixin.js","sourcesContent":["import { PREFIX } from './../../constant/base';\nimport type { ISeriesOption } from './../interface/common';\nimport { DataView } from '@visactor/vdataset';\nimport type { ITrigger } from '../../interaction/interface';\nimport type { ISeries } from '../interface/series';\nimport { AttributeLevel } from '../../constant';\n\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { ILineMark } from '../../mark/line';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { ITextMark } from '../../mark/text';\nimport type {\n DirectionType,\n IInvalidType,\n InterpolateType,\n ILineMarkSpec,\n ISymbolMarkSpec,\n Maybe,\n Datum,\n IMarkTheme\n} from '../../typings';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport { Direction } from '../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_LINEAR_CLOSED_INTERPOLATE } from '../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { couldBeValidNumber, isNil, isValid, merge } from '../../util';\nimport type { ISeriesMarkInfo, ISeriesMarkInitOption, ISeriesTooltipHelper, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { ILabelSpec } from '../../component/label';\nimport { shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport type { DimensionEventParams } from '../../event/events/dimension';\nimport type { EventCallback, EventParams } from '../../event/interface';\nimport { DimensionEventEnum } from '../../event/events/dimension';\nimport { STATE_VALUE_ENUM } from '../../compile/mark/interface';\n\nexport interface ILineLikeSeriesTheme {\n line?: Partial<IMarkTheme<ILineMarkSpec>>;\n point?: Partial<IMarkTheme<ISymbolMarkSpec>> & { visibleInActive?: boolean };\n label?: Partial<ILabelSpec>;\n}\n\nexport interface LineLikeSeriesMixin extends ISeries {\n _spec: any;\n _option: ISeriesOption;\n _seriesField: string;\n _theme: Maybe<ILineLikeSeriesTheme>;\n _trigger: ITrigger;\n _tooltipHelper: ISeriesTooltipHelper;\n _invalidType: IInvalidType;\n\n _lineMark: ILineMark;\n _symbolMark: ISymbolMark;\n _symbolActiveMark: ISymbolMark;\n _labelMark: ITextMark;\n\n _createMark: (markInfo: ISeriesMarkInfo, option?: ISeriesMarkInitOption) => IMark;\n}\n\nexport class LineLikeSeriesMixin {\n setSeriesField(field: string): void {\n if (isValid(field)) {\n this._seriesField = field;\n this.getMarksInType([MarkTypeEnum.line, MarkTypeEnum.area]).forEach(m => {\n m.setFacet(this._seriesField);\n });\n }\n }\n\n initLineMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean) {\n this._lineMark = this._createMark(lineLikeSeriesMarkMap.line, {\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n isSeriesMark: isSeriesMark ?? true,\n progressive\n }) as ILineMark;\n return this._lineMark;\n }\n\n initLineMarkStyle(direction?: DirectionType, areaCurveType?: InterpolateType) {\n const lineMark = this._lineMark;\n if (lineMark) {\n this.setMarkStyle(\n lineMark,\n {\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this.coordinate === 'polar') {\n // 极坐标系下需要关闭\n this.setMarkStyle(\n lineMark,\n {\n lineJoin: DEFAULT_CLOSE_STROKE_JOIN,\n curveType: DEFAULT_LINEAR_CLOSED_INTERPOLATE\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const userCurveType = areaCurveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n this.setMarkStyle(\n lineMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n if (this._invalidType) {\n this.setMarkStyle(\n lineMark,\n {\n defined: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n lineMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(lineMark);\n this._tooltipHelper?.activeTriggerSet.dimension.add(lineMark);\n }\n return lineMark;\n }\n\n protected _getEventElement(params: DimensionEventParams, reverse: boolean = false): Datum[] {\n // items 修改遍历方法从 mark\n let data: Datum[] = [];\n params.dimensionInfo.some(df => {\n df.data.some(dd => {\n if (dd.series === this) {\n data = dd.datum;\n return true;\n }\n return false;\n });\n return !data.length;\n });\n return data;\n }\n\n protected _dimensionTrigger(params: DimensionEventParams) {\n const elements = this._getEventElement(params);\n switch (params.action) {\n case 'enter':\n this._symbolActiveMark.getDataView().parse(elements);\n this._symbolActiveMark.getData().updateData(false);\n break;\n case 'leave':\n this._symbolActiveMark.getDataView().parse([]);\n this._symbolActiveMark.getData().updateData(false);\n case 'click':\n case 'move':\n default:\n break;\n }\n }\n\n initSymbolMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean) {\n this._symbolMark = this._createMark(lineLikeSeriesMarkMap.point, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('point', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: merge({ animation: this._spec.animation }, this._spec.label),\n progressive,\n isSeriesMark: !!isSeriesMark\n }) as ISymbolMark;\n\n if (this._spec.activePoint === true) {\n const activeData = new DataView(this._option.dataSet, { name: `${PREFIX}_series_${this.id}_active_point` });\n activeData.parse([]);\n this._symbolActiveMark = this._createMark(\n { name: `active_point`, type: MarkTypeEnum.symbol },\n {\n morph: false,\n groupKey: this._seriesField,\n label: null,\n isSeriesMark: false,\n dataView: activeData\n }\n ) as ISymbolMark;\n this._symbolActiveMark.setVisible(false);\n }\n\n return this._symbolMark;\n }\n\n initSymbolMarkStyle() {\n const symbolMark = this._symbolMark;\n if (!symbolMark) {\n return symbolMark;\n }\n this.setMarkStyle(\n symbolMark,\n {\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType) {\n this.setMarkStyle(\n symbolMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n symbolMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(symbolMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(symbolMark);\n\n // setStyle to active point\n if (this._symbolActiveMark && this._symbolMark.stateStyle.dimension_hover) {\n // active point will show\n this._symbolActiveMark.setVisible(true);\n this.event.on(DimensionEventEnum.dimensionHover, this._dimensionTrigger.bind(this) as EventCallback<EventParams>);\n // set style with referer\n for (const state in this._symbolMark.stateStyle) {\n this._symbolActiveMark.stateStyle[state] = {};\n for (const key in this._symbolMark.stateStyle[state]) {\n this._symbolActiveMark.stateStyle[state][key] = {\n style: null,\n level: AttributeLevel.Series,\n referer: symbolMark\n };\n }\n }\n // make sure activeMark in state\n this._symbolActiveMark.state.changeStateInfo({\n stateValue: STATE_VALUE_ENUM.STATE_DIMENSION_HOVER,\n filter: () => true\n });\n }\n\n return symbolMark;\n }\n\n initLabelMarkStyle(labelMark?: ITextMark) {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(labelMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this.dataToPositionZ.bind(this)\n });\n if (this._invalidType) {\n this.setMarkStyle(\n labelMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n}\n\nexport const lineLikeSeriesMarkMap: SeriesMarkMap = {\n [SeriesMarkNameEnum.point]: { name: SeriesMarkNameEnum.point, type: MarkTypeEnum.symbol },\n [SeriesMarkNameEnum.line]: { name: SeriesMarkNameEnum.line, type: MarkTypeEnum.line }\n};\n"]}
|
|
@@ -13,6 +13,7 @@ export interface IRadarSeriesSpec extends IRoseLikeSeriesSpec, IAnimationSpec<Ra
|
|
|
13
13
|
[SeriesMarkNameEnum.line]?: IMarkSpec<ILineMarkSpec>;
|
|
14
14
|
[SeriesMarkNameEnum.area]?: IMarkSpec<IAreaMarkSpec>;
|
|
15
15
|
seriesMark?: 'point' | 'line' | 'area';
|
|
16
|
+
activePoint?: boolean;
|
|
16
17
|
}
|
|
17
18
|
export interface IRadarSeriesTheme extends IRoseLikeSeriesTheme, ILineLikeSeriesTheme {
|
|
18
19
|
[SeriesMarkNameEnum.area]?: Partial<IMarkTheme<IAreaMarkSpec>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/radar/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkProgressiveConfig } from '../../mark/interface';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { IAreaMarkSpec, ILineMarkSpec, ISymbolMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface';\nimport type { ILineLikeSeriesTheme } from '../mixin/line-mixin';\nimport type { IRoseLikeSeriesSpec, IRoseLikeSeriesTheme } from '../polar/rose-like';\nimport type { RadarAppearPreset } from './animation';\n\ntype RadarMarks = 'point' | 'line' | 'area';\n\nexport interface IRadarSeriesSpec\n extends IRoseLikeSeriesSpec,\n IAnimationSpec<RadarMarks, RadarAppearPreset>,\n IMarkProgressiveConfig {\n type: 'radar';\n\n /**\n * 点图元配置\n */\n [SeriesMarkNameEnum.point]?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 线图元配置\n */\n [SeriesMarkNameEnum.line]?: IMarkSpec<ILineMarkSpec>;\n /**\n * 面积图元配置\n */\n [SeriesMarkNameEnum.area]?: IMarkSpec<IAreaMarkSpec>;\n /**\n * 系列主 mark 类型配置,该配置会影响图例的展示\n * @default 'area'\n * @since 1.2.0\n */\n seriesMark?: 'point' | 'line' | 'area';\n}\n\nexport interface IRadarSeriesTheme extends IRoseLikeSeriesTheme, ILineLikeSeriesTheme {\n [SeriesMarkNameEnum.area]?: Partial<IMarkTheme<IAreaMarkSpec>>;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/radar/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkProgressiveConfig } from '../../mark/interface';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { IAreaMarkSpec, ILineMarkSpec, ISymbolMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface';\nimport type { ILineLikeSeriesTheme } from '../mixin/line-mixin';\nimport type { IRoseLikeSeriesSpec, IRoseLikeSeriesTheme } from '../polar/rose-like';\nimport type { RadarAppearPreset } from './animation';\n\ntype RadarMarks = 'point' | 'line' | 'area';\n\nexport interface IRadarSeriesSpec\n extends IRoseLikeSeriesSpec,\n IAnimationSpec<RadarMarks, RadarAppearPreset>,\n IMarkProgressiveConfig {\n type: 'radar';\n\n /**\n * 点图元配置\n */\n [SeriesMarkNameEnum.point]?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 线图元配置\n */\n [SeriesMarkNameEnum.line]?: IMarkSpec<ILineMarkSpec>;\n /**\n * 面积图元配置\n */\n [SeriesMarkNameEnum.area]?: IMarkSpec<IAreaMarkSpec>;\n /**\n * 系列主 mark 类型配置,该配置会影响图例的展示\n * @default 'area'\n * @since 1.2.0\n */\n seriesMark?: 'point' | 'line' | 'area';\n\n /**\n * 是否使用额外的 activePoint 显示交互点,可以在点隐藏时显示被交互的点\n * @default false\n * @since 1.3.0\n */\n activePoint?: boolean;\n}\n\nexport interface IRadarSeriesTheme extends IRoseLikeSeriesTheme, ILineLikeSeriesTheme {\n [SeriesMarkNameEnum.area]?: Partial<IMarkTheme<IAreaMarkSpec>>;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vchart",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2-alpha.0",
|
|
4
4
|
"description": "charts lib based @visactor/VGrammar",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
"form-data": "~4.0.0",
|
|
71
71
|
"canvas": "2.11.2",
|
|
72
72
|
"@internal/typescript-json-schema": "0.0.1",
|
|
73
|
+
"@internal/bundler": "0.0.1",
|
|
73
74
|
"@internal/eslint-config": "0.0.1",
|
|
74
|
-
"@internal/ts-config": "0.0.1"
|
|
75
|
-
"@internal/bundler": "0.0.1"
|
|
75
|
+
"@internal/ts-config": "0.0.1"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
78
|
"@visactor/vutils": "~0.13.3",
|