v3.2.0.0: Major formatting enhancements and modernization#212
v3.2.0.0: Major formatting enhancements and modernization#212DataZoeMS wants to merge 16 commits into
Conversation
New Features: - Theme color support for bar fills - Bar formatting: border, corner radius, inner padding - Center line customization (color, width, style) - Plot area background fill with transparency - Negative bar color customization - Axis normalization (scale to 100%) - Auto-range toggles for independent left/right axis min/max - Data label display format (Value, %, Value (%)) - Legend shows for both dynamic series and static measures - New modern icon with gradient bars Improvements: - Fixed high contrast mode for bars - Fixed legend bottom positioning - Updated legend defaults (Segoe UI 12, #616161) - Axis min/max validation (min cannot exceed max) Localization: - Added 28+ new keys to all 43 language files - Fixed missing legend formatting pane labels
There was a problem hiding this comment.
Pull request overview
This pull request introduces version 3.2.0.0 of the Tornado Chart visual with major formatting enhancements and modernization features. The update adds extensive customization options for bar appearance, axis controls, data labels, and visual theming while improving high contrast mode support and legend positioning.
Changes:
- Added comprehensive bar formatting options including borders, corner radius, spacing, and negative bar customization
- Implemented axis normalization and independent left/right axis range controls
- Enhanced data label display with multiple format options (value, percentage, or both)
- Improved theme integration with automatic color palette selection and background/foreground color awareness
- Updated localization files with 28+ new keys across 43 languages
Reviewed changes
Copilot reviewed 53 out of 57 changed files in this pull request and generated 18 comments.
Show a summary per file
| File | Description |
|---|---|
| src/TornadoChart.ts | Core rendering logic with new bar formatting, axis normalization, theme colors, and data label enhancements |
| src/TornadoWebBehavior.ts | Updated behavior handling for negative bar transparency and high contrast mode |
| src/TornadoChartSettingsModel.ts | New settings cards for bars, negative bars, center line, plot area, and axis controls |
| src/interfaces.ts | Added properties for axis min/max values and series-specific ranges |
| style/tornadoChart.less | CSS fix for legend bottom positioning |
| capabilities.json | New capability definitions for all formatting options |
| stringResources/*.resjson | Localization strings for 43 languages (mostly untranslated English keys) |
| assets/* | New modern icon with gradient bars and updated screenshot |
| package.json | Updated dependencies including powerbi-visuals-tools, webpack, and utilities |
| pbiviz.json | Version bump to 3.2.0.0 |
| CHANGELOG.md | Comprehensive changelog documenting all features and improvements |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Remove unused 'isNormalized' variable (line 248) - Remove unused 'hasDynamicSeries' parameter from getLegendData() (line 795)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…tColumn - Changed columnPadding from getter to private field _columnPadding - Calculate _columnPadding after heightColumn in computeHeightColumn() - Eliminates potential circular dependency while preserving bar spacing feature
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 53 out of 57 changed files in this pull request and generated 11 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- New labelPosition enum (auto, insideEnd, outsideEnd, insideCenter, insideBase) in capabilities and settings - New percentagePrecision integer setting - Default negative bars 'show' to true - Default bar/negative-bar corner radius to 4px - TornadoChart label rendering updates to support new position options - en-US localization additions; sync minor updates across all locales
- Remove unused fast-json-stable-stringify devDependency - Restore karma-typescript to 5.5.4 (revert accidental downgrade) - Move eslint and eslint-plugin-powerbi-visuals to devDependencies - Use Number.isNaN and != null pattern in axis value checks - Extract getBorderSettings helper to dedupe positive/negative bar border logic - Add HighContrastStrokeWidth constant (replaces magic number 2) - Add clarifying comment for per-series normalization scaling
Previously auto preferred outsideEnd whenever the label fit in outer space, which made short bars get outside labels and produced an apparent gap. Now auto picks insideEnd whenever the label fits inside the bar, falling back to outsideEnd only when it does not.
This reverts commit ebfab23.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 53 out of 57 changed files in this pull request and generated 5 comments.
Comments suppressed due to low confidence (1)
stringResources/en-US/resources.resjson:66
stringResources/en-US/resources.resjsondefines"Visual_Color"twice (once near the top and again near the bottom). Duplicate JSON keys can lead to unpredictable results depending on the parser (typically the last one wins) and makes localization harder to maintain. Remove the duplicate and keep a single canonical entry.
"Visual_Title": "Title",
"Visual_TitleText": "Title text",
"Visual_Legend_Name": "Legend Name",
"Visual_Legend_Color": "Color",
"Visual_Group": "Group",
"Visual_Color": "Color",
"Visual_Group_Left": "Left",
…s & unused series fields, fix changelog
|
#sign-off |
|
@Demonkratiy when you have a chance, could you take a look at this PR? All Copilot review threads have been addressed/resolved and CI is green. Thanks! |
New Features:
Improvements:
Localization: