Skip to content

Dim split based on Multilabel. - #642

Closed
schaumb wants to merge 1 commit into
mainfrom
dim_split
Closed

schaumb wants to merge 1 commit into
mainfrom
dim_split

Conversation

@schaumb

@schaumb schaumb commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@schaumb
schaumb changed the base branch from multilabel_on_axis to main March 3, 2026 21:56
@schaumb
schaumb marked this pull request as draft March 3, 2026 21:56
@schaumb
schaumb marked this pull request as ready for review March 3, 2026 21:56
@schaumb schaumb closed this Mar 3, 2026
@schaumb schaumb reopened this Mar 3, 2026
@schaumb
schaumb requested a review from Copilot March 31, 2026 16:34

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 labelLevel handling (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.

Comment thread src/chart/options/channel.h
Comment thread src/chart/generator/plotbuilder.cpp
Comment thread src/chart/generator/plotbuilder.cpp
@veghdev veghdev closed this Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants