v4.0.0
[4.0.0] - 2023-02-06
warning
This version is not available under @lightningchart in NPM.
It can only be accessed via legacy @arction organization.
Added
- Added
isThemeDark(Theme)function to check if selected theme is dark or light- Intended to be used on default library themes only, not custom user themes.
- Added
EngineSettings.pickingPrecisionfor modifying user interactions precision.- This should not be required in normal use cases, but exists just in case.
- Added
EngineSettings.interactablefor disabling all user interactions.- This can be useful in server side rendering applications, or otherwise when user interactions are not needed.
- Added new API
ChartXY.setAutoCursorEnabledDuringAxisAnimation- Supported by ChartXY
- Replaces functionality of removed APIs
Chart.setMouseInteractionsWhileScrollingandChart.setMouseInteractionsWhileZooming
- Added
Chart.getTitleSizemethod to get title size (width and height) in pixels - Added Dashboard.pixelScale property
- Added
ChartXY.setTitlePositionandChart.setTitleMarginmethods - Added
setVisibleandgetVisibleAPI to all visible elements.- This API can be used to hide an element from rendering but still keep updating it in the background.
- Added
onVisibleStateChanged/offVisibleStateChangedevent listener to most elements that supportsetVisible.- This event will be triggered when the visibility of an element is actually changed.
- Added
Hideableinterface.- This interface is implemented by everything that can be hidden with
setVisible.
- This interface is implemented by everything that can be hidden with
- Added
HideableEventsinterface.- This interface is implemented by everything that has event listeners available for visibility state changes.
- Added
setAnimationHighlightandgetAnimationHighlightmethods to chart components. - AreaSeries and AreaRangeSeries now support
emptyFillstyle - AreaSeries and AreaRangeSeries now support PalettedFill (x and y lookup properties)
regularColorStepsconvenience function- Added
SolidGauge.setIntervalLabelsFillStyle - Added
onDisposeandoffDisposemethods for all components that havedispose(). This event triggers whenever the object is disposed. - Added
isDisposed()for Dashboard and all Chart types. - Added
UIElementBuilders.AxisTickMinortype for CustomTick. This type has style of default minor tick - Added
isLUTCheckBox - Added
UILUTCheckBox.setLUTDisplayProportionalSteps - Added
Axis.onStoppedStateChanged,Axis.offStoppedStateChanged- Event API for tracking when Axis scrolling/fitting is stopped and unstopped.
- Added
setInteractionMoveByDraggingAPI to ConstantLine. Now ConstantLine interactions can be disabled without disabling entire mouse interactions - Added
SeriesXY.setDrawOrdermethod.- This method can be used to explicitly configure drawing order of series in 1 chart.
- Added common UI element API's to LegendBox
- Chart3D event API for series background.
onSeriesBackgroundMouseEnter, etc.
- Started tracking minimum required TypeScript version.
- This information is available in API documentation https://lightningchart.com/js-charts/api-documentation
- Currently minimum TypeScript version is 4.1
- Added new API
disableThemeEffects- New convenience API to easily disable the new glow and shadow effects from any given theme.
Dashboard.getCells- Returns all defined dashboard cells with content.
- EngineSettings.textPixelSnappingEnabled
- Can be used to toggle new text pixel snapping feature, which is enabled by default.
- If you encounter issues with text "moving" or "bouncing" undesirably, consider testing with disabling this experimental flag.
- Icon, IconProperties
- Currently only supported by Data Grid.
- Theme.legendTitleFont
- Added GlowEffects
- Controlled with
Theme.effect - Individual component effects controlled with
set...Effectmethods
- Controlled with
- Added
ImageFitMode.Tile - Added new Theme properties:
dataGridFont,dataGridTextFillStyle,dataGridCellStrokeStyle,dataGridBackgroundFillStyle
- Added
ValueGrid- New high level component type that can be placed in a Dashboard or used standalone.
- Provides a variety of frontend and data visualization methods inside a grid layout.
Changed
- Changed end user APIs that accepted rotations as radians to work with degrees instead:
- Data point
rotationproperty was previously interpreted as radian, now as degrees
- Data point
- ChartXY and Chart3D default interactions now also work over series, instead of just series background
- Theme interface now requires
isDarkproperty.- For user defined Themes, you may set this to any value safely. It only interacts with
isThemeDarkconvenience function.
- For user defined Themes, you may set this to any value safely. It only interacts with
- Improved some default user interactions on trackpad
- Affects: ChartXY zoom, Axis zoom, Chart3D zoom
- Zooming now responds better according to user interaction behavior (small movement = small effect, etc.)
- Changed Chart3D zoom animation to be smoother
- Creating LightningChart component on user supplied DIV no longer overrides
style.positionif it was previously assigned by user - Renamed
setHighlighted->setHighlightandgetHighlighted->getHighlight- New method now accepts boolean or a number between 0 and 1, meaning that the intensity of highlighting can be configured instead of just being ON/OFF
getHighlighted()previously returned Boolean, nowgetHighlight()returns Number
- Auto cursor now works when mouse is over a series with mouse interactions enabled.
- Previously this required user to disable mouse interactions with
series.setMouseInteractions(false)
- Previously this required user to disable mouse interactions with
onHighlightparameter can now benumberorboolean. Previously it was alwaysboolean.- Changed AutoCursor default behavior.
- AutoCursor is no longer disabled during Axis Animations (zooming, scrolling) by default
- To restore this behavior, use
ChartXY.setAutoCursorEnabledDuringAxisAnimation(false)
- Following components default mouse interactions enabled state changes from false to true:
- LineSeries, HeatmapSeries, all 3D series
- This will not affect performance in any way. By default this will result in these series highlighting when interacted above.
- To disable this, use setHighlightOnHover(false)
- Now axis interactions area expands when axis nibs are disabled.
- Axis nibs can be disabled with
axis.setNibInteractionScaleByDragging(false).setNibInteractionScaleByWheeling(false)
- Axis nibs can be disabled with
- Removed
LineStyle.thickness, please useLineStyle.getThickness()instead. forEachAxismethod now returnsthisinstead ofvoid- UICheckBox 'switch' event is no longer triggered when
setOn()is called and the state is actually unchanged. - Component highlighting is now animated by default.
- Animation can be disabled with
setAnimationHighlight(false)
- Animation can be disabled with
- Changed look of LightningChart JS logo that is visible when not using a license.
- highlighting doesn't touch the alpha channel anymore
- Changed
LegendBoxAddOptions.disposeOnClicktotoggleVisibilityOnClick.- Functionality is also changed to use setVisible internally, rather than dispose
- Disposing a component can no longer be reverted.
dispose()now permanently removes the component.- To temporarily hide a component, use
setVisible(false)instead
- Changed default cursor result table formatter of most series types.
- Use
series.setCursorResultTableFormattermethod to alter this behavior.
- Use
- Changed default CustomTick type from
UIElementBuilders.PointableTextBoxtoUIElementBuilders.AxisTickMajor - Renamed NewSurfaceGridSeries3D -> SurfaceGridSeries3D, NewSurfaceGridSeries3DOptions -> SurfaceGridSeries3DOptions
- Changed LegendBox LUTs to not display relative distances between step values. This was done to improve use of space and avoid overlapping labels in cases where LUT steps deltas increase exponentially.
- The previous display behavior can be restored with
UILUTCheckBox.setLUTDisplayProportionalStepsmethod
- The previous display behavior can be restored with
- LegendBoxes are now not draggable by default.
- To revert to previous behavior add
legend.setDraggingMode(UIDraggingModes.draggable)after LB is created.
- To revert to previous behavior add
- Renamed
Axis.isStoppedtoAxis.getStopped - Slightly altered behavior of
Axis.setInterval4th parameterdisableScrolling- Renamed to
stopAxisAfter - Before, the method released the Axis unless the
disableScrolling = true - Now, the method stops the Axis unless
stopAxisAfter = false - Essentially very similar behavior, but now works a little bit more logically. Usage should not be affected by this change
- Renamed to
- Axis API 'onScaleChange' was changed to 'onIntervalChange' and accepts a callback function with 3 parameters that return axis itself, start and end values
- Previous event accepted only 2 parameters, start and end
- Wrapped parameters of
Axis.setIntervalmethod in an object- Previous use:
Axis.setInterval(start, end)->Axis.setInterval({ start, end }) - Parameter
disableScrollingwas renamed tostopAxisAfterand has a 'true' value by default
- Previous use:
- Library now targets ES6 version instead of ES5.
- Previously optional
Themeproperties are no longer optional.uiTickFontuiTickStrokeStyleuiTickTextFillStyleuiPointableTextBoxFontuiPointableTextBoxStrokeStyleuiPointableTextBoxTextFillStyleuiPointableTextBoxFillStylelcjsBackgroundFillStylelcjsBackgroundStrokeStyleheatmapGridSeriesFillStyleheatmapGridSeriesWireframeStylesurfaceSeriesWireframeStyleresultTableTextFontpolarAreaSeriesStrokeStylepolarAreaSeriesFillStyle
- Loosened types of
LineStyleandemptyLine. This should not cause any issues with existing applications, but should make it easier to use the library with type safety. - ImageFill.sourceMissingColor default value changed from opaque black to completely transparent black.
- Slightly tweaked default legend, checkbox and lut checkbox style and layout.
- Changed UI layout behavior (UIElementColumn/UIElementRow)
- Before layout was "center oriented", its members were aligned around the entire layouts center.
- Now, members are aligned to the start of layout (top for Row and left for Column). This should feel more logical than before.
Removed
- Removed all highlight style methods. This removes the ability to apply different style of highlighted components (all highlighted components now behave the same, always). To change highlighted style differently, change component style in event handlers.
setSplitterStyleHighlightgetSplitterStyleHighlightsetStrokeStyleHighlightgetStrokeStyleHighlightsetLineStyleHighlightgetLineStyleHighlightsetPointStyleHighlightgetPointStyleHighlightsetPointFillStyleHighlightgetPointFillStyleHighlightsetFillStyleHighlighted(PolarSector)getFillStyleHighlighted(PolarSector)setFillStyleHighlightgetFillStyleHighlightsetBodyFillStyleHighlightgetBodyFillStyleHighlightsetMedianStrokeStyleHighlightgetMedianStrokeStyleHighlightsetBodyStrokeStyleHighlightgetBodyStrokeStyleHighlightsetHighFillStyleHighlightsetLowFillStyleHighlightsetHighStrokeStyleHighlightsetLowStrokeStyleHighlightsetPositiveFillStyleHighlightgetPositiveFillStyleHighlightsetNegativeFillStyleHighlightgetNegativeFillStyleHighlightsetPositiveStrokeStyleHighlightgetPositiveStrokeStyleHighlightsetNegativeStrokeStyleHighlightgetNegativeStrokeStyleHighlightcreateDefaultHighlightStylegetDefaultHighlightStyle
- Removed
Series.solveNearestFromSegment, usesolveNearestFromScreeninstead - Removed
Series.onHover,Series.offHover - Removed
Chart.setMouseInteractionsWhileScrolling- Use
ChartXY.setAutoCursorEnabledDuringAxisAnimationinstead
- Use
- Removed
Chart.setMouseInteractionsWhileZooming- Use
ChartXY.setAutoCursorEnabledDuringAxisAnimationinstead
- Use
- Removed Chart.setTitleMarginTop, Chart.setTitleMarginBottom and respective getters.
- Use Chart.setTitleMargin instead.
- Removed all
restore()methods- To show temporarily hidden components, use
setVisible(true)
- To show temporarily hidden components, use
- Removed all
getDisposed()methods.- Disposing a component can no longer be reverted. If a component is disposed by user, then that component should no longer be interacted with in any way.
- Removed several built-in Themes.
- Removed some custom theme utilities included in library
- Types: CustomFillStyle, CustomLineStyle, CustomStyle
customTheme,customSimpleTheme,customComplexTheme
- Removed
SpiderSeries.setDisposeAnimation()- Replaced with
setVisibleStateChangedAnimation
- Replaced with
- Removed
Axis.stop()- Replaced with
Axis.setStopped(true)
- Replaced with
- Removed
Axis.release()- Replaced with
Axis.setStopped(false)
- Replaced with
- Removed type
UILegendBox- Should be replaced as just
LegendBox
- Should be replaced as just
- Removed ability to specify Theme when adding a component to
Dashboard.- Theme must be specified when creating the Dashboard and thus must also be same for all components inside the Dashboard.
- Old themes.
darklightdarkGradientlightGradientauroraBorealissunsetblueSciFimonochromelavenderlavenderGradientclassicnightraspberrylipstickgreenlightGreenredlightRedpurplelightPurplerainbow
Chart.disableAnimations()method. UseChart.setAnimationsEnabled(false)instead.ChartXY.addHeatmapSeries- Use
ChartXY.addHeatmapGridSeriesorChartXY.addHeatmapScrollingGridSeriesinstead. - Heatmap Mesh type is temporarily removed and is planned to be reintroduced in future. If you require this feature, please contact us and let us know your use case so that we can provide possible alternative methods or timeline on when this is reintroduced.
- Use
ZoomBandChart.attachedAxis- Use
ZoomBandChart.attachedAxesinstead.
- Use
HeatmapGridSeries.setPixelInterpolationMode- Use
HeatmapGridSeries.setIntensityInterpolationinstead
- Use
Chart3D.addSurfaceMeshSeries- 3D Surface Mesh Series is temporarily removed and is planned to be reintroduced in future. If you require this feature, please contact us and let us know your use case so that we can provide possible alternative methods or timeline when this is reintroduced.
Axis.getHeight()Dashboard.mapChartsandDashboard.forEachChart- Use
Dashboard.getCellsand filter forChartinstances to replace these methods.
- Use
- Renamed axis event handlers.
onAxisAreaMouseDragStartonAxisAreaMouseDragonAxisAreaMouseDragStoponAxisInteractionAreaMouseTouchStartonAxisInteractionAreaMouseTouchonAxisInteractionAreaMouseTouchStopoffAxisInteractionAreaMouseTouchStartoffAxisInteractionAreaMouseTouchoffAxisInteractionAreaMouseTouchStop
- 3D Line Style methods.
LineSeries3D.setLineStyleLineSeries3D.getLineStylePointLineSeries3D.setLineStyle
Chart3D.addSurfaceSeries- Use
Chart3D.addSurfaceGridSeriesorChart3D.addSurfaceScrollingGridSeriesinstead. - Surface Mesh type is temporarily removed and is planned to be reintroduced in future. If you require this feature, please contact us and let us know your use case so that we can provide possible alternative methods or timeline on when this is reintroduced.
- Use
- Removed deprecated Theme properties.
- `dashboardBackgroundFillStyle
- `dashboardBackgroundStrokeStyle
- `axisLabelFillStyle
- `axisLabelFont
- `customTickMarkerFillStyle
- `customTickMarkerTextFillStyle
- `customTickMarkerStrokeStyle
- `customTickMarkerFont
- `seriesStrokeStyle3D
- `seriesTriangulatedPointStyle3D
- `seriesNonTriangulatedPointStyle3D
- `OHLCBarPositiveHighlightStyle
- `OHLCBarNegativeHighlightStyle
- `candleStickStyleHighlight
- `candleStickPositiveStyleHighlight
- `candleStickPositiveStrokeStyleHighlight
- `candleStickNegativeStyleHighlight
- `candleStickNegativeStrokeStyleHighlight
- `pointMarkerHorizontalGridStrokeStyle
- `pointMarkerVerticalGridStrokeStyle
- `pointMarkerTextFillStyle
Axis.setTickStyleUseAxis.setTickStrategyinstead.Series.setMaxPointCount,Series.getMaxPointCount- Use
Series.setDataCleaninginstead.
- Use
setDataCleaningThreshold- Use
setDataCleaninginstead.
- Use
LUTOptions.valueRangeMinandLUTOptions.valueRangeMax- Removed HighlightModes and setHighlightMode methods
- Usually should use setHighlightOnHover instead
- Previous use of onHoverIndividual option is no longer supported. Instead, components should be separated into different series or custom events should be used.
Fixed
- Fixed FigureSeries mouse drag stop event receiving wrong parameters
- Fixed Chart3D zoom animation being more sensitive with low FPS
- Crash when invalid point shape was provided.
- Fixed
PointLineSeries3Dpoint stylewireframeoption not working. - Fixed
SurfaceGridSeries3Dwireframe being invisible whenthickness< 0 - Fixed ConstantLine RadialGradient when thickness = 1
- Fixed
PointSeries3Dwireframe being invisible whenthicknessis < 0 - Fixed visual error when trying to add entry to a disposed legend box.
- Fixed Candlesticks being invisible when close is equal to open
- Fixed LegendBox.setEntries() affecting all LegendBoxes instead of just one.
- Fixed ChartXY fitting rectangle sometimes looking like zooming rectangle (no crosses)
- Fixed ticklines and gridlines being hidden if label fill style is set to
emptyFill - Fixed crash when using Surface 3D Series on some mobile devices.
- Fixed StepSeries cursor picking on non-real data points some times.
- Fixed Numeric ticks performance issue that sometimes occured when axis interval is less than 1.
- Fixed PointLineSeries3D crash when points are styled as PalettedFill but stroke not.
- Fixed PointSeries3D crash with emptyFill but visible wireframe
- Fixed Line series some data points not being solvable by cursor when using data gaps
- Fixed crash when creating zoom band chart on an Axis that contained an area series
- Fixed MapChart incorrect PalettedFill color interpolation when interpolation disabled
- Fixed
SolidGauge.setDataLabelFillStylealso affecting interval labels fill style - Fixed hiding components using LegendBox sometimes changing render order of components.
- Fixed visibility rendering issue in spline series
- Fixed LineSeries -1 thickness resulting in axis regions shrinking and possibly partly clipping lines
- 1 thickness can be used for most optimal line rendering mode, especially useful for low end devices.
- Fixed
synchronizeAxisIntervalssometimes stopping scrolling if 1 of many series are hidden via LegendBox. - Fixed application crash in a specific scenario when RectangleFigure style is changed to emptyFill during run-time
- Fixed GaugeChart animations sometimes doing quirky unanimated jumps when value is changed more rapidly than animation finishes.
- Fixed mouse enter and leave events sometimes being fired in wrong order when moving mouse between two objects
- Correct order is always LEAVE, ENTER
- Fixed performance issue when ZBC is used with large line chart (over 1 million data points).
- Fixed rendering line shapes after styling visible style to empty style and then to SolidLine
- Fixed issues with gradient fill during streaming data in LineSeries
- Fixed AreaSeriesBipolar wrong rendering sometimes when data crosses over baseline.
- Fixed console warning: "Canvas2D: Multiple readback operations using getImageData are faster with the willReadFrequently attribute set to true."
- Fixed UICircle background sometimes not rendering properly when chart viewport changes.
- Fixed MapChart Turkey having incorrect ISO_A3 code
- Fixed chart mouse interactions and coordinate translation messing up if chart is scrolled in a non-body div that is also not the charts container.
- This fix does not work out of the box. In this kind of use case, you'll have to inform the chart when it is scrolled with
chart.engine.layout()
- This fix does not work out of the box. In this kind of use case, you'll have to inform the chart when it is scrolled with
- Fixed
ChartXYrectangle zoom/fit sometimes failing randomly (not doing anything) - Fixed chart flickering sometimes when resizing
- Fixed occasional crash / memory leak issue related to use of
ZoomBandChart.dispose - Fixed some warnings not being disabled by
warningsLCJS option.- "Uint8ClampedArray is not supported as texture data..."
- "WebGL extensions could not be loaded..."
- Fixed Axis interaction events not triggered if the default interaction is disabled.
- This effectively prevented defining custom interactions over Axis.
- Fixed series with auto scrolling disabled still affecting axis regions.
- Fixed Axis.setChartInteractionZoomByWheel(false) not working
- Fixed massive performance issue with LineSeries3D and PointLineSeries3D
- Introduced in v3.4.0
- Fixed logarithmic minor ticks hidden when no major tick is visible
- Fixed AutoCursor sometimes being below UI elements
- Fixed incorrect LUT color lookup in some specific use cases
- Map, Funnel, Gauge, Pie, Pyramid when LUT with interpolation disabled is used.
Deprecated
- LightningChart JS no longer officially supports Internet Explorer 11.