Repository navigation
feat: upgrade Highcharts to 12.6.2 - #13289
Draft
totally-not-ai[bot] wants to merge 27 commits into
Draft
totally-not-ai[bot] wants to merge 27 commits into
totally-not-ai[bot] wants to merge 27 commits into
Conversation
Since Highcharts 12.3 the export methods live on an Exporting instance and the getSVG left on Chart is a proxy with no internal callers, so the export events stopped firing and exports lost the shadow root styles. getSVGForExport runs getSVG in async mode, so afterExport now waits for the promise to settle.
Highcharts removes the color classes from solid gauge points whenever yAxis.stops is set. The stops always fall back to minColor and maxColor, which are undefined in styled mode, so the points render invisible. Re-apply the class list, including the point state class, when the stops carry no color. Workaround for highcharts/highcharts#23279
Since Highcharts 12.5 a setClip listener offsets the clip box of series on gauge and polar charts by the pane position, which cuts off the top and left of an animated solid gauge whose arc reaches the pane edge. Remove the listener and use the plot area as the clip box for series on radial axes, as upstream does in Highcharts 13. Workaround for highcharts/highcharts#24460
Since Highcharts 12.6 an outside tooltip adds the scroll offset of a scrollable plot area to a default position that already accounts for it, so the tooltip moves away from the point by the scrolled distance. Workaround for highcharts/highcharts#24548
Highcharts 12.4 no longer reverses a vertical color axis by default, and no longer rounds y-axis grid lines twice on non-stock charts, which moves some grid lines by one pixel.
Baselines are generated on Highcharts 12.2.0.
…d suite The non-styled chart suite renders the outside tooltip in light, dark and prefers-dark, so the separate base fixture is redundant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Highcharts 12.6.1 and 12.6.2 reject reserved point key segments, filter credits and xlink:href links through the AST allow list, and parse markup in an inert document. Remove the duplicate patches, their tests, and the Trusted Types policy helper that only the markup patch used. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 of 9 tasks
The non-styled outside tooltip now keeps the Highcharts look, so regenerate the baselines that the non-styled suite added before that. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rkaround Annotation labels call Tooltip#getPosition with a stand-in object that has no options, so only read them for an outside tooltip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An export now waits for the chart copy to render, so two exports can overlap. Remove the attribute only when the last styled export is done, and cover failed sync and async exports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Restore the point key, credits link and xlink:href tests, which assert outcomes rather than the removed patches. Credits links outside the Highcharts allow list, such as about.html or tel:, are now ignored. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eaches The dark and prefers-dark runs, and the Lumo and Aura runs, rendered the same images as the base light run for every chart type painted with presentation attributes. Keep only the tooltip, HTML label, exporting menu and export copy scenarios there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add screenshot tests for stacking, ranges, waterfall, data labels, 3D, annotations, drilldown and flags, and a non-styled suite that renders the charts with `chart.styledMode: false`, the way the Flow `Chart` does by default. Base renders every chart type; dark, prefers-dark, Lumo and Aura render only what a colour scheme or theme can reach: the tooltip, HTML labels, the exporting menu and the export copy. The base `tooltip-outside-non-styled` screenshot is dropped, as the non-styled suite renders the same outside tooltip in light and dark. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
totally-not-ai
Bot
changed the base branch from
main
to
test/chart-visual-coverage
October 27, 2026 16:18
sissbruecker
force-pushed
the
test/chart-visual-coverage
branch
from
October 28, 2026 11:43
152c640 to
305b10d
Compare
sissbruecker
added a commit
that referenced
this pull request
Oct 28, 2026
…ode (#13291) ## Description Related to #12983 Adds visual coverage for `@vaadin/charts` ahead of the Highcharts 12.6.2 upgrade in #13289, so that the upgrade PR only shows the baselines that change with the new version. - Added styled-mode screenshot tests for stacked column, percent stacked area, ranges, waterfall, data labels, 3D column and pie, annotations, drilldown and flags - Added a non-styled suite, `base/chart-non-styled.test.js`, that renders every fixture with `chart.styledMode: false`, the default of the Flow `Chart` - Highcharts then paints with presentation attributes, and the base styles are scoped to `[styled-mode]`, so these baselines show the plain Highcharts look and guard against Vaadin styles leaking into it - Added fixtures that only the non-styled suite renders: line, area, bar and scatter, pie, a solid gauge with and without `yAxis.stops` (highcharts/highcharts#23279), and a chart next to its `getSVG()` export - Removed the `tooltip-outside-non-styled` pair from the styled suite, as the non-styled suite renders the same outside tooltip - Rendered all baselines with the current Highcharts 12.2.0 ## Type of change - Tests > [!NOTE] > A follow-up branch, `test/chart-non-styled-base-ref`, makes the Aura and Lumo suites compare their non-styled renders against these base baselines. It changes the visual test runner, so it gets its own PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Sascha Ißbrücker <sissbruecker@vaadin.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
# Conflicts: # packages/charts/test/visual/base/chart-non-styled.test.js # packages/charts/test/visual/base/screenshots/chart-non-styled/baseline/export-svg.png # packages/charts/test/visual/base/screenshots/chart-non-styled/baseline/heatmap.png # packages/charts/test/visual/base/screenshots/chart-non-styled/baseline/stacked-area.png # packages/charts/test/visual/base/screenshots/chart/baseline/annotations.png # packages/charts/test/visual/base/screenshots/chart/baseline/data-labels.png # packages/charts/test/visual/base/screenshots/chart/baseline/drilldown.png # packages/charts/test/visual/base/screenshots/chart/baseline/flags.png # packages/charts/test/visual/base/screenshots/chart/baseline/ranges.png # packages/charts/test/visual/base/screenshots/chart/baseline/stacked-area.png # packages/charts/test/visual/base/screenshots/chart/baseline/stacked-column.png # packages/charts/test/visual/chart.common.js
…inish Count pending exports per chart and track a print separately, so neither a second export of the same chart nor a print that ends during an export removes the body styles while a chart copy is still rendering.
vaadin-bot
pushed a commit
to vaadin/platform
that referenced
this pull request
Oct 29, 2026
The five Highcharts CVEs are fixed in Vaadin Charts by vaadin/web-components#12886 without bumping the bundled Highcharts. Scanners keep flagging 12.2.0 by version until vaadin/web-components#13289 bumps it to 12.6.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vaadin-bot
pushed a commit
to vaadin/platform
that referenced
this pull request
Oct 29, 2026
The five Highcharts CVEs are fixed in Vaadin Charts by vaadin/web-components#12886 without bumping the bundled Highcharts. Scanners keep flagging 12.2.0 by version until vaadin/web-components#13289 bumps it to 12.6.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vaadin-bot
pushed a commit
to vaadin/platform
that referenced
this pull request
Oct 29, 2026
The five Highcharts CVEs are fixed in Vaadin Charts by vaadin/web-components#12886 without bumping the bundled Highcharts. Scanners keep flagging 12.2.0 by version until vaadin/web-components#13289 bumps it to 12.6.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 29, 2026
ZheSun88
added a commit
to vaadin/platform
that referenced
this pull request
Oct 29, 2026
* chore: update versions.json in 25.3 with latest WC * chore: add SBOM notes for opentelemetry-api, picomatch and lerc - opentelemetry-api 1.66.0: also cover CVE-2026-118259, test only via selenium-remote-driver, inbound tracestate is never extracted - picomatch 4.0.7 (CVE-2026-112366): build time only, no fix released - lerc 3.0.0 (CVE-2026-10758): GeoTIFF decoder not on Vaadin Map path Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: add SBOM note for highcharts 12.2.0 The five Highcharts CVEs are fixed in Vaadin Charts by vaadin/web-components#12886 without bumping the bundled Highcharts. Scanners keep flagging 12.2.0 by version until vaadin/web-components#13289 bumps it to 12.6.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Zhe Sun <zhe@vaadin.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Highcharts 12.3 defaults `exporting.local` to `true`. Keep the 12.2 behavior for now: export on the server unless the app loads the offline-exporting module or sets `exporting.local`. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
ZheSun88
added a commit
to vaadin/platform
that referenced
this pull request
Oct 29, 2026
* chore: update versions.json in 25.2 with latest WC * chore: add SBOM notes for opentelemetry-api, picomatch and lerc - opentelemetry-api: also cover CVE-2026-118259, test only via selenium-remote-driver, inbound tracestate is never extracted - picomatch 4.0.7 (CVE-2026-112366): build time only, no fix released - lerc 3.0.0 (CVE-2026-10758): GeoTIFF decoder not on Vaadin Map path Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: add SBOM note for highcharts 12.2.0 The five Highcharts CVEs are fixed in Vaadin Charts by vaadin/web-components#12886 without bumping the bundled Highcharts. Scanners keep flagging 12.2.0 by version until vaadin/web-components#13289 bumps it to 12.6.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Zhe Sun <zhe@vaadin.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
ZheSun88
added a commit
to vaadin/platform
that referenced
this pull request
Oct 30, 2026
* chore: add SBOM notes for opentelemetry-api, picomatch and lerc - opentelemetry-api: also cover CVE-2026-118259, test only via selenium-remote-driver, inbound tracestate is never extracted - picomatch 4.0.7 (CVE-2026-112366): build time only, no fix released - lerc 3.0.0 (CVE-2026-10758): GeoTIFF decoder not on Vaadin Map path Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: add SBOM note for highcharts 12.2.0 The five Highcharts CVEs are fixed in Vaadin Charts by vaadin/web-components#12886 without bumping the bundled Highcharts. Scanners keep flagging 12.2.0 by version until vaadin/web-components#13289 bumps it to 12.6.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Zhe Sun <zhe@vaadin.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # packages/charts/package.json
|
This was referenced Oct 30, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Review risk: two-way door —
@vaadin/chartsonly; affects chart rendering, exporting and the bundled Highcharts security patchesSummary
Upgrades
highchartsin@vaadin/chartsfrom 12.2.0 to 12.6.2 (the latest 12.x), with workarounds for regressions introduced between 12.3 and 12.6, and broader visual coverage. Highcharts backports fixes, including security fixes, only to its latest minor version.Fixes #12983
Companion PR for the Flow SVG generator: vaadin/flow-components#10520
The new visual tests (more chart types and the non-styled suite) landed in #13291 with Highcharts 12.2.0 baselines. This PR updates the baselines that change with 12.6.2.
What changed
highchartsto 12.6.2.vaadin-chart-mixin.jsworkarounds:exporting.localdefaults totrue, so PNG, JPEG and SVG exports render in the browser instead of being posted to the export server. That makesexporting.urlandwidthhave no effect, fails PDF exports whenfallbackToExportServeris off, and needsblob:anddata:sources in a Content Security Policy. Remove the default and wrapExporting.prototype.exportChartto keep the 12.2 rule: export on the server, unless the app loads theoffline-exportingmodule (which used to switch the download menu items andexportChartLocal()to the browser) or setsexporting.localitself. To be removed in the next major version to adopt the Highcharts default.Chart.prototype.getSVG, so wrapExporting.prototype.getSVGand fireafterExportonce the async export settles, also when it fails. Exports are counted per chart and a print is tracked separately, so the body keeps the copied styles and thestyled-modeattribute until the last overlapping export or print is done, also when both are of the same chart. Detaching a chart while its export is pending removes them too, as the destroyed chart can no longer fireafterExport.yAxis.stopscarries no usable color.highcharts-patches.jsthat 12.6.1/12.6.2 now include (setNestedProperty,addCredits,AST.filterUserAttributesforxlink:href,AST.parseMarkup), the tests of the markup parser fallback, andhighcharts-policy.js, which only the markup patch used. The tests for point keys, credits links andxlink:hrefstay, so they now check the fixes Highcharts ships.optionsToObjectand_defaultSetterstay.Behavior changes (release notes)
exportChart()returns a promise.credits.hrefonly accepts links matchingAST.allowedReferences(https://,http://,mailto:,/,./,../,#). Previously our patch only rejectedjavascript:,vbscript:anddata:, so e.g.about.htmlortel:links are now ignored.colorAxis.reversed: truerestores the old look.Test summary
exporting.localis set as an option or passed toexportChart(), and the browser fromexportChartLocal()and the download menu items when theoffline-exportingmodule is loaded.xlink:hrefrun against 12.6.2 without the removed patches.tscpass locally.🤖 Generated with Claude Code
Working on behalf of Serhii