Skip to content

Documentation / @ripl/core / Context

Abstract Class: Context<TElement, TMeta> ​

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

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

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:101
currentStateprotectedBaseStateundefined-packages/core/src/context/context.ts:111
elementreadonlyTElementundefined-packages/core/src/context/context.ts:98
heightpublicnumberundefined-packages/core/src/context/context.ts:103
metareadonlyTMetaundefined-packages/core/src/context/context.ts:99
parent?publicEventBus<ContextEventMap>undefinedEventBus.parentpackages/core/src/core/event-bus.ts:79
renderDepthprotectednumber0-packages/core/src/context/context.ts:112
renderedElementspublicRenderElement[]undefined-packages/core/src/context/context.ts:108
renderElement?publicRenderElementundefined-packages/core/src/context/context.ts:107
scaleDPRpublicScale<number, number>undefined-packages/core/src/context/context.ts:106
scaleXpublicScale<number, number>undefined-packages/core/src/context/context.ts:104
scaleYpublicScale<number, number>undefined-packages/core/src/context/context.ts:105
statesprotectedBaseState[]undefined-packages/core/src/context/context.ts:110
typereadonlystringundefined-packages/core/src/context/context.ts:97
widthpublicnumberundefined-packages/core/src/context/context.ts:102
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:114

Returns ​

RenderElement | undefined

Set Signature ​

set currentRenderElement(element): void

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

Parameters ​
ParameterType
elementRenderElement | undefined
Returns ​

void


direction ​

Get Signature ​

get direction(): Direction

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

Returns ​

Direction

Set Signature ​

set direction(value): void

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

Parameters ​
ParameterType
valueDirection
Returns ​

void

Implementation of ​

BaseState.direction


fill ​

Get Signature ​

get fill(): string

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

Returns ​

string

Set Signature ​

set fill(value): void

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

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.fill


filter ​

Get Signature ​

get filter(): string

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

Returns ​

string

Set Signature ​

set filter(value): void

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

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.filter


font ​

Get Signature ​

get font(): string

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

Returns ​

string

Set Signature ​

set font(value): void

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

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.font


fontKerning ​

Get Signature ​

get fontKerning(): FontKerning

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

Returns ​

FontKerning

Set Signature ​

set fontKerning(value): void

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

Parameters ​
ParameterType
valueFontKerning
Returns ​

void

Implementation of ​

BaseState.fontKerning


globalCompositeOperation ​

Get Signature ​

get globalCompositeOperation(): unknown

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

Returns ​

unknown

Set Signature ​

set globalCompositeOperation(value): void

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

Parameters ​
ParameterType
valueunknown
Returns ​

void

Implementation of ​

BaseState.globalCompositeOperation


lineCap ​

Get Signature ​

get lineCap(): LineCap

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

Returns ​

LineCap

Set Signature ​

set lineCap(value): void

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

Parameters ​
ParameterType
valueLineCap
Returns ​

void

Implementation of ​

BaseState.lineCap


lineDash ​

Get Signature ​

get lineDash(): number[]

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

Returns ​

number[]

Set Signature ​

set lineDash(value): void

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

Parameters ​
ParameterType
valuenumber[]
Returns ​

void

Implementation of ​

BaseState.lineDash


lineDashOffset ​

Get Signature ​

get lineDashOffset(): number

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

Returns ​

number

Set Signature ​

set lineDashOffset(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.lineDashOffset


lineJoin ​

Get Signature ​

get lineJoin(): LineJoin

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

Returns ​

LineJoin

Set Signature ​

set lineJoin(value): void

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

Parameters ​
ParameterType
valueLineJoin
Returns ​

void

Implementation of ​

BaseState.lineJoin


lineWidth ​

Get Signature ​

get lineWidth(): number

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

Returns ​

number

Set Signature ​

set lineWidth(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.lineWidth


miterLimit ​

Get Signature ​

get miterLimit(): number

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

Returns ​

number

Set Signature ​

set miterLimit(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.miterLimit


opacity ​

Get Signature ​

get opacity(): number

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

Returns ​

number

Set Signature ​

set opacity(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.opacity


rotation ​

Get Signature ​

get rotation(): Rotation

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

Returns ​

Rotation

Set Signature ​

set rotation(value): void

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

Parameters ​
ParameterType
valueRotation
Returns ​

void

Implementation of ​

BaseState.rotation


shadowBlur ​

Get Signature ​

get shadowBlur(): number

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

Returns ​

number

Set Signature ​

set shadowBlur(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.shadowBlur


shadowColor ​

Get Signature ​

get shadowColor(): string

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

Returns ​

string

Set Signature ​

set shadowColor(value): void

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

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.shadowColor


shadowOffsetX ​

Get Signature ​

get shadowOffsetX(): number

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

Returns ​

number

Set Signature ​

set shadowOffsetX(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.shadowOffsetX


shadowOffsetY ​

Get Signature ​

get shadowOffsetY(): number

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

Returns ​

number

Set Signature ​

set shadowOffsetY(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.shadowOffsetY


stroke ​

Get Signature ​

get stroke(): string

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

Returns ​

string

Set Signature ​

set stroke(value): void

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

Parameters ​
ParameterType
valuestring
Returns ​

void

Implementation of ​

BaseState.stroke


textAlign ​

Get Signature ​

get textAlign(): TextAlignment

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

Returns ​

TextAlignment

Set Signature ​

set textAlign(value): void

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

Parameters ​
ParameterType
valueTextAlignment
Returns ​

void

Implementation of ​

BaseState.textAlign


textBaseline ​

Get Signature ​

get textBaseline(): TextBaseline

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

Returns ​

TextBaseline

Set Signature ​

set textBaseline(value): void

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

Parameters ​
ParameterType
valueTextBaseline
Returns ​

void

Implementation of ​

BaseState.textBaseline


transformOriginX ​

Get Signature ​

get transformOriginX(): TransformOrigin

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

Returns ​

TransformOrigin

Set Signature ​

set transformOriginX(value): void

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

Parameters ​
ParameterType
valueTransformOrigin
Returns ​

void

Implementation of ​

BaseState.transformOriginX


transformOriginY ​

Get Signature ​

get transformOriginY(): TransformOrigin

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

Returns ​

TransformOrigin

Set Signature ​

set transformOriginY(value): void

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

Parameters ​
ParameterType
valueTransformOrigin
Returns ​

void

Implementation of ​

BaseState.transformOriginY


transformScaleX ​

Get Signature ​

get transformScaleX(): number

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

Returns ​

number

Set Signature ​

set transformScaleX(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.transformScaleX


transformScaleY ​

Get Signature ​

get transformScaleY(): number

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

Returns ​

number

Set Signature ​

set transformScaleY(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.transformScaleY


translateX ​

Get Signature ​

get translateX(): number

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

Returns ​

number

Set Signature ​

set translateX(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.translateX


translateY ​

Get Signature ​

get translateY(): number

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

Returns ​

number

Set Signature ​

set translateY(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.translateY


zIndex ​

Get Signature ​

get zIndex(): number

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

Returns ​

number

Set Signature ​

set zIndex(value): void

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

Parameters ​
ParameterType
valuenumber
Returns ​

void

Implementation of ​

BaseState.zIndex

Methods ​

applyClip() ​

applyClip(path, fillRule?): void

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

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

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

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

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

Clears the entire rendering surface.

Returns ​

void


createPath() ​

createPath(id?): ContextPath

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

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

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

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

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

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

Tests which rendered elements intersect the given point for the given event types.

Parameters ​

ParameterType
eventsstring[]
xnumber
ynumber

Returns ​

RenderElement[]


invalidateTrackedElements() ​

invalidateTrackedElements(event?): void

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

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

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

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

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

Signals the end of a render pass.

Returns ​

void


markRenderStart() ​

markRenderStart(): void

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

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

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

Parameters ​

ParameterType
widthnumber
heightnumber

Returns ​

void


reset() ​

reset(): void

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

Resets the context to its initial state.

Returns ​

void


restore() ​

restore(): void

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

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

Applies a rotation transformation.

Parameters ​

ParameterType
anglenumber

Returns ​

void


save() ​

save(): void

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

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

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

Parameters ​

ParameterType
anumber
bnumber
cnumber
dnumber
enumber
fnumber

Returns ​

void


sortByZIndex() ​

protected sortByZIndex(elements): RenderElement[]

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

Sorts render elements by z-index (highest first) for hit testing priority.

Parameters ​

ParameterType
elementsRenderElement[]

Returns ​

RenderElement[]


transform() ​

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

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

Parameters ​

ParameterType
anumber
bnumber
cnumber
dnumber
enumber
fnumber

Returns ​

void


translate() ​

translate(x, y): void

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

Applies a translation transformation.

Parameters ​

ParameterType
xnumber
ynumber

Returns ​

void