fix: honor pie label.alignTo='labelLine' when label.position='outside'#21618
fix: honor pie label.alignTo='labelLine' when label.position='outside'#21618mvanhorn wants to merge 2 commits into
Conversation
The pie label layout pass at labelLayout.ts:137 only checked list[i].position === 'outer'. The rest of the pipeline normalizes 'outside' to 'outer' as an alias, so labels with position 'outside' were silently bypassing the labelLine alignment branch. Fixes apache#21617
|
Thanks for your contribution! Please DO NOT commit the files in dist, i18n, and ssr/client/dist folders in a non-release pull request. These folders are for release use only. To reviewers: If this PR is going to be described in the changelog in the future release, please make sure this PR has one of the following labels: This message is shown because the PR description doesn't contain the document related template. |
|
Runtime change LGTM. CI is failing in the added regression test because Also worth a follow-up docs cleanup: the pie docs currently mix |
data.getLayout('cx') is not populated for pie series; the center x
lives on each item's layout, so the new alignTo assertions read
getItemLayout(0).cx instead.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
When a pie chart series sets
label.positionto'outside'(an alias for'outer') andlabel.alignToto'labelLine', the labelLine alignment pass was being silently bypassed. The fix is a 2-line change to also match'outside'atlabelLayout.ts:137.Why this matters
The rest of the pie label pipeline treats
outsideandouteras the same position value. The labelLayout alignment branch is the one place that hardcoded just'outer', so users settingposition: 'outside'(the documented alias) saw misaligned label lines whileposition: 'outer'worked correctly. Reporter pinpointed the exact line.Changes
src/chart/pie/labelLayout.ts- widen the position check to accept both'outer'and'outside'inadjustSingleSide.test/ut/spec/series/pie.test.ts- add a regression test that asserts both'outer'and'outside'produce identical labelLine layouts whenalignTo: 'labelLine'.Testing
npm run test:ut -- pie.test(Karma + Jasmine).Fixes #21617