sy-calendar-heatmap

Calendar Heatmap

Show daily activity as colors on a calendar.

sy-calendar-heatmap

Inspect weekly patterns in daily usage, performance, attendance, and similar measures.

Distinguish missing dates from actual zero values. Keep date formatting and the first day of the week consistent.

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

InputData description
dataAn array of { date, value }. The example uses YYYY-MM-DD dates.
weekStartmonday or sunday.

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-calendar-heatmap.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-calendar-heatmap",
      "props": {
        "data": [
          {
            "date": "2026-01-01",
            "value": 0
          },
          {
            "date": "2026-01-02",
            "value": 13
          },
          {
            "date": "2026-01-03",
            "value": 26
          },
          {
            "date": "2026-01-04",
            "value": 39
          },
          {
            "date": "2026-01-05",
            "value": 52
          },
          {
            "date": "2026-01-06",
            "value": 65
          },
          {
            "date": "2026-01-07",
            "value": 78
          },
          {
            "date": "2026-01-08",
            "value": 91
          },
          {
            "date": "2026-01-09",
            "value": 4
          },
          {
            "date": "2026-01-10",
            "value": 17
          },
          {
            "date": "2026-01-11",
            "value": 30
          },
          {
            "date": "2026-01-12",
            "value": 43
          },
          {
            "date": "2026-01-13",
            "value": 56
          },
          {
            "date": "2026-01-14",
            "value": 69
          },
          {
            "date": "2026-01-15",
            "value": 82
          },
          {
            "date": "2026-01-16",
            "value": 95
          },
          {
            "date": "2026-01-17",
            "value": 8
          },
          {
            "date": "2026-01-18",
            "value": 21
          },
          {
            "date": "2026-01-19",
            "value": 34
          },
          {
            "date": "2026-01-20",
            "value": 47
          },
          {
            "date": "2026-01-21",
            "value": 60
          },
          {
            "date": "2026-01-22",
            "value": 73
          },
          {
            "date": "2026-01-23",
            "value": 86
          },
          {
            "date": "2026-01-24",
            "value": 99
          },
          {
            "date": "2026-01-25",
            "value": 12
          },
          {
            "date": "2026-01-26",
            "value": 25
          },
          {
            "date": "2026-01-27",
            "value": 38
          },
          {
            "date": "2026-01-28",
            "value": 51
          },
          {
            "date": "2026-01-29",
            "value": 64
          },
          {
            "date": "2026-01-30",
            "value": 77
          },
          {
            "date": "2026-01-31",
            "value": 90
          },
          {
            "date": "2026-02-01",
            "value": 3
          },
          {
            "date": "2026-02-02",
            "value": 16
          },
          {
            "date": "2026-02-03",
            "value": 29
          },
          {
            "date": "2026-02-04",
            "value": 42
          },
          {
            "date": "2026-02-05",
            "value": 55
          },
          {
            "date": "2026-02-06",
            "value": 68
          },
          {
            "date": "2026-02-07",
            "value": 81
          },
          {
            "date": "2026-02-08",
            "value": 94
          },
          {
            "date": "2026-02-09",
            "value": 7
          },
          {
            "date": "2026-02-10",
            "value": 20
          },
          {
            "date": "2026-02-11",
            "value": 33
          },
          {
            "date": "2026-02-12",
            "value": 46
          },
          {
            "date": "2026-02-13",
            "value": 59
          },
          {
            "date": "2026-02-14",
            "value": 72
          },
          {
            "date": "2026-02-15",
            "value": 85
          },
          {
            "date": "2026-02-16",
            "value": 98
          },
          {
            "date": "2026-02-17",
            "value": 11
          },
          {
            "date": "2026-02-18",
            "value": 24
          },
          {
            "date": "2026-02-19",
            "value": 37
          },
          {
            "date": "2026-02-20",
            "value": 50
          },
          {
            "date": "2026-02-21",
            "value": 63
          },
          {
            "date": "2026-02-22",
            "value": 76
          },
          {
            "date": "2026-02-23",
            "value": 89
          },
          {
            "date": "2026-02-24",
            "value": 2
          },
          {
            "date": "2026-02-25",
            "value": 15
          },
          {
            "date": "2026-02-26",
            "value": 28
          },
          {
            "date": "2026-02-27",
            "value": 41
          },
          {
            "date": "2026-02-28",
            "value": 54
          },
          {
            "date": "2026-03-01",
            "value": 67
          },
          {
            "date": "2026-03-02",
            "value": 80
          },
          {
            "date": "2026-03-03",
            "value": 93
          },
          {
            "date": "2026-03-04",
            "value": 6
          },
          {
            "date": "2026-03-05",
            "value": 19
          },
          {
            "date": "2026-03-06",
            "value": 32
          },
          {
            "date": "2026-03-07",
            "value": 45
          },
          {
            "date": "2026-03-08",
            "value": 58
          },
          {
            "date": "2026-03-09",
            "value": 71
          },
          {
            "date": "2026-03-10",
            "value": 84
          },
          {
            "date": "2026-03-11",
            "value": 97
          },
          {
            "date": "2026-03-12",
            "value": 10
          },
          {
            "date": "2026-03-13",
            "value": 23
          },
          {
            "date": "2026-03-14",
            "value": 36
          },
          {
            "date": "2026-03-15",
            "value": 49
          },
          {
            "date": "2026-03-16",
            "value": 62
          },
          {
            "date": "2026-03-17",
            "value": 75
          },
          {
            "date": "2026-03-18",
            "value": 88
          },
          {
            "date": "2026-03-19",
            "value": 1
          },
          {
            "date": "2026-03-20",
            "value": 14
          },
          {
            "date": "2026-03-21",
            "value": 27
          },
          {
            "date": "2026-03-22",
            "value": 40
          },
          {
            "date": "2026-03-23",
            "value": 53
          },
          {
            "date": "2026-03-24",
            "value": 66
          },
          {
            "date": "2026-03-25",
            "value": 79
          },
          {
            "date": "2026-03-26",
            "value": 92
          },
          {
            "date": "2026-03-27",
            "value": 5
          },
          {
            "date": "2026-03-28",
            "value": 18
          },
          {
            "date": "2026-03-29",
            "value": 31
          },
          {
            "date": "2026-03-30",
            "value": 44
          },
          {
            "date": "2026-03-31",
            "value": 57
          }
        ],
        "weekStart": "monday",
        "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', 'calendar-heatmap 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 { date, value }. The example uses YYYY-MM-DD dates.

ItemValue
JavaScript propertydata
HTML attributePass objects, arrays, and callbacks as JavaScript properties
TypeCalendarHeatmapData
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
Default900

height

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

ItemValue
JavaScript propertyheight
HTML attributeheight
Typenumber
Default180

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

year

The range: a year (Jan 1 … Dec 31); start-date / end-date win over it; neither → the data's span.

ItemValue
JavaScript propertyyear
HTML attributeyear
Typenumber
Defaultundefined

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

startDate

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

ItemValue
JavaScript propertystartDate
HTML attributestart-date
Typestring
Defaultundefined

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

endDate

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

ItemValue
JavaScript propertyendDate
HTML attributeend-date
Typestring
Defaultundefined

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

weekStart

monday or sunday.

ItemValue
JavaScript propertyweekStart
HTML attributeweek-start
TypeCalendarWeekStart
Default'monday'
Allowed valuesmonday, sunday

aggregate

How several entries on one day fold: sum (default), max, min, mean, last.

ItemValue
JavaScript propertyaggregate
HTML attributeaggregate
TypeCalendarAggregate
Default'sum'
Allowed valuessum, max, min, mean, last

noDataValue

What a day without entries reads on the plane: a number (default 0 → the ramp's first colour) or nan (→ empty-color).

ItemValue
JavaScript propertynoDataValue
HTML attributePass objects, arrays, and callbacks as JavaScript properties
Typenumber | 'nan'
Default0
Literals in the typenan

colors

The colour ramp (a scheme name, a colour list / comma list, or [t, colour] stops); default GitHub's greens.

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

Domain ends; an omitted end follows the data (the min includes the fill, so 0 is the ramp start).

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 a NaN cell (the strip's corners outside the range, and no-data days under no-data-value="nan") — transparent by default.

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

cellGap

CSS px between cells.

ItemValue
JavaScript propertycellGap
HTML attributecell-gap
Typenumber
Default2

cellRadius

The cell corner radius in CSS px.

ItemValue
JavaScript propertycellRadius
HTML attributecell-radius
Typenumber
Default2

cellBorder

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

ItemValue
JavaScript propertycellBorder
HTML attributecell-border
Typenumber
Default0

cellBorderColor

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

ItemValue
JavaScript propertycellBorderColor
HTML attributecell-border-color
Typestring
Default'rgba(17,24,39,0.35)'

renderPath

The draw path: auto (the cells path from 3 device px per cell — the usual case), or a forced plane / cells.

ItemValue
JavaScript propertyrenderPath
HTML attributerender-path
TypeCalendarHeatmapRenderPath
Default'auto'
Allowed valuesauto, plane, cells

lod

Allowed values: auto, point, area, smooth. Default: 'auto'.

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

monthLabels

Month labels along the top (a month whose label would overlap the previous one is skipped).

ItemValue
JavaScript propertymonthLabels
HTML attributemonth-labels
Typeboolean
Defaulttrue

weekdayLabels

Weekday labels down the left: short (rows 0 / 2 / 4), all, none.

ItemValue
JavaScript propertyweekdayLabels
HTML attributeweekday-labels
TypeCalendarWeekdayLabels
Default'short'
Allowed valuesnone, short, all

monthLines

Month boundaries as step lines between the cells.

ItemValue
JavaScript propertymonthLines
HTML attributemonth-lines
Typeboolean
Defaulttrue

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: CalendarHeatmapPointEventDetail) => 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
TypeCalendarHeatmapEasing
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
TypeCalendarHeatmapAnimationType
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
TypeCalendarHeatmapStreamSource
Defaultundefined

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

streamMax

Streamed entries kept at most (default 10,000): the oldest leave 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 entries the chart folds in (the whole buffer when unset): the upserts of older entries revert to the data entries.

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; 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.

zoom

Viewport zoom (Storybook parity, 2026-09-10) — the zoom attribute the cartesian charts carry: a mode ('x' | 'y' | 'xy'), true (x) or an object (mode / drag / keyboard / minRangePx / resetButton / pan / wheel / pinch / inside); off by default. The strip (the plot between the label bands) is the drawing rectangle — x runs 0 → 1 left to right over the weeks, y 0 → 1 bottom to top over the weekday rows — and the day cells are magnified into the window (their gap keeps its screen size); weeks and rows outside it leave the strip, the month lines, the labels and the hover / focus rings follow the visible cells. zoomTo / zoomBy / panBy / resetZoom work regardless of the gesture switches. Property-only (a mode string also works as an attribute).

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.

engine

Renderer selection: auto, standard, or pro. Engine selection is separate from permission to use a Pro chart type.

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

unavailable

Allowed values: fallback, error. Default: 'fallback'.

ItemValue
JavaScript propertyunavailable
HTML attributeunavailable
TypeCalendarHeatmapUnavailableBehaviour
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<CalendarHeatmapRenderResult & { tier: CalendarHeatmapEngineTier; engine?: ChartEngineStatus }>.

javascript
chart.addEventListener('rendered', event => {
  console.log(event.detail); // CalendarHeatmapRenderResult & { tier: CalendarHeatmapEngineTier; 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<CalendarHeatmapPointEventDetail>.

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

pointHover

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

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

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

pointContextMenu

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

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

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

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

Every zoom / pan change (drag, pan, wheel, pinch, keyboard, API, reset).

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<CalendarHeatmapRenderResult>

Return type: Promise<CalendarHeatmapRenderResult>. 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<CalendarHeatmapEngineTier>

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

getUnavailableReason

Why the WebGPU renderer could not run (the fallback notice's reason); undefined when nothing fell back.

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: CalendarHeatmapData): Promise<void>
ArgumentsTypeRequired
dataCalendarHeatmapDataRequired

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(entry: CalendarHeatmapEntry): Promise<void>
ArgumentsTypeRequired
entryCalendarHeatmapEntryRequired

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(entries: ReadonlyArray<CalendarHeatmapEntry>): Promise<void>
ArgumentsTypeRequired
entriesReadonlyArray<CalendarHeatmapEntry>Required

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

shift

Drop the count oldest STREAMED entries (the data prop's entries are not a stream).

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(entries: ReadonlyArray<CalendarHeatmapEntry>): Promise<void>
ArgumentsTypeRequired
entriesReadonlyArray<CalendarHeatmapEntry>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<CalendarHeatmapStreamSource | undefined>

Return type: Promise<CalendarHeatmapStreamSource | 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?: CalendarHeatmapEasing; enabled?: boolean; type?: CalendarHeatmapAnimationType }): Promise<void>
ArgumentsTypeRequired
options{ duration?: number; easing?: CalendarHeatmapEasing; enabled?: boolean; type?: CalendarHeatmapAnimationType }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 day under host-relative CSS coordinates, or null (outside the strip, or a corner cell outside the range).

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

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

getCellValue

The folded value of a day (null for a day without entries or outside the range).

typescript
getCellValue(date: CalendarDateInput): Promise<number | null>
ArgumentsTypeRequired
dateCalendarDateInputRequired

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

getValueExtent

The data's extent (the fill never counts).

typescript
getValueExtent(): Promise<CalendarHeatmapValueExtent | null>

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

getGridSize

Columns × rows of the current grid.

typescript
getGridSize(): Promise<{ weeks: number; rows: number; cells: number; days: number; valued: number; entries: number; dropped: number }>

Return type: Promise<{ weeks: number; rows: number; cells: number; days: number; valued: number; entries: number; dropped: number }>. Call the method after element registration and await its Promise result.

getRange

The resolved range.

typescript
getRange(): Promise<CalendarHeatmapRange>

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

getMonthMarks

The month marks (labels + boundary anchors).

typescript
getMonthMarks(): Promise<CalendarMonthMark[]>

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

showTooltipAtCell

open the tooltip on a cell (week / weekday), honouring the tooltip input; null when the tooltip is off or the cell has no day.

typescript
showTooltipAtCell(week: number, weekday: number): Promise<CartesianTooltipEventDetail | null>
ArgumentsTypeRequired
weeknumberRequired
weekdaynumberRequired

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

showTooltipAtDate

open the tooltip on a day (null outside the range).

typescript
showTooltipAtDate(date: CalendarDateInput): Promise<CartesianTooltipEventDetail | null>
ArgumentsTypeRequired
dateCalendarDateInputRequired

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 public index (week * 7 + weekday; 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 ring to a cell and announce it (null for a cell without a day).

typescript
focusCellAt(week: number, weekday: number): Promise<CalendarHeatmapPointEventDetail | null>
ArgumentsTypeRequired
weeknumberRequired
weekdaynumberRequired

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

focusDate

move the keyboard focus ring to a day (null outside the range).

typescript
focusDate(date: CalendarDateInput): Promise<CalendarHeatmapPointEventDetail | null>
ArgumentsTypeRequired
dateCalendarDateInputRequired

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

setVisualMap

Bind (or clear) a visual map: every mark is coloured through it on the next paint.

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 day values, x = the week columns, y = the weekday rows, index = the cells.

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 of the strip (x / y as { min, max } or [min, max] fractions 0 … 1; null clears that orientation).

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 fractions of the strip ({ 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 of the viewport axes ([0, 1] each, key '0').

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.