Skip to content

charton API


charton API / @chart-on/core / index / TimeScale

Class: TimeScale ​

Defined in: packages/core/src/scales.ts:46

Horizontal logical-index scale shared by all panes. x(i) = width - (rightEdge - i) * barSpacing, where rightEdge = lastIndex + rightOffset.

Constructors ​

Constructor ​

new TimeScale(options): TimeScale

Defined in: packages/core/src/scales.ts:85

Parameters ​

options ​

TimeScaleOptions

Returns ​

TimeScale

Properties ​

barCount ​

barCount: number = 0

Defined in: packages/core/src/scales.ts:48


barSpacing ​

barSpacing: number

Defined in: packages/core/src/scales.ts:49


bounds ​

bounds: { from: number; to: number; } | null = null

Defined in: packages/core/src/scales.ts:64

Viewport bounds as bar indices: the plot edges stay within half a bar of from and to (either may be infinite). Null when unbounded.


defaultRightOffset ​

defaultRightOffset: number

Defined in: packages/core/src/scales.ts:54

The configured right offset: the right limit under fixRightEdge.


fixLeftEdge ​

fixLeftEdge: boolean

Defined in: packages/core/src/scales.ts:55


fixRightEdge ​

fixRightEdge: boolean

Defined in: packages/core/src/scales.ts:56


grouped ​

grouped: boolean

Defined in: packages/core/src/scales.ts:59


maxBarSpacing ​

maxBarSpacing: number

Defined in: packages/core/src/scales.ts:52


maxRightOffset ​

maxRightOffset: number | undefined

Defined in: packages/core/src/scales.ts:57


minBarCoverage ​

minBarCoverage: number

Defined in: packages/core/src/scales.ts:58


minBarSpacing ​

minBarSpacing: number

Defined in: packages/core/src/scales.ts:51


moves ​

moves: number = 0

Defined in: packages/core/src/scales.ts:69

Direct pans and zooms so far, to tell the user moving the view from clamping, resizing or an eased transition, which do not count.


rightOffset ​

rightOffset: number

Defined in: packages/core/src/scales.ts:50


width ​

width: number = 0

Defined in: packages/core/src/scales.ts:47

Accessors ​

animating ​

Get Signature ​

get animating(): boolean

Defined in: packages/core/src/scales.ts:212

Returns ​

boolean


floorSpacing ​

Get Signature ​

get floorSpacing(): number

Defined in: packages/core/src/scales.ts:108

Narrowest bar spacing zooming reaches: minBarSpacing, or while bars are grouped, low enough to fit every bar twice over.

Returns ​

number


rightEdge ​

Get Signature ​

get rightEdge(): number

Defined in: packages/core/src/scales.ts:113

Returns ​

number

Methods ​

animateTo() ​

animateTo(target, durationMs?, quantum?, ease?): void

Defined in: packages/core/src/scales.ts:187

Ease to a bar spacing / right offset, clamped to the limits. Spacing interpolates in log space so zooming feels uniform; any direct pan/zoom should cancelAnimation() first. A quantum (in bars, e.g. one device pixel) makes the right offset move in whole steps towards its target, so a slow pan shifts every bar by the same pixel at once. ease maps progress (default: cubic ease-out).

Parameters ​

target ​
barSpacing? ​

number

rightOffset? ​

number

durationMs? ​

number = 450

quantum? ​

number = 0

ease? ​

(t) => number

Returns ​

void


cancelAnimation() ​

cancelAnimation(): void

Defined in: packages/core/src/scales.ts:222

Returns ​

void


clamp() ​

clamp(): void

Defined in: packages/core/src/scales.ts:280

Apply the limits: bar spacing within its range, bars over at least minBarCoverage of the plot, and the fixed edges and maxRightOffset. When too few bars fill the plot for both edges, the left edge wins.

Returns ​

void


indexToX() ​

indexToX(index): number

Defined in: packages/core/src/scales.ts:117

Parameters ​

index ​

number

Returns ​

number


maxOffset() ​

maxOffset(): number

Defined in: packages/core/src/scales.ts:242

Most empty bars the limits allow right of the last bar.

Returns ​

number


minSpacing() ​

minSpacing(): number

Defined in: packages/core/src/scales.ts:253

Smallest bar spacing: minBarSpacing, raised when both ends are bounded (left edge fixed, right limited) so zooming out stops once every bar fits. When too few bars fill the plot even at maxBarSpacing, the left edge wins and zoom keeps its full range.

Returns ​

number


pan() ​

pan(dx): boolean

Defined in: packages/core/src/scales.ts:157

Positive dx drags content right (towards older bars). False when an edge stopped it.

Parameters ​

dx ​

number

Returns ​

boolean


setBarSpacing() ​

setBarSpacing(spacing, anchorX?): void

Defined in: packages/core/src/scales.ts:175

Parameters ​

spacing ​

number

anchorX? ​

number = ...

Returns ​

void


setLimits() ​

setLimits(limits): void

Defined in: packages/core/src/scales.ts:92

Replace the limits; call clamp() afterwards to apply them to the view. Throws on an invalid limit.

Parameters ​

limits ​

TimeScaleLimits

Returns ​

void


setWidth() ​

setWidth(width, keepRange?): void

Defined in: packages/core/src/scales.ts:142

Set the plot width. With keepRange the same bars stay on screen: the bar spacing scales with the width (within its limits) and the right edge stays.

Parameters ​

width ​

number

keepRange? ​

boolean = false

Returns ​

void


step() ​

step(dt): boolean

Defined in: packages/core/src/scales.ts:227

Advance the eased transition by dt ms; true while still running.

Parameters ​

dt ​

number

Returns ​

boolean


target() ​

target(): object

Defined in: packages/core/src/scales.ts:217

Where the view ends up: the eased transition's target, or the current view.

Returns ​

object

barSpacing ​

barSpacing: number

rightOffset ​

rightOffset: number


visibleRange() ​

visibleRange(): IndexRange

Defined in: packages/core/src/scales.ts:131

Bars at least partly on screen; one centered on an edge counts, floating-point noise does not add a neighbor.

Returns ​

IndexRange


xToIndex() ​

xToIndex(x): number

Defined in: packages/core/src/scales.ts:121

Parameters ​

x ​

number

Returns ​

number


xTransform() ​

xTransform(): [number, number]

Defined in: packages/core/src/scales.ts:126

Affine coefficients so that x = index * scale + offset.

Returns ​

[number, number]


zoom() ​

zoom(factor, anchorX): void

Defined in: packages/core/src/scales.ts:166

Zoom keeping the bar under anchorX fixed on screen, unless that would cross a fixed edge.

Parameters ​

factor ​

number

anchorX ​

number

Returns ​

void