Skip to content

Documentation / @ripl/core / Context

Abstract Class: Context<TElement, TMeta> ​

Defined in: packages/core/src/context/context.ts:96

Abstract rendering context providing a unified API for Canvas and SVG, with state management and coordinate scaling.

Extends ​

Type Parameters ​

Type ParameterDefault type
TElement extends ElementElement
TMeta extends Record<string, unknown>Record<string, unknown>

Implements ​

Constructors ​

Constructor ​

new Context<TElement, TMeta>(type, element, options?): Context<TElement, TMeta>

Defined in: packages/core/src/context/context.ts:351

Parameters ​

ParameterType
typestring
elementTElement
options?ContextOptions<TMeta>

Returns ​

Context<TElement, TMeta>

Overrides ​

EventBus.constructor

Properties ​

PropertyModifierTypeDefault valueInherited fromDefined in
bufferpublicbooleanfalse-packages/core/src/context/context.ts:102
currentStateprotectedBaseStateundefined-packages/core/src/context/context.ts:112
elementreadonlyTElementundefined-packages/core/src/context/context.ts:99
heightpublicnumberundefined-packages/core/src/context/context.ts:104
metareadonlyTMetaundefined-packages/core/src/context/context.ts:100
parent?publicEventBus<ContextEventMap>undefinedEventBus.parentpackages/core/src/core/event-bus.ts:79
renderDepthprotectednumber0-packages/core/src/context/context.ts:113
renderedElementspublicRenderElement[]undefined-packages/core/src/context/context.ts:109
renderElement?publicRenderElementundefined-packages/core/src/context/context.ts:108
scaleDPRpublicScale<number, number>undefined-packages/core/src/context/context.ts:107
scaleXpublicScale<number, number>undefined-packages/core/src/context/context.ts:105
scaleYpublicScale<number, number>undefined-packages/core/src/context/context.ts:106
statesprotectedBaseState[]undefined-packages/core/src/context/context.ts:111
typereadonlystringundefined-packages/core/src/context/context.ts:98
widthpublicnumberundefined-packages/core/src/context/context.ts:103
defaultKeyreadonlytypeof defaultKeyundefinedEventBus.defaultKeypackages/core/src/core/disposer.ts:10

Accessors ​

currentRenderElement ​

Get Signature ​

get currentRenderElement(): RenderElement | undefined

Defined in: packages/core/src/context/context.ts:115

Returns ​

RenderElement | undefined

Set Signature ​

set currentRenderElement(element): void

Defined in: packages/core/src/context/context.ts:119

Parameters ​
ParameterType
elementRenderElement | undefined
Returns ​

void


direction ​

Get Signature ​

get direction(): Direction

Defined in: packages/core/src/context/context.ts:143

Returns ​

Direction

Set Signature ​

set direction(value): void

Defined in: packages/core/src/context/context.ts:147

Parameters ​
ParameterType
valueDirection
Returns ​

void

Implementation of ​

BaseState.direction


fill ​

Get Signature ​

get fill(): string

Defined in: packages/core/src/context/context.ts:127

Returns ​

string

Set Signature ​

set fill(value): void

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

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.fill


filter ​

Get Signature ​

get filter(): string

Defined in: packages/core/src/context/context.ts:135

Returns ​

string

Set Signature ​

set filter(value): void

Defined in: packages/core/src/context/context.ts:139

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.filter


font ​

Get Signature ​

get font(): string

Defined in: packages/core/src/context/context.ts:151

Returns ​

string

Set Signature ​

set font(value): void

Defined in: packages/core/src/context/context.ts:155

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.font


fontKerning ​

Get Signature ​

get fontKerning(): FontKerning

Defined in: packages/core/src/context/context.ts:159

Returns ​

FontKerning

Set Signature ​

set fontKerning(value): void

Defined in: packages/core/src/context/context.ts:163

Parameters ​
ParameterType
valueFontKerning
Returns ​

void

Implementation of ​

BaseState.fontKerning


globalCompositeOperation ​

Get Signature ​

get globalCompositeOperation(): unknown

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

Returns ​

unknown

Set Signature ​

set globalCompositeOperation(value): void

Defined in: packages/core/src/context/context.ts:179

Parameters ​
ParameterType
valueunknown
Returns ​

void

Implementation of ​

BaseState.globalCompositeOperation


lineCap ​

Get Signature ​

get lineCap(): LineCap

Defined in: packages/core/src/context/context.ts:183

Returns ​

LineCap

Set Signature ​

set lineCap(value): void

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

Parameters ​
ParameterType
valueLineCap
Returns ​

void

Implementation of ​

BaseState.lineCap


lineDash ​

Get Signature ​

get lineDash(): number[]

Defined in: packages/core/src/context/context.ts:191

Returns ​

number[]

Set Signature ​

set lineDash(value): void

Defined in: packages/core/src/context/context.ts:195

Parameters ​
ParameterType
valuenumber[]
Returns ​

void

Implementation of ​

BaseState.lineDash


lineDashOffset ​

Get Signature ​

get lineDashOffset(): number

Defined in: packages/core/src/context/context.ts:199

Returns ​

number

Set Signature ​

set lineDashOffset(value): void

Defined in: packages/core/src/context/context.ts:203

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.lineDashOffset


lineJoin ​

Get Signature ​

get lineJoin(): LineJoin

Defined in: packages/core/src/context/context.ts:207

Returns ​

LineJoin

Set Signature ​

set lineJoin(value): void

Defined in: packages/core/src/context/context.ts:211

Parameters ​
ParameterType
valueLineJoin
Returns ​

void

Implementation of ​

BaseState.lineJoin


lineWidth ​

Get Signature ​

get lineWidth(): number

Defined in: packages/core/src/context/context.ts:215

Returns ​

number

Set Signature ​

set lineWidth(value): void

Defined in: packages/core/src/context/context.ts:219

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.lineWidth


miterLimit ​

Get Signature ​

get miterLimit(): number

Defined in: packages/core/src/context/context.ts:223

Returns ​

number

Set Signature ​

set miterLimit(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.miterLimit


opacity ​

Get Signature ​

get opacity(): number

Defined in: packages/core/src/context/context.ts:167

Returns ​

number

Set Signature ​

set opacity(value): void

Defined in: packages/core/src/context/context.ts:171

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.opacity


rotation ​

Get Signature ​

get rotation(): Rotation

Defined in: packages/core/src/context/context.ts:327

Returns ​

Rotation

Set Signature ​

set rotation(value): void

Defined in: packages/core/src/context/context.ts:331

Parameters ​
ParameterType
valueRotation
Returns ​

void

Implementation of ​

BaseState.rotation


shadowBlur ​

Get Signature ​

get shadowBlur(): number

Defined in: packages/core/src/context/context.ts:231

Returns ​

number

Set Signature ​

set shadowBlur(value): void

Defined in: packages/core/src/context/context.ts:235

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.shadowBlur


shadowColor ​

Get Signature ​

get shadowColor(): string

Defined in: packages/core/src/context/context.ts:239

Returns ​

string

Set Signature ​

set shadowColor(value): void

Defined in: packages/core/src/context/context.ts:243

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.shadowColor


shadowOffsetX ​

Get Signature ​

get shadowOffsetX(): number

Defined in: packages/core/src/context/context.ts:247

Returns ​

number

Set Signature ​

set shadowOffsetX(value): void

Defined in: packages/core/src/context/context.ts:251

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.shadowOffsetX


shadowOffsetY ​

Get Signature ​

get shadowOffsetY(): number

Defined in: packages/core/src/context/context.ts:255

Returns ​

number

Set Signature ​

set shadowOffsetY(value): void

Defined in: packages/core/src/context/context.ts:259

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.shadowOffsetY


stroke ​

Get Signature ​

get stroke(): string

Defined in: packages/core/src/context/context.ts:263

Returns ​

string

Set Signature ​

set stroke(value): void

Defined in: packages/core/src/context/context.ts:267

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.stroke


textAlign ​

Get Signature ​

get textAlign(): TextAlignment

Defined in: packages/core/src/context/context.ts:271

Returns ​

TextAlignment

Set Signature ​

set textAlign(value): void

Defined in: packages/core/src/context/context.ts:275

Parameters ​
ParameterType
valueTextAlignment
Returns ​

void

Implementation of ​

BaseState.textAlign


textBaseline ​

Get Signature ​

get textBaseline(): TextBaseline

Defined in: packages/core/src/context/context.ts:279

Returns ​

TextBaseline

Set Signature ​

set textBaseline(value): void

Defined in: packages/core/src/context/context.ts:283

Parameters ​
ParameterType
valueTextBaseline
Returns ​

void

Implementation of ​

BaseState.textBaseline


transformOriginX ​

Get Signature ​

get transformOriginX(): TransformOrigin

Defined in: packages/core/src/context/context.ts:335

Returns ​

TransformOrigin

Set Signature ​

set transformOriginX(value): void

Defined in: packages/core/src/context/context.ts:339

Parameters ​
ParameterType
valueTransformOrigin
Returns ​

void

Implementation of ​

BaseState.transformOriginX


transformOriginY ​

Get Signature ​

get transformOriginY(): TransformOrigin

Defined in: packages/core/src/context/context.ts:343

Returns ​

TransformOrigin

Set Signature ​

set transformOriginY(value): void

Defined in: packages/core/src/context/context.ts:347

Parameters ​
ParameterType
valueTransformOrigin
Returns ​

void

Implementation of ​

BaseState.transformOriginY


transformScaleX ​

Get Signature ​

get transformScaleX(): number

Defined in: packages/core/src/context/context.ts:311

Returns ​

number

Set Signature ​

set transformScaleX(value): void

Defined in: packages/core/src/context/context.ts:315

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.transformScaleX


transformScaleY ​

Get Signature ​

get transformScaleY(): number

Defined in: packages/core/src/context/context.ts:319

Returns ​

number

Set Signature ​

set transformScaleY(value): void

Defined in: packages/core/src/context/context.ts:323

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.transformScaleY


translateX ​

Get Signature ​

get translateX(): number

Defined in: packages/core/src/context/context.ts:295

Returns ​

number

Set Signature ​

set translateX(value): void

Defined in: packages/core/src/context/context.ts:299

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.translateX


translateY ​

Get Signature ​

get translateY(): number

Defined in: packages/core/src/context/context.ts:303

Returns ​

number

Set Signature ​

set translateY(value): void

Defined in: packages/core/src/context/context.ts:307

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.translateY


zIndex ​

Get Signature ​

get zIndex(): number

Defined in: packages/core/src/context/context.ts:287

Returns ​

number

Set Signature ​

set zIndex(value): void

Defined in: packages/core/src/context/context.ts:291

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.zIndex

Methods ​

applyClip() ​

applyClip(path, fillRule?): void

Defined in: packages/core/src/context/context.ts:500

Clips subsequent drawing operations to the given path.

Parameters ​

ParameterType
pathContextPath
fillRule?FillRule

Returns ​

void


applyFill() ​

applyFill(path, fillRule?): void

Defined in: packages/core/src/context/context.ts:505

Fills the given path or text element using the current fill style.

Parameters ​

ParameterType
pathContextElement
fillRule?FillRule

Returns ​

void


applyStroke() ​

applyStroke(path): void

Defined in: packages/core/src/context/context.ts:510

Strokes the given path or text element using the current stroke style.

Parameters ​

ParameterType
pathContextElement

Returns ​

void


batch() ​

batch<TResult>(body): TResult

Defined in: packages/core/src/context/context.ts:441

Clears the rendering surface and brackets the callback in markRenderStart/markRenderEnd, returning the callback's result.

Type Parameters ​

Type ParameterDefault type
TResultvoid

Parameters ​

ParameterType
body() => TResult

Returns ​

TResult


clear() ​

clear(): void

Defined in: packages/core/src/context/context.ts:408

Clears the entire rendering surface.

Returns ​

void


createPath() ​

createPath(id?): ContextPath

Defined in: packages/core/src/context/context.ts:485

Creates a new path element, optionally reusing an id for SVG diffing efficiency.

Parameters ​

ParameterType
id?string

Returns ​

ContextPath


createText() ​

createText(options): ContextText

Defined in: packages/core/src/context/context.ts:490

Creates a new text element from the given options.

Parameters ​

ParameterType
optionsTextOptions

Returns ​

ContextText


destroy() ​

destroy(): void

Defined in: packages/core/src/context/context.ts:544

Destroys the context and disposes all resources.

Returns ​

void

Overrides ​

EventBus.destroy


dispose() ​

protected dispose(key?): void

Defined in: packages/core/src/core/disposer.ts:24

Disposes all resources under the given key, or all resources if no key is provided.

Parameters ​

ParameterType
key?PropertyKey

Returns ​

void

Inherited from ​

EventBus.dispose


drawImage() ​

drawImage(image, x, y, width?, height?): void

Defined in: packages/core/src/context/context.ts:495

Draws an image onto the rendering surface at the given position and optional size.

Parameters ​

ParameterType
imageCanvasImageSource
xnumber
ynumber
width?number
height?number

Returns ​

void


emit() ​

Call Signature ​

emit<TEvent>(event): TEvent

Defined in: packages/core/src/core/event-bus.ts:127

Emits an event, invoking all matching handlers and bubbling to the parent if applicable.

Type Parameters ​
Type ParameterDefault type
TEvent extends Event<undefined>Event<undefined>
Parameters ​
ParameterType
eventTEvent
Returns ​

TEvent

Inherited from ​

EventBus.emit

Call Signature ​

emit<TEvent>(type, data): Event<ContextEventMap[TEvent]>

Defined in: packages/core/src/core/event-bus.ts:128

Emits an event, invoking all matching handlers and bubbling to the parent if applicable.

Type Parameters ​
Type Parameter
TEvent extends keyof ContextEventMap
Parameters ​
ParameterType
typeTEvent
dataContextEventMap[TEvent]
Returns ​

Event<ContextEventMap[TEvent]>

Inherited from ​

EventBus.emit


getDefaultState() ​

protected getDefaultState(): BaseState

Defined in: packages/core/src/context/context.ts:381

Returns ​

BaseState


has() ​

has(type): boolean

Defined in: packages/core/src/core/event-bus.ts:84

Returns whether there are any listeners registered for the given event type.

Parameters ​

ParameterType
typekeyof ContextEventMap

Returns ​

boolean

Inherited from ​

EventBus.has


hitTest() ​

protected hitTest(events, x, y): RenderElement[]

Defined in: packages/core/src/context/context.ts:529

Tests which rendered elements intersect the given point for the given event types, returning them sorted by zIndex (highest first).

Parameters ​

ParameterType
eventsstring[]
xnumber
ynumber

Returns ​

RenderElement[]


invalidateTrackedElements() ​

invalidateTrackedElements(event?): void

Defined in: packages/core/src/context/context.ts:418

Clears the cached list of tracked elements for interaction, forcing a rebuild on the next hit test.

Parameters ​

ParameterType
event?string

Returns ​

void


isPointInPath() ​

isPointInPath(path, x, y, fillRule?): boolean

Defined in: packages/core/src/context/context.ts:515

Tests whether a point is inside the filled region of a path.

Parameters ​

ParameterType
pathContextPath
xnumber
ynumber
fillRule?FillRule

Returns ​

boolean


isPointInStroke() ​

isPointInStroke(path, x, y): boolean

Defined in: packages/core/src/context/context.ts:520

Tests whether a point is on the stroked outline of a path.

Parameters ​

ParameterType
pathContextPath
xnumber
ynumber

Returns ​

boolean


layer() ​

layer<TResult>(body): TResult

Defined in: packages/core/src/context/context.ts:397

Executes a callback within a save/restore pair, returning the callback's result.

Type Parameters ​

Type ParameterDefault type
TResultvoid

Parameters ​

ParameterType
body() => TResult

Returns ​

TResult


markRenderEnd() ​

markRenderEnd(): void

Defined in: packages/core/src/context/context.ts:436

Signals the end of a render pass.

Returns ​

void


markRenderStart() ​

markRenderStart(): void

Defined in: packages/core/src/context/context.ts:427

Signals the start of a render pass; resets the rendered-elements list at depth 0.

Returns ​

void


measureText() ​

measureText(text, font?): TextMetrics

Defined in: packages/core/src/context/context.ts:480

Measures text dimensions using the context's current font or an optional override.

Parameters ​

ParameterType
textstring
font?string

Returns ​

TextMetrics


off() ​

off<TEvent>(type, handler): void

Defined in: packages/core/src/core/event-bus.ts:102

Removes a previously registered handler for the given event type.

Type Parameters ​

Type Parameter
TEvent extends keyof ContextEventMap

Parameters ​

ParameterType
typeTEvent
handlerEventHandler<ContextEventMap[TEvent]>

Returns ​

void

Inherited from ​

EventBus.off


on() ​

on<TEvent>(type, handler, options?): Disposable

Defined in: packages/core/src/core/event-bus.ts:89

Subscribes a handler to the given event type and returns a disposable for cleanup.

Type Parameters ​

Type Parameter
TEvent extends keyof ContextEventMap

Parameters ​

ParameterType
typeTEvent
handlerEventHandler<ContextEventMap[TEvent]>
options?EventSubscriptionOptions

Returns ​

Disposable

Inherited from ​

EventBus.on


once() ​

once<TEvent>(type, handler, options?): Disposable

Defined in: packages/core/src/core/event-bus.ts:117

Subscribes a handler that is automatically removed after it fires once.

Type Parameters ​

Type Parameter
TEvent extends keyof ContextEventMap

Parameters ​

ParameterType
typeTEvent
handlerEventHandler<ContextEventMap[TEvent]>
options?EventSubscriptionOptions

Returns ​

Disposable

Inherited from ​

EventBus.once


rescale() ​

protected rescale(width, height): void

Defined in: packages/core/src/context/context.ts:371

Parameters ​

ParameterType
widthnumber
heightnumber

Returns ​

void


reset() ​

reset(): void

Defined in: packages/core/src/context/context.ts:413

Resets the context to its initial state.

Returns ​

void


restore() ​

restore(): void

Defined in: packages/core/src/context/context.ts:392

Restores the most recently saved state from the stack.

Returns ​

void


retain() ​

protected retain(value, key?): void

Defined in: packages/core/src/core/disposer.ts:13

Registers a disposable resource under an optional key for later cleanup.

Parameters ​

ParameterTypeDefault value
valueDisposableundefined
keyPropertyKeyDisposer.defaultKey

Returns ​

void

Inherited from ​

EventBus.retain


rotate() ​

rotate(angle): void

Defined in: packages/core/src/context/context.ts:455

Applies a rotation transformation.

Parameters ​

ParameterType
anglenumber

Returns ​

void


save() ​

save(): void

Defined in: packages/core/src/context/context.ts:386

Pushes the current state onto the stack and resets to defaults.

Returns ​

void


scale() ​

scale(x, y): void

Defined in: packages/core/src/context/context.ts:460

Applies a scale transformation.

Parameters ​

ParameterType
xnumber
ynumber

Returns ​

void


setTransform() ​

setTransform(a, b, c, d, e, f): void

Defined in: packages/core/src/context/context.ts:470

Parameters ​

ParameterType
anumber
bnumber
cnumber
dnumber
enumber
fnumber

Returns ​

void


transform() ​

transform(a, b, c, d, e, f): void

Defined in: packages/core/src/context/context.ts:475

Parameters ​

ParameterType
anumber
bnumber
cnumber
dnumber
enumber
fnumber

Returns ​

void


translate() ​

translate(x, y): void

Defined in: packages/core/src/context/context.ts:465

Applies a translation transformation.

Parameters ​

ParameterType
xnumber
ynumber

Returns ​

void