Copies own properties of an interface or copies all of its props if base type is not provided. Makes all of the props required.
Function signature for the SVG builder function
Canvas "BackBuffer" coordinate (Pixel Coordinate value multiplied by DpiHelper.PIXEL_RATIO)
Horizontal text alignment for multiline text.
Text rotation in degrees.
Defines text style with advanced options
Definition of an animation, comprising a EAnimationType and the relevant options
Definition of an annotation, comprising a EAnnotationType and the relevant options
Callback signature for custom annotation grip SVG templates.
The type of the onArrowHeadSizeChanged callback function
A type class to contain information about the current state of 3D Axis Cube, such is Visible Range or World Dimensions.
Definition of an AxisBase2D, comprising a EAxisType and the relevant options
A Border applied to the series viewport, axes or the entire chart surface
Definition of Box Series data
Minimal typed surface for the core's ccall. Reaching into the emscripten runtime for a symbol
with no embind binding is an existing pattern in this codebase (see
TextureManager.ts's webAssemblyContext.ccall(...) calls) but every one of those sites
@ts-ignores the whole call - this loader owns a typed wrapper instead, per Task 5's review of
scrt_query_category (see queryCoreCategoryVersion below).
Defines text style and positioning options used for Chart Title rendering
Type args for the LegendModifier.isCheckedChanged callback Type args for the LegendModifier3D.isCheckedChanged callback
Whether the corresponding legend item is checked or not (by default, this corresponds to IRenderableSeries3D.isVisible)
The series which was checked or unchecked
Defines text style which allows to switch between Native / Non-native text rendering
A type class to contain information about contour line styles
The color to use
The minimum data value at which this color will be used
The start point for text drawing. This is not the top left of the text rectangle, since the y value for text is on the alphabetic baseline Difference is bounds.GetLineBounds(0).m_fHeight
The Rectangle that contains the label, relative to the seriesViewRect
Native by-code draw (grid string columns, opt-in): when set, the label is drawn straight from the dictionary by code — no per-frame JS string — instead of using {@link text}.
A type class to contain information about data label styles
Coordinate in the plane of Data values and Visible Range
Type arguments to DpiHelper.dpiChanged event
The new Dpi scaling factor
The previous Dpi scaling factor
An easing function used in animations through SciChart. See easing for a list of values
Definition of a shader effect, comprising a EShaderEffectType and the relevant options
Type used by Guard.arraysSameLengthArr
Definition of a data filter
Formats a data-value into a string for display
Type of a fraction of PI. Used internally by RadianLabelProvider
A Gradient stop applied to gradients on lines, fills thoughout SciChart
The gradient stop color as an HTML color code
The gradient offset. Allowable values are in the range 0 to 1
A type class to contain information about gridline styles
If Interpolated, a color gradient will be created based on the stops, and colors will be picked from that gradient based on the relative position of the data value between the stops. If Discrete, only the colors defined in the stops will be picked. Default Discrete;
The color stops to use in data space. These must be in ascending order and there must be at least 2 stops, to define a minimum and maximum
Gradient mode blends the boundaries between neighboring segments, while Solid mode keeps them as pure colors.
The color to use for values less than the smallest stop
The color to use for values greater than the largest stop
Definition of Open, High, Low, Close data
Definition of a LabelProviderBase2D, comprising a ELabelProviderType and the relevant options
Type for label thresholds mapping. Maps each ETradeChartLabelFormat to its maximum time range in seconds.
Definition of a 2d chart modifier, comprising a EChart2DModifierType and the relevant options
The mouse button
The keyboard key. See EModifierMouseArgKey for the list of values
Type to store whether modifier keys (Control, Shift, Alt) are pressed or not
What the scrt.module custom section carries. Stamped at build time by
SciChart.Native/Web/WasmBuildScripts/stampModuleSection.js.
Build variant ("simd" | "nosimd" | "64"). Absent on modules stamped before variant parity (Task A6) - treated as "simd", the only variant that existed then.
Per-wasm-context loader state. Attached to the context object rather than held in a
module-level map, because SciChartSurface.createSingle() creates up to 16 independent wasm
instances per page and each has its own linear memory and function table - so each needs its
own dlopen, and a global map would report a module as loaded into an instance that has never
seen it.
Defines properties of text rendered via Native Text API
WeakRef for the original object
WeakRef for the proxy of the object
revocableToken for the proxy of the object
Definition of Open, High, Low, Close data
Definition of a palette provider, comprising a EPaletteProviderType and the relevant options
CSS pixel coordinate
Definition of a pointmarker, comprising a EPointMarkerType and the relevant options
Definition of a pointmarker, comprising a EPointMarker3DType and the relevant options
Defines the style of the pointer tip
Sets the pointer circle background color as an HTML Color code
Default = none
The depth of the pointer arrow head, relative to the arrow height, NOT the pointer length
Properties should be between 0 and 1 inclusive
Default = 1
The height of the pointer arrow, relative to the pointer length
Properties must be between 0 and 1 inclusive
Example: 0.1 means 10% of the length of the pointer (given by the y1 property)
Default = 0.1
Sets the pointer circle border color as an HTML Color code
Default = black
Sets the stroke-width of the pointer circle, in pixels
Default = 3
The width of the pointer arrow, relative to the pointer length
Properties must be between 0 and 1 inclusive
Example: 0.1 means 10% of the length of the pointer (given by the y1 property)
Default = 0
Defines the style of the pointer center circle
Sets the pointer circle background color as an HTML Color code
Default = gray
The size of the pointer circle (diameter)
Properties must be between 0 and 1 inclusive
Example: 0.1 means 10% of the length of the pointer (given by the y1 property)
Default = 0
Sets the pointer circle border color as an HTML Color code
Default = black
Sets the stroke-width of the pointer circle, in pixels
Default = 3
Defines the style of the pointer stick
The size of the back extension of the pointer stick
Properties must be between 0 and 1 inclusive
Example: 0.1 means 10% of the length of the pointer (given by the y1 property)
Default = 0
The size of the pointer stick base
Properties must be between 0 and 1 inclusive
Example: 0.1 means 10% of the length of the pointer (given by the y1 property)
Default = 0.1
Sets the pointer stick background color as an HTML Color code
Default = gray
Sets the pointer stick border color as an HTML Color code
Default = black
Sets the stroke-width of the pointer stick, in pixels
Default = 3
A coordinate type relative to an axis viewportDimension
Defines Render Layers 1,2,3,4 which are used to compose rendering
Base URL for the optional native wasm modules (scichart-data.wasm and friends) in the
modular build shape. Defaults to the directory wasmUrl points at, or the page root.
Has no effect on the static build, which contains every module already.
Internal testing use only
The url where the wasm64 (Memory64) variant of the wasm file is located.
This needs to be served when SciChartDefaults.useWasm64 is any option other than "Never" and is only
used on browsers that support both Memory64 and SIMD. If not provided, it is derived from wasmUrl
(or the default) by inserting -64 before the .wasm extension, e.g. scichart.wasm -> scichart-64.wasm.
That derivation is generic, so the union (one-wasm) build needs no special casing here.
The url where the no-simd fallback for wasm is located
This needs to be served when SciChartDefaults.useWasmSimd is any option other than "Always" and will be loaded as a fallback for browsers that do not support wasm Simd (Chrome v90 or below - 2021, Safari v16.3 or below - 2023, Firefox v88 or below - 2021).
if wasmNoSimdUrl is not provided, we will try to calculate it from the provided wasmUrl or other defaults.
The url where the wasm file is located
As of v4.0 the .data file is embedded in the wasm file. You may need to remove config in your build process that tries to copy the .data file
Which population this destination belongs to. Set by addDestination.
The wasm modules this build knows how to load. data ships in v6; charting and charting3d
are named here because the loader is shared infrastructure and the union is the contract - the
artifacts arrive in Phases 2 and 3.
Serializable performance debug data with the timeOrigin of the thread
Definition of series data, which can take various shapes
Definition of a renderable series, comprising a ESeriesType, the relevant options, and an optional data object whose type depends on the series type
Shared data that can be used in ISciChart2DDefinition or directly in buildSeries or buildDataSeries
Length defined as an absolute number or percentage
The stroke for the element
The StrokeDashArray defines the stroke or dash pattern for the line. Accepts an array of values, e.g. [2,2] will have a line of length 2 and a gap of length 2.
The stroke thickness for the element
The mode for handling SubSurface position coordinates. Could one for all or different per coordinate. Acceptable format:
A single table row: column name → value. Numeric columns take number, string columns take string.
Definition of Table data
Coordinate represented with a value corresponding to the selected coordinate mode
A type class to contain information about Axis Label text styles
Horizontal label alignment for vertical axes. Default Auto.
The foreground color of the text
Default Arial
The size of the font in pixels. Default 14 for axis labels
Not supported if useNativeText = true
Not supported if useNativeText = true
Horizontal text alignment for multiline text.
Padding is left 4, right 4, top 2, bottom 0 by default. This is because there is natural space below the text baseline. If you are using text labels rather than just numbers, or when using native text, you may want to increase the bottom padding.
Defines common properties of text to render
Line spacing to use if text is wrapped. This is a multiple of the line height and defaults to 1.1
Defines properties of text rendered as a texture
A type class to contain information about Tick line styles
A type which contains info about major, minor tick coordinates, labels and values. Used when drawing the axis gridlines
The major tick coordinates
The LabelInfo objects corresponding 1:1 with majorTickLabels, for direct access without cache lookups.
The major tick label strings
The major tick numeric values
The minor tick coordinates
The minor tick numeric values
The scichart version required to run a JSON definition through {@link chartBuilder.buildChart()} without issues.
Emscripten hook to supply an already-compiled WebAssembly.Module. When set, Emscripten skips
its own fetch+compile and calls this with the imports to bind; the callback receives the
instantiated module. Built via buildInstantiateWasmHook from a cached compiled module.
The wasm build variant a core (and therefore every module it loads) was built as. "simd" is the
default and carries NO filename suffix - scichart-data.wasm - matching the core's own naming
(scichart.wasm / scichart-nosimd.wasm / scichart-64.wasm).
Opaque handle to a WebGPU GPUDevice.
SciChart hands the device to its WebAssembly module as an opaque handle and never calls
GPUDevice methods across its public API. Typing it as an opaque handle here avoids leaking a
dependency on @webgpu/types into SciChart's published type declarations, so consumers do not
have to install @webgpu/types to type-check against SciChart. Cast to the real GPUDevice
(from @webgpu/types) if you need to operate on the device directly.
Definition of XY data
Definition of XYText data
Definition of XYN data
Definition of XYXY data
Definition of XYXY data
Definition of XYY data
Definition of XYZ 3D data
Definition of XYZ data
A function to execute when zoomExtents is activated. If this exists and returns false, the builtin behaviour is ignored;
Mark name the harness filters on. enableDebug turns on every other mark too. @ignore
Compaction policy, part 2 of 2: an absolute floor, so a column holding a handful of distinct values never pays for a compaction that would reclaim a few dozen bytes. A 3-value column that loses 2 of them satisfies the ratio above on its own; this stops that from being enough.
Compaction policy, part 1 of 2: the dead entries must outnumber the live ones.
SCRTStringDictionary.Compact allocates four fresh vectors and copies every surviving byte, so
it is O(bytes) in the whole dictionary - calling it eagerly on a high-cardinality FIFO column
(one dead entry per append, forever) would dominate the cost of appending. Requiring dead > live
bounds the wasted bytes to at most half the arena and makes the amortised cost of compaction a
constant factor on the bytes that had to be copied anyway.
The order in which label formats should be evaluated (from smallest to largest time ranges). Used to determine which format to use based on the visible time range.
Minimum width, in device pixels, at which a pen stroke still renders solidly.
The code stored for a row whose value is missing or empty. Reads back as "", never as
undefined - undefined is reserved by callers for an unknown column, which is a different
thing from a known column with a blank cell.
Variant-aware successor to NEVER_REWRITTEN_WASM (kept above for compatibility): a
bounded pattern over exactly the dlopen'd module artifact names, per variant - deliberately NOT a
bare "scichart-" prefix test, so a customer file that happens to start "scichart-" is never
caught by it. getLocateFile and the test harness's locateFile both use this predicate.
abi is deliberately NOT in this alternation - see NEVER_REWRITTEN_WASM above.
Wasm filenames a locateFile hook must always resolve by name relative to wherever the core
was found, and must NEVER rewrite via the wasmUrl/wasmNoSimdUrl/wasm64Url/NO_SIMD substitutions
those hooks otherwise apply to any ".wasm" path - a rewrite there silently hands back the wrong
binary. A name list, not a prefix test, so a customer file that happens to start "scichart-" is
never caught by it.
The ABI anchor was here until the NEEDED strip: it was load-time linked, so emscripten asked for
it through locateFile at startup. strip-dylink-needed.js now empties each core's dylink.0
NEEDED list right after the link, so the anchor is a build input that is never fetched, never
served and never shipped - and must not appear in this list, which exists to describe the
artifacts a page really does request.
The single exported source of truth: getLocateFile (SciChartSurfaceBase.ts) and the test
harness's own locateFile (tests/sciChartInit2DTest.ts) both import this rather than each
keeping their own literal copy, so Phase 2/3 add a module name here once, not in two files that
can silently diverge.
The registration-mechanism version the core was built against. Must match every module's
declared abi. Mirrors SCRTModuleRegistry.h's SCRT_ADDON_ABI2_VERSION.
NOT derived from the header - this is a hand-maintained literal, unlike the native side of the
same check: stampModuleSection.js --from-header reads SCRT_ADDON_ABI2_VERSION straight out
of the header when it stamps a module, so a module's own declared abi can never drift from
the header. This constant has no equivalent mechanism (nothing in TypeScript can read a C++
#define, and the core exposes no runtime query for its own registration-ABI version - only
scrt_query_category, which is per-category, not this). If SCRT_ADDON_ABI2_VERSION ever
changes, THIS LINE MUST BE UPDATED BY HAND IN THE SAME CHANGE, or validateModuleBytes compares
every module's (correctly-derived) stamp against a stale number here - which fails in the wrong
direction: a real mismatch would read as a false "matches" if both sides drifted together, or a
false rejection of a genuinely-fine module if only this side is stale. Residual risk - flagged
for whoever next bumps SCRT_ADDON_ABI2_VERSION, and for design review to decide whether a build-
time codegen step (mirroring --from-header) is worth adding.
How many appended rows a DataSeries lets pass before it asks its string columns whether they want
to compact. Checking on EVERY append would put two boundary crossings (DeadCount + LiveCount)
on a single-point append that is otherwise about two crossings of real work, i.e. roughly double
it - and XyTextDataSeries streams through exactly that path.
The value matches COMPACT_MIN_DEAD_ENTRIES in {@link StringColumnStore}, the absolute floor
below which that store declines to compact anyway. Deferring the question by that many rows can
therefore leave at most that many extra dead entries unreclaimed before the store gets asked - a
constant, not a growth term, so the bound the check exists to enforce is unchanged.
The name of the single string column an XyTextDataSeries stores its text in. Private to
this file: the column is an implementation detail, and textValues / getTextValue remain the
public way to reach it.
Cache of compiled WebAssembly modules, keyed by resolved URL.
Each entry stores the in-flight or settled Promise so concurrent callers wait on the same compile instead of triggering parallel fetches. Rejected promises are evicted so a transient failure does not poison the cache.
The mutable 2D wasm config singleton. Aliases defaultSciChartConfig so the static
SciChartSurface.configure/loadWasmFromCDN/loadWasmLocal methods can mutate it
in place.
The layout-manager strategy slots resolved by the old LayoutManager constructor.
Registers a destination under the given kind. @ignore
Relocate the tooltip so that it is always within the seriesViewRect
Relocate the tooltip so that it is always within the seriesViewRect
Runs update for the animation
Helper function to append an array to a target array, treating the target as a circular buffer
BUG: TWO BRANCHES OF THIS FUNCTION ARE BROKEN, AND BOTH ARE REACHABLE ON A RELEASED PATH.
Recorded rather than fixed - see the two BUG markers in the body below. Fixing them changes
behaviour on a code path shared by every fifo series, so it needs its own task and its own test
matrix over both branches; do not fix one in passing.
Reach: the live caller is BaseDataSeries.appendMetadataRange (BaseDataSeries.ts:1603), so this
backs POINT METADATA on every fifo series that carries it - metadata silently absent after an
over-capacity bulk append, and metadata paired with the wrong point in the other branch. It is
also public API (src/index.ts:1559), so a consumer can call it directly.
XyTextDataSeries used to be the other caller and no longer is; nothing else in src/ calls it.
tests/utils/array.test.ts holds two it.skip cases carrying the CORRECT expectations for both
faults. Un-skip them when this is fixed and they should pass as written.
Applies the given opacity to an html color code or name, returning an html color code.
Generate random base64 id string. The default length is 22 which is 132-bits so almost the same as a GUID but as base64
Optional value to specify the length of the id to be generated, defaults to 22
Construct a chart with SciChartSurface using a ISciChart2DDefinition which can be pure data. Construct a chart with SciChartSurface using a ISciChart2DDefinition which can be pure data.
The Div Element ID where the SciChartSurface will reside
Construct a chart with SciChartSurface using a ISciChart2DDefinition which can be pure data. Construct a chart with SciChartSurface using a ISciChart2DDefinition which can be pure data.
Construct a chart with SciChartPolarSurface using a ISciChart2DDefinition which can be pure data. Construct a chart with SciChartPolarSurface using a ISciChart2DDefinition which can be pure data.
The Div Element ID where the SciChartPolarSurface will reside
Construct a chart with SciChartPolarSurface using a ISciChart2DDefinition which can be pure data. Construct a chart with SciChartPolarSurface using a ISciChart2DDefinition which can be pure data.
Construct a chart with SciChart3DSurface using a ISciChart3DDefinition which can be pure data. Construct a chart with SciChart3DSurface using a ISciChart3DDefinition which can be pure data.
The Div Element ID where the SciChart3DSurface will reside
Construct a chart with SciChart3DSurface using a ISciChart3DDefinition which can be pure data. Construct a chart with SciChart3DSurface using a ISciChart3DDefinition which can be pure data.
Build one or more annotations from a definition that can be pure data. Every annotation type
must be registered (see Builder/register/annotations).
Build one or more annotations from a definition that can be pure data.
One or an array of TAnnotationDefinition
An array of annotations
Build one or more annotations from a definition that can be pure data. Every annotation type
must be registered (see Builder/register/annotations).
Build one or more annotations from a definition that can be pure data.
An array of annotations
Build one or more axes from a definition that can be pure data. Every axis type must be
registered (see Builder/register/axes) — including NumericAxis, which unknown types fall
back to.
Build one or more axes from a definition that can be pure data.
One or an array of TAxisDefinition
An array of AxisBase2D.
Build one or more axes from a definition that can be pure data. Every axis type must be
registered (see Builder/register/axes) — including NumericAxis, which unknown types fall
back to.
Build one or more axes from a definition that can be pure data.
An array of AxisBase2D.
Build one 3D axis from a definition that can be pure data. Every 3D axis type must be registered
(see Builder/register/axes3d) — including NumericAxis3D, which unknown types fall back to.
Build one 3D axis from a definition that can be pure data.
One or an array of TAxisDefinition
An array of AxisBase2D.
Build one 3D axis from a definition that can be pure data. Every 3D axis type must be registered
(see Builder/register/axes3d) — including NumericAxis3D, which unknown types fall back to.
Build one 3D axis from a definition that can be pure data.
An array of AxisBase2D.
Builds a 2D SciChartSurface using a ISciChart2DDefinition which can be pure data.
The Div Element ID where the surface will reside
A chart of the appropriate type based on the definition
Builds a Polar SciChartPolarSurface using a ISciChart2DDefinition which can be pure data.
The Div Element ID where the surface will reside
A chart of the appropriate type based on the definition
Builds a Pie SciChartPieSurface using a ISciChartPieDefinition which can be pure data.
The Div Element ID where the surface will reside
A chart of the appropriate type based on the definition
Builds a 3D SciChart3DSurface using a {@link ISciChartDefinition3D} which can be pure data.
The Div Element ID where the surface will reside
A chart of the appropriate type based on the definition
Build a data series from a definition that can be pure data. Every data-series (and filter) type
must be registered (see Builder/register/dataSeries and Builder/register/dataFilters).
Build a data series from a definition that can be pure data.
Optional TSharedDataDefinition to define shared data which can be referenced by the data series
Optional IDataSeries to define original data for filter
An IDataSeries
Build a data series from a definition that can be pure data. Every data-series (and filter) type
must be registered (see Builder/register/dataSeries and Builder/register/dataFilters).
Build a data series from a definition that can be pure data.
An IDataSeries
Build a data series from a definition that can be pure data. Every 3D data-series type must be
registered (see Builder/register/dataSeries3d).
Build a data series from a definition that can be pure data.
Optional TSharedDataDefinition to define shared data which can be referenced by the data series
Build a data series from a definition that can be pure data. Every 3D data-series type must be
registered (see Builder/register/dataSeries3d).
Build a data series from a definition that can be pure data.
Build the Emscripten instantiateWasm hook for an already-compiled module. When passed in the
Emscripten module options, Emscripten skips its own fetch+compile and calls this hook with the
imports it wants bound. We instantiate from the cached module and pass the resulting instance
(plus the module) back via successCallback.
Each call to {@link WebAssembly.instantiate} produces a fresh WebAssembly.Instance with its
own linear memory, so the same cached module can back many isolated createSingle surfaces.
Build one or more chart modifiers from a definition that can be pure data. Every modifier type
must be registered (see Builder/register/modifiers).
Build one or more chart modifiers from a definition that can be pure data.
One or an array of TModifierDefinition
An array of modifiers
Build one or more chart modifiers from a definition that can be pure data. Every modifier type
must be registered (see Builder/register/modifiers).
Build one or more chart modifiers from a definition that can be pure data.
An array of modifiers
Build one or more 3D chart modifiers from a definition that can be pure data. Every modifier
type must be registered (see Builder/register/modifiers3d).
Build one or more 3D chart modifiers from a definition that can be pure data.
One or an array of TModifier3DDefinition
An array of modifiers
Build one or more 3D chart modifiers from a definition that can be pure data. Every modifier
type must be registered (see Builder/register/modifiers3d).
Build one or more 3D chart modifiers from a definition that can be pure data.
An array of modifiers
Construct a chart with SciChartPieSurface using a ISciChartPieDefinition which can be pure data. Construct a chart with SciChartPieSurface using a ISciChartPieDefinition which can be pure data.
The Div Element ID where the SciChartPieSurface will reside
Construct a chart with SciChartPieSurface using a ISciChartPieDefinition which can be pure data. Construct a chart with SciChartPieSurface using a ISciChartPieDefinition which can be pure data.
Build one or more renderable series from a definition that can be pure data. Every series type
must be registered (see Builder/register/series) — unknown types throw an actionable error.
Build one or more renderable series from a definition that can be pure data.
One or an array of TSeriesDefinition
Optional TSharedDataDefinition to define shared data which can be referenced by the renderable series
An array of IRenderableSeries.
Build one or more renderable series from a definition that can be pure data. Every series type
must be registered (see Builder/register/series) — unknown types throw an actionable error.
Build one or more renderable series from a definition that can be pure data.
An array of IRenderableSeries.
Build one or more 3D renderable series from a definition that can be pure data. Every series
type must be registered (see Builder/register/series3d).
Build one or more 3D renderable series from a definition that can be pure data.
One or an array of TSeriesDefinition3D
Optional TSharedDataDefinition to define shared data which can be referenced by the renderable series
An array of IRenderableSeries3D.
Build one or more 3D renderable series from a definition that can be pure data. Every series
type must be registered (see Builder/register/series3d).
Build one or more 3D renderable series from a definition that can be pure data.
An array of IRenderableSeries3D.
Build the sub-charts of a definition onto a parent surface. The sub-surface types must be
registered (see Builder/register/subSurfaces).
One or an array of ISubChartDefinition
The SciChartSurface the sub-charts are created on
Calculates annotation borders for AxisMarkerAnnotation
the vertical chart flag
the X1 data value of the annotation
the Y1 data value of the annotation
the horizontal axis
the vertical axis
the texture width
the seriesViewRect
the X position of the texture on the SciChartSurface, the left-top corner position on the canvas
the Y position of the texture on the SciChartSurface, the left-top corner position on the canvas
the texture width
the texture margin in X direction
the texture margin in Y direction
if true EAxisAlignment.Top, otherwise EAxisAlignment.Bottom
if true EAxisAlignment.Left, otherwise EAxisAlignment.Right
number of values to respect for the average
index of the latest value to include, by default equals to length-1 of DoubleVector
Returns rectangle borders in pixel coordinates
Calculate the width and height of the tooltip based on the content array.
Declared here rather than in CursorModifier, where it used to live. It is a dependency-free helper that non-cursor code needs — TooltipModifier3D among others — and importing it from CursorModifier put that whole module, and so the CursorModifier class itself, into bundles that never use a cursor.
The tooltip's lines of text; the longest one determines the width.
Font size in px used to lay the lines out vertically. Default 13.
Returns min and max borders
layer z-order offset of the surface
specifies the capacity of layers that could be potentially added between the default chart layers
layer number relative to the specific surface layers
absolute order of the layer on the chart (considering parent chart and previous subChart surface layers)
Calculates absolute coordinates of the heatmap cells
relative cell sizes
texture size
The reviver function needed when parsing definitions to JSON
Checks if can draw, is used not to draw when {@link BaseAnimation} has delay
Checks if the animation is running
The animation queue
The animation finate state machine
Clears the in-memory compiled-module cache. Intended for tests and teardown scenarios.
Apply a 2D definition to an existing surface. Default axes resolve through the registry:
a cartesian surface with no axes needs NumericAxis registered, a polar one PolarNumericAxis.
the surface to configure
Apply a 3D definition to an existing surface. Default axes resolve through the registry: a
surface without explicit axes needs NumericAxis3D registered.
the surface to configure
Configures an existing surface using a definition. This is useful if you need to use the wasmContext in methods or classes you use in your definition
The webassemply context. Pass undefined for a pie surface.
rgbColor, for example "0xff00ff00" - green
Converts individual R,G, and B components to HEX Color
argbColor, for example "0xff00ff00" - green
Converts ESearchMode (typescript friendly Enum) to SCRTFindIndexSearchMode which is required by the webassembly engine
number value from 0 to 255
number value from 0 to 255
number value from 0 to 255
number value from 0 to 255
pixel in hex format: opacity, red, green, blue. For example: "0xff0000ff" - blue pixel with no opacity
Creates a native {@link SCRTBrush} brush from html color code string passed in and caches it
The object that will store a brush
The HTML Color code
The opacity factor.
The height ratio of the main canvas to the WebGl canvas.
The width ratio of the main canvas to the WebGl canvas.
The gradient params.
new or existing instance of {@link SCRTBrush}}
the X coordinate on the screen relative to seriesViewRect, X and Y swapped for vertical charts
the Y coordinate on the screen relative to seriesViewRect, X and Y swapped for vertical charts
Helper function to create an HTML Image {@link HTMLImageElement} asychronously by passing in the string image source
Helper function to create an HTML Images {@link HTMLImageElement} asychronously by passing in the string array
Helper function to create a {@link SCRTRectVertex} native rectangle vertex
The SciChart 2D WebAssembly Context containing native methods and access to our WebGL2 Engine and WebAssembly numerical methods
Creates a native {@link SCRTPen} Pen from html color code string passed in and caches it
The object that will store a pen
The HTML Color code
The strokethickness in pixels
The opacity factor
the StrokeDashArray which defines any dash e.g. [2,2] means dash for 2pts, gap for 2pts (or undefined = solid line).
the new or existing instance of {@link SCRTPen}}
Creates the point marker
Helper function to create a {@link SCRTPen} native pen access to our WebGL2 Engine and WebAssembly numerical methods
The SciChart WebAssembly Context containing native methods and access to our WebGL2 WebAssembly Drawing Engine
Html color code in the format "#fff", "#ff0000", "rgba(255,255,0,1)", "#11333333"
the stroke thickness of the pen in pixels
The opacity factor
the StrokeDashArray which defines any dash e.g. [2,2] means dash for 2pts, gap for 2pts (or undefined = solid line).
Helper function to create a {@link SCRTBrush} native solid color brushes
Html color code in the format "#fff", "#ff0000", "rgba(255,255,0,1)", "#11333333"
All svg creation is run through this funciton so it can be mocked for tests
Checks if an object implements IDeletable, then calls IDeletable.delete
Function to draw Vertical or Horizontal Line annotations with labels
Loads a native wasm module into this wasm context, if it is not already loaded.
Idempotent and race-safe: a second call while the first is in flight returns the SAME promise OBJECT, not merely an equivalent one, so two surfaces created together neither double-fetch nor - much worse - dlopen twice, which would double-register every embind type in the module.
Deliberately NOT declared async, even though every call site just awaits it: an async
function always wraps its result in a FRESH promise per call, even when the body itself
returns an existing one - so two concurrent callers would observe two DIFFERENT (if
equivalent) promise objects, silently breaking the guarantee this doc comment has claimed since
this function was written (Task 8's own test caught the gap - expect(p1).to.equal(p2) failed
against the async version, with the registry proving the DEDUPE was still functionally correct
regardless: the identity guarantee and the functional guarantee are two different things, and
only one of them held). Returning the SAME Promise<void> reference (load, below) to every
caller while the load is in flight is what makes both checks actually true.
In the static (monolithic) build there is nothing to load: the types are already present, so this resolves immediately. Callers therefore never need to know which build shape they are on.
Registers every built-in type — an alias of registerAllTypes, kept for compatibility. The Builder is lean by default; call this (or registerAllTypes) once for the pre-v6 register-everything behaviour.
Result 11/23/2018
Formats high-precision timestamp to SS.nnnnnnnnn (Nanoseconds)
Formats high-precision timestamp to SS.mmmmmm (Microseconds) Logic: Uses Date for HH:MM:SS, appends raw microseconds
Generates default values names for the data series
The number of y values
Fetch and compile the WASM binary at the given URL, returning a cached Promise on subsequent calls.
Uses {@link WebAssembly.compileStreaming} when available for the fastest path (compile while
downloading); falls back to WebAssembly.compile(arrayBuffer) if streaming compile is unavailable
or rejects (e.g. when the server sends the wrong Content-Type for the .wasm response).
Rejected promises are evicted from the cache so callers can retry after a transient failure.
The URL should be obtained by invoking the getLocateFile(config) callback — that's the single
source of truth for SIMD vs no-SIMD selection and custom-URL substitution.
The resolved URL of the .wasm binary.
Converts a value into a pixel coordinate accordingly to the coordinate mode
the value to convert
the CoordinateCalculatorBase which will do the transformation
the ECoordinateMode to apply
the pixel coordinate
Returns true if descriptors are deeply equal, else false
Which kind a surface is currently registered under, or undefined if it is not registered. @ignore
Calculates the height of the first line from top to baseline
get a fontKey required to aquire a native font. Native text renders via Slug (GPU Bezier) text, which evaluates glyph outlines in the fragment shader - one font key serves every size, rotation and transform of a face.
ignored for Slug keys; retained for signature compatibility
ignored for Slug keys; retained for signature compatibility
internal - pass false to get a legacy atlas font key. Only used by TextureManager.createTextTextureNative, which rasterizes text through the atlas CPU blit path that Slug fonts do not implement.
Creates the font string, which is used to set font on CanvasRenderingContext2D
The font style
The font weight
The font size in pixels
The font family
Calculates coordinates of the annotation label. The coordinates are defined as an absolute position on the whole SciChartSurface.
Calculates annotation line coordinates accordingly to axis alignment and label placement. Returns coordinates relative to seriesViewRect.
Which modules are loaded into this wasm context.
Calculates multiline text height from the top to the last line baseline
Text position X coordinate
Text position Y coordinate
Horizontal alignment
Vertical alignment
Text bounds
The padding
x and y position where to draw text for SCRTFont.DrawStringAdvanced() method
Finds a Triangle that has been hit and return indices of the first and the last vertex of this triangle, If there is no hit return -1, -1
Returns the strokeThickness to use when creating a pen, clamped to a minimum of 2 device pixels so thin strokes (e.g. strokeThickness 1) stay visible - a 1px line renders too faintly via the anti-aliased GPU line-strip (SCJS-2613).
The requested strokeThickness, in CSS pixels
The DPI scaling factor, e.g. DpiHelper.PIXEL_RATIO
Calculates label rotation for a polar chart with different label modes
One of the following polar label modes EPolarLabelMode
data point angle in radians
an angle in radians to apply for the label when drawing
Return random number in range [min, max]
Given the starting and end mouse-point, computes a rectangle to perform zoom over. Takes into account the xyDirection
the starting point of the mouse
the end point of the mouse
the XyDirection
Retrieves a native {@link SCRTBrush} Brush from the provided {@link BrushCache} cache object. The retrieved entity is a wrapper around {@link SCRTPen}
The object that stores a brush
new or existing instance of {@link SCRTBrush}}
Retrieves a native {@link SCRTPen} Pen from the provided {@link Pen2DCache} cache object
The object that stores a pen
the new or existing instance of {@link SCRTPen}}
Destinations sharing the master wasm context — see {@link SHARED_ENGINE_KINDS}. @ignore
Get a font key configured for Slug (GPU Bezier) text rendering.
Creates function to generate stock data
For single line text return height to baseline. For multiline text returns total height
Converts a pixel coordinate back to a value
coordinate or dataValue to convert
the CoordinateCalculatorBase which will do the transformation
the ECoordinateMode to apply
the data-value or value
Returns an empty vector of Rectangles
Retrieves a native WebGlBrush Brush from the provided {@link BrushCache} cache object
new or existing instance of WebGlPen}
Returns the clip rect (in surface coordinates) covering the series' x/y axis viewport — the same rect that BaseRenderableSeries.clipToYRange clips series geometry to. Pass this to BaseDataLabelProvider.getClipRect to clip data labels to the series' y-axis range, e.g. one column of a stacked-axis grid layout.
The current render pass data (supplies the coordinate calculators)
The parent surface's seriesViewRect
Hit-tests BoxSeries and Polar Column Series
Hit-test function for BoxSeries or PolarColumnSeries Only for sorted data without overlapping columns only for columnXMode = EColumnMode.Mid or EColumnMode.Start Using binary search, time complexity O(log(N))
Hit-test function for BoxSeries or PolarColumnSeries Iterates over all data points, time complexity O(N)
Interpolates colors
Interpolates colors
Interpolates numbers
Whether an adapter is an Apple GPU, the gate for auto renderer mode.
Chrome reports vendor "apple" / architecture "metal-3" on Apple Silicon and leaves device and
description empty, so vendor is the only reliable field; architecture is a secondary signal for
browsers that mask vendor for privacy. Unknown reads as not-Apple, i.e. WebGL.
returns true if the array is sorted
The array
If True checks for sorted ascending, if False for descending
Returns whether a number is in the range of 2 other numbers, regardless if ascending or descending
returns true if the number is a real number (not NAN, not Infinite)
Returns true if a constructor or function is registered for the given baseType and type. Useful to guard a conditional registerType call without triggering the "already registered" error, or to check availability before calling createType.
Is this bundle the INTERNAL static (monolithic) build shape? The modular shape is the v6 default: a consumer bundle that defines nothing gets the modular path, and this returns false.
Reads the build-time flag process.env.SCICHART_STATIC, which only INTERNAL harnesses ever
define - the static/equivalence visual-test client via a webpack DefinePlugin textual
substitution, and the static unit suite as a real env var under Node. The static build is not
shipped to consumers; there is no runtime switch.
THE TRY/CATCH IS LOAD-BEARING AND MUST NOT BE "SIMPLIFIED" TO A typeof process GUARD. There are
exactly two situations, and the two obvious spellings each break one of them:
DefinePlugin replaces the expression process.env.SCICHART_STATIC
with the literal true before this code ever runs, so no process reference survives and the
catch is unreachable. A typeof process !== "undefined" && guard would break THIS case:
webpack does not define process itself, so typeof process is "undefined" on a real
browser page and the guard would evaluate to false regardless of the substituted literal -
silently sending the static client down the modular path. The same guard shipped once (on this
flag's predecessor, SCICHART_MODULAR) and silently disabled module loading; do not reintroduce it.ReferenceError: process is not defined, which the catch turns into "not static" - the
right answer, and the answer EVERY consumer bundle must get. Leaving the read unguarded would
throw inside createMaster/createSingleInternal for every chart of either dimension (it did
exactly that in SciChartDemo on the predecessor flag). process.env.NODE_ENV (used ~15 times
elsewhere in this library) does not have the problem, because webpack's optimization.nodeEnv
defines that ONE key automatically.constants/app.ts protects its own process.env?.TEST_ENV read with a typeof process guard,
which is correct THERE - that flag is only ever a real environment variable read in Node, never a
substituted literal - and is exactly why the guard looks safe here and is not.
Not memoised at module scope on purpose: with the substitution in place this is a constant-folded
return !!true, and evaluating it lazily keeps the tests able to set the env var per-case in Node.
Linearly interpolates a data-value in a TLinearColorMap, which specifies Gradient Stops, Data Minimum and Maximum and color stepping mode
Helper method for generating an array of a given length, where the values are the indicies An optional multiplier and map function can be applied.
The one place a module artifact's filename is constructed - URL resolution AND error text.
Zero-pad helper (e.g. 5 -> "005")
Converts color from ARGB number format into HTML string format #FFFFFFFF
color in ARGB format
Parse colors and convert them to hex string in ABGR format to use in c++.
Examples: #ff0, #ff08, #ffff00, #ffff0088, rgba(255,255,0,0.5)
Optional opacity override from 0 to 255.
Parse colors and convert them to hex string to use in c++ Examples: "#fff", "#ff0000", "rgba(255,255,0,1)", "#11333333"
Converts an HTML color code to TArgb
Converts HTML color to ARGB color
HTML color string
Opacity 0 to 255, where 0 fully transparent and 255 fully opaque
Pre-fetch AND pre-compile the SciChart WebAssembly module into an in-memory cache.
Calling this at app startup means that by the time the first SciChartSurface.create or
SciChartSurface.createSingle runs, the binary is already downloaded and compiled — both
costs disappear from the chart-creation critical path. Subsequent surfaces (especially those
created with createSingle) only pay the cheap per-instance instantiation cost (typically
<10ms) instead of re-downloading and re-compiling.
Safe to call multiple times — subsequent calls return the same cached Promise.
Respects the current sciChartConfig (call after SciChartSurface.configure /
SciChartSurface.loadWasmFromCDN).
This is the union (one-wasm) build, so the single binary this preloads serves both the 2D and the 3D engine — there is no separate 3D module to preload.
The cache is keyed by the resolved URL, so each engine variant the runtime might load gets its
own entry: SIMD (scichart.wasm), no-SIMD (scichart-nosimd.wasm) and wasm64
(scichart-64.wasm). By default the variant is auto-detected via {@link shouldUseWasm64} and
the SIMD rewrite inside {@link getLocateFile}, matching what SciChartSurface.create* will load.
Pass useWasm64 explicitly only to preload a specific variant.
Which binary to precompile. Defaults to the auto-detected engine selection.
A Promise resolving to the compiled WebAssembly.Module when caching is complete.
Returns the categoryVersion THIS running core knows for category - SCRTModuleRegistry.h's
KnownCategoryVersion, compiled into the core independently of anything that has ever registered
into it - or -1 if the core has never heard of the category. scrt_query_category is an
extern "C" EMSCRIPTEN_KEEPALIVE export with no embind binding, so it does not appear on
TSciChart and is reached with ccall instead (proven working this way from JS in
scratch/phase1/check-data-module.js).
Returns undefined if this context exposes no ccall at all, which should not happen on a
modular build - ccall is unconditionally in SCRTCORE_EXPORTS, the same as it always was in
SCRT2D_EXPORTS/SCRTJS_EXPORTS - so the caller treats that as a build defect, not a
skippable check.
Allows to promisify the handling of a single event raised by an EventHandler
an EventHandler to track
a Promise returned when the event is raised
Registers all built-in series animation types with the class factory, so they can be created from
a { type, options } definition — both via the Builder API and via the declarative
animation: { type: ... } series option.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in annotation type with the class factory, so they can be created from a
{ type, options } definition via the Builder API.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in 2D/polar axis type with the class factory, so they can be created from
a { type, options } definition via the Builder API.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in 3D axis type with the class factory, so they can be created from a
{ type, options } definition via the Builder API.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in data-filter type with the class factory, so they can be created from a
filter: { type, options } entry in a data-series definition via the Builder API.
Whether to replace an existing registration for the same type. Default true.
Registers all built-in data label provider types with the class factory, so they can be created
from a { type, options } definition — both via the Builder API and via the declarative
dataLabelProvider: { type: ... } series option.
Note the three Polar providers never replace an existing registration, preserving the original behaviour of these registrations.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in 2D data-series type with the class factory, so they can be created from
a { type, options } definition via the Builder API.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in 3D data-series type with the class factory, so they can be created from
a { type, options } definition via the Builder API. EDataSeriesType3D.NonUniformGrid3D is
deliberately not registered — it is not constructible yet; buildDataSeries3D throws its
explicit "not supported" error before consulting the registry.
Whether to replace an existing registration for the same type. Default true.
Registers all built-in label provider types with the class factory, so they can be created from a
{ type, options } definition — both via the Builder API and via the declarative
labelProvider: { type: ... } option on axes, pie surfaces and heatmap/contour series.
Whether to replace an existing registration for the same type. Default true.
Registers all built-in layout manager types with the class factory, so they can be created from a
{ type, options } definition — both via the Builder API and via the declarative
layoutManager: { type: ... } surface option.
Note the Synchronised layout manager is deliberately not registered, matching the original registrations in buildSurface.ts (builder API support for it is still outstanding).
Whether to replace an existing registration for the same type. Default true.
Registers all built-in axis layout strategy types with the class factory, so they can be created
from a { type, options } definition — both via the Builder API and via the declarative layout
strategy options resolved by LayoutManager.
Whether to replace an existing registration for the same type. Default true.
Registers the built-in loader types with the class factory, so they can be created from a
{ type } definition — both via the Builder API and via the declarative loader: { type: ... }
surface option, which every surface creation path can hit.
Whether to replace an existing registration for the same type. Default true.
Registers the built-in metadata generator types with the class factory, so they can be created
from a { type, ... } definition — both via the Builder API and via the declarative
metadata: { type: ... } data series option.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in 2D/polar chart modifier type with the class factory, so they can be
created from a { type, options } definition via the Builder API.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in 3D chart modifier type with the class factory, so they can be created
from a { type, options } definition via the Builder API.
Whether to replace an existing registration for the same type. Default true.
Registers the built-in 2D palette provider types with the class factory, so they can be created
from a { type, options } definition — both via the Builder API and via the declarative
paletteProvider: { type: ... } series option.
The default palette provider is not registered, as it is created automatically when none is given.
Whether to replace an existing registration for the same type. Default true.
Registers the built-in 3D mesh palette types with the class factory, so they can be created from a
{ type, options } definition — both via the Builder API and via the declarative
meshColorPalette: { type: ... } option on a 3D surface mesh series.
Whether to replace an existing registration for the same type. Default true.
Registers all built-in 2D point marker types with the class factory, so they can be created from
a { type, options } definition — both via the Builder API and via the declarative
pointMarker: { type: ... } series option.
Whether to replace an existing registration for the same type. Default true.
Registers all built-in 3D point marker types with the class factory, so they can be created from
a { type, options } definition — both via the Builder API and via the declarative
pointMarker: { type: ... } option on a 3D series.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in 2D/polar renderable series type with the class factory, so they can be
created from a { type, options } definition via the Builder API.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in 3D renderable series type with the class factory, so they can be
created from a { type, options } definition via the Builder API.
Whether to replace an existing registration for the same type. Default true.
Registers all built-in shader effect types with the class factory, so they can be created from a
{ type, options } definition — both via the Builder API and via the declarative
effect: { type: ... } series option.
Whether to replace an existing registration for the same type. Default true.
Registers both built-in sub-surface types with the class factory, so buildSubCharts can create
them from subCharts definitions.
Whether to replace an existing registration for the same type. Default true.
Registers all built-in theme types with the class factory, so they can be created from a
{ type } definition — both via the Builder API and via the declarative
theme: { type: ... } surface option, which every surface creation path can hit.
Whether to replace an existing registration for the same type. Default true.
Registers every built-in type with the class factory, so any { type, options } definition can be
built — including types whose classes your code never imports.
You usually do not need this. Every built-in class registers itself when its module is in your
bundle, so a definition or a toJSON() round-trip referencing a type you construct anywhere in
your app resolves with no registration call:
import { FastLineRenderableSeries, build2DChart } from "scichart";
const series = new FastLineRenderableSeries(wasmContext); // the class is in the bundle...
await build2DChart(rootId, surface.toJSON()); // ...so its type resolves here
What it is still for: definitions that name a type only as a string, where nothing imports the
class. A type string cannot pull code into a bundle, so those types have to be registered
explicitly — either with this function, or with the narrower per-type and per-family functions
exported from scichart and importable from scichart/Builder/register/*:
import { registerAllTypes, build2DChart } from "scichart";
registerAllTypes(); // nothing above imports FastLineRenderableSeries
await build2DChart(rootId, { series: { type: ESeriesType.LineSeries } });
Prefer the per-type functions where you can: this one pulls the complete type universe into your bundle, roughly doubling its size.
Whether to replace an existing registration for the same type. Default true.
Registers AnnotationHoverModifier for EChart2DModifierType.AnnotationHover definitions.
Registers ArcAnnotation for EAnnotationType.RenderContextArcAnnotation definitions.
Registers AxisMarkerAnnotation for EAnnotationType.RenderContextAxisMarkerAnnotation definitions.
Registers BandSeriesDataLabelProvider for EDataLabelProviderType.Band definitions.
Registers FastBandRenderableSeries for ESeriesType.BandSeries definitions.
Registers BaseValueAxis for EAxisType.BaseValueAxis definitions.
Registers BottomAlignedInnerAxisLayoutStrategy for ELayoutStrategyType.BottomInner definitions.
Registers BottomAlignedOuterAxisLayoutStrategy for ELayoutStrategyType.BottomOuter definitions.
Registers BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy for ELayoutStrategyType.BottomStacked definitions.
Registers BoxAnnotation for EAnnotationType.RenderContextBoxAnnotation definitions.
Registers BoxPlotDataSeries for EDataSeriesType.BoxPlot definitions.
Registers FastBoxPlotRenderableSeries for ESeriesType.BoxPlotSeries definitions.
Registers BubbleSeriesDataLabelProvider for EDataLabelProviderType.Bubble definitions.
Registers FastBubbleRenderableSeries for ESeriesType.BubbleSeries definitions.
Registers FastCandlestickRenderableSeries for ESeriesType.CandlestickSeries definitions.
Registers CategoryAxis for EAxisType.CategoryAxis definitions.
Registers CentralAxesLayoutManager for ELayoutManagerType.CentralAxes definitions.
Registers ColumnSeriesDataLabelProvider for EDataLabelProviderType.Column definitions.
Registers ColumnRenderableSeries3D for ESeriesType3D.ColumnRenderableSeries3D definitions.
Registers FastColumnRenderableSeries for ESeriesType.ColumnSeries definitions.
Registers CompositeAnnotation for EAnnotationType.CompositeAnnotation definitions.
Registers ContoursDataLabelProvider for EDataLabelProviderType.Contours definitions.
Registers CrossPointMarker for EPointMarkerType.Cross definitions.
Registers CubePointMarker3D for EPointMarker3DType.Cube definitions.
Registers CursorModifier for EChart2DModifierType.Cursor definitions.
Registers CustomAnnotation for EAnnotationType.SVGCustomAnnotation definitions.
Registers CylinderPointMarker3D for EPointMarker3DType.Cylinder definitions.
Registers SciChartJSDarkTheme for EThemeProviderType.Dark definitions.
Registers SciChartJSDarkv2Theme for EThemeProviderType.DarkV2 definitions.
Registers DataPointSelectionModifier for EChart2DModifierType.DataPointSelection definitions.
Registers DataPointSelectionPaletteProvider for EPaletteProviderType.DataPointSelection definitions.
Registers DateLabelProvider for ELabelProviderType.Date definitions.
Registers DateTimeNumericAxis for EAxisType.DateTimeNumericAxis definitions.
Registers DataLabelProvider for EDataLabelProviderType.Default definitions.
Registers LayoutManager for ELayoutManagerType.Default definitions.
Registers DefaultSciChartLoader for loader: { type: "Default" } definitions.
Registers DiscontinuousDateAxis for EAxisType.DiscontinuousDateAxis definitions.
Registers EllipsePointMarker for EPointMarkerType.Ellipse definitions.
Registers EllipsePointMarker3D for EPointMarker3DType.Ellipse definitions.
Registers FastErrorBarsRenderableSeries for ESeriesType.ErrorBarsSeries definitions.
Registers FadeAnimation for EAnimationType.Fade definitions.
Register a pure function
The base type for, which indicates where the function will be used, Either OptionFunction or OnCreated
The name of the function
the function to register
Whether to override an existing registration for the type name. Default false.
Registers GlowEffect for EShaderEffectType.Glow definitions.
Registers GradientColorPalette for EPaletteProviderType.Gradient3D definitions.
Registers the PaletteFactory gradient palette for EPaletteProviderType.Gradient
definitions.
Registers HeatMapDataLabelProvider for EDataLabelProviderType.Heatmap definitions.
Registers HlcDataSeries for EDataSeriesType.Hlc definitions.
Registers HlcScaleOffsetFilter for EDataFilterType.HlcScaleOffset definitions.
Registers HorizontalLineAnnotation for EAnnotationType.RenderContextHorizontalLineAnnotation definitions.
Registers HtmlCustomAnnotation for EAnnotationType.HtmlCustomAnnotation definitions.
Registers HtmlTextAnnotation for EAnnotationType.HtmlTextAnnotation definitions.
Registers FastImpulseRenderableSeries for ESeriesType.ImpulseSeries definitions.
Registers LeftAlignedInnerAxisLayoutStrategy for ELayoutStrategyType.LeftInner definitions.
Registers LeftAlignedOuterAxisLayoutStrategy for ELayoutStrategyType.LeftOuter definitions.
Registers LeftAlignedOuterVerticallyStackedAxisLayoutStrategy for ELayoutStrategyType.LeftStacked definitions.
Registers LegendModifier for EChart2DModifierType.Legend definitions.
Registers LegendModifier3D for EChart3DModifierType.Legend definitions.
Registers SciChartJSLightTheme for EThemeProviderType.Light definitions.
Registers LineAnnotation for EAnnotationType.RenderContextLineAnnotation definitions.
Registers LineArrowAnnotation for EAnnotationType.RenderContextLineArrowAnnotation definitions.
Registers LineSeriesDataLabelProvider for EDataLabelProviderType.Line definitions.
Registers FastLineSegmentRenderableSeries for ESeriesType.LineSegmentSeries definitions.
Registers FastLineRenderableSeries for ESeriesType.LineSeries definitions.
Registers LogarithmicAxis for EAxisType.LogarithmicAxis definitions.
Registers LogarithmicAxis3D for EAxisType.LogarithmicAxis3D definitions.
Registers LogarithmicLabelProvider for ELabelProviderType.Logarithmic definitions.
Registers FastMountainRenderableSeries for ESeriesType.MountainSeries definitions.
Registers MouseWheelZoomModifier for EChart2DModifierType.MouseWheelZoom definitions.
Registers MouseWheelZoomModifier3D for EChart3DModifierType.MouseWheelZoom definitions.
Registers NativeTextAnnotation for EAnnotationType.RenderContextNativeTextAnnotation definitions.
Registers SciChartJsNavyTheme for EThemeProviderType.Navy definitions.
Registers NonUniformHeatMapDataLabelProvider for EDataLabelProviderType.NonUniformHeatmap definitions.
Registers NonUniformHeatmapDataSeries for EDataSeriesType.HeatmapNonUniform definitions.
Registers NonUniformHeatmapRenderableSeries for ESeriesType.NonUniformHeatmapSeries definitions.
Registers NumericAxis for EAxisType.NumericAxis definitions.
Registers NumericAxis3D for EAxisType.NumericAxis3D definitions.
Registers NumericLabelProvider for ELabelProviderType.Numeric definitions.
Registers OhlcDataSeries for EDataSeriesType.Ohlc definitions.
Registers OhlcScaleOffsetFilter for EDataFilterType.OhlcScaleOffset definitions.
Registers FastOhlcRenderableSeries for ESeriesType.OhlcSeries definitions.
Registers OrbitModifier3D for EChart3DModifierType.Orbit definitions.
Registers OverviewRangeSelectionModifier for EChart2DModifierType.OverviewRangeSelection definitions.
Registers PieLabelProvider for ELabelProviderType.Pie definitions.
Registers PinchZoomModifier for EChart2DModifierType.PinchZoom definitions.
Registers PinchZoomModifier3D for EChart3DModifierType.PinchZoom definitions.
Registers PixelPointMarker3D for EPointMarker3DType.Pixel definitions.
Registers PointLineRenderableSeries3D for ESeriesType3D.PointLineRenderableSeries3D definitions.
Registers PolarArcAnnotation for EAnnotationType.RenderContextPolarArcAnnotation definitions.
Registers PolarArcZoomModifier for EChart2DModifierType.PolarArcZoom definitions.
Registers PolarBandRenderableSeries for ESeriesType.PolarBandSeries definitions.
Registers PolarCategoryAxis for EAxisType.PolarCategoryAxis definitions.
Registers PolarColumnSeriesDataLabelProvider for EDataLabelProviderType.PolarColumn definitions (never replaces an existing registration).
Registers PolarColumnRenderableSeries for ESeriesType.PolarColumnSeries definitions.
Registers PolarCursorModifier for EChart2DModifierType.PolarCursor definitions.
Registers PolarDataPointSelectionModifier for EChart2DModifierType.PolarDataPointSelection definitions.
Registers PolarDataLabelProvider for EDataLabelProviderType.PolarDefault definitions (never replaces an existing registration).
Registers PolarLayoutManager for ELayoutManagerType.Polar definitions.
Registers PolarLegendModifier for EChart2DModifierType.PolarLegend definitions.
Registers PolarLineRenderableSeries for ESeriesType.PolarLineSeries definitions.
Registers PolarMountainRenderableSeries for ESeriesType.PolarMountainSeries definitions.
Registers PolarMouseWheelZoomModifier for EChart2DModifierType.PolarMouseWheelZoom definitions.
Registers PolarNumericAxis for EAxisType.PolarNumericAxis definitions.
Registers PolarPanModifier for EChart2DModifierType.PolarPan definitions.
Registers PolarPointerAnnotation for EAnnotationType.SVGPolarPointerAnnotation definitions.
Registers PolarXyScatterRenderableSeries for ESeriesType.PolarScatterSeries definitions.
Registers PolarSeriesSelectionModifier for EChart2DModifierType.PolarSeriesSelection definitions.
Registers PolarStackedColumnCollection for ESeriesType.PolarStackedColumnCollection definitions.
The factory constructs an empty collection; buildSeries populates it from the definition's
child series array.
Registers PolarStackedColumnRenderableSeries for ESeriesType.PolarStackedColumnSeries definitions.
Registers PolarStackedMountainCollection for ESeriesType.PolarStackedMountainCollection definitions.
The factory constructs an empty collection; buildSeries populates it from the definition's
child series array.
Registers PolarStackedMountainRenderableSeries for ESeriesType.PolarStackedMountainSeries definitions.
Registers SciChartPolarSubSurface for sub-chart definitions with a polar surface.
Registers PolarTextDataLabelProvider for EDataLabelProviderType.PolarText definitions (never replaces an existing registration).
Registers PolarTextRenderableSeries for ESeriesType.PolarTextSeries definitions.
Registers PolarTriangleRenderableSeries for ESeriesType.PolarTriangleSeries definitions.
Registers PolarUniformHeatmapRenderableSeries for ESeriesType.PolarUniformHeatmapSeries definitions.
Registers PolarZoomExtentsModifier for EChart2DModifierType.PolarZoomExtents definitions.
Registers PyramidPointMarker3D for EPointMarker3DType.Pyramid definitions.
Registers QuadPointMarker for EPointMarker3DType.Quad definitions.
Registers RectangleSeriesDataLabelProvider for EDataLabelProviderType.Rectangle definitions.
Registers FastRectangleRenderableSeries for ESeriesType.RectangleSeries definitions.
Registers ResetCamera3DModifier for EChart3DModifierType.ZoomExtents definitions.
Registers RightAlignedInnerAxisLayoutStrategy for ELayoutStrategyType.RightInner definitions.
Registers RightAlignedOuterAxisLayoutStrategy for ELayoutStrategyType.RightOuter definitions.
Registers RightAlignedOuterVerticallyStackedAxisLayoutStrategy for ELayoutStrategyType.RightStacked definitions.
Registers RolloverModifier for EChart2DModifierType.Rollover definitions.
Registers RubberBandXyZoomModifier for EChart2DModifierType.RubberBandXYZoom definitions.
Registers ScaleAnimation for EAnimationType.Scale definitions.
Registers ScatterRenderableSeries3D for ESeriesType3D.ScatterRenderableSeries3D definitions.
Registers XyScatterRenderableSeries for ESeriesType.ScatterSeries definitions.
Registers SeriesSelectionModifier for EChart2DModifierType.SeriesSelection definitions.
Registers SeriesSelectionModifier3D for EChart3DModifierType.SeriesSelection definitions.
Registers ShadowEffect for EShaderEffectType.Shadow definitions.
Registers SmartDateLabelProvider for ELabelProviderType.SmartDate definitions.
Registers SmoothStackedMountainRenderableSeries for ESeriesType.SmoothStackedMountainSeries definitions.
Registers SolidColorBrushPalette for EPaletteProviderType.Solid3D definitions.
Registers SpherePointMarker3D for EPointMarker3DType.Sphere definitions.
Registers SplineBandRenderableSeries for ESeriesType.SplineBandSeries definitions.
Registers SplineLineRenderableSeries for ESeriesType.SplineLineSeries definitions.
Registers SplineMountainRenderableSeries for ESeriesType.SplineMountainSeries definitions.
Registers SpritePointMarker for EPointMarkerType.Sprite definitions.
Registers SquarePointMarker for EPointMarkerType.Square definitions.
Registers StackedCollectionDataLabelProvider for EDataLabelProviderType.StackedCollection
definitions. This is the provider a stacked collection creates for itself, so it appears in the
collection's toJSON() output and has to resolve when that JSON is rebuilt.
Registers StackedColumnCollection for ESeriesType.StackedColumnCollection definitions.
The factory constructs an empty collection; buildSeries populates it from the definition's
child series array.
Registers StackedColumnRenderableSeries for ESeriesType.StackedColumnSeries definitions.
Registers StackedMountainCollection for ESeriesType.StackedMountainCollection definitions.
The factory constructs an empty collection; buildSeries populates it from the definition's
child series array.
Registers StackedMountainRenderableSeries for ESeriesType.StackedMountainSeries definitions.
Registers SciChartSubSurface for sub-chart definitions with a default (cartesian) surface.
Registers SurfaceMeshRenderableSeries3D for ESeriesType3D.SurfaceMeshRenderableSeries3D definitions.
Registers SvgLineAnnotation for EAnnotationType.SvgLineAnnotation definitions.
Registers SweepAnimation for EAnimationType.Sweep definitions.
Registers TableDataSeries for EDataSeriesType.Table definitions.
Registers TemplateMetadataGenerator for metadata: { type: "Template" } definitions.
Registers TextAnnotation for EAnnotationType.SVGTextAnnotation definitions.
Registers TextDataLabelProvider for EDataLabelProviderType.Text definitions.
Registers TextLabelProvider for ELabelProviderType.Text definitions.
Registers FastTextRenderableSeries for ESeriesType.TextSeries definitions.
Registers TooltipModifier3D for EChart3DModifierType.Tooltip definitions.
Registers TopAlignedInnerAxisLayoutStrategy for ELayoutStrategyType.TopInner definitions.
Registers TopAlignedOuterAxisLayoutStrategy for ELayoutStrategyType.TopOuter definitions.
Registers TopAlignedOuterHorizontallyStackedAxisLayoutStrategy for ELayoutStrategyType.TopStacked definitions.
Registers TrianglePointMarker for EPointMarkerType.Triangle definitions.
Registers TrianglePointMarker3D for EPointMarker3DType.Triangle definitions.
Registers FastTriangleRenderableSeries for ESeriesType.TriangleSeries definitions.
Register a function that returns an object of the specified type.
The EBaseType of the object that is being registered.
The name of the type, which should be a subtype of the baseType. For custom types, use the actual type name, not the "Custom" value on the subType enum.
A function that takes an optional options argument and returns an instance of the desired type.
Whether to override an existing registration for the type. Default false.
Registers UniformContoursRenderableSeries for ESeriesType.UniformContoursSeries definitions.
Registers UniformGridDataSeries3D for EDataSeriesType3D.UniformGrid3D definitions.
Registers UniformHeatmapDataSeries for EDataSeriesType.HeatmapUniform definitions.
Registers UniformHeatmapRenderableSeries for ESeriesType.UniformHeatmapSeries definitions.
Registers VerticalLineAnnotation for EAnnotationType.RenderContextVerticalLineAnnotation definitions.
Registers VerticalSliceModifier for EChart2DModifierType.VerticalSlice definitions.
Register a function that requires a webAssemblyContext to return an object of the specified type.
The EBaseType of the object that is being registered.
The name of the type, which should be a subtype of the baseType. For custom types, use the actual type name, not the "Custom" value on the subType enum.
A function that takes a SciChart 2D WebAssembly Context or SciChart 3D WebAssembly Context and an optional options argument and returns an instance of the desired type.
Whether to override an existing registration for the type. Default false.
Registers WaveAnimation for EAnimationType.Wave definitions.
Registers XAxisDragModifier for EChart2DModifierType.XAxisDrag definitions.
Registers XDataSeries for EDataSeriesType.X definitions.
Registers XPointMarker for EPointMarkerType.X definitions.
Registers XyDataSeries for EDataSeriesType.Xy definitions.
Registers XyLinearTrendFilter for EDataFilterType.XyLinearTrend definitions.
Registers XyMovingAverageFilter for EDataFilterType.XyMovingAverage definitions.
Registers TableDataSeries for EDataSeriesType.XyN definitions - the released string key
of the deprecated XyNDataSeries name, kept so existing chart JSON still builds. Shared data is
not yet supported for this type.
Registers XyRatioFilter for EDataFilterType.XyRatio definitions. A divisorSeries
given as a plain number array is wrapped into an XyDataSeries on the source series'
WebAssembly context, as the old dispatch did.
Registers XyScaleOffsetFilter for EDataFilterType.XyScaleOffset definitions.
Registers XyTextDataSeries for EDataSeriesType.XyText definitions.
Registers XyxDataSeries for EDataSeriesType.Xyx definitions.
Registers XyxyDataSeries for EDataSeriesType.Xyxy definitions.
Registers XyyDataSeries for EDataSeriesType.Xyy definitions.
Registers XyyScaleOffsetFilter for EDataFilterType.XyyScaleOffset definitions.
Registers XyzDataSeries for EDataSeriesType.Xyz definitions.
Registers XyzDataSeries3D for EDataSeriesType3D.Xyz3D definitions.
Registers XyzScaleOffsetFilter for EDataFilterType.XyzScaleOffset definitions.
Registers YAxisDragModifier for EChart2DModifierType.YAxisDrag definitions.
Registers ZoomExtentsModifier for EChart2DModifierType.ZoomExtents definitions.
Registers ZoomPanModifier for EChart2DModifierType.ZoomPan definitions.
Throws a named, actionable error if apiName needs a module that has not been loaded.
Detection is by probing for the symbol rather than by asking which build shape this is, which makes it correct in both without a build-time flag: in the static build the symbol is always there, and in the modular build it appears exactly when the module is dlopen'd.
Deliberately a throw and not a fallback. Today's crossfilter path warns once and renders unfiltered when it meets an unsupported resampler variant; that pattern is NOT extended here, because a chart that silently renders unfiltered data is a wrong answer that looks correct.
Resolves one { type, customType?, options } definition, honouring the Custom convention:
definitions with type: "Custom" carry the registered name in customType.
Resolves a module's URL. Deliberately NOT routed through getLocateFile: that hook applies the
SIMD / wasmUrl rewrites, which are about the core binary and would rewrite a module filename
into the core's URL. modulesUrl lets a self-hoster put modules somewhere other than beside
the core; without it they resolve relative to the configured wasmUrl's directory, and failing
that relative to the page - which is what a default npm install wants.
Runs callback shortly after the next browser Frame is produced.
Array of tooltip clusters
Which storage a semantic type requires.
The X coordinate, isVertical property is already taken into account
The Y coordinate, isVertical property is already taken into account
Tests whether a point is within rectangle bounds
Tests if X is within radius from the [intervalStart, intervalEnd] interval, intervalStart, intervalEnd values might not be sorted
Converts a UINT color number to a 8-digit hex code e.g. #FFAABBCC
Linearly interpolates between two colors based on the ratio passed in. E.g. Ratio = 0.0f returns From color, ratio = 1.0f returns To Color. Ratio = 0.5f returns a mix of the two Works for 32 bit colors
the start color, for example 0x0000ffff (format ARGB)
the end color, for example 0xffffffff
the value between 0 and 1
Linearly interpolates between two colors based on the ratio passed in. E.g. Ratio = 0.0f returns From color, ratio = 1.0f returns To Color. Ratio = 0.5f returns a mix of the two. Works only for numbers not more than 24 bit
the start color, for example 0xff0000
the end color, for example 0x00ff00
the value between 0 and 1
Converts a color in TArgb format to TSRVector4 (RGBA -> x,y,z,w) for use in 3D Engine
Validates module bytes before emscripten sees them, because emscripten's own failures are not
debuggable from their messages: a truncated fetch, a version-skewed module and a core with too
narrow an export table all surface as errors naming neither the module nor the symbol
(asyncLoad calls onerror() with no argument at all). Everything this function rejects, it
rejects with the module name, the resolved URL and the fix.
Converts a WebAssembly vector to a JavaScript number array by creating a copy of the data.
The WebAssembly vector to convert (SCRTDoubleVector2D, SCRTDoubleVector3D, FloatVector2D, UIntVector2D, IntVector2D or SCRTIntVector)
The WebAssembly context (TSciChart or TSciChart3D) that owns the vector
A new number[] array containing a copy of all values from the vector
Creates a Float32Array view directly onto the WebAssembly memory backing the vector.
The WebAssembly vector to create a view for (FloatVector2D)
The WebAssembly context (TSciChart) that owns the vector
A Float32Array view onto the WebAssembly memory - DO NOT write to this array
Creates a Float64Array view directly onto the WebAssembly memory backing the vector.
The WebAssembly vector to create a view for (SCRTDoubleVector2D or SCRTDoubleVector3D)
The WebAssembly context (TSciChart or TSciChart3D) that owns the vector
A Float64Array view onto the WebAssembly memory - DO NOT write to this array
Creates a Int32Array view directly onto the WebAssembly memory backing the vector.
The WebAssembly vector to create a view for (IntVector2D or SCRTIntVector)
The WebAssembly context (TSciChart) that owns the vector
A Int32Array view onto the WebAssembly memory - DO NOT write to this array
Creates a Uint32Array view directly onto the WebAssembly memory backing the vector.
The WebAssembly vector to create a view for (UIntVector2D)
The WebAssembly context (TSciChart) that owns the vector
A Uint32Array view onto the WebAssembly memory - DO NOT write to this array
Wrap a string by adding newline characters, splitting on spaces and wrapping to a maximum size
Convert a string into an array of lines by splitting on spaces and wrapping to a maximum number of characters
The formatting a column of each semantic type gets when nothing more specific is set. An explicit numericFormat on a data-label provider always wins over this.
Default label thresholds used by SmartDateLabelProvider. Maps each label format to its maximum time range in seconds.
Reversable functions that go from 0..1..0 used throughout SciChart when animations are used
No easing acceleration like linear, but it does reverse from 0..1..0
Default configuration for the 2D WebAssembly module loader. Mutated in place by
SciChartSurface.configure(...), SciChartSurface.loadWasmFromCDN(), etc.
Lives in its own leaf file (no value imports beyond the type from SciChartSurfaceBase)
so that helpers like preloadWasm can depend on it without creating a cycle with
SciChartSurface.ts / createMaster.ts.
Easing functions used throughout SciChart when animations are used
A global cache for labels, used by all labelProviders, to reduce the amount of time spent creating label textures.
Check if a text style matches the one for the given id
Notify the cache that a style is no longer used. Linked labels are only deleted when there are no remaining uses, and then only after minAge has passed.
Get a label from the cache. Returns undefined if none found.
Get the maximum number of labels allowed to be stored in the cache. Used when calling pruneCache
Get the minimum time (in ms) between cache pruning. Default 200ms This prevents recently used labels from being pruned, or removed when style is freed
Get an identifier for the given text style. Returns an existing identifier if a matching style exists in the cache
Remove old labels from the cache, if there are more than MaxSize.
Completely clears and resets the cache. Testing use only
Add a label to the cache
Set the maximum number of labels allowed to be stored in the cache. Used when calling pruneCache
Set the minimum time (in ms) between cache pruning. Default 200ms This prevents recently used labels from being pruned, or removed when style is freed
Maps an EBaseType to the module that registers its built-in types, so a lookup failure can tell the caller exactly what to import. Keyed by family rather than by individual type, so adding a new type to an existing family needs no change here.
Keyed by the enum's string values rather than by EBaseType members, so that this module keeps
importing EBaseType as a type only and gains no runtime dependency on it.
Generated using TypeDoc
IThemePartial contains the same fields as IThemeProvider, but all optional, so can provide partial themes to customise an existing theme