!!!###!!!title=release——VisActor/VChart release changelog!!!###!!!!!!###!!!description=2026-06-23**🆕 New Features**- **@visactor/vchart**: markLine expandDistancesupport callback. close#4568- **@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**🐛 Bug Fixes**- **@visactor/vchart**: waterfall lead line bug. fix#4580- **@visactor/vchart**: preserve discrete legend filtering after updateSpec when `legends.data` is a callback (Issue #4566)- **@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- **@visactor/vchart**: vchart relayout api not work bug. fix#4537- **@visactor/vchart**: label not follow when drag. fix#4547- **@visactor/vchart**: prcoess render error. fix#4578**🔨 Chores**- **@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- **@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- **@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**💖 Community Contributions**Thanks to everyone who contributed to this release through code, issue reports, test cases, and regression verification. Special thanks to:- @g1f9: contributed function support for discrete legend `maxRow` / `maxCol`, and fixed linear axis nice-domain recalculation based on the final plot area.**Full Changelog**: https://github.com/VisActor/VChart/compare/v2.0.20...v2.1.0[more detail about v2.1.0](https://github.com/VisActor/VChart/releases/tag/v2.1.0)!!!###!!!

v2.1.0

2026-06-23

🆕 New Features

  • @visactor/vchart: markLine expandDistancesupport callback. close#4568
  • @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

🐛 Bug Fixes

  • @visactor/vchart: waterfall lead line bug. fix#4580
  • @visactor/vchart: preserve discrete legend filtering after updateSpec when legends.data is a callback (Issue #4566)
  • @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
  • @visactor/vchart: vchart relayout api not work bug. fix#4537
  • @visactor/vchart: label not follow when drag. fix#4547
  • @visactor/vchart: prcoess render error. fix#4578

🔨 Chores

  • @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
  • @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
  • @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

💖 Community Contributions

Thanks to everyone who contributed to this release through code, issue reports, test cases, and regression verification. Special thanks to:

  • @g1f9: contributed function support for discrete legend maxRow / maxCol, and fixed linear axis nice-domain recalculation based on the final plot area.

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.20...v2.1.0

more detail about v2.1.0

v2.0.22

2026-04-13

🐛 Bug Fixes

  • @visactor/vchart: correct stacked bar corner clipping when barMinHeight is applied (Issue #4543)
  • @visactor/vchart: relayout api not work bug. fix#4537
  • @visactor/vchart: custom mark not release after update spec. fix#4537
  • @visactor/vchart: map error when roam or drag canvas. fix#4547
  • @visactor/vchart: handle sankey tooltip labels when source index is 0 (Issue #4488)

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.20...v2.0.22

more detail about v2.0.22

v2.0.21

2026-04-03

🆕 New Features

  • TODO: Fill in change details for v2.0.21.

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.20...v2.0.21

more detail about v2.0.21

v2.0.20

2026-03-26

🐛 Bug Fixes

  • @visactor/vchart: fix theme config of spec and option
  • @visactor/vchart: datazoom update domain after data change. fix#4186

🔨 Chores

  • @visactor/vchart: update changes for 008-fix-size-legend-handler-text: Allow size legend handlerText.style to accept function-based values in the same way other legend style hooks already do, and add regression coverage proving the style callback is preserved through continuous legend attribute transformation.
  • @visactor/vchart: update changes for 009-fix-heatmap-scrollbar-axis-direction: Align ScrollBar with DataZoom by using the shared reverse-axis detection when converting scrollbar state percentages back into domain values.
  • @visactor/vchart: update changes for 009-fix-issue-of-mark-state-when-updateSpec: Fix an issue where mark states were not properly cleared when updateSpec was called, causing incorrect state persistence.
  • @visactor/vchart: update changes for 010-hide-empty-axes: Add an opt-in hideWhenEmpty axis option for cartesian axes.
  • @visactor/vchart: update changes for 009-fix-issue-of-mark-state-when-updateSpec: Fix an issue where mark states were not properly cleared when updateSpec was called, causing incorrect state persistence.
  • @visactor/vchart: upgrade vutils, vdataset, vscale, vlayouts to ~1.0.23

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.19...v2.0.20

more detail about v2.0.20

v2.0.19

2026-03-06

🔨 Chores

  • @visactor/vchart: remove unused GitHub Actions workflows

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.18...v2.0.19

more detail about v2.0.19

v2.0.18

2026-03-05

🆕 New Features

  • @visactor/vchart: feat: optimiz workflows for release

🐛 Bug Fixes

  • @visactor/vchart: fix: ensure DataZoom updates when data source changes (Issue #4185)

  • @visactor/vchart: fix: fix default lineWidth for heatmap label

  • @visactor/vchart: fix: Fix memory leaks in Player component and BaseComponent release logic.

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.17...v2.0.18

more detail about v2.0.18

v2.0.17

2026-02-26

🐛 Bug Fixes

  • @visactor/vchart: fix: support functional alternateColor in axis grid configuration

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.16...v2.0.17

more detail about v2.0.17

v2.0.16

2026-02-13

🆕 New Features

🐛 Bug Fixes

🔨 Chores

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.14...v2.0.16

more detail about v2.0.16

v2.0.15

2026-02-02

🆕 New Features

🐛 Bug Fixes

🔨 Chores

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.14...v2.0.15

more detail about v2.0.15

v2.0.14

2026-01-22

🆕 New Features

🐛 Bug Fixes

🔨 Chores

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.13...v2.0.14

more detail about v2.0.14

v2.0.13

2026-01-08

🐛 Bug Fixes

🔨 Chores

📖 Documentation

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.12...v2.0.13

more detail about v2.0.13

v2.0.12

2025-12-25

🆕 New Features

🐛 Bug Fixes

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.11...v2.0.12

more detail about v2.0.12

v2.0.11

2025-12-11

v2.0.11

2025-12-11

🆕 New Features

🐛 Bug Fixes

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.10...v2.0.11

more detail about v2.0.11

more detail about v2.0.11

v2.0.10

2025-11-28

🆕 New Features

🐛 Bug Fixes

📖 Documentation

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.9...v2.0.10

more detail about v2.0.10

v2.0.9

2025-11-18

🆕 New Features

🐛 Bug Fixes

📖 Documentation

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.7...v2.0.9

more detail about v2.0.9

v2.0.7

2025-11-03

🆕 New Features

@visactor/vchart: Support resize zoom chart plugin by @xuefei1313 in https://github.com/VisActor/VChart/pull/4241 @visactor/vchart: Register transform boxplot by @xile611 in https://github.com/VisActor/VChart/pull/4268 @visactor/vchart: Add translate-issues workflow configuration by @xuefei1313 in https://github.com/VisActor/VChart/pull/4264 @visactor/vchart: Add regression-lines in vchart-extension by @xile611 in https://github.com/VisActor/VChart/pull/4245 @visactor/vchart: Change vrender dependencies, see https://github.com/VisActor/VChart/pull/4224

🐛 Bug Fixes

@visactor/vchart: Fix crosshair not hide by @xile611 in https://github.com/VisActor/VChart/pull/4252 @visactor/vchart: Fix issue of layout by @xuefei1313 in https://github.com/VisActor/VChart/pull/4249 @visactor/vchart: Fix logistic regression line by @xile611 in https://github.com/VisActor/VChart/pull/4263 @visactor/vchart: Fix support regression line for grouped scatter by @xile611 in https://github.com/VisActor/VChart/pull/4248 @visactor/vchart: Fix check if stackData is empty by @kkxxkk2019 in https://github.com/VisActor/VChart/pull/4244 @visactor/vchart: Fix issue of waterfall stack total by @xuefei1313 in https://github.com/VisActor/VChart/pull/4243

more detail about v2.0.7

v2.0.6

2025-10-14

What's Changed

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.5...v2.0.6

more detail about v2.0.6

v2.0.5

2025-09-19

more detail about v2.0.5

v2.0.2

2025-07-28

🆕 New feature

  • @visactor/vchart: add the afterClearRect hook of render

Full Changelog: https://github.com/VisActor/VChart/compare/v2.0.1...v2.0.2

more detail about v2.0.2

v2.0.1

2025-07-24

🆕 New feature

  • @visactor/vchart: add config to avoid brush state update. close #4035
  • @visactor/vchart: optimize datazoom animation effect
  • @visactor/vchart: add the afterClearScreen hook of render

🐛 Bug fix

  • @visactor/vchart: fix issue with 3d chart grid
  • @visactor/vchart: tickData of axis should update when sampling is changed, fix #4059
  • @visactor/vchart: only calculate multi layer label items when need, fix #4056
  • @visactor/vchart: fix resize error when remake, and re-normal aniamtion bug, fix #4070
  • @visactor/vchart: fix issue with feishu block and call setenv when create vchart
  • @visactor/vchart: fix bug of tooltip triggerOff & tooltip lock
  • @visactor/vchart: fix tooltip throw error when some tooltip processor is undefined, fix #4044
  • @visactor/vchart: fix textAlign not works in tooltip.style.titleLabel, fix #4043

more detail about v2.0.1