@visactor/vchart-extension 2.0.22-alpha.4 → 2.0.22
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/index.js +107 -0
- package/build/index.min.js +1 -1
- package/cjs/charts/axis-3d/index.js +1 -2
- package/cjs/charts/bar-3d/chart-spec-transformer.js +1 -1
- package/cjs/charts/bar-3d/chart.js +1 -1
- package/cjs/charts/bar-3d/constant.js +2 -1
- package/cjs/charts/bar-3d/index.js +1 -1
- package/cjs/charts/bar-3d/interface.js +1 -1
- package/cjs/charts/bar-3d/series-spec-transformer.js +1 -1
- package/cjs/charts/bar-3d/series.js +1 -1
- package/cjs/charts/bar-3d/theme.js +1 -1
- package/cjs/charts/candlestick/candlestick-transformer.js +1 -1
- package/cjs/charts/candlestick/candlestick.js +2 -1
- package/cjs/charts/candlestick/index.js +1 -1
- package/cjs/charts/candlestick/interface.js +1 -1
- package/cjs/charts/candlestick/util.js +1 -1
- package/cjs/charts/combination-candlestick/combination-candlestick-transformer.js +1 -1
- package/cjs/charts/combination-candlestick/combination-candlestick.js +1 -1
- package/cjs/charts/combination-candlestick/constant.js +1 -1
- package/cjs/charts/combination-candlestick/index.js +1 -1
- package/cjs/charts/combination-candlestick/interface.js +1 -1
- package/cjs/charts/conversion-funnel/arrow-data-transform.js +1 -1
- package/cjs/charts/conversion-funnel/constants.js +1 -1
- package/cjs/charts/conversion-funnel/conversion-funnel-transformer.js +1 -1
- package/cjs/charts/conversion-funnel/conversion-funnel.js +1 -1
- package/cjs/charts/conversion-funnel/index.js +1 -1
- package/cjs/charts/conversion-funnel/interface.js +1 -1
- package/cjs/charts/conversion-funnel/util.js +1 -1
- package/cjs/charts/funnel-3d/chart.js +2 -1
- package/cjs/charts/funnel-3d/constant.js +1 -1
- package/cjs/charts/funnel-3d/index.js +1 -1
- package/cjs/charts/funnel-3d/interface.js +1 -1
- package/cjs/charts/funnel-3d/series-spec-transformer.js +1 -1
- package/cjs/charts/funnel-3d/series.js +1 -1
- package/cjs/charts/funnel-3d/theme.js +1 -1
- package/cjs/charts/histogram-3d/chart.js +1 -1
- package/cjs/components/bar-link/bar-link.js +1 -1
- package/cjs/components/bar-link/constant.js +1 -1
- package/cjs/components/bar-link/index.js +1 -1
- package/cjs/components/bar-link/type.js +1 -1
- package/cjs/components/bar-link/util.js +1 -1
- package/cjs/components/bar-regression-line/index.js +1 -1
- package/cjs/components/bar-regression-line/type.js +1 -1
- package/cjs/components/extension-mark-sync-state/extension-mark-sync-state.d.ts +16 -0
- package/cjs/components/extension-mark-sync-state/extension-mark-sync-state.js +81 -0
- package/cjs/components/extension-mark-sync-state/extension-mark-sync-state.js.map +1 -0
- package/cjs/components/extension-mark-sync-state/index.d.ts +2 -0
- package/cjs/components/extension-mark-sync-state/index.js +35 -0
- package/cjs/components/extension-mark-sync-state/index.js.map +1 -0
- package/cjs/components/extension-mark-sync-state/type.d.ts +11 -0
- package/cjs/components/extension-mark-sync-state/type.js +6 -0
- package/cjs/components/extension-mark-sync-state/type.js.map +1 -0
- package/cjs/components/histogram-regression-line/index.js +1 -1
- package/cjs/components/histogram-regression-line/type.js +1 -2
- package/cjs/components/map-label/index.js +1 -1
- package/cjs/components/map-label/layout.js +1 -1
- package/cjs/components/map-label/map-label-transformer.js +1 -1
- package/cjs/components/map-label/map-label.js +1 -1
- package/cjs/components/map-label/theme.js +1 -1
- package/cjs/components/map-label/type.js +1 -1
- package/cjs/components/regression-line/index.js +1 -1
- package/cjs/components/regression-line/regression-line.js +1 -1
- package/cjs/components/regression-line/type.js +1 -1
- package/cjs/components/scatter-regression-line/index.js +1 -1
- package/cjs/components/scatter-regression-line/type.js +1 -1
- package/cjs/components/series-break/constant.js +1 -1
- package/cjs/components/series-break/index.js +1 -1
- package/cjs/components/series-break/series-break.js +1 -1
- package/cjs/components/series-break/type.js +1 -1
- package/cjs/components/series-break/util.js +1 -2
- package/cjs/components/series-label/constant.js +1 -1
- package/cjs/components/series-label/index.js +1 -1
- package/cjs/components/series-label/series-label.js +1 -1
- package/cjs/components/series-label/type.js +1 -1
- package/cjs/components/series-label/util.js +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +2 -1
- package/cjs/index.js.map +1 -1
- package/esm/charts/axis-3d/index.js +1 -2
- package/esm/charts/bar-3d/chart-spec-transformer.js +1 -1
- package/esm/charts/bar-3d/chart.js +1 -1
- package/esm/charts/bar-3d/constant.js +2 -1
- package/esm/charts/bar-3d/index.js +1 -1
- package/esm/charts/bar-3d/interface.js +1 -1
- package/esm/charts/bar-3d/series-spec-transformer.js +1 -1
- package/esm/charts/bar-3d/series.js +1 -1
- package/esm/charts/bar-3d/theme.js +1 -1
- package/esm/charts/candlestick/candlestick-transformer.js +1 -1
- package/esm/charts/candlestick/candlestick.js +2 -1
- package/esm/charts/candlestick/index.js +1 -1
- package/esm/charts/candlestick/interface.js +1 -1
- package/esm/charts/candlestick/util.js +1 -1
- package/esm/charts/combination-candlestick/combination-candlestick-transformer.js +1 -1
- package/esm/charts/combination-candlestick/combination-candlestick.js +1 -1
- package/esm/charts/combination-candlestick/constant.js +1 -1
- package/esm/charts/combination-candlestick/index.js +1 -1
- package/esm/charts/combination-candlestick/interface.js +1 -1
- package/esm/charts/conversion-funnel/arrow-data-transform.js +1 -1
- package/esm/charts/conversion-funnel/constants.js +1 -1
- package/esm/charts/conversion-funnel/conversion-funnel-transformer.js +1 -1
- package/esm/charts/conversion-funnel/conversion-funnel.js +1 -1
- package/esm/charts/conversion-funnel/index.js +1 -1
- package/esm/charts/conversion-funnel/interface.js +1 -1
- package/esm/charts/conversion-funnel/util.js +1 -1
- package/esm/charts/funnel-3d/chart.js +2 -1
- package/esm/charts/funnel-3d/constant.js +1 -1
- package/esm/charts/funnel-3d/index.js +1 -1
- package/esm/charts/funnel-3d/interface.js +1 -1
- package/esm/charts/funnel-3d/series-spec-transformer.js +1 -1
- package/esm/charts/funnel-3d/series.js +1 -1
- package/esm/charts/funnel-3d/theme.js +1 -1
- package/esm/charts/histogram-3d/chart.js +1 -1
- package/esm/components/bar-link/bar-link.js +1 -1
- package/esm/components/bar-link/constant.js +1 -1
- package/esm/components/bar-link/index.js +1 -1
- package/esm/components/bar-link/type.js +1 -1
- package/esm/components/bar-link/util.js +1 -1
- package/esm/components/bar-regression-line/index.js +1 -1
- package/esm/components/bar-regression-line/type.js +1 -1
- package/esm/components/extension-mark-sync-state/extension-mark-sync-state.d.ts +16 -0
- package/esm/components/extension-mark-sync-state/extension-mark-sync-state.js +73 -0
- package/esm/components/extension-mark-sync-state/extension-mark-sync-state.js.map +1 -0
- package/esm/components/extension-mark-sync-state/index.d.ts +2 -0
- package/esm/components/extension-mark-sync-state/index.js +4 -0
- package/esm/components/extension-mark-sync-state/index.js.map +1 -0
- package/esm/components/extension-mark-sync-state/type.d.ts +11 -0
- package/esm/components/extension-mark-sync-state/type.js +2 -0
- package/esm/components/extension-mark-sync-state/type.js.map +1 -0
- package/esm/components/histogram-regression-line/index.js +1 -1
- package/esm/components/histogram-regression-line/type.js +1 -2
- package/esm/components/map-label/index.js +1 -1
- package/esm/components/map-label/layout.js +1 -1
- package/esm/components/map-label/map-label-transformer.js +1 -1
- package/esm/components/map-label/map-label.js +1 -1
- package/esm/components/map-label/theme.js +1 -1
- package/esm/components/map-label/type.js +1 -1
- package/esm/components/regression-line/index.js +1 -1
- package/esm/components/regression-line/regression-line.js +1 -1
- package/esm/components/regression-line/type.js +1 -1
- package/esm/components/scatter-regression-line/index.js +1 -1
- package/esm/components/scatter-regression-line/type.js +1 -1
- package/esm/components/series-break/constant.js +1 -1
- package/esm/components/series-break/index.js +1 -1
- package/esm/components/series-break/series-break.js +1 -1
- package/esm/components/series-break/type.js +1 -1
- package/esm/components/series-break/util.js +1 -2
- package/esm/components/series-label/constant.js +1 -1
- package/esm/components/series-label/index.js +1 -1
- package/esm/components/series-label/series-label.js +1 -1
- package/esm/components/series-label/type.js +1 -1
- package/esm/components/series-label/util.js +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +3 -1
- package/esm/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -10,5 +10,4 @@ const layout_1 = require("../3d/layout"), plugin_1 = require("../3d/plugin"), ba
|
|
|
10
10
|
(0, symlog_axis_1.registerCartesianSymlogAxis3d)(), (0, log_axis_1.registerCartesianLogAxis3d)();
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
exports.registerAxis3dPlugin = registerAxis3dPlugin;
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
|
13
|
+
exports.registerAxis3dPlugin = registerAxis3dPlugin;
|
|
@@ -20,4 +20,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
20
20
|
}), __exportStar(require("./chart"), exports), __exportStar(require("./chart-spec-transformer"), exports),
|
|
21
21
|
__exportStar(require("./interface"), exports), __exportStar(require("./series"), exports),
|
|
22
22
|
__exportStar(require("./series-spec-transformer"), exports);
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -21,4 +21,4 @@ class CandlestickChartSpecTransformer extends vchart_1.CartesianChartSpecTransfo
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
exports.CandlestickChartSpecTransformer = CandlestickChartSpecTransformer;
|
|
24
|
-
//# sourceMappingURL=candlestick-transformer.js.map
|
|
24
|
+
//# sourceMappingURL=candlestick-transformer.js.map
|
|
@@ -22,4 +22,5 @@ const registerCandlestickChart = () => {
|
|
|
22
22
|
(0, candlestick_1.registerCandlestickSeries)(), vchart_1.Factory.registerChart(CandlestickChart.type, CandlestickChart);
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
exports.registerCandlestickChart = registerCandlestickChart;
|
|
25
|
+
exports.registerCandlestickChart = registerCandlestickChart;
|
|
26
|
+
//# sourceMappingURL=candlestick.js.map
|
|
@@ -20,4 +20,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
20
20
|
}), __exportStar(require("./candlestick"), exports), __exportStar(require("./interface"), exports),
|
|
21
21
|
__exportStar(require("./candlestick-transformer"), exports), __exportStar(require("./series/candlestick"), exports),
|
|
22
22
|
__exportStar(require("./util"), exports);
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -7,4 +7,4 @@ function transformCandlestickSeriesSpec(spec) {
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: !0
|
|
9
9
|
}), exports.transformCandlestickSeriesSpec = void 0, exports.transformCandlestickSeriesSpec = transformCandlestickSeriesSpec;
|
|
10
|
-
//# sourceMappingURL=util.js.map
|
|
10
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -201,4 +201,4 @@ class CombinationCandlestickChartSpecTransformer extends vchart_1.CartesianChart
|
|
|
201
201
|
}
|
|
202
202
|
|
|
203
203
|
exports.CombinationCandlestickChartSpecTransformer = CombinationCandlestickChartSpecTransformer;
|
|
204
|
-
//# sourceMappingURL=combination-candlestick-transformer.js.map
|
|
204
|
+
//# sourceMappingURL=combination-candlestick-transformer.js.map
|
|
@@ -19,4 +19,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
19
19
|
value: !0
|
|
20
20
|
}), __exportStar(require("./combination-candlestick"), exports), __exportStar(require("./interface"), exports),
|
|
21
21
|
__exportStar(require("./constant"), exports);
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -193,5 +193,5 @@ function addFunnelBackgroundMark(funnelBackground) {
|
|
|
193
193
|
});
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
+
exports.ConversionFunnelChartSpecTransformer = ConversionFunnelChartSpecTransformer;
|
|
196
197
|
//# sourceMappingURL=conversion-funnel-transformer.js.map
|
|
197
|
-
exports.ConversionFunnelChartSpecTransformer = ConversionFunnelChartSpecTransformer;
|
|
@@ -18,4 +18,4 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
20
|
}), __exportStar(require("./interface"), exports), __exportStar(require("./conversion-funnel"), exports);
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -21,4 +21,5 @@ const registerFunnel3dChart = () => {
|
|
|
21
21
|
(0, layout_1.registerLayout3d)(), (0, series_1.registerFunnel3dSeries)(), vchart_1.Factory.registerChart(Funnel3dChart.type, Funnel3dChart);
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
exports.registerFunnel3dChart = registerFunnel3dChart;
|
|
24
|
+
exports.registerFunnel3dChart = registerFunnel3dChart;
|
|
25
|
+
//# sourceMappingURL=chart.js.map
|
|
@@ -19,4 +19,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
19
19
|
value: !0
|
|
20
20
|
}), __exportStar(require("./chart"), exports), __exportStar(require("./series"), exports),
|
|
21
21
|
__exportStar(require("./series-spec-transformer"), exports), __exportStar(require("./interface"), exports);
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -13,4 +13,4 @@ class Funnel3dSeriesSpecTransformer extends vchart_1.FunnelSeriesSpecTransformer
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
exports.Funnel3dSeriesSpecTransformer = Funnel3dSeriesSpecTransformer;
|
|
16
|
-
//# sourceMappingURL=series-spec-transformer.js.map
|
|
16
|
+
//# sourceMappingURL=series-spec-transformer.js.map
|
|
@@ -180,4 +180,4 @@ function appendBarLinkConfig(rawSpec, barLinkSpec) {
|
|
|
180
180
|
|
|
181
181
|
exports.groupBarsByFields = groupBarsByFields, exports.getLinkData = getLinkData,
|
|
182
182
|
exports.getBarLinkConfig = getBarLinkConfig, exports.appendBarLinkConfig = appendBarLinkConfig;
|
|
183
|
-
//# sourceMappingURL=util.js.map
|
|
183
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -84,4 +84,4 @@ function appendBarRegressionLineConfig(chartSpec, spec) {
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
exports.getBarRegressionLineConfig = getBarRegressionLineConfig, exports.appendBarRegressionLineConfig = appendBarRegressionLineConfig;
|
|
87
|
-
//# sourceMappingURL=index.js.map
|
|
87
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IChartPlugin, type IChartPluginService, BasePlugin } from '@visactor/vchart';
|
|
2
|
+
export declare class ExtensionMarkSyncStatePlugin extends BasePlugin<IChartPluginService> implements IChartPlugin {
|
|
3
|
+
static readonly pluginType: 'chart';
|
|
4
|
+
static readonly type: string;
|
|
5
|
+
readonly type: string;
|
|
6
|
+
private _unsubscribeAfterRender?;
|
|
7
|
+
private _subscribedEvent?;
|
|
8
|
+
constructor();
|
|
9
|
+
onAfterInitChart(service: IChartPluginService, chartSpec: any): void;
|
|
10
|
+
release(): void;
|
|
11
|
+
private _detectSyncState;
|
|
12
|
+
private _hasExtensionMarkWithSyncState;
|
|
13
|
+
private _syncStates;
|
|
14
|
+
private _syncSeriesStates;
|
|
15
|
+
}
|
|
16
|
+
export declare const registerExtensionMarkSyncStatePlugin: () => void;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.registerExtensionMarkSyncStatePlugin = exports.ExtensionMarkSyncStatePlugin = void 0;
|
|
6
|
+
|
|
7
|
+
const vchart_1 = require("@visactor/vchart"), EXTENSION_MARK_SYNC_STATE_PLUGIN_TYPE = "ExtensionMarkSyncStatePlugin";
|
|
8
|
+
|
|
9
|
+
class ExtensionMarkSyncStatePlugin extends vchart_1.BasePlugin {
|
|
10
|
+
constructor() {
|
|
11
|
+
super("ExtensionMarkSyncStatePlugin"), this.type = "ExtensionMarkSyncStatePlugin";
|
|
12
|
+
}
|
|
13
|
+
onAfterInitChart(service, chartSpec) {
|
|
14
|
+
var _a;
|
|
15
|
+
if (!this._detectSyncState(chartSpec)) return;
|
|
16
|
+
const chart = service.globalInstance.getChart();
|
|
17
|
+
if (!chart) return;
|
|
18
|
+
const event = chart.getEvent();
|
|
19
|
+
if (this._subscribedEvent === event) return;
|
|
20
|
+
null === (_a = this._unsubscribeAfterRender) || void 0 === _a || _a.call(this);
|
|
21
|
+
const handler = () => this._syncStates();
|
|
22
|
+
event.on(vchart_1.ChartEvent.afterRender, handler), this._subscribedEvent = event,
|
|
23
|
+
this._unsubscribeAfterRender = () => {
|
|
24
|
+
event.off(vchart_1.ChartEvent.afterRender, handler), this._subscribedEvent = void 0;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
release() {
|
|
28
|
+
var _a;
|
|
29
|
+
null === (_a = this._unsubscribeAfterRender) || void 0 === _a || _a.call(this),
|
|
30
|
+
super.release();
|
|
31
|
+
}
|
|
32
|
+
_detectSyncState(chartSpec) {
|
|
33
|
+
const seriesSpecs = null == chartSpec ? void 0 : chartSpec.series;
|
|
34
|
+
return !!(null == seriesSpecs ? void 0 : seriesSpecs.some((s => this._hasExtensionMarkWithSyncState(s.extensionMark)))) || this._hasExtensionMarkWithSyncState(null == chartSpec ? void 0 : chartSpec.extensionMark);
|
|
35
|
+
}
|
|
36
|
+
_hasExtensionMarkWithSyncState(extensionMarks) {
|
|
37
|
+
return !!(null == extensionMarks ? void 0 : extensionMarks.some((m => "group" !== m.type && m.syncState)));
|
|
38
|
+
}
|
|
39
|
+
_syncStates() {
|
|
40
|
+
var _a;
|
|
41
|
+
const chart = null === (_a = this.service) || void 0 === _a ? void 0 : _a.globalInstance.getChart();
|
|
42
|
+
chart && chart.getAllSeries().forEach((series => {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
const syncSpecs = null === (_b = null === (_a = series.getSpec()) || void 0 === _a ? void 0 : _a.extensionMark) || void 0 === _b ? void 0 : _b.filter((m => "group" !== m.type && m.syncState));
|
|
45
|
+
(null == syncSpecs ? void 0 : syncSpecs.length) && this._syncSeriesStates(series, syncSpecs);
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
_syncSeriesStates(series, extensionMarkSpecs) {
|
|
49
|
+
const mainGraphicByKey = new Map;
|
|
50
|
+
if (series.getActiveMarks().forEach((mark => {
|
|
51
|
+
mark.getGraphics().forEach((g => {
|
|
52
|
+
var _a;
|
|
53
|
+
const key = null === (_a = g.context) || void 0 === _a ? void 0 : _a.key;
|
|
54
|
+
(0, vchart_1.isValid)(key) && mainGraphicByKey.set(String(key), g);
|
|
55
|
+
}));
|
|
56
|
+
})), 0 === mainGraphicByKey.size) return;
|
|
57
|
+
const namePrefix = `${series.type}_${series.id}_extensionMark`;
|
|
58
|
+
extensionMarkSpecs.forEach(((spec, i) => {
|
|
59
|
+
const markName = (0, vchart_1.isValid)(spec.name) ? `${spec.name}` : `${namePrefix}_${i}`, extMark = series.getMarkInName(markName);
|
|
60
|
+
extMark && extMark.getGraphics().forEach((extGraphic => {
|
|
61
|
+
var _a;
|
|
62
|
+
const key = null === (_a = extGraphic.context) || void 0 === _a ? void 0 : _a.key;
|
|
63
|
+
if (!(0, vchart_1.isValid)(key)) return;
|
|
64
|
+
const mainGraphic = mainGraphicByKey.get(String(key));
|
|
65
|
+
if (!mainGraphic) return;
|
|
66
|
+
const currentStates = mainGraphic.currentStates;
|
|
67
|
+
(null == currentStates ? void 0 : currentStates.length) ? extGraphic.useStates(currentStates) : extGraphic.clearStates();
|
|
68
|
+
}));
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
exports.ExtensionMarkSyncStatePlugin = ExtensionMarkSyncStatePlugin, ExtensionMarkSyncStatePlugin.pluginType = "chart",
|
|
74
|
+
ExtensionMarkSyncStatePlugin.type = "ExtensionMarkSyncStatePlugin";
|
|
75
|
+
|
|
76
|
+
const registerExtensionMarkSyncStatePlugin = () => {
|
|
77
|
+
(0, vchart_1.registerChartPlugin)(ExtensionMarkSyncStatePlugin);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
exports.registerExtensionMarkSyncStatePlugin = registerExtensionMarkSyncStatePlugin;
|
|
81
|
+
//# sourceMappingURL=extension-mark-sync-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/extension-mark-sync-state/extension-mark-sync-state.ts"],"names":[],"mappings":"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","file":"extension-mark-sync-state.js","sourcesContent":["/**\n * @description ExtensionMark SyncState 插件\n *\n * 将配置了 syncState: true 的 extensionMark 的 graphics 与主 mark 的 graphics\n * 通过 context.key 配对,在 afterRender 回调中将主 mark 的当前状态同步到\n * extensionMark graphic。\n */\nimport {\n type IChartPlugin,\n type IChartPluginService,\n type ISeries,\n type IMark,\n type IMarkGraphic,\n type IEvent,\n type ISeriesSpec,\n BasePlugin,\n ChartEvent,\n registerChartPlugin,\n isValid\n} from '@visactor/vchart';\nimport type { IExtensionMarkSpecWithSyncState } from './type';\n\nconst EXTENSION_MARK_SYNC_STATE_PLUGIN_TYPE = 'ExtensionMarkSyncStatePlugin';\n\nexport class ExtensionMarkSyncStatePlugin extends BasePlugin<IChartPluginService> implements IChartPlugin {\n static readonly pluginType: 'chart' = 'chart';\n static readonly type: string = EXTENSION_MARK_SYNC_STATE_PLUGIN_TYPE;\n readonly type: string = EXTENSION_MARK_SYNC_STATE_PLUGIN_TYPE;\n\n /** 取消 afterRender 订阅的函数,release 时调用 */\n private _unsubscribeAfterRender?: () => void;\n /** 已订阅的 event 实例,chart reMake 后会更换 */\n private _subscribedEvent?: IEvent;\n\n constructor() {\n super(EXTENSION_MARK_SYNC_STATE_PLUGIN_TYPE);\n }\n\n onAfterInitChart(service: IChartPluginService, chartSpec: any) {\n if (!this._detectSyncState(chartSpec)) {\n return;\n }\n\n const chart = service.globalInstance.getChart();\n if (!chart) {\n return;\n }\n\n const event = chart.getEvent();\n\n if (this._subscribedEvent === event) {\n return;\n }\n\n this._unsubscribeAfterRender?.();\n\n const handler = () => this._syncStates();\n event.on(ChartEvent.afterRender, handler);\n this._subscribedEvent = event;\n this._unsubscribeAfterRender = () => {\n event.off(ChartEvent.afterRender, handler);\n this._subscribedEvent = undefined;\n };\n }\n\n release(): void {\n this._unsubscribeAfterRender?.();\n super.release();\n }\n\n /** 检测 chartSpec 中是否存在配置了 syncState 的 extensionMark */\n private _detectSyncState(chartSpec: any): boolean {\n const seriesSpecs = chartSpec?.series;\n if (\n seriesSpecs?.some((s: ISeriesSpec) =>\n this._hasExtensionMarkWithSyncState(s.extensionMark as IExtensionMarkSpecWithSyncState[])\n )\n ) {\n return true;\n }\n return this._hasExtensionMarkWithSyncState(chartSpec?.extensionMark);\n }\n\n private _hasExtensionMarkWithSyncState(extensionMarks: IExtensionMarkSpecWithSyncState[] | undefined): boolean {\n return !!extensionMarks?.some(m => m.type !== 'group' && m.syncState);\n }\n\n /** 将所有 series 中主 mark 的当前状态同步到对应的 extensionMark graphics */\n private _syncStates() {\n const chart = this.service?.globalInstance.getChart();\n if (!chart) {\n return;\n }\n\n chart.getAllSeries().forEach(series => {\n const syncSpecs = (series.getSpec()?.extensionMark as IExtensionMarkSpecWithSyncState[] | undefined)?.filter(\n m => m.type !== 'group' && m.syncState\n );\n if (syncSpecs?.length) {\n this._syncSeriesStates(series, syncSpecs);\n }\n });\n }\n\n /** 将单个 series 主 mark 的当前状态同步到其 extensionMark graphics */\n private _syncSeriesStates(series: ISeries, extensionMarkSpecs: IExtensionMarkSpecWithSyncState[]) {\n const mainGraphicByKey = new Map<string, IMarkGraphic>();\n series.getActiveMarks().forEach((mark: IMark) => {\n mark.getGraphics().forEach(g => {\n const key = g.context?.key;\n if (isValid(key)) {\n mainGraphicByKey.set(String(key), g);\n }\n });\n });\n\n if (mainGraphicByKey.size === 0) {\n return;\n }\n\n // 命名格式与 BaseSeries._getExtensionMarkNamePrefix 一致\n const namePrefix = `${series.type}_${series.id}_extensionMark`;\n\n extensionMarkSpecs.forEach((spec, i) => {\n const markName = isValid(spec.name) ? `${spec.name}` : `${namePrefix}_${i}`;\n const extMark = series.getMarkInName(markName);\n if (!extMark) {\n return;\n }\n\n extMark.getGraphics().forEach(extGraphic => {\n const key = extGraphic.context?.key;\n if (!isValid(key)) {\n return;\n }\n\n const mainGraphic = mainGraphicByKey.get(String(key));\n if (!mainGraphic) {\n return;\n }\n\n const currentStates = mainGraphic.currentStates;\n if (currentStates?.length) {\n extGraphic.useStates(currentStates);\n } else {\n extGraphic.clearStates();\n }\n });\n });\n }\n}\n\n/**\n * 注册 ExtensionMark SyncState 插件\n *\n * @example\n * ```ts\n * import { registerExtensionMarkSyncStatePlugin } from '@visactor/vchart-extension';\n *\n * // 在创建 VChart 实例之前注册\n * registerExtensionMarkSyncStatePlugin();\n *\n * // 在 extensionMark 配置中使用 syncState\n * const spec = {\n * type: 'bar',\n * extensionMark: [{\n * type: 'symbol',\n * dataId: 'barData',\n * syncState: true,\n * style: { ... },\n * state: {\n * highlight: { ... },\n * blur: { ... }\n * }\n * }]\n * };\n * ```\n */\nexport const registerExtensionMarkSyncStatePlugin = () => {\n registerChartPlugin(ExtensionMarkSyncStatePlugin);\n};\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
+
void 0 === k2 && (k2 = k);
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
+
enumerable: !0,
|
|
8
|
+
get: function() {
|
|
9
|
+
return m[k];
|
|
10
|
+
}
|
|
11
|
+
}), Object.defineProperty(o, k2, desc);
|
|
12
|
+
} : function(o, m, k, k2) {
|
|
13
|
+
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
+
}), __exportStar = this && this.__exportStar || function(m, exports) {
|
|
15
|
+
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
Object.defineProperty(exports, "__esModule", {
|
|
19
|
+
value: !0
|
|
20
|
+
}), exports.registerExtensionMarkSyncStatePlugin = exports.ExtensionMarkSyncStatePlugin = void 0;
|
|
21
|
+
|
|
22
|
+
var extension_mark_sync_state_1 = require("./extension-mark-sync-state");
|
|
23
|
+
|
|
24
|
+
Object.defineProperty(exports, "ExtensionMarkSyncStatePlugin", {
|
|
25
|
+
enumerable: !0,
|
|
26
|
+
get: function() {
|
|
27
|
+
return extension_mark_sync_state_1.ExtensionMarkSyncStatePlugin;
|
|
28
|
+
}
|
|
29
|
+
}), Object.defineProperty(exports, "registerExtensionMarkSyncStatePlugin", {
|
|
30
|
+
enumerable: !0,
|
|
31
|
+
get: function() {
|
|
32
|
+
return extension_mark_sync_state_1.registerExtensionMarkSyncStatePlugin;
|
|
33
|
+
}
|
|
34
|
+
}), __exportStar(require("./type"), exports);
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/extension-mark-sync-state/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yEAAiH;AAAxG,yIAAA,4BAA4B,OAAA;AAAE,iJAAA,oCAAoC,OAAA;AAC3E,yCAAuB","file":"index.js","sourcesContent":["export { ExtensionMarkSyncStatePlugin, registerExtensionMarkSyncStatePlugin } from './extension-mark-sync-state';\nexport * from './type';\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EnableMarkType } from '@visactor/vchart';
|
|
2
|
+
export interface IExtensionMarkSyncStateSpec {
|
|
3
|
+
syncState?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface IExtensionMarkSpecWithSyncState<T extends Exclude<EnableMarkType, 'group'> = any> extends IExtensionMarkSyncStateSpec {
|
|
6
|
+
type: T;
|
|
7
|
+
name?: string;
|
|
8
|
+
dataId?: string;
|
|
9
|
+
dataIndex?: number;
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/extension-mark-sync-state/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type { EnableMarkType } from '@visactor/vchart';\n\n/**\n * 扩展 extensionMark spec,增加 syncState 配置\n */\nexport interface IExtensionMarkSyncStateSpec {\n /**\n * Whether to synchronize the interactive states (e.g., hover, select) from the corresponding primary mark.\n * When enabled, the extensionMark will automatically follow state changes of the primary mark that shares\n * the same data key. Users need to configure the corresponding `state` styles to take effect.\n * 是否同步主图元的交互状态(如 hover、select 等)\n * 开启后,extensionMark 会自动同步对应主图元的状态名,需自行配置对应的 state 样式\n * @default false\n */\n syncState?: boolean;\n}\n\n/**\n * 带 syncState 能力的 extensionMark spec\n */\nexport interface IExtensionMarkSpecWithSyncState<\n T extends Exclude<EnableMarkType, 'group'> = any\n> extends IExtensionMarkSyncStateSpec {\n type: T;\n name?: string;\n dataId?: string;\n dataIndex?: number;\n [key: string]: any;\n}\n"]}
|
|
@@ -76,4 +76,4 @@ function appendHistogramRegressionLineConfig(chartSpec, spec) {
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
exports.getHistogramRegressionLineConfig = getHistogramRegressionLineConfig, exports.appendHistogramRegressionLineConfig = appendHistogramRegressionLineConfig;
|
|
79
|
-
//# sourceMappingURL=index.js.map
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -18,4 +18,4 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
20
|
}), __exportStar(require("./map-label"), exports), __exportStar(require("./type"), exports);
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -151,4 +151,4 @@ function candidatesByOrient(positions, anchor, rect, offset = 0) {
|
|
|
151
151
|
exports.bound = bound, exports.layoutByPosition = layoutByPosition, exports.layoutOuter = layoutOuter,
|
|
152
152
|
exports.layoutOuter2 = layoutOuter2, exports.placeRectByOrient = placeRectByOrient,
|
|
153
153
|
exports.candidatesByOrient = candidatesByOrient;
|
|
154
|
-
//# sourceMappingURL=layout.js.map
|
|
154
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -18,4 +18,4 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
20
|
}), __exportStar(require("./regression-line"), exports), __exportStar(require("./type"), exports);
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -100,4 +100,4 @@ function appendScatterRegressionLineConfig(chartSpec, spec) {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
exports.getScatterRegressionLineConfig = getScatterRegressionLineConfig, exports.appendScatterRegressionLineConfig = appendScatterRegressionLineConfig;
|
|
103
|
-
//# sourceMappingURL=index.js.map
|
|
103
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -46,4 +46,4 @@ Object.defineProperty(exports, "getSeriesBreakConfig", {
|
|
|
46
46
|
return util_1.appendSeriesBreakConfig;
|
|
47
47
|
}
|
|
48
48
|
}), __exportStar(require("./type"), exports), __exportStar(require("./constant"), exports);
|
|
49
|
-
//# sourceMappingURL=index.js.map
|
|
49
|
+
//# sourceMappingURL=index.js.map
|