Skip to content

BlockSuite API Documentation / @blocksuite/blocks / ElementModel

Class: abstract ElementModel<Props>

Extended by

Type parameters

Props extends BaseProps = BaseProps

Implements

  • IEdgelessElement

Constructors

new ElementModel()

new ElementModel<Props>(options): ElementModel<Props>

Parameters

options

options.id: string

options.model: SurfaceBlockModel

options.onChange

options.stashedStore: Map<unknown, unknown>

options.yMap: Map<unknown>

Returns

ElementModel<Props>

Source

packages/blocks/src/surface-block/element-model/base.ts:118

Properties

_disposable

protected _disposable: DisposableGroup

Source

packages/blocks/src/surface-block/element-model/base.ts:76


_id

protected _id: string

Source

packages/blocks/src/surface-block/element-model/base.ts:77


_lastXYWH

private _lastXYWH: `[${number},${number},${number},${number}]` = '[0,0,0,0]'

Source

packages/blocks/src/surface-block/element-model/base.ts:147


_local

protected _local: Map<string | symbol, unknown>

Source

packages/blocks/src/surface-block/element-model/base.ts:70


_onChange()

protected _onChange: (payload) => void

Parameters

payload

payload.local: boolean

payload.oldValues: Record<string, unknown>

payload.props: Record<string, unknown>

Returns

void

Source

packages/blocks/src/surface-block/element-model/base.ts:71


_preserved

protected _preserved: Map<string, unknown>

When the ymap is not connected to the doc, its value cannot be read. But we need to use those value during the creation, so the yfied decorated field's value will be stored in this map too during the creation.

After the ymap is connected to the doc, this map will be cleared.

Source

packages/blocks/src/surface-block/element-model/base.ts:68


_stashed

protected _stashed: Map<string | keyof Props, unknown>

Source

packages/blocks/src/surface-block/element-model/base.ts:69


display

display: boolean = true

Source

packages/blocks/src/surface-block/element-model/base.ts:95


externalXYWH

externalXYWH: undefined | `[${number},${number},${number},${number}]` = undefined

Implementation of

IEdgelessElement.externalXYWH

Source

packages/blocks/src/surface-block/element-model/base.ts:104


index

index: string

Implementation of

IEdgelessElement.index

Source

packages/blocks/src/surface-block/element-model/base.ts:89


opacity

opacity: number = 1

Source

packages/blocks/src/surface-block/element-model/base.ts:98


rotate

abstract rotate: number

Implementation of

IEdgelessElement.rotate

Source

packages/blocks/src/surface-block/element-model/base.ts:82


seed

seed: number

Source

packages/blocks/src/surface-block/element-model/base.ts:92


surface

surface: SurfaceBlockModel

Source

packages/blocks/src/surface-block/element-model/base.ts:80


xywh

abstract xywh: `[${number},${number},${number},${number}]`

Implementation of

IEdgelessElement.xywh

Source

packages/blocks/src/surface-block/element-model/base.ts:84


yMap

yMap: Map<unknown>

Source

packages/blocks/src/surface-block/element-model/base.ts:79

Accessors

connectable

get connectable(): boolean

Returns

boolean

Source

packages/blocks/src/surface-block/element-model/base.ts:143


deserializedXYWH

get deserializedXYWH(): XYWH

Returns

XYWH

Source

packages/blocks/src/surface-block/element-model/base.ts:149


elementBound

get elementBound(): Bound

Returns

Bound

Source

packages/blocks/src/surface-block/element-model/base.ts:187


externalBound

get externalBound(): null | Bound

Returns

null | Bound

Source

packages/blocks/src/surface-block/element-model/base.ts:106


group

get group(): null | GroupLikeModel<BaseProps>

Returns

null | GroupLikeModel<BaseProps>

Source

packages/blocks/src/surface-block/element-model/base.ts:175


groups

get groups(): GroupLikeModel<BaseProps>[]

Returns

GroupLikeModel<BaseProps>[]

Source

packages/blocks/src/surface-block/element-model/base.ts:179


h

get h(): number

Returns

number

Source

packages/blocks/src/surface-block/element-model/base.ts:171


id

get id(): string

Returns

string

Source

packages/blocks/src/surface-block/element-model/base.ts:183


isConnected

get isConnected(): boolean

Returns

boolean

Source

packages/blocks/src/surface-block/element-model/base.ts:195


type

get abstract type(): string

Returns

string

Source

packages/blocks/src/surface-block/element-model/base.ts:86


w

get w(): number

Returns

number

Source

packages/blocks/src/surface-block/element-model/base.ts:167


x

get x(): number

Returns

number

Source

packages/blocks/src/surface-block/element-model/base.ts:159


y

get y(): number

Returns

number

Source

packages/blocks/src/surface-block/element-model/base.ts:163

Methods

boxSelect()

boxSelect(bound): boolean

Parameters

bound: Bound

Returns

boolean

Implementation of

IEdgelessElement.boxSelect

Source

packages/blocks/src/surface-block/element-model/base.ts:301


containedByBounds()

containedByBounds(bounds): boolean

Parameters

bounds: Bound

Returns

boolean

Implementation of

IEdgelessElement.containedByBounds

Source

packages/blocks/src/surface-block/element-model/base.ts:276


getNearestPoint()

getNearestPoint(point): IVec

Parameters

point: IVec

Returns

IVec

Implementation of

IEdgelessElement.getNearestPoint

Source

packages/blocks/src/surface-block/element-model/base.ts:282


getRelativePointLocation()

getRelativePointLocation(relativePoint): PointLocation

Parameters

relativePoint: IVec

Returns

PointLocation

Implementation of

IEdgelessElement.getRelativePointLocation

Source

packages/blocks/src/surface-block/element-model/base.ts:292


hitTest()

hitTest(x, y, _, __): boolean

Parameters

x: number

y: number

_: HitTestOptions

__: EditorHost

Returns

boolean

Implementation of

IEdgelessElement.hitTest

Source

packages/blocks/src/surface-block/element-model/base.ts:310


intersectWithLine()

intersectWithLine(start, end): null | PointLocation[]

Parameters

start: IVec

end: IVec

Returns

null | PointLocation[]

Implementation of

IEdgelessElement.intersectWithLine

Source

packages/blocks/src/surface-block/element-model/base.ts:287


onCreated()

onCreated(): void

onCreated function will be executed when element is created in local rather than remote peers

Returns

void

Source

packages/blocks/src/surface-block/element-model/base.ts:322


pop()

pop(prop): void

Parameters

prop: string | keyof Props

Returns

void

Source

packages/blocks/src/surface-block/element-model/base.ts:254


serialize()

serialize(): object

Returns

object

Source

packages/blocks/src/surface-block/element-model/base.ts:314


stash()

stash(prop): void

Parameters

prop: string | keyof Props

Returns

void

Source

packages/blocks/src/surface-block/element-model/base.ts:199


propsToY()

static propsToY(props): Record<string, unknown>

Parameters

props: Record<string, unknown>

Returns

Record<string, unknown>

Source

packages/blocks/src/surface-block/element-model/base.ts:57