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