Skip to main content
Version: 5.2.0

v3.3.0

[3.3.0] - 2021-12-01

Added

  • Added Chart3D zoom animation
    • This is present when using mouse wheel or trackpad
    • Can be disabled with Chart3D.setAnimationZoom(false)
  • Added NewSurfaceGridSeries3D
    • Optimized version of previous surface grid series feature
    • This new feature has even up to 1000x better performance. Usage is almost exactly same
  • Added SurfaceScrollingGridSeries3D
    • Specially designed series type for scrolling surface applications
    • Compared to previous surface grid series feature, has up to 1000x better performance
  • Added Theme.surfaceSeriesWireframeStyle
  • Added CullMode3D. This can be used with new 3D surface series
  • Added TriangulatedPoints3DProperties.wireframeStyle. This allows drawing wireframe for 3D points. Disabled by default.
  • Added ChartXY.getDefaultAxes, Chart3D.getDefaultAxes
    • Convenience methods for applying same operations to several axes
  • Added ZoomBandChartOptions.bandAboveSeries to indicate whether band should be displayed above or below series.
    • Previously band was always under series.
    • Defaults to true, to display similarly as before set to false.
  • Added SpiderChart.setScaleLabelFormatter
  • Added optional automaticColorIndex property to all XY series options
    • This allows interacting with the default themes automatic coloring of several series
  • Added CustomTick.setAllocatesAxisSpace()
    • Can be used to disable axis allocating space for particular custom ticks.
  • Added lineAntiAlias EngineOption.
    • This can be used to explicitly disable line anti-aliasing.
  • Added Chart3D.onCameraChange, Chart3D.offCameraChange.
  • Added TimeTickStrategy.setTimeOrigin option, works similarly to DateTimeTickStrategy.setDateOrigin
  • Added ImageFill style.
    • Allows filling any rectangular shape in chart based on external image or video.
  • Added EngineSettings.webgl to allow specifying used WebGL (graphics framework) version.

Changed

  • Webpack 5 no longer requires additional configuration for Node JS core modules.
  • ZoomBandChart now automatically matches the TickStrategy of first attached axis.
    • ZBC axis can be manually modified using getDefaultAxisX and getDefaultAxisY methods, just like ChartXY
  • Significant optimizations to HeatmapGridSeriesIntensityValues and HeatmapScrollingGridSeriesIntensityValues
  • Added default wireframe style to heatmap grid series
    • To disable wireframe, use setWireframeStyle(emptyLine)
  • Heatmap grid series legend entries are no longer colored based on wireframe style
  • Changed default Chart3D bounding box stroke style to emptyLine
    • Use Chart3D.setBoundingBoxStrokeStyle to specify bounding box stroke style.
  • Added little bit of default left padding to UICheckBox and UIButtonBox
  • Changed default right padding in XY chart from 10px to 24px
    • To change right padding, use ChartXY.setPadding({ right: 10 })
  • Enabled Axis3D scroll animation by default.
    • To restore previous behavior, use Axis3D.setAnimationScroll(false) for each 3D axis.
    • Axes can be referenced like this Chart3D.getDefaultAxisX().
  • Improved line anti-aliasing quality.
    • Primitive lines, with only hardware anti-aliasing, can now be drawn by setting the line thickness to -1.
    • Previously primitive lines were used when line thickness was set to 1, now to use primitive lines you will need to use -1 as the thickness.
    • By default lines with thickness of 1 are now rendered with higher quality anti-aliasing.
  • Improved track-pad interactions with ChartXY and Chart3D (previously it was much too sensitive).
    • Known issue: track-pad is still too sensitive on Safari.
  • LightningChart JS now uses WebGL 2 whenever supported. This shouldn't introduce any major difference to existing applications and users. If anything, WebGL 2 should work better.
  • DateTimeTickStrategy.setFormatting... methods now allow supplying undefined for any value (only overriding particular settings).
  • DateTimeTickStrategy.setFormattingSecond now allows configuring formatting of minor ticks at that level.
    • This option was incorrectly missing before.
  • Charts now automatically trigger layout operation when chart container is resized.
    • This is done by using a ResizeObserver if the browser has support for it.
  • TriangulatedPoints3DProperties.size can now be Coord3D. This allows drawing 3D points with sizes on X, Y and Z Axes.
  • ZoomBandChart band is now drawn above series.
  • ZoomBandChart now supports Heatmap series (non-scrolling variant only).
  • ZoomBandChart can now be attached to several axis by supplying an array instead of just one axis when it is created.
  • ZoomBandChart now automatically aligns its right side according to reference charts.
    • Previously only left side was aligned.
  • Tweaks to default Axis ticks
    • In XY charts, ticks that do not fit no longer display their tickline and gridline. Previously, only the label was hidden.
    • Fixed Numeric major ticks sometimes behaving strange when there is little axis space available. For example, showing 1, 3, 5 instead of 0, 2, 4, 6.
    • Numeric minor ticks are no longer displayed if the axis is shorter than 50 pixels.
    • Slightly adjusted the selection of Numeric tick level. Larger tick levels are now activated slightly less eagerly.
  • ChartXY title no longer allocates top & bottom margins when title length is ''

Fixed

  • Fixed spline series mouse interactions being triggered when mouse was outside of spline.
  • Fixed Map Charts not properly stopping mouse and touch events.
  • Fixed dashboard series sometimes not rendering after disposing and creating several charts
  • Fixed Test Domain being prioritized over Deployment Domain.
    • Resulted in "Deployment Test" watermark being rendered in a valid Deployment Domain.
  • Fixed bad performance when repeatedly triggering clear + add methods for LineSeries or PointSeries.
  • Fixed heatmap series not updating palette if configured after intensity data.
  • Fixed GaugeChart disableAnimations flag not working when inside Dashboard.
  • Fixed GaugeChart behaving strange when animations are enabled and slice value is changed rapidly.
  • Improved high CPU usage in Chart3D when camera is rotated with automatic fitting enabled.
  • Fixed 3D pixelated points having different visible size with different device pixel ratio monitors.
  • Fixed chart interaction not properly canceled when interaction goes over OSM element.
  • Fixed 3D chart centering after resize -LinearGradientFill and RadialGradientFill now properly thrown an error when color stop definition doesn't contain enough color stops.
  • Fixed IntensityGrid and IntensityMesh not rendering after restored when using IndividualPointFill.
  • Fixed Axis event API having some incorrect typings (wheel, drag & touch events) and callback not receiving all arguments.
  • Fixed HeatmapScrollingGridSeriesIntensityValues scrolling sometimes behaving strangely (pausing or skipping ahead).
  • Fixed Axis animations sometimes not disabled even if chart animations are disabled.
  • Fixed touch events not properly cancelled when touch event goes over OSM.
  • Fixed XY and Polar Axis sometimes rendering incorrectly for 1 frame after window resize.

Deprecated

  • Deprecated Chart3D.addSurfaceSeries
    • To keep using surface grid series, use Chart3D.addSurfaceGridSeries.
      • This is a new series type with slightly changed API and greatly increased performance
    • To keep using surface mesh series, use Chart3D.addSurfaceMeshSeries
  • Deprecated Axis.setTickStyle. Use setTickStrategy instead.
  • Deprecated LUT.valueRangeMin, LUT.valueRangeMax. They do not affect anything anymore
  • Deprecated HeatmapGridSeries.setPixelInterpolationMode, use setIntensityInterpolation instead
  • Deprecated some inconsistently named methods of Axis:
    • onAxisAreaMouseDragStart -> onAxisInteractionAreaMouseDragStart
    • onAxisAreaMouseDrag -> onAxisInteractionAreaMouseDrag
    • onAxisAreaMouseDragStop -> onAxisInteractionAreaMouseDragStop
    • onAxisInteractionAreaMouseTouchStart -> onAxisInteractionAreaTouchStart
    • onAxisInteractionAreaMouseTouch -> onAxisInteractionAreaTouch
    • onAxisInteractionAreaMouseTouchStop -> onAxisInteractionAreaTouchStop
    • offAxisInteractionAreaMouseTouchStart -> offAxisInteractionAreaTouchStart
    • offAxisInteractionAreaMouseTouch -> offAxisInteractionAreaTouch
    • offAxisInteractionAreaMouseTouchStop -> offAxisInteractionAreaTouchStop
  • ZoomBandChart.attachedAxis, use attachedAxes (array property) instead.