From 57b11a93f7e9695d357e485284af709bfa875408 Mon Sep 17 00:00:00 2001 From: Yanyan Wang Date: Fri, 6 Jan 2023 17:01:22 +0800 Subject: [PATCH] fix: unexpected error occurs when points of a hull are all duplicated; (#4192) --- CHANGELOG.md | 4 ++++ packages/core/package.json | 2 +- packages/core/src/element/hull/convexHull.ts | 7 +++++++ packages/core/src/global.ts | 2 +- packages/element/package.json | 4 ++-- packages/g6/package.json | 4 ++-- packages/g6/src/index.ts | 4 ++-- packages/pc/package.json | 8 ++++---- packages/pc/src/global.ts | 2 +- packages/plugin/package.json | 6 +++--- packages/site/package.json | 2 +- 11 files changed, 28 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ccc73a5db3..dec4eab4b65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # ChangeLog +### 4.8.3 + +- fix: unexpected error occurs when points of a hull are all duplicated; + ### 4.8.2 - perf: add updateShape function for donut node, closes: #4091; diff --git a/packages/core/package.json b/packages/core/package.json index 678fe429795..21d561c5e8c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@antv/g6-core", - "version": "0.8.2", + "version": "0.8.3", "description": "A Graph Visualization Framework in JavaScript", "keywords": [ "antv", diff --git a/packages/core/src/element/hull/convexHull.ts b/packages/core/src/element/hull/convexHull.ts index d8d2b5ac874..48536b31a78 100644 --- a/packages/core/src/element/hull/convexHull.ts +++ b/packages/core/src/element/hull/convexHull.ts @@ -19,6 +19,13 @@ export const genConvexHull = (items: Item[]) => { points.sort((a, b) => { return a.x === b.x ? a.y - b.y : a.x - b.x; }); + // remove duplicate points + const pointMap = {} + for (let i = points.length - 1; i >= 0; i--) { + const { x, y } = points[i] + if (pointMap[`${x}-${y}`]) points.splice(i, 1); + pointMap[`${x}-${y}`] = true; + } if (points.length === 1) { return points; diff --git a/packages/core/src/global.ts b/packages/core/src/global.ts index e0b1ecb379c..ce9e6e0bb15 100644 --- a/packages/core/src/global.ts +++ b/packages/core/src/global.ts @@ -64,7 +64,7 @@ const colorSet = { }; export default { - version: '0.8.2', + version: '0.8.3', rootContainerClassName: 'root-container', nodeContainerClassName: 'node-container', edgeContainerClassName: 'edge-container', diff --git a/packages/element/package.json b/packages/element/package.json index 6bac4e3828d..97425d03542 100644 --- a/packages/element/package.json +++ b/packages/element/package.json @@ -1,6 +1,6 @@ { "name": "@antv/g6-element", - "version": "0.8.2", + "version": "0.8.3", "description": "A Graph Visualization Framework in JavaScript", "keywords": [ "antv", @@ -61,7 +61,7 @@ }, "dependencies": { "@antv/g-base": "^0.5.1", - "@antv/g6-core": "0.8.2", + "@antv/g6-core": "0.8.3", "@antv/util": "~2.0.5" }, "devDependencies": { diff --git a/packages/g6/package.json b/packages/g6/package.json index ad0b8caaa71..8bb9a810da4 100644 --- a/packages/g6/package.json +++ b/packages/g6/package.json @@ -1,6 +1,6 @@ { "name": "@antv/g6", - "version": "4.8.2", + "version": "4.8.3", "description": "A Graph Visualization Framework in JavaScript", "keywords": [ "antv", @@ -66,7 +66,7 @@ ] }, "dependencies": { - "@antv/g6-pc": "0.8.2" + "@antv/g6-pc": "0.8.3" }, "devDependencies": { "@babel/core": "^7.7.7", diff --git a/packages/g6/src/index.ts b/packages/g6/src/index.ts index 979871e2f1d..f0a744c936c 100644 --- a/packages/g6/src/index.ts +++ b/packages/g6/src/index.ts @@ -1,7 +1,7 @@ import G6 from '@antv/g6-pc'; -G6.version = '4.8.2'; +G6.version = '4.8.3'; export * from '@antv/g6-pc'; export default G6; -export const version = '4.8.2'; \ No newline at end of file +export const version = '4.8.3'; \ No newline at end of file diff --git a/packages/pc/package.json b/packages/pc/package.json index c07032de02f..f514934e3c0 100644 --- a/packages/pc/package.json +++ b/packages/pc/package.json @@ -1,6 +1,6 @@ { "name": "@antv/g6-pc", - "version": "0.8.2", + "version": "0.8.3", "description": "A Graph Visualization Framework in JavaScript", "keywords": [ "antv", @@ -75,9 +75,9 @@ "@antv/g-canvas": "^0.5.2", "@antv/g-math": "^0.1.1", "@antv/g-svg": "^0.5.1", - "@antv/g6-core": "0.8.2", - "@antv/g6-element": "0.8.2", - "@antv/g6-plugin": "0.8.2", + "@antv/g6-core": "0.8.3", + "@antv/g6-element": "0.8.3", + "@antv/g6-plugin": "0.8.3", "@antv/hierarchy": "^0.6.7", "@antv/layout": "^0.3.0", "@antv/matrix-util": "^3.1.0-beta.3", diff --git a/packages/pc/src/global.ts b/packages/pc/src/global.ts index 18c029d895c..955c89e1eaa 100644 --- a/packages/pc/src/global.ts +++ b/packages/pc/src/global.ts @@ -7,7 +7,7 @@ const textColor = 'rgb(0, 0, 0)'; const colorSet = getColorsWithSubjectColor(subjectColor, backColor); export default { - version: '0.8.2', + version: '0.8.3', rootContainerClassName: 'root-container', nodeContainerClassName: 'node-container', edgeContainerClassName: 'edge-container', diff --git a/packages/plugin/package.json b/packages/plugin/package.json index f55e5ccf877..d10ec8f0943 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,6 +1,6 @@ { "name": "@antv/g6-plugin", - "version": "0.8.2", + "version": "0.8.3", "description": "G6 Plugin", "main": "lib/index.js", "module": "es/index.js", @@ -22,8 +22,8 @@ "@antv/g-base": "^0.5.1", "@antv/g-canvas": "^0.5.2", "@antv/g-svg": "^0.5.2", - "@antv/g6-core": "0.8.2", - "@antv/g6-element": "0.8.2", + "@antv/g6-core": "0.8.3", + "@antv/g6-element": "0.8.3", "@antv/matrix-util": "^3.1.0-beta.3", "@antv/scale": "^0.3.4", "@antv/util": "^2.0.9", diff --git a/packages/site/package.json b/packages/site/package.json index c53ba328e92..dbbab43065e 100644 --- a/packages/site/package.json +++ b/packages/site/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@antv/g6-site", - "version": "4.8.2", + "version": "4.8.3", "description": "G6 sites deployed on gh-pages", "keywords": [ "antv",