A Top or Bottom legend only reserved a single row of height regardless of
series count, so with many series the legend wrapped onto multiple rows and
overlapped the plot area. Measure now simulates the horizontal wrap across the
chart width and reserves height for every wrapped row.
Fixes#2573
Replace RadzenChart.ExportAsync with ToSvg() returning the baked, standalone
SVG string (matching QRCode/Barcode). Add ToPng(fileName) to all three, which
rasterizes the SVG to PNG and downloads it via the shared Radzen.downloadFile
helper. Fix copy-pasted RadzenBarcode.ToSvg doc that referenced a QR code.
IsPolarSeries only matched generic concrete types, so a user subclass
like 'class MyPie : RadzenPieSeries<MyItem>' fell through and was
treated as a point series in FindClosestSeries (and would have rendered
axes from ShouldRenderAxes). Walk the base chain to find the generic
definition.
Pie, donut, funnel and pyramid series return the cursor position from
DataAt (a hit anywhere inside the filled shape), so their distance is
always 0 and they would beat a line/scatter marker drawn on top - the
same problem already fixed for columns and bars.
Extend the region classification to cover the radial series and reuse
the shared IsPolarSeries helper in ShouldRenderAxes. Rename IsAreaSeries
to IsRegionSeries since it now covers pies as well as filled bars.
On a non-shared tooltip with overlapping column + line series, the column
won the hover because its DataAt reports the cursor position (distance 0),
and the tooltip popup did not refresh when switching between series that
share the same data objects.
Add FindClosestSeries with point-series priority (line/scatter/bubble win
over column/bar within tolerance) and include the series identity in the
tooltip de-duplication. Add a regression test.
Adds braces to all single-statement if/else/for/foreach/while bodies in
Radzen.Blazor. Flipping the rule to error in .editorconfig and enabling
EnforceCodeStyleInBuild prevents future regressions.
Fixes generated mechanically via `dotnet format style --diagnostics IDE0011`.
The accompanying using-directive sort was reverted to keep this PR
braces-only.
Replace the tooltip-level CrosshairMode/Color/LineType/StrokeWidth
parameters with a RadzenAxisCrosshair child component on
RadzenCategoryAxis / RadzenValueAxis. Each axis can independently
control Visible, Stroke, StrokeWidth, LineType, Snap, and Label.
The X line snaps to the nearest data point regardless of
TooltipTolerance, and the optional Label renders a small SVG box at
the axis edge with the formatted axis value, reusing the axis's
Formatter/FormatString and styled via the existing tooltip CSS
variables.
Move the split tooltip example out of the crosshair demo into the
chart-tooltip page where it conceptually belongs.
Removing a series from the chart only dropped it from the Series list
without rebuilding the category/value scales. When a RadzenChart
instance was reused across a render that replaced its series, new
series' Data callbacks would refresh the scale while the outgoing
series were still present, and after they were finally disposed the
scale kept the stale categories. Triggering a refresh on removal
rebuilds the scales from the live series set.
Hovering or clicking a legend item now displays the tooltip for the
corresponding segment. This helps when small slices are difficult to
hover over directly on the chart. The feature is enabled by default
and inherited by RadzenDonutSeries via RadzenPieSeries.
* Remove Microsoft.CodeAnalysis. Add own C# expression parser.
* Popup dialog animations (#2118)
* Experiment with popup and dialog animations.
* Move animations to a separate _animations.scss
* Remove dialog closing animation.
* Support side dialog positions. Prefix keyframes.
* Use --rz-transition for animation function and duration
* Reset site.css.
* PanelMenu animations.
* Display none is toggled a bit late.
* RadzenPanel animations.
* More animations.
* Use transitions for panel menu.
* Remove old code.
* Accordion uses transitions.
* Panel uses transitions.
* Extract expand and collapse implementation in a separate component.
* Set initial expand state earlier to prevent two renders.
* Add open animation to notifications.
* Handle onanimationend before toggling the animation classes.
* Add menu animation.
* Experiment with tree animation.
* Add animations to fieldset.
---------
Co-authored-by: yordanov <vasil@yordanov.info>
* ExpressionSerializer and tests added (#2119)
* Fix failing tests.
* various components RequiresUnreferencedCode attribute added (#2120)
* RequiresUnreferencedCode added to ExpressionSerializer
* Update premium themes
* RequiresUnreferencedCode added to ExpressionParser
* FormComponentWithAutoComplete RequiresUnreferencedCode removed
* Revert "FormComponentWithAutoComplete RequiresUnreferencedCode removed"
This reverts commit ec900a4df8.
* Revert "RequiresUnreferencedCode added to ExpressionParser"
This reverts commit f93b3b159b.
* Revert "RequiresUnreferencedCode added to ExpressionSerializer"
This reverts commit 06fecec9a6.
* Revert "various components RequiresUnreferencedCode attribute added (#2120)"
This reverts commit 2ed1a6cac1.
* Remove RadzenHtml.
* ExpressionSerializer FormatValue updated to use InvariantCulture
* Catch potential JS interop exceptions that could occur during disposing.
* Revert "Remove RadzenHtml."
This reverts commit 319085bf49.
* SelectBar made single tab stop
* RadioButtonList and CheckBoxList made single tab stop
* SelectBar accessibility improved
* RadioButtonList accessibility improved
* CheckBoxList accessibility improved
* Update radio button focus styles
* Update checkbox list focus styles
* Update Checkbox Radio and SelectBar focus styles
* SelectBar, CheckBoxList and RadioButtonList focus state improved
* Check for Multiple added
* Use non-rendering event handlers for transitionend.
* Rename css class rz-selectbutton to rz-selectbar and improve focus states
* Fix selectbar focus outline offset
* Update premium themes
* Selectbar item focus styles should not be visible if the item is disabled.
* CheckBoxList and RadioButtonList item focus should be visible only on keyboard input
* SelectBar, CheckBoxList and RadioButtonList focus logic improved
* Update animations
* RadzenText margin-block should be 0 if it is in RadzenStack. Resolves#2134
* RadzenText margin-block should be 0 if it is first level child in RadzenStack
* CheckBoxList focused fixed
* Add toggle state classes to panel menu icon.
* Update accordion styles to reflect expander changes
* Add animation styles to expand arrow in Menu and ProfileMenu
* Use a instead of NavLink as it seems to cause performance issues.
* Set @bind-Expanded.
* Revert "Set @bind-Expanded."
This reverts commit 994107367bdf09043950f8bbe701eb9edefec676.
* Revert "Use a instead of NavLink as it seems to cause performance issues."
This reverts commit 05d5bef8f421bbeb5828ba1e9c5af6793ea3d32a.
* Reduce rendering of panel menu items.
* Add panel menu component.
* Use ChildContent to render the toggle icon of the panel menu item.
* Sync panel menu item selection in the item itself.
* Rename ExpandedInternal to expanded.
* Move filtering to the panel menu component.
* Remove the transitionend handler to avoid a second rendering pass.
* Build the assets for the net9.0 framework.
* Do not trigger render when Click is used.
* Panel menu keyboard navigation renders only when needed.
* Focus reworked to use AsNonRenderingEventHandler
* Focus the first item.
* Update Panel demo
* Use a more robust algorithm for month view event rendering that handles overlapping of events across a week.
* Use RadzenStack in RadioButtonList
* Add parsing support for `&` and `|`.
* Add parsing support for `^`, `>>` and `<<`.
* Simplify expression parsing tests.
* Use RadzenStack in RadioButtonList and CheckBoxList
* Change defaults for AlignItems and JustifyContent in RadioButtonList and CheckBoxList
* Update RadioButtonList and CheckBoxList demos
* Add --rz-input-border-block-end css variables to improve Fluent theme styles
* Removed AsNonRenderingEventHandler from RadioButtonList and HtmlEditor focus and blur
* Removed AsNonRenderingEventHandler from CheckBoxList
* Simplify RadzenTable rendering.
* Optimize memory usage of the ClassList utility.
* Refactor RadzenButton to use ClassList.
* RadzenSelectBar and RadzenSplitButton use ClassList.
* Refactor RadzenBadge and RadzenAlert to use ClassList.
* Refactor RadzenCard and RadzenFormField to use ClassList.
* Refactor RadzenCardGroup and progress components to use ClassList.
* Refactor RadzenMenu to use ClassList.
* Use ClassList in RadzenBody, RadzenLayout and editor rendering components.
* RadzenDialog uses ClassList.
* RadzenDataGrid uses ClassList.
* RadzenPager uses ClassList.
* RadzenColumn uses ClassList.
* Fix RadzenSplitButtonItem focused state.
---------
Co-authored-by: Atanas Korchev <akorchev@gmail.com>
Co-authored-by: Atanas Korchev <454726+akorchev@users.noreply.github.com>
Co-authored-by: yordanov <vasil@yordanov.info>
Co-authored-by: Quentin H <67709967+quintushr@users.noreply.github.com>
* Added DisplayToolTipFor Method to RadzenChart.razor.cs. Made Series property public.
* Chnaged Series public accessor back to internal. Added GetSeries Method that returns an IReadOnlyList of the Series. Added XML documentation. Made changes to DisplayTooltipFor Method. Removed null checks and try/catch block.
* removed unnessecary usings.
---------
Co-authored-by: John Tolliver <jtolliver@wbrsllc.com>
* Render chart tooltips in the same way as standard tooltips
* Move OpenChartTooltip method to TooltipService to avoid code duplications
* Avoid partially hiding of chart tooltip near top of page
* Make some of the types internal.
---------
Co-authored-by: Atanas Korchev <akorchev@gmail.com>
* Fixed chart Click method
- Was not using x and y parameters
- Use the same maximum distance as the tooltip (so that click and tooltip returns the same thing)
- Fixed xDelta and yDelta that were not considering MarginLeft and MarginTop
* Add ClickTolerance and TooltipTolerance.
---------
Co-authored-by: Atanas Korchev <akorchev@gmail.com>
* Improved chart tooltips
- Show closest tooltip in line chart (instead of the first close enough)
- Improved speed
- Show it over or under to greatly reduce chances of tooltip being offscreen
* Moved caching into the Category method
* Reset categoryPropertyCache in SetParametersAsync.
* Revert tooltips to always show above
* Update _chart.scss
---------
Co-authored-by: Atanas Korchev <akorchev@gmail.com>
* Initial stack column series.
* Better maximum. Rounded corners only on the last series.
* Tooltips.
* Fix the offset of the first series.
* Actually make it correct.
* Optimizations.
* Update the demo.
* Add stacked bar files.
* Stacked bar tooltip.
* Data labels.
* Update the headings.
* Do not show trend tooltip if the line is not visible and fix line names
Revert accidental removal of commit 6b9d2c19a7 (FilterCleared event)
* Fixed trend lines length and contains() method