@visactor/vchart-extension 2.0.0 → 2.0.1-alpha.1

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.
@@ -15,4 +15,5 @@ class ImageCloudChartSpecTransformer extends vchart_1.BaseChartSpecTransformer {
15
15
  }
16
16
  }
17
17
 
18
- exports.ImageCloudChartSpecTransformer = ImageCloudChartSpecTransformer;
18
+ exports.ImageCloudChartSpecTransformer = ImageCloudChartSpecTransformer;
19
+ //# sourceMappingURL=image-cloud-transformer.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("./image-cloud"), exports), __exportStar(require("./interface"), exports);
21
- //# sourceMappingURL=index.js.map
21
+ //# sourceMappingURL=index.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- //# sourceMappingURL=interface.js.map
6
+ //# sourceMappingURL=interface.js.map
@@ -49,5 +49,4 @@ const registerElementHighlightByGraphicName = () => {
49
49
  vchart_1.Factory.registerInteractionTrigger(ElementHighlightByGraphicName.type, ElementHighlightByGraphicName);
50
50
  };
51
51
 
52
- exports.registerElementHighlightByGraphicName = registerElementHighlightByGraphicName;
53
- //# sourceMappingURL=element-highlight-by-graphic-name.js.map
52
+ exports.registerElementHighlightByGraphicName = registerElementHighlightByGraphicName;
@@ -21,4 +21,4 @@ class PictogramChartSpecTransformer extends vchart_1.BaseChartSpecTransformer {
21
21
  }
22
22
 
23
23
  exports.PictogramChartSpecTransformer = PictogramChartSpecTransformer;
24
- //# sourceMappingURL=pictogram-transformer.js.map
24
+ //# sourceMappingURL=pictogram-transformer.js.map
@@ -22,4 +22,4 @@ const registerPictogramChart = () => {
22
22
  };
23
23
 
24
24
  exports.registerPictogramChart = registerPictogramChart;
25
- //# sourceMappingURL=pictogram.js.map
25
+ //# sourceMappingURL=pictogram.js.map
@@ -0,0 +1,9 @@
1
+ import type { ISequenceScatterLinkData, Endpoint } from './interface';
2
+ export declare function getSeqScatterChartData(task_type: string): {
3
+ chartData: ISequenceScatterLinkData;
4
+ scope: number[];
5
+ label_color_dict: {
6
+ [key: string]: string;
7
+ };
8
+ };
9
+ export declare function selectEdges(chartData: ISequenceScatterLinkData, x: number, y: number): Endpoint[];
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ var __importDefault = this && this.__importDefault || function(mod) {
4
+ return mod && mod.__esModule ? mod : {
5
+ default: mod
6
+ };
7
+ };
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: !0
11
+ }), exports.selectEdges = exports.getSeqScatterChartData = void 0;
12
+
13
+ const data_json_1 = __importDefault(require("../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/data.json")), info_json_1 = __importDefault(require("../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/info.json")), data_json_2 = __importDefault(require("../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/data.json")), info_json_2 = __importDefault(require("../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/info.json"));
14
+
15
+ function getSeqScatterChartData(task_type) {
16
+ const {scope: scope, label_index: label_index, label_text: label_text, label_color_dict: label_color_dict} = getBasicSettings(task_type);
17
+ return {
18
+ chartData: constructChartData(task_type, label_index, label_text, label_color_dict),
19
+ scope: scope,
20
+ label_color_dict: label_color_dict
21
+ };
22
+ }
23
+
24
+ function getBasicSettings(task_type) {
25
+ const training_info = "neighborhood" === task_type ? info_json_1.default : info_json_2.default, scope = "neighborhood" === task_type ? [ -9, -9, 6, 6 ] : [ -8, -8, 8, 8 ], label_index = training_info.label_index, label_text = training_info.label_text, label_color_list = training_info.label_color, label_color_dict = {};
26
+ for (let i = 0; i < label_color_list.length; i++) {
27
+ const c = label_color_list[i];
28
+ label_color_dict[label_text[i]] = `rgb(${c[0]},${c[1]},${c[2]})`;
29
+ }
30
+ return {
31
+ scope: scope,
32
+ label_index: label_index,
33
+ label_text: label_text,
34
+ label_color_dict: label_color_dict
35
+ };
36
+ }
37
+
38
+ function constructChartData(task_type, label_index, label_text, label_color_dict) {
39
+ const original_data = "neighborhood" === task_type ? data_json_1.default : data_json_2.default, chartData = {};
40
+ return Object.keys(original_data).forEach((epoch => {
41
+ let intra_similarity, inter_similarity;
42
+ if (chartData[epoch] = {
43
+ nodes: [],
44
+ edges: []
45
+ }, original_data[epoch].projection.forEach(((pos, id) => {
46
+ let conf = 1, pred = label_text[label_index[id]];
47
+ "classification" === task_type && (conf = original_data[epoch].confidence[id], pred = label_text[original_data[epoch].prediction[id]]),
48
+ chartData[epoch].nodes.push({
49
+ id: id,
50
+ x: pos[0],
51
+ y: pos[1],
52
+ label: label_text[label_index[id]],
53
+ prediction: pred,
54
+ confidence: conf
55
+ });
56
+ })), "neighborhood" === task_type) {
57
+ intra_similarity = original_data[epoch].intra_similarity, inter_similarity = original_data[epoch].inter_similarity;
58
+ let i = 0;
59
+ original_data[epoch].projection.forEach(((pos, id) => {
60
+ intra_similarity[id].forEach((neighbor => {
61
+ chartData[epoch].edges.push({
62
+ id: i,
63
+ x0: pos[0],
64
+ y0: pos[1],
65
+ x1: original_data[epoch].projection[neighbor][0],
66
+ y1: original_data[epoch].projection[neighbor][1],
67
+ type: "same_type",
68
+ color: label_color_dict[label_text[label_index[id]]]
69
+ }), i++;
70
+ })), inter_similarity[id].forEach((neighbor => {
71
+ chartData[epoch].edges.push({
72
+ id: i,
73
+ x0: pos[0],
74
+ y0: pos[1],
75
+ x1: original_data[epoch].projection[neighbor][0],
76
+ y1: original_data[epoch].projection[neighbor][1],
77
+ type: "cross_type",
78
+ color: label_color_dict[label_text[label_index[neighbor]]]
79
+ }), i++;
80
+ }));
81
+ }));
82
+ }
83
+ })), chartData;
84
+ }
85
+
86
+ function selectEdges(chartData, x, y) {
87
+ const endpoints = [];
88
+ return Object.keys(chartData).forEach((iter => {
89
+ chartData[iter].edges.forEach((edge => {
90
+ x === edge.x0 && y === edge.y0 && (endpoints.push({
91
+ edgeId: edge.id,
92
+ x: edge.x0,
93
+ y: edge.y0,
94
+ type: edge.type,
95
+ color: edge.color
96
+ }), endpoints.push({
97
+ edgeId: edge.id,
98
+ x: edge.x1,
99
+ y: edge.y1,
100
+ type: edge.type,
101
+ color: edge.color
102
+ }));
103
+ }));
104
+ })), endpoints;
105
+ }
106
+
107
+ exports.getSeqScatterChartData = getSeqScatterChartData, exports.selectEdges = selectEdges;
108
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/charts/sequence-scatter-link/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import trainingData1 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/data.json';\nimport trainingInfo1 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/info.json';\nimport trainingData2 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/data.json';\nimport trainingInfo2 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/info.json';\nimport type { ISequenceScatterLinkData, OriginalData, TrainingInfo, Endpoint } from './interface';\n\nexport function getSeqScatterChartData(task_type: string) {\n // get basic settings\n const { scope, label_index, label_text, label_color_dict } = getBasicSettings(task_type);\n\n // construct chart data\n const chartData = constructChartData(task_type, label_index, label_text, label_color_dict);\n\n return { chartData, scope, label_color_dict };\n}\n\n/**\n * 获取基本设置,包括画布范围、标签、标签文本和标签颜色\n */\nfunction getBasicSettings(task_type: string) {\n const training_info: TrainingInfo = task_type === 'neighborhood' ? trainingInfo1 : trainingInfo2;\n const scope = task_type === 'neighborhood' ? [-9, -9, 6, 6] : [-8, -8, 8, 8];\n\n const label_index = training_info.label_index;\n const label_text = training_info.label_text;\n const label_color_list = training_info.label_color;\n const label_color_dict: { [key: string]: string } = {}; // text -> rgb\n\n for (let i = 0; i < label_color_list.length; i++) {\n const c = label_color_list[i];\n label_color_dict[label_text[i]] = `rgb(${c[0]},${c[1]},${c[2]})`;\n }\n\n return { scope, label_index, label_text, label_color_dict };\n}\n\n/**\n * 构造图表数据,包括节点和边\n */\nfunction constructChartData(\n task_type: string,\n label_index: number[],\n label_text: string[],\n label_color_dict: { [key: string]: string }\n) {\n const original_data: OriginalData = task_type === 'neighborhood' ? trainingData1 : (trainingData2 as OriginalData);\n const chartData: ISequenceScatterLinkData = {};\n\n Object.keys(original_data).forEach(epoch => {\n chartData[epoch] = {\n nodes: [],\n edges: []\n };\n\n // fill in nodes\n original_data[epoch].projection.forEach((pos, id) => {\n let conf = 1;\n let pred = label_text[label_index[id]];\n if (task_type === 'classification') {\n conf = original_data[epoch].confidence[id];\n pred = label_text[original_data[epoch].prediction[id]];\n }\n\n chartData[epoch].nodes.push({\n id: id, // unique identification of a point\n x: pos[0],\n y: pos[1],\n label: label_text[label_index[id]],\n prediction: pred,\n confidence: conf\n });\n });\n\n // fill in edges\n let intra_similarity: number[][];\n let inter_similarity: number[][];\n if (task_type === 'neighborhood') {\n intra_similarity = original_data[epoch].intra_similarity;\n inter_similarity = original_data[epoch].inter_similarity;\n\n let i = 0;\n original_data[epoch].projection.forEach((pos, id) => {\n intra_similarity[id].forEach(neighbor => {\n chartData[epoch].edges.push({\n id: i, // unique identification of an edge\n x0: pos[0],\n y0: pos[1],\n x1: original_data[epoch].projection[neighbor][0],\n y1: original_data[epoch].projection[neighbor][1],\n type: 'same_type',\n color: label_color_dict[label_text[label_index[id]]]\n });\n i++;\n });\n inter_similarity[id].forEach(neighbor => {\n chartData[epoch].edges.push({\n id: i, // unique identification of an edge\n x0: pos[0],\n y0: pos[1],\n x1: original_data[epoch].projection[neighbor][0],\n y1: original_data[epoch].projection[neighbor][1],\n type: 'cross_type',\n color: label_color_dict[label_text[label_index[neighbor]]]\n });\n i++;\n });\n });\n }\n });\n\n return chartData;\n}\n\n/**\n * 选择边,根据给定的x和y坐标,返回所有与该点相关的边,构造边的端点用于绘制线段\n */\nexport function selectEdges(chartData: ISequenceScatterLinkData, x: number, y: number) {\n const endpoints: Endpoint[] = [];\n Object.keys(chartData).forEach(iter => {\n const edges = chartData[iter].edges;\n edges.forEach(edge => {\n if (x === edge.x0 && y === edge.y0) {\n endpoints.push({ edgeId: edge.id, x: edge.x0, y: edge.y0, type: edge.type, color: edge.color });\n endpoints.push({ edgeId: edge.id, x: edge.x1, y: edge.y1, type: edge.type, color: edge.color });\n }\n });\n });\n return endpoints;\n}\n"]}
@@ -7,4 +7,5 @@ export class ImageCloudChartSpecTransformer extends BaseChartSpecTransformer {
7
7
  _getDefaultSeriesSpec(spec) {
8
8
  return super._getDefaultSeriesSpec(spec, [ "urlField", "nameField", "valueField", "imageSize", "imageSizeRange", "ratio", "maskShape", "imageMask", "layoutConfig", "image" ]);
9
9
  }
10
- }
10
+ }
11
+ //# sourceMappingURL=image-cloud-transformer.js.map
@@ -1,4 +1,4 @@
1
1
  export * from "./image-cloud";
2
2
 
3
3
  export * from "./interface";
4
- //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
1
  export { };
2
- //# sourceMappingURL=interface.js.map
2
+ //# sourceMappingURL=interface.js.map
@@ -45,5 +45,4 @@ ElementHighlightByGraphicName.type = type;
45
45
 
46
46
  export const registerElementHighlightByGraphicName = () => {
47
47
  Factory.registerInteractionTrigger(ElementHighlightByGraphicName.type, ElementHighlightByGraphicName);
48
- };
49
- //# sourceMappingURL=element-highlight-by-graphic-name.js.map
48
+ };
@@ -15,4 +15,4 @@ export class PictogramChartSpecTransformer extends BaseChartSpecTransformer {
15
15
  })), super.transformSeriesSpec(spec);
16
16
  }
17
17
  }
18
- //# sourceMappingURL=pictogram-transformer.js.map
18
+ //# sourceMappingURL=pictogram-transformer.js.map
@@ -19,4 +19,4 @@ PictogramChart.transformerConstructor = PictogramChartSpecTransformer;
19
19
  export const registerPictogramChart = () => {
20
20
  registerMarkTooltipProcessor(), registerPictogramSeries(), Factory.registerChart(PictogramChart.type, PictogramChart);
21
21
  };
22
- //# sourceMappingURL=pictogram.js.map
22
+ //# sourceMappingURL=pictogram.js.map
@@ -0,0 +1,9 @@
1
+ import type { ISequenceScatterLinkData, Endpoint } from './interface';
2
+ export declare function getSeqScatterChartData(task_type: string): {
3
+ chartData: ISequenceScatterLinkData;
4
+ scope: number[];
5
+ label_color_dict: {
6
+ [key: string]: string;
7
+ };
8
+ };
9
+ export declare function selectEdges(chartData: ISequenceScatterLinkData, x: number, y: number): Endpoint[];
@@ -0,0 +1,100 @@
1
+ import trainingData1 from "../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/data.json";
2
+
3
+ import trainingInfo1 from "../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/info.json";
4
+
5
+ import trainingData2 from "../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/data.json";
6
+
7
+ import trainingInfo2 from "../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/info.json";
8
+
9
+ export function getSeqScatterChartData(task_type) {
10
+ const {scope: scope, label_index: label_index, label_text: label_text, label_color_dict: label_color_dict} = getBasicSettings(task_type);
11
+ return {
12
+ chartData: constructChartData(task_type, label_index, label_text, label_color_dict),
13
+ scope: scope,
14
+ label_color_dict: label_color_dict
15
+ };
16
+ }
17
+
18
+ function getBasicSettings(task_type) {
19
+ const training_info = "neighborhood" === task_type ? trainingInfo1 : trainingInfo2, scope = "neighborhood" === task_type ? [ -9, -9, 6, 6 ] : [ -8, -8, 8, 8 ], label_index = training_info.label_index, label_text = training_info.label_text, label_color_list = training_info.label_color, label_color_dict = {};
20
+ for (let i = 0; i < label_color_list.length; i++) {
21
+ const c = label_color_list[i];
22
+ label_color_dict[label_text[i]] = `rgb(${c[0]},${c[1]},${c[2]})`;
23
+ }
24
+ return {
25
+ scope: scope,
26
+ label_index: label_index,
27
+ label_text: label_text,
28
+ label_color_dict: label_color_dict
29
+ };
30
+ }
31
+
32
+ function constructChartData(task_type, label_index, label_text, label_color_dict) {
33
+ const original_data = "neighborhood" === task_type ? trainingData1 : trainingData2, chartData = {};
34
+ return Object.keys(original_data).forEach((epoch => {
35
+ let intra_similarity, inter_similarity;
36
+ if (chartData[epoch] = {
37
+ nodes: [],
38
+ edges: []
39
+ }, original_data[epoch].projection.forEach(((pos, id) => {
40
+ let conf = 1, pred = label_text[label_index[id]];
41
+ "classification" === task_type && (conf = original_data[epoch].confidence[id], pred = label_text[original_data[epoch].prediction[id]]),
42
+ chartData[epoch].nodes.push({
43
+ id: id,
44
+ x: pos[0],
45
+ y: pos[1],
46
+ label: label_text[label_index[id]],
47
+ prediction: pred,
48
+ confidence: conf
49
+ });
50
+ })), "neighborhood" === task_type) {
51
+ intra_similarity = original_data[epoch].intra_similarity, inter_similarity = original_data[epoch].inter_similarity;
52
+ let i = 0;
53
+ original_data[epoch].projection.forEach(((pos, id) => {
54
+ intra_similarity[id].forEach((neighbor => {
55
+ chartData[epoch].edges.push({
56
+ id: i,
57
+ x0: pos[0],
58
+ y0: pos[1],
59
+ x1: original_data[epoch].projection[neighbor][0],
60
+ y1: original_data[epoch].projection[neighbor][1],
61
+ type: "same_type",
62
+ color: label_color_dict[label_text[label_index[id]]]
63
+ }), i++;
64
+ })), inter_similarity[id].forEach((neighbor => {
65
+ chartData[epoch].edges.push({
66
+ id: i,
67
+ x0: pos[0],
68
+ y0: pos[1],
69
+ x1: original_data[epoch].projection[neighbor][0],
70
+ y1: original_data[epoch].projection[neighbor][1],
71
+ type: "cross_type",
72
+ color: label_color_dict[label_text[label_index[neighbor]]]
73
+ }), i++;
74
+ }));
75
+ }));
76
+ }
77
+ })), chartData;
78
+ }
79
+
80
+ export function selectEdges(chartData, x, y) {
81
+ const endpoints = [];
82
+ return Object.keys(chartData).forEach((iter => {
83
+ chartData[iter].edges.forEach((edge => {
84
+ x === edge.x0 && y === edge.y0 && (endpoints.push({
85
+ edgeId: edge.id,
86
+ x: edge.x0,
87
+ y: edge.y0,
88
+ type: edge.type,
89
+ color: edge.color
90
+ }), endpoints.push({
91
+ edgeId: edge.id,
92
+ x: edge.x1,
93
+ y: edge.y1,
94
+ type: edge.type,
95
+ color: edge.color
96
+ }));
97
+ }));
98
+ })), endpoints;
99
+ }
100
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/charts/sequence-scatter-link/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import trainingData1 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/data.json';\nimport trainingInfo1 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process1/info.json';\nimport trainingData2 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/data.json';\nimport trainingInfo2 from '../../../__tests__/runtime/browser/data/sequence-scatter/Training_process2/info.json';\nimport type { ISequenceScatterLinkData, OriginalData, TrainingInfo, Endpoint } from './interface';\n\nexport function getSeqScatterChartData(task_type: string) {\n // get basic settings\n const { scope, label_index, label_text, label_color_dict } = getBasicSettings(task_type);\n\n // construct chart data\n const chartData = constructChartData(task_type, label_index, label_text, label_color_dict);\n\n return { chartData, scope, label_color_dict };\n}\n\n/**\n * 获取基本设置,包括画布范围、标签、标签文本和标签颜色\n */\nfunction getBasicSettings(task_type: string) {\n const training_info: TrainingInfo = task_type === 'neighborhood' ? trainingInfo1 : trainingInfo2;\n const scope = task_type === 'neighborhood' ? [-9, -9, 6, 6] : [-8, -8, 8, 8];\n\n const label_index = training_info.label_index;\n const label_text = training_info.label_text;\n const label_color_list = training_info.label_color;\n const label_color_dict: { [key: string]: string } = {}; // text -> rgb\n\n for (let i = 0; i < label_color_list.length; i++) {\n const c = label_color_list[i];\n label_color_dict[label_text[i]] = `rgb(${c[0]},${c[1]},${c[2]})`;\n }\n\n return { scope, label_index, label_text, label_color_dict };\n}\n\n/**\n * 构造图表数据,包括节点和边\n */\nfunction constructChartData(\n task_type: string,\n label_index: number[],\n label_text: string[],\n label_color_dict: { [key: string]: string }\n) {\n const original_data: OriginalData = task_type === 'neighborhood' ? trainingData1 : (trainingData2 as OriginalData);\n const chartData: ISequenceScatterLinkData = {};\n\n Object.keys(original_data).forEach(epoch => {\n chartData[epoch] = {\n nodes: [],\n edges: []\n };\n\n // fill in nodes\n original_data[epoch].projection.forEach((pos, id) => {\n let conf = 1;\n let pred = label_text[label_index[id]];\n if (task_type === 'classification') {\n conf = original_data[epoch].confidence[id];\n pred = label_text[original_data[epoch].prediction[id]];\n }\n\n chartData[epoch].nodes.push({\n id: id, // unique identification of a point\n x: pos[0],\n y: pos[1],\n label: label_text[label_index[id]],\n prediction: pred,\n confidence: conf\n });\n });\n\n // fill in edges\n let intra_similarity: number[][];\n let inter_similarity: number[][];\n if (task_type === 'neighborhood') {\n intra_similarity = original_data[epoch].intra_similarity;\n inter_similarity = original_data[epoch].inter_similarity;\n\n let i = 0;\n original_data[epoch].projection.forEach((pos, id) => {\n intra_similarity[id].forEach(neighbor => {\n chartData[epoch].edges.push({\n id: i, // unique identification of an edge\n x0: pos[0],\n y0: pos[1],\n x1: original_data[epoch].projection[neighbor][0],\n y1: original_data[epoch].projection[neighbor][1],\n type: 'same_type',\n color: label_color_dict[label_text[label_index[id]]]\n });\n i++;\n });\n inter_similarity[id].forEach(neighbor => {\n chartData[epoch].edges.push({\n id: i, // unique identification of an edge\n x0: pos[0],\n y0: pos[1],\n x1: original_data[epoch].projection[neighbor][0],\n y1: original_data[epoch].projection[neighbor][1],\n type: 'cross_type',\n color: label_color_dict[label_text[label_index[neighbor]]]\n });\n i++;\n });\n });\n }\n });\n\n return chartData;\n}\n\n/**\n * 选择边,根据给定的x和y坐标,返回所有与该点相关的边,构造边的端点用于绘制线段\n */\nexport function selectEdges(chartData: ISequenceScatterLinkData, x: number, y: number) {\n const endpoints: Endpoint[] = [];\n Object.keys(chartData).forEach(iter => {\n const edges = chartData[iter].edges;\n edges.forEach(edge => {\n if (x === edge.x0 && y === edge.y0) {\n endpoints.push({ edgeId: edge.id, x: edge.x0, y: edge.y0, type: edge.type, color: edge.color });\n endpoints.push({ edgeId: edge.id, x: edge.x1, y: edge.y1, type: edge.type, color: edge.color });\n }\n });\n });\n return endpoints;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vchart-extension",
3
- "version": "2.0.0",
3
+ "version": "2.0.1-alpha.1",
4
4
  "description": "vchart extension package, including extension plugins and components",
5
5
  "sideEffects": false,
6
6
  "main": "cjs/index.js",
@@ -12,14 +12,14 @@
12
12
  "build"
13
13
  ],
14
14
  "dependencies": {
15
- "@visactor/vrender-core": "1.0.3",
16
- "@visactor/vrender-kits": "1.0.3",
17
- "@visactor/vrender-components": "1.0.3",
18
- "@visactor/vrender-animate": "1.0.3",
15
+ "@visactor/vrender-core": "1.0.4",
16
+ "@visactor/vrender-kits": "1.0.4",
17
+ "@visactor/vrender-components": "1.0.4",
18
+ "@visactor/vrender-animate": "1.0.4",
19
19
  "@visactor/vutils": "~1.0.6",
20
20
  "@visactor/vdataset": "~1.0.6",
21
21
  "@visactor/vlayouts": "~1.0.6",
22
- "@visactor/vchart": "2.0.0"
22
+ "@visactor/vchart": "2.0.1-alpha.1"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@rushstack/eslint-patch": "~1.1.4",
@@ -44,8 +44,8 @@
44
44
  "rollup-plugin-sizes": "1.0.5",
45
45
  "rollup": "3.20.5",
46
46
  "@internal/bundler": "0.0.1",
47
- "@internal/ts-config": "0.0.1",
48
- "@internal/eslint-config": "0.0.1"
47
+ "@internal/eslint-config": "0.0.1",
48
+ "@internal/ts-config": "0.0.1"
49
49
  },
50
50
  "publishConfig": {
51
51
  "access": "public",