Skip to content

Commit a7c8e47

Browse files
authored
Merge pull request #4598 from VisActor/release/2.1.0
[Auto release] release 2.1.0
2 parents 6e72c2f + 77d93ce commit a7c8e47

329 files changed

Lines changed: 23034 additions & 2591 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changelog/en.md

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,27 @@
1-
# v2.0.22
1+
# v2.1.0
22

3-
2026-04-13
3+
2026-06-23
4+
5+
**🆕 New Features**
6+
7+
- **@visactor/vchart**: markLine expandDistancesupport callback. close#4568
8+
- **@visactor/vchart**: support function type for `maxRow` / `maxCol` of the discrete legend, evaluated during layout against the legend's allocated rect, so the row / column count can adapt to the available space
49

510
**🐛 Bug Fixes**
611

7-
- **@visactor/vchart**: correct stacked bar corner clipping when barMinHeight is applied (Issue #4543)
8-
- **@visactor/vchart**: relayout api not work bug. fix#4537
9-
- **@visactor/vchart**: custom mark not release after update spec. fix#4537
10-
- **@visactor/vchart**: map error when roam or drag canvas. fix#4547
11-
- **@visactor/vchart**: handle sankey tooltip labels when source index is 0 (Issue #4488)
12+
- **@visactor/vchart**: waterfall lead line bug. fix#4580
13+
- **@visactor/vchart**: preserve discrete legend filtering after updateSpec when `legends.data` is a callback (Issue #4566)
14+
- **@visactor/vchart**: re-nice the cartesian linear axis with the real plot-area length after layout when `tick.tickCount` is a function, so the length-based tick count and nice ceiling match the final plot area instead of the pre-layout chart viewRect
15+
- **@visactor/vchart**: vchart relayout api not work bug. fix#4537
16+
- **@visactor/vchart**: label not follow when drag. fix#4547
17+
- **@visactor/vchart**: prcoess render error. fix#4578
18+
19+
**🔨 Chores**
20+
21+
- **@visactor/vchart**: update changes for 009-fix-map-roam-pointer-drag: This plan fixes a map roam drag bug where mobile browsers lose stable vertical dragging after supportsTouchEvents is forced to false
22+
- **@visactor/vchart**: introduce scoped updateSpec effects to make chart, component, series, data, layout, render, and animation update ranges explicit; local component updates such as marker exit, title text, legend appearance, axis appearance, mark style, field, label, animation, and layout-related series changes now avoid unnecessary chart remake/recompile paths when the existing chart model can be updated in place
23+
- **@visactor/vchart**: align VChart with the VRender 1.1.0 app-scoped runtime, state resolver, and animation contracts while keeping standard VChart spec usage compatible; consolidate mark shared-state handling, glyph sub-graphic state isolation, word-cloud scaleIn initialization, and interaction-state behavior for Sankey, brush, legend textures, marker rich text, and circular progress tick masks
1224

13-
**Full Changelog**: https://github.com/VisActor/VChart/compare/v2.0.20...v2.0.22
25+
**Full Changelog**: https://github.com/VisActor/VChart/compare/v2.0.20...v2.1.0
1426

15-
[more detail about v2.0.22](https://github.com/VisActor/VChart/releases/tag/v2.0.22)
27+
[more detail about v2.1.0](https://github.com/VisActor/VChart/releases/tag/v2.1.0)

.changelog/harmony.md

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,27 @@
1-
# v2.0.22
1+
# v2.1.0
22

3-
2026-04-13
3+
2026-06-23
4+
5+
**🆕 New Features**
6+
7+
- **@visactor/vchart**: markLine expandDistancesupport callback. close#4568
8+
- **@visactor/vchart**: support function type for `maxRow` / `maxCol` of the discrete legend, evaluated during layout against the legend's allocated rect, so the row / column count can adapt to the available space
49

510
**🐛 Bug Fixes**
611

7-
- **@visactor/vchart**: correct stacked bar corner clipping when barMinHeight is applied (Issue #4543)
8-
- **@visactor/vchart**: relayout api not work bug. fix#4537
9-
- **@visactor/vchart**: custom mark not release after update spec. fix#4537
10-
- **@visactor/vchart**: map error when roam or drag canvas. fix#4547
11-
- **@visactor/vchart**: handle sankey tooltip labels when source index is 0 (Issue #4488)
12+
- **@visactor/vchart**: waterfall lead line bug. fix#4580
13+
- **@visactor/vchart**: preserve discrete legend filtering after updateSpec when `legends.data` is a callback (Issue #4566)
14+
- **@visactor/vchart**: re-nice the cartesian linear axis with the real plot-area length after layout when `tick.tickCount` is a function, so the length-based tick count and nice ceiling match the final plot area instead of the pre-layout chart viewRect
15+
- **@visactor/vchart**: vchart relayout api not work bug. fix#4537
16+
- **@visactor/vchart**: label not follow when drag. fix#4547
17+
- **@visactor/vchart**: prcoess render error. fix#4578
18+
19+
**🔨 Chores**
20+
21+
- **@visactor/vchart**: update changes for 009-fix-map-roam-pointer-drag: This plan fixes a map roam drag bug where mobile browsers lose stable vertical dragging after supportsTouchEvents is forced to false
22+
- **@visactor/vchart**: introduce scoped updateSpec effects to make chart, component, series, data, layout, render, and animation update ranges explicit; local component updates such as marker exit, title text, legend appearance, axis appearance, mark style, field, label, animation, and layout-related series changes now avoid unnecessary chart remake/recompile paths when the existing chart model can be updated in place
23+
- **@visactor/vchart**: align VChart with the VRender 1.1.0 app-scoped runtime, state resolver, and animation contracts while keeping standard VChart spec usage compatible; consolidate mark shared-state handling, glyph sub-graphic state isolation, word-cloud scaleIn initialization, and interaction-state behavior for Sankey, brush, legend textures, marker rich text, and circular progress tick masks
1224

13-
**Full Changelog**: https://github.com/VisActor/VChart/compare/v2.0.20...v2.0.22
25+
**Full Changelog**: https://github.com/VisActor/VChart/compare/v2.0.20...v2.1.0
1426

15-
[more detail about v2.0.22](https://github.com/VisActor/VChart/releases/tag/v2.0.22)
27+
[more detail about v2.1.0](https://github.com/VisActor/VChart/releases/tag/v2.1.0)

.changelog/zh.md

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,27 @@
1-
# v2.0.22
1+
# v2.1.0
22

3-
2026-04-13
3+
2026-06-23
4+
5+
**🆕 新增功能**
6+
7+
- **@visactor/vchart**: markLine expandDistancesupport callback. close#4568
8+
- **@visactor/vchart**: 支持 function type for `maxRow` / `maxCol` of the discrete 图例, evaluated during layout against the 图例's allocated rect, so the row / column count can adapt the available space
49

510
**🐛 问题修复**
611

7-
- **@visactor/vchart**: correct stacked bar corner clipping when barMinHeight is applied (问题 #4543
8-
- **@visactor/vchart**: relayout api not work 问题. fix#4537
9-
- **@visactor/vchart**: custom mark not release after update spec. fix#4537
10-
- **@visactor/vchart**: map error when roam or drag canvas. fix#4547
11-
- **@visactor/vchart**: handle sankey Tooltip labels when source index is 0 (问题 #4488
12+
- **@visactor/vchart**: waterfall lead line 问题. fix#4580
13+
- **@visactor/vchart**: preserve discrete 图例 filtering after updateSpec when `legends.data` is a callback (问题 #4566
14+
- **@visactor/vchart**: re-nice the cartesian 线性坐标轴 with the real plot-area length after layout when `tick.tickCount` is a function, so the length-based tick count and nice ceiling match the final plot area instead of the pre-layout chart viewRect
15+
- **@visactor/vchart**: vchart relayout api not work 问题. fix#4537
16+
- **@visactor/vchart**: label not follow when drag. fix#4547
17+
- **@visactor/vchart**: prcoess render error. fix#4578
18+
19+
**🔨 维护与杂项**
20+
21+
- **@visactor/vchart**: 更新 changes for 009-fix-map-roam-pointer-drag: This plan fixes a map roam drag 问题 where mobile browsers lose stable vertical dragging after supportsTouchEvents is forced false
22+
- **@visactor/vchart**: introduce scoped updateSpec effects make chart, component, series, data, layout, render, and animation update ranges explicit; local component updates such as marker exit, title text, 图例 appearance, axis appearance, mark style, field, label, animation, and layout-related series changes now avoid unnecessary chart remake/recompile paths when the existing chart model can be updated in place
23+
- **@visactor/vchart**: align VChart with the VRender 1.1.0 app-scoped runtime, state resolver, and animation contracts while keeping standard VChart spec usage compatible; consolidate mark shared-state handling, glyph sub-graphic state isolation, word-cloud scaleIn initialization, and interaction-state behavior for Sankey, brush, 图例 textures, marker rich text, and circular progress tick masks
1224

13-
**Full Changelog**: https://github.com/VisActor/VChart/compare/v2.0.20...v2.0.22
25+
**Full Changelog**: https://github.com/VisActor/VChart/compare/v2.0.20...v2.1.0
1426

15-
[更多详情请查看 v2.0.22](https://github.com/VisActor/VChart/releases/tag/v2.0.22)
27+
[更多详情请查看 v2.1.0](https://github.com/VisActor/VChart/releases/tag/v2.1.0)

.vscode/launch.json

Lines changed: 52 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,53 @@
11
{
2-
"version": "0.1.0",
3-
"configurations": [
4-
{
5-
"name": "Node.js - Debug Current File",
6-
"type": "node",
7-
"request": "launch",
8-
"program": "${file}"
9-
},
10-
{
11-
"name": "generate documents",
12-
"port": 9229,
13-
"program": "${workspaceFolder}/docs/libs/template-parse/build.js",
14-
"args": ["--env", "dev", "--watch"],
15-
"request": "launch",
16-
"skipFiles": ["<node_internals>/**"],
17-
"type": "pwa-node"
18-
},
19-
{
20-
"name": "Debug Jest-Electron Current File",
21-
"type": "node",
22-
"request": "launch",
23-
"cwd": "${workspaceFolder}/packages/vchart",
24-
"program": "${workspaceFolder}/packages/vchart/node_modules/jest/bin/jest.js",
25-
"args": [
26-
"${file}",
27-
"--watch"
28-
],
29-
"env": {
30-
"DEBUG_MODE": "1"
31-
},
32-
"console": "integratedTerminal",
33-
"internalConsoleOptions": "neverOpen"
34-
},
35-
{
36-
"name": "unit test",
37-
"type": "pwa-node",
38-
"request": "launch",
39-
"program": "${workspaceFolder}/packages/vchart/node_modules/jest/bin/jest.js",
40-
"args": ["${file}"],
41-
"console": "integratedTerminal",
42-
"internalConsoleOptions": "neverOpen"
43-
}
44-
]
45-
}
2+
"version": "0.1.0",
3+
"configurations": [
4+
{
5+
"name": "Node.js - Debug Current File",
6+
"type": "node",
7+
"request": "launch",
8+
"program": "${file}"
9+
},
10+
{
11+
"name": "generate documents",
12+
"port": 9229,
13+
"program": "${workspaceFolder}/docs/libs/template-parse/build.js",
14+
"args": [
15+
"--env",
16+
"dev",
17+
"--watch"
18+
],
19+
"request": "launch",
20+
"skipFiles": [
21+
"<node_internals>/**"
22+
],
23+
"type": "pwa-node"
24+
},
25+
{
26+
"name": "Debug Jest-Electron Current File",
27+
"type": "node",
28+
"request": "launch",
29+
"cwd": "${workspaceFolder}/packages/vchart",
30+
"program": "${workspaceFolder}/packages/vchart/node_modules/jest/bin/jest.js",
31+
"args": [
32+
"${file}",
33+
"--watch"
34+
],
35+
"env": {
36+
"DEBUG_MODE": "1"
37+
},
38+
"console": "integratedTerminal",
39+
"internalConsoleOptions": "neverOpen"
40+
},
41+
{
42+
"name": "unit test",
43+
"type": "pwa-node",
44+
"request": "launch",
45+
"program": "${workspaceFolder}/packages/vchart/node_modules/jest/bin/jest.js",
46+
"args": [
47+
"${file}"
48+
],
49+
"console": "integratedTerminal",
50+
"internalConsoleOptions": "neverOpen"
51+
}
52+
]
53+
}

AGENTS.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# VChart 工程基准
2+
3+
VChart 是高性能可视化渲染库。工程取舍应优先面向正确、文档化的调用方式:快速的 render/update/release 路径、稳定可预期的 API,以及可用、易用的图表行为。
4+
5+
## 编码习惯
6+
7+
- 不要在热路径中加入大量宽泛的防御式兜底,除非它保护的是明确记录的公共 API 契约,或有真实兼容性需求支撑。
8+
- 优先使用清晰契约,而不是静默归一化。内部非法状态应通过测试或边界校验暴露,不应被每个图元运行时 guard 隐藏。
9+
- per-graphic 的 render/update/state 代码应尽量少分配、少分支。避免不必要的数组创建、对象重建、深比较、resolver 失效、状态清理或重复生命周期工作。
10+
- 按 VRender API 的预期契约调用。除非存在明确的跨版本兼容理由,不要在 VChart 侧包一层本地兜底逻辑。
11+
- 当项目已有标准工具、公共 API 或统一封装能表达同一行为时,必须优先收敛到标准写法;如果标准写法无法满足需求,应修正标准工具或上游契约,而不是在调用点维护多套等价或异化实现。暴露并修复标准路径问题,优先于用局部特例掩盖问题。
12+
- 公共 API 边界要保持易用性,但内部路径不需要长期容忍非标准调用方。
13+
- 性能是大数据与多图 dashboard 场景下的正确性维度。修改 render、update、state、animation、release 路径时,需要考虑 10k 图元和多 chart 页面。
14+
- 测试应锁定有效用法下的预期行为。不要把偶然用法或不支持用法固化成兼容承诺,除非该行为已经被明确纳入 API。
15+
16+
## 文档规范
17+
18+
- 当前项目文档优先使用中文编写。
19+
- 面向外部生态或已有多语言体系的文档,可按现有文档结构补充对应语言版本,但中文说明应优先完整、准确。
20+
21+
## 优先级
22+
23+
1. 有效 spec 和文档化 API 下的正确渲染。
24+
2. render、update、interaction、animation、release 的高性能。
25+
3. 稳定且易用的公共调用方式。
26+
4. 最小化兼容性兜底,只在真实 API 承诺需要时引入。
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@visactor/openinula-vchart",
5+
"comment": "chore: align VRender runtime dependencies with the VChart VRender 1.1.0 upgrade",
6+
"type": "patch"
7+
}
8+
],
9+
"packageName": "@visactor/openinula-vchart",
10+
"email": "openai@example.com"
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@visactor/react-vchart",
5+
"comment": "chore: align VRender runtime dependencies with the VChart VRender 1.1.0 upgrade",
6+
"type": "patch"
7+
}
8+
],
9+
"packageName": "@visactor/react-vchart",
10+
"email": "openai@example.com"
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@visactor/vchart-extension",
5+
"comment": "refactor: align pictogram SVG layout with VRender 1.1.0 bounds and transform semantics so registered SVG sources keep a stable fit and center during legend filtering, resize, and roam interactions",
6+
"type": "patch"
7+
}
8+
],
9+
"packageName": "@visactor/vchart-extension",
10+
"email": "openai@example.com"
11+
}

0 commit comments

Comments
 (0)