@visactor/vchart 1.11.10 → 1.11.11
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 +671 -319
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/stack.js +2 -1
- package/cjs/chart/util.js +2 -2
- package/cjs/chart/util.js.map +1 -1
- package/cjs/compile/grammar-item.js +1 -2
- package/cjs/component/axis/base-axis.js +5 -2
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +1 -0
- package/cjs/component/crosshair/base.js +17 -20
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/utils/common.js +6 -5
- package/cjs/component/crosshair/utils/common.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.js +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/indicator/interface.d.ts +3 -1
- package/cjs/component/indicator/interface.js.map +1 -1
- package/cjs/component/marker/interface.d.ts +3 -3
- package/cjs/component/marker/interface.js.map +1 -1
- package/cjs/component/tooltip/tooltip-transformer.js +3 -3
- package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +1 -0
- package/cjs/component/tooltip/tooltip.js +10 -6
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/constant/index.d.ts +1 -0
- package/cjs/constant/index.js +2 -1
- package/cjs/constant/index.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/core/vchart.js +11 -9
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/event/bubble.d.ts +3 -0
- package/cjs/event/bubble.js +9 -0
- package/cjs/event/bubble.js.map +1 -1
- package/cjs/event/event-dispatcher.d.ts +3 -1
- package/cjs/event/event-dispatcher.js +15 -1
- package/cjs/event/event-dispatcher.js.map +1 -1
- package/cjs/event/event.d.ts +2 -0
- package/cjs/event/event.js +6 -0
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/interface.d.ts +5 -0
- package/cjs/event/interface.js.map +1 -1
- package/cjs/interaction/zoom/zoomable.js +3 -3
- package/cjs/interaction/zoom/zoomable.js.map +1 -1
- package/cjs/mark/base/base-line.js +1 -2
- package/cjs/mark/base/base-line.js.map +1 -1
- package/cjs/mark/base/base-mark.js +6 -2
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/utils/common.d.ts +1 -0
- package/cjs/mark/utils/common.js +7 -2
- package/cjs/mark/utils/common.js.map +1 -1
- package/cjs/series/base/base-series-transformer.js +1 -2
- package/cjs/series/base/base-series-transformer.js.map +1 -1
- package/cjs/series/base/base-series.js +2 -2
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/interface/type.d.ts +1 -0
- package/cjs/series/interface/type.js +4 -3
- package/cjs/series/interface/type.js.map +1 -1
- package/cjs/series/liquid/animation.d.ts +1 -0
- package/cjs/series/liquid/animation.js +30 -2
- package/cjs/series/liquid/animation.js.map +1 -1
- package/cjs/series/liquid/constant.js +5 -1
- package/cjs/series/liquid/constant.js.map +1 -1
- package/cjs/series/liquid/liquid.d.ts +3 -0
- package/cjs/series/liquid/liquid.js +70 -41
- package/cjs/series/liquid/liquid.js.map +1 -1
- package/cjs/series/liquid/util.js +1 -1
- package/cjs/series/liquid/util.js.map +1 -1
- package/cjs/series/pie/interface.d.ts +3 -1
- package/cjs/series/pie/interface.js.map +1 -1
- package/cjs/typings/interpolate.d.ts +1 -3
- package/cjs/typings/interpolate.js +2 -3
- package/cjs/typings/interpolate.js.map +1 -1
- package/esm/chart/stack.js +2 -1
- package/esm/chart/util.js +3 -1
- package/esm/chart/util.js.map +1 -1
- package/esm/compile/grammar-item.js +1 -2
- package/esm/component/axis/base-axis.js +5 -2
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +1 -0
- package/esm/component/crosshair/base.js +18 -22
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/utils/common.js +6 -5
- package/esm/component/crosshair/utils/common.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.js +1 -1
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/indicator/interface.d.ts +3 -1
- package/esm/component/indicator/interface.js.map +1 -1
- package/esm/component/marker/interface.d.ts +3 -3
- package/esm/component/marker/interface.js.map +1 -1
- package/esm/component/tooltip/tooltip-transformer.js +4 -2
- package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +1 -0
- package/esm/component/tooltip/tooltip.js +10 -6
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/constant/index.d.ts +1 -0
- package/esm/constant/index.js +2 -1
- package/esm/constant/index.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/core/vchart.js +12 -11
- package/esm/core/vchart.js.map +1 -1
- package/esm/event/bubble.d.ts +3 -0
- package/esm/event/bubble.js +9 -0
- package/esm/event/bubble.js.map +1 -1
- package/esm/event/event-dispatcher.d.ts +3 -1
- package/esm/event/event-dispatcher.js +15 -1
- package/esm/event/event-dispatcher.js.map +1 -1
- package/esm/event/event.d.ts +2 -0
- package/esm/event/event.js +6 -0
- package/esm/event/event.js.map +1 -1
- package/esm/event/interface.d.ts +5 -0
- package/esm/event/interface.js.map +1 -1
- package/esm/interaction/zoom/zoomable.js +3 -3
- package/esm/interaction/zoom/zoomable.js.map +1 -1
- package/esm/mark/base/base-line.js +1 -2
- package/esm/mark/base/base-line.js.map +1 -1
- package/esm/mark/base/base-mark.js +7 -1
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/utils/common.d.ts +1 -0
- package/esm/mark/utils/common.js +4 -0
- package/esm/mark/utils/common.js.map +1 -1
- package/esm/series/base/base-series-transformer.js +1 -2
- package/esm/series/base/base-series-transformer.js.map +1 -1
- package/esm/series/base/base-series.js +2 -2
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/interface/type.d.ts +1 -0
- package/esm/series/interface/type.js +4 -3
- package/esm/series/interface/type.js.map +1 -1
- package/esm/series/liquid/animation.d.ts +1 -0
- package/esm/series/liquid/animation.js +28 -0
- package/esm/series/liquid/animation.js.map +1 -1
- package/esm/series/liquid/constant.js +5 -1
- package/esm/series/liquid/constant.js.map +1 -1
- package/esm/series/liquid/liquid.d.ts +3 -0
- package/esm/series/liquid/liquid.js +69 -42
- package/esm/series/liquid/liquid.js.map +1 -1
- package/esm/series/liquid/util.js +1 -1
- package/esm/series/liquid/util.js.map +1 -1
- package/esm/series/pie/interface.d.ts +3 -1
- package/esm/series/pie/interface.js.map +1 -1
- package/esm/typings/interpolate.d.ts +1 -3
- package/esm/typings/interpolate.js +0 -4
- package/esm/typings/interpolate.js.map +1 -1
- package/package.json +14 -14
|
@@ -11,23 +11,57 @@ class LiquidSeries extends base_1.BaseSeries {
|
|
|
11
11
|
super(...arguments), this.type = type_1.SeriesTypeEnum.liquid, this.transformerConstructor = line_mixin_transformer_1.LineLikeSeriesSpecTransformer,
|
|
12
12
|
this._liquidBackgroundMark = null, this._liquidOutlineMark = null, this._getLiquidPosY = () => {
|
|
13
13
|
let liquidY = 0;
|
|
14
|
-
const {
|
|
15
|
-
return liquidY = this._reverse ?
|
|
16
|
-
liquidY;
|
|
14
|
+
const {height: liquidBackHeight, startY: startY} = this._getLiquidBackPosAndSize();
|
|
15
|
+
return liquidY = this._reverse ? liquidBackHeight * this._heightRatio : liquidBackHeight * (1 - this._heightRatio),
|
|
16
|
+
liquidY + startY;
|
|
17
17
|
}, this._getLiquidHeight = () => {
|
|
18
|
-
const {
|
|
19
|
-
return
|
|
18
|
+
const {height: liquidBackHeight} = this._getLiquidBackPosAndSize();
|
|
19
|
+
return liquidBackHeight * this._heightRatio;
|
|
20
20
|
}, this._getLiquidBackPosAndSize = (isOutline = !1) => {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
var _a, _b;
|
|
22
|
+
let {top: marginTop = 0, bottom: marginBottom = 0, left: marginLeft = 0, right: marginRight = 0} = this._marginSpec, {top: paddingTop = 0, bottom: paddingBottom = 0, left: paddingLeft = 0, right: paddingRight = 0} = isOutline ? {} : this._paddingSpec;
|
|
23
|
+
"triangle" === this._maskShape && (marginBottom /= Math.sqrt(3), marginTop = marginTop / Math.sqrt(3) * 2,
|
|
24
|
+
paddingBottom /= Math.sqrt(3), paddingTop = paddingTop / Math.sqrt(3) * 2);
|
|
25
|
+
const {width: regionWidth, height: regionHeight} = null !== (_b = null === (_a = this._region) || void 0 === _a ? void 0 : _a.getLayoutRect()) && void 0 !== _b ? _b : {
|
|
26
|
+
width: 0,
|
|
27
|
+
height: 0
|
|
28
|
+
}, x = regionWidth / 2 + (marginLeft + paddingLeft - (marginRight + paddingRight)) / 2, y = regionHeight / 2 + (marginTop + paddingTop - (marginBottom + paddingBottom)) / 2;
|
|
29
|
+
let width = regionWidth - (marginLeft + marginRight + paddingLeft + paddingRight), height = regionHeight - (marginTop + marginBottom + paddingTop + paddingBottom);
|
|
30
|
+
const size = Math.min(width, height);
|
|
31
|
+
return "rect" !== this._maskShape && (width = size, height = size), {
|
|
23
32
|
x: x,
|
|
24
33
|
y: y,
|
|
25
34
|
size: size,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
35
|
+
width: width,
|
|
36
|
+
height: height,
|
|
37
|
+
startX: x - width / 2,
|
|
38
|
+
startY: y - height / 2,
|
|
39
|
+
endX: x + width / 2,
|
|
40
|
+
endY: y + height / 2
|
|
30
41
|
};
|
|
42
|
+
}, this._getLiquidBackPath = (isOutline = !1) => {
|
|
43
|
+
var _a;
|
|
44
|
+
let symbolPath;
|
|
45
|
+
if ("rect" === this._maskShape) {
|
|
46
|
+
const {x: x, y: y, width: width, height: height} = this._getLiquidBackPosAndSize(isOutline);
|
|
47
|
+
symbolPath = (0, vrender_core_1.createRect)({
|
|
48
|
+
x: x - width / 2,
|
|
49
|
+
y: y - height / 2,
|
|
50
|
+
width: width,
|
|
51
|
+
height: height,
|
|
52
|
+
fill: !0
|
|
53
|
+
});
|
|
54
|
+
} else {
|
|
55
|
+
const {x: x, y: y, size: size} = this._getLiquidBackPosAndSize(isOutline);
|
|
56
|
+
symbolPath = (0, vrender_core_1.createSymbol)({
|
|
57
|
+
x: x,
|
|
58
|
+
y: y,
|
|
59
|
+
size: size,
|
|
60
|
+
symbolType: (0, util_1.getShapes)(null !== (_a = this._spec.maskShape) && void 0 !== _a ? _a : "circle", size),
|
|
61
|
+
fill: !0
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return [ symbolPath ];
|
|
31
65
|
};
|
|
32
66
|
}
|
|
33
67
|
setValueField(field) {
|
|
@@ -37,10 +71,11 @@ class LiquidSeries extends base_1.BaseSeries {
|
|
|
37
71
|
return this._valueField;
|
|
38
72
|
}
|
|
39
73
|
setAttrFromSpec() {
|
|
40
|
-
var _a;
|
|
74
|
+
var _a, _b;
|
|
41
75
|
super.setAttrFromSpec(), this._marginSpec = (0, util_2.normalizeLayoutPaddingSpec)(this._spec.outlineMargin),
|
|
42
76
|
this._paddingSpec = (0, util_2.normalizeLayoutPaddingSpec)(this._spec.outlinePadding),
|
|
43
|
-
this.setValueField(this._spec.valueField), this._reverse = null !== (_a = this._spec.reverse) && void 0 !== _a && _a
|
|
77
|
+
this.setValueField(this._spec.valueField), this._reverse = null !== (_a = this._spec.reverse) && void 0 !== _a && _a,
|
|
78
|
+
this._maskShape = null !== (_b = this._spec.maskShape) && void 0 !== _b ? _b : "circle";
|
|
44
79
|
}
|
|
45
80
|
viewDataUpdate(d) {
|
|
46
81
|
super.viewDataUpdate(d), this._heightRatio = (0, vutils_1.max)(...this._data.getLatestData().map((d => d[this._valueField])));
|
|
@@ -64,10 +99,14 @@ class LiquidSeries extends base_1.BaseSeries {
|
|
|
64
99
|
}), this._liquidBackgroundMark;
|
|
65
100
|
}
|
|
66
101
|
_initLiquidMark() {
|
|
67
|
-
return this.
|
|
102
|
+
return this._liquidGroupMark = this._createMark(LiquidSeries.mark.liquidGroup, {
|
|
68
103
|
parent: this._liquidBackgroundMark,
|
|
69
104
|
isSeriesMark: !0,
|
|
70
105
|
skipBeforeLayouted: !1
|
|
106
|
+
}), this._liquidMark = this._createMark(LiquidSeries.mark.liquid, {
|
|
107
|
+
parent: this._liquidGroupMark,
|
|
108
|
+
isSeriesMark: !0,
|
|
109
|
+
skipBeforeLayouted: !1
|
|
71
110
|
}), this._liquidMark;
|
|
72
111
|
}
|
|
73
112
|
_buildMarkAttributeContext() {
|
|
@@ -78,13 +117,9 @@ class LiquidSeries extends base_1.BaseSeries {
|
|
|
78
117
|
const liquidOutlineMark = this._liquidOutlineMark;
|
|
79
118
|
liquidOutlineMark.setZIndex(this.layoutZIndex), liquidOutlineMark.created(), this.setMarkStyle(liquidOutlineMark, {
|
|
80
119
|
stroke: this.getColorAttribute(),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
symbolType: () => {
|
|
85
|
-
var _a;
|
|
86
|
-
return (0, util_1.getShapes)(null !== (_a = this._spec.maskShape) && void 0 !== _a ? _a : "circle", this._getLiquidBackPosAndSize(!0).size);
|
|
87
|
-
}
|
|
120
|
+
width: () => this._region.getLayoutRect().width,
|
|
121
|
+
height: () => this._region.getLayoutRect().height,
|
|
122
|
+
path: () => this._getLiquidBackPath(!0)
|
|
88
123
|
}, "normal", constant_2.AttributeLevel.Series), this._liquidOutlineMark.setInteractive(!1);
|
|
89
124
|
}
|
|
90
125
|
_initLiquidBackgroundMarkStyle() {
|
|
@@ -94,26 +129,19 @@ class LiquidSeries extends base_1.BaseSeries {
|
|
|
94
129
|
clip: !0,
|
|
95
130
|
width: () => this._region.getLayoutRect().width,
|
|
96
131
|
height: () => this._region.getLayoutRect().height,
|
|
97
|
-
path: () =>
|
|
98
|
-
var _a;
|
|
99
|
-
const {x: x, y: y, size: size} = this._getLiquidBackPosAndSize();
|
|
100
|
-
return [ (0, vrender_core_1.createSymbol)({
|
|
101
|
-
x: x,
|
|
102
|
-
y: y,
|
|
103
|
-
size: size,
|
|
104
|
-
symbolType: (0, util_1.getShapes)(null !== (_a = this._spec.maskShape) && void 0 !== _a ? _a : "circle", size),
|
|
105
|
-
fill: !0
|
|
106
|
-
}) ];
|
|
107
|
-
}
|
|
132
|
+
path: () => this._getLiquidBackPath()
|
|
108
133
|
}, "normal", constant_2.AttributeLevel.Series), this._liquidBackgroundMark.setInteractive(!1);
|
|
109
134
|
}
|
|
110
135
|
_initLiquidMarkStyle() {
|
|
111
|
-
const liquidMark = this._liquidMark;
|
|
112
|
-
|
|
136
|
+
const liquidMark = this._liquidMark, liquidGroupMark = this._liquidGroupMark;
|
|
137
|
+
liquidGroupMark && this.setMarkStyle(liquidGroupMark, {
|
|
138
|
+
x: () => this._region.getLayoutStartPoint().x + this._region.getLayoutRect().width / 2,
|
|
113
139
|
angle: this._reverse ? -Math.PI : 0,
|
|
114
|
-
dx: () => this._region.getLayoutStartPoint().x + this._region.getLayoutRect().width / 2,
|
|
115
140
|
y: 0,
|
|
116
|
-
dy: this._getLiquidPosY
|
|
141
|
+
dy: this._getLiquidPosY
|
|
142
|
+
}), liquidMark && this.setMarkStyle(liquidMark, {
|
|
143
|
+
y: 0,
|
|
144
|
+
dy: 0,
|
|
117
145
|
height: this._getLiquidHeight,
|
|
118
146
|
fill: this.getColorAttribute(),
|
|
119
147
|
wave: 0
|
|
@@ -126,7 +154,7 @@ class LiquidSeries extends base_1.BaseSeries {
|
|
|
126
154
|
this._parseInteractionConfig(this._liquidMark ? [ this._liquidMark ] : []);
|
|
127
155
|
}
|
|
128
156
|
initAnimation() {
|
|
129
|
-
var _a, _b, _c;
|
|
157
|
+
var _a, _b, _c, _d;
|
|
130
158
|
const animationParams = {
|
|
131
159
|
height: {
|
|
132
160
|
from: 0,
|
|
@@ -135,14 +163,15 @@ class LiquidSeries extends base_1.BaseSeries {
|
|
|
135
163
|
dy: {
|
|
136
164
|
from: () => {
|
|
137
165
|
let liquidY = 0;
|
|
138
|
-
const {
|
|
139
|
-
return liquidY = this._reverse ?
|
|
140
|
-
liquidY;
|
|
166
|
+
const {height: liquidBackHeight, startY: startY} = this._getLiquidBackPosAndSize();
|
|
167
|
+
return liquidY = this._reverse ? 0 : liquidBackHeight, liquidY + startY;
|
|
141
168
|
}
|
|
142
169
|
}
|
|
143
170
|
}, appearPreset = null === (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.animationAppear) || void 0 === _b ? void 0 : _b.preset;
|
|
144
171
|
this._liquidMark.setAnimationConfig((0, utils_1.animationConfig)(null === (_c = factory_1.Factory.getAnimationInKey("liquid")) || void 0 === _c ? void 0 : _c(animationParams, appearPreset), (0,
|
|
145
|
-
utils_1.userAnimationConfig)("liquid", this._spec, this._markAttributeContext)))
|
|
172
|
+
utils_1.userAnimationConfig)("liquid", this._spec, this._markAttributeContext))),
|
|
173
|
+
this._liquidGroupMark.setAnimationConfig((0, utils_1.animationConfig)(null === (_d = factory_1.Factory.getAnimationInKey("liquidGroup")) || void 0 === _d ? void 0 : _d(animationParams, appearPreset), (0,
|
|
174
|
+
utils_1.userAnimationConfig)("liquidGroup", this._spec, this._markAttributeContext)));
|
|
146
175
|
}
|
|
147
176
|
initEvent() {
|
|
148
177
|
super.initEvent(), this._spec.indicatorSmartInvert && this._option.getChart().getComponentsByKey("indicator") && this.event.on(constant_2.ChartEvent.renderFinished, (() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/liquid/liquid.ts"],"names":[],"mappings":"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","file":"liquid.js","sourcesContent":["import type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid, max } from '@visactor/vutils';\nimport type { Datum, ILiquidMarkSpec, IPoint } from '../../typings';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { ILiquidPadding, ILiquidSeriesSpec } from './interface';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { LiquidAppearPreset } from './animation';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLiquidAnimation } from './animation';\nimport { LiquidSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport type { IMark, IMarkRaw } from '../../mark/interface';\nimport { LineLikeSeriesSpecTransformer } from '../mixin/line-mixin-transformer';\nimport { registerLiquidMark } from '../../mark/liquid';\nimport { AttributeLevel, ChartEvent } from '../../constant';\nimport { BaseSeries } from '../base';\nimport type { IGroupMark } from '../../mark/group';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerGroupMark } from '../../mark/group';\nimport { getShapes } from './util';\nimport { createSymbol } from '@visactor/vrender-core';\nimport { labelSmartInvert } from '@visactor/vrender-components';\nimport { normalizeLayoutPaddingSpec } from '../../util';\nimport type { DataView } from '@visactor/vdataset';\nimport { LiquidSeriesTooltipHelper } from './tooltip-helper';\nimport type { ISymbolMark } from '../../mark/symbol';\n\nexport type ILiquidMark = IMarkRaw<ILiquidMarkSpec>;\nexport class LiquidSeries<T extends ILiquidSeriesSpec = ILiquidSeriesSpec> extends BaseSeries<T> {\n static readonly type: string = SeriesTypeEnum.liquid;\n type = SeriesTypeEnum.liquid;\n\n static readonly mark: SeriesMarkMap = LiquidSeriesMark;\n static readonly transformerConstructor = LineLikeSeriesSpecTransformer;\n readonly transformerConstructor = LineLikeSeriesSpecTransformer;\n private _liquidMark?: ILiquidMark;\n private _liquidBackgroundMark?: IGroupMark | null = null;\n private _liquidOutlineMark?: ISymbolMark | null = null;\n private _paddingSpec?: ILiquidPadding;\n private _marginSpec?: ILiquidPadding;\n\n private _heightRatio?: number;\n\n private _reverse?: boolean;\n\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n getValueField() {\n return this._valueField;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._marginSpec = normalizeLayoutPaddingSpec(this._spec.outlineMargin) as ILiquidPadding;\n this._paddingSpec = normalizeLayoutPaddingSpec(this._spec.outlinePadding) as ILiquidPadding;\n this.setValueField(this._spec.valueField);\n this._reverse = this._spec.reverse ?? false;\n }\n\n viewDataUpdate(d: DataView): void {\n super.viewDataUpdate(d);\n this._heightRatio = max(...this._data.getLatestData().map((d: Datum) => d[this._valueField]));\n }\n\n initMark(): void {\n this._initLiquidOutlineMark();\n this._initLiquidBackgroundMark();\n this._initLiquidMark();\n }\n\n initMarkStyle(): void {\n this._initLiquidOutlineMarkStyle();\n this._initLiquidBackgroundMarkStyle();\n this._initLiquidMarkStyle();\n }\n\n private _initLiquidOutlineMark() {\n this._liquidOutlineMark = this._createMark(LiquidSeries.mark.liquidOutline, {\n isSeriesMark: true,\n skipBeforeLayouted: false\n }) as ISymbolMark;\n return this._liquidOutlineMark;\n }\n\n private _initLiquidBackgroundMark() {\n this._liquidBackgroundMark = this._createMark(LiquidSeries.mark.liquidBackground, {\n isSeriesMark: true,\n skipBeforeLayouted: false\n }) as IGroupMark;\n return this._liquidBackgroundMark;\n }\n\n private _initLiquidMark() {\n this._liquidMark = this._createMark(LiquidSeries.mark.liquid, {\n parent: this._liquidBackgroundMark,\n isSeriesMark: true,\n skipBeforeLayouted: false\n }) as ILiquidMark;\n return this._liquidMark;\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n this._markAttributeContext.getLiquidBackPosAndSize = this._getLiquidBackPosAndSize;\n this._markAttributeContext.getLiquidPosY = this._getLiquidPosY;\n this._markAttributeContext.getLiquidHeight = this._getLiquidHeight;\n }\n\n private _getLiquidPosY = () => {\n let liquidY = 0;\n const { startY: liquidBackStartY, size: liquidBackSize } = this._getLiquidBackPosAndSize();\n const liquidHeight = liquidBackSize * this._heightRatio;\n if (this._reverse) {\n liquidY = liquidBackStartY + liquidHeight;\n } else {\n liquidY = liquidBackSize - liquidHeight + liquidBackStartY;\n }\n return liquidY;\n };\n\n private _getLiquidHeight = () => {\n const { size: liquidBackSize } = this._getLiquidBackPosAndSize();\n return liquidBackSize * this._heightRatio;\n };\n\n private _getLiquidBackPosAndSize = (isOutline: boolean = false) => {\n const {\n top: marginTop = 0,\n bottom: marginBottom = 0,\n left: marginLeft = 0,\n right: marginRight = 0\n } = this._marginSpec;\n const {\n top: paddingTop = 0,\n bottom: paddingBottom = 0,\n left: paddingLeft = 0,\n right: paddingRight = 0\n } = isOutline ? {} : this._paddingSpec;\n\n const { width: regionWidth, height: regionHeight } = this._region.getLayoutRect();\n const x = regionWidth / 2 + (marginLeft + paddingRight - (marginRight + paddingRight)) / 2;\n const y = regionHeight / 2 + (marginTop + paddingTop - (marginBottom + paddingBottom)) / 2;\n const size = Math.min(\n regionWidth - (marginLeft + marginRight + paddingLeft + paddingRight),\n regionHeight - (marginTop + marginBottom + paddingTop + paddingBottom)\n );\n return {\n x,\n y,\n size,\n startX: x - size / 2,\n startY: y - size / 2,\n endX: x + size / 2,\n endY: y + size / 2\n };\n };\n\n private _initLiquidOutlineMarkStyle() {\n const liquidOutlineMark = this._liquidOutlineMark;\n liquidOutlineMark.setZIndex(this.layoutZIndex);\n liquidOutlineMark.created();\n this.setMarkStyle(\n liquidOutlineMark,\n {\n stroke: this.getColorAttribute(),\n x: () => this._getLiquidBackPosAndSize(true).x,\n y: () => this._getLiquidBackPosAndSize(true).y,\n size: () => this._getLiquidBackPosAndSize(true).size,\n symbolType: () => getShapes(this._spec.maskShape ?? 'circle', this._getLiquidBackPosAndSize(true).size)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._liquidOutlineMark.setInteractive(false);\n }\n\n private _initLiquidBackgroundMarkStyle() {\n const liquidBackgroundMark = this._liquidBackgroundMark;\n liquidBackgroundMark.setZIndex(this.layoutZIndex);\n liquidBackgroundMark.created();\n // symbol mark x, y 指定center\n this.setMarkStyle(\n liquidBackgroundMark,\n {\n clip: true,\n width: () => this._region.getLayoutRect().width,\n height: () => this._region.getLayoutRect().height,\n path: () => {\n const { x, y, size } = this._getLiquidBackPosAndSize();\n const symbolPath = createSymbol({\n x,\n y,\n size,\n symbolType: getShapes(this._spec.maskShape ?? 'circle', size),\n fill: true\n });\n return [symbolPath];\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n this._liquidBackgroundMark.setInteractive(false);\n }\n\n private _initLiquidMarkStyle() {\n const liquidMark = this._liquidMark;\n if (liquidMark) {\n // liquid mark x, y 指定左上角\n this.setMarkStyle(\n liquidMark,\n {\n angle: this._reverse ? -Math.PI : 0,\n dx: () => {\n return this._region.getLayoutStartPoint().x + this._region.getLayoutRect().width / 2;\n },\n // wave图元设置y后, 3个子area图元的point发生变化, 但vrender的渐变区域没有变化, 待vrender修复\n // 目前先采用下列方法配置:\n y: 0, // y强制指定为0, 保证图元不超出vrender的渐变区域\n dy: this._getLiquidPosY, // 使用dy做偏移, 保证vrender渐变区域随图元位置变化而更新\n\n height: this._getLiquidHeight,\n fill: this.getColorAttribute(),\n wave: 0\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new LiquidSeriesTooltipHelper(this);\n this._liquidMark && this._tooltipHelper.activeTriggerSet.mark.add(this._liquidMark);\n }\n\n initInteraction(): void {\n this._parseInteractionConfig(this._liquidMark ? [this._liquidMark] : []);\n }\n\n initAnimation() {\n const animationParams = {\n height: {\n from: 0,\n to: () => {\n return this._getLiquidHeight();\n }\n },\n dy: {\n from: () => {\n let liquidY = 0;\n const { startY: liquidBackStartY, size: liquidBackSize } = this._getLiquidBackPosAndSize();\n if (this._reverse) {\n liquidY = liquidBackStartY;\n } else {\n liquidY = liquidBackSize + liquidBackStartY;\n }\n return liquidY;\n }\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<LiquidAppearPreset>)?.preset;\n this._liquidMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('liquid')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.liquid, this._spec, this._markAttributeContext)\n )\n );\n }\n\n protected initEvent(): void {\n super.initEvent();\n if (!this._spec.indicatorSmartInvert || !this._option.getChart().getComponentsByKey('indicator')) {\n return;\n }\n this.event.on(ChartEvent.renderFinished, () => {\n this._option\n .getChart()\n .getComponentsByKey('indicator')\n .forEach((indicatorComponent: any) => {\n // wave item比较特殊, 由wave1、wave2、wave3在x方向上偏移叠加而成\n // 由于在水波图中只需要判断y方向上是否重叠, 所以此处取wave1做y方向上对比\n const grammarMark = this._liquidMark.getProduct();\n const waveItem = (grammarMark.elements[0] as any).glyphGraphicItems.wave1;\n let { y1: waveY1, y2: waveY2 } = waveItem.globalAABBBounds;\n waveY1 += this._region.getLayoutStartPoint().y;\n waveY2 += this._region.getLayoutStartPoint().y;\n indicatorComponent\n ?.getIndicatorComponent()\n ?.getChildren()[0]\n ?.getChildren()\n .forEach((text: any) => {\n const { y1: textY1, y2: textY2 } = text.globalAABBBounds;\n if (waveY1 < textY1 && waveY2 > textY2) {\n const foregroundColor = text.attribute.fill;\n const backgroundColor = waveItem.attribute.fill;\n const invertColor = labelSmartInvert(foregroundColor, backgroundColor);\n text.setAttribute('fill', invertColor);\n }\n });\n });\n });\n }\n\n dataToPosition(data: Datum): IPoint {\n return null;\n }\n dataToPositionX(data: Datum): number {\n return null;\n }\n dataToPositionY(data: Datum): number {\n return null;\n }\n valueToPosition(value1: any, value2?: any): IPoint {\n return null;\n }\n\n getStatisticFields(): any[] {\n return [];\n }\n\n getGroupFields(): string[] {\n return [];\n }\n getStackGroupFields(): string[] {\n return [];\n }\n getStackValueField(): string {\n return '';\n }\n\n getActiveMarks(): IMark[] {\n return [this._liquidMark];\n }\n}\n\nexport const registerLiquidSeries = () => {\n registerLiquidMark();\n registerGroupMark();\n registerLiquidAnimation();\n Factory.registerSeries(LiquidSeries.type, LiquidSeries);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/liquid/liquid.ts"],"names":[],"mappings":"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","file":"liquid.js","sourcesContent":["import type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum, SeriesTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid, max } from '@visactor/vutils';\nimport type { Datum, ILiquidMarkSpec, IPoint } from '../../typings';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { ILiquidPadding, ILiquidSeriesSpec, LiquidShapeType } from './interface';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { LiquidAppearPreset } from './animation';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLiquidAnimation } from './animation';\nimport { LiquidSeriesMark } from './constant';\nimport { Factory } from '../../core/factory';\nimport type { IMark, IMarkRaw } from '../../mark/interface';\nimport { LineLikeSeriesSpecTransformer } from '../mixin/line-mixin-transformer';\nimport { registerLiquidMark } from '../../mark/liquid';\nimport { AttributeLevel, ChartEvent } from '../../constant';\nimport { BaseSeries } from '../base';\nimport type { IGroupMark } from '../../mark/group';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerGroupMark } from '../../mark/group';\nimport { getShapes } from './util';\nimport { createRect, createSymbol } from '@visactor/vrender-core';\nimport { labelSmartInvert } from '@visactor/vrender-components';\nimport { normalizeLayoutPaddingSpec } from '../../util';\nimport type { DataView } from '@visactor/vdataset';\nimport { LiquidSeriesTooltipHelper } from './tooltip-helper';\n\nexport type ILiquidMark = IMarkRaw<ILiquidMarkSpec>;\nexport class LiquidSeries<T extends ILiquidSeriesSpec = ILiquidSeriesSpec> extends BaseSeries<T> {\n static readonly type: string = SeriesTypeEnum.liquid;\n type = SeriesTypeEnum.liquid;\n\n static readonly mark: SeriesMarkMap = LiquidSeriesMark;\n static readonly transformerConstructor = LineLikeSeriesSpecTransformer;\n readonly transformerConstructor = LineLikeSeriesSpecTransformer;\n private _liquidGroupMark?: IGroupMark;\n private _liquidMark?: ILiquidMark;\n private _liquidBackgroundMark?: IGroupMark | null = null;\n private _liquidOutlineMark?: IGroupMark | null = null;\n private _paddingSpec?: ILiquidPadding;\n private _marginSpec?: ILiquidPadding;\n\n private _heightRatio?: number;\n\n private _reverse?: boolean;\n private _maskShape?: LiquidShapeType;\n\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n getValueField() {\n return this._valueField;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._marginSpec = normalizeLayoutPaddingSpec(this._spec.outlineMargin) as ILiquidPadding;\n this._paddingSpec = normalizeLayoutPaddingSpec(this._spec.outlinePadding) as ILiquidPadding;\n this.setValueField(this._spec.valueField);\n this._reverse = this._spec.reverse ?? false;\n this._maskShape = this._spec.maskShape ?? 'circle';\n }\n\n viewDataUpdate(d: DataView): void {\n super.viewDataUpdate(d);\n this._heightRatio = max(...this._data.getLatestData().map((d: Datum) => d[this._valueField]));\n }\n\n initMark(): void {\n this._initLiquidOutlineMark();\n this._initLiquidBackgroundMark();\n this._initLiquidMark();\n }\n\n initMarkStyle(): void {\n this._initLiquidOutlineMarkStyle();\n this._initLiquidBackgroundMarkStyle();\n this._initLiquidMarkStyle();\n }\n\n private _initLiquidOutlineMark() {\n this._liquidOutlineMark = this._createMark(LiquidSeries.mark.liquidOutline, {\n isSeriesMark: true,\n skipBeforeLayouted: false\n }) as IGroupMark;\n return this._liquidOutlineMark;\n }\n\n private _initLiquidBackgroundMark() {\n this._liquidBackgroundMark = this._createMark(LiquidSeries.mark.liquidBackground, {\n isSeriesMark: true,\n skipBeforeLayouted: false\n }) as IGroupMark;\n return this._liquidBackgroundMark;\n }\n\n private _initLiquidMark() {\n this._liquidGroupMark = this._createMark(LiquidSeries.mark.liquidGroup, {\n parent: this._liquidBackgroundMark,\n isSeriesMark: true,\n skipBeforeLayouted: false\n }) as IGroupMark;\n this._liquidMark = this._createMark(LiquidSeries.mark.liquid, {\n parent: this._liquidGroupMark,\n isSeriesMark: true,\n skipBeforeLayouted: false\n }) as ILiquidMark;\n return this._liquidMark;\n }\n\n protected _buildMarkAttributeContext() {\n super._buildMarkAttributeContext();\n this._markAttributeContext.getLiquidBackPosAndSize = this._getLiquidBackPosAndSize;\n this._markAttributeContext.getLiquidPosY = this._getLiquidPosY;\n this._markAttributeContext.getLiquidHeight = this._getLiquidHeight;\n }\n\n private _getLiquidPosY = () => {\n let liquidY = 0;\n const { height: liquidBackHeight, startY } = this._getLiquidBackPosAndSize();\n if (this._reverse) {\n liquidY = liquidBackHeight * this._heightRatio;\n } else {\n liquidY = liquidBackHeight * (1 - this._heightRatio);\n }\n return liquidY + startY;\n };\n\n private _getLiquidHeight = () => {\n const { height: liquidBackHeight } = this._getLiquidBackPosAndSize();\n return liquidBackHeight * this._heightRatio;\n };\n\n private _getLiquidBackPosAndSize = (isOutline: boolean = false) => {\n let {\n top: marginTop = 0,\n bottom: marginBottom = 0,\n // eslint-disable-next-line prefer-const\n left: marginLeft = 0,\n // eslint-disable-next-line prefer-const\n right: marginRight = 0\n } = this._marginSpec;\n let {\n top: paddingTop = 0,\n bottom: paddingBottom = 0,\n // eslint-disable-next-line prefer-const\n left: paddingLeft = 0,\n // eslint-disable-next-line prefer-const\n right: paddingRight = 0\n } = isOutline ? {} : this._paddingSpec;\n\n // 纠偏:对于正三角形而言, 上下留取相同的padidng/margin, 视觉上会看到下面留取的空白大于上面\n // 正确的做法是保持正三角形在60度方向上空白一致,换算到bottom就是/Math.sqrt(3), 换算到top就是 value/Math.sqrt(3)*2\n if (this._maskShape === 'triangle') {\n marginBottom = marginBottom / Math.sqrt(3);\n marginTop = (marginTop / Math.sqrt(3)) * 2;\n paddingBottom = paddingBottom / Math.sqrt(3);\n paddingTop = (paddingTop / Math.sqrt(3)) * 2;\n }\n\n const { width: regionWidth, height: regionHeight } = this._region?.getLayoutRect() ?? { width: 0, height: 0 };\n\n const deltaX = (marginLeft + paddingLeft - (marginRight + paddingRight)) / 2;\n const deltaY = (marginTop + paddingTop - (marginBottom + paddingBottom)) / 2;\n const x = regionWidth / 2 + deltaX;\n const y = regionHeight / 2 + deltaY;\n\n // 用于rect mark style\n let width = regionWidth - (marginLeft + marginRight + paddingLeft + paddingRight);\n let height = regionHeight - (marginTop + marginBottom + paddingTop + paddingBottom);\n // console.log('regionWidth', regionWidth, regionHeight)\n\n // 用于symbol mark style\n const size = Math.min(width, height);\n if (this._maskShape !== 'rect') {\n width = size;\n height = size;\n }\n\n return {\n x,\n y,\n size,\n width,\n height,\n startX: x - width / 2,\n startY: y - height / 2,\n endX: x + width / 2,\n endY: y + height / 2\n };\n };\n\n private _getLiquidBackPath = (isOutline: boolean = false) => {\n let symbolPath;\n if (this._maskShape === 'rect') {\n const { x, y, width, height } = this._getLiquidBackPosAndSize(isOutline);\n symbolPath = createRect({\n x: x - width / 2,\n y: y - height / 2,\n width,\n height,\n fill: true\n });\n } else {\n const { x, y, size } = this._getLiquidBackPosAndSize(isOutline);\n // console.log('size', size)\n symbolPath = createSymbol({\n x,\n y,\n size,\n symbolType: getShapes(this._spec.maskShape ?? 'circle', size),\n fill: true\n });\n }\n return [symbolPath];\n };\n\n private _initLiquidOutlineMarkStyle() {\n const liquidOutlineMark = this._liquidOutlineMark;\n liquidOutlineMark.setZIndex(this.layoutZIndex);\n liquidOutlineMark.created();\n this.setMarkStyle(\n liquidOutlineMark,\n {\n stroke: this.getColorAttribute(),\n width: () => this._region.getLayoutRect().width,\n height: () => this._region.getLayoutRect().height,\n path: () => this._getLiquidBackPath(true)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._liquidOutlineMark.setInteractive(false);\n }\n\n private _initLiquidBackgroundMarkStyle() {\n const liquidBackgroundMark = this._liquidBackgroundMark;\n liquidBackgroundMark.setZIndex(this.layoutZIndex);\n liquidBackgroundMark.created();\n // symbol mark x, y 指定center\n // rect mark x,y 指定左上角\n this.setMarkStyle(\n liquidBackgroundMark,\n {\n clip: true,\n width: () => this._region.getLayoutRect().width,\n height: () => this._region.getLayoutRect().height,\n path: () => this._getLiquidBackPath()\n },\n 'normal',\n AttributeLevel.Series\n );\n this._liquidBackgroundMark.setInteractive(false);\n }\n\n private _initLiquidMarkStyle() {\n const liquidMark = this._liquidMark;\n const liquidGroupMark = this._liquidGroupMark;\n if (liquidGroupMark) {\n this.setMarkStyle(liquidGroupMark, {\n x: () => {\n return this._region.getLayoutStartPoint().x + this._region.getLayoutRect().width / 2;\n },\n angle: this._reverse ? -Math.PI : 0,\n y: 0,\n dy: this._getLiquidPosY\n });\n }\n if (liquidMark) {\n // liquid mark x, y 指定左上角\n this.setMarkStyle(\n liquidMark,\n {\n // wave图元设置y后, 3个子area图元的point发生变化, 但vrender的渐变区域没有变化, 待vrender修复\n // 目前先采用下列方法配置:\n // 1. y强制指定为0, 保证图元不超出vrender的渐变区域\n // 2. 在外面包一层group图元, 使用group dy做偏移, 保证vrender渐变区域随图元位置变化而更新\n y: 0,\n dy: 0,\n height: this._getLiquidHeight,\n fill: this.getColorAttribute(),\n wave: 0\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new LiquidSeriesTooltipHelper(this);\n this._liquidMark && this._tooltipHelper.activeTriggerSet.mark.add(this._liquidMark);\n }\n\n initInteraction(): void {\n this._parseInteractionConfig(this._liquidMark ? [this._liquidMark] : []);\n }\n\n initAnimation() {\n const animationParams = {\n height: {\n from: 0,\n to: () => {\n return this._getLiquidHeight();\n }\n },\n dy: {\n from: () => {\n let liquidY = 0;\n const { height: liquidBackHeight, startY } = this._getLiquidBackPosAndSize();\n if (this._reverse) {\n liquidY = 0;\n } else {\n liquidY = liquidBackHeight;\n }\n return liquidY + startY;\n }\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<LiquidAppearPreset>)?.preset;\n this._liquidMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('liquid')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.liquid, this._spec, this._markAttributeContext)\n )\n );\n this._liquidGroupMark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('liquidGroup')?.(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.liquidGroup, this._spec, this._markAttributeContext)\n )\n );\n }\n\n protected initEvent(): void {\n super.initEvent();\n if (!this._spec.indicatorSmartInvert || !this._option.getChart().getComponentsByKey('indicator')) {\n return;\n }\n this.event.on(ChartEvent.renderFinished, () => {\n this._option\n .getChart()\n .getComponentsByKey('indicator')\n .forEach((indicatorComponent: any) => {\n // wave item比较特殊, 由wave1、wave2、wave3在x方向上偏移叠加而成\n // 由于在水波图中只需要判断y方向上是否重叠, 所以此处取wave1做y方向上对比\n const grammarMark = this._liquidMark.getProduct();\n const waveItem = (grammarMark.elements[0] as any).glyphGraphicItems.wave1;\n let { y1: waveY1, y2: waveY2 } = waveItem.globalAABBBounds;\n waveY1 += this._region.getLayoutStartPoint().y;\n waveY2 += this._region.getLayoutStartPoint().y;\n indicatorComponent\n ?.getIndicatorComponent()\n ?.getChildren()[0]\n ?.getChildren()\n .forEach((text: any) => {\n const { y1: textY1, y2: textY2 } = text.globalAABBBounds;\n if (waveY1 < textY1 && waveY2 > textY2) {\n const foregroundColor = text.attribute.fill;\n const backgroundColor = waveItem.attribute.fill;\n const invertColor = labelSmartInvert(foregroundColor, backgroundColor);\n text.setAttribute('fill', invertColor);\n }\n });\n });\n });\n }\n\n dataToPosition(data: Datum): IPoint {\n return null;\n }\n dataToPositionX(data: Datum): number {\n return null;\n }\n dataToPositionY(data: Datum): number {\n return null;\n }\n valueToPosition(value1: any, value2?: any): IPoint {\n return null;\n }\n\n getStatisticFields(): any[] {\n return [];\n }\n\n getGroupFields(): string[] {\n return [];\n }\n getStackGroupFields(): string[] {\n return [];\n }\n getStackValueField(): string {\n return '';\n }\n\n getActiveMarks(): IMark[] {\n return [this._liquidMark];\n }\n}\n\nexport const registerLiquidSeries = () => {\n registerLiquidMark();\n registerGroupMark();\n registerLiquidAnimation();\n Factory.registerSeries(LiquidSeries.type, LiquidSeries);\n};\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.getShapes = void 0;
|
|
6
6
|
|
|
7
|
-
const getShapes = (shapesType, size) => "drop" === shapesType ? pin(0, 0, size
|
|
7
|
+
const getShapes = (shapesType, size) => "drop" === shapesType ? pin(0, 0, size) : shapesType;
|
|
8
8
|
|
|
9
9
|
function pin(x, y, radius) {
|
|
10
10
|
const w = 4 * radius / 3, h = Math.max(w, 2 * radius), r = w / 2, cx = x, cy = r + y - h / 2, theta = Math.asin(r / (.85 * (h - r))), dy = Math.sin(theta) * r, dx = Math.cos(theta) * r, x0 = cx - dx, y0 = cy + dy, cpX = x, cpY = cy + r / Math.sin(theta);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/liquid/util.ts"],"names":[],"mappings":";;;AAEO,MAAM,SAAS,GAAG,CAAC,UAA2B,EAAE,IAAY,EAAE,EAAE;IACrE,IAAI,UAAU,KAAK,MAAM,EAAE;QACzB,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,
|
|
1
|
+
{"version":3,"sources":["../src/series/liquid/util.ts"],"names":[],"mappings":";;;AAEO,MAAM,SAAS,GAAG,CAAC,UAA2B,EAAE,IAAY,EAAE,EAAE;IACrE,IAAI,UAAU,KAAK,MAAM,EAAE;QACzB,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;KACxB;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AALW,QAAA,SAAS,aAKpB;AAUF,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc;IAC/C,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAGhB,MAAM,EAAE,GAAG,CAAC,CAAC;IACb,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAG/B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAGnB,MAAM,GAAG,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAErC,OAAO;UACC,EAAE,IAAI,EAAE;UACR,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;UACjC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;UAC5B,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE;;KAE3B,CAAC;AACN,CAAC","file":"util.js","sourcesContent":["import type { LiquidShapeType } from './interface';\n\nexport const getShapes = (shapesType: LiquidShapeType, size: number) => {\n if (shapesType === 'drop') {\n return pin(0, 0, size);\n }\n return shapesType;\n};\n\n/* Adapted from liquid shapes by ai-qing-hai and hustcc\n * https://github.com/antvis/G2\n * Licensed under the MIT\n\n * url: https://github.com/antvis/G2/blob/v5/src/shape/liquid/shapes.ts\n * License: https://github.com/antvis/G2/blob/v5/LICENSE\n * @license\n */\nfunction pin(x: number, y: number, radius: number) {\n const w = (radius * 4) / 3;\n const h = Math.max(w, radius * 2);\n const r = w / 2;\n\n // Attrs of the upper circle.\n const cx = x;\n const cy = r + y - h / 2;\n const theta = Math.asin(r / ((h - r) * 0.85));\n const dy = Math.sin(theta) * r;\n const dx = Math.cos(theta) * r;\n\n // The start point of the path.\n const x0 = cx - dx;\n const y0 = cy + dy;\n\n // Control point.\n const cpX = x;\n const cpY = cy + r / Math.sin(theta);\n\n return `\n M ${x0} ${y0}\n A ${r} ${r} 0 1 1 ${x0 + dx * 2} ${y0}\n Q ${cpX} ${cpY} ${x} ${y + h / 2}\n Q ${cpX} ${cpY} ${x0} ${y0}\n Z \n `;\n}\n"]}
|
|
@@ -5,6 +5,7 @@ import type { SeriesMarkNameEnum } from '../interface/type';
|
|
|
5
5
|
import type { IPolarSeriesSpec, IPolarSeriesTheme } from '../polar/interface';
|
|
6
6
|
import type { PieAppearPreset } from './animation/animation';
|
|
7
7
|
import type { ILabelSpec, IMultiLabelSpec } from '../../component/label';
|
|
8
|
+
import type { ICustomPath2D, ILineGraphicAttribute, ITextGraphicAttribute } from '@visactor/vrender-core';
|
|
8
9
|
export type PieMarks = 'pie' | 'label' | 'labelLine';
|
|
9
10
|
export type IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & {
|
|
10
11
|
type: string;
|
|
@@ -43,11 +44,12 @@ export interface IPie3dSeriesTheme extends IPolarSeriesTheme {
|
|
|
43
44
|
innerLabel?: IArcLabelSpec;
|
|
44
45
|
outerLabel?: IArcLabelSpec;
|
|
45
46
|
}
|
|
46
|
-
export interface IArcLabelLineSpec extends IMarkSpec<ILineMarkSpec> {
|
|
47
|
+
export interface IArcLabelLineSpec extends Omit<IMarkSpec<ILineMarkSpec>, 'customShape'> {
|
|
47
48
|
visible?: boolean;
|
|
48
49
|
line1MinLength?: number;
|
|
49
50
|
line2MinLength?: number;
|
|
50
51
|
smooth?: boolean;
|
|
52
|
+
customShape?: (text: ITextGraphicAttribute, attrs: Partial<ILineGraphicAttribute>, path: ICustomPath2D) => ICustomPath2D;
|
|
51
53
|
}
|
|
52
54
|
export type ArcLabelAlignType = 'arc' | 'labelLine' | 'edge';
|
|
53
55
|
export type ArcLabelStrategyType = 'priority' | 'vertical' | 'none';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/pie/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { IArcMarkSpec, ITextMarkSpec, IArc3dMarkSpec, ILineMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { IPolarSeriesSpec, IPolarSeriesTheme } from '../polar/interface';\nimport type { PieAppearPreset } from './animation/animation';\nimport type { ILabelSpec, IMultiLabelSpec } from '../../component/label';\n\nexport type PieMarks = 'pie' | 'label' | 'labelLine';\n\nexport type IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport interface IPieSeriesSpec extends IPolarSeriesSpec, IAnimationSpec<PieMarks, PieAppearPreset> {\n type: 'pie';\n /**\n * 分类字段\n * @description 饼图每个扇区为独立的系列\n */\n categoryField: string;\n /** 数值字段 */\n valueField: string;\n /** 饼图中心点 x 坐标 */\n centerX?: number;\n /** 饼图中心点 y 坐标 */\n centerY?: number;\n /** 饼图扇区中心偏移 */\n centerOffset?: number;\n\n /**\n * 饼图扇区半径\n * @default 0.6\n * @deprecated use outerRadius instead\n */\n radius?: number;\n\n /**\n * 饼图扇区外半径\n * @default 0.6\n */\n outerRadius?: number;\n\n /**\n * 饼图扇区内半径\n * @default 0\n */\n innerRadius?: number;\n\n /**\n * 饼图扇区圆角半径\n * @default 0\n */\n cornerRadius?: number;\n /**\n * 饼图的起始角度(0 ~ 360)\n * @default -90\n */\n startAngle?: number;\n /**\n * 饼图的结束角度(0 ~ 360)\n * @default 270\n */\n endAngle?: number;\n /**\n * 扇区之间的间隔角度\n */\n padAngle?: number;\n\n /**\n * 最小的扇区角度(0 ~ 360),用于防止某个值过小导致扇区太小影响交互。\n * @default 0\n * @since 1.4.0\n */\n minAngle?: number;\n\n /** 扇区样式 */\n [SeriesMarkNameEnum.pie]?: IMarkSpec<IArcMarkSpec>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IMultiLabelSpec<IArcLabelSpec>;\n}\n\nexport interface IPieSeriesTheme extends IPolarSeriesTheme {\n [SeriesMarkNameEnum.pie]?: Partial<IMarkTheme<IArcMarkSpec>>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n /**\n * 内标签配置\n * @since 1.5.1\n */\n innerLabel?: IArcLabelSpec;\n /**\n * 外标签配置\n * @since 1.5.1\n */\n outerLabel?: IArcLabelSpec;\n}\n\nexport type IPie3dSeriesSpec = {\n type: 'pie3d';\n // 饼图整体绕x轴的旋转角度\n angle3d?: number;\n} & Omit<IPieSeriesSpec, 'type'>;\n\nexport interface IPie3dSeriesTheme extends IPolarSeriesTheme {\n [SeriesMarkNameEnum.pie3d]?: Partial<IMarkTheme<IArc3dMarkSpec>>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n /**\n * 内标签配置\n * @since 1.5.1\n */\n innerLabel?: IArcLabelSpec;\n /**\n * 外标签配置\n * @since 1.5.1\n */\n outerLabel?: IArcLabelSpec;\n}\n\nexport interface IArcLabelLineSpec extends IMarkSpec<ILineMarkSpec> {\n /**\n * 是否显示引导线\n * @default true\n */\n visible?: boolean;\n /**\n * 引导线 line1 部分最小长度\n * @default 20\n */\n line1MinLength?: number;\n /**\n * 引导线 line2 部分最小长度\n * @default 10\n */\n line2MinLength?: number;\n /**\n * 引导线是否光滑\n * @default false\n * @since 1.4.0\n */\n smooth?: boolean;\n}\n\nexport type ArcLabelAlignType = 'arc' | 'labelLine' | 'edge';\n\nexport type ArcLabelStrategyType = 'priority' | 'vertical' | 'none';\n\nexport interface IArcLabelLayoutSpec {\n /**\n * 标签对齐方式\n * @default 'arc'\n */\n textAlign?: ArcLabelAlignType;\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: ArcLabelAlignType;\n /**\n * 标签布局策略\n * @default 'priority'\n */\n strategy?: ArcLabelStrategyType;\n /**\n * 是否启用切线约束\n * @default true\n */\n tangentConstraint?: boolean;\n}\n\nexport type IArcLabelSpec = Omit<ILabelSpec, 'position'> & {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside';\n /**\n * 标签内容显示规则\n * @default 'all'\n */\n showRule?: 'all' | 'max' | 'min' | 'minAndMax' | 'headAndTail';\n /**\n * 是否允许标签重叠\n * @default false\n */\n coverEnable?: boolean;\n /**\n * 是否允许标签旋转\n * @default true\n */\n rotate?: boolean;\n\n /**\n * 文字与引导线间隔宽度\n * @default 5\n */\n spaceWidth?: number;\n /**\n * 扇区间标签的间隔\n * @default 6\n */\n layoutArcGap?: number;\n /** 中心点偏移距离 */\n centerOffset?: number;\n /** 标签文字样式 */\n style?: ITextMarkSpec;\n /** 标签引导线样式 */\n line?: IArcLabelLineSpec;\n /** 标签布局配置 */\n layout?: IArcLabelLayoutSpec;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/pie/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { IArcMarkSpec, ITextMarkSpec, IArc3dMarkSpec, ILineMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { IPolarSeriesSpec, IPolarSeriesTheme } from '../polar/interface';\nimport type { PieAppearPreset } from './animation/animation';\nimport type { ILabelSpec, IMultiLabelSpec } from '../../component/label';\nimport type { ICustomPath2D, ILineGraphicAttribute, ITextGraphicAttribute } from '@visactor/vrender-core';\n\nexport type PieMarks = 'pie' | 'label' | 'labelLine';\n\nexport type IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport interface IPieSeriesSpec extends IPolarSeriesSpec, IAnimationSpec<PieMarks, PieAppearPreset> {\n type: 'pie';\n /**\n * 分类字段\n * @description 饼图每个扇区为独立的系列\n */\n categoryField: string;\n /** 数值字段 */\n valueField: string;\n /** 饼图中心点 x 坐标 */\n centerX?: number;\n /** 饼图中心点 y 坐标 */\n centerY?: number;\n /** 饼图扇区中心偏移 */\n centerOffset?: number;\n\n /**\n * 饼图扇区半径\n * @default 0.6\n * @deprecated use outerRadius instead\n */\n radius?: number;\n\n /**\n * 饼图扇区外半径\n * @default 0.6\n */\n outerRadius?: number;\n\n /**\n * 饼图扇区内半径\n * @default 0\n */\n innerRadius?: number;\n\n /**\n * 饼图扇区圆角半径\n * @default 0\n */\n cornerRadius?: number;\n /**\n * 饼图的起始角度(0 ~ 360)\n * @default -90\n */\n startAngle?: number;\n /**\n * 饼图的结束角度(0 ~ 360)\n * @default 270\n */\n endAngle?: number;\n /**\n * 扇区之间的间隔角度\n */\n padAngle?: number;\n\n /**\n * 最小的扇区角度(0 ~ 360),用于防止某个值过小导致扇区太小影响交互。\n * @default 0\n * @since 1.4.0\n */\n minAngle?: number;\n\n /** 扇区样式 */\n [SeriesMarkNameEnum.pie]?: IMarkSpec<IArcMarkSpec>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IMultiLabelSpec<IArcLabelSpec>;\n}\n\nexport interface IPieSeriesTheme extends IPolarSeriesTheme {\n [SeriesMarkNameEnum.pie]?: Partial<IMarkTheme<IArcMarkSpec>>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n /**\n * 内标签配置\n * @since 1.5.1\n */\n innerLabel?: IArcLabelSpec;\n /**\n * 外标签配置\n * @since 1.5.1\n */\n outerLabel?: IArcLabelSpec;\n}\n\nexport type IPie3dSeriesSpec = {\n type: 'pie3d';\n // 饼图整体绕x轴的旋转角度\n angle3d?: number;\n} & Omit<IPieSeriesSpec, 'type'>;\n\nexport interface IPie3dSeriesTheme extends IPolarSeriesTheme {\n [SeriesMarkNameEnum.pie3d]?: Partial<IMarkTheme<IArc3dMarkSpec>>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n /**\n * 内标签配置\n * @since 1.5.1\n */\n innerLabel?: IArcLabelSpec;\n /**\n * 外标签配置\n * @since 1.5.1\n */\n outerLabel?: IArcLabelSpec;\n}\n\nexport interface IArcLabelLineSpec extends Omit<IMarkSpec<ILineMarkSpec>, 'customShape'> {\n /**\n * 是否显示引导线\n * @default true\n */\n visible?: boolean;\n /**\n * 引导线 line1 部分最小长度\n * @default 20\n */\n line1MinLength?: number;\n /**\n * 引导线 line2 部分最小长度\n * @default 10\n */\n line2MinLength?: number;\n /**\n * 引导线是否光滑\n * @default false\n * @since 1.4.0\n */\n smooth?: boolean;\n /**\n * 标签引导线支持自定义path\n * @since 1.11.11\n */\n customShape?: (\n text: ITextGraphicAttribute,\n attrs: Partial<ILineGraphicAttribute>,\n path: ICustomPath2D\n ) => ICustomPath2D;\n}\n\nexport type ArcLabelAlignType = 'arc' | 'labelLine' | 'edge';\n\nexport type ArcLabelStrategyType = 'priority' | 'vertical' | 'none';\n\nexport interface IArcLabelLayoutSpec {\n /**\n * 标签对齐方式\n * @default 'arc'\n */\n textAlign?: ArcLabelAlignType;\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: ArcLabelAlignType;\n /**\n * 标签布局策略\n * @default 'priority'\n */\n strategy?: ArcLabelStrategyType;\n /**\n * 是否启用切线约束\n * @default true\n */\n tangentConstraint?: boolean;\n}\n\nexport type IArcLabelSpec = Omit<ILabelSpec, 'position'> & {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside';\n /**\n * 标签内容显示规则\n * @default 'all'\n */\n showRule?: 'all' | 'max' | 'min' | 'minAndMax' | 'headAndTail';\n /**\n * 是否允许标签重叠\n * @default false\n */\n coverEnable?: boolean;\n /**\n * 是否允许标签旋转\n * @default true\n */\n rotate?: boolean;\n\n /**\n * 文字与引导线间隔宽度\n * @default 5\n */\n spaceWidth?: number;\n /**\n * 扇区间标签的间隔\n * @default 6\n */\n layoutArcGap?: number;\n /** 中心点偏移距离 */\n centerOffset?: number;\n /** 标签文字样式 */\n style?: ITextMarkSpec;\n /** 标签引导线样式 */\n line?: IArcLabelLineSpec;\n /** 标签布局配置 */\n layout?: IArcLabelLayoutSpec;\n};\n"]}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export type InterpolateType = 'basis' | '
|
|
1
|
+
export type InterpolateType = 'basis' | 'linear' | 'monotone' | 'monotoneX' | 'monotoneY' | 'step' | 'stepAfter' | 'stepBefore' | 'linearClosed' | 'catmullRom' | 'catmullRomClosed';
|
|
2
2
|
export declare const DEFAULT_SMOOTH_INTERPOLATE = "monotone";
|
|
3
3
|
export declare const DEFAULT_LINEAR_INTERPOLATE = "linear";
|
|
4
|
-
export declare const DEFAULT_LINEAR_CLOSED_INTERPOLATE = "linearClosed";
|
|
5
|
-
export declare const DEFAULT_CIRCLE_CLOSED_INTERPOLATE = "cardinalClosed";
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.
|
|
6
|
-
exports.DEFAULT_SMOOTH_INTERPOLATE = "monotone", exports.DEFAULT_LINEAR_INTERPOLATE = "linear"
|
|
7
|
-
exports.DEFAULT_LINEAR_CLOSED_INTERPOLATE = "linearClosed", exports.DEFAULT_CIRCLE_CLOSED_INTERPOLATE = "cardinalClosed";
|
|
5
|
+
}), exports.DEFAULT_LINEAR_INTERPOLATE = exports.DEFAULT_SMOOTH_INTERPOLATE = void 0,
|
|
6
|
+
exports.DEFAULT_SMOOTH_INTERPOLATE = "monotone", exports.DEFAULT_LINEAR_INTERPOLATE = "linear";
|
|
8
7
|
//# sourceMappingURL=interpolate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/typings/interpolate.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/typings/interpolate.ts"],"names":[],"mappings":";;;AAaa,QAAA,0BAA0B,GAAG,UAAU,CAAC;AACxC,QAAA,0BAA0B,GAAG,QAAQ,CAAC","file":"interpolate.js","sourcesContent":["export type InterpolateType =\n | 'basis'\n | 'linear'\n | 'monotone'\n | 'monotoneX'\n | 'monotoneY'\n | 'step'\n | 'stepAfter'\n | 'stepBefore'\n | 'linearClosed'\n | 'catmullRom'\n | 'catmullRomClosed';\n\nexport const DEFAULT_SMOOTH_INTERPOLATE = 'monotone';\nexport const DEFAULT_LINEAR_INTERPOLATE = 'linear';\n"]}
|
package/esm/chart/stack.js
CHANGED
package/esm/chart/util.js
CHANGED
|
@@ -4,6 +4,8 @@ import { array, isMiniAppLikeMode, isTrueBrowser, isValid } from "../util";
|
|
|
4
4
|
|
|
5
5
|
import { mergeSpec } from "@visactor/vutils-extension";
|
|
6
6
|
|
|
7
|
+
import { vglobal } from "@visactor/vgrammar-core";
|
|
8
|
+
|
|
7
9
|
export function setDefaultCrosshairForCartesianChart(spec) {
|
|
8
10
|
spec.crosshair = array(spec.crosshair || {}).map((crosshairCfg => mergeSpec({
|
|
9
11
|
["horizontal" === spec.direction ? "yField" : "xField"]: {
|
|
@@ -30,7 +32,7 @@ export function calculateChartSize(spec, option, defaultSize) {
|
|
|
30
32
|
width = containerWidth, height = containerHeight;
|
|
31
33
|
} else if (canvas && isTrueBrowser(option.mode)) {
|
|
32
34
|
let canvasNode;
|
|
33
|
-
canvasNode = isString(canvas) ?
|
|
35
|
+
canvasNode = isString(canvas) ? vglobal.getElementById(canvas) : canvas;
|
|
34
36
|
const {width: containerWidth, height: containerHeight} = getContainerSize(canvasNode, defaultSize.width, defaultSize.height);
|
|
35
37
|
width = containerWidth, height = containerHeight;
|
|
36
38
|
} else if (isMiniAppLikeMode(option.mode) && (null === (_a = option.modeParams) || void 0 === _a ? void 0 : _a.domref)) {
|
package/esm/chart/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI9D,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/chart/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { getContainerSize, isString } from '@visactor/vutils';\nimport type { IChartSpec } from '../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../typings';\nimport { array, isMiniAppLikeMode, isTrueBrowser, isValid } from '../util';\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ICartesianChartSpec } from './cartesian/interface';\nimport type { IChartOption } from './interface/common';\nimport type { IUpdateSpecResult } from '../model/interface';\nimport { vglobal } from '@visactor/vgrammar-core';\n\nexport function setDefaultCrosshairForCartesianChart(spec: ICartesianChartSpec) {\n spec.crosshair = array(spec.crosshair || {}).map(crosshairCfg => {\n return mergeSpec(\n {\n [spec.direction === Direction.horizontal ? 'yField' : 'xField']: {\n visible: true,\n line: {\n visible: true,\n type: 'rect'\n }\n }\n },\n crosshairCfg\n );\n });\n}\n\nexport function calculateChartSize(\n spec: { width?: number; height?: number },\n option: Pick<IChartOption, 'canvas' | 'container' | 'mode' | 'modeParams'>,\n defaultSize: { width: number; height: number }\n) {\n const { width: userWidth, height: userHeight } = spec;\n if (isValid(userWidth) && isValid(userHeight)) {\n return {\n width: userWidth,\n height: userHeight\n };\n }\n let width = defaultSize.width;\n let height = defaultSize.height;\n const container = option.container;\n const canvas = option.canvas;\n if (container) {\n const { width: containerWidth, height: containerHeight } = getContainerSize(\n container,\n defaultSize.width,\n defaultSize.height\n );\n width = containerWidth;\n height = containerHeight;\n } else if (canvas && isTrueBrowser(option.mode)) {\n let canvasNode;\n if (isString(canvas)) {\n canvasNode = vglobal.getElementById(canvas);\n } else {\n canvasNode = canvas;\n }\n const { width: containerWidth, height: containerHeight } = getContainerSize(\n canvasNode as HTMLCanvasElement,\n defaultSize.width,\n defaultSize.height\n );\n width = containerWidth;\n height = containerHeight;\n } else if (isMiniAppLikeMode(option.mode) && (option.modeParams as any)?.domref) {\n const domRef = (option.modeParams as any).domref;\n width = domRef.width;\n height = domRef.height;\n }\n\n width = userWidth ?? width;\n height = userHeight ?? height;\n\n return {\n width,\n height\n };\n}\n\nexport function mergeUpdateResult(target: IUpdateSpecResult, ...sources: IUpdateSpecResult[]) {\n const merge = (key: keyof IUpdateSpecResult) => sources.reduce((value, cur) => value || cur?.[key], target[key]);\n Object.assign(target, {\n change: merge('change'),\n reCompile: merge('reCompile'),\n reMake: merge('reMake'),\n reRender: merge('reRender'),\n reSize: merge('reSize'),\n reTransformSpec: merge('reTransformSpec'),\n changeTheme: merge('changeTheme')\n } as Required<IUpdateSpecResult>);\n return target;\n}\n\nexport function getTrimPaddingConfig(chartType: string, spec: IChartSpec) {\n if (\n chartType === 'line' ||\n chartType === 'area' ||\n (chartType === 'common' && spec.series.every(item => item.type === 'area' || item.type === 'line'))\n ) {\n return {\n paddingInner: 1,\n paddingOuter: 0\n };\n }\n\n return {\n paddingOuter: 0\n };\n}\n"]}
|
|
@@ -234,8 +234,11 @@ export class AxisComponent extends BaseComponent {
|
|
|
234
234
|
}
|
|
235
235
|
_compareSpec(spec, prevSpec) {
|
|
236
236
|
const result = super._compareSpec(spec, prevSpec);
|
|
237
|
-
return result.reRender = !0, (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) ? (result.reMake = !0,
|
|
238
|
-
result) : result
|
|
237
|
+
return result.reMake ? result : (result.reRender = !0, (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) ? (result.reMake = !0,
|
|
238
|
+
result) : (result.reMake = [ "grid", "subGrid", "tick", "subTick", "label", "domainLine", "title" ].some((k => {
|
|
239
|
+
var _a, _b;
|
|
240
|
+
return (null === (_a = null == prevSpec ? void 0 : prevSpec[k]) || void 0 === _a ? void 0 : _a.visible) !== (null === (_b = null == spec ? void 0 : spec[k]) || void 0 === _b ? void 0 : _b.visible);
|
|
241
|
+
})), result));
|
|
239
242
|
}
|
|
240
243
|
_delegateAxisContainerEvent(component) {
|
|
241
244
|
0 === component.listenerCount("*") && component.addEventListener("*", ((event, type) => this._delegateEvent(component, event, type)));
|