v7.0.1
[7.0.1] - 2025-02-05
Original release news here
Added
- Added rounded corners. Enabled by default.
- Reverting back to non-rounded corners can be done by setting
Theme.legendBorderRadius/Theme.cursorResultTableBorderRadiustoundefined
- Reverting back to non-rounded corners can be done by setting
- Added
TextSeries- New powerful and more convenient feature for displaying text objects inside
ChartXY - Compared to old approach of using UI elements, is more performant, supports clipping text outside axis view and exposes handy methods for interacting with text boundaries and size.
- New powerful and more convenient feature for displaying text objects inside
- Added text shadows (beta)
- Improves text readability by displaying a different colored shadow under it
- For dark built-in Themes enabled by default. Can be disabled with
disableTextShadows
- Added high precision axis support to XY heatmap series.
- This makes using heatmaps in time series applications that require zooming up to hours, minutes, seconds or lower significantly easier.
- Added new
PointLineAreaSeries.solveNearestsignature- Allows solving nearest data point from an axis coordinate, rather than client coordinate
- Added ability to style cursor row backgrounds separately to highlight headers or other rows
- For demonstration, see cursors in online examples.
- Can be used via default cursor formatters or by using
rowFillStyleproperty fromResultTableCellContent
- Added ability for cursors to display the color of pointed data point even in dynamically colored applications (such as heatmaps, color look up, etc.)
- Can be used via default cursor formatters or with
useCursorDataPointColor.
- Can be used via default cursor formatters or with
- Added
SurfaceScrollingGridSeries3D.invalidateValues, getSampleCount- Equivalent API that was previously introduced for 2D heatmap series to be used in time-series applications.
- Added
ChartXYLayoutChangedEvent,ChartXY.getLayout- These are new function concepts aimed to help with static aspect ratio apps and other use cases that require knowing the dimensions of ChartXY axis sizes, viewport sizes, etc.
- Released as @beta - the APIs might change based on user feedback.
- Added
MeshModel3D.setModelFromObj- Built-in OBJ parsing was implemented due to issues of open source alternatives not loading many files properly.
- Compared to before also supports automatic normal calculation if missing from source.
- Added
undefinedparameter option toAxis.setIntervalRestrictionsfor removing any previously added restriction - Added
Axis.setHighlightOnHover,Axis.getHighlightOnHover - Added couple new experimental scroll strategy options
AxisScrollStrategies.fittingStart,fittingEnd,nextPowerOf10
- Added ability to control text font and fillstyle even when supplying a
Seriesor other chart component to cursor result table content. This was previously not possible - Added
Axis.isX,isY- Simple convenience flags for end user utilization
- Added
MeshModel3D.setModelMaterial- Allows reading .mtl (material) files for per-part coloring and shading.
- Added new "stacked sum label" functionality to BarChart (stacked variant)
- Enabled by default. Shows the sum of all subcategory values of a category.
- Please see migration guide if you want to restore previous behavior.
- Added
PolarAxisRadial.setMarginAfterTicks
Changed
ChartXYaxis by default sets interval restriction to prevent zooming outside attached data.- Can be reverted using
Axis.setIntervalRestrictions(undefined) - This behavior is also automatically disabled if axis interval is explicitly configured in application code.
- Can be reverted using
- Reworked all user interaction APIs.
- For more information, see migration guide.
- Reworked all Event APIs.
- For more information see migration guide
ChartXYAxes now automatically ensure that their tick labels don't leak outside the axis bounds (for example, outside chart render area or inside other stacked axes)- Previous behavior can be restored with
Axis.setKeepTickLabelsInAxisBounds - This change makes it easier to fit charts into small containers without having to be afraid of labels cutting off. For this reason, the default
rightpadding of ChartXY has been reduced from 24 to 15 pixels.
- Previous behavior can be restored with
- Various improvements to built-in tick placement behavior
- Prevent situations where there is only 1 tick visible
- Prevent situations where there are too many ticks visible, resulting in cluttered look
- Improved readability of date-time and time minor ticks
- Fix situations where chart layout would be slightly off during 1st displayed frame
- Performance improvements from reduced number of ticks in many cases
- LightningChart JS now adds
touch-action: noneto its container div style when a chart is created- This is required for touch interactions to work as expected.
- As a side effect, native touch interactions such as scrolling page up/down no longer work when interacting directly on the charts.
- Previous behavior can be restored by adding CSS
touch-action: autoto the container div
AxisTickStrategies.DateTimenow defaults to great ticks disabled.- These refer to additional labels that display year or month on certain zoom levels.
- Previous behavior can be restored with
chart.axisX.setTickStrategy(AxisTickStrategies.DateTime, (strategy) => strategy.setGreatTickStyle(strategy.getMajorTickStyle().setTickLength(28).setTickStyle(emptyLine)))
- Reworked
appendJSONmethod type definition to be more relaxed.- Issue previously was that some specific TypeScript syntaxes did not satisfy the type even though the idea was completely valid.
- Removed dependency to
@lightningchart/eventer - Reworked
SpiderChart- Supports different axis intervals within a single chart.
- Chart will automatically scale and format axis intervals if not overridden.
- Please refer to migration guide for full changelog.
- Changed
BanddefaultvalueEndvalue from0to1 - Changed default button look slightly (legends/cursors)
- Now vertical linear gradient instead of previous radial gradient
- Improved BarChart label fitting algorithm to display labels more aggressively as long as they don't collide with other labels
- Type changes to
BarChartValueLabelsandBarChartLabelFormatterto accommodate new functionality of displaying stack sum labels.- Please see migration guide for details.
- Changed type definition of
FormattingRange- Previous type definition was unnecessarily complicated. This is a backwards incompatible change, more information can be found in migration guide.
- Changed
AxisTickStrategies.Numericextreme tick placement behavior slightly. It now ignores axis regions always, meaning extreme ticks may be a few pixels away from visible axis start/end.- Change was made for manual configured axis interval use cases as otherwise extreme ticks would display different values than configured extremes
- Slightly changed progressive
DataSetXYbehavior. Now later coordinate having same value as previous is accepted. Previously had to be at least slightly larger (or smaller depending on pattern) PolarChartradial axis ticks are no longer hidden when they are positioned where radial axis title would be, if axis title is hidden- Changed
PolarAreaSeries.setConnectDataAutomaticallyEnabled(true)behavior. Removed amplitude interpolation, now directly connected to first data point.
Removed
- Removed
Figure.getBoundaries- The method was widely unused and misleading. It was mainly introduced for internal purposes but accidentally included in end user API
- Removed
MapChart.getRegionUnderMouse- Replaced by
MapChart.regionswhich allows following interactions above all MapChart regions
- Replaced by
- Removed
isDateTimeTickStrategy,isNumericTickStrategy,isTimeTickStrategy,isEmptyTickStrategy- These did not work and there is no identified use case for them even if they did work
Fixed
- Fixed
ChartXYanimated zoom to fit sometimes resulting in first X axis animation and only afterwards Y axis animation - Fixed
PointLineAreaSeries.getYMin, getYMax, getXMin, getXMaxnot returning up to date value when used immediately after data is pushed in. - Fixed
PointLineAreaSeries.getYMin,getYMax,getXMin,getXMaxreturning only visible data ranges rather than full data set ranges.- For example, for case ProgressiveX, if only part of series was visible
getYMaxwould only consider data points that are visible.
- For example, for case ProgressiveX, if only part of series was visible
- Fixed
AxisTickStrategies.Timedisplaying milliseconds in major ticks at ~10 second time interval.- Completely redundant information because every major tick is displayed at :000
- Improved chart position tracking on scrollable web pages to alleviate issues where chart would not be interactable after its position would be changed.
- Fixed theme effect leaking incorrectly inside
DataGrid - Fix
ParallelCoordinateChartseries also rendered outside series area if axis interval is manually set - Fixed
BarChartaxes not visible when no data present. - Fixed
ParallelCoordinateChart.setCustomCursorand cursor target change event not working. - Fixed bug where hovering mouse over
PointLineAreaSerieswith data gaps could break cursor result table from being displayed. - Fixed minor memory leak in
ChartXY - Fixed minor performance overhead in
PointLineAreaSerieswhen points rendering is enabled. - Fixed
PolarSectorangle restrictions preventing for example displaying a sector from 350 deg to 10 deg. - Fixed
PointLineAreaSeriesrender error where entire series could temporarily be invisible.- Happened in very specific circumstances, where there was a large gap between two data points and zoom level was changed very particularly.
- Fix
PointLineAreaSeriesnot working properly withRegressiveYdata pattern in scrolling applications. - Fixed performance issue on inverted
ChartXYaxes (end < start). Caused chart to re-render even though nothing had changed. - Fixed
PointLineAreaSeriesrender error where line trend would ignore actual data provided and draw a straight line.- Happened in streaming applications with very time-specific zoom level changes.
- Fixed all LCJS chart types assigning
positionandboxSizingCSS properties to container DIV even if they are explicitly defined in user applications CSS. - Fixed FPS problem when using
GaugeChartwith small container size - Fixed incorrect
GaugeChartunit label position when animations are disabled. - Fixed some glow effect rendering issues related to browser zooming.
- Fixed incorrect data gap rendering for
PointLineAreaSerieswith spline- Some segments were not rendered