@visactor/vchart 2.1.0-alpha.8 → 2.1.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 +3 -3
- package/build/index.es.js +48786 -51422
- package/build/index.js +48788 -51424
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/callback-disappear.d.ts +1 -1
- package/cjs/animation/callback-disappear.js +2 -2
- package/cjs/animation/callback-disappear.js.map +1 -1
- package/cjs/animation/config.js +34 -34
- package/cjs/animation/config.js.map +1 -1
- package/cjs/animation/grammar-dector.js +1 -2
- package/cjs/animation/index.js +2 -1
- package/cjs/chart/base/base-chart.d.ts +2 -0
- package/cjs/chart/base/base-chart.js +26 -9
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/compile/compiler.js +8 -3
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/compile/morph.js +4 -4
- package/cjs/compile/morph.js.map +1 -1
- package/cjs/compile/stage-app.d.ts +10 -2
- package/cjs/compile/stage-app.js +69 -26
- package/cjs/compile/stage-app.js.map +1 -1
- package/cjs/compile/util.js +1 -2
- package/cjs/component/axis/base-axis.d.ts +1 -1
- package/cjs/component/axis/base-axis.js +3 -3
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.js +4 -4
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/linear-axis.d.ts +3 -2
- package/cjs/component/axis/cartesian/linear-axis.js +8 -4
- package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +2 -0
- package/cjs/component/axis/mixin/linear-axis-mixin.js +7 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +1 -0
- package/cjs/component/brush/brush.js +15 -10
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +1 -1
- package/cjs/component/crosshair/base.js +3 -3
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.js +3 -3
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/index.js +1 -1
- package/cjs/component/label/label.js +2 -2
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/legend/base-legend.js +1 -1
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/legend/discrete/interface.d.ts +11 -1
- package/cjs/component/legend/discrete/interface.js.map +1 -1
- package/cjs/component/legend/discrete/legend.d.ts +1 -1
- package/cjs/component/legend/discrete/legend.js +9 -8
- package/cjs/component/legend/discrete/legend.js.map +1 -1
- package/cjs/component/legend/discrete/util.d.ts +2 -1
- package/cjs/component/legend/discrete/util.js +39 -5
- package/cjs/component/legend/discrete/util.js.map +1 -1
- package/cjs/component/marker/base-marker.js +11 -7
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/mark-line/cartesian-mark-line.js +18 -7
- package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/spec.d.ts +9 -2
- package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-point/base-mark-point.js +30 -17
- package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
- package/cjs/component/marker/utils.js +17 -7
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/component/util.js +1 -1
- package/cjs/constant/animate.js +2 -1
- package/cjs/constant/event.js +1 -2
- package/cjs/constant/scatter.js +1 -1
- package/cjs/constant/scroll-bar.js +1 -1
- package/cjs/constant/sunburst.js +2 -1
- package/cjs/constant/waterfall.js +1 -1
- package/cjs/constant/word-cloud.js +1 -1
- package/cjs/core/index.d.ts +3 -2
- package/cjs/core/index.js +9 -5
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/util.js +1 -1
- package/cjs/core/vchart.js +17 -7
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/env/env.js +10 -10
- package/cjs/env/env.js.map +1 -1
- package/cjs/mark/arc.js +4 -4
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/area.js +4 -5
- package/cjs/mark/area.js.map +1 -1
- package/cjs/mark/base/base-line.js +2 -2
- package/cjs/mark/base/base-line.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +0 -1
- package/cjs/mark/base/base-mark.js +16 -25
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/glyph.d.ts +3 -0
- package/cjs/mark/glyph.js +29 -5
- package/cjs/mark/glyph.js.map +1 -1
- package/cjs/mark/group.js +5 -5
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/common.js.map +1 -1
- package/cjs/mark/line.js +4 -5
- package/cjs/mark/line.js.map +1 -1
- package/cjs/mark/rect.js +3 -3
- package/cjs/mark/rect.js.map +1 -1
- package/cjs/mark/symbol.js +3 -3
- package/cjs/mark/symbol.js.map +1 -1
- package/cjs/mark/text.js +4 -4
- package/cjs/mark/text.js.map +1 -1
- package/cjs/plugin/components/axis-sync/tick-align-transform.js +2 -2
- package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js +2 -2
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
- package/cjs/plugin/other.js +5 -5
- package/cjs/plugin/other.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +3 -0
- package/cjs/series/base/base-series.js +59 -29
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/dot/dot.d.ts +1 -0
- package/cjs/series/interface/common.d.ts +2 -1
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/line/line.js +3 -3
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +2 -0
- package/cjs/series/waterfall/waterfall.js +12 -4
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/animation.js +3 -0
- package/cjs/series/word-cloud/animation.js.map +1 -1
- package/cjs/theme/builtin/common/series/word-cloud.js +2 -6
- package/cjs/theme/builtin/common/series/word-cloud.js.map +1 -1
- package/cjs/util/mark.js +7 -3
- package/cjs/util/mark.js.map +1 -1
- package/cjs/util/math.d.ts +1 -1
- package/cjs/util/math.js +2 -2
- package/cjs/util/math.js.map +1 -1
- package/cjs/util/style.js +24 -2
- package/cjs/util/style.js.map +1 -1
- package/cjs/util/text.js +2 -2
- package/cjs/util/text.js.map +1 -1
- package/cjs/vchart-line.d.ts +4 -0
- package/cjs/vchart-line.js +35 -0
- package/cjs/vchart-line.js.map +1 -0
- package/cjs/vchart-simple.d.ts +5 -1
- package/cjs/vchart-simple.js +11 -10
- package/cjs/vchart-simple.js.map +1 -1
- package/esm/animation/callback-disappear.d.ts +1 -1
- package/esm/animation/callback-disappear.js +1 -1
- package/esm/animation/callback-disappear.js.map +1 -1
- package/esm/animation/config.js +33 -1
- package/esm/animation/config.js.map +1 -1
- package/esm/animation/grammar-dector.js +1 -2
- package/esm/animation/index.js +2 -1
- package/esm/chart/base/base-chart.d.ts +2 -0
- package/esm/chart/base/base-chart.js +26 -9
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/compile/compiler.js +8 -4
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/compile/morph.js +1 -1
- package/esm/compile/morph.js.map +1 -1
- package/esm/compile/stage-app.d.ts +10 -2
- package/esm/compile/stage-app.js +65 -23
- package/esm/compile/stage-app.js.map +1 -1
- package/esm/compile/util.js +1 -2
- package/esm/component/axis/base-axis.d.ts +1 -1
- package/esm/component/axis/base-axis.js +2 -2
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.js +4 -2
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/cartesian/linear-axis.d.ts +3 -2
- package/esm/component/axis/cartesian/linear-axis.js +9 -1
- package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.d.ts +2 -0
- package/esm/component/axis/mixin/linear-axis-mixin.js +7 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/brush/brush.d.ts +1 -0
- package/esm/component/brush/brush.js +16 -10
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +1 -1
- package/esm/component/crosshair/base.js +1 -1
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.js +3 -1
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/index.js +1 -1
- package/esm/component/label/label.js +1 -1
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/legend/base-legend.js +1 -1
- package/esm/component/legend/base-legend.js.map +1 -1
- package/esm/component/legend/discrete/interface.d.ts +11 -1
- package/esm/component/legend/discrete/interface.js.map +1 -1
- package/esm/component/legend/discrete/legend.d.ts +1 -1
- package/esm/component/legend/discrete/legend.js +4 -3
- package/esm/component/legend/discrete/legend.js.map +1 -1
- package/esm/component/legend/discrete/util.d.ts +2 -1
- package/esm/component/legend/discrete/util.js +37 -4
- package/esm/component/legend/discrete/util.js.map +1 -1
- package/esm/component/marker/base-marker.js +11 -7
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/mark-line/cartesian-mark-line.js +18 -8
- package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/interface/spec.d.ts +9 -2
- package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-point/base-mark-point.js +29 -16
- package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
- package/esm/component/marker/utils.js +16 -6
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/component/util.js +1 -1
- package/esm/constant/animate.js +2 -1
- package/esm/constant/event.js +1 -2
- package/esm/constant/scatter.js +1 -1
- package/esm/constant/scroll-bar.js +1 -1
- package/esm/constant/sunburst.js +2 -1
- package/esm/constant/waterfall.js +1 -1
- package/esm/constant/word-cloud.js +1 -1
- package/esm/core/index.d.ts +3 -2
- package/esm/core/index.js +4 -2
- package/esm/core/index.js.map +1 -1
- package/esm/core/util.js +1 -1
- package/esm/core/vchart.js +16 -6
- package/esm/core/vchart.js.map +1 -1
- package/esm/env/env.js +1 -1
- package/esm/env/env.js.map +1 -1
- package/esm/mark/arc.js +4 -2
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/area.js +6 -2
- package/esm/mark/area.js.map +1 -1
- package/esm/mark/base/base-line.js +2 -2
- package/esm/mark/base/base-line.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +0 -1
- package/esm/mark/base/base-mark.js +16 -25
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/glyph.d.ts +3 -0
- package/esm/mark/glyph.js +30 -4
- package/esm/mark/glyph.js.map +1 -1
- package/esm/mark/group.js +5 -4
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/common.js.map +1 -1
- package/esm/mark/line.js +6 -2
- package/esm/mark/line.js.map +1 -1
- package/esm/mark/rect.js +4 -2
- package/esm/mark/rect.js.map +1 -1
- package/esm/mark/symbol.js +4 -2
- package/esm/mark/symbol.js.map +1 -1
- package/esm/mark/text.js +5 -1
- package/esm/mark/text.js.map +1 -1
- package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
- package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js +1 -1
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
- package/esm/plugin/other.js +2 -2
- package/esm/plugin/other.js.map +1 -1
- package/esm/series/base/base-series.d.ts +3 -0
- package/esm/series/base/base-series.js +55 -25
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/dot/dot.d.ts +1 -0
- package/esm/series/interface/common.d.ts +2 -1
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/line/line.js +3 -1
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +2 -0
- package/esm/series/waterfall/waterfall.js +12 -4
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/animation.js +3 -0
- package/esm/series/word-cloud/animation.js.map +1 -1
- package/esm/theme/builtin/common/series/word-cloud.js +2 -6
- package/esm/theme/builtin/common/series/word-cloud.js.map +1 -1
- package/esm/util/mark.js +8 -2
- package/esm/util/mark.js.map +1 -1
- package/esm/util/math.d.ts +1 -1
- package/esm/util/math.js +1 -1
- package/esm/util/math.js.map +1 -1
- package/esm/util/style.js +23 -2
- package/esm/util/style.js.map +1 -1
- package/esm/util/text.js +1 -1
- package/esm/util/text.js.map +1 -1
- package/esm/vchart-line.d.ts +4 -0
- package/esm/vchart-line.js +28 -0
- package/esm/vchart-line.js.map +1 -0
- package/esm/vchart-simple.d.ts +5 -1
- package/esm/vchart-simple.js +9 -1
- package/esm/vchart-simple.js.map +1 -1
- package/package.json +10 -9
package/cjs/mark/glyph.d.ts
CHANGED
|
@@ -22,6 +22,9 @@ export declare abstract class GlyphMark<T extends ICommonSpec = ICommonSpec, Cfg
|
|
|
22
22
|
getPositionChannels(): string[];
|
|
23
23
|
protected _positionEncoder: (glyphAttrs: any, datum: Datum, g: IGlyph) => Record<string, any>;
|
|
24
24
|
protected _channelEncoder: Record<string, (channelValue: any) => Record<string, any>>;
|
|
25
|
+
private _getInheritedStyleAttrs;
|
|
26
|
+
private _getInheritedStyleAttrsMap;
|
|
27
|
+
private _syncInheritedStyleAttrs;
|
|
25
28
|
private _onGlyphAttributeUpdate;
|
|
26
29
|
protected _setStateOfGraphic: (g: IMarkGraphic) => void;
|
|
27
30
|
protected _createGraphic(attrs?: IGlyphGraphicAttribute): IGraphic;
|
package/cjs/mark/glyph.js
CHANGED
|
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerGlyphMark = exports.GlyphMark = void 0;
|
|
6
6
|
|
|
7
|
-
const base_mark_1 = require("./base/base-mark"), vrender_core_1 = require("@visactor/vrender-core"), factory_1 = require("../core/factory"), vrender_kits_1 = require("@visactor/vrender-kits"), enum_1 = require("./interface/enum"), vutils_1 = require("@visactor/vutils");
|
|
7
|
+
const base_mark_1 = require("./base/base-mark"), vrender_core_1 = require("@visactor/vrender-core"), factory_1 = require("../core/factory"), vrender_kits_1 = require("@visactor/vrender-kits"), enum_1 = require("./interface/enum"), vutils_1 = require("@visactor/vutils"), GLYPH_INHERITED_STYLE_ATTRIBUTES = new Set([ "fill", "fillOpacity", "stroke", "strokeOpacity", "opacity", "lineWidth", "lineDash", "lineDashOffset", "lineCap", "lineJoin", "miterLimit", "shadowBlur", "shadowColor", "shadowOffsetX", "shadowOffsetY", "visible", "pickable", "cursor" ]), GLYPH_STATE_ATTRIBUTE_UPDATE_TYPE = 2;
|
|
8
8
|
|
|
9
9
|
class GlyphMark extends base_mark_1.BaseMark {
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments), this._setStateOfGraphic = g => {
|
|
12
|
-
g.clearStates(), g.
|
|
12
|
+
g.clearStates(), g.context.diffState !== enum_1.DiffState.enter && g.context.diffState !== enum_1.DiffState.update || (g.glyphStateProxy = (stateName, nexStates) => {
|
|
13
13
|
var _a;
|
|
14
14
|
const glyphAttrs = {
|
|
15
15
|
attributes: Object.assign(Object.assign({}, this._runEncoderOfGraphic(null === (_a = this._encoderOfState) || void 0 === _a ? void 0 : _a[stateName], g)), g.runtimeStateCache ? g.runtimeStateCache[stateName] : null)
|
|
@@ -32,24 +32,48 @@ class GlyphMark extends base_mark_1.BaseMark {
|
|
|
32
32
|
getPositionChannels() {
|
|
33
33
|
return this._positionChannels;
|
|
34
34
|
}
|
|
35
|
+
_getInheritedStyleAttrs(attributes) {
|
|
36
|
+
let inheritedStyleAttrs = null;
|
|
37
|
+
return Object.keys(attributes).forEach((channel => {
|
|
38
|
+
GLYPH_INHERITED_STYLE_ATTRIBUTES.has(channel) && (inheritedStyleAttrs = null != inheritedStyleAttrs ? inheritedStyleAttrs : {},
|
|
39
|
+
inheritedStyleAttrs[channel] = attributes[channel]);
|
|
40
|
+
})), inheritedStyleAttrs;
|
|
41
|
+
}
|
|
42
|
+
_getInheritedStyleAttrsMap(glyph, attributes) {
|
|
43
|
+
const inheritedStyleAttrs = this._getInheritedStyleAttrs(attributes);
|
|
44
|
+
return inheritedStyleAttrs ? glyph.getSubGraphic().reduce(((map, subGraphic) => (subGraphic && (map[subGraphic.name] = Object.assign({}, inheritedStyleAttrs)),
|
|
45
|
+
map)), {}) : null;
|
|
46
|
+
}
|
|
47
|
+
_syncInheritedStyleAttrs(glyph, attributes) {
|
|
48
|
+
const inheritedStyleAttrs = this._getInheritedStyleAttrs(attributes);
|
|
49
|
+
inheritedStyleAttrs && glyph.getSubGraphic().forEach((subGraphic => {
|
|
50
|
+
null == subGraphic || subGraphic.setAttributes(Object.assign({}, inheritedStyleAttrs));
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
35
53
|
_onGlyphAttributeUpdate(glyph) {
|
|
36
54
|
return newAttributes => {
|
|
37
55
|
var _a, _b;
|
|
38
56
|
const positionChannels = this.getPositionChannels();
|
|
39
57
|
let subAttrsMap = positionChannels && this._positionEncoder && Object.keys(newAttributes).some((k => positionChannels.includes(k))) ? this._positionEncoder(newAttributes, null === (_b = null === (_a = null == glyph ? void 0 : glyph.context) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b[0], glyph) : null;
|
|
40
|
-
|
|
58
|
+
this._channelEncoder && Object.keys(this._channelEncoder).forEach((channel => {
|
|
41
59
|
if (channel in newAttributes) {
|
|
42
60
|
const channelAttrsMap = this._channelEncoder[channel](newAttributes[channel]);
|
|
43
61
|
subAttrsMap = subAttrsMap ? (0, vutils_1.merge)(subAttrsMap, channelAttrsMap) : channelAttrsMap;
|
|
44
62
|
}
|
|
45
|
-
}))
|
|
63
|
+
}));
|
|
64
|
+
const inheritedStyleAttrsMap = this._getInheritedStyleAttrsMap(glyph, newAttributes);
|
|
65
|
+
return inheritedStyleAttrsMap && (subAttrsMap = subAttrsMap ? (0, vutils_1.merge)(inheritedStyleAttrsMap, subAttrsMap) : inheritedStyleAttrsMap),
|
|
66
|
+
subAttrsMap && glyph.getSubGraphic().forEach((subGraphic => {
|
|
46
67
|
subGraphic && subAttrsMap[subGraphic.name] && subGraphic.setAttributes(subAttrsMap[subGraphic.name]);
|
|
47
68
|
})), newAttributes;
|
|
48
69
|
};
|
|
49
70
|
}
|
|
50
71
|
_createGraphic(attrs = {}) {
|
|
51
72
|
const glyph = (0, vrender_core_1.createGlyph)(attrs);
|
|
52
|
-
glyph.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(glyph)
|
|
73
|
+
glyph.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(glyph), glyph.addEventListener("afterAttributeUpdate", (event => {
|
|
74
|
+
var _a;
|
|
75
|
+
2 === (null === (_a = null == event ? void 0 : event.detail) || void 0 === _a ? void 0 : _a.type) && this._syncInheritedStyleAttrs(glyph, glyph.attribute);
|
|
76
|
+
}));
|
|
53
77
|
const subMarks = this._subMarks;
|
|
54
78
|
if (subMarks) {
|
|
55
79
|
const subGraphics = [];
|
package/cjs/mark/glyph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/glyph.ts"],"names":[],"mappings":"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","file":"glyph.js","sourcesContent":["import type { ICommonSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IGlyph, IGlyphGraphicAttribute, IGraphic } from '@visactor/vrender-core';\nimport { createGlyph } from '@visactor/vrender-core';\nimport type { IGlyphMark } from './interface/mark';\nimport type { MarkType } from './interface/type';\nimport { Factory } from '../core/factory';\nimport type { Datum } from '../typings/common';\nimport { registerGlyph, registerShadowRoot } from '@visactor/vrender-kits';\nimport type { IMarkGraphic } from './interface/common';\nimport { DiffState } from './interface/enum';\nimport { merge } from '@visactor/vutils';\nexport abstract class GlyphMark<T extends ICommonSpec = ICommonSpec, Cfg = any>\n extends BaseMark<T>\n implements IGlyphMark<T, Cfg>\n{\n protected _defaultGlyphAttrs: T;\n\n protected _subMarks: Record<\n string,\n {\n type: MarkType;\n defaultAttributes?: any;\n }\n >;\n\n getSubMarks() {\n return this._subMarks;\n }\n\n protected _glyphConfig: Cfg;\n\n setGlyphConfig(cfg: Cfg) {\n this._glyphConfig = cfg;\n }\n\n getGlyphConfig() {\n return this._glyphConfig;\n }\n\n protected _positionChannels: string[];\n\n getPositionChannels() {\n return this._positionChannels;\n }\n\n protected _positionEncoder: (glyphAttrs: any, datum: Datum, g: IGlyph) => Record<string, any>;\n\n protected _channelEncoder: Record<string, (channelValue: any) => Record<string, any>>;\n\n private _onGlyphAttributeUpdate(glyph: IGlyph) {\n return (newAttributes: any) => {\n const positionChannels = this.getPositionChannels();\n let subAttrsMap =\n positionChannels && this._positionEncoder && Object.keys(newAttributes).some(k => positionChannels.includes(k))\n ? this._positionEncoder(newAttributes, glyph?.context?.data?.[0], glyph)\n : null;\n\n if (this._channelEncoder) {\n Object.keys(this._channelEncoder).forEach(channel => {\n if (channel in newAttributes) {\n const channelAttrsMap = this._channelEncoder[channel](newAttributes[channel]);\n\n subAttrsMap = subAttrsMap ? merge(subAttrsMap, channelAttrsMap) : channelAttrsMap;\n }\n });\n }\n\n if (subAttrsMap) {\n glyph.getSubGraphic().forEach(subGraphic => {\n if (subGraphic && subAttrsMap[subGraphic.name]) {\n subGraphic.setAttributes(subAttrsMap[subGraphic.name]);\n }\n });\n }\n\n return newAttributes;\n };\n }\n\n protected _setStateOfGraphic = (g: IMarkGraphic) => {\n g.clearStates();\n g.stateProxy = null;\n\n if (g.context.diffState === DiffState.enter || g.context.diffState === DiffState.update) {\n g.glyphStateProxy = (stateName: string, nexStates: string[]) => {\n const glyphAttrs = {\n attributes: {\n ...this._runEncoderOfGraphic(this._encoderOfState?.[stateName], g),\n ...(g.runtimeStateCache ? g.runtimeStateCache[stateName] : null)\n }\n };\n\n // 更新缓存\n if (!g.glyphStates) {\n g.glyphStates = { [stateName]: glyphAttrs };\n } else if (!g.glyphStates[stateName]) {\n g.glyphStates[stateName] = glyphAttrs;\n }\n\n return glyphAttrs;\n };\n\n g.useStates(g.context.states);\n }\n };\n\n protected _createGraphic(attrs: IGlyphGraphicAttribute = {}): IGraphic {\n const glyph = createGlyph(attrs);\n glyph.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(glyph);\n const subMarks = this._subMarks;\n\n if (subMarks) {\n const subGraphics: IGraphic[] = [];\n\n Object.keys(subMarks).forEach(name => {\n // glyph 中的子元素会继承glyph 的 x,y,所以子元素手动设置一下,x: 0, y: 0\n const subGraphic = Factory.createGraphicComponent(subMarks[name].type, {\n ...subMarks[name].defaultAttributes\n });\n\n if (subGraphic) {\n subGraphics.push(subGraphic);\n\n subGraphic.name = name;\n subGraphic.onBeforeAttributeUpdate = (attrs: any) => {\n return attrs;\n };\n }\n });\n\n glyph.setSubGraphic(subGraphics);\n }\n\n (glyph as any).onBeforeAttributeUpdate(attrs);\n\n return glyph;\n }\n\n protected _runProgressiveEncoder(graphics: IMarkGraphic[]) {\n this._runEncoder(graphics);\n }\n}\n\nexport const registerGlyphMark = () => {\n Factory.registerGraphicComponent('glyph', createGlyph);\n registerShadowRoot();\n registerGlyph();\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/mark/glyph.ts"],"names":[],"mappings":"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","file":"glyph.js","sourcesContent":["import type { ICommonSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IGlyph, IGlyphGraphicAttribute, IGraphic } from '@visactor/vrender-core';\nimport { createGlyph } from '@visactor/vrender-core';\nimport type { IGlyphMark } from './interface/mark';\nimport type { MarkType } from './interface/type';\nimport { Factory } from '../core/factory';\nimport type { Datum } from '../typings/common';\nimport { registerGlyph, registerShadowRoot } from '@visactor/vrender-kits';\nimport type { IMarkGraphic } from './interface/common';\nimport { DiffState } from './interface/enum';\nimport { merge } from '@visactor/vutils';\n\nconst GLYPH_INHERITED_STYLE_ATTRIBUTES = new Set([\n 'fill',\n 'fillOpacity',\n 'stroke',\n 'strokeOpacity',\n 'opacity',\n 'lineWidth',\n 'lineDash',\n 'lineDashOffset',\n 'lineCap',\n 'lineJoin',\n 'miterLimit',\n 'shadowBlur',\n 'shadowColor',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'visible',\n 'pickable',\n 'cursor'\n]);\nconst GLYPH_STATE_ATTRIBUTE_UPDATE_TYPE = 2;\n\nexport abstract class GlyphMark<T extends ICommonSpec = ICommonSpec, Cfg = any>\n extends BaseMark<T>\n implements IGlyphMark<T, Cfg>\n{\n protected _defaultGlyphAttrs: T;\n\n protected _subMarks: Record<\n string,\n {\n type: MarkType;\n defaultAttributes?: any;\n }\n >;\n\n getSubMarks() {\n return this._subMarks;\n }\n\n protected _glyphConfig: Cfg;\n\n setGlyphConfig(cfg: Cfg) {\n this._glyphConfig = cfg;\n }\n\n getGlyphConfig() {\n return this._glyphConfig;\n }\n\n protected _positionChannels: string[];\n\n getPositionChannels() {\n return this._positionChannels;\n }\n\n protected _positionEncoder: (glyphAttrs: any, datum: Datum, g: IGlyph) => Record<string, any>;\n\n protected _channelEncoder: Record<string, (channelValue: any) => Record<string, any>>;\n\n private _getInheritedStyleAttrs(attributes: any) {\n let inheritedStyleAttrs: any = null;\n\n Object.keys(attributes).forEach(channel => {\n if (GLYPH_INHERITED_STYLE_ATTRIBUTES.has(channel)) {\n inheritedStyleAttrs = inheritedStyleAttrs ?? {};\n inheritedStyleAttrs[channel] = attributes[channel];\n }\n });\n\n return inheritedStyleAttrs;\n }\n\n private _getInheritedStyleAttrsMap(glyph: IGlyph, attributes: any) {\n const inheritedStyleAttrs = this._getInheritedStyleAttrs(attributes);\n\n if (!inheritedStyleAttrs) {\n return null;\n }\n\n return glyph.getSubGraphic().reduce((map, subGraphic) => {\n if (subGraphic) {\n map[subGraphic.name] = { ...inheritedStyleAttrs };\n }\n return map;\n }, {} as Record<string, any>);\n }\n\n private _syncInheritedStyleAttrs(glyph: IGlyph, attributes: any) {\n const inheritedStyleAttrs = this._getInheritedStyleAttrs(attributes);\n\n if (!inheritedStyleAttrs) {\n return;\n }\n\n glyph.getSubGraphic().forEach(subGraphic => {\n subGraphic?.setAttributes({ ...inheritedStyleAttrs });\n });\n }\n\n private _onGlyphAttributeUpdate(glyph: IGlyph) {\n return (newAttributes: any) => {\n const positionChannels = this.getPositionChannels();\n let subAttrsMap =\n positionChannels && this._positionEncoder && Object.keys(newAttributes).some(k => positionChannels.includes(k))\n ? this._positionEncoder(newAttributes, glyph?.context?.data?.[0], glyph)\n : null;\n\n if (this._channelEncoder) {\n Object.keys(this._channelEncoder).forEach(channel => {\n if (channel in newAttributes) {\n const channelAttrsMap = this._channelEncoder[channel](newAttributes[channel]);\n\n subAttrsMap = subAttrsMap ? merge(subAttrsMap, channelAttrsMap) : channelAttrsMap;\n }\n });\n }\n\n const inheritedStyleAttrsMap = this._getInheritedStyleAttrsMap(glyph, newAttributes);\n if (inheritedStyleAttrsMap) {\n subAttrsMap = subAttrsMap ? merge(inheritedStyleAttrsMap, subAttrsMap) : inheritedStyleAttrsMap;\n }\n\n if (subAttrsMap) {\n glyph.getSubGraphic().forEach(subGraphic => {\n if (subGraphic && subAttrsMap[subGraphic.name]) {\n subGraphic.setAttributes(subAttrsMap[subGraphic.name]);\n }\n });\n }\n\n return newAttributes;\n };\n }\n\n protected _setStateOfGraphic = (g: IMarkGraphic) => {\n g.clearStates();\n\n if (g.context.diffState === DiffState.enter || g.context.diffState === DiffState.update) {\n g.glyphStateProxy = (stateName: string, nexStates: string[]) => {\n const glyphAttrs = {\n attributes: {\n ...this._runEncoderOfGraphic(this._encoderOfState?.[stateName], g),\n ...(g.runtimeStateCache ? g.runtimeStateCache[stateName] : null)\n }\n };\n\n // 更新缓存\n if (!g.glyphStates) {\n g.glyphStates = { [stateName]: glyphAttrs };\n } else if (!g.glyphStates[stateName]) {\n g.glyphStates[stateName] = glyphAttrs;\n }\n\n return glyphAttrs;\n };\n\n g.useStates(g.context.states);\n }\n };\n\n protected _createGraphic(attrs: IGlyphGraphicAttribute = {}): IGraphic {\n const glyph = createGlyph(attrs);\n glyph.onBeforeAttributeUpdate = this._onGlyphAttributeUpdate(glyph);\n glyph.addEventListener('afterAttributeUpdate', (event: any) => {\n if (event?.detail?.type === GLYPH_STATE_ATTRIBUTE_UPDATE_TYPE) {\n this._syncInheritedStyleAttrs(glyph, glyph.attribute);\n }\n });\n const subMarks = this._subMarks;\n\n if (subMarks) {\n const subGraphics: IGraphic[] = [];\n\n Object.keys(subMarks).forEach(name => {\n // glyph 中的子元素会继承glyph 的 x,y,所以子元素手动设置一下,x: 0, y: 0\n const subGraphic = Factory.createGraphicComponent(subMarks[name].type, {\n ...subMarks[name].defaultAttributes\n });\n\n if (subGraphic) {\n subGraphics.push(subGraphic);\n\n subGraphic.name = name;\n subGraphic.onBeforeAttributeUpdate = (attrs: any) => {\n return attrs;\n };\n }\n });\n\n glyph.setSubGraphic(subGraphics);\n }\n\n (glyph as any).onBeforeAttributeUpdate(attrs);\n\n return glyph;\n }\n\n protected _runProgressiveEncoder(graphics: IMarkGraphic[]) {\n this._runEncoder(graphics);\n }\n}\n\nexport const registerGlyphMark = () => {\n Factory.registerGraphicComponent('glyph', createGlyph);\n registerShadowRoot();\n registerGlyph();\n};\n"]}
|
package/cjs/mark/group.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerGroupMark = exports.GroupMark = void 0;
|
|
6
6
|
|
|
7
|
-
const factory_1 = require("./../core/factory"), debug_1 = require("../util/debug"), base_mark_1 = require("./base/base-mark"), interface_1 = require("./interface"),
|
|
7
|
+
const factory_1 = require("./../core/factory"), debug_1 = require("../util/debug"), base_mark_1 = require("./base/base-mark"), interface_1 = require("./interface"), register_group_1 = require("@visactor/vrender-kits/register/register-group"), register_shadowRoot_1 = require("@visactor/vrender-kits/register/register-shadowRoot"), vutils_1 = require("@visactor/vutils"), util_1 = require("../compile/util"), mark_1 = require("../util/mark");
|
|
8
8
|
|
|
9
9
|
class GroupMark extends base_mark_1.BaseMark {
|
|
10
10
|
constructor() {
|
|
@@ -63,10 +63,9 @@ class GroupMark extends base_mark_1.BaseMark {
|
|
|
63
63
|
diffState: this._diffState
|
|
64
64
|
}), this._setAnimationState(this._product);
|
|
65
65
|
const newAttrs = this._getAttrsFromConfig(style);
|
|
66
|
-
if (this._product.context.diffState === interface_1.DiffState.update) {
|
|
66
|
+
if (this._product.context.finalAttrs = newAttrs, this._product.context.diffState === interface_1.DiffState.update) {
|
|
67
67
|
const hasAnimation = this.hasAnimation(), diffAttrs = (0, mark_1.getDiffAttributesOfGraphic)(this._product, newAttrs);
|
|
68
|
-
this._product.context.diffAttrs = diffAttrs, this.hasAnimationByState(this._product.context.animationState) || (hasAnimation ? this._product.setAttributesAndPreventAnimate(diffAttrs) : this._product.setAttributes(diffAttrs))
|
|
69
|
-
hasAnimation && this._product.setFinalAttributes(newAttrs);
|
|
68
|
+
this._product.context.diffAttrs = diffAttrs, this.hasAnimationByState(this._product.context.animationState) || (hasAnimation ? this._product.setAttributesAndPreventAnimate(diffAttrs) : this._product.setAttributes(diffAttrs));
|
|
70
69
|
} else this._product.setAttributes(newAttrs);
|
|
71
70
|
this.needClear = !0;
|
|
72
71
|
}
|
|
@@ -87,7 +86,8 @@ class GroupMark extends base_mark_1.BaseMark {
|
|
|
87
86
|
exports.GroupMark = GroupMark, GroupMark.type = "group";
|
|
88
87
|
|
|
89
88
|
const registerGroupMark = () => {
|
|
90
|
-
(0,
|
|
89
|
+
(0, register_shadowRoot_1.registerShadowRoot)(), (0, register_group_1.registerGroup)(),
|
|
90
|
+
factory_1.Factory.registerMark(GroupMark.type, GroupMark);
|
|
91
91
|
};
|
|
92
92
|
|
|
93
93
|
exports.registerGroupMark = registerGroupMark;
|
package/cjs/mark/group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/group.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAG5C,yCAA0C;AAE1C,gDAA4C;AAC5C,2CAOqB;AAKrB,
|
|
1
|
+
{"version":3,"sources":["../src/mark/group.ts"],"names":[],"mappings":"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","file":"group.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { Maybe } from '../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { log, warn } from '../util/debug';\nimport type { IGroupMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport {\n DiffState,\n type AnimationStateValues,\n type IGroupMark,\n type IMark,\n type IMarkGraphic,\n type MarkType\n} from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { type IMarkCompileOption } from '../compile/mark';\nimport type { IGroup, IGroupGraphicAttribute } from '@visactor/vrender-core';\nimport { registerGroup } from '@visactor/vrender-kits/register/register-group';\nimport { registerShadowRoot } from '@visactor/vrender-kits/register/register-shadowRoot';\nimport { isNil } from '@visactor/vutils';\nimport { traverseGroupMark } from '../compile/util';\nimport { getDiffAttributesOfGraphic } from '../util/mark';\n\nexport class GroupMark extends BaseMark<IGroupMarkSpec> implements IGroupMark {\n static readonly type = MarkTypeEnum.group;\n readonly type = GroupMark.type;\n protected _marks: IMark[] = [];\n getMarks(): IMark[] {\n return this._marks;\n }\n\n protected _diffState = DiffState.enter;\n protected declare _product: Maybe<IGroup>;\n declare getProduct: () => Maybe<IGroup>;\n\n protected isMarkExist(mark: IMark): boolean {\n return this._marks.find(m => m.id === mark.id) !== undefined;\n }\n\n addMark(mark: IMark): boolean {\n if (this.isMarkExist(mark)) {\n warn('Mark already exists, add mark failed.');\n return false;\n }\n\n this._marks.push(mark);\n return true;\n }\n\n removeMark(mark: IMark): boolean {\n const index = this._marks.findIndex(m => m.id === mark.id || m.name === mark.name);\n if (index === -1) {\n warn('Mark does not exists, removeMark failed.');\n return false;\n }\n this._marks.splice(index, 1);\n return true;\n }\n\n getMarkInType(type: MarkType) {\n return this._marks.filter(m => m.type === type);\n }\n\n getMarkInId(id: number) {\n return this._marks.find(m => m.id === id);\n }\n\n getMarkInUserId(id: string | number) {\n let result: IMark | undefined;\n traverseGroupMark(\n this,\n m => {\n result = m;\n },\n m => m.getUserId() === id,\n null,\n true\n );\n\n return result;\n }\n\n getMarkInName(name: string) {\n return this._marks.filter(m => m.name === name);\n }\n\n protected _compileProduct(option?: IMarkCompileOption): void {\n // 编译自身\n super._compileProduct(option);\n\n // 设置zIndex\n // this._product.configure({\n // zIndex: this._markConfig.zIndex\n // });\n\n // 编译子元素\n this.getMarks().forEach(mark => {\n mark.compile({ group: this._product });\n });\n }\n\n protected _getAttrsFromConfig(attrs: IGroupGraphicAttribute = {}) {\n const configAttrs = super._getAttrsFromConfig(attrs);\n\n if (!isNil(this._markConfig.interactive)) {\n configAttrs.pickable = this._markConfig.interactive;\n }\n return attrs;\n }\n\n getGraphics(): IMarkGraphic[] {\n return [this._product as unknown as IMarkGraphic];\n }\n\n renderInner() {\n if (!this._product) {\n return;\n }\n\n const style = this._simpleStyle ?? this.getAttributesOfState({});\n\n this._product.context = {\n ...this._product.context,\n ...this._getCommonContext(),\n diffState: this._diffState\n };\n this._setAnimationState(this._product as unknown as IMarkGraphic);\n const newAttrs = this._getAttrsFromConfig(style);\n this._product.context.finalAttrs = newAttrs;\n\n // TODO: 需要优化,现在group mark 走了一些特殊逻辑\n if (this._product.context.diffState === DiffState.update) {\n const hasAnimation = this.hasAnimation();\n const diffAttrs = getDiffAttributesOfGraphic(this._product as unknown as IMarkGraphic, newAttrs);\n this._product.context.diffAttrs = diffAttrs;\n\n if (!this.hasAnimationByState(this._product.context.animationState)) {\n hasAnimation ? this._product.setAttributesAndPreventAnimate(diffAttrs) : this._product.setAttributes(diffAttrs);\n }\n } else {\n this._product.setAttributes(newAttrs);\n }\n\n this.needClear = true;\n }\n\n clearExitGraphics() {\n // group 暂时不需要clear元素,完成首次渲染后 将状态设置为update\n this._diffState = DiffState.update;\n }\n\n render(): void {\n if (this._isCommited) {\n log(`render mark: ${this.getProductId()}, type is ${this.type}`);\n this.renderInner();\n this.uncommit();\n }\n\n this.getMarks().forEach(mark => {\n mark.render();\n });\n }\n\n release() {\n super.release();\n this.removeProduct(true);\n }\n}\n\nexport const registerGroupMark = () => {\n registerShadowRoot();\n registerGroup();\n Factory.registerMark(GroupMark.type, GroupMark);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/interface/common.ts"],"names":[],"mappings":"","file":"common.js","sourcesContent":["import type { IGlobalScale } from '../../scale/interface';\nimport type { ICommonSpec, VisualType, ValueType, FunctionType } from '../../typings/visual';\nimport type { IModel } from '../../model/interface';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type { MarkType, MarkTypeEnum } from './type';\nimport type {\n ICompilableMark,\n ICompilableMarkOption,\n IMarkConfig,\n IModelMarkAttributeContext,\n StateValueType\n} from '../../compile/mark/interface';\nimport type { Datum, StringOrNumber } from '../../typings';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { IGroupMark } from './mark';\nimport type { IAnimationConfig } from '../../animation/interface';\nimport type { ICompiler } from '../../compile/interface';\n\nexport interface VisualScaleType {\n scale: IBaseScale;\n field: StringOrNumber;\n changeDomain?: 'none' | 'replace' | 'expand'; //default 'none'\n}\n\nexport type MarkInputStyle<T> = StyleConvert<T> | VisualType<T>;\n\n/** 用户将属性类型转化为 mark-style 中某个属性的 style */\nexport type StyleConvert<T> = ValueType<T> | FunctionType<T> | VisualScaleType;\n\n/** mark-style 中某个属性的样式信息,包含层级等信息 */\nexport interface IAttrConfig<A, R extends ICommonSpec> {\n level: number;\n style: StyleConvert<A>;\n referer?: IMarkRaw<R>;\n postProcess?: (result: A, ...args: Parameters<FunctionType<A>>) => A;\n}\n/** mark-style 中某状态下的一组样式信息 */\nexport type IAttrs<T extends ICommonSpec> = {\n [K in keyof T]: IAttrConfig<T[K], T>;\n};\n\nexport type IMarkProgressiveConfig = {\n /** 是否开启大数据渲染模式,开启后会降低渲染的精度 */\n large?: boolean;\n /** 开启大数据渲染优化的阀值,对应的是data的长度;推荐 largeThreshold < progressiveThreshold */\n largeThreshold?: number;\n /** 分片长度 */\n progressiveStep?: number;\n /** 开启分片渲染的阀值,对应的是单系列data的长度 */\n progressiveThreshold?: number;\n};\n\n/** mark-state-style */\nexport type IMarkStateStyle<T extends ICommonSpec> = Record<StateValueType, Partial<IAttrs<T>>>;\n\n/** mark-style 一组style */\nexport type IMarkStyle<T extends ICommonSpec> = {\n [key in keyof T]: MarkInputStyle<T[key]>;\n};\n\nexport type DiffStateValues = 'update' | 'enter' | 'exit';\n\nexport type AnimationStateValues = 'appear' | 'enter' | 'update' | 'exit' | 'disappear' | 'none' | 'state';\n\nexport interface IGraphicContext {\n /**\n * 编译器\n */\n compiler: ICompiler;\n /**\n * mark的类型\n */\n markType: MarkTypeEnum;\n /**\n * 图形所属mark对应的id,自增id\n */\n markId: number;\n /**\n * 图形所属model对应的id,自增id\n */\n modelId: number;\n /**\n * 图形所属mark对应的用户设置id\n */\n markUserId?: number | string;\n /**\n * 图形所属model对应的用户设置id\n */\n modelUserId?: number | string;\n /**\n * 数据对比状态\n */\n diffState?: DiffStateValues;\n /**\n * 是否正在被复用的图元\n */\n reusing?: boolean;\n /**\n * 复用图元时,保存的上一次的旧属性(用于平滑的过渡动画)\n */\n lastAttrs?: Record<string, any>;\n /**\n * 用于判定这个图元是第几个,在OneByOne动画中控制顺序\n */\n indexKey?: string;\n /**\n * 差异的属性\n */\n diffAttrs?: Record<string, any>;\n /**\n *
|
|
1
|
+
{"version":3,"sources":["../src/mark/interface/common.ts"],"names":[],"mappings":"","file":"common.js","sourcesContent":["import type { IGlobalScale } from '../../scale/interface';\nimport type { ICommonSpec, VisualType, ValueType, FunctionType } from '../../typings/visual';\nimport type { IModel } from '../../model/interface';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type { MarkType, MarkTypeEnum } from './type';\nimport type {\n ICompilableMark,\n ICompilableMarkOption,\n IMarkConfig,\n IModelMarkAttributeContext,\n StateValueType\n} from '../../compile/mark/interface';\nimport type { Datum, StringOrNumber } from '../../typings';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { IGroupMark } from './mark';\nimport type { IAnimationConfig } from '../../animation/interface';\nimport type { ICompiler } from '../../compile/interface';\n\nexport interface VisualScaleType {\n scale: IBaseScale;\n field: StringOrNumber;\n changeDomain?: 'none' | 'replace' | 'expand'; //default 'none'\n}\n\nexport type MarkInputStyle<T> = StyleConvert<T> | VisualType<T>;\n\n/** 用户将属性类型转化为 mark-style 中某个属性的 style */\nexport type StyleConvert<T> = ValueType<T> | FunctionType<T> | VisualScaleType;\n\n/** mark-style 中某个属性的样式信息,包含层级等信息 */\nexport interface IAttrConfig<A, R extends ICommonSpec> {\n level: number;\n style: StyleConvert<A>;\n referer?: IMarkRaw<R>;\n postProcess?: (result: A, ...args: Parameters<FunctionType<A>>) => A;\n}\n/** mark-style 中某状态下的一组样式信息 */\nexport type IAttrs<T extends ICommonSpec> = {\n [K in keyof T]: IAttrConfig<T[K], T>;\n};\n\nexport type IMarkProgressiveConfig = {\n /** 是否开启大数据渲染模式,开启后会降低渲染的精度 */\n large?: boolean;\n /** 开启大数据渲染优化的阀值,对应的是data的长度;推荐 largeThreshold < progressiveThreshold */\n largeThreshold?: number;\n /** 分片长度 */\n progressiveStep?: number;\n /** 开启分片渲染的阀值,对应的是单系列data的长度 */\n progressiveThreshold?: number;\n};\n\n/** mark-state-style */\nexport type IMarkStateStyle<T extends ICommonSpec> = Record<StateValueType, Partial<IAttrs<T>>>;\n\n/** mark-style 一组style */\nexport type IMarkStyle<T extends ICommonSpec> = {\n [key in keyof T]: MarkInputStyle<T[key]>;\n};\n\nexport type DiffStateValues = 'update' | 'enter' | 'exit';\n\nexport type AnimationStateValues = 'appear' | 'enter' | 'update' | 'exit' | 'disappear' | 'none' | 'state';\n\nexport interface IGraphicContext {\n /**\n * 编译器\n */\n compiler: ICompiler;\n /**\n * mark的类型\n */\n markType: MarkTypeEnum;\n /**\n * 图形所属mark对应的id,自增id\n */\n markId: number;\n /**\n * 图形所属model对应的id,自增id\n */\n modelId: number;\n /**\n * 图形所属mark对应的用户设置id\n */\n markUserId?: number | string;\n /**\n * 图形所属model对应的用户设置id\n */\n modelUserId?: number | string;\n /**\n * 数据对比状态\n */\n diffState?: DiffStateValues;\n /**\n * 是否正在被复用的图元\n */\n reusing?: boolean;\n /**\n * 复用图元时,保存的上一次的旧属性(用于平滑的过渡动画)\n */\n lastAttrs?: Record<string, any>;\n /**\n * 用于判定这个图元是第几个,在OneByOne动画中控制顺序\n */\n indexKey?: string;\n /**\n * 差异的属性\n */\n diffAttrs?: Record<string, any>;\n /**\n * VChart encode/transform 后、应用到 VRender graphic 前的下一轮属性快照。\n * 用于 VChart 的 afterEncode transform、diffAttrs 与动画参数,不等同于 VRender finalAttribute。\n */\n finalAttrs?: Record<string, any>;\n /**\n * 用于保存mark对应series的fieldX\n */\n fieldX?: string[];\n /**\n * 用于保存mark对应series的fieldX\n */\n originalFieldX?: string[];\n /**\n * 用于保存mark对应series的fieldY\n */\n fieldY?: string[];\n /**\n * 用于保存mark对应series的fieldY\n */\n originalFieldY?: string[];\n /**\n * 动画状态管理: 'appear' / 'enter' / 'update' / 'exit' / 'disappear'\n */\n animationState?: AnimationStateValues;\n /**\n * 数据\n */\n data?: Datum[];\n /**\n * 用于区分图形的唯一key,\n * 对于line/mark而言,和`groupKey` 是一致的\n * 对于其他图元,由 `groupKey` 和 `key` 拼装得到\n */\n uniqueKey?: string;\n /**\n * 唯一key\n */\n key?: string;\n /**\n * 分组key\n */\n groupKey?: string;\n /**\n * 状态\n */\n states?: string[];\n /**\n * 图元总数量\n */\n graphicCount?: number;\n /**\n * 图元索引顺序\n */\n graphicIndex?: number;\n /**\n * 状态动画配置\n */\n stateAnimateConfig?: IAnimationConfig | IAnimationConfig[];\n}\n\nexport interface IMarkGraphic extends IGraphic {\n /**\n * 缓存运行时的状态编码数据\n */\n runtimeStateCache?: Record<string, any>;\n\n /**\n * 上下文数据\n */\n context?: IGraphicContext;\n\n /**\n * 是否正在退场\n */\n isExiting?: boolean;\n}\n\n/********** mark ***************/\nexport interface IMarkRaw<T extends ICommonSpec> extends ICompilableMark {\n readonly stateStyle: IMarkStateStyle<T>;\n\n getAttributesOfState: (datum: Datum, state?: StateValueType) => Partial<T>;\n getAttribute: <U extends keyof T>(key: U, datum: any, state?: StateValueType) => unknown;\n setAttribute: <U extends keyof T>(attr: U, style: StyleConvert<T[U]>, state?: StateValueType, level?: number) => void;\n\n // 需要支持优先级并且可以使用优先级覆盖\n /** @deprecated VChart 层尽量使用 IModel.setMarkStyle() */\n setStyle: (style: Partial<IMarkStyle<T>>, state?: StateValueType, level?: number) => void;\n setSimpleStyle: (s: T) => void;\n getSimpleStyle: () => T;\n\n setReferer: (mark: IMarkRaw<T>, styleKey?: string, state?: StateValueType) => void;\n\n /** @deprecated VChart 层尽量使用 IModel.initMarkStyleWithSpec() */\n initStyleWithSpec: (spec: any) => void;\n\n created: () => void;\n\n setPostProcess: <U extends keyof T, A>(\n key: U,\n postProcessFunc: IAttrConfig<A, T>['postProcess'],\n state?: StateValueType\n ) => void;\n\n /** 更新某一个状态 */\n updateMarkState: (key: string) => void;\n\n render: () => void;\n renderInner: () => void;\n\n getGraphics: () => IMarkGraphic[];\n\n reuse: (mark: IMark) => void;\n prepareMorph: (mark: IMark) => void;\n\n clearExitGraphics: () => void;\n\n /** 是否启动了增量渲染模式 */\n isProgressive: () => boolean;\n /** 是否正在执行增量渲染 */\n isDoingProgressive: () => boolean;\n /** 清除增量渲染相关状态 */\n clearProgressive: () => void;\n /** 从第一帧开始增量计算 */\n restartProgressive: () => void;\n /** 分片执行 */\n renderProgressive: () => void;\n /** 增量流程后,是否执行动画 */\n canAnimateAfterProgressive: () => boolean;\n /** 执行动画 */\n runAnimation: () => void;\n /** 获取动画状态 */\n getAnimationState: () => AnimationStateValues;\n /** 是否需要清除旧的数据 */\n needClear?: boolean;\n /** 禁用状态动画 */\n disableAnimationByState: (state: string | string[]) => void;\n /** 启用状态动画 */\n enableAnimationByState: (state: string | string[]) => void;\n /** 重新加载前清除缓存 */\n clearBeforeReInit: () => void;\n}\n\nexport type IMark = IMarkRaw<ICommonSpec>;\n\nexport interface ICompileMarkConfig extends IMarkConfig {\n /** morph 配置开关 */\n morph?: boolean;\n\n /** morph元素的唯一key */\n morphElementKey?: string;\n /**\n * 是否支持 3d\n */\n support3d?: boolean;\n /**\n * 裁剪配置\n * @since 1.10.0\n */\n clip?: boolean;\n /** skip theme of vgrammar or not */\n skipTheme?: boolean;\n}\n\nexport interface IMarkOption extends ICompilableMarkOption {\n model: IModel;\n map: Map<StringOrNumber, IModel | IMark>;\n\n globalScale: IGlobalScale;\n seriesId?: number;\n\n /** 组件 mark 的具体类型 */\n componentType?: string;\n attributeContext?: IModelMarkAttributeContext;\n\n /** 父级 mark */\n parent?: IGroupMark | false;\n}\nexport interface IMarkConstructor {\n type: MarkType;\n constructorType?: MarkType;\n new (name: string, options: IMarkOption): IMark;\n}\n\nexport interface IComponentMarkConstructor {\n type: MarkType;\n constructorType?: MarkType;\n new (componentType: string, name: string, options: IMarkOption): IMark;\n}\n\nexport type MarkConstructor = IMarkConstructor | IComponentMarkConstructor;\n\nexport interface IMarkDataInitOption extends IMarkOption {\n mark: IMark;\n}\n\nexport type ISamplingMethod = 'lttb' | 'min' | 'max' | 'sum' | 'average';\n\nexport interface IDataSamping {\n /**\n * 是否使用额外的 activePoint 显示交互点,可以在点隐藏时显示被交互的点\n * @default false\n * @since 1.3.0\n */\n activePoint?: boolean;\n /**\n * 数据采样 - 采样方法\n * @since 1.6.0\n */\n sampling?: ISamplingMethod;\n /**\n * 数据采样 - 采样系数\n * @since 1.6.0\n * @default 1\n */\n samplingFactor?: number;\n}\n\nexport interface IMarkOverlap {\n /**\n * 标记点之间的距离,px\n * @since 1.6.0\n */\n pointDis?: number;\n /**\n * 标记点之间的距离, pointSize 的倍数\n * @since 1.6.0\n * @default 1\n */\n pointDisMul?: number;\n /**\n * 是否允许标记图形相互覆盖\n * @since 1.6.0\n * @default false\n */\n markOverlap?: boolean;\n}\n\nexport type GroupedData<T> = {\n // iterating over array is faster than set\n keys: string[];\n // operation on map is faster than object\n data: Map<string, T[]>;\n};\n\nexport interface IProgressiveTransformResult<Output = any> {\n /** is progressive finished */\n unfinished: () => boolean;\n /** return all the result */\n output: () => Output;\n /** the output result of current progressive run */\n progressiveOutput: () => Output;\n /** run in progressive mode */\n progressiveRun: () => void;\n /** release the progressive context */\n release: () => void;\n /**\n * can animate after progressive\n */\n canAnimate?: () => boolean;\n}\n\nexport type IMarkDataTransform<Options = any, Input = any, Output = any> = (\n options: Options,\n data: Input\n) => Output | IProgressiveTransformResult<Output>;\n\nexport interface ProgressiveContext {\n currentIndex: number;\n totalStep: number;\n step: number;\n data: any[];\n groupKeys?: string[];\n groupedData?: Map<string, any[]>;\n}\n"]}
|
package/cjs/mark/line.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerLineMark = exports.LineMark = void 0;
|
|
6
6
|
|
|
7
|
-
const factory_1 = require("./../core/factory"), type_1 = require("../series/interface/type"), base_line_1 = require("./base/base-line"), config_1 = require("../animation/config"), vrender_core_1 = require("@visactor/vrender-core"),
|
|
7
|
+
const factory_1 = require("./../core/factory"), type_1 = require("../series/interface/type"), base_line_1 = require("./base/base-line"), config_1 = require("../animation/config"), vrender_core_1 = require("@visactor/vrender-core"), register_line_1 = require("@visactor/vrender-kits/register/register-line"), register_shadowRoot_1 = require("@visactor/vrender-kits/register/register-shadowRoot"), line_1 = require("@visactor/vrender-components/label/line"), symbol_1 = require("@visactor/vrender-components/label/symbol");
|
|
8
8
|
|
|
9
9
|
class LineMark extends base_line_1.BaseLineMark {
|
|
10
10
|
constructor() {
|
|
@@ -24,10 +24,9 @@ class LineMark extends base_line_1.BaseLineMark {
|
|
|
24
24
|
exports.LineMark = LineMark, LineMark.type = "line";
|
|
25
25
|
|
|
26
26
|
const registerLineMark = () => {
|
|
27
|
-
factory_1.Factory.registerMark(LineMark.type, LineMark), (0,
|
|
28
|
-
(0,
|
|
29
|
-
(0,
|
|
30
|
-
factory_1.Factory.registerGraphicComponent("line", vrender_core_1.createLine);
|
|
27
|
+
factory_1.Factory.registerMark(LineMark.type, LineMark), (0, register_shadowRoot_1.registerShadowRoot)(),
|
|
28
|
+
(0, register_line_1.registerLine)(), (0, line_1.registerLineDataLabel)(), (0, symbol_1.registerSymbolDataLabel)(),
|
|
29
|
+
(0, config_1.registerLineOrAreaAnimation)(), factory_1.Factory.registerGraphicComponent("line", vrender_core_1.createLine);
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
exports.registerLineMark = registerLineMark;
|
package/cjs/mark/line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/line.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,mDAA0D;AAE1D,gDAAgD;AAIhD,gDAAkE;AAElE,yDAAoD;AACpD,
|
|
1
|
+
{"version":3,"sources":["../src/mark/line.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,mDAA0D;AAE1D,gDAAgD;AAIhD,gDAAkE;AAElE,yDAAoD;AACpD,iFAA6E;AAC7E,6FAAyF;AACzF,kEAAgF;AAChF,sEAAoF;AAEpF,MAAa,QAAS,SAAQ,wBAA2B;IAAzD;;QAEW,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAqBhC,CAAC;IAnBW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,SAAS,EAAE,CAAC,GACb,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAOS,oBAAoB;;QAC5B,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,MAAK,qBAAc,CAAC,KAAK,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,MAAK,OAAO,EAAE;YACnF,OAAO,EAAE,CAAC;SACX;QACD,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACjC,CAAC;;AAtBH,4BAuBC;AAtBiB,aAAI,UAAqB;AAwBpC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,iBAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAA,wCAAkB,GAAE,CAAC;IACrB,IAAA,4BAAY,GAAE,CAAC;IACf,IAAA,4BAAqB,GAAE,CAAC;IACxB,IAAA,gCAAuB,GAAE,CAAC;IAC1B,IAAA,oCAA2B,GAAE,CAAC;IAE9B,iBAAO,CAAC,wBAAwB,SAAoB,yBAAU,CAAC,CAAC;AAClE,CAAC,CAAC;AATW,QAAA,gBAAgB,oBAS3B","file":"line.js","sourcesContent":["import { Factory } from './../core/factory';\nimport { SeriesTypeEnum } from '../series/interface/type';\nimport type { ILineMarkSpec } from '../typings/visual';\nimport { BaseLineMark } from './base/base-line';\nimport type { ILineMark, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerLineOrAreaAnimation } from '../animation/config';\nimport type { IGraphic, ILineGraphicAttribute } from '@visactor/vrender-core';\nimport { createLine } from '@visactor/vrender-core';\nimport { registerLine } from '@visactor/vrender-kits/register/register-line';\nimport { registerShadowRoot } from '@visactor/vrender-kits/register/register-shadowRoot';\nimport { registerLineDataLabel } from '@visactor/vrender-components/label/line';\nimport { registerSymbolDataLabel } from '@visactor/vrender-components/label/symbol';\n\nexport class LineMark extends BaseLineMark<ILineMarkSpec> implements ILineMark {\n static readonly type = MarkTypeEnum.line;\n readonly type = LineMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<ILineMarkSpec> = {\n ...super._getDefaultStyle(),\n lineWidth: 1\n };\n return defaultStyle;\n }\n\n /**\n * TODO: SeriesTypeEnum 移到最外层\n * @override 线不支持填充\n * @returns\n */\n protected _getIgnoreAttributes(): string[] {\n if (this.model?.type === SeriesTypeEnum.radar && this.model?.coordinate === 'polar') {\n return [];\n }\n return ['fill', 'fillOpacity'];\n }\n}\n\nexport const registerLineMark = () => {\n Factory.registerMark(LineMark.type, LineMark);\n registerShadowRoot();\n registerLine();\n registerLineDataLabel();\n registerSymbolDataLabel();\n registerLineOrAreaAnimation();\n\n Factory.registerGraphicComponent(MarkTypeEnum.line, createLine);\n};\n"]}
|
package/cjs/mark/rect.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerRectMark = exports.RectMark = void 0;
|
|
6
6
|
|
|
7
|
-
const factory_1 = require("./../core/factory"), base_mark_1 = require("./base/base-mark"), config_1 = require("../animation/config"),
|
|
7
|
+
const factory_1 = require("./../core/factory"), base_mark_1 = require("./base/base-mark"), config_1 = require("../animation/config"), register_rect_1 = require("@visactor/vrender-kits/register/register-rect"), register_shadowRoot_1 = require("@visactor/vrender-kits/register/register-shadowRoot"), label_1 = require("@visactor/vrender-components/label"), vrender_core_1 = require("@visactor/vrender-core");
|
|
8
8
|
|
|
9
9
|
class RectMark extends base_mark_1.BaseMark {
|
|
10
10
|
constructor() {
|
|
@@ -22,8 +22,8 @@ class RectMark extends base_mark_1.BaseMark {
|
|
|
22
22
|
exports.RectMark = RectMark, RectMark.type = "rect";
|
|
23
23
|
|
|
24
24
|
const registerRectMark = () => {
|
|
25
|
-
(0,
|
|
26
|
-
|
|
25
|
+
(0, register_shadowRoot_1.registerShadowRoot)(), (0, register_rect_1.registerRect)(),
|
|
26
|
+
(0, label_1.registerRectDataLabel)(), factory_1.Factory.registerMark(RectMark.type, RectMark),
|
|
27
27
|
(0, config_1.registerRectAnimation)(), factory_1.Factory.registerGraphicComponent("rect", vrender_core_1.createRect);
|
|
28
28
|
};
|
|
29
29
|
|
package/cjs/mark/rect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/rect.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,gDAA4C;AAI5C,gDAA4D;AAC5D,
|
|
1
|
+
{"version":3,"sources":["../src/mark/rect.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,gDAA4C;AAI5C,gDAA4D;AAC5D,iFAA6E;AAC7E,6FAAyF;AACzF,8DAA2E;AAC3E,yDAAoD;AAEpD,MAAa,QAAS,SAAQ,oBAAuB;IAArD;;QAEW,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAWhC,CAAC;IATW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,CAAC,GACb,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;;AAZH,4BAaC;AAZiB,aAAI,UAAqB;AAcpC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,IAAA,wCAAkB,GAAE,CAAC;IACrB,IAAA,4BAAY,GAAE,CAAC;IACf,IAAA,6BAAqB,GAAE,CAAC;IACxB,iBAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAA,8BAAqB,GAAE,CAAC;IAExB,iBAAO,CAAC,wBAAwB,SAAoB,yBAAU,CAAC,CAAC;AAClE,CAAC,CAAC;AARW,QAAA,gBAAgB,oBAQ3B","file":"rect.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IRectMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkStyle, IRectMark } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerRectAnimation } from '../animation/config';\nimport { registerRect } from '@visactor/vrender-kits/register/register-rect';\nimport { registerShadowRoot } from '@visactor/vrender-kits/register/register-shadowRoot';\nimport { registerRectDataLabel } from '@visactor/vrender-components/label';\nimport { createRect } from '@visactor/vrender-core';\n\nexport class RectMark extends BaseMark<IRectMarkSpec> implements IRectMark {\n static readonly type = MarkTypeEnum.rect;\n readonly type = RectMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IRectMarkSpec> = {\n ...super._getDefaultStyle(),\n width: undefined,\n height: undefined,\n lineWidth: 0\n };\n return defaultStyle;\n }\n}\n\nexport const registerRectMark = () => {\n registerShadowRoot();\n registerRect();\n registerRectDataLabel();\n Factory.registerMark(RectMark.type, RectMark);\n registerRectAnimation();\n\n Factory.registerGraphicComponent(MarkTypeEnum.rect, createRect);\n};\n"]}
|
package/cjs/mark/symbol.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerSymbolMark = exports.SymbolMark = void 0;
|
|
6
6
|
|
|
7
|
-
const factory_1 = require("./../core/factory"), base_mark_1 = require("./base/base-mark"), vrender_core_1 = require("@visactor/vrender-core"),
|
|
7
|
+
const factory_1 = require("./../core/factory"), base_mark_1 = require("./base/base-mark"), vrender_core_1 = require("@visactor/vrender-core"), register_shadowRoot_1 = require("@visactor/vrender-kits/register/register-shadowRoot"), register_symbol_1 = require("@visactor/vrender-kits/register/register-symbol"), symbol_1 = require("@visactor/vrender-components/label/symbol"), vutils_1 = require("@visactor/vutils");
|
|
8
8
|
|
|
9
9
|
class SymbolMark extends base_mark_1.BaseMark {
|
|
10
10
|
constructor() {
|
|
@@ -29,8 +29,8 @@ class SymbolMark extends base_mark_1.BaseMark {
|
|
|
29
29
|
exports.SymbolMark = SymbolMark, SymbolMark.type = "symbol";
|
|
30
30
|
|
|
31
31
|
const registerSymbolMark = () => {
|
|
32
|
-
factory_1.Factory.registerMark(SymbolMark.type, SymbolMark), (0,
|
|
33
|
-
(0,
|
|
32
|
+
factory_1.Factory.registerMark(SymbolMark.type, SymbolMark), (0, register_shadowRoot_1.registerShadowRoot)(),
|
|
33
|
+
(0, register_symbol_1.registerSymbol)(), (0, symbol_1.registerSymbolDataLabel)(),
|
|
34
34
|
factory_1.Factory.registerGraphicComponent("symbol", vrender_core_1.createSymbol);
|
|
35
35
|
};
|
|
36
36
|
|
package/cjs/mark/symbol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/symbol.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,gDAA4C;AAK5C,yDAAsD;AACtD,
|
|
1
|
+
{"version":3,"sources":["../src/mark/symbol.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,gDAA4C;AAK5C,yDAAsD;AACtD,6FAAyF;AACzF,qFAAiF;AACjF,sEAAoF;AACpF,6CAAyC;AAEzC,MAAa,UAAW,SAAQ,oBAAyB;IAAzD;;QAEW,SAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAwBlC,CAAC;IAvBW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,QAAQ,EACpB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,CAAC,GACb,CAAC;QACF,OAAO,YAA2C,CAAC;IACrD,CAAC;IAES,2BAA2B,CAAC,CAAe,EAAE,KAAU,EAAE,UAAgB;;QACjF,MAAM,WAAW,GAAG,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5E,MAAM,UAAU,GACd,MAAA,MAAA,WAAW,CAAC,KAAK,mCAAI,WAAW,CAAC,UAAU,mCAAI,MAAC,CAAC,CAAC,SAAqC,0CAAE,UAAU,CAAC;QAEtG,IAAI,IAAA,cAAK,EAAC,UAAU,CAAC,EAAE;YACrB,WAAW,CAAC,UAAU,GAAG,QAAQ,CAAC;SACnC;aAAM;YACL,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC;SACrC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;;AAzBH,gCA0BC;AAzBiB,eAAI,YAAuB;AA2BtC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,iBAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,IAAA,wCAAkB,GAAE,CAAC;IACrB,IAAA,gCAAc,GAAE,CAAC;IACjB,IAAA,gCAAuB,GAAE,CAAC;IAE1B,iBAAO,CAAC,wBAAwB,WAAsB,2BAAY,CAAC,CAAC;AACtE,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B","file":"symbol.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { ISymbolMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkGraphic, IMarkStyle, ISymbolMark } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport type { ISymbolGraphicAttribute } from '@visactor/vrender-core';\nimport { createSymbol } from '@visactor/vrender-core';\nimport { registerShadowRoot } from '@visactor/vrender-kits/register/register-shadowRoot';\nimport { registerSymbol } from '@visactor/vrender-kits/register/register-symbol';\nimport { registerSymbolDataLabel } from '@visactor/vrender-components/label/symbol';\nimport { isNil } from '@visactor/vutils';\n\nexport class SymbolMark extends BaseMark<ISymbolMarkSpec> implements ISymbolMark {\n static readonly type = MarkTypeEnum.symbol;\n readonly type = SymbolMark.type;\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<ISymbolMarkSpec> = {\n ...super._getDefaultStyle(),\n size: 1,\n symbolType: 'circle',\n fill: undefined,\n lineWidth: 0\n };\n return defaultStyle as IMarkStyle<ISymbolMarkSpec>;\n }\n\n protected _transformGraphicAttributes(g: IMarkGraphic, attrs: any, groupAttrs?: any) {\n const symbolAttrs = super._transformGraphicAttributes(g, attrs, groupAttrs);\n const symbolType =\n symbolAttrs.shape ?? symbolAttrs.symbolType ?? (g.attribute as ISymbolGraphicAttribute)?.symbolType;\n\n if (isNil(symbolType)) {\n symbolAttrs.symbolType = 'circle';\n } else {\n symbolAttrs.symbolType = symbolType;\n }\n return symbolAttrs;\n }\n}\n\nexport const registerSymbolMark = () => {\n Factory.registerMark(SymbolMark.type, SymbolMark);\n registerShadowRoot();\n registerSymbol();\n registerSymbolDataLabel();\n\n Factory.registerGraphicComponent(MarkTypeEnum.symbol, createSymbol);\n};\n"]}
|
package/cjs/mark/text.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerTextMark = exports.TextMark = void 0;
|
|
6
6
|
|
|
7
|
-
const factory_1 = require("./../core/factory"), base_mark_1 = require("./base/base-mark"),
|
|
7
|
+
const factory_1 = require("./../core/factory"), base_mark_1 = require("./base/base-mark"), register_richtext_1 = require("@visactor/vrender-kits/register/register-richtext"), register_shadowRoot_1 = require("@visactor/vrender-kits/register/register-shadowRoot"), register_text_1 = require("@visactor/vrender-kits/register/register-text"), vrender_core_1 = require("@visactor/vrender-core"), vutils_1 = require("@visactor/vutils");
|
|
8
8
|
|
|
9
9
|
class TextMark extends base_mark_1.BaseMark {
|
|
10
10
|
getTextType() {
|
|
@@ -39,9 +39,9 @@ class TextMark extends base_mark_1.BaseMark {
|
|
|
39
39
|
exports.TextMark = TextMark, TextMark.type = "text";
|
|
40
40
|
|
|
41
41
|
const registerTextMark = () => {
|
|
42
|
-
factory_1.Factory.registerMark(TextMark.type, TextMark), (0,
|
|
43
|
-
(0,
|
|
44
|
-
factory_1.Factory.registerGraphicComponent("richtext", vrender_core_1.createRichText);
|
|
42
|
+
factory_1.Factory.registerMark(TextMark.type, TextMark), (0, register_shadowRoot_1.registerShadowRoot)(),
|
|
43
|
+
(0, register_text_1.registerText)(), (0, register_richtext_1.registerRichtext)(),
|
|
44
|
+
factory_1.Factory.registerGraphicComponent("text", vrender_core_1.createText), factory_1.Factory.registerGraphicComponent("richtext", vrender_core_1.createRichText);
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
exports.registerTextMark = registerTextMark;
|
package/cjs/mark/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/text.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,gDAA4C;AAK5C,
|
|
1
|
+
{"version":3,"sources":["../src/mark/text.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,gDAA4C;AAK5C,yFAAqF;AACrF,6FAAyF;AACzF,iFAA6E;AAE7E,yDAAoE;AACpE,6CAAqD;AAErD,MAAa,QAAS,SAAQ,oBAA+B;IAK3D,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,YAAY,IAAY,EAAE,MAAmB;QAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QARb,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAEpB,cAAS,GAAoB,MAAM,CAAC;IAO9C,CAAC;IAES,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAE3B,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,EAAE,GACf,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,IAAsC;QACtD,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;SAChC;IACH,CAAC;IAES,2BAA2B,CAAC,CAAe,EAAE,KAAU,EAAE,UAAgB;QACjF,MAAM,SAAS,GAAG,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE1E,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;QAE3B,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,IAAI,IAAA,gBAAO,EAAE,IAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,MAAM,IAAK,IAAY,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;YACjH,SAAS,CAAC,UAAU,GAAI,IAAY,CAAC,IAAI,CAAC;SAC3C;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,cAAc,CAAC,QAA2D,EAAE;QACpF,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAEvB,OAAO,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,IAAY,aAAZ,IAAI,uBAAJ,IAAI,CAAU,IAAI,MAAK,MAAM;YAChE,CAAC,CAAC,IAAA,6BAAc,EAAC,KAAkC,CAAC;YACpD,CAAC,CAAC,IAAA,yBAAU,EAAC,KAA8B,CAAC,CAAC;IACjD,CAAC;;AAlDH,4BAmDC;AAlDiB,aAAI,UAAqB;AAoDpC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,iBAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAA,wCAAkB,GAAE,CAAC;IACrB,IAAA,4BAAY,GAAE,CAAC;IACf,IAAA,oCAAgB,GAAE,CAAC;IAEnB,iBAAO,CAAC,wBAAwB,SAAoB,yBAAU,CAAC,CAAC;IAChE,iBAAO,CAAC,wBAAwB,CAAC,UAAU,EAAE,6BAAc,CAAC,CAAC;AAC/D,CAAC,CAAC;AARW,QAAA,gBAAgB,oBAQ3B","file":"text.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IComposedTextMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkGraphic, IMarkOption, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface';\nimport type { ITextMark, ITextSpec } from './interface/mark';\nimport { registerRichtext } from '@visactor/vrender-kits/register/register-richtext';\nimport { registerShadowRoot } from '@visactor/vrender-kits/register/register-shadowRoot';\nimport { registerText } from '@visactor/vrender-kits/register/register-text';\nimport type { IGraphic, IRichTextGraphicAttribute, ITextGraphicAttribute } from '@visactor/vrender-core';\nimport { createRichText, createText } from '@visactor/vrender-core';\nimport { isObject, isValid } from '@visactor/vutils';\n\nexport class TextMark extends BaseMark<IComposedTextMarkSpec> implements ITextMark {\n static readonly type = MarkTypeEnum.text;\n readonly type = TextMark.type;\n\n protected _textType: 'text' | 'rich' = 'text';\n getTextType() {\n return this._textType;\n }\n\n constructor(name: string, option: IMarkOption) {\n super(name, option);\n }\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IComposedTextMarkSpec> = {\n ...super._getDefaultStyle(),\n // TODO: 删除后会有显示问题,待排查\n angle: 0,\n textAlign: 'center',\n lineWidth: 0,\n textConfig: []\n };\n return defaultStyle;\n }\n\n initStyleWithSpec(spec: ITextSpec<IComposedTextMarkSpec>) {\n super.initStyleWithSpec(spec);\n if (spec.textType) {\n this._textType = spec.textType;\n }\n }\n\n protected _transformGraphicAttributes(g: IMarkGraphic, attrs: any, groupAttrs?: any) {\n const textAttrs = super._transformGraphicAttributes(g, attrs, groupAttrs);\n\n const { text } = textAttrs;\n\n if (isObject(text) && isValid((text as any).text) && (this._textType === 'rich' || (text as any).type === 'rich')) {\n textAttrs.textConfig = (text as any).text;\n }\n\n return textAttrs;\n }\n\n protected _createGraphic(attrs: ITextGraphicAttribute | IRichTextGraphicAttribute = {}): IGraphic {\n const { text } = attrs;\n\n return this._textType === 'rich' || (text as any)?.type === 'rich'\n ? createRichText(attrs as IRichTextGraphicAttribute)\n : createText(attrs as ITextGraphicAttribute);\n }\n}\n\nexport const registerTextMark = () => {\n Factory.registerMark(TextMark.type, TextMark);\n registerShadowRoot();\n registerText();\n registerRichtext();\n\n Factory.registerGraphicComponent(MarkTypeEnum.text, createText);\n Factory.registerGraphicComponent('richtext', createRichText);\n};\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.tickAlign = void 0;
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const util_1 = require("@visactor/vrender-components/axis/tick-data/util"), vutils_1 = require("@visactor/vutils");
|
|
8
8
|
|
|
9
9
|
function saveTick(value, minInput, inputRange, minOutput, outputRange) {
|
|
10
10
|
const sub = (0, vutils_1.precisionSub)(value, minInput), decimalPlaces = Math.max((0,
|
|
@@ -33,7 +33,7 @@ const tickAlign = (data, op) => {
|
|
|
33
33
|
const currentDomain = currentScale.domain(), currentRange = (0, vutils_1.last)(currentDomain) - currentDomain[0];
|
|
34
34
|
if (0 === targetRange) return data;
|
|
35
35
|
const newTicks = targetData.map((d => saveTick(d.value, targetDomain[0], targetRange, currentDomain[0], currentRange)));
|
|
36
|
-
return (0,
|
|
36
|
+
return (0, util_1.convertDomainToTickData)(newTicks);
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
exports.tickAlign = tickAlign;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/components/axis-sync/tick-align-transform.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/axis-sync/tick-align-transform.ts"],"names":[],"mappings":"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","file":"tick-align-transform.js","sourcesContent":["import type { Datum } from '../../../typings';\nimport type { CartesianAxis } from '../../../component';\nimport { convertDomainToTickData } from '@visactor/vrender-components/axis/tick-data/util';\nimport { last, precisionSub, getDecimalPlaces } from '@visactor/vutils';\n\nexport interface ITickAlignOpt {\n targetAxis: () => CartesianAxis;\n currentAxis: () => CartesianAxis;\n}\n\nfunction saveTick(value: number, minInput: number, inputRange: number, minOutput: number, outputRange: number) {\n const sub = precisionSub(value, minInput);\n const decimalPlaces = Math.max(getDecimalPlaces(inputRange), getDecimalPlaces(sub));\n const percent = Math.round(sub * 10 ** decimalPlaces) / Math.round(inputRange * 10 ** decimalPlaces);\n return outputRange * percent + minOutput;\n}\n\nexport const tickAlign = (data: Array<Datum>, op: ITickAlignOpt) => {\n if (!data) {\n return data;\n }\n // check align enable\n const targetAxis = op?.targetAxis?.();\n if (!targetAxis) {\n return data;\n }\n const currentAxis = op?.currentAxis?.();\n if (!currentAxis) {\n return data;\n }\n const currentData = currentAxis.getTickData()?.getDataView();\n if (!currentData) {\n return data;\n }\n // TODO 这种方法有点hack\n const currentTickTransform = currentData.transformsArr.find(t => t.type.includes('ticks'));\n if (!currentTickTransform) {\n return data;\n }\n const currentScale = currentAxis.getScale();\n if (!currentScale) {\n return data;\n }\n const targetData = targetAxis.getTickData()?.getDataView()?.latestData;\n if (!targetData?.length) {\n return data;\n }\n const targetScale = targetAxis.getScale();\n if (!targetScale) {\n return data;\n }\n const targetDomain = targetScale.domain();\n const targetRange = last(targetDomain) - targetDomain[0];\n if (targetRange === 0) {\n return data;\n }\n const currentDomain = currentScale.domain();\n const currentRange = last(currentDomain) - currentDomain[0];\n if (targetRange === 0) {\n return data;\n }\n // make the tickData of the current axis consistent with the tickData of the target axis\n const newTicks: number[] = targetData.map((d: { value: number }) =>\n saveTick(d.value, targetDomain[0], targetRange, currentDomain[0], currentRange)\n );\n return convertDomainToTickData(newTicks);\n};\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BaseTooltipHandler } from './base';
|
|
2
|
-
import { Tooltip as TooltipComponent } from '@visactor/vrender-components';
|
|
2
|
+
import { Tooltip as TooltipComponent } from '@visactor/vrender-components/tooltip';
|
|
3
3
|
import type { TooltipHandlerParams } from '../../../component/tooltip';
|
|
4
4
|
import type { IComponentPluginService } from '../interface';
|
|
5
5
|
import type { ITooltipActual } from '../../../typings';
|
|
6
|
-
import type { IContainerSize } from '@visactor/vrender-components';
|
|
6
|
+
import type { IContainerSize } from '@visactor/vrender-components/tooltip/type';
|
|
7
7
|
import type { ITooltipAttributes } from './interface';
|
|
8
8
|
export declare class CanvasTooltipHandler extends BaseTooltipHandler {
|
|
9
9
|
static readonly type: string;
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerCanvasTooltipHandler = exports.CanvasTooltipHandler = void 0;
|
|
6
6
|
|
|
7
|
-
const base_1 = require("./base"),
|
|
7
|
+
const base_1 = require("./base"), tooltip_1 = require("@visactor/vrender-components/tooltip"), vutils_1 = require("@visactor/vutils"), register_1 = require("../register"), constant_1 = require("../../../component/tooltip/constant"), attribute_1 = require("./utils/attribute");
|
|
8
8
|
|
|
9
9
|
class CanvasTooltipHandler extends base_1.BaseTooltipHandler {
|
|
10
10
|
constructor() {
|
|
@@ -17,7 +17,7 @@ class CanvasTooltipHandler extends base_1.BaseTooltipHandler {
|
|
|
17
17
|
}
|
|
18
18
|
_initTooltipComponent(stage) {
|
|
19
19
|
const layer = this._getLayer(stage);
|
|
20
|
-
this._tooltipComponent = new
|
|
20
|
+
this._tooltipComponent = new tooltip_1.Tooltip({
|
|
21
21
|
autoCalculatePosition: !1,
|
|
22
22
|
autoMeasure: !1
|
|
23
23
|
}), layer.add(this._tooltipComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/components/tooltip-handler/canvas-tooltip-handler.ts"],"names":[],"mappings":";;;AACA,iCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/tooltip-handler/canvas-tooltip-handler.ts"],"names":[],"mappings":"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","file":"canvas-tooltip-handler.js","sourcesContent":["import type { ILayer, INode, IStage } from '@visactor/vrender-core';\nimport { BaseTooltipHandler } from './base';\nimport { Tooltip as TooltipComponent } from '@visactor/vrender-components/tooltip';\nimport { isValid, isNil } from '@visactor/vutils';\nimport type { TooltipHandlerParams } from '../../../component/tooltip';\nimport type { IComponentPluginService } from '../interface';\nimport { registerComponentPlugin } from '../register';\nimport { TooltipHandlerType } from '../../../component/tooltip/constant';\nimport type { ITooltipActual } from '../../../typings';\nimport type { IContainerSize } from '@visactor/vrender-components/tooltip/type';\nimport { getTooltipAttributes } from './utils/attribute';\nimport type { ITooltipAttributes } from './interface';\n\n/**\n * The tooltip handler class.\n */\nexport class CanvasTooltipHandler extends BaseTooltipHandler {\n static readonly type = TooltipHandlerType.canvas;\n readonly type = TooltipHandlerType.canvas;\n\n private _layer: ILayer;\n protected _el?: HTMLCanvasElement;\n protected _tooltipCanvasId?: string;\n protected _tooltipComponent: TooltipComponent;\n protected _attributes?: ITooltipAttributes | null = null;\n\n constructor() {\n super(CanvasTooltipHandler.type);\n }\n\n onAdd(service: IComponentPluginService<any>): void {\n super.onAdd(service);\n this._tooltipCanvasId = (this._chartOption.modeParams as any)?.tooltipCanvasId;\n }\n\n private _initTooltipComponent(stage: IStage) {\n const layer = this._getLayer(stage);\n this._tooltipComponent = new TooltipComponent({\n autoCalculatePosition: false,\n autoMeasure: false\n });\n layer.add(this._tooltipComponent as unknown as INode);\n }\n\n private _getLayer(stage: IStage) {\n if (this._layer) {\n return this._layer;\n }\n\n this._layer = stage.createLayer(this._tooltipCanvasId);\n\n // 需要关闭 layer 对应的 canvas 的事件\n const layerCanvas = this._layer.layerHandler.canvas.nativeCanvas as HTMLCanvasElement;\n // TODO:待 vrender 支持\n if (layerCanvas && layerCanvas.style) {\n layerCanvas.style.touchAction = 'none';\n layerCanvas.style.pointerEvents = 'none';\n }\n\n return this._layer;\n }\n\n // 计算 tooltip 内容区域的宽高,并缓存结果\n protected _getTooltipBoxSize(actualTooltip: ITooltipActual, changePositionOnly: boolean): IContainerSize | undefined {\n if (!changePositionOnly || isNil(this._attributes)) {\n const globalFontFamily = this._chartOption?.getTheme('fontFamily');\n this._attributes = getTooltipAttributes(actualTooltip, this._component.getSpec(), globalFontFamily);\n }\n const { panel } = this._attributes ?? {};\n // canvas模式下, size需要考虑border size, 目的是为了精准判断边界是否超出画布,达到confine效果\n // html模式不提供confine, 所以不考虑精准计算size\n\n return {\n width: panel.width + panel.lineWidth,\n height: panel.height + panel.lineWidth\n };\n }\n\n protected _removeTooltip() {\n if (this._layer) {\n this._layer.removeAllChild();\n // this._layer.render();\n }\n this._attributes = null;\n }\n\n protected _updateTooltip(visible: boolean, params: TooltipHandlerParams) {\n this._visible = visible;\n\n const stage = this._compiler.getStage();\n if (!stage) {\n return;\n }\n\n if (!visible) {\n if (this._tooltipComponent && this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.hideAll();\n this._tooltipComponent.setAttributes({\n visibleAll: false\n });\n }\n return;\n }\n\n if (!this._tooltipComponent) {\n this._initTooltipComponent(stage);\n }\n\n const { activeTooltipSpec } = params;\n const pos = activeTooltipSpec.position;\n if (!params.changePositionOnly) {\n this._tooltipComponent.setAttributes({\n ...this._attributes,\n ...pos\n });\n } else if (isValid(pos)) {\n this._tooltipComponent.setAttributes(pos);\n }\n\n if (!this._tooltipComponent.attribute.visible) {\n this._tooltipComponent.showAll();\n this._tooltipComponent.setAttributes({\n visibleAll: true\n });\n }\n }\n\n isTooltipShown() {\n return this._tooltipComponent?.attribute.visibleAll;\n }\n\n release() {\n super.release();\n this._layer?.release();\n }\n}\n\nexport const registerCanvasTooltipHandler = () => {\n registerComponentPlugin(CanvasTooltipHandler);\n};\n"]}
|
package/cjs/plugin/other.js
CHANGED
|
@@ -18,21 +18,21 @@ Object.defineProperty(exports, "registerHtmlAttributePlugin", {
|
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
-
const
|
|
22
|
-
(0,
|
|
23
|
-
|
|
21
|
+
const register_1 = require("@visactor/vrender-animate/register"), extension_1 = require("@visactor/vrender-kits/event/extension"), factory_1 = require("../core/factory"), config_1 = require("../animation/config"), registerAnimate = () => {
|
|
22
|
+
(0, register_1.registerAnimate)(), (0, config_1.registerBuiltInAnimation)(), (0,
|
|
23
|
+
config_1.registerStageAnimation)();
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
exports.registerAnimate = registerAnimate;
|
|
27
27
|
|
|
28
28
|
const registerDragPlugin = () => {
|
|
29
|
-
factory_1.Factory.registerStageEventPlugin("drag",
|
|
29
|
+
factory_1.Factory.registerStageEventPlugin("drag", extension_1.DragNDrop);
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
exports.registerDragPlugin = registerDragPlugin;
|
|
33
33
|
|
|
34
34
|
const registerGesturePlugin = () => {
|
|
35
|
-
factory_1.Factory.registerStageEventPlugin("gesture",
|
|
35
|
+
factory_1.Factory.registerStageEventPlugin("gesture", extension_1.Gesture);
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
exports.registerGesturePlugin = registerGesturePlugin;
|