Conversation
schaumb
marked this pull request as draft
March 3, 2026 21:56
schaumb
marked this pull request as ready for review
March 3, 2026 21:56
There was a problem hiding this comment.
Pull request overview
This PR extends the chart generator/rendering pipeline to support multi-part dimension labels (“multilabel”) by flowing vectors of SliceIndex through marker IDs, axis/legend rendering, and event targets. It also updates CI tooling dependencies and adds/updates E2E fixtures to cover the new behavior.
Changes:
- Introduce list-based
labelLevelhandling (single or multiple dimension label parts) and merge label parts into display text. - Propagate multilabel identifiers through axis/legend rendering and event target metadata.
- Update CI Python tooling (PDM + lockfile) and add E2E tests/refs for the new feature and related fixes.
Reviewed changes
Copilot reviewed 45 out of 46 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/modules/vizzu.py | Removes stray whitespace line. |
| tools/docs/style/gen_style_reference.py | Removes stray whitespace line. |
| tools/docs/reference/gen_reference.py | Removes stray whitespace line. |
| tools/docs/placeholder.py | Removes stray whitespace lines. |
| tools/docs/pages/gen_pages.py | Removes stray whitespace line. |
| tools/docs/examples/gen_thumbnails.py | Removes stray whitespace line. |
| tools/docs/examples/gen_examples.py | Removes stray whitespace line. |
| tools/docs/deploy.py | Removes stray whitespace line. |
| tools/ci/run/init-py.sh | Installs hishel<1.0 alongside pinned PDM for CI bootstrap. |
| tools/ci/pyproject.toml | Adds ci dev-dependency group for CI tooling packages. |
| tools/ci/pdm.lock | Updates lock metadata/groups and refreshes pinned dependency set. |
| test/e2e/tests/tickets/405.mjs | Adds new E2E ticket test scenario. |
| test/e2e/tests/tickets.json | Registers ticket 405 and updates refs for existing ticket. |
| test/e2e/tests/style_tests/plot/xAxis/label/autorotate.mjs | Adjusts test to include size channel during autorotation scenario. |
| test/e2e/tests/fixes/84.mjs | Adds new E2E fix regression test. |
| test/e2e/tests/fixes.json | Registers fix 84 and updates refs for existing fix. |
| test/e2e/tests/features/multilabel.mjs | Adds new multilabel feature E2E test coverage. |
| test/e2e/tests/features.json | Registers multilabel feature and updates refs for existing features. |
| test/e2e/tests/docs.json | Updates doc-test refs (expected output changes). |
| test/e2e/test_cases/test_cases.json | Updates many snapshot refs due to rendering/label behavior changes. |
| src/dataframe/old/types.h | Changes MarkerId::label from optional single slice to vector of slices. |
| src/dataframe/old/datatable.h | Updates DataCube::getId() label-level argument to a list. |
| src/dataframe/old/datatable.cpp | Builds multilabel MarkerId::label vector based on label-level list. |
| src/dataframe/impl/data_source.cpp | Uses std::views::reverse instead of std::ranges::views::reverse. |
| src/chart/rendering/drawlegend.h | Updates marker drawing API to accept multilabel slice vectors. |
| src/chart/rendering/drawlegend.cpp | Renders merged multilabel text; updates event targets for multilabel identifiers. |
| src/chart/rendering/drawaxes.h | Axis label info now carries multilabel slice vectors. |
| src/chart/rendering/drawaxes.cpp | Uses merged multilabel text for axis labels; updates event targets accordingly. |
| src/chart/options/options.h | Reworks label-level logic to produce list-based indices and label series lists. |
| src/chart/options/options.cpp | Updates legend auto-selection and label visibility checks for multiple label series. |
| src/chart/options/channel.h | Introduces LabelLevelList and switches labelLevel to list-based AutoParam. |
| src/chart/options/autoparam.h | Constrains AutoParam::toString() to types supported by Conv::toString. |
| src/chart/main/stylesheet.cpp | Uses merged multilabel strings for collision/autorotation boundary calculation. |
| src/chart/main/style.cpp | Fixes trailing commas (likely formatting/lint compliance). |
| src/chart/main/events.h | Makes text payload owned (std::string) and updates category info/event targets to multilabel indices. |
| src/chart/generator/plotbuilder.h | Updates bucket separation indexing to multilabel; adds default-split decision hooks. |
| src/chart/generator/plotbuilder.cpp | Implements default split decision; merges multilabels for sort/title; updates separation logic. |
| src/chart/generator/buckets.h | Uses std::views::transform. |
| src/chart/generator/axis.h | Migrates dimension axis keys/parts to multilabel vectors; adds merged-label helpers. |
| src/chart/generator/axis.cpp | Adds common-prefix matching for multilabel interpolation/legend interpolation; updates merge logic. |
| src/base/type/uniquelist.h | Uses std::views::keys; adds missing includes. |
| src/base/refl/auto_accessor.h | Uses std::views::keys. |
| src/base/math/renard.h | Value-initializes span member. |
| src/base/geom/rect.h | Uses std::views::transform for boundary calculation. |
| PROJECTS.md | Rewraps markdown links (formatting). |
| CHANGELOG.md | Notes experimental multilabel support. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
No description provided.