sy-density-map

Density Map

Show concentrations of observations as a smooth density surface.

sy-density-map

Explore clusters and spatial concentration among many points.

Density is an estimate, not a raw observation. Results depend on bandwidth and coordinate units.

Base chart tier: Pro. Features such as additional renderers and custom branding have separate entitlement requirements.

InputData description
dataAn array of { x, y, weight? }.
bandwidthThe range over which the kernel is applied.
kernelThe kernel used for density estimation.

Complete implementation example

html
<div id="chart-container" style="width: 100%; min-width: 0;"></div>

<script type="module">
  import { defineCustomElement as define0 } from '@syidax/advanced-pro/components/sy-density-map.js';
  define0();

  // Pro: complete registerLicense at app startup using your issued certificate.
  // The website preview certificate is not for use in customer apps.
  const specs = [
    {
      "id": "example-chart",
      "tag": "sy-density-map",
      "props": {
        "data": [
          {
            "x": 0,
            "y": 7,
            "weight": 1
          },
          {
            "x": 16,
            "y": 4,
            "weight": 2
          },
          {
            "x": 29,
            "y": -3,
            "weight": 3
          },
          {
            "x": 37,
            "y": -7,
            "weight": 1
          },
          {
            "x": 44,
            "y": -5,
            "weight": 2
          },
          {
            "x": 55,
            "y": 2,
            "weight": 3
          },
          {
            "x": -1,
            "y": 17,
            "weight": 1
          },
          {
            "x": 15,
            "y": 15,
            "weight": 2
          },
          {
            "x": 29,
            "y": 9,
            "weight": 3
          },
          {
            "x": 38,
            "y": 4,
            "weight": 1
          },
          {
            "x": 45,
            "y": 4,
            "weight": 2
          },
          {
            "x": 55,
            "y": 10,
            "weight": 3
          },
          {
            "x": -3,
            "y": 26,
            "weight": 1
          },
          {
            "x": 14,
            "y": 26,
            "weight": 2
          },
          {
            "x": 29,
            "y": 21,
            "weight": 3
          },
          {
            "x": 39,
            "y": 15,
            "weight": 1
          },
          {
            "x": 47,
            "y": 13,
            "weight": 2
          },
          {
            "x": 55,
            "y": 18,
            "weight": 3
          },
          {
            "x": -4,
            "y": 35,
            "weight": 1
          },
          {
            "x": 13,
            "y": 37,
            "weight": 2
          },
          {
            "x": 29,
            "y": 33,
            "weight": 3
          },
          {
            "x": 40,
            "y": 26,
            "weight": 1
          },
          {
            "x": 48,
            "y": 23,
            "weight": 2
          },
          {
            "x": 56,
            "y": 26,
            "weight": 3
          },
          {
            "x": -5,
            "y": 43,
            "weight": 1
          },
          {
            "x": 11,
            "y": 47,
            "weight": 2
          },
          {
            "x": 28,
            "y": 45,
            "weight": 3
          },
          {
            "x": 41,
            "y": 38,
            "weight": 1
          },
          {
            "x": 49,
            "y": 33,
            "weight": 2
          },
          {
            "x": 57,
            "y": 35,
            "weight": 3
          },
          {
            "x": -5,
            "y": 51,
            "weight": 1
          },
          {
            "x": 10,
            "y": 56,
            "weight": 2
          },
          {
            "x": 27,
            "y": 56,
            "weight": 3
          },
          {
            "x": 41,
            "y": 50,
            "weight": 1
          },
          {
            "x": 51,
            "y": 44,
            "weight": 2
          },
          {
            "x": 58,
            "y": 44,
            "weight": 3
          }
        ],
        "kernel": "gaussian",
        "bandwidth": 9,
        "columns": 60,
        "rows": 40,
        "width": 640,
        "height": 360,
        "brandPosition": "bottom-right",
        "brandLogo": ""
      }
    }
  ];
  const container = document.querySelector('#chart-container');
  const elements = specs.map(({ tag, id, props }) => {
    const element = document.createElement(tag);
    element.id = id;
    Object.assign(element, props);
    element.setAttribute('aria-label', 'density-map example chart');
    return element;
  });
  container.replaceChildren(...elements);
  const chart = elements.at(-1);
  const onEvent = event => {
    console.log('pointClick', event.detail);
  };
  chart.addEventListener('pointClick', onEvent);
  const observer = new ResizeObserver(([entry]) => {
    const width = Math.max(160, Math.floor(entry.contentRect.width));
    elements.forEach(element => { element.width = width; });
  });
  observer.observe(container);

  // In an SPA, call this function when the view is disposed.
  function disposeChart() {
    observer.disconnect();
    chart.removeEventListener('pointClick', onEvent);
    container.replaceChildren();
  }
</script>

Properties

data

An array of { x, y, weight? }.

ItemValue
JavaScript propertydata
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeDensityMapInput
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

width

Chart width in pixels. If the container width changes, update width from a ResizeObserver.

ItemValue
JavaScript propertywidth
HTML attributewidth
Typenumber
Default640

height

Chart height in pixels. Allow space for axes, titles, and the legend.

ItemValue
JavaScript propertyheight
HTML attributeheight
Typenumber
Default400

brandPosition

The corner where the logo is anchored. Community and Pro both support all four corners, using the same position on screen and in image exports.

ItemValue
JavaScript propertybrandPosition
HTML attributebrand-position
Type'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'
Default'bottom-right'
Allowed valuestop-left, top-right, bottom-left, bottom-right

xMin

Explicit domain ends (an omitted end follows the point extent padded by padding; x-axis / y-axis min / max also set them).

ItemValue
JavaScript propertyxMin
HTML attributex-min
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

xMax

Set as an HTML attribute or JavaScript property. type: number.

ItemValue
JavaScript propertyxMax
HTML attributex-max
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

yMin

Set as an HTML attribute or JavaScript property. type: number.

ItemValue
JavaScript propertyyMin
HTML attributey-min
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

yMax

Set as an HTML attribute or JavaScript property. type: number.

ItemValue
JavaScript propertyyMax
HTML attributey-max
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

padding

The fraction of the span padded on each automatic domain end.

ItemValue
JavaScript propertypadding
HTML attributepadding
Typenumber
Default0.05

cellSize

CSS px per estimate cell (the grid follows the plot size); columns / rows override it.

ItemValue
JavaScript propertycellSize
HTML attributecell-size
Typenumber
Default3

columns

Set as an HTML attribute or JavaScript property. type: number.

ItemValue
JavaScript propertycolumns
HTML attributecolumns
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

rows

Set as an HTML attribute or JavaScript property. type: number.

ItemValue
JavaScript propertyrows
HTML attributerows
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

bandwidth

The range over which the kernel is applied.

ItemValue
JavaScript propertybandwidth
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeDensityMapBandwidthInput
Default'auto'

bandwidthUnit

data (default) — the bandwidth is in data units; px — in CSS px of the plot.

ItemValue
JavaScript propertybandwidthUnit
HTML attributebandwidth-unit
TypeDensityMapBandwidthUnit
Default'data'
Allowed valuesdata, px

kernel

The kernel used for density estimation.

ItemValue
JavaScript propertykernel
HTML attributekernel
TypeDensityMapKernel
Default'gaussian'
Allowed valuesgaussian, epanechnikov, quartic, triangular, uniform

threshold

Cells under this fraction of the peak density are empty (the background shows through).

ItemValue
JavaScript propertythreshold
HTML attributethreshold
Typenumber
Default0.02

computePath

where the estimate runs: auto (the GPU compute once the renderer is up, else the CPU), cpu, gpu.

ItemValue
JavaScript propertycomputePath
HTML attributecompute-path
TypeDensityMapComputePathInput
Default'auto'
Allowed valuesauto, cpu, gpu

colors

The colour ramp over the density domain (a scheme name, a colour list / comma list, or [t, colour] stops).

ItemValue
JavaScript propertycolors
HTML attributePass objects, arrays, and callbacks as JavaScript properties
Typestring | ReadonlyArray<string> | ReadonlyArray<readonly [number, string]>
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

valueMin

Density domain ends; an omitted end follows 0 … the peak.

ItemValue
JavaScript propertyvalueMin
HTML attributevalue-min
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

valueMax

Set as an HTML attribute or JavaScript property. type: number.

ItemValue
JavaScript propertyvalueMax
HTML attributevalue-max
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

emptyColor

The colour of an empty (under-threshold) cell — transparent by default.

ItemValue
JavaScript propertyemptyColor
HTML attributeempty-color
Typestring
Default'transparent'

lod

The plane's level of detail: smooth (bilinear between cell centres — the default here), auto, point, area.

ItemValue
JavaScript propertylod
HTML attributelod
TypeDensityMapLodMode
Default'smooth'
Allowed valuesauto, point, area, smooth

fade

the fade band above the threshold cut, as a fraction of the peak (0 = a hard edge).

ItemValue
JavaScript propertyfade
HTML attributefade
Typenumber
Default0.06

densityUnit

how densities read: the cell's mass (default) or mass per unit area of the data space.

ItemValue
JavaScript propertydensityUnit
HTML attributedensity-unit
TypeDensityMapUnitInput
Default'mass'
Allowed valuesmass, per-area

xAxis

Configure the horizontal axis type, categories, range, and formatting. For a category axis, match the categories order to the value array indices. Charts supporting multiple axes can accept an axis array.

ItemValue
JavaScript propertyxAxis
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeXAxisInput
Defaultundefined
Literals in the typeauto, off

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

yAxis

Configure the vertical axis range, ticks, labels, and direction. Use consistent units for comparisons, and consider a zero baseline when comparing bar lengths.

ItemValue
JavaScript propertyyAxis
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeYAxisInput
Defaultundefined
Literals in the typeauto, off

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

gridLines

Grid lines default OFF (the plane tiles the plot).

ItemValue
JavaScript propertygridLines
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeCartesianGridLinesInput
Defaultundefined
Literals in the typeauto, off

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

crosshair

Crosshair that follows the cursor across the plot.

ItemValue
JavaScript propertycrosshair
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeCartesianCrosshairInput
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

zoom

Zoom (Storybook parity, 2026-09-10): 'x' | 'y' | 'xy' | true (x) enable the drag rectangle, the pan, the Ctrl + wheel, the pinch and the keyboard (+ / - / Escape) on the x / y domains; the estimate is not re-run per gesture — the field's visible sub-rectangle is mapped onto the plot. An object refines mode / drag / keyboard / minRangePx / resetButton / pan / wheel / pinch / inside. Off by default; the methods (zoomTo / zoomBy / panBy / resetZoom) work regardless of the gesture switches.

ItemValue
JavaScript propertyzoom
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeCartesianZoomInput
Defaultundefined
Literals in the typeauto, off, true, false, x, y, xy, inside

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

chartTitle

The title inside the chart. Explain the data's unit and meaning alongside it.

ItemValue
JavaScript propertychartTitle
HTML attributechart-title
Typestring
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

chartSubtitle

The subtitle inside the chart.

ItemValue
JavaScript propertychartSubtitle
HTML attributechart-subtitle
Typestring
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

enableMouseTracking

Set as an HTML attribute or JavaScript property. type: boolean.

ItemValue
JavaScript propertyenableMouseTracking
HTML attributeenable-mouse-tracking
Typeboolean
Defaulttrue

tooltip

the cell tooltip (the shared cartesian tooltip input: show / trigger / format / html / connector / draggable …).

ItemValue
JavaScript propertytooltip
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeCartesianTooltipInput
Defaultundefined
Literals in the typeauto, off

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

tooltipEnabled

Set as an HTML attribute or JavaScript property. type: boolean.

ItemValue
JavaScript propertytooltipEnabled
HTML attributetooltip-show
Typeboolean
Defaulttrue

tooltipFormat

a plain-text formatter of the default tooltip (tooltip.format wins).

ItemValue
JavaScript propertytooltipFormat
HTML attributePass objects, arrays, and callbacks as JavaScript properties
Type(detail: DensityMapPointEventDetail) => string
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

animated

Whether to animate initial display and data changes.

ItemValue
JavaScript propertyanimated
HTML attributeanimate
Typeboolean
Defaultfalse

animationDuration

Animation duration in milliseconds.

ItemValue
JavaScript propertyanimationDuration
HTML attributeanimation-duration
Typenumber
Default600

animationEasing

Allowed values: linear, ease-out, ease-in, ease-in-out. Default: 'ease-out'.

ItemValue
JavaScript propertyanimationEasing
HTML attributeanimation-easing
TypeDensityMapEasing
Default'ease-out'
Allowed valueslinear, ease-out, ease-in, ease-in-out

animationType

Allowed values: initial, update. Default: undefined.

ItemValue
JavaScript propertyanimationType
HTML attributeanimation-type
TypeDensityMapAnimationType
Defaultundefined
Allowed valuesinitial, update

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

streamSource

A stream source for live data. Check the contract for the specific type.

ItemValue
JavaScript propertystreamSource
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeDensityMapStreamSource
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

streamMax

Points the internal stream source tracks at most (the oldest drop first).

ItemValue
JavaScript propertystreamMax
HTML attributestream-max
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

streamWindow

The newest N streamed points that feed the estimate (the whole buffer when unset).

ItemValue
JavaScript propertystreamWindow
HTML attributestream-window
Typenumber
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

visualMap

A visual-map binding (a sy-visual-map snapshot + dimension); it overrides colors / value-min / value-max while bound.

ItemValue
JavaScript propertyvisualMap
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeVisualMapBinding | null
Defaultundefined

undefined means this property was not explicitly set. The effective value may depend on the chart type and other settings.

engine

auto, standard and pro all run the one WebGPU renderer (a Pro-only type has no other); switching never tears it down.

ItemValue
JavaScript propertyengine
HTML attributeengine
TypeDensityMapEngineMode
Default'auto'
Allowed valuesauto, standard, pro

unavailable

fallback shows the on-chart notice when the renderer cannot run; error throws.

ItemValue
JavaScript propertyunavailable
HTML attributeunavailable
TypeDensityMapUnavailableBehaviour
Default'fallback'
Allowed valuesfallback, error

Events

rendered

Every drawn frame; engine is the engine status (requested / effective / code / the governing license feature).

Event name: rendered. Names are case-sensitive. Read the payload from detail on CustomEvent<DensityMapRenderResult & { tier: DensityMapEngineTier; engine?: ChartEngineStatus }>.

javascript
chart.addEventListener('rendered', event => {
  console.log(event.detail); // DensityMapRenderResult & { tier: DensityMapEngineTier; engine?: ChartEngineStatus }
});

pointClick

A point selection event. Read the selected data and index from CustomEvent.detail.

Event name: pointClick. Names are case-sensitive. Read the payload from detail on CustomEvent<DensityMapPointEventDetail>.

javascript
chart.addEventListener('pointClick', event => {
  console.log(event.detail); // DensityMapPointEventDetail
});

pointHover

CustomEvent.detail type: DensityMapPointEventDetail | null. Event names are case-sensitive.

Event name: pointHover. Names are case-sensitive. Read the payload from detail on CustomEvent<DensityMapPointEventDetail | null>.

javascript
chart.addEventListener('pointHover', event => {
  console.log(event.detail); // DensityMapPointEventDetail | null
});

crosshairMove

CustomEvent.detail type: CartesianCrosshairEventDetail | null. Event names are case-sensitive.

Event name: crosshairMove. Names are case-sensitive. Read the payload from detail on CustomEvent<CartesianCrosshairEventDetail | null>.

javascript
chart.addEventListener('crosshairMove', event => {
  console.log(event.detail); // CartesianCrosshairEventDetail | null
});

pointContextMenu

CustomEvent.detail type: ChartPointContextMenuEventDetail<DensityMapPointEventDetail>. Event names are case-sensitive.

Event name: pointContextMenu. Names are case-sensitive. Read the payload from detail on CustomEvent<ChartPointContextMenuEventDetail<DensityMapPointEventDetail>>.

javascript
chart.addEventListener('pointContextMenu', event => {
  console.log(event.detail); // ChartPointContextMenuEventDetail<DensityMapPointEventDetail>
});

appended

CustomEvent.detail type: { count: number }. Event names are case-sensitive.

Event name: appended. Names are case-sensitive. Read the payload from detail on CustomEvent<{ count: number }>.

javascript
chart.addEventListener('appended', event => {
  console.log(event.detail); // { count: number }
});

windowSlid

CustomEvent.detail type: { dropped: number }. Event names are case-sensitive.

Event name: windowSlid. Names are case-sensitive. Read the payload from detail on CustomEvent<{ dropped: number }>.

javascript
chart.addEventListener('windowSlid', event => {
  console.log(event.detail); // { dropped: number }
});

chartAnimationStart

CustomEvent.detail type: void. Event names are case-sensitive.

Event name: chartAnimationStart. Names are case-sensitive. Read the payload from detail on CustomEvent<void>.

javascript
chart.addEventListener('chartAnimationStart', event => {
  console.log(event.detail); // void
});

chartAnimationEnd

CustomEvent.detail type: void. Event names are case-sensitive.

Event name: chartAnimationEnd. Names are case-sensitive. Read the payload from detail on CustomEvent<void>.

javascript
chart.addEventListener('chartAnimationEnd', event => {
  console.log(event.detail); // void
});

chartAnimationInterrupted

CustomEvent.detail type: void. Event names are case-sensitive.

Event name: chartAnimationInterrupted. Names are case-sensitive. Read the payload from detail on CustomEvent<void>.

javascript
chart.addEventListener('chartAnimationInterrupted', event => {
  console.log(event.detail); // void
});

tooltipShow

Whether to display the built-in tooltip.

Event name: tooltipShow. Names are case-sensitive. Read the payload from detail on CustomEvent<CartesianTooltipEventDetail>.

javascript
chart.addEventListener('tooltipShow', event => {
  console.log(event.detail); // CartesianTooltipEventDetail
});

tooltipHide

CustomEvent.detail type: void. Event names are case-sensitive.

Event name: tooltipHide. Names are case-sensitive. Read the payload from detail on CustomEvent<void>.

javascript
chart.addEventListener('tooltipHide', event => {
  console.log(event.detail); // void
});

tooltipAction

CustomEvent.detail type: CartesianTooltipActionEventDetail. Event names are case-sensitive.

Event name: tooltipAction. Names are case-sensitive. Read the payload from detail on CustomEvent<CartesianTooltipActionEventDetail>.

javascript
chart.addEventListener('tooltipAction', event => {
  console.log(event.detail); // CartesianTooltipActionEventDetail
});

zoomChange

Fired after every zoom change (drag / pan / wheel / pinch / keyboard / api / reset) with the new state.

Event name: zoomChange. Names are case-sensitive. Read the payload from detail on CustomEvent<CartesianZoomChangeEventDetail>.

javascript
chart.addEventListener('zoomChange', event => {
  console.log(event.detail); // CartesianZoomChangeEventDetail
});

Methods

getDataTable

Current normalized table, including the retained stream; independent of GPU availability.

typescript
getDataTable(): Promise<ChartDataTable>

Return type: Promise<ChartDataTable>. Call the method after element registration and await its Promise result.

redraw

Redraw the chart using its current data and options. Inspect the rendered result after the returned Promise resolves.

typescript
redraw(): Promise<DensityMapRenderResult>

Return type: Promise<DensityMapRenderResult>. Call the method after element registration and await its Promise result.

getActiveTier

An asynchronous method. Check the argument and return types below.

typescript
getActiveTier(): Promise<DensityMapEngineTier>

Return type: Promise<DensityMapEngineTier>. Call the method after element registration and await its Promise result.

getUnavailableReason

The reason the renderer cannot run (undefined while it runs).

typescript
getUnavailableReason(): Promise<string | undefined>

Return type: Promise<string | undefined>. Call the method after element registration and await its Promise result.

setData

Replace the bar set.

typescript
setData(data: DensityMapInput): Promise<void>
ArgumentsTypeRequired
dataDensityMapInputRequired

Return type: Promise<void>. Call the method after element registration and await its Promise result.

appendPoint

Append one value to the stream. Check the argument type and the licensing requirements for streaming.

typescript
appendPoint(point: DensityMapPoint | DensityMapTuple): Promise<void>
ArgumentsTypeRequired
pointDensityMapPoint | DensityMapTupleRequired

Return type: Promise<void>. Call the method after element registration and await its Promise result.

appendBatch

Append multiple values to the stream. Check the argument type and the licensing requirements for streaming.

typescript
appendBatch(points: ReadonlyArray<DensityMapPoint | DensityMapTuple>): Promise<void>
ArgumentsTypeRequired
pointsReadonlyArray<DensityMapPoint | DensityMapTuple>Required

Return type: Promise<void>. Call the method after element registration and await its Promise result.

shift

(carry-over C9) — shift(n) drops the n oldest points of the cloud: the data prop's leading entries first (a plain cloud shifts too — before a shift without a stream was a no-op), then the streamed points through the stream source. Each part fires windowSlid with its own count.

typescript
shift(count: number): Promise<void>
ArgumentsTypeRequired
countnumberRequired

Return type: Promise<void>. Call the method after element registration and await its Promise result.

replace

Swap the streamed set (replace([]) clears it); the base values never leave. Without chart.streaming the dies upsert into the base like a batch (quietly: no appended, no binChanged, as a ring replace).

typescript
replace(points: ReadonlyArray<DensityMapPoint | DensityMapTuple>): Promise<void>
ArgumentsTypeRequired
pointsReadonlyArray<DensityMapPoint | DensityMapTuple>Required

Return type: Promise<void>. Call the method after element registration and await its Promise result.

getStreamSource

The stream session's source (Chart Pro): like the stream methods it waits for a license still being confirmed.

typescript
getStreamSource(): Promise<DensityMapStreamSource | undefined>

Return type: Promise<DensityMapStreamSource | undefined>. Call the method after element registration and await its Promise result.

setAnimation

An asynchronous method. Check the argument and return types below.

typescript
setAnimation(options: { duration?: number; easing?: DensityMapEasing; enabled?: boolean; type?: DensityMapAnimationType }): Promise<void>
ArgumentsTypeRequired
options{ duration?: number; easing?: DensityMapEasing; enabled?: boolean; type?: DensityMapAnimationType }Required

Return type: Promise<void>. Call the method after element registration and await its Promise result.

pauseAnimation

Pause the current animation.

typescript
pauseAnimation(): Promise<void>

Return type: Promise<void>. Call the method after element registration and await its Promise result.

resumeAnimation

Resume a paused animation.

typescript
resumeAnimation(): Promise<void>

Return type: Promise<void>. Call the method after element registration and await its Promise result.

replayAnimation

Replay the initial sweep from min → value(s). No-op when animation is off / reduced.

typescript
replayAnimation(): Promise<void>

Return type: Promise<void>. Call the method after element registration and await its Promise result.

hitTest

The estimate cell under host-relative CSS coordinates, or null (the density waits for a pending readback).

typescript
hitTest(cssX: number, cssY: number): Promise<DensityMapPointEventDetail | null>
ArgumentsTypeRequired
cssXnumberRequired
cssYnumberRequired

Return type: Promise<DensityMapPointEventDetail | null>. Call the method after element registration and await its Promise result.

getCellValue

The density of a cell in the public unit (null under the threshold or outside the grid).

typescript
getCellValue(col: number, row: number): Promise<number | null>
ArgumentsTypeRequired
colnumberRequired
rownumberRequired

Return type: Promise<number | null>. Call the method after element registration and await its Promise result.

getDensityAt

The density at a data-space point in the public unit (null outside the domain or under the threshold).

typescript
getDensityAt(x: number, y: number): Promise<number | null>
ArgumentsTypeRequired
xnumberRequired
ynumberRequired

Return type: Promise<number | null>. Call the method after element registration and await its Promise result.

getValueExtent

The density extent of the estimate in the public unit (min 0, max = the peak, finite = cells over the threshold).

typescript
getValueExtent(): Promise<DensityMapValueExtent | null>

Return type: Promise<DensityMapValueExtent | null>. Call the method after element registration and await its Promise result.

showTooltipAtCell

open the tooltip on a cell (col / row), honouring the tooltip input; null when off or outside.

typescript
showTooltipAtCell(col: number, row: number): Promise<CartesianTooltipEventDetail | null>
ArgumentsTypeRequired
colnumberRequired
rownumberRequired

Return type: Promise<CartesianTooltipEventDetail | null>. Call the method after element registration and await its Promise result.

showTooltipAtIndex

open the tooltip on a cell by its index (row * columns + col; the facade's showTooltipAtPoint).

typescript
showTooltipAtIndex(index: number): Promise<CartesianTooltipEventDetail | null>
ArgumentsTypeRequired
indexnumberRequired

Return type: Promise<CartesianTooltipEventDetail | null>. Call the method after element registration and await its Promise result.

hideTooltip

Close the currently visible tooltip.

typescript
hideTooltip(): Promise<void>

Return type: Promise<void>. Call the method after element registration and await its Promise result.

focusCellAt

move the keyboard focus to a cell (the arrow-key state); null clears it.

typescript
focusCellAt(col: number, row: number): Promise<DensityMapPointEventDetail | null>
ArgumentsTypeRequired
colnumberRequired
rownumberRequired

Return type: Promise<DensityMapPointEventDetail | null>. Call the method after element registration and await its Promise result.

getGridSize

Columns × rows of the current grid.

typescript
getGridSize(): Promise<{ columns: number; rows: number; cells: number }>

Return type: Promise<{ columns: number; rows: number; cells: number }>. Call the method after element registration and await its Promise result.

getDomain

The data domain the grid spans.

typescript
getDomain(): Promise<DensityMapDomain>

Return type: Promise<DensityMapDomain>. Call the method after element registration and await its Promise result.

getBandwidth

The resolved bandwidth (data units, CSS px, cells; auto when Silverman chose it).

typescript
getBandwidth(): Promise<DensityMapBandwidth>

Return type: Promise<DensityMapBandwidth>. Call the method after element registration and await its Promise result.

getKernelTaps

the normalised kernel taps of the current estimate per axis (length 2 × radius + 1; they sum to 1).

typescript
getKernelTaps(): Promise<{ kernel: DensityMapKernel; x: number[]; y: number[]; radius: { x: number; y: number } }>

Return type: Promise<{ kernel: DensityMapKernel; x: number[]; y: number[]; radius: { x: number; y: number } }>. Call the method after element registration and await its Promise result.

getComputeStats

The statistics of the last estimate (points, grid, kernel, bandwidth, radius, compute time, peak, mass).

typescript
getComputeStats(): Promise<DensityMapComputeStats>

Return type: Promise<DensityMapComputeStats>. Call the method after element registration and await its Promise result.

getPlaneValues

a copy of the current plane (NaN = empty; cell mass), whichever path computed it (waits for a pending readback).

typescript
getPlaneValues(): Promise<Float32Array>

Return type: Promise<Float32Array>. Call the method after element registration and await its Promise result.

computeReference

the CPU reference estimate for the current inputs (the parity oracle of the GPU path; never cached).

typescript
computeReference(): Promise<{ values: Float32Array; densityMax: number; mass: number; binned: number; finite: number; computeMs: number; radius: { x: number; y: number } }>

Return type: Promise<{ values: Float32Array; densityMax: number; mass: number; binned: number; finite: number; computeMs: number; radius: { x: number; y: number } }>. Call the method after element registration and await its Promise result.

setVisualMap

Bind (or clear with null) a visual-map snapshot; it wins over the visualMap prop until the prop changes again.

typescript
setVisualMap(binding: VisualMapBinding | null): Promise<VisualMapBinding | null>
ArgumentsTypeRequired
bindingVisualMapBinding | nullRequired

Return type: Promise<VisualMapBinding | null>. Call the method after element registration and await its Promise result.

getVisualMap

An asynchronous method. Check the argument and return types below.

typescript
getVisualMap(): Promise<VisualMapBinding | null>

Return type: Promise<VisualMapBinding | null>. Call the method after element registration and await its Promise result.

getVisualExtent

The extent of a dimension: value = the density (0 … peak), x / y = the domain, index = the cell indexes.

typescript
getVisualExtent(request?: VisualMapExtentRequest): Promise<VisualMapExtent | null>
ArgumentsTypeRequired
requestVisualMapExtentRequestOptional

Return type: Promise<VisualMapExtent | null>. Call the method after element registration and await its Promise result.

zoomTo

Zoom to explicit windows in data units: x / y as { min, max } or [min, max] (null clears that orientation); xAxis / yAxis name the axis by id or slot index (default: the primary axis).

typescript
zoomTo(request: CartesianZoomRequest): Promise<CartesianZoomChangeEventDetail | null>
ArgumentsTypeRequired
requestCartesianZoomRequestRequired

Return type: Promise<CartesianZoomChangeEventDetail | null>. Call the method after element registration and await its Promise result.

zoomBy

Scale the current windows by factor (< 1 zooms in) around anchorFraction (0..1, default centre).

typescript
zoomBy(factor: number, anchorFraction?: number): Promise<CartesianZoomChangeEventDetail | null>
ArgumentsTypeRequired
factornumberRequired
anchorFractionnumberOptional

Return type: Promise<CartesianZoomChangeEventDetail | null>. Call the method after element registration and await its Promise result.

panBy

Slide the zoomed windows by data units ({ x?, y? }); a no-op at the full extent.

typescript
panBy(delta: { x?: number; y?: number }): Promise<CartesianZoomChangeEventDetail | null>
ArgumentsTypeRequired
delta{ x?: number; y?: number }Required

Return type: Promise<CartesianZoomChangeEventDetail | null>. Call the method after element registration and await its Promise result.

resetZoom

Reset the zoomed or panned range to the original data range.

typescript
resetZoom(): Promise<CartesianZoomChangeEventDetail | null>

Return type: Promise<CartesianZoomChangeEventDetail | null>. Call the method after element registration and await its Promise result.

getZoom

Read the current zoom range. Check the return type's nullability and the range for each axis.

typescript
getZoom(): Promise<CartesianZoomState | null>

Return type: Promise<CartesianZoomState | null>. Call the method after element registration and await its Promise result.

getZoomExtent

The full extent (and key) of the primary — or the named — master axes (the field's x / y domain).

typescript
getZoomExtent(request?: CartesianZoomExtentRequest): Promise<CartesianZoomExtentDetail | null>
ArgumentsTypeRequired
requestCartesianZoomExtentRequestOptional

Return type: Promise<CartesianZoomExtentDetail | null>. Call the method after element registration and await its Promise result.

getEngineStatus

Requested engine vs what runs, and why (CHART-ADD-08): the decision for the current inputs, read without side effects (ProChartLicense.engineStatus); a renderer that failed at run time reports engine-unsupported.

typescript
getEngineStatus(): Promise<ChartEngineStatus>

Return type: Promise<ChartEngineStatus>. Call the method after element registration and await its Promise result.