Skip to content

Documentation / @ripl/core / ImageElement

Class: ImageElement

Defined in: packages/core/src/elements/image.ts:107

An image element that draws a CanvasImageSource at a given position and optional size.

Extends

Constructors

Constructor

new ImageElement(options): ImageElement

Defined in: packages/core/src/elements/image.ts:154

Parameters

ParameterType
optionsElementOptions<ImageState>

Returns

ImageElement

Overrides

Element.constructor

Properties

PropertyModifierTypeDefault valueDescriptionInherited fromDefined in
abstractpublicbooleanfalseWhen true, the element skips transform and drawing-state application during Element.render; used by containers such as Group.Element.abstractpackages/core/src/core/element.ts:423
classListreadonlySet<string>undefinedSet of CSS-like class names used for querying and selection.Element.classListpackages/core/src/core/element.ts:420
context?protectedContext<Element, Record<string, unknown>>undefined-Element.contextpackages/core/src/core/element.ts:413
datapublicunknownundefinedArbitrary user data bound to the element, typically the datum backing a data-driven visual.Element.datapackages/core/src/core/element.ts:429
idpublicstringundefinedUnique identifier for this element, defaulting to type:uniqueId when not supplied.Element.idpackages/core/src/core/element.ts:416
parent?publicGroup<ElementEventMap>undefinedThe parent Group this element is attached to, or undefined when detached.Element.parentpackages/core/src/core/element.ts:427
pointerEventspublicElementPointerEvents'all'Controls which parts of the element respond to pointer hit testing. See ElementPointerEvents.Element.pointerEventspackages/core/src/core/element.ts:425
stateprotectedImageStateundefined-Element.statepackages/core/src/core/element.ts:412
typereadonlystringundefinedThe element type name (e.g. circle, rect, group).Element.typepackages/core/src/core/element.ts:418
defaultKeyreadonlytypeof defaultKeyundefinedThe key under which resources are retained when no explicit key is provided.Element.defaultKeypackages/core/src/core/disposer.ts:11

Accessors

direction

Get Signature

get direction(): TState["direction"]

Defined in: packages/core/src/core/element.ts:434

Text directionality used when rendering text, mirroring the canvas direction drawing-state property (inherit, ltr, or rtl).

Returns

TState["direction"]

Set Signature

set direction(value): void

Defined in: packages/core/src/core/element.ts:438

Parameters
ParameterType
valueTState["direction"]
Returns

void

Inherited from

Element.direction


fill

Get Signature

get fill(): TState["fill"]

Defined in: packages/core/src/core/element.ts:443

Fill style (colour or gradient) painted inside the element, mirroring the canvas fillStyle drawing-state property.

Returns

TState["fill"]

Set Signature

set fill(value): void

Defined in: packages/core/src/core/element.ts:447

Parameters
ParameterType
valueTState["fill"]
Returns

void

Inherited from

Element.fill


filter

Get Signature

get filter(): TState["filter"]

Defined in: packages/core/src/core/element.ts:452

Filter effects applied to the element, mirroring the canvas filter drawing-state property.

Returns

TState["filter"]

Set Signature

set filter(value): void

Defined in: packages/core/src/core/element.ts:456

Parameters
ParameterType
valueTState["filter"]
Returns

void

Inherited from

Element.filter


font

Get Signature

get font(): TState["font"]

Defined in: packages/core/src/core/element.ts:461

Font used for text rendering, mirroring the canvas font drawing-state property.

Returns

TState["font"]

Set Signature

set font(value): void

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

Parameters
ParameterType
valueTState["font"]
Returns

void

Inherited from

Element.font


globalCompositeOperation

Get Signature

get globalCompositeOperation(): TState["globalCompositeOperation"]

Defined in: packages/core/src/core/element.ts:479

Compositing/blend mode used to draw the element, mirroring the canvas globalCompositeOperation drawing-state property.

Returns

TState["globalCompositeOperation"]

Set Signature

set globalCompositeOperation(value): void

Defined in: packages/core/src/core/element.ts:483

Parameters
ParameterType
valueTState["globalCompositeOperation"]
Returns

void

Inherited from

Element.globalCompositeOperation


height

Get Signature

get height(): number | undefined

Defined in: packages/core/src/elements/image.ts:146

The height to draw the image at, defaulting to the source height.

Returns

number | undefined

Set Signature

set height(value): void

Defined in: packages/core/src/elements/image.ts:150

Parameters
ParameterType
valuenumber | undefined
Returns

void


image

Get Signature

get image(): CanvasImageSource

Defined in: packages/core/src/elements/image.ts:110

The image source drawn by the element.

Returns

CanvasImageSource

Set Signature

set image(value): void

Defined in: packages/core/src/elements/image.ts:114

Parameters
ParameterType
valueCanvasImageSource
Returns

void


lineCap

Get Signature

get lineCap(): TState["lineCap"]

Defined in: packages/core/src/core/element.ts:488

Cap style drawn at the ends of stroked lines, mirroring the canvas lineCap drawing-state property (butt, round, or square).

Returns

TState["lineCap"]

Set Signature

set lineCap(value): void

Defined in: packages/core/src/core/element.ts:492

Parameters
ParameterType
valueTState["lineCap"]
Returns

void

Inherited from

Element.lineCap


lineDash

Get Signature

get lineDash(): TState["lineDash"]

Defined in: packages/core/src/core/element.ts:497

Dash pattern for stroked lines, mirroring the canvas line-dash array set via setLineDash.

Returns

TState["lineDash"]

Set Signature

set lineDash(value): void

Defined in: packages/core/src/core/element.ts:501

Parameters
ParameterType
valueTState["lineDash"]
Returns

void

Inherited from

Element.lineDash


lineDashOffset

Get Signature

get lineDashOffset(): TState["lineDashOffset"]

Defined in: packages/core/src/core/element.ts:506

Offset into the line-dash pattern, mirroring the canvas lineDashOffset drawing-state property.

Returns

TState["lineDashOffset"]

Set Signature

set lineDashOffset(value): void

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

Parameters
ParameterType
valueTState["lineDashOffset"]
Returns

void

Inherited from

Element.lineDashOffset


lineJoin

Get Signature

get lineJoin(): TState["lineJoin"]

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

Join style drawn where stroked segments meet, mirroring the canvas lineJoin drawing-state property (bevel, miter, or round).

Returns

TState["lineJoin"]

Set Signature

set lineJoin(value): void

Defined in: packages/core/src/core/element.ts:519

Parameters
ParameterType
valueTState["lineJoin"]
Returns

void

Inherited from

Element.lineJoin


lineWidth

Get Signature

get lineWidth(): TState["lineWidth"]

Defined in: packages/core/src/core/element.ts:524

Width of stroked lines in pixels, mirroring the canvas lineWidth drawing-state property.

Returns

TState["lineWidth"]

Set Signature

set lineWidth(value): void

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

Parameters
ParameterType
valueTState["lineWidth"]
Returns

void

Inherited from

Element.lineWidth


miterLimit

Get Signature

get miterLimit(): TState["miterLimit"]

Defined in: packages/core/src/core/element.ts:533

Miter length limit for miter line joins, mirroring the canvas miterLimit drawing-state property.

Returns

TState["miterLimit"]

Set Signature

set miterLimit(value): void

Defined in: packages/core/src/core/element.ts:537

Parameters
ParameterType
valueTState["miterLimit"]
Returns

void

Inherited from

Element.miterLimit


opacity

Get Signature

get opacity(): TState["opacity"]

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

Opacity of the element from 0 (transparent) to 1 (opaque), mapping to the canvas globalAlpha drawing-state property.

Returns

TState["opacity"]

Set Signature

set opacity(value): void

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

Parameters
ParameterType
valueTState["opacity"]
Returns

void

Inherited from

Element.opacity


rotation

Get Signature

get rotation(): TState["rotation"]

Defined in: packages/core/src/core/element.ts:650

Rotation applied to the element during rendering, in radians or as a CSS-like angle string.

Returns

TState["rotation"]

Set Signature

set rotation(value): void

Defined in: packages/core/src/core/element.ts:654

Parameters
ParameterType
valueTState["rotation"]
Returns

void

Inherited from

Element.rotation


shadowBlur

Get Signature

get shadowBlur(): TState["shadowBlur"]

Defined in: packages/core/src/core/element.ts:542

Blur radius applied to the element's shadow, mirroring the canvas shadowBlur drawing-state property.

Returns

TState["shadowBlur"]

Set Signature

set shadowBlur(value): void

Defined in: packages/core/src/core/element.ts:546

Parameters
ParameterType
valueTState["shadowBlur"]
Returns

void

Inherited from

Element.shadowBlur


shadowColor

Get Signature

get shadowColor(): TState["shadowColor"]

Defined in: packages/core/src/core/element.ts:551

Colour of the element's shadow, mirroring the canvas shadowColor drawing-state property.

Returns

TState["shadowColor"]

Set Signature

set shadowColor(value): void

Defined in: packages/core/src/core/element.ts:555

Parameters
ParameterType
valueTState["shadowColor"]
Returns

void

Inherited from

Element.shadowColor


shadowOffsetX

Get Signature

get shadowOffsetX(): TState["shadowOffsetX"]

Defined in: packages/core/src/core/element.ts:560

Horizontal offset of the element's shadow, mirroring the canvas shadowOffsetX drawing-state property.

Returns

TState["shadowOffsetX"]

Set Signature

set shadowOffsetX(value): void

Defined in: packages/core/src/core/element.ts:564

Parameters
ParameterType
valueTState["shadowOffsetX"]
Returns

void

Inherited from

Element.shadowOffsetX


shadowOffsetY

Get Signature

get shadowOffsetY(): TState["shadowOffsetY"]

Defined in: packages/core/src/core/element.ts:569

Vertical offset of the element's shadow, mirroring the canvas shadowOffsetY drawing-state property.

Returns

TState["shadowOffsetY"]

Set Signature

set shadowOffsetY(value): void

Defined in: packages/core/src/core/element.ts:573

Parameters
ParameterType
valueTState["shadowOffsetY"]
Returns

void

Inherited from

Element.shadowOffsetY


stroke

Get Signature

get stroke(): TState["stroke"]

Defined in: packages/core/src/core/element.ts:578

Stroke style (colour or gradient) painted along the element's outline, mirroring the canvas strokeStyle drawing-state property.

Returns

TState["stroke"]

Set Signature

set stroke(value): void

Defined in: packages/core/src/core/element.ts:582

Parameters
ParameterType
valueTState["stroke"]
Returns

void

Inherited from

Element.stroke


textAlign

Get Signature

get textAlign(): TState["textAlign"]

Defined in: packages/core/src/core/element.ts:587

Horizontal alignment of rendered text, mirroring the canvas textAlign drawing-state property.

Returns

TState["textAlign"]

Set Signature

set textAlign(value): void

Defined in: packages/core/src/core/element.ts:591

Parameters
ParameterType
valueTState["textAlign"]
Returns

void

Inherited from

Element.textAlign


textBaseline

Get Signature

get textBaseline(): TState["textBaseline"]

Defined in: packages/core/src/core/element.ts:596

Vertical baseline of rendered text, mirroring the canvas textBaseline drawing-state property.

Returns

TState["textBaseline"]

Set Signature

set textBaseline(value): void

Defined in: packages/core/src/core/element.ts:600

Parameters
ParameterType
valueTState["textBaseline"]
Returns

void

Inherited from

Element.textBaseline


transformOriginX

Get Signature

get transformOriginX(): TState["transformOriginX"]

Defined in: packages/core/src/core/element.ts:659

Horizontal origin about which transforms are applied, as a pixel value or percentage string.

Returns

TState["transformOriginX"]

Set Signature

set transformOriginX(value): void

Defined in: packages/core/src/core/element.ts:663

Parameters
ParameterType
valueTState["transformOriginX"]
Returns

void

Inherited from

Element.transformOriginX


transformOriginY

Get Signature

get transformOriginY(): TState["transformOriginY"]

Defined in: packages/core/src/core/element.ts:668

Vertical origin about which transforms are applied, as a pixel value or percentage string.

Returns

TState["transformOriginY"]

Set Signature

set transformOriginY(value): void

Defined in: packages/core/src/core/element.ts:672

Parameters
ParameterType
valueTState["transformOriginY"]
Returns

void

Inherited from

Element.transformOriginY


transformScaleX

Get Signature

get transformScaleX(): TState["transformScaleX"]

Defined in: packages/core/src/core/element.ts:632

Horizontal scale factor applied to the element during rendering (1 is unscaled).

Returns

TState["transformScaleX"]

Set Signature

set transformScaleX(value): void

Defined in: packages/core/src/core/element.ts:636

Parameters
ParameterType
valueTState["transformScaleX"]
Returns

void

Inherited from

Element.transformScaleX


transformScaleY

Get Signature

get transformScaleY(): TState["transformScaleY"]

Defined in: packages/core/src/core/element.ts:641

Vertical scale factor applied to the element during rendering (1 is unscaled).

Returns

TState["transformScaleY"]

Set Signature

set transformScaleY(value): void

Defined in: packages/core/src/core/element.ts:645

Parameters
ParameterType
valueTState["transformScaleY"]
Returns

void

Inherited from

Element.transformScaleY


translateX

Get Signature

get translateX(): TState["translateX"]

Defined in: packages/core/src/core/element.ts:614

Horizontal translation applied to the element during rendering, in pixels.

Returns

TState["translateX"]

Set Signature

set translateX(value): void

Defined in: packages/core/src/core/element.ts:618

Parameters
ParameterType
valueTState["translateX"]
Returns

void

Inherited from

Element.translateX


translateY

Get Signature

get translateY(): TState["translateY"]

Defined in: packages/core/src/core/element.ts:623

Vertical translation applied to the element during rendering, in pixels.

Returns

TState["translateY"]

Set Signature

set translateY(value): void

Defined in: packages/core/src/core/element.ts:627

Parameters
ParameterType
valueTState["translateY"]
Returns

void

Inherited from

Element.translateY


width

Get Signature

get width(): number | undefined

Defined in: packages/core/src/elements/image.ts:137

The width to draw the image at, defaulting to the source width.

Returns

number | undefined

Set Signature

set width(value): void

Defined in: packages/core/src/elements/image.ts:141

Parameters
ParameterType
valuenumber | undefined
Returns

void


x

Get Signature

get x(): number

Defined in: packages/core/src/elements/image.ts:119

The x-coordinate of the image's top-left corner.

Returns

number

Set Signature

set x(value): void

Defined in: packages/core/src/elements/image.ts:123

Parameters
ParameterType
valuenumber
Returns

void


y

Get Signature

get y(): number

Defined in: packages/core/src/elements/image.ts:128

The y-coordinate of the image's top-left corner.

Returns

number

Set Signature

set y(value): void

Defined in: packages/core/src/elements/image.ts:132

Parameters
ParameterType
valuenumber
Returns

void


zIndex

Get Signature

get zIndex(): number

Defined in: packages/core/src/core/element.ts:605

Effective stacking order of the element, combining its own z-index with its parent Group's. Higher values render on top.

Returns

number

Set Signature

set zIndex(value): void

Defined in: packages/core/src/core/element.ts:609

Parameters
ParameterType
valuenumber
Returns

void

Inherited from

Element.zIndex

Methods

clone()

clone(): Element<ImageState, ElementEventMap>

Defined in: packages/core/src/core/element.ts:762

Creates a shallow clone of this element with the same id, classes, and state.

Returns

Element<ImageState, ElementEventMap>

Inherited from

Element.clone


closest()

closest<TElement>(selector): TElement | undefined

Defined in: packages/core/src/core/element.ts:776

Returns the closest ancestor (including this element) matching the CSS-like selector, or undefined.

Type Parameters

Type ParameterDefault type
TElement extends Element<Partial<BaseState>, ElementEventMap>Element<Partial<BaseState>, ElementEventMap>

Parameters

ParameterType
selectorstring

Returns

TElement | undefined

Inherited from

Element.closest


destroy()

destroy(): void

Defined in: packages/core/src/core/element.ts:870

Detaches the element from its parent Group and tears down its event subscriptions.

Returns

void

Inherited from

Element.destroy


dispose()

protected dispose(key?): void

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

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

Parameters

ParameterType
key?PropertyKey

Returns

void

Inherited from

Element.dispose


emit()

Call Signature

emit<TEvent>(event): TEvent

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

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

Element.emit

Call Signature

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

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

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

Type Parameters
Type Parameter
TEvent extends keyof ElementEventMap
Parameters
ParameterType
typeTEvent
dataElementEventMap[TEvent]
Returns

Event<ElementEventMap[TEvent]>

Inherited from

Element.emit


getBoundingBox()

getBoundingBox(local?): Box

Defined in: packages/core/src/core/element.ts:796

Returns this element's bounding box: the on-screen (world) box by default, or the raw local box when local is true. The world box applies this element's own and every ancestor group's transform (mirroring the DOM's getBoundingClientRect); a rotated element yields a conservative axis-aligned box.

Parameters

ParameterTypeDefault valueDescription
localbooleanfalsewhen true, returns the untransformed authored geometry instead of the world box.

Returns

Box

Inherited from

Element.getBoundingBox


getComputedStateValue()

protected getComputedStateValue<TKey>(key): ImageState[TKey]

Defined in: packages/core/src/core/element.ts:714

Resolves a state value against the parent chain (own value, else the nearest ancestor's) — the effective value an element renders with. Used where the resolved value is needed without a live context, such as computing a transition's start value.

Type Parameters

Type Parameter
TKey extends keyof ImageState

Parameters

ParameterType
keyTKey

Returns

ImageState[TKey]

Inherited from

Element.getComputedStateValue


getStateValue()

protected getStateValue<TKey>(key): ImageState[TKey]

Defined in: packages/core/src/core/element.ts:705

Reads this element's own state value (no inheritance). Inherited paint now cascades through the render tree — a group applies its paint at its boundary (Context.pushGroup) and descendants pick it up from the context's copied state — so property getters return own values only, mirroring how the browser resolves computed style at paint time. Use Element.getComputedStateValue when the effective (inheritance-resolved) value is required outside a render pass (e.g. animation start values).

Type Parameters

Type Parameter
TKey extends keyof ImageState

Parameters

ParameterType
keyTKey

Returns

ImageState[TKey]

Inherited from

Element.getStateValue


has()

has(type): boolean

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

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

Parameters

ParameterType
typekeyof ElementEventMap

Returns

boolean

Inherited from

Element.has


interpolate()

interpolate(newState, interpolators?): Interpolator<void>

Defined in: packages/core/src/core/element.ts:810

Creates an interpolator that transitions from the current state towards the target state, supporting keyframes and custom interpolator overrides.

Parameters

ParameterType
newStatePartial<ElementInterpolationState<TState>>
interpolatorsPartial<ElementInterpolators<TState>>

Returns

Interpolator<void>

Inherited from

Element.interpolate


intersectsWith()

intersectsWith(x, y, options?): boolean

Defined in: packages/core/src/core/element.ts:805

Tests whether a point intersects this element’s bounding box. Override for custom hit testing.

Parameters

ParameterType
xnumber
ynumber
options?Partial<ElementIntersectionOptions>

Returns

boolean

Inherited from

Element.intersectsWith


matches()

matches(selector): boolean

Defined in: packages/core/src/core/element.ts:771

Tests whether this element matches the CSS-like selector.

Parameters

ParameterType
selectorstring

Returns

boolean

Inherited from

Element.matches


off()

off<TEvent>(type, handler): void

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

Removes a previously registered handler for the given event type.

Type Parameters

Type Parameter
TEvent extends keyof ElementEventMap

Parameters

ParameterType
typeTEvent
handlerEventHandler<ElementEventMap[TEvent]>

Returns

void

Inherited from

Element.off


on()

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

Defined in: packages/core/src/core/element.ts:744

Subscribes a handler to an element event, returning a disposable subscription.

Overrides EventBus.on to additionally invalidate the Context's tracked-element cache for interaction events, keeping hit testing accurate as listeners are added and removed.

Type Parameters

Type Parameter
TEvent extends keyof ElementEventMap

Parameters

ParameterTypeDescription
eventTEventThe event name to listen for.
handlerEventHandler<ElementEventMap[TEvent]>Callback invoked when the event is emitted.
options?EventSubscriptionOptionsOptional subscription options (e.g. self-only filtering).

Returns

Disposable

A disposable used to remove the subscription.

Inherited from

Element.on


once()

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

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

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

Type Parameters

Type Parameter
TEvent extends keyof ElementEventMap

Parameters

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

Returns

Disposable

Inherited from

Element.once


render()

render(context): void

Defined in: packages/core/src/elements/image.ts:171

Renders the image to the provided Context.

Parameters

ParameterType
contextContext

Returns

void

Overrides

Element.render


retain()

protected retain(value, key?): void

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

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

Parameters

ParameterTypeDefault value
valueDisposableundefined
keyPropertyKeyDisposer.defaultKey

Returns

void

Inherited from

Element.retain


setStateValue()

protected setStateValue<TKey>(key, value): void

Defined in: packages/core/src/core/element.ts:725

Sets a state value and emits an updated event.

Type Parameters

Type Parameter
TKey extends keyof ImageState

Parameters

ParameterType
keyTKey
valueImageState[TKey]

Returns

void

Inherited from

Element.setStateValue