A security fix: a series name, category or goal name containing HTML could run script in the legend or tooltip, also in server-rendered HTML. Data you pass in now shows as text there; HTML a formatter returns still renders. Upgrade if those labels come from user data.
Also less work per render for bars, timelines and treemaps, tooltip.custom on sunburst, icicle and treemap branches, and these changes you may notice:
| Change | What to check |
|---|---|
| Names and labels show HTML as text | markup in names |
| tooltip.custom runs on treemap branches | custom reading points |
| Trellis honours chart.zoom.enabled false | grids that set it |
| Sunburst, icicle honour dataLabels.enabled | dataLabels.enabled |
| Sunburst crumb uses drilldown.breadcrumb | breadcrumb options |
🐛 Fixes
- Project stream-scroll pathFrom from the joined path (#5316). Thanks @SahinurDEV.
- Do not expand zero stacked columns by series stroke width (#5046). Thanks @SahinurDEV.
- Draw series added to a shared logarithmic axis. Thanks @Arthur031221.
- Read dates past year 9999 as utc, not local time.
- Fire legendHover once per item, not on every mouse move.
- Keep reordered series on a shared logarithmic axis (#5353).
- Ease an axis border from its own extent.
- Draw server renders the way the browser draws them.
- Return to a level as it is now, its overrides undone.
- Honour enabled toggles and settle async levels safely.
- Hand back the raw series when an alias type is switched off.
- Grid tooltip reads numeric x and horizontal bars right.
- Push one panel data patch from render and updateSeries.
- Keep legend, zoom and tool state in step across rebuilds.
- Respect zoom.enabled false; edge labels read effective y.
- Sort dates, leave combo series alone.
- Restored zoom focus keeps its ancestors.
- Gradient legend spans explicit colour stops.
- Keep line forecasts and gradient area strokes on SVG.
- Paint primitive styling and custom series identity.
- Divide 100% stacked parts by their own stack's total.
- Fade every exit ghost, also of a series left empty.
- Plugin highlight() says null on a nested treemap.
- Drilled treemap leaves, morph rings, pie part filters.
- One name per reference series, one warning per dupe set.
- CSV category labels; export only the promoted panel.
- Resolve only registered layout names, never inherited ones.
- Keep the series stroke for the sideways inset of empty columns. Thanks @SahinurDEV.
- Draw the host subtitle; honour title align and font.
- Honour tooltip.custom in sunburst and icicle tooltips.
- Key ISO date strings by epoch on a datetime x axis.
- Shared y per axis, log decades and clean label decimals.
- Colour map follows the theme palette and monochrome.
- Show series names, categories and goal names as text.
- Keep the stepline run that leads into a null (#4787). Thanks @itisrmk.
- Keep morph pieces and exit labels in step.
- Stop padding the user's y axis label colours in place.
- Ignore a non-number multi-axis bound like a single axis.
- UpdateSeries(data, false) lands without a tween.
- Sunburst crumb and morph race, dataLabels.enabled.
- Honour tooltip.custom in branch tooltips.
- Close a full-turn slice as a circle so its stroke has no seam. Thanks @itisrmk.
- Fold an empty stacked column onto its base edge.
- Draw a zero slice as a lone moveto so morphs still reach it.
The full bundle is 394,666 B gzipped, up 4,585 B (1.2%) from 8.3.1.
Upgrading is npm install apexcharts@8.4.0.
Full changelog, with the detail behind each change: v8.3.1...v8.4.0