From 1a4b775bcfd5edaf83c2141b750201a478d1bc39 Mon Sep 17 00:00:00 2001 From: xile611 Date: Tue, 10 Mar 2026 15:34:38 +0800 Subject: [PATCH 1/3] fix: add valueField support to circle-packing layout The circle-packing layout was hardcoded to read values from 'value' field. Now it supports custom valueField configuration. Co-Authored-By: Claude Opus 4.6 --- packages/vlayouts/src/circle-packing/interface.ts | 2 ++ packages/vlayouts/src/circle-packing/layout.ts | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/vlayouts/src/circle-packing/interface.ts b/packages/vlayouts/src/circle-packing/interface.ts index 2beeabc..744af4f 100644 --- a/packages/vlayouts/src/circle-packing/interface.ts +++ b/packages/vlayouts/src/circle-packing/interface.ts @@ -21,6 +21,8 @@ export interface CirclePackingOptions { /** parse the key of node */ nodeKey?: string | number | ((datum: HierarchicalDatum) => string | number); includeRoot?: boolean; + /** the field to read node value, default is 'value' */ + valueField?: string; } export type CirclePackingTramsformOptions = CirclePackingOptions & diff --git a/packages/vlayouts/src/circle-packing/layout.ts b/packages/vlayouts/src/circle-packing/layout.ts index ebbe028..dabef89 100644 --- a/packages/vlayouts/src/circle-packing/layout.ts +++ b/packages/vlayouts/src/circle-packing/layout.ts @@ -56,6 +56,8 @@ export class CirclePackingLayout { private _maxDepth: number; + private _valueField: string; + static defaultOpionts: Partial = { setRadius: (node: CirclePackingNodeElement) => { return Math.sqrt(node.value); @@ -77,6 +79,7 @@ export class CirclePackingLayout { ? (node: CirclePackingNodeElement) => (options.padding as number[])[node.depth + 1] ?? 0 : () => 0; this._maxDepth = -1; + this._valueField = options?.valueField ?? 'value'; } layout( @@ -106,7 +109,8 @@ export class CirclePackingLayout { 0, -1, null, - this._getNodeKey + this._getNodeKey, + this._valueField ); this._maxDepth = res.maxDepth; From d3375ea621af21422b9352d39fdc5cadd9c18e06 Mon Sep 17 00:00:00 2001 From: xile611 Date: Tue, 10 Mar 2026 15:42:48 +0800 Subject: [PATCH 2/3] chore: update rush.json --- rush.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rush.json b/rush.json index d0efa48..111c9f5 100644 --- a/rush.json +++ b/rush.json @@ -2,7 +2,7 @@ "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush.schema.json", "rushVersion": "5.164.0", "pnpmVersion": "10.7.0", - "nodeSupportedVersionRange": ">=20.19.6 <21.0.0", + "nodeSupportedVersionRange": ">=20.19.6", "suppressNodeLtsWarning": true, "ensureConsistentVersions": true, "projectFolderMinDepth": 2, From 5f54bb6efc97cc632be33835c69cc426a8dfda8f Mon Sep 17 00:00:00 2001 From: xile611 Date: Tue, 10 Mar 2026 15:58:05 +0800 Subject: [PATCH 3/3] docs: update changlog of rush --- ...ix-circle-packing-valuefield_2026-03-10-07-58.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vlayouts/fix-circle-packing-valuefield_2026-03-10-07-58.json diff --git a/common/changes/@visactor/vlayouts/fix-circle-packing-valuefield_2026-03-10-07-58.json b/common/changes/@visactor/vlayouts/fix-circle-packing-valuefield_2026-03-10-07-58.json new file mode 100644 index 0000000..e9fd676 --- /dev/null +++ b/common/changes/@visactor/vlayouts/fix-circle-packing-valuefield_2026-03-10-07-58.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "chore: update rush.json\n\n", + "type": "none", + "packageName": "@visactor/vlayouts" + } + ], + "packageName": "@visactor/vlayouts", + "email": "dingling112@gmail.com" +} \ No newline at end of file