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