()
selection.selection // 返回当前选中的节点数组,也可以修改,如选中节点 seleciton.selection = [node]
selection.onSelectionChanged(() => {}) // 监听变化
```
---
url: /api/plugins.md
---
这里是官网 api 配置,demo 用。
---
url: /auto-docs/index.md
---
---
url: /auto-docs/core/classes/CommandRegistry.md
---
# Class: CommandRegistry
## Implements
- [`CommandService`](../variables/CommandService-1.md)
## Table of contents
### Constructors
- [constructor](./CommandRegistry.md#constructor)
### Properties
- [onDidExecuteCommand](./CommandRegistry.md#ondidexecutecommand)
- [onWillExecuteCommand](./CommandRegistry.md#onwillexecutecommand)
### Accessors
- [commandIds](./CommandRegistry.md#commandids)
- [commands](./CommandRegistry.md#commands)
### Methods
- [dispose](./CommandRegistry.md#dispose)
- [executeCommand](./CommandRegistry.md#executecommand)
- [getActiveHandler](./CommandRegistry.md#getactivehandler)
- [getAllHandlers](./CommandRegistry.md#getallhandlers)
- [getCommand](./CommandRegistry.md#getcommand)
- [getToggledHandler](./CommandRegistry.md#gettoggledhandler)
- [getVisibleHandler](./CommandRegistry.md#getvisiblehandler)
- [init](./CommandRegistry.md#init)
- [isEnabled](./CommandRegistry.md#isenabled)
- [isToggled](./CommandRegistry.md#istoggled)
- [isVisible](./CommandRegistry.md#isvisible)
- [registerCommand](./CommandRegistry.md#registercommand)
- [registerHandler](./CommandRegistry.md#registerhandler)
- [unregisterCommand](./CommandRegistry.md#unregistercommand)
- [updateCommand](./CommandRegistry.md#updatecommand)
## Constructors
### constructor
**new CommandRegistry**()
## Properties
### onDidExecuteCommand
`Readonly` **onDidExecuteCommand**: `Event`\<`CommandEvent`\>
#### Implementation of
CommandService.onDidExecuteCommand
___
### onWillExecuteCommand
`Readonly` **onWillExecuteCommand**: `Event`\<`CommandEvent`\>
#### Implementation of
CommandService.onWillExecuteCommand
## Accessors
### commandIds
`get` **commandIds**(): `string`[]
当前所有 commandid
#### Returns
`string`[]
___
### commands
`get` **commands**(): [`Command`](../interfaces/Command-1.md)[]
当前所有 command
#### Returns
[`Command`](../interfaces/Command-1.md)[]
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
CommandService.dispose
___
### executeCommand
**executeCommand**\<`T`\>(`commandId`, `...args`): `Promise`\<`undefined` \| `T`\>
执行 command,会先判断是否可以执行,不会重复执行
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `...args` | `any`[] |
#### Returns
`Promise`\<`undefined` \| `T`\>
#### Implementation of
CommandService.executeCommand
___
### getActiveHandler
**getActiveHandler**(`commandId`, `...args`): `undefined` \| `CommandHandler`
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `...args` | `any`[] |
#### Returns
`undefined` \| `CommandHandler`
___
### getAllHandlers
**getAllHandlers**(`commandId`): `CommandHandler`[]
获取 command 对应的所有 handler
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
#### Returns
`CommandHandler`[]
___
### getCommand
**getCommand**(`id`): `undefined` \| [`Command`](../interfaces/Command-1.md)
获取 command
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| [`Command`](../interfaces/Command-1.md)
___
### getToggledHandler
**getToggledHandler**(`commandId`, `...args`): `undefined` \| `CommandHandler`
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `...args` | `any`[] |
#### Returns
`undefined` \| `CommandHandler`
___
### getVisibleHandler
**getVisibleHandler**(`commandId`, `...args`): `undefined` \| `CommandHandler`
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `...args` | `any`[] |
#### Returns
`undefined` \| `CommandHandler`
___
### init
**init**(): `void`
#### Returns
`void`
___
### isEnabled
**isEnabled**(`command`, `...args`): `boolean`
command 是否可用
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | `string` |
| `...args` | `any`[] |
#### Returns
`boolean`
___
### isToggled
**isToggled**(`command`, `...args`): `boolean`
预留 contextMenu 用,该 handler 是否可以触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | `string` |
| `...args` | `any`[] |
#### Returns
`boolean`
___
### isVisible
**isVisible**(`command`, `...args`): `boolean`
预留 contextMenu 用,该 handler 是否可见
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | `string` |
| `...args` | `any`[] |
#### Returns
`boolean`
___
### registerCommand
**registerCommand**(`id`, `handler?`): `Disposable`
registerCommand
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
| `handler?` | `CommandHandler` |
#### Returns
`Disposable`
**registerCommand**(`command`, `handler?`): `Disposable`
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | [`Command`](../interfaces/Command-1.md) |
| `handler?` | `CommandHandler` |
#### Returns
`Disposable`
___
### registerHandler
**registerHandler**(`commandId`, `handler`): `Disposable`
注册 handler
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `handler` | `CommandHandler` |
#### Returns
`Disposable`
___
### unregisterCommand
**unregisterCommand**(`command`): `void`
unregisterCommand
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | [`Command`](../interfaces/Command-1.md) |
#### Returns
`void`
**unregisterCommand**(`id`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`void`
___
### updateCommand
**updateCommand**(`id`, `command`): `void`
更新 command
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
| `command` | `Partial`\<`Omit`\<[`Command`](../interfaces/Command-1.md), ``"id"``\>\> |
#### Returns
`void`
---
url: /auto-docs/core/classes/ConfigEntity.md
---
# Class: ConfigEntity\
用于专门的数据配置,且是单例
## Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) = [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) |
| `O` | extends [`EntityOpts`](../interfaces/EntityOpts.md) = [`EntityOpts`](../interfaces/EntityOpts.md) |
## Hierarchy
- [`Entity`](./Entity-1.md)\<`O`\>
↳ **`ConfigEntity`**
↳↳ [`EditorStateConfigEntity`](./EditorStateConfigEntity.md)
↳↳ [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
## Table of contents
### Constructors
- [constructor](./ConfigEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./ConfigEntity.md#__opts_type__)
- [entityManager](./ConfigEntity.md#entitymanager)
- [onDataChange](./ConfigEntity.md#ondatachange)
- [onEntityChange](./ConfigEntity.md#onentitychange)
- [preDispose](./ConfigEntity.md#predispose)
- [toDispose](./ConfigEntity.md#todispose)
- [type](./ConfigEntity.md#type)
### Accessors
- [config](./ConfigEntity.md#config)
- [context](./ConfigEntity.md#context)
- [disposed](./ConfigEntity.md#disposed)
- [id](./ConfigEntity.md#id)
- [onDispose](./ConfigEntity.md#ondispose)
- [savedInManager](./ConfigEntity.md#savedinmanager)
- [type](./ConfigEntity.md#type-1)
- [version](./ConfigEntity.md#version)
### Methods
- [addData](./ConfigEntity.md#adddata)
- [addInitializeData](./ConfigEntity.md#addinitializedata)
- [checkChanged](./ConfigEntity.md#checkchanged)
- [dispose](./ConfigEntity.md#dispose)
- [fromJSON](./ConfigEntity.md#fromjson)
- [getData](./ConfigEntity.md#getdata)
- [getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
- [getService](./ConfigEntity.md#getservice)
- [hasData](./ConfigEntity.md#hasdata)
- [onConfigChanged](./ConfigEntity.md#onconfigchanged)
- [removeData](./ConfigEntity.md#removedata)
- [reset](./ConfigEntity.md#reset)
- [toJSON](./ConfigEntity.md#tojson)
- [updateConfig](./ConfigEntity.md#updateconfig)
- [updateData](./ConfigEntity.md#updatedata)
## Constructors
### constructor
**new ConfigEntity**\<`P`, `O`\>(`opts`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) = [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) |
| `O` | extends [`EntityOpts`](../interfaces/EntityOpts.md) = [`EntityOpts`](../interfaces/EntityOpts.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `O` |
#### Overrides
[Entity](./Entity-1.md).[constructor](./Entity-1.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `O`
#### Inherited from
[Entity](./Entity-1.md).[__opts_type__](./Entity-1.md#__opts_type__)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[Entity](./Entity-1.md).[entityManager](./Entity-1.md#entitymanager)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[Entity](./Entity-1.md).[onDataChange](./Entity-1.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[Entity](./Entity-1.md).[onEntityChange](./Entity-1.md#onentitychange)
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
[Entity](./Entity-1.md).[preDispose](./Entity-1.md#predispose)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
[Entity](./Entity-1.md).[toDispose](./Entity-1.md#todispose)
___
### type
`Static` **type**: `string` = `'ConfigEntity'`
#### Overrides
[Entity](./Entity-1.md).[type](./Entity-1.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
Entity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
Entity.disposed
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
Entity.id
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
Entity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
Entity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
Entity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
Entity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[Entity](./Entity-1.md).[addData](./Entity-1.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[addInitializeData](./Entity-1.md#addinitializedata)
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `P` |
| `newData` | `Partial`\<`P`\> |
#### Returns
`boolean`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[dispose](./Entity-1.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[fromJSON](./Entity-1.md#fromjson)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[Entity](./Entity-1.md).[getData](./Entity-1.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): `P`
#### Returns
`P`
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[Entity](./Entity-1.md).[getDefaultDataRegistries](./Entity-1.md#getdefaultdataregistries)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
[Entity](./Entity-1.md).[getService](./Entity-1.md#getservice)
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[Entity](./Entity-1.md).[hasData](./Entity-1.md#hasdata)
___
### onConfigChanged
**onConfigChanged**(`fn`): `Disposable`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: `P`) => `void` |
#### Returns
`Disposable`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[removeData](./Entity-1.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[reset](./Entity-1.md#reset)
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[Entity](./Entity-1.md).[toJSON](./Entity-1.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<`P`\> |
#### Returns
`void`
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[updateData](./Entity-1.md#updatedata)
---
url: /auto-docs/core/classes/ContextMenuService.md
---
# Class: ContextMenuService
圈选右键菜单相关 service
## Table of contents
### Constructors
- [constructor](./ContextMenuService.md#constructor)
### Accessors
- [rightPanelVisible](./ContextMenuService.md#rightpanelvisible)
## Constructors
### constructor
**new ContextMenuService**()
## Accessors
### rightPanelVisible
`get` **rightPanelVisible**(): `boolean`
#### Returns
`boolean`
`set` **rightPanelVisible**(`visible`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `visible` | `boolean` |
#### Returns
`void`
---
url: /auto-docs/core/classes/DefaultClipboardService.md
---
# Class: DefaultClipboardService
剪贴板服务,一般用于管理临时的复制黏贴数据
TODO: 后续可以支持调用浏览器
## Implements
- [`ClipboardService`](../variables/ClipboardService-1.md)
## Table of contents
### Constructors
- [constructor](./DefaultClipboardService.md#constructor)
### Properties
- [onClipboardChanged](./DefaultClipboardService.md#onclipboardchanged)
### Methods
- [readText](./DefaultClipboardService.md#readtext)
- [writeText](./DefaultClipboardService.md#writetext)
## Constructors
### constructor
**new DefaultClipboardService**()
## Properties
### onClipboardChanged
`Readonly` **onClipboardChanged**: `Event`\<`string`\>
#### Implementation of
ClipboardService.onClipboardChanged
## Methods
### readText
**readText**(): `string`
#### Returns
`string`
#### Implementation of
ClipboardService.readText
___
### writeText
**writeText**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `value` | `string` |
#### Returns
`void`
#### Implementation of
ClipboardService.writeText
---
url: /auto-docs/core/classes/EditorStateConfigEntity.md
---
# Class: EditorStateConfigEntity
编辑状态管理
## Hierarchy
- [`ConfigEntity`](./ConfigEntity.md)
↳ **`EditorStateConfigEntity`**
## Table of contents
### Constructors
- [constructor](./EditorStateConfigEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./EditorStateConfigEntity.md#__opts_type__)
- [entityManager](./EditorStateConfigEntity.md#entitymanager)
- [onDataChange](./EditorStateConfigEntity.md#ondatachange)
- [onEntityChange](./EditorStateConfigEntity.md#onentitychange)
- [onStateChange](./EditorStateConfigEntity.md#onstatechange)
- [preDispose](./EditorStateConfigEntity.md#predispose)
- [toDispose](./EditorStateConfigEntity.md#todispose)
- [type](./EditorStateConfigEntity.md#type)
### Accessors
- [config](./EditorStateConfigEntity.md#config)
- [context](./EditorStateConfigEntity.md#context)
- [disposed](./EditorStateConfigEntity.md#disposed)
- [id](./EditorStateConfigEntity.md#id)
- [isPressingShift](./EditorStateConfigEntity.md#ispressingshift)
- [isPressingSpaceBar](./EditorStateConfigEntity.md#ispressingspacebar)
- [onDispose](./EditorStateConfigEntity.md#ondispose)
- [savedInManager](./EditorStateConfigEntity.md#savedinmanager)
- [type](./EditorStateConfigEntity.md#type-1)
- [version](./EditorStateConfigEntity.md#version)
### Methods
- [addData](./EditorStateConfigEntity.md#adddata)
- [addInitializeData](./EditorStateConfigEntity.md#addinitializedata)
- [changeState](./EditorStateConfigEntity.md#changestate)
- [checkChanged](./EditorStateConfigEntity.md#checkchanged)
- [dispose](./EditorStateConfigEntity.md#dispose)
- [fromJSON](./EditorStateConfigEntity.md#fromjson)
- [getCurrentState](./EditorStateConfigEntity.md#getcurrentstate)
- [getData](./EditorStateConfigEntity.md#getdata)
- [getDefaultConfig](./EditorStateConfigEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./EditorStateConfigEntity.md#getdefaultdataregistries)
- [getService](./EditorStateConfigEntity.md#getservice)
- [getStateFromShortcut](./EditorStateConfigEntity.md#getstatefromshortcut)
- [getStates](./EditorStateConfigEntity.md#getstates)
- [hasData](./EditorStateConfigEntity.md#hasdata)
- [is](./EditorStateConfigEntity.md#is)
- [isMouseFriendlyMode](./EditorStateConfigEntity.md#ismousefriendlymode)
- [onCancel](./EditorStateConfigEntity.md#oncancel)
- [onConfigChanged](./EditorStateConfigEntity.md#onconfigchanged)
- [registerState](./EditorStateConfigEntity.md#registerstate)
- [removeData](./EditorStateConfigEntity.md#removedata)
- [reset](./EditorStateConfigEntity.md#reset)
- [toDefaultState](./EditorStateConfigEntity.md#todefaultstate)
- [toJSON](./EditorStateConfigEntity.md#tojson)
- [updateConfig](./EditorStateConfigEntity.md#updateconfig)
- [updateData](./EditorStateConfigEntity.md#updatedata)
## Constructors
### constructor
**new EditorStateConfigEntity**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | [`EntityOpts`](../interfaces/EntityOpts.md) |
#### Overrides
[ConfigEntity](./ConfigEntity.md).[constructor](./ConfigEntity.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`EntityOpts`](../interfaces/EntityOpts.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[__opts_type__](./ConfigEntity.md#__opts_type__)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[entityManager](./ConfigEntity.md#entitymanager)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onDataChange](./ConfigEntity.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onEntityChange](./ConfigEntity.md#onentitychange)
___
### onStateChange
`Readonly` **onStateChange**: `Event`\<[`EditorStateChangeEvent`](../interfaces/EditorStateChangeEvent.md)\>
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[preDispose](./ConfigEntity.md#predispose)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toDispose](./ConfigEntity.md#todispose)
___
### type
`Static` **type**: `string` = `'EditorStateConfigEntity'`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[type](./ConfigEntity.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### isPressingShift
`get` **isPressingShift**(): `boolean`
#### Returns
`boolean`
`set` **isPressingShift**(`isPressing`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `isPressing` | `boolean` |
#### Returns
`void`
___
### isPressingSpaceBar
`get` **isPressingSpaceBar**(): `boolean`
#### Returns
`boolean`
`set` **isPressingSpaceBar**(`isPressing`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `isPressing` | `boolean` |
#### Returns
`void`
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addData](./ConfigEntity.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addInitializeData](./ConfigEntity.md#addinitializedata)
___
### changeState
**changeState**(`stateId`, `event?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `stateId` | `string` |
| `event?` | `MouseEvent`\<`Element`, `MouseEvent`\> |
#### Returns
`void`
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) |
| `newData` | `Partial`\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[checkChanged](./ConfigEntity.md#checkchanged)
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[dispose](./ConfigEntity.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[fromJSON](./ConfigEntity.md#fromjson)
___
### getCurrentState
**getCurrentState**(): `undefined` \| [`EditorState`](../interfaces/EditorState-1.md)
#### Returns
`undefined` \| [`EditorState`](../interfaces/EditorState-1.md)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getData](./ConfigEntity.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)
#### Returns
[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getService](./ConfigEntity.md#getservice)
___
### getStateFromShortcut
**getStateFromShortcut**(`e`): `undefined` \| [`EditorState`](../interfaces/EditorState-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `KeyboardEvent` |
#### Returns
`undefined` \| [`EditorState`](../interfaces/EditorState-1.md)
___
### getStates
**getStates**(): [`EditorState`](../interfaces/EditorState-1.md)[]
#### Returns
[`EditorState`](../interfaces/EditorState-1.md)[]
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[hasData](./ConfigEntity.md#hasdata)
___
### is
**is**(`stateId`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `stateId` | `string` |
#### Returns
`boolean`
___
### isMouseFriendlyMode
**isMouseFriendlyMode**(): `boolean`
是否为鼠标友好模式
#### Returns
`boolean`
___
### onCancel
**onCancel**(`stateId`, `fn`): `Disposable`
取消指定状态后触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `stateId` | `string` |
| `fn` | () => `void` |
#### Returns
`Disposable`
___
### onConfigChanged
**onConfigChanged**(`fn`): `Disposable`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)) => `void` |
#### Returns
`Disposable`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onConfigChanged](./ConfigEntity.md#onconfigchanged)
___
### registerState
**registerState**(`state`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | [`EditorState`](../interfaces/EditorState-1.md) |
#### Returns
`void`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[removeData](./ConfigEntity.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[reset](./ConfigEntity.md#reset)
___
### toDefaultState
**toDefaultState**(): `void`
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toJSON](./ConfigEntity.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateConfig](./ConfigEntity.md#updateconfig)
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateData](./ConfigEntity.md#updatedata)
---
url: /auto-docs/core/classes/Entity-1.md
---
# Class: Entity\
## Type parameters
| Name | Type |
| :------ | :------ |
| `OPTS` | extends [`EntityOpts`](../interfaces/EntityOpts.md) = [`EntityOpts`](../interfaces/EntityOpts.md) |
## Hierarchy
- **`Entity`**
↳ [`ConfigEntity`](./ConfigEntity.md)
## Implements
- `Disposable`
## Table of contents
### Constructors
- [constructor](./Entity-1.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./Entity-1.md#__opts_type__)
- [entityManager](./Entity-1.md#entitymanager)
- [onDataChange](./Entity-1.md#ondatachange)
- [onEntityChange](./Entity-1.md#onentitychange)
- [preDispose](./Entity-1.md#predispose)
- [toDispose](./Entity-1.md#todispose)
- [type](./Entity-1.md#type)
### Accessors
- [context](./Entity-1.md#context)
- [disposed](./Entity-1.md#disposed)
- [id](./Entity-1.md#id)
- [onDispose](./Entity-1.md#ondispose)
- [savedInManager](./Entity-1.md#savedinmanager)
- [type](./Entity-1.md#type-1)
- [version](./Entity-1.md#version)
### Methods
- [addData](./Entity-1.md#adddata)
- [addInitializeData](./Entity-1.md#addinitializedata)
- [dispose](./Entity-1.md#dispose)
- [fromJSON](./Entity-1.md#fromjson)
- [getData](./Entity-1.md#getdata)
- [getDefaultDataRegistries](./Entity-1.md#getdefaultdataregistries)
- [getService](./Entity-1.md#getservice)
- [hasData](./Entity-1.md#hasdata)
- [removeData](./Entity-1.md#removedata)
- [reset](./Entity-1.md#reset)
- [toJSON](./Entity-1.md#tojson)
- [updateData](./Entity-1.md#updatedata)
## Constructors
### constructor
**new Entity**\<`OPTS`\>(`opts`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `OPTS` | extends [`EntityOpts`](../interfaces/EntityOpts.md) = [`EntityOpts`](../interfaces/EntityOpts.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `OPTS` |
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `OPTS`
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
___
### type
`Static` **type**: `string` = `'Entity'`
## Accessors
### context
`get` **context**(): `any`
#### Returns
`any`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
---
url: /auto-docs/core/classes/EntityData.md
---
# Class: EntityData\
实体的数据块
## Type parameters
| Name | Type |
| :------ | :------ |
| `DATA` | `any` \| `number` \| `string` |
| `OPTS` | extends `Object` = {} |
## Hierarchy
- `DisposableImpl`
↳ **`EntityData`**
↳↳ [`OriginData`](./OriginData.md)
↳↳ [`OpacityData`](./OpacityData.md)
↳↳ [`PositionData`](./PositionData.md)
↳↳ [`RotationData`](./RotationData.md)
↳↳ [`ScaleData`](./ScaleData.md)
↳↳ [`SizeData`](./SizeData.md)
↳↳ [`SkewData`](./SkewData.md)
↳↳ [`TransformData`](./TransformData-1.md)
## Table of contents
### Constructors
- [constructor](./EntityData.md#constructor)
### Properties
- [entity](./EntityData.md#entity)
- [onDataChange](./EntityData.md#ondatachange)
- [onWillChange](./EntityData.md#onwillchange)
- [opts](./EntityData.md#opts)
- [toDispose](./EntityData.md#todispose)
- [type](./EntityData.md#type)
### Accessors
- [changeLocked](./EntityData.md#changelocked)
- [data](./EntityData.md#data)
- [disposed](./EntityData.md#disposed)
- [onDispose](./EntityData.md#ondispose)
- [type](./EntityData.md#type-1)
- [version](./EntityData.md#version)
### Methods
- [checkChanged](./EntityData.md#checkchanged)
- [dispose](./EntityData.md#dispose)
- [fireChange](./EntityData.md#firechange)
- [fireWillChange](./EntityData.md#firewillchange)
- [fromJSON](./EntityData.md#fromjson)
- [fullyUpdate](./EntityData.md#fullyupdate)
- [getDefaultData](./EntityData.md#getdefaultdata)
- [toJSON](./EntityData.md#tojson)
- [update](./EntityData.md#update)
## Constructors
### constructor
**new EntityData**\<`DATA`, `OPTS`\>(`entity`, `opts?`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `DATA` | `any` |
| `OPTS` | extends `Object` = {} |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `OPTS` |
#### Overrides
DisposableImpl.constructor
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityData`](./EntityData.md)\<`DATA`, `OPTS`\>\>
修改后触发
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<[`EntityData`](./EntityData.md)\<`DATA`, `OPTS`\>\>
修改前触发
___
### opts
`Optional` `Readonly` **opts**: `OPTS`
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
DisposableImpl.toDispose
___
### type
`Static` **type**: `string` = `'EntityData'`
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
DisposableImpl.disposed
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
DisposableImpl.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
___
### version
`get` **version**(): `number`
#### Returns
`number`
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | `DATA` \| `Partial`\<`DATA`\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
DisposableImpl.dispose
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `DATA` |
#### Returns
`void`
___
### getDefaultData
`Abstract` **getDefaultData**(): `DATA`
初始化数据
#### Returns
`DATA`
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `DATA` \| `Partial`\<`DATA`\> \| keyof `DATA` |
| `value?` | `any` |
#### Returns
`void`
---
url: /auto-docs/core/classes/EntityManager.md
---
# Class: EntityManager
TODO registry 改成 decorator
Entity 管理器,全局唯一
## Implements
- `Disposable`
## Table of contents
### Constructors
- [constructor](./EntityManager.md#constructor)
### Properties
- [changeEntityLocked](./EntityManager.md#changeentitylocked)
- [context](./EntityManager.md#context)
- [contributions](./EntityManager.md#contributions)
- [onEntityChange](./EntityManager.md#onentitychange)
- [onEntityDataChange](./EntityManager.md#onentitydatachange)
- [onEntityLifeCycleChange](./EntityManager.md#onentitylifecyclechange)
- [toDispose](./EntityManager.md#todispose)
### Methods
- [createEntity](./EntityManager.md#createentity)
- [dispose](./EntityManager.md#dispose)
- [fireEntityChanged](./EntityManager.md#fireentitychanged)
- [fireEntityDataChanged](./EntityManager.md#fireentitydatachanged)
- [fireEntityLifeCycleChanged](./EntityManager.md#fireentitylifecyclechanged)
- [getDataInjector](./EntityManager.md#getdatainjector)
- [getDataRegistryByType](./EntityManager.md#getdataregistrybytype)
- [getEntities](./EntityManager.md#getentities)
- [getEntity](./EntityManager.md#getentity)
- [getEntityById](./EntityManager.md#getentitybyid)
- [getEntityDataVersion](./EntityManager.md#getentitydataversion)
- [getEntityDatas](./EntityManager.md#getentitydatas)
- [getEntityVersion](./EntityManager.md#getentityversion)
- [getRegistryByType](./EntityManager.md#getregistrybytype)
- [getService](./EntityManager.md#getservice)
- [hasEntity](./EntityManager.md#hasentity)
- [init](./EntityManager.md#init)
- [isConfigEntity](./EntityManager.md#isconfigentity)
- [registerEntity](./EntityManager.md#registerentity)
- [registerEntityData](./EntityManager.md#registerentitydata)
- [removeEntities](./EntityManager.md#removeentities)
- [removeEntityById](./EntityManager.md#removeentitybyid)
- [reset](./EntityManager.md#reset)
- [resetEntities](./EntityManager.md#resetentities)
- [resetEntity](./EntityManager.md#resetentity)
- [restoreState](./EntityManager.md#restorestate)
- [storeState](./EntityManager.md#storestate)
- [updateConfigEntity](./EntityManager.md#updateconfigentity)
## Constructors
### constructor
**new EntityManager**()
## Properties
### changeEntityLocked
**changeEntityLocked**: `boolean` = `false`
暂停触发实体类型变化
___
### context
**context**: `any`
___
### contributions
**contributions**: [`EntityManagerContribution`](../variables/EntityManagerContribution-1.md)[]
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<`string`\>
当对应的实体类型变化后触发
___
### onEntityDataChange
`Readonly` **onEntityDataChange**: `Event`\<\{ `entityDataType`: `string` ; `entityType`: `string` }\>
entity data 数据变化
___
### onEntityLifeCycleChange
`Readonly` **onEntityLifeCycleChange**: `Event`\<\{ `entity`: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> ; `type`: ``"add"`` \| ``"update"`` \| ``"delete"`` }\>
Entity 生命周期变化
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
## Methods
### createEntity
**createEntity**\<`T`\>(`Registry`, `opts?`): `T`
创建实体
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `opts?` | `Omit`\<`T`[``"__opts_type__"``], ``"entityManager"``\> |
#### Returns
`T`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### fireEntityChanged
**fireEntityChanged**(`entity`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | `string` \| [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
#### Returns
`void`
___
### fireEntityDataChanged
**fireEntityDataChanged**(`entityType`, `entityDataType`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityType` | `string` |
| `entityDataType` | `string` |
#### Returns
`void`
___
### fireEntityLifeCycleChanged
**fireEntityLifeCycleChanged**(`«destructured»`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| › `type` | ``"add"`` \| ``"update"`` \| ``"delete"`` |
#### Returns
`void`
___
### getDataInjector
**getDataInjector**(`registry`): `undefined` \| [`EntityDataInjector`](../types/EntityDataInjector.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | `string` \| [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`undefined` \| [`EntityDataInjector`](../types/EntityDataInjector.md)
___
### getDataRegistryByType
**getDataRegistryByType**(`type`): `undefined` \| [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` |
#### Returns
`undefined` \| [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>
___
### getEntities
**getEntities**\<`T`\>(`registry`): `T`[]
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`T`[]
___
### getEntity
**getEntity**\<`T`\>(`registry`, `autoCreate?`): `undefined` \| `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> | - |
| `autoCreate?` | `boolean` | 是否要自动创建,默认 false |
#### Returns
`undefined` \| `T`
___
### getEntityById
**getEntityById**\<`T`\>(`id`): `undefined` \| `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| `T`
___
### getEntityDataVersion
**getEntityDataVersion**(`registry`): `number`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | `string` \| [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`number`
___
### getEntityDatas
**getEntityDatas**\<`T`\>(`entityRegistry`, `dataRegistry`): `T`[]
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `dataRegistry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`T`\> |
#### Returns
`T`[]
___
### getEntityVersion
**getEntityVersion**(`registry`): `number`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | `string` \| [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`number`
___
### getRegistryByType
**getRegistryByType**(`type`): `undefined` \| [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` |
#### Returns
`undefined` \| [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
___
### getService
**getService**\<`T`\>(`identifier`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
___
### hasEntity
**hasEntity**(`registry`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`boolean`
___
### init
**init**(): `void`
#### Returns
`void`
___
### isConfigEntity
**isConfigEntity**(`type`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` |
#### Returns
`boolean`
___
### registerEntity
**registerEntity**(`Registry`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
___
### registerEntityData
**registerEntityData**(`Registry`, `injector?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `injector?` | [`EntityDataInjector`](../types/EntityDataInjector.md) |
#### Returns
`void`
___
### removeEntities
**removeEntities**(`Registry`): `void`
批量删除实体
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
___
### removeEntityById
**removeEntityById**(`id`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`boolean`
___
### reset
**reset**(): `void`
重制所有 entity 为初始化状态
#### Returns
`void`
___
### resetEntities
**resetEntities**(`registry`): `void`
触发实体 reset
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
___
### resetEntity
**resetEntity**(`registry`, `autoCreate?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `autoCreate?` | `boolean` |
#### Returns
`void`
___
### restoreState
**restoreState**(`data`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | [`EntityJSON`](../interfaces/EntityJSON.md)[] |
#### Returns
`void`
___
### storeState
**storeState**(`«destructured»?`): [`EntityJSON`](../interfaces/EntityJSON.md)[]
只存储 config 数据,忽略动态数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `configOnly?` | `boolean` |
#### Returns
[`EntityJSON`](../interfaces/EntityJSON.md)[]
___
### updateConfigEntity
**updateConfigEntity**\<`E`\>(`registry`, `config`): `void`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`ConfigEntity`](./ConfigEntity.md)\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md), [`EntityOpts`](../interfaces/EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `config` | `Partial`\<`E`[``"config"``]\> |
#### Returns
`void`
---
url: /auto-docs/core/classes/FlushLayerMessage.md
---
# Class: FlushLayerMessage
## Hierarchy
- `ConflatableMessage`
↳ **`FlushLayerMessage`**
## Table of contents
### Constructors
- [constructor](./FlushLayerMessage.md#constructor)
### Properties
- [isConflatable](./FlushLayerMessage.md#isconflatable)
- [layer](./FlushLayerMessage.md#layer)
- [type](./FlushLayerMessage.md#type)
### Methods
- [conflate](./FlushLayerMessage.md#conflate)
## Constructors
### constructor
**new FlushLayerMessage**(`layer`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Overrides
ConflatableMessage.constructor
## Properties
### isConflatable
`Readonly` **isConflatable**: `boolean`
Test whether the message is conflatable.
#### Notes
This property is always `true`.
#### Inherited from
ConflatableMessage.isConflatable
___
### layer
`Readonly` **layer**: [`Layer`](./Layer.md)\<`any`, `any`\>
___
### type
`Readonly` **type**: `string`
The type of the message.
#### Notes
The `type` of a message should be related directly to its actual
runtime type. This means that `type` can and will be used to cast
the message to the relevant derived `Message` subtype.
#### Inherited from
ConflatableMessage.type
## Methods
### conflate
**conflate**(`other`): `boolean`
Conflate this message with another message of the same `type`.
#### Notes
This method always returns `true`.
#### Parameters
| Name | Type |
| :------ | :------ |
| `other` | `ConflatableMessage` |
#### Returns
`boolean`
#### Inherited from
ConflatableMessage.conflate
---
url: /auto-docs/core/classes/Layer.md
---
# Class: Layer\
基础 layer
## Type parameters
| Name | Type |
| :------ | :------ |
| `OPT` | extends [`LayerOptions`](../variables/LayerOptions-1.md) = `any` |
| `CONTEXT` | extends [`PlaygroundContext`](../variables/PlaygroundContext-1.md) = [`PlaygroundContext`](../variables/PlaygroundContext-1.md) |
## Hierarchy
- **`Layer`**
↳ [`PlaygroundLayer`](./PlaygroundLayer.md)
## Table of contents
### Constructors
- [constructor](./Layer.md#constructor)
### Properties
- [config](./Layer.md#config)
- [context](./Layer.md#context)
- [entityManager](./Layer.md#entitymanager)
- [getOtherLayer](./Layer.md#getotherlayer)
- [isFocused](./Layer.md#isfocused)
- [listenGlobalEvent](./Layer.md#listenglobalevent)
- [listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
- [node](./Layer.md#node)
- [observeManager](./Layer.md#observemanager)
- [options](./Layer.md#options)
- [pipelineNode](./Layer.md#pipelinenode)
- [playgroundNode](./Layer.md#playgroundnode)
- [reloadEntities](./Layer.md#reloadentities)
- [renderWithReactMemo](./Layer.md#renderwithreactmemo)
### Methods
- [autorun](./Layer.md#autorun)
- [createDOMCache](./Layer.md#createdomcache)
- [dispose](./Layer.md#dispose)
- [getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
- [onBlur](./Layer.md#onblur)
- [onFocus](./Layer.md#onfocus)
- [onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
- [onReady](./Layer.md#onready)
- [onResize](./Layer.md#onresize)
- [onScroll](./Layer.md#onscroll)
- [onViewportChange](./Layer.md#onviewportchange)
- [onZoom](./Layer.md#onzoom)
- [render](./Layer.md#render)
## Constructors
### constructor
**new Layer**\<`OPT`, `CONTEXT`\>()
#### Type parameters
| Name | Type |
| :------ | :------ |
| `OPT` | extends [`LayerOptions`](../variables/LayerOptions-1.md) = `any` |
| `CONTEXT` | extends `unknown` = `any` |
## Properties
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
___
### context
`Readonly` **context**: `CONTEXT`
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
___
### options
**options**: `OPT`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean` = `true`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `event` | `Object` | `undefined` |
| `event.clientX` | `number` | `undefined` |
| `event.clientY` | `number` | `undefined` |
| `addScale` | `boolean` | `true` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
___
### onReady
`Optional` **onReady**(): `void`
初始化时候触发
#### Returns
`void`
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
---
url: /auto-docs/core/classes/LocalStorageService.md
---
# Class: LocalStorageService
## Implements
- [`StorageService`](../variables/StorageService-1.md)
## Table of contents
### Constructors
- [constructor](./LocalStorageService.md#constructor)
### Methods
- [getData](./LocalStorageService.md#getdata)
- [prefix](./LocalStorageService.md#prefix)
- [setData](./LocalStorageService.md#setdata)
- [setPrefix](./LocalStorageService.md#setprefix)
## Constructors
### constructor
**new LocalStorageService**()
## Methods
### getData
**getData**\<`T`\>(`key`, `defaultValue?`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `defaultValue?` | `T` |
#### Returns
`T`
#### Implementation of
StorageService.getData
___
### prefix
**prefix**(`key`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
#### Returns
`string`
___
### setData
**setData**\<`T`\>(`key`, `data`): `void`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `data` | `T` |
#### Returns
`void`
#### Implementation of
StorageService.setData
___
### setPrefix
**setPrefix**(`prefix`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `prefix` | `string` |
#### Returns
`void`
---
url: /auto-docs/core/classes/LoggerService.md
---
# Class: LoggerService
画布全局的选择器,可以放任何东西
## Implements
- `Disposable`
## Table of contents
### Constructors
- [constructor](./LoggerService.md#constructor)
### Properties
- [onLogger](./LoggerService.md#onlogger)
### Methods
- [dispose](./LoggerService.md#dispose)
- [onAllLayersRendered](./LoggerService.md#onalllayersrendered)
- [onFlushRequest](./LoggerService.md#onflushrequest)
## Constructors
### constructor
**new LoggerService**()
## Properties
### onLogger
`Readonly` **onLogger**: `Event`\<`any`\>
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### onAllLayersRendered
**onAllLayersRendered**(): `void`
#### Returns
`void`
___
### onFlushRequest
**onFlushRequest**(`renderFrameInterval`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderFrameInterval` | `number` |
#### Returns
`void`
---
url: /auto-docs/core/classes/OpacityData.md
---
# Class: OpacityData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`OpacitySchema`](../types/OpacitySchema.md)\>
↳ **`OpacityData`**
## Table of contents
### Constructors
- [constructor](./OpacityData.md#constructor)
### Properties
- [entity](./OpacityData.md#entity)
- [onDataChange](./OpacityData.md#ondatachange)
- [onWillChange](./OpacityData.md#onwillchange)
- [opts](./OpacityData.md#opts)
- [toDispose](./OpacityData.md#todispose)
- [type](./OpacityData.md#type)
### Accessors
- [changeLocked](./OpacityData.md#changelocked)
- [data](./OpacityData.md#data)
- [disposed](./OpacityData.md#disposed)
- [onDispose](./OpacityData.md#ondispose)
- [type](./OpacityData.md#type-1)
- [version](./OpacityData.md#version)
### Methods
- [checkChanged](./OpacityData.md#checkchanged)
- [dispose](./OpacityData.md#dispose)
- [fireChange](./OpacityData.md#firechange)
- [fireWillChange](./OpacityData.md#firewillchange)
- [fromJSON](./OpacityData.md#fromjson)
- [fullyUpdate](./OpacityData.md#fullyupdate)
- [getDefaultData](./OpacityData.md#getdefaultdata)
- [toJSON](./OpacityData.md#tojson)
- [update](./OpacityData.md#update)
## Constructors
### constructor
**new OpacityData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityData`](./EntityData.md)\<`number`, {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<[`EntityData`](./EntityData.md)\<`number`, {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string` = `'OpacityData'`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | `number` |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `number` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): `number`
初始化数据
#### Returns
`number`
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `number` \| ``"toString"`` \| ``"toFixed"`` \| ``"toExponential"`` \| ``"toPrecision"`` \| ``"valueOf"`` \| ``"toLocaleString"`` |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/core/classes/OriginData.md
---
# Class: OriginData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`OriginSchema`](../interfaces/OriginSchema.md)\>
↳ **`OriginData`**
## Implements
- [`OriginSchema`](../interfaces/OriginSchema.md)
## Table of contents
### Constructors
- [constructor](./OriginData.md#constructor)
### Properties
- [entity](./OriginData.md#entity)
- [onDataChange](./OriginData.md#ondatachange)
- [onWillChange](./OriginData.md#onwillchange)
- [opts](./OriginData.md#opts)
- [toDispose](./OriginData.md#todispose)
- [type](./OriginData.md#type)
### Accessors
- [changeLocked](./OriginData.md#changelocked)
- [data](./OriginData.md#data)
- [disposed](./OriginData.md#disposed)
- [onDispose](./OriginData.md#ondispose)
- [type](./OriginData.md#type-1)
- [version](./OriginData.md#version)
- [x](./OriginData.md#x)
- [y](./OriginData.md#y)
### Methods
- [checkChanged](./OriginData.md#checkchanged)
- [dispose](./OriginData.md#dispose)
- [fireChange](./OriginData.md#firechange)
- [fireWillChange](./OriginData.md#firewillchange)
- [fromJSON](./OriginData.md#fromjson)
- [fullyUpdate](./OriginData.md#fullyupdate)
- [getDefaultData](./OriginData.md#getdefaultdata)
- [toJSON](./OriginData.md#tojson)
- [update](./OriginData.md#update)
## Constructors
### constructor
**new OriginData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`OriginSchema`](../interfaces/OriginSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`OriginSchema`](../interfaces/OriginSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string` = `'OriginData'`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
___
### x
`get` **x**(): `number`
#### Returns
`number`
#### Implementation of
[OriginSchema](../interfaces/OriginSchema.md).[x](../interfaces/OriginSchema.md#x)
`set` **x**(`x`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `x` | `number` |
#### Returns
`void`
#### Implementation of
[OriginSchema](../interfaces/OriginSchema.md).[x](../interfaces/OriginSchema.md#x)
___
### y
`get` **y**(): `number`
#### Returns
`number`
#### Implementation of
[OriginSchema](../interfaces/OriginSchema.md).[y](../interfaces/OriginSchema.md#y)
`set` **y**(`y`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `y` | `number` |
#### Returns
`void`
#### Implementation of
[OriginSchema](../interfaces/OriginSchema.md).[y](../interfaces/OriginSchema.md#y)
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`OriginSchema`](../interfaces/OriginSchema.md) \| `Partial`\<[`OriginSchema`](../interfaces/OriginSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`OriginSchema`](../interfaces/OriginSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`OriginSchema`](../interfaces/OriginSchema.md)
初始化数据
#### Returns
[`OriginSchema`](../interfaces/OriginSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`OriginSchema`](../interfaces/OriginSchema.md) \| `Partial`\<[`OriginSchema`](../interfaces/OriginSchema.md)\> \| keyof [`OriginSchema`](../interfaces/OriginSchema.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/core/classes/PipelineEntitiesImpl.md
---
# Class: PipelineEntitiesImpl
注入到 Layer 中的实体选择器
## Implements
- [`PipelineEntities`](../interfaces/PipelineEntities.md)
## Table of contents
### Constructors
- [constructor](./PipelineEntitiesImpl.md#constructor)
### Accessors
- [size](./PipelineEntitiesImpl.md#size)
### Methods
- [[iterator]](PipelineEntitiesImpl.md#[iterator])
- [createEntity](./PipelineEntitiesImpl.md#createentity)
- [get](./PipelineEntitiesImpl.md#get)
- [getConfig](./PipelineEntitiesImpl.md#getconfig)
- [getEntities](./PipelineEntitiesImpl.md#getentities)
- [getEntityDatas](./PipelineEntitiesImpl.md#getentitydatas)
- [has](./PipelineEntitiesImpl.md#has)
- [load](./PipelineEntitiesImpl.md#load)
- [removeEntities](./PipelineEntitiesImpl.md#removeentities)
- [updateConfig](./PipelineEntitiesImpl.md#updateconfig)
## Constructors
### constructor
**new PipelineEntitiesImpl**(`entityManager`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityManager` | [`EntityManager`](./EntityManager.md) |
## Accessors
### size
`get` **size**(): `number`
当前画布订阅的实体数目
#### Returns
`number`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[size](../interfaces/PipelineEntities.md#size)
## Methods
### [iterator]
**[iterator]**(): `Iterator`\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>, `any`, `undefined`\>
#### Returns
`Iterator`\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>, `any`, `undefined`\>
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[[iterator]](../interfaces/PipelineEntities.md#[iterator])
___
### createEntity
**createEntity**\<`E`\>(`registry`, `opts?`): `E`
创建实体
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `opts?` | `Omit`\<`E`[``"__opts_type__"``], ``"entityManager"``\> |
#### Returns
`E`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[createEntity](../interfaces/PipelineEntities.md#createentity)
___
### get
**get**\<`T`\>(`registry`, `id?`): `undefined` \| `T`
获取单个实体,如果该实体是单例且被注册过,则会自动创建
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `id?` | `string` |
#### Returns
`undefined` \| `T`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[get](../interfaces/PipelineEntities.md#get)
___
### getConfig
**getConfig**\<`E`\>(`registry`): `undefined` \| `E`[``"config"``]
获取配置信息
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`ConfigEntity`](./ConfigEntity.md)\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md), [`EntityOpts`](../interfaces/EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`undefined` \| `E`[``"config"``]
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[getConfig](../interfaces/PipelineEntities.md#getconfig)
___
### getEntities
**getEntities**\<`T`\>(`registry`): `T`[]
获取多个实体
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`T`[]
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[getEntities](../interfaces/PipelineEntities.md#getentities)
___
### getEntityDatas
**getEntityDatas**\<`T`\>(`entityRegistry`, `dataRegistry`): `T`[]
获取 entity
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `T`\> = [`EntityData`](./EntityData.md)\<`any`, {}\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `dataRegistry` | `T` |
#### Returns
`T`[]
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[getEntityDatas](../interfaces/PipelineEntities.md#getentitydatas)
___
### has
**has**(`registy`): `boolean`
是否存在
#### Parameters
| Name | Type |
| :------ | :------ |
| `registy` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`boolean`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[has](../interfaces/PipelineEntities.md#has)
___
### load
**load**(`observeEntites`, `observeDatas`): `void`
加载订阅数据,会缓存到 layer 内部,layer 只能拿到订阅数据的子集
#### Parameters
| Name | Type |
| :------ | :------ |
| `observeEntites` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>[] |
| `observeDatas` | [`EntityData`](./EntityData.md)\<`any`, {}\>[] |
#### Returns
`void`
___
### removeEntities
**removeEntities**(`registry`): `void`
批量删除实体
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[removeEntities](../interfaces/PipelineEntities.md#removeentities)
___
### updateConfig
**updateConfig**\<`E`\>(`registry`, `props`): `void`
更新配置数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`ConfigEntity`](./ConfigEntity.md)\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md), [`EntityOpts`](../interfaces/EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `props` | `Partial`\<`E`[``"config"``]\> |
#### Returns
`void`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[updateConfig](../interfaces/PipelineEntities.md#updateconfig)
---
url: /auto-docs/core/classes/PipelineEntitiesSelector.md
---
# Class: PipelineEntitiesSelector
选择器用来在 pipeline 绘制之前,筛选并注入 entities
## Table of contents
### Constructors
- [constructor](./PipelineEntitiesSelector.md#constructor)
### Properties
- [ableLayerMap](./PipelineEntitiesSelector.md#ablelayermap)
- [entityLayerMap](./PipelineEntitiesSelector.md#entitylayermap)
- [entityManager](./PipelineEntitiesSelector.md#entitymanager)
### Methods
- [getLayerData](./PipelineEntitiesSelector.md#getlayerdata)
- [getLayerEntities](./PipelineEntitiesSelector.md#getlayerentities)
- [getLayerEntityDatas](./PipelineEntitiesSelector.md#getlayerentitydatas)
- [subscribeEntities](./PipelineEntitiesSelector.md#subscribeentities)
- [subscribleEntityByData](./PipelineEntitiesSelector.md#subscribleentitybydata)
## Constructors
### constructor
**new PipelineEntitiesSelector**()
## Properties
### ableLayerMap
`Readonly` **ableLayerMap**: `Map`\<`string`, `Set`\<[`Layer`](./Layer.md)\<`any`, `any`\>\>\>
___
### entityLayerMap
`Readonly` **entityLayerMap**: `Map`\<`string`, `Set`\<[`Layer`](./Layer.md)\<`any`, `any`\>\>\>
___
### entityManager
**entityManager**: [`EntityManager`](./EntityManager.md)
## Methods
### getLayerData
**getLayerData**(`layer`): `Object`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `changed` | `boolean` |
| `observeDatas` | [`EntityData`](./EntityData.md)\<`any`, {}\>[] |
| `observeEntities` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>[] |
___
### getLayerEntities
**getLayerEntities**(`layer`): `Object`
查询 layer 关联的实体
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `changed` | `boolean` |
| `entities` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>[] |
___
### getLayerEntityDatas
**getLayerEntityDatas**(`layer`): `Object`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `changed` | `boolean` |
| `datas` | [`EntityData`](./EntityData.md)\<`any`, {}\>[] |
___
### subscribeEntities
**subscribeEntities**(`layer`, `entities`): `void`
订阅关联的 entity,会影响 autorun
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
| `entities` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>[] |
#### Returns
`void`
___
### subscribleEntityByData
**subscribleEntityByData**(`layer`, `entity`, `data`): `void`
订阅 data 数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
| `entity` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `data` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`void`
---
url: /auto-docs/core/classes/PipelineRegistry.md
---
# Class: PipelineRegistry
pipeline 注册器,用于注册一些事件
## Implements
- `Disposable`
- `IMessageHandler`
## Table of contents
### Constructors
- [constructor](./PipelineRegistry.md#constructor)
### Properties
- [context](./PipelineRegistry.md#context)
- [entityManager](./PipelineRegistry.md#entitymanager)
- [layerFactory](./PipelineRegistry.md#layerfactory)
- [onBlur](./PipelineRegistry.md#onblur)
- [onBlurEmitter](./PipelineRegistry.md#onbluremitter)
- [onFocus](./PipelineRegistry.md#onfocus)
- [onFocusEmitter](./PipelineRegistry.md#onfocusemitter)
- [onResize](./PipelineRegistry.md#onresize)
- [onResizeEmitter](./PipelineRegistry.md#onresizeemitter)
- [onScroll](./PipelineRegistry.md#onscroll)
- [onScrollEmitter](./PipelineRegistry.md#onscrollemitter)
- [onZoom](./PipelineRegistry.md#onzoom)
- [onZoomEmitter](./PipelineRegistry.md#onzoomemitter)
- [renderer](./PipelineRegistry.md#renderer)
- [selector](./PipelineRegistry.md#selector)
### Accessors
- [configEntity](./PipelineRegistry.md#configentity)
### Methods
- [\_listenEvent](./PipelineRegistry.md#_listenevent)
- [dispose](./PipelineRegistry.md#dispose)
- [getLayer](./PipelineRegistry.md#getlayer)
- [listenGlobalEvent](./PipelineRegistry.md#listenglobalevent)
- [listenPlaygroundEvent](./PipelineRegistry.md#listenplaygroundevent)
- [processMessage](./PipelineRegistry.md#processmessage)
- [ready](./PipelineRegistry.md#ready)
- [registerLayer](./PipelineRegistry.md#registerlayer)
## Constructors
### constructor
**new PipelineRegistry**()
## Properties
### context
**context**: `any`
___
### entityManager
**entityManager**: [`EntityManager`](./EntityManager.md)
___
### layerFactory
**layerFactory**: [`PipelineLayerFactory`](../variables/PipelineLayerFactory-1.md)
___
### onBlur
`Readonly` **onBlur**: `Event`\<`void`\>
___
### onBlurEmitter
`Readonly` **onBlurEmitter**: `Emitter`\<`void`\>
___
### onFocus
`Readonly` **onFocus**: `Event`\<`void`\>
___
### onFocusEmitter
`Readonly` **onFocusEmitter**: `Emitter`\<`void`\>
___
### onResize
`Readonly` **onResize**: `Event`\<[`PipelineDimension`](../interfaces/PipelineDimension.md)\>
pipline 大小变化时候会触发
___
### onResizeEmitter
`Readonly` **onResizeEmitter**: `Emitter`\<[`PipelineDimension`](../interfaces/PipelineDimension.md)\>
___
### onScroll
`Readonly` **onScroll**: `Event`\<\{ `scrollX`: `number` ; `scrollY`: `number` }\>
___
### onScrollEmitter
`Readonly` **onScrollEmitter**: `Emitter`\<\{ `scrollX`: `number` ; `scrollY`: `number` }\>
___
### onZoom
`Readonly` **onZoom**: `Event`\<`number`\>
___
### onZoomEmitter
`Readonly` **onZoomEmitter**: `Emitter`\<`number`\>
___
### renderer
**renderer**: [`PipelineRenderer`](./PipelineRenderer.md)
___
### selector
**selector**: [`PipelineEntitiesSelector`](./PipelineEntitiesSelector.md)
## Accessors
### configEntity
`get` **configEntity**(): [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
#### Returns
[`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
## Methods
### \_listenEvent
**_listenEvent**(`name`, `handle`, `isGlobal`, `priority?`, `options?`): `Disposable`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `name` | `string` | `undefined` |
| `handle` | [`PipelineEventHandler`](../types/PipelineEventHandler.md) | `undefined` |
| `isGlobal` | `boolean` | `undefined` |
| `priority` | `number` | `0` |
| `options?` | `AddEventListenerOptions` | `undefined` |
#### Returns
`Disposable`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### getLayer
**getLayer**\<`T`\>(`layerRegistry`): `undefined` \| `T`
获取 layer
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
#### Returns
`undefined` \| `T`
___
### listenGlobalEvent
**listenGlobalEvent**(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听全局的事件
#### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `undefined` \| `boolean` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
#### Returns
`Disposable`
___
### listenPlaygroundEvent
**listenPlaygroundEvent**(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听画布上的浏览器事件
#### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `undefined` \| `boolean` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
#### Returns
`Disposable`
___
### processMessage
**processMessage**(`msg`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `msg` | `Message` |
#### Returns
`void`
#### Implementation of
IMessageHandler.processMessage
___
### ready
**ready**(): `void`
#### Returns
`void`
___
### registerLayer
**registerLayer**\<`P`\>(`layerRegistry`, `layerOptions?`): `void`
注册 layer
#### Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`Layer`](./Layer.md)\<`any`, `any`, `P`\> = [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`P`\> | |
| `layerOptions?` | `P`[``"options"``] | 配置 |
#### Returns
`void`
---
url: /auto-docs/core/classes/PipelineRenderer.md
---
# Class: PipelineRenderer
pipeline 渲染器
## Implements
- `Disposable`
- `IMessageHandler`
## Table of contents
### Constructors
- [constructor](./PipelineRenderer.md#constructor)
### Properties
- [isReady](./PipelineRenderer.md#isready)
- [layerAutorunMap](./PipelineRenderer.md#layerautorunmap)
- [layerFlushMessages](./PipelineRenderer.md#layerflushmessages)
- [layerRenderedMap](./PipelineRenderer.md#layerrenderedmap)
- [layers](./PipelineRenderer.md#layers)
- [node](./PipelineRenderer.md#node)
- [onAllLayersRendered](./PipelineRenderer.md#onalllayersrendered)
### Methods
- [addLayer](./PipelineRenderer.md#addlayer)
- [dispose](./PipelineRenderer.md#dispose)
- [flush](./PipelineRenderer.md#flush)
- [processMessage](./PipelineRenderer.md#processmessage)
- [ready](./PipelineRenderer.md#ready)
- [reportLayerRendered](./PipelineRenderer.md#reportlayerrendered)
- [toReactComponent](./PipelineRenderer.md#toreactcomponent)
- [updateLayer](./PipelineRenderer.md#updatelayer)
## Constructors
### constructor
**new PipelineRenderer**(`selector`, `entityManager`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `selector` | [`PipelineEntitiesSelector`](./PipelineEntitiesSelector.md) |
| `entityManager` | [`EntityManager`](./EntityManager.md) |
## Properties
### isReady
**isReady**: `boolean` = `false`
___
### layerAutorunMap
`Readonly` **layerAutorunMap**: `Map`\<[`Layer`](./Layer.md)\<`any`, `any`\>, () => `void`\>
___
### layerFlushMessages
`Readonly` **layerFlushMessages**: `Map`\<[`Layer`](./Layer.md)\<`any`, `any`\>, [`FlushLayerMessage`](./FlushLayerMessage.md)\>
___
### layerRenderedMap
`Readonly` **layerRenderedMap**: `Map`\<[`Layer`](./Layer.md)\<`any`, `any`\>, `boolean`\>
___
### layers
`Readonly` **layers**: [`Layer`](./Layer.md)\<`any`, `any`\>[] = `[]`
___
### node
`Readonly` **node**: `HTMLDivElement`
___
### onAllLayersRendered
`Readonly` **onAllLayersRendered**: `Event`\<`void`\>
所有 Layer 第一次渲染完成后触发
## Methods
### addLayer
**addLayer**(`layer`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`void`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### flush
**flush**(`forceUpdate?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `forceUpdate?` | `boolean` |
#### Returns
`void`
___
### processMessage
**processMessage**(`msg`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `msg` | `Message` |
#### Returns
`void`
#### Implementation of
IMessageHandler.processMessage
___
### ready
**ready**(): `void`
#### Returns
`void`
___
### reportLayerRendered
**reportLayerRendered**(`layer`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`void`
___
### toReactComponent
**toReactComponent**(): `FC`\<{}\>
转成 react
#### Returns
`FC`\<{}\>
___
### updateLayer
**updateLayer**(`layer`, `forceUpdate?`): `void`
1. PostMessage: 会将消息在 nextTick 执行
2. ConflatableMessage: 当多个消息进来会在下一个 nextTick 做合并
3. 图层相互隔离,即时一层挂了也不受影响
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
| `forceUpdate?` | `boolean` |
#### Returns
`void`
---
url: /auto-docs/core/classes/Playground.md
---
# Class: Playground\
## Type parameters
| Name | Type |
| :------ | :------ |
| `CONTEXT` | [`PlaygroundContext`](../variables/PlaygroundContext-1.md) |
## Implements
- `Disposable`
## Table of contents
### Constructors
- [constructor](./Playground.md#constructor)
### Properties
- [commandService](./Playground.md#commandservice)
- [contextProvider](./Playground.md#contextprovider)
- [entityManager](./Playground.md#entitymanager)
- [node](./Playground.md#node)
- [onBlur](./Playground.md#onblur)
- [onFocus](./Playground.md#onfocus)
- [onScroll](./Playground.md#onscroll)
- [onZoom](./Playground.md#onzoom)
- [pipelineRegistry](./Playground.md#pipelineregistry)
- [pipelineRenderer](./Playground.md#pipelinerenderer)
- [registry](./Playground.md#registry)
- [selectionService](./Playground.md#selectionservice)
- [toDispose](./Playground.md#todispose)
### Accessors
- [config](./Playground.md#config)
- [context](./Playground.md#context)
- [disposed](./Playground.md#disposed)
- [editorState](./Playground.md#editorstate)
- [focused](./Playground.md#focused)
- [onAllLayersRendered](./Playground.md#onalllayersrendered)
- [onResize](./Playground.md#onresize)
- [pipelineNode](./Playground.md#pipelinenode)
- [zoomEnable](./Playground.md#zoomenable)
### Methods
- [dispose](./Playground.md#dispose)
- [flush](./Playground.md#flush)
- [getConfigEntity](./Playground.md#getconfigentity)
- [getLayer](./Playground.md#getlayer)
- [init](./Playground.md#init)
- [ready](./Playground.md#ready)
- [registerLayer](./Playground.md#registerlayer)
- [registerLayers](./Playground.md#registerlayers)
- [resize](./Playground.md#resize)
- [scrollToView](./Playground.md#scrolltoview)
- [setParent](./Playground.md#setparent)
- [toReactComponent](./Playground.md#toreactcomponent)
## Constructors
### constructor
**new Playground**\<`CONTEXT`\>(`entityManager`, `registry`, `contextProvider`, `pipelineRenderer`, `pipelineRegistry`, `playgroundConfig`, `contributionProvider`, `commandService`, `selectionService`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `CONTEXT` | `any` |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `entityManager` | [`EntityManager`](./EntityManager.md) | - |
| `registry` | [`PlaygroundRegistry`](./PlaygroundRegistry.md) | - |
| `contextProvider` | [`PlaygroundContextProvider`](../variables/PlaygroundContextProvider-1.md) | - |
| `pipelineRenderer` | [`PipelineRenderer`](./PipelineRenderer.md) | - |
| `pipelineRegistry` | [`PipelineRegistry`](./PipelineRegistry.md) | - |
| `playgroundConfig` | [`PlaygroundConfig`](../variables/PlaygroundConfig-1.md) | - |
| `contributionProvider` | [`ContributionProvider`](../variables/ContributionProvider-1.md)\<[`PlaygroundContribution`](../variables/PlaygroundContribution-1.md)\> | - |
| `commandService` | [`CommandService`](../variables/CommandService-1.md) | 用于管理画布命令 |
| `selectionService` | [`SelectionService`](./SelectionService.md) | 用于管理画布选择 |
## Properties
### commandService
`Readonly` **commandService**: [`CommandService`](../variables/CommandService-1.md)
用于管理画布命令
___
### contextProvider
`Readonly` **contextProvider**: [`PlaygroundContextProvider`](../variables/PlaygroundContextProvider-1.md)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
___
### node
`Readonly` **node**: `HTMLElement`
___
### onBlur
`Readonly` **onBlur**: `Event`\<`void`\>
___
### onFocus
`Readonly` **onFocus**: `Event`\<`void`\>
___
### onScroll
`Readonly` **onScroll**: `Event`\<\{ `scrollX`: `number` ; `scrollY`: `number` }\>
___
### onZoom
`Readonly` **onZoom**: `Event`\<`number`\>
___
### pipelineRegistry
`Readonly` **pipelineRegistry**: [`PipelineRegistry`](./PipelineRegistry.md)
___
### pipelineRenderer
`Readonly` **pipelineRenderer**: [`PipelineRenderer`](./PipelineRenderer.md)
___
### registry
`Readonly` **registry**: [`PlaygroundRegistry`](./PlaygroundRegistry.md)
___
### selectionService
`Readonly` **selectionService**: [`SelectionService`](./SelectionService.md)
用于管理画布选择
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
## Accessors
### config
`get` **config**(): [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
画布配置数据
#### Returns
[`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
___
### context
`get` **context**(): `CONTEXT`
#### Returns
`CONTEXT`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### editorState
`get` **editorState**(): [`EditorStateConfigEntity`](./EditorStateConfigEntity.md)
画布编辑状态管理
#### Returns
[`EditorStateConfigEntity`](./EditorStateConfigEntity.md)
___
### focused
`get` **focused**(): `boolean`
#### Returns
`boolean`
___
### onAllLayersRendered
`get` **onAllLayersRendered**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
___
### onResize
`get` **onResize**(): `Event`\<[`PipelineDimension`](../interfaces/PipelineDimension.md)\>
#### Returns
`Event`\<[`PipelineDimension`](../interfaces/PipelineDimension.md)\>
___
### pipelineNode
`get` **pipelineNode**(): `HTMLDivElement`
#### Returns
`HTMLDivElement`
___
### zoomEnable
`get` **zoomEnable**(): `boolean`
对应的右键菜单路径
#### Returns
`boolean`
`set` **zoomEnable**(`zoomEnable`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoomEnable` | `boolean` |
#### Returns
`void`
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### flush
**flush**(): `void`
刷新所有 layer
#### Returns
`void`
___
### getConfigEntity
**getConfigEntity**\<`T`\>(`r`): `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`ConfigEntity`](./ConfigEntity.md)\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md), [`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `r` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<`T`\> |
#### Returns
`T`
___
### getLayer
**getLayer**\<`T`\>(`layerRegistry`): `undefined` \| `T`
获取 layer
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
#### Returns
`undefined` \| `T`
___
### init
**init**(): `void`
#### Returns
`void`
___
### ready
**ready**(): `void`
#### Returns
`void`
___
### registerLayer
**registerLayer**\<`P`\>(`layerRegistry`, `layerOptions?`): `void`
注册 layer
#### Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`Layer`](./Layer.md)\<`any`, `any`, `P`\> = [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`P`\> |
| `layerOptions?` | `P`[``"options"``] |
#### Returns
`void`
___
### registerLayers
**registerLayers**(`...layerRegistries`): `void`
注册 多个 layer
#### Parameters
| Name | Type |
| :------ | :------ |
| `...layerRegistries` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<[`Layer`](./Layer.md)\<`any`, `any`\>\>[] |
#### Returns
`void`
___
### resize
**resize**(`msg?`, `scrollToCenter?`): `boolean`
这里会由 widget 透传进来
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `msg?` | [`PipelineDimension`](../interfaces/PipelineDimension.md) | `undefined` |
| `scrollToCenter` | `boolean` | `true` |
#### Returns
`boolean`
___
### scrollToView
**scrollToView**(`opts?`): `Promise`\<`void`\>
按下边顺序执行
1. 指定的 entity 位置或 pos 位置
2. selection 位置
3. 初始化位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts?` | [`PlaygroundConfigRevealOpts`](../interfaces/PlaygroundConfigRevealOpts.md) |
#### Returns
`Promise`\<`void`\>
___
### setParent
**setParent**(`parent`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | `HTMLElement` |
#### Returns
`void`
___
### toReactComponent
**toReactComponent**(): `FC`\<{}\>
转换成 react 组件
#### Returns
`FC`\<{}\>
---
url: /auto-docs/core/classes/PlaygroundConfigEntity.md
---
# Class: PlaygroundConfigEntity
全局画布的配置信息
## Hierarchy
- [`ConfigEntity`](./ConfigEntity.md)\<[`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)\>
↳ **`PlaygroundConfigEntity`**
## Table of contents
### Constructors
- [constructor](./PlaygroundConfigEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./PlaygroundConfigEntity.md#__opts_type__)
- [cursor](./PlaygroundConfigEntity.md#cursor)
- [entityManager](./PlaygroundConfigEntity.md#entitymanager)
- [getCursors](./PlaygroundConfigEntity.md#getcursors)
- [onDataChange](./PlaygroundConfigEntity.md#ondatachange)
- [onEntityChange](./PlaygroundConfigEntity.md#onentitychange)
- [onGrabDisableChange](./PlaygroundConfigEntity.md#ongrabdisablechange)
- [onReadonlyOrDisabledChange](./PlaygroundConfigEntity.md#onreadonlyordisabledchange)
- [playgroundDomNode](./PlaygroundConfigEntity.md#playgrounddomnode)
- [preDispose](./PlaygroundConfigEntity.md#predispose)
- [toDispose](./PlaygroundConfigEntity.md#todispose)
- [type](./PlaygroundConfigEntity.md#type)
### Accessors
- [config](./PlaygroundConfigEntity.md#config)
- [context](./PlaygroundConfigEntity.md#context)
- [disabled](./PlaygroundConfigEntity.md#disabled)
- [disposed](./PlaygroundConfigEntity.md#disposed)
- [finalScale](./PlaygroundConfigEntity.md#finalscale)
- [grabDisable](./PlaygroundConfigEntity.md#grabdisable)
- [id](./PlaygroundConfigEntity.md#id)
- [loading](./PlaygroundConfigEntity.md#loading)
- [onDispose](./PlaygroundConfigEntity.md#ondispose)
- [readonly](./PlaygroundConfigEntity.md#readonly)
- [readonlyOrDisabled](./PlaygroundConfigEntity.md#readonlyordisabled)
- [savedInManager](./PlaygroundConfigEntity.md#savedinmanager)
- [scrollData](./PlaygroundConfigEntity.md#scrolldata)
- [scrollDisable](./PlaygroundConfigEntity.md#scrolldisable)
- [type](./PlaygroundConfigEntity.md#type-1)
- [version](./PlaygroundConfigEntity.md#version)
- [zoom](./PlaygroundConfigEntity.md#zoom)
- [zoomDisable](./PlaygroundConfigEntity.md#zoomdisable)
- [zoomEnable](./PlaygroundConfigEntity.md#zoomenable)
### Methods
- [addData](./PlaygroundConfigEntity.md#adddata)
- [addInitializeData](./PlaygroundConfigEntity.md#addinitializedata)
- [addScrollLimit](./PlaygroundConfigEntity.md#addscrolllimit)
- [checkChanged](./PlaygroundConfigEntity.md#checkchanged)
- [dispose](./PlaygroundConfigEntity.md#dispose)
- [fitView](./PlaygroundConfigEntity.md#fitview)
- [fixLayerPosition](./PlaygroundConfigEntity.md#fixlayerposition)
- [fromJSON](./PlaygroundConfigEntity.md#fromjson)
- [getClientBounds](./PlaygroundConfigEntity.md#getclientbounds)
- [getData](./PlaygroundConfigEntity.md#getdata)
- [getDefaultConfig](./PlaygroundConfigEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./PlaygroundConfigEntity.md#getdefaultdataregistries)
- [getPageBounds](./PlaygroundConfigEntity.md#getpagebounds)
- [getPosFromMouseEvent](./PlaygroundConfigEntity.md#getposfrommouseevent)
- [getService](./PlaygroundConfigEntity.md#getservice)
- [getViewport](./PlaygroundConfigEntity.md#getviewport)
- [hasData](./PlaygroundConfigEntity.md#hasdata)
- [isViewportVisible](./PlaygroundConfigEntity.md#isviewportvisible)
- [onConfigChanged](./PlaygroundConfigEntity.md#onconfigchanged)
- [removeData](./PlaygroundConfigEntity.md#removedata)
- [reset](./PlaygroundConfigEntity.md#reset)
- [scroll](./PlaygroundConfigEntity.md#scroll)
- [scrollPageBoundsToCenter](./PlaygroundConfigEntity.md#scrollpageboundstocenter)
- [scrollToView](./PlaygroundConfigEntity.md#scrolltoview)
- [setPageBounds](./PlaygroundConfigEntity.md#setpagebounds)
- [toFixedPos](./PlaygroundConfigEntity.md#tofixedpos)
- [toJSON](./PlaygroundConfigEntity.md#tojson)
- [updateConfig](./PlaygroundConfigEntity.md#updateconfig)
- [updateCursor](./PlaygroundConfigEntity.md#updatecursor)
- [updateData](./PlaygroundConfigEntity.md#updatedata)
- [updateZoom](./PlaygroundConfigEntity.md#updatezoom)
- [zoomin](./PlaygroundConfigEntity.md#zoomin)
- [zoomout](./PlaygroundConfigEntity.md#zoomout)
## Constructors
### constructor
**new PlaygroundConfigEntity**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `any` |
#### Overrides
[ConfigEntity](./ConfigEntity.md).[constructor](./ConfigEntity.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`EntityOpts`](../interfaces/EntityOpts.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[__opts_type__](./ConfigEntity.md#__opts_type__)
___
### cursor
**cursor**: `string` = `'default'`
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[entityManager](./ConfigEntity.md#entitymanager)
___
### getCursors
**getCursors**: `undefined` \| () => `undefined` \| [`Cursors`](../types/Cursors.md)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onDataChange](./ConfigEntity.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onEntityChange](./ConfigEntity.md#onentitychange)
___
### onGrabDisableChange
`Readonly` **onGrabDisableChange**: `Event`\<`boolean`\>
___
### onReadonlyOrDisabledChange
`Readonly` **onReadonlyOrDisabledChange**: `Event`\<\{ `disabled`: `boolean` ; `readonly`: `boolean` }\>
___
### playgroundDomNode
**playgroundDomNode**: `HTMLElement`
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[preDispose](./ConfigEntity.md#predispose)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toDispose](./ConfigEntity.md#todispose)
___
### type
`Static` **type**: `string` = `'PlaygroundConfigEntity'`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[type](./ConfigEntity.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disabled
`get` **disabled**(): `boolean`
#### Returns
`boolean`
`set` **disabled**(`disabled`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `disabled` | `boolean` |
#### Returns
`void`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### finalScale
`get` **finalScale**(): `number`
缩放比例
使用 zoom 替代
#### Returns
`number`
**`Deprecated`**
___
### grabDisable
`get` **grabDisable**(): `boolean`
是否禁用抓取拖拽画布能力
#### Returns
`boolean`
`set` **grabDisable**(`grabDisable`): `void`
是否禁用抓取拖拽画布能力
#### Parameters
| Name | Type |
| :------ | :------ |
| `grabDisable` | `boolean` |
#### Returns
`void`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### loading
`get` **loading**(): `boolean`
#### Returns
`boolean`
`set` **loading**(`loading`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `loading` | `boolean` |
#### Returns
`void`
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### readonly
`get` **readonly**(): `boolean`
#### Returns
`boolean`
`set` **readonly**(`readonly`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `readonly` | `boolean` |
#### Returns
`void`
___
### readonlyOrDisabled
`get` **readonlyOrDisabled**(): `boolean`
#### Returns
`boolean`
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### scrollData
`get` **scrollData**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `scrollX` | `number` |
| `scrollY` | `number` |
___
### scrollDisable
`get` **scrollDisable**(): `boolean`
#### Returns
`boolean`
`set` **scrollDisable**(`scrollDisable`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scrollDisable` | `boolean` |
#### Returns
`void`
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
___
### zoom
`get` **zoom**(): `number`
缩放比例
#### Returns
`number`
___
### zoomDisable
`get` **zoomDisable**(): `boolean`
#### Returns
`boolean`
`set` **zoomDisable**(`zoomDisable`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoomDisable` | `boolean` |
#### Returns
`void`
___
### zoomEnable
`get` **zoomEnable**(): `boolean`
#### Returns
`boolean`
**`Deprecated`**
use 'zoomDisable' instead
`set` **zoomEnable**(`zoomEnable`): `void`
开启缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoomEnable` | `boolean` |
#### Returns
`void`
**`Deprecated`**
use 'zoomDisable' instead
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addData](./ConfigEntity.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addInitializeData](./ConfigEntity.md#addinitializedata)
___
### addScrollLimit
**addScrollLimit**(`fn`): `void`
添加滚动限制逻辑
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | [`PlaygroundScrollLimitFn`](../types/PlaygroundScrollLimitFn.md) |
#### Returns
`void`
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | [`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md) |
| `newData` | `Partial`\<[`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[checkChanged](./ConfigEntity.md#checkchanged)
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[dispose](./ConfigEntity.md#dispose)
___
### fitView
**fitView**(`bounds`, `easing?`, `padding?`, `easingDuration?`): `Promise`\<`void`\>
适应大小
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `bounds` | `Rectangle` | `undefined` | 目标大小 |
| `easing` | `boolean` | `true` | 是否开启动画,默认开启 |
| `padding` | `number` | `0` | 边界空白 |
| `easingDuration` | `number` | `300` | |
#### Returns
`Promise`\<`void`\>
___
### fixLayerPosition
**fixLayerPosition**(`layerNode`): `void`
让 layer 的 node 节点不随着画布滚动条滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerNode` | `HTMLElement` |
#### Returns
`void`
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[fromJSON](./ConfigEntity.md#fromjson)
___
### getClientBounds
**getClientBounds**(): `Rectangle`
#### Returns
`Rectangle`
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getData](./ConfigEntity.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): [`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)
#### Returns
[`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)
#### Overrides
[ConfigEntity](./ConfigEntity.md).[getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
___
### getPageBounds
**getPageBounds**(): `undefined` \| `Rectangle`
#### Returns
`undefined` \| `Rectangle`
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `withScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取相对画布的位置
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `event` | `MouseEvent` \| `TouchEvent` \| \{ `clientX`: `number` ; `clientY`: `number` } | `undefined` |
| `withScale` | `boolean` | `true` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getService](./ConfigEntity.md#getservice)
___
### getViewport
**getViewport**(`withScale?`): `Rectangle`
获取可视区域
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `withScale` | `boolean` | `true` |
#### Returns
`Rectangle`
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[hasData](./ConfigEntity.md#hasdata)
___
### isViewportVisible
**isViewportVisible**(`bounds`, `rotation?`, `includeAll?`): `boolean`
判断矩形是否在可视区域,如果有擦边页代表在可是区域
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `bounds` | `Rectangle` | `undefined` | |
| `rotation` | `number` | `0` | |
| `includeAll` | `boolean` | `false` | 是否包含在里边,默认 false |
#### Returns
`boolean`
___
### onConfigChanged
**onConfigChanged**(`fn`): `Disposable`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: [`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)) => `void` |
#### Returns
`Disposable`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onConfigChanged](./ConfigEntity.md#onconfigchanged)
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[removeData](./ConfigEntity.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[reset](./ConfigEntity.md#reset)
___
### scroll
**scroll**(`scroll`, `easing?`, `easingDuration?`): `Promise`\<`void`\>
滚动
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `scroll` | `Partial`\<\{ `scrollX`: `number` ; `scrollY`: `number` ; `zoom`: `number` }\> | `undefined` | |
| `easing` | `boolean` | `true` | 是否开启缓动,默认开启 |
| `easingDuration` | `number` | `300` | 滚动持续时间,默认 300ms |
#### Returns
`Promise`\<`void`\>
___
### scrollPageBoundsToCenter
**scrollPageBoundsToCenter**(`zoomToFit?`, `fitPadding?`, `easing?`): `Promise`\<`void`\>
滚动到画布中央
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `zoomToFit` | `boolean` | `true` | 是否缩放并适配外围大小 |
| `fitPadding` | `number` | `16` | 适配外围的留白 |
| `easing` | `boolean` | `true` | 是否缓动 |
#### Returns
`Promise`\<`void`\>
___
### scrollToView
**scrollToView**(`opts?`): `Promise`\<`void`\>
按下边顺序执行
1. 指定的 entity 位置或 pos 位置
3. 初始化位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | [`PlaygroundConfigRevealOpts`](../interfaces/PlaygroundConfigRevealOpts.md) |
#### Returns
`Promise`\<`void`\>
___
### setPageBounds
**setPageBounds**(`bounds`): `void`
这只画布边框,元素编辑的时候回吸附画布边框
#### Parameters
| Name | Type |
| :------ | :------ |
| `bounds` | `Rectangle` |
#### Returns
`void`
___
### toFixedPos
**toFixedPos**(`pos`): [`PositionSchema`](../interfaces/PositionSchema.md)
将画布中的位置转成相对 window 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `pos` | [`PositionSchema`](../interfaces/PositionSchema.md) |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toJSON](./ConfigEntity.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
更新实体配置
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<[`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)\> |
#### Returns
`void`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[updateConfig](./ConfigEntity.md#updateconfig)
___
### updateCursor
**updateCursor**(`cursor`): `void`
修改画布光标
#### Parameters
| Name | Type |
| :------ | :------ |
| `cursor` | `string` |
#### Returns
`void`
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateData](./ConfigEntity.md#updatedata)
___
### updateZoom
**updateZoom**(`newZoom`, `easing?`, `easingDuration?`): `void`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `newZoom` | `number` | `undefined` |
| `easing` | `boolean` | `true` |
| `easingDuration` | `number` | `200` |
#### Returns
`void`
___
### zoomin
**zoomin**(`easing?`, `easingDuration?`): `void`
放大
#### Parameters
| Name | Type |
| :------ | :------ |
| `easing?` | `boolean` |
| `easingDuration?` | `number` |
#### Returns
`void`
___
### zoomout
**zoomout**(`easing?`, `easingDuration?`): `void`
缩小
#### Parameters
| Name | Type |
| :------ | :------ |
| `easing?` | `boolean` |
| `easingDuration?` | `number` |
#### Returns
`void`
---
url: /auto-docs/core/classes/PlaygroundDrag-1.md
---
# Class: PlaygroundDrag\
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | `undefined` |
## Implements
- `Disposable`
## Table of contents
### Constructors
- [constructor](./PlaygroundDrag-1.md#constructor)
### Properties
- [onDrag](./PlaygroundDrag-1.md#ondrag)
- [onDragEnd](./PlaygroundDrag-1.md#ondragend)
- [onDragStart](./PlaygroundDrag-1.md#ondragstart)
### Accessors
- [isStarted](./PlaygroundDrag-1.md#isstarted)
- [scale](./PlaygroundDrag-1.md#scale)
### Methods
- [dispose](./PlaygroundDrag-1.md#dispose)
- [fireScroll](./PlaygroundDrag-1.md#firescroll)
- [handleEvent](./PlaygroundDrag-1.md#handleevent)
- [start](./PlaygroundDrag-1.md#start)
- [stop](./PlaygroundDrag-1.md#stop)
## Constructors
### constructor
**new PlaygroundDrag**\<`T`\>(`options?`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | `undefined` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `options` | [`PlaygroundDragOptions`](../interfaces/PlaygroundDragOptions.md)\<`T`\> |
## Properties
### onDrag
`Readonly` **onDrag**: `Event`\<[`PlaygroundDragEvent`](../interfaces/PlaygroundDragEvent.md)\>
___
### onDragEnd
`Readonly` **onDragEnd**: `Event`\<[`PlaygroundDragEvent`](../interfaces/PlaygroundDragEvent.md)\>
___
### onDragStart
`Readonly` **onDragStart**: `Event`\<[`PlaygroundDragEvent`](../interfaces/PlaygroundDragEvent.md)\>
## Accessors
### isStarted
`get` **isStarted**(): `boolean`
#### Returns
`boolean`
___
### scale
`get` **scale**(): `number`
#### Returns
`number`
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### fireScroll
**fireScroll**(`scrollKey`, `added`): `void`
触发滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scrollKey` | ``"scrollY"`` \| ``"scrollX"`` |
| `added` | `boolean` |
#### Returns
`void`
___
### handleEvent
**handleEvent**(`_event`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `_event` | `Event` |
#### Returns
`void`
___
### start
**start**(`clientX`, `clientY`, `entity?`, `context?`): `Promise`\<`void`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `clientX` | `number` |
| `clientY` | `number` |
| `entity?` | [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md) |
| `context?` | `T` |
#### Returns
`Promise`\<`void`\>
___
### stop
**stop**(`clientX`, `clientY`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `clientX` | `number` |
| `clientY` | `number` |
#### Returns
`void`
---
url: /auto-docs/core/classes/PlaygroundGesture.md
---
# Class: PlaygroundGesture
## Hierarchy
- `DisposableImpl`
↳ **`PlaygroundGesture`**
## Table of contents
### Constructors
- [constructor](./PlaygroundGesture.md#constructor)
### Properties
- [target](./PlaygroundGesture.md#target)
- [toDispose](./PlaygroundGesture.md#todispose)
### Accessors
- [disposed](./PlaygroundGesture.md#disposed)
- [onDispose](./PlaygroundGesture.md#ondispose)
- [pinching](./PlaygroundGesture.md#pinching)
### Methods
- [dispose](./PlaygroundGesture.md#dispose)
- [getScaleBounds](./PlaygroundGesture.md#getscalebounds)
- [handlePinch](./PlaygroundGesture.md#handlepinch)
## Constructors
### constructor
**new PlaygroundGesture**(`target`, `config`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `HTMLElement` |
| `config` | [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md) |
#### Overrides
DisposableImpl.constructor
## Properties
### target
`Readonly` **target**: `HTMLElement`
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
DisposableImpl.toDispose
## Accessors
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
DisposableImpl.disposed
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
DisposableImpl.onDispose
___
### pinching
`get` **pinching**(): `boolean`
#### Returns
`boolean`
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
DisposableImpl.dispose
___
### getScaleBounds
**getScaleBounds**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `max` | `number` |
| `min` | `number` |
___
### handlePinch
**handlePinch**(`params`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | `Object` |
| `params.first` | `boolean` |
| `params.last` | `boolean` |
| `params.newScale` | `number` |
| `params.originX` | `number` |
| `params.originY` | `number` |
#### Returns
`void`
---
url: /auto-docs/core/classes/PlaygroundLayer.md
---
# Class: PlaygroundLayer
基础层,控制画布缩放/滚动等操作
## Hierarchy
- [`Layer`](./Layer.md)\<[`PlaygroundLayerOptions`](../interfaces/PlaygroundLayerOptions.md)\>
↳ **`PlaygroundLayer`**
## Table of contents
### Constructors
- [constructor](./PlaygroundLayer.md#constructor)
### Properties
- [config](./PlaygroundLayer.md#config)
- [context](./PlaygroundLayer.md#context)
- [entityManager](./PlaygroundLayer.md#entitymanager)
- [getOtherLayer](./PlaygroundLayer.md#getotherlayer)
- [isFocused](./PlaygroundLayer.md#isfocused)
- [listenGlobalEvent](./PlaygroundLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./PlaygroundLayer.md#listenplaygroundevent)
- [node](./PlaygroundLayer.md#node)
- [observeManager](./PlaygroundLayer.md#observemanager)
- [options](./PlaygroundLayer.md#options)
- [pipelineNode](./PlaygroundLayer.md#pipelinenode)
- [playgroundNode](./PlaygroundLayer.md#playgroundnode)
- [protectWheelArea](./PlaygroundLayer.md#protectwheelarea)
- [reloadEntities](./PlaygroundLayer.md#reloadentities)
- [renderWithReactMemo](./PlaygroundLayer.md#renderwithreactmemo)
### Methods
- [autorun](./PlaygroundLayer.md#autorun)
- [createDOMCache](./PlaygroundLayer.md#createdomcache)
- [createGesture](./PlaygroundLayer.md#creategesture)
- [dispose](./PlaygroundLayer.md#dispose)
- [getPosFromMouseEvent](./PlaygroundLayer.md#getposfrommouseevent)
- [onBlur](./PlaygroundLayer.md#onblur)
- [onFocus](./PlaygroundLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./PlaygroundLayer.md#onreadonlyordisabledchange)
- [onReady](./PlaygroundLayer.md#onready)
- [onResize](./PlaygroundLayer.md#onresize)
- [onScroll](./PlaygroundLayer.md#onscroll)
- [onStateChanged](./PlaygroundLayer.md#onstatechanged)
- [onViewportChange](./PlaygroundLayer.md#onviewportchange)
- [onZoom](./PlaygroundLayer.md#onzoom)
- [render](./PlaygroundLayer.md#render)
## Constructors
### constructor
**new PlaygroundLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Inherited from
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: [`PlaygroundLayerOptions`](../interfaces/PlaygroundLayerOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### protectWheelArea
`Optional` **protectWheelArea**: [`ProtectWheelArea`](../variables/ProtectWheelArea-1.md)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean` = `true`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
## Methods
### autorun
**autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### createGesture
**createGesture**(): `void`
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `event` | `Object` | `undefined` |
| `event.clientX` | `number` | `undefined` |
| `event.clientY` | `number` | `undefined` |
| `addScale` | `boolean` | `true` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onStateChanged
**onStateChanged**(`e`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | [`EditorStateChangeEvent`](../interfaces/EditorStateChangeEvent.md) |
#### Returns
`void`
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
[Layer](./Layer.md).[render](./Layer.md#render)
---
url: /auto-docs/core/classes/PlaygroundMockTools.LayerTestState.md
---
# Class: LayerTestState\
[PlaygroundMockTools](../modules/PlaygroundMockTools.md).LayerTestState
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md) = [`Layer`](./Layer.md) |
## Table of contents
### Constructors
- [constructor](./PlaygroundMockTools.LayerTestState.md#constructor)
### Properties
- [autorun](./PlaygroundMockTools.LayerTestState.md#autorun)
- [container](./PlaygroundMockTools.LayerTestState.md#container)
- [instance](./PlaygroundMockTools.LayerTestState.md#instance)
- [onBlur](./PlaygroundMockTools.LayerTestState.md#onblur)
- [onFocus](./PlaygroundMockTools.LayerTestState.md#onfocus)
- [onReadonlyOrDisabledChange](./PlaygroundMockTools.LayerTestState.md#onreadonlyordisabledchange)
- [onReady](./PlaygroundMockTools.LayerTestState.md#onready)
- [onResize](./PlaygroundMockTools.LayerTestState.md#onresize)
- [onScroll](./PlaygroundMockTools.LayerTestState.md#onscroll)
- [onViewportChange](./PlaygroundMockTools.LayerTestState.md#onviewportchange)
- [onZoom](./PlaygroundMockTools.LayerTestState.md#onzoom)
- [playground](./PlaygroundMockTools.LayerTestState.md#playground)
- [render](./PlaygroundMockTools.LayerTestState.md#render)
## Constructors
### constructor
**new LayerTestState**\<`T`\>(`instance`, `playground`, `container`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> = [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `instance` | `T` |
| `playground` | [`Playground`](./Playground.md)\<`any`\> |
| `container` | `Container` |
## Properties
### autorun
**autorun**: `SpyInstance`
___
### container
`Readonly` **container**: `Container`
___
### instance
`Readonly` **instance**: `T`
___
### onBlur
**onBlur**: `SpyInstance`
___
### onFocus
**onFocus**: `SpyInstance`
___
### onReadonlyOrDisabledChange
**onReadonlyOrDisabledChange**: `SpyInstance`
___
### onReady
**onReady**: `SpyInstance`
___
### onResize
**onResize**: `SpyInstance`
___
### onScroll
**onScroll**: `SpyInstance`
___
### onViewportChange
**onViewportChange**: `SpyInstance`
___
### onZoom
**onZoom**: `SpyInstance`
___
### playground
`Readonly` **playground**: [`Playground`](./Playground.md)\<`any`\>
___
### render
**render**: `SpyInstance`
---
url: /auto-docs/core/classes/PlaygroundRegistry.md
---
# Class: PlaygroundRegistry
## Table of contents
### Constructors
- [constructor](./PlaygroundRegistry.md#constructor)
### Properties
- [entityManager](./PlaygroundRegistry.md#entitymanager)
- [playgroundConfig](./PlaygroundRegistry.md#playgroundconfig)
### Methods
- [config](./PlaygroundRegistry.md#config)
- [registerEditorState](./PlaygroundRegistry.md#registereditorstate)
- [registerEntity](./PlaygroundRegistry.md#registerentity)
- [registerLayer](./PlaygroundRegistry.md#registerlayer)
## Constructors
### constructor
**new PlaygroundRegistry**()
## Properties
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
___
### playgroundConfig
`Readonly` **playgroundConfig**: [`PlaygroundConfig`](../variables/PlaygroundConfig-1.md)
## Methods
### config
**config**(`config`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `config` | `Partial`\<[`PlaygroundConfig`](../variables/PlaygroundConfig-1.md)\> |
#### Returns
`void`
___
### registerEditorState
**registerEditorState**(`state`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | [`EditorState`](../interfaces/EditorState-1.md) |
#### Returns
`void`
___
### registerEntity
**registerEntity**(`entityRegistry`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
___
### registerLayer
**registerLayer**(`layerRegistry`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<[`Layer`](./Layer.md)\<`any`, `any`\>\> |
#### Returns
`void`
---
url: /auto-docs/core/classes/PlaygroundSchedule.md
---
# Class: PlaygroundSchedule
## Implements
- `Disposable`
## Table of contents
### Constructors
- [constructor](./PlaygroundSchedule.md#constructor)
### Methods
- [dispose](./PlaygroundSchedule.md#dispose)
- [push](./PlaygroundSchedule.md#push)
## Constructors
### constructor
**new PlaygroundSchedule**()
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### push
**push**(`key`, `fn`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `any` |
| `fn` | () => `void` |
#### Returns
`void`
---
url: /auto-docs/core/classes/PositionData.md
---
# Class: PositionData
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`PositionSchema`](../interfaces/PositionSchema.md)\>
↳ **`PositionData`**
## Implements
- [`PositionSchema`](../interfaces/PositionSchema.md)
## Table of contents
### Constructors
- [constructor](./PositionData.md#constructor)
### Properties
- [entity](./PositionData.md#entity)
- [onDataChange](./PositionData.md#ondatachange)
- [onWillChange](./PositionData.md#onwillchange)
- [opts](./PositionData.md#opts)
- [toDispose](./PositionData.md#todispose)
- [type](./PositionData.md#type)
### Accessors
- [changeLocked](./PositionData.md#changelocked)
- [data](./PositionData.md#data)
- [disposed](./PositionData.md#disposed)
- [onDispose](./PositionData.md#ondispose)
- [type](./PositionData.md#type-1)
- [version](./PositionData.md#version)
- [x](./PositionData.md#x)
- [y](./PositionData.md#y)
### Methods
- [checkChanged](./PositionData.md#checkchanged)
- [dispose](./PositionData.md#dispose)
- [fireChange](./PositionData.md#firechange)
- [fireWillChange](./PositionData.md#firewillchange)
- [fromJSON](./PositionData.md#fromjson)
- [fullyUpdate](./PositionData.md#fullyupdate)
- [getDefaultData](./PositionData.md#getdefaultdata)
- [toJSON](./PositionData.md#tojson)
- [update](./PositionData.md#update)
## Constructors
### constructor
**new PositionData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`PositionSchema`](../interfaces/PositionSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`PositionSchema`](../interfaces/PositionSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string` = `'PositionData'`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
___
### x
`get` **x**(): `number`
#### Returns
`number`
#### Implementation of
[PositionSchema](../interfaces/PositionSchema.md).[x](../interfaces/PositionSchema.md#x)
`set` **x**(`x`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `x` | `number` |
#### Returns
`void`
#### Implementation of
[PositionSchema](../interfaces/PositionSchema.md).[x](../interfaces/PositionSchema.md#x)
___
### y
`get` **y**(): `number`
#### Returns
`number`
#### Implementation of
[PositionSchema](../interfaces/PositionSchema.md).[y](../interfaces/PositionSchema.md#y)
`set` **y**(`y`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `y` | `number` |
#### Returns
`void`
#### Implementation of
[PositionSchema](../interfaces/PositionSchema.md).[y](../interfaces/PositionSchema.md#y)
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`PositionSchema`](../interfaces/PositionSchema.md) \| `Partial`\<[`PositionSchema`](../interfaces/PositionSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`PositionSchema`](../interfaces/PositionSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`PositionSchema`](../interfaces/PositionSchema.md)
初始化数据
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`PositionSchema`](../interfaces/PositionSchema.md) \| `Partial`\<[`PositionSchema`](../interfaces/PositionSchema.md)\> \| keyof [`PositionSchema`](../interfaces/PositionSchema.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/core/classes/RotationData.md
---
# Class: RotationData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`RotationSchema`](../types/RotationSchema.md)\>
↳ **`RotationData`**
## Table of contents
### Constructors
- [constructor](./RotationData.md#constructor)
### Properties
- [entity](./RotationData.md#entity)
- [onDataChange](./RotationData.md#ondatachange)
- [onWillChange](./RotationData.md#onwillchange)
- [opts](./RotationData.md#opts)
- [toDispose](./RotationData.md#todispose)
- [type](./RotationData.md#type)
### Accessors
- [changeLocked](./RotationData.md#changelocked)
- [data](./RotationData.md#data)
- [disposed](./RotationData.md#disposed)
- [onDispose](./RotationData.md#ondispose)
- [type](./RotationData.md#type-1)
- [version](./RotationData.md#version)
### Methods
- [checkChanged](./RotationData.md#checkchanged)
- [dispose](./RotationData.md#dispose)
- [fireChange](./RotationData.md#firechange)
- [fireWillChange](./RotationData.md#firewillchange)
- [fromJSON](./RotationData.md#fromjson)
- [fullyUpdate](./RotationData.md#fullyupdate)
- [getDefaultData](./RotationData.md#getdefaultdata)
- [toJSON](./RotationData.md#tojson)
- [update](./RotationData.md#update)
## Constructors
### constructor
**new RotationData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityData`](./EntityData.md)\<`number`, {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<[`EntityData`](./EntityData.md)\<`number`, {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string` = `'RotationData'`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | `number` |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `number` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): `number`
初始化数据
#### Returns
`number`
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `number` \| ``"toString"`` \| ``"toFixed"`` \| ``"toExponential"`` \| ``"toPrecision"`` \| ``"valueOf"`` \| ``"toLocaleString"`` |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/core/classes/ScaleData.md
---
# Class: ScaleData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`ScaleSchema`](../interfaces/ScaleSchema.md)\>
↳ **`ScaleData`**
## Implements
- [`ScaleSchema`](../interfaces/ScaleSchema.md)
## Table of contents
### Constructors
- [constructor](./ScaleData.md#constructor)
### Properties
- [entity](./ScaleData.md#entity)
- [onDataChange](./ScaleData.md#ondatachange)
- [onWillChange](./ScaleData.md#onwillchange)
- [opts](./ScaleData.md#opts)
- [toDispose](./ScaleData.md#todispose)
- [type](./ScaleData.md#type)
### Accessors
- [changeLocked](./ScaleData.md#changelocked)
- [data](./ScaleData.md#data)
- [disposed](./ScaleData.md#disposed)
- [onDispose](./ScaleData.md#ondispose)
- [type](./ScaleData.md#type-1)
- [version](./ScaleData.md#version)
- [x](./ScaleData.md#x)
- [y](./ScaleData.md#y)
### Methods
- [checkChanged](./ScaleData.md#checkchanged)
- [dispose](./ScaleData.md#dispose)
- [fireChange](./ScaleData.md#firechange)
- [fireWillChange](./ScaleData.md#firewillchange)
- [fromJSON](./ScaleData.md#fromjson)
- [fullyUpdate](./ScaleData.md#fullyupdate)
- [getDefaultData](./ScaleData.md#getdefaultdata)
- [toJSON](./ScaleData.md#tojson)
- [update](./ScaleData.md#update)
## Constructors
### constructor
**new ScaleData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`ScaleSchema`](../interfaces/ScaleSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`ScaleSchema`](../interfaces/ScaleSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string` = `'ScaleData'`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
___
### x
`get` **x**(): `number`
#### Returns
`number`
#### Implementation of
[ScaleSchema](../interfaces/ScaleSchema.md).[x](../interfaces/ScaleSchema.md#x)
`set` **x**(`x`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `x` | `number` |
#### Returns
`void`
#### Implementation of
[ScaleSchema](../interfaces/ScaleSchema.md).[x](../interfaces/ScaleSchema.md#x)
___
### y
`get` **y**(): `number`
#### Returns
`number`
#### Implementation of
[ScaleSchema](../interfaces/ScaleSchema.md).[y](../interfaces/ScaleSchema.md#y)
`set` **y**(`y`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `y` | `number` |
#### Returns
`void`
#### Implementation of
[ScaleSchema](../interfaces/ScaleSchema.md).[y](../interfaces/ScaleSchema.md#y)
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`ScaleSchema`](../interfaces/ScaleSchema.md) \| `Partial`\<[`ScaleSchema`](../interfaces/ScaleSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`ScaleSchema`](../interfaces/ScaleSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`ScaleSchema`](../interfaces/ScaleSchema.md)
初始化数据
#### Returns
[`ScaleSchema`](../interfaces/ScaleSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`ScaleSchema`](../interfaces/ScaleSchema.md) \| `Partial`\<[`ScaleSchema`](../interfaces/ScaleSchema.md)\> \| keyof [`ScaleSchema`](../interfaces/ScaleSchema.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/core/classes/SelectionService.md
---
# Class: SelectionService
画布全局的选择器,可以放任何东西
## Implements
- `Disposable`
## Table of contents
### Constructors
- [constructor](./SelectionService.md#constructor)
### Properties
- [onSelectionChanged](./SelectionService.md#onselectionchanged)
### Accessors
- [selection](./SelectionService.md#selection)
### Methods
- [dispose](./SelectionService.md#dispose)
- [isEmpty](./SelectionService.md#isempty)
## Constructors
### constructor
**new SelectionService**()
## Properties
### onSelectionChanged
`Readonly` **onSelectionChanged**: `Event`\<`any`\>
## Accessors
### selection
`get` **selection**(): [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>[]
#### Returns
[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>[]
`set` **selection**(`selection`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `selection` | [`Entity`](./Entity-1.md)\<`any`\>[] |
#### Returns
`void`
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### isEmpty
**isEmpty**(): `boolean`
#### Returns
`boolean`
---
url: /auto-docs/core/classes/SizeData.md
---
# Class: SizeData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`SizeSchema`](../interfaces/SizeSchema-1.md)\>
↳ **`SizeData`**
## Implements
- [`SizeSchema`](../interfaces/SizeSchema-1.md)
## Table of contents
### Constructors
- [constructor](./SizeData.md#constructor)
### Properties
- [entity](./SizeData.md#entity)
- [onDataChange](./SizeData.md#ondatachange)
- [onWillChange](./SizeData.md#onwillchange)
- [opts](./SizeData.md#opts)
- [toDispose](./SizeData.md#todispose)
- [type](./SizeData.md#type)
### Accessors
- [changeLocked](./SizeData.md#changelocked)
- [data](./SizeData.md#data)
- [disposed](./SizeData.md#disposed)
- [height](./SizeData.md#height)
- [locked](./SizeData.md#locked)
- [onDispose](./SizeData.md#ondispose)
- [type](./SizeData.md#type-1)
- [version](./SizeData.md#version)
- [width](./SizeData.md#width)
### Methods
- [checkChanged](./SizeData.md#checkchanged)
- [dispose](./SizeData.md#dispose)
- [fireChange](./SizeData.md#firechange)
- [fireWillChange](./SizeData.md#firewillchange)
- [fromJSON](./SizeData.md#fromjson)
- [fullyUpdate](./SizeData.md#fullyupdate)
- [getDefaultData](./SizeData.md#getdefaultdata)
- [toJSON](./SizeData.md#tojson)
- [update](./SizeData.md#update)
## Constructors
### constructor
**new SizeData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`SizeSchema`](../interfaces/SizeSchema-1.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`SizeSchema`](../interfaces/SizeSchema-1.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string` = `'SizeData'`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### height
`get` **height**(): `number`
#### Returns
`number`
#### Implementation of
[SizeSchema](../interfaces/SizeSchema-1.md).[height](../interfaces/SizeSchema-1.md#height)
`set` **height**(`height`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `height` | `number` |
#### Returns
`void`
#### Implementation of
[SizeSchema](../interfaces/SizeSchema-1.md).[height](../interfaces/SizeSchema-1.md#height)
___
### locked
`get` **locked**(): `boolean`
#### Returns
`boolean`
#### Implementation of
[SizeSchema](../interfaces/SizeSchema-1.md).[locked](../interfaces/SizeSchema-1.md#locked)
`set` **locked**(`locked`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `locked` | `boolean` |
#### Returns
`void`
#### Implementation of
[SizeSchema](../interfaces/SizeSchema-1.md).[locked](../interfaces/SizeSchema-1.md#locked)
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
___
### width
`get` **width**(): `number`
#### Returns
`number`
#### Implementation of
[SizeSchema](../interfaces/SizeSchema-1.md).[width](../interfaces/SizeSchema-1.md#width)
`set` **width**(`width`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `width` | `number` |
#### Returns
`void`
#### Implementation of
[SizeSchema](../interfaces/SizeSchema-1.md).[width](../interfaces/SizeSchema-1.md#width)
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`SizeSchema`](../interfaces/SizeSchema-1.md) \| `Partial`\<[`SizeSchema`](../interfaces/SizeSchema-1.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`SizeSchema`](../interfaces/SizeSchema-1.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`SizeSchema`](../interfaces/SizeSchema-1.md)
初始化数据
#### Returns
[`SizeSchema`](../interfaces/SizeSchema-1.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`SizeSchema`](../interfaces/SizeSchema-1.md) \| `Partial`\<[`SizeSchema`](../interfaces/SizeSchema-1.md)\> \| keyof [`SizeSchema`](../interfaces/SizeSchema-1.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/core/classes/SkewData.md
---
# Class: SkewData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`SkewSchema`](../interfaces/SkewSchema.md)\>
↳ **`SkewData`**
## Implements
- [`SkewSchema`](../interfaces/SkewSchema.md)
## Table of contents
### Constructors
- [constructor](./SkewData.md#constructor)
### Properties
- [entity](./SkewData.md#entity)
- [onDataChange](./SkewData.md#ondatachange)
- [onWillChange](./SkewData.md#onwillchange)
- [opts](./SkewData.md#opts)
- [toDispose](./SkewData.md#todispose)
- [type](./SkewData.md#type)
### Accessors
- [changeLocked](./SkewData.md#changelocked)
- [data](./SkewData.md#data)
- [disposed](./SkewData.md#disposed)
- [onDispose](./SkewData.md#ondispose)
- [type](./SkewData.md#type-1)
- [version](./SkewData.md#version)
- [x](./SkewData.md#x)
- [y](./SkewData.md#y)
### Methods
- [checkChanged](./SkewData.md#checkchanged)
- [dispose](./SkewData.md#dispose)
- [fireChange](./SkewData.md#firechange)
- [fireWillChange](./SkewData.md#firewillchange)
- [fromJSON](./SkewData.md#fromjson)
- [fullyUpdate](./SkewData.md#fullyupdate)
- [getDefaultData](./SkewData.md#getdefaultdata)
- [toJSON](./SkewData.md#tojson)
- [update](./SkewData.md#update)
## Constructors
### constructor
**new SkewData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`SkewSchema`](../interfaces/SkewSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`SkewSchema`](../interfaces/SkewSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string` = `'SkewData'`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
___
### x
`get` **x**(): `number`
#### Returns
`number`
#### Implementation of
[SkewSchema](../interfaces/SkewSchema.md).[x](../interfaces/SkewSchema.md#x)
`set` **x**(`x`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `x` | `number` |
#### Returns
`void`
#### Implementation of
[SkewSchema](../interfaces/SkewSchema.md).[x](../interfaces/SkewSchema.md#x)
___
### y
`get` **y**(): `number`
#### Returns
`number`
#### Implementation of
[SkewSchema](../interfaces/SkewSchema.md).[y](../interfaces/SkewSchema.md#y)
`set` **y**(`y`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `y` | `number` |
#### Returns
`void`
#### Implementation of
[SkewSchema](../interfaces/SkewSchema.md).[y](../interfaces/SkewSchema.md#y)
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`SkewSchema`](../interfaces/SkewSchema.md) \| `Partial`\<[`SkewSchema`](../interfaces/SkewSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`SkewSchema`](../interfaces/SkewSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`SkewSchema`](../interfaces/SkewSchema.md)
初始化数据
#### Returns
[`SkewSchema`](../interfaces/SkewSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`SkewSchema`](../interfaces/SkewSchema.md) \| `Partial`\<[`SkewSchema`](../interfaces/SkewSchema.md)\> \| keyof [`SkewSchema`](../interfaces/SkewSchema.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/core/classes/TransformData-1.md
---
# Class: TransformData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`TransformSchema`](../interfaces/TransformSchema-1.md)\>
↳ **`TransformData`**
## Implements
- [`TransformSchema`](../interfaces/TransformSchema-1.md)
## Table of contents
### Constructors
- [constructor](./TransformData-1.md#constructor)
### Properties
- [entity](./TransformData-1.md#entity)
- [onDataChange](./TransformData-1.md#ondatachange)
- [onWillChange](./TransformData-1.md#onwillchange)
- [opts](./TransformData-1.md#opts)
- [sizeToScale](./TransformData-1.md#sizetoscale)
- [toDispose](./TransformData-1.md#todispose)
- [type](./TransformData-1.md#type)
### Accessors
- [bounds](./TransformData-1.md#bounds)
- [boundsWithoutRotation](./TransformData-1.md#boundswithoutrotation)
- [changeLocked](./TransformData-1.md#changelocked)
- [children](./TransformData-1.md#children)
- [data](./TransformData-1.md#data)
- [disposed](./TransformData-1.md#disposed)
- [isContainer](./TransformData-1.md#iscontainer)
- [localBounds](./TransformData-1.md#localbounds)
- [localID](./TransformData-1.md#localid)
- [localOrigin](./TransformData-1.md#localorigin)
- [localSize](./TransformData-1.md#localsize)
- [localTransform](./TransformData-1.md#localtransform)
- [onDispose](./TransformData-1.md#ondispose)
- [origin](./TransformData-1.md#origin)
- [parent](./TransformData-1.md#parent)
- [position](./TransformData-1.md#position)
- [rotation](./TransformData-1.md#rotation)
- [scale](./TransformData-1.md#scale)
- [size](./TransformData-1.md#size)
- [skew](./TransformData-1.md#skew)
- [type](./TransformData-1.md#type-1)
- [version](./TransformData-1.md#version)
- [worldDegree](./TransformData-1.md#worlddegree)
- [worldID](./TransformData-1.md#worldid)
- [worldOrigin](./TransformData-1.md#worldorigin)
- [worldRotation](./TransformData-1.md#worldrotation)
- [worldScale](./TransformData-1.md#worldscale)
- [worldSize](./TransformData-1.md#worldsize)
- [worldTransform](./TransformData-1.md#worldtransform)
### Methods
- [checkChanged](./TransformData-1.md#checkchanged)
- [clearChildren](./TransformData-1.md#clearchildren)
- [contains](./TransformData-1.md#contains)
- [dispose](./TransformData-1.md#dispose)
- [fireChange](./TransformData-1.md#firechange)
- [fireWillChange](./TransformData-1.md#firewillchange)
- [fromJSON](./TransformData-1.md#fromjson)
- [fullyUpdate](./TransformData-1.md#fullyupdate)
- [getDefaultData](./TransformData-1.md#getdefaultdata)
- [getMutationCache](./TransformData-1.md#getmutationcache)
- [heightToScaleY](./TransformData-1.md#heighttoscaley)
- [intersects](./TransformData-1.md#intersects)
- [isParent](./TransformData-1.md#isparent)
- [isParentTransform](./TransformData-1.md#isparenttransform)
- [setFromMatrix](./TransformData-1.md#setfrommatrix)
- [setParent](./TransformData-1.md#setparent)
- [sizeToScaleValue](./TransformData-1.md#sizetoscalevalue)
- [toJSON](./TransformData-1.md#tojson)
- [update](./TransformData-1.md#update)
- [widthToScaleX](./TransformData-1.md#widthtoscalex)
## Constructors
### constructor
**new TransformData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
#### Overrides
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`TransformSchema`](../interfaces/TransformSchema-1.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<[`EntityData`](./EntityData.md)\<[`TransformSchema`](../interfaces/TransformSchema-1.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### sizeToScale
**sizeToScale**: `boolean` = `false`
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string` = `'TransformData'`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### bounds
`get` **bounds**(): `Rectangle`
#### Returns
`Rectangle`
___
### boundsWithoutRotation
`get` **boundsWithoutRotation**(): `Rectangle`
不旋转的 bounds
#### Returns
`Rectangle`
___
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### children
`get` **children**(): [`TransformData`](./TransformData-1.md)[]
#### Returns
[`TransformData`](./TransformData-1.md)[]
___
### data
`get` **data**(): [`TransformSchema`](../interfaces/TransformSchema-1.md)
当前数据
#### Returns
[`TransformSchema`](../interfaces/TransformSchema-1.md)
#### Overrides
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### isContainer
`get` **isContainer**(): `boolean`
容器选择框会动态计算子节点大小
#### Returns
`boolean`
___
### localBounds
`get` **localBounds**(): `Rectangle`
本地 bounds
#### Returns
`Rectangle`
___
### localID
`get` **localID**(): `number`
#### Returns
`number`
___
### localOrigin
`get` **localOrigin**(): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
___
### localSize
`get` **localSize**(): [`SizeSchema`](../interfaces/SizeSchema-1.md)
本身的大小
#### Returns
[`SizeSchema`](../interfaces/SizeSchema-1.md)
___
### localTransform
`get` **localTransform**(): `Matrix`
#### Returns
`Matrix`
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### origin
`get` **origin**(): [`OriginSchema`](../interfaces/OriginSchema.md)
#### Returns
[`OriginSchema`](../interfaces/OriginSchema.md)
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[origin](../interfaces/TransformSchema-1.md#origin)
`set` **origin**(`origin`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `origin` | [`OriginSchema`](../interfaces/OriginSchema.md) |
#### Returns
`void`
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[origin](../interfaces/TransformSchema-1.md#origin)
___
### parent
`get` **parent**(): `undefined` \| [`TransformData`](./TransformData-1.md)
#### Returns
`undefined` \| [`TransformData`](./TransformData-1.md)
___
### position
`get` **position**(): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[position](../interfaces/TransformSchema-1.md#position)
`set` **position**(`position`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `position` | [`PositionSchema`](../interfaces/PositionSchema.md) |
#### Returns
`void`
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[position](../interfaces/TransformSchema-1.md#position)
___
### rotation
`get` **rotation**(): `number`
#### Returns
`number`
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[rotation](../interfaces/TransformSchema-1.md#rotation)
`set` **rotation**(`rotation`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `rotation` | `number` |
#### Returns
`void`
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[rotation](../interfaces/TransformSchema-1.md#rotation)
___
### scale
`get` **scale**(): [`ScaleSchema`](../interfaces/ScaleSchema.md)
#### Returns
[`ScaleSchema`](../interfaces/ScaleSchema.md)
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[scale](../interfaces/TransformSchema-1.md#scale)
`set` **scale**(`scale`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | [`ScaleSchema`](../interfaces/ScaleSchema.md) |
#### Returns
`void`
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[scale](../interfaces/TransformSchema-1.md#scale)
___
### size
`get` **size**(): [`SizeSchema`](../interfaces/SizeSchema-1.md)
#### Returns
[`SizeSchema`](../interfaces/SizeSchema-1.md)
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[size](../interfaces/TransformSchema-1.md#size)
`set` **size**(`size`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`SizeSchema`](../interfaces/SizeSchema-1.md) |
#### Returns
`void`
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[size](../interfaces/TransformSchema-1.md#size)
___
### skew
`get` **skew**(): [`SkewSchema`](../interfaces/SkewSchema.md)
#### Returns
[`SkewSchema`](../interfaces/SkewSchema.md)
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[skew](../interfaces/TransformSchema-1.md#skew)
`set` **skew**(`skew`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `skew` | [`SkewSchema`](../interfaces/SkewSchema.md) |
#### Returns
`void`
#### Implementation of
[TransformSchema](../interfaces/TransformSchema-1.md).[skew](../interfaces/TransformSchema-1.md#skew)
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
___
### worldDegree
`get` **worldDegree**(): `number`
全局的角度
#### Returns
`number`
___
### worldID
`get` **worldID**(): `number`
#### Returns
`number`
___
### worldOrigin
`get` **worldOrigin**(): [`PositionSchema`](../interfaces/PositionSchema.md)
全局的原点位置
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
___
### worldRotation
`get` **worldRotation**(): `number`
全局的 rotation
#### Returns
`number`
___
### worldScale
`get` **worldScale**(): [`ScaleSchema`](../interfaces/ScaleSchema.md)
全局的 scale
#### Returns
[`ScaleSchema`](../interfaces/ScaleSchema.md)
___
### worldSize
`get` **worldSize**(): [`SizeSchema`](../interfaces/SizeSchema-1.md)
#### Returns
[`SizeSchema`](../interfaces/SizeSchema-1.md)
___
### worldTransform
`get` **worldTransform**(): `Matrix`
#### Returns
`Matrix`
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`TransformSchema`](../interfaces/TransformSchema-1.md) \| `Partial`\<[`TransformSchema`](../interfaces/TransformSchema-1.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### clearChildren
**clearChildren**(): `void`
#### Returns
`void`
___
### contains
**contains**(`x`, `y`, `asCircle?`): `boolean`
判断是否包含点
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `x` | `number` | |
| `y` | `number` | |
| `asCircle?` | `boolean` | 以圆形来算,TODO 目前不支持椭圆形 |
#### Returns
`boolean`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Overrides
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`TransformSchema`](../interfaces/TransformSchema-1.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`TransformSchema`](../interfaces/TransformSchema-1.md)
初始化数据
#### Returns
[`TransformSchema`](../interfaces/TransformSchema-1.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### getMutationCache
**getMutationCache**\<`T`\>(`key`, `fn`): `T`
缓存计算, 缓存只能针对 local, world 加缓存会出问题
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `fn` | () => `T` |
#### Returns
`T`
___
### heightToScaleY
**heightToScaleY**(`height`, `isWorldSize?`): `number`
绝对高转换成 scale,用于图片等无法修改大小的场景
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `height` | `number` | - |
| `isWorldSize?` | `boolean` | 是否为绝对大小 |
#### Returns
`number`
___
### intersects
**intersects**(`rect`): `boolean`
判断矩形碰撞
#### Parameters
| Name | Type |
| :------ | :------ |
| `rect` | `Rectangle` |
#### Returns
`boolean`
___
### isParent
**isParent**(`parent`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | [`TransformData`](./TransformData-1.md) |
#### Returns
`boolean`
___
### isParentTransform
**isParentTransform**(`parent?`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent?` | [`TransformData`](./TransformData-1.md) |
#### Returns
`boolean`
___
### setFromMatrix
**setFromMatrix**(`matrix`): `void`
Decomposes a matrix and sets the transforms properties based on it.
matrix - The matrix to decompose
#### Parameters
| Name | Type |
| :------ | :------ |
| `matrix` | `Matrix` |
#### Returns
`void`
___
### setParent
**setParent**(`parent`, `listenParentData?`): `void`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `parent` | `undefined` \| [`TransformData`](./TransformData-1.md) | `undefined` |
| `listenParentData` | `boolean` | `true` |
#### Returns
`void`
___
### sizeToScaleValue
**sizeToScaleValue**(`size`, `isWorldSize?`): `Object`
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `Object` |
| `size.height` | `number` |
| `size.width` | `number` |
| `isWorldSize?` | `boolean` |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `x` | `number` |
| `y` | `number` |
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`data`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Partial`\<[`TransformSchema`](../interfaces/TransformSchema-1.md)\> |
#### Returns
`void`
#### Overrides
[EntityData](./EntityData.md).[update](./EntityData.md#update)
___
### widthToScaleX
**widthToScaleX**(`width`, `isWorldSize?`): `number`
宽转换成 scale,用于图片等无法修改大小的场景
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `width` | `number` | - |
| `isWorldSize?` | `boolean` | 是否为绝对大小 |
#### Returns
`number`
---
url: /auto-docs/core/enums/Command.Default.md
---
# Enumeration: Default
[Command](../modules/Command.md).Default
## Table of contents
### Enumeration Members
- [COPY](./Command.Default.md#copy)
- [DELETE](./Command.Default.md#delete)
- [PASTE](./Command.Default.md#paste)
- [REDO](./Command.Default.md#redo)
- [UNDO](./Command.Default.md#undo)
- [VIEW\_CLOSE\_ALL\_WIDGET](./Command.Default.md#view_close_all_widget)
- [VIEW\_CLOSE\_BOTTOM\_PANEL](./Command.Default.md#view_close_bottom_panel)
- [VIEW\_CLOSE\_CURRENT\_WIDGET](./Command.Default.md#view_close_current_widget)
- [VIEW\_CLOSE\_OTHER\_WIDGET](./Command.Default.md#view_close_other_widget)
- [VIEW\_FULL\_SCREEN](./Command.Default.md#view_full_screen)
- [VIEW\_LOG](./Command.Default.md#view_log)
- [VIEW\_OEPN\_LAST\_TAB](./Command.Default.md#view_oepn_last_tab)
- [VIEW\_OPEN\_NEXT\_TAB](./Command.Default.md#view_open_next_tab)
- [VIEW\_PREFERENCES](./Command.Default.md#view_preferences)
- [VIEW\_PROBLEMS](./Command.Default.md#view_problems)
- [VIEW\_REOPEN\_LAST\_WIDGET](./Command.Default.md#view_reopen_last_widget)
- [VIEW\_SAVING\_WIDGET\_CLOSE\_CONFIRM](./Command.Default.md#view_saving_widget_close_confirm)
- [VIEW\_SHORTCUTS](./Command.Default.md#view_shortcuts)
- [ZOOM\_IN](./Command.Default.md#zoom_in)
- [ZOOM\_OUT](./Command.Default.md#zoom_out)
## Enumeration Members
### COPY
**COPY** = ``"COPY"``
___
### DELETE
**DELETE** = ``"DELETE"``
___
### PASTE
**PASTE** = ``"PASTE"``
___
### REDO
**REDO** = ``"REDO"``
___
### UNDO
**UNDO** = ``"UNDO"``
___
### VIEW\_CLOSE\_ALL\_WIDGET
**VIEW\_CLOSE\_ALL\_WIDGET** = ``"view.closeAllWidget"``
___
### VIEW\_CLOSE\_BOTTOM\_PANEL
**VIEW\_CLOSE\_BOTTOM\_PANEL** = ``"view.closeBottomPannel"``
___
### VIEW\_CLOSE\_CURRENT\_WIDGET
**VIEW\_CLOSE\_CURRENT\_WIDGET** = ``"view.closeCurrentWidget"``
___
### VIEW\_CLOSE\_OTHER\_WIDGET
**VIEW\_CLOSE\_OTHER\_WIDGET** = ``"view.closeOtherWidget"``
___
### VIEW\_FULL\_SCREEN
**VIEW\_FULL\_SCREEN** = ``"view.fullScreen"``
___
### VIEW\_LOG
**VIEW\_LOG** = ``"view.log"``
___
### VIEW\_OEPN\_LAST\_TAB
**VIEW\_OEPN\_LAST\_TAB** = ``"view.openLastTab"``
___
### VIEW\_OPEN\_NEXT\_TAB
**VIEW\_OPEN\_NEXT\_TAB** = ``"view.openNextTab"``
___
### VIEW\_PREFERENCES
**VIEW\_PREFERENCES** = ``"view.preferences"``
___
### VIEW\_PROBLEMS
**VIEW\_PROBLEMS** = ``"view.problems"``
___
### VIEW\_REOPEN\_LAST\_WIDGET
**VIEW\_REOPEN\_LAST\_WIDGET** = ``"view.reopenLastWidget"``
___
### VIEW\_SAVING\_WIDGET\_CLOSE\_CONFIRM
**VIEW\_SAVING\_WIDGET\_CLOSE\_CONFIRM** = ``"view.savingWidgetCloseConfirm"``
___
### VIEW\_SHORTCUTS
**VIEW\_SHORTCUTS** = ``"view.shortcuts"``
___
### ZOOM\_IN
**ZOOM\_IN** = ``"ZOOM_IN"``
___
### ZOOM\_OUT
**ZOOM\_OUT** = ``"ZOOM_OUT"``
---
url: /auto-docs/core/enums/LoggerEvent.md
---
# Enumeration: LoggerEvent
## Table of contents
### Enumeration Members
- [CANVAS\_FPS](./LoggerEvent.md#canvas_fps)
- [CANVAS\_TTI](./LoggerEvent.md#canvas_tti)
## Enumeration Members
### CANVAS\_FPS
**CANVAS\_FPS** = ``1``
___
### CANVAS\_TTI
**CANVAS\_TTI** = ``0``
---
url: /auto-docs/core/enums/PipelineLayerPriority.md
---
# Enumeration: PipelineLayerPriority
## Table of contents
### Enumeration Members
- [BASE\_LAYER](./PipelineLayerPriority.md#base_layer)
- [NORMAL\_LAYER](./PipelineLayerPriority.md#normal_layer)
- [TOOL\_LAYER](./PipelineLayerPriority.md#tool_layer)
## Enumeration Members
### BASE\_LAYER
**BASE\_LAYER** = ``-2``
___
### NORMAL\_LAYER
**NORMAL\_LAYER** = ``0``
___
### TOOL\_LAYER
**TOOL\_LAYER** = ``-1``
---
url: /auto-docs/core/enums/PipelineMessage.md
---
# Enumeration: PipelineMessage
## Table of contents
### Enumeration Members
- [SCROLL](./PipelineMessage.md#scroll)
- [ZOOM](./PipelineMessage.md#zoom)
## Enumeration Members
### SCROLL
**SCROLL** = ``"PIPELINE_SCROLL"``
___
### ZOOM
**ZOOM** = ``"PIPELINE_ZOOM"``
---
url: /auto-docs/core/functions/Bounds.applyMatrix.md
---
# Function: applyMatrix
[Bounds](../modules/Bounds.md).applyMatrix
**applyMatrix**(`bounds`, `matrix`): `Rectangle`
#### Parameters
| Name | Type |
| :------ | :------ |
| `bounds` | `Rectangle` |
| `matrix` | `Matrix` |
#### Returns
`Rectangle`
---
url: /auto-docs/core/functions/Bounds.getBottomCenter.md
---
# Function: getBottomCenter
[Bounds](../modules/Bounds.md).getBottomCenter
**getBottomCenter**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getBottomLeft.md
---
# Function: getBottomLeft
[Bounds](../modules/Bounds.md).getBottomLeft
**getBottomLeft**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getBottomRight.md
---
# Function: getBottomRight
[Bounds](../modules/Bounds.md).getBottomRight
**getBottomRight**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getBounds.md
---
# Function: getBounds
[Bounds](../modules/Bounds.md).getBounds
**getBounds**(`target`, `matrix?`): `Rectangle`
获取外围边界矩形
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
`Rectangle`
---
url: /auto-docs/core/functions/Bounds.getCenter.md
---
# Function: getCenter
[Bounds](../modules/Bounds.md).getCenter
**getCenter**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | [`TransformSchema`](../interfaces/TransformSchema-1.md) |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getLeftCenter.md
---
# Function: getLeftCenter
[Bounds](../modules/Bounds.md).getLeftCenter
**getLeftCenter**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getLeftPointFromBounds.md
---
# Function: getLeftPointFromBounds
[Bounds](../modules/Bounds.md).getLeftPointFromBounds
**getLeftPointFromBounds**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
找到边框中最左边的点
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getPointWithMatrix.md
---
# Function: getPointWithMatrix
[Bounds](../modules/Bounds.md).getPointWithMatrix
**getPointWithMatrix**(`output`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
位置做矩阵偏移
#### Parameters
| Name | Type |
| :------ | :------ |
| `output` | [`PositionSchema`](../interfaces/PositionSchema.md) |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getRightCenter.md
---
# Function: getRightCenter
[Bounds](../modules/Bounds.md).getRightCenter
**getRightCenter**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getTopCenter.md
---
# Function: getTopCenter
[Bounds](../modules/Bounds.md).getTopCenter
**getTopCenter**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getTopLeft.md
---
# Function: getTopLeft
[Bounds](../modules/Bounds.md).getTopLeft
**getTopLeft**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getTopPointFromBounds.md
---
# Function: getTopPointFromBounds
[Bounds](../modules/Bounds.md).getTopPointFromBounds
**getTopPointFromBounds**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
找到边框中最上边的点
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Bounds.getTopRight.md
---
# Function: getTopRight
[Bounds](../modules/Bounds.md).getTopRight
**getTopRight**(`target`, `matrix?`): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `TransformOriginAndSize` |
| `matrix?` | `Matrix` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
---
url: /auto-docs/core/functions/Command.is.md
---
# Function: is
[Command](../modules/Command.md).is
**is**(`arg`): arg is Command
判断是否是 command
#### Parameters
| Name | Type |
| :------ | :------ |
| `arg` | `any` |
#### Returns
arg is Command
---
url: /auto-docs/core/functions/Entity.checkDataChanged.md
---
# Function: checkDataChanged
[Entity](../modules/Entity.md).checkDataChanged
**checkDataChanged**(`oldProps`, `newProps`): `boolean`
默认数据比较,采用浅比较
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldProps` | `any` |
| `newProps` | `any` |
#### Returns
`boolean`
---
url: /auto-docs/core/functions/Entity.getType.md
---
# Function: getType
[Entity](../modules/Entity.md).getType
**getType**(`registry`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`string`
---
url: /auto-docs/core/functions/Entity.isRegistryOf.md
---
# Function: isRegistryOf
[Entity](../modules/Entity.md).isRegistryOf
**isRegistryOf**(`target`, `Registry`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `any` |
| `Registry` | `any` |
#### Returns
`boolean`
---
url: /auto-docs/core/functions/MOUSE_SCROLL_DELTA.md
---
# Function: MOUSE\_SCROLL\_DELTA
**MOUSE_SCROLL_DELTA**(`zoom`): `number`
鼠标缩放 delta
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`number`
---
url: /auto-docs/core/functions/MouseTouchEvent.getEventCoord.md
---
# Function: getEventCoord
[MouseTouchEvent](../modules/MouseTouchEvent.md).getEventCoord
**getEventCoord**(`e`): `Object`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` \| `TouchEvent` \| \{ `clientX`: `number` ; `clientY`: `number` } |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `clientX` | `number` |
| `clientY` | `number` |
---
url: /auto-docs/core/functions/MouseTouchEvent.isTouchEvent.md
---
# Function: isTouchEvent
[MouseTouchEvent](../modules/MouseTouchEvent.md).isTouchEvent
**isTouchEvent**(`event`): event is TouchEvent
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `TouchEvent` \| `TouchEvent`\<`Element`\> |
#### Returns
event is TouchEvent
---
url: /auto-docs/core/functions/MouseTouchEvent.onTouched.md
---
# Function: onTouched
[MouseTouchEvent](../modules/MouseTouchEvent.md).onTouched
**onTouched**(`touchStartEvent`, `callback`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `touchStartEvent` | `TouchEvent`\<`Element`\> |
| `callback` | (`e`: `MouseEvent`) => `void` |
#### Returns
`void`
---
url: /auto-docs/core/functions/MouseTouchEvent.preventDefault.md
---
# Function: preventDefault
[MouseTouchEvent](../modules/MouseTouchEvent.md).preventDefault
**preventDefault**(`e`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` \| `Event` \| `TouchEvent` \| `MouseEvent`\<`Element`, `MouseEvent`\> \| `TouchEvent`\<`Element`\> |
#### Returns
`void`
---
url: /auto-docs/core/functions/MouseTouchEvent.touchToMouseEvent.md
---
# Function: touchToMouseEvent
[MouseTouchEvent](../modules/MouseTouchEvent.md).touchToMouseEvent
**touchToMouseEvent**(`event`): `MouseEvent` \| `Event`
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Event` |
#### Returns
`MouseEvent` \| `Event`
---
url: /auto-docs/core/functions/PlaygroundDrag.startDrag.md
---
# Function: startDrag
[PlaygroundDrag](../modules/PlaygroundDrag.md).startDrag
**startDrag**\<`T`\>(`clientX`, `clientY`, `opts?`): `Disposable`
拖拽实体
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `clientX` | `number` |
| `clientY` | `number` |
| `opts` | [`PlaygroundDragEntitiesOpts`](../interfaces/PlaygroundDragEntitiesOpts.md)\<`T`\> |
#### Returns
`Disposable`
---
url: /auto-docs/core/functions/PlaygroundMockTools.createContainer.md
---
# Function: createContainer
[PlaygroundMockTools](../modules/PlaygroundMockTools.md).createContainer
**createContainer**(`modules?`): `interfaces.Container`
#### Parameters
| Name | Type |
| :------ | :------ |
| `modules?` | `ContainerModule`[] |
#### Returns
`interfaces.Container`
---
url: /auto-docs/core/functions/PlaygroundMockTools.createLayerTestState.md
---
# Function: createLayerTestState
[PlaygroundMockTools](../modules/PlaygroundMockTools.md).createLayerTestState
**createLayerTestState**\<`T`\>(`layerRegistry`, `opts?`, `modules?`): [`LayerTestState`](../classes/PlaygroundMockTools.LayerTestState.md)\<`T`\>
创建layer, 并记录layer的回调数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](../classes/Layer.md)\<`any`, `any`, `T`\> = [`Layer`](../classes/Layer.md)\<`any`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
| `opts?` | `any` |
| `modules?` | `ContainerModule`[] |
#### Returns
[`LayerTestState`](../classes/PlaygroundMockTools.LayerTestState.md)\<`T`\>
---
url: /auto-docs/core/functions/PlaygroundMockTools.createPlayground.md
---
# Function: createPlayground
[PlaygroundMockTools](../modules/PlaygroundMockTools.md).createPlayground
**createPlayground**(`modules?`): [`Playground`](../classes/Playground.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `modules?` | `ContainerModule`[] |
#### Returns
[`Playground`](../classes/Playground.md)
---
url: /auto-docs/core/functions/PlaygroundMockTools.getLayerTestState.md
---
# Function: getLayerTestState
[PlaygroundMockTools](../modules/PlaygroundMockTools.md).getLayerTestState
**getLayerTestState**\<`T`\>(`container`, `layerRegistry`): [`LayerTestState`](../classes/PlaygroundMockTools.LayerTestState.md)\<`T`\>
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](../classes/Layer.md)\<`any`, `any`, `T`\> = [`Layer`](../classes/Layer.md)\<`any`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `container` | `Container` |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
#### Returns
[`LayerTestState`](../classes/PlaygroundMockTools.LayerTestState.md)\<`T`\>
---
url: /auto-docs/core/functions/PlaygroundReactProvider.md
---
# Function: PlaygroundReactProvider
**PlaygroundReactProvider**(`props`): ``null`` \| `ReactElement`\<`any`, `string` \| `JSXElementConstructor`\<`any`\>\>
Playground react 组件
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`PlaygroundReactProviderProps`](../interfaces/PlaygroundReactProviderProps.md) & `RefAttributes`\<`any`\> |
#### Returns
``null`` \| `ReactElement`\<`any`, `string` \| `JSXElementConstructor`\<`any`\>\>
---
url: /auto-docs/core/functions/PlaygroundReactRenderer.md
---
# Function: PlaygroundReactRenderer
**PlaygroundReactRenderer**(`props`, `deprecatedLegacyContext?`): ``null`` \| `ReactElement`\<`any`, `any`\>
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `props` | [`PlaygroundReactRendererProps`](../interfaces/PlaygroundReactRendererProps.md) | - |
| `deprecatedLegacyContext?` | `any` | **`Deprecated`** **`See`** [React Docs](https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods) |
#### Returns
``null`` \| `ReactElement`\<`any`, `any`\>
---
url: /auto-docs/core/functions/SizeSchema.coverSize.md
---
# Function: coverSize
[SizeSchema](../modules/SizeSchema.md).coverSize
**coverSize**(`currentSize`, `parentSize`): `number`
填充父节点的宽高
#### Parameters
| Name | Type |
| :------ | :------ |
| `currentSize` | [`SizeSchema`](../interfaces/SizeSchema-1.md) |
| `parentSize` | [`SizeSchema`](../interfaces/SizeSchema-1.md) |
#### Returns
`number`
返回放大的比例
---
url: /auto-docs/core/functions/SizeSchema.empty.md
---
# Function: empty
[SizeSchema](../modules/SizeSchema.md).empty
**empty**(): [`SizeSchema`](../interfaces/SizeSchema-1.md)
#### Returns
[`SizeSchema`](../interfaces/SizeSchema-1.md)
---
url: /auto-docs/core/functions/SizeSchema.fixSize.md
---
# Function: fixSize
[SizeSchema](../modules/SizeSchema.md).fixSize
**fixSize**(`currentSize`, `parentSize`): `number`
适配父节点宽高
#### Parameters
| Name | Type |
| :------ | :------ |
| `currentSize` | [`SizeSchema`](../interfaces/SizeSchema-1.md) |
| `parentSize` | [`SizeSchema`](../interfaces/SizeSchema-1.md) |
#### Returns
`number`
返回需要缩放的比例,为 1 则不缩放
---
url: /auto-docs/core/functions/TransformData.isParentOrChildrenTransform.md
---
# Function: isParentOrChildrenTransform
[TransformData](../modules/TransformData.md).isParentOrChildrenTransform
**isParentOrChildrenTransform**(`dragableEntities`, `target`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `dragableEntities` | [`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>[] |
| `target` | [`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
#### Returns
`boolean`
---
url: /auto-docs/core/functions/TransformSchema.createDefault.md
---
# Function: createDefault
[TransformSchema](../modules/TransformSchema.md).createDefault
**createDefault**(): [`TransformSchema`](../interfaces/TransformSchema-1.md)
#### Returns
[`TransformSchema`](../interfaces/TransformSchema-1.md)
---
url: /auto-docs/core/functions/TransformSchema.getDelta.md
---
# Function: getDelta
[TransformSchema](../modules/TransformSchema.md).getDelta
**getDelta**(`oldTransform`, `newTransform`): [`TransformSchema`](../interfaces/TransformSchema-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldTransform` | [`TransformSchema`](../interfaces/TransformSchema-1.md) |
| `newTransform` | [`TransformSchema`](../interfaces/TransformSchema-1.md) |
#### Returns
[`TransformSchema`](../interfaces/TransformSchema-1.md)
---
url: /auto-docs/core/functions/TransformSchema.is.md
---
# Function: is
[TransformSchema](../modules/TransformSchema.md).is
**is**(`obj`): obj is TransformSchema
#### Parameters
| Name | Type |
| :------ | :------ |
| `obj` | `object` |
#### Returns
obj is TransformSchema
---
url: /auto-docs/core/functions/TransformSchema.mergeDelta.md
---
# Function: mergeDelta
[TransformSchema](../modules/TransformSchema.md).mergeDelta
**mergeDelta**(`oldTransform`, `newTransformDelta`, `toFixedNum?`): [`TransformSchema`](../interfaces/TransformSchema-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldTransform` | [`TransformSchema`](../interfaces/TransformSchema-1.md) |
| `newTransformDelta` | [`TransformSchema`](../interfaces/TransformSchema-1.md) |
| `toFixedNum?` | `number` |
#### Returns
[`TransformSchema`](../interfaces/TransformSchema-1.md)
---
url: /auto-docs/core/functions/TransformSchema.toJSON.md
---
# Function: toJSON
[TransformSchema](../modules/TransformSchema.md).toJSON
**toJSON**(`obj`): [`TransformSchema`](../interfaces/TransformSchema-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `obj` | [`TransformSchema`](../interfaces/TransformSchema-1.md) |
#### Returns
[`TransformSchema`](../interfaces/TransformSchema-1.md)
---
url: /auto-docs/core/functions/bindConfigEntity.md
---
# Function: bindConfigEntity
**bindConfigEntity**(`bind`, `entityRegistry`): `void`
让 entity 可以注入到类中
#### Parameters
| Name | Type |
| :------ | :------ |
| `bind` | `Bind` |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
**`Example`**
```
class SomeClass {
@inject(PlaygroundConfigEntity) playgroundConfig: PlaygroundConfigEntity
}
```
---
url: /auto-docs/core/functions/bindContributionProvider.md
---
# Function: bindContributionProvider
**bindContributionProvider**(`bind`, `id`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `bind` | `Bind` |
| `id` | `symbol` |
#### Returns
`void`
---
url: /auto-docs/core/functions/bindContributions.md
---
# Function: bindContributions
**bindContributions**(`bind`, `target`, `contribs`): `void`
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
#### Parameters
| Name | Type |
| :------ | :------ |
| `bind` | `Bind` |
| `target` | `any` |
| `contribs` | `any`[] |
#### Returns
`void`
---
url: /auto-docs/core/functions/bindPlaygroundContextProvider.md
---
# Function: bindPlaygroundContextProvider
**bindPlaygroundContextProvider**(`bind`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `bind` | `Bind` |
#### Returns
`void`
---
url: /auto-docs/core/functions/createConfigDataRegistry.md
---
# Function: createConfigDataRegistry
**createConfigDataRegistry**\<`P`\>(`entity`): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)
#### Type parameters
| Name |
| :------ |
| `P` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`ConfigEntity`](../classes/ConfigEntity.md)\<`any`, [`EntityOpts`](../interfaces/EntityOpts.md)\> |
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)
---
url: /auto-docs/core/functions/createDefaultPlaygroundConfig.md
---
# Function: createDefaultPlaygroundConfig
**createDefaultPlaygroundConfig**(): [`PlaygroundConfig`](../variables/PlaygroundConfig-1.md)
默认配置
#### Returns
[`PlaygroundConfig`](../variables/PlaygroundConfig-1.md)
---
url: /auto-docs/core/functions/createPlaygroundContainer.md
---
# Function: createPlaygroundContainer
**createPlaygroundContainer**(`config?`, `parent?`, `container?`): `interfaces.Container`
#### Parameters
| Name | Type |
| :------ | :------ |
| `config?` | [`PlaygroundConfig`](../variables/PlaygroundConfig-1.md) |
| `parent?` | `Container` |
| `container?` | `Container` |
#### Returns
`interfaces.Container`
---
url: /auto-docs/core/functions/createPlaygroundLayerDefault.md
---
# Function: createPlaygroundLayerDefault
**createPlaygroundLayerDefault**(`container`, `layerRegistry`, `options?`): [`Layer`](../classes/Layer.md)\<`any`, `any`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `container` | `Container` |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<[`Layer`](../classes/Layer.md)\<`any`, `any`\>\> |
| `options` | `any` |
#### Returns
[`Layer`](../classes/Layer.md)\<`any`, `any`\>
---
url: /auto-docs/core/functions/createPlaygroundPlugin.md
---
# Function: createPlaygroundPlugin
**createPlaygroundPlugin**\<`CTX`\>(`options`): [`Plugin`](../variables/Plugin-1.md)\<`undefined`\>
#### Type parameters
| Name | Type |
| :------ | :------ |
| `CTX` | extends [`PluginContext`](../variables/PluginContext-1.md) = [`PluginContext`](../variables/PluginContext-1.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `options` | [`PluginConfig`](../interfaces/PluginConfig.md)\<`undefined`, `CTX`\> |
#### Returns
[`Plugin`](../variables/Plugin-1.md)\<`undefined`\>
**`Example`**
```ts
createPlaygroundPlugin({
// IOC 注册
onBind(bind) {
bind('xxx').toSelf().inSingletonScope()
},
// 画布初始化
onInit(ctx) {
ctx.playground.registerLayer(MyLayer)
},
// 画布销毁
onDispose(ctx) {
},
// IOC 模块
containerModules: [new ContainerModule(() => {})]
})
```
---
url: /auto-docs/core/functions/createPluginContextDefault.md
---
# Function: createPluginContextDefault
**createPluginContextDefault**(`container`): [`PluginContext`](../variables/PluginContext-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `container` | `Container` |
#### Returns
[`PluginContext`](../variables/PluginContext-1.md)
---
url: /auto-docs/core/functions/createRegistryDecorator.md
---
# Function: createRegistryDecorator
**createRegistryDecorator**(`key`, `data`, `getValue?`, `init?`): `any`
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `symbol` |
| `data` | `any` |
| `getValue?` | [`RegistryValueGetter`](../interfaces/RegistryValueGetter.md)\<`any`\> |
| `init?` | [`RegistryInit`](../interfaces/RegistryInit.md) |
#### Returns
`any`
---
url: /auto-docs/core/functions/definePluginCreator.md
---
# Function: definePluginCreator
**definePluginCreator**\<`Options`, `CTX`\>(`config`): [`PluginCreator`](../types/PluginCreator.md)\<`Options`\>
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Options` | `Options` |
| `CTX` | extends [`PluginContext`](../variables/PluginContext-1.md) = [`PluginContext`](../variables/PluginContext-1.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `config` | \{ `containerModules?`: `ContainerModule`[] ; `contributionKeys?`: `ServiceIdentifier`\<`unknown`\>[] ; `singleton?`: `boolean` } & [`PluginConfig`](../interfaces/PluginConfig.md)\<`Options`, `CTX`\> |
#### Returns
[`PluginCreator`](../types/PluginCreator.md)\<`Options`\>
---
url: /auto-docs/core/functions/getEntityDatasMetadata.md
---
# Function: getEntityDatasMetadata
**getEntityDatasMetadata**(`layer`): \{ `data`: [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md) ; `entity`: [`EntityRegistry`](../interfaces/EntityRegistry.md) }[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | `any` |
#### Returns
\{ `data`: [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md) ; `entity`: [`EntityRegistry`](../interfaces/EntityRegistry.md) }[]
---
url: /auto-docs/core/functions/getEntityMetadata.md
---
# Function: getEntityMetadata
**getEntityMetadata**(`layer`): [`EntityRegistry`](../interfaces/EntityRegistry.md)[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | `any` |
#### Returns
[`EntityRegistry`](../interfaces/EntityRegistry.md)[]
---
url: /auto-docs/core/functions/getRegistryMetadata.md
---
# Function: getRegistryMetadata
**getRegistryMetadata**(`target`, `key`): `any`[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `any` |
| `key` | `symbol` |
#### Returns
`any`[]
---
url: /auto-docs/core/functions/injectByProvider.md
---
# Function: injectByProvider
**injectByProvider**(`provider`): (`target`: `any`, `propertyKey`: `string`) => `any`
#### Parameters
| Name | Type |
| :------ | :------ |
| `provider` | `ServiceIdentifier`\<`unknown`\> |
#### Returns
`fn`
(`target`, `propertyKey`): `any`
##### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `any` |
| `propertyKey` | `string` |
##### Returns
`any`
---
url: /auto-docs/core/functions/injectPlaygroundContext.md
---
# Function: injectPlaygroundContext
**injectPlaygroundContext**(): (`target`: `any`, `propertyKey`: `string`) => `any`
#### Returns
`fn`
(`target`, `propertyKey`): `any`
##### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `any` |
| `propertyKey` | `string` |
##### Returns
`any`
---
url: /auto-docs/core/functions/lazyInject.md
---
# Function: lazyInject
**lazyInject**(`serviceIdentifier`): (`target`: `any`, `propertyKey`: `string`) => `any`
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | `ServiceIdentifier`\<`unknown`\> |
#### Returns
`fn`
(`target`, `propertyKey`): `any`
##### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `any` |
| `propertyKey` | `string` |
##### Returns
`any`
---
url: /auto-docs/core/functions/loadPlugins.md
---
# Function: loadPlugins
**loadPlugins**(`plugins`, `container`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `plugins` | [`Plugin`](../variables/Plugin-1.md)\<`any`\>[] |
| `container` | `Container` |
#### Returns
`void`
---
url: /auto-docs/core/functions/observeEntities.md
---
# Function: observeEntities
**observeEntities**(`registry`): `any`
监听 entity 变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`any`
---
url: /auto-docs/core/functions/observeEntity.md
---
# Function: observeEntity
**observeEntity**(`registry`): `any`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`any`
---
url: /auto-docs/core/functions/observeEntityDatas.md
---
# Function: observeEntityDatas
**observeEntityDatas**(`entityRegistry`, `dataRegistry`): `any`
监听 entity 对应的 data 数据变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `dataRegistry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](../classes/EntityData.md)\<`any`, {}\>\> |
#### Returns
`any`
---
url: /auto-docs/core/functions/removeInjectedProperties.md
---
# Function: removeInjectedProperties
**removeInjectedProperties**(`instance`): `void`
在 rspack 场景编译ts文件时候
decorator 注入的 property 会被当成 this 的属性, 导致 Reflect.metadata 失效
#### Parameters
| Name | Type |
| :------ | :------ |
| `instance` | `any` |
#### Returns
`void`
---
url: /auto-docs/core/functions/scrollIntoViewWithTween.md
---
# Function: scrollIntoViewWithTween
**scrollIntoViewWithTween**(`opts`): `Disposable`
滚动到可视区域
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | [`ScrollIntoViewOpts`](../interfaces/ScrollIntoViewOpts.md) |
#### Returns
`Disposable`
---
url: /auto-docs/core/functions/startTween.md
---
# Function: startTween
**startTween**\<`V`\>(`opts`): `Disposable`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `V` | extends `TweenValues` = `TweenValues` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | [`TweenOpts`](../interfaces/TweenOpts.md)\<`V`\> |
#### Returns
`Disposable`
---
url: /auto-docs/core/functions/useConfigEntity.md
---
# Function: useConfigEntity
**useConfigEntity**\<`T`\>(`entityRegistry`, `listenChange?`): `T`
获取 config entity
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`ConfigEntity`](../classes/ConfigEntity.md)\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md), [`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<`T`\> | `undefined` |
| `listenChange` | `boolean` | `false` |
#### Returns
`T`
---
url: /auto-docs/core/functions/useEntities.md
---
# Function: useEntities
**useEntities**\<`T`\>(`entityRegistry`): `T`[]
获取 entities 并监听变化
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`T`[]
**`Deprecated`**
---
url: /auto-docs/core/functions/useEntityDataFromContext.md
---
# Function: useEntityDataFromContext
**useEntityDataFromContext**\<`T`\>(`dataRegistry`, `listenChange?`): `T`
从上下 PlaygroundEntityContext 获取 entity data 并监听变化 (默认不监听)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`EntityData`](../classes/EntityData.md)\<`any`, {}, `T`\> |
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `dataRegistry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`any`\> | `undefined` |
| `listenChange` | `boolean` | `false` |
#### Returns
`T`
---
url: /auto-docs/core/functions/useEntityFromContext.md
---
# Function: useEntityFromContext
**useEntityFromContext**\<`T`\>(`listenChange?`): `T`
从上下 PlaygroundEntityContext 获取 entity 并监听变化(默认不监听)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `listenChange` | `boolean` | `false` |
#### Returns
`T`
---
url: /auto-docs/core/functions/useListenEvents.md
---
# Function: useListenEvents
**useListenEvents**(`...events`): `void`
监听 event 事件变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `...events` | `Event`\<`any`\>[] |
#### Returns
`void`
---
url: /auto-docs/core/functions/usePlayground.md
---
# Function: usePlayground
**usePlayground**(): [`Playground`](../classes/Playground.md)
获取 playground
#### Returns
[`Playground`](../classes/Playground.md)
---
url: /auto-docs/core/functions/usePlaygroundContainer.md
---
# Function: usePlaygroundContainer
**usePlaygroundContainer**(): `interfaces.Container`
获取 playground inversify container
#### Returns
`interfaces.Container`
---
url: /auto-docs/core/functions/usePlaygroundContext.md
---
# Function: usePlaygroundContext
**usePlaygroundContext**\<`T`\>(): `T`
获取 playground context 数据
#### Type parameters
| Name |
| :------ |
| `T` |
#### Returns
`T`
---
url: /auto-docs/core/functions/usePlaygroundDrag.md
---
# Function: usePlaygroundDrag
**usePlaygroundDrag**(): `UsePlaygroundDragReturn`
#### Returns
`UsePlaygroundDragReturn`
---
url: /auto-docs/core/functions/useRefresh.md
---
# Function: useRefresh
**useRefresh**(`defaultValue?`): (`v?`: `any`) => `void`
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
#### Parameters
| Name | Type |
| :------ | :------ |
| `defaultValue?` | `any` |
#### Returns
`fn`
(`v?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `v?` | `any` |
##### Returns
`void`
---
url: /auto-docs/core/functions/useService.md
---
# Function: useService
**useService**\<`T`\>(`identifier`): `T`
获取画布的 IOC 模块
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
---
url: /auto-docs/core/interfaces/ClipboardService.md
---
# Interface: ClipboardService
## Table of contents
### Properties
- [onClipboardChanged](./ClipboardService.md#onclipboardchanged)
### Methods
- [readText](./ClipboardService.md#readtext)
- [writeText](./ClipboardService.md#writetext)
## Properties
### onClipboardChanged
**onClipboardChanged**: `Event`\<`string`\>
## Methods
### readText
**readText**(): `MaybePromise`\<`string`\>
#### Returns
`MaybePromise`\<`string`\>
___
### writeText
**writeText**(`value`): `MaybePromise`\<`void`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `value` | `string` |
#### Returns
`MaybePromise`\<`void`\>
---
url: /auto-docs/core/interfaces/Command-1.md
---
# Interface: Command
## Table of contents
### Properties
- [category](./Command-1.md#category)
- [icon](./Command-1.md#icon)
- [id](./Command-1.md#id)
- [label](./Command-1.md#label)
- [shortLabel](./Command-1.md#shortlabel)
## Properties
### category
`Optional` **category**: `string`
暂不使用
___
### icon
`Optional` **icon**: `ReactNode` \| (`props`: `any`) => `ReactNode`
展示用 command icon
___
### id
**id**: `string`
id,唯一 key
___
### label
`Optional` **label**: `string`
展示用 label
___
### shortLabel
`Optional` **shortLabel**: `string`
在一些明确的场景下,部分只展示简短的 label 即可
---
url: /auto-docs/core/interfaces/CommandService.md
---
# Interface: CommandService
command service 执行接口
## Hierarchy
- `Disposable`
↳ **`CommandService`**
## Table of contents
### Properties
- [onDidExecuteCommand](./CommandService.md#ondidexecutecommand)
- [onWillExecuteCommand](./CommandService.md#onwillexecutecommand)
### Methods
- [dispose](./CommandService.md#dispose)
- [executeCommand](./CommandService.md#executecommand)
## Properties
### onDidExecuteCommand
`Readonly` **onDidExecuteCommand**: `Event`\<`CommandEvent`\>
command 事件执行完成后触发
___
### onWillExecuteCommand
`Readonly` **onWillExecuteCommand**: `Event`\<`CommandEvent`\>
command 事件执行前触发事件
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
Disposable.dispose
___
### executeCommand
**executeCommand**\<`T`\>(`command`, `...args`): `Promise`\<`undefined` \| `T`\>
执行 command
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | `string` |
| `...args` | `any`[] |
#### Returns
`Promise`\<`undefined` \| `T`\>
---
url: /auto-docs/core/interfaces/ConfigEntityProps.md
---
# Interface: ConfigEntityProps
---
url: /auto-docs/core/interfaces/ContributionProvider.md
---
# Interface: ContributionProvider\
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `object` |
## Table of contents
### Methods
- [forEach](./ContributionProvider.md#foreach)
- [getContributions](./ContributionProvider.md#getcontributions)
## Methods
### forEach
**forEach**(`fn`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`v`: `T`) => `void` |
#### Returns
`void`
___
### getContributions
**getContributions**(): `T`[]
#### Returns
`T`[]
---
url: /auto-docs/core/interfaces/EditorState-1.md
---
# Interface: EditorState
编辑态
## Table of contents
### Properties
- [cancelMode](./EditorState-1.md#cancelmode)
- [cursor](./EditorState-1.md#cursor)
- [disableSelector](./EditorState-1.md#disableselector)
- [disabled](./EditorState-1.md#disabled)
- [handle](./EditorState-1.md#handle)
- [id](./EditorState-1.md#id)
- [onEsc](./EditorState-1.md#onesc)
- [shortcut](./EditorState-1.md#shortcut)
- [shortcutAutoEsc](./EditorState-1.md#shortcutautoesc)
- [shortcutWorksOnlyOnStateChanged](./EditorState-1.md#shortcutworksonlyonstatechanged)
## Properties
### cancelMode
**cancelMode**: ``"esc"`` \| ``"once"`` \| ``"hold"``
___
### cursor
`Optional` **cursor**: `string`
___
### disableSelector
`Optional` **disableSelector**: `boolean`
___
### disabled
`Optional` **disabled**: `boolean` \| (`config`: [`PlaygroundConfigEntity`](../classes/PlaygroundConfigEntity.md)) => `boolean`
___
### handle
`Optional` **handle**: (`config`: [`PlaygroundConfigEntity`](../classes/PlaygroundConfigEntity.md), `e?`: [`EditorStateChangeEvent`](./EditorStateChangeEvent.md)) => `void`
#### Type declaration
(`config`, `e?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `config` | [`PlaygroundConfigEntity`](../classes/PlaygroundConfigEntity.md) |
| `e?` | [`EditorStateChangeEvent`](./EditorStateChangeEvent.md) |
##### Returns
`void`
___
### id
**id**: `string`
___
### onEsc
`Optional` **onEsc**: (`config`: [`PlaygroundConfigEntity`](../classes/PlaygroundConfigEntity.md), `e?`: `KeyboardEvent`) => `void`
#### Type declaration
(`config`, `e?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `config` | [`PlaygroundConfigEntity`](../classes/PlaygroundConfigEntity.md) |
| `e?` | `KeyboardEvent` |
##### Returns
`void`
___
### shortcut
`Optional` **shortcut**: `string`
___
### shortcutAutoEsc
`Optional` **shortcutAutoEsc**: `boolean`
___
### shortcutWorksOnlyOnStateChanged
`Optional` **shortcutWorksOnlyOnStateChanged**: `boolean`
---
url: /auto-docs/core/interfaces/EditorStateChangeEvent.md
---
# Interface: EditorStateChangeEvent
## Table of contents
### Properties
- [event](./EditorStateChangeEvent.md#event)
- [lastState](./EditorStateChangeEvent.md#laststate)
- [state](./EditorStateChangeEvent.md#state)
## Properties
### event
`Optional` **event**: `MouseEvent`\<`Element`, `MouseEvent`\>
___
### lastState
`Optional` **lastState**: [`EditorState`](./EditorState-1.md)
___
### state
**state**: [`EditorState`](./EditorState-1.md)
---
url: /auto-docs/core/interfaces/EntityDataChangedEvent.md
---
# Interface: EntityDataChangedEvent\
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](../classes/Entity-1.md) = [`Entity`](../classes/Entity-1.md) |
## Table of contents
### Properties
- [data](./EntityDataChangedEvent.md#data)
- [entity](./EntityDataChangedEvent.md#entity)
- [type](./EntityDataChangedEvent.md#type)
## Properties
### data
**data**: [`EntityData`](../classes/EntityData.md)\<`any`, {}\>
___
### entity
**entity**: `T`
___
### type
**type**: ``"add"`` \| ``"update"`` \| ``"delete"``
---
url: /auto-docs/core/interfaces/EntityDataRegistry.md
---
# Interface: EntityDataRegistry\
## Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`EntityData`](../classes/EntityData.md) = [`EntityData`](../classes/EntityData.md) |
## Table of contents
### Constructors
- [constructor](./EntityDataRegistry.md#constructor)
### Properties
- [type](./EntityDataRegistry.md#type)
## Constructors
### constructor
**new EntityDataRegistry**(`...args`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `...args` | `any`[] |
## Properties
### type
**type**: `E`[``"type"``]
---
url: /auto-docs/core/interfaces/EntityJSON.md
---
# Interface: EntityJSON
持久化数据
## Table of contents
### Properties
- [dataList](./EntityJSON.md#datalist)
- [id](./EntityJSON.md#id)
- [type](./EntityJSON.md#type)
## Properties
### dataList
**dataList**: `object`[]
___
### id
**id**: `string`
___
### type
**type**: `string`
---
url: /auto-docs/core/interfaces/EntityManagerContribution.md
---
# Interface: EntityManagerContribution
## Table of contents
### Methods
- [registerEntityManager](./EntityManagerContribution.md#registerentitymanager)
## Methods
### registerEntityManager
**registerEntityManager**(`entityManager`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityManager` | [`EntityManager`](../classes/EntityManager.md) |
#### Returns
`void`
---
url: /auto-docs/core/interfaces/EntityOpts.md
---
# Interface: EntityOpts
## Table of contents
### Properties
- [datas](./EntityOpts.md#datas)
- [entityManager](./EntityOpts.md#entitymanager)
- [id](./EntityOpts.md#id)
- [savedInManager](./EntityOpts.md#savedinmanager)
## Properties
### datas
`Optional` **datas**: \{ `data?`: `any` ; `registry`: [`EntityDataRegistry`](./EntityDataRegistry.md)\<[`EntityData`](../classes/EntityData.md)\<`any`, {}\>\> }[]
___
### entityManager
**entityManager**: [`EntityManager`](../classes/EntityManager.md)
___
### id
`Optional` **id**: `string`
___
### savedInManager
`Optional` **savedInManager**: `boolean`
---
url: /auto-docs/core/interfaces/EntityRegistry.md
---
# Interface: EntityRegistry\
注册类
## Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`Entity`](../classes/Entity-1.md) = [`Entity`](../classes/Entity-1.md) |
## Table of contents
### Constructors
- [constructor](./EntityRegistry.md#constructor)
### Properties
- [type](./EntityRegistry.md#type)
## Constructors
### constructor
**new EntityRegistry**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `any` |
## Properties
### type
`Readonly` **type**: `E`[``"type"``]
---
url: /auto-docs/core/interfaces/LayerEntitiesSelector.md
---
# Interface: LayerEntitiesSelector
## Table of contents
### Properties
- [datas](./LayerEntitiesSelector.md#datas)
- [entities](./LayerEntitiesSelector.md#entities)
- [lastDataVersion](./LayerEntitiesSelector.md#lastdataversion)
- [lastEntityVersion](./LayerEntitiesSelector.md#lastentityversion)
## Properties
### datas
**datas**: [[`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\>, [`EntityDataRegistry`](./EntityDataRegistry.md)\<[`EntityData`](../classes/EntityData.md)\<`any`, {}\>\>][]
___
### entities
**entities**: [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\>[]
___
### lastDataVersion
`Optional` **lastDataVersion**: `SelectorVersion`
___
### lastEntityVersion
`Optional` **lastEntityVersion**: `SelectorVersion`
---
url: /auto-docs/core/interfaces/LayerOptions.md
---
# Interface: LayerOptions
---
url: /auto-docs/core/interfaces/LayerRegistry.md
---
# Interface: LayerRegistry\
## Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`Layer`](../classes/Layer.md) = [`Layer`](../classes/Layer.md) |
## Table of contents
### Constructors
- [constructor](./LayerRegistry.md#constructor)
## Constructors
### constructor
**new LayerRegistry**()
---
url: /auto-docs/core/interfaces/LoggerProps.md
---
# Interface: LoggerProps
## Table of contents
### Properties
- [event](./LoggerProps.md#event)
- [props](./LoggerProps.md#props)
## Properties
### event
**event**: [`LoggerEvent`](../enums/LoggerEvent.md)
___
### props
`Optional` **props**: `Record`\<`string`, `any`\>
---
url: /auto-docs/core/interfaces/NodeSchema.md
---
# Interface: NodeSchema
## Hierarchy
- **`NodeSchema`**
↳ [`TransformNodeSchema`](./TransformNodeSchema.md)
## Table of contents
### Properties
- [id](./NodeSchema.md#id)
- [name](./NodeSchema.md#name)
## Properties
### id
**id**: `string`
___
### name
`Optional` **name**: `string`
---
url: /auto-docs/core/interfaces/OriginSchema.md
---
# Interface: OriginSchema
## Implemented by
- [`OriginData`](../classes/OriginData.md)
## Table of contents
### Properties
- [x](./OriginSchema.md#x)
- [y](./OriginSchema.md#y)
## Properties
### x
**x**: `number`
___
### y
**y**: `number`
---
url: /auto-docs/core/interfaces/PipelineDimension.md
---
# Interface: PipelineDimension
## Table of contents
### Properties
- [height](./PipelineDimension.md#height)
- [width](./PipelineDimension.md#width)
## Properties
### height
**height**: `number`
___
### width
**width**: `number`
---
url: /auto-docs/core/interfaces/PipelineEntities.md
---
# Interface: PipelineEntities
注入到 Layer 中的实体选择器
## Hierarchy
- `Iterable`\<[`Entity`](../classes/Entity-1.md)\>
↳ **`PipelineEntities`**
## Implemented by
- [`PipelineEntitiesImpl`](../classes/PipelineEntitiesImpl.md)
## Table of contents
### Properties
- [createEntity](./PipelineEntities.md#createentity)
- [removeEntities](./PipelineEntities.md#removeentities)
- [size](./PipelineEntities.md#size)
### Methods
- [[iterator]](PipelineEntities.md#[iterator])
- [get](./PipelineEntities.md#get)
- [getConfig](./PipelineEntities.md#getconfig)
- [getEntities](./PipelineEntities.md#getentities)
- [getEntityDatas](./PipelineEntities.md#getentitydatas)
- [has](./PipelineEntities.md#has)
- [updateConfig](./PipelineEntities.md#updateconfig)
## Properties
### createEntity
**createEntity**: \(`registry`: [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\>, `opts?`: `Omit`\<`E`[``"__opts_type__"``], ``"entityManager"``\>) => `E`
#### Type declaration
\<`E`\>(`registry`, `opts?`): `E`
创建实体
##### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md), `E`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\> |
| `opts?` | `Omit`\<`E`[``"__opts_type__"``], ``"entityManager"``\> |
##### Returns
`E`
___
### removeEntities
**removeEntities**: (`registry`: [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\>) => `void`
#### Type declaration
(`registry`): `void`
批量删除实体
##### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\> |
##### Returns
`void`
___
### size
`Readonly` **size**: `number`
当前画布订阅的实体数目
## Methods
### [iterator]
**[iterator]**(): `Iterator`\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>, `any`, `undefined`\>
#### Returns
`Iterator`\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>, `any`, `undefined`\>
#### Inherited from
Iterable.[iterator]
___
### get
**get**\<`T`\>(`registry`, `id?`): `undefined` \| `T`
获取单个实体,如果该实体是单例且被注册过,则会自动创建
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\> |
| `id?` | `string` |
#### Returns
`undefined` \| `T`
___
### getConfig
**getConfig**\<`E`\>(`registry`): `undefined` \| `E`[``"config"``]
获取配置信息
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`ConfigEntity`](../classes/ConfigEntity.md)\<[`ConfigEntityProps`](./ConfigEntityProps.md), [`EntityOpts`](./EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\> |
#### Returns
`undefined` \| `E`[``"config"``]
___
### getEntities
**getEntities**\<`T`\>(`registry`): `T`[]
获取多个实体
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\> |
#### Returns
`T`[]
___
### getEntityDatas
**getEntityDatas**\<`T`\>(`entityRegistry`, `dataRegistry`): `T`[]
获取 entity
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`EntityData`](../classes/EntityData.md)\<`any`, {}, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\> |
| `dataRegistry` | `T` |
#### Returns
`T`[]
___
### has
**has**(`registry`): `boolean`
是否存在
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\> |
#### Returns
`boolean`
___
### updateConfig
**updateConfig**\<`E`\>(`registry`, `props`): `void`
更新配置数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`ConfigEntity`](../classes/ConfigEntity.md)\<[`ConfigEntityProps`](./ConfigEntityProps.md), [`EntityOpts`](./EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](./EntityRegistry.md)\<[`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>\> |
| `props` | `Partial`\<`E`[``"config"``]\> |
#### Returns
`void`
---
url: /auto-docs/core/interfaces/PipelineEventRegsiter.md
---
# Interface: PipelineEventRegsiter
## Table of contents
### Properties
- [handle](./PipelineEventRegsiter.md#handle)
- [priority](./PipelineEventRegsiter.md#priority)
## Properties
### handle
**handle**: [`PipelineEventHandler`](../types/PipelineEventHandler.md)
___
### priority
**priority**: `number`
---
url: /auto-docs/core/interfaces/PlaygroundConfig.md
---
# Interface: PlaygroundConfig
画布配置
## Table of contents
### Properties
- [autoFocus](./PlaygroundConfig.md#autofocus)
- [autoResize](./PlaygroundConfig.md#autoresize)
- [context](./PlaygroundConfig.md#context)
- [contextMenuPath](./PlaygroundConfig.md#contextmenupath)
- [editorStates](./PlaygroundConfig.md#editorstates)
- [entityConfigs](./PlaygroundConfig.md#entityconfigs)
- [height](./PlaygroundConfig.md#height)
- [layers](./PlaygroundConfig.md#layers)
- [node](./PlaygroundConfig.md#node)
- [width](./PlaygroundConfig.md#width)
- [zoomEnable](./PlaygroundConfig.md#zoomenable)
## Properties
### autoFocus
`Optional` **autoFocus**: `boolean`
___
### autoResize
`Optional` **autoResize**: `boolean`
___
### context
`Optional` **context**: `any`
___
### contextMenuPath
`Optional` **contextMenuPath**: `string`[]
___
### editorStates
`Optional` **editorStates**: [`EditorState`](./EditorState-1.md)[]
___
### entityConfigs
`Optional` **entityConfigs**: `Map`\<[`EntityRegistry`](./EntityRegistry.md)\<[`ConfigEntity`](../classes/ConfigEntity.md)\<[`ConfigEntityProps`](./ConfigEntityProps.md), [`EntityOpts`](./EntityOpts.md)\>\>, `any`\>
___
### height
`Optional` **height**: `number`
___
### layers
`Optional` **layers**: [`LayerRegistry`](./LayerRegistry.md)\<[`Layer`](../classes/Layer.md)\<`any`, `any`\>\>[]
___
### node
`Optional` **node**: `HTMLElement`
___
### width
`Optional` **width**: `number`
___
### zoomEnable
`Optional` **zoomEnable**: `boolean`
---
url: /auto-docs/core/interfaces/PlaygroundConfigEntityData.md
---
# Interface: PlaygroundConfigEntityData
## Table of contents
### Properties
- [disabled](./PlaygroundConfigEntityData.md#disabled)
- [grabDisable](./PlaygroundConfigEntityData.md#grabdisable)
- [height](./PlaygroundConfigEntityData.md#height)
- [maxZoom](./PlaygroundConfigEntityData.md#maxzoom)
- [minZoom](./PlaygroundConfigEntityData.md#minzoom)
- [mouseScrollDelta](./PlaygroundConfigEntityData.md#mousescrolldelta)
- [originX](./PlaygroundConfigEntityData.md#originx)
- [originY](./PlaygroundConfigEntityData.md#originy)
- [overflowX](./PlaygroundConfigEntityData.md#overflowx)
- [overflowY](./PlaygroundConfigEntityData.md#overflowy)
- [pageBounds](./PlaygroundConfigEntityData.md#pagebounds)
- [readonly](./PlaygroundConfigEntityData.md#readonly)
- [reverseScroll](./PlaygroundConfigEntityData.md#reversescroll)
- [scrollDisable](./PlaygroundConfigEntityData.md#scrolldisable)
- [scrollLimitX](./PlaygroundConfigEntityData.md#scrolllimitx)
- [scrollLimitY](./PlaygroundConfigEntityData.md#scrolllimity)
- [scrollX](./PlaygroundConfigEntityData.md#scrollx)
- [scrollY](./PlaygroundConfigEntityData.md#scrolly)
- [width](./PlaygroundConfigEntityData.md#width)
- [zoom](./PlaygroundConfigEntityData.md#zoom)
- [zoomDisable](./PlaygroundConfigEntityData.md#zoomdisable)
## Properties
### disabled
**disabled**: `boolean`
___
### grabDisable
**grabDisable**: `boolean`
___
### height
**height**: `number`
___
### maxZoom
**maxZoom**: `number`
___
### minZoom
**minZoom**: `number`
___
### mouseScrollDelta
`Optional` **mouseScrollDelta**: `number` \| (`zoom`: `number`) => `number`
___
### originX
**originX**: `number`
___
### originY
**originY**: `number`
___
### overflowX
**overflowX**: ``"hidden"`` \| ``"scroll"``
___
### overflowY
**overflowY**: ``"hidden"`` \| ``"scroll"``
___
### pageBounds
`Optional` **pageBounds**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `height` | `number` |
| `width` | `number` |
| `x` | `number` |
| `y` | `number` |
___
### readonly
**readonly**: `boolean`
___
### reverseScroll
**reverseScroll**: `boolean`
___
### scrollDisable
**scrollDisable**: `boolean`
___
### scrollLimitX
`Optional` **scrollLimitX**: `number`
___
### scrollLimitY
`Optional` **scrollLimitY**: `number`
___
### scrollX
**scrollX**: `number`
___
### scrollY
**scrollY**: `number`
___
### width
**width**: `number`
___
### zoom
**zoom**: `number`
___
### zoomDisable
**zoomDisable**: `boolean`
---
url: /auto-docs/core/interfaces/PlaygroundConfigRevealOpts.md
---
# Interface: PlaygroundConfigRevealOpts
## Table of contents
### Properties
- [bounds](./PlaygroundConfigRevealOpts.md#bounds)
- [easing](./PlaygroundConfigRevealOpts.md#easing)
- [easingDuration](./PlaygroundConfigRevealOpts.md#easingduration)
- [entities](./PlaygroundConfigRevealOpts.md#entities)
- [position](./PlaygroundConfigRevealOpts.md#position)
- [scrollDelta](./PlaygroundConfigRevealOpts.md#scrolldelta)
- [scrollToCenter](./PlaygroundConfigRevealOpts.md#scrolltocenter)
- [zoom](./PlaygroundConfigRevealOpts.md#zoom)
## Properties
### bounds
`Optional` **bounds**: `Rectangle`
___
### easing
`Optional` **easing**: `boolean`
___
### easingDuration
`Optional` **easingDuration**: `number`
___
### entities
`Optional` **entities**: [`Entity`](../classes/Entity-1.md)\<[`EntityOpts`](./EntityOpts.md)\>[]
___
### position
`Optional` **position**: [`PositionSchema`](./PositionSchema.md)
___
### scrollDelta
`Optional` **scrollDelta**: [`PositionSchema`](./PositionSchema.md)
___
### scrollToCenter
`Optional` **scrollToCenter**: `boolean`
___
### zoom
`Optional` **zoom**: `number`
---
url: /auto-docs/core/interfaces/PlaygroundContainerFactory.md
---
# Interface: PlaygroundContainerFactory
## Table of contents
### Properties
- [createChild](./PlaygroundContainerFactory.md#createchild)
- [get](./PlaygroundContainerFactory.md#get)
- [getAll](./PlaygroundContainerFactory.md#getall)
## Properties
### createChild
**createChild**: () => `Container`
#### Type declaration
(): `Container`
##### Returns
`Container`
___
### get
**get**: \(`serviceIdentifier`: `ServiceIdentifier`\<`T`\>) => `T`
#### Type declaration
\<`T`\>(`serviceIdentifier`): `T`
##### Type parameters
| Name |
| :------ |
| `T` |
##### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | `ServiceIdentifier`\<`T`\> |
##### Returns
`T`
___
### getAll
**getAll**: \(`serviceIdentifier`: `ServiceIdentifier`\<`T`\>, `options?`: `GetAllOptions`) => `T`[]
#### Type declaration
\<`T`\>(`serviceIdentifier`, `options?`): `T`[]
##### Type parameters
| Name |
| :------ |
| `T` |
##### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | `ServiceIdentifier`\<`T`\> |
| `options?` | `GetAllOptions` |
##### Returns
`T`[]
---
url: /auto-docs/core/interfaces/PlaygroundContribution.md
---
# Interface: PlaygroundContribution
## Table of contents
### Methods
- [onAllLayersRendered](./PlaygroundContribution.md#onalllayersrendered)
- [onDispose](./PlaygroundContribution.md#ondispose)
- [onInit](./PlaygroundContribution.md#oninit)
- [onReady](./PlaygroundContribution.md#onready)
- [registerPlayground](./PlaygroundContribution.md#registerplayground)
## Methods
### onAllLayersRendered
`Optional` **onAllLayersRendered**(`playground`): `void`
所有 Layer 第一次渲染完毕后触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `playground` | [`Playground`](../classes/Playground.md)\<`any`\> |
#### Returns
`void`
___
### onDispose
`Optional` **onDispose**(`playground`): `void`
销毁
#### Parameters
| Name | Type |
| :------ | :------ |
| `playground` | [`Playground`](../classes/Playground.md)\<`any`\> |
#### Returns
`void`
___
### onInit
`Optional` **onInit**(`playground`): `void`
初始化画布 (onReady 之前)
#### Parameters
| Name | Type |
| :------ | :------ |
| `playground` | [`Playground`](../classes/Playground.md)\<`any`\> |
#### Returns
`void`
___
### onReady
`Optional` **onReady**(`playground`): `void`
初始化 entity 完毕后触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `playground` | [`Playground`](../classes/Playground.md)\<`any`\> |
#### Returns
`void`
___
### registerPlayground
`Optional` **registerPlayground**(`registry`): `void`
注册 Layer/Entity/Able 相关
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`PlaygroundRegistry`](../classes/PlaygroundRegistry.md) |
#### Returns
`void`
**`Deprecated`**
---
url: /auto-docs/core/interfaces/PlaygroundDragEntitiesOpts.md
---
# Interface: PlaygroundDragEntitiesOpts\
## Type parameters
| Name |
| :------ |
| `T` |
## Hierarchy
- [`PlaygroundDragOptions`](./PlaygroundDragOptions.md)\<`T`\>
↳ **`PlaygroundDragEntitiesOpts`**
## Table of contents
### Properties
- [adsorbRefs](./PlaygroundDragEntitiesOpts.md#adsorbrefs)
- [config](./PlaygroundDragEntitiesOpts.md#config)
- [context](./PlaygroundDragEntitiesOpts.md#context)
- [onDrag](./PlaygroundDragEntitiesOpts.md#ondrag)
- [onDragEnd](./PlaygroundDragEntitiesOpts.md#ondragend)
- [onDragStart](./PlaygroundDragEntitiesOpts.md#ondragstart)
- [stopGlobalEventNames](./PlaygroundDragEntitiesOpts.md#stopglobaleventnames)
## Properties
### adsorbRefs
`Optional` **adsorbRefs**: `Rectangle`[]
___
### config
`Optional` **config**: [`PlaygroundConfigEntity`](../classes/PlaygroundConfigEntity.md)
___
### context
`Optional` **context**: `T`
___
### onDrag
`Optional` **onDrag**: (`e`: [`PlaygroundDragEvent`](./PlaygroundDragEvent.md), `context?`: `T`) => `void`
#### Type declaration
(`e`, `context?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `e` | [`PlaygroundDragEvent`](./PlaygroundDragEvent.md) |
| `context?` | `T` |
##### Returns
`void`
#### Inherited from
[PlaygroundDragOptions](./PlaygroundDragOptions.md).[onDrag](./PlaygroundDragOptions.md#ondrag)
___
### onDragEnd
`Optional` **onDragEnd**: (`e`: [`PlaygroundDragEvent`](./PlaygroundDragEvent.md), `context?`: `T`) => `void`
#### Type declaration
(`e`, `context?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `e` | [`PlaygroundDragEvent`](./PlaygroundDragEvent.md) |
| `context?` | `T` |
##### Returns
`void`
#### Inherited from
[PlaygroundDragOptions](./PlaygroundDragOptions.md).[onDragEnd](./PlaygroundDragOptions.md#ondragend)
___
### onDragStart
`Optional` **onDragStart**: (`e`: [`PlaygroundDragEvent`](./PlaygroundDragEvent.md), `context?`: `T`) => `void`
#### Type declaration
(`e`, `context?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `e` | [`PlaygroundDragEvent`](./PlaygroundDragEvent.md) |
| `context?` | `T` |
##### Returns
`void`
#### Inherited from
[PlaygroundDragOptions](./PlaygroundDragOptions.md).[onDragStart](./PlaygroundDragOptions.md#ondragstart)
___
### stopGlobalEventNames
`Optional` **stopGlobalEventNames**: `string`[]
#### Inherited from
[PlaygroundDragOptions](./PlaygroundDragOptions.md).[stopGlobalEventNames](./PlaygroundDragOptions.md#stopglobaleventnames)
---
url: /auto-docs/core/interfaces/PlaygroundDragEvent.md
---
# Interface: PlaygroundDragEvent
## Hierarchy
- `MouseEvent`
↳ **`PlaygroundDragEvent`**
## Table of contents
### Properties
- [AT\_TARGET](./PlaygroundDragEvent.md#at_target)
- [BUBBLING\_PHASE](./PlaygroundDragEvent.md#bubbling_phase)
- [CAPTURING\_PHASE](./PlaygroundDragEvent.md#capturing_phase)
- [NONE](./PlaygroundDragEvent.md#none)
- [altKey](./PlaygroundDragEvent.md#altkey)
- [bubbles](./PlaygroundDragEvent.md#bubbles)
- [button](./PlaygroundDragEvent.md#button)
- [buttons](./PlaygroundDragEvent.md#buttons)
- [cancelBubble](./PlaygroundDragEvent.md#cancelbubble)
- [cancelable](./PlaygroundDragEvent.md#cancelable)
- [clientX](./PlaygroundDragEvent.md#clientx)
- [clientY](./PlaygroundDragEvent.md#clienty)
- [composed](./PlaygroundDragEvent.md#composed)
- [ctrlKey](./PlaygroundDragEvent.md#ctrlkey)
- [currentTarget](./PlaygroundDragEvent.md#currenttarget)
- [defaultPrevented](./PlaygroundDragEvent.md#defaultprevented)
- [detail](./PlaygroundDragEvent.md#detail)
- [endPos](./PlaygroundDragEvent.md#endpos)
- [eventPhase](./PlaygroundDragEvent.md#eventphase)
- [id](./PlaygroundDragEvent.md#id)
- [isMoving](./PlaygroundDragEvent.md#ismoving)
- [isStart](./PlaygroundDragEvent.md#isstart)
- [isTrusted](./PlaygroundDragEvent.md#istrusted)
- [metaKey](./PlaygroundDragEvent.md#metakey)
- [movementX](./PlaygroundDragEvent.md#movementx)
- [movementY](./PlaygroundDragEvent.md#movementy)
- [movingDelta](./PlaygroundDragEvent.md#movingdelta)
- [offsetX](./PlaygroundDragEvent.md#offsetx)
- [offsetY](./PlaygroundDragEvent.md#offsety)
- [pageX](./PlaygroundDragEvent.md#pagex)
- [pageY](./PlaygroundDragEvent.md#pagey)
- [relatedTarget](./PlaygroundDragEvent.md#relatedtarget)
- [returnValue](./PlaygroundDragEvent.md#returnvalue)
- [scale](./PlaygroundDragEvent.md#scale)
- [screenX](./PlaygroundDragEvent.md#screenx)
- [screenY](./PlaygroundDragEvent.md#screeny)
- [shiftKey](./PlaygroundDragEvent.md#shiftkey)
- [srcElement](./PlaygroundDragEvent.md#srcelement)
- [startPos](./PlaygroundDragEvent.md#startpos)
- [target](./PlaygroundDragEvent.md#target)
- [timeStamp](./PlaygroundDragEvent.md#timestamp)
- [type](./PlaygroundDragEvent.md#type)
- [view](./PlaygroundDragEvent.md#view)
- [which](./PlaygroundDragEvent.md#which)
- [x](./PlaygroundDragEvent.md#x)
- [y](./PlaygroundDragEvent.md#y)
### Methods
- [composedPath](./PlaygroundDragEvent.md#composedpath)
- [getModifierState](./PlaygroundDragEvent.md#getmodifierstate)
- [initEvent](./PlaygroundDragEvent.md#initevent)
- [initMouseEvent](./PlaygroundDragEvent.md#initmouseevent)
- [initUIEvent](./PlaygroundDragEvent.md#inituievent)
- [preventDefault](./PlaygroundDragEvent.md#preventdefault)
- [stopImmediatePropagation](./PlaygroundDragEvent.md#stopimmediatepropagation)
- [stopPropagation](./PlaygroundDragEvent.md#stoppropagation)
## Properties
### AT\_TARGET
`Readonly` **AT\_TARGET**: ``2``
#### Inherited from
MouseEvent.AT\_TARGET
___
### BUBBLING\_PHASE
`Readonly` **BUBBLING\_PHASE**: ``3``
#### Inherited from
MouseEvent.BUBBLING\_PHASE
___
### CAPTURING\_PHASE
`Readonly` **CAPTURING\_PHASE**: ``1``
#### Inherited from
MouseEvent.CAPTURING\_PHASE
___
### NONE
`Readonly` **NONE**: ``0``
#### Inherited from
MouseEvent.NONE
___
### altKey
`Readonly` **altKey**: `boolean`
#### Inherited from
MouseEvent.altKey
___
### bubbles
`Readonly` **bubbles**: `boolean`
Returns true or false depending on how event was initialized. True if event goes through its target's ancestors in reverse tree order, and false otherwise.
#### Inherited from
MouseEvent.bubbles
___
### button
`Readonly` **button**: `number`
#### Inherited from
MouseEvent.button
___
### buttons
`Readonly` **buttons**: `number`
#### Inherited from
MouseEvent.buttons
___
### cancelBubble
**cancelBubble**: `boolean`
**`Deprecated`**
#### Inherited from
MouseEvent.cancelBubble
___
### cancelable
`Readonly` **cancelable**: `boolean`
Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method.
#### Inherited from
MouseEvent.cancelable
___
### clientX
`Readonly` **clientX**: `number`
#### Inherited from
MouseEvent.clientX
___
### clientY
`Readonly` **clientY**: `number`
#### Inherited from
MouseEvent.clientY
___
### composed
`Readonly` **composed**: `boolean`
Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise.
#### Inherited from
MouseEvent.composed
___
### ctrlKey
`Readonly` **ctrlKey**: `boolean`
#### Inherited from
MouseEvent.ctrlKey
___
### currentTarget
`Readonly` **currentTarget**: ``null`` \| `EventTarget`
Returns the object whose event listener's callback is currently being invoked.
#### Inherited from
MouseEvent.currentTarget
___
### defaultPrevented
`Readonly` **defaultPrevented**: `boolean`
Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise.
#### Inherited from
MouseEvent.defaultPrevented
___
### detail
`Readonly` **detail**: `number`
#### Inherited from
MouseEvent.detail
___
### endPos
**endPos**: [`PositionSchema`](./PositionSchema.md)
___
### eventPhase
`Readonly` **eventPhase**: `number`
Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE.
#### Inherited from
MouseEvent.eventPhase
___
### id
**id**: `number`
___
### isMoving
**isMoving**: `boolean`
___
### isStart
**isStart**: `boolean`
___
### isTrusted
`Readonly` **isTrusted**: `boolean`
Returns true if event was dispatched by the user agent, and false otherwise.
#### Inherited from
MouseEvent.isTrusted
___
### metaKey
`Readonly` **metaKey**: `boolean`
#### Inherited from
MouseEvent.metaKey
___
### movementX
`Readonly` **movementX**: `number`
#### Inherited from
MouseEvent.movementX
___
### movementY
`Readonly` **movementY**: `number`
#### Inherited from
MouseEvent.movementY
___
### movingDelta
**movingDelta**: [`PositionSchema`](./PositionSchema.md)
___
### offsetX
`Readonly` **offsetX**: `number`
#### Inherited from
MouseEvent.offsetX
___
### offsetY
`Readonly` **offsetY**: `number`
#### Inherited from
MouseEvent.offsetY
___
### pageX
`Readonly` **pageX**: `number`
#### Inherited from
MouseEvent.pageX
___
### pageY
`Readonly` **pageY**: `number`
#### Inherited from
MouseEvent.pageY
___
### relatedTarget
`Readonly` **relatedTarget**: ``null`` \| `EventTarget`
#### Inherited from
MouseEvent.relatedTarget
___
### returnValue
**returnValue**: `boolean`
**`Deprecated`**
#### Inherited from
MouseEvent.returnValue
___
### scale
**scale**: `number`
___
### screenX
`Readonly` **screenX**: `number`
#### Inherited from
MouseEvent.screenX
___
### screenY
`Readonly` **screenY**: `number`
#### Inherited from
MouseEvent.screenY
___
### shiftKey
`Readonly` **shiftKey**: `boolean`
#### Inherited from
MouseEvent.shiftKey
___
### srcElement
`Readonly` **srcElement**: ``null`` \| `EventTarget`
**`Deprecated`**
#### Inherited from
MouseEvent.srcElement
___
### startPos
**startPos**: [`PositionSchema`](./PositionSchema.md)
___
### target
`Readonly` **target**: ``null`` \| `EventTarget`
Returns the object to which event is dispatched (its target).
#### Inherited from
MouseEvent.target
___
### timeStamp
`Readonly` **timeStamp**: `number`
Returns the event's timestamp as the number of milliseconds measured relative to the time origin.
#### Inherited from
MouseEvent.timeStamp
___
### type
`Readonly` **type**: `string`
Returns the type of event, e.g. "click", "hashchange", or "submit".
#### Inherited from
MouseEvent.type
___
### view
`Readonly` **view**: ``null`` \| `Window`
#### Inherited from
MouseEvent.view
___
### which
`Readonly` **which**: `number`
**`Deprecated`**
#### Inherited from
MouseEvent.which
___
### x
`Readonly` **x**: `number`
#### Inherited from
MouseEvent.x
___
### y
`Readonly` **y**: `number`
#### Inherited from
MouseEvent.y
## Methods
### composedPath
**composedPath**(): `EventTarget`[]
Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget.
#### Returns
`EventTarget`[]
#### Inherited from
MouseEvent.composedPath
___
### getModifierState
**getModifierState**(`keyArg`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `keyArg` | `string` |
#### Returns
`boolean`
#### Inherited from
MouseEvent.getModifierState
___
### initEvent
**initEvent**(`type`, `bubbles?`, `cancelable?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` |
| `bubbles?` | `boolean` |
| `cancelable?` | `boolean` |
#### Returns
`void`
**`Deprecated`**
#### Inherited from
MouseEvent.initEvent
___
### initMouseEvent
**initMouseEvent**(`typeArg`, `canBubbleArg`, `cancelableArg`, `viewArg`, `detailArg`, `screenXArg`, `screenYArg`, `clientXArg`, `clientYArg`, `ctrlKeyArg`, `altKeyArg`, `shiftKeyArg`, `metaKeyArg`, `buttonArg`, `relatedTargetArg`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `typeArg` | `string` |
| `canBubbleArg` | `boolean` |
| `cancelableArg` | `boolean` |
| `viewArg` | `Window` |
| `detailArg` | `number` |
| `screenXArg` | `number` |
| `screenYArg` | `number` |
| `clientXArg` | `number` |
| `clientYArg` | `number` |
| `ctrlKeyArg` | `boolean` |
| `altKeyArg` | `boolean` |
| `shiftKeyArg` | `boolean` |
| `metaKeyArg` | `boolean` |
| `buttonArg` | `number` |
| `relatedTargetArg` | ``null`` \| `EventTarget` |
#### Returns
`void`
**`Deprecated`**
#### Inherited from
MouseEvent.initMouseEvent
___
### initUIEvent
**initUIEvent**(`typeArg`, `bubblesArg?`, `cancelableArg?`, `viewArg?`, `detailArg?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `typeArg` | `string` |
| `bubblesArg?` | `boolean` |
| `cancelableArg?` | `boolean` |
| `viewArg?` | ``null`` \| `Window` |
| `detailArg?` | `number` |
#### Returns
`void`
**`Deprecated`**
#### Inherited from
MouseEvent.initUIEvent
___
### preventDefault
**preventDefault**(): `void`
If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled.
#### Returns
`void`
#### Inherited from
MouseEvent.preventDefault
___
### stopImmediatePropagation
**stopImmediatePropagation**(): `void`
Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects.
#### Returns
`void`
#### Inherited from
MouseEvent.stopImmediatePropagation
___
### stopPropagation
**stopPropagation**(): `void`
When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.
#### Returns
`void`
#### Inherited from
MouseEvent.stopPropagation
---
url: /auto-docs/core/interfaces/PlaygroundDragOptions.md
---
# Interface: PlaygroundDragOptions\
## Type parameters
| Name |
| :------ |
| `T` |
## Hierarchy
- **`PlaygroundDragOptions`**
↳ [`PlaygroundDragEntitiesOpts`](./PlaygroundDragEntitiesOpts.md)
## Table of contents
### Properties
- [onDrag](./PlaygroundDragOptions.md#ondrag)
- [onDragEnd](./PlaygroundDragOptions.md#ondragend)
- [onDragStart](./PlaygroundDragOptions.md#ondragstart)
- [stopGlobalEventNames](./PlaygroundDragOptions.md#stopglobaleventnames)
## Properties
### onDrag
`Optional` **onDrag**: (`e`: [`PlaygroundDragEvent`](./PlaygroundDragEvent.md), `context?`: `T`) => `void`
#### Type declaration
(`e`, `context?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `e` | [`PlaygroundDragEvent`](./PlaygroundDragEvent.md) |
| `context?` | `T` |
##### Returns
`void`
___
### onDragEnd
`Optional` **onDragEnd**: (`e`: [`PlaygroundDragEvent`](./PlaygroundDragEvent.md), `context?`: `T`) => `void`
#### Type declaration
(`e`, `context?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `e` | [`PlaygroundDragEvent`](./PlaygroundDragEvent.md) |
| `context?` | `T` |
##### Returns
`void`
___
### onDragStart
`Optional` **onDragStart**: (`e`: [`PlaygroundDragEvent`](./PlaygroundDragEvent.md), `context?`: `T`) => `void`
#### Type declaration
(`e`, `context?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `e` | [`PlaygroundDragEvent`](./PlaygroundDragEvent.md) |
| `context?` | `T` |
##### Returns
`void`
___
### stopGlobalEventNames
`Optional` **stopGlobalEventNames**: `string`[]
---
url: /auto-docs/core/interfaces/PlaygroundLayerOptions.md
---
# Interface: PlaygroundLayerOptions
## Hierarchy
- [`LayerOptions`](../variables/LayerOptions-1.md)
↳ **`PlaygroundLayerOptions`**
## Table of contents
### Properties
- [hoverService](./PlaygroundLayerOptions.md#hoverservice)
- [ineractiveType](./PlaygroundLayerOptions.md#ineractivetype)
- [preventGlobalGesture](./PlaygroundLayerOptions.md#preventglobalgesture)
## Properties
### hoverService
`Optional` **hoverService**: `Object`
悬浮服务
#### Type declaration
| Name | Type |
| :------ | :------ |
| `clearHovered` | () => `void` |
| `isSomeHovered` | () => `boolean` |
| `updateHoverPosition` | (`position`: [`PositionSchema`](./PositionSchema.md), `target?`: `HTMLElement`) => `void` |
___
### ineractiveType
`Optional` **ineractiveType**: [`PlaygroundInteractiveType`](../types/PlaygroundInteractiveType.md)
___
### preventGlobalGesture
`Optional` **preventGlobalGesture**: `boolean`
阻止浏览器默认的手势(苹果触摸板),包含:放大缩小、左右滑动翻页,默认为 false
---
url: /auto-docs/core/interfaces/PlaygroundReactProviderProps.md
---
# Interface: PlaygroundReactProviderProps
## Table of contents
### Properties
- [autoFocus](./PlaygroundReactProviderProps.md#autofocus)
- [autoResize](./PlaygroundReactProviderProps.md#autoresize)
- [children](./PlaygroundReactProviderProps.md#children)
- [containerModules](./PlaygroundReactProviderProps.md#containermodules)
- [customPluginContext](./PlaygroundReactProviderProps.md#customplugincontext)
- [parentContainer](./PlaygroundReactProviderProps.md#parentcontainer)
- [playgroundContainer](./PlaygroundReactProviderProps.md#playgroundcontainer)
- [playgroundContext](./PlaygroundReactProviderProps.md#playgroundcontext)
- [plugins](./PlaygroundReactProviderProps.md#plugins)
- [zoomEnable](./PlaygroundReactProviderProps.md#zoomenable)
## Properties
### autoFocus
`Optional` **autoFocus**: `boolean`
___
### autoResize
`Optional` **autoResize**: `boolean`
___
### children
`Optional` **children**: `ReactNode`
___
### containerModules
`Optional` **containerModules**: `ContainerModule`[]
___
### customPluginContext
`Optional` **customPluginContext**: (`container`: `Container`) => [`PluginContext`](../variables/PluginContext-1.md)
#### Type declaration
(`container`): [`PluginContext`](../variables/PluginContext-1.md)
##### Parameters
| Name | Type |
| :------ | :------ |
| `container` | `Container` |
##### Returns
[`PluginContext`](../variables/PluginContext-1.md)
___
### parentContainer
`Optional` **parentContainer**: `Container`
___
### playgroundContainer
`Optional` **playgroundContainer**: `Container`
___
### playgroundContext
`Optional` **playgroundContext**: `any`
___
### plugins
`Optional` **plugins**: [`PluginsProvider`](./PluginsProvider.md)\<`any`\>
___
### zoomEnable
`Optional` **zoomEnable**: `boolean`
---
url: /auto-docs/core/interfaces/PlaygroundReactRendererProps.md
---
# Interface: PlaygroundReactRendererProps
## Table of contents
### Properties
- [children](./PlaygroundReactRendererProps.md#children)
- [className](./PlaygroundReactRendererProps.md#classname)
- [style](./PlaygroundReactRendererProps.md#style)
## Properties
### children
`Optional` **children**: `ReactNode`
这个会放到 playground node 下边
___
### className
`Optional` **className**: `string`
___
### style
`Optional` **style**: `CSSProperties`
---
url: /auto-docs/core/interfaces/PluginBindConfig.md
---
# Interface: PluginBindConfig
## Table of contents
### Properties
- [bind](./PluginBindConfig.md#bind)
- [isBound](./PluginBindConfig.md#isbound)
- [rebind](./PluginBindConfig.md#rebind)
- [unbind](./PluginBindConfig.md#unbind)
## Properties
### bind
**bind**: `Bind`
___
### isBound
**isBound**: `IsBound`
___
### rebind
**rebind**: `Rebind`
___
### unbind
**unbind**: `Unbind`
---
url: /auto-docs/core/interfaces/PluginConfig.md
---
# Interface: PluginConfig\
## Type parameters
| Name | Type |
| :------ | :------ |
| `Opts` | `Opts` |
| `CTX` | extends [`PluginContext`](../variables/PluginContext-1.md) = [`PluginContext`](../variables/PluginContext-1.md) |
## Table of contents
### Properties
- [containerModules](./PluginConfig.md#containermodules)
- [onAllLayersRendered](./PluginConfig.md#onalllayersrendered)
- [onBind](./PluginConfig.md#onbind)
- [onDispose](./PluginConfig.md#ondispose)
- [onInit](./PluginConfig.md#oninit)
- [onReady](./PluginConfig.md#onready)
## Properties
### containerModules
`Optional` **containerModules**: `ContainerModule`[]
IOC 模块,用于更底层的插件扩展
___
### onAllLayersRendered
`Optional` **onAllLayersRendered**: (`ctx`: `CTX`, `opts`: `Opts`) => `void`
#### Type declaration
(`ctx`, `opts`): `void`
画布所有 layer 渲染结束
##### Parameters
| Name | Type |
| :------ | :------ |
| `ctx` | `CTX` |
| `opts` | `Opts` |
##### Returns
`void`
___
### onBind
`Optional` **onBind**: (`bindConfig`: [`PluginBindConfig`](./PluginBindConfig.md), `opts`: `Opts`) => `void`
#### Type declaration
(`bindConfig`, `opts`): `void`
插件 IOC 注册, 等价于 containerModule
##### Parameters
| Name | Type |
| :------ | :------ |
| `bindConfig` | [`PluginBindConfig`](./PluginBindConfig.md) |
| `opts` | `Opts` |
##### Returns
`void`
___
### onDispose
`Optional` **onDispose**: (`ctx`: `CTX`, `opts`: `Opts`) => `void`
#### Type declaration
(`ctx`, `opts`): `void`
画布销毁阶段
##### Parameters
| Name | Type |
| :------ | :------ |
| `ctx` | `CTX` |
| `opts` | `Opts` |
##### Returns
`void`
___
### onInit
`Optional` **onInit**: (`ctx`: `CTX`, `opts`: `Opts`) => `void`
#### Type declaration
(`ctx`, `opts`): `void`
画布注册阶段
##### Parameters
| Name | Type |
| :------ | :------ |
| `ctx` | `CTX` |
| `opts` | `Opts` |
##### Returns
`void`
___
### onReady
`Optional` **onReady**: (`ctx`: `CTX`, `opts`: `Opts`) => `void`
#### Type declaration
(`ctx`, `opts`): `void`
画布准备阶段,一般用于 dom 事件注册等
##### Parameters
| Name | Type |
| :------ | :------ |
| `ctx` | `CTX` |
| `opts` | `Opts` |
##### Returns
`void`
---
url: /auto-docs/core/interfaces/PluginContext.md
---
# Interface: PluginContext
## Table of contents
### Properties
- [container](./PluginContext.md#container)
- [playground](./PluginContext.md#playground)
### Methods
- [get](./PluginContext.md#get)
- [getAll](./PluginContext.md#getall)
## Properties
### container
**container**: `Container`
IOC 容器
___
### playground
**playground**: [`Playground`](../classes/Playground.md)\<`any`\>
画布实例
## Methods
### get
**get**\<`T`\>(`identifier`): `T`
获取 IOC 容器的 单例模块
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
___
### getAll
**getAll**\<`T`\>(`identifier`): `T`[]
获取 IOC 容器的 多例模块
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`[]
---
url: /auto-docs/core/interfaces/PluginsProvider.md
---
# Interface: PluginsProvider\
## Type parameters
| Name | Type |
| :------ | :------ |
| `CTX` | extends [`PluginContext`](../variables/PluginContext-1.md) = [`PluginContext`](../variables/PluginContext-1.md) |
## Callable
### PluginsProvider
**PluginsProvider**(`ctx`): [`Plugin`](../variables/Plugin-1.md)\<`any`\>[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `ctx` | `CTX` |
#### Returns
[`Plugin`](../variables/Plugin-1.md)\<`any`\>[]
---
url: /auto-docs/core/interfaces/PositionSchema.md
---
# Interface: PositionSchema
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Implemented by
- [`PositionData`](../classes/PositionData.md)
## Table of contents
### Properties
- [x](./PositionSchema.md#x)
- [y](./PositionSchema.md#y)
## Properties
### x
**x**: `number`
___
### y
**y**: `number`
---
url: /auto-docs/core/interfaces/RegistryInit.md
---
# Interface: RegistryInit
## Callable
### RegistryInit
**RegistryInit**(`target`, `method`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `any` |
| `method` | `string` \| `symbol` |
#### Returns
`void`
---
url: /auto-docs/core/interfaces/RegistryValueGetter.md
---
# Interface: RegistryValueGetter\
## Type parameters
| Name |
| :------ |
| `T` |
## Callable
### RegistryValueGetter
**RegistryValueGetter**(`target`, `method`): `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `any` |
| `method` | `string` \| `symbol` |
#### Returns
`T`
---
url: /auto-docs/core/interfaces/ScaleSchema.md
---
# Interface: ScaleSchema
## Implemented by
- [`ScaleData`](../classes/ScaleData.md)
## Table of contents
### Properties
- [x](./ScaleSchema.md#x)
- [y](./ScaleSchema.md#y)
## Properties
### x
**x**: `number`
___
### y
**y**: `number`
---
url: /auto-docs/core/interfaces/ScrollIntoViewOpts.md
---
# Interface: ScrollIntoViewOpts
## Table of contents
### Properties
- [duration](./ScrollIntoViewOpts.md#duration)
- [scrollX](./ScrollIntoViewOpts.md#scrollx)
- [scrollY](./ScrollIntoViewOpts.md#scrolly)
### Methods
- [getScrollParent](./ScrollIntoViewOpts.md#getscrollparent)
- [getTargetNode](./ScrollIntoViewOpts.md#gettargetnode)
## Properties
### duration
`Optional` **duration**: `number`
___
### scrollX
`Optional` **scrollX**: `boolean`
___
### scrollY
`Optional` **scrollY**: `boolean`
## Methods
### getScrollParent
**getScrollParent**(): `undefined` \| `HTMLElement`
#### Returns
`undefined` \| `HTMLElement`
___
### getTargetNode
**getTargetNode**(): `undefined` \| `HTMLElement`
#### Returns
`undefined` \| `HTMLElement`
---
url: /auto-docs/core/interfaces/SizeSchema-1.md
---
# Interface: SizeSchema
## Implemented by
- [`SizeData`](../classes/SizeData.md)
## Table of contents
### Properties
- [height](./SizeSchema-1.md#height)
- [locked](./SizeSchema-1.md#locked)
- [width](./SizeSchema-1.md#width)
## Properties
### height
**height**: `number`
___
### locked
`Optional` **locked**: `boolean`
___
### width
**width**: `number`
---
url: /auto-docs/core/interfaces/SkewSchema.md
---
# Interface: SkewSchema
## Implemented by
- [`SkewData`](../classes/SkewData.md)
## Table of contents
### Properties
- [x](./SkewSchema.md#x)
- [y](./SkewSchema.md#y)
## Properties
### x
**x**: `number`
___
### y
**y**: `number`
---
url: /auto-docs/core/interfaces/StorageService.md
---
# Interface: StorageService
存储数据到缓存
## Table of contents
### Methods
- [getData](./StorageService.md#getdata)
- [setData](./StorageService.md#setdata)
## Methods
### getData
**getData**\<`T`\>(`key`, `defaultValue`): `T`
Returns the data stored for the given key or the provided default value if nothing is stored for the given key.
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `defaultValue` | `T` |
#### Returns
`T`
**getData**\<`T`\>(`key`): `undefined` \| `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
#### Returns
`undefined` \| `T`
___
### setData
**setData**\<`T`\>(`key`, `data`): `void`
Stores the given data under the given key.
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `data` | `T` |
#### Returns
`void`
---
url: /auto-docs/core/interfaces/TransformNodeSchema.md
---
# Interface: TransformNodeSchema
## Hierarchy
- [`NodeSchema`](./NodeSchema.md)
↳ **`TransformNodeSchema`**
## Table of contents
### Properties
- [id](./TransformNodeSchema.md#id)
- [name](./TransformNodeSchema.md#name)
- [transform](./TransformNodeSchema.md#transform)
## Properties
### id
**id**: `string`
#### Inherited from
[NodeSchema](./NodeSchema.md).[id](./NodeSchema.md#id)
___
### name
`Optional` **name**: `string`
#### Inherited from
[NodeSchema](./NodeSchema.md).[name](./NodeSchema.md#name)
___
### transform
**transform**: [`TransformSchema`](./TransformSchema-1.md)
---
url: /auto-docs/core/interfaces/TransformSchema-1.md
---
# Interface: TransformSchema
## Implemented by
- [`TransformData`](../classes/TransformData-1.md)
## Table of contents
### Properties
- [origin](./TransformSchema-1.md#origin)
- [position](./TransformSchema-1.md#position)
- [rotation](./TransformSchema-1.md#rotation)
- [scale](./TransformSchema-1.md#scale)
- [size](./TransformSchema-1.md#size)
- [skew](./TransformSchema-1.md#skew)
## Properties
### origin
**origin**: [`OriginSchema`](./OriginSchema.md)
___
### position
**position**: [`PositionSchema`](./PositionSchema.md)
___
### rotation
**rotation**: `number`
___
### scale
**scale**: [`ScaleSchema`](./ScaleSchema.md)
___
### size
**size**: [`SizeSchema`](./SizeSchema-1.md)
___
### skew
**skew**: [`SkewSchema`](./SkewSchema.md)
---
url: /auto-docs/core/interfaces/TweenOpts.md
---
# Interface: TweenOpts\
## Type parameters
| Name |
| :------ |
| `V` |
## Table of contents
### Properties
- [duration](./TweenOpts.md#duration)
- [easing](./TweenOpts.md#easing)
- [from](./TweenOpts.md#from)
- [onComplete](./TweenOpts.md#oncomplete)
- [onDispose](./TweenOpts.md#ondispose)
- [onUpdate](./TweenOpts.md#onupdate)
- [to](./TweenOpts.md#to)
## Properties
### duration
**duration**: `number`
___
### easing
`Optional` **easing**: (`num`: `number`) => `number`
#### Type declaration
(`num`): `number`
##### Parameters
| Name | Type |
| :------ | :------ |
| `num` | `number` |
##### Returns
`number`
___
### from
**from**: `V`
___
### onComplete
`Optional` **onComplete**: (`v`: `V`) => `void`
#### Type declaration
(`v`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `v` | `V` |
##### Returns
`void`
___
### onDispose
`Optional` **onDispose**: (`v`: `V`) => `void`
#### Type declaration
(`v`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `v` | `V` |
##### Returns
`void`
___
### onUpdate
`Optional` **onUpdate**: (`v`: `V`) => `void`
#### Type declaration
(`v`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `v` | `V` |
##### Returns
`void`
___
### to
**to**: `V`
---
url: /auto-docs/core/modules/Bounds.md
---
# Namespace: Bounds
## Table of contents
### Functions
- [applyMatrix](../functions/Bounds.applyMatrix.md)
- [getBottomCenter](../functions/Bounds.getBottomCenter.md)
- [getBottomLeft](../functions/Bounds.getBottomLeft.md)
- [getBottomRight](../functions/Bounds.getBottomRight.md)
- [getBounds](../functions/Bounds.getBounds.md)
- [getCenter](../functions/Bounds.getCenter.md)
- [getLeftCenter](../functions/Bounds.getLeftCenter.md)
- [getLeftPointFromBounds](../functions/Bounds.getLeftPointFromBounds.md)
- [getPointWithMatrix](../functions/Bounds.getPointWithMatrix.md)
- [getRightCenter](../functions/Bounds.getRightCenter.md)
- [getTopCenter](../functions/Bounds.getTopCenter.md)
- [getTopLeft](../functions/Bounds.getTopLeft.md)
- [getTopPointFromBounds](../functions/Bounds.getTopPointFromBounds.md)
- [getTopRight](../functions/Bounds.getTopRight.md)
---
url: /auto-docs/core/modules/Command.md
---
# Namespace: Command
## Table of contents
### Enumerations
- [Default](../enums/Command.Default.md)
### Functions
- [is](../functions/Command.is.md)
---
url: /auto-docs/core/modules/EditorState.md
---
# Namespace: EditorState
## Table of contents
### Variables
- [STATE\_GRAB](../variables/EditorState.STATE_GRAB.md)
- [STATE\_MOUSE\_FRIENDLY\_SELECT](../variables/EditorState.STATE_MOUSE_FRIENDLY_SELECT.md)
- [STATE\_SELECT](../variables/EditorState.STATE_SELECT.md)
---
url: /auto-docs/core/modules/Entity.md
---
# Namespace: Entity
## Table of contents
### Functions
- [checkDataChanged](../functions/Entity.checkDataChanged.md)
- [getType](../functions/Entity.getType.md)
- [isRegistryOf](../functions/Entity.isRegistryOf.md)
---
url: /auto-docs/core/modules/MouseTouchEvent.md
---
# Namespace: MouseTouchEvent
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Table of contents
### Functions
- [getEventCoord](../functions/MouseTouchEvent.getEventCoord.md)
- [isTouchEvent](../functions/MouseTouchEvent.isTouchEvent.md)
- [onTouched](../functions/MouseTouchEvent.onTouched.md)
- [preventDefault](../functions/MouseTouchEvent.preventDefault.md)
- [touchToMouseEvent](../functions/MouseTouchEvent.touchToMouseEvent.md)
---
url: /auto-docs/core/modules/PlaygroundDrag.md
---
# Namespace: PlaygroundDrag
## Table of contents
### Functions
- [startDrag](../functions/PlaygroundDrag.startDrag.md)
---
url: /auto-docs/core/modules/PlaygroundMockTools.md
---
# Namespace: PlaygroundMockTools
画布测试工具
**`Example`**
```ts
监听 layer 的执行
const layerState = PlaygroundMockTools.createLayerTestState(PlaygroundLayer)
layerState.playground.ready()
expect(layerState.onReady.mock.calls.length).toEqual(1)
expect(layerState.autorun.mock.calls.length).toEqual(1)
layerState.playground.config.updateConfig({
scrollX: 100
})
expect(layerState.onReady.mock.calls.length).toEqual(1)
expect(layerState.autorun.mock.calls.length).toEqual(2)
```
## Table of contents
### Classes
- [LayerTestState](../classes/PlaygroundMockTools.LayerTestState.md)
### Functions
- [createContainer](../functions/PlaygroundMockTools.createContainer.md)
- [createLayerTestState](../functions/PlaygroundMockTools.createLayerTestState.md)
- [createPlayground](../functions/PlaygroundMockTools.createPlayground.md)
- [getLayerTestState](../functions/PlaygroundMockTools.getLayerTestState.md)
---
url: /auto-docs/core/modules/SizeSchema.md
---
# Namespace: SizeSchema
## Table of contents
### Functions
- [coverSize](../functions/SizeSchema.coverSize.md)
- [empty](../functions/SizeSchema.empty.md)
- [fixSize](../functions/SizeSchema.fixSize.md)
---
url: /auto-docs/core/modules/TransformData.md
---
# Namespace: TransformData
## Table of contents
### Functions
- [isParentOrChildrenTransform](../functions/TransformData.isParentOrChildrenTransform.md)
---
url: /auto-docs/core/modules/TransformSchema.md
---
# Namespace: TransformSchema
## Table of contents
### Functions
- [createDefault](../functions/TransformSchema.createDefault.md)
- [getDelta](../functions/TransformSchema.getDelta.md)
- [is](../functions/TransformSchema.is.md)
- [mergeDelta](../functions/TransformSchema.mergeDelta.md)
- [toJSON](../functions/TransformSchema.toJSON.md)
---
url: /auto-docs/core/types/Cursors.md
---
# Type alias: Cursors
**Cursors**: `Record`\<`string`, `string`\>
---
url: /auto-docs/core/types/EntityDataInjector.md
---
# Type alias: EntityDataInjector
**EntityDataInjector**: \() => `OPTS`
#### Type declaration
\<`OPTS`\>(): `OPTS`
##### Type parameters
| Name | Type |
| :------ | :------ |
| `OPTS` | extends `Object` = {} |
##### Returns
`OPTS`
---
url: /auto-docs/core/types/EntityDataProps.md
---
# Type alias: EntityDataProps\
**EntityDataProps**\<`E`\>: `E`[``"data"``]
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`EntityData`](../classes/EntityData.md) |
---
url: /auto-docs/core/types/OpacitySchema.md
---
# Type alias: OpacitySchema
**OpacitySchema**: `number`
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
---
url: /auto-docs/core/types/PipeEventName.md
---
# Type alias: PipeEventName
**PipeEventName**: `string`
---
url: /auto-docs/core/types/PipeSupportEvent.md
---
# Type alias: PipeSupportEvent
**PipeSupportEvent**: `MouseEvent` \| `DragEvent` \| `KeyboardEvent` \| `UIEvent` \| `TouchEvent` \| `any`
---
url: /auto-docs/core/types/PipelineEventHandler.md
---
# Type alias: PipelineEventHandler
**PipelineEventHandler**: (`event`: [`PipeSupportEvent`](./PipeSupportEvent.md)) => `boolean` \| `undefined`
#### Type declaration
(`event`): `boolean` \| `undefined`
##### Parameters
| Name | Type |
| :------ | :------ |
| `event` | [`PipeSupportEvent`](./PipeSupportEvent.md) |
##### Returns
`boolean` \| `undefined`
---
url: /auto-docs/core/types/PipelineLayerFactory.md
---
# Type alias: PipelineLayerFactory
**PipelineLayerFactory**: (`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md), `layerOptions?`: `any`) => [`Layer`](../classes/Layer.md)
#### Type declaration
(`layerRegistry`, `layerOptions?`): [`Layer`](../classes/Layer.md)
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md) |
| `layerOptions?` | `any` |
##### Returns
[`Layer`](../classes/Layer.md)
---
url: /auto-docs/core/types/PlaygroundContext.md
---
# Type alias: PlaygroundContext
**PlaygroundContext**: `any`
---
url: /auto-docs/core/types/PlaygroundContextProvider.md
---
# Type alias: PlaygroundContextProvider
**PlaygroundContextProvider**: () => `any`
#### Type declaration
(): `any`
##### Returns
`any`
---
url: /auto-docs/core/types/PlaygroundInteractiveType.md
---
# Type alias: PlaygroundInteractiveType
**PlaygroundInteractiveType**: ``"MOUSE"`` \| ``"PAD"``
MOUSE: 鼠标友好模式,鼠标左键拖动画布,滚动缩放 (适合 windows )
PAD: 双指同向移动拖动,双指张开捏合缩放 (适合 mac)
---
url: /auto-docs/core/types/PlaygroundScrollLimitFn.md
---
# Type alias: PlaygroundScrollLimitFn
**PlaygroundScrollLimitFn**: (`scroll`: \{ `scrollX`: `number` ; `scrollY`: `number` }) => \{ `scrollX`: `number` ; `scrollY`: `number` }
#### Type declaration
(`scroll`): `Object`
##### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
##### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `scrollX` | `number` |
| `scrollY` | `number` |
---
url: /auto-docs/core/types/Plugin.md
---
# Type alias: Plugin\
**Plugin**\<`Options`\>: `Object`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Options` | `any` |
#### Type declaration
| Name | Type |
| :------ | :------ |
| `containerModules?` | `interfaces.ContainerModule`[] |
| `contributionKeys?` | `interfaces.ServiceIdentifier`[] |
| `initPlugin` | () => `void` |
| `options` | `Options` |
| `pluginId` | `string` |
| `singleton` | `boolean` |
---
url: /auto-docs/core/types/PluginCreator.md
---
# Type alias: PluginCreator\
**PluginCreator**\<`Options`\>: (`opts`: `Options`) => [`Plugin`](../variables/Plugin-1.md)\<`Options`\>
#### Type parameters
| Name |
| :------ |
| `Options` |
#### Type declaration
(`opts`): [`Plugin`](../variables/Plugin-1.md)\<`Options`\>
##### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `Options` |
##### Returns
[`Plugin`](../variables/Plugin-1.md)\<`Options`\>
---
url: /auto-docs/core/types/ProtectWheelArea.md
---
# Type alias: ProtectWheelArea
**ProtectWheelArea**: (`dom`: `Element`) => `boolean`
#### Type declaration
(`dom`): `boolean`
##### Parameters
| Name | Type |
| :------ | :------ |
| `dom` | `Element` |
##### Returns
`boolean`
---
url: /auto-docs/core/types/RotationSchema.md
---
# Type alias: RotationSchema
**RotationSchema**: `number`
---
url: /auto-docs/core/variables/ClipboardService-1.md
---
# Variable: ClipboardService
`Const` **ClipboardService**: typeof [`ClipboardService`](./ClipboardService-1.md)
---
url: /auto-docs/core/variables/CommandService-1.md
---
# Variable: CommandService
`Const` **CommandService**: unique `symbol`
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
---
url: /auto-docs/core/variables/ContributionProvider-1.md
---
# Variable: ContributionProvider
`Const` **ContributionProvider**: unique `symbol`
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
---
url: /auto-docs/core/variables/EDITOR_STATE_DEFAULTS.md
---
# Variable: EDITOR\_STATE\_DEFAULTS
`Const` **EDITOR\_STATE\_DEFAULTS**: [`EditorState`](../interfaces/EditorState-1.md)[]
---
url: /auto-docs/core/variables/ENTITIES_BY_DATA_DECO_KEY.md
---
# Variable: ENTITIES\_BY\_DATA\_DECO\_KEY
`Const` **ENTITIES\_BY\_DATA\_DECO\_KEY**: typeof [`ENTITIES_BY_DATA_DECO_KEY`](./ENTITIES_BY_DATA_DECO_KEY.md)
---
url: /auto-docs/core/variables/ENTITIES_DECO_KEY.md
---
# Variable: ENTITIES\_DECO\_KEY
`Const` **ENTITIES\_DECO\_KEY**: typeof [`ENTITIES_DECO_KEY`](./ENTITIES_DECO_KEY.md)
---
url: /auto-docs/core/variables/EditorState.STATE_GRAB.md
---
# Variable: STATE\_GRAB
[EditorState](../modules/EditorState.md).STATE_GRAB
`Const` **STATE\_GRAB**: [`EditorState`](../interfaces/EditorState-1.md)
---
url: /auto-docs/core/variables/EditorState.STATE_MOUSE_FRIENDLY_SELECT.md
---
# Variable: STATE\_MOUSE\_FRIENDLY\_SELECT
[EditorState](../modules/EditorState.md).STATE_MOUSE_FRIENDLY_SELECT
`Const` **STATE\_MOUSE\_FRIENDLY\_SELECT**: [`EditorState`](../interfaces/EditorState-1.md)
鼠标友好模式状态
---
url: /auto-docs/core/variables/EditorState.STATE_SELECT.md
---
# Variable: STATE\_SELECT
[EditorState](../modules/EditorState.md).STATE_SELECT
`Const` **STATE\_SELECT**: [`EditorState`](../interfaces/EditorState-1.md)
---
url: /auto-docs/core/variables/EntityManagerContribution-1.md
---
# Variable: EntityManagerContribution
`Const` **EntityManagerContribution**: typeof [`EntityManagerContribution`](./EntityManagerContribution-1.md)
---
url: /auto-docs/core/variables/FLUSH_LAYER_REQUEST.md
---
# Variable: FLUSH\_LAYER\_REQUEST
`Const` **FLUSH\_LAYER\_REQUEST**: ``"flush-layer-request"``
---
url: /auto-docs/core/variables/LayerOptions-1.md
---
# Variable: LayerOptions
**LayerOptions**: typeof [`LayerOptions`](./LayerOptions-1.md)
---
url: /auto-docs/core/variables/LazyInjectContext.md
---
# Variable: LazyInjectContext
`Const` **LazyInjectContext**: typeof [`LazyInjectContext`](./LazyInjectContext.md)
---
url: /auto-docs/core/variables/OpacitySchemaDecoration.md
---
# Variable: OpacitySchemaDecoration
`Const` **OpacitySchemaDecoration**: `SchemaDecoration`\<[`OpacitySchema`](../types/OpacitySchema.md)\>
---
url: /auto-docs/core/variables/OriginSchemaDecoration.md
---
# Variable: OriginSchemaDecoration
`Const` **OriginSchemaDecoration**: `SchemaDecoration`\<[`OriginSchema`](../interfaces/OriginSchema.md)\>
---
url: /auto-docs/core/variables/PipelineLayerFactory-1.md
---
# Variable: PipelineLayerFactory
`Const` **PipelineLayerFactory**: typeof [`PipelineLayerFactory`](./PipelineLayerFactory-1.md)
---
url: /auto-docs/core/variables/PlaygroundConfig-1.md
---
# Variable: PlaygroundConfig
`Const` **PlaygroundConfig**: typeof [`PlaygroundConfig`](./PlaygroundConfig-1.md)
---
url: /auto-docs/core/variables/PlaygroundContainerFactory-1.md
---
# Variable: PlaygroundContainerFactory
`Const` **PlaygroundContainerFactory**: typeof [`PlaygroundContainerFactory`](./PlaygroundContainerFactory-1.md)
---
url: /auto-docs/core/variables/PlaygroundContainerModule.md
---
# Variable: PlaygroundContainerModule
`Const` **PlaygroundContainerModule**: `ContainerModule`
---
url: /auto-docs/core/variables/PlaygroundContext-1.md
---
# Variable: PlaygroundContext
`Const` **PlaygroundContext**: typeof [`PlaygroundContext`](./PlaygroundContext-1.md)
会被注入到 layer 层,可以在使用的时候替换它
---
url: /auto-docs/core/variables/PlaygroundContextProvider-1.md
---
# Variable: PlaygroundContextProvider
`Const` **PlaygroundContextProvider**: typeof [`PlaygroundContextProvider`](./PlaygroundContextProvider-1.md)
---
url: /auto-docs/core/variables/PlaygroundContribution-1.md
---
# Variable: PlaygroundContribution
`Const` **PlaygroundContribution**: typeof [`PlaygroundContribution`](./PlaygroundContribution-1.md)
---
url: /auto-docs/core/variables/PlaygroundEntityContext.md
---
# Variable: PlaygroundEntityContext
`Const` **PlaygroundEntityContext**: `Context`\<`any`\>
当前 entity
---
url: /auto-docs/core/variables/PlaygroundReactContainerContext.md
---
# Variable: PlaygroundReactContainerContext
`Const` **PlaygroundReactContainerContext**: `Context`\<`any`\>
---
url: /auto-docs/core/variables/PlaygroundReactContext.md
---
# Variable: PlaygroundReactContext
`Const` **PlaygroundReactContext**: `Context`\<`any`\>
---
url: /auto-docs/core/variables/PlaygroundReactRefContext.md
---
# Variable: PlaygroundReactRefContext
`Const` **PlaygroundReactRefContext**: `Context`\<`any`\>
---
url: /auto-docs/core/variables/Plugin-1.md
---
# Variable: Plugin
`Const` **Plugin**: typeof [`Plugin`](./Plugin-1.md)
---
url: /auto-docs/core/variables/PluginContext-1.md
---
# Variable: PluginContext
**PluginContext**: typeof [`PluginContext`](./PluginContext-1.md)
---
url: /auto-docs/core/variables/PositionSchemaDecoration.md
---
# Variable: PositionSchemaDecoration
`Const` **PositionSchemaDecoration**: `SchemaDecoration`\<[`PositionSchema`](../interfaces/PositionSchema.md)\>
---
url: /auto-docs/core/variables/ProtectWheelArea-1.md
---
# Variable: ProtectWheelArea
`Const` **ProtectWheelArea**: typeof [`ProtectWheelArea`](./ProtectWheelArea-1.md)
保护区域不被画布劫持滚动事件
---
url: /auto-docs/core/variables/RotationSchemaDecoration.md
---
# Variable: RotationSchemaDecoration
`Const` **RotationSchemaDecoration**: `SchemaDecoration`\<[`RotationSchema`](../types/RotationSchema.md)\>
---
url: /auto-docs/core/variables/SCALE_WIDTH.md
---
# Variable: SCALE\_WIDTH
`Const` **SCALE\_WIDTH**: ``0``
---
url: /auto-docs/core/variables/ScaleSchemaDecoration.md
---
# Variable: ScaleSchemaDecoration
`Const` **ScaleSchemaDecoration**: `SchemaDecoration`\<[`ScaleSchema`](../interfaces/ScaleSchema.md)\>
---
url: /auto-docs/core/variables/SizeSchemaDecoration.md
---
# Variable: SizeSchemaDecoration
`Const` **SizeSchemaDecoration**: `SchemaDecoration`\<[`SizeSchema`](../interfaces/SizeSchema-1.md)\>
---
url: /auto-docs/core/variables/SkewSchemaDecoration.md
---
# Variable: SkewSchemaDecoration
`Const` **SkewSchemaDecoration**: `SchemaDecoration`\<[`SkewSchema`](../interfaces/SkewSchema.md)\>
---
url: /auto-docs/core/variables/StorageService-1.md
---
# Variable: StorageService
`Const` **StorageService**: typeof [`StorageService`](./StorageService-1.md)
---
url: /auto-docs/core/variables/TransformSchemaDecoration.md
---
# Variable: TransformSchemaDecoration
`Const` **TransformSchemaDecoration**: `SchemaDecoration`\<[`TransformSchema`](../interfaces/TransformSchema-1.md)\>
---
url: /auto-docs/document/classes/FlowDocument.md
---
# Class: FlowDocument\
流程整个文档数据
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | [`FlowDocumentJSON`](../types/FlowDocumentJSON.md) |
## Implements
- `Disposable`
## Table of contents
### Constructors
- [constructor](./FlowDocument.md#constructor)
### Properties
- [config](./FlowDocument.md#config)
- [onLayoutChange](./FlowDocument.md#onlayoutchange)
- [onNodeCreate](./FlowDocument.md#onnodecreate)
- [onNodeDispose](./FlowDocument.md#onnodedispose)
- [onNodeUpdate](./FlowDocument.md#onnodeupdate)
- [options](./FlowDocument.md#options)
- [originTree](./FlowDocument.md#origintree)
- [renderState](./FlowDocument.md#renderstate)
- [renderTree](./FlowDocument.md#rendertree)
- [root](./FlowDocument.md#root)
- [transformer](./FlowDocument.md#transformer)
### Accessors
- [disposed](./FlowDocument.md#disposed)
- [layout](./FlowDocument.md#layout)
- [loading](./FlowDocument.md#loading)
- [size](./FlowDocument.md#size)
### Methods
- [addBlock](./FlowDocument.md#addblock)
- [addBlocksAsChildren](./FlowDocument.md#addblocksaschildren)
- [addFromNode](./FlowDocument.md#addfromnode)
- [addInlineBlocks](./FlowDocument.md#addinlineblocks)
- [addNode](./FlowDocument.md#addnode)
- [dispose](./FlowDocument.md#dispose)
- [fireRender](./FlowDocument.md#firerender)
- [fromJSON](./FlowDocument.md#fromjson)
- [getAllNodes](./FlowDocument.md#getallnodes)
- [getNode](./FlowDocument.md#getnode)
- [getNodeRegister](./FlowDocument.md#getnoderegister)
- [getNodeRegistry](./FlowDocument.md#getnoderegistry)
- [getRenderDatas](./FlowDocument.md#getrenderdatas)
- [hasNode](./FlowDocument.md#hasnode)
- [init](./FlowDocument.md#init)
- [isExtend](./FlowDocument.md#isextend)
- [isTypeOrExtendType](./FlowDocument.md#istypeorextendtype)
- [load](./FlowDocument.md#load)
- [moveChildNodes](./FlowDocument.md#movechildnodes)
- [moveNodes](./FlowDocument.md#movenodes)
- [registerFlowNodes](./FlowDocument.md#registerflownodes)
- [registerLayout](./FlowDocument.md#registerlayout)
- [registerNodeDatas](./FlowDocument.md#registernodedatas)
- [removeNode](./FlowDocument.md#removenode)
- [setLayout](./FlowDocument.md#setlayout)
- [toJSON](./FlowDocument.md#tojson)
- [toNodeJSON](./FlowDocument.md#tonodejson)
- [toString](./FlowDocument.md#tostring)
- [toggleFixedLayout](./FlowDocument.md#togglefixedlayout)
- [traverse](./FlowDocument.md#traverse)
## Constructors
### constructor
**new FlowDocument**\<`T`\>()
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | [`FlowDocumentJSON`](../types/FlowDocumentJSON.md) |
## Properties
### config
`Readonly` **config**: [`FlowDocumentConfig`](./FlowDocumentConfig.md)
___
### onLayoutChange
`Readonly` **onLayoutChange**: `Event`\<[`FlowLayout`](../variables/FlowLayout-1.md)\>
___
### onNodeCreate
`Readonly` **onNodeCreate**: `Event`\<\{ `data`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `json`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `node`: [`FlowNodeEntity`](./FlowNodeEntity-1.md) }\>
___
### onNodeDispose
`Readonly` **onNodeDispose**: `Event`\<\{ `node`: [`FlowNodeEntity`](./FlowNodeEntity-1.md) }\>
___
### onNodeUpdate
`Readonly` **onNodeUpdate**: `Event`\<\{ `data`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `json`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `node`: [`FlowNodeEntity`](./FlowNodeEntity-1.md) }\>
___
### options
**options**: [`FlowDocumentOptions`](../variables/FlowDocumentOptions-1.md)
流程画布配置项
___
### originTree
**originTree**: [`FlowVirtualTree`](./FlowVirtualTree-1.md)\<[`FlowNodeEntity`](./FlowNodeEntity-1.md)\>
原始的 tree 结构
___
### renderState
**renderState**: [`FlowRendererStateEntity`](./FlowRendererStateEntity.md)
渲染相关的全局轧辊台
___
### renderTree
**renderTree**: `FlowRenderTree`\<[`FlowNodeEntity`](./FlowNodeEntity-1.md)\>
渲染后的 tree 结构
___
### root
**root**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### transformer
**transformer**: [`FlowDocumentTransformerEntity`](./FlowDocumentTransformerEntity.md)
## Accessors
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### layout
`get` **layout**(): [`FlowLayout`](../variables/FlowLayout-1.md)
#### Returns
[`FlowLayout`](../variables/FlowLayout-1.md)
___
### loading
`get` **loading**(): `boolean`
#### Returns
`boolean`
___
### size
`get` **size**(): `number`
#### Returns
`number`
## Methods
### addBlock
**addBlock**(`target`, `blockData`, `addedNodes?`, `parent?`, `index?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
添加单个 block
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `target` | `string` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md) | |
| `blockData` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) | |
| `addedNodes?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] | |
| `parent?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) | 默认去找 $inlineBlocks$ |
| `index?` | `number` | - |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### addBlocksAsChildren
**addBlocksAsChildren**(`parent`, `blocks`, `addedNodes?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `blocks` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)[] |
| `addedNodes?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`void`
___
### addFromNode
**addFromNode**(`fromNode`, `json`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
从指定节点的下一个节点新增
#### Parameters
| Name | Type |
| :------ | :------ |
| `fromNode` | `string` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `json` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### addInlineBlocks
**addInlineBlocks**(`node`, `blocks`, `addedNodes?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
block 格式:
node: (最原始的 id)
blockIcon
inlineBlocks
block
blockOrderIcon
block
blockOrderIcon
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) | `undefined` |
| `blocks` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)[] | `undefined` |
| `addedNodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] | `[]` |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### addNode
**addNode**(`data`, `addedNodes?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
添加节点,如果节点已经存在则不会重复创建
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | [`AddNodeData`](../types/AddNodeData.md) |
| `addedNodes?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### fireRender
**fireRender**(): `void`
触发 render
#### Returns
`void`
___
### fromJSON
**fromJSON**(`json`, `fireRender?`): `void`
加载数据,可以被重载
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `json` | `any` | `undefined` | 文档数据更新 |
| `fireRender` | `boolean` | `true` | 是否要触发渲染,默认 true |
#### Returns
`void`
___
### getAllNodes
**getAllNodes**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### getNode
**getNode**(`id`): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
根据 id 获取节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### getNodeRegister
**getNodeRegister**\<`T`\>(`type`, `originParent?`): `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md), `T`\> = [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | [`FlowNodeType`](../types/FlowNodeType.md) |
| `originParent?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`T`
**`Deprecated`**
use `getNodeRegistry` instead
___
### getNodeRegistry
**getNodeRegistry**\<`T`\>(`type`, `originParent?`): `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md), `T`\> = [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | [`FlowNodeType`](../types/FlowNodeType.md) |
| `originParent?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`T`
___
### getRenderDatas
**getRenderDatas**\<`T`\>(`dataRegistry`, `containHiddenNodes?`): `T`[]
返回需要渲染的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `EntityData`\<`any`, {}, `T`\> |
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `dataRegistry` | `EntityDataRegistry`\<`T`\> | `undefined` |
| `containHiddenNodes` | `boolean` | `true` |
#### Returns
`T`[]
___
### hasNode
**hasNode**(`nodeId`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeId` | `string` |
#### Returns
`boolean`
___
### init
**init**(): `void`
#### Returns
`void`
___
### isExtend
**isExtend**(`currentType`, `extendType`): `boolean`
Check node extend
#### Parameters
| Name | Type |
| :------ | :------ |
| `currentType` | [`FlowNodeType`](../types/FlowNodeType.md) |
| `extendType` | [`FlowNodeType`](../types/FlowNodeType.md) |
#### Returns
`boolean`
___
### isTypeOrExtendType
**isTypeOrExtendType**(`currentType`, `extendType`): `boolean`
Check node type
#### Parameters
| Name | Type |
| :------ | :------ |
| `currentType` | [`FlowNodeType`](../types/FlowNodeType.md) |
| `extendType` | [`FlowNodeType`](../types/FlowNodeType.md) |
#### Returns
`boolean`
___
### load
**load**(): `Promise`\<`void`\>
#### Returns
`Promise`\<`void`\>
___
### moveChildNodes
**moveChildNodes**(`param0`): `void`
移动子节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.nodeIds` | `string`[] |
| `param0.toIndex` | `number` |
| `param0.toParentId` | `string` |
#### Returns
`void`
___
### moveNodes
**moveNodes**(`param0`): `void`
移动节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.dropNodeId` | `string` |
| `param0.inside?` | `boolean` |
| `param0.sortNodeIds` | `string`[] |
#### Returns
`void`
___
### registerFlowNodes
**registerFlowNodes**\<`T`\>(`...registries`): `void`
注册节点
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<`any`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `...registries` | `T`[] |
#### Returns
`void`
___
### registerLayout
**registerLayout**(`layout`): `void`
注册布局
#### Parameters
| Name | Type |
| :------ | :------ |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
#### Returns
`void`
___
### registerNodeDatas
**registerNodeDatas**(`...nodeDatas`): `void`
节点注入数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `...nodeDatas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
#### Returns
`void`
___
### removeNode
**removeNode**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `string` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### setLayout
**setLayout**(`layoutKey`): `void`
更新布局
#### Parameters
| Name | Type |
| :------ | :------ |
| `layoutKey` | `string` |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
导出数据,可以重载
#### Returns
`any`
___
### toNodeJSON
**toNodeJSON**(`node`): [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
[`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)
___
### toString
**toString**(`showType?`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `showType?` | `boolean` |
#### Returns
`string`
___
### toggleFixedLayout
**toggleFixedLayout**(): `void`
切换垂直或水平布局
#### Returns
`void`
___
### traverse
**traverse**(`fn`, `node?`, `depth?`): `boolean` \| `void`
traverse all nodes, O(n)
R
|
+---1
| |
| +---1.1
| |
| +---1.2
| |
| +---1.3
| | |
| | +---1.3.1
| | |
| | +---1.3.2
| |
| +---1.4
|
+---2
|
+---2.1
sort: [1, 1.1, 1.2, 1.3, 1.3.1, 1.3.2, 1.4, 2, 2.1]
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `fn` | (`node`: [`FlowNodeEntity`](./FlowNodeEntity-1.md), `depth`: `number`, `index`: `number`) => `boolean` \| `void` | `undefined` |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) | `undefined` |
| `depth` | `number` | `0` |
#### Returns
`boolean` \| `void`
isBreak
---
url: /auto-docs/document/classes/FlowDocumentConfig.md
---
# Class: FlowDocumentConfig
用于文档扩展配置
## Table of contents
### Constructors
- [constructor](./FlowDocumentConfig.md#constructor)
### Properties
- [onChange](./FlowDocumentConfig.md#onchange)
### Methods
- [get](./FlowDocumentConfig.md#get)
- [registerConfigs](./FlowDocumentConfig.md#registerconfigs)
- [set](./FlowDocumentConfig.md#set)
## Constructors
### constructor
**new FlowDocumentConfig**(`_data?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `_data` | `Record`\<`string`, `any`\> |
## Properties
### onChange
`Readonly` **onChange**: `Event`\<`string`\>
## Methods
### get
**get**(`key`): `any`
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
#### Returns
`any`
___
### registerConfigs
**registerConfigs**(`config`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `config` | `Record`\<`string`, `any`\> |
#### Returns
`void`
___
### set
**set**(`key`, `value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `value` | `any` |
#### Returns
`void`
---
url: /auto-docs/document/classes/FlowDocumentTransformerEntity.md
---
# Class: FlowDocumentTransformerEntity
用于通知所有 layer 更新
## Hierarchy
- `ConfigEntity`\<\{ `loading`: `boolean` ; `treeVersion`: `number` }, `FlowDocumentTransformerEntityConfig`\>
↳ **`FlowDocumentTransformerEntity`**
## Table of contents
### Constructors
- [constructor](./FlowDocumentTransformerEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowDocumentTransformerEntity.md#__opts_type__)
- [document](./FlowDocumentTransformerEntity.md#document)
- [entityManager](./FlowDocumentTransformerEntity.md#entitymanager)
- [onDataChange](./FlowDocumentTransformerEntity.md#ondatachange)
- [onEntityChange](./FlowDocumentTransformerEntity.md#onentitychange)
- [onRefresh](./FlowDocumentTransformerEntity.md#onrefresh)
- [preDispose](./FlowDocumentTransformerEntity.md#predispose)
- [toDispose](./FlowDocumentTransformerEntity.md#todispose)
- [type](./FlowDocumentTransformerEntity.md#type)
### Accessors
- [config](./FlowDocumentTransformerEntity.md#config)
- [context](./FlowDocumentTransformerEntity.md#context)
- [disposed](./FlowDocumentTransformerEntity.md#disposed)
- [id](./FlowDocumentTransformerEntity.md#id)
- [loading](./FlowDocumentTransformerEntity.md#loading)
- [onDispose](./FlowDocumentTransformerEntity.md#ondispose)
- [savedInManager](./FlowDocumentTransformerEntity.md#savedinmanager)
- [type](./FlowDocumentTransformerEntity.md#type-1)
- [version](./FlowDocumentTransformerEntity.md#version)
### Methods
- [addData](./FlowDocumentTransformerEntity.md#adddata)
- [addInitializeData](./FlowDocumentTransformerEntity.md#addinitializedata)
- [checkChanged](./FlowDocumentTransformerEntity.md#checkchanged)
- [clear](./FlowDocumentTransformerEntity.md#clear)
- [dispose](./FlowDocumentTransformerEntity.md#dispose)
- [fromJSON](./FlowDocumentTransformerEntity.md#fromjson)
- [getData](./FlowDocumentTransformerEntity.md#getdata)
- [getDefaultConfig](./FlowDocumentTransformerEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./FlowDocumentTransformerEntity.md#getdefaultdataregistries)
- [getService](./FlowDocumentTransformerEntity.md#getservice)
- [hasData](./FlowDocumentTransformerEntity.md#hasdata)
- [isTreeDirty](./FlowDocumentTransformerEntity.md#istreedirty)
- [onConfigChanged](./FlowDocumentTransformerEntity.md#onconfigchanged)
- [refresh](./FlowDocumentTransformerEntity.md#refresh)
- [removeData](./FlowDocumentTransformerEntity.md#removedata)
- [reset](./FlowDocumentTransformerEntity.md#reset)
- [toJSON](./FlowDocumentTransformerEntity.md#tojson)
- [updateConfig](./FlowDocumentTransformerEntity.md#updateconfig)
- [updateData](./FlowDocumentTransformerEntity.md#updatedata)
- [updateTransformsTree](./FlowDocumentTransformerEntity.md#updatetransformstree)
## Constructors
### constructor
**new FlowDocumentTransformerEntity**(`conf`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `conf` | `FlowDocumentTransformerEntityConfig` |
#### Overrides
ConfigEntity\<
\{
loading: boolean;
treeVersion: number;
},
FlowDocumentTransformerEntityConfig
\>.constructor
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `FlowDocumentTransformerEntityConfig`
#### Inherited from
ConfigEntity.\_\_opts\_type\_\_
___
### document
**document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
全局的entity管理器
#### Inherited from
ConfigEntity.entityManager
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityDataChangedEvent`\<`Entity`\<`EntityOpts`\>\>\>
数据更改事件
#### Inherited from
ConfigEntity.onDataChange
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<`Entity`\<`EntityOpts`\>\>
修改会触发
#### Inherited from
ConfigEntity.onEntityChange
___
### onRefresh
`Readonly` **onRefresh**: `Event`\<`void`\>
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
ConfigEntity.preDispose
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
ConfigEntity.toDispose
___
### type
`Static` **type**: `string` = `'FlowDocumentTransformerEntity'`
#### Overrides
ConfigEntity.type
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### loading
`get` **loading**(): `boolean`
#### Returns
`boolean`
`set` **loading**(`loading`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `loading` | `boolean` |
#### Returns
`void`
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
| `defaultProps?` | `EntityDataProps`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.addData
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.addInitializeData
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `Object` |
| `oldData.loading` | `boolean` |
| `oldData.treeVersion` | `number` |
| `newData` | `Partial`\<\{ `loading`: `boolean` ; `treeVersion`: `number` }\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.checkChanged
___
### clear
**clear**(): `void`
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
ConfigEntity.dispose
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.fromJSON
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.getData
___
### getDefaultConfig
**getDefaultConfig**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `loading` | `boolean` |
| `treeVersion` | `number` |
#### Overrides
ConfigEntity.getDefaultConfig
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
`EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
#### Inherited from
ConfigEntity.getDefaultDataRegistries
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
ConfigEntity.getService
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.hasData
___
### isTreeDirty
**isTreeDirty**(): `boolean`
#### Returns
`boolean`
___
### onConfigChanged
**onConfigChanged**(`fn`): `Disposable`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: \{ `loading`: `boolean` ; `treeVersion`: `number` }) => `void` |
#### Returns
`Disposable`
#### Inherited from
ConfigEntity.onConfigChanged
___
### refresh
**refresh**(): `void`
刷新节点的相对偏移
#### Returns
`void`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.removeData
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
ConfigEntity.reset
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
ConfigEntity.toJSON
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<\{ `loading`: `boolean` ; `treeVersion`: `number` }\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateConfig
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
| `props` | `EntityDataProps`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateData
___
### updateTransformsTree
**updateTransformsTree**(): `void`
更新矩阵结构 (这个只有在树结构变化时候才会触发,如:添加节点、删除节点、改变位置节点)
#### Returns
`void`
---
url: /auto-docs/document/classes/FlowDragService.md
---
# Class: FlowDragService
拖拽相关操作
外部实现抽象类
## Table of contents
### Constructors
- [constructor](./FlowDragService.md#constructor)
### Properties
- [onDrop](./FlowDragService.md#ondrop)
### Accessors
- [dragNodes](./FlowDragService.md#dragnodes)
- [dragStartNode](./FlowDragService.md#dragstartnode)
- [dragging](./FlowDragService.md#dragging)
- [dropNodeId](./FlowDragService.md#dropnodeid)
- [isDragBranch](./FlowDragService.md#isdragbranch)
- [labelSide](./FlowDragService.md#labelside)
- [nodeDragIdsWithChildren](./FlowDragService.md#nodedragidswithchildren)
- [renderState](./FlowDragService.md#renderstate)
### Methods
- [dropBranch](./FlowDragService.md#dropbranch)
- [dropCreateNode](./FlowDragService.md#dropcreatenode)
- [dropNode](./FlowDragService.md#dropnode)
- [isDroppableBranch](./FlowDragService.md#isdroppablebranch)
- [isDroppableNode](./FlowDragService.md#isdroppablenode)
## Constructors
### constructor
**new FlowDragService**()
## Properties
### onDrop
`Readonly` **onDrop**: `Event`\<\{ `dragJSON?`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `dragNodes`: [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] ; `dropNode`: [`FlowNodeEntity`](./FlowNodeEntity-1.md) }\>
## Accessors
### dragNodes
`get` **dragNodes**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### dragStartNode
`get` **dragStartNode**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### dragging
`get` **dragging**(): `boolean`
#### Returns
`boolean`
___
### dropNodeId
`get` **dropNodeId**(): `undefined` \| `string`
#### Returns
`undefined` \| `string`
___
### isDragBranch
`get` **isDragBranch**(): `boolean`
#### Returns
`boolean`
___
### labelSide
`get` **labelSide**(): `undefined` \| [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md)
#### Returns
`undefined` \| [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md)
___
### nodeDragIdsWithChildren
`get` **nodeDragIdsWithChildren**(): `string`[]
#### Returns
`string`[]
___
### renderState
`get` **renderState**(): [`FlowRendererStateEntity`](./FlowRendererStateEntity.md)
#### Returns
[`FlowRendererStateEntity`](./FlowRendererStateEntity.md)
## Methods
### dropBranch
**dropBranch**(): `void`
放置到目标分支
#### Returns
`void`
___
### dropCreateNode
**dropCreateNode**(`json`, `onCreateNode?`): `Promise`\<`void`\>
移动并且创建节点
Move and create node
#### Parameters
| Name | Type |
| :------ | :------ |
| `json` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
| `onCreateNode?` | (`json`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md), `dropEntity`: [`FlowNodeEntity`](./FlowNodeEntity-1.md)) => `Promise`\<[`FlowNodeEntity`](./FlowNodeEntity-1.md)\> |
#### Returns
`Promise`\<`void`\>
___
### dropNode
**dropNode**(): `void`
移动到目标节点
#### Returns
`void`
___
### isDroppableBranch
**isDroppableBranch**(`node`, `side?`): `boolean`
拖拽分支是否可以释放在该分支
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) | `undefined` | 拖拽的分支节点 |
| `side` | [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md) | `LABEL_SIDE_TYPE.NORMAL_BRANCH` | 分支的前面还是后面 |
#### Returns
`boolean`
___
### isDroppableNode
**isDroppableNode**(`node`): `boolean`
拖拽是否可以释放在该节点后面
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`boolean`
---
url: /auto-docs/document/classes/FlowGroupController.md
---
# Class: FlowGroupController
分组控制器
## Table of contents
### Properties
- [groupNode](./FlowGroupController.md#groupnode)
### Accessors
- [bounds](./FlowGroupController.md#bounds)
- [collapsed](./FlowGroupController.md#collapsed)
- [hovered](./FlowGroupController.md#hovered)
- [nodes](./FlowGroupController.md#nodes)
- [note](./FlowGroupController.md#note)
- [noteHeight](./FlowGroupController.md#noteheight)
- [positionConfig](./FlowGroupController.md#positionconfig)
### Methods
- [collapse](./FlowGroupController.md#collapse)
- [expand](./FlowGroupController.md#expand)
- [isEndNode](./FlowGroupController.md#isendnode)
- [isStartNode](./FlowGroupController.md#isstartnode)
- [create](./FlowGroupController.md#create)
## Properties
### groupNode
`Readonly` **groupNode**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
## Accessors
### bounds
`get` **bounds**(): `Rectangle`
获取分组外围的最大边框
#### Returns
`Rectangle`
___
### collapsed
`get` **collapsed**(): `boolean`
#### Returns
`boolean`
`set` **collapsed**(`collapsed`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `collapsed` | `boolean` |
#### Returns
`void`
___
### hovered
`get` **hovered**(): `boolean`
#### Returns
`boolean`
`set` **hovered**(`hovered`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `hovered` | `boolean` |
#### Returns
`void`
___
### nodes
`get` **nodes**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### note
`get` **note**(): `string`
#### Returns
`string`
`set` **note**(`note`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `note` | `string` |
#### Returns
`void`
___
### noteHeight
`get` **noteHeight**(): `number`
#### Returns
`number`
`set` **noteHeight**(`height`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `height` | `number` |
#### Returns
`void`
___
### positionConfig
`get` **positionConfig**(): `Record`\<`string`, `number`\>
#### Returns
`Record`\<`string`, `number`\>
## Methods
### collapse
**collapse**(): `void`
#### Returns
`void`
___
### expand
**expand**(): `void`
#### Returns
`void`
___
### isEndNode
**isEndNode**(`node?`): `boolean`
是否是结束节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `node?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`boolean`
___
### isStartNode
**isStartNode**(`node?`): `boolean`
是否是开始节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `node?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`boolean`
___
### create
`Static` **create**(`groupNode?`): `undefined` \| [`FlowGroupController`](./FlowGroupController.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `groupNode?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`undefined` \| [`FlowGroupController`](./FlowGroupController.md)
---
url: /auto-docs/document/classes/FlowGroupService.md
---
# Class: FlowGroupService
## Table of contents
### Constructors
- [constructor](./FlowGroupService.md#constructor)
### Properties
- [entityManager](./FlowGroupService.md#entitymanager)
- [operationService](./FlowGroupService.md#operationservice)
### Methods
- [createGroup](./FlowGroupService.md#creategroup)
- [deleteGroup](./FlowGroupService.md#deletegroup)
- [getAllGroups](./FlowGroupService.md#getallgroups)
- [groupController](./FlowGroupService.md#groupcontroller)
- [ungroup](./FlowGroupService.md#ungroup)
- [validate](./FlowGroupService.md#validate)
## Constructors
### constructor
**new FlowGroupService**()
## Properties
### entityManager
`Readonly` **entityManager**: `EntityManager`
___
### operationService
`Readonly` **operationService**: [`FlowOperationBaseService`](../variables/FlowOperationBaseService-1.md)
## Methods
### createGroup
**createGroup**(`nodes`): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
创建分组节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### deleteGroup
**deleteGroup**(`groupNode`): `void`
删除分组
#### Parameters
| Name | Type |
| :------ | :------ |
| `groupNode` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### getAllGroups
**getAllGroups**(): [`FlowGroupController`](./FlowGroupController.md)[]
返回所有分组节点
#### Returns
[`FlowGroupController`](./FlowGroupController.md)[]
___
### groupController
**groupController**(`group`): `undefined` \| [`FlowGroupController`](./FlowGroupController.md)
获取分组控制器
#### Parameters
| Name | Type |
| :------ | :------ |
| `group` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`undefined` \| [`FlowGroupController`](./FlowGroupController.md)
___
### ungroup
**ungroup**(`groupNode`): `void`
取消分组
#### Parameters
| Name | Type |
| :------ | :------ |
| `groupNode` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### validate
`Static` **validate**(`nodes`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`boolean`
---
url: /auto-docs/document/classes/FlowNodeEntity-1.md
---
# Class: FlowNodeEntity
## Hierarchy
- `Entity`\<[`FlowNodeEntityConfig`](../interfaces/FlowNodeEntityConfig.md)\>
↳ **`FlowNodeEntity`**
## Table of contents
### Constructors
- [constructor](./FlowNodeEntity-1.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowNodeEntity-1.md#__opts_type__)
- [document](./FlowNodeEntity-1.md#document)
- [entityManager](./FlowNodeEntity-1.md#entitymanager)
- [flowNodeType](./FlowNodeEntity-1.md#flownodetype)
- [index](./FlowNodeEntity-1.md#index)
- [metaFromJSON](./FlowNodeEntity-1.md#metafromjson)
- [onDataChange](./FlowNodeEntity-1.md#ondatachange)
- [onEntityChange](./FlowNodeEntity-1.md#onentitychange)
- [originParent](./FlowNodeEntity-1.md#originparent)
- [preDispose](./FlowNodeEntity-1.md#predispose)
- [toDispose](./FlowNodeEntity-1.md#todispose)
- [type](./FlowNodeEntity-1.md#type)
### Accessors
- [allChildren](./FlowNodeEntity-1.md#allchildren)
- [allCollapsedChildren](./FlowNodeEntity-1.md#allcollapsedchildren)
- [blocks](./FlowNodeEntity-1.md#blocks)
- [bounds](./FlowNodeEntity-1.md#bounds)
- [children](./FlowNodeEntity-1.md#children)
- [childrenLength](./FlowNodeEntity-1.md#childrenlength)
- [collapsed](./FlowNodeEntity-1.md#collapsed)
- [collapsedChildren](./FlowNodeEntity-1.md#collapsedchildren)
- [context](./FlowNodeEntity-1.md#context)
- [disposed](./FlowNodeEntity-1.md#disposed)
- [firstChild](./FlowNodeEntity-1.md#firstchild)
- [hasChild](./FlowNodeEntity-1.md#haschild)
- [hidden](./FlowNodeEntity-1.md#hidden)
- [id](./FlowNodeEntity-1.md#id)
- [isFirst](./FlowNodeEntity-1.md#isfirst)
- [isInlineBlock](./FlowNodeEntity-1.md#isinlineblock)
- [isInlineBlocks](./FlowNodeEntity-1.md#isinlineblocks)
- [isLast](./FlowNodeEntity-1.md#islast)
- [isNodeEnd](./FlowNodeEntity-1.md#isnodeend)
- [isStart](./FlowNodeEntity-1.md#isstart)
- [isVertical](./FlowNodeEntity-1.md#isvertical)
- [lastBlock](./FlowNodeEntity-1.md#lastblock)
- [lastChild](./FlowNodeEntity-1.md#lastchild)
- [lastCollapsedChild](./FlowNodeEntity-1.md#lastcollapsedchild)
- [next](./FlowNodeEntity-1.md#next)
- [onDispose](./FlowNodeEntity-1.md#ondispose)
- [onExtInfoChange](./FlowNodeEntity-1.md#onextinfochange)
- [parent](./FlowNodeEntity-1.md#parent)
- [pre](./FlowNodeEntity-1.md#pre)
- [renderData](./FlowNodeEntity-1.md#renderdata)
- [savedInManager](./FlowNodeEntity-1.md#savedinmanager)
- [transform](./FlowNodeEntity-1.md#transform)
- [type](./FlowNodeEntity-1.md#type-1)
- [version](./FlowNodeEntity-1.md#version)
### Methods
- [addChild](./FlowNodeEntity-1.md#addchild)
- [addData](./FlowNodeEntity-1.md#adddata)
- [addInitializeData](./FlowNodeEntity-1.md#addinitializedata)
- [clearMemoGlobal](./FlowNodeEntity-1.md#clearmemoglobal)
- [clearMemoLocal](./FlowNodeEntity-1.md#clearmemolocal)
- [dispose](./FlowNodeEntity-1.md#dispose)
- [fromJSON](./FlowNodeEntity-1.md#fromjson)
- [getData](./FlowNodeEntity-1.md#getdata)
- [getDefaultDataRegistries](./FlowNodeEntity-1.md#getdefaultdataregistries)
- [getExtInfo](./FlowNodeEntity-1.md#getextinfo)
- [getJSONData](./FlowNodeEntity-1.md#getjsondata)
- [getNodeMeta](./FlowNodeEntity-1.md#getnodemeta)
- [getNodeRegister](./FlowNodeEntity-1.md#getnoderegister)
- [getNodeRegistry](./FlowNodeEntity-1.md#getnoderegistry)
- [getService](./FlowNodeEntity-1.md#getservice)
- [hasData](./FlowNodeEntity-1.md#hasdata)
- [initData](./FlowNodeEntity-1.md#initdata)
- [isExtend](./FlowNodeEntity-1.md#isextend)
- [isTypeOrExtendType](./FlowNodeEntity-1.md#istypeorextendtype)
- [memoGlobal](./FlowNodeEntity-1.md#memoglobal)
- [memoLocal](./FlowNodeEntity-1.md#memolocal)
- [openInsideCollapsed](./FlowNodeEntity-1.md#openinsidecollapsed)
- [removeData](./FlowNodeEntity-1.md#removedata)
- [reset](./FlowNodeEntity-1.md#reset)
- [toJSON](./FlowNodeEntity-1.md#tojson)
- [updateData](./FlowNodeEntity-1.md#updatedata)
- [updateExtInfo](./FlowNodeEntity-1.md#updateextinfo)
## Constructors
### constructor
**new FlowNodeEntity**(`conf`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `conf` | [`FlowNodeEntityConfig`](../interfaces/FlowNodeEntityConfig.md) |
#### Overrides
Entity\<FlowNodeEntityConfig\>.constructor
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`FlowNodeEntityConfig`](../interfaces/FlowNodeEntityConfig.md)
#### Inherited from
Entity.\_\_opts\_type\_\_
___
### document
**document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
文档引用
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
全局的entity管理器
#### Inherited from
Entity.entityManager
___
### flowNodeType
**flowNodeType**: [`FlowNodeType`](../types/FlowNodeType.md) = `'unknown'`
___
### index
**index**: `number` = `-1`
___
### metaFromJSON
`Optional` **metaFromJSON**: [`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityDataChangedEvent`\<`Entity`\<`EntityOpts`\>\>\>
数据更改事件
#### Inherited from
Entity.onDataChange
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<`Entity`\<`EntityOpts`\>\>
修改会触发
#### Inherited from
Entity.onEntityChange
___
### originParent
`Optional` **originParent**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
真实的父节点,条件块在内部会创建一些空的块节点,这些块需要关联它真实的父亲节点
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
Entity.preDispose
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
Entity.toDispose
___
### type
`Static` **type**: `string` = `'FlowNodeEntity'`
#### Overrides
Entity.type
## Accessors
### allChildren
`get` **allChildren**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
获取所有子节点,包含 child 及其所有兄弟节点
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### allCollapsedChildren
`get` **allCollapsedChildren**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
获取所有收起的子节点,包含 child 及其所有兄弟节点
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### blocks
`get` **blocks**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
Get child blocks
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### bounds
`get` **bounds**(): `Rectangle`
获取节点的位置及大小矩形
#### Returns
`Rectangle`
___
### children
`get` **children**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
获取子节点,如果子节点收起来,则会返回 空数组
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### childrenLength
`get` **childrenLength**(): `number`
#### Returns
`number`
___
### collapsed
`get` **collapsed**(): `boolean`
#### Returns
`boolean`
`set` **collapsed**(`collapsed`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `collapsed` | `boolean` |
#### Returns
`void`
___
### collapsedChildren
`get` **collapsedChildren**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
Get child blocks
use `blocks` instead
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
**`Deprecated`**
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
Entity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
Entity.disposed
___
### firstChild
`get` **firstChild**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### hasChild
`get` **hasChild**(): `boolean`
#### Returns
`boolean`
___
### hidden
`get` **hidden**(): `boolean`
#### Returns
`boolean`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
Entity.id
___
### isFirst
`get` **isFirst**(): `boolean`
#### Returns
`boolean`
___
### isInlineBlock
`get` **isInlineBlock**(): `boolean`
水平节点
#### Returns
`boolean`
___
### isInlineBlocks
`get` **isInlineBlocks**(): `boolean`
子节点采用水平布局
#### Returns
`boolean`
___
### isLast
`get` **isLast**(): `boolean`
#### Returns
`boolean`
___
### isNodeEnd
`get` **isNodeEnd**(): `boolean`
节点结束标记
- 当前节点是结束节点
- 当前节点最后一个节点包含结束标记
- 当前节点为 inlineBlock,每一个 block 包含结束标记
由子元素确定,因此使用 memoLocal
#### Returns
`boolean`
___
### isStart
`get` **isStart**(): `boolean`
#### Returns
`boolean`
___
### isVertical
`get` **isVertical**(): `boolean`
#### Returns
`boolean`
___
### lastBlock
`get` **lastBlock**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
Get last block
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### lastChild
`get` **lastChild**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### lastCollapsedChild
`get` **lastCollapsedChild**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
use `lastBlock` instead
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### next
`get` **next**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
Entity.onDispose
___
### onExtInfoChange
`get` **onExtInfoChange**(): `Event`\<\{ `newInfo`: `any` ; `oldInfo`: `any` }\>
#### Returns
`Event`\<\{ `newInfo`: `any` ; `oldInfo`: `any` }\>
___
### parent
`get` **parent**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### pre
`get` **pre**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### renderData
`get` **renderData**(): [`FlowNodeRenderData`](./FlowNodeRenderData.md)
获取渲染数据
#### Returns
[`FlowNodeRenderData`](./FlowNodeRenderData.md)
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
Entity.savedInManager
___
### transform
`get` **transform**(): [`FlowNodeTransformData`](./FlowNodeTransformData.md)
获取位置大小数据
#### Returns
[`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
Entity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
Entity.version
## Methods
### addChild
**addChild**(`child`, `index?`): `void`
添加 子节点
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `child` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) | 插入节点 |
| `index?` | `number` | - |
#### Returns
`void`
___
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
| `defaultProps?` | `EntityDataProps`\<`D`\> |
#### Returns
`D`
#### Inherited from
Entity.addData
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
Entity.addInitializeData
___
### clearMemoGlobal
**clearMemoGlobal**(): `void`
#### Returns
`void`
___
### clearMemoLocal
**clearMemoLocal**(): `void`
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
Entity.dispose
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
Entity.fromJSON
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`D`
#### Inherited from
Entity.getData
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
`EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
#### Inherited from
Entity.getDefaultDataRegistries
___
### getExtInfo
**getExtInfo**\<`T`\>(): `T`
获取节点扩展信息
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Record`\<`string`, `any`\> = `Record`\<`string`, `any`\> |
#### Returns
`T`
___
### getJSONData
**getJSONData**(): `any`
可以重载
#### Returns
`any`
___
### getNodeMeta
**getNodeMeta**\<`M`\>(): `M` & `Required`\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\>
#### Type parameters
| Name | Type |
| :------ | :------ |
| `M` | extends [`FlowNodeMeta`](../interfaces/FlowNodeMeta.md) = [`FlowNodeMeta`](../interfaces/FlowNodeMeta.md) |
#### Returns
`M` & `Required`\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\>
___
### getNodeRegister
**getNodeRegister**\<`M`\>(): `M`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `M` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md), `M`\> = [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> |
#### Returns
`M`
**`Deprecated`**
use getNodeRegistry instead
___
### getNodeRegistry
**getNodeRegistry**\<`M`\>(): `M`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `M` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md), `M`\> = [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> & \{ `meta`: [`FlowNodeMeta`](../interfaces/FlowNodeMeta.md) } |
#### Returns
`M`
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
Entity.getService
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
Entity.hasData
___
### initData
**initData**(`initConf`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `initConf` | [`FlowNodeInitData`](../interfaces/FlowNodeInitData.md) |
#### Returns
`void`
___
### isExtend
**isExtend**(`parentType`): `boolean`
Check node extend type
#### Parameters
| Name | Type |
| :------ | :------ |
| `parentType` | [`FlowNodeType`](../types/FlowNodeType.md) |
#### Returns
`boolean`
___
### isTypeOrExtendType
**isTypeOrExtendType**(`parentType`): `boolean`
Check node type
#### Parameters
| Name | Type |
| :------ | :------ |
| `parentType` | [`FlowNodeType`](../types/FlowNodeType.md) |
#### Returns
`boolean`
___
### memoGlobal
**memoGlobal**\<`T`\>(`key`, `fn`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `fn` | () => `T` |
#### Returns
`T`
___
### memoLocal
**memoLocal**\<`T`\>(`key`, `fn`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `fn` | () => `T` |
#### Returns
`T`
___
### openInsideCollapsed
**openInsideCollapsed**(): `void`
#### Returns
`void`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`void`
#### Inherited from
Entity.removeData
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
Entity.reset
___
### toJSON
**toJSON**(): [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)
生成 JSON
#### Returns
[`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)
#### Overrides
Entity.toJSON
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
| `props` | `EntityDataProps`\<`D`\> |
#### Returns
`void`
#### Inherited from
Entity.updateData
___
### updateExtInfo
**updateExtInfo**\<`T`\>(`extInfo`, `fullUpdate?`): `void`
修改节点扩展信息
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Record`\<`string`, `any`\> = `Record`\<`string`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `extInfo` | `T` |
| `fullUpdate?` | `boolean` |
#### Returns
`void`
---
url: /auto-docs/document/classes/FlowNodeRenderData.md
---
# Class: FlowNodeRenderData
节点渲染状态相关数据
## Hierarchy
- `EntityData`\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)\>
↳ **`FlowNodeRenderData`**
## Table of contents
### Constructors
- [constructor](./FlowNodeRenderData.md#constructor)
### Properties
- [entity](./FlowNodeRenderData.md#entity)
- [mouseLeaveTimeout](./FlowNodeRenderData.md#mouseleavetimeout)
- [onDataChange](./FlowNodeRenderData.md#ondatachange)
- [onExtInfoChange](./FlowNodeRenderData.md#onextinfochange)
- [onWillChange](./FlowNodeRenderData.md#onwillchange)
- [opts](./FlowNodeRenderData.md#opts)
- [toDispose](./FlowNodeRenderData.md#todispose)
- [type](./FlowNodeRenderData.md#type)
### Accessors
- [activated](./FlowNodeRenderData.md#activated)
- [addable](./FlowNodeRenderData.md#addable)
- [changeLocked](./FlowNodeRenderData.md#changelocked)
- [data](./FlowNodeRenderData.md#data)
- [disposed](./FlowNodeRenderData.md#disposed)
- [draggable](./FlowNodeRenderData.md#draggable)
- [dragging](./FlowNodeRenderData.md#dragging)
- [expandable](./FlowNodeRenderData.md#expandable)
- [expanded](./FlowNodeRenderData.md#expanded)
- [hidden](./FlowNodeRenderData.md#hidden)
- [hovered](./FlowNodeRenderData.md#hovered)
- [key](./FlowNodeRenderData.md#key)
- [lineActivated](./FlowNodeRenderData.md#lineactivated)
- [node](./FlowNodeRenderData.md#node)
- [onDispose](./FlowNodeRenderData.md#ondispose)
- [stackIndex](./FlowNodeRenderData.md#stackindex)
- [type](./FlowNodeRenderData.md#type-1)
- [version](./FlowNodeRenderData.md#version)
### Methods
- [checkChanged](./FlowNodeRenderData.md#checkchanged)
- [dispose](./FlowNodeRenderData.md#dispose)
- [fireChange](./FlowNodeRenderData.md#firechange)
- [fireWillChange](./FlowNodeRenderData.md#firewillchange)
- [fromJSON](./FlowNodeRenderData.md#fromjson)
- [fullyUpdate](./FlowNodeRenderData.md#fullyupdate)
- [getDefaultData](./FlowNodeRenderData.md#getdefaultdata)
- [getExtInfo](./FlowNodeRenderData.md#getextinfo)
- [toJSON](./FlowNodeRenderData.md#tojson)
- [toggleExpand](./FlowNodeRenderData.md#toggleexpand)
- [toggleMouseEnter](./FlowNodeRenderData.md#togglemouseenter)
- [toggleMouseLeave](./FlowNodeRenderData.md#togglemouseleave)
- [update](./FlowNodeRenderData.md#update)
- [updateExtInfo](./FlowNodeRenderData.md#updateextinfo)
## Constructors
### constructor
**new FlowNodeRenderData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Overrides
EntityData\<FlowNodeRenderSchema\>.constructor
## Properties
### entity
**entity**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Overrides
EntityData.entity
___
### mouseLeaveTimeout
`Optional` **mouseLeaveTimeout**: `Timeout`
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityData`\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md), {}\>\>
修改后触发
#### Inherited from
EntityData.onDataChange
___
### onExtInfoChange
`Readonly` **onExtInfoChange**: `Event`\<\{ `newInfo`: `any` ; `oldInfo`: `any` }\>
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<`EntityData`\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md), {}\>\>
修改前触发
#### Inherited from
EntityData.onWillChange
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
EntityData.opts
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
EntityData.toDispose
___
### type
`Static` **type**: `string` = `'FlowNodeRenderData'`
#### Overrides
EntityData.type
## Accessors
### activated
`get` **activated**(): `boolean`
#### Returns
`boolean`
`set` **activated**(`activated`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `activated` | `boolean` |
#### Returns
`void`
___
### addable
`get` **addable**(): `boolean`
#### Returns
`boolean`
___
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### draggable
`get` **draggable**(): `boolean`
#### Returns
`boolean`
___
### dragging
`get` **dragging**(): `boolean`
#### Returns
`boolean`
`set` **dragging**(`dragging`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `dragging` | `boolean` |
#### Returns
`void`
___
### expandable
`get` **expandable**(): `boolean`
#### Returns
`boolean`
___
### expanded
`get` **expanded**(): `boolean`
#### Returns
`boolean`
`set` **expanded**(`expanded`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `expanded` | `boolean` |
#### Returns
`void`
___
### hidden
`get` **hidden**(): `boolean`
#### Returns
`boolean`
___
### hovered
`get` **hovered**(): `boolean`
#### Returns
`boolean`
`set` **hovered**(`hovered`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `hovered` | `boolean` |
#### Returns
`void`
___
### key
`get` **key**(): `string`
#### Returns
`string`
___
### lineActivated
`get` **lineActivated**(): `boolean`
#### Returns
`boolean`
___
### node
`get` **node**(): `HTMLDivElement`
#### Returns
`HTMLDivElement`
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### stackIndex
`get` **stackIndex**(): `number`
#### Returns
`number`
`set` **stackIndex**(`index`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `index` | `number` |
#### Returns
`void`
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md) \| `Partial`\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
EntityData.checkChanged
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Overrides
EntityData.dispose
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireChange
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireWillChange
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
EntityData.fromJSON
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md) |
#### Returns
`void`
#### Inherited from
EntityData.fullyUpdate
___
### getDefaultData
**getDefaultData**(): [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)
#### Returns
[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)
#### Overrides
EntityData.getDefaultData
___
### getExtInfo
**getExtInfo**(): `undefined` \| `Record`\<`string`, `any`\>
#### Returns
`undefined` \| `Record`\<`string`, `any`\>
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
EntityData.toJSON
___
### toggleExpand
**toggleExpand**(): `void`
#### Returns
`void`
___
### toggleMouseEnter
**toggleMouseEnter**(`silent?`): `void`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `silent` | `boolean` | `false` |
#### Returns
`void`
___
### toggleMouseLeave
**toggleMouseLeave**(`silent?`): `void`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `silent` | `boolean` | `false` |
#### Returns
`void`
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md) \| `Partial`\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)\> \| keyof [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
EntityData.update
___
### updateExtInfo
**updateExtInfo**(`info`, `fullUpdate?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `info` | `Record`\<`string`, `any`\> |
| `fullUpdate?` | `boolean` |
#### Returns
`void`
---
url: /auto-docs/document/classes/FlowNodeTransformData.md
---
# Class: FlowNodeTransformData
## Hierarchy
- `EntityData`\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)\>
↳ **`FlowNodeTransformData`**
## Table of contents
### Constructors
- [constructor](./FlowNodeTransformData.md#constructor)
### Properties
- [entity](./FlowNodeTransformData.md#entity)
- [localDirty](./FlowNodeTransformData.md#localdirty)
- [onDataChange](./FlowNodeTransformData.md#ondatachange)
- [onWillChange](./FlowNodeTransformData.md#onwillchange)
- [opts](./FlowNodeTransformData.md#opts)
- [renderState](./FlowNodeTransformData.md#renderstate)
- [toDispose](./FlowNodeTransformData.md#todispose)
- [transform](./FlowNodeTransformData.md#transform)
- [type](./FlowNodeTransformData.md#type)
### Accessors
- [bounds](./FlowNodeTransformData.md#bounds)
- [boundsWithPadding](./FlowNodeTransformData.md#boundswithpadding)
- [changeLocked](./FlowNodeTransformData.md#changelocked)
- [children](./FlowNodeTransformData.md#children)
- [collapsed](./FlowNodeTransformData.md#collapsed)
- [data](./FlowNodeTransformData.md#data)
- [defaultInputPoint](./FlowNodeTransformData.md#defaultinputpoint)
- [defaultOutputPoint](./FlowNodeTransformData.md#defaultoutputpoint)
- [disposed](./FlowNodeTransformData.md#disposed)
- [firstChild](./FlowNodeTransformData.md#firstchild)
- [inlineSpacingAfter](./FlowNodeTransformData.md#inlinespacingafter)
- [inlineSpacingPre](./FlowNodeTransformData.md#inlinespacingpre)
- [inputPoint](./FlowNodeTransformData.md#inputpoint)
- [isContainer](./FlowNodeTransformData.md#iscontainer)
- [isFirst](./FlowNodeTransformData.md#isfirst)
- [isLast](./FlowNodeTransformData.md#islast)
- [key](./FlowNodeTransformData.md#key)
- [lastChild](./FlowNodeTransformData.md#lastchild)
- [localBounds](./FlowNodeTransformData.md#localbounds)
- [minInlineBlockSpacing](./FlowNodeTransformData.md#mininlineblockspacing)
- [next](./FlowNodeTransformData.md#next)
- [onDispose](./FlowNodeTransformData.md#ondispose)
- [origin](./FlowNodeTransformData.md#origin)
- [originDeltaX](./FlowNodeTransformData.md#origindeltax)
- [originDeltaY](./FlowNodeTransformData.md#origindeltay)
- [originParent](./FlowNodeTransformData.md#originparent)
- [outputPoint](./FlowNodeTransformData.md#outputpoint)
- [padding](./FlowNodeTransformData.md#padding)
- [parent](./FlowNodeTransformData.md#parent)
- [position](./FlowNodeTransformData.md#position)
- [pre](./FlowNodeTransformData.md#pre)
- [size](./FlowNodeTransformData.md#size)
- [spacing](./FlowNodeTransformData.md#spacing)
- [type](./FlowNodeTransformData.md#type-1)
- [version](./FlowNodeTransformData.md#version)
### Methods
- [checkChanged](./FlowNodeTransformData.md#checkchanged)
- [dispose](./FlowNodeTransformData.md#dispose)
- [fireChange](./FlowNodeTransformData.md#firechange)
- [fireWillChange](./FlowNodeTransformData.md#firewillchange)
- [fromJSON](./FlowNodeTransformData.md#fromjson)
- [fullyUpdate](./FlowNodeTransformData.md#fullyupdate)
- [getDefaultData](./FlowNodeTransformData.md#getdefaultdata)
- [setParentTransform](./FlowNodeTransformData.md#setparenttransform)
- [toJSON](./FlowNodeTransformData.md#tojson)
- [update](./FlowNodeTransformData.md#update)
## Constructors
### constructor
**new FlowNodeTransformData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Overrides
EntityData\<FlowNodeTransformSchema\>.constructor
## Properties
### entity
**entity**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Overrides
EntityData.entity
___
### localDirty
**localDirty**: `boolean` = `true`
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityData`\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md), {}\>\>
修改后触发
#### Inherited from
EntityData.onDataChange
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<`EntityData`\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md), {}\>\>
修改前触发
#### Inherited from
EntityData.onWillChange
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
EntityData.opts
___
### renderState
**renderState**: [`FlowNodeRenderData`](./FlowNodeRenderData.md)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
EntityData.toDispose
___
### transform
**transform**: `TransformData`
___
### type
`Static` **type**: `string` = `'FlowNodeTransformData'`
#### Overrides
EntityData.type
## Accessors
### bounds
`get` **bounds**(): `Rectangle`
绝对坐标 bbox, 不包含自身的 spacing(marginBottom), 但是包含 inlineSpacing 和 子节点的 spacing
#### Returns
`Rectangle`
___
### boundsWithPadding
`get` **boundsWithPadding**(): `Rectangle`
#### Returns
`Rectangle`
___
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### children
`get` **children**(): [`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
#### Returns
[`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
___
### collapsed
`get` **collapsed**(): `boolean`
获取节点是否展开
#### Returns
`boolean`
`set` **collapsed**(`collapsed`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `collapsed` | `boolean` |
#### Returns
`void`
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### defaultInputPoint
`get` **defaultInputPoint**(): `IPoint`
#### Returns
`IPoint`
___
### defaultOutputPoint
`get` **defaultOutputPoint**(): `IPoint`
#### Returns
`IPoint`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### firstChild
`get` **firstChild**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### inlineSpacingAfter
`get` **inlineSpacingAfter**(): `number`
#### Returns
`number`
___
### inlineSpacingPre
`get` **inlineSpacingPre**(): `number`
#### Returns
`number`
___
### inputPoint
`get` **inputPoint**(): `IPoint`
#### Returns
`IPoint`
___
### isContainer
`get` **isContainer**(): `boolean`
#### Returns
`boolean`
___
### isFirst
`get` **isFirst**(): `boolean`
#### Returns
`boolean`
___
### isLast
`get` **isLast**(): `boolean`
#### Returns
`boolean`
___
### key
`get` **key**(): `string`
#### Returns
`string`
___
### lastChild
`get` **lastChild**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### localBounds
`get` **localBounds**(): `Rectangle`
相对坐标 bbox, 这里的 localBounds 会加入 padding 一起算
#### Returns
`Rectangle`
___
### minInlineBlockSpacing
`get` **minInlineBlockSpacing**(): `number`
#### Returns
`number`
___
### next
`get` **next**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
下一个节点的 transform 数据
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### origin
`get` **origin**(): `OriginSchema`
#### Returns
`OriginSchema`
___
### originDeltaX
`get` **originDeltaX**(): `number`
原点的最左偏移
#### Returns
`number`
___
### originDeltaY
`get` **originDeltaY**(): `number`
原点 y 轴偏移
#### Returns
`number`
___
### originParent
`get` **originParent**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### outputPoint
`get` **outputPoint**(): `IPoint`
#### Returns
`IPoint`
___
### padding
`get` **padding**(): `PaddingSchema`
#### Returns
`PaddingSchema`
___
### parent
`get` **parent**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
parent 节点的 transform 数据
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### position
`get` **position**(): `PositionSchema`
#### Returns
`PositionSchema`
`set` **position**(`position`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `position` | `PositionSchema` |
#### Returns
`void`
___
### pre
`get` **pre**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
上一个节点的 transform 数据
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### size
`get` **size**(): `SizeSchema`
获取节点的大小
#### Returns
`SizeSchema`
`set` **size**(`size`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `SizeSchema` |
#### Returns
`void`
___
### spacing
`get` **spacing**(): `number`
#### Returns
`number`
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md) \| `Partial`\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
EntityData.checkChanged
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.dispose
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireChange
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireWillChange
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
EntityData.fromJSON
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md) |
#### Returns
`void`
#### Inherited from
EntityData.fullyUpdate
___
### getDefaultData
**getDefaultData**(): [`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)
#### Returns
[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)
#### Overrides
EntityData.getDefaultData
___
### setParentTransform
**setParentTransform**(`transform?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `transform?` | [`FlowNodeTransformData`](./FlowNodeTransformData.md) |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
EntityData.toJSON
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | ``"size"`` \| [`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md) \| `Partial`\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)\> |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
EntityData.update
---
url: /auto-docs/document/classes/FlowNodeTransitionData.md
---
# Class: FlowNodeTransitionData
## Hierarchy
- `EntityData`\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)\>
↳ **`FlowNodeTransitionData`**
## Table of contents
### Constructors
- [constructor](./FlowNodeTransitionData.md#constructor)
### Properties
- [entity](./FlowNodeTransitionData.md#entity)
- [onDataChange](./FlowNodeTransitionData.md#ondatachange)
- [onWillChange](./FlowNodeTransitionData.md#onwillchange)
- [opts](./FlowNodeTransitionData.md#opts)
- [renderData](./FlowNodeTransitionData.md#renderdata)
- [toDispose](./FlowNodeTransitionData.md#todispose)
- [transform](./FlowNodeTransitionData.md#transform)
- [type](./FlowNodeTransitionData.md#type)
### Accessors
- [changeLocked](./FlowNodeTransitionData.md#changelocked)
- [collapsed](./FlowNodeTransitionData.md#collapsed)
- [data](./FlowNodeTransitionData.md#data)
- [disposed](./FlowNodeTransitionData.md#disposed)
- [isNodeEnd](./FlowNodeTransitionData.md#isnodeend)
- [labels](./FlowNodeTransitionData.md#labels)
- [lines](./FlowNodeTransitionData.md#lines)
- [onDispose](./FlowNodeTransitionData.md#ondispose)
- [type](./FlowNodeTransitionData.md#type-1)
- [version](./FlowNodeTransitionData.md#version)
### Methods
- [checkChanged](./FlowNodeTransitionData.md#checkchanged)
- [dispose](./FlowNodeTransitionData.md#dispose)
- [fireChange](./FlowNodeTransitionData.md#firechange)
- [fireWillChange](./FlowNodeTransitionData.md#firewillchange)
- [formatLabels](./FlowNodeTransitionData.md#formatlabels)
- [formatLines](./FlowNodeTransitionData.md#formatlines)
- [fromJSON](./FlowNodeTransitionData.md#fromjson)
- [fullyUpdate](./FlowNodeTransitionData.md#fullyupdate)
- [getDefaultData](./FlowNodeTransitionData.md#getdefaultdata)
- [toJSON](./FlowNodeTransitionData.md#tojson)
- [update](./FlowNodeTransitionData.md#update)
## Constructors
### constructor
**new FlowNodeTransitionData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Overrides
EntityData\<FlowNodeTransitionSchema\>.constructor
## Properties
### entity
**entity**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Overrides
EntityData.entity
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityData`\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md), {}\>\>
修改后触发
#### Inherited from
EntityData.onDataChange
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<`EntityData`\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md), {}\>\>
修改前触发
#### Inherited from
EntityData.onWillChange
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
EntityData.opts
___
### renderData
**renderData**: [`FlowNodeRenderData`](./FlowNodeRenderData.md)
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
EntityData.toDispose
___
### transform
**transform**: [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### type
`Static` **type**: `string` = `'FlowNodeTransitionData'`
#### Overrides
EntityData.type
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### collapsed
`get` **collapsed**(): `boolean`
#### Returns
`boolean`
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### isNodeEnd
`get` **isNodeEnd**(): `boolean`
#### Returns
`boolean`
___
### labels
`get` **labels**(): [`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[]
#### Returns
[`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[]
___
### lines
`get` **lines**(): [`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[]
#### Returns
[`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[]
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md) \| `Partial`\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
EntityData.checkChanged
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.dispose
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireChange
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireWillChange
___
### formatLabels
**formatLabels**(`labels`): [`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `labels` | [`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[] |
#### Returns
[`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[]
___
### formatLines
**formatLines**(`lines`): [`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `lines` | [`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[] |
#### Returns
[`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[]
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
EntityData.fromJSON
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md) |
#### Returns
`void`
#### Inherited from
EntityData.fullyUpdate
___
### getDefaultData
**getDefaultData**(): [`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)
#### Returns
[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)
#### Overrides
EntityData.getDefaultData
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
EntityData.toJSON
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md) \| `Partial`\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)\> |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
EntityData.update
---
url: /auto-docs/document/classes/FlowOperationBaseServiceImpl.md
---
# Class: FlowOperationBaseServiceImpl
操作服务
## Implements
- [`FlowOperationBaseService`](../variables/FlowOperationBaseService-1.md)
## Table of contents
### Constructors
- [constructor](./FlowOperationBaseServiceImpl.md#constructor)
### Properties
- [onNodeAdd](./FlowOperationBaseServiceImpl.md#onnodeadd)
- [onNodeMove](./FlowOperationBaseServiceImpl.md#onnodemove)
### Methods
- [addBlock](./FlowOperationBaseServiceImpl.md#addblock)
- [addFromNode](./FlowOperationBaseServiceImpl.md#addfromnode)
- [addNode](./FlowOperationBaseServiceImpl.md#addnode)
- [apply](./FlowOperationBaseServiceImpl.md#apply)
- [deleteNode](./FlowOperationBaseServiceImpl.md#deletenode)
- [deleteNodes](./FlowOperationBaseServiceImpl.md#deletenodes)
- [dispose](./FlowOperationBaseServiceImpl.md#dispose)
- [dragNodes](./FlowOperationBaseServiceImpl.md#dragnodes)
- [moveNode](./FlowOperationBaseServiceImpl.md#movenode)
- [transact](./FlowOperationBaseServiceImpl.md#transact)
## Constructors
### constructor
**new FlowOperationBaseServiceImpl**()
## Properties
### onNodeAdd
`Readonly` **onNodeAdd**: `Event`\<[`OnNodeAddEvent`](../interfaces/OnNodeAddEvent.md)\>
#### Implementation of
FlowOperationBaseService.onNodeAdd
___
### onNodeMove
`Readonly` **onNodeMove**: `Event`\<[`OnNodeMoveEvent`](../interfaces/OnNodeMoveEvent.md)\>
#### Implementation of
FlowOperationBaseService.onNodeMove
## Methods
### addBlock
**addBlock**(`target`, `blockJSON`, `config?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) |
| `blockJSON` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
| `config` | [`AddBlockConfig`](../interfaces/AddBlockConfig.md) |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Implementation of
FlowOperationBaseService.addBlock
___
### addFromNode
**addFromNode**(`fromNode`, `nodeJSON`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fromNode` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) |
| `nodeJSON` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Implementation of
FlowOperationBaseService.addFromNode
___
### addNode
**addNode**(`nodeJSON`, `config?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeJSON` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
| `config` | [`AddNodeConfig`](../types/AddNodeConfig.md) |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Implementation of
FlowOperationBaseService.addNode
___
### apply
**apply**(`operation`): `any`
执行操作
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `operation` | [`FlowOperation`](../types/FlowOperation.md) | 可序列化的操作 |
#### Returns
`any`
操作返回
#### Implementation of
FlowOperationBaseService.apply
___
### deleteNode
**deleteNode**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) |
#### Returns
`void`
#### Implementation of
FlowOperationBaseService.deleteNode
___
### deleteNodes
**deleteNodes**(`nodes`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md)[] |
#### Returns
`void`
#### Implementation of
FlowOperationBaseService.deleteNodes
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
FlowOperationBaseService.dispose
___
### dragNodes
**dragNodes**(`param0`): `any`
拖拽节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.dropNode` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `param0.nodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`any`
#### Implementation of
FlowOperationBaseService.dragNodes
___
### moveNode
**moveNode**(`node`, `config?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) |
| `config` | [`MoveNodeConfig`](../interfaces/MoveNodeConfig.md) |
#### Returns
`void`
#### Implementation of
FlowOperationBaseService.moveNode
___
### transact
**transact**(`transaction`): `void`
事务执行
#### Parameters
| Name | Type |
| :------ | :------ |
| `transaction` | () => `void` |
#### Returns
`void`
---
url: /auto-docs/document/classes/FlowRendererStateEntity.md
---
# Class: FlowRendererStateEntity
渲染相关的全局状态管理
## Hierarchy
- `ConfigEntity`\<`FlowRendererState`, `FlowRendererStateEntityConfig`\>
↳ **`FlowRendererStateEntity`**
## Table of contents
### Constructors
- [constructor](./FlowRendererStateEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowRendererStateEntity.md#__opts_type__)
- [entityManager](./FlowRendererStateEntity.md#entitymanager)
- [onDataChange](./FlowRendererStateEntity.md#ondatachange)
- [onEntityChange](./FlowRendererStateEntity.md#onentitychange)
- [preDispose](./FlowRendererStateEntity.md#predispose)
- [toDispose](./FlowRendererStateEntity.md#todispose)
- [type](./FlowRendererStateEntity.md#type)
### Accessors
- [config](./FlowRendererStateEntity.md#config)
- [context](./FlowRendererStateEntity.md#context)
- [disposed](./FlowRendererStateEntity.md#disposed)
- [dragging](./FlowRendererStateEntity.md#dragging)
- [id](./FlowRendererStateEntity.md#id)
- [isBranch](./FlowRendererStateEntity.md#isbranch)
- [onDispose](./FlowRendererStateEntity.md#ondispose)
- [savedInManager](./FlowRendererStateEntity.md#savedinmanager)
- [type](./FlowRendererStateEntity.md#type-1)
- [version](./FlowRendererStateEntity.md#version)
### Methods
- [addData](./FlowRendererStateEntity.md#adddata)
- [addInitializeData](./FlowRendererStateEntity.md#addinitializedata)
- [checkChanged](./FlowRendererStateEntity.md#checkchanged)
- [dispose](./FlowRendererStateEntity.md#dispose)
- [fromJSON](./FlowRendererStateEntity.md#fromjson)
- [getData](./FlowRendererStateEntity.md#getdata)
- [getDefaultConfig](./FlowRendererStateEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./FlowRendererStateEntity.md#getdefaultdataregistries)
- [getDragEntities](./FlowRendererStateEntity.md#getdragentities)
- [getDragLabelSide](./FlowRendererStateEntity.md#getdraglabelside)
- [getDragStartEntity](./FlowRendererStateEntity.md#getdragstartentity)
- [getNodeDroppingId](./FlowRendererStateEntity.md#getnodedroppingid)
- [getNodeHovered](./FlowRendererStateEntity.md#getnodehovered)
- [getService](./FlowRendererStateEntity.md#getservice)
- [hasData](./FlowRendererStateEntity.md#hasdata)
- [onConfigChanged](./FlowRendererStateEntity.md#onconfigchanged)
- [onNodeHoveredChange](./FlowRendererStateEntity.md#onnodehoveredchange)
- [removeData](./FlowRendererStateEntity.md#removedata)
- [reset](./FlowRendererStateEntity.md#reset)
- [setDragEntities](./FlowRendererStateEntity.md#setdragentities)
- [setDragLabelSide](./FlowRendererStateEntity.md#setdraglabelside)
- [setDragStartEntity](./FlowRendererStateEntity.md#setdragstartentity)
- [setDragging](./FlowRendererStateEntity.md#setdragging)
- [setIsBranch](./FlowRendererStateEntity.md#setisbranch)
- [setNodeDroppingId](./FlowRendererStateEntity.md#setnodedroppingid)
- [setNodeHovered](./FlowRendererStateEntity.md#setnodehovered)
- [toJSON](./FlowRendererStateEntity.md#tojson)
- [updateConfig](./FlowRendererStateEntity.md#updateconfig)
- [updateData](./FlowRendererStateEntity.md#updatedata)
## Constructors
### constructor
**new FlowRendererStateEntity**(`conf`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `conf` | `FlowRendererStateEntityConfig` |
#### Overrides
ConfigEntity\<
FlowRendererState,
FlowRendererStateEntityConfig
\>.constructor
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `FlowRendererStateEntityConfig`
#### Inherited from
ConfigEntity.\_\_opts\_type\_\_
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
全局的entity管理器
#### Inherited from
ConfigEntity.entityManager
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityDataChangedEvent`\<`Entity`\<`EntityOpts`\>\>\>
数据更改事件
#### Inherited from
ConfigEntity.onDataChange
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<`Entity`\<`EntityOpts`\>\>
修改会触发
#### Inherited from
ConfigEntity.onEntityChange
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
ConfigEntity.preDispose
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
ConfigEntity.toDispose
___
### type
`Static` **type**: `string` = `'FlowRendererStateEntity'`
#### Overrides
ConfigEntity.type
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### dragging
`get` **dragging**(): `undefined` \| `boolean`
#### Returns
`undefined` \| `boolean`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### isBranch
`get` **isBranch**(): `undefined` \| `boolean`
#### Returns
`undefined` \| `boolean`
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
| `defaultProps?` | `EntityDataProps`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.addData
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.addInitializeData
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `FlowRendererState` |
| `newData` | `Partial`\<`FlowRendererState`\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.checkChanged
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
ConfigEntity.dispose
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.fromJSON
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.getData
___
### getDefaultConfig
**getDefaultConfig**(): `Object`
#### Returns
`Object`
#### Overrides
ConfigEntity.getDefaultConfig
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
`EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
#### Inherited from
ConfigEntity.getDefaultDataRegistries
___
### getDragEntities
**getDragEntities**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### getDragLabelSide
**getDragLabelSide**(): `undefined` \| [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md)
#### Returns
`undefined` \| [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md)
___
### getDragStartEntity
**getDragStartEntity**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### getNodeDroppingId
**getNodeDroppingId**(): `undefined` \| `string`
#### Returns
`undefined` \| `string`
___
### getNodeHovered
**getNodeHovered**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
ConfigEntity.getService
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.hasData
___
### onConfigChanged
**onConfigChanged**(`fn`): `Disposable`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: `FlowRendererState`) => `void` |
#### Returns
`Disposable`
#### Inherited from
ConfigEntity.onConfigChanged
___
### onNodeHoveredChange
**onNodeHoveredChange**(`fn`, `debounceTime?`): `Disposable`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `fn` | (`hoveredNode`: `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)) => `void` | `undefined` |
| `debounceTime` | `number` | `100` |
#### Returns
`Disposable`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.removeData
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
ConfigEntity.reset
___
### setDragEntities
**setDragEntities**(`nodes`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`void`
___
### setDragLabelSide
**setDragLabelSide**(`dragLabelSide?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `dragLabelSide?` | [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md) |
#### Returns
`void`
___
### setDragStartEntity
**setDragStartEntity**(`node?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### setDragging
**setDragging**(`dragging`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `dragging` | `boolean` |
#### Returns
`void`
___
### setIsBranch
**setIsBranch**(`isBranch`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `isBranch` | `boolean` |
#### Returns
`void`
___
### setNodeDroppingId
**setNodeDroppingId**(`nodeDroppingId?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeDroppingId?` | `string` |
#### Returns
`void`
___
### setNodeHovered
**setNodeHovered**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
ConfigEntity.toJSON
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<`FlowRendererState`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateConfig
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
| `props` | `EntityDataProps`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateData
---
url: /auto-docs/document/classes/FlowVirtualTree-1.md
---
# Class: FlowVirtualTree\
存储节点的 tree 结构信息
策略是 "重修改轻查询",即修改时候做的事情更多,查询都通过指针来操作
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Object` |
## Implements
- `Disposable`
## Table of contents
### Constructors
- [constructor](./FlowVirtualTree-1.md#constructor)
### Properties
- [onTreeChange](./FlowVirtualTree-1.md#ontreechange)
- [root](./FlowVirtualTree-1.md#root)
### Accessors
- [size](./FlowVirtualTree-1.md#size)
### Methods
- [addChild](./FlowVirtualTree-1.md#addchild)
- [clear](./FlowVirtualTree-1.md#clear)
- [clone](./FlowVirtualTree-1.md#clone)
- [cloneMap](./FlowVirtualTree-1.md#clonemap)
- [dispose](./FlowVirtualTree-1.md#dispose)
- [fireTreeChange](./FlowVirtualTree-1.md#firetreechange)
- [getById](./FlowVirtualTree-1.md#getbyid)
- [getChildren](./FlowVirtualTree-1.md#getchildren)
- [getInfo](./FlowVirtualTree-1.md#getinfo)
- [getNext](./FlowVirtualTree-1.md#getnext)
- [getParent](./FlowVirtualTree-1.md#getparent)
- [getPre](./FlowVirtualTree-1.md#getpre)
- [insertAfter](./FlowVirtualTree-1.md#insertafter)
- [moveChilds](./FlowVirtualTree-1.md#movechilds)
- [remove](./FlowVirtualTree-1.md#remove)
- [removeParent](./FlowVirtualTree-1.md#removeparent)
- [toString](./FlowVirtualTree-1.md#tostring)
- [traverse](./FlowVirtualTree-1.md#traverse)
## Constructors
### constructor
**new FlowVirtualTree**\<`T`\>(`root`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Object` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `root` | `T` |
## Properties
### onTreeChange
**onTreeChange**: `Event`\<`void`\>
tree 结构变化时候触发
___
### root
`Readonly` **root**: `T`
## Accessors
### size
`get` **size**(): `number`
#### Returns
`number`
## Methods
### addChild
**addChild**(`parent`, `child`, `index?`): `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | `T` |
| `child` | `T` |
| `index?` | `number` |
#### Returns
`T`
___
### clear
**clear**(): `void`
#### Returns
`void`
___
### clone
**clone**(): [`FlowVirtualTree`](./FlowVirtualTree-1.md)\<`T`\>
#### Returns
[`FlowVirtualTree`](./FlowVirtualTree-1.md)\<`T`\>
___
### cloneMap
**cloneMap**(): `Map`\<`T`, [`NodeInfo`](../interfaces/FlowVirtualTree.NodeInfo.md)\<`T`\>\>
#### Returns
`Map`\<`T`, [`NodeInfo`](../interfaces/FlowVirtualTree.NodeInfo.md)\<`T`\>\>
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
Disposable.dispose
___
### fireTreeChange
**fireTreeChange**(): `void`
通知文档树结构更新
#### Returns
`void`
___
### getById
**getById**(`id`): `undefined` \| `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| `T`
___
### getChildren
**getChildren**(`node`): `T`[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`T`[]
___
### getInfo
**getInfo**(`node`): [`NodeInfo`](../interfaces/FlowVirtualTree.NodeInfo.md)\<`T`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
[`NodeInfo`](../interfaces/FlowVirtualTree.NodeInfo.md)\<`T`\>
___
### getNext
**getNext**(`node`): `undefined` \| `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`undefined` \| `T`
___
### getParent
**getParent**(`node`): `undefined` \| `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`undefined` \| `T`
___
### getPre
**getPre**(`node`): `undefined` \| `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`undefined` \| `T`
___
### insertAfter
**insertAfter**(`before`, `after`): `void`
插入节点到后边
#### Parameters
| Name | Type |
| :------ | :------ |
| `before` | `T` |
| `after` | `T` |
#### Returns
`void`
___
### moveChilds
**moveChilds**(`parent`, `childs`, `index?`): `T`[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | `T` |
| `childs` | `T`[] |
| `index?` | `number` |
#### Returns
`T`[]
___
### remove
**remove**(`node`, `withChildren?`): `void`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `node` | `T` | `undefined` |
| `withChildren` | `boolean` | `true` |
#### Returns
`void`
___
### removeParent
**removeParent**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`void`
___
### toString
**toString**(`showType?`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `showType?` | `boolean` |
#### Returns
`string`
___
### traverse
**traverse**(`fn`, `node?`, `depth?`, `index?`): `boolean` \| `void`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `fn` | (`node`: `T`, `depth`: `number`, `index`: `number`) => `boolean` \| `void` | `undefined` |
| `node` | `T` | `undefined` |
| `depth` | `number` | `0` |
| `index` | `number` | `0` |
#### Returns
`boolean` \| `void`
---
url: /auto-docs/document/enums/DRAGGING_TYPE.md
---
# Enumeration: DRAGGING\_TYPE
拖拽种类枚举
1. 节点拖拽
2. 分支拖拽
## Table of contents
### Enumeration Members
- [BRANCH](./DRAGGING_TYPE.md#branch)
- [NODE](./DRAGGING_TYPE.md#node)
## Enumeration Members
### BRANCH
**BRANCH** = ``"branch"``
___
### NODE
**NODE** = ``"node"``
---
url: /auto-docs/document/enums/FlowDocumentConfigEnum.md
---
# Enumeration: FlowDocumentConfigEnum
## Table of contents
### Enumeration Members
- [END\_NODES\_REFINE\_BRANCH](./FlowDocumentConfigEnum.md#end_nodes_refine_branch)
## Enumeration Members
### END\_NODES\_REFINE\_BRANCH
**END\_NODES\_REFINE\_BRANCH** = ``"END_NODES_REFINE_BRANCH"``
---
url: /auto-docs/document/enums/FlowLayoutDefault-1.md
---
# Enumeration: FlowLayoutDefault
## Table of contents
### Enumeration Members
- [HORIZONTAL\_FIXED\_LAYOUT](./FlowLayoutDefault-1.md#horizontal_fixed_layout)
- [VERTICAL\_FIXED\_LAYOUT](./FlowLayoutDefault-1.md#vertical_fixed_layout)
## Enumeration Members
### HORIZONTAL\_FIXED\_LAYOUT
**HORIZONTAL\_FIXED\_LAYOUT** = ``"horizontal-fixed-layout"``
___
### VERTICAL\_FIXED\_LAYOUT
**VERTICAL\_FIXED\_LAYOUT** = ``"vertical-fixed-layout"``
---
url: /auto-docs/document/enums/FlowNodeBaseType.md
---
# Enumeration: FlowNodeBaseType
## Table of contents
### Enumeration Members
- [BLOCK](./FlowNodeBaseType.md#block)
- [BLOCK\_ICON](./FlowNodeBaseType.md#block_icon)
- [BLOCK\_ORDER\_ICON](./FlowNodeBaseType.md#block_order_icon)
- [BREAK](./FlowNodeBaseType.md#break)
- [CONDITION](./FlowNodeBaseType.md#condition)
- [DEFAULT](./FlowNodeBaseType.md#default)
- [EMPTY](./FlowNodeBaseType.md#empty)
- [END](./FlowNodeBaseType.md#end)
- [GROUP](./FlowNodeBaseType.md#group)
- [INLINE\_BLOCKS](./FlowNodeBaseType.md#inline_blocks)
- [INPUT](./FlowNodeBaseType.md#input)
- [MULTI\_INPUTS](./FlowNodeBaseType.md#multi_inputs)
- [MULTI\_OUTPUTS](./FlowNodeBaseType.md#multi_outputs)
- [OUTPUT](./FlowNodeBaseType.md#output)
- [ROOT](./FlowNodeBaseType.md#root)
- [SLOT](./FlowNodeBaseType.md#slot)
- [SLOT\_BLOCK](./FlowNodeBaseType.md#slot_block)
- [START](./FlowNodeBaseType.md#start)
- [SUB\_CANVAS](./FlowNodeBaseType.md#sub_canvas)
## Enumeration Members
### BLOCK
**BLOCK** = ``"block"``
___
### BLOCK\_ICON
**BLOCK\_ICON** = ``"blockIcon"``
___
### BLOCK\_ORDER\_ICON
**BLOCK\_ORDER\_ICON** = ``"blockOrderIcon"``
___
### BREAK
**BREAK** = ``"break"``
___
### CONDITION
**CONDITION** = ``"condition"``
___
### DEFAULT
**DEFAULT** = ``"default"``
___
### EMPTY
**EMPTY** = ``"empty"``
___
### END
**END** = ``"end"``
___
### GROUP
**GROUP** = ``"group"``
___
### INLINE\_BLOCKS
**INLINE\_BLOCKS** = ``"inlineBlocks"``
___
### INPUT
**INPUT** = ``"input"``
___
### MULTI\_INPUTS
**MULTI\_INPUTS** = ``"multiInputs"``
___
### MULTI\_OUTPUTS
**MULTI\_OUTPUTS** = ``"multiOutputs"``
___
### OUTPUT
**OUTPUT** = ``"output"``
___
### ROOT
**ROOT** = ``"root"``
___
### SLOT
**SLOT** = ``"slot"``
___
### SLOT\_BLOCK
**SLOT\_BLOCK** = ``"slotBlock"``
___
### START
**START** = ``"start"``
___
### SUB\_CANVAS
**SUB\_CANVAS** = ``"subCanvas"``
---
url: /auto-docs/document/enums/FlowNodeSplitType.md
---
# Enumeration: FlowNodeSplitType
## Table of contents
### Enumeration Members
- [DYNAMIC\_SPLIT](./FlowNodeSplitType.md#dynamic_split)
- [SIMPLE\_SPLIT](./FlowNodeSplitType.md#simple_split)
- [STATIC\_SPLIT](./FlowNodeSplitType.md#static_split)
## Enumeration Members
### DYNAMIC\_SPLIT
**DYNAMIC\_SPLIT** = ``"dynamicSplit"``
___
### SIMPLE\_SPLIT
**SIMPLE\_SPLIT** = ``"simpleSplit"``
___
### STATIC\_SPLIT
**STATIC\_SPLIT** = ``"staticSplit"``
---
url: /auto-docs/document/enums/FlowTransitionLabelEnum.md
---
# Enumeration: FlowTransitionLabelEnum
## Table of contents
### Enumeration Members
- [ADDER\_LABEL](./FlowTransitionLabelEnum.md#adder_label)
- [BRANCH\_DRAGGING\_LABEL](./FlowTransitionLabelEnum.md#branch_dragging_label)
- [COLLAPSE\_ADDER\_LABEL](./FlowTransitionLabelEnum.md#collapse_adder_label)
- [COLLAPSE\_LABEL](./FlowTransitionLabelEnum.md#collapse_label)
- [CUSTOM\_LABEL](./FlowTransitionLabelEnum.md#custom_label)
- [TEXT\_LABEL](./FlowTransitionLabelEnum.md#text_label)
## Enumeration Members
### ADDER\_LABEL
**ADDER\_LABEL** = ``0``
___
### BRANCH\_DRAGGING\_LABEL
**BRANCH\_DRAGGING\_LABEL** = ``5``
___
### COLLAPSE\_ADDER\_LABEL
**COLLAPSE\_ADDER\_LABEL** = ``3``
___
### COLLAPSE\_LABEL
**COLLAPSE\_LABEL** = ``2``
___
### CUSTOM\_LABEL
**CUSTOM\_LABEL** = ``4``
___
### TEXT\_LABEL
**TEXT\_LABEL** = ``1``
---
url: /auto-docs/document/enums/FlowTransitionLineEnum.md
---
# Enumeration: FlowTransitionLineEnum
## Table of contents
### Enumeration Members
- [CUSTOM\_LINE](./FlowTransitionLineEnum.md#custom_line)
- [DIVERGE\_LINE](./FlowTransitionLineEnum.md#diverge_line)
- [DRAGGING\_LINE](./FlowTransitionLineEnum.md#dragging_line)
- [MERGE\_LINE](./FlowTransitionLineEnum.md#merge_line)
- [ROUNDED\_LINE](./FlowTransitionLineEnum.md#rounded_line)
- [STRAIGHT\_LINE](./FlowTransitionLineEnum.md#straight_line)
## Enumeration Members
### CUSTOM\_LINE
**CUSTOM\_LINE** = ``4``
___
### DIVERGE\_LINE
**DIVERGE\_LINE** = ``1``
___
### DRAGGING\_LINE
**DRAGGING\_LINE** = ``5``
___
### MERGE\_LINE
**MERGE\_LINE** = ``2``
___
### ROUNDED\_LINE
**ROUNDED\_LINE** = ``3``
___
### STRAIGHT\_LINE
**STRAIGHT\_LINE** = ``0``
---
url: /auto-docs/document/enums/LABEL_SIDE_TYPE.md
---
# Enumeration: LABEL\_SIDE\_TYPE
拖拽分支 Adder、Line 类型
## Table of contents
### Enumeration Members
- [NORMAL\_BRANCH](./LABEL_SIDE_TYPE.md#normal_branch)
- [PRE\_BRANCH](./LABEL_SIDE_TYPE.md#pre_branch)
## Enumeration Members
### NORMAL\_BRANCH
**NORMAL\_BRANCH** = ``"normal_branch"``
___
### PRE\_BRANCH
**PRE\_BRANCH** = ``"pre_branch"``
---
url: /auto-docs/document/enums/OperationType.md
---
# Enumeration: OperationType
## Table of contents
### Enumeration Members
- [addBlock](./OperationType.md#addblock)
- [addChildNode](./OperationType.md#addchildnode)
- [addFromNode](./OperationType.md#addfromnode)
- [addNode](./OperationType.md#addnode)
- [addNodes](./OperationType.md#addnodes)
- [createGroup](./OperationType.md#creategroup)
- [deleteBlock](./OperationType.md#deleteblock)
- [deleteChildNode](./OperationType.md#deletechildnode)
- [deleteFromNode](./OperationType.md#deletefromnode)
- [deleteNode](./OperationType.md#deletenode)
- [deleteNodes](./OperationType.md#deletenodes)
- [moveBlock](./OperationType.md#moveblock)
- [moveChildNodes](./OperationType.md#movechildnodes)
- [moveNodes](./OperationType.md#movenodes)
- [ungroup](./OperationType.md#ungroup)
## Enumeration Members
### addBlock
**addBlock** = ``"addBlock"``
___
### addChildNode
**addChildNode** = ``"addChildNode"``
___
### addFromNode
**addFromNode** = ``"addFromNode"``
___
### addNode
**addNode** = ``"addNode"``
___
### addNodes
**addNodes** = ``"addNodes"``
___
### createGroup
**createGroup** = ``"createGroup"``
___
### deleteBlock
**deleteBlock** = ``"deleteBlock"``
___
### deleteChildNode
**deleteChildNode** = ``"deleteChildNode"``
___
### deleteFromNode
**deleteFromNode** = ``"deleteFromNode"``
___
### deleteNode
**deleteNode** = ``"deleteNode"``
___
### deleteNodes
**deleteNodes** = ``"deleteNodes"``
___
### moveBlock
**moveBlock** = ``"moveBlock"``
___
### moveChildNodes
**moveChildNodes** = ``"moveChildNodes"``
___
### moveNodes
**moveNodes** = ``"moveNodes"``
___
### ungroup
**ungroup** = ``"ungroup"``
---
url: /auto-docs/document/functions/DEFAULT_FLOW_NODE_META.md
---
# Function: DEFAULT\_FLOW\_NODE\_META
**DEFAULT_FLOW_NODE_META**(`nodeType`, `document`): [`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)
默认 meta 配置
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeType` | [`FlowNodeType`](../types/FlowNodeType.md) |
| `document` | [`FlowDocument`](../classes/FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\> |
#### Returns
[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)
---
url: /auto-docs/document/functions/FlowLayoutDefault.isVertical.md
---
# Function: isVertical
[FlowLayoutDefault](../modules/FlowLayoutDefault.md).isVertical
**isVertical**(`layout`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
#### Returns
`boolean`
---
url: /auto-docs/document/functions/FlowNodeEntity.is.md
---
# Function: is
[FlowNodeEntity](../modules/FlowNodeEntity.md).is
**is**(`obj`): obj is FlowNodeEntity
#### Parameters
| Name | Type |
| :------ | :------ |
| `obj` | `Entity`\<`EntityOpts`\> |
#### Returns
obj is FlowNodeEntity
---
url: /auto-docs/document/functions/FlowNodeRegistry.extend.md
---
# Function: extend
[FlowNodeRegistry](../modules/FlowNodeRegistry.md).extend
**extend**(`registry`, `extendRegistries`): [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> |
| `extendRegistries` | [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\>[] |
#### Returns
[`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)
---
url: /auto-docs/document/functions/FlowNodeRegistry.merge.md
---
# Function: merge
[FlowNodeRegistry](../modules/FlowNodeRegistry.md).merge
**merge**(`registry1`, `registry2`, `finalType`): [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry1` | [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> |
| `registry2` | [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> |
| `finalType` | [`FlowNodeType`](../types/FlowNodeType.md) |
#### Returns
[`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)
---
url: /auto-docs/document/functions/FlowNodeRegistry.mergeChildRegistries.md
---
# Function: mergeChildRegistries
[FlowNodeRegistry](../modules/FlowNodeRegistry.md).mergeChildRegistries
**mergeChildRegistries**(`r1?`, `r2?`): [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)[]
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `r1` | [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\>[] | `[]` |
| `r2` | [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\>[] | `[]` |
#### Returns
[`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)[]
---
url: /auto-docs/document/functions/drawLineToBottom.md
---
# Function: drawLineToBottom
**drawLineToBottom**(`transition`): \{ `from`: `IPoint` = currentOutput; `to`: `IPoint` = parentOutput; `type`: [`FlowTransitionLineEnum`](../enums/FlowTransitionLineEnum.md) = FlowTransitionLineEnum.STRAIGHT\_LINE }[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md) |
#### Returns
\{ `from`: `IPoint` = currentOutput; `to`: `IPoint` = parentOutput; `type`: [`FlowTransitionLineEnum`](../enums/FlowTransitionLineEnum.md) = FlowTransitionLineEnum.STRAIGHT\_LINE }[]
---
url: /auto-docs/document/functions/drawLineToNext.md
---
# Function: drawLineToNext
**drawLineToNext**(`transition`): \{ `from`: `IPoint` = currentOutput; `to`: `IPoint` = transform.next.inputPoint; `type`: [`FlowTransitionLineEnum`](../enums/FlowTransitionLineEnum.md) = FlowTransitionLineEnum.STRAIGHT\_LINE }[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md) |
#### Returns
\{ `from`: `IPoint` = currentOutput; `to`: `IPoint` = transform.next.inputPoint; `type`: [`FlowTransitionLineEnum`](../enums/FlowTransitionLineEnum.md) = FlowTransitionLineEnum.STRAIGHT\_LINE }[]
---
url: /auto-docs/document/functions/getDefaultSpacing.md
---
# Function: getDefaultSpacing
**getDefaultSpacing**(`node`, `key`, `defaultSpacing?`): `any`
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) | 节点 entity |
| `key` | `string` | 从 DocumentOptions 里获取 constants 的 key |
| `defaultSpacing?` | `number` | 默认从 DEFAULT_SPACING 获取 spacing,也可以外部传入默认值 |
#### Returns
`any`
---
url: /auto-docs/document/interfaces/AddBlockConfig.md
---
# Interface: AddBlockConfig
添加block时的配置
## Table of contents
### Properties
- [index](./AddBlockConfig.md#index)
- [parent](./AddBlockConfig.md#parent)
## Properties
### index
`Optional` **index**: `number`
___
### parent
`Optional` **parent**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
---
url: /auto-docs/document/interfaces/AddBlockOperation.md
---
# Interface: AddBlockOperation
## Table of contents
### Properties
- [type](./AddBlockOperation.md#type)
- [value](./AddBlockOperation.md#value)
## Properties
### type
**type**: [`addBlock`](../enums/OperationType.md#addblock)
___
### value
**value**: [`AddOrDeleteBlockValue`](./AddOrDeleteBlockValue.md)
---
url: /auto-docs/document/interfaces/AddChildNodeOperation.md
---
# Interface: AddChildNodeOperation
## Table of contents
### Properties
- [type](./AddChildNodeOperation.md#type)
- [value](./AddChildNodeOperation.md#value)
## Properties
### type
**type**: [`addChildNode`](../enums/OperationType.md#addchildnode)
___
### value
**value**: [`AddOrDeleteChildNodeValue`](./AddOrDeleteChildNodeValue.md)
---
url: /auto-docs/document/interfaces/AddFromNodeOperation.md
---
# Interface: AddFromNodeOperation
## Table of contents
### Properties
- [type](./AddFromNodeOperation.md#type)
- [value](./AddFromNodeOperation.md#value)
## Properties
### type
**type**: [`addFromNode`](../enums/OperationType.md#addfromnode)
___
### value
**value**: [`AddOrDeleteFromNodeOperationValue`](./AddOrDeleteFromNodeOperationValue.md)
---
url: /auto-docs/document/interfaces/AddNodeOperation.md
---
# Interface: AddNodeOperation
## Table of contents
### Properties
- [type](./AddNodeOperation.md#type)
- [value](./AddNodeOperation.md#value)
## Properties
### type
**type**: [`addNode`](../enums/OperationType.md#addnode)
___
### value
**value**: [`AddOrDeleteNodeValue`](./AddOrDeleteNodeValue.md)
---
url: /auto-docs/document/interfaces/AddNodesOperation.md
---
# Interface: AddNodesOperation
## Table of contents
### Properties
- [type](./AddNodesOperation.md#type)
- [value](./AddNodesOperation.md#value)
## Properties
### type
**type**: [`addNodes`](../enums/OperationType.md#addnodes)
___
### value
**value**: [`AddOrDeleteNodesOperationValue`](./AddOrDeleteNodesOperationValue.md)
---
url: /auto-docs/document/interfaces/AddOrDeleteBlockValue.md
---
# Interface: AddOrDeleteBlockValue
## Table of contents
### Properties
- [blockData](./AddOrDeleteBlockValue.md#blockdata)
- [index](./AddOrDeleteBlockValue.md#index)
- [parentId](./AddOrDeleteBlockValue.md#parentid)
- [targetId](./AddOrDeleteBlockValue.md#targetid)
## Properties
### blockData
**blockData**: [`FlowNodeJSON`](./FlowNodeJSON.md)
___
### index
`Optional` **index**: `number`
___
### parentId
`Optional` **parentId**: `string`
___
### targetId
**targetId**: `string`
---
url: /auto-docs/document/interfaces/AddOrDeleteChildNodeValue.md
---
# Interface: AddOrDeleteChildNodeValue
## Table of contents
### Properties
- [data](./AddOrDeleteChildNodeValue.md#data)
- [hidden](./AddOrDeleteChildNodeValue.md#hidden)
- [index](./AddOrDeleteChildNodeValue.md#index)
- [originParentId](./AddOrDeleteChildNodeValue.md#originparentid)
- [parentId](./AddOrDeleteChildNodeValue.md#parentid)
## Properties
### data
**data**: [`FlowNodeJSON`](./FlowNodeJSON.md)
___
### hidden
`Optional` **hidden**: `boolean`
___
### index
`Optional` **index**: `number`
___
### originParentId
`Optional` **originParentId**: `string`
___
### parentId
`Optional` **parentId**: `string`
---
url: /auto-docs/document/interfaces/AddOrDeleteFromNodeOperationValue.md
---
# Interface: AddOrDeleteFromNodeOperationValue
## Table of contents
### Properties
- [data](./AddOrDeleteFromNodeOperationValue.md#data)
- [fromId](./AddOrDeleteFromNodeOperationValue.md#fromid)
## Properties
### data
**data**: [`FlowNodeJSON`](./FlowNodeJSON.md)
___
### fromId
**fromId**: `string`
---
url: /auto-docs/document/interfaces/AddOrDeleteNodeOperationValue.md
---
# Interface: AddOrDeleteNodeOperationValue
## Table of contents
### Properties
- [data](./AddOrDeleteNodeOperationValue.md#data)
- [fromId](./AddOrDeleteNodeOperationValue.md#fromid)
## Properties
### data
**data**: [`FlowNodeJSON`](./FlowNodeJSON.md)
___
### fromId
**fromId**: `string`
---
url: /auto-docs/document/interfaces/AddOrDeleteNodeValue.md
---
# Interface: AddOrDeleteNodeValue
## Table of contents
### Properties
- [data](./AddOrDeleteNodeValue.md#data)
- [hidden](./AddOrDeleteNodeValue.md#hidden)
- [index](./AddOrDeleteNodeValue.md#index)
- [parentId](./AddOrDeleteNodeValue.md#parentid)
## Properties
### data
**data**: [`FlowNodeJSON`](./FlowNodeJSON.md)
___
### hidden
`Optional` **hidden**: `boolean`
___
### index
`Optional` **index**: `number`
___
### parentId
`Optional` **parentId**: `string`
---
url: /auto-docs/document/interfaces/AddOrDeleteNodesOperationValue.md
---
# Interface: AddOrDeleteNodesOperationValue
## Table of contents
### Properties
- [fromId](./AddOrDeleteNodesOperationValue.md#fromid)
- [nodes](./AddOrDeleteNodesOperationValue.md#nodes)
## Properties
### fromId
**fromId**: `string`
___
### nodes
**nodes**: [`FlowNodeJSON`](./FlowNodeJSON.md)[]
---
url: /auto-docs/document/interfaces/AdderProps.md
---
# Interface: AdderProps
## Hierarchy
- **`AdderProps`**
↳ [`CollapseAdderProps`](./CollapseAdderProps.md)
## Indexable
▪ [key: `string`]: `any`
## Table of contents
### Properties
- [from](./AdderProps.md#from)
- [node](./AdderProps.md#node)
- [renderTo](./AdderProps.md#renderto)
- [to](./AdderProps.md#to)
## Properties
### from
**from**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### node
**node**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### renderTo
**renderTo**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### to
**to**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
---
url: /auto-docs/document/interfaces/CollapseAdderProps.md
---
# Interface: CollapseAdderProps
## Hierarchy
- [`AdderProps`](./AdderProps.md)
- [`CollapseProps`](./CollapseProps.md)
↳ **`CollapseAdderProps`**
## Indexable
▪ [key: `string`]: `any`
## Table of contents
### Properties
- [activateNode](./CollapseAdderProps.md#activatenode)
- [collapseNode](./CollapseAdderProps.md#collapsenode)
- [forceVisible](./CollapseAdderProps.md#forcevisible)
- [from](./CollapseAdderProps.md#from)
- [node](./CollapseAdderProps.md#node)
- [renderTo](./CollapseAdderProps.md#renderto)
- [to](./CollapseAdderProps.md#to)
## Properties
### activateNode
`Optional` **activateNode**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
#### Inherited from
[CollapseProps](./CollapseProps.md).[activateNode](./CollapseProps.md#activatenode)
___
### collapseNode
**collapseNode**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
#### Inherited from
[CollapseProps](./CollapseProps.md).[collapseNode](./CollapseProps.md#collapsenode)
___
### forceVisible
`Optional` **forceVisible**: `boolean`
#### Inherited from
[CollapseProps](./CollapseProps.md).[forceVisible](./CollapseProps.md#forcevisible)
___
### from
**from**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
#### Inherited from
[AdderProps](./AdderProps.md).[from](./AdderProps.md#from)
___
### node
**node**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
#### Inherited from
[CollapseProps](./CollapseProps.md).[node](./CollapseProps.md#node)
___
### renderTo
**renderTo**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
#### Inherited from
[AdderProps](./AdderProps.md).[renderTo](./AdderProps.md#renderto)
___
### to
**to**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
#### Inherited from
[AdderProps](./AdderProps.md).[to](./AdderProps.md#to)
---
url: /auto-docs/document/interfaces/CollapseProps.md
---
# Interface: CollapseProps
## Hierarchy
- **`CollapseProps`**
↳ [`CollapseAdderProps`](./CollapseAdderProps.md)
## Indexable
▪ [key: `string`]: `any`
## Table of contents
### Properties
- [activateNode](./CollapseProps.md#activatenode)
- [collapseNode](./CollapseProps.md#collapsenode)
- [forceVisible](./CollapseProps.md#forcevisible)
- [node](./CollapseProps.md#node)
## Properties
### activateNode
`Optional` **activateNode**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### collapseNode
**collapseNode**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### forceVisible
`Optional` **forceVisible**: `boolean`
___
### node
**node**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
---
url: /auto-docs/document/interfaces/CreateGroupOperation.md
---
# Interface: CreateGroupOperation
## Table of contents
### Properties
- [type](./CreateGroupOperation.md#type)
- [value](./CreateGroupOperation.md#value)
## Properties
### type
**type**: [`createGroup`](../enums/OperationType.md#creategroup)
___
### value
**value**: [`createOrUngroupValue`](./createOrUngroupValue.md)
---
url: /auto-docs/document/interfaces/CustomLabelProps.md
---
# Interface: CustomLabelProps
## Indexable
▪ [key: `string`]: `any`
## Table of contents
### Properties
- [node](./CustomLabelProps.md#node)
## Properties
### node
**node**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
---
url: /auto-docs/document/interfaces/DeleteBlockOperation.md
---
# Interface: DeleteBlockOperation
## Table of contents
### Properties
- [type](./DeleteBlockOperation.md#type)
- [value](./DeleteBlockOperation.md#value)
## Properties
### type
**type**: [`deleteBlock`](../enums/OperationType.md#deleteblock)
___
### value
**value**: [`AddOrDeleteBlockValue`](./AddOrDeleteBlockValue.md)
---
url: /auto-docs/document/interfaces/DeleteChildNodeOperation.md
---
# Interface: DeleteChildNodeOperation
## Table of contents
### Properties
- [type](./DeleteChildNodeOperation.md#type)
- [value](./DeleteChildNodeOperation.md#value)
## Properties
### type
**type**: [`deleteChildNode`](../enums/OperationType.md#deletechildnode)
___
### value
**value**: [`AddOrDeleteChildNodeValue`](./AddOrDeleteChildNodeValue.md)
---
url: /auto-docs/document/interfaces/DeleteFromNodeOperation.md
---
# Interface: DeleteFromNodeOperation
## Table of contents
### Properties
- [type](./DeleteFromNodeOperation.md#type)
- [value](./DeleteFromNodeOperation.md#value)
## Properties
### type
**type**: [`deleteFromNode`](../enums/OperationType.md#deletefromnode)
___
### value
**value**: [`AddOrDeleteFromNodeOperationValue`](./AddOrDeleteFromNodeOperationValue.md)
---
url: /auto-docs/document/interfaces/DeleteNodeOperation.md
---
# Interface: DeleteNodeOperation
## Table of contents
### Properties
- [type](./DeleteNodeOperation.md#type)
- [value](./DeleteNodeOperation.md#value)
## Properties
### type
**type**: [`deleteNode`](../enums/OperationType.md#deletenode)
___
### value
**value**: [`AddOrDeleteNodeValue`](./AddOrDeleteNodeValue.md)
---
url: /auto-docs/document/interfaces/DeleteNodesOperation.md
---
# Interface: DeleteNodesOperation
## Table of contents
### Properties
- [type](./DeleteNodesOperation.md#type)
- [value](./DeleteNodesOperation.md#value)
## Properties
### type
**type**: [`deleteNodes`](../enums/OperationType.md#deletenodes)
___
### value
**value**: [`AddOrDeleteNodesOperationValue`](./AddOrDeleteNodesOperationValue.md)
---
url: /auto-docs/document/interfaces/DragNodeProps.md
---
# Interface: DragNodeProps
## Table of contents
### Properties
- [node](./DragNodeProps.md#node)
## Properties
### node
**node**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
---
url: /auto-docs/document/interfaces/FlowDocumentContribution.md
---
# Interface: FlowDocumentContribution\
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`FlowDocument`](../classes/FlowDocument.md) = [`FlowDocument`](../classes/FlowDocument.md) |
## Table of contents
### Methods
- [loadDocument](./FlowDocumentContribution.md#loaddocument)
- [registerDocument](./FlowDocumentContribution.md#registerdocument)
## Methods
### loadDocument
`Optional` **loadDocument**(`document`): `Promise`\<`void`\>
加载数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `document` | `T` |
#### Returns
`Promise`\<`void`\>
___
### registerDocument
`Optional` **registerDocument**(`document`): `void`
注册
#### Parameters
| Name | Type |
| :------ | :------ |
| `document` | `T` |
#### Returns
`void`
---
url: /auto-docs/document/interfaces/FlowDocumentOptions.md
---
# Interface: FlowDocumentOptions
流程画布配置
## Table of contents
### Properties
- [allNodesDefaultExpanded](./FlowDocumentOptions.md#allnodesdefaultexpanded)
- [constants](./FlowDocumentOptions.md#constants)
- [defaultLayout](./FlowDocumentOptions.md#defaultlayout)
- [formatNodeLabels](./FlowDocumentOptions.md#formatnodelabels)
- [formatNodeLines](./FlowDocumentOptions.md#formatnodelines)
- [getNodeDefaultRegistry](./FlowDocumentOptions.md#getnodedefaultregistry)
- [preNodeCreate](./FlowDocumentOptions.md#prenodecreate)
### Methods
- [fromNodeJSON](./FlowDocumentOptions.md#fromnodejson)
- [toNodeJSON](./FlowDocumentOptions.md#tonodejson)
## Properties
### allNodesDefaultExpanded
`Optional` **allNodesDefaultExpanded**: `boolean`
所有节点的默认展开状态
___
### constants
`Optional` **constants**: `Record`\<`string`, `any`\>
___
### defaultLayout
`Optional` **defaultLayout**: `string`
布局,默认 垂直布局
___
### formatNodeLabels
`Optional` **formatNodeLabels**: (`node`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md), `lines`: [`FlowTransitionLabel`](./FlowTransitionLabel.md)[]) => [`FlowTransitionLabel`](./FlowTransitionLabel.md)[]
#### Type declaration
(`node`, `lines`): [`FlowTransitionLabel`](./FlowTransitionLabel.md)[]
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
| `lines` | [`FlowTransitionLabel`](./FlowTransitionLabel.md)[] |
##### Returns
[`FlowTransitionLabel`](./FlowTransitionLabel.md)[]
___
### formatNodeLines
`Optional` **formatNodeLines**: (`node`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md), `lines`: [`FlowTransitionLine`](./FlowTransitionLine.md)[]) => [`FlowTransitionLine`](./FlowTransitionLine.md)[]
#### Type declaration
(`node`, `lines`): [`FlowTransitionLine`](./FlowTransitionLine.md)[]
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
| `lines` | [`FlowTransitionLine`](./FlowTransitionLine.md)[] |
##### Returns
[`FlowTransitionLine`](./FlowTransitionLine.md)[]
___
### getNodeDefaultRegistry
`Optional` **getNodeDefaultRegistry**: (`type`: [`FlowNodeType`](../types/FlowNodeType.md)) => [`FlowNodeRegistry`](./FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](./FlowNodeMeta.md)\>
#### Type declaration
(`type`): [`FlowNodeRegistry`](./FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](./FlowNodeMeta.md)\>
获取默认的节点配置
##### Parameters
| Name | Type |
| :------ | :------ |
| `type` | [`FlowNodeType`](../types/FlowNodeType.md) |
##### Returns
[`FlowNodeRegistry`](./FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](./FlowNodeMeta.md)\>
___
### preNodeCreate
`Optional` **preNodeCreate**: (`node`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)) => `void`
#### Type declaration
(`node`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
##### Returns
`void`
## Methods
### fromNodeJSON
`Optional` **fromNodeJSON**(`node`, `json`, `isFirstCreate`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
| `json` | [`FlowNodeJSON`](./FlowNodeJSON.md) |
| `isFirstCreate` | `boolean` |
#### Returns
`void`
___
### toNodeJSON
`Optional` **toNodeJSON**(`node`): [`FlowNodeJSON`](./FlowNodeJSON.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
#### Returns
[`FlowNodeJSON`](./FlowNodeJSON.md)
---
url: /auto-docs/document/interfaces/FlowGroupJSON.md
---
# Interface: FlowGroupJSON
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Table of contents
### Properties
- [nodeIDs](./FlowGroupJSON.md#nodeids)
## Properties
### nodeIDs
**nodeIDs**: `string`[]
---
url: /auto-docs/document/interfaces/FlowLayout.md
---
# Interface: FlowLayout
流程布局算法
## Table of contents
### Properties
- [name](./FlowLayout.md#name)
### Methods
- [getDefaultInputPoint](./FlowLayout.md#getdefaultinputpoint)
- [getDefaultNodeOrigin](./FlowLayout.md#getdefaultnodeorigin)
- [getDefaultOutputPoint](./FlowLayout.md#getdefaultoutputpoint)
- [getInitScroll](./FlowLayout.md#getinitscroll)
- [getPadding](./FlowLayout.md#getpadding)
- [reload](./FlowLayout.md#reload)
- [update](./FlowLayout.md#update)
## Properties
### name
**name**: `string`
布局名字
## Methods
### getDefaultInputPoint
**getDefaultInputPoint**(`node`): `IPoint`
获取默认输入点
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
#### Returns
`IPoint`
___
### getDefaultNodeOrigin
**getDefaultNodeOrigin**(): `IPoint`
获取默认远点
#### Returns
`IPoint`
___
### getDefaultOutputPoint
**getDefaultOutputPoint**(`node`): `IPoint`
获取默认输出点
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
#### Returns
`IPoint`
___
### getInitScroll
**getInitScroll**(`contentSize`): `ScrollSchema`
获取默认滚动 目前用在 scroll-limit-layer
#### Parameters
| Name | Type |
| :------ | :------ |
| `contentSize` | `SizeSchema` |
#### Returns
`ScrollSchema`
___
### getPadding
**getPadding**(`node`): `PaddingSchema`
获取节点的 padding 数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
#### Returns
`PaddingSchema`
___
### reload
`Optional` **reload**(): `void`
布局切换时候触发
#### Returns
`void`
___
### update
**update**(): `void`
更新布局
#### Returns
`void`
---
url: /auto-docs/document/interfaces/FlowLayoutContribution.md
---
# Interface: FlowLayoutContribution
## Table of contents
### Properties
- [onAfterUpdateLocalTransform](./FlowLayoutContribution.md#onafterupdatelocaltransform)
## Properties
### onAfterUpdateLocalTransform
`Optional` **onAfterUpdateLocalTransform**: (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => `void`
#### Type declaration
(`transform`, `layout`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
`void`
---
url: /auto-docs/document/interfaces/FlowNodeEntityConfig.md
---
# Interface: FlowNodeEntityConfig
## Hierarchy
- `EntityOpts`
↳ **`FlowNodeEntityConfig`**
## Table of contents
### Properties
- [datas](./FlowNodeEntityConfig.md#datas)
- [document](./FlowNodeEntityConfig.md#document)
- [entityManager](./FlowNodeEntityConfig.md#entitymanager)
- [flowNodeType](./FlowNodeEntityConfig.md#flownodetype)
- [id](./FlowNodeEntityConfig.md#id)
- [meta](./FlowNodeEntityConfig.md#meta)
- [originParent](./FlowNodeEntityConfig.md#originparent)
- [savedInManager](./FlowNodeEntityConfig.md#savedinmanager)
## Properties
### datas
`Optional` **datas**: \{ `data?`: `any` ; `registry`: `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> }[]
#### Inherited from
EntityOpts.datas
___
### document
**document**: [`FlowDocument`](../classes/FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### entityManager
**entityManager**: `EntityManager`
#### Inherited from
EntityOpts.entityManager
___
### flowNodeType
**flowNodeType**: [`FlowNodeType`](../types/FlowNodeType.md)
___
### id
`Optional` **id**: `string`
#### Inherited from
EntityOpts.id
___
### meta
`Optional` **meta**: [`FlowNodeMeta`](./FlowNodeMeta.md)
___
### originParent
`Optional` **originParent**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### savedInManager
`Optional` **savedInManager**: `boolean`
#### Inherited from
EntityOpts.savedInManager
---
url: /auto-docs/document/interfaces/FlowNodeInitData.md
---
# Interface: FlowNodeInitData
## Table of contents
### Properties
- [hidden](./FlowNodeInitData.md#hidden)
- [index](./FlowNodeInitData.md#index)
- [meta](./FlowNodeInitData.md#meta)
- [originParent](./FlowNodeInitData.md#originparent)
- [parent](./FlowNodeInitData.md#parent)
## Properties
### hidden
`Optional` **hidden**: `boolean`
___
### index
`Optional` **index**: `number`
___
### meta
`Optional` **meta**: [`FlowNodeMeta`](./FlowNodeMeta.md)
___
### originParent
`Optional` **originParent**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### parent
`Optional` **parent**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
---
url: /auto-docs/document/interfaces/FlowNodeJSON.md
---
# Interface: FlowNodeJSON
Flow node json data
## Table of contents
### Properties
- [blocks](./FlowNodeJSON.md#blocks)
- [data](./FlowNodeJSON.md#data)
- [id](./FlowNodeJSON.md#id)
- [meta](./FlowNodeJSON.md#meta)
- [type](./FlowNodeJSON.md#type)
## Properties
### blocks
`Optional` **blocks**: [`FlowNodeJSON`](./FlowNodeJSON.md)[]
___
### data
`Optional` **data**: `Record`\<`string`, `any`\>
___
### id
**id**: `string`
___
### meta
`Optional` **meta**: [`FlowNodeMeta`](./FlowNodeMeta.md)
___
### type
`Optional` **type**: `string` \| `number`
---
url: /auto-docs/document/interfaces/FlowNodeMeta.md
---
# Interface: FlowNodeMeta
节点渲染相关配置信息,可扩展
## Indexable
▪ [key: `string`]: `any`
## Table of contents
### Properties
- [addDisable](./FlowNodeMeta.md#adddisable)
- [addable](./FlowNodeMeta.md#addable)
- [autoResizeDisable](./FlowNodeMeta.md#autoresizedisable)
- [copyDisable](./FlowNodeMeta.md#copydisable)
- [defaultCollapsed](./FlowNodeMeta.md#defaultcollapsed)
- [defaultExpanded](./FlowNodeMeta.md#defaultexpanded)
- [deleteDisable](./FlowNodeMeta.md#deletedisable)
- [draggable](./FlowNodeMeta.md#draggable)
- [expandable](./FlowNodeMeta.md#expandable)
- [hidden](./FlowNodeMeta.md#hidden)
- [inlineSpacingAfter](./FlowNodeMeta.md#inlinespacingafter)
- [inlineSpacingPre](./FlowNodeMeta.md#inlinespacingpre)
- [isInlineBlocks](./FlowNodeMeta.md#isinlineblocks)
- [isNodeEnd](./FlowNodeMeta.md#isnodeend)
- [isStart](./FlowNodeMeta.md#isstart)
- [minInlineBlockSpacing](./FlowNodeMeta.md#mininlineblockspacing)
- [origin](./FlowNodeMeta.md#origin)
- [padding](./FlowNodeMeta.md#padding)
- [renderKey](./FlowNodeMeta.md#renderkey)
- [selectable](./FlowNodeMeta.md#selectable)
- [size](./FlowNodeMeta.md#size)
- [spacing](./FlowNodeMeta.md#spacing)
## Properties
### addDisable
`Optional` **addDisable**: `boolean`
___
### addable
`Optional` **addable**: `boolean`
___
### autoResizeDisable
`Optional` **autoResizeDisable**: `boolean`
___
### copyDisable
`Optional` **copyDisable**: `boolean`
___
### defaultCollapsed
`Optional` **defaultCollapsed**: `boolean`
___
### defaultExpanded
`Optional` **defaultExpanded**: `boolean`
___
### deleteDisable
`Optional` **deleteDisable**: `boolean`
___
### draggable
`Optional` **draggable**: `boolean` \| (`node`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)) => `boolean`
___
### expandable
`Optional` **expandable**: `boolean`
___
### hidden
`Optional` **hidden**: `boolean`
___
### inlineSpacingAfter
`Optional` **inlineSpacingAfter**: `number` \| (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md)) => `number`
___
### inlineSpacingPre
`Optional` **inlineSpacingPre**: `number` \| (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md)) => `number`
___
### isInlineBlocks
`Optional` **isInlineBlocks**: `boolean` \| (`node`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)) => `boolean`
___
### isNodeEnd
`Optional` **isNodeEnd**: `boolean`
___
### isStart
`Optional` **isStart**: `boolean`
___
### minInlineBlockSpacing
`Optional` **minInlineBlockSpacing**: `number` \| (`node`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md)) => `number`
___
### origin
`Optional` **origin**: `OriginSchema`
**`Deprecated`**
使用 NodeRegister.getOrigin 代替
___
### padding
`Optional` **padding**: `PaddingSchema` \| (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md)) => `PaddingSchema`
___
### renderKey
`Optional` **renderKey**: `string`
___
### selectable
`Optional` **selectable**: `boolean` \| (`node`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md), `mousePos?`: `PositionSchema`) => `boolean`
___
### size
`Optional` **size**: `SizeSchema`
___
### spacing
`Optional` **spacing**: `number` \| (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md)) => `number`
---
url: /auto-docs/document/interfaces/FlowNodeRegistry-1.md
---
# Interface: FlowNodeRegistry\
节点注册
## Type parameters
| Name | Type |
| :------ | :------ |
| `M` | extends [`FlowNodeMeta`](./FlowNodeMeta.md) = [`FlowNodeMeta`](./FlowNodeMeta.md) |
## Indexable
▪ [key: `string`]: `any`
## Table of contents
### Properties
- [\_\_extends\_\_](./FlowNodeRegistry-1.md#__extends__)
- [addChild](./FlowNodeRegistry-1.md#addchild)
- [dataRegistries](./FlowNodeRegistry-1.md#dataregistries)
- [extend](./FlowNodeRegistry-1.md#extend)
- [extendChildRegistries](./FlowNodeRegistry-1.md#extendchildregistries)
- [getChildDelta](./FlowNodeRegistry-1.md#getchilddelta)
- [getChildLabels](./FlowNodeRegistry-1.md#getchildlabels)
- [getChildLines](./FlowNodeRegistry-1.md#getchildlines)
- [getDelta](./FlowNodeRegistry-1.md#getdelta)
- [getInputPoint](./FlowNodeRegistry-1.md#getinputpoint)
- [getLabels](./FlowNodeRegistry-1.md#getlabels)
- [getLines](./FlowNodeRegistry-1.md#getlines)
- [getOriginDeltaX](./FlowNodeRegistry-1.md#getorigindeltax)
- [getOriginDeltaY](./FlowNodeRegistry-1.md#getorigindeltay)
- [getOutputPoint](./FlowNodeRegistry-1.md#getoutputpoint)
- [meta](./FlowNodeRegistry-1.md#meta)
- [onAfterUpdateLocalTransform](./FlowNodeRegistry-1.md#onafterupdatelocaltransform)
- [onBlockChildCreate](./FlowNodeRegistry-1.md#onblockchildcreate)
- [onCreate](./FlowNodeRegistry-1.md#oncreate)
- [type](./FlowNodeRegistry-1.md#type)
### Methods
- [getOrigin](./FlowNodeRegistry-1.md#getorigin)
## Properties
### \_\_extends\_\_
`Optional` **\_\_extends\_\_**: [`FlowNodeType`](../types/FlowNodeType.md)[]
内部用于继承逻辑判断,不要使用
___
### addChild
`Optional` **addChild**: (`node`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md), `json`: [`FlowNodeJSON`](./FlowNodeJSON.md), `options?`: \{ `hidden?`: `boolean` ; `index?`: `number` }) => [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
#### Type declaration
(`node`, `json`, `options?`): [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
##### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) | 节点 |
| `json` | [`FlowNodeJSON`](./FlowNodeJSON.md) | 添加的节点 JSON |
| `options?` | `Object` | 其它配置 |
| `options.hidden?` | `boolean` | - |
| `options.index?` | `number` | - |
##### Returns
[`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
**`Deprecated`**
自定义子节点添加逻辑
___
### dataRegistries
`Optional` **dataRegistries**: `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
节点注册的数据,可以理解为 ECS 里的 Component, 这里可以配置自定义数据
___
### extend
`Optional` **extend**: `string`
从另外一个注册扩展
___
### extendChildRegistries
`Optional` **extendChildRegistries**: [`FlowNodeRegistry`](./FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](./FlowNodeMeta.md)\>[]
子节点的 registry 覆盖,这里通过 originParent 来查找
___
### getChildDelta
`Optional` **getChildDelta**: (`childBlock`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => `undefined` \| `IPoint`
#### Type declaration
(`childBlock`, `layout`): `undefined` \| `IPoint`
通过 parent 计算当前节点的偏移,规则同 getDelta
##### Parameters
| Name | Type |
| :------ | :------ |
| `childBlock` | [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
`undefined` \| `IPoint`
___
### getChildLabels
`Optional` **getChildLabels**: (`transition`: [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => [`FlowTransitionLabel`](./FlowTransitionLabel.md)[]
#### Type declaration
(`transition`, `layout`): [`FlowTransitionLabel`](./FlowTransitionLabel.md)[]
调整子节点的 Labels,优先级高于子节点本身的 getLabels
##### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
[`FlowTransitionLabel`](./FlowTransitionLabel.md)[]
___
### getChildLines
`Optional` **getChildLines**: (`transition`: [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => [`FlowTransitionLine`](./FlowTransitionLine.md)[]
#### Type declaration
(`transition`, `layout`): [`FlowTransitionLine`](./FlowTransitionLine.md)[]
调整子节点的线条,优先级高于子节点本身的 getLines
##### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
[`FlowTransitionLine`](./FlowTransitionLine.md)[]
___
### getDelta
`Optional` **getDelta**: (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => `undefined` \| `IPoint`
#### Type declaration
(`transform`, `layout`): `undefined` \| `IPoint`
获取当前节点 Position 偏移量,偏移量计算只能使用已经计算完的数据,如上一个节点或者子节点,不然会造成 o(n^2) 复杂度
1. 切记不要用当前节点的 localBounds(相对位置 bbox),因为 delta 计算发生在 localBounds 计算之前
2. 切记不要用 bounds(绝对位置 bbox, 会触发所有父节点绝对位置计算), bounds 只能在最终 render 时候使用
3. 可以用 pre 节点 和 子节点的 localBounds 或者 size 数据,因为子节点是先算的
4. 可以用当前节点的 size (所有子节点的最大 bbox), 这是已经确定下来的
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
`undefined` \| `IPoint`
___
### getInputPoint
`Optional` **getInputPoint**: (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => `IPoint`
#### Type declaration
(`transform`, `layout`): `IPoint`
自定义输入节点
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
`IPoint`
___
### getLabels
`Optional` **getLabels**: (`transition`: [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => [`FlowTransitionLabel`](./FlowTransitionLabel.md)[]
#### Type declaration
(`transition`, `layout`): [`FlowTransitionLabel`](./FlowTransitionLabel.md)[]
创建 label
##### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
[`FlowTransitionLabel`](./FlowTransitionLabel.md)[]
___
### getLines
`Optional` **getLines**: (`transition`: [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => [`FlowTransitionLine`](./FlowTransitionLine.md)[]
#### Type declaration
(`transition`, `layout`): [`FlowTransitionLine`](./FlowTransitionLine.md)[]
创建线条
##### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | [`FlowNodeTransitionData`](../classes/FlowNodeTransitionData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
[`FlowTransitionLine`](./FlowTransitionLine.md)[]
___
### getOriginDeltaX
`Optional` **getOriginDeltaX**: (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => `number`
#### Type declaration
(`transform`, `layout`): `number`
原点 X 偏移
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
`number`
___
### getOriginDeltaY
`Optional` **getOriginDeltaY**: (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => `number`
#### Type declaration
(`transform`, `layout`): `number`
原点 Y 偏移
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
`number`
___
### getOutputPoint
`Optional` **getOutputPoint**: (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md), `layoutKey`: [`FlowLayout`](../variables/FlowLayout-1.md)) => `IPoint`
#### Type declaration
(`transform`, `layoutKey`): `IPoint`
自定义输出节点
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md) |
| `layoutKey` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
`IPoint`
___
### meta
`Optional` **meta**: `Partial`\<`M`\>
节点画布相关初始化配置信息,会覆盖 DEFAULT_FLOW_NODE_META
___
### onAfterUpdateLocalTransform
`Optional` **onAfterUpdateLocalTransform**: (`transform`: [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md), `layout`: [`FlowLayout`](../variables/FlowLayout-1.md)) => `void`
#### Type declaration
(`transform`, `layout`): `void`
在当前节点布局完成后调用,可以对布局做更精细的调整
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
##### Returns
`void`
___
### onBlockChildCreate
`Optional` **onBlockChildCreate**: (`node`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md), `json`: [`FlowNodeJSON`](./FlowNodeJSON.md), `addedNodes?`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)[]) => [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
#### Type declaration
(`node`, `json`, `addedNodes?`): [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
添加子 block,一般用于分支的动态添加
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
| `json` | [`FlowNodeJSON`](./FlowNodeJSON.md) |
| `addedNodes?` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)[] |
##### Returns
[`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### onCreate
`Optional` **onCreate**: (`node`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md), `json`: [`FlowNodeJSON`](./FlowNodeJSON.md)) => `void` \| [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)[]
#### Type declaration
(`node`, `json`): `void` \| [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)[]
自定义创建节点,可以自定义节点的树形结构
返回新加入的节点,这样才能统计缓存
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
| `json` | [`FlowNodeJSON`](./FlowNodeJSON.md) |
##### Returns
`void` \| [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)[]
**`Action`**
使用该方法,在创建时候将会忽略 json blocks 数据,而是交给适用节点自己处理 json 逻辑
___
### type
**type**: [`FlowNodeType`](../types/FlowNodeType.md)
节点类型
## Methods
### getOrigin
`Optional` **getOrigin**(`transform`, `layout`): `IPoint`
动态获取原点,会覆盖 meta.origin
#### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | [`FlowNodeTransformData`](../classes/FlowNodeTransformData.md) |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
#### Returns
`IPoint`
---
url: /auto-docs/document/interfaces/FlowNodeRenderSchema.md
---
# Interface: FlowNodeRenderSchema
## Table of contents
### Properties
- [activated](./FlowNodeRenderSchema.md#activated)
- [addable](./FlowNodeRenderSchema.md#addable)
- [collapsed](./FlowNodeRenderSchema.md#collapsed)
- [dragging](./FlowNodeRenderSchema.md#dragging)
- [expandable](./FlowNodeRenderSchema.md#expandable)
- [expanded](./FlowNodeRenderSchema.md#expanded)
- [extInfo](./FlowNodeRenderSchema.md#extinfo)
- [hovered](./FlowNodeRenderSchema.md#hovered)
- [stackIndex](./FlowNodeRenderSchema.md#stackindex)
## Properties
### activated
**activated**: `boolean`
___
### addable
**addable**: `boolean`
___
### collapsed
`Optional` **collapsed**: `boolean`
___
### dragging
**dragging**: `boolean`
___
### expandable
**expandable**: `boolean`
___
### expanded
**expanded**: `boolean`
___
### extInfo
`Optional` **extInfo**: `Record`\<`string`, `any`\>
___
### hovered
**hovered**: `boolean`
___
### stackIndex
**stackIndex**: `number`
---
url: /auto-docs/document/interfaces/FlowNodeTransformSchema.md
---
# Interface: FlowNodeTransformSchema
## Table of contents
### Properties
- [size](./FlowNodeTransformSchema.md#size)
## Properties
### size
**size**: `SizeSchema`
---
url: /auto-docs/document/interfaces/FlowNodeTransitionSchema.md
---
# Interface: FlowNodeTransitionSchema
---
url: /auto-docs/document/interfaces/FlowOperationBaseService.md
---
# Interface: FlowOperationBaseService
## Hierarchy
- `Disposable`
↳ **`FlowOperationBaseService`**
## Table of contents
### Properties
- [onNodeAdd](./FlowOperationBaseService.md#onnodeadd)
- [onNodeMove](./FlowOperationBaseService.md#onnodemove)
### Methods
- [addBlock](./FlowOperationBaseService.md#addblock)
- [addFromNode](./FlowOperationBaseService.md#addfromnode)
- [addNode](./FlowOperationBaseService.md#addnode)
- [apply](./FlowOperationBaseService.md#apply)
- [deleteNode](./FlowOperationBaseService.md#deletenode)
- [deleteNodes](./FlowOperationBaseService.md#deletenodes)
- [dispose](./FlowOperationBaseService.md#dispose)
- [dragNodes](./FlowOperationBaseService.md#dragnodes)
- [moveNode](./FlowOperationBaseService.md#movenode)
## Properties
### onNodeAdd
**onNodeAdd**: `Event`\<[`OnNodeAddEvent`](./OnNodeAddEvent.md)\>
添加节点的回调
___
### onNodeMove
**onNodeMove**: `Event`\<[`OnNodeMoveEvent`](./OnNodeMoveEvent.md)\>
节点移动的回调
## Methods
### addBlock
**addBlock**(`target`, `blockJSON`, `config?`): [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
添加块(分支)
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `target` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) | 目标 |
| `blockJSON` | [`FlowNodeJSON`](./FlowNodeJSON.md) | 块数据 |
| `config?` | [`AddBlockConfig`](./AddBlockConfig.md) | 配置 |
#### Returns
[`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### addFromNode
**addFromNode**(`fromNode`, `nodeJSON`): [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
基于某一个起始节点往后面添加
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `fromNode` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) | 起始节点 |
| `nodeJSON` | [`FlowNodeJSON`](./FlowNodeJSON.md) | 添加的节点JSON |
#### Returns
[`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### addNode
**addNode**(`nodeJSON`, `config?`): [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
添加节点,如果节点已经存在则不会重复创建
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `nodeJSON` | [`FlowNodeJSON`](./FlowNodeJSON.md) | 节点数据 |
| `config?` | [`AddNodeConfig`](../types/AddNodeConfig.md) | 配置 |
#### Returns
[`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
成功添加的节点
___
### apply
**apply**(`operation`): `any`
执行操作
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `operation` | [`FlowOperation`](../types/FlowOperation.md) | 可序列化的操作 |
#### Returns
`any`
操作返回
___
### deleteNode
**deleteNode**(`node`): `void`
删除节点
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `node` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) | 节点 |
#### Returns
`void`
___
### deleteNodes
**deleteNodes**(`nodes`): `void`
批量删除节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md)[] |
#### Returns
`void`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
Disposable.dispose
___
### dragNodes
**dragNodes**(`param0`): `void`
拖拽节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.dropNode` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) |
| `param0.nodes` | [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)[] |
#### Returns
`void`
___
### moveNode
**moveNode**(`node`, `config?`): `void`
移动节点
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `node` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) | 被移动的节点 |
| `config?` | [`MoveNodeConfig`](./MoveNodeConfig.md) | 移动节点配置 |
#### Returns
`void`
---
url: /auto-docs/document/interfaces/FlowTransitionLabel.md
---
# Interface: FlowTransitionLabel
## Table of contents
### Properties
- [labelId](./FlowTransitionLabel.md#labelid)
- [offset](./FlowTransitionLabel.md#offset)
- [origin](./FlowTransitionLabel.md#origin)
- [props](./FlowTransitionLabel.md#props)
- [renderKey](./FlowTransitionLabel.md#renderkey)
- [rotate](./FlowTransitionLabel.md#rotate)
- [type](./FlowTransitionLabel.md#type)
- [width](./FlowTransitionLabel.md#width)
## Properties
### labelId
`Optional` **labelId**: `string`
___
### offset
**offset**: `IPoint`
___
### origin
`Optional` **origin**: [`number`, `number`]
Anchor point for positioning, relative to the label's bounding box
重心偏移量,相对于标签边界框
Format: [x, y] / 格式:[x, y]
Default Value: [0.5, 0.5] indicates center / 默认值:[0.5, 0.5] 表示居中
___
### props
`Optional` **props**: `Record`\<`string`, `any`\>
___
### renderKey
`Optional` **renderKey**: `string`
___
### rotate
`Optional` **rotate**: `string`
___
### type
**type**: [`FlowTransitionLabelEnum`](../enums/FlowTransitionLabelEnum.md)
___
### width
`Optional` **width**: `number`
---
url: /auto-docs/document/interfaces/FlowTransitionLine.md
---
# Interface: FlowTransitionLine
## Table of contents
### Properties
- [activated](./FlowTransitionLine.md#activated)
- [arrow](./FlowTransitionLine.md#arrow)
- [from](./FlowTransitionLine.md#from)
- [isDraggingLine](./FlowTransitionLine.md#isdraggingline)
- [isHorizontal](./FlowTransitionLine.md#ishorizontal)
- [lineId](./FlowTransitionLine.md#lineid)
- [renderKey](./FlowTransitionLine.md#renderkey)
- [side](./FlowTransitionLine.md#side)
- [style](./FlowTransitionLine.md#style)
- [to](./FlowTransitionLine.md#to)
- [type](./FlowTransitionLine.md#type)
- [vertices](./FlowTransitionLine.md#vertices)
## Properties
### activated
`Optional` **activated**: `boolean`
___
### arrow
`Optional` **arrow**: `boolean`
___
### from
**from**: `IPoint`
___
### isDraggingLine
`Optional` **isDraggingLine**: `boolean`
___
### isHorizontal
`Optional` **isHorizontal**: `boolean`
___
### lineId
`Optional` **lineId**: `string`
___
### renderKey
`Optional` **renderKey**: `string`
___
### side
`Optional` **side**: [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md)
___
### style
`Optional` **style**: `CSSProperties`
___
### to
**to**: `IPoint`
___
### type
**type**: [`FlowTransitionLineEnum`](../enums/FlowTransitionLineEnum.md)
___
### vertices
`Optional` **vertices**: [`Vertex`](./Vertex.md)[]
---
url: /auto-docs/document/interfaces/FlowVirtualTree.NodeInfo.md
---
# Interface: NodeInfo\
[FlowVirtualTree](../modules/FlowVirtualTree.md).NodeInfo
## Type parameters
| Name |
| :------ |
| `T` |
## Table of contents
### Properties
- [children](./FlowVirtualTree.NodeInfo.md#children)
- [next](./FlowVirtualTree.NodeInfo.md#next)
- [parent](./FlowVirtualTree.NodeInfo.md#parent)
- [pre](./FlowVirtualTree.NodeInfo.md#pre)
## Properties
### children
**children**: `T`[]
___
### next
`Optional` **next**: `T`
___
### parent
`Optional` **parent**: `T`
___
### pre
`Optional` **pre**: `T`
---
url: /auto-docs/document/interfaces/MoveBlockOperation.md
---
# Interface: MoveBlockOperation
## Table of contents
### Properties
- [type](./MoveBlockOperation.md#type)
- [value](./MoveBlockOperation.md#value)
## Properties
### type
**type**: [`moveBlock`](../enums/OperationType.md#moveblock)
___
### value
**value**: [`MoveBlockOperationValue`](../types/MoveBlockOperationValue.md)
---
url: /auto-docs/document/interfaces/MoveChildNodesOperation.md
---
# Interface: MoveChildNodesOperation
## Table of contents
### Properties
- [type](./MoveChildNodesOperation.md#type)
- [value](./MoveChildNodesOperation.md#value)
## Properties
### type
**type**: [`moveChildNodes`](../enums/OperationType.md#movechildnodes)
___
### value
**value**: [`MoveChildNodesOperationValue`](./MoveChildNodesOperationValue.md)
---
url: /auto-docs/document/interfaces/MoveChildNodesOperationValue.md
---
# Interface: MoveChildNodesOperationValue
## Table of contents
### Properties
- [fromIndex](./MoveChildNodesOperationValue.md#fromindex)
- [fromParentId](./MoveChildNodesOperationValue.md#fromparentid)
- [nodeIds](./MoveChildNodesOperationValue.md#nodeids)
- [toIndex](./MoveChildNodesOperationValue.md#toindex)
- [toParentId](./MoveChildNodesOperationValue.md#toparentid)
## Properties
### fromIndex
**fromIndex**: `number`
___
### fromParentId
**fromParentId**: `string`
___
### nodeIds
**nodeIds**: `string`[]
___
### toIndex
**toIndex**: `number`
___
### toParentId
**toParentId**: `string`
---
url: /auto-docs/document/interfaces/MoveNodeConfig.md
---
# Interface: MoveNodeConfig
移动节点时的配置
## Table of contents
### Properties
- [index](./MoveNodeConfig.md#index)
- [parent](./MoveNodeConfig.md#parent)
## Properties
### index
`Optional` **index**: `number`
___
### parent
`Optional` **parent**: [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md)
---
url: /auto-docs/document/interfaces/MoveNodesOperation.md
---
# Interface: MoveNodesOperation
## Table of contents
### Properties
- [type](./MoveNodesOperation.md#type)
- [value](./MoveNodesOperation.md#value)
## Properties
### type
**type**: [`moveNodes`](../enums/OperationType.md#movenodes)
___
### value
**value**: [`MoveNodesOperationValue`](./MoveNodesOperationValue.md)
---
url: /auto-docs/document/interfaces/MoveNodesOperationValue.md
---
# Interface: MoveNodesOperationValue
## Table of contents
### Properties
- [fromId](./MoveNodesOperationValue.md#fromid)
- [nodeIds](./MoveNodesOperationValue.md#nodeids)
- [toId](./MoveNodesOperationValue.md#toid)
## Properties
### fromId
**fromId**: `string`
___
### nodeIds
**nodeIds**: `string`[]
___
### toId
**toId**: `string`
---
url: /auto-docs/document/interfaces/OnNodeAddEvent.md
---
# Interface: OnNodeAddEvent
节点添加事件
## Table of contents
### Properties
- [data](./OnNodeAddEvent.md#data)
- [node](./OnNodeAddEvent.md#node)
## Properties
### data
**data**: [`AddNodeData`](../types/AddNodeData.md)
___
### node
**node**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
---
url: /auto-docs/document/interfaces/OnNodeMoveEvent.md
---
# Interface: OnNodeMoveEvent
节点移动事件
## Table of contents
### Properties
- [fromIndex](./OnNodeMoveEvent.md#fromindex)
- [fromParent](./OnNodeMoveEvent.md#fromparent)
- [node](./OnNodeMoveEvent.md#node)
- [toIndex](./OnNodeMoveEvent.md#toindex)
- [toParent](./OnNodeMoveEvent.md#toparent)
## Properties
### fromIndex
**fromIndex**: `number`
___
### fromParent
**fromParent**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### node
**node**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
___
### toIndex
**toIndex**: `number`
___
### toParent
**toParent**: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
---
url: /auto-docs/document/interfaces/UngroupOperation.md
---
# Interface: UngroupOperation
## Table of contents
### Properties
- [type](./UngroupOperation.md#type)
- [value](./UngroupOperation.md#value)
## Properties
### type
**type**: [`ungroup`](../enums/OperationType.md#ungroup)
___
### value
**value**: [`createOrUngroupValue`](./createOrUngroupValue.md)
---
url: /auto-docs/document/interfaces/Vertex.md
---
# Interface: Vertex
## Hierarchy
- `IPoint`
↳ **`Vertex`**
## Table of contents
### Properties
- [moveX](./Vertex.md#movex)
- [moveY](./Vertex.md#movey)
- [radiusOverflow](./Vertex.md#radiusoverflow)
- [radiusX](./Vertex.md#radiusx)
- [radiusY](./Vertex.md#radiusy)
- [x](./Vertex.md#x)
- [y](./Vertex.md#y)
## Properties
### moveX
`Optional` **moveX**: `number`
___
### moveY
`Optional` **moveY**: `number`
___
### radiusOverflow
`Optional` **radiusOverflow**: ``"compress"`` \| ``"truncate"``
Strategy for handling arc curvature when space is insufficient, defaults to compress
___
### radiusX
`Optional` **radiusX**: `number`
___
### radiusY
`Optional` **radiusY**: `number`
___
### x
**x**: `number`
X coord
#### Inherited from
IPoint.x
___
### y
**y**: `number`
Y coord
#### Inherited from
IPoint.y
---
url: /auto-docs/document/interfaces/createOrUngroupValue.md
---
# Interface: createOrUngroupValue
## Table of contents
### Properties
- [groupId](./createOrUngroupValue.md#groupid)
- [nodeIds](./createOrUngroupValue.md#nodeids)
- [targetId](./createOrUngroupValue.md#targetid)
## Properties
### groupId
**groupId**: `string`
___
### nodeIds
**nodeIds**: `string`[]
___
### targetId
**targetId**: `string`
---
url: /auto-docs/document/modules/FlowLayoutDefault.md
---
# Namespace: FlowLayoutDefault
## Table of contents
### Functions
- [isVertical](../functions/FlowLayoutDefault.isVertical.md)
---
url: /auto-docs/document/modules/FlowNodeEntity.md
---
# Namespace: FlowNodeEntity
## Table of contents
### Functions
- [is](../functions/FlowNodeEntity.is.md)
---
url: /auto-docs/document/modules/FlowNodeRegistry.md
---
# Namespace: FlowNodeRegistry
## Table of contents
### Functions
- [extend](../functions/FlowNodeRegistry.extend.md)
- [merge](../functions/FlowNodeRegistry.merge.md)
- [mergeChildRegistries](../functions/FlowNodeRegistry.mergeChildRegistries.md)
---
url: /auto-docs/document/modules/FlowVirtualTree.md
---
# Namespace: FlowVirtualTree
## Table of contents
### Interfaces
- [NodeInfo](../interfaces/FlowVirtualTree.NodeInfo.md)
---
url: /auto-docs/document/types/AddNodeConfig.md
---
# Type alias: AddNodeConfig
**AddNodeConfig**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `hidden?` | `boolean` |
| `index?` | `number` |
| `parent?` | [`FlowNodeEntityOrId`](./FlowNodeEntityOrId.md) |
---
url: /auto-docs/document/types/AddNodeData.md
---
# Type alias: AddNodeData
**AddNodeData**: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) & \{ `hidden?`: `boolean` ; `index?`: `number` ; `originParent?`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) ; `parent?`: [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md) }
---
url: /auto-docs/document/types/FlowDocumentJSON.md
---
# Type alias: FlowDocumentJSON
**FlowDocumentJSON**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)[] |
---
url: /auto-docs/document/types/FlowDocumentProvider.md
---
# Type alias: FlowDocumentProvider
**FlowDocumentProvider**: () => [`FlowDocument`](../classes/FlowDocument.md)
#### Type declaration
(): [`FlowDocument`](../classes/FlowDocument.md)
##### Returns
[`FlowDocument`](../classes/FlowDocument.md)
---
url: /auto-docs/document/types/FlowNodeEntityOrId.md
---
# Type alias: FlowNodeEntityOrId
**FlowNodeEntityOrId**: `string` \| [`FlowNodeEntity`](../classes/FlowNodeEntity-1.md)
---
url: /auto-docs/document/types/FlowNodeType.md
---
# Type alias: FlowNodeType
**FlowNodeType**: `string` \| `number`
---
url: /auto-docs/document/types/FlowOperation.md
---
# Type alias: FlowOperation
**FlowOperation**: [`AddFromNodeOperation`](../interfaces/AddFromNodeOperation.md) \| [`DeleteFromNodeOperation`](../interfaces/DeleteFromNodeOperation.md) \| [`AddBlockOperation`](../interfaces/AddBlockOperation.md) \| [`DeleteBlockOperation`](../interfaces/DeleteBlockOperation.md) \| [`CreateGroupOperation`](../interfaces/CreateGroupOperation.md) \| [`UngroupOperation`](../interfaces/UngroupOperation.md) \| [`MoveNodesOperation`](../interfaces/MoveNodesOperation.md) \| [`AddNodesOperation`](../interfaces/AddNodesOperation.md) \| [`DeleteNodesOperation`](../interfaces/DeleteNodesOperation.md) \| [`MoveBlockOperation`](../interfaces/MoveBlockOperation.md) \| [`AddChildNodeOperation`](../interfaces/AddChildNodeOperation.md) \| [`DeleteChildNodeOperation`](../interfaces/DeleteChildNodeOperation.md) \| [`MoveChildNodesOperation`](../interfaces/MoveChildNodesOperation.md) \| [`AddNodeOperation`](../interfaces/AddNodeOperation.md) \| [`DeleteNodeOperation`](../interfaces/DeleteNodeOperation.md)
---
url: /auto-docs/document/types/MoveBlockOperationValue.md
---
# Type alias: MoveBlockOperationValue
**MoveBlockOperationValue**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `fromIndex` | `number` |
| `fromParentId` | `string` |
| `nodeId` | `string` |
| `toIndex` | `number` |
| `toParentId` | `string` |
---
url: /auto-docs/document/variables/ConstantKeys.md
---
# Variable: ConstantKeys
`Const` **ConstantKeys**: `Object`
支持外部 constants 自定义的 key 枚举
#### Type declaration
| Name | Type | Description |
| :------ | :------ | :------ |
| `BASE_ACTIVATED_COLOR` | `string` | 线条、label 激活后的颜色 |
| `BASE_COLOR` | `string` | 线条、label 默认颜色 |
| `BRANCH_SPACING` | `string` | 分支节点间距 |
| `COLLAPSED_SPACING` | `string` | 复合节点距离上个节点的距离 条件分支菱形下边和分支的距离 |
| `HOVER_AREA_WIDTH` | `string` | width of hover area |
| `INLINE_BLOCKS_INLINE_SPACING_BOTTOM` | `string` | inlineBlocks 的 inlineBottom loop 循环线条的下边距 |
| `INLINE_BLOCKS_INLINE_SPACING_TOP` | `string` | inlineBlocks 的 inlineTop loop 循环线条上边距 |
| `INLINE_BLOCKS_PADDING_BOTTOM` | `string` | dynamicSplit block list 下部留白间距,因为有两个拐弯,所以翻一倍 |
| `INLINE_BLOCKS_PADDING_TOP` | `string` | Branch bottom margin 分支下边距 |
| `INLINE_SPACING_BOTTOM` | `string` | loop 底部留白 |
| `NODE_SPACING` | `string` | 普通节点间距。垂直 / 水平 |
| `ROUNDED_LINE_RADIUS` | `string` | 圆弧线条拐角 radius |
| `ROUNDED_LINE_X_RADIUS` | `string` | 圆弧线条 x radius |
| `ROUNDED_LINE_Y_RADIUS` | `string` | 圆弧线条 y radius |
---
url: /auto-docs/document/variables/DEFAULT_SIZE.md
---
# Variable: DEFAULT\_SIZE
`Const` **DEFAULT\_SIZE**: `Object`
默认节点大小
#### Type declaration
| Name | Type |
| :------ | :------ |
| `height` | `number` |
| `width` | `number` |
---
url: /auto-docs/document/variables/DEFAULT_SPACING.md
---
# Variable: DEFAULT\_SPACING
`Const` **DEFAULT\_SPACING**: `Object`
默认一些间隔参数
#### Type declaration
| Name | Type | Description |
| :------ | :------ | :------ |
| `INLINE_BLOCKS_PADDING_TOP` | `number` | - |
| `INLINE_BLOCK_PADDING_BOTTOM` | `number` | - |
| `MARGIN_RIGHT` | `number` | **`Deprecated`** use 'BRANCH_SPACING' instead |
| `MIN_INLINE_BLOCK_SPACING` | `number` | - |
| `MIN_INLINE_BLOCK_SPACING_HORIZONTAL` | `number` | - |
| `NULL` | `number` | - |
---
url: /auto-docs/document/variables/DefaultSpacingKey.md
---
# Variable: DefaultSpacingKey
`Const` **DefaultSpacingKey**: `Object`
spacing default key 值
#### Type declaration
| Name | Type | Description |
| :------ | :------ | :------ |
| `BRANCH_SPACING` | `string` | 分支节点间距 |
| `COLLAPSED_SPACING` | `string` | 复合节点距离上个节点的距离 条件分支菱形下边和分支的距离 |
| `HOVER_AREA_WIDTH` | `string` | width of hover area |
| `INLINE_BLOCKS_PADDING_BOTTOM` | `string` | dynamicSplit block list 下部留白间距,因为有两个拐弯,所以翻一倍 |
| `NODE_SPACING` | `string` | 普通节点间距。垂直 / 水平 |
| `ROUNDED_LINE_RADIUS` | `string` | 圆弧线条拐角 radius |
| `ROUNDED_LINE_X_RADIUS` | `string` | 圆弧线条 x radius |
| `ROUNDED_LINE_Y_RADIUS` | `string` | 圆弧线条 y radius |
---
url: /auto-docs/document/variables/FLOW_DEFAULT_HIDDEN_TYPES.md
---
# Variable: FLOW\_DEFAULT\_HIDDEN\_TYPES
`Const` **FLOW\_DEFAULT\_HIDDEN\_TYPES**: [`FlowNodeType`](../types/FlowNodeType.md)[]
---
url: /auto-docs/document/variables/FlowDocumentConfigDefaultData.md
---
# Variable: FlowDocumentConfigDefaultData
`Const` **FlowDocumentConfigDefaultData**: typeof [`FlowDocumentConfigDefaultData`](./FlowDocumentConfigDefaultData.md)
---
url: /auto-docs/document/variables/FlowDocumentContainerModule.md
---
# Variable: FlowDocumentContainerModule
`Const` **FlowDocumentContainerModule**: `ContainerModule`
---
url: /auto-docs/document/variables/FlowDocumentContribution-1.md
---
# Variable: FlowDocumentContribution
`Const` **FlowDocumentContribution**: typeof [`FlowDocumentContribution`](./FlowDocumentContribution-1.md)
---
url: /auto-docs/document/variables/FlowDocumentOptions-1.md
---
# Variable: FlowDocumentOptions
`Const` **FlowDocumentOptions**: typeof [`FlowDocumentOptions`](./FlowDocumentOptions-1.md)
---
url: /auto-docs/document/variables/FlowDocumentOptionsDefault.md
---
# Variable: FlowDocumentOptionsDefault
`Const` **FlowDocumentOptionsDefault**: [`FlowDocumentOptions`](./FlowDocumentOptions-1.md)
---
url: /auto-docs/document/variables/FlowDocumentProvider-1.md
---
# Variable: FlowDocumentProvider
**FlowDocumentProvider**: typeof [`FlowDocumentProvider`](./FlowDocumentProvider-1.md)
---
url: /auto-docs/document/variables/FlowLayout-1.md
---
# Variable: FlowLayout
`Const` **FlowLayout**: typeof [`FlowLayout`](./FlowLayout-1.md)
---
url: /auto-docs/document/variables/FlowLayoutContribution-1.md
---
# Variable: FlowLayoutContribution
`Const` **FlowLayoutContribution**: typeof [`FlowLayoutContribution`](./FlowLayoutContribution-1.md)
---
url: /auto-docs/document/variables/FlowOperationBaseService-1.md
---
# Variable: FlowOperationBaseService
**FlowOperationBaseService**: typeof [`FlowOperationBaseService`](./FlowOperationBaseService-1.md)
---
url: /auto-docs/fixed-layout-core/variables/FixedLayoutContainerModule.md
---
# Variable: FixedLayoutContainerModule
`Const` **FixedLayoutContainerModule**: `ContainerModule`
---
url: /auto-docs/fixed-layout-core/variables/FixedLayoutRegistries.md
---
# Variable: FixedLayoutRegistries
`Const` **FixedLayoutRegistries**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `BlockIconRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `BlockOrderIconRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `BlockRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `DynamicSplitRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `EmptyRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `EndRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `InlineBlocksRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `LoopRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `RootRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `SlotBlockRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `SlotIconRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `SlotInlineBlocksRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `SlotRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `StartRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `StaticSplitRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
| `TryCatchRegistry` | `FlowNodeRegistry`\<`FlowNodeMeta`\> |
---
url: /auto-docs/fixed-layout-core/variables/SlotSpacingKey.md
---
# Variable: SlotSpacingKey
`Const` **SlotSpacingKey**: `Object`
#### Type declaration
| Name | Type | Description |
| :------ | :------ | :------ |
| `SLOT_BLOCK_PORT_DISTANCE` | `string` | = Slot Block - Slot Port |
| `SLOT_BLOCK_VERTICAL_SPACING` | `string` | Vertical Layout: Slot Block - Slot Block |
| `SLOT_LABEL_DISTANCE` | `string` | = Slot Label - Slot Start |
| `SLOT_PORT_DISTANCE` | `string` | = Slot Port - Slot Start |
| `SLOT_RADIUS` | `string` | = Slot Radius |
| `SLOT_SPACING` | `string` | = Next Node - Slot END |
| `SLOT_START_DISTANCE` | `string` | = Slot Start Line - Slot Icon Right |
---
url: /auto-docs/free-layout-core/classes/WorkflowDocument.md
---
# Class: WorkflowDocument
## Hierarchy
- `FlowDocument`
↳ **`WorkflowDocument`**
## Table of contents
### Constructors
- [constructor](./WorkflowDocument.md#constructor)
### Properties
- [config](./WorkflowDocument.md#config)
- [linesManager](./WorkflowDocument.md#linesmanager)
- [nodeEngineContext](./WorkflowDocument.md#nodeenginecontext)
- [onContentChange](./WorkflowDocument.md#oncontentchange)
- [onLayoutChange](./WorkflowDocument.md#onlayoutchange)
- [onLoaded](./WorkflowDocument.md#onloaded)
- [onNodeCreate](./WorkflowDocument.md#onnodecreate)
- [onNodeDispose](./WorkflowDocument.md#onnodedispose)
- [onNodeUpdate](./WorkflowDocument.md#onnodeupdate)
- [onReload](./WorkflowDocument.md#onreload)
- [options](./WorkflowDocument.md#options)
- [originTree](./WorkflowDocument.md#origintree)
- [playgroundConfig](./WorkflowDocument.md#playgroundconfig)
- [playgroundContext](./WorkflowDocument.md#playgroundcontext)
- [renderState](./WorkflowDocument.md#renderstate)
- [renderTree](./WorkflowDocument.md#rendertree)
- [root](./WorkflowDocument.md#root)
- [selectServices](./WorkflowDocument.md#selectservices)
- [transformer](./WorkflowDocument.md#transformer)
### Accessors
- [disposed](./WorkflowDocument.md#disposed)
- [layout](./WorkflowDocument.md#layout)
- [loading](./WorkflowDocument.md#loading)
- [size](./WorkflowDocument.md#size)
### Methods
- [addBlock](./WorkflowDocument.md#addblock)
- [addBlocksAsChildren](./WorkflowDocument.md#addblocksaschildren)
- [addFromNode](./WorkflowDocument.md#addfromnode)
- [addInlineBlocks](./WorkflowDocument.md#addinlineblocks)
- [addNode](./WorkflowDocument.md#addnode)
- [batchAddFromJSON](./WorkflowDocument.md#batchaddfromjson)
- [canRemove](./WorkflowDocument.md#canremove)
- [clear](./WorkflowDocument.md#clear)
- [copyNode](./WorkflowDocument.md#copynode)
- [copyNodeFromJSON](./WorkflowDocument.md#copynodefromjson)
- [createWorkflowNode](./WorkflowDocument.md#createworkflownode)
- [createWorkflowNodeByType](./WorkflowDocument.md#createworkflownodebytype)
- [dispose](./WorkflowDocument.md#dispose)
- [fireContentChange](./WorkflowDocument.md#firecontentchange)
- [fireRender](./WorkflowDocument.md#firerender)
- [fitView](./WorkflowDocument.md#fitview)
- [fromJSON](./WorkflowDocument.md#fromjson)
- [getAllEdges](./WorkflowDocument.md#getalledges)
- [getAllNodes](./WorkflowDocument.md#getallnodes)
- [getAllPorts](./WorkflowDocument.md#getallports)
- [getAssociatedNodes](./WorkflowDocument.md#getassociatednodes)
- [getNode](./WorkflowDocument.md#getnode)
- [getNodeRegister](./WorkflowDocument.md#getnoderegister)
- [getNodeRegistry](./WorkflowDocument.md#getnoderegistry)
- [getRenderDatas](./WorkflowDocument.md#getrenderdatas)
- [hasNode](./WorkflowDocument.md#hasnode)
- [init](./WorkflowDocument.md#init)
- [isErrorPort](./WorkflowDocument.md#iserrorport)
- [isExtend](./WorkflowDocument.md#isextend)
- [isTypeOrExtendType](./WorkflowDocument.md#istypeorextendtype)
- [load](./WorkflowDocument.md#load)
- [moveChildNodes](./WorkflowDocument.md#movechildnodes)
- [moveNodes](./WorkflowDocument.md#movenodes)
- [registerFlowNodes](./WorkflowDocument.md#registerflownodes)
- [registerLayout](./WorkflowDocument.md#registerlayout)
- [registerNodeDatas](./WorkflowDocument.md#registernodedatas)
- [reload](./WorkflowDocument.md#reload)
- [removeNode](./WorkflowDocument.md#removenode)
- [renderJSON](./WorkflowDocument.md#renderjson)
- [setLayout](./WorkflowDocument.md#setlayout)
- [toJSON](./WorkflowDocument.md#tojson)
- [toNodeJSON](./WorkflowDocument.md#tonodejson)
- [toString](./WorkflowDocument.md#tostring)
- [toggleFixedLayout](./WorkflowDocument.md#togglefixedlayout)
- [traverse](./WorkflowDocument.md#traverse)
## Constructors
### constructor
**new WorkflowDocument**()
#### Inherited from
FlowDocument.constructor
## Properties
### config
`Readonly` **config**: `FlowDocumentConfig`
#### Inherited from
FlowDocument.config
___
### linesManager
**linesManager**: [`WorkflowLinesManager`](./WorkflowLinesManager.md)
___
### nodeEngineContext
**nodeEngineContext**: `NodeEngineContext`
___
### onContentChange
`Readonly` **onContentChange**: `Event`\<[`WorkflowContentChangeEvent`](../interfaces/WorkflowContentChangeEvent.md)\>
___
### onLayoutChange
`Readonly` **onLayoutChange**: `Event`\<`FlowLayout`\>
#### Inherited from
FlowDocument.onLayoutChange
___
### onLoaded
`Readonly` **onLoaded**: `Event`\<`void`\>
数据加载完成
___
### onNodeCreate
`Readonly` **onNodeCreate**: `Event`\<\{ `data`: `FlowNodeJSON` ; `json`: `FlowNodeJSON` ; `node`: `FlowNodeEntity` }\>
#### Inherited from
FlowDocument.onNodeCreate
___
### onNodeDispose
`Readonly` **onNodeDispose**: `Event`\<\{ `node`: `FlowNodeEntity` }\>
#### Inherited from
FlowDocument.onNodeDispose
___
### onNodeUpdate
`Readonly` **onNodeUpdate**: `Event`\<\{ `data`: `FlowNodeJSON` ; `json`: `FlowNodeJSON` ; `node`: `FlowNodeEntity` }\>
#### Inherited from
FlowDocument.onNodeUpdate
___
### onReload
`Readonly` **onReload**: `Event`\<[`WorkflowDocument`](./WorkflowDocument.md)\>
___
### options
**options**: [`WorkflowDocumentOptions`](../variables/WorkflowDocumentOptions-1.md) = `{}`
#### Overrides
FlowDocument.options
___
### originTree
**originTree**: `FlowVirtualTree`\<`FlowNodeEntity`\>
原始的 tree 结构
#### Inherited from
FlowDocument.originTree
___
### playgroundConfig
**playgroundConfig**: `PlaygroundConfigEntity`
___
### playgroundContext
**playgroundContext**: `any`
___
### renderState
**renderState**: `FlowRendererStateEntity`
渲染相关的全局轧辊台
#### Inherited from
FlowDocument.renderState
___
### renderTree
**renderTree**: `FlowRenderTree`\<`FlowNodeEntity`\>
渲染后的 tree 结构
#### Inherited from
FlowDocument.renderTree
___
### root
**root**: `FlowNodeEntity`
#### Inherited from
FlowDocument.root
___
### selectServices
**selectServices**: [`WorkflowSelectService`](./WorkflowSelectService.md)
___
### transformer
**transformer**: `FlowDocumentTransformerEntity`
#### Inherited from
FlowDocument.transformer
## Accessors
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
FlowDocument.disposed
___
### layout
`get` **layout**(): `FreeLayout`
#### Returns
`FreeLayout`
#### Overrides
FlowDocument.layout
___
### loading
`get` **loading**(): `boolean`
#### Returns
`boolean`
#### Overrides
FlowDocument.loading
___
### size
`get` **size**(): `number`
#### Returns
`number`
#### Inherited from
FlowDocument.size
## Methods
### addBlock
**addBlock**(`target`, `blockData`, `addedNodes?`, `parent?`, `index?`): `FlowNodeEntity`
添加单个 block
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `target` | `string` \| `FlowNodeEntity` | |
| `blockData` | `FlowNodeJSON` | |
| `addedNodes?` | `FlowNodeEntity`[] | |
| `parent?` | `FlowNodeEntity` | 默认去找 $inlineBlocks$ |
| `index?` | `number` | - |
#### Returns
`FlowNodeEntity`
#### Inherited from
FlowDocument.addBlock
___
### addBlocksAsChildren
**addBlocksAsChildren**(`parent`, `blocks`, `addedNodes?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | `FlowNodeEntity` |
| `blocks` | `FlowNodeJSON`[] |
| `addedNodes?` | `FlowNodeEntity`[] |
#### Returns
`void`
#### Inherited from
FlowDocument.addBlocksAsChildren
___
### addFromNode
**addFromNode**(`fromNode`, `json`): `FlowNodeEntity`
从指定节点的下一个节点新增
#### Parameters
| Name | Type |
| :------ | :------ |
| `fromNode` | `string` \| `FlowNodeEntity` |
| `json` | `FlowNodeJSON` |
#### Returns
`FlowNodeEntity`
#### Inherited from
FlowDocument.addFromNode
___
### addInlineBlocks
**addInlineBlocks**(`node`, `blocks`, `addedNodes?`): `FlowNodeEntity`[]
block 格式:
node: (最原始的 id)
blockIcon
inlineBlocks
block
blockOrderIcon
block
blockOrderIcon
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `blocks` | `FlowNodeJSON`[] |
| `addedNodes?` | `FlowNodeEntity`[] |
#### Returns
`FlowNodeEntity`[]
#### Inherited from
FlowDocument.addInlineBlocks
___
### addNode
**addNode**(`data`, `addedNodes?`, `ignoreCreateAndUpdateEvent?`): `FlowNodeEntity`
添加节点,如果节点已经存在则不会重复创建
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `AddNodeData` |
| `addedNodes?` | `FlowNodeEntity`[] |
| `ignoreCreateAndUpdateEvent?` | `boolean` |
#### Returns
`FlowNodeEntity`
#### Overrides
FlowDocument.addNode
___
### batchAddFromJSON
**batchAddFromJSON**(`json`, `options?`): `Object`
批量添加节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `json` | [`WorkflowJSON`](../interfaces/WorkflowJSON.md) |
| `options?` | `Object` |
| `options.onEdgeCreated?` | (`edge`: [`WorkflowLineEntity`](./WorkflowLineEntity.md)) => `void` |
| `options.onNodeCreated?` | (`node`: `FlowNodeEntity`) => `void` |
| `options.parent?` | `FlowNodeEntity` |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `edges` | [`WorkflowLineEntity`](./WorkflowLineEntity.md)[] |
| `nodes` | `FlowNodeEntity`[] |
___
### canRemove
**canRemove**(`node`, `silent?`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `silent?` | `boolean` |
#### Returns
`boolean`
___
### clear
**clear**(): `void`
清空画布
#### Returns
`void`
___
### copyNode
**copyNode**(`node`, `newNodeId?`, `format?`, `position?`): `FlowNodeEntity`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `newNodeId?` | `string` |
| `format?` | (`json`: [`WorkflowNodeJSON`](../interfaces/WorkflowNodeJSON.md)) => [`WorkflowNodeJSON`](../interfaces/WorkflowNodeJSON.md) |
| `position?` | `IPoint` |
#### Returns
`FlowNodeEntity`
___
### copyNodeFromJSON
**copyNodeFromJSON**(`flowNodeType`, `nodeJSON`, `newNodeId?`, `position?`, `parentID?`): `FlowNodeEntity`
#### Parameters
| Name | Type |
| :------ | :------ |
| `flowNodeType` | `string` |
| `nodeJSON` | [`WorkflowNodeJSON`](../interfaces/WorkflowNodeJSON.md) |
| `newNodeId?` | `string` |
| `position?` | `IPoint` |
| `parentID?` | `string` |
#### Returns
`FlowNodeEntity`
___
### createWorkflowNode
**createWorkflowNode**(`json`, `isClone?`, `parentID?`): `FlowNodeEntity`
创建流程节点
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `json` | [`WorkflowNodeJSON`](../interfaces/WorkflowNodeJSON.md) | `undefined` | |
| `isClone` | `boolean` | `false` | **`Deprecated`** |
| `parentID?` | `string` | `undefined` | - |
#### Returns
`FlowNodeEntity`
___
### createWorkflowNodeByType
**createWorkflowNodeByType**(`type`, `position?`, `json?`, `parentID?`): `FlowNodeEntity`
通过类型创建节点, 如果没有提供position 则直接放在画布中间
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` \| `number` |
| `position?` | `IPoint` |
| `json` | `Partial`\<[`WorkflowNodeJSON`](../interfaces/WorkflowNodeJSON.md)\> |
| `parentID?` | `string` |
#### Returns
`FlowNodeEntity`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Overrides
FlowDocument.dispose
___
### fireContentChange
**fireContentChange**(`event`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | [`WorkflowContentChangeEvent`](../interfaces/WorkflowContentChangeEvent.md) |
#### Returns
`void`
___
### fireRender
**fireRender**(): `void`
触发渲染
#### Returns
`void`
#### Overrides
FlowDocument.fireRender
___
### fitView
**fitView**(`easing?`): `Promise`\<`void`\>
use `ctx.tools.fitView()` instead
#### Parameters
| Name | Type |
| :------ | :------ |
| `easing?` | `boolean` |
#### Returns
`Promise`\<`void`\>
**`Deprecated`**
___
### fromJSON
**fromJSON**(`json`, `fireRender?`): `void`
从数据加载
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `json` | `Partial`\<[`WorkflowJSON`](../interfaces/WorkflowJSON.md)\> | `undefined` |
| `fireRender` | `boolean` | `true` |
#### Returns
`void`
#### Overrides
FlowDocument.fromJSON
___
### getAllEdges
**getAllEdges**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### getAllNodes
**getAllNodes**(): `FlowNodeEntity`[]
#### Returns
`FlowNodeEntity`[]
#### Overrides
FlowDocument.getAllNodes
___
### getAllPorts
**getAllPorts**(): [`WorkflowPortEntity`](./WorkflowPortEntity.md)[]
#### Returns
[`WorkflowPortEntity`](./WorkflowPortEntity.md)[]
___
### getAssociatedNodes
**getAssociatedNodes**(): `FlowNodeEntity`[]
获取画布中的非游离节点
1. 开始节点
2. 从开始节点出发能走到的节点
3. 结束节点
4. 默认所有子画布内节点为游离节点
#### Returns
`FlowNodeEntity`[]
___
### getNode
**getNode**(`id`): `undefined` \| `FlowNodeEntity`
根据 id 获取节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| `FlowNodeEntity`
#### Inherited from
FlowDocument.getNode
___
### getNodeRegister
**getNodeRegister**\<`T`\>(`type`, `originParent?`): `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `FlowNodeRegistry`\<`FlowNodeMeta`, `T`\> = `FlowNodeRegistry`\<`FlowNodeMeta`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `FlowNodeType` |
| `originParent?` | `FlowNodeEntity` |
#### Returns
`T`
**`Deprecated`**
use `getNodeRegistry` instead
#### Inherited from
FlowDocument.getNodeRegister
___
### getNodeRegistry
**getNodeRegistry**\<`T`\>(`type`, `originParent?`): `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `FlowNodeRegistry`\<`FlowNodeMeta`, `T`\> = `FlowNodeRegistry`\<`FlowNodeMeta`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `FlowNodeType` |
| `originParent?` | `FlowNodeEntity` |
#### Returns
`T`
#### Inherited from
FlowDocument.getNodeRegistry
___
### getRenderDatas
**getRenderDatas**\<`T`\>(`dataRegistry`, `containHiddenNodes?`): `T`[]
返回需要渲染的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `EntityData`\<`any`, {}, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `dataRegistry` | `EntityDataRegistry`\<`T`\> |
| `containHiddenNodes?` | `boolean` |
#### Returns
`T`[]
#### Inherited from
FlowDocument.getRenderDatas
___
### hasNode
**hasNode**(`nodeId`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeId` | `string` |
#### Returns
`boolean`
#### Inherited from
FlowDocument.hasNode
___
### init
**init**(): `void`
#### Returns
`void`
#### Overrides
FlowDocument.init
___
### isErrorPort
**isErrorPort**(`port`, `defaultValue?`): `boolean`
判断端口是否为错误态
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `port` | [`WorkflowPortEntity`](./WorkflowPortEntity.md) | `undefined` |
| `defaultValue` | `boolean` | `false` |
#### Returns
`boolean`
___
### isExtend
**isExtend**(`currentType`, `extendType`): `boolean`
Check node extend
#### Parameters
| Name | Type |
| :------ | :------ |
| `currentType` | `FlowNodeType` |
| `extendType` | `FlowNodeType` |
#### Returns
`boolean`
#### Inherited from
FlowDocument.isExtend
___
### isTypeOrExtendType
**isTypeOrExtendType**(`currentType`, `extendType`): `boolean`
Check node type
#### Parameters
| Name | Type |
| :------ | :------ |
| `currentType` | `FlowNodeType` |
| `extendType` | `FlowNodeType` |
#### Returns
`boolean`
#### Inherited from
FlowDocument.isTypeOrExtendType
___
### load
**load**(): `Promise`\<`void`\>
#### Returns
`Promise`\<`void`\>
#### Overrides
FlowDocument.load
___
### moveChildNodes
**moveChildNodes**(`param0`): `void`
移动子节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.nodeIds` | `string`[] |
| `param0.toIndex` | `number` |
| `param0.toParentId` | `string` |
#### Returns
`void`
#### Inherited from
FlowDocument.moveChildNodes
___
### moveNodes
**moveNodes**(`param0`): `void`
移动节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.dropNodeId` | `string` |
| `param0.inside?` | `boolean` |
| `param0.sortNodeIds` | `string`[] |
#### Returns
`void`
#### Inherited from
FlowDocument.moveNodes
___
### registerFlowNodes
**registerFlowNodes**\<`T`\>(`...registries`): `void`
注册节点
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `FlowNodeRegistry`\<`any`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `...registries` | `T`[] |
#### Returns
`void`
#### Inherited from
FlowDocument.registerFlowNodes
___
### registerLayout
**registerLayout**(`layout`): `void`
注册布局
#### Parameters
| Name | Type |
| :------ | :------ |
| `layout` | `FlowLayout` |
#### Returns
`void`
#### Inherited from
FlowDocument.registerLayout
___
### registerNodeDatas
**registerNodeDatas**(`...nodeDatas`): `void`
节点注入数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `...nodeDatas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
#### Returns
`void`
#### Inherited from
FlowDocument.registerNodeDatas
___
### reload
**reload**(`json`, `delayTime?`): `Promise`\<`void`\>
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `json` | [`WorkflowJSON`](../interfaces/WorkflowJSON.md) | `undefined` |
| `delayTime` | `number` | `0` |
#### Returns
`Promise`\<`void`\>
**`Deprecated`**
use `ctx.operation.fromJSON` instead
___
### removeNode
**removeNode**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `string` \| `FlowNodeEntity` |
#### Returns
`void`
#### Inherited from
FlowDocument.removeNode
___
### renderJSON
**renderJSON**(`json`, `options?`): `Object`
批量添加节点
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | [`WorkflowJSON`](../interfaces/WorkflowJSON.md) | |
| `options?` | `Object` | |
| `options.isClone?` | `boolean` | **`Deprecated`** useless api |
| `options.parent?` | `FlowNodeEntity` | - |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `edges` | [`WorkflowLineEntity`](./WorkflowLineEntity.md)[] |
| `nodes` | `FlowNodeEntity`[] |
**`Deprecated`**
use 'batchAddFromJSON' instead
___
### setLayout
**setLayout**(`layoutKey`): `void`
更新布局
#### Parameters
| Name | Type |
| :------ | :------ |
| `layoutKey` | `string` |
#### Returns
`void`
#### Inherited from
FlowDocument.setLayout
___
### toJSON
**toJSON**(): [`WorkflowJSON`](../interfaces/WorkflowJSON.md)
导出数据
#### Returns
[`WorkflowJSON`](../interfaces/WorkflowJSON.md)
#### Overrides
FlowDocument.toJSON
___
### toNodeJSON
**toNodeJSON**(`node`): [`WorkflowNodeJSON`](../interfaces/WorkflowNodeJSON.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
#### Returns
[`WorkflowNodeJSON`](../interfaces/WorkflowNodeJSON.md)
#### Overrides
FlowDocument.toNodeJSON
___
### toString
**toString**(`showType?`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `showType?` | `boolean` |
#### Returns
`string`
#### Inherited from
FlowDocument.toString
___
### toggleFixedLayout
**toggleFixedLayout**(): `void`
切换垂直或水平布局
#### Returns
`void`
#### Inherited from
FlowDocument.toggleFixedLayout
___
### traverse
**traverse**(`fn`, `node?`, `depth?`): `boolean` \| `void`
traverse all nodes, O(n)
R
|
+---1
| |
| +---1.1
| |
| +---1.2
| |
| +---1.3
| | |
| | +---1.3.1
| | |
| | +---1.3.2
| |
| +---1.4
|
+---2
|
+---2.1
sort: [1, 1.1, 1.2, 1.3, 1.3.1, 1.3.2, 1.4, 2, 2.1]
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`node`: `FlowNodeEntity`, `depth`: `number`, `index`: `number`) => `boolean` \| `void` |
| `node?` | `FlowNodeEntity` |
| `depth?` | `number` |
#### Returns
`boolean` \| `void`
isBreak
#### Inherited from
FlowDocument.traverse
---
url: /auto-docs/free-layout-core/classes/WorkflowDragService.md
---
# Class: WorkflowDragService
## Table of contents
### Constructors
- [constructor](./WorkflowDragService.md#constructor)
### Properties
- [isDragging](./WorkflowDragService.md#isdragging)
- [onDragLineEventChange](./WorkflowDragService.md#ondraglineeventchange)
- [onNodesDrag](./WorkflowDragService.md#onnodesdrag)
- [options](./WorkflowDragService.md#options)
### Methods
- [adjustSubNodePosition](./WorkflowDragService.md#adjustsubnodeposition)
- [canDropToNode](./WorkflowDragService.md#candroptonode)
- [dispose](./WorkflowDragService.md#dispose)
- [dropCard](./WorkflowDragService.md#dropcard)
- [init](./WorkflowDragService.md#init)
- [onDragLineEnd](./WorkflowDragService.md#ondraglineend)
- [registerPosAdjuster](./WorkflowDragService.md#registerposadjuster)
- [resetLine](./WorkflowDragService.md#resetline)
- [startDragCard](./WorkflowDragService.md#startdragcard)
- [startDragSelectedNodes](./WorkflowDragService.md#startdragselectednodes)
- [startDrawingLine](./WorkflowDragService.md#startdrawingline)
## Constructors
### constructor
**new WorkflowDragService**()
## Properties
### isDragging
**isDragging**: `boolean` = `false`
___
### onDragLineEventChange
`Readonly` **onDragLineEventChange**: `Event`\<[`LineEventProps`](../interfaces/LineEventProps.md)\>
___
### onNodesDrag
`Readonly` **onNodesDrag**: `Event`\<[`NodesDragEvent`](../types/NodesDragEvent.md)\>
___
### options
`Readonly` **options**: [`WorkflowDocumentOptions`](../variables/WorkflowDocumentOptions-1.md)
## Methods
### adjustSubNodePosition
**adjustSubNodePosition**(`subNodeType?`, `containerNode?`, `mousePos?`): `IPoint`
如果存在容器节点,且传入鼠标坐标,需要用容器的坐标减去传入的鼠标坐标
#### Parameters
| Name | Type |
| :------ | :------ |
| `subNodeType?` | `string` |
| `containerNode?` | `FlowNodeEntity` |
| `mousePos?` | `IPoint` |
#### Returns
`IPoint`
___
### canDropToNode
**canDropToNode**(`params`): `Object`
判断是否可以放置节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | `Object` |
| `params.dragNode?` | `FlowNodeEntity` |
| `params.dragNodeType?` | `FlowNodeType` |
| `params.dropNode?` | `FlowNodeEntity` |
| `params.dropNodeType?` | `FlowNodeType` |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `allowDrop` | `boolean` |
| `dropNode?` | `FlowNodeEntity` |
| `message?` | `string` |
___
### dispose
**dispose**(): `void`
#### Returns
`void`
___
### dropCard
**dropCard**(`type`, `event`, `data?`, `parent?`): `Promise`\<`undefined` \| `FlowNodeEntity`\>
通过拖入卡片添加
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `type` | `string` | |
| `event` | `Object` | |
| `event.clientX` | `number` | - |
| `event.clientY` | `number` | - |
| `data?` | `Partial`\<[`WorkflowNodeJSON`](../interfaces/WorkflowNodeJSON.md)\> | 节点数据 |
| `parent?` | `FlowNodeEntity` | - |
#### Returns
`Promise`\<`undefined` \| `FlowNodeEntity`\>
___
### init
**init**(): `void`
#### Returns
`void`
___
### onDragLineEnd
**onDragLineEnd**(`callback`): `Disposable`
线条拖拽结束
#### Parameters
| Name | Type |
| :------ | :------ |
| `callback` | [`OnDragLineEnd`](../types/OnDragLineEnd.md) |
#### Returns
`Disposable`
___
### registerPosAdjuster
**registerPosAdjuster**(`adjuster`): `Object`
注册位置调整
#### Parameters
| Name | Type |
| :------ | :------ |
| `adjuster` | (`params`: \{ `position`: `IPoint` ; `selectedNodes`: `FlowNodeEntity`[] }) => `IPoint` |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `dispose` | () => `boolean` |
___
### resetLine
**resetLine**(`line`, `e`): `Promise`\<`void`\>
重新连接线条
#### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
| `e` | `MouseEvent` |
#### Returns
`Promise`\<`void`\>
___
### startDragCard
**startDragCard**(`type`, `event`, `data`, `cloneNode?`): `Promise`\<`undefined` \| `FlowNodeEntity`\>
拖拽卡片到画布
返回创建结果
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` |
| `event` | `MouseEvent`\<`Element`, `MouseEvent`\> |
| `data` | `Partial`\<[`WorkflowNodeJSON`](../interfaces/WorkflowNodeJSON.md)\> |
| `cloneNode?` | (`e`: `PlaygroundDragEvent`) => `HTMLDivElement` |
#### Returns
`Promise`\<`undefined` \| `FlowNodeEntity`\>
___
### startDragSelectedNodes
**startDragSelectedNodes**(`triggerEvent`): `Promise`\<`boolean`\>
拖拽选中节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `triggerEvent` | `MouseEvent` \| `MouseEvent`\<`Element`, `MouseEvent`\> |
#### Returns
`Promise`\<`boolean`\>
___
### startDrawingLine
**startDrawingLine**(`port`, `event`, `originLine?`): `Promise`\<\{ `dragSuccess?`: `boolean` ; `newLine?`: [`WorkflowLineEntity`](./WorkflowLineEntity.md) }\>
绘制线条
#### Parameters
| Name | Type |
| :------ | :------ |
| `port` | [`WorkflowPortEntity`](./WorkflowPortEntity.md) |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `originLine?` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
#### Returns
`Promise`\<\{ `dragSuccess?`: `boolean` ; `newLine?`: [`WorkflowLineEntity`](./WorkflowLineEntity.md) }\>
---
url: /auto-docs/free-layout-core/classes/WorkflowHoverService.md
---
# Class: WorkflowHoverService
hover 状态管理
## Table of contents
### Constructors
- [constructor](./WorkflowHoverService.md#constructor)
### Properties
- [hoveredKey](./WorkflowHoverService.md#hoveredkey)
- [hoveredPos](./WorkflowHoverService.md#hoveredpos)
- [onHoveredChange](./WorkflowHoverService.md#onhoveredchange)
- [onUpdateHoverPosition](./WorkflowHoverService.md#onupdatehoverposition)
### Accessors
- [hoveredNode](./WorkflowHoverService.md#hoverednode)
- [someHovered](./WorkflowHoverService.md#somehovered)
### Methods
- [clearHovered](./WorkflowHoverService.md#clearhovered)
- [isHovered](./WorkflowHoverService.md#ishovered)
- [isSomeHovered](./WorkflowHoverService.md#issomehovered)
- [updateHoverPosition](./WorkflowHoverService.md#updatehoverposition)
- [updateHoveredKey](./WorkflowHoverService.md#updatehoveredkey)
## Constructors
### constructor
**new WorkflowHoverService**()
## Properties
### hoveredKey
**hoveredKey**: `string` = `''`
当前 hovered 的 节点或者线条或者点
1: nodeId / lineId (节点 / 线条)
2: nodeId:portKey (节点连接点)
___
### hoveredPos
**hoveredPos**: `PositionSchema`
___
### onHoveredChange
`Readonly` **onHoveredChange**: `Event`\<`string`\>
___
### onUpdateHoverPosition
`Readonly` **onUpdateHoverPosition**: `Event`\<[`HoverPosition`](../interfaces/HoverPosition.md)\>
## Accessors
### hoveredNode
`get` **hoveredNode**(): `undefined` \| [`WorkflowEntityHoverable`](../types/WorkflowEntityHoverable.md)
获取被 hover 的节点或线条
#### Returns
`undefined` \| [`WorkflowEntityHoverable`](../types/WorkflowEntityHoverable.md)
**`Deprecated`**
use 'someHovered' instead
___
### someHovered
`get` **someHovered**(): `undefined` \| [`WorkflowEntityHoverable`](../types/WorkflowEntityHoverable.md)
获取被 hover 的节点或线条
#### Returns
`undefined` \| [`WorkflowEntityHoverable`](../types/WorkflowEntityHoverable.md)
## Methods
### clearHovered
**clearHovered**(): `void`
清空 hover 内容
#### Returns
`void`
___
### isHovered
**isHovered**(`nodeId`): `boolean`
判断是否 hover
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `nodeId` | `string` | hoveredKey |
#### Returns
`boolean`
是否 hover
___
### isSomeHovered
**isSomeHovered**(): `boolean`
#### Returns
`boolean`
___
### updateHoverPosition
**updateHoverPosition**(`position`, `target?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `position` | `PositionSchema` |
| `target?` | `HTMLElement` |
#### Returns
`void`
___
### updateHoveredKey
**updateHoveredKey**(`hoveredKey`): `void`
更新 hover 的内容
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `hoveredKey` | `string` | hovered key |
#### Returns
`void`
---
url: /auto-docs/free-layout-core/classes/WorkflowLineEntity.md
---
# Class: WorkflowLineEntity
线条
## Hierarchy
- `Entity`\<[`WorkflowLineEntityOpts`](../interfaces/WorkflowLineEntityOpts.md)\>
↳ **`WorkflowLineEntity`**
## Table of contents
### Constructors
- [constructor](./WorkflowLineEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./WorkflowLineEntity.md#__opts_type__)
- [document](./WorkflowLineEntity.md#document)
- [entityManager](./WorkflowLineEntity.md#entitymanager)
- [info](./WorkflowLineEntity.md#info)
- [isDrawing](./WorkflowLineEntity.md#isdrawing)
- [linesManager](./WorkflowLineEntity.md#linesmanager)
- [onDataChange](./WorkflowLineEntity.md#ondatachange)
- [onEntityChange](./WorkflowLineEntity.md#onentitychange)
- [onLineDataChange](./WorkflowLineEntity.md#onlinedatachange)
- [preDispose](./WorkflowLineEntity.md#predispose)
- [stackIndex](./WorkflowLineEntity.md#stackindex)
- [toDispose](./WorkflowLineEntity.md#todispose)
- [type](./WorkflowLineEntity.md#type)
### Accessors
- [bounds](./WorkflowLineEntity.md#bounds)
- [center](./WorkflowLineEntity.md#center)
- [className](./WorkflowLineEntity.md#classname)
- [color](./WorkflowLineEntity.md#color)
- [context](./WorkflowLineEntity.md#context)
- [disabled](./WorkflowLineEntity.md#disabled)
- [disposed](./WorkflowLineEntity.md#disposed)
- [drawingFrom](./WorkflowLineEntity.md#drawingfrom)
- [drawingTo](./WorkflowLineEntity.md#drawingto)
- [flowing](./WorkflowLineEntity.md#flowing)
- [from](./WorkflowLineEntity.md#from)
- [fromPort](./WorkflowLineEntity.md#fromport)
- [hasError](./WorkflowLineEntity.md#haserror)
- [hideArrow](./WorkflowLineEntity.md#hidearrow)
- [highlightColor](./WorkflowLineEntity.md#highlightcolor)
- [id](./WorkflowLineEntity.md#id)
- [inContainer](./WorkflowLineEntity.md#incontainer)
- [isHidden](./WorkflowLineEntity.md#ishidden)
- [lineData](./WorkflowLineEntity.md#linedata)
- [lockedColor](./WorkflowLineEntity.md#lockedcolor)
- [node](./WorkflowLineEntity.md#node)
- [onDispose](./WorkflowLineEntity.md#ondispose)
- [position](./WorkflowLineEntity.md#position)
- [processing](./WorkflowLineEntity.md#processing)
- [renderType](./WorkflowLineEntity.md#rendertype)
- [reverse](./WorkflowLineEntity.md#reverse)
- [savedInManager](./WorkflowLineEntity.md#savedinmanager)
- [to](./WorkflowLineEntity.md#to)
- [toPort](./WorkflowLineEntity.md#toport)
- [type](./WorkflowLineEntity.md#type-1)
- [uiState](./WorkflowLineEntity.md#uistate)
- [version](./WorkflowLineEntity.md#version)
- [vertical](./WorkflowLineEntity.md#vertical)
### Methods
- [addData](./WorkflowLineEntity.md#adddata)
- [addInitializeData](./WorkflowLineEntity.md#addinitializedata)
- [canRemove](./WorkflowLineEntity.md#canremove)
- [dispose](./WorkflowLineEntity.md#dispose)
- [fireRender](./WorkflowLineEntity.md#firerender)
- [fromJSON](./WorkflowLineEntity.md#fromjson)
- [getData](./WorkflowLineEntity.md#getdata)
- [getDefaultDataRegistries](./WorkflowLineEntity.md#getdefaultdataregistries)
- [getHoverDist](./WorkflowLineEntity.md#gethoverdist)
- [getService](./WorkflowLineEntity.md#getservice)
- [hasData](./WorkflowLineEntity.md#hasdata)
- [is](./WorkflowLineEntity.md#is)
- [removeData](./WorkflowLineEntity.md#removedata)
- [reset](./WorkflowLineEntity.md#reset)
- [setFromPort](./WorkflowLineEntity.md#setfromport)
- [setToPort](./WorkflowLineEntity.md#settoport)
- [toJSON](./WorkflowLineEntity.md#tojson)
- [updateData](./WorkflowLineEntity.md#updatedata)
- [updateUIState](./WorkflowLineEntity.md#updateuistate)
- [validate](./WorkflowLineEntity.md#validate)
- [portInfoToLineId](./WorkflowLineEntity.md#portinfotolineid)
## Constructors
### constructor
**new WorkflowLineEntity**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | [`WorkflowLineEntityOpts`](../interfaces/WorkflowLineEntityOpts.md) |
#### Overrides
Entity\<WorkflowLineEntityOpts\>.constructor
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`WorkflowLineEntityOpts`](../interfaces/WorkflowLineEntityOpts.md)
#### Inherited from
Entity.\_\_opts\_type\_\_
___
### document
`Readonly` **document**: [`WorkflowDocument`](./WorkflowDocument.md)
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
全局的entity管理器
#### Inherited from
Entity.entityManager
___
### info
**info**: [`WorkflowLineInfo`](../interfaces/WorkflowLineInfo.md)
线条数据
___
### isDrawing
`Readonly` **isDrawing**: `boolean`
___
### linesManager
`Readonly` **linesManager**: [`WorkflowLinesManager`](./WorkflowLinesManager.md)
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityDataChangedEvent`\<`Entity`\<`EntityOpts`\>\>\>
数据更改事件
#### Inherited from
Entity.onDataChange
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<`Entity`\<`EntityOpts`\>\>
修改会触发
#### Inherited from
Entity.onEntityChange
___
### onLineDataChange
`Readonly` **onLineDataChange**: `Event`\<\{ `newValue`: `any` ; `oldValue`: `any` }\>
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
Entity.preDispose
___
### stackIndex
**stackIndex**: `number` = `0`
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
Entity.toDispose
___
### type
`Static` **type**: `string` = `WORKFLOW_LINE_ENTITY`
#### Overrides
Entity.type
## Accessors
### bounds
`get` **bounds**(): `Rectangle`
获取线条的边框位置大小
#### Returns
`Rectangle`
___
### center
`get` **center**(): [`LineCenterPoint`](../interfaces/LineCenterPoint.md)
#### Returns
[`LineCenterPoint`](../interfaces/LineCenterPoint.md)
___
### className
`get` **className**(): `string`
获取线条样式
#### Returns
`string`
___
### color
`get` **color**(): `undefined` \| `string`
#### Returns
`undefined` \| `string`
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
Entity.context
___
### disabled
`get` **disabled**(): `boolean`
是否禁用
#### Returns
`boolean`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
Entity.disposed
___
### drawingFrom
`get` **drawingFrom**(): `undefined` \| [`LinePoint`](../interfaces/LinePoint.md)
#### Returns
`undefined` \| [`LinePoint`](../interfaces/LinePoint.md)
`set` **drawingFrom**(`pos`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `pos` | `undefined` \| [`LinePoint`](../interfaces/LinePoint.md) |
#### Returns
`void`
___
### drawingTo
`get` **drawingTo**(): `undefined` \| [`LinePoint`](../interfaces/LinePoint.md)
获取线条正在画线的位置
#### Returns
`undefined` \| [`LinePoint`](../interfaces/LinePoint.md)
`set` **drawingTo**(`pos`): `void`
设置线条画线时的目标位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `pos` | `undefined` \| [`LinePoint`](../interfaces/LinePoint.md) |
#### Returns
`void`
___
### flowing
`get` **flowing**(): `boolean`
是否流动
#### Returns
`boolean`
`set` **flowing**(`flowing`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `flowing` | `boolean` |
#### Returns
`void`
___
### from
`get` **from**(): `undefined` \| `FlowNodeEntity`
获取线条的前置节点
#### Returns
`undefined` \| `FlowNodeEntity`
___
### fromPort
`get` **fromPort**(): `undefined` \| [`WorkflowPortEntity`](./WorkflowPortEntity.md)
#### Returns
`undefined` \| [`WorkflowPortEntity`](./WorkflowPortEntity.md)
___
### hasError
`get` **hasError**(): `boolean`
#### Returns
`boolean`
`set` **hasError**(`hasError`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `hasError` | `boolean` |
#### Returns
`void`
___
### hideArrow
`get` **hideArrow**(): `boolean`
是否隐藏箭头
#### Returns
`boolean`
___
### highlightColor
`get` **highlightColor**(): `string`
#### Returns
`string`
`set` **highlightColor**(`highlightColor`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `highlightColor` | `string` |
#### Returns
`void`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
Entity.id
___
### inContainer
`get` **inContainer**(): `boolean`
#### Returns
`boolean`
___
### isHidden
`get` **isHidden**(): `boolean`
#### Returns
`boolean`
___
### lineData
`get` **lineData**(): `any`
线条的扩展数据
#### Returns
`any`
`set` **lineData**(`newValue`): `void`
更新线条扩展数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `newValue` | `any` |
#### Returns
`void`
___
### lockedColor
`get` **lockedColor**(): `string`
#### Returns
`string`
`set` **lockedColor**(`lockedColor`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `lockedColor` | `string` |
#### Returns
`void`
___
### node
`get` **node**(): `HTMLDivElement`
#### Returns
`HTMLDivElement`
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
Entity.onDispose
___
### position
`get` **position**(): [`LinePosition`](../interfaces/LinePosition.md)
获取线条真实的输入输出节点坐标
#### Returns
[`LinePosition`](../interfaces/LinePosition.md)
___
### processing
`get` **processing**(): `boolean`
获取是否 testrun processing
#### Returns
`boolean`
**`Deprecated`**
use `flowing` instead
`set` **processing**(`status`): `void`
设置 testrun processing 状态
#### Parameters
| Name | Type |
| :------ | :------ |
| `status` | `boolean` |
#### Returns
`void`
**`Deprecated`**
use `flowing` instead
___
### renderType
`get` **renderType**(): `undefined` \| [`LineRenderType`](../types/LineRenderType.md)
获取线条渲染器类型
#### Returns
`undefined` \| [`LineRenderType`](../types/LineRenderType.md)
___
### reverse
`get` **reverse**(): `boolean`
是否反转箭头
#### Returns
`boolean`
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
Entity.savedInManager
___
### to
`get` **to**(): `undefined` \| `FlowNodeEntity`
获取线条的后置节点
#### Returns
`undefined` \| `FlowNodeEntity`
___
### toPort
`get` **toPort**(): `undefined` \| [`WorkflowPortEntity`](./WorkflowPortEntity.md)
#### Returns
`undefined` \| [`WorkflowPortEntity`](./WorkflowPortEntity.md)
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
Entity.type
___
### uiState
`get` **uiState**(): [`WorkflowLineUIState`](../interfaces/WorkflowLineUIState.md)
线条的 UI 状态
#### Returns
[`WorkflowLineUIState`](../interfaces/WorkflowLineUIState.md)
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
Entity.version
___
### vertical
`get` **vertical**(): `boolean`
#### Returns
`boolean`
**`Deprecated`**
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
| `defaultProps?` | `EntityDataProps`\<`D`\> |
#### Returns
`D`
#### Inherited from
Entity.addData
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
Entity.addInitializeData
___
### canRemove
**canRemove**(`newLineInfo?`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newLineInfo?` | `Required`\<[`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md)\> |
#### Returns
`boolean`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
Entity.dispose
___
### fireRender
**fireRender**(): `void`
触发线条渲染
#### Returns
`void`
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
Entity.fromJSON
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`D`
#### Inherited from
Entity.getData
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
`EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
#### Inherited from
Entity.getDefaultDataRegistries
___
### getHoverDist
**getHoverDist**(`pos`): `number`
获取点和线最接近的距离
#### Parameters
| Name | Type |
| :------ | :------ |
| `pos` | `IPoint` |
#### Returns
`number`
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
Entity.getService
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
Entity.hasData
___
### is
**is**(`line`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) \| [`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md) |
#### Returns
`boolean`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`void`
#### Inherited from
Entity.removeData
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
Entity.reset
___
### setFromPort
**setFromPort**(`fromPort?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fromPort?` | [`WorkflowPortEntity`](./WorkflowPortEntity.md) |
#### Returns
`void`
___
### setToPort
**setToPort**(`toPort?`): `void`
设置线条的后置节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `toPort?` | [`WorkflowPortEntity`](./WorkflowPortEntity.md) |
#### Returns
`void`
___
### toJSON
**toJSON**(): [`WorkflowEdgeJSON`](../interfaces/WorkflowEdgeJSON.md)
#### Returns
[`WorkflowEdgeJSON`](../interfaces/WorkflowEdgeJSON.md)
#### Overrides
Entity.toJSON
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
| `props` | `EntityDataProps`\<`D`\> |
#### Returns
`void`
#### Inherited from
Entity.updateData
___
### updateUIState
**updateUIState**(`newState`): `void`
更新线条的 ui 状态
#### Parameters
| Name | Type |
| :------ | :------ |
| `newState` | `Partial`\<[`WorkflowLineUIState`](../interfaces/WorkflowLineUIState.md)\> |
#### Returns
`void`
___
### validate
**validate**(): `void`
#### Returns
`void`
___
### portInfoToLineId
`Static` **portInfoToLineId**(`info`): `string`
转成线条 id
#### Parameters
| Name | Type |
| :------ | :------ |
| `info` | [`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md) |
#### Returns
`string`
---
url: /auto-docs/free-layout-core/classes/WorkflowLineRenderData.md
---
# Class: WorkflowLineRenderData
## Hierarchy
- `EntityData`\<[`WorkflowLineRenderDataSchema`](../interfaces/WorkflowLineRenderDataSchema.md)\>
↳ **`WorkflowLineRenderData`**
## Table of contents
### Constructors
- [constructor](./WorkflowLineRenderData.md#constructor)
### Properties
- [entity](./WorkflowLineRenderData.md#entity)
- [onDataChange](./WorkflowLineRenderData.md#ondatachange)
- [onWillChange](./WorkflowLineRenderData.md#onwillchange)
- [opts](./WorkflowLineRenderData.md#opts)
- [toDispose](./WorkflowLineRenderData.md#todispose)
- [type](./WorkflowLineRenderData.md#type)
### Accessors
- [bounds](./WorkflowLineRenderData.md#bounds)
- [center](./WorkflowLineRenderData.md#center)
- [changeLocked](./WorkflowLineRenderData.md#changelocked)
- [data](./WorkflowLineRenderData.md#data)
- [disposed](./WorkflowLineRenderData.md#disposed)
- [onDispose](./WorkflowLineRenderData.md#ondispose)
- [path](./WorkflowLineRenderData.md#path)
- [position](./WorkflowLineRenderData.md#position)
- [renderVersion](./WorkflowLineRenderData.md#renderversion)
- [type](./WorkflowLineRenderData.md#type-1)
- [version](./WorkflowLineRenderData.md#version)
### Methods
- [calcDistance](./WorkflowLineRenderData.md#calcdistance)
- [checkChanged](./WorkflowLineRenderData.md#checkchanged)
- [dispose](./WorkflowLineRenderData.md#dispose)
- [fireChange](./WorkflowLineRenderData.md#firechange)
- [fireWillChange](./WorkflowLineRenderData.md#firewillchange)
- [fromJSON](./WorkflowLineRenderData.md#fromjson)
- [fullyUpdate](./WorkflowLineRenderData.md#fullyupdate)
- [getDefaultData](./WorkflowLineRenderData.md#getdefaultdata)
- [toJSON](./WorkflowLineRenderData.md#tojson)
- [update](./WorkflowLineRenderData.md#update)
## Constructors
### constructor
**new WorkflowLineRenderData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
#### Overrides
EntityData\<WorkflowLineRenderDataSchema\>.constructor
## Properties
### entity
**entity**: [`WorkflowLineEntity`](./WorkflowLineEntity.md)
#### Overrides
EntityData.entity
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityData`\<[`WorkflowLineRenderDataSchema`](../interfaces/WorkflowLineRenderDataSchema.md), {}\>\>
修改后触发
#### Inherited from
EntityData.onDataChange
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<`EntityData`\<[`WorkflowLineRenderDataSchema`](../interfaces/WorkflowLineRenderDataSchema.md), {}\>\>
修改前触发
#### Inherited from
EntityData.onWillChange
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
EntityData.opts
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
EntityData.toDispose
___
### type
`Static` **type**: `string` = `'WorkflowLineRenderData'`
#### Overrides
EntityData.type
## Accessors
### bounds
`get` **bounds**(): `Rectangle`
#### Returns
`Rectangle`
___
### center
`get` **center**(): [`LineCenterPoint`](../interfaces/LineCenterPoint.md)
获取 center 位置
#### Returns
[`LineCenterPoint`](../interfaces/LineCenterPoint.md)
___
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### path
`get` **path**(): `string`
#### Returns
`string`
___
### position
`get` **position**(): [`LinePosition`](../interfaces/LinePosition.md)
#### Returns
[`LinePosition`](../interfaces/LinePosition.md)
___
### renderVersion
`get` **renderVersion**(): `string`
#### Returns
`string`
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### calcDistance
**calcDistance**(`pos`): `number`
#### Parameters
| Name | Type |
| :------ | :------ |
| `pos` | `IPoint` |
#### Returns
`number`
___
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`WorkflowLineRenderDataSchema`](../interfaces/WorkflowLineRenderDataSchema.md) \| `Partial`\<[`WorkflowLineRenderDataSchema`](../interfaces/WorkflowLineRenderDataSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
EntityData.checkChanged
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.dispose
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireChange
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireWillChange
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
EntityData.fromJSON
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`WorkflowLineRenderDataSchema`](../interfaces/WorkflowLineRenderDataSchema.md) |
#### Returns
`void`
#### Inherited from
EntityData.fullyUpdate
___
### getDefaultData
**getDefaultData**(): [`WorkflowLineRenderDataSchema`](../interfaces/WorkflowLineRenderDataSchema.md)
#### Returns
[`WorkflowLineRenderDataSchema`](../interfaces/WorkflowLineRenderDataSchema.md)
#### Overrides
EntityData.getDefaultData
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
EntityData.toJSON
___
### update
**update**(): `void`
更新数据
WARNING: 这个方法,必须在 requestAnimationFrame / useLayoutEffect 中调用,否则会引起浏览器强制重排
#### Returns
`void`
#### Overrides
EntityData.update
---
url: /auto-docs/free-layout-core/classes/WorkflowLinesManager.md
---
# Class: WorkflowLinesManager
线条管理
## Table of contents
### Constructors
- [constructor](./WorkflowLinesManager.md#constructor)
### Properties
- [contributionFactories](./WorkflowLinesManager.md#contributionfactories)
- [hoverService](./WorkflowLinesManager.md#hoverservice)
- [isDrawing](./WorkflowLinesManager.md#isdrawing)
- [onAvailableLinesChange](./WorkflowLinesManager.md#onavailablelineschange)
- [onForceUpdate](./WorkflowLinesManager.md#onforceupdate)
- [options](./WorkflowLinesManager.md#options)
- [selectService](./WorkflowLinesManager.md#selectservice)
### Accessors
- [disposed](./WorkflowLinesManager.md#disposed)
- [lineColor](./WorkflowLinesManager.md#linecolor)
- [lineType](./WorkflowLinesManager.md#linetype)
### Methods
- [canAddLine](./WorkflowLinesManager.md#canaddline)
- [canRemove](./WorkflowLinesManager.md#canremove)
- [canReset](./WorkflowLinesManager.md#canreset)
- [createLine](./WorkflowLinesManager.md#createline)
- [dispose](./WorkflowLinesManager.md#dispose)
- [forceUpdate](./WorkflowLinesManager.md#forceupdate)
- [getAllAvailableLines](./WorkflowLinesManager.md#getallavailablelines)
- [getAllLines](./WorkflowLinesManager.md#getalllines)
- [getCloseInLineFromMousePos](./WorkflowLinesManager.md#getcloseinlinefrommousepos)
- [getLine](./WorkflowLinesManager.md#getline)
- [getLineById](./WorkflowLinesManager.md#getlinebyid)
- [getLineColor](./WorkflowLinesManager.md#getlinecolor)
- [getLinesByPortId](./WorkflowLinesManager.md#getlinesbyportid)
- [getNodeFromMousePos](./WorkflowLinesManager.md#getnodefrommousepos)
- [getPortById](./WorkflowLinesManager.md#getportbyid)
- [getPortFromMousePos](./WorkflowLinesManager.md#getportfrommousepos)
- [hasLine](./WorkflowLinesManager.md#hasline)
- [init](./WorkflowLinesManager.md#init)
- [isDisabledLine](./WorkflowLinesManager.md#isdisabledline)
- [isErrorLine](./WorkflowLinesManager.md#iserrorline)
- [isFlowingLine](./WorkflowLinesManager.md#isflowingline)
- [isHideArrowLine](./WorkflowLinesManager.md#ishidearrowline)
- [isReverseLine](./WorkflowLinesManager.md#isreverseline)
- [rebindLinePorts](./WorkflowLinesManager.md#rebindlineports)
- [registerContribution](./WorkflowLinesManager.md#registercontribution)
- [replaceLine](./WorkflowLinesManager.md#replaceline)
- [setLineClassName](./WorkflowLinesManager.md#setlineclassname)
- [setLineRenderType](./WorkflowLinesManager.md#setlinerendertype)
- [switchLineType](./WorkflowLinesManager.md#switchlinetype)
- [toJSON](./WorkflowLinesManager.md#tojson)
## Constructors
### constructor
**new WorkflowLinesManager**()
## Properties
### contributionFactories
`Readonly` **contributionFactories**: [`WorkflowLineRenderContributionFactory`](../types/WorkflowLineRenderContributionFactory.md)[] = `[]`
___
### hoverService
**hoverService**: [`WorkflowHoverService`](./WorkflowHoverService.md)
___
### isDrawing
**isDrawing**: `boolean` = `false`
是否在调整线条
___
### onAvailableLinesChange
`Readonly` **onAvailableLinesChange**: `Event`\<[`WorkflowContentChangeEvent`](../interfaces/WorkflowContentChangeEvent.md)\>
有效的线条被添加或者删除时候触发,未连上的线条不算
___
### onForceUpdate
`Readonly` **onForceUpdate**: `Event`\<`void`\>
强制渲染 lines
___
### options
`Readonly` **options**: [`WorkflowDocumentOptions`](../variables/WorkflowDocumentOptions-1.md)
___
### selectService
**selectService**: [`WorkflowSelectService`](./WorkflowSelectService.md)
## Accessors
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### lineColor
`get` **lineColor**(): [`LineColor`](../interfaces/LineColor.md)
#### Returns
[`LineColor`](../interfaces/LineColor.md)
___
### lineType
`get` **lineType**(): [`LineRenderType`](../types/LineRenderType.md)
#### Returns
[`LineRenderType`](../types/LineRenderType.md)
## Methods
### canAddLine
**canAddLine**(`fromPort`, `toPort`, `silent?`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fromPort` | [`WorkflowPortEntity`](./WorkflowPortEntity.md) |
| `toPort` | [`WorkflowPortEntity`](./WorkflowPortEntity.md) |
| `silent?` | `boolean` |
#### Returns
`boolean`
___
### canRemove
**canRemove**(`line`, `newLineInfo?`, `silent?`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
| `newLineInfo?` | `Required`\<`Omit`\<[`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md), ``"data"``\>\> |
| `silent?` | `boolean` |
#### Returns
`boolean`
___
### canReset
**canReset**(`oldLine`, `newLineInfo`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldLine` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
| `newLineInfo` | `Required`\<[`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md)\> |
#### Returns
`boolean`
___
### createLine
**createLine**(`options`): `undefined` \| [`WorkflowLineEntity`](./WorkflowLineEntity.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `options` | \{ `drawingFrom?`: [`LinePoint`](../interfaces/LinePoint.md) ; `drawingTo?`: [`LinePoint`](../interfaces/LinePoint.md) ; `key?`: `string` } & [`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md) |
#### Returns
`undefined` \| [`WorkflowLineEntity`](./WorkflowLineEntity.md)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
___
### forceUpdate
**forceUpdate**(): `void`
#### Returns
`void`
___
### getAllAvailableLines
**getAllAvailableLines**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### getAllLines
**getAllLines**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### getCloseInLineFromMousePos
**getCloseInLineFromMousePos**(`mousePos`, `minDistance?`): `undefined` \| [`WorkflowLineEntity`](./WorkflowLineEntity.md)
获取线条中距离鼠标位置最近的线条和距离
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `mousePos` | `IPoint` | `undefined` | 鼠标位置 |
| `minDistance` | `number` | `LINE_HOVER_DISTANCE` | 最小检测距离 |
#### Returns
`undefined` \| [`WorkflowLineEntity`](./WorkflowLineEntity.md)
距离鼠标位置最近的线条 以及距离
___
### getLine
**getLine**(`portInfo`): `undefined` \| [`WorkflowLineEntity`](./WorkflowLineEntity.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `portInfo` | `Omit`\<[`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md), ``"data"``\> |
#### Returns
`undefined` \| [`WorkflowLineEntity`](./WorkflowLineEntity.md)
___
### getLineById
**getLineById**(`id`): `undefined` \| [`WorkflowLineEntity`](./WorkflowLineEntity.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| [`WorkflowLineEntity`](./WorkflowLineEntity.md)
___
### getLineColor
**getLineColor**(`line`): `undefined` \| `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
#### Returns
`undefined` \| `string`
___
### getLinesByPortId
**getLinesByPortId**(`portId`): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `portId` | `string` |
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### getNodeFromMousePos
**getNodeFromMousePos**(`pos`): `undefined` \| `FlowNodeEntity`
根据鼠标位置找到 node
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `pos` | `IPoint` | 鼠标位置 |
#### Returns
`undefined` \| `FlowNodeEntity`
___
### getPortById
**getPortById**(`portId`): `undefined` \| [`WorkflowPortEntity`](./WorkflowPortEntity.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `portId` | `string` |
#### Returns
`undefined` \| [`WorkflowPortEntity`](./WorkflowPortEntity.md)
___
### getPortFromMousePos
**getPortFromMousePos**(`pos`, `portType?`): `undefined` \| [`WorkflowPortEntity`](./WorkflowPortEntity.md)
根据鼠标位置找到 port
#### Parameters
| Name | Type |
| :------ | :------ |
| `pos` | `IPoint` |
| `portType?` | [`WorkflowPortType`](../types/WorkflowPortType.md) |
#### Returns
`undefined` \| [`WorkflowPortEntity`](./WorkflowPortEntity.md)
___
### hasLine
**hasLine**(`portInfo`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `portInfo` | `Omit`\<[`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md), ``"data"``\> |
#### Returns
`boolean`
___
### init
**init**(`doc`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `doc` | [`WorkflowDocument`](./WorkflowDocument.md) |
#### Returns
`void`
___
### isDisabledLine
**isDisabledLine**(`line`, `defaultValue?`): `boolean`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) | `undefined` |
| `defaultValue` | `boolean` | `false` |
#### Returns
`boolean`
___
### isErrorLine
**isErrorLine**(`fromPort?`, `toPort?`, `defaultValue?`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fromPort?` | [`WorkflowPortEntity`](./WorkflowPortEntity.md) |
| `toPort?` | [`WorkflowPortEntity`](./WorkflowPortEntity.md) |
| `defaultValue?` | `boolean` |
#### Returns
`boolean`
___
### isFlowingLine
**isFlowingLine**(`line`, `defaultValue?`): `boolean`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) | `undefined` |
| `defaultValue` | `boolean` | `false` |
#### Returns
`boolean`
___
### isHideArrowLine
**isHideArrowLine**(`line`, `defaultValue?`): `boolean`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) | `undefined` |
| `defaultValue` | `boolean` | `false` |
#### Returns
`boolean`
___
### isReverseLine
**isReverseLine**(`line`, `defaultValue?`): `boolean`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) | `undefined` |
| `defaultValue` | `boolean` | `false` |
#### Returns
`boolean`
___
### rebindLinePorts
**rebindLinePorts**(`line`, `prevInfo?`, `nextInfo?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
| `prevInfo?` | [`WorkflowLineInfo`](../interfaces/WorkflowLineInfo.md) |
| `nextInfo?` | [`WorkflowLineInfo`](../interfaces/WorkflowLineInfo.md) |
#### Returns
`void`
___
### registerContribution
**registerContribution**(`factory`): [`WorkflowLinesManager`](./WorkflowLinesManager.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `factory` | [`WorkflowLineRenderContributionFactory`](../types/WorkflowLineRenderContributionFactory.md) |
#### Returns
[`WorkflowLinesManager`](./WorkflowLinesManager.md)
___
### replaceLine
**replaceLine**(`oldPortInfo`, `newPortInfo`): [`WorkflowLineEntity`](./WorkflowLineEntity.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldPortInfo` | `Omit`\<[`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md), ``"data"``\> |
| `newPortInfo` | `Omit`\<[`WorkflowLinePortInfo`](../interfaces/WorkflowLinePortInfo.md), ``"data"``\> |
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)
___
### setLineClassName
**setLineClassName**(`line`): `undefined` \| `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
#### Returns
`undefined` \| `string`
___
### setLineRenderType
**setLineRenderType**(`line`): `undefined` \| [`LineRenderType`](../types/LineRenderType.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
#### Returns
`undefined` \| [`LineRenderType`](../types/LineRenderType.md)
___
### switchLineType
**switchLineType**(`newType?`): [`LineRenderType`](../types/LineRenderType.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `newType?` | [`LineRenderType`](../types/LineRenderType.md) |
#### Returns
[`LineRenderType`](../types/LineRenderType.md)
___
### toJSON
**toJSON**(): [`WorkflowEdgeJSON`](../interfaces/WorkflowEdgeJSON.md)[]
#### Returns
[`WorkflowEdgeJSON`](../interfaces/WorkflowEdgeJSON.md)[]
---
url: /auto-docs/free-layout-core/classes/WorkflowNodeLinesData.md
---
# Class: WorkflowNodeLinesData
节点的关联的线条
## Hierarchy
- `EntityData`\<[`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md)\>
↳ **`WorkflowNodeLinesData`**
## Table of contents
### Constructors
- [constructor](./WorkflowNodeLinesData.md#constructor)
### Properties
- [entity](./WorkflowNodeLinesData.md#entity)
- [onDataChange](./WorkflowNodeLinesData.md#ondatachange)
- [onWillChange](./WorkflowNodeLinesData.md#onwillchange)
- [opts](./WorkflowNodeLinesData.md#opts)
- [toDispose](./WorkflowNodeLinesData.md#todispose)
- [type](./WorkflowNodeLinesData.md#type)
### Accessors
- [allInputNodes](./WorkflowNodeLinesData.md#allinputnodes)
- [allLines](./WorkflowNodeLinesData.md#alllines)
- [allOutputNodes](./WorkflowNodeLinesData.md#alloutputnodes)
- [availableLines](./WorkflowNodeLinesData.md#availablelines)
- [changeLocked](./WorkflowNodeLinesData.md#changelocked)
- [data](./WorkflowNodeLinesData.md#data)
- [disposed](./WorkflowNodeLinesData.md#disposed)
- [inputLines](./WorkflowNodeLinesData.md#inputlines)
- [inputNodes](./WorkflowNodeLinesData.md#inputnodes)
- [onDispose](./WorkflowNodeLinesData.md#ondispose)
- [outputLines](./WorkflowNodeLinesData.md#outputlines)
- [outputNodes](./WorkflowNodeLinesData.md#outputnodes)
- [type](./WorkflowNodeLinesData.md#type-1)
- [version](./WorkflowNodeLinesData.md#version)
### Methods
- [addLine](./WorkflowNodeLinesData.md#addline)
- [checkChanged](./WorkflowNodeLinesData.md#checkchanged)
- [dispose](./WorkflowNodeLinesData.md#dispose)
- [fireChange](./WorkflowNodeLinesData.md#firechange)
- [fireWillChange](./WorkflowNodeLinesData.md#firewillchange)
- [fromJSON](./WorkflowNodeLinesData.md#fromjson)
- [fullyUpdate](./WorkflowNodeLinesData.md#fullyupdate)
- [getDefaultData](./WorkflowNodeLinesData.md#getdefaultdata)
- [removeLine](./WorkflowNodeLinesData.md#removeline)
- [toJSON](./WorkflowNodeLinesData.md#tojson)
- [update](./WorkflowNodeLinesData.md#update)
## Constructors
### constructor
**new WorkflowNodeLinesData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | `FlowNodeEntity` |
#### Overrides
EntityData\<WorkflowNodeLines\>.constructor
## Properties
### entity
**entity**: `FlowNodeEntity`
#### Overrides
EntityData.entity
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityData`\<[`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md), {}\>\>
修改后触发
#### Inherited from
EntityData.onDataChange
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<`EntityData`\<[`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md), {}\>\>
修改前触发
#### Inherited from
EntityData.onWillChange
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
EntityData.opts
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
EntityData.toDispose
___
### type
`Static` **type**: `string` = `'WorkflowNodeLinesData'`
#### Overrides
EntityData.type
## Accessors
### allInputNodes
`get` **allInputNodes**(): `FlowNodeEntity`[]
所有输入节点
#### Returns
`FlowNodeEntity`[]
___
### allLines
`get` **allLines**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### allOutputNodes
`get` **allOutputNodes**(): `FlowNodeEntity`[]
输入输出节点
#### Returns
`FlowNodeEntity`[]
___
### availableLines
`get` **availableLines**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### inputLines
`get` **inputLines**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
输入线条
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### inputNodes
`get` **inputNodes**(): `FlowNodeEntity`[]
输入节点
#### Returns
`FlowNodeEntity`[]
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### outputLines
`get` **outputLines**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
输出线条
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### outputNodes
`get` **outputNodes**(): `FlowNodeEntity`[]
输出节点
#### Returns
`FlowNodeEntity`[]
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### addLine
**addLine**(`line`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
#### Returns
`void`
___
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md) \| `Partial`\<[`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
EntityData.checkChanged
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.dispose
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireChange
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireWillChange
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
EntityData.fromJSON
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md) |
#### Returns
`void`
#### Inherited from
EntityData.fullyUpdate
___
### getDefaultData
**getDefaultData**(): [`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md)
#### Returns
[`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md)
#### Overrides
EntityData.getDefaultData
___
### removeLine
**removeLine**(`line`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](./WorkflowLineEntity.md) |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
EntityData.toJSON
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md) \| `Partial`\<[`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md)\> \| keyof [`WorkflowNodeLines`](../interfaces/WorkflowNodeLines.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
EntityData.update
---
url: /auto-docs/free-layout-core/classes/WorkflowNodePortsData.md
---
# Class: WorkflowNodePortsData
节点的点位信息
portsData 只监听点位的数目和类型,不监听点位的 position 变化
## Hierarchy
- `EntityData`
↳ **`WorkflowNodePortsData`**
## Table of contents
### Constructors
- [constructor](./WorkflowNodePortsData.md#constructor)
### Properties
- [entity](./WorkflowNodePortsData.md#entity)
- [onDataChange](./WorkflowNodePortsData.md#ondatachange)
- [onWillChange](./WorkflowNodePortsData.md#onwillchange)
- [opts](./WorkflowNodePortsData.md#opts)
- [toDispose](./WorkflowNodePortsData.md#todispose)
- [type](./WorkflowNodePortsData.md#type)
### Accessors
- [allPorts](./WorkflowNodePortsData.md#allports)
- [changeLocked](./WorkflowNodePortsData.md#changelocked)
- [data](./WorkflowNodePortsData.md#data)
- [disposed](./WorkflowNodePortsData.md#disposed)
- [inputPoints](./WorkflowNodePortsData.md#inputpoints)
- [inputPorts](./WorkflowNodePortsData.md#inputports)
- [onDispose](./WorkflowNodePortsData.md#ondispose)
- [outputPoints](./WorkflowNodePortsData.md#outputpoints)
- [outputPorts](./WorkflowNodePortsData.md#outputports)
- [type](./WorkflowNodePortsData.md#type-1)
- [version](./WorkflowNodePortsData.md#version)
### Methods
- [checkChanged](./WorkflowNodePortsData.md#checkchanged)
- [dispose](./WorkflowNodePortsData.md#dispose)
- [fireChange](./WorkflowNodePortsData.md#firechange)
- [fireWillChange](./WorkflowNodePortsData.md#firewillchange)
- [fromJSON](./WorkflowNodePortsData.md#fromjson)
- [fullyUpdate](./WorkflowNodePortsData.md#fullyupdate)
- [getDefaultData](./WorkflowNodePortsData.md#getdefaultdata)
- [getInputPoint](./WorkflowNodePortsData.md#getinputpoint)
- [getOutputPoint](./WorkflowNodePortsData.md#getoutputpoint)
- [getPortEntityByKey](./WorkflowNodePortsData.md#getportentitybykey)
- [toJSON](./WorkflowNodePortsData.md#tojson)
- [update](./WorkflowNodePortsData.md#update)
- [updateAllPorts](./WorkflowNodePortsData.md#updateallports)
- [updateDynamicPorts](./WorkflowNodePortsData.md#updatedynamicports)
- [updateStaticPorts](./WorkflowNodePortsData.md#updatestaticports)
## Constructors
### constructor
**new WorkflowNodePortsData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | `FlowNodeEntity` |
#### Overrides
EntityData.constructor
## Properties
### entity
`Readonly` **entity**: `FlowNodeEntity`
#### Overrides
EntityData.entity
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityData`\<`any`, {}\>\>
修改后触发
#### Inherited from
EntityData.onDataChange
___
### onWillChange
`Readonly` **onWillChange**: `Event`\<`EntityData`\<`any`, {}\>\>
修改前触发
#### Inherited from
EntityData.onWillChange
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
EntityData.opts
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
#### Inherited from
EntityData.toDispose
___
### type
`Static` `Readonly` **type**: ``"WorkflowNodePortsData"``
#### Overrides
EntityData.type
## Accessors
### allPorts
`get` **allPorts**(): [`WorkflowPortEntity`](./WorkflowPortEntity.md)[]
获取所有 port entities
#### Returns
[`WorkflowPortEntity`](./WorkflowPortEntity.md)[]
___
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### inputPoints
`get` **inputPoints**(): [`LinePoint`](../interfaces/LinePoint.md)[]
获取输入点位置
#### Returns
[`LinePoint`](../interfaces/LinePoint.md)[]
___
### inputPorts
`get` **inputPorts**(): [`WorkflowPortEntity`](./WorkflowPortEntity.md)[]
获取输入点位
#### Returns
[`WorkflowPortEntity`](./WorkflowPortEntity.md)[]
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
#### Inherited from
EntityData.onDispose
___
### outputPoints
`get` **outputPoints**(): [`LinePoint`](../interfaces/LinePoint.md)[]
获取输出点位置
#### Returns
[`LinePoint`](../interfaces/LinePoint.md)[]
___
### outputPorts
`get` **outputPorts**(): [`WorkflowPortEntity`](./WorkflowPortEntity.md)[]
获取输出点位
#### Returns
[`WorkflowPortEntity`](./WorkflowPortEntity.md)[]
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | `any` |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
EntityData.checkChanged
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.dispose
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireChange
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
EntityData.fireWillChange
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
EntityData.fromJSON
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `any` |
#### Returns
`void`
#### Inherited from
EntityData.fullyUpdate
___
### getDefaultData
**getDefaultData**(): `any`
#### Returns
`any`
#### Overrides
EntityData.getDefaultData
___
### getInputPoint
**getInputPoint**(`key?`): [`LinePoint`](../interfaces/LinePoint.md)
根据 key 获取 输入点位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `key?` | `string` \| `number` |
#### Returns
[`LinePoint`](../interfaces/LinePoint.md)
___
### getOutputPoint
**getOutputPoint**(`key?`): [`LinePoint`](../interfaces/LinePoint.md)
根据 key 获取输出点位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `key?` | `string` \| `number` |
#### Returns
[`LinePoint`](../interfaces/LinePoint.md)
___
### getPortEntityByKey
**getPortEntityByKey**(`portType`, `portKey?`): [`WorkflowPortEntity`](./WorkflowPortEntity.md)
根据 key 获取 port 实体
#### Parameters
| Name | Type |
| :------ | :------ |
| `portType` | [`WorkflowPortType`](../types/WorkflowPortType.md) |
| `portKey?` | `string` \| `number` |
#### Returns
[`WorkflowPortEntity`](./WorkflowPortEntity.md)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
EntityData.toJSON
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `any` |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
EntityData.update
___
### updateAllPorts
**updateAllPorts**(`ports?`): `void`
Update all ports data, includes static ports and dynamic ports
#### Parameters
| Name | Type |
| :------ | :------ |
| `ports?` | [`WorkflowPorts`](../types/WorkflowPorts.md) |
#### Returns
`void`
___
### updateDynamicPorts
**updateDynamicPorts**(): `void`
动态计算点位,通过 dom 的 data-port-key
#### Returns
`void`
___
### updateStaticPorts
**updateStaticPorts**(`ports`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `ports` | [`WorkflowPorts`](../types/WorkflowPorts.md) |
#### Returns
`void`
**`Deprecated`**
use `updateAllPorts` instead
---
url: /auto-docs/free-layout-core/classes/WorkflowOperationBaseServiceImpl.md
---
# Class: WorkflowOperationBaseServiceImpl
## Hierarchy
- `FlowOperationBaseServiceImpl`
↳ **`WorkflowOperationBaseServiceImpl`**
## Implements
- [`WorkflowOperationBaseService`](../variables/WorkflowOperationBaseService-1.md)
## Table of contents
### Constructors
- [constructor](./WorkflowOperationBaseServiceImpl.md#constructor)
### Properties
- [linesManager](./WorkflowOperationBaseServiceImpl.md#linesmanager)
- [onNodeAdd](./WorkflowOperationBaseServiceImpl.md#onnodeadd)
- [onNodeMove](./WorkflowOperationBaseServiceImpl.md#onnodemove)
- [onNodePostionUpdate](./WorkflowOperationBaseServiceImpl.md#onnodepostionupdate)
### Methods
- [addBlock](./WorkflowOperationBaseServiceImpl.md#addblock)
- [addFromNode](./WorkflowOperationBaseServiceImpl.md#addfromnode)
- [addNode](./WorkflowOperationBaseServiceImpl.md#addnode)
- [apply](./WorkflowOperationBaseServiceImpl.md#apply)
- [deleteNode](./WorkflowOperationBaseServiceImpl.md#deletenode)
- [deleteNodes](./WorkflowOperationBaseServiceImpl.md#deletenodes)
- [dispose](./WorkflowOperationBaseServiceImpl.md#dispose)
- [dragNodes](./WorkflowOperationBaseServiceImpl.md#dragnodes)
- [fromJSON](./WorkflowOperationBaseServiceImpl.md#fromjson)
- [moveNode](./WorkflowOperationBaseServiceImpl.md#movenode)
- [transact](./WorkflowOperationBaseServiceImpl.md#transact)
- [updateNodePosition](./WorkflowOperationBaseServiceImpl.md#updatenodeposition)
## Constructors
### constructor
**new WorkflowOperationBaseServiceImpl**()
#### Inherited from
FlowOperationBaseServiceImpl.constructor
## Properties
### linesManager
**linesManager**: [`WorkflowLinesManager`](./WorkflowLinesManager.md)
___
### onNodeAdd
`Readonly` **onNodeAdd**: `Event`\<`OnNodeAddEvent`\>
#### Implementation of
WorkflowOperationBaseService.onNodeAdd
#### Inherited from
FlowOperationBaseServiceImpl.onNodeAdd
___
### onNodeMove
`Readonly` **onNodeMove**: `Event`\<`OnNodeMoveEvent`\>
#### Implementation of
WorkflowOperationBaseService.onNodeMove
#### Inherited from
FlowOperationBaseServiceImpl.onNodeMove
___
### onNodePostionUpdate
`Readonly` **onNodePostionUpdate**: `Event`\<[`NodePostionUpdateEvent`](../interfaces/NodePostionUpdateEvent.md)\>
#### Implementation of
WorkflowOperationBaseService.onNodePostionUpdate
## Methods
### addBlock
**addBlock**(`target`, `blockJSON`, `config?`): `FlowNodeEntity`
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `FlowNodeEntityOrId` |
| `blockJSON` | `FlowNodeJSON` |
| `config?` | `AddBlockConfig` |
#### Returns
`FlowNodeEntity`
#### Implementation of
WorkflowOperationBaseService.addBlock
#### Inherited from
FlowOperationBaseServiceImpl.addBlock
___
### addFromNode
**addFromNode**(`fromNode`, `nodeJSON`): `FlowNodeEntity`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fromNode` | `FlowNodeEntityOrId` |
| `nodeJSON` | `FlowNodeJSON` |
#### Returns
`FlowNodeEntity`
#### Implementation of
WorkflowOperationBaseService.addFromNode
#### Inherited from
FlowOperationBaseServiceImpl.addFromNode
___
### addNode
**addNode**(`nodeJSON`, `config?`): `FlowNodeEntity`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeJSON` | `FlowNodeJSON` |
| `config?` | `AddNodeConfig` |
#### Returns
`FlowNodeEntity`
#### Implementation of
WorkflowOperationBaseService.addNode
#### Inherited from
FlowOperationBaseServiceImpl.addNode
___
### apply
**apply**(`operation`): `any`
执行操作
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `operation` | `FlowOperation` | 可序列化的操作 |
#### Returns
`any`
操作返回
#### Implementation of
WorkflowOperationBaseService.apply
#### Inherited from
FlowOperationBaseServiceImpl.apply
___
### deleteNode
**deleteNode**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntityOrId` |
#### Returns
`void`
#### Implementation of
WorkflowOperationBaseService.deleteNode
#### Inherited from
FlowOperationBaseServiceImpl.deleteNode
___
### deleteNodes
**deleteNodes**(`nodes`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | `FlowNodeEntityOrId`[] |
#### Returns
`void`
#### Implementation of
WorkflowOperationBaseService.deleteNodes
#### Inherited from
FlowOperationBaseServiceImpl.deleteNodes
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
WorkflowOperationBaseService.dispose
#### Inherited from
FlowOperationBaseServiceImpl.dispose
___
### dragNodes
**dragNodes**(`param0`): `any`
拖拽节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.dropNode` | `FlowNodeEntity` |
| `param0.nodes` | `FlowNodeEntity`[] |
#### Returns
`any`
#### Implementation of
WorkflowOperationBaseService.dragNodes
#### Inherited from
FlowOperationBaseServiceImpl.dragNodes
___
### fromJSON
**fromJSON**(`json`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `json` | [`WorkflowJSON`](../interfaces/WorkflowJSON.md) |
#### Returns
`void`
#### Implementation of
WorkflowOperationBaseService.fromJSON
___
### moveNode
**moveNode**(`node`, `config?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntityOrId` |
| `config?` | `MoveNodeConfig` |
#### Returns
`void`
#### Implementation of
WorkflowOperationBaseService.moveNode
#### Inherited from
FlowOperationBaseServiceImpl.moveNode
___
### transact
**transact**(`transaction`): `void`
事务执行
#### Parameters
| Name | Type |
| :------ | :------ |
| `transaction` | () => `void` |
#### Returns
`void`
#### Inherited from
FlowOperationBaseServiceImpl.transact
___
### updateNodePosition
**updateNodePosition**(`nodeOrId`, `position`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeOrId` | `FlowNodeEntityOrId` |
| `position` | `IPoint` |
#### Returns
`void`
#### Implementation of
WorkflowOperationBaseService.updateNodePosition
---
url: /auto-docs/free-layout-core/classes/WorkflowPortEntity.md
---
# Class: WorkflowPortEntity
Port 抽象的 Entity
## Hierarchy
- `Entity`\<[`WorkflowPortEntityOpts`](../interfaces/WorkflowPortEntityOpts.md)\>
↳ **`WorkflowPortEntity`**
## Table of contents
### Constructors
- [constructor](./WorkflowPortEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./WorkflowPortEntity.md#__opts_type__)
- [entityManager](./WorkflowPortEntity.md#entitymanager)
- [node](./WorkflowPortEntity.md#node)
- [onDataChange](./WorkflowPortEntity.md#ondatachange)
- [onEntityChange](./WorkflowPortEntity.md#onentitychange)
- [onErrorChanged](./WorkflowPortEntity.md#onerrorchanged)
- [portID](./WorkflowPortEntity.md#portid)
- [portType](./WorkflowPortEntity.md#porttype)
- [preDispose](./WorkflowPortEntity.md#predispose)
- [targetElement](./WorkflowPortEntity.md#targetelement)
- [toDispose](./WorkflowPortEntity.md#todispose)
- [type](./WorkflowPortEntity.md#type)
### Accessors
- [allLines](./WorkflowPortEntity.md#alllines)
- [availableLines](./WorkflowPortEntity.md#availablelines)
- [bounds](./WorkflowPortEntity.md#bounds)
- [context](./WorkflowPortEntity.md#context)
- [disabled](./WorkflowPortEntity.md#disabled)
- [disposed](./WorkflowPortEntity.md#disposed)
- [hasError](./WorkflowPortEntity.md#haserror)
- [id](./WorkflowPortEntity.md#id)
- [lines](./WorkflowPortEntity.md#lines)
- [location](./WorkflowPortEntity.md#location)
- [onDispose](./WorkflowPortEntity.md#ondispose)
- [point](./WorkflowPortEntity.md#point)
- [position](./WorkflowPortEntity.md#position)
- [relativePosition](./WorkflowPortEntity.md#relativeposition)
- [savedInManager](./WorkflowPortEntity.md#savedinmanager)
- [type](./WorkflowPortEntity.md#type-1)
- [version](./WorkflowPortEntity.md#version)
### Methods
- [addData](./WorkflowPortEntity.md#adddata)
- [addInitializeData](./WorkflowPortEntity.md#addinitializedata)
- [dispose](./WorkflowPortEntity.md#dispose)
- [fromJSON](./WorkflowPortEntity.md#fromjson)
- [getData](./WorkflowPortEntity.md#getdata)
- [getDefaultDataRegistries](./WorkflowPortEntity.md#getdefaultdataregistries)
- [getService](./WorkflowPortEntity.md#getservice)
- [hasData](./WorkflowPortEntity.md#hasdata)
- [isErrorPort](./WorkflowPortEntity.md#iserrorport)
- [isHovered](./WorkflowPortEntity.md#ishovered)
- [removeData](./WorkflowPortEntity.md#removedata)
- [reset](./WorkflowPortEntity.md#reset)
- [toJSON](./WorkflowPortEntity.md#tojson)
- [update](./WorkflowPortEntity.md#update)
- [updateData](./WorkflowPortEntity.md#updatedata)
- [updateTargetElement](./WorkflowPortEntity.md#updatetargetelement)
- [validate](./WorkflowPortEntity.md#validate)
- [getPortEntityId](./WorkflowPortEntity.md#getportentityid)
## Constructors
### constructor
**new WorkflowPortEntity**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | [`WorkflowPortEntityOpts`](../interfaces/WorkflowPortEntityOpts.md) |
#### Overrides
Entity\<WorkflowPortEntityOpts\>.constructor
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`WorkflowPortEntityOpts`](../interfaces/WorkflowPortEntityOpts.md)
#### Inherited from
Entity.\_\_opts\_type\_\_
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
全局的entity管理器
#### Inherited from
Entity.entityManager
___
### node
`Readonly` **node**: `FlowNodeEntity`
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityDataChangedEvent`\<`Entity`\<`EntityOpts`\>\>\>
数据更改事件
#### Inherited from
Entity.onDataChange
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<`Entity`\<`EntityOpts`\>\>
修改会触发
#### Inherited from
Entity.onEntityChange
___
### onErrorChanged
**onErrorChanged**: `Event`\<`void`\>
___
### portID
`Readonly` **portID**: `string` \| `number` = `''`
___
### portType
`Readonly` **portType**: [`WorkflowPortType`](../types/WorkflowPortType.md)
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
Entity.preDispose
___
### targetElement
`Optional` **targetElement**: `HTMLElement`
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
Entity.toDispose
___
### type
`Static` **type**: `string` = `'WorkflowPortEntity'`
#### Overrides
Entity.type
## Accessors
### allLines
`get` **allLines**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
当前点位上连接的线条(包含 isDrawing === true 的线条)
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### availableLines
`get` **availableLines**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
当前有效的线条,不包含正在画的线条和隐藏的线条(这个出现在线条重连会先把原来的线条隐藏)
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
___
### bounds
`get` **bounds**(): `Rectangle`
端口热区
#### Returns
`Rectangle`
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
Entity.context
___
### disabled
`get` **disabled**(): `boolean`
是否被禁用
#### Returns
`boolean`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
Entity.disposed
___
### hasError
`get` **hasError**(): `boolean`
#### Returns
`boolean`
`set` **hasError**(`hasError`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `hasError` | `boolean` |
#### Returns
`void`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
Entity.id
___
### lines
`get` **lines**(): [`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
当前点位上连接的线条
#### Returns
[`WorkflowLineEntity`](./WorkflowLineEntity.md)[]
**`Deprecated`**
use `availableLines` instead
___
### location
`get` **location**(): [`LinePointLocation`](../types/LinePointLocation.md)
#### Returns
[`LinePointLocation`](../types/LinePointLocation.md)
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
Entity.onDispose
___
### point
`get` **point**(): [`LinePoint`](../interfaces/LinePoint.md)
#### Returns
[`LinePoint`](../interfaces/LinePoint.md)
___
### position
`get` **position**(): `undefined` \| [`LinePointLocation`](../types/LinePointLocation.md)
#### Returns
`undefined` \| [`LinePointLocation`](../types/LinePointLocation.md)
___
### relativePosition
`get` **relativePosition**(): `IPoint`
相对节点左上角的位置
#### Returns
`IPoint`
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
Entity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
Entity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
Entity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
| `defaultProps?` | `EntityDataProps`\<`D`\> |
#### Returns
`D`
#### Inherited from
Entity.addData
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
Entity.addInitializeData
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Overrides
Entity.dispose
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
Entity.fromJSON
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`D`
#### Inherited from
Entity.getData
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
`EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
#### Inherited from
Entity.getDefaultDataRegistries
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
Entity.getService
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
Entity.hasData
___
### isErrorPort
**isErrorPort**(): `boolean`
#### Returns
`boolean`
___
### isHovered
**isHovered**(`x`, `y`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `x` | `number` |
| `y` | `number` |
#### Returns
`boolean`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`void`
#### Inherited from
Entity.removeData
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
Entity.reset
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
Entity.toJSON
___
### update
**update**(`data`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | [`WorkflowPort`](../interfaces/WorkflowPort.md) |
#### Returns
`void`
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
| `props` | `EntityDataProps`\<`D`\> |
#### Returns
`void`
#### Inherited from
Entity.updateData
___
### updateTargetElement
**updateTargetElement**(`el?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `el?` | `HTMLElement` |
#### Returns
`void`
___
### validate
**validate**(): `void`
#### Returns
`void`
___
### getPortEntityId
`Static` **getPortEntityId**(`node`, `portType`, `portID?`): `string`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `node` | `FlowNodeEntity` | `undefined` |
| `portType` | [`WorkflowPortType`](../types/WorkflowPortType.md) | `undefined` |
| `portID` | `string` \| `number` | `''` |
#### Returns
`string`
---
url: /auto-docs/free-layout-core/classes/WorkflowResetLayoutService.md
---
# Class: WorkflowResetLayoutService
重置布局服务
## Table of contents
### Constructors
- [constructor](./WorkflowResetLayoutService.md#constructor)
### Properties
- [onResetLayout](./WorkflowResetLayoutService.md#onresetlayout)
### Methods
- [dispose](./WorkflowResetLayoutService.md#dispose)
- [fireResetLayout](./WorkflowResetLayoutService.md#fireresetlayout)
- [init](./WorkflowResetLayoutService.md#init)
- [layoutToPositions](./WorkflowResetLayoutService.md#layouttopositions)
## Constructors
### constructor
**new WorkflowResetLayoutService**()
## Properties
### onResetLayout
`Readonly` **onResetLayout**: `Event`\<\{ `nodeIds`: `string`[] ; `oldPositionMap`: [`PositionMap`](../types/PositionMap.md) ; `positionMap`: [`PositionMap`](../types/PositionMap.md) }\>
reset layout事件
## Methods
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
___
### fireResetLayout
**fireResetLayout**(`nodeIds`, `positionMap`, `oldPositionMap`): `void`
触发重置布局
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `nodeIds` | `string`[] | 节点id |
| `positionMap` | [`PositionMap`](../types/PositionMap.md) | 新布局数据 |
| `oldPositionMap` | [`PositionMap`](../types/PositionMap.md) | 老布局数据 |
#### Returns
`void`
___
### init
**init**(): `void`
初始化
#### Returns
`void`
___
### layoutToPositions
**layoutToPositions**(`nodeIds`, `positionMap`): `Promise`\<`Record`\<`string`, `IPoint`\>\>
根据数据重新布局
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeIds` | `string`[] |
| `positionMap` | [`PositionMap`](../types/PositionMap.md) |
#### Returns
`Promise`\<`Record`\<`string`, `IPoint`\>\>
---
url: /auto-docs/free-layout-core/classes/WorkflowSelectService.md
---
# Class: WorkflowSelectService
## Table of contents
### Constructors
- [constructor](./WorkflowSelectService.md#constructor)
### Accessors
- [activatedNode](./WorkflowSelectService.md#activatednode)
- [onSelectionChanged](./WorkflowSelectService.md#onselectionchanged)
- [selectedNodes](./WorkflowSelectService.md#selectednodes)
- [selection](./WorkflowSelectService.md#selection)
### Methods
- [clear](./WorkflowSelectService.md#clear)
- [isActivated](./WorkflowSelectService.md#isactivated)
- [isSelected](./WorkflowSelectService.md#isselected)
- [select](./WorkflowSelectService.md#select)
- [selectNode](./WorkflowSelectService.md#selectnode)
- [selectNodeAndFocus](./WorkflowSelectService.md#selectnodeandfocus)
- [selectNodeAndScrollToView](./WorkflowSelectService.md#selectnodeandscrolltoview)
- [toggleSelect](./WorkflowSelectService.md#toggleselect)
## Constructors
### constructor
**new WorkflowSelectService**()
## Accessors
### activatedNode
`get` **activatedNode**(): `undefined` \| `FlowNodeEntity`
当前激活的节点只能有一个
#### Returns
`undefined` \| `FlowNodeEntity`
___
### onSelectionChanged
`get` **onSelectionChanged**(): `Event`\<`void`\>
#### Returns
`Event`\<`void`\>
___
### selectedNodes
`get` **selectedNodes**(): `FlowNodeEntity`[]
选中的节点
#### Returns
`FlowNodeEntity`[]
___
### selection
`get` **selection**(): `Entity`\<`EntityOpts`\>[]
#### Returns
`Entity`\<`EntityOpts`\>[]
`set` **selection**(`entities`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entities` | `Entity`\<`EntityOpts`\>[] |
#### Returns
`void`
## Methods
### clear
**clear**(): `void`
#### Returns
`void`
___
### isActivated
**isActivated**(`id`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`boolean`
___
### isSelected
**isSelected**(`id`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`boolean`
___
### select
**select**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`WorkflowEntityHoverable`](../types/WorkflowEntityHoverable.md) |
#### Returns
`void`
___
### selectNode
**selectNode**(`node`): `void`
选中
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
#### Returns
`void`
___
### selectNodeAndFocus
**selectNodeAndFocus**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
#### Returns
`void`
___
### selectNodeAndScrollToView
**selectNodeAndScrollToView**(`node`, `fitView?`): `Promise`\<`void`\>
选中并滚动到节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `fitView?` | `boolean` |
#### Returns
`Promise`\<`void`\>
___
### toggleSelect
**toggleSelect**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
#### Returns
`void`
---
url: /auto-docs/free-layout-core/enums/EditorCursorState.md
---
# Enumeration: EditorCursorState
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Table of contents
### Enumeration Members
- [GRAB](./EditorCursorState.md#grab)
- [SELECT](./EditorCursorState.md#select)
## Enumeration Members
### GRAB
**GRAB** = ``"GRAB"``
___
### SELECT
**SELECT** = ``"SELECT"``
---
url: /auto-docs/free-layout-core/enums/InteractiveType.md
---
# Enumeration: InteractiveType
## Table of contents
### Enumeration Members
- [MOUSE](./InteractiveType.md#mouse)
- [PAD](./InteractiveType.md#pad)
## Enumeration Members
### MOUSE
**MOUSE** = ``"MOUSE"``
鼠标优先交互模式
___
### PAD
**PAD** = ``"PAD"``
触控板优先交互模式
---
url: /auto-docs/free-layout-core/enums/LineColors.md
---
# Enumeration: LineColors
## Table of contents
### Enumeration Members
- [DEFUALT](./LineColors.md#defualt)
- [DRAWING](./LineColors.md#drawing)
- [ERROR](./LineColors.md#error)
- [FLOWING](./LineColors.md#flowing)
- [HIDDEN](./LineColors.md#hidden)
- [HOVER](./LineColors.md#hover)
- [SELECTED](./LineColors.md#selected)
## Enumeration Members
### DEFUALT
**DEFUALT** = ``"var(--g-workflow-line-color-default,#4d53e8)"``
___
### DRAWING
**DRAWING** = ``"var(--g-workflow-line-color-drawing, #5DD6E3)"``
___
### ERROR
**ERROR** = ``"var(--g-workflow-line-color-error,red)"``
___
### FLOWING
**FLOWING** = ``"var(--g-workflow-line-color-flowing,#4d53e8)"``
___
### HIDDEN
**HIDDEN** = ``"var(--g-workflow-line-color-hidden,transparent)"``
___
### HOVER
**HOVER** = ``"var(--g-workflow-line-color-hover,#37d0ff)"``
___
### SELECTED
**SELECTED** = ``"var(--g-workflow-line-color-selected,#37d0ff)"``
---
url: /auto-docs/free-layout-core/enums/LineType.md
---
# Enumeration: LineType
## Table of contents
### Enumeration Members
- [BEZIER](./LineType.md#bezier)
- [LINE\_CHART](./LineType.md#line_chart)
- [STRAIGHT](./LineType.md#straight)
## Enumeration Members
### BEZIER
**BEZIER** = ``0``
___
### LINE\_CHART
**LINE\_CHART** = ``1``
___
### STRAIGHT
**STRAIGHT** = ``2``
---
url: /auto-docs/free-layout-core/enums/WorkflowCommands.md
---
# Enumeration: WorkflowCommands
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Table of contents
### Enumeration Members
- [COPY\_NODES](./WorkflowCommands.md#copy_nodes)
- [DELETE\_NODES](./WorkflowCommands.md#delete_nodes)
- [PASTE\_NODES](./WorkflowCommands.md#paste_nodes)
- [REDO](./WorkflowCommands.md#redo)
- [UNDO](./WorkflowCommands.md#undo)
- [ZOOM\_IN](./WorkflowCommands.md#zoom_in)
- [ZOOM\_OUT](./WorkflowCommands.md#zoom_out)
## Enumeration Members
### COPY\_NODES
**COPY\_NODES** = ``"COPY_NODES"``
___
### DELETE\_NODES
**DELETE\_NODES** = ``"DELETE_NODES"``
___
### PASTE\_NODES
**PASTE\_NODES** = ``"PASTE_NODES"``
___
### REDO
**REDO** = ``"REDO"``
___
### UNDO
**UNDO** = ``"UNDO"``
___
### ZOOM\_IN
**ZOOM\_IN** = ``"ZOOM_IN"``
___
### ZOOM\_OUT
**ZOOM\_OUT** = ``"ZOOM_OUT"``
---
url: /auto-docs/free-layout-core/enums/WorkflowContentChangeType.md
---
# Enumeration: WorkflowContentChangeType
## Table of contents
### Enumeration Members
- [ADD\_LINE](./WorkflowContentChangeType.md#add_line)
- [ADD\_NODE](./WorkflowContentChangeType.md#add_node)
- [DELETE\_LINE](./WorkflowContentChangeType.md#delete_line)
- [DELETE\_NODE](./WorkflowContentChangeType.md#delete_node)
- [LINE\_DATA\_CHANGE](./WorkflowContentChangeType.md#line_data_change)
- [META\_CHANGE](./WorkflowContentChangeType.md#meta_change)
- [MOVE\_NODE](./WorkflowContentChangeType.md#move_node)
- [NODE\_DATA\_CHANGE](./WorkflowContentChangeType.md#node_data_change)
## Enumeration Members
### ADD\_LINE
**ADD\_LINE** = ``"ADD_LINE"``
添加线条
___
### ADD\_NODE
**ADD\_NODE** = ``"ADD_NODE"``
添加节点
___
### DELETE\_LINE
**DELETE\_LINE** = ``"DELETE_LINE"``
删除线条
___
### DELETE\_NODE
**DELETE\_NODE** = ``"DELETE_NODE"``
删除节点
___
### LINE\_DATA\_CHANGE
**LINE\_DATA\_CHANGE** = ``"LINE_DATA_CHANGE"``
线条数据修改
___
### META\_CHANGE
**META\_CHANGE** = ``"META_CHANGE"``
节点Meta信息变更
___
### MOVE\_NODE
**MOVE\_NODE** = ``"MOVE_NODE"``
移动节点
___
### NODE\_DATA\_CHANGE
**NODE\_DATA\_CHANGE** = ``"NODE_DATA_CHANGE"``
节点数据更新 (表单引擎数据 或者 extInfo 数据)
---
url: /auto-docs/free-layout-core/functions/bindConfigEntity.md
---
# Function: bindConfigEntity
**bindConfigEntity**(`bind`, `entityRegistry`): `void`
让 entity 可以注入到类中
#### Parameters
| Name | Type |
| :------ | :------ |
| `bind` | `Bind` |
| `entityRegistry` | `EntityRegistry`\<`Entity`\<`EntityOpts`\>\> |
#### Returns
`void`
**`Example`**
```
class SomeClass {
@inject(PlaygroundConfigEntity) playgroundConfig: PlaygroundConfigEntity
}
```
---
url: /auto-docs/free-layout-core/functions/buildGroupJSON.md
---
# Function: buildGroupJSON
**buildGroupJSON**(`json`): [`WorkflowJSON`](../interfaces/WorkflowJSON.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `json` | [`WorkflowJSON`](../interfaces/WorkflowJSON.md) |
#### Returns
[`WorkflowJSON`](../interfaces/WorkflowJSON.md)
---
url: /auto-docs/free-layout-core/functions/compose.md
---
# Function: compose
**compose**\<`D`\>(`...fns`): `Func`\<`D`\>
#### Type parameters
| Name |
| :------ |
| `D` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `...fns` | `Func`\<`D`\>[] |
#### Returns
`Func`\<`D`\>
---
url: /auto-docs/free-layout-core/functions/composeAsync.md
---
# Function: composeAsync
**composeAsync**\<`D`\>(`...fns`): `FuncPromise`\<`D`\>
#### Type parameters
| Name |
| :------ |
| `D` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `...fns` | `FuncMaybePromise`\<`D`\>[] |
#### Returns
`FuncPromise`\<`D`\>
---
url: /auto-docs/free-layout-core/functions/delay.md
---
# Function: delay
**delay**(`ms`, `token?`): `Promise`\<`void`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `ms` | `number` |
| `token?` | `Readonly`\<`CancellationToken`\> |
#### Returns
`Promise`\<`void`\>
resolves after a specified number of milliseconds
**`Throws`**
cancelled if a given token is cancelled before a specified number of milliseconds
---
url: /auto-docs/free-layout-core/functions/domReactToBounds.md
---
# Function: domReactToBounds
**domReactToBounds**(`react`): `Rectangle`
#### Parameters
| Name | Type |
| :------ | :------ |
| `react` | `DOMRect` |
#### Returns
`Rectangle`
---
url: /auto-docs/free-layout-core/functions/fitView.md
---
# Function: fitView
**fitView**(`doc`, `playgroundConfig`, `easing?`): `Promise`\<`void`\>
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `doc` | [`WorkflowDocument`](../classes/WorkflowDocument.md) | `undefined` |
| `playgroundConfig` | `PlaygroundConfigEntity` | `undefined` |
| `easing` | `boolean` | `true` |
#### Returns
`Promise`\<`void`\>
---
url: /auto-docs/free-layout-core/functions/getAntiOverlapPosition.md
---
# Function: getAntiOverlapPosition
**getAntiOverlapPosition**(`doc`, `position`, `containerNode?`): `IPoint`
获取没有碰撞的位置
距离很小时,xy 各偏移 30
#### Parameters
| Name | Type |
| :------ | :------ |
| `doc` | [`WorkflowDocument`](../classes/WorkflowDocument.md) |
| `position` | `IPoint` |
| `containerNode?` | `FlowNodeEntity` |
#### Returns
`IPoint`
---
url: /auto-docs/free-layout-core/functions/getLineCenter.md
---
# Function: getLineCenter
**getLineCenter**(`from`, `to`, `bbox`, `linePadding`): [`LineCenterPoint`](../interfaces/LineCenterPoint.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `from` | `IPoint` |
| `to` | `IPoint` |
| `bbox` | `Rectangle` |
| `linePadding` | `number` |
#### Returns
[`LineCenterPoint`](../interfaces/LineCenterPoint.md)
---
url: /auto-docs/free-layout-core/functions/getPortEntityId.md
---
# Function: getPortEntityId
**getPortEntityId**(`node`, `portType`, `portID?`): `string`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `node` | `FlowNodeEntity` | `undefined` |
| `portType` | [`WorkflowPortType`](../types/WorkflowPortType.md) | `undefined` |
| `portID` | `string` \| `number` | `''` |
#### Returns
`string`
---
url: /auto-docs/free-layout-core/functions/getPortEntityIdByNodeId.md
---
# Function: getPortEntityIdByNodeId
**getPortEntityIdByNodeId**(`nodeId`, `portType`, `portID?`): `string`
#### Parameters
| Name | Type | Default value |
| :------ | :------ | :------ |
| `nodeId` | `string` | `undefined` |
| `portType` | [`WorkflowPortType`](../types/WorkflowPortType.md) | `undefined` |
| `portID` | `string` \| `number` | `''` |
#### Returns
`string`
---
url: /auto-docs/free-layout-core/functions/nanoid.md
---
# Function: nanoid
**nanoid**(`n?`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `n?` | `number` |
#### Returns
`string`
---
url: /auto-docs/free-layout-core/functions/useConfigEntity.md
---
# Function: useConfigEntity
**useConfigEntity**\<`T`\>(`entityRegistry`, `listenChange?`): `T`
获取 config entity
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `ConfigEntity`\<`ConfigEntityProps`, `EntityOpts`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | `EntityRegistry`\<`T`\> |
| `listenChange?` | `boolean` |
#### Returns
`T`
---
url: /auto-docs/free-layout-core/functions/useCurrentDomNode.md
---
# Function: useCurrentDomNode
**useCurrentDomNode**(): `HTMLDivElement`
获取当前渲染的 dom 节点
#### Returns
`HTMLDivElement`
---
url: /auto-docs/free-layout-core/functions/useCurrentEntity.md
---
# Function: useCurrentEntity
**useCurrentEntity**(): [`WorkflowNodeEntity`](../variables/WorkflowNodeEntity-1.md)
获取当前节点
#### Returns
[`WorkflowNodeEntity`](../variables/WorkflowNodeEntity-1.md)
---
url: /auto-docs/free-layout-core/functions/useEntities.md
---
# Function: useEntities
**useEntities**\<`T`\>(`entityRegistry`): `T`[]
获取 entities 并监听变化
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Entity`\<`EntityOpts`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | `EntityRegistry`\<`Entity`\<`EntityOpts`\>\> |
#### Returns
`T`[]
**`Deprecated`**
---
url: /auto-docs/free-layout-core/functions/useEntityDataFromContext.md
---
# Function: useEntityDataFromContext
**useEntityDataFromContext**\<`T`\>(`dataRegistry`, `listenChange?`): `T`
从上下 PlaygroundEntityContext 获取 entity data 并监听变化 (默认不监听)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `EntityData`\<`any`, {}, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `dataRegistry` | `EntityDataRegistry`\<`any`\> |
| `listenChange?` | `boolean` |
#### Returns
`T`
---
url: /auto-docs/free-layout-core/functions/useEntityFromContext.md
---
# Function: useEntityFromContext
**useEntityFromContext**\<`T`\>(`listenChange?`): `T`
从上下 PlaygroundEntityContext 获取 entity 并监听变化(默认不监听)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Entity`\<`EntityOpts`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `listenChange?` | `boolean` |
#### Returns
`T`
---
url: /auto-docs/free-layout-core/functions/useListenEvents.md
---
# Function: useListenEvents
**useListenEvents**(`...events`): `void`
监听 event 事件变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `...events` | `Event`\<`any`\>[] |
#### Returns
`void`
---
url: /auto-docs/free-layout-core/functions/useNodeRender.md
---
# Function: useNodeRender
**useNodeRender**(`nodeFromProps?`): [`NodeRenderReturnType`](../interfaces/NodeRenderReturnType.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeFromProps?` | `FlowNodeEntity` |
#### Returns
[`NodeRenderReturnType`](../interfaces/NodeRenderReturnType.md)
---
url: /auto-docs/free-layout-core/functions/usePlayground.md
---
# Function: usePlayground
**usePlayground**(): `Playground`
获取 playground
#### Returns
`Playground`
---
url: /auto-docs/free-layout-core/functions/usePlaygroundContainer.md
---
# Function: usePlaygroundContainer
**usePlaygroundContainer**(): `interfaces.Container`
获取 playground inversify container
#### Returns
`interfaces.Container`
---
url: /auto-docs/free-layout-core/functions/usePlaygroundContext.md
---
# Function: usePlaygroundContext
**usePlaygroundContext**\<`T`\>(): `T`
获取 playground context 数据
#### Type parameters
| Name |
| :------ |
| `T` |
#### Returns
`T`
---
url: /auto-docs/free-layout-core/functions/usePlaygroundReadonlyState.md
---
# Function: usePlaygroundReadonlyState
**usePlaygroundReadonlyState**(`listenChange?`): `boolean`
获取 readonly 状态
#### Parameters
| Name | Type |
| :------ | :------ |
| `listenChange?` | `boolean` |
#### Returns
`boolean`
---
url: /auto-docs/free-layout-core/functions/useRefresh.md
---
# Function: useRefresh
**useRefresh**(`defaultValue?`): (`v?`: `any`) => `void`
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
#### Parameters
| Name | Type |
| :------ | :------ |
| `defaultValue?` | `any` |
#### Returns
`fn`
(`v?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `v?` | `any` |
##### Returns
`void`
---
url: /auto-docs/free-layout-core/functions/useService.md
---
# Function: useService
**useService**\<`T`\>(`identifier`): `T`
获取画布的 IOC 模块
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
---
url: /auto-docs/free-layout-core/functions/useWorkflowDocument.md
---
# Function: useWorkflowDocument
**useWorkflowDocument**(): [`WorkflowDocument`](../classes/WorkflowDocument.md)
#### Returns
[`WorkflowDocument`](../classes/WorkflowDocument.md)
---
url: /auto-docs/free-layout-core/interfaces/HoverPosition.md
---
# Interface: HoverPosition
## Table of contents
### Properties
- [position](./HoverPosition.md#position)
- [target](./HoverPosition.md#target)
## Properties
### position
**position**: `PositionSchema`
___
### target
`Optional` **target**: `HTMLElement`
---
url: /auto-docs/free-layout-core/interfaces/LineCenterPoint.md
---
# Interface: LineCenterPoint
## Table of contents
### Properties
- [labelX](./LineCenterPoint.md#labelx)
- [labelY](./LineCenterPoint.md#labely)
- [x](./LineCenterPoint.md#x)
- [y](./LineCenterPoint.md#y)
## Properties
### labelX
**labelX**: `number`
___
### labelY
**labelY**: `number`
___
### x
**x**: `number`
___
### y
**y**: `number`
---
url: /auto-docs/free-layout-core/interfaces/LineColor.md
---
# Interface: LineColor
## Table of contents
### Properties
- [default](./LineColor.md#default)
- [drawing](./LineColor.md#drawing)
- [error](./LineColor.md#error)
- [flowing](./LineColor.md#flowing)
- [hidden](./LineColor.md#hidden)
- [hovered](./LineColor.md#hovered)
- [selected](./LineColor.md#selected)
## Properties
### default
**default**: `string`
___
### drawing
**drawing**: `string`
___
### error
**error**: `string`
___
### flowing
**flowing**: `string`
___
### hidden
**hidden**: `string`
___
### hovered
**hovered**: `string`
___
### selected
**selected**: `string`
---
url: /auto-docs/free-layout-core/interfaces/LineEventProps.md
---
# Interface: LineEventProps
## Table of contents
### Properties
- [event](./LineEventProps.md#event)
- [onDragNodeId](./LineEventProps.md#ondragnodeid)
- [type](./LineEventProps.md#type)
## Properties
### event
`Optional` **event**: `MouseEvent`
___
### onDragNodeId
`Optional` **onDragNodeId**: `string`
___
### type
**type**: ``"onDrag"`` \| ``"onDragEnd"``
---
url: /auto-docs/free-layout-core/interfaces/LinePoint.md
---
# Interface: LinePoint
## Table of contents
### Properties
- [location](./LinePoint.md#location)
- [x](./LinePoint.md#x)
- [y](./LinePoint.md#y)
## Properties
### location
**location**: [`LinePointLocation`](../types/LinePointLocation.md)
___
### x
**x**: `number`
___
### y
**y**: `number`
---
url: /auto-docs/free-layout-core/interfaces/LinePosition.md
---
# Interface: LinePosition
## Table of contents
### Properties
- [from](./LinePosition.md#from)
- [to](./LinePosition.md#to)
## Properties
### from
**from**: [`LinePoint`](./LinePoint.md)
___
### to
**to**: [`LinePoint`](./LinePoint.md)
---
url: /auto-docs/free-layout-core/interfaces/NodePostionUpdateEvent.md
---
# Interface: NodePostionUpdateEvent
## Table of contents
### Properties
- [newPosition](./NodePostionUpdateEvent.md#newposition)
- [node](./NodePostionUpdateEvent.md#node)
- [oldPosition](./NodePostionUpdateEvent.md#oldposition)
## Properties
### newPosition
**newPosition**: `IPoint`
___
### node
**node**: `FlowNodeEntity`
___
### oldPosition
**oldPosition**: `IPoint`
---
url: /auto-docs/free-layout-core/interfaces/NodeRenderReturnType.md
---
# Interface: NodeRenderReturnType
## Table of contents
### Properties
- [activated](./NodeRenderReturnType.md#activated)
- [data](./NodeRenderReturnType.md#data)
- [deleteNode](./NodeRenderReturnType.md#deletenode)
- [expanded](./NodeRenderReturnType.md#expanded)
- [form](./NodeRenderReturnType.md#form)
- [id](./NodeRenderReturnType.md#id)
- [linkingNodeId](./NodeRenderReturnType.md#linkingnodeid)
- [node](./NodeRenderReturnType.md#node)
- [nodeRef](./NodeRenderReturnType.md#noderef)
- [onBlur](./NodeRenderReturnType.md#onblur)
- [onFocus](./NodeRenderReturnType.md#onfocus)
- [ports](./NodeRenderReturnType.md#ports)
- [readonly](./NodeRenderReturnType.md#readonly)
- [selectNode](./NodeRenderReturnType.md#selectnode)
- [selected](./NodeRenderReturnType.md#selected)
- [startDrag](./NodeRenderReturnType.md#startdrag)
- [type](./NodeRenderReturnType.md#type)
- [updateData](./NodeRenderReturnType.md#updatedata)
### Methods
- [getExtInfo](./NodeRenderReturnType.md#getextinfo)
- [toggleExpand](./NodeRenderReturnType.md#toggleexpand)
- [updateExtInfo](./NodeRenderReturnType.md#updateextinfo)
## Properties
### activated
**activated**: `boolean`
节点激活
___
### data
**data**: `any`
节点 data 数据
___
### deleteNode
**deleteNode**: () => `void`
#### Type declaration
(): `void`
删除节点
##### Returns
`void`
___
### expanded
**expanded**: `boolean`
节点展开
___
### form
**form**: `undefined` \| `NodeFormProps`\<`any`\>
渲染表单,只有节点引擎开启才能使用
___
### id
**id**: `string`
___
### linkingNodeId
**linkingNodeId**: `string`
拖拽线条的目标 node id
___
### node
**node**: `FlowNodeEntity`
当前节点
___
### nodeRef
**nodeRef**: `MutableRefObject`\<``null`` \| `HTMLDivElement`\>
节点 ref
___
### onBlur
**onBlur**: () => `void`
#### Type declaration
(): `void`
节点 blur 事件
##### Returns
`void`
___
### onFocus
**onFocus**: () => `void`
#### Type declaration
(): `void`
节点 focus 事件
##### Returns
`void`
___
### ports
**ports**: [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md)[]
当前节点的点位信息
___
### readonly
**readonly**: `boolean`
全局 readonly 状态
___
### selectNode
**selectNode**: (`e`: `MouseEvent`\<`Element`, `MouseEvent`\>) => `void`
#### Type declaration
(`e`): `void`
选中节点
##### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent`\<`Element`, `MouseEvent`\> |
##### Returns
`void`
___
### selected
**selected**: `boolean`
节点选中
___
### startDrag
**startDrag**: (`e`: `MouseEvent`\<`Element`, `MouseEvent`\>) => `void`
#### Type declaration
(`e`): `void`
触发拖拽
##### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent`\<`Element`, `MouseEvent`\> |
##### Returns
`void`
___
### type
**type**: `string` \| `number`
___
### updateData
**updateData**: (`newData`: `any`) => `void`
#### Type declaration
(`newData`): `void`
更新节点 data 数据
##### Parameters
| Name | Type |
| :------ | :------ |
| `newData` | `any` |
##### Returns
`void`
## Methods
### getExtInfo
**getExtInfo**\<`T`\>(): `T`
获取节点的扩展数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | `any` |
#### Returns
`T`
___
### toggleExpand
**toggleExpand**(): `void`
展开/收起节点
#### Returns
`void`
___
### updateExtInfo
**updateExtInfo**\<`T`\>(`extInfo`, `fullUpdate?`): `void`
更新节点的扩展数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | `any` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `extInfo` | `T` |
| `fullUpdate?` | `boolean` |
#### Returns
`void`
---
url: /auto-docs/free-layout-core/interfaces/NodesDragEndEvent.md
---
# Interface: NodesDragEndEvent
## Hierarchy
- `INodesDragEvent`
↳ **`NodesDragEndEvent`**
## Table of contents
### Properties
- [dragEvent](./NodesDragEndEvent.md#dragevent)
- [dragger](./NodesDragEndEvent.md#dragger)
- [nodes](./NodesDragEndEvent.md#nodes)
- [startPositions](./NodesDragEndEvent.md#startpositions)
- [triggerEvent](./NodesDragEndEvent.md#triggerevent)
- [type](./NodesDragEndEvent.md#type)
## Properties
### dragEvent
**dragEvent**: `PlaygroundDragEvent`
#### Inherited from
INodesDragEvent.dragEvent
___
### dragger
**dragger**: `PlaygroundDrag`\<`undefined`\>
#### Inherited from
INodesDragEvent.dragger
___
### nodes
**nodes**: `FlowNodeEntity`[]
#### Inherited from
INodesDragEvent.nodes
___
### startPositions
**startPositions**: `PositionSchema`[]
#### Inherited from
INodesDragEvent.startPositions
___
### triggerEvent
**triggerEvent**: `MouseEvent` \| `MouseEvent`\<`Element`, `MouseEvent`\>
#### Inherited from
INodesDragEvent.triggerEvent
___
### type
**type**: ``"onDragEnd"``
#### Overrides
INodesDragEvent.type
---
url: /auto-docs/free-layout-core/interfaces/NodesDragStartEvent.md
---
# Interface: NodesDragStartEvent
## Hierarchy
- `INodesDragEvent`
↳ **`NodesDragStartEvent`**
## Table of contents
### Properties
- [dragEvent](./NodesDragStartEvent.md#dragevent)
- [dragger](./NodesDragStartEvent.md#dragger)
- [nodes](./NodesDragStartEvent.md#nodes)
- [startPositions](./NodesDragStartEvent.md#startpositions)
- [triggerEvent](./NodesDragStartEvent.md#triggerevent)
- [type](./NodesDragStartEvent.md#type)
## Properties
### dragEvent
**dragEvent**: `PlaygroundDragEvent`
#### Inherited from
INodesDragEvent.dragEvent
___
### dragger
**dragger**: `PlaygroundDrag`\<`undefined`\>
#### Inherited from
INodesDragEvent.dragger
___
### nodes
**nodes**: `FlowNodeEntity`[]
#### Inherited from
INodesDragEvent.nodes
___
### startPositions
**startPositions**: `PositionSchema`[]
#### Inherited from
INodesDragEvent.startPositions
___
### triggerEvent
**triggerEvent**: `MouseEvent` \| `MouseEvent`\<`Element`, `MouseEvent`\>
#### Inherited from
INodesDragEvent.triggerEvent
___
### type
**type**: ``"onDragStart"``
#### Overrides
INodesDragEvent.type
---
url: /auto-docs/free-layout-core/interfaces/NodesDraggingEvent.md
---
# Interface: NodesDraggingEvent
## Hierarchy
- `INodesDragEvent`
↳ **`NodesDraggingEvent`**
## Table of contents
### Properties
- [dragEvent](./NodesDraggingEvent.md#dragevent)
- [dragger](./NodesDraggingEvent.md#dragger)
- [nodes](./NodesDraggingEvent.md#nodes)
- [positions](./NodesDraggingEvent.md#positions)
- [startPositions](./NodesDraggingEvent.md#startpositions)
- [triggerEvent](./NodesDraggingEvent.md#triggerevent)
- [type](./NodesDraggingEvent.md#type)
## Properties
### dragEvent
**dragEvent**: `PlaygroundDragEvent`
#### Inherited from
INodesDragEvent.dragEvent
___
### dragger
**dragger**: `PlaygroundDrag`\<`undefined`\>
#### Inherited from
INodesDragEvent.dragger
___
### nodes
**nodes**: `FlowNodeEntity`[]
#### Inherited from
INodesDragEvent.nodes
___
### positions
**positions**: `PositionSchema`[]
___
### startPositions
**startPositions**: `PositionSchema`[]
#### Inherited from
INodesDragEvent.startPositions
___
### triggerEvent
**triggerEvent**: `MouseEvent` \| `MouseEvent`\<`Element`, `MouseEvent`\>
#### Inherited from
INodesDragEvent.triggerEvent
___
### type
**type**: ``"onDragging"``
#### Overrides
INodesDragEvent.type
---
url: /auto-docs/free-layout-core/interfaces/URLParams.md
---
# Interface: URLParams
## Indexable
▪ [key: `string`]: `string`
---
url: /auto-docs/free-layout-core/interfaces/WorkflowContentChangeEvent.md
---
# Interface: WorkflowContentChangeEvent
## Table of contents
### Properties
- [entity](./WorkflowContentChangeEvent.md#entity)
- [oldValue](./WorkflowContentChangeEvent.md#oldvalue)
- [toJSON](./WorkflowContentChangeEvent.md#tojson)
- [type](./WorkflowContentChangeEvent.md#type)
## Properties
### entity
**entity**: `FlowNodeEntity` \| [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)
___
### oldValue
`Optional` **oldValue**: `any`
oldValue
___
### toJSON
**toJSON**: () => `any`
#### Type declaration
(): `any`
当前触发的元素的json数据,toJSON 需要主动触发
##### Returns
`any`
___
### type
**type**: [`WorkflowContentChangeType`](../enums/WorkflowContentChangeType.md)
---
url: /auto-docs/free-layout-core/interfaces/WorkflowDocumentOptions.md
---
# Interface: WorkflowDocumentOptions
线条配置
## Hierarchy
- `FlowDocumentOptions`
↳ **`WorkflowDocumentOptions`**
## Table of contents
### Properties
- [allNodesDefaultExpanded](./WorkflowDocumentOptions.md#allnodesdefaultexpanded)
- [canAddLine](./WorkflowDocumentOptions.md#canaddline)
- [canDeleteLine](./WorkflowDocumentOptions.md#candeleteline)
- [canDeleteNode](./WorkflowDocumentOptions.md#candeletenode)
- [canDropToNode](./WorkflowDocumentOptions.md#candroptonode)
- [canResetLine](./WorkflowDocumentOptions.md#canresetline)
- [constants](./WorkflowDocumentOptions.md#constants)
- [cursors](./WorkflowDocumentOptions.md#cursors)
- [defaultLayout](./WorkflowDocumentOptions.md#defaultlayout)
- [enableReadonlyNodeDragging](./WorkflowDocumentOptions.md#enablereadonlynodedragging)
- [formatNodeLabels](./WorkflowDocumentOptions.md#formatnodelabels)
- [formatNodeLines](./WorkflowDocumentOptions.md#formatnodelines)
- [getNodeDefaultRegistry](./WorkflowDocumentOptions.md#getnodedefaultregistry)
- [isDisabledLine](./WorkflowDocumentOptions.md#isdisabledline)
- [isDisabledPort](./WorkflowDocumentOptions.md#isdisabledport)
- [isErrorLine](./WorkflowDocumentOptions.md#iserrorline)
- [isErrorPort](./WorkflowDocumentOptions.md#iserrorport)
- [isFlowingLine](./WorkflowDocumentOptions.md#isflowingline)
- [isHideArrowLine](./WorkflowDocumentOptions.md#ishidearrowline)
- [isReverseLine](./WorkflowDocumentOptions.md#isreverseline)
- [lineColor](./WorkflowDocumentOptions.md#linecolor)
- [onDragLineEnd](./WorkflowDocumentOptions.md#ondraglineend)
- [preNodeCreate](./WorkflowDocumentOptions.md#prenodecreate)
- [setLineClassName](./WorkflowDocumentOptions.md#setlineclassname)
- [setLineRenderType](./WorkflowDocumentOptions.md#setlinerendertype)
- [twoWayConnection](./WorkflowDocumentOptions.md#twowayconnection)
### Methods
- [fromNodeJSON](./WorkflowDocumentOptions.md#fromnodejson)
- [toNodeJSON](./WorkflowDocumentOptions.md#tonodejson)
## Properties
### allNodesDefaultExpanded
`Optional` **allNodesDefaultExpanded**: `boolean`
所有节点的默认展开状态
#### Inherited from
FlowDocumentOptions.allNodesDefaultExpanded
___
### canAddLine
`Optional` **canAddLine**: (`fromPort`: [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md), `toPort`: [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md), `lines`: [`WorkflowLinesManager`](../classes/WorkflowLinesManager.md), `silent?`: `boolean`) => `boolean`
#### Type declaration
(`fromPort`, `toPort`, `lines`, `silent?`): `boolean`
能否添加线条
##### Parameters
| Name | Type |
| :------ | :------ |
| `fromPort` | [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
| `toPort` | [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
| `lines` | [`WorkflowLinesManager`](../classes/WorkflowLinesManager.md) |
| `silent?` | `boolean` |
##### Returns
`boolean`
___
### canDeleteLine
`Optional` **canDeleteLine**: (`line`: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md), `newLineInfo?`: `Required`\<`Omit`\<[`WorkflowLinePortInfo`](./WorkflowLinePortInfo.md), ``"data"``\>\>, `silent?`: `boolean`) => `boolean`
#### Type declaration
(`line`, `newLineInfo?`, `silent?`): `boolean`
能否删除线条
##### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) |
| `newLineInfo?` | `Required`\<`Omit`\<[`WorkflowLinePortInfo`](./WorkflowLinePortInfo.md), ``"data"``\>\> |
| `silent?` | `boolean` |
##### Returns
`boolean`
___
### canDeleteNode
`Optional` **canDeleteNode**: (`node`: `FlowNodeEntity`, `silent?`: `boolean`) => `boolean`
#### Type declaration
(`node`, `silent?`): `boolean`
能否删除节点
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `silent?` | `boolean` |
##### Returns
`boolean`
___
### canDropToNode
`Optional` **canDropToNode**: (`params`: \{ `dragNode?`: `FlowNodeEntity` ; `dragNodeType?`: `FlowNodeType` ; `dropNode?`: `FlowNodeEntity` ; `dropNodeType?`: `FlowNodeType` }) => `boolean`
#### Type declaration
(`params`): `boolean`
是否允许拖入子画布 (loop or group)
Whether to allow dragging into the sub-canvas (loop or group)
##### Parameters
| Name | Type |
| :------ | :------ |
| `params` | `Object` |
| `params.dragNode?` | `FlowNodeEntity` |
| `params.dragNodeType?` | `FlowNodeType` |
| `params.dropNode?` | `FlowNodeEntity` |
| `params.dropNodeType?` | `FlowNodeType` |
##### Returns
`boolean`
___
### canResetLine
`Optional` **canResetLine**: (`oldLine`: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md), `newLineInfo`: `Required`\<[`WorkflowLinePortInfo`](./WorkflowLinePortInfo.md)\>, `lines`: [`WorkflowLinesManager`](../classes/WorkflowLinesManager.md)) => `boolean`
#### Type declaration
(`oldLine`, `newLineInfo`, `lines`): `boolean`
##### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `oldLine` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) | - |
| `newLineInfo` | `Required`\<[`WorkflowLinePortInfo`](./WorkflowLinePortInfo.md)\> | - |
| `lines` | [`WorkflowLinesManager`](../classes/WorkflowLinesManager.md) | 线条管理器 |
##### Returns
`boolean`
___
### constants
`Optional` **constants**: `Record`\<`string`, `any`\>
#### Inherited from
FlowDocumentOptions.constants
___
### cursors
`Optional` **cursors**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `grab?` | `string` |
| `grabbing?` | `string` |
___
### defaultLayout
`Optional` **defaultLayout**: `string`
布局,默认 垂直布局
#### Inherited from
FlowDocumentOptions.defaultLayout
___
### enableReadonlyNodeDragging
`Optional` **enableReadonlyNodeDragging**: `boolean`
允许拖拽只读节点
___
### formatNodeLabels
`Optional` **formatNodeLabels**: (`node`: `FlowNodeEntity`, `lines`: `FlowTransitionLabel`[]) => `FlowTransitionLabel`[]
#### Type declaration
(`node`, `lines`): `FlowTransitionLabel`[]
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `lines` | `FlowTransitionLabel`[] |
##### Returns
`FlowTransitionLabel`[]
#### Inherited from
FlowDocumentOptions.formatNodeLabels
___
### formatNodeLines
`Optional` **formatNodeLines**: (`node`: `FlowNodeEntity`, `lines`: `FlowTransitionLine`[]) => `FlowTransitionLine`[]
#### Type declaration
(`node`, `lines`): `FlowTransitionLine`[]
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `lines` | `FlowTransitionLine`[] |
##### Returns
`FlowTransitionLine`[]
#### Inherited from
FlowDocumentOptions.formatNodeLines
___
### getNodeDefaultRegistry
`Optional` **getNodeDefaultRegistry**: (`type`: `FlowNodeType`) => `FlowNodeRegistry`\<`FlowNodeMeta`\>
#### Type declaration
(`type`): `FlowNodeRegistry`\<`FlowNodeMeta`\>
获取默认的节点配置
##### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `FlowNodeType` |
##### Returns
`FlowNodeRegistry`\<`FlowNodeMeta`\>
#### Inherited from
FlowDocumentOptions.getNodeDefaultRegistry
___
### isDisabledLine
`Optional` **isDisabledLine**: (`line`: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)) => `boolean`
#### Type declaration
(`line`): `boolean`
是否禁用线条
##### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) |
##### Returns
`boolean`
___
### isDisabledPort
`Optional` **isDisabledPort**: (`port`: [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md)) => `boolean`
#### Type declaration
(`port`): `boolean`
是否禁用端口
##### Parameters
| Name | Type |
| :------ | :------ |
| `port` | [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
##### Returns
`boolean`
___
### isErrorLine
`Optional` **isErrorLine**: (`fromPort`: `undefined` \| [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md), `toPort`: `undefined` \| [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md), `lines`: [`WorkflowLinesManager`](../classes/WorkflowLinesManager.md)) => `boolean`
#### Type declaration
(`fromPort`, `toPort`, `lines`): `boolean`
是否显示错误线条
##### Parameters
| Name | Type |
| :------ | :------ |
| `fromPort` | `undefined` \| [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
| `toPort` | `undefined` \| [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
| `lines` | [`WorkflowLinesManager`](../classes/WorkflowLinesManager.md) |
##### Returns
`boolean`
___
### isErrorPort
`Optional` **isErrorPort**: (`port`: [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md)) => `boolean`
#### Type declaration
(`port`): `boolean`
是否错误端口
##### Parameters
| Name | Type |
| :------ | :------ |
| `port` | [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
##### Returns
`boolean`
___
### isFlowingLine
`Optional` **isFlowingLine**: (`line`: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)) => `boolean`
#### Type declaration
(`line`): `boolean`
是否流动线条
##### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) |
##### Returns
`boolean`
___
### isHideArrowLine
`Optional` **isHideArrowLine**: (`line`: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)) => `boolean`
#### Type declaration
(`line`): `boolean`
是否隐藏线条箭头
##### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) |
##### Returns
`boolean`
___
### isReverseLine
`Optional` **isReverseLine**: (`line`: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)) => `boolean`
#### Type declaration
(`line`): `boolean`
是否反转线条箭头
##### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) |
##### Returns
`boolean`
___
### lineColor
`Optional` **lineColor**: `Partial`\<[`LineColor`](./LineColor.md)\>
线条颜色
___
### onDragLineEnd
`Optional` **onDragLineEnd**: (`params`: [`onDragLineEndParams`](../types/onDragLineEndParams.md)) => `Promise`\<`void`\>
#### Type declaration
(`params`): `Promise`\<`void`\>
拖拽线条结束
##### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`onDragLineEndParams`](../types/onDragLineEndParams.md) |
##### Returns
`Promise`\<`void`\>
___
### preNodeCreate
`Optional` **preNodeCreate**: (`node`: `FlowNodeEntity`) => `void`
#### Type declaration
(`node`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
##### Returns
`void`
#### Inherited from
FlowDocumentOptions.preNodeCreate
___
### setLineClassName
`Optional` **setLineClassName**: (`line`: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)) => `undefined` \| `string`
#### Type declaration
(`line`): `undefined` \| `string`
设置线条样式
##### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) |
##### Returns
`undefined` \| `string`
___
### setLineRenderType
`Optional` **setLineRenderType**: (`line`: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)) => `undefined` \| [`LineRenderType`](../types/LineRenderType.md)
#### Type declaration
(`line`): `undefined` \| [`LineRenderType`](../types/LineRenderType.md)
获取线条渲染器
##### Parameters
| Name | Type |
| :------ | :------ |
| `line` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) |
##### Returns
`undefined` \| [`LineRenderType`](../types/LineRenderType.md)
___
### twoWayConnection
`Optional` **twoWayConnection**: `boolean`
双向连接
## Methods
### fromNodeJSON
`Optional` **fromNodeJSON**(`node`, `json`, `isFirstCreate`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `json` | `FlowNodeJSON` |
| `isFirstCreate` | `boolean` |
#### Returns
`void`
#### Inherited from
FlowDocumentOptions.fromNodeJSON
___
### toNodeJSON
`Optional` **toNodeJSON**(`node`): `FlowNodeJSON`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
#### Returns
`FlowNodeJSON`
#### Inherited from
FlowDocumentOptions.toNodeJSON
---
url: /auto-docs/free-layout-core/interfaces/WorkflowEdgeJSON.md
---
# Interface: WorkflowEdgeJSON
边数据
## Table of contents
### Properties
- [data](./WorkflowEdgeJSON.md#data)
- [sourceNodeID](./WorkflowEdgeJSON.md#sourcenodeid)
- [sourcePortID](./WorkflowEdgeJSON.md#sourceportid)
- [targetNodeID](./WorkflowEdgeJSON.md#targetnodeid)
- [targetPortID](./WorkflowEdgeJSON.md#targetportid)
## Properties
### data
`Optional` **data**: `any`
___
### sourceNodeID
**sourceNodeID**: `string`
___
### sourcePortID
`Optional` **sourcePortID**: `string` \| `number`
___
### targetNodeID
**targetNodeID**: `string`
___
### targetPortID
`Optional` **targetPortID**: `string` \| `number`
---
url: /auto-docs/free-layout-core/interfaces/WorkflowJSON.md
---
# Interface: WorkflowJSON
## Table of contents
### Properties
- [edges](./WorkflowJSON.md#edges)
- [nodes](./WorkflowJSON.md#nodes)
## Properties
### edges
**edges**: [`WorkflowEdgeJSON`](./WorkflowEdgeJSON.md)[]
___
### nodes
**nodes**: [`WorkflowNodeJSON`](./WorkflowNodeJSON.md)[]
---
url: /auto-docs/free-layout-core/interfaces/WorkflowLineEntityOpts.md
---
# Interface: WorkflowLineEntityOpts
## Hierarchy
- `EntityOpts`
- [`WorkflowLinePortInfo`](./WorkflowLinePortInfo.md)
↳ **`WorkflowLineEntityOpts`**
## Table of contents
### Properties
- [data](./WorkflowLineEntityOpts.md#data)
- [datas](./WorkflowLineEntityOpts.md#datas)
- [document](./WorkflowLineEntityOpts.md#document)
- [drawingFrom](./WorkflowLineEntityOpts.md#drawingfrom)
- [drawingTo](./WorkflowLineEntityOpts.md#drawingto)
- [entityManager](./WorkflowLineEntityOpts.md#entitymanager)
- [from](./WorkflowLineEntityOpts.md#from)
- [fromPort](./WorkflowLineEntityOpts.md#fromport)
- [id](./WorkflowLineEntityOpts.md#id)
- [linesManager](./WorkflowLineEntityOpts.md#linesmanager)
- [savedInManager](./WorkflowLineEntityOpts.md#savedinmanager)
- [to](./WorkflowLineEntityOpts.md#to)
- [toPort](./WorkflowLineEntityOpts.md#toport)
## Properties
### data
`Optional` **data**: `any`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[data](./WorkflowLinePortInfo.md#data)
___
### datas
`Optional` **datas**: \{ `data?`: `any` ; `registry`: `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> }[]
#### Inherited from
EntityOpts.datas
___
### document
**document**: [`WorkflowDocument`](../classes/WorkflowDocument.md)
___
### drawingFrom
`Optional` **drawingFrom**: [`LinePoint`](./LinePoint.md)
___
### drawingTo
`Optional` **drawingTo**: [`LinePoint`](./LinePoint.md)
___
### entityManager
**entityManager**: `EntityManager`
#### Inherited from
EntityOpts.entityManager
___
### from
`Optional` **from**: `string`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[from](./WorkflowLinePortInfo.md#from)
___
### fromPort
`Optional` **fromPort**: `string` \| `number`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[fromPort](./WorkflowLinePortInfo.md#fromport)
___
### id
`Optional` **id**: `string`
#### Inherited from
EntityOpts.id
___
### linesManager
**linesManager**: [`WorkflowLinesManager`](../classes/WorkflowLinesManager.md)
___
### savedInManager
`Optional` **savedInManager**: `boolean`
#### Inherited from
EntityOpts.savedInManager
___
### to
`Optional` **to**: `string`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[to](./WorkflowLinePortInfo.md#to)
___
### toPort
`Optional` **toPort**: `string` \| `number`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[toPort](./WorkflowLinePortInfo.md#toport)
---
url: /auto-docs/free-layout-core/interfaces/WorkflowLineInfo.md
---
# Interface: WorkflowLineInfo
## Hierarchy
- [`WorkflowLinePortInfo`](./WorkflowLinePortInfo.md)
↳ **`WorkflowLineInfo`**
## Table of contents
### Properties
- [data](./WorkflowLineInfo.md#data)
- [drawingFrom](./WorkflowLineInfo.md#drawingfrom)
- [drawingTo](./WorkflowLineInfo.md#drawingto)
- [from](./WorkflowLineInfo.md#from)
- [fromPort](./WorkflowLineInfo.md#fromport)
- [to](./WorkflowLineInfo.md#to)
- [toPort](./WorkflowLineInfo.md#toport)
## Properties
### data
`Optional` **data**: `any`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[data](./WorkflowLinePortInfo.md#data)
___
### drawingFrom
`Optional` **drawingFrom**: [`LinePoint`](./LinePoint.md)
___
### drawingTo
`Optional` **drawingTo**: [`LinePoint`](./LinePoint.md)
___
### from
`Optional` **from**: `string`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[from](./WorkflowLinePortInfo.md#from)
___
### fromPort
`Optional` **fromPort**: `string` \| `number`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[fromPort](./WorkflowLinePortInfo.md#fromport)
___
### to
`Optional` **to**: `string`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[to](./WorkflowLinePortInfo.md#to)
___
### toPort
`Optional` **toPort**: `string` \| `number`
#### Inherited from
[WorkflowLinePortInfo](./WorkflowLinePortInfo.md).[toPort](./WorkflowLinePortInfo.md#toport)
---
url: /auto-docs/free-layout-core/interfaces/WorkflowLinePortInfo.md
---
# Interface: WorkflowLinePortInfo
## Hierarchy
- **`WorkflowLinePortInfo`**
↳ [`WorkflowLineEntityOpts`](./WorkflowLineEntityOpts.md)
↳ [`WorkflowLineInfo`](./WorkflowLineInfo.md)
## Table of contents
### Properties
- [data](./WorkflowLinePortInfo.md#data)
- [from](./WorkflowLinePortInfo.md#from)
- [fromPort](./WorkflowLinePortInfo.md#fromport)
- [to](./WorkflowLinePortInfo.md#to)
- [toPort](./WorkflowLinePortInfo.md#toport)
## Properties
### data
`Optional` **data**: `any`
___
### from
`Optional` **from**: `string`
___
### fromPort
`Optional` **fromPort**: `string` \| `number`
___
### to
`Optional` **to**: `string`
___
### toPort
`Optional` **toPort**: `string` \| `number`
---
url: /auto-docs/free-layout-core/interfaces/WorkflowLineRenderContribution.md
---
# Interface: WorkflowLineRenderContribution
## Table of contents
### Properties
- [bounds](./WorkflowLineRenderContribution.md#bounds)
- [calcDistance](./WorkflowLineRenderContribution.md#calcdistance)
- [center](./WorkflowLineRenderContribution.md#center)
- [entity](./WorkflowLineRenderContribution.md#entity)
- [path](./WorkflowLineRenderContribution.md#path)
- [update](./WorkflowLineRenderContribution.md#update)
## Properties
### bounds
**bounds**: `Rectangle`
___
### calcDistance
**calcDistance**: (`pos`: `IPoint`) => `number`
#### Type declaration
(`pos`): `number`
##### Parameters
| Name | Type |
| :------ | :------ |
| `pos` | `IPoint` |
##### Returns
`number`
___
### center
`Optional` **center**: [`LineCenterPoint`](./LineCenterPoint.md)
___
### entity
**entity**: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)
___
### path
**path**: `string`
___
### update
**update**: (`params`: \{ `fromPos`: [`LinePoint`](./LinePoint.md) ; `toPos`: [`LinePoint`](./LinePoint.md) }) => `void`
#### Type declaration
(`params`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `params` | `Object` |
| `params.fromPos` | [`LinePoint`](./LinePoint.md) |
| `params.toPos` | [`LinePoint`](./LinePoint.md) |
##### Returns
`void`
---
url: /auto-docs/free-layout-core/interfaces/WorkflowLineRenderDataSchema.md
---
# Interface: WorkflowLineRenderDataSchema
## Table of contents
### Properties
- [contributions](./WorkflowLineRenderDataSchema.md#contributions)
- [position](./WorkflowLineRenderDataSchema.md#position)
- [version](./WorkflowLineRenderDataSchema.md#version)
## Properties
### contributions
**contributions**: `Map`\<[`LineRenderType`](../types/LineRenderType.md), [`WorkflowLineRenderContribution`](./WorkflowLineRenderContribution.md)\>
___
### position
**position**: [`LinePosition`](./LinePosition.md)
___
### version
**version**: `string`
---
url: /auto-docs/free-layout-core/interfaces/WorkflowLineUIState.md
---
# Interface: WorkflowLineUIState
## Table of contents
### Properties
- [className](./WorkflowLineUIState.md#classname)
- [curvature](./WorkflowLineUIState.md#curvature)
- [disabled](./WorkflowLineUIState.md#disabled)
- [flowing](./WorkflowLineUIState.md#flowing)
- [hasError](./WorkflowLineUIState.md#haserror)
- [hideArrow](./WorkflowLineUIState.md#hidearrow)
- [highlightColor](./WorkflowLineUIState.md#highlightcolor)
- [lockedColor](./WorkflowLineUIState.md#lockedcolor)
- [reverse](./WorkflowLineUIState.md#reverse)
- [shrink](./WorkflowLineUIState.md#shrink)
- [strokeWidth](./WorkflowLineUIState.md#strokewidth)
- [strokeWidthSelected](./WorkflowLineUIState.md#strokewidthselected)
- [style](./WorkflowLineUIState.md#style)
## Properties
### className
`Optional` **className**: `string`
React className
___
### curvature
**curvature**: `number`
曲率
only for Bezier,
**`Default`**
```ts
0.25
```
___
### disabled
**disabled**: `boolean`
禁用
___
### flowing
**flowing**: `boolean`
流动
___
### hasError
**hasError**: `boolean`
是否出错
___
### hideArrow
**hideArrow**: `boolean`
隐藏箭头
___
### highlightColor
**highlightColor**: `string`
**`Deprecated`**
use `lockedColor` instead
___
### lockedColor
**lockedColor**: `string`
Line locked color
___
### reverse
**reverse**: `boolean`
箭头反转
___
### shrink
**shrink**: `number`
收缩
**`Default`**
```ts
10
```
___
### strokeWidth
`Optional` **strokeWidth**: `number`
线条宽度
**`Default`**
```ts
2
```
___
### strokeWidthSelected
`Optional` **strokeWidthSelected**: `number`
选中后的线条宽度
**`Default`**
```ts
3
```
___
### style
`Optional` **style**: `CSSProperties`
React style
---
url: /auto-docs/free-layout-core/interfaces/WorkflowNodeJSON.md
---
# Interface: WorkflowNodeJSON
节点数据
## Hierarchy
- `FlowNodeJSON`
↳ **`WorkflowNodeJSON`**
## Table of contents
### Properties
- [blocks](./WorkflowNodeJSON.md#blocks)
- [data](./WorkflowNodeJSON.md#data)
- [edges](./WorkflowNodeJSON.md#edges)
- [id](./WorkflowNodeJSON.md#id)
- [meta](./WorkflowNodeJSON.md#meta)
- [type](./WorkflowNodeJSON.md#type)
## Properties
### blocks
`Optional` **blocks**: [`WorkflowNodeJSON`](./WorkflowNodeJSON.md)[]
子节点
#### Overrides
FlowNodeJSON.blocks
___
### data
`Optional` **data**: `any`
表单数据
#### Overrides
FlowNodeJSON.data
___
### edges
`Optional` **edges**: [`WorkflowEdgeJSON`](./WorkflowEdgeJSON.md)[]
子节点间连线
___
### id
**id**: `string`
#### Overrides
FlowNodeJSON.id
___
### meta
`Optional` **meta**: [`WorkflowNodeMeta`](./WorkflowNodeMeta.md)
ui 数据
#### Overrides
FlowNodeJSON.meta
___
### type
**type**: `string` \| `number`
#### Overrides
FlowNodeJSON.type
---
url: /auto-docs/free-layout-core/interfaces/WorkflowNodeLines.md
---
# Interface: WorkflowNodeLines
## Table of contents
### Properties
- [inputLines](./WorkflowNodeLines.md#inputlines)
- [outputLines](./WorkflowNodeLines.md#outputlines)
## Properties
### inputLines
**inputLines**: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)[]
___
### outputLines
**outputLines**: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)[]
---
url: /auto-docs/free-layout-core/interfaces/WorkflowNodeMeta.md
---
# Interface: WorkflowNodeMeta
节点 meta 信息
## Hierarchy
- `FlowNodeMeta`
↳ **`WorkflowNodeMeta`**
## Table of contents
### Properties
- [addDisable](./WorkflowNodeMeta.md#adddisable)
- [addable](./WorkflowNodeMeta.md#addable)
- [autoResizeDisable](./WorkflowNodeMeta.md#autoresizedisable)
- [canvasPosition](./WorkflowNodeMeta.md#canvasposition)
- [copyDisable](./WorkflowNodeMeta.md#copydisable)
- [defaultCollapsed](./WorkflowNodeMeta.md#defaultcollapsed)
- [defaultExpanded](./WorkflowNodeMeta.md#defaultexpanded)
- [defaultPorts](./WorkflowNodeMeta.md#defaultports)
- [deleteDisable](./WorkflowNodeMeta.md#deletedisable)
- [draggable](./WorkflowNodeMeta.md#draggable)
- [expandable](./WorkflowNodeMeta.md#expandable)
- [hidden](./WorkflowNodeMeta.md#hidden)
- [inlineSpacingAfter](./WorkflowNodeMeta.md#inlinespacingafter)
- [inlineSpacingPre](./WorkflowNodeMeta.md#inlinespacingpre)
- [inputDisable](./WorkflowNodeMeta.md#inputdisable)
- [isContainer](./WorkflowNodeMeta.md#iscontainer)
- [isInlineBlocks](./WorkflowNodeMeta.md#isinlineblocks)
- [isNodeEnd](./WorkflowNodeMeta.md#isnodeend)
- [isStart](./WorkflowNodeMeta.md#isstart)
- [minInlineBlockSpacing](./WorkflowNodeMeta.md#mininlineblockspacing)
- [origin](./WorkflowNodeMeta.md#origin)
- [outputDisable](./WorkflowNodeMeta.md#outputdisable)
- [padding](./WorkflowNodeMeta.md#padding)
- [position](./WorkflowNodeMeta.md#position)
- [renderKey](./WorkflowNodeMeta.md#renderkey)
- [selectable](./WorkflowNodeMeta.md#selectable)
- [size](./WorkflowNodeMeta.md#size)
- [spacing](./WorkflowNodeMeta.md#spacing)
- [subCanvas](./WorkflowNodeMeta.md#subcanvas)
- [useDynamicPort](./WorkflowNodeMeta.md#usedynamicport)
## Properties
### addDisable
`Optional` **addDisable**: `boolean`
#### Inherited from
FlowNodeMeta.addDisable
___
### addable
`Optional` **addable**: `boolean`
#### Inherited from
FlowNodeMeta.addable
___
### autoResizeDisable
`Optional` **autoResizeDisable**: `boolean`
#### Inherited from
FlowNodeMeta.autoResizeDisable
___
### canvasPosition
`Optional` **canvasPosition**: `IPoint`
___
### copyDisable
`Optional` **copyDisable**: `boolean`
#### Overrides
FlowNodeMeta.copyDisable
___
### defaultCollapsed
`Optional` **defaultCollapsed**: `boolean`
#### Inherited from
FlowNodeMeta.defaultCollapsed
___
### defaultExpanded
`Optional` **defaultExpanded**: `boolean`
#### Inherited from
FlowNodeMeta.defaultExpanded
___
### defaultPorts
`Optional` **defaultPorts**: [`WorkflowPorts`](../types/WorkflowPorts.md)
___
### deleteDisable
`Optional` **deleteDisable**: `boolean`
#### Overrides
FlowNodeMeta.deleteDisable
___
### draggable
`Optional` **draggable**: `boolean` \| (`node`: `FlowNodeEntity`) => `boolean`
#### Inherited from
FlowNodeMeta.draggable
___
### expandable
`Optional` **expandable**: `boolean`
#### Inherited from
FlowNodeMeta.expandable
___
### hidden
`Optional` **hidden**: `boolean`
#### Inherited from
FlowNodeMeta.hidden
___
### inlineSpacingAfter
`Optional` **inlineSpacingAfter**: `number` \| (`transform`: `FlowNodeTransformData`) => `number`
#### Inherited from
FlowNodeMeta.inlineSpacingAfter
___
### inlineSpacingPre
`Optional` **inlineSpacingPre**: `number` \| (`transform`: `FlowNodeTransformData`) => `number`
#### Inherited from
FlowNodeMeta.inlineSpacingPre
___
### inputDisable
`Optional` **inputDisable**: `boolean`
___
### isContainer
`Optional` **isContainer**: `boolean`
___
### isInlineBlocks
`Optional` **isInlineBlocks**: `boolean` \| (`node`: `FlowNodeEntity`) => `boolean`
#### Inherited from
FlowNodeMeta.isInlineBlocks
___
### isNodeEnd
`Optional` **isNodeEnd**: `boolean`
#### Inherited from
FlowNodeMeta.isNodeEnd
___
### isStart
`Optional` **isStart**: `boolean`
#### Inherited from
FlowNodeMeta.isStart
___
### minInlineBlockSpacing
`Optional` **minInlineBlockSpacing**: `number` \| (`node`: `FlowNodeTransformData`) => `number`
#### Inherited from
FlowNodeMeta.minInlineBlockSpacing
___
### origin
`Optional` **origin**: `OriginSchema`
**`Deprecated`**
使用 NodeRegister.getOrigin 代替
#### Inherited from
FlowNodeMeta.origin
___
### outputDisable
`Optional` **outputDisable**: `boolean`
___
### padding
`Optional` **padding**: `PaddingSchema` \| (`transform`: `FlowNodeTransformData`) => `PaddingSchema`
#### Inherited from
FlowNodeMeta.padding
___
### position
`Optional` **position**: `IPoint`
___
### renderKey
`Optional` **renderKey**: `string`
#### Inherited from
FlowNodeMeta.renderKey
___
### selectable
`Optional` **selectable**: `boolean` \| (`node`: `FlowNodeEntity`, `mousePos?`: `PositionSchema`) => `boolean`
#### Inherited from
FlowNodeMeta.selectable
___
### size
`Optional` **size**: `SizeSchema`
#### Inherited from
FlowNodeMeta.size
___
### spacing
`Optional` **spacing**: `number` \| (`transform`: `FlowNodeTransformData`) => `number`
#### Inherited from
FlowNodeMeta.spacing
___
### subCanvas
`Optional` **subCanvas**: (`node`: `FlowNodeEntity`) => `undefined` \| [`WorkflowSubCanvas`](../types/WorkflowSubCanvas.md)
#### Type declaration
(`node`): `undefined` \| [`WorkflowSubCanvas`](../types/WorkflowSubCanvas.md)
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
##### Returns
`undefined` \| [`WorkflowSubCanvas`](../types/WorkflowSubCanvas.md)
___
### useDynamicPort
`Optional` **useDynamicPort**: `boolean`
---
url: /auto-docs/free-layout-core/interfaces/WorkflowNodeRegistry.md
---
# Interface: WorkflowNodeRegistry
节点注册
## Hierarchy
- `FlowNodeRegistry`\<[`WorkflowNodeMeta`](./WorkflowNodeMeta.md)\>
↳ **`WorkflowNodeRegistry`**
## Table of contents
### Properties
- [\_\_extends\_\_](./WorkflowNodeRegistry.md#__extends__)
- [addChild](./WorkflowNodeRegistry.md#addchild)
- [canAddLine](./WorkflowNodeRegistry.md#canaddline)
- [dataRegistries](./WorkflowNodeRegistry.md#dataregistries)
- [extend](./WorkflowNodeRegistry.md#extend)
- [extendChildRegistries](./WorkflowNodeRegistry.md#extendchildregistries)
- [formMeta](./WorkflowNodeRegistry.md#formmeta)
- [getChildDelta](./WorkflowNodeRegistry.md#getchilddelta)
- [getChildLabels](./WorkflowNodeRegistry.md#getchildlabels)
- [getChildLines](./WorkflowNodeRegistry.md#getchildlines)
- [getDelta](./WorkflowNodeRegistry.md#getdelta)
- [getInputPoint](./WorkflowNodeRegistry.md#getinputpoint)
- [getLabels](./WorkflowNodeRegistry.md#getlabels)
- [getLines](./WorkflowNodeRegistry.md#getlines)
- [getOriginDeltaX](./WorkflowNodeRegistry.md#getorigindeltax)
- [getOriginDeltaY](./WorkflowNodeRegistry.md#getorigindeltay)
- [getOutputPoint](./WorkflowNodeRegistry.md#getoutputpoint)
- [meta](./WorkflowNodeRegistry.md#meta)
- [onAfterUpdateLocalTransform](./WorkflowNodeRegistry.md#onafterupdatelocaltransform)
- [onBlockChildCreate](./WorkflowNodeRegistry.md#onblockchildcreate)
- [onCreate](./WorkflowNodeRegistry.md#oncreate)
- [type](./WorkflowNodeRegistry.md#type)
### Methods
- [getOrigin](./WorkflowNodeRegistry.md#getorigin)
## Properties
### \_\_extends\_\_
`Optional` **\_\_extends\_\_**: `FlowNodeType`[]
内部用于继承逻辑判断,不要使用
#### Inherited from
FlowNodeRegistry.\_\_extends\_\_
___
### addChild
`Optional` **addChild**: (`node`: `FlowNodeEntity`, `json`: `FlowNodeJSON`, `options?`: \{ `hidden?`: `boolean` ; `index?`: `number` }) => `FlowNodeEntity`
#### Type declaration
(`node`, `json`, `options?`): `FlowNodeEntity`
##### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `node` | `FlowNodeEntity` | 节点 |
| `json` | `FlowNodeJSON` | 添加的节点 JSON |
| `options?` | `Object` | 其它配置 |
| `options.hidden?` | `boolean` | - |
| `options.index?` | `number` | - |
##### Returns
`FlowNodeEntity`
**`Deprecated`**
自定义子节点添加逻辑
#### Inherited from
FlowNodeRegistry.addChild
___
### canAddLine
`Optional` **canAddLine**: (`fromPort`: [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md), `toPort`: [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md), `lines`: [`WorkflowLinesManager`](../classes/WorkflowLinesManager.md), `silent?`: `boolean`) => `boolean`
#### Type declaration
(`fromPort`, `toPort`, `lines`, `silent?`): `boolean`
##### Parameters
| Name | Type |
| :------ | :------ |
| `fromPort` | [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
| `toPort` | [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
| `lines` | [`WorkflowLinesManager`](../classes/WorkflowLinesManager.md) |
| `silent?` | `boolean` |
##### Returns
`boolean`
___
### dataRegistries
`Optional` **dataRegistries**: `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
节点注册的数据,可以理解为 ECS 里的 Component, 这里可以配置自定义数据
#### Inherited from
FlowNodeRegistry.dataRegistries
___
### extend
`Optional` **extend**: `string`
从另外一个注册扩展
#### Inherited from
FlowNodeRegistry.extend
___
### extendChildRegistries
`Optional` **extendChildRegistries**: `FlowNodeRegistry`\<`FlowNodeMeta`\>[]
子节点的 registry 覆盖,这里通过 originParent 来查找
#### Inherited from
FlowNodeRegistry.extendChildRegistries
___
### formMeta
`Optional` **formMeta**: [`WorkflowNodeFormMeta`](../types/WorkflowNodeFormMeta.md)
___
### getChildDelta
`Optional` **getChildDelta**: (`childBlock`: `FlowNodeTransformData`, `layout`: `FlowLayout`) => `undefined` \| `IPoint`
#### Type declaration
(`childBlock`, `layout`): `undefined` \| `IPoint`
通过 parent 计算当前节点的偏移,规则同 getDelta
##### Parameters
| Name | Type |
| :------ | :------ |
| `childBlock` | `FlowNodeTransformData` |
| `layout` | `FlowLayout` |
##### Returns
`undefined` \| `IPoint`
#### Inherited from
FlowNodeRegistry.getChildDelta
___
### getChildLabels
`Optional` **getChildLabels**: (`transition`: `FlowNodeTransitionData`, `layout`: `FlowLayout`) => `FlowTransitionLabel`[]
#### Type declaration
(`transition`, `layout`): `FlowTransitionLabel`[]
调整子节点的 Labels,优先级高于子节点本身的 getLabels
##### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | `FlowNodeTransitionData` |
| `layout` | `FlowLayout` |
##### Returns
`FlowTransitionLabel`[]
#### Inherited from
FlowNodeRegistry.getChildLabels
___
### getChildLines
`Optional` **getChildLines**: (`transition`: `FlowNodeTransitionData`, `layout`: `FlowLayout`) => `FlowTransitionLine`[]
#### Type declaration
(`transition`, `layout`): `FlowTransitionLine`[]
调整子节点的线条,优先级高于子节点本身的 getLines
##### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | `FlowNodeTransitionData` |
| `layout` | `FlowLayout` |
##### Returns
`FlowTransitionLine`[]
#### Inherited from
FlowNodeRegistry.getChildLines
___
### getDelta
`Optional` **getDelta**: (`transform`: `FlowNodeTransformData`, `layout`: `FlowLayout`) => `undefined` \| `IPoint`
#### Type declaration
(`transform`, `layout`): `undefined` \| `IPoint`
获取当前节点 Position 偏移量,偏移量计算只能使用已经计算完的数据,如上一个节点或者子节点,不然会造成 o(n^2) 复杂度
1. 切记不要用当前节点的 localBounds(相对位置 bbox),因为 delta 计算发生在 localBounds 计算之前
2. 切记不要用 bounds(绝对位置 bbox, 会触发所有父节点绝对位置计算), bounds 只能在最终 render 时候使用
3. 可以用 pre 节点 和 子节点的 localBounds 或者 size 数据,因为子节点是先算的
4. 可以用当前节点的 size (所有子节点的最大 bbox), 这是已经确定下来的
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | `FlowNodeTransformData` |
| `layout` | `FlowLayout` |
##### Returns
`undefined` \| `IPoint`
#### Inherited from
FlowNodeRegistry.getDelta
___
### getInputPoint
`Optional` **getInputPoint**: (`transform`: `FlowNodeTransformData`, `layout`: `FlowLayout`) => `IPoint`
#### Type declaration
(`transform`, `layout`): `IPoint`
自定义输入节点
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | `FlowNodeTransformData` |
| `layout` | `FlowLayout` |
##### Returns
`IPoint`
#### Inherited from
FlowNodeRegistry.getInputPoint
___
### getLabels
`Optional` **getLabels**: (`transition`: `FlowNodeTransitionData`, `layout`: `FlowLayout`) => `FlowTransitionLabel`[]
#### Type declaration
(`transition`, `layout`): `FlowTransitionLabel`[]
创建 label
##### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | `FlowNodeTransitionData` |
| `layout` | `FlowLayout` |
##### Returns
`FlowTransitionLabel`[]
#### Inherited from
FlowNodeRegistry.getLabels
___
### getLines
`Optional` **getLines**: (`transition`: `FlowNodeTransitionData`, `layout`: `FlowLayout`) => `FlowTransitionLine`[]
#### Type declaration
(`transition`, `layout`): `FlowTransitionLine`[]
创建线条
##### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | `FlowNodeTransitionData` |
| `layout` | `FlowLayout` |
##### Returns
`FlowTransitionLine`[]
#### Inherited from
FlowNodeRegistry.getLines
___
### getOriginDeltaX
`Optional` **getOriginDeltaX**: (`transform`: `FlowNodeTransformData`, `layout`: `FlowLayout`) => `number`
#### Type declaration
(`transform`, `layout`): `number`
原点 X 偏移
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | `FlowNodeTransformData` |
| `layout` | `FlowLayout` |
##### Returns
`number`
#### Inherited from
FlowNodeRegistry.getOriginDeltaX
___
### getOriginDeltaY
`Optional` **getOriginDeltaY**: (`transform`: `FlowNodeTransformData`, `layout`: `FlowLayout`) => `number`
#### Type declaration
(`transform`, `layout`): `number`
原点 Y 偏移
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | `FlowNodeTransformData` |
| `layout` | `FlowLayout` |
##### Returns
`number`
#### Inherited from
FlowNodeRegistry.getOriginDeltaY
___
### getOutputPoint
`Optional` **getOutputPoint**: (`transform`: `FlowNodeTransformData`, `layoutKey`: `FlowLayout`) => `IPoint`
#### Type declaration
(`transform`, `layoutKey`): `IPoint`
自定义输出节点
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | `FlowNodeTransformData` |
| `layoutKey` | `FlowLayout` |
##### Returns
`IPoint`
#### Inherited from
FlowNodeRegistry.getOutputPoint
___
### meta
`Optional` **meta**: `Partial`\<[`WorkflowNodeMeta`](./WorkflowNodeMeta.md)\>
节点画布相关初始化配置信息,会覆盖 DEFAULT_FLOW_NODE_META
#### Inherited from
FlowNodeRegistry.meta
___
### onAfterUpdateLocalTransform
`Optional` **onAfterUpdateLocalTransform**: (`transform`: `FlowNodeTransformData`, `layout`: `FlowLayout`) => `void`
#### Type declaration
(`transform`, `layout`): `void`
在当前节点布局完成后调用,可以对布局做更精细的调整
##### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | `FlowNodeTransformData` |
| `layout` | `FlowLayout` |
##### Returns
`void`
#### Inherited from
FlowNodeRegistry.onAfterUpdateLocalTransform
___
### onBlockChildCreate
`Optional` **onBlockChildCreate**: (`node`: `FlowNodeEntity`, `json`: `FlowNodeJSON`, `addedNodes?`: `FlowNodeEntity`[]) => `FlowNodeEntity`
#### Type declaration
(`node`, `json`, `addedNodes?`): `FlowNodeEntity`
添加子 block,一般用于分支的动态添加
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `json` | `FlowNodeJSON` |
| `addedNodes?` | `FlowNodeEntity`[] |
##### Returns
`FlowNodeEntity`
#### Inherited from
FlowNodeRegistry.onBlockChildCreate
___
### onCreate
`Optional` **onCreate**: (`node`: `FlowNodeEntity`, `json`: `FlowNodeJSON`) => `void` \| `FlowNodeEntity`[]
#### Type declaration
(`node`, `json`): `void` \| `FlowNodeEntity`[]
自定义创建节点,可以自定义节点的树形结构
返回新加入的节点,这样才能统计缓存
##### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `FlowNodeEntity` |
| `json` | `FlowNodeJSON` |
##### Returns
`void` \| `FlowNodeEntity`[]
**`Action`**
使用该方法,在创建时候将会忽略 json blocks 数据,而是交给适用节点自己处理 json 逻辑
#### Inherited from
FlowNodeRegistry.onCreate
___
### type
**type**: `FlowNodeType`
节点类型
#### Inherited from
FlowNodeRegistry.type
## Methods
### getOrigin
`Optional` **getOrigin**(`transform`, `layout`): `IPoint`
动态获取原点,会覆盖 meta.origin
#### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | `FlowNodeTransformData` |
| `layout` | `FlowLayout` |
#### Returns
`IPoint`
#### Inherited from
FlowNodeRegistry.getOrigin
---
url: /auto-docs/free-layout-core/interfaces/WorkflowNodeRenderProps.md
---
# Interface: WorkflowNodeRenderProps
## Table of contents
### Properties
- [node](./WorkflowNodeRenderProps.md#node)
## Properties
### node
**node**: `FlowNodeEntity`
---
url: /auto-docs/free-layout-core/interfaces/WorkflowOperationBaseService.md
---
# Interface: WorkflowOperationBaseService
## Hierarchy
- `FlowOperationBaseService`
↳ **`WorkflowOperationBaseService`**
## Table of contents
### Properties
- [onNodeAdd](./WorkflowOperationBaseService.md#onnodeadd)
- [onNodeMove](./WorkflowOperationBaseService.md#onnodemove)
- [onNodePostionUpdate](./WorkflowOperationBaseService.md#onnodepostionupdate)
### Methods
- [addBlock](./WorkflowOperationBaseService.md#addblock)
- [addFromNode](./WorkflowOperationBaseService.md#addfromnode)
- [addNode](./WorkflowOperationBaseService.md#addnode)
- [apply](./WorkflowOperationBaseService.md#apply)
- [deleteNode](./WorkflowOperationBaseService.md#deletenode)
- [deleteNodes](./WorkflowOperationBaseService.md#deletenodes)
- [dispose](./WorkflowOperationBaseService.md#dispose)
- [dragNodes](./WorkflowOperationBaseService.md#dragnodes)
- [fromJSON](./WorkflowOperationBaseService.md#fromjson)
- [moveNode](./WorkflowOperationBaseService.md#movenode)
- [updateNodePosition](./WorkflowOperationBaseService.md#updatenodeposition)
## Properties
### onNodeAdd
**onNodeAdd**: `Event`\<`OnNodeAddEvent`\>
添加节点的回调
#### Inherited from
FlowOperationBaseService.onNodeAdd
___
### onNodeMove
**onNodeMove**: `Event`\<`OnNodeMoveEvent`\>
节点移动的回调
#### Inherited from
FlowOperationBaseService.onNodeMove
___
### onNodePostionUpdate
`Readonly` **onNodePostionUpdate**: `Event`\<[`NodePostionUpdateEvent`](./NodePostionUpdateEvent.md)\>
节点位置更新事件
## Methods
### addBlock
**addBlock**(`target`, `blockJSON`, `config?`): `FlowNodeEntity`
添加块(分支)
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `target` | `FlowNodeEntityOrId` | 目标 |
| `blockJSON` | `FlowNodeJSON` | 块数据 |
| `config?` | `AddBlockConfig` | 配置 |
#### Returns
`FlowNodeEntity`
#### Inherited from
FlowOperationBaseService.addBlock
___
### addFromNode
**addFromNode**(`fromNode`, `nodeJSON`): `FlowNodeEntity`
基于某一个起始节点往后面添加
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `fromNode` | `FlowNodeEntityOrId` | 起始节点 |
| `nodeJSON` | `FlowNodeJSON` | 添加的节点JSON |
#### Returns
`FlowNodeEntity`
#### Inherited from
FlowOperationBaseService.addFromNode
___
### addNode
**addNode**(`nodeJSON`, `config?`): `FlowNodeEntity`
添加节点,如果节点已经存在则不会重复创建
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `nodeJSON` | `FlowNodeJSON` | 节点数据 |
| `config?` | `AddNodeConfig` | 配置 |
#### Returns
`FlowNodeEntity`
成功添加的节点
#### Inherited from
FlowOperationBaseService.addNode
___
### apply
**apply**(`operation`): `any`
执行操作
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `operation` | `FlowOperation` | 可序列化的操作 |
#### Returns
`any`
操作返回
#### Inherited from
FlowOperationBaseService.apply
___
### deleteNode
**deleteNode**(`node`): `void`
删除节点
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `node` | `FlowNodeEntityOrId` | 节点 |
#### Returns
`void`
#### Inherited from
FlowOperationBaseService.deleteNode
___
### deleteNodes
**deleteNodes**(`nodes`): `void`
批量删除节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | `FlowNodeEntityOrId`[] |
#### Returns
`void`
#### Inherited from
FlowOperationBaseService.deleteNodes
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
FlowOperationBaseService.dispose
___
### dragNodes
**dragNodes**(`param0`): `void`
拖拽节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.dropNode` | `FlowNodeEntity` |
| `param0.nodes` | `FlowNodeEntity`[] |
#### Returns
`void`
#### Inherited from
FlowOperationBaseService.dragNodes
___
### fromJSON
**fromJSON**(`json`): `void`
更新节点与线条
#### Parameters
| Name | Type |
| :------ | :------ |
| `json` | [`WorkflowJSON`](./WorkflowJSON.md) |
#### Returns
`void`
___
### moveNode
**moveNode**(`node`, `config?`): `void`
移动节点
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `node` | `FlowNodeEntityOrId` | 被移动的节点 |
| `config?` | `MoveNodeConfig` | 移动节点配置 |
#### Returns
`void`
#### Inherited from
FlowOperationBaseService.moveNode
___
### updateNodePosition
**updateNodePosition**(`nodeOrId`, `position`): `void`
更新节点位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeOrId` | `FlowNodeEntityOrId` |
| `position` | `IPoint` |
#### Returns
`void`
---
url: /auto-docs/free-layout-core/interfaces/WorkflowPort.md
---
# Interface: WorkflowPort
## Hierarchy
- **`WorkflowPort`**
↳ [`WorkflowPortEntityOpts`](./WorkflowPortEntityOpts.md)
## Table of contents
### Properties
- [disabled](./WorkflowPort.md#disabled)
- [location](./WorkflowPort.md#location)
- [locationConfig](./WorkflowPort.md#locationconfig)
- [offset](./WorkflowPort.md#offset)
- [portID](./WorkflowPort.md#portid)
- [size](./WorkflowPort.md#size)
- [targetElement](./WorkflowPort.md#targetelement)
- [type](./WorkflowPort.md#type)
## Properties
### disabled
`Optional` **disabled**: `boolean`
禁用端口
___
### location
`Optional` **location**: [`LinePointLocation`](../types/LinePointLocation.md)
端口位置
___
### locationConfig
`Optional` **locationConfig**: `Object`
端口位置配置
**`Example`**
```ts
// bottom-center
{
left: '50%',
bottom: 0
}
// right-center
{
right: 0,
top: '50%'
}
```
#### Type declaration
| Name | Type |
| :------ | :------ |
| `bottom?` | `string` \| `number` |
| `left?` | `string` \| `number` |
| `right?` | `string` \| `number` |
| `top?` | `string` \| `number` |
___
### offset
`Optional` **offset**: `IPoint`
相对于 location 的偏移
___
### portID
`Optional` **portID**: `string` \| `number`
没有代表 默认连接点,默认 input 类型 为最左边中心,output 类型为最右边中心
___
### size
`Optional` **size**: `Object`
端口热区大小
#### Type declaration
| Name | Type |
| :------ | :------ |
| `height` | `number` |
| `width` | `number` |
___
### targetElement
`Optional` **targetElement**: `HTMLElement`
将点位渲染到该父节点上
___
### type
**type**: [`WorkflowPortType`](../types/WorkflowPortType.md)
输入或者输出点
---
url: /auto-docs/free-layout-core/interfaces/WorkflowPortEntityOpts.md
---
# Interface: WorkflowPortEntityOpts
## Hierarchy
- `EntityOpts`
- [`WorkflowPort`](./WorkflowPort.md)
↳ **`WorkflowPortEntityOpts`**
## Table of contents
### Properties
- [datas](./WorkflowPortEntityOpts.md#datas)
- [disabled](./WorkflowPortEntityOpts.md#disabled)
- [entityManager](./WorkflowPortEntityOpts.md#entitymanager)
- [id](./WorkflowPortEntityOpts.md#id)
- [location](./WorkflowPortEntityOpts.md#location)
- [locationConfig](./WorkflowPortEntityOpts.md#locationconfig)
- [node](./WorkflowPortEntityOpts.md#node)
- [offset](./WorkflowPortEntityOpts.md#offset)
- [portID](./WorkflowPortEntityOpts.md#portid)
- [savedInManager](./WorkflowPortEntityOpts.md#savedinmanager)
- [size](./WorkflowPortEntityOpts.md#size)
- [targetElement](./WorkflowPortEntityOpts.md#targetelement)
- [type](./WorkflowPortEntityOpts.md#type)
## Properties
### datas
`Optional` **datas**: \{ `data?`: `any` ; `registry`: `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> }[]
#### Inherited from
EntityOpts.datas
___
### disabled
`Optional` **disabled**: `boolean`
禁用端口
#### Inherited from
[WorkflowPort](./WorkflowPort.md).[disabled](./WorkflowPort.md#disabled)
___
### entityManager
**entityManager**: `EntityManager`
#### Inherited from
EntityOpts.entityManager
___
### id
`Optional` **id**: `string`
#### Inherited from
EntityOpts.id
___
### location
`Optional` **location**: [`LinePointLocation`](../types/LinePointLocation.md)
端口位置
#### Inherited from
[WorkflowPort](./WorkflowPort.md).[location](./WorkflowPort.md#location)
___
### locationConfig
`Optional` **locationConfig**: `Object`
端口位置配置
**`Example`**
```ts
// bottom-center
{
left: '50%',
bottom: 0
}
// right-center
{
right: 0,
top: '50%'
}
```
#### Type declaration
| Name | Type |
| :------ | :------ |
| `bottom?` | `string` \| `number` |
| `left?` | `string` \| `number` |
| `right?` | `string` \| `number` |
| `top?` | `string` \| `number` |
#### Inherited from
[WorkflowPort](./WorkflowPort.md).[locationConfig](./WorkflowPort.md#locationconfig)
___
### node
**node**: `FlowNodeEntity`
port 属于哪个节点
___
### offset
`Optional` **offset**: `IPoint`
相对于 location 的偏移
#### Inherited from
[WorkflowPort](./WorkflowPort.md).[offset](./WorkflowPort.md#offset)
___
### portID
`Optional` **portID**: `string` \| `number`
没有代表 默认连接点,默认 input 类型 为最左边中心,output 类型为最右边中心
#### Inherited from
[WorkflowPort](./WorkflowPort.md).[portID](./WorkflowPort.md#portid)
___
### savedInManager
`Optional` **savedInManager**: `boolean`
#### Inherited from
EntityOpts.savedInManager
___
### size
`Optional` **size**: `Object`
端口热区大小
#### Type declaration
| Name | Type |
| :------ | :------ |
| `height` | `number` |
| `width` | `number` |
#### Inherited from
[WorkflowPort](./WorkflowPort.md).[size](./WorkflowPort.md#size)
___
### targetElement
`Optional` **targetElement**: `HTMLElement`
将点位渲染到该父节点上
#### Inherited from
[WorkflowPort](./WorkflowPort.md).[targetElement](./WorkflowPort.md#targetelement)
___
### type
**type**: [`WorkflowPortType`](../types/WorkflowPortType.md)
输入或者输出点
#### Inherited from
[WorkflowPort](./WorkflowPort.md).[type](./WorkflowPort.md#type)
---
url: /auto-docs/free-layout-core/types/LinePointLocation.md
---
# Type alias: LinePointLocation
**LinePointLocation**: ``"left"`` \| ``"top"`` \| ``"right"`` \| ``"bottom"``
---
url: /auto-docs/free-layout-core/types/LineRenderType.md
---
# Type alias: LineRenderType
**LineRenderType**: [`LineType`](../enums/LineType.md) \| `string`
---
url: /auto-docs/free-layout-core/types/NodesDragEvent.md
---
# Type alias: NodesDragEvent
**NodesDragEvent**: [`NodesDragStartEvent`](../interfaces/NodesDragStartEvent.md) \| [`NodesDraggingEvent`](../interfaces/NodesDraggingEvent.md) \| [`NodesDragEndEvent`](../interfaces/NodesDragEndEvent.md)
---
url: /auto-docs/free-layout-core/types/OnDragLineEnd.md
---
# Type alias: OnDragLineEnd
**OnDragLineEnd**: (`params`: [`onDragLineEndParams`](./onDragLineEndParams.md)) => `Promise`\<`void`\>
#### Type declaration
(`params`): `Promise`\<`void`\>
##### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`onDragLineEndParams`](./onDragLineEndParams.md) |
##### Returns
`Promise`\<`void`\>
---
url: /auto-docs/free-layout-core/types/PositionMap.md
---
# Type alias: PositionMap
**PositionMap**: `Record`\<`string`, `IPoint`\>
---
url: /auto-docs/free-layout-core/types/WorkfloEntityHoverable.md
---
# Type alias: WorkfloEntityHoverable
**WorkfloEntityHoverable**: [`WorkflowEntityHoverable`](./WorkflowEntityHoverable.md)
**`Deprecated`**
---
url: /auto-docs/free-layout-core/types/WorkflowDocumentProvider.md
---
# Type alias: WorkflowDocumentProvider
**WorkflowDocumentProvider**: () => [`WorkflowDocument`](../classes/WorkflowDocument.md)
#### Type declaration
(): [`WorkflowDocument`](../classes/WorkflowDocument.md)
##### Returns
[`WorkflowDocument`](../classes/WorkflowDocument.md)
---
url: /auto-docs/free-layout-core/types/WorkflowEntityHoverable.md
---
# Type alias: WorkflowEntityHoverable
**WorkflowEntityHoverable**: [`WorkflowNodeEntity`](../variables/WorkflowNodeEntity-1.md) \| [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) \| [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md)
可 Hover 的节点 类型
---
url: /auto-docs/free-layout-core/types/WorkflowLineRenderContributionFactory.md
---
# Type alias: WorkflowLineRenderContributionFactory
**WorkflowLineRenderContributionFactory**: (`entity`: [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md)) => [`WorkflowLineRenderContribution`](../interfaces/WorkflowLineRenderContribution.md) & \{ `type`: [`LineRenderType`](./LineRenderType.md) }
---
url: /auto-docs/free-layout-core/types/WorkflowNodeEntity.md
---
# Type alias: WorkflowNodeEntity
**WorkflowNodeEntity**: `FlowNodeEntity`
---
url: /auto-docs/free-layout-core/types/WorkflowNodeFormMeta.md
---
# Type alias: WorkflowNodeFormMeta
**WorkflowNodeFormMeta**: `FormMetaOrFormMetaGenerator` \| `FormMeta`
节点表单引擎配置
---
url: /auto-docs/free-layout-core/types/WorkflowPortType.md
---
# Type alias: WorkflowPortType
**WorkflowPortType**: ``"input"`` \| ``"output"``
---
url: /auto-docs/free-layout-core/types/WorkflowPorts.md
---
# Type alias: WorkflowPorts
**WorkflowPorts**: [`WorkflowPort`](../interfaces/WorkflowPort.md)[]
---
url: /auto-docs/free-layout-core/types/WorkflowSubCanvas.md
---
# Type alias: WorkflowSubCanvas
**WorkflowSubCanvas**: `Object`
子画布配置
#### Type declaration
| Name | Type |
| :------ | :------ |
| `canvasNode` | [`WorkflowNodeEntity`](../variables/WorkflowNodeEntity-1.md) |
| `isCanvas` | `boolean` |
| `parentNode` | [`WorkflowNodeEntity`](../variables/WorkflowNodeEntity-1.md) |
---
url: /auto-docs/free-layout-core/types/onDragLineEndParams.md
---
# Type alias: onDragLineEndParams
**onDragLineEndParams**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `event` | `PlaygroundDragEvent` |
| `fromPort?` | [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
| `line?` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) |
| `mousePos` | `PositionSchema` |
| `originLine?` | [`WorkflowLineEntity`](../classes/WorkflowLineEntity.md) |
| `toPort?` | [`WorkflowPortEntity`](../classes/WorkflowPortEntity.md) |
---
url: /auto-docs/free-layout-core/variables/LINE_HOVER_DISTANCE.md
---
# Variable: LINE\_HOVER\_DISTANCE
`Const` **LINE\_HOVER\_DISTANCE**: ``8``
---
url: /auto-docs/free-layout-core/variables/POINT_RADIUS.md
---
# Variable: POINT\_RADIUS
`Const` **POINT\_RADIUS**: ``10``
---
url: /auto-docs/free-layout-core/variables/PORT_SIZE.md
---
# Variable: PORT\_SIZE
`Const` **PORT\_SIZE**: ``24``
---
url: /auto-docs/free-layout-core/variables/URLParams-1.md
---
# Variable: URLParams
`Const` **URLParams**: typeof [`URLParams`](./URLParams-1.md)
---
url: /auto-docs/free-layout-core/variables/WORKFLOW_LINE_ENTITY.md
---
# Variable: WORKFLOW\_LINE\_ENTITY
`Const` **WORKFLOW\_LINE\_ENTITY**: ``"WorkflowLineEntity"``
---
url: /auto-docs/free-layout-core/variables/WorkflowDocumentContainerModule.md
---
# Variable: WorkflowDocumentContainerModule
`Const` **WorkflowDocumentContainerModule**: `ContainerModule`
---
url: /auto-docs/free-layout-core/variables/WorkflowDocumentOptions-1.md
---
# Variable: WorkflowDocumentOptions
`Const` **WorkflowDocumentOptions**: typeof [`WorkflowDocumentOptions`](./WorkflowDocumentOptions-1.md)
---
url: /auto-docs/free-layout-core/variables/WorkflowDocumentOptionsDefault.md
---
# Variable: WorkflowDocumentOptionsDefault
`Const` **WorkflowDocumentOptionsDefault**: [`WorkflowDocumentOptions`](./WorkflowDocumentOptions-1.md)
---
url: /auto-docs/free-layout-core/variables/WorkflowDocumentProvider-1.md
---
# Variable: WorkflowDocumentProvider
`Const` **WorkflowDocumentProvider**: typeof [`WorkflowDocumentProvider`](./WorkflowDocumentProvider-1.md)
---
url: /auto-docs/free-layout-core/variables/WorkflowNodeEntity-1.md
---
# Variable: WorkflowNodeEntity
**WorkflowNodeEntity**: typeof `FlowNodeEntity`
---
url: /auto-docs/free-layout-core/variables/WorkflowOperationBaseService-1.md
---
# Variable: WorkflowOperationBaseService
**WorkflowOperationBaseService**: typeof [`WorkflowOperationBaseService`](./WorkflowOperationBaseService-1.md)
---
url: /auto-docs/renderer/classes/FlowContextMenuLayer.md
---
# Class: FlowContextMenuLayer
流程右键菜单
## Hierarchy
- `Layer`
↳ **`FlowContextMenuLayer`**
## Table of contents
### Constructors
- [constructor](./FlowContextMenuLayer.md#constructor)
### Properties
- [commandRegistry](./FlowContextMenuLayer.md#commandregistry)
- [config](./FlowContextMenuLayer.md#config)
- [context](./FlowContextMenuLayer.md#context)
- [contextMenuService](./FlowContextMenuLayer.md#contextmenuservice)
- [entityManager](./FlowContextMenuLayer.md#entitymanager)
- [getOtherLayer](./FlowContextMenuLayer.md#getotherlayer)
- [isFocused](./FlowContextMenuLayer.md#isfocused)
- [listenGlobalEvent](./FlowContextMenuLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowContextMenuLayer.md#listenplaygroundevent)
- [node](./FlowContextMenuLayer.md#node)
- [nodeRef](./FlowContextMenuLayer.md#noderef)
- [observeManager](./FlowContextMenuLayer.md#observemanager)
- [options](./FlowContextMenuLayer.md#options)
- [pipelineNode](./FlowContextMenuLayer.md#pipelinenode)
- [playgroundNode](./FlowContextMenuLayer.md#playgroundnode)
- [reloadEntities](./FlowContextMenuLayer.md#reloadentities)
- [renderWithReactMemo](./FlowContextMenuLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowContextMenuLayer.md#rendererregistry)
- [selectionService](./FlowContextMenuLayer.md#selectionservice)
### Methods
- [autorun](./FlowContextMenuLayer.md#autorun)
- [createDOMCache](./FlowContextMenuLayer.md#createdomcache)
- [dispose](./FlowContextMenuLayer.md#dispose)
- [getPosFromMouseEvent](./FlowContextMenuLayer.md#getposfrommouseevent)
- [isEnabled](./FlowContextMenuLayer.md#isenabled)
- [onBlur](./FlowContextMenuLayer.md#onblur)
- [onFocus](./FlowContextMenuLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowContextMenuLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowContextMenuLayer.md#onready)
- [onResize](./FlowContextMenuLayer.md#onresize)
- [onScroll](./FlowContextMenuLayer.md#onscroll)
- [onViewportChange](./FlowContextMenuLayer.md#onviewportchange)
- [onZoom](./FlowContextMenuLayer.md#onzoom)
- [render](./FlowContextMenuLayer.md#render)
- [renderCommandMenus](./FlowContextMenuLayer.md#rendercommandmenus)
## Constructors
### constructor
**new FlowContextMenuLayer**()
#### Inherited from
Layer.constructor
## Properties
### commandRegistry
`Readonly` **commandRegistry**: `CommandRegistry`
___
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### contextMenuService
`Readonly` **contextMenuService**: `ContextMenuService`
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
`Readonly` **node**: `HTMLDivElement`
#### Overrides
Layer.node
___
### nodeRef
`Readonly` **nodeRef**: `RefObject`\<\{ `setVisible`: (`v`: `boolean`) => `void` }\>
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
___
### selectionService
`Readonly` **selectionService**: `SelectionService`
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
Layer.autorun
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
Destroy
#### Returns
`void`
#### Overrides
Layer.dispose
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### isEnabled
**isEnabled**(): `boolean`
#### Returns
`boolean`
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
**onScroll**(): `void`
#### Returns
`void`
#### Overrides
Layer.onScroll
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
Layer.onViewportChange
___
### onZoom
**onZoom**(): `void`
#### Returns
`void`
#### Overrides
Layer.onZoom
___
### render
**render**(): `Element`
#### Returns
`Element`
#### Overrides
Layer.render
___
### renderCommandMenus
**renderCommandMenus**(): `Element`[]
渲染工具栏
#### Returns
`Element`[]
---
url: /auto-docs/renderer/classes/FlowDebugLayer.md
---
# Class: FlowDebugLayer
调试用,会绘出所有节点的边界
## Hierarchy
- `Layer`
↳ **`FlowDebugLayer`**
## Table of contents
### Constructors
- [constructor](./FlowDebugLayer.md#constructor)
### Properties
- [\_transforms](./FlowDebugLayer.md#_transforms)
- [boundsNodes](./FlowDebugLayer.md#boundsnodes)
- [config](./FlowDebugLayer.md#config)
- [context](./FlowDebugLayer.md#context)
- [document](./FlowDebugLayer.md#document)
- [documentTransformer](./FlowDebugLayer.md#documenttransformer)
- [domCache](./FlowDebugLayer.md#domcache)
- [entityManager](./FlowDebugLayer.md#entitymanager)
- [filterKey](./FlowDebugLayer.md#filterkey)
- [getOtherLayer](./FlowDebugLayer.md#getotherlayer)
- [isFocused](./FlowDebugLayer.md#isfocused)
- [listenGlobalEvent](./FlowDebugLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowDebugLayer.md#listenplaygroundevent)
- [node](./FlowDebugLayer.md#node)
- [observeManager](./FlowDebugLayer.md#observemanager)
- [options](./FlowDebugLayer.md#options)
- [pipelineNode](./FlowDebugLayer.md#pipelinenode)
- [playgroundNode](./FlowDebugLayer.md#playgroundnode)
- [pointsNodes](./FlowDebugLayer.md#pointsnodes)
- [reloadEntities](./FlowDebugLayer.md#reloadentities)
- [renderWithReactMemo](./FlowDebugLayer.md#renderwithreactmemo)
- [versionNodes](./FlowDebugLayer.md#versionnodes)
- [viewport](./FlowDebugLayer.md#viewport)
### Accessors
- [transforms](./FlowDebugLayer.md#transforms)
### Methods
- [autorun](./FlowDebugLayer.md#autorun)
- [createBounds](./FlowDebugLayer.md#createbounds)
- [createDOMCache](./FlowDebugLayer.md#createdomcache)
- [dispose](./FlowDebugLayer.md#dispose)
- [getPosFromMouseEvent](./FlowDebugLayer.md#getposfrommouseevent)
- [onBlur](./FlowDebugLayer.md#onblur)
- [onFocus](./FlowDebugLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowDebugLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowDebugLayer.md#onready)
- [onResize](./FlowDebugLayer.md#onresize)
- [onScroll](./FlowDebugLayer.md#onscroll)
- [onViewportChange](./FlowDebugLayer.md#onviewportchange)
- [onZoom](./FlowDebugLayer.md#onzoom)
- [render](./FlowDebugLayer.md#render)
- [renderScrollViewportBounds](./FlowDebugLayer.md#renderscrollviewportbounds)
## Constructors
### constructor
**new FlowDebugLayer**()
#### Inherited from
Layer.constructor
## Properties
### \_transforms
**\_transforms**: `FlowNodeTransformData`[]
___
### boundsNodes
**boundsNodes**: `HTMLDivElement`
___
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### document
`Readonly` **document**: `FlowDocument`\<`FlowDocumentJSON`\>
___
### documentTransformer
`Readonly` **documentTransformer**: `FlowDocumentTransformerEntity`
___
### domCache
**domCache**: `WeakMap`\<`FlowNodeTransformData`, \{ `bbox`: `HTMLDivElement` ; `color`: `string` ; `input`: `HTMLDivElement` ; `output`: `HTMLDivElement` ; `version`: `HTMLDivElement` }\>
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### filterKey
**filterKey**: `string`
?debug=xxxx, 则返回 xxxx
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
**node**: `HTMLElement`
#### Overrides
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### pointsNodes
**pointsNodes**: `HTMLDivElement`
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### versionNodes
**versionNodes**: `HTMLDivElement`
___
### viewport
**viewport**: `HTMLDivElement`
## Accessors
### transforms
`get` **transforms**(): `FlowNodeTransformData`[]
#### Returns
`FlowNodeTransformData`[]
## Methods
### autorun
**autorun**(): `void`
#### Returns
`void`
#### Overrides
Layer.autorun
___
### createBounds
**createBounds**(`transform`, `color`, `depth`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | `FlowNodeTransformData` |
| `color` | `string` |
| `depth` | `number` |
#### Returns
`void`
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
Layer.dispose
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
**onResize**(): `void`
#### Returns
`void`
#### Overrides
Layer.onResize
___
### onScroll
**onScroll**(): `void`
#### Returns
`void`
#### Overrides
Layer.onScroll
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
Layer.onViewportChange
___
### onZoom
**onZoom**(`scale`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
Layer.onZoom
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
Layer.render
___
### renderScrollViewportBounds
**renderScrollViewportBounds**(): `void`
显示 viewport 可滚动区域
#### Returns
`void`
---
url: /auto-docs/renderer/classes/FlowDragEntity.md
---
# Class: FlowDragEntity
## Hierarchy
- `ConfigEntity`\<`FlowDragEntityConfig`\>
↳ **`FlowDragEntity`**
## Table of contents
### Constructors
- [constructor](./FlowDragEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowDragEntity.md#__opts_type__)
- [entityManager](./FlowDragEntity.md#entitymanager)
- [onDataChange](./FlowDragEntity.md#ondatachange)
- [onEntityChange](./FlowDragEntity.md#onentitychange)
- [preDispose](./FlowDragEntity.md#predispose)
- [toDispose](./FlowDragEntity.md#todispose)
- [type](./FlowDragEntity.md#type)
### Accessors
- [config](./FlowDragEntity.md#config)
- [context](./FlowDragEntity.md#context)
- [disposed](./FlowDragEntity.md#disposed)
- [hasScroll](./FlowDragEntity.md#hasscroll)
- [id](./FlowDragEntity.md#id)
- [onDispose](./FlowDragEntity.md#ondispose)
- [savedInManager](./FlowDragEntity.md#savedinmanager)
- [type](./FlowDragEntity.md#type-1)
- [version](./FlowDragEntity.md#version)
### Methods
- [addData](./FlowDragEntity.md#adddata)
- [addInitializeData](./FlowDragEntity.md#addinitializedata)
- [checkChanged](./FlowDragEntity.md#checkchanged)
- [dispose](./FlowDragEntity.md#dispose)
- [fromJSON](./FlowDragEntity.md#fromjson)
- [getData](./FlowDragEntity.md#getdata)
- [getDefaultConfig](./FlowDragEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./FlowDragEntity.md#getdefaultdataregistries)
- [getService](./FlowDragEntity.md#getservice)
- [hasData](./FlowDragEntity.md#hasdata)
- [isBranchCollision](./FlowDragEntity.md#isbranchcollision)
- [isCollision](./FlowDragEntity.md#iscollision)
- [isNodeCollision](./FlowDragEntity.md#isnodecollision)
- [onConfigChanged](./FlowDragEntity.md#onconfigchanged)
- [removeData](./FlowDragEntity.md#removedata)
- [reset](./FlowDragEntity.md#reset)
- [scrollDirection](./FlowDragEntity.md#scrolldirection)
- [stopAllScroll](./FlowDragEntity.md#stopallscroll)
- [toJSON](./FlowDragEntity.md#tojson)
- [updateConfig](./FlowDragEntity.md#updateconfig)
- [updateData](./FlowDragEntity.md#updatedata)
## Constructors
### constructor
**new FlowDragEntity**(`conf`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `conf` | `any` |
#### Overrides
ConfigEntity\<FlowDragEntityConfig\>.constructor
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `EntityOpts`
#### Inherited from
ConfigEntity.\_\_opts\_type\_\_
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
全局的entity管理器
#### Inherited from
ConfigEntity.entityManager
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityDataChangedEvent`\<`Entity`\<`EntityOpts`\>\>\>
数据更改事件
#### Inherited from
ConfigEntity.onDataChange
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<`Entity`\<`EntityOpts`\>\>
修改会触发
#### Inherited from
ConfigEntity.onEntityChange
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
ConfigEntity.preDispose
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
ConfigEntity.toDispose
___
### type
`Static` **type**: `string` = `'FlowDragEntity'`
#### Overrides
ConfigEntity.type
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### hasScroll
`get` **hasScroll**(): `boolean`
#### Returns
`boolean`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
| `defaultProps?` | `EntityDataProps`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.addData
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.addInitializeData
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `FlowDragEntityConfig` |
| `newData` | `Partial`\<`FlowDragEntityConfig`\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.checkChanged
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Overrides
ConfigEntity.dispose
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.fromJSON
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.getData
___
### getDefaultConfig
**getDefaultConfig**(): `FlowDragEntityConfig`
#### Returns
`FlowDragEntityConfig`
#### Inherited from
ConfigEntity.getDefaultConfig
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
`EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
#### Inherited from
ConfigEntity.getDefaultDataRegistries
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
ConfigEntity.getService
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.hasData
___
### isBranchCollision
**isBranchCollision**(`transition`, `rect`, `scale`): [`CollisionRetType`](../interfaces/CollisionRetType.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | `FlowNodeTransitionData` |
| `rect` | `Rectangle` |
| `scale` | `number` |
#### Returns
[`CollisionRetType`](../interfaces/CollisionRetType.md)
___
### isCollision
**isCollision**(`transition`, `rect`, `isBranch`): [`CollisionRetType`](../interfaces/CollisionRetType.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | `FlowNodeTransitionData` |
| `rect` | `Rectangle` |
| `isBranch` | `boolean` |
#### Returns
[`CollisionRetType`](../interfaces/CollisionRetType.md)
___
### isNodeCollision
**isNodeCollision**(`transition`, `rect`, `scale`): [`CollisionRetType`](../interfaces/CollisionRetType.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | `FlowNodeTransitionData` |
| `rect` | `Rectangle` |
| `scale` | `number` |
#### Returns
[`CollisionRetType`](../interfaces/CollisionRetType.md)
___
### onConfigChanged
**onConfigChanged**(`fn`): `Disposable`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: `FlowDragEntityConfig`) => `void` |
#### Returns
`Disposable`
#### Inherited from
ConfigEntity.onConfigChanged
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.removeData
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
ConfigEntity.reset
___
### scrollDirection
**scrollDirection**(`e`, `x`, `y`): `undefined` \| `ScrollDirection`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` |
| `x` | `number` |
| `y` | `number` |
#### Returns
`undefined` \| `ScrollDirection`
___
### stopAllScroll
**stopAllScroll**(): `void`
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
ConfigEntity.toJSON
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<`FlowDragEntityConfig`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateConfig
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
| `props` | `EntityDataProps`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateData
---
url: /auto-docs/renderer/classes/FlowDragLayer.md
---
# Class: FlowDragLayer
监听节点的激活状态
## Hierarchy
- `Layer`\<[`FlowDragOptions`](../interfaces/FlowDragOptions.md)\>
↳ **`FlowDragLayer`**
## Table of contents
### Constructors
- [constructor](./FlowDragLayer.md#constructor)
### Properties
- [config](./FlowDragLayer.md#config)
- [containerRef](./FlowDragLayer.md#containerref)
- [context](./FlowDragLayer.md#context)
- [document](./FlowDragLayer.md#document)
- [dragOffset](./FlowDragLayer.md#dragoffset)
- [draggingNodeMask](./FlowDragLayer.md#draggingnodemask)
- [entityManager](./FlowDragLayer.md#entitymanager)
- [flowDragService](./FlowDragLayer.md#flowdragservice)
- [getOtherLayer](./FlowDragLayer.md#getotherlayer)
- [isFocused](./FlowDragLayer.md#isfocused)
- [listenGlobalEvent](./FlowDragLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowDragLayer.md#listenplaygroundevent)
- [node](./FlowDragLayer.md#node)
- [observeManager](./FlowDragLayer.md#observemanager)
- [options](./FlowDragLayer.md#options)
- [pipelineNode](./FlowDragLayer.md#pipelinenode)
- [playgroundNode](./FlowDragLayer.md#playgroundnode)
- [reloadEntities](./FlowDragLayer.md#reloadentities)
- [renderWithReactMemo](./FlowDragLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowDragLayer.md#rendererregistry)
- [transforms](./FlowDragLayer.md#transforms)
### Accessors
- [dragEntities](./FlowDragLayer.md#dragentities)
- [dragStartEntity](./FlowDragLayer.md#dragstartentity)
- [transitions](./FlowDragLayer.md#transitions)
### Methods
- [autorun](./FlowDragLayer.md#autorun)
- [createDOMCache](./FlowDragLayer.md#createdomcache)
- [dispose](./FlowDragLayer.md#dispose)
- [dragEnable](./FlowDragLayer.md#dragenable)
- [getPosFromMouseEvent](./FlowDragLayer.md#getposfrommouseevent)
- [handleMouseMove](./FlowDragLayer.md#handlemousemove)
- [handleMouseUp](./FlowDragLayer.md#handlemouseup)
- [onBlur](./FlowDragLayer.md#onblur)
- [onFocus](./FlowDragLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowDragLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowDragLayer.md#onready)
- [onResize](./FlowDragLayer.md#onresize)
- [onScroll](./FlowDragLayer.md#onscroll)
- [onViewportChange](./FlowDragLayer.md#onviewportchange)
- [onZoom](./FlowDragLayer.md#onzoom)
- [render](./FlowDragLayer.md#render)
- [setDraggingStatus](./FlowDragLayer.md#setdraggingstatus)
- [startDrag](./FlowDragLayer.md#startdrag)
## Constructors
### constructor
**new FlowDragLayer**()
#### Inherited from
Layer\.constructor
## Properties
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### containerRef
**containerRef**: `RefObject`\<`HTMLDivElement`\>
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### document
`Readonly` **document**: `FlowDocument`\<`FlowDocumentJSON`\>
___
### dragOffset
**dragOffset**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `x` | `number` |
| `y` | `number` |
___
### draggingNodeMask
**draggingNodeMask**: `HTMLDivElement`
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### flowDragService
`Readonly` **flowDragService**: `FlowDragService`
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Inherited from
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### options
**options**: [`FlowDragOptions`](../interfaces/FlowDragOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
___
### transforms
**transforms**: `FlowNodeTransformData`[]
## Accessors
### dragEntities
`get` **dragEntities**(): `FlowNodeEntity`[]
#### Returns
`FlowNodeEntity`[]
`set` **dragEntities**(`entities`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entities` | `FlowNodeEntity`[] |
#### Returns
`void`
___
### dragStartEntity
`get` **dragStartEntity**(): `undefined` \| `FlowNodeEntity`
#### Returns
`undefined` \| `FlowNodeEntity`
`set` **dragStartEntity**(`entity`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | `undefined` \| `FlowNodeEntity` |
#### Returns
`void`
___
### transitions
`get` **transitions**(): `FlowNodeTransitionData`[]
#### Returns
`FlowNodeTransitionData`[]
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
Layer.autorun
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Overrides
Layer.dispose
___
### dragEnable
**dragEnable**(`e`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` |
#### Returns
`boolean`
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### handleMouseMove
**handleMouseMove**(`event`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `MouseEvent` |
#### Returns
`void`
___
### handleMouseUp
**handleMouseUp**(): `Promise`\<`void`\>
#### Returns
`Promise`\<`void`\>
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onScroll
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
Layer.onViewportChange
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onZoom
___
### render
**render**(): `ReactPortal`
#### Returns
`ReactPortal`
#### Overrides
Layer.render
___
### setDraggingStatus
**setDraggingStatus**(`status`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `status` | `boolean` |
#### Returns
`void`
___
### startDrag
**startDrag**(`e`, `«destructured»`, `options?`): `Promise`\<`void`\>
开始拖拽事件
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `Object` |
| `e.clientX` | `number` |
| `e.clientY` | `number` |
| `«destructured»` | `StartDragProps` |
| `options?` | `Object` |
| `options.disableDragScroll?` | `boolean` |
| `options.dragOffsetX?` | `number` |
| `options.dragOffsetY?` | `number` |
#### Returns
`Promise`\<`void`\>
---
url: /auto-docs/renderer/classes/FlowLabelsLayer.md
---
# Class: FlowLabelsLayer
## Hierarchy
- `Layer`
↳ **`FlowLabelsLayer`**
## Table of contents
### Constructors
- [constructor](./FlowLabelsLayer.md#constructor)
### Properties
- [\_transitions](./FlowLabelsLayer.md#_transitions)
- [config](./FlowLabelsLayer.md#config)
- [context](./FlowLabelsLayer.md#context)
- [document](./FlowLabelsLayer.md#document)
- [documentTransformer](./FlowLabelsLayer.md#documenttransformer)
- [entityManager](./FlowLabelsLayer.md#entitymanager)
- [flowRenderState](./FlowLabelsLayer.md#flowrenderstate)
- [getOtherLayer](./FlowLabelsLayer.md#getotherlayer)
- [isFocused](./FlowLabelsLayer.md#isfocused)
- [listenGlobalEvent](./FlowLabelsLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowLabelsLayer.md#listenplaygroundevent)
- [node](./FlowLabelsLayer.md#node)
- [observeManager](./FlowLabelsLayer.md#observemanager)
- [onViewportChange](./FlowLabelsLayer.md#onviewportchange)
- [options](./FlowLabelsLayer.md#options)
- [pipelineNode](./FlowLabelsLayer.md#pipelinenode)
- [playgroundNode](./FlowLabelsLayer.md#playgroundnode)
- [reloadEntities](./FlowLabelsLayer.md#reloadentities)
- [renderWithReactMemo](./FlowLabelsLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowLabelsLayer.md#rendererregistry)
### Accessors
- [transitions](./FlowLabelsLayer.md#transitions)
### Methods
- [autorun](./FlowLabelsLayer.md#autorun)
- [createDOMCache](./FlowLabelsLayer.md#createdomcache)
- [dispose](./FlowLabelsLayer.md#dispose)
- [getPosFromMouseEvent](./FlowLabelsLayer.md#getposfrommouseevent)
- [onBlur](./FlowLabelsLayer.md#onblur)
- [onFocus](./FlowLabelsLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowLabelsLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowLabelsLayer.md#onready)
- [onResize](./FlowLabelsLayer.md#onresize)
- [onScroll](./FlowLabelsLayer.md#onscroll)
- [onZoom](./FlowLabelsLayer.md#onzoom)
- [render](./FlowLabelsLayer.md#render)
## Constructors
### constructor
**new FlowLabelsLayer**()
#### Inherited from
Layer.constructor
## Properties
### \_transitions
**\_transitions**: `FlowNodeTransitionData`[]
监听 transition 变化
___
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### document
`Readonly` **document**: `FlowDocument`\<`FlowDocumentJSON`\>
___
### documentTransformer
`Readonly` **documentTransformer**: `FlowDocumentTransformerEntity`
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### flowRenderState
`Readonly` **flowRenderState**: `FlowRendererStateEntity`
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
**node**: `HTMLDivElement`
#### Overrides
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### onViewportChange
**onViewportChange**: `DebouncedFunc`\<(...`args`: `any`) => `any`\>
可视区域变化
#### Overrides
Layer.onViewportChange
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
## Accessors
### transitions
`get` **transitions**(): `FlowNodeTransitionData`[]
#### Returns
`FlowNodeTransitionData`[]
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
Layer.autorun
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
Layer.dispose
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
**onReadonlyOrDisabledChange**(): `void`
监听readonly和 disabled 状态 并刷新layer, 并刷新
#### Returns
`void`
#### Overrides
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onScroll
___
### onZoom
**onZoom**(`scale`): `void`
监听缩放,目前采用整体缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
Layer.onZoom
___
### render
**render**(): `Element`
#### Returns
`Element`
#### Overrides
Layer.render
---
url: /auto-docs/renderer/classes/FlowLinesLayer.md
---
# Class: FlowLinesLayer
## Hierarchy
- `Layer`
↳ **`FlowLinesLayer`**
## Table of contents
### Constructors
- [constructor](./FlowLinesLayer.md#constructor)
### Properties
- [\_transitions](./FlowLinesLayer.md#_transitions)
- [config](./FlowLinesLayer.md#config)
- [context](./FlowLinesLayer.md#context)
- [document](./FlowLinesLayer.md#document)
- [documentTransformer](./FlowLinesLayer.md#documenttransformer)
- [entityManager](./FlowLinesLayer.md#entitymanager)
- [flowRenderState](./FlowLinesLayer.md#flowrenderstate)
- [getOtherLayer](./FlowLinesLayer.md#getotherlayer)
- [isFocused](./FlowLinesLayer.md#isfocused)
- [listenGlobalEvent](./FlowLinesLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowLinesLayer.md#listenplaygroundevent)
- [node](./FlowLinesLayer.md#node)
- [observeManager](./FlowLinesLayer.md#observemanager)
- [onViewportChange](./FlowLinesLayer.md#onviewportchange)
- [options](./FlowLinesLayer.md#options)
- [pipelineNode](./FlowLinesLayer.md#pipelinenode)
- [playgroundNode](./FlowLinesLayer.md#playgroundnode)
- [reloadEntities](./FlowLinesLayer.md#reloadentities)
- [renderWithReactMemo](./FlowLinesLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowLinesLayer.md#rendererregistry)
### Accessors
- [transitions](./FlowLinesLayer.md#transitions)
- [viewBox](./FlowLinesLayer.md#viewbox)
### Methods
- [autorun](./FlowLinesLayer.md#autorun)
- [createDOMCache](./FlowLinesLayer.md#createdomcache)
- [dispose](./FlowLinesLayer.md#dispose)
- [getPosFromMouseEvent](./FlowLinesLayer.md#getposfrommouseevent)
- [onBlur](./FlowLinesLayer.md#onblur)
- [onFocus](./FlowLinesLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowLinesLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowLinesLayer.md#onready)
- [onResize](./FlowLinesLayer.md#onresize)
- [onScroll](./FlowLinesLayer.md#onscroll)
- [onZoom](./FlowLinesLayer.md#onzoom)
- [render](./FlowLinesLayer.md#render)
## Constructors
### constructor
**new FlowLinesLayer**()
#### Inherited from
Layer.constructor
## Properties
### \_transitions
**\_transitions**: `FlowNodeTransitionData`[]
监听 transition 变化
___
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### document
`Readonly` **document**: `FlowDocument`\<`FlowDocumentJSON`\>
___
### documentTransformer
`Readonly` **documentTransformer**: `FlowDocumentTransformerEntity`
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### flowRenderState
`Readonly` **flowRenderState**: `FlowRendererStateEntity`
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
**node**: `HTMLDivElement`
#### Overrides
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### onViewportChange
**onViewportChange**: `DebouncedFunc`\<(...`args`: `any`) => `any`\>
可视区域变化
#### Overrides
Layer.onViewportChange
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
## Accessors
### transitions
`get` **transitions**(): `FlowNodeTransitionData`[]
#### Returns
`FlowNodeTransitionData`[]
___
### viewBox
`get` **viewBox**(): `string`
#### Returns
`string`
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
Layer.autorun
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
Layer.dispose
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onScroll
___
### onZoom
**onZoom**(): `void`
#### Returns
`void`
#### Overrides
Layer.onZoom
___
### render
**render**(): `Element`
#### Returns
`Element`
#### Overrides
Layer.render
---
url: /auto-docs/renderer/classes/FlowNodesContentLayer.md
---
# Class: FlowNodesContentLayer
渲染节点内容
## Hierarchy
- `Layer`
↳ **`FlowNodesContentLayer`**
## Table of contents
### Constructors
- [constructor](./FlowNodesContentLayer.md#constructor)
### Properties
- [\_renderStates](./FlowNodesContentLayer.md#_renderstates)
- [config](./FlowNodesContentLayer.md#config)
- [context](./FlowNodesContentLayer.md#context)
- [document](./FlowNodesContentLayer.md#document)
- [documentTransformer](./FlowNodesContentLayer.md#documenttransformer)
- [entityManager](./FlowNodesContentLayer.md#entitymanager)
- [getOtherLayer](./FlowNodesContentLayer.md#getotherlayer)
- [isFocused](./FlowNodesContentLayer.md#isfocused)
- [listenGlobalEvent](./FlowNodesContentLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowNodesContentLayer.md#listenplaygroundevent)
- [node](./FlowNodesContentLayer.md#node)
- [observeManager](./FlowNodesContentLayer.md#observemanager)
- [options](./FlowNodesContentLayer.md#options)
- [pipelineNode](./FlowNodesContentLayer.md#pipelinenode)
- [playgroundNode](./FlowNodesContentLayer.md#playgroundnode)
- [reloadEntities](./FlowNodesContentLayer.md#reloadentities)
- [renderWithReactMemo](./FlowNodesContentLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowNodesContentLayer.md#rendererregistry)
### Accessors
- [renderStatesVisible](./FlowNodesContentLayer.md#renderstatesvisible)
### Methods
- [autorun](./FlowNodesContentLayer.md#autorun)
- [createDOMCache](./FlowNodesContentLayer.md#createdomcache)
- [dispose](./FlowNodesContentLayer.md#dispose)
- [getPortalRenderer](./FlowNodesContentLayer.md#getportalrenderer)
- [getPortals](./FlowNodesContentLayer.md#getportals)
- [getPosFromMouseEvent](./FlowNodesContentLayer.md#getposfrommouseevent)
- [onBlur](./FlowNodesContentLayer.md#onblur)
- [onFocus](./FlowNodesContentLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowNodesContentLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowNodesContentLayer.md#onready)
- [onResize](./FlowNodesContentLayer.md#onresize)
- [onScroll](./FlowNodesContentLayer.md#onscroll)
- [onViewportChange](./FlowNodesContentLayer.md#onviewportchange)
- [onZoom](./FlowNodesContentLayer.md#onzoom)
- [render](./FlowNodesContentLayer.md#render)
## Constructors
### constructor
**new FlowNodesContentLayer**()
#### Inherited from
Layer.constructor
## Properties
### \_renderStates
**\_renderStates**: `FlowNodeRenderData`[]
___
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### document
`Readonly` **document**: `FlowDocument`\<`FlowDocumentJSON`\>
___
### documentTransformer
`Readonly` **documentTransformer**: `FlowDocumentTransformerEntity`
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
**node**: `HTMLDivElement`
#### Overrides
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
## Accessors
### renderStatesVisible
`get` **renderStatesVisible**(): `FlowNodeRenderData`[]
#### Returns
`FlowNodeRenderData`[]
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
Layer.autorun
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Overrides
Layer.dispose
___
### getPortalRenderer
**getPortalRenderer**(`data`): (`props`: `any`) => `Element`
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `FlowNodeRenderData` |
#### Returns
`fn`
(`props`): `Element`
##### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `any` |
##### Returns
`Element`
___
### getPortals
**getPortals**(): `NodePortal`[]
#### Returns
`NodePortal`[]
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
**onReadonlyOrDisabledChange**(): `void`
监听readonly和 disabled 状态 并刷新layer, 并刷新节点
#### Returns
`void`
#### Overrides
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onScroll
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
Layer.onViewportChange
___
### onZoom
**onZoom**(`scale`): `void`
监听缩放,目前采用整体缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
Layer.onZoom
___
### render
**render**(): `Element`
#### Returns
`Element`
#### Overrides
Layer.render
---
url: /auto-docs/renderer/classes/FlowNodesTransformLayer.md
---
# Class: FlowNodesTransformLayer
渲染节点位置
## Hierarchy
- `Layer`\<[`FlowNodesTransformLayerOptions`](../interfaces/FlowNodesTransformLayerOptions.md)\>
↳ **`FlowNodesTransformLayer`**
## Table of contents
### Constructors
- [constructor](./FlowNodesTransformLayer.md#constructor)
### Properties
- [\_transforms](./FlowNodesTransformLayer.md#_transforms)
- [config](./FlowNodesTransformLayer.md#config)
- [context](./FlowNodesTransformLayer.md#context)
- [document](./FlowNodesTransformLayer.md#document)
- [documentTransformer](./FlowNodesTransformLayer.md#documenttransformer)
- [entityManager](./FlowNodesTransformLayer.md#entitymanager)
- [getOtherLayer](./FlowNodesTransformLayer.md#getotherlayer)
- [isFocused](./FlowNodesTransformLayer.md#isfocused)
- [listenGlobalEvent](./FlowNodesTransformLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowNodesTransformLayer.md#listenplaygroundevent)
- [node](./FlowNodesTransformLayer.md#node)
- [observeManager](./FlowNodesTransformLayer.md#observemanager)
- [options](./FlowNodesTransformLayer.md#options)
- [pipelineNode](./FlowNodesTransformLayer.md#pipelinenode)
- [playgroundNode](./FlowNodesTransformLayer.md#playgroundnode)
- [reloadEntities](./FlowNodesTransformLayer.md#reloadentities)
- [renderWithReactMemo](./FlowNodesTransformLayer.md#renderwithreactmemo)
- [resizeObserver](./FlowNodesTransformLayer.md#resizeobserver)
### Accessors
- [transformVisibles](./FlowNodesTransformLayer.md#transformvisibles)
- [visibeBounds](./FlowNodesTransformLayer.md#visibebounds)
### Methods
- [autorun](./FlowNodesTransformLayer.md#autorun)
- [createDOMCache](./FlowNodesTransformLayer.md#createdomcache)
- [dispose](./FlowNodesTransformLayer.md#dispose)
- [getPosFromMouseEvent](./FlowNodesTransformLayer.md#getposfrommouseevent)
- [onBlur](./FlowNodesTransformLayer.md#onblur)
- [onFocus](./FlowNodesTransformLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowNodesTransformLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowNodesTransformLayer.md#onready)
- [onResize](./FlowNodesTransformLayer.md#onresize)
- [onScroll](./FlowNodesTransformLayer.md#onscroll)
- [onViewportChange](./FlowNodesTransformLayer.md#onviewportchange)
- [onZoom](./FlowNodesTransformLayer.md#onzoom)
- [render](./FlowNodesTransformLayer.md#render)
- [updateNodesBounds](./FlowNodesTransformLayer.md#updatenodesbounds)
## Constructors
### constructor
**new FlowNodesTransformLayer**()
#### Inherited from
Layer\.constructor
## Properties
### \_transforms
**\_transforms**: `FlowNodeTransformData`[]
___
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### document
`Readonly` **document**: `FlowDocument`\<`FlowDocumentJSON`\>
___
### documentTransformer
`Readonly` **documentTransformer**: `FlowDocumentTransformerEntity`
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
**node**: `HTMLDivElement`
#### Overrides
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### options
**options**: [`FlowNodesTransformLayerOptions`](../interfaces/FlowNodesTransformLayerOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### resizeObserver
`Readonly` **resizeObserver**: `FlowRendererResizeObserver`
## Accessors
### transformVisibles
`get` **transformVisibles**(): `FlowNodeTransformData`[]
#### Returns
`FlowNodeTransformData`[]
___
### visibeBounds
`get` **visibeBounds**(): `Rectangle`[]
#### Returns
`Rectangle`[]
## Methods
### autorun
**autorun**(): `void`
#### Returns
`void`
#### Overrides
Layer.autorun
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Overrides
Layer.dispose
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onScroll
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
Layer.onViewportChange
___
### onZoom
**onZoom**(`scale`): `void`
监听缩放,目前采用整体缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
Layer.onZoom
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
Layer.render
___
### updateNodesBounds
**updateNodesBounds**(): `void`
更新节点的 bounds 数据
#### Returns
`void`
---
url: /auto-docs/renderer/classes/FlowRendererRegistry.md
---
# Class: FlowRendererRegistry
## Table of contents
### Constructors
- [constructor](./FlowRendererRegistry.md#constructor)
### Properties
- [pipeline](./FlowRendererRegistry.md#pipeline)
### Methods
- [getRendererComponent](./FlowRendererRegistry.md#getrenderercomponent)
- [getText](./FlowRendererRegistry.md#gettext)
- [init](./FlowRendererRegistry.md#init)
- [registerLayer](./FlowRendererRegistry.md#registerlayer)
- [registerLayers](./FlowRendererRegistry.md#registerlayers)
- [registerReactComponent](./FlowRendererRegistry.md#registerreactcomponent)
- [registerRendererComponents](./FlowRendererRegistry.md#registerrenderercomponents)
- [registerText](./FlowRendererRegistry.md#registertext)
- [tryToGetRendererComponent](./FlowRendererRegistry.md#trytogetrenderercomponent)
## Constructors
### constructor
**new FlowRendererRegistry**()
## Properties
### pipeline
`Readonly` **pipeline**: `PipelineRegistry`
## Methods
### getRendererComponent
**getRendererComponent**(`renderKey`): [`FlowRendererComponent`](../interfaces/FlowRendererComponent.md)
TODO: support memo
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderKey` | `string` |
#### Returns
[`FlowRendererComponent`](../interfaces/FlowRendererComponent.md)
___
### getText
**getText**(`textKey`): `undefined` \| `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `textKey` | `string` |
#### Returns
`undefined` \| `string`
___
### init
**init**(): `void`
#### Returns
`void`
___
### registerLayer
**registerLayer**\<`P`\>(`layerRegistry`, `options?`): `void`
根据配置注册画布
#### Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends `Layer`\<`any`, `any`, `P`\> = `Layer`\<`any`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`Layer`\<`any`, `any`\>\> |
| `options?` | `P`[``"options"``] |
#### Returns
`void`
___
### registerLayers
**registerLayers**(`...layerRegistries`): `void`
注册画布层
#### Parameters
| Name | Type |
| :------ | :------ |
| `...layerRegistries` | `LayerRegistry`\<`Layer`\<`any`, `any`\>\>[] |
#### Returns
`void`
___
### registerReactComponent
**registerReactComponent**(`renderKey`, `renderer`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderKey` | `string` |
| `renderer` | (`props`: `any`) => `any` |
#### Returns
`void`
___
### registerRendererComponents
**registerRendererComponents**(`renderKey`, `comp`): `void`
注册 组件数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderKey` | `string` |
| `comp` | [`FlowRendererComponent`](../interfaces/FlowRendererComponent.md) |
#### Returns
`void`
___
### registerText
**registerText**(`configs`): `void`
注册文案
#### Parameters
| Name | Type |
| :------ | :------ |
| `configs` | `Record`\<`string`, `string`\> |
#### Returns
`void`
___
### tryToGetRendererComponent
**tryToGetRendererComponent**(`renderKey`): `undefined` \| [`FlowRendererComponent`](../interfaces/FlowRendererComponent.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderKey` | `string` |
#### Returns
`undefined` \| [`FlowRendererComponent`](../interfaces/FlowRendererComponent.md)
---
url: /auto-docs/renderer/classes/FlowScrollBarLayer.md
---
# Class: FlowScrollBarLayer
渲染滚动条 layer
## Hierarchy
- `Layer`\<[`ScrollBarOptions`](../interfaces/ScrollBarOptions.md)\>
↳ **`FlowScrollBarLayer`**
## Table of contents
### Constructors
- [constructor](./FlowScrollBarLayer.md#constructor)
### Properties
- [bottomScrollBar](./FlowScrollBarLayer.md#bottomscrollbar)
- [bottomScrollBarBlock](./FlowScrollBarLayer.md#bottomscrollbarblock)
- [config](./FlowScrollBarLayer.md#config)
- [context](./FlowScrollBarLayer.md#context)
- [entityManager](./FlowScrollBarLayer.md#entitymanager)
- [events](./FlowScrollBarLayer.md#events)
- [flowDocument](./FlowScrollBarLayer.md#flowdocument)
- [getOtherLayer](./FlowScrollBarLayer.md#getotherlayer)
- [isFocused](./FlowScrollBarLayer.md#isfocused)
- [listenGlobalEvent](./FlowScrollBarLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowScrollBarLayer.md#listenplaygroundevent)
- [node](./FlowScrollBarLayer.md#node)
- [observeManager](./FlowScrollBarLayer.md#observemanager)
- [options](./FlowScrollBarLayer.md#options)
- [pipelineNode](./FlowScrollBarLayer.md#pipelinenode)
- [playgroundNode](./FlowScrollBarLayer.md#playgroundnode)
- [reloadEntities](./FlowScrollBarLayer.md#reloadentities)
- [renderWithReactMemo](./FlowScrollBarLayer.md#renderwithreactmemo)
- [rightScrollBar](./FlowScrollBarLayer.md#rightscrollbar)
- [rightScrollBarBlock](./FlowScrollBarLayer.md#rightscrollbarblock)
### Accessors
- [clientViewportHeight](./FlowScrollBarLayer.md#clientviewportheight)
- [clientViewportWidth](./FlowScrollBarLayer.md#clientviewportwidth)
- [viewportFullHeight](./FlowScrollBarLayer.md#viewportfullheight)
- [viewportFullWidth](./FlowScrollBarLayer.md#viewportfullwidth)
- [viewportMoveHeight](./FlowScrollBarLayer.md#viewportmoveheight)
- [viewportMoveWidth](./FlowScrollBarLayer.md#viewportmovewidth)
### Methods
- [autorun](./FlowScrollBarLayer.md#autorun)
- [clickBottomScrollBar](./FlowScrollBarLayer.md#clickbottomscrollbar)
- [clickRightScrollBar](./FlowScrollBarLayer.md#clickrightscrollbar)
- [createDOMCache](./FlowScrollBarLayer.md#createdomcache)
- [dispose](./FlowScrollBarLayer.md#dispose)
- [getPosFromMouseEvent](./FlowScrollBarLayer.md#getposfrommouseevent)
- [getToLeft](./FlowScrollBarLayer.md#gettoleft)
- [getToTop](./FlowScrollBarLayer.md#gettotop)
- [onBlur](./FlowScrollBarLayer.md#onblur)
- [onBoardingToast](./FlowScrollBarLayer.md#onboardingtoast)
- [onFocus](./FlowScrollBarLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowScrollBarLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowScrollBarLayer.md#onready)
- [onResize](./FlowScrollBarLayer.md#onresize)
- [onScroll](./FlowScrollBarLayer.md#onscroll)
- [onViewportChange](./FlowScrollBarLayer.md#onviewportchange)
- [onZoom](./FlowScrollBarLayer.md#onzoom)
- [render](./FlowScrollBarLayer.md#render)
## Constructors
### constructor
**new FlowScrollBarLayer**()
#### Inherited from
Layer\.constructor
## Properties
### bottomScrollBar
`Readonly` **bottomScrollBar**: `HTMLDivElement`
___
### bottomScrollBarBlock
`Readonly` **bottomScrollBarBlock**: `HTMLDivElement`
___
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### events
`Optional` `Readonly` **events**: [`ScrollBarEvents`](../variables/ScrollBarEvents-1.md)
___
### flowDocument
`Optional` **flowDocument**: `FlowDocument`\<`FlowDocumentJSON`\>
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Inherited from
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### options
**options**: [`ScrollBarOptions`](../interfaces/ScrollBarOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### rightScrollBar
`Readonly` **rightScrollBar**: `HTMLDivElement`
___
### rightScrollBarBlock
`Readonly` **rightScrollBarBlock**: `HTMLDivElement`
## Accessors
### clientViewportHeight
`get` **clientViewportHeight**(): `number`
#### Returns
`number`
___
### clientViewportWidth
`get` **clientViewportWidth**(): `number`
#### Returns
`number`
___
### viewportFullHeight
`get` **viewportFullHeight**(): `number`
#### Returns
`number`
___
### viewportFullWidth
`get` **viewportFullWidth**(): `number`
#### Returns
`number`
___
### viewportMoveHeight
`get` **viewportMoveHeight**(): `number`
#### Returns
`number`
___
### viewportMoveWidth
`get` **viewportMoveWidth**(): `number`
#### Returns
`number`
## Methods
### autorun
**autorun**(): `void`
#### Returns
`void`
#### Overrides
Layer.autorun
___
### clickBottomScrollBar
**clickBottomScrollBar**(`e`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` |
#### Returns
`void`
___
### clickRightScrollBar
**clickRightScrollBar**(`e`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` |
#### Returns
`void`
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
Layer.dispose
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### getToLeft
**getToLeft**(`scrollX`): `number`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scrollX` | `number` |
#### Returns
`number`
___
### getToTop
**getToTop**(`scrollY`): `number`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scrollY` | `number` |
#### Returns
`number`
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onBoardingToast
**onBoardingToast**(): `void`
#### Returns
`void`
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onScroll
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
Layer.onViewportChange
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onZoom
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
Layer.render
---
url: /auto-docs/renderer/classes/FlowScrollLimitLayer.md
---
# Class: FlowScrollLimitLayer
控制滚动边界
## Hierarchy
- `Layer`
↳ **`FlowScrollLimitLayer`**
## Table of contents
### Constructors
- [constructor](./FlowScrollLimitLayer.md#constructor)
### Properties
- [config](./FlowScrollLimitLayer.md#config)
- [context](./FlowScrollLimitLayer.md#context)
- [document](./FlowScrollLimitLayer.md#document)
- [entityManager](./FlowScrollLimitLayer.md#entitymanager)
- [getOtherLayer](./FlowScrollLimitLayer.md#getotherlayer)
- [isFocused](./FlowScrollLimitLayer.md#isfocused)
- [listenGlobalEvent](./FlowScrollLimitLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowScrollLimitLayer.md#listenplaygroundevent)
- [node](./FlowScrollLimitLayer.md#node)
- [observeManager](./FlowScrollLimitLayer.md#observemanager)
- [options](./FlowScrollLimitLayer.md#options)
- [pipelineNode](./FlowScrollLimitLayer.md#pipelinenode)
- [playgroundNode](./FlowScrollLimitLayer.md#playgroundnode)
- [reloadEntities](./FlowScrollLimitLayer.md#reloadentities)
- [renderWithReactMemo](./FlowScrollLimitLayer.md#renderwithreactmemo)
### Methods
- [autorun](./FlowScrollLimitLayer.md#autorun)
- [createDOMCache](./FlowScrollLimitLayer.md#createdomcache)
- [dispose](./FlowScrollLimitLayer.md#dispose)
- [getInitScroll](./FlowScrollLimitLayer.md#getinitscroll)
- [getPosFromMouseEvent](./FlowScrollLimitLayer.md#getposfrommouseevent)
- [onBlur](./FlowScrollLimitLayer.md#onblur)
- [onFocus](./FlowScrollLimitLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowScrollLimitLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowScrollLimitLayer.md#onready)
- [onResize](./FlowScrollLimitLayer.md#onresize)
- [onScroll](./FlowScrollLimitLayer.md#onscroll)
- [onViewportChange](./FlowScrollLimitLayer.md#onviewportchange)
- [onZoom](./FlowScrollLimitLayer.md#onzoom)
- [render](./FlowScrollLimitLayer.md#render)
## Constructors
### constructor
**new FlowScrollLimitLayer**()
#### Inherited from
Layer.constructor
## Properties
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### document
`Readonly` **document**: `FlowDocument`\<`FlowDocumentJSON`\>
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Inherited from
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
Layer.autorun
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
Layer.dispose
___
### getInitScroll
**getInitScroll**(): `ScrollSchema`
#### Returns
`ScrollSchema`
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onScroll
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
Layer.onViewportChange
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onZoom
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
Layer.render
---
url: /auto-docs/renderer/classes/FlowSelectConfigEntity.md
---
# Class: FlowSelectConfigEntity
圈选节点相关数据存储
## Hierarchy
- `ConfigEntity`\<`FlowSelectConfigEntityData`\>
↳ **`FlowSelectConfigEntity`**
## Table of contents
### Constructors
- [constructor](./FlowSelectConfigEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowSelectConfigEntity.md#__opts_type__)
- [boundsPadding](./FlowSelectConfigEntity.md#boundspadding)
- [entityManager](./FlowSelectConfigEntity.md#entitymanager)
- [onDataChange](./FlowSelectConfigEntity.md#ondatachange)
- [onEntityChange](./FlowSelectConfigEntity.md#onentitychange)
- [preDispose](./FlowSelectConfigEntity.md#predispose)
- [toDispose](./FlowSelectConfigEntity.md#todispose)
- [type](./FlowSelectConfigEntity.md#type)
### Accessors
- [config](./FlowSelectConfigEntity.md#config)
- [context](./FlowSelectConfigEntity.md#context)
- [disposed](./FlowSelectConfigEntity.md#disposed)
- [id](./FlowSelectConfigEntity.md#id)
- [onDispose](./FlowSelectConfigEntity.md#ondispose)
- [savedInManager](./FlowSelectConfigEntity.md#savedinmanager)
- [selectedNodes](./FlowSelectConfigEntity.md#selectednodes)
- [type](./FlowSelectConfigEntity.md#type-1)
- [version](./FlowSelectConfigEntity.md#version)
### Methods
- [addData](./FlowSelectConfigEntity.md#adddata)
- [addInitializeData](./FlowSelectConfigEntity.md#addinitializedata)
- [checkChanged](./FlowSelectConfigEntity.md#checkchanged)
- [clearSelectedNodes](./FlowSelectConfigEntity.md#clearselectednodes)
- [dispose](./FlowSelectConfigEntity.md#dispose)
- [fromJSON](./FlowSelectConfigEntity.md#fromjson)
- [getData](./FlowSelectConfigEntity.md#getdata)
- [getDefaultConfig](./FlowSelectConfigEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./FlowSelectConfigEntity.md#getdefaultdataregistries)
- [getSelectedBounds](./FlowSelectConfigEntity.md#getselectedbounds)
- [getService](./FlowSelectConfigEntity.md#getservice)
- [hasData](./FlowSelectConfigEntity.md#hasdata)
- [onConfigChanged](./FlowSelectConfigEntity.md#onconfigchanged)
- [removeData](./FlowSelectConfigEntity.md#removedata)
- [reset](./FlowSelectConfigEntity.md#reset)
- [selectFromBounds](./FlowSelectConfigEntity.md#selectfrombounds)
- [toJSON](./FlowSelectConfigEntity.md#tojson)
- [updateConfig](./FlowSelectConfigEntity.md#updateconfig)
- [updateData](./FlowSelectConfigEntity.md#updatedata)
## Constructors
### constructor
**new FlowSelectConfigEntity**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `EntityOpts` |
#### Inherited from
ConfigEntity\.constructor
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `EntityOpts`
#### Inherited from
ConfigEntity.\_\_opts\_type\_\_
___
### boundsPadding
**boundsPadding**: `number` = `BOUNDS_PADDING_DEFAULT`
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
全局的entity管理器
#### Inherited from
ConfigEntity.entityManager
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityDataChangedEvent`\<`Entity`\<`EntityOpts`\>\>\>
数据更改事件
#### Inherited from
ConfigEntity.onDataChange
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<`Entity`\<`EntityOpts`\>\>
修改会触发
#### Inherited from
ConfigEntity.onEntityChange
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
ConfigEntity.preDispose
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
ConfigEntity.toDispose
___
### type
`Static` **type**: `string` = `'FlowSelectConfigEntity'`
#### Overrides
ConfigEntity.type
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### selectedNodes
`get` **selectedNodes**(): `FlowNodeEntity`[]
#### Returns
`FlowNodeEntity`[]
`set` **selectedNodes**(`nodes`): `void`
选中节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | `FlowNodeEntity`[] |
#### Returns
`void`
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
| `defaultProps?` | `EntityDataProps`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.addData
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.addInitializeData
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `FlowSelectConfigEntityData` |
| `newData` | `Partial`\<`FlowSelectConfigEntityData`\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.checkChanged
___
### clearSelectedNodes
**clearSelectedNodes**(): `void`
清除选中节点
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
ConfigEntity.dispose
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.fromJSON
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.getData
___
### getDefaultConfig
**getDefaultConfig**(): `FlowSelectConfigEntityData`
#### Returns
`FlowSelectConfigEntityData`
#### Overrides
ConfigEntity.getDefaultConfig
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
`EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
#### Inherited from
ConfigEntity.getDefaultDataRegistries
___
### getSelectedBounds
**getSelectedBounds**(): `Rectangle`
获取选中节点外围的最大边框
#### Returns
`Rectangle`
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
ConfigEntity.getService
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.hasData
___
### onConfigChanged
**onConfigChanged**(`fn`): `Disposable`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: `FlowSelectConfigEntityData`) => `void` |
#### Returns
`Disposable`
#### Inherited from
ConfigEntity.onConfigChanged
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.removeData
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
ConfigEntity.reset
___
### selectFromBounds
**selectFromBounds**(`rect`, `transforms`): `void`
通过选择框选中节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `rect` | `Rectangle` |
| `transforms` | `FlowNodeTransformData`[] |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
ConfigEntity.toJSON
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<`FlowSelectConfigEntityData`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateConfig
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
| `props` | `EntityDataProps`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateData
---
url: /auto-docs/renderer/classes/FlowSelectorBoundsLayer.md
---
# Class: FlowSelectorBoundsLayer
流程节点被框选后的边界区域渲染
## Hierarchy
- `Layer`\<[`FlowSelectorBoundsLayerOptions`](../interfaces/FlowSelectorBoundsLayerOptions.md)\>
↳ **`FlowSelectorBoundsLayer`**
## Table of contents
### Constructors
- [constructor](./FlowSelectorBoundsLayer.md#constructor)
### Properties
- [\_transforms](./FlowSelectorBoundsLayer.md#_transforms)
- [commandRegistry](./FlowSelectorBoundsLayer.md#commandregistry)
- [config](./FlowSelectorBoundsLayer.md#config)
- [context](./FlowSelectorBoundsLayer.md#context)
- [entityManager](./FlowSelectorBoundsLayer.md#entitymanager)
- [getOtherLayer](./FlowSelectorBoundsLayer.md#getotherlayer)
- [isFocused](./FlowSelectorBoundsLayer.md#isfocused)
- [listenGlobalEvent](./FlowSelectorBoundsLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowSelectorBoundsLayer.md#listenplaygroundevent)
- [node](./FlowSelectorBoundsLayer.md#node)
- [observeManager](./FlowSelectorBoundsLayer.md#observemanager)
- [options](./FlowSelectorBoundsLayer.md#options)
- [pipelineNode](./FlowSelectorBoundsLayer.md#pipelinenode)
- [playgroundNode](./FlowSelectorBoundsLayer.md#playgroundnode)
- [reloadEntities](./FlowSelectorBoundsLayer.md#reloadentities)
- [renderStates](./FlowSelectorBoundsLayer.md#renderstates)
- [renderWithReactMemo](./FlowSelectorBoundsLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowSelectorBoundsLayer.md#rendererregistry)
- [selectBoundsBackground](./FlowSelectorBoundsLayer.md#selectboundsbackground)
### Methods
- [autorun](./FlowSelectorBoundsLayer.md#autorun)
- [createDOMCache](./FlowSelectorBoundsLayer.md#createdomcache)
- [dispose](./FlowSelectorBoundsLayer.md#dispose)
- [getPosFromMouseEvent](./FlowSelectorBoundsLayer.md#getposfrommouseevent)
- [isEnabled](./FlowSelectorBoundsLayer.md#isenabled)
- [onBlur](./FlowSelectorBoundsLayer.md#onblur)
- [onFocus](./FlowSelectorBoundsLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowSelectorBoundsLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowSelectorBoundsLayer.md#onready)
- [onResize](./FlowSelectorBoundsLayer.md#onresize)
- [onScroll](./FlowSelectorBoundsLayer.md#onscroll)
- [onViewportChange](./FlowSelectorBoundsLayer.md#onviewportchange)
- [onZoom](./FlowSelectorBoundsLayer.md#onzoom)
- [render](./FlowSelectorBoundsLayer.md#render)
## Constructors
### constructor
**new FlowSelectorBoundsLayer**()
#### Inherited from
Layer\.constructor
## Properties
### \_transforms
**\_transforms**: `FlowNodeTransformData`[]
___
### commandRegistry
`Readonly` **commandRegistry**: `CommandRegistry`
___
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
`Readonly` **node**: `HTMLDivElement`
#### Overrides
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### options
**options**: [`FlowSelectorBoundsLayerOptions`](../interfaces/FlowSelectorBoundsLayerOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderStates
**renderStates**: `FlowNodeRenderData`[]
需要监听节点的展开和收起状态,重新绘制边框
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
___
### selectBoundsBackground
`Readonly` **selectBoundsBackground**: `HTMLDivElement`
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
Layer.autorun
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
Layer.dispose
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### isEnabled
**isEnabled**(): `boolean`
#### Returns
`boolean`
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onScroll
___
### onViewportChange
**onViewportChange**(): `void`
#### Returns
`void`
#### Overrides
Layer.onViewportChange
___
### onZoom
**onZoom**(`scale`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
Layer.onZoom
___
### render
**render**(): `Element`
#### Returns
`Element`
#### Overrides
Layer.render
---
url: /auto-docs/renderer/classes/FlowSelectorBoxLayer.md
---
# Class: FlowSelectorBoxLayer
流程选择框
## Hierarchy
- `Layer`\<[`FlowSelectorBoxOptions`](../interfaces/FlowSelectorBoxOptions.md)\>
↳ **`FlowSelectorBoxLayer`**
## Table of contents
### Constructors
- [constructor](./FlowSelectorBoxLayer.md#constructor)
### Properties
- [config](./FlowSelectorBoxLayer.md#config)
- [context](./FlowSelectorBoxLayer.md#context)
- [contextMenuService](./FlowSelectorBoxLayer.md#contextmenuservice)
- [entityManager](./FlowSelectorBoxLayer.md#entitymanager)
- [getOtherLayer](./FlowSelectorBoxLayer.md#getotherlayer)
- [isFocused](./FlowSelectorBoxLayer.md#isfocused)
- [listenGlobalEvent](./FlowSelectorBoxLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowSelectorBoxLayer.md#listenplaygroundevent)
- [node](./FlowSelectorBoxLayer.md#node)
- [observeManager](./FlowSelectorBoxLayer.md#observemanager)
- [options](./FlowSelectorBoxLayer.md#options)
- [pipelineNode](./FlowSelectorBoxLayer.md#pipelinenode)
- [playgroundNode](./FlowSelectorBoxLayer.md#playgroundnode)
- [reloadEntities](./FlowSelectorBoxLayer.md#reloadentities)
- [renderWithReactMemo](./FlowSelectorBoxLayer.md#renderwithreactmemo)
- [selectionService](./FlowSelectorBoxLayer.md#selectionservice)
### Methods
- [autorun](./FlowSelectorBoxLayer.md#autorun)
- [createDOMCache](./FlowSelectorBoxLayer.md#createdomcache)
- [dispose](./FlowSelectorBoxLayer.md#dispose)
- [getPosFromMouseEvent](./FlowSelectorBoxLayer.md#getposfrommouseevent)
- [isEnabled](./FlowSelectorBoxLayer.md#isenabled)
- [onBlur](./FlowSelectorBoxLayer.md#onblur)
- [onFocus](./FlowSelectorBoxLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowSelectorBoxLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowSelectorBoxLayer.md#onready)
- [onResize](./FlowSelectorBoxLayer.md#onresize)
- [onScroll](./FlowSelectorBoxLayer.md#onscroll)
- [onViewportChange](./FlowSelectorBoxLayer.md#onviewportchange)
- [onZoom](./FlowSelectorBoxLayer.md#onzoom)
- [render](./FlowSelectorBoxLayer.md#render)
## Constructors
### constructor
**new FlowSelectorBoxLayer**()
#### Inherited from
Layer\.constructor
## Properties
### config
**config**: `PlaygroundConfigEntity`
全局画布配置
#### Inherited from
Layer.config
___
### context
`Readonly` **context**: `any`
#### Inherited from
Layer.context
___
### contextMenuService
`Readonly` **contextMenuService**: `ContextMenuService`
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
实体管理器
#### Inherited from
Layer.entityManager
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: `LayerRegistry`\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Layer`\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | `LayerRegistry`\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
Layer.getOtherLayer
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
Layer.isFocused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenGlobalEvent
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => `Disposable`
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): `Disposable`
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
`Disposable`
#### Inherited from
Layer.listenPlaygroundEvent
___
### node
`Readonly` **node**: `HTMLDivElement`
#### Overrides
Layer.node
___
### observeManager
**observeManager**: `PipelineEntities`
当前 layer 的所有监听的实体数据
#### Inherited from
Layer.observeManager
___
### options
**options**: [`FlowSelectorBoxOptions`](../interfaces/FlowSelectorBoxOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
Layer.options
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
Layer.pipelineNode
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
Layer.playgroundNode
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
Layer.reloadEntities
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
Layer.renderWithReactMemo
___
### selectionService
`Readonly` **selectionService**: `SelectionService`
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
Layer.autorun
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): `CacheManager`\<`T`, `CacheOriginItem`\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `DOMCache`\<`T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
`CacheManager`\<`T`, `CacheOriginItem`\>
#### Inherited from
Layer.createDOMCache
___
### dispose
**dispose**(): `void`
Destroy
#### Returns
`void`
#### Overrides
Layer.dispose
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): `PositionSchema`
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
`PositionSchema`
#### Inherited from
Layer.getPosFromMouseEvent
___
### isEnabled
**isEnabled**(): `boolean`
#### Returns
`boolean`
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
Layer.onBlur
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
Layer.onFocus
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
Layer.onReadonlyOrDisabledChange
___
### onReady
**onReady**(): `void`
#### Returns
`void`
#### Overrides
Layer.onReady
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | `PipelineDimension` |
#### Returns
`void`
#### Inherited from
Layer.onResize
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onScroll
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
Layer.onViewportChange
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
Layer.onZoom
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
Layer.render
---
url: /auto-docs/renderer/classes/SelectorBoxConfigEntity.md
---
# Class: SelectorBoxConfigEntity
选择框配置
## Hierarchy
- `ConfigEntity`\<[`SelectorBoxConfigData`](../interfaces/SelectorBoxConfigData.md)\>
↳ **`SelectorBoxConfigEntity`**
## Table of contents
### Constructors
- [constructor](./SelectorBoxConfigEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./SelectorBoxConfigEntity.md#__opts_type__)
- [entityManager](./SelectorBoxConfigEntity.md#entitymanager)
- [onDataChange](./SelectorBoxConfigEntity.md#ondatachange)
- [onEntityChange](./SelectorBoxConfigEntity.md#onentitychange)
- [preDispose](./SelectorBoxConfigEntity.md#predispose)
- [toDispose](./SelectorBoxConfigEntity.md#todispose)
- [type](./SelectorBoxConfigEntity.md#type)
### Accessors
- [collapsed](./SelectorBoxConfigEntity.md#collapsed)
- [config](./SelectorBoxConfigEntity.md#config)
- [context](./SelectorBoxConfigEntity.md#context)
- [disabled](./SelectorBoxConfigEntity.md#disabled)
- [disposed](./SelectorBoxConfigEntity.md#disposed)
- [dragInfo](./SelectorBoxConfigEntity.md#draginfo)
- [id](./SelectorBoxConfigEntity.md#id)
- [isMoving](./SelectorBoxConfigEntity.md#ismoving)
- [isStart](./SelectorBoxConfigEntity.md#isstart)
- [onDispose](./SelectorBoxConfigEntity.md#ondispose)
- [position](./SelectorBoxConfigEntity.md#position)
- [savedInManager](./SelectorBoxConfigEntity.md#savedinmanager)
- [size](./SelectorBoxConfigEntity.md#size)
- [type](./SelectorBoxConfigEntity.md#type-1)
- [version](./SelectorBoxConfigEntity.md#version)
### Methods
- [addData](./SelectorBoxConfigEntity.md#adddata)
- [addInitializeData](./SelectorBoxConfigEntity.md#addinitializedata)
- [checkChanged](./SelectorBoxConfigEntity.md#checkchanged)
- [collapse](./SelectorBoxConfigEntity.md#collapse)
- [dispose](./SelectorBoxConfigEntity.md#dispose)
- [fromJSON](./SelectorBoxConfigEntity.md#fromjson)
- [getData](./SelectorBoxConfigEntity.md#getdata)
- [getDefaultConfig](./SelectorBoxConfigEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./SelectorBoxConfigEntity.md#getdefaultdataregistries)
- [getService](./SelectorBoxConfigEntity.md#getservice)
- [hasData](./SelectorBoxConfigEntity.md#hasdata)
- [onConfigChanged](./SelectorBoxConfigEntity.md#onconfigchanged)
- [removeData](./SelectorBoxConfigEntity.md#removedata)
- [reset](./SelectorBoxConfigEntity.md#reset)
- [setDragInfo](./SelectorBoxConfigEntity.md#setdraginfo)
- [toJSON](./SelectorBoxConfigEntity.md#tojson)
- [toRectangle](./SelectorBoxConfigEntity.md#torectangle)
- [updateConfig](./SelectorBoxConfigEntity.md#updateconfig)
- [updateData](./SelectorBoxConfigEntity.md#updatedata)
## Constructors
### constructor
**new SelectorBoxConfigEntity**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `EntityOpts` |
#### Inherited from
ConfigEntity\.constructor
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `EntityOpts`
#### Inherited from
ConfigEntity.\_\_opts\_type\_\_
___
### entityManager
`Readonly` **entityManager**: `EntityManager`
全局的entity管理器
#### Inherited from
ConfigEntity.entityManager
___
### onDataChange
`Readonly` **onDataChange**: `Event`\<`EntityDataChangedEvent`\<`Entity`\<`EntityOpts`\>\>\>
数据更改事件
#### Inherited from
ConfigEntity.onDataChange
___
### onEntityChange
`Readonly` **onEntityChange**: `Event`\<`Entity`\<`EntityOpts`\>\>
修改会触发
#### Inherited from
ConfigEntity.onEntityChange
___
### preDispose
`Readonly` **preDispose**: `DisposableCollection`
销毁前事件管理
#### Inherited from
ConfigEntity.preDispose
___
### toDispose
`Readonly` **toDispose**: `DisposableCollection`
销毁事件管理
#### Inherited from
ConfigEntity.toDispose
___
### type
`Static` **type**: `string` = `'SelectorBoxConfigEntity'`
#### Overrides
ConfigEntity.type
## Accessors
### collapsed
`get` **collapsed**(): `boolean`
#### Returns
`boolean`
___
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disabled
`get` **disabled**(): `boolean`
#### Returns
`boolean`
`set` **disabled**(`disabled`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `disabled` | `boolean` |
#### Returns
`void`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### dragInfo
`get` **dragInfo**(): `PlaygroundDragEvent`
#### Returns
`PlaygroundDragEvent`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### isMoving
`get` **isMoving**(): `boolean`
#### Returns
`boolean`
___
### isStart
`get` **isStart**(): `boolean`
#### Returns
`boolean`
___
### onDispose
`get` **onDispose**(): `Event`\<`void`\>
销毁事件
#### Returns
`Event`\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### position
`get` **position**(): `PositionSchema`
#### Returns
`PositionSchema`
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### size
`get` **size**(): `SizeSchema`
#### Returns
`SizeSchema`
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
| `defaultProps?` | `EntityDataProps`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.addData
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.addInitializeData
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | [`SelectorBoxConfigData`](../interfaces/SelectorBoxConfigData.md) |
| `newData` | `Partial`\<[`SelectorBoxConfigData`](../interfaces/SelectorBoxConfigData.md)\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.checkChanged
___
### collapse
**collapse**(): `void`
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
ConfigEntity.dispose
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
ConfigEntity.fromJSON
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`D`
#### Inherited from
ConfigEntity.getData
___
### getDefaultConfig
**getDefaultConfig**(): [`SelectorBoxConfigData`](../interfaces/SelectorBoxConfigData.md)
#### Returns
[`SelectorBoxConfigData`](../interfaces/SelectorBoxConfigData.md)
#### Inherited from
ConfigEntity.getDefaultConfig
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
`EntityDataRegistry`\<`EntityData`\<`any`, {}\>\>[]
#### Inherited from
ConfigEntity.getDefaultDataRegistries
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | `ServiceIdentifier`\<`T`\> |
#### Returns
`T`
#### Inherited from
ConfigEntity.getService
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`EntityData`\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
ConfigEntity.hasData
___
### onConfigChanged
**onConfigChanged**(`fn`): `Disposable`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: [`SelectorBoxConfigData`](../interfaces/SelectorBoxConfigData.md)) => `void` |
#### Returns
`Disposable`
#### Inherited from
ConfigEntity.onConfigChanged
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.removeData
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
ConfigEntity.reset
___
### setDragInfo
**setDragInfo**(`info`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `info` | `PlaygroundDragEvent` |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
ConfigEntity.toJSON
___
### toRectangle
**toRectangle**(`scale`): `Rectangle`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`Rectangle`
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<[`SelectorBoxConfigData`](../interfaces/SelectorBoxConfigData.md)\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateConfig
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends `EntityData`\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | `EntityDataRegistry`\<`D`\> |
| `props` | `EntityDataProps`\<`D`\> |
#### Returns
`void`
#### Inherited from
ConfigEntity.updateData
---
url: /auto-docs/renderer/enums/FlowRendererCommandCategory.md
---
# Enumeration: FlowRendererCommandCategory
命令分类
## Table of contents
### Enumeration Members
- [SELECTOR\_BOX](./FlowRendererCommandCategory.md#selector_box)
## Enumeration Members
### SELECTOR\_BOX
**SELECTOR\_BOX** = ``"SELECTOR_BOX"``
---
url: /auto-docs/renderer/enums/FlowRendererComponentType.md
---
# Enumeration: FlowRendererComponentType
## Table of contents
### Enumeration Members
- [DOM](./FlowRendererComponentType.md#dom)
- [REACT](./FlowRendererComponentType.md#react)
- [TEXT](./FlowRendererComponentType.md#text)
## Enumeration Members
### DOM
**DOM** = ``1``
___
### REACT
**REACT** = ``0``
___
### TEXT
**TEXT** = ``2``
---
url: /auto-docs/renderer/enums/FlowRendererKey.md
---
# Enumeration: FlowRendererKey
## Table of contents
### Enumeration Members
- [ADDER](./FlowRendererKey.md#adder)
- [ARROW\_RENDERER](./FlowRendererKey.md#arrow_renderer)
- [BRANCH\_ADDER](./FlowRendererKey.md#branch_adder)
- [COLLAPSE](./FlowRendererKey.md#collapse)
- [CONTEXT\_MENU\_POPOVER](./FlowRendererKey.md#context_menu_popover)
- [DRAGGABLE\_ADDER](./FlowRendererKey.md#draggable_adder)
- [DRAG\_BRANCH\_HIGHLIGHT\_ADDER](./FlowRendererKey.md#drag_branch_highlight_adder)
- [DRAG\_HIGHLIGHT\_ADDER](./FlowRendererKey.md#drag_highlight_adder)
- [DRAG\_NODE](./FlowRendererKey.md#drag_node)
- [MARKER\_ACTIVATE\_ARROW](./FlowRendererKey.md#marker_activate_arrow)
- [MARKER\_ARROW](./FlowRendererKey.md#marker_arrow)
- [NODE\_RENDER](./FlowRendererKey.md#node_render)
- [SELECTOR\_BOX\_POPOVER](./FlowRendererKey.md#selector_box_popover)
- [SLOT\_ADDER](./FlowRendererKey.md#slot_adder)
- [SLOT\_COLLAPSE](./FlowRendererKey.md#slot_collapse)
- [SLOT\_LABEL](./FlowRendererKey.md#slot_label)
- [SUB\_CANVAS](./FlowRendererKey.md#sub_canvas)
- [TRY\_CATCH\_COLLAPSE](./FlowRendererKey.md#try_catch_collapse)
## Enumeration Members
### ADDER
**ADDER** = ``"adder"``
___
### ARROW\_RENDERER
**ARROW\_RENDERER** = ``"arrow-renderer"``
___
### BRANCH\_ADDER
**BRANCH\_ADDER** = ``"branch-adder"``
___
### COLLAPSE
**COLLAPSE** = ``"collapse"``
___
### CONTEXT\_MENU\_POPOVER
**CONTEXT\_MENU\_POPOVER** = ``"context-menu-popover"``
**`Deprecated`**
___
### DRAGGABLE\_ADDER
**DRAGGABLE\_ADDER** = ``"draggable-adder"``
___
### DRAG\_BRANCH\_HIGHLIGHT\_ADDER
**DRAG\_BRANCH\_HIGHLIGHT\_ADDER** = ``"drag-branch-highlight-adder"``
___
### DRAG\_HIGHLIGHT\_ADDER
**DRAG\_HIGHLIGHT\_ADDER** = ``"drag-highlight-adder"``
___
### DRAG\_NODE
**DRAG\_NODE** = ``"drag-node"``
___
### MARKER\_ACTIVATE\_ARROW
**MARKER\_ACTIVATE\_ARROW** = ``"marker-active-arrow"``
___
### MARKER\_ARROW
**MARKER\_ARROW** = ``"marker-arrow"``
___
### NODE\_RENDER
**NODE\_RENDER** = ``"node-render"``
___
### SELECTOR\_BOX\_POPOVER
**SELECTOR\_BOX\_POPOVER** = ``"selector-box-popover"``
___
### SLOT\_ADDER
**SLOT\_ADDER** = ``"slot-adder"``
___
### SLOT\_COLLAPSE
**SLOT\_COLLAPSE** = ``"slot-collapse"``
___
### SLOT\_LABEL
**SLOT\_LABEL** = ``"slot-label"``
___
### SUB\_CANVAS
**SUB\_CANVAS** = ``"sub-canvas"``
___
### TRY\_CATCH\_COLLAPSE
**TRY\_CATCH\_COLLAPSE** = ``"try-catch-collapse"``
---
url: /auto-docs/renderer/enums/FlowTextKey.md
---
# Enumeration: FlowTextKey
## Table of contents
### Enumeration Members
- [CATCH\_TEXT](./FlowTextKey.md#catch_text)
- [LOOP\_END\_TEXT](./FlowTextKey.md#loop_end_text)
- [LOOP\_TRAVERSE\_TEXT](./FlowTextKey.md#loop_traverse_text)
- [LOOP\_WHILE\_TEXT](./FlowTextKey.md#loop_while_text)
- [TRY\_END\_TEXT](./FlowTextKey.md#try_end_text)
- [TRY\_START\_TEXT](./FlowTextKey.md#try_start_text)
## Enumeration Members
### CATCH\_TEXT
**CATCH\_TEXT** = ``"catch-text"``
___
### LOOP\_END\_TEXT
**LOOP\_END\_TEXT** = ``"loop-end-text"``
___
### LOOP\_TRAVERSE\_TEXT
**LOOP\_TRAVERSE\_TEXT** = ``"loop-traverse-text"``
___
### LOOP\_WHILE\_TEXT
**LOOP\_WHILE\_TEXT** = ``"loop-while-text"``
___
### TRY\_END\_TEXT
**TRY\_END\_TEXT** = ``"try-end-text"``
___
### TRY\_START\_TEXT
**TRY\_START\_TEXT** = ``"try-start-text"``
---
url: /auto-docs/renderer/functions/createLines.md
---
# Function: createLines
**createLines**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `PropsType` |
#### Returns
`void`
---
url: /auto-docs/renderer/functions/useBaseColor.md
---
# Function: useBaseColor
**useBaseColor**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `baseActivatedColor` | `string` |
| `baseColor` | `string` |
---
url: /auto-docs/renderer/interfaces/CollisionRetType.md
---
# Interface: CollisionRetType
## Table of contents
### Properties
- [hasCollision](./CollisionRetType.md#hascollision)
- [labelOffsetType](./CollisionRetType.md#labeloffsettype)
## Properties
### hasCollision
**hasCollision**: `boolean`
___
### labelOffsetType
`Optional` **labelOffsetType**: `LABEL_SIDE_TYPE`
---
url: /auto-docs/renderer/interfaces/FlowDragOptions.md
---
# Interface: FlowDragOptions
## Table of contents
### Properties
- [canDrop](./FlowDragOptions.md#candrop)
- [onDrop](./FlowDragOptions.md#ondrop)
## Properties
### canDrop
`Optional` **canDrop**: (`opts`: `Object`) => `boolean`
#### Type declaration
(`opts`): `boolean`
##### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `Object` |
##### Returns
`boolean`
___
### onDrop
`Optional` **onDrop**: (`opts`: \{ `dragNodes`: `FlowNodeEntity`[] ; `dropNode`: `FlowNodeEntity` }) => `void`
#### Type declaration
(`opts`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `Object` |
| `opts.dragNodes` | `FlowNodeEntity`[] |
| `opts.dropNode` | `FlowNodeEntity` |
##### Returns
`void`
---
url: /auto-docs/renderer/interfaces/FlowNodesTransformLayerOptions.md
---
# Interface: FlowNodesTransformLayerOptions
## Table of contents
### Properties
- [renderElement](./FlowNodesTransformLayerOptions.md#renderelement)
## Properties
### renderElement
`Optional` **renderElement**: `HTMLElement` \| () => `undefined` \| `HTMLElement`
---
url: /auto-docs/renderer/interfaces/FlowRendererComponent.md
---
# Interface: FlowRendererComponent
## Table of contents
### Properties
- [renderer](./FlowRendererComponent.md#renderer)
- [type](./FlowRendererComponent.md#type)
## Properties
### renderer
**renderer**: (`props?`: `any`) => `any`
#### Type declaration
(`props?`): `any`
##### Parameters
| Name | Type |
| :------ | :------ |
| `props?` | `any` |
##### Returns
`any`
___
### type
**type**: [`FlowRendererComponentType`](../enums/FlowRendererComponentType.md)
---
url: /auto-docs/renderer/interfaces/FlowRendererContribution.md
---
# Interface: FlowRendererContribution
## Table of contents
### Methods
- [registerRenderer](./FlowRendererContribution.md#registerrenderer)
## Methods
### registerRenderer
`Optional` **registerRenderer**(`registry`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`FlowRendererRegistry`](../classes/FlowRendererRegistry.md) |
#### Returns
`void`
---
url: /auto-docs/renderer/interfaces/FlowSelectorBoundsLayerOptions.md
---
# Interface: FlowSelectorBoundsLayerOptions
## Hierarchy
- `LayerOptions`
↳ **`FlowSelectorBoundsLayerOptions`**
## Table of contents
### Properties
- [CustomBoundsRenderer](./FlowSelectorBoundsLayerOptions.md#customboundsrenderer)
- [SelectorBoxPopover](./FlowSelectorBoundsLayerOptions.md#selectorboxpopover)
- [backgroundClassName](./FlowSelectorBoundsLayerOptions.md#backgroundclassname)
- [boundsPadding](./FlowSelectorBoundsLayerOptions.md#boundspadding)
- [disableBackground](./FlowSelectorBoundsLayerOptions.md#disablebackground)
- [foregroundClassName](./FlowSelectorBoundsLayerOptions.md#foregroundclassname)
- [ignoreChildrenLength](./FlowSelectorBoundsLayerOptions.md#ignorechildrenlength)
- [ignoreOneSelect](./FlowSelectorBoundsLayerOptions.md#ignoreoneselect)
## Properties
### CustomBoundsRenderer
`Optional` **CustomBoundsRenderer**: `FC`\<[`SelectorBoxPopoverProps`](./SelectorBoxPopoverProps.md)\>
___
### SelectorBoxPopover
`Optional` **SelectorBoxPopover**: `FC`\<[`SelectorBoxPopoverProps`](./SelectorBoxPopoverProps.md)\>
___
### backgroundClassName
`Optional` **backgroundClassName**: `string`
___
### boundsPadding
`Optional` **boundsPadding**: `number`
___
### disableBackground
`Optional` **disableBackground**: `boolean`
___
### foregroundClassName
`Optional` **foregroundClassName**: `string`
___
### ignoreChildrenLength
`Optional` **ignoreChildrenLength**: `boolean`
___
### ignoreOneSelect
`Optional` **ignoreOneSelect**: `boolean`
---
url: /auto-docs/renderer/interfaces/FlowSelectorBoxOptions.md
---
# Interface: FlowSelectorBoxOptions
## Hierarchy
- `LayerOptions`
↳ **`FlowSelectorBoxOptions`**
## Table of contents
### Properties
- [canSelect](./FlowSelectorBoxOptions.md#canselect)
## Properties
### canSelect
`Optional` **canSelect**: (`e`: `MouseEvent`, `entity`: [`SelectorBoxConfigEntity`](../classes/SelectorBoxConfigEntity.md)) => `boolean`
#### Type declaration
(`e`, `entity`): `boolean`
默认不提供则为点击空白地方可以框选
##### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` |
| `entity` | [`SelectorBoxConfigEntity`](../classes/SelectorBoxConfigEntity.md) |
##### Returns
`boolean`
---
url: /auto-docs/renderer/interfaces/ScrollBarEvents.md
---
# Interface: ScrollBarEvents
## Table of contents
### Properties
- [dragStart](./ScrollBarEvents.md#dragstart)
## Properties
### dragStart
**dragStart**: () => `void`
#### Type declaration
(): `void`
##### Returns
`void`
---
url: /auto-docs/renderer/interfaces/ScrollBarOptions.md
---
# Interface: ScrollBarOptions
## Table of contents
### Properties
- [showScrollBars](./ScrollBarOptions.md#showscrollbars)
### Methods
- [getBounds](./ScrollBarOptions.md#getbounds)
## Properties
### showScrollBars
**showScrollBars**: ``"whenScrolling"`` \| ``"always"``
显示滚动条的时机,可选常驻或滚动时显示
## Methods
### getBounds
**getBounds**(): `Rectangle`
#### Returns
`Rectangle`
---
url: /auto-docs/renderer/interfaces/SelectorBoxConfigData.md
---
# Interface: SelectorBoxConfigData
## Hierarchy
- `PlaygroundDragEvent`
↳ **`SelectorBoxConfigData`**
## Table of contents
### Properties
- [AT\_TARGET](./SelectorBoxConfigData.md#at_target)
- [BUBBLING\_PHASE](./SelectorBoxConfigData.md#bubbling_phase)
- [CAPTURING\_PHASE](./SelectorBoxConfigData.md#capturing_phase)
- [NONE](./SelectorBoxConfigData.md#none)
- [altKey](./SelectorBoxConfigData.md#altkey)
- [bubbles](./SelectorBoxConfigData.md#bubbles)
- [button](./SelectorBoxConfigData.md#button)
- [buttons](./SelectorBoxConfigData.md#buttons)
- [cancelBubble](./SelectorBoxConfigData.md#cancelbubble)
- [cancelable](./SelectorBoxConfigData.md#cancelable)
- [clientX](./SelectorBoxConfigData.md#clientx)
- [clientY](./SelectorBoxConfigData.md#clienty)
- [composed](./SelectorBoxConfigData.md#composed)
- [ctrlKey](./SelectorBoxConfigData.md#ctrlkey)
- [currentTarget](./SelectorBoxConfigData.md#currenttarget)
- [defaultPrevented](./SelectorBoxConfigData.md#defaultprevented)
- [detail](./SelectorBoxConfigData.md#detail)
- [disabled](./SelectorBoxConfigData.md#disabled)
- [endPos](./SelectorBoxConfigData.md#endpos)
- [eventPhase](./SelectorBoxConfigData.md#eventphase)
- [id](./SelectorBoxConfigData.md#id)
- [isMoving](./SelectorBoxConfigData.md#ismoving)
- [isStart](./SelectorBoxConfigData.md#isstart)
- [isTrusted](./SelectorBoxConfigData.md#istrusted)
- [metaKey](./SelectorBoxConfigData.md#metakey)
- [movementX](./SelectorBoxConfigData.md#movementx)
- [movementY](./SelectorBoxConfigData.md#movementy)
- [movingDelta](./SelectorBoxConfigData.md#movingdelta)
- [offsetX](./SelectorBoxConfigData.md#offsetx)
- [offsetY](./SelectorBoxConfigData.md#offsety)
- [pageX](./SelectorBoxConfigData.md#pagex)
- [pageY](./SelectorBoxConfigData.md#pagey)
- [relatedTarget](./SelectorBoxConfigData.md#relatedtarget)
- [returnValue](./SelectorBoxConfigData.md#returnvalue)
- [scale](./SelectorBoxConfigData.md#scale)
- [screenX](./SelectorBoxConfigData.md#screenx)
- [screenY](./SelectorBoxConfigData.md#screeny)
- [shiftKey](./SelectorBoxConfigData.md#shiftkey)
- [srcElement](./SelectorBoxConfigData.md#srcelement)
- [startPos](./SelectorBoxConfigData.md#startpos)
- [target](./SelectorBoxConfigData.md#target)
- [timeStamp](./SelectorBoxConfigData.md#timestamp)
- [type](./SelectorBoxConfigData.md#type)
- [view](./SelectorBoxConfigData.md#view)
- [which](./SelectorBoxConfigData.md#which)
- [x](./SelectorBoxConfigData.md#x)
- [y](./SelectorBoxConfigData.md#y)
### Methods
- [composedPath](./SelectorBoxConfigData.md#composedpath)
- [getModifierState](./SelectorBoxConfigData.md#getmodifierstate)
- [initEvent](./SelectorBoxConfigData.md#initevent)
- [initMouseEvent](./SelectorBoxConfigData.md#initmouseevent)
- [initUIEvent](./SelectorBoxConfigData.md#inituievent)
- [preventDefault](./SelectorBoxConfigData.md#preventdefault)
- [stopImmediatePropagation](./SelectorBoxConfigData.md#stopimmediatepropagation)
- [stopPropagation](./SelectorBoxConfigData.md#stoppropagation)
## Properties
### AT\_TARGET
`Readonly` **AT\_TARGET**: ``2``
#### Inherited from
PlaygroundDragEvent.AT\_TARGET
___
### BUBBLING\_PHASE
`Readonly` **BUBBLING\_PHASE**: ``3``
#### Inherited from
PlaygroundDragEvent.BUBBLING\_PHASE
___
### CAPTURING\_PHASE
`Readonly` **CAPTURING\_PHASE**: ``1``
#### Inherited from
PlaygroundDragEvent.CAPTURING\_PHASE
___
### NONE
`Readonly` **NONE**: ``0``
#### Inherited from
PlaygroundDragEvent.NONE
___
### altKey
`Readonly` **altKey**: `boolean`
#### Inherited from
PlaygroundDragEvent.altKey
___
### bubbles
`Readonly` **bubbles**: `boolean`
Returns true or false depending on how event was initialized. True if event goes through its target's ancestors in reverse tree order, and false otherwise.
#### Inherited from
PlaygroundDragEvent.bubbles
___
### button
`Readonly` **button**: `number`
#### Inherited from
PlaygroundDragEvent.button
___
### buttons
`Readonly` **buttons**: `number`
#### Inherited from
PlaygroundDragEvent.buttons
___
### cancelBubble
**cancelBubble**: `boolean`
**`Deprecated`**
#### Inherited from
PlaygroundDragEvent.cancelBubble
___
### cancelable
`Readonly` **cancelable**: `boolean`
Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method.
#### Inherited from
PlaygroundDragEvent.cancelable
___
### clientX
`Readonly` **clientX**: `number`
#### Inherited from
PlaygroundDragEvent.clientX
___
### clientY
`Readonly` **clientY**: `number`
#### Inherited from
PlaygroundDragEvent.clientY
___
### composed
`Readonly` **composed**: `boolean`
Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise.
#### Inherited from
PlaygroundDragEvent.composed
___
### ctrlKey
`Readonly` **ctrlKey**: `boolean`
#### Inherited from
PlaygroundDragEvent.ctrlKey
___
### currentTarget
`Readonly` **currentTarget**: ``null`` \| `EventTarget`
Returns the object whose event listener's callback is currently being invoked.
#### Inherited from
PlaygroundDragEvent.currentTarget
___
### defaultPrevented
`Readonly` **defaultPrevented**: `boolean`
Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise.
#### Inherited from
PlaygroundDragEvent.defaultPrevented
___
### detail
`Readonly` **detail**: `number`
#### Inherited from
PlaygroundDragEvent.detail
___
### disabled
`Optional` **disabled**: `boolean`
___
### endPos
**endPos**: `PositionSchema`
#### Inherited from
PlaygroundDragEvent.endPos
___
### eventPhase
`Readonly` **eventPhase**: `number`
Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE.
#### Inherited from
PlaygroundDragEvent.eventPhase
___
### id
**id**: `number`
#### Inherited from
PlaygroundDragEvent.id
___
### isMoving
**isMoving**: `boolean`
#### Inherited from
PlaygroundDragEvent.isMoving
___
### isStart
**isStart**: `boolean`
#### Inherited from
PlaygroundDragEvent.isStart
___
### isTrusted
`Readonly` **isTrusted**: `boolean`
Returns true if event was dispatched by the user agent, and false otherwise.
#### Inherited from
PlaygroundDragEvent.isTrusted
___
### metaKey
`Readonly` **metaKey**: `boolean`
#### Inherited from
PlaygroundDragEvent.metaKey
___
### movementX
`Readonly` **movementX**: `number`
#### Inherited from
PlaygroundDragEvent.movementX
___
### movementY
`Readonly` **movementY**: `number`
#### Inherited from
PlaygroundDragEvent.movementY
___
### movingDelta
**movingDelta**: `PositionSchema`
#### Inherited from
PlaygroundDragEvent.movingDelta
___
### offsetX
`Readonly` **offsetX**: `number`
#### Inherited from
PlaygroundDragEvent.offsetX
___
### offsetY
`Readonly` **offsetY**: `number`
#### Inherited from
PlaygroundDragEvent.offsetY
___
### pageX
`Readonly` **pageX**: `number`
#### Inherited from
PlaygroundDragEvent.pageX
___
### pageY
`Readonly` **pageY**: `number`
#### Inherited from
PlaygroundDragEvent.pageY
___
### relatedTarget
`Readonly` **relatedTarget**: ``null`` \| `EventTarget`
#### Inherited from
PlaygroundDragEvent.relatedTarget
___
### returnValue
**returnValue**: `boolean`
**`Deprecated`**
#### Inherited from
PlaygroundDragEvent.returnValue
___
### scale
**scale**: `number`
#### Inherited from
PlaygroundDragEvent.scale
___
### screenX
`Readonly` **screenX**: `number`
#### Inherited from
PlaygroundDragEvent.screenX
___
### screenY
`Readonly` **screenY**: `number`
#### Inherited from
PlaygroundDragEvent.screenY
___
### shiftKey
`Readonly` **shiftKey**: `boolean`
#### Inherited from
PlaygroundDragEvent.shiftKey
___
### srcElement
`Readonly` **srcElement**: ``null`` \| `EventTarget`
**`Deprecated`**
#### Inherited from
PlaygroundDragEvent.srcElement
___
### startPos
**startPos**: `PositionSchema`
#### Inherited from
PlaygroundDragEvent.startPos
___
### target
`Readonly` **target**: ``null`` \| `EventTarget`
Returns the object to which event is dispatched (its target).
#### Inherited from
PlaygroundDragEvent.target
___
### timeStamp
`Readonly` **timeStamp**: `number`
Returns the event's timestamp as the number of milliseconds measured relative to the time origin.
#### Inherited from
PlaygroundDragEvent.timeStamp
___
### type
`Readonly` **type**: `string`
Returns the type of event, e.g. "click", "hashchange", or "submit".
#### Inherited from
PlaygroundDragEvent.type
___
### view
`Readonly` **view**: ``null`` \| `Window`
#### Inherited from
PlaygroundDragEvent.view
___
### which
`Readonly` **which**: `number`
**`Deprecated`**
#### Inherited from
PlaygroundDragEvent.which
___
### x
`Readonly` **x**: `number`
#### Inherited from
PlaygroundDragEvent.x
___
### y
`Readonly` **y**: `number`
#### Inherited from
PlaygroundDragEvent.y
## Methods
### composedPath
**composedPath**(): `EventTarget`[]
Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget.
#### Returns
`EventTarget`[]
#### Inherited from
PlaygroundDragEvent.composedPath
___
### getModifierState
**getModifierState**(`keyArg`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `keyArg` | `string` |
#### Returns
`boolean`
#### Inherited from
PlaygroundDragEvent.getModifierState
___
### initEvent
**initEvent**(`type`, `bubbles?`, `cancelable?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` |
| `bubbles?` | `boolean` |
| `cancelable?` | `boolean` |
#### Returns
`void`
**`Deprecated`**
#### Inherited from
PlaygroundDragEvent.initEvent
___
### initMouseEvent
**initMouseEvent**(`typeArg`, `canBubbleArg`, `cancelableArg`, `viewArg`, `detailArg`, `screenXArg`, `screenYArg`, `clientXArg`, `clientYArg`, `ctrlKeyArg`, `altKeyArg`, `shiftKeyArg`, `metaKeyArg`, `buttonArg`, `relatedTargetArg`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `typeArg` | `string` |
| `canBubbleArg` | `boolean` |
| `cancelableArg` | `boolean` |
| `viewArg` | `Window` |
| `detailArg` | `number` |
| `screenXArg` | `number` |
| `screenYArg` | `number` |
| `clientXArg` | `number` |
| `clientYArg` | `number` |
| `ctrlKeyArg` | `boolean` |
| `altKeyArg` | `boolean` |
| `shiftKeyArg` | `boolean` |
| `metaKeyArg` | `boolean` |
| `buttonArg` | `number` |
| `relatedTargetArg` | ``null`` \| `EventTarget` |
#### Returns
`void`
**`Deprecated`**
#### Inherited from
PlaygroundDragEvent.initMouseEvent
___
### initUIEvent
**initUIEvent**(`typeArg`, `bubblesArg?`, `cancelableArg?`, `viewArg?`, `detailArg?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `typeArg` | `string` |
| `bubblesArg?` | `boolean` |
| `cancelableArg?` | `boolean` |
| `viewArg?` | ``null`` \| `Window` |
| `detailArg?` | `number` |
#### Returns
`void`
**`Deprecated`**
#### Inherited from
PlaygroundDragEvent.initUIEvent
___
### preventDefault
**preventDefault**(): `void`
If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled.
#### Returns
`void`
#### Inherited from
PlaygroundDragEvent.preventDefault
___
### stopImmediatePropagation
**stopImmediatePropagation**(): `void`
Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects.
#### Returns
`void`
#### Inherited from
PlaygroundDragEvent.stopImmediatePropagation
___
### stopPropagation
**stopPropagation**(): `void`
When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.
#### Returns
`void`
#### Inherited from
PlaygroundDragEvent.stopPropagation
---
url: /auto-docs/renderer/interfaces/SelectorBoxPopoverProps.md
---
# Interface: SelectorBoxPopoverProps
## Table of contents
### Properties
- [bounds](./SelectorBoxPopoverProps.md#bounds)
- [children](./SelectorBoxPopoverProps.md#children)
- [commandRegistry](./SelectorBoxPopoverProps.md#commandregistry)
- [config](./SelectorBoxPopoverProps.md#config)
- [flowSelectConfig](./SelectorBoxPopoverProps.md#flowselectconfig)
## Properties
### bounds
**bounds**: `Rectangle`
___
### children
`Optional` **children**: `ReactNode`
___
### commandRegistry
**commandRegistry**: `CommandRegistry`
___
### config
**config**: `PlaygroundConfig`
___
### flowSelectConfig
**flowSelectConfig**: [`FlowSelectConfigEntity`](../classes/FlowSelectConfigEntity.md)
---
url: /auto-docs/renderer/variables/FlowRendererContainerModule.md
---
# Variable: FlowRendererContainerModule
`Const` **FlowRendererContainerModule**: `ContainerModule`
---
url: /auto-docs/renderer/variables/FlowRendererContribution-1.md
---
# Variable: FlowRendererContribution
`Const` **FlowRendererContribution**: typeof [`FlowRendererContribution`](./FlowRendererContribution-1.md)
---
url: /auto-docs/renderer/variables/MARK_ACTIVATED_ARROW_ID.md
---
# Variable: MARK\_ACTIVATED\_ARROW\_ID
`Const` **MARK\_ACTIVATED\_ARROW\_ID**: ``"$marker_arrow_activated$"``
---
url: /auto-docs/renderer/variables/MARK_ARROW_ID.md
---
# Variable: MARK\_ARROW\_ID
`Const` **MARK\_ARROW\_ID**: ``"$marker_arrow$"``
---
url: /auto-docs/renderer/variables/ScrollBarEvents-1.md
---
# Variable: ScrollBarEvents
`Const` **ScrollBarEvents**: typeof [`ScrollBarEvents`](./ScrollBarEvents-1.md)
滚动条点击事件监听
---
url: /auto-docs/editor/classes/ASTNode.md
---
# Class: ASTNode\
An `ASTNode` represents a fundamental unit of variable information within the system's Abstract Syntax Tree.
It can model various constructs, for example:
- **Declarations**: `const a = 1`
- **Expressions**: `a.b.c`
- **Types**: `number`, `string`, `boolean`
Here is some characteristic of ASTNode:
- **Tree-like Structure**: ASTNodes can be nested to form a tree, representing complex variable structures.
- **Extendable**: New features can be added by extending the base ASTNode class.
- **Reactive**: Changes in an ASTNode's value trigger events, enabling reactive programming patterns.
- **Serializable**: ASTNodes can be converted to and from a JSON format (ASTNodeJSON) for storage or transmission.
## Type parameters
| Name | Type |
| :------ | :------ |
| `JSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = `any` |
## Hierarchy
- **`ASTNode`**
↳ [`BaseExpression`](./BaseExpression.md)
↳ [`BaseType`](./BaseType.md)
↳ [`BaseVariableField`](./BaseVariableField.md)
↳ [`DataNode`](./DataNode.md)
↳ [`ListNode`](./ListNode.md)
↳ [`MapNode`](./MapNode.md)
↳ [`VariableDeclarationList`](./VariableDeclarationList.md)
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Indexable
▪ [key: `string`]: `unknown`
## Table of contents
### Constructors
- [constructor](./ASTNode.md#constructor)
### Properties
- [changeLocked](./ASTNode.md#changelocked)
- [flags](./ASTNode.md#flags)
- [key](./ASTNode.md#key)
- [onDispose](./ASTNode.md#ondispose)
- [opts](./ASTNode.md#opts)
- [parent](./ASTNode.md#parent)
- [scope](./ASTNode.md#scope)
- [toDispose](./ASTNode.md#todispose)
- [value$](./ASTNode.md#value$)
- [kind](./ASTNode.md#kind)
### Accessors
- [children](./ASTNode.md#children)
- [disposed](./ASTNode.md#disposed)
- [hash](./ASTNode.md#hash)
- [kind](./ASTNode.md#kind-1)
- [version](./ASTNode.md#version)
### Methods
- [dispatchGlobalEvent](./ASTNode.md#dispatchglobalevent)
- [dispose](./ASTNode.md#dispose)
- [fireChange](./ASTNode.md#firechange)
- [fromJSON](./ASTNode.md#fromjson)
- [subscribe](./ASTNode.md#subscribe)
- [toJSON](./ASTNode.md#tojson)
## Constructors
### constructor
**new ASTNode**\<`JSON`\>(`createParams`, `opts?`)
Constructor.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `JSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = `any` |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
___
### flags
`Readonly` **flags**: `number`
Node flags, used to record some flag information.
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
___
### kind
`Static` `Readonly` **kind**: `string`
The kind of the ASTNode.
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
___
### fromJSON
`Abstract` **fromJSON**(`json`): `void`
Parses AST JSON data.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `JSON` | AST JSON data. |
#### Returns
`void`
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`ASTNode`](./ASTNode.md)\<`JSON`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`ASTNode`](./ASTNode.md)\<`JSON`\>, `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### toJSON
`Abstract` **toJSON**(): `JSON`
Serializes the current ASTNode to ASTNodeJSON.
#### Returns
`JSON`
---
url: /auto-docs/editor/classes/ASTRegisters.md
---
# Class: ASTRegisters
Register the AST node to the engine.
## Table of contents
### Constructors
- [constructor](./ASTRegisters.md#constructor)
### Methods
- [createAST](./ASTRegisters.md#createast)
- [getASTRegistryByKind](./ASTRegisters.md#getastregistrybykind)
- [registerAST](./ASTRegisters.md#registerast)
## Constructors
### constructor
**new ASTRegisters**()
Core AST node registration.
## Methods
### createAST
**createAST**\<`ReturnNode`\>(`json`, `«destructured»`): `ReturnNode`
Creates an AST node.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ReturnNode` | extends [`ASTNode`](./ASTNode.md)\<`any`, `ReturnNode`\> = [`ASTNode`](./ASTNode.md)\<`any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `json` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) |
| `«destructured»` | [`CreateASTParams`](../interfaces/CreateASTParams.md) |
#### Returns
`ReturnNode`
___
### getASTRegistryByKind
**getASTRegistryByKind**(`kind`): `undefined` \| [`ASTNodeRegistry`](../interfaces/ASTNodeRegistry.md)\<`any`\>
Gets the node Registry by AST node type.
#### Parameters
| Name | Type |
| :------ | :------ |
| `kind` | `string` |
#### Returns
`undefined` \| [`ASTNodeRegistry`](../interfaces/ASTNodeRegistry.md)\<`any`\>
___
### registerAST
**registerAST**(`ASTNode`, `injector?`): `void`
Registers an AST node.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `ASTNode` | [`ASTNodeRegistry`](../interfaces/ASTNodeRegistry.md)\<`any`\> | |
| `injector?` | `DataInjector` | **`Deprecated`** Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection. |
#### Returns
`void`
---
url: /auto-docs/editor/classes/ArrayType.md
---
# Class: ArrayType
Represents an array type.
## Hierarchy
- [`BaseType`](./BaseType.md)\<`ArrayJSON`\>
↳ **`ArrayType`**
## Table of contents
### Constructors
- [constructor](./ArrayType.md#constructor)
### Properties
- [changeLocked](./ArrayType.md#changelocked)
- [flags](./ArrayType.md#flags)
- [items](./ArrayType.md#items)
- [key](./ArrayType.md#key)
- [onDispose](./ArrayType.md#ondispose)
- [opts](./ArrayType.md#opts)
- [parent](./ArrayType.md#parent)
- [scope](./ArrayType.md#scope)
- [toDispose](./ArrayType.md#todispose)
- [value$](./ArrayType.md#value$)
- [kind](./ArrayType.md#kind)
### Accessors
- [canDrilldownItems](./ArrayType.md#candrilldownitems)
- [children](./ArrayType.md#children)
- [disposed](./ArrayType.md#disposed)
- [hash](./ArrayType.md#hash)
- [kind](./ArrayType.md#kind-1)
- [version](./ArrayType.md#version)
### Methods
- [dispatchGlobalEvent](./ArrayType.md#dispatchglobalevent)
- [dispose](./ArrayType.md#dispose)
- [fireChange](./ArrayType.md#firechange)
- [fromJSON](./ArrayType.md#fromjson)
- [getByKeyPath](./ArrayType.md#getbykeypath)
- [isTypeEqual](./ArrayType.md#istypeequal)
- [subscribe](./ArrayType.md#subscribe)
- [toJSON](./ArrayType.md#tojson)
## Constructors
### constructor
**new ArrayType**(`createParams`, `opts?`)
Constructor.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[BaseType](./BaseType.md).[constructor](./BaseType.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseType](./BaseType.md).[changeLocked](./BaseType.md#changelocked)
___
### flags
**flags**: [`ASTNodeFlags`](../enums/ASTNodeFlags.md)
Node flags, used to record some flag information.
#### Overrides
[BaseType](./BaseType.md).[flags](./BaseType.md#flags)
___
### items
**items**: [`BaseType`](./BaseType.md)\<`any`\>
The type of the items in the array.
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseType](./BaseType.md).[key](./BaseType.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseType](./BaseType.md).[onDispose](./BaseType.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseType](./BaseType.md).[opts](./BaseType.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[parent](./BaseType.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseType](./BaseType.md).[scope](./BaseType.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[toDispose](./BaseType.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseType](./BaseType.md).[value$](./BaseType.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseType](./BaseType.md).[kind](./BaseType.md#kind)
## Accessors
### canDrilldownItems
`get` **canDrilldownItems**(): `boolean`
Whether the items type can be drilled down.
#### Returns
`boolean`
___
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseType.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseType.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseType.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseType.kind
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseType.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispatchGlobalEvent](./BaseType.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispose](./BaseType.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[fireChange](./BaseType.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `ArrayJSON` to the `ArrayType`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `ArrayJSON` | The `ArrayJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[BaseType](./BaseType.md).[fromJSON](./BaseType.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Get a variable field by key path.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath` | `string`[] | The key path to search for. |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
The variable field if found, otherwise `undefined`.
#### Overrides
[BaseType](./BaseType.md).[getByKeyPath](./BaseType.md#getbykeypath)
___
### isTypeEqual
**isTypeEqual**(`targetTypeJSONOrKind?`): `boolean`
Check if the current type is equal to the target type.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `targetTypeJSONOrKind?` | `ASTNodeJSONOrKind` | The type to compare with. |
#### Returns
`boolean`
`true` if the types are equal, `false` otherwise.
#### Overrides
[BaseType](./BaseType.md).[isTypeEqual](./BaseType.md#istypeequal)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`ArrayType`](./ArrayType.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`ArrayType`](./ArrayType.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseType](./BaseType.md).[subscribe](./BaseType.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serialize the `ArrayType` to `ArrayJSON`
#### Returns
`Object`
The JSON representation of `ArrayType`.
| Name | Type |
| :------ | :------ |
| `items` | `any` |
| `kind` | [`ASTKind`](../enums/ASTKind.md) |
#### Overrides
[BaseType](./BaseType.md).[toJSON](./BaseType.md#tojson)
---
url: /auto-docs/editor/classes/AsyncContainerModule.md
---
# Class: AsyncContainerModule
## Implements
- [`AsyncContainerModule`](../interfaces/interfaces.AsyncContainerModule.md)
## Table of contents
### Constructors
- [constructor](./AsyncContainerModule.md#constructor)
### Properties
- [id](./AsyncContainerModule.md#id)
- [registry](./AsyncContainerModule.md#registry)
## Constructors
### constructor
**new AsyncContainerModule**(`registry`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | (...`args`: [bind: Bind, unbind: Unbind, isBound: IsBound, rebind: Rebind, unbindAsync: UnbindAsync, onActivation: Function, onDeactivation: Function]) => `Promise`\<`void`\> |
## Properties
### id
**id**: `number`
#### Implementation of
[AsyncContainerModule](../interfaces/interfaces.AsyncContainerModule.md).[id](../interfaces/interfaces.AsyncContainerModule.md#id)
___
### registry
**registry**: (...`args`: [bind: Bind, unbind: Unbind, isBound: IsBound, rebind: Rebind, unbindAsync: UnbindAsync, onActivation: Function, onDeactivation: Function]) => `Promise`\<`void`\>
#### Type declaration
(`...args`): `Promise`\<`void`\>
##### Parameters
| Name | Type |
| :------ | :------ |
| `...args` | [bind: Bind, unbind: Unbind, isBound: IsBound, rebind: Rebind, unbindAsync: UnbindAsync, onActivation: Function, onDeactivation: Function] |
##### Returns
`Promise`\<`void`\>
#### Implementation of
[AsyncContainerModule](../interfaces/interfaces.AsyncContainerModule.md).[registry](../interfaces/interfaces.AsyncContainerModule.md#registry)
---
url: /auto-docs/editor/classes/BaseExpression.md
---
# Class: BaseExpression\
Base class for all expressions.
All other expressions should extend this class.
## Type parameters
| Name | Type |
| :------ | :------ |
| `JSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = `any` |
## Hierarchy
- [`ASTNode`](./ASTNode.md)\<`JSON`\>
↳ **`BaseExpression`**
↳↳ [`EnumerateExpression`](./EnumerateExpression.md)
↳↳ [`KeyPathExpression`](./KeyPathExpression.md)
↳↳ [`LegacyKeyPathExpression`](./LegacyKeyPathExpression.md)
↳↳ [`WrapArrayExpression`](./WrapArrayExpression.md)
## Table of contents
### Constructors
- [constructor](./BaseExpression.md#constructor)
### Properties
- [changeLocked](./BaseExpression.md#changelocked)
- [flags](./BaseExpression.md#flags)
- [key](./BaseExpression.md#key)
- [onDispose](./BaseExpression.md#ondispose)
- [opts](./BaseExpression.md#opts)
- [parent](./BaseExpression.md#parent)
- [refs$](./BaseExpression.md#refs$)
- [returnType](./BaseExpression.md#returntype)
- [scope](./BaseExpression.md#scope)
- [toDispose](./BaseExpression.md#todispose)
- [value$](./BaseExpression.md#value$)
- [kind](./BaseExpression.md#kind)
### Accessors
- [children](./BaseExpression.md#children)
- [disposed](./BaseExpression.md#disposed)
- [globalVariableTable](./BaseExpression.md#globalvariabletable)
- [hash](./BaseExpression.md#hash)
- [kind](./BaseExpression.md#kind-1)
- [parentFields](./BaseExpression.md#parentfields)
- [refs](./BaseExpression.md#refs)
- [version](./BaseExpression.md#version)
### Methods
- [dispatchGlobalEvent](./BaseExpression.md#dispatchglobalevent)
- [dispose](./BaseExpression.md#dispose)
- [fireChange](./BaseExpression.md#firechange)
- [fromJSON](./BaseExpression.md#fromjson)
- [getRefFields](./BaseExpression.md#getreffields)
- [refreshRefs](./BaseExpression.md#refreshrefs)
- [subscribe](./BaseExpression.md#subscribe)
- [toJSON](./BaseExpression.md#tojson)
## Constructors
### constructor
**new BaseExpression**\<`JSON`\>(`params`, `opts?`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `JSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = `any` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`CreateASTParams`](../interfaces/CreateASTParams.md) |
| `opts?` | `any` |
#### Overrides
[ASTNode](./ASTNode.md).[constructor](./ASTNode.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[ASTNode](./ASTNode.md).[changeLocked](./ASTNode.md#changelocked)
___
### flags
**flags**: [`ASTNodeFlags`](../enums/ASTNodeFlags.md)
Node flags, used to record some flag information.
#### Overrides
[ASTNode](./ASTNode.md).[flags](./ASTNode.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[ASTNode](./ASTNode.md).[key](./ASTNode.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[ASTNode](./ASTNode.md).[onDispose](./ASTNode.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[ASTNode](./ASTNode.md).[opts](./ASTNode.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[parent](./ASTNode.md#parent)
___
### refs$
**refs$**: `Observable`\<`ExpressionRefs`\>
An observable that emits the referenced variable fields when they change.
___
### returnType
`Abstract` **returnType**: `undefined` \| [`BaseType`](./BaseType.md)\<`any`\>
The return type of the expression.
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[ASTNode](./ASTNode.md).[scope](./ASTNode.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[toDispose](./ASTNode.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[ASTNode](./ASTNode.md).[value$](./ASTNode.md#value$)
___
### kind
`Static` `Readonly` **kind**: `string`
The kind of the ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[kind](./ASTNode.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
ASTNode.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ASTNode.disposed
___
### globalVariableTable
`get` **globalVariableTable**(): [`IVariableTable`](../interfaces/IVariableTable.md)
Get the global variable table, which is used to access referenced variables.
#### Returns
[`IVariableTable`](../interfaces/IVariableTable.md)
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
ASTNode.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
ASTNode.kind
___
### parentFields
`get` **parentFields**(): [`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
Parent variable fields, sorted from closest to farthest.
#### Returns
[`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
___
### refs
`get` **refs**(): `ExpressionRefs`
The variable fields referenced by the expression.
#### Returns
`ExpressionRefs`
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
ASTNode.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispatchGlobalEvent](./ASTNode.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispose](./ASTNode.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[fireChange](./ASTNode.md#firechange)
___
### fromJSON
`Abstract` **fromJSON**(`json`): `void`
Parses AST JSON data.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `JSON` | AST JSON data. |
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[fromJSON](./ASTNode.md#fromjson)
___
### getRefFields
`Abstract` **getRefFields**(): `ExpressionRefs`
Get the variable fields referenced by the expression.
This method should be implemented by subclasses.
#### Returns
`ExpressionRefs`
An array of referenced variable fields.
___
### refreshRefs
**refreshRefs**(): `void`
Refresh the variable references.
#### Returns
`void`
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`BaseExpression`](./BaseExpression.md)\<`JSON`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`BaseExpression`](./BaseExpression.md)\<`JSON`\>, `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ASTNode](./ASTNode.md).[subscribe](./ASTNode.md#subscribe)
___
### toJSON
`Abstract` **toJSON**(): `JSON`
Serializes the current ASTNode to ASTNodeJSON.
#### Returns
`JSON`
#### Inherited from
[ASTNode](./ASTNode.md).[toJSON](./ASTNode.md#tojson)
---
url: /auto-docs/editor/classes/BaseType.md
---
# Class: BaseType\
Base class for all types.
All other types should extend this class.
## Type parameters
| Name | Type |
| :------ | :------ |
| `JSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = `any` |
## Hierarchy
- [`ASTNode`](./ASTNode.md)\<`JSON`\>
↳ **`BaseType`**
↳↳ [`ArrayType`](./ArrayType.md)
↳↳ [`BooleanType`](./BooleanType.md)
↳↳ [`CustomType`](./CustomType.md)
↳↳ [`IntegerType`](./IntegerType.md)
↳↳ [`MapType`](./MapType.md)
↳↳ [`NumberType`](./NumberType.md)
↳↳ [`ObjectType`](./ObjectType.md)
↳↳ [`StringType`](./StringType.md)
## Table of contents
### Constructors
- [constructor](./BaseType.md#constructor)
### Properties
- [changeLocked](./BaseType.md#changelocked)
- [flags](./BaseType.md#flags)
- [key](./BaseType.md#key)
- [onDispose](./BaseType.md#ondispose)
- [opts](./BaseType.md#opts)
- [parent](./BaseType.md#parent)
- [scope](./BaseType.md#scope)
- [toDispose](./BaseType.md#todispose)
- [value$](./BaseType.md#value$)
- [kind](./BaseType.md#kind)
### Accessors
- [children](./BaseType.md#children)
- [disposed](./BaseType.md#disposed)
- [hash](./BaseType.md#hash)
- [kind](./BaseType.md#kind-1)
- [version](./BaseType.md#version)
### Methods
- [dispatchGlobalEvent](./BaseType.md#dispatchglobalevent)
- [dispose](./BaseType.md#dispose)
- [fireChange](./BaseType.md#firechange)
- [fromJSON](./BaseType.md#fromjson)
- [getByKeyPath](./BaseType.md#getbykeypath)
- [isTypeEqual](./BaseType.md#istypeequal)
- [subscribe](./BaseType.md#subscribe)
- [toJSON](./BaseType.md#tojson)
## Constructors
### constructor
**new BaseType**\<`JSON`\>(`createParams`, `opts?`)
Constructor.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `JSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = `any` |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[ASTNode](./ASTNode.md).[constructor](./ASTNode.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[ASTNode](./ASTNode.md).[changeLocked](./ASTNode.md#changelocked)
___
### flags
**flags**: `number`
Node flags, used to record some flag information.
#### Overrides
[ASTNode](./ASTNode.md).[flags](./ASTNode.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[ASTNode](./ASTNode.md).[key](./ASTNode.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[ASTNode](./ASTNode.md).[onDispose](./ASTNode.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[ASTNode](./ASTNode.md).[opts](./ASTNode.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[parent](./ASTNode.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[ASTNode](./ASTNode.md).[scope](./ASTNode.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[toDispose](./ASTNode.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[ASTNode](./ASTNode.md).[value$](./ASTNode.md#value$)
___
### kind
`Static` `Readonly` **kind**: `string`
The kind of the ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[kind](./ASTNode.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
ASTNode.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ASTNode.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
ASTNode.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
ASTNode.kind
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
ASTNode.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispatchGlobalEvent](./ASTNode.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispose](./ASTNode.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[fireChange](./ASTNode.md#firechange)
___
### fromJSON
`Abstract` **fromJSON**(`json`): `void`
Parses AST JSON data.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `JSON` | AST JSON data. |
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[fromJSON](./ASTNode.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath?`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Get a variable field by key path.
This method should be implemented by drillable types.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath?` | `string`[] | The key path to search for. |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
The variable field if found, otherwise `undefined`.
___
### isTypeEqual
**isTypeEqual**(`targetTypeJSONOrKind?`): `boolean`
Check if the current type is equal to the target type.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `targetTypeJSONOrKind?` | `ASTNodeJSONOrKind` | The type to compare with. |
#### Returns
`boolean`
`true` if the types are equal, `false` otherwise.
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`BaseType`](./BaseType.md)\<`JSON`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`BaseType`](./BaseType.md)\<`JSON`\>, `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ASTNode](./ASTNode.md).[subscribe](./ASTNode.md#subscribe)
___
### toJSON
`Abstract` **toJSON**(): `JSON`
Serializes the current ASTNode to ASTNodeJSON.
#### Returns
`JSON`
#### Inherited from
[ASTNode](./ASTNode.md).[toJSON](./ASTNode.md#tojson)
---
url: /auto-docs/editor/classes/BaseVariableField.md
---
# Class: BaseVariableField\
Variable Field abstract class, which is the base class for `VariableDeclaration` and `Property`
- `VariableDeclaration` is used to declare a variable in a block scope.
- `Property` is used to declare a property in an object.
## Type parameters
| Name | Type |
| :------ | :------ |
| `VariableMeta` | `any` |
## Hierarchy
- [`ASTNode`](./ASTNode.md)\<`BaseVariableFieldJSON`\<`VariableMeta`\>\>
↳ **`BaseVariableField`**
↳↳ [`Property`](./Property.md)
↳↳ [`VariableDeclaration`](./VariableDeclaration.md)
## Table of contents
### Constructors
- [constructor](./BaseVariableField.md#constructor)
### Properties
- [changeLocked](./BaseVariableField.md#changelocked)
- [flags](./BaseVariableField.md#flags)
- [key](./BaseVariableField.md#key)
- [onDispose](./BaseVariableField.md#ondispose)
- [opts](./BaseVariableField.md#opts)
- [parent](./BaseVariableField.md#parent)
- [scope](./BaseVariableField.md#scope)
- [toDispose](./BaseVariableField.md#todispose)
- [value$](./BaseVariableField.md#value$)
- [kind](./BaseVariableField.md#kind)
### Accessors
- [children](./BaseVariableField.md#children)
- [disposed](./BaseVariableField.md#disposed)
- [hash](./BaseVariableField.md#hash)
- [initializer](./BaseVariableField.md#initializer)
- [keyPath](./BaseVariableField.md#keypath)
- [kind](./BaseVariableField.md#kind-1)
- [meta](./BaseVariableField.md#meta)
- [parentFields](./BaseVariableField.md#parentfields)
- [type](./BaseVariableField.md#type)
- [version](./BaseVariableField.md#version)
### Methods
- [dispatchGlobalEvent](./BaseVariableField.md#dispatchglobalevent)
- [dispose](./BaseVariableField.md#dispose)
- [fireChange](./BaseVariableField.md#firechange)
- [fromJSON](./BaseVariableField.md#fromjson)
- [getByKeyPath](./BaseVariableField.md#getbykeypath)
- [onTypeChange](./BaseVariableField.md#ontypechange)
- [subscribe](./BaseVariableField.md#subscribe)
- [toJSON](./BaseVariableField.md#tojson)
- [updateInitializer](./BaseVariableField.md#updateinitializer)
- [updateMeta](./BaseVariableField.md#updatemeta)
- [updateType](./BaseVariableField.md#updatetype)
## Constructors
### constructor
**new BaseVariableField**\<`VariableMeta`\>(`createParams`, `opts?`)
Constructor.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `VariableMeta` | `any` |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[ASTNode](./ASTNode.md).[constructor](./ASTNode.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[ASTNode](./ASTNode.md).[changeLocked](./ASTNode.md#changelocked)
___
### flags
**flags**: [`ASTNodeFlags`](../enums/ASTNodeFlags.md)
Node flags, used to record some flag information.
#### Overrides
[ASTNode](./ASTNode.md).[flags](./ASTNode.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[ASTNode](./ASTNode.md).[key](./ASTNode.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[ASTNode](./ASTNode.md).[onDispose](./ASTNode.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[ASTNode](./ASTNode.md).[opts](./ASTNode.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[parent](./ASTNode.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[ASTNode](./ASTNode.md).[scope](./ASTNode.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[toDispose](./ASTNode.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[ASTNode](./ASTNode.md).[value$](./ASTNode.md#value$)
___
### kind
`Static` `Readonly` **kind**: `string`
The kind of the ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[kind](./ASTNode.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
ASTNode.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ASTNode.disposed
___
### hash
`get` **hash**(): `string`
The global unique hash of the field, and will be changed when the field is updated.
#### Returns
`string`
#### Overrides
ASTNode.hash
___
### initializer
`get` **initializer**(): `undefined` \| [`BaseExpression`](./BaseExpression.md)\<`any`\>
Initializer of the variable field, similar to js code:
`const v = 'hello'`
with initializer, the type of field will be inferred from the initializer.
#### Returns
`undefined` \| [`BaseExpression`](./BaseExpression.md)\<`any`\>
___
### keyPath
`get` **keyPath**(): `string`[]
KeyPath of the variable field, sorted from farthest to closest
#### Returns
`string`[]
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
ASTNode.kind
___
### meta
`get` **meta**(): `VariableMeta`
Metadata of the variable field, you cans store information like `title`, `icon`, etc.
#### Returns
`VariableMeta`
___
### parentFields
`get` **parentFields**(): [`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
Parent variable fields, sorted from closest to farthest
#### Returns
[`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
___
### type
`get` **type**(): [`BaseType`](./BaseType.md)\<`any`\>
Type of the variable field, similar to js code:
`const v: string`
#### Returns
[`BaseType`](./BaseType.md)\<`any`\>
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
ASTNode.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispatchGlobalEvent](./ASTNode.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispose](./ASTNode.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[fireChange](./ASTNode.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserialize the `BaseVariableFieldJSON` to the `BaseVariableField`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `Omit`\<`BaseVariableFieldJSON`\<`VariableMeta`\>, ``"key"``\> | ASTJSON representation of `BaseVariableField` |
#### Returns
`void`
#### Overrides
[ASTNode](./ASTNode.md).[fromJSON](./ASTNode.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Get the variable field by keyPath, similar to js code:
`v.a.b`
#### Parameters
| Name | Type |
| :------ | :------ |
| `keyPath` | `string`[] |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
___
### onTypeChange
**onTypeChange**(`observer`): [`Disposable`](../interfaces/Disposable-1.md)
Subscribe to type change of the variable field
#### Parameters
| Name | Type |
| :------ | :------ |
| `observer` | (`type`: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>) => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`BaseVariableField`](./BaseVariableField.md)\<`VariableMeta`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`BaseVariableField`](./BaseVariableField.md)\<`VariableMeta`\>, `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ASTNode](./ASTNode.md).[subscribe](./ASTNode.md#subscribe)
___
### toJSON
**toJSON**(): `BaseVariableFieldJSON`\<`VariableMeta`\>
Serialize the variable field to JSON
#### Returns
`BaseVariableFieldJSON`\<`VariableMeta`\>
ASTNodeJSON representation of `BaseVariableField`
#### Overrides
[ASTNode](./ASTNode.md).[toJSON](./ASTNode.md#tojson)
___
### updateInitializer
**updateInitializer**(`nextInitializer?`): `void`
Update the initializer of the variable field
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `nextInitializer?` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) | initializer ASTJSON representation of Expression |
#### Returns
`void`
___
### updateMeta
**updateMeta**(`nextMeta`): `void`
Update the meta data of the variable field
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `nextMeta` | `VariableMeta` | meta data of the variable field |
#### Returns
`void`
___
### updateType
**updateType**(`type`): `void`
Update the type of the variable field
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `type` | `undefined` \| `ASTNodeJSONOrKind` | type ASTJSON representation of Type |
#### Returns
`void`
---
url: /auto-docs/editor/classes/BooleanType.md
---
# Class: BooleanType
Represents a boolean type.
## Hierarchy
- [`BaseType`](./BaseType.md)
↳ **`BooleanType`**
## Table of contents
### Constructors
- [constructor](./BooleanType.md#constructor)
### Properties
- [changeLocked](./BooleanType.md#changelocked)
- [flags](./BooleanType.md#flags)
- [key](./BooleanType.md#key)
- [onDispose](./BooleanType.md#ondispose)
- [opts](./BooleanType.md#opts)
- [parent](./BooleanType.md#parent)
- [scope](./BooleanType.md#scope)
- [toDispose](./BooleanType.md#todispose)
- [value$](./BooleanType.md#value$)
- [kind](./BooleanType.md#kind)
### Accessors
- [children](./BooleanType.md#children)
- [disposed](./BooleanType.md#disposed)
- [hash](./BooleanType.md#hash)
- [kind](./BooleanType.md#kind-1)
- [version](./BooleanType.md#version)
### Methods
- [dispatchGlobalEvent](./BooleanType.md#dispatchglobalevent)
- [dispose](./BooleanType.md#dispose)
- [fireChange](./BooleanType.md#firechange)
- [fromJSON](./BooleanType.md#fromjson)
- [getByKeyPath](./BooleanType.md#getbykeypath)
- [isTypeEqual](./BooleanType.md#istypeequal)
- [subscribe](./BooleanType.md#subscribe)
- [toJSON](./BooleanType.md#tojson)
## Constructors
### constructor
**new BooleanType**(`createParams`, `opts?`)
Constructor.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[BaseType](./BaseType.md).[constructor](./BaseType.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseType](./BaseType.md).[changeLocked](./BaseType.md#changelocked)
___
### flags
**flags**: `number`
Node flags, used to record some flag information.
#### Inherited from
[BaseType](./BaseType.md).[flags](./BaseType.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseType](./BaseType.md).[key](./BaseType.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseType](./BaseType.md).[onDispose](./BaseType.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseType](./BaseType.md).[opts](./BaseType.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[parent](./BaseType.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseType](./BaseType.md).[scope](./BaseType.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[toDispose](./BaseType.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseType](./BaseType.md).[value$](./BaseType.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseType](./BaseType.md).[kind](./BaseType.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseType.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseType.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseType.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseType.kind
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseType.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispatchGlobalEvent](./BaseType.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispose](./BaseType.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[fireChange](./BaseType.md#firechange)
___
### fromJSON
**fromJSON**(): `void`
Deserializes the `BooleanJSON` to the `BooleanType`.
#### Returns
`void`
#### Overrides
[BaseType](./BaseType.md).[fromJSON](./BaseType.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath?`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Get a variable field by key path.
This method should be implemented by drillable types.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath?` | `string`[] | The key path to search for. |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
The variable field if found, otherwise `undefined`.
#### Inherited from
[BaseType](./BaseType.md).[getByKeyPath](./BaseType.md#getbykeypath)
___
### isTypeEqual
**isTypeEqual**(`targetTypeJSONOrKind?`): `boolean`
Check if the current type is equal to the target type.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `targetTypeJSONOrKind?` | `ASTNodeJSONOrKind` | The type to compare with. |
#### Returns
`boolean`
`true` if the types are equal, `false` otherwise.
#### Inherited from
[BaseType](./BaseType.md).[isTypeEqual](./BaseType.md#istypeequal)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`BooleanType`](./BooleanType.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`BooleanType`](./BooleanType.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseType](./BaseType.md).[subscribe](./BaseType.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serializes the current ASTNode to ASTNodeJSON.
#### Returns
`Object`
#### Overrides
[BaseType](./BaseType.md).[toJSON](./BaseType.md#tojson)
---
url: /auto-docs/editor/classes/CancellationTokenSource.md
---
# Class: CancellationTokenSource
## Table of contents
### Constructors
- [constructor](./CancellationTokenSource.md#constructor)
### Accessors
- [token](./CancellationTokenSource.md#token)
### Methods
- [cancel](./CancellationTokenSource.md#cancel)
- [dispose](./CancellationTokenSource.md#dispose)
## Constructors
### constructor
**new CancellationTokenSource**()
## Accessors
### token
`get` **token**(): [`CancellationToken`](../interfaces/CancellationToken-1.md)
#### Returns
[`CancellationToken`](../interfaces/CancellationToken-1.md)
## Methods
### cancel
**cancel**(): `void`
#### Returns
`void`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
---
url: /auto-docs/editor/classes/Circle.md
---
# Class: Circle
The Circle object is used to help draw graphics and can also be used to specify a hit area for displayObjects.
## Table of contents
### Constructors
- [constructor](./Circle.md#constructor)
### Properties
- [radius](./Circle.md#radius)
- [type](./Circle.md#type)
- [x](./Circle.md#x)
- [y](./Circle.md#y)
### Methods
- [clone](./Circle.md#clone)
- [contains](./Circle.md#contains)
- [getBounds](./Circle.md#getbounds)
## Constructors
### constructor
**new Circle**(`x?`, `y?`, `radius?`)
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `x?` | `number` | Circle center x |
| `y?` | `number` | Circle center y |
| `radius?` | `number` | - |
## Properties
### radius
**radius**: `number`
___
### type
`Readonly` **type**: [`CIRC`](../enums/SHAPES.md#circ) = `SHAPES.CIRC`
The type of the object, mainly used to avoid `instanceof` checks
___
### x
**x**: `number`
___
### y
**y**: `number`
## Methods
### clone
**clone**(): [`Circle`](./Circle.md)
Creates a clone of this Circle instance
#### Returns
[`Circle`](./Circle.md)
a copy of the Circle
___
### contains
**contains**(`x`, `y`): `boolean`
Checks whether the x and y coordinates given are contained within this circle
#### Parameters
| Name | Type |
| :------ | :------ |
| `x` | `number` |
| `y` | `number` |
#### Returns
`boolean`
Whether the (x, y) coordinates are within this Circle
___
### getBounds
**getBounds**(): [`Rectangle`](./Rectangle-1.md)
Returns the framing rectangle of the circle as a Rectangle object
#### Returns
[`Rectangle`](./Rectangle-1.md)
the framing rectangle
---
url: /auto-docs/editor/classes/CommandRegistry.md
---
# Class: CommandRegistry
## Implements
- [`CommandService`](../variables/CommandService-1.md)
## Table of contents
### Constructors
- [constructor](./CommandRegistry.md#constructor)
### Properties
- [onDidExecuteCommand](./CommandRegistry.md#ondidexecutecommand)
- [onWillExecuteCommand](./CommandRegistry.md#onwillexecutecommand)
### Accessors
- [commandIds](./CommandRegistry.md#commandids)
- [commands](./CommandRegistry.md#commands)
### Methods
- [dispose](./CommandRegistry.md#dispose)
- [executeCommand](./CommandRegistry.md#executecommand)
- [getActiveHandler](./CommandRegistry.md#getactivehandler)
- [getAllHandlers](./CommandRegistry.md#getallhandlers)
- [getCommand](./CommandRegistry.md#getcommand)
- [getToggledHandler](./CommandRegistry.md#gettoggledhandler)
- [getVisibleHandler](./CommandRegistry.md#getvisiblehandler)
- [init](./CommandRegistry.md#init)
- [isEnabled](./CommandRegistry.md#isenabled)
- [isToggled](./CommandRegistry.md#istoggled)
- [isVisible](./CommandRegistry.md#isvisible)
- [registerCommand](./CommandRegistry.md#registercommand)
- [registerHandler](./CommandRegistry.md#registerhandler)
- [unregisterCommand](./CommandRegistry.md#unregistercommand)
- [updateCommand](./CommandRegistry.md#updatecommand)
## Constructors
### constructor
**new CommandRegistry**()
## Properties
### onDidExecuteCommand
`Readonly` **onDidExecuteCommand**: [`Event`](../interfaces/Event-1.md)\<`CommandEvent`\>
#### Implementation of
CommandService.onDidExecuteCommand
___
### onWillExecuteCommand
`Readonly` **onWillExecuteCommand**: [`Event`](../interfaces/Event-1.md)\<`CommandEvent`\>
#### Implementation of
CommandService.onWillExecuteCommand
## Accessors
### commandIds
`get` **commandIds**(): `string`[]
当前所有 commandid
#### Returns
`string`[]
___
### commands
`get` **commands**(): [`Command`](../interfaces/Command-1.md)[]
当前所有 command
#### Returns
[`Command`](../interfaces/Command-1.md)[]
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
CommandService.dispose
___
### executeCommand
**executeCommand**\<`T`\>(`commandId`, `...args`): `Promise`\<`undefined` \| `T`\>
执行 command,会先判断是否可以执行,不会重复执行
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `...args` | `any`[] |
#### Returns
`Promise`\<`undefined` \| `T`\>
#### Implementation of
CommandService.executeCommand
___
### getActiveHandler
**getActiveHandler**(`commandId`, `...args`): `undefined` \| `CommandHandler`
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `...args` | `any`[] |
#### Returns
`undefined` \| `CommandHandler`
___
### getAllHandlers
**getAllHandlers**(`commandId`): `CommandHandler`[]
获取 command 对应的所有 handler
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
#### Returns
`CommandHandler`[]
___
### getCommand
**getCommand**(`id`): `undefined` \| [`Command`](../interfaces/Command-1.md)
获取 command
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| [`Command`](../interfaces/Command-1.md)
___
### getToggledHandler
**getToggledHandler**(`commandId`, `...args`): `undefined` \| `CommandHandler`
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `...args` | `any`[] |
#### Returns
`undefined` \| `CommandHandler`
___
### getVisibleHandler
**getVisibleHandler**(`commandId`, `...args`): `undefined` \| `CommandHandler`
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `...args` | `any`[] |
#### Returns
`undefined` \| `CommandHandler`
___
### init
**init**(): `void`
#### Returns
`void`
___
### isEnabled
**isEnabled**(`command`, `...args`): `boolean`
command 是否可用
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | `string` |
| `...args` | `any`[] |
#### Returns
`boolean`
___
### isToggled
**isToggled**(`command`, `...args`): `boolean`
预留 contextMenu 用,该 handler 是否可以触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | `string` |
| `...args` | `any`[] |
#### Returns
`boolean`
___
### isVisible
**isVisible**(`command`, `...args`): `boolean`
预留 contextMenu 用,该 handler 是否可见
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | `string` |
| `...args` | `any`[] |
#### Returns
`boolean`
___
### registerCommand
**registerCommand**(`id`, `handler?`): [`Disposable`](../interfaces/Disposable-1.md)
registerCommand
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
| `handler?` | `CommandHandler` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
**registerCommand**(`command`, `handler?`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | [`Command`](../interfaces/Command-1.md) |
| `handler?` | `CommandHandler` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### registerHandler
**registerHandler**(`commandId`, `handler`): [`Disposable`](../interfaces/Disposable-1.md)
注册 handler
#### Parameters
| Name | Type |
| :------ | :------ |
| `commandId` | `string` |
| `handler` | `CommandHandler` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### unregisterCommand
**unregisterCommand**(`command`): `void`
unregisterCommand
#### Parameters
| Name | Type |
| :------ | :------ |
| `command` | [`Command`](../interfaces/Command-1.md) |
#### Returns
`void`
**unregisterCommand**(`id`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`void`
___
### updateCommand
**updateCommand**(`id`, `command`): `void`
更新 command
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
| `command` | `Partial`\<`Omit`\<[`Command`](../interfaces/Command-1.md), ``"id"``\>\> |
#### Returns
`void`
---
url: /auto-docs/editor/classes/ConfigEntity.md
---
# Class: ConfigEntity\
用于专门的数据配置,且是单例
## Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) = [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) |
| `O` | extends [`EntityOpts`](../interfaces/EntityOpts.md) = [`EntityOpts`](../interfaces/EntityOpts.md) |
## Hierarchy
- [`Entity`](./Entity-1.md)\<`O`\>
↳ **`ConfigEntity`**
↳↳ [`EditorStateConfigEntity`](./EditorStateConfigEntity.md)
↳↳ [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
↳↳ [`FlowDocumentTransformerEntity`](./FlowDocumentTransformerEntity.md)
↳↳ [`FlowRendererStateEntity`](./FlowRendererStateEntity.md)
↳↳ [`FlowDragEntity`](./FlowDragEntity.md)
↳↳ [`FlowSelectConfigEntity`](./FlowSelectConfigEntity.md)
↳↳ [`SelectorBoxConfigEntity`](./SelectorBoxConfigEntity.md)
## Table of contents
### Constructors
- [constructor](./ConfigEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./ConfigEntity.md#__opts_type__)
- [entityManager](./ConfigEntity.md#entitymanager)
- [onDataChange](./ConfigEntity.md#ondatachange)
- [onEntityChange](./ConfigEntity.md#onentitychange)
- [preDispose](./ConfigEntity.md#predispose)
- [toDispose](./ConfigEntity.md#todispose)
- [type](./ConfigEntity.md#type)
### Accessors
- [config](./ConfigEntity.md#config)
- [context](./ConfigEntity.md#context)
- [disposed](./ConfigEntity.md#disposed)
- [id](./ConfigEntity.md#id)
- [onDispose](./ConfigEntity.md#ondispose)
- [savedInManager](./ConfigEntity.md#savedinmanager)
- [type](./ConfigEntity.md#type-1)
- [version](./ConfigEntity.md#version)
### Methods
- [addData](./ConfigEntity.md#adddata)
- [addInitializeData](./ConfigEntity.md#addinitializedata)
- [checkChanged](./ConfigEntity.md#checkchanged)
- [dispose](./ConfigEntity.md#dispose)
- [fromJSON](./ConfigEntity.md#fromjson)
- [getData](./ConfigEntity.md#getdata)
- [getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
- [getService](./ConfigEntity.md#getservice)
- [hasData](./ConfigEntity.md#hasdata)
- [onConfigChanged](./ConfigEntity.md#onconfigchanged)
- [removeData](./ConfigEntity.md#removedata)
- [reset](./ConfigEntity.md#reset)
- [toJSON](./ConfigEntity.md#tojson)
- [updateConfig](./ConfigEntity.md#updateconfig)
- [updateData](./ConfigEntity.md#updatedata)
## Constructors
### constructor
**new ConfigEntity**\<`P`, `O`\>(`opts`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) = [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) |
| `O` | extends [`EntityOpts`](../interfaces/EntityOpts.md) = [`EntityOpts`](../interfaces/EntityOpts.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `O` |
#### Overrides
[Entity](./Entity-1.md).[constructor](./Entity-1.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `O`
#### Inherited from
[Entity](./Entity-1.md).[__opts_type__](./Entity-1.md#__opts_type__)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[Entity](./Entity-1.md).[entityManager](./Entity-1.md#entitymanager)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[Entity](./Entity-1.md).[onDataChange](./Entity-1.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[Entity](./Entity-1.md).[onEntityChange](./Entity-1.md#onentitychange)
___
### preDispose
`Readonly` **preDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁前事件管理
#### Inherited from
[Entity](./Entity-1.md).[preDispose](./Entity-1.md#predispose)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁事件管理
#### Inherited from
[Entity](./Entity-1.md).[toDispose](./Entity-1.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[Entity](./Entity-1.md).[type](./Entity-1.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
Entity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
Entity.disposed
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
Entity.id
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
销毁事件
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
Entity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
Entity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
Entity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
Entity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[Entity](./Entity-1.md).[addData](./Entity-1.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[addInitializeData](./Entity-1.md#addinitializedata)
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `P` |
| `newData` | `Partial`\<`P`\> |
#### Returns
`boolean`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[dispose](./Entity-1.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[fromJSON](./Entity-1.md#fromjson)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[Entity](./Entity-1.md).[getData](./Entity-1.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): `P`
#### Returns
`P`
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[Entity](./Entity-1.md).[getDefaultDataRegistries](./Entity-1.md#getdefaultdataregistries)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
#### Inherited from
[Entity](./Entity-1.md).[getService](./Entity-1.md#getservice)
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[Entity](./Entity-1.md).[hasData](./Entity-1.md#hasdata)
___
### onConfigChanged
**onConfigChanged**(`fn`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: `P`) => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[removeData](./Entity-1.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[reset](./Entity-1.md#reset)
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[Entity](./Entity-1.md).[toJSON](./Entity-1.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<`P`\> |
#### Returns
`void`
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[updateData](./Entity-1.md#updatedata)
---
url: /auto-docs/editor/classes/Container.md
---
# Class: Container
## Implements
- [`Container`](../interfaces/interfaces.Container.md)
## Table of contents
### Constructors
- [constructor](./Container.md#constructor)
### Properties
- [id](./Container.md#id)
- [options](./Container.md#options)
- [parent](./Container.md#parent)
### Methods
- [applyCustomMetadataReader](./Container.md#applycustommetadatareader)
- [applyMiddleware](./Container.md#applymiddleware)
- [bind](./Container.md#bind)
- [createChild](./Container.md#createchild)
- [get](./Container.md#get)
- [getAll](./Container.md#getall)
- [getAllAsync](./Container.md#getallasync)
- [getAllNamed](./Container.md#getallnamed)
- [getAllNamedAsync](./Container.md#getallnamedasync)
- [getAllTagged](./Container.md#getalltagged)
- [getAllTaggedAsync](./Container.md#getalltaggedasync)
- [getAsync](./Container.md#getasync)
- [getNamed](./Container.md#getnamed)
- [getNamedAsync](./Container.md#getnamedasync)
- [getTagged](./Container.md#gettagged)
- [getTaggedAsync](./Container.md#gettaggedasync)
- [isBound](./Container.md#isbound)
- [isBoundNamed](./Container.md#isboundnamed)
- [isBoundTagged](./Container.md#isboundtagged)
- [isCurrentBound](./Container.md#iscurrentbound)
- [load](./Container.md#load)
- [loadAsync](./Container.md#loadasync)
- [onActivation](./Container.md#onactivation)
- [onDeactivation](./Container.md#ondeactivation)
- [rebind](./Container.md#rebind)
- [rebindAsync](./Container.md#rebindasync)
- [resolve](./Container.md#resolve)
- [restore](./Container.md#restore)
- [snapshot](./Container.md#snapshot)
- [tryGet](./Container.md#tryget)
- [tryGetAll](./Container.md#trygetall)
- [tryGetAllAsync](./Container.md#trygetallasync)
- [tryGetAllNamed](./Container.md#trygetallnamed)
- [tryGetAllNamedAsync](./Container.md#trygetallnamedasync)
- [tryGetAllTagged](./Container.md#trygetalltagged)
- [tryGetAllTaggedAsync](./Container.md#trygetalltaggedasync)
- [tryGetAsync](./Container.md#trygetasync)
- [tryGetNamed](./Container.md#trygetnamed)
- [tryGetNamedAsync](./Container.md#trygetnamedasync)
- [tryGetTagged](./Container.md#trygettagged)
- [tryGetTaggedAsync](./Container.md#trygettaggedasync)
- [unbind](./Container.md#unbind)
- [unbindAll](./Container.md#unbindall)
- [unbindAllAsync](./Container.md#unbindallasync)
- [unbindAsync](./Container.md#unbindasync)
- [unload](./Container.md#unload)
- [unloadAsync](./Container.md#unloadasync)
- [merge](./Container.md#merge)
## Constructors
### constructor
**new Container**(`containerOptions?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `containerOptions?` | [`ContainerOptions`](../interfaces/interfaces.ContainerOptions.md) |
## Properties
### id
**id**: `number`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[id](../interfaces/interfaces.Container.md#id)
___
### options
`Readonly` **options**: [`ContainerOptions`](../interfaces/interfaces.ContainerOptions.md)
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[options](../interfaces/interfaces.Container.md#options)
___
### parent
**parent**: ``null`` \| [`Container`](../interfaces/interfaces.Container.md)
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[parent](../interfaces/interfaces.Container.md#parent)
## Methods
### applyCustomMetadataReader
**applyCustomMetadataReader**(`metadataReader`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `metadataReader` | [`MetadataReader`](../interfaces/interfaces.MetadataReader.md) |
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[applyCustomMetadataReader](../interfaces/interfaces.Container.md#applycustommetadatareader)
___
### applyMiddleware
**applyMiddleware**(`...middlewares`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `...middlewares` | [`Middleware`](../types/interfaces.Middleware.md)[] |
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[applyMiddleware](../interfaces/interfaces.Container.md#applymiddleware)
___
### bind
**bind**\<`T`\>(`serviceIdentifier`): [`BindingToSyntax`](../interfaces/interfaces.BindingToSyntax.md)\<`T`\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
[`BindingToSyntax`](../interfaces/interfaces.BindingToSyntax.md)\<`T`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[bind](../interfaces/interfaces.Container.md#bind)
___
### createChild
**createChild**(`containerOptions?`): [`Container`](./Container.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `containerOptions?` | [`ContainerOptions`](../interfaces/interfaces.ContainerOptions.md) |
#### Returns
[`Container`](./Container.md)
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[createChild](../interfaces/interfaces.Container.md#createchild)
___
### get
**get**\<`T`\>(`serviceIdentifier`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[get](../interfaces/interfaces.Container.md#get)
___
### getAll
**getAll**\<`T`\>(`serviceIdentifier`, `options?`): `T`[]
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `options?` | [`GetAllOptions`](../interfaces/interfaces.GetAllOptions.md) |
#### Returns
`T`[]
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getAll](../interfaces/interfaces.Container.md#getall)
___
### getAllAsync
**getAllAsync**\<`T`\>(`serviceIdentifier`, `options?`): `Promise`\<`T`[]\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `options?` | [`GetAllOptions`](../interfaces/interfaces.GetAllOptions.md) |
#### Returns
`Promise`\<`T`[]\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getAllAsync](../interfaces/interfaces.Container.md#getallasync)
___
### getAllNamed
**getAllNamed**\<`T`\>(`serviceIdentifier`, `named`): `T`[]
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `named` | `string` \| `number` \| `symbol` |
#### Returns
`T`[]
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getAllNamed](../interfaces/interfaces.Container.md#getallnamed)
___
### getAllNamedAsync
**getAllNamedAsync**\<`T`\>(`serviceIdentifier`, `named`): `Promise`\<`T`[]\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `named` | `string` \| `number` \| `symbol` |
#### Returns
`Promise`\<`T`[]\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getAllNamedAsync](../interfaces/interfaces.Container.md#getallnamedasync)
___
### getAllTagged
**getAllTagged**\<`T`\>(`serviceIdentifier`, `key`, `value`): `T`[]
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `key` | `string` \| `number` \| `symbol` |
| `value` | `unknown` |
#### Returns
`T`[]
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getAllTagged](../interfaces/interfaces.Container.md#getalltagged)
___
### getAllTaggedAsync
**getAllTaggedAsync**\<`T`\>(`serviceIdentifier`, `key`, `value`): `Promise`\<`T`[]\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `key` | `string` \| `number` \| `symbol` |
| `value` | `unknown` |
#### Returns
`Promise`\<`T`[]\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getAllTaggedAsync](../interfaces/interfaces.Container.md#getalltaggedasync)
___
### getAsync
**getAsync**\<`T`\>(`serviceIdentifier`): `Promise`\<`T`\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`Promise`\<`T`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getAsync](../interfaces/interfaces.Container.md#getasync)
___
### getNamed
**getNamed**\<`T`\>(`serviceIdentifier`, `named`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `named` | `string` \| `number` \| `symbol` |
#### Returns
`T`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getNamed](../interfaces/interfaces.Container.md#getnamed)
___
### getNamedAsync
**getNamedAsync**\<`T`\>(`serviceIdentifier`, `named`): `Promise`\<`T`\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `named` | `string` \| `number` \| `symbol` |
#### Returns
`Promise`\<`T`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getNamedAsync](../interfaces/interfaces.Container.md#getnamedasync)
___
### getTagged
**getTagged**\<`T`\>(`serviceIdentifier`, `key`, `value`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `key` | `string` \| `number` \| `symbol` |
| `value` | `unknown` |
#### Returns
`T`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getTagged](../interfaces/interfaces.Container.md#gettagged)
___
### getTaggedAsync
**getTaggedAsync**\<`T`\>(`serviceIdentifier`, `key`, `value`): `Promise`\<`T`\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `key` | `string` \| `number` \| `symbol` |
| `value` | `unknown` |
#### Returns
`Promise`\<`T`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[getTaggedAsync](../interfaces/interfaces.Container.md#gettaggedasync)
___
### isBound
**isBound**(`serviceIdentifier`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`unknown`\> |
#### Returns
`boolean`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[isBound](../interfaces/interfaces.Container.md#isbound)
___
### isBoundNamed
**isBoundNamed**(`serviceIdentifier`, `named`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`unknown`\> |
| `named` | `string` \| `number` \| `symbol` |
#### Returns
`boolean`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[isBoundNamed](../interfaces/interfaces.Container.md#isboundnamed)
___
### isBoundTagged
**isBoundTagged**(`serviceIdentifier`, `key`, `value`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`unknown`\> |
| `key` | `string` \| `number` \| `symbol` |
| `value` | `unknown` |
#### Returns
`boolean`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[isBoundTagged](../interfaces/interfaces.Container.md#isboundtagged)
___
### isCurrentBound
**isCurrentBound**\<`T`\>(`serviceIdentifier`): `boolean`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`boolean`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[isCurrentBound](../interfaces/interfaces.Container.md#iscurrentbound)
___
### load
**load**(`...modules`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `...modules` | [`ContainerModule`](../interfaces/interfaces.ContainerModule.md)[] |
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[load](../interfaces/interfaces.Container.md#load)
___
### loadAsync
**loadAsync**(`...modules`): `Promise`\<`void`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `...modules` | [`AsyncContainerModule`](../interfaces/interfaces.AsyncContainerModule.md)[] |
#### Returns
`Promise`\<`void`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[loadAsync](../interfaces/interfaces.Container.md#loadasync)
___
### onActivation
**onActivation**\<`T`\>(`serviceIdentifier`, `onActivation`): `void`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `onActivation` | [`BindingActivation`](../types/interfaces.BindingActivation.md)\<`T`\> |
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[onActivation](../interfaces/interfaces.Container.md#onactivation)
___
### onDeactivation
**onDeactivation**\<`T`\>(`serviceIdentifier`, `onDeactivation`): `void`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `onDeactivation` | [`BindingDeactivation`](../types/interfaces.BindingDeactivation.md)\<`T`\> |
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[onDeactivation](../interfaces/interfaces.Container.md#ondeactivation)
___
### rebind
**rebind**\<`T`\>(`serviceIdentifier`): [`BindingToSyntax`](../interfaces/interfaces.BindingToSyntax.md)\<`T`\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
[`BindingToSyntax`](../interfaces/interfaces.BindingToSyntax.md)\<`T`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[rebind](../interfaces/interfaces.Container.md#rebind)
___
### rebindAsync
**rebindAsync**\<`T`\>(`serviceIdentifier`): `Promise`\<[`BindingToSyntax`](../interfaces/interfaces.BindingToSyntax.md)\<`T`\>\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`Promise`\<[`BindingToSyntax`](../interfaces/interfaces.BindingToSyntax.md)\<`T`\>\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[rebindAsync](../interfaces/interfaces.Container.md#rebindasync)
___
### resolve
**resolve**\<`T`\>(`constructorFunction`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `constructorFunction` | [`Newable`](../types/interfaces.Newable.md)\<`T`\> |
#### Returns
`T`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[resolve](../interfaces/interfaces.Container.md#resolve)
___
### restore
**restore**(): `void`
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[restore](../interfaces/interfaces.Container.md#restore)
___
### snapshot
**snapshot**(): `void`
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[snapshot](../interfaces/interfaces.Container.md#snapshot)
___
### tryGet
**tryGet**\<`T`\>(`serviceIdentifier`): `undefined` \| `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`undefined` \| `T`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGet](../interfaces/interfaces.Container.md#tryget)
___
### tryGetAll
**tryGetAll**\<`T`\>(`serviceIdentifier`, `options?`): `T`[]
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `options?` | [`GetAllOptions`](../interfaces/interfaces.GetAllOptions.md) |
#### Returns
`T`[]
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetAll](../interfaces/interfaces.Container.md#trygetall)
___
### tryGetAllAsync
**tryGetAllAsync**\<`T`\>(`serviceIdentifier`, `options?`): `Promise`\<`T`[]\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `options?` | [`GetAllOptions`](../interfaces/interfaces.GetAllOptions.md) |
#### Returns
`Promise`\<`T`[]\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetAllAsync](../interfaces/interfaces.Container.md#trygetallasync)
___
### tryGetAllNamed
**tryGetAllNamed**\<`T`\>(`serviceIdentifier`, `named`): `T`[]
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `named` | `string` \| `number` \| `symbol` |
#### Returns
`T`[]
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetAllNamed](../interfaces/interfaces.Container.md#trygetallnamed)
___
### tryGetAllNamedAsync
**tryGetAllNamedAsync**\<`T`\>(`serviceIdentifier`, `named`): `Promise`\<`T`[]\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `named` | `string` \| `number` \| `symbol` |
#### Returns
`Promise`\<`T`[]\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetAllNamedAsync](../interfaces/interfaces.Container.md#trygetallnamedasync)
___
### tryGetAllTagged
**tryGetAllTagged**\<`T`\>(`serviceIdentifier`, `key`, `value`): `T`[]
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `key` | `string` \| `number` \| `symbol` |
| `value` | `unknown` |
#### Returns
`T`[]
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetAllTagged](../interfaces/interfaces.Container.md#trygetalltagged)
___
### tryGetAllTaggedAsync
**tryGetAllTaggedAsync**\<`T`\>(`serviceIdentifier`, `key`, `value`): `Promise`\<`T`[]\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `key` | `string` \| `number` \| `symbol` |
| `value` | `unknown` |
#### Returns
`Promise`\<`T`[]\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetAllTaggedAsync](../interfaces/interfaces.Container.md#trygetalltaggedasync)
___
### tryGetAsync
**tryGetAsync**\<`T`\>(`serviceIdentifier`): `Promise`\<`undefined` \| `T`\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`Promise`\<`undefined` \| `T`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetAsync](../interfaces/interfaces.Container.md#trygetasync)
___
### tryGetNamed
**tryGetNamed**\<`T`\>(`serviceIdentifier`, `named`): `undefined` \| `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `named` | `string` \| `number` \| `symbol` |
#### Returns
`undefined` \| `T`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetNamed](../interfaces/interfaces.Container.md#trygetnamed)
___
### tryGetNamedAsync
**tryGetNamedAsync**\<`T`\>(`serviceIdentifier`, `named`): `Promise`\<`undefined` \| `T`\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `named` | `string` \| `number` \| `symbol` |
#### Returns
`Promise`\<`undefined` \| `T`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetNamedAsync](../interfaces/interfaces.Container.md#trygetnamedasync)
___
### tryGetTagged
**tryGetTagged**\<`T`\>(`serviceIdentifier`, `key`, `value`): `undefined` \| `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `key` | `string` \| `number` \| `symbol` |
| `value` | `unknown` |
#### Returns
`undefined` \| `T`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetTagged](../interfaces/interfaces.Container.md#trygettagged)
___
### tryGetTaggedAsync
**tryGetTaggedAsync**\<`T`\>(`serviceIdentifier`, `key`, `value`): `Promise`\<`undefined` \| `T`\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
| `key` | `string` \| `number` \| `symbol` |
| `value` | `unknown` |
#### Returns
`Promise`\<`undefined` \| `T`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[tryGetTaggedAsync](../interfaces/interfaces.Container.md#trygettaggedasync)
___
### unbind
**unbind**(`serviceIdentifier`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`unknown`\> |
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[unbind](../interfaces/interfaces.Container.md#unbind)
___
### unbindAll
**unbindAll**(): `void`
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[unbindAll](../interfaces/interfaces.Container.md#unbindall)
___
### unbindAllAsync
**unbindAllAsync**(): `Promise`\<`void`\>
#### Returns
`Promise`\<`void`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[unbindAllAsync](../interfaces/interfaces.Container.md#unbindallasync)
___
### unbindAsync
**unbindAsync**(`serviceIdentifier`): `Promise`\<`void`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `serviceIdentifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`unknown`\> |
#### Returns
`Promise`\<`void`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[unbindAsync](../interfaces/interfaces.Container.md#unbindasync)
___
### unload
**unload**(`...modules`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `...modules` | [`ContainerModuleBase`](../interfaces/interfaces.ContainerModuleBase.md)[] |
#### Returns
`void`
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[unload](../interfaces/interfaces.Container.md#unload)
___
### unloadAsync
**unloadAsync**(`...modules`): `Promise`\<`void`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `...modules` | [`ContainerModuleBase`](../interfaces/interfaces.ContainerModuleBase.md)[] |
#### Returns
`Promise`\<`void`\>
#### Implementation of
[Container](../interfaces/interfaces.Container.md).[unloadAsync](../interfaces/interfaces.Container.md#unloadasync)
___
### merge
`Static` **merge**(`container1`, `container2`, `...containers`): [`Container`](../interfaces/interfaces.Container.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `container1` | [`Container`](../interfaces/interfaces.Container.md) |
| `container2` | [`Container`](../interfaces/interfaces.Container.md) |
| `...containers` | [`Container`](../interfaces/interfaces.Container.md)[] |
#### Returns
[`Container`](../interfaces/interfaces.Container.md)
---
url: /auto-docs/editor/classes/ContainerModule.md
---
# Class: ContainerModule
## Implements
- [`ContainerModule`](../interfaces/interfaces.ContainerModule.md)
## Table of contents
### Constructors
- [constructor](./ContainerModule.md#constructor)
### Properties
- [id](./ContainerModule.md#id)
- [registry](./ContainerModule.md#registry)
## Constructors
### constructor
**new ContainerModule**(`registry`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`ContainerModuleCallBack`](../types/interfaces.ContainerModuleCallBack.md) |
## Properties
### id
**id**: `number`
#### Implementation of
[ContainerModule](../interfaces/interfaces.ContainerModule.md).[id](../interfaces/interfaces.ContainerModule.md#id)
___
### registry
**registry**: [`ContainerModuleCallBack`](../types/interfaces.ContainerModuleCallBack.md)
#### Implementation of
[ContainerModule](../interfaces/interfaces.ContainerModule.md).[registry](../interfaces/interfaces.ContainerModule.md#registry)
---
url: /auto-docs/editor/classes/ContextMenuService.md
---
# Class: ContextMenuService
圈选右键菜单相关 service
## Table of contents
### Constructors
- [constructor](./ContextMenuService.md#constructor)
### Accessors
- [rightPanelVisible](./ContextMenuService.md#rightpanelvisible)
## Constructors
### constructor
**new ContextMenuService**()
## Accessors
### rightPanelVisible
`get` **rightPanelVisible**(): `boolean`
#### Returns
`boolean`
`set` **rightPanelVisible**(`visible`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `visible` | `boolean` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/CustomType.md
---
# Class: CustomType
Represents a custom type.
## Hierarchy
- [`BaseType`](./BaseType.md)\<[`CustomTypeJSON`](../interfaces/CustomTypeJSON.md)\>
↳ **`CustomType`**
## Table of contents
### Constructors
- [constructor](./CustomType.md#constructor)
### Properties
- [changeLocked](./CustomType.md#changelocked)
- [flags](./CustomType.md#flags)
- [key](./CustomType.md#key)
- [onDispose](./CustomType.md#ondispose)
- [opts](./CustomType.md#opts)
- [parent](./CustomType.md#parent)
- [scope](./CustomType.md#scope)
- [toDispose](./CustomType.md#todispose)
- [value$](./CustomType.md#value$)
- [kind](./CustomType.md#kind)
### Accessors
- [children](./CustomType.md#children)
- [disposed](./CustomType.md#disposed)
- [hash](./CustomType.md#hash)
- [kind](./CustomType.md#kind-1)
- [typeName](./CustomType.md#typename)
- [version](./CustomType.md#version)
### Methods
- [dispatchGlobalEvent](./CustomType.md#dispatchglobalevent)
- [dispose](./CustomType.md#dispose)
- [fireChange](./CustomType.md#firechange)
- [fromJSON](./CustomType.md#fromjson)
- [getByKeyPath](./CustomType.md#getbykeypath)
- [isTypeEqual](./CustomType.md#istypeequal)
- [subscribe](./CustomType.md#subscribe)
- [toJSON](./CustomType.md#tojson)
## Constructors
### constructor
**new CustomType**(`createParams`, `opts?`)
Constructor.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[BaseType](./BaseType.md).[constructor](./BaseType.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseType](./BaseType.md).[changeLocked](./BaseType.md#changelocked)
___
### flags
**flags**: `number`
Node flags, used to record some flag information.
#### Inherited from
[BaseType](./BaseType.md).[flags](./BaseType.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseType](./BaseType.md).[key](./BaseType.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseType](./BaseType.md).[onDispose](./BaseType.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseType](./BaseType.md).[opts](./BaseType.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[parent](./BaseType.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseType](./BaseType.md).[scope](./BaseType.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[toDispose](./BaseType.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseType](./BaseType.md).[value$](./BaseType.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseType](./BaseType.md).[kind](./BaseType.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseType.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseType.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseType.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseType.kind
___
### typeName
`get` **typeName**(): `string`
The name of the custom type.
#### Returns
`string`
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseType.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispatchGlobalEvent](./BaseType.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispose](./BaseType.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[fireChange](./BaseType.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `CustomTypeJSON` to the `CustomType`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | [`CustomTypeJSON`](../interfaces/CustomTypeJSON.md) | The `CustomTypeJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[BaseType](./BaseType.md).[fromJSON](./BaseType.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath?`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Get a variable field by key path.
This method should be implemented by drillable types.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath?` | `string`[] | The key path to search for. |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
The variable field if found, otherwise `undefined`.
#### Inherited from
[BaseType](./BaseType.md).[getByKeyPath](./BaseType.md#getbykeypath)
___
### isTypeEqual
**isTypeEqual**(`targetTypeJSONOrKind?`): `boolean`
Check if the current type is equal to the target type.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `targetTypeJSONOrKind?` | `ASTNodeJSONOrKind` | The type to compare with. |
#### Returns
`boolean`
`true` if the types are equal, `false` otherwise.
#### Overrides
[BaseType](./BaseType.md).[isTypeEqual](./BaseType.md#istypeequal)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`CustomType`](./CustomType.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`CustomType`](./CustomType.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseType](./BaseType.md).[subscribe](./BaseType.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serializes the current ASTNode to ASTNodeJSON.
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `typeName` | `string` |
#### Overrides
[BaseType](./BaseType.md).[toJSON](./BaseType.md#tojson)
---
url: /auto-docs/editor/classes/DataNode.md
---
# Class: DataNode\
Represents a general data node with no child nodes.
## Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | `any` |
## Hierarchy
- [`ASTNode`](./ASTNode.md)
↳ **`DataNode`**
## Table of contents
### Constructors
- [constructor](./DataNode.md#constructor)
### Properties
- [changeLocked](./DataNode.md#changelocked)
- [flags](./DataNode.md#flags)
- [key](./DataNode.md#key)
- [onDispose](./DataNode.md#ondispose)
- [opts](./DataNode.md#opts)
- [parent](./DataNode.md#parent)
- [scope](./DataNode.md#scope)
- [toDispose](./DataNode.md#todispose)
- [value$](./DataNode.md#value$)
- [kind](./DataNode.md#kind)
### Accessors
- [children](./DataNode.md#children)
- [data](./DataNode.md#data)
- [disposed](./DataNode.md#disposed)
- [hash](./DataNode.md#hash)
- [kind](./DataNode.md#kind-1)
- [version](./DataNode.md#version)
### Methods
- [dispatchGlobalEvent](./DataNode.md#dispatchglobalevent)
- [dispose](./DataNode.md#dispose)
- [fireChange](./DataNode.md#firechange)
- [fromJSON](./DataNode.md#fromjson)
- [partialUpdate](./DataNode.md#partialupdate)
- [subscribe](./DataNode.md#subscribe)
- [toJSON](./DataNode.md#tojson)
## Constructors
### constructor
**new DataNode**\<`Data`\>(`createParams`, `opts?`)
Constructor.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | `any` |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[ASTNode](./ASTNode.md).[constructor](./ASTNode.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[ASTNode](./ASTNode.md).[changeLocked](./ASTNode.md#changelocked)
___
### flags
`Readonly` **flags**: `number`
Node flags, used to record some flag information.
#### Inherited from
[ASTNode](./ASTNode.md).[flags](./ASTNode.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[ASTNode](./ASTNode.md).[key](./ASTNode.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[ASTNode](./ASTNode.md).[onDispose](./ASTNode.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[ASTNode](./ASTNode.md).[opts](./ASTNode.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[parent](./ASTNode.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[ASTNode](./ASTNode.md).[scope](./ASTNode.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[toDispose](./ASTNode.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[ASTNode](./ASTNode.md).[value$](./ASTNode.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[ASTNode](./ASTNode.md).[kind](./ASTNode.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
ASTNode.children
___
### data
`get` **data**(): `Data`
The data of the node.
#### Returns
`Data`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ASTNode.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
ASTNode.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
ASTNode.kind
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
ASTNode.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispatchGlobalEvent](./ASTNode.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispose](./ASTNode.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[fireChange](./ASTNode.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `DataNodeJSON` to the `DataNode`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `Data` | The `DataNodeJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[ASTNode](./ASTNode.md).[fromJSON](./ASTNode.md#fromjson)
___
### partialUpdate
**partialUpdate**(`nextData`): `void`
Partially update the data of the node.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `nextData` | `Data` | The data to be updated. |
#### Returns
`void`
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`DataNode`](./DataNode.md)\<`Data`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`DataNode`](./DataNode.md)\<`Data`\>, `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ASTNode](./ASTNode.md).[subscribe](./ASTNode.md#subscribe)
___
### toJSON
**toJSON**(): \{ `kind`: [`ASTKind`](../enums/ASTKind.md) } & `Data`
Serialize the `DataNode` to `DataNodeJSON`.
#### Returns
\{ `kind`: [`ASTKind`](../enums/ASTKind.md) } & `Data`
The JSON representation of `DataNode`.
#### Overrides
[ASTNode](./ASTNode.md).[toJSON](./ASTNode.md#tojson)
---
url: /auto-docs/editor/classes/DefaultClipboardService.md
---
# Class: DefaultClipboardService
剪贴板服务,一般用于管理临时的复制黏贴数据
TODO: 后续可以支持调用浏览器
## Implements
- [`ClipboardService`](../variables/ClipboardService-1.md)
## Table of contents
### Constructors
- [constructor](./DefaultClipboardService.md#constructor)
### Properties
- [onClipboardChanged](./DefaultClipboardService.md#onclipboardchanged)
### Methods
- [readText](./DefaultClipboardService.md#readtext)
- [writeText](./DefaultClipboardService.md#writetext)
## Constructors
### constructor
**new DefaultClipboardService**()
## Properties
### onClipboardChanged
`Readonly` **onClipboardChanged**: [`Event`](../interfaces/Event-1.md)\<`string`\>
#### Implementation of
ClipboardService.onClipboardChanged
## Methods
### readText
**readText**(): `string`
#### Returns
`string`
#### Implementation of
ClipboardService.readText
___
### writeText
**writeText**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `value` | `string` |
#### Returns
`void`
#### Implementation of
ClipboardService.writeText
---
url: /auto-docs/editor/classes/DisposableCollection.md
---
# Class: DisposableCollection
An object that performs a cleanup operation when `.dispose()` is called.
Some examples of how disposables are used:
- An event listener that removes itself when `.dispose()` is called.
- The return value from registering a provider. When `.dispose()` is called, the provider is unregistered.
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./DisposableCollection.md#constructor)
### Accessors
- [disposed](./DisposableCollection.md#disposed)
- [length](./DisposableCollection.md#length)
- [onDispose](./DisposableCollection.md#ondispose)
### Methods
- [dispose](./DisposableCollection.md#dispose)
- [push](./DisposableCollection.md#push)
- [pushAll](./DisposableCollection.md#pushall)
## Constructors
### constructor
**new DisposableCollection**(`...toDispose`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `...toDispose` | [`Disposable`](../interfaces/Disposable-1.md)[] |
## Accessors
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### length
`get` **length**(): `number`
#### Returns
`number`
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### push
**push**(`disposable`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `disposable` | [`Disposable`](../interfaces/Disposable-1.md) |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### pushAll
**pushAll**(`disposables`): [`Disposable`](../interfaces/Disposable-1.md)[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `disposables` | [`Disposable`](../interfaces/Disposable-1.md)[] |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)[]
---
url: /auto-docs/editor/classes/DisposableImpl.md
---
# Class: DisposableImpl
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- **`DisposableImpl`**
↳ [`EntityData`](./EntityData.md)
↳ [`PlaygroundGesture`](./PlaygroundGesture.md)
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./DisposableImpl.md#constructor)
### Properties
- [toDispose](./DisposableImpl.md#todispose)
### Accessors
- [disposed](./DisposableImpl.md#disposed)
- [onDispose](./DisposableImpl.md#ondispose)
### Methods
- [dispose](./DisposableImpl.md#dispose)
## Constructors
### constructor
**new DisposableImpl**()
## Properties
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
## Accessors
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
---
url: /auto-docs/editor/classes/EditorStateConfigEntity.md
---
# Class: EditorStateConfigEntity
编辑状态管理
## Hierarchy
- [`ConfigEntity`](./ConfigEntity.md)
↳ **`EditorStateConfigEntity`**
## Table of contents
### Constructors
- [constructor](./EditorStateConfigEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./EditorStateConfigEntity.md#__opts_type__)
- [entityManager](./EditorStateConfigEntity.md#entitymanager)
- [onDataChange](./EditorStateConfigEntity.md#ondatachange)
- [onEntityChange](./EditorStateConfigEntity.md#onentitychange)
- [onStateChange](./EditorStateConfigEntity.md#onstatechange)
- [preDispose](./EditorStateConfigEntity.md#predispose)
- [toDispose](./EditorStateConfigEntity.md#todispose)
- [type](./EditorStateConfigEntity.md#type)
### Accessors
- [config](./EditorStateConfigEntity.md#config)
- [context](./EditorStateConfigEntity.md#context)
- [disposed](./EditorStateConfigEntity.md#disposed)
- [id](./EditorStateConfigEntity.md#id)
- [isPressingShift](./EditorStateConfigEntity.md#ispressingshift)
- [isPressingSpaceBar](./EditorStateConfigEntity.md#ispressingspacebar)
- [onDispose](./EditorStateConfigEntity.md#ondispose)
- [savedInManager](./EditorStateConfigEntity.md#savedinmanager)
- [type](./EditorStateConfigEntity.md#type-1)
- [version](./EditorStateConfigEntity.md#version)
### Methods
- [addData](./EditorStateConfigEntity.md#adddata)
- [addInitializeData](./EditorStateConfigEntity.md#addinitializedata)
- [changeState](./EditorStateConfigEntity.md#changestate)
- [checkChanged](./EditorStateConfigEntity.md#checkchanged)
- [dispose](./EditorStateConfigEntity.md#dispose)
- [fromJSON](./EditorStateConfigEntity.md#fromjson)
- [getCurrentState](./EditorStateConfigEntity.md#getcurrentstate)
- [getData](./EditorStateConfigEntity.md#getdata)
- [getDefaultConfig](./EditorStateConfigEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./EditorStateConfigEntity.md#getdefaultdataregistries)
- [getService](./EditorStateConfigEntity.md#getservice)
- [getStateFromShortcut](./EditorStateConfigEntity.md#getstatefromshortcut)
- [getStates](./EditorStateConfigEntity.md#getstates)
- [hasData](./EditorStateConfigEntity.md#hasdata)
- [is](./EditorStateConfigEntity.md#is)
- [isMouseFriendlyMode](./EditorStateConfigEntity.md#ismousefriendlymode)
- [onCancel](./EditorStateConfigEntity.md#oncancel)
- [onConfigChanged](./EditorStateConfigEntity.md#onconfigchanged)
- [registerState](./EditorStateConfigEntity.md#registerstate)
- [removeData](./EditorStateConfigEntity.md#removedata)
- [reset](./EditorStateConfigEntity.md#reset)
- [toDefaultState](./EditorStateConfigEntity.md#todefaultstate)
- [toJSON](./EditorStateConfigEntity.md#tojson)
- [updateConfig](./EditorStateConfigEntity.md#updateconfig)
- [updateData](./EditorStateConfigEntity.md#updatedata)
## Constructors
### constructor
**new EditorStateConfigEntity**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | [`EntityOpts`](../interfaces/EntityOpts.md) |
#### Overrides
[ConfigEntity](./ConfigEntity.md).[constructor](./ConfigEntity.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`EntityOpts`](../interfaces/EntityOpts.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[__opts_type__](./ConfigEntity.md#__opts_type__)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[entityManager](./ConfigEntity.md#entitymanager)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onDataChange](./ConfigEntity.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onEntityChange](./ConfigEntity.md#onentitychange)
___
### onStateChange
`Readonly` **onStateChange**: [`Event`](../interfaces/Event-1.md)\<[`EditorStateChangeEvent`](../interfaces/EditorStateChangeEvent.md)\>
___
### preDispose
`Readonly` **preDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁前事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[preDispose](./ConfigEntity.md#predispose)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toDispose](./ConfigEntity.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[type](./ConfigEntity.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### isPressingShift
`get` **isPressingShift**(): `boolean`
#### Returns
`boolean`
`set` **isPressingShift**(`isPressing`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `isPressing` | `boolean` |
#### Returns
`void`
___
### isPressingSpaceBar
`get` **isPressingSpaceBar**(): `boolean`
#### Returns
`boolean`
`set` **isPressingSpaceBar**(`isPressing`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `isPressing` | `boolean` |
#### Returns
`void`
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
销毁事件
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addData](./ConfigEntity.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addInitializeData](./ConfigEntity.md#addinitializedata)
___
### changeState
**changeState**(`stateId`, `event?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `stateId` | `string` |
| `event?` | `MouseEvent`\<`Element`, `MouseEvent`\> |
#### Returns
`void`
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md) |
| `newData` | `Partial`\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[checkChanged](./ConfigEntity.md#checkchanged)
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[dispose](./ConfigEntity.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[fromJSON](./ConfigEntity.md#fromjson)
___
### getCurrentState
**getCurrentState**(): `undefined` \| [`EditorState`](../interfaces/EditorState-1.md)
#### Returns
`undefined` \| [`EditorState`](../interfaces/EditorState-1.md)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getData](./ConfigEntity.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)
#### Returns
[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getService](./ConfigEntity.md#getservice)
___
### getStateFromShortcut
**getStateFromShortcut**(`e`): `undefined` \| [`EditorState`](../interfaces/EditorState-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `KeyboardEvent` |
#### Returns
`undefined` \| [`EditorState`](../interfaces/EditorState-1.md)
___
### getStates
**getStates**(): [`EditorState`](../interfaces/EditorState-1.md)[]
#### Returns
[`EditorState`](../interfaces/EditorState-1.md)[]
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[hasData](./ConfigEntity.md#hasdata)
___
### is
**is**(`stateId`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `stateId` | `string` |
#### Returns
`boolean`
___
### isMouseFriendlyMode
**isMouseFriendlyMode**(): `boolean`
是否为鼠标友好模式
#### Returns
`boolean`
___
### onCancel
**onCancel**(`stateId`, `fn`): [`Disposable`](../interfaces/Disposable-1.md)
取消指定状态后触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `stateId` | `string` |
| `fn` | () => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### onConfigChanged
**onConfigChanged**(`fn`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: [`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)) => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onConfigChanged](./ConfigEntity.md#onconfigchanged)
___
### registerState
**registerState**(`state`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | [`EditorState`](../interfaces/EditorState-1.md) |
#### Returns
`void`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[removeData](./ConfigEntity.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[reset](./ConfigEntity.md#reset)
___
### toDefaultState
**toDefaultState**(): `void`
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toJSON](./ConfigEntity.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md)\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateConfig](./ConfigEntity.md#updateconfig)
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateData](./ConfigEntity.md#updatedata)
---
url: /auto-docs/editor/classes/Emitter.md
---
# Class: Emitter\
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | `any` |
## Table of contents
### Constructors
- [constructor](./Emitter.md#constructor)
### Accessors
- [disposed](./Emitter.md#disposed)
- [event](./Emitter.md#event)
### Methods
- [dispose](./Emitter.md#dispose)
- [fire](./Emitter.md#fire)
## Constructors
### constructor
**new Emitter**\<`T`\>()
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | `any` |
## Accessors
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### event
`get` **event**(): [`Event`](../interfaces/Event-1.md)\<`T`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`T`\>
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
___
### fire
**fire**(`event`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `T` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/Entity-1.md
---
# Class: Entity\
An object that performs a cleanup operation when `.dispose()` is called.
Some examples of how disposables are used:
- An event listener that removes itself when `.dispose()` is called.
- The return value from registering a provider. When `.dispose()` is called, the provider is unregistered.
## Type parameters
| Name | Type |
| :------ | :------ |
| `OPTS` | extends [`EntityOpts`](../interfaces/EntityOpts.md) = [`EntityOpts`](../interfaces/EntityOpts.md) |
## Hierarchy
- **`Entity`**
↳ [`ConfigEntity`](./ConfigEntity.md)
↳ [`FlowNodeEntity`](./FlowNodeEntity-1.md)
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./Entity-1.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./Entity-1.md#__opts_type__)
- [entityManager](./Entity-1.md#entitymanager)
- [onDataChange](./Entity-1.md#ondatachange)
- [onEntityChange](./Entity-1.md#onentitychange)
- [preDispose](./Entity-1.md#predispose)
- [toDispose](./Entity-1.md#todispose)
- [type](./Entity-1.md#type)
### Accessors
- [context](./Entity-1.md#context)
- [disposed](./Entity-1.md#disposed)
- [id](./Entity-1.md#id)
- [onDispose](./Entity-1.md#ondispose)
- [savedInManager](./Entity-1.md#savedinmanager)
- [type](./Entity-1.md#type-1)
- [version](./Entity-1.md#version)
### Methods
- [addData](./Entity-1.md#adddata)
- [addInitializeData](./Entity-1.md#addinitializedata)
- [dispose](./Entity-1.md#dispose)
- [fromJSON](./Entity-1.md#fromjson)
- [getData](./Entity-1.md#getdata)
- [getDefaultDataRegistries](./Entity-1.md#getdefaultdataregistries)
- [getService](./Entity-1.md#getservice)
- [hasData](./Entity-1.md#hasdata)
- [removeData](./Entity-1.md#removedata)
- [reset](./Entity-1.md#reset)
- [toJSON](./Entity-1.md#tojson)
- [updateData](./Entity-1.md#updatedata)
## Constructors
### constructor
**new Entity**\<`OPTS`\>(`opts`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `OPTS` | extends [`EntityOpts`](../interfaces/EntityOpts.md) = [`EntityOpts`](../interfaces/EntityOpts.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `OPTS` |
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `OPTS`
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
___
### preDispose
`Readonly` **preDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁前事件管理
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁事件管理
___
### type
`Static` **type**: `string`
## Accessors
### context
`get` **context**(): `any`
#### Returns
`any`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
销毁事件
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
---
url: /auto-docs/editor/classes/EntityData.md
---
# Class: EntityData\
实体的数据块
## Type parameters
| Name | Type |
| :------ | :------ |
| `DATA` | `any` \| `number` \| `string` |
| `OPTS` | extends `Object` = {} |
## Hierarchy
- [`DisposableImpl`](./DisposableImpl.md)
↳ **`EntityData`**
↳↳ [`FlowNodeFormData`](./FlowNodeFormData.md)
↳↳ [`OpacityData`](./OpacityData.md)
↳↳ [`OriginData`](./OriginData.md)
↳↳ [`PositionData`](./PositionData.md)
↳↳ [`RotationData`](./RotationData.md)
↳↳ [`ScaleData`](./ScaleData.md)
↳↳ [`SizeData`](./SizeData.md)
↳↳ [`SkewData`](./SkewData.md)
↳↳ [`TransformData`](./TransformData-1.md)
↳↳ [`FlowNodeRenderData`](./FlowNodeRenderData.md)
↳↳ [`FlowNodeTransformData`](./FlowNodeTransformData.md)
↳↳ [`FlowNodeTransitionData`](./FlowNodeTransitionData.md)
↳↳ [`FlowNodeVariableData`](./FlowNodeVariableData.md)
## Table of contents
### Constructors
- [constructor](./EntityData.md#constructor)
### Properties
- [entity](./EntityData.md#entity)
- [onDataChange](./EntityData.md#ondatachange)
- [onWillChange](./EntityData.md#onwillchange)
- [opts](./EntityData.md#opts)
- [toDispose](./EntityData.md#todispose)
- [type](./EntityData.md#type)
### Accessors
- [changeLocked](./EntityData.md#changelocked)
- [data](./EntityData.md#data)
- [disposed](./EntityData.md#disposed)
- [onDispose](./EntityData.md#ondispose)
- [type](./EntityData.md#type-1)
- [version](./EntityData.md#version)
### Methods
- [checkChanged](./EntityData.md#checkchanged)
- [dispose](./EntityData.md#dispose)
- [fireChange](./EntityData.md#firechange)
- [fireWillChange](./EntityData.md#firewillchange)
- [fromJSON](./EntityData.md#fromjson)
- [fullyUpdate](./EntityData.md#fullyupdate)
- [getDefaultData](./EntityData.md#getdefaultdata)
- [toJSON](./EntityData.md#tojson)
- [update](./EntityData.md#update)
## Constructors
### constructor
**new EntityData**\<`DATA`, `OPTS`\>(`entity`, `opts?`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `DATA` | `any` |
| `OPTS` | extends `Object` = {} |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `OPTS` |
#### Overrides
[DisposableImpl](./DisposableImpl.md).[constructor](./DisposableImpl.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`DATA`, `OPTS`\>\>
修改后触发
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`DATA`, `OPTS`\>\>
修改前触发
___
### opts
`Optional` `Readonly` **opts**: `OPTS`
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[DisposableImpl](./DisposableImpl.md).[toDispose](./DisposableImpl.md#todispose)
___
### type
`Static` **type**: `string`
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
DisposableImpl.disposed
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
DisposableImpl.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
___
### version
`get` **version**(): `number`
#### Returns
`number`
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | `DATA` \| `Partial`\<`DATA`\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[DisposableImpl](./DisposableImpl.md).[dispose](./DisposableImpl.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `DATA` |
#### Returns
`void`
___
### getDefaultData
`Abstract` **getDefaultData**(): `DATA`
初始化数据
#### Returns
`DATA`
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `DATA` \| `Partial`\<`DATA`\> \| keyof `DATA` |
| `value?` | `any` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/EntityManager.md
---
# Class: EntityManager
TODO registry 改成 decorator
Entity 管理器,全局唯一
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./EntityManager.md#constructor)
### Properties
- [changeEntityLocked](./EntityManager.md#changeentitylocked)
- [context](./EntityManager.md#context)
- [contributions](./EntityManager.md#contributions)
- [fireEntityChanged](./EntityManager.md#fireentitychanged)
- [fireEntityDataChanged](./EntityManager.md#fireentitydatachanged)
- [fireEntityLifeCycleChanged](./EntityManager.md#fireentitylifecyclechanged)
- [onEntityChange](./EntityManager.md#onentitychange)
- [onEntityDataChange](./EntityManager.md#onentitydatachange)
- [onEntityLifeCycleChange](./EntityManager.md#onentitylifecyclechange)
- [toDispose](./EntityManager.md#todispose)
### Methods
- [createEntity](./EntityManager.md#createentity)
- [dispose](./EntityManager.md#dispose)
- [getDataInjector](./EntityManager.md#getdatainjector)
- [getDataRegistryByType](./EntityManager.md#getdataregistrybytype)
- [getEntities](./EntityManager.md#getentities)
- [getEntity](./EntityManager.md#getentity)
- [getEntityById](./EntityManager.md#getentitybyid)
- [getEntityDataVersion](./EntityManager.md#getentitydataversion)
- [getEntityDatas](./EntityManager.md#getentitydatas)
- [getEntityVersion](./EntityManager.md#getentityversion)
- [getRegistryByType](./EntityManager.md#getregistrybytype)
- [getService](./EntityManager.md#getservice)
- [hasEntity](./EntityManager.md#hasentity)
- [init](./EntityManager.md#init)
- [isConfigEntity](./EntityManager.md#isconfigentity)
- [registerEntity](./EntityManager.md#registerentity)
- [registerEntityData](./EntityManager.md#registerentitydata)
- [removeEntities](./EntityManager.md#removeentities)
- [removeEntityById](./EntityManager.md#removeentitybyid)
- [reset](./EntityManager.md#reset)
- [resetEntities](./EntityManager.md#resetentities)
- [resetEntity](./EntityManager.md#resetentity)
- [restoreState](./EntityManager.md#restorestate)
- [storeState](./EntityManager.md#storestate)
- [updateConfigEntity](./EntityManager.md#updateconfigentity)
## Constructors
### constructor
**new EntityManager**()
## Properties
### changeEntityLocked
**changeEntityLocked**: `boolean`
暂停触发实体类型变化
___
### context
**context**: `any`
___
### contributions
**contributions**: [`EntityManagerContribution`](../variables/EntityManagerContribution-1.md)[]
___
### fireEntityChanged
**fireEntityChanged**: (`entity`: `string` \| [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>) => `void`
#### Type declaration
(`entity`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | `string` \| [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
##### Returns
`void`
___
### fireEntityDataChanged
**fireEntityDataChanged**: (`entityType`: `string`, `entityDataType`: `string`) => `void`
#### Type declaration
(`entityType`, `entityDataType`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `entityType` | `string` |
| `entityDataType` | `string` |
##### Returns
`void`
___
### fireEntityLifeCycleChanged
**fireEntityLifeCycleChanged**: (`__namedParameters`: \{ `entity`: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> ; `type`: ``"add"`` \| ``"delete"`` \| ``"update"`` }) => `void`
#### Type declaration
(`«destructured»`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| › `type` | ``"add"`` \| ``"delete"`` \| ``"update"`` |
##### Returns
`void`
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<`string`\>
当对应的实体类型变化后触发
___
### onEntityDataChange
`Readonly` **onEntityDataChange**: [`Event`](../interfaces/Event-1.md)\<\{ `entityDataType`: `string` ; `entityType`: `string` }\>
entity data 数据变化
___
### onEntityLifeCycleChange
`Readonly` **onEntityLifeCycleChange**: [`Event`](../interfaces/Event-1.md)\<\{ `entity`: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> ; `type`: ``"add"`` \| ``"delete"`` \| ``"update"`` }\>
Entity 生命周期变化
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
## Methods
### createEntity
**createEntity**\<`T`\>(`Registry`, `opts?`): `T`
创建实体
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `opts?` | `Omit`\<`T`[``"__opts_type__"``], ``"entityManager"``\> |
#### Returns
`T`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### getDataInjector
**getDataInjector**(`registry`): `undefined` \| [`EntityDataInjector`](../types/EntityDataInjector.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | `string` \| [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`undefined` \| [`EntityDataInjector`](../types/EntityDataInjector.md)
___
### getDataRegistryByType
**getDataRegistryByType**(`type`): `undefined` \| [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` |
#### Returns
`undefined` \| [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>
___
### getEntities
**getEntities**\<`T`\>(`registry`): `T`[]
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`T`[]
___
### getEntity
**getEntity**\<`T`\>(`registry`, `autoCreate?`): `undefined` \| `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> | - |
| `autoCreate?` | `boolean` | 是否要自动创建,默认 false |
#### Returns
`undefined` \| `T`
___
### getEntityById
**getEntityById**\<`T`\>(`id`): `undefined` \| `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| `T`
___
### getEntityDataVersion
**getEntityDataVersion**(`registry`): `number`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | `string` \| [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`number`
___
### getEntityDatas
**getEntityDatas**\<`T`\>(`entityRegistry`, `dataRegistry`): `T`[]
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `dataRegistry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`T`\> |
#### Returns
`T`[]
___
### getEntityVersion
**getEntityVersion**(`registry`): `number`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | `string` \| [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`number`
___
### getRegistryByType
**getRegistryByType**(`type`): `undefined` \| [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` |
#### Returns
`undefined` \| [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
___
### getService
**getService**\<`T`\>(`identifier`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
___
### hasEntity
**hasEntity**(`registry`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`boolean`
___
### init
**init**(): `void`
#### Returns
`void`
___
### isConfigEntity
**isConfigEntity**(`type`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | `string` |
#### Returns
`boolean`
___
### registerEntity
**registerEntity**(`Registry`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
___
### registerEntityData
**registerEntityData**(`Registry`, `injector?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `injector?` | [`EntityDataInjector`](../types/EntityDataInjector.md) |
#### Returns
`void`
___
### removeEntities
**removeEntities**(`Registry`): `void`
批量删除实体
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
___
### removeEntityById
**removeEntityById**(`id`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`boolean`
___
### reset
**reset**(): `void`
重制所有 entity 为初始化状态
#### Returns
`void`
___
### resetEntities
**resetEntities**(`registry`): `void`
触发实体 reset
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
___
### resetEntity
**resetEntity**(`registry`, `autoCreate?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `autoCreate?` | `boolean` |
#### Returns
`void`
___
### restoreState
**restoreState**(`data`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | [`EntityJSON`](../interfaces/EntityJSON.md)[] |
#### Returns
`void`
___
### storeState
**storeState**(`«destructured»?`): [`EntityJSON`](../interfaces/EntityJSON.md)[]
只存储 config 数据,忽略动态数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `configOnly?` | `boolean` |
#### Returns
[`EntityJSON`](../interfaces/EntityJSON.md)[]
___
### updateConfigEntity
**updateConfigEntity**\<`E`\>(`registry`, `config`): `void`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`ConfigEntity`](./ConfigEntity.md)\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md), [`EntityOpts`](../interfaces/EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `config` | `Partial`\<`E`[``"config"``]\> |
#### Returns
`void`
---
url: /auto-docs/editor/classes/EnumerateExpression.md
---
# Class: EnumerateExpression
Represents an enumeration expression, which iterates over a list and returns the type of the enumerated variable.
## Hierarchy
- [`BaseExpression`](./BaseExpression.md)\<[`EnumerateExpressionJSON`](../interfaces/EnumerateExpressionJSON.md)\>
↳ **`EnumerateExpression`**
## Table of contents
### Constructors
- [constructor](./EnumerateExpression.md#constructor)
### Properties
- [changeLocked](./EnumerateExpression.md#changelocked)
- [flags](./EnumerateExpression.md#flags)
- [key](./EnumerateExpression.md#key)
- [onDispose](./EnumerateExpression.md#ondispose)
- [opts](./EnumerateExpression.md#opts)
- [parent](./EnumerateExpression.md#parent)
- [refs$](./EnumerateExpression.md#refs$)
- [scope](./EnumerateExpression.md#scope)
- [toDispose](./EnumerateExpression.md#todispose)
- [value$](./EnumerateExpression.md#value$)
- [kind](./EnumerateExpression.md#kind)
### Accessors
- [children](./EnumerateExpression.md#children)
- [disposed](./EnumerateExpression.md#disposed)
- [enumerateFor](./EnumerateExpression.md#enumeratefor)
- [globalVariableTable](./EnumerateExpression.md#globalvariabletable)
- [hash](./EnumerateExpression.md#hash)
- [kind](./EnumerateExpression.md#kind-1)
- [parentFields](./EnumerateExpression.md#parentfields)
- [refs](./EnumerateExpression.md#refs)
- [returnType](./EnumerateExpression.md#returntype)
- [version](./EnumerateExpression.md#version)
### Methods
- [dispatchGlobalEvent](./EnumerateExpression.md#dispatchglobalevent)
- [dispose](./EnumerateExpression.md#dispose)
- [fireChange](./EnumerateExpression.md#firechange)
- [fromJSON](./EnumerateExpression.md#fromjson)
- [getRefFields](./EnumerateExpression.md#getreffields)
- [refreshRefs](./EnumerateExpression.md#refreshrefs)
- [subscribe](./EnumerateExpression.md#subscribe)
- [toJSON](./EnumerateExpression.md#tojson)
## Constructors
### constructor
**new EnumerateExpression**(`params`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`CreateASTParams`](../interfaces/CreateASTParams.md) |
| `opts?` | `any` |
#### Inherited from
[BaseExpression](./BaseExpression.md).[constructor](./BaseExpression.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseExpression](./BaseExpression.md).[changeLocked](./BaseExpression.md#changelocked)
___
### flags
**flags**: [`ASTNodeFlags`](../enums/ASTNodeFlags.md)
Node flags, used to record some flag information.
#### Inherited from
[BaseExpression](./BaseExpression.md).[flags](./BaseExpression.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseExpression](./BaseExpression.md).[key](./BaseExpression.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseExpression](./BaseExpression.md).[onDispose](./BaseExpression.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseExpression](./BaseExpression.md).[opts](./BaseExpression.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseExpression](./BaseExpression.md).[parent](./BaseExpression.md#parent)
___
### refs$
**refs$**: `Observable`\<`ExpressionRefs`\>
An observable that emits the referenced variable fields when they change.
#### Inherited from
[BaseExpression](./BaseExpression.md).[refs$](./BaseExpression.md#refs$)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseExpression](./BaseExpression.md).[scope](./BaseExpression.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseExpression](./BaseExpression.md).[toDispose](./BaseExpression.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseExpression](./BaseExpression.md).[value$](./BaseExpression.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseExpression](./BaseExpression.md).[kind](./BaseExpression.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseExpression.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseExpression.disposed
___
### enumerateFor
`get` **enumerateFor**(): `undefined` \| [`BaseExpression`](./BaseExpression.md)\<`any`\>
The expression to be enumerated.
#### Returns
`undefined` \| [`BaseExpression`](./BaseExpression.md)\<`any`\>
___
### globalVariableTable
`get` **globalVariableTable**(): [`IVariableTable`](../interfaces/IVariableTable.md)
Get the global variable table, which is used to access referenced variables.
#### Returns
[`IVariableTable`](../interfaces/IVariableTable.md)
#### Inherited from
BaseExpression.globalVariableTable
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseExpression.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseExpression.kind
___
### parentFields
`get` **parentFields**(): [`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
Parent variable fields, sorted from closest to farthest.
#### Returns
[`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
#### Inherited from
BaseExpression.parentFields
___
### refs
`get` **refs**(): `ExpressionRefs`
The variable fields referenced by the expression.
#### Returns
`ExpressionRefs`
#### Inherited from
BaseExpression.refs
___
### returnType
`get` **returnType**(): `undefined` \| [`BaseType`](./BaseType.md)\<`any`\>
The return type of the expression.
#### Returns
`undefined` \| [`BaseType`](./BaseType.md)\<`any`\>
#### Overrides
BaseExpression.returnType
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseExpression.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[dispatchGlobalEvent](./BaseExpression.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[dispose](./BaseExpression.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[fireChange](./BaseExpression.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `EnumerateExpressionJSON` to the `EnumerateExpression`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | [`EnumerateExpressionJSON`](../interfaces/EnumerateExpressionJSON.md) | The `EnumerateExpressionJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[BaseExpression](./BaseExpression.md).[fromJSON](./BaseExpression.md#fromjson)
___
### getRefFields
**getRefFields**(): []
Get the variable fields referenced by the expression.
#### Returns
[]
An empty array, as this expression does not reference any variables.
#### Overrides
[BaseExpression](./BaseExpression.md).[getRefFields](./BaseExpression.md#getreffields)
___
### refreshRefs
**refreshRefs**(): `void`
Refresh the variable references.
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[refreshRefs](./BaseExpression.md#refreshrefs)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`EnumerateExpression`](./EnumerateExpression.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`EnumerateExpression`](./EnumerateExpression.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseExpression](./BaseExpression.md).[subscribe](./BaseExpression.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serialize the `EnumerateExpression` to `EnumerateExpressionJSON`.
#### Returns
`Object`
The JSON representation of `EnumerateExpression`.
| Name | Type |
| :------ | :------ |
| `enumerateFor` | `any` |
| `kind` | [`ASTKind`](../enums/ASTKind.md) |
#### Overrides
[BaseExpression](./BaseExpression.md).[toJSON](./BaseExpression.md#tojson)
---
url: /auto-docs/editor/classes/FlowContextMenuLayer.md
---
# Class: FlowContextMenuLayer
流程右键菜单
## Hierarchy
- [`Layer`](./Layer.md)
↳ **`FlowContextMenuLayer`**
## Table of contents
### Constructors
- [constructor](./FlowContextMenuLayer.md#constructor)
### Properties
- [commandRegistry](./FlowContextMenuLayer.md#commandregistry)
- [config](./FlowContextMenuLayer.md#config)
- [context](./FlowContextMenuLayer.md#context)
- [contextMenuService](./FlowContextMenuLayer.md#contextmenuservice)
- [entityManager](./FlowContextMenuLayer.md#entitymanager)
- [getOtherLayer](./FlowContextMenuLayer.md#getotherlayer)
- [isFocused](./FlowContextMenuLayer.md#isfocused)
- [listenGlobalEvent](./FlowContextMenuLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowContextMenuLayer.md#listenplaygroundevent)
- [node](./FlowContextMenuLayer.md#node)
- [nodeRef](./FlowContextMenuLayer.md#noderef)
- [observeManager](./FlowContextMenuLayer.md#observemanager)
- [options](./FlowContextMenuLayer.md#options)
- [pipelineNode](./FlowContextMenuLayer.md#pipelinenode)
- [playgroundNode](./FlowContextMenuLayer.md#playgroundnode)
- [reloadEntities](./FlowContextMenuLayer.md#reloadentities)
- [renderWithReactMemo](./FlowContextMenuLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowContextMenuLayer.md#rendererregistry)
- [selectionService](./FlowContextMenuLayer.md#selectionservice)
### Methods
- [autorun](./FlowContextMenuLayer.md#autorun)
- [createDOMCache](./FlowContextMenuLayer.md#createdomcache)
- [dispose](./FlowContextMenuLayer.md#dispose)
- [getPosFromMouseEvent](./FlowContextMenuLayer.md#getposfrommouseevent)
- [isEnabled](./FlowContextMenuLayer.md#isenabled)
- [onBlur](./FlowContextMenuLayer.md#onblur)
- [onFocus](./FlowContextMenuLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowContextMenuLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowContextMenuLayer.md#onready)
- [onResize](./FlowContextMenuLayer.md#onresize)
- [onScroll](./FlowContextMenuLayer.md#onscroll)
- [onViewportChange](./FlowContextMenuLayer.md#onviewportchange)
- [onZoom](./FlowContextMenuLayer.md#onzoom)
- [render](./FlowContextMenuLayer.md#render)
- [renderCommandMenus](./FlowContextMenuLayer.md#rendercommandmenus)
## Constructors
### constructor
**new FlowContextMenuLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### commandRegistry
`Readonly` **commandRegistry**: [`CommandRegistry`](./CommandRegistry.md)
___
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### contextMenuService
`Readonly` **contextMenuService**: [`ContextMenuService`](./ContextMenuService.md)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
`Readonly` **node**: `HTMLDivElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Overrides
[Layer](./Layer.md).[node](./Layer.md#node)
___
### nodeRef
`Readonly` **nodeRef**: `RefObject`\<\{ `setVisible`: (`v`: `boolean`) => `void` }\>
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
___
### selectionService
`Readonly` **selectionService**: [`SelectionService`](./SelectionService.md)
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
Destroy
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### isEnabled
**isEnabled**(): `boolean`
#### Returns
`boolean`
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
**onScroll**(): `void`
监听滚动
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
**onZoom**(): `void`
监听缩放
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
**render**(): `Element`
绘制 react
#### Returns
`Element`
#### Overrides
[Layer](./Layer.md).[render](./Layer.md#render)
___
### renderCommandMenus
**renderCommandMenus**(): `Element`[]
渲染工具栏
#### Returns
`Element`[]
---
url: /auto-docs/editor/classes/FlowDebugLayer.md
---
# Class: FlowDebugLayer
调试用,会绘出所有节点的边界
## Hierarchy
- [`Layer`](./Layer.md)
↳ **`FlowDebugLayer`**
## Table of contents
### Constructors
- [constructor](./FlowDebugLayer.md#constructor)
### Properties
- [\_transforms](./FlowDebugLayer.md#_transforms)
- [boundsNodes](./FlowDebugLayer.md#boundsnodes)
- [config](./FlowDebugLayer.md#config)
- [context](./FlowDebugLayer.md#context)
- [document](./FlowDebugLayer.md#document)
- [documentTransformer](./FlowDebugLayer.md#documenttransformer)
- [domCache](./FlowDebugLayer.md#domcache)
- [entityManager](./FlowDebugLayer.md#entitymanager)
- [filterKey](./FlowDebugLayer.md#filterkey)
- [getOtherLayer](./FlowDebugLayer.md#getotherlayer)
- [isFocused](./FlowDebugLayer.md#isfocused)
- [listenGlobalEvent](./FlowDebugLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowDebugLayer.md#listenplaygroundevent)
- [node](./FlowDebugLayer.md#node)
- [observeManager](./FlowDebugLayer.md#observemanager)
- [options](./FlowDebugLayer.md#options)
- [pipelineNode](./FlowDebugLayer.md#pipelinenode)
- [playgroundNode](./FlowDebugLayer.md#playgroundnode)
- [pointsNodes](./FlowDebugLayer.md#pointsnodes)
- [reloadEntities](./FlowDebugLayer.md#reloadentities)
- [renderWithReactMemo](./FlowDebugLayer.md#renderwithreactmemo)
- [versionNodes](./FlowDebugLayer.md#versionnodes)
- [viewport](./FlowDebugLayer.md#viewport)
### Accessors
- [transforms](./FlowDebugLayer.md#transforms)
### Methods
- [autorun](./FlowDebugLayer.md#autorun)
- [createBounds](./FlowDebugLayer.md#createbounds)
- [createDOMCache](./FlowDebugLayer.md#createdomcache)
- [dispose](./FlowDebugLayer.md#dispose)
- [getPosFromMouseEvent](./FlowDebugLayer.md#getposfrommouseevent)
- [onBlur](./FlowDebugLayer.md#onblur)
- [onFocus](./FlowDebugLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowDebugLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowDebugLayer.md#onready)
- [onResize](./FlowDebugLayer.md#onresize)
- [onScroll](./FlowDebugLayer.md#onscroll)
- [onViewportChange](./FlowDebugLayer.md#onviewportchange)
- [onZoom](./FlowDebugLayer.md#onzoom)
- [render](./FlowDebugLayer.md#render)
- [renderScrollViewportBounds](./FlowDebugLayer.md#renderscrollviewportbounds)
## Constructors
### constructor
**new FlowDebugLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### \_transforms
**\_transforms**: [`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
___
### boundsNodes
**boundsNodes**: `HTMLDivElement`
___
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### document
`Readonly` **document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### documentTransformer
`Readonly` **documentTransformer**: [`FlowDocumentTransformerEntity`](./FlowDocumentTransformerEntity.md)
___
### domCache
**domCache**: `WeakMap`\<[`FlowNodeTransformData`](./FlowNodeTransformData.md), \{ `bbox`: `HTMLDivElement` ; `color`: `string` ; `input`: `HTMLDivElement` ; `output`: `HTMLDivElement` ; `version`: `HTMLDivElement` }\>
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### filterKey
**filterKey**: `string`
?debug=xxxx, 则返回 xxxx
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Overrides
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### pointsNodes
**pointsNodes**: `HTMLDivElement`
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### versionNodes
**versionNodes**: `HTMLDivElement`
___
### viewport
**viewport**: `HTMLDivElement`
## Accessors
### transforms
`get` **transforms**(): [`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
#### Returns
[`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
## Methods
### autorun
**autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createBounds
**createBounds**(`transform`, `color`, `depth`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `transform` | [`FlowNodeTransformData`](./FlowNodeTransformData.md) |
| `color` | `string` |
| `depth` | `number` |
#### Returns
`void`
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
**onResize**(): `void`
playground 大小变化时候会触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
**onScroll**(): `void`
监听滚动
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
**onZoom**(`scale`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
[Layer](./Layer.md).[render](./Layer.md#render)
___
### renderScrollViewportBounds
**renderScrollViewportBounds**(): `void`
显示 viewport 可滚动区域
#### Returns
`void`
---
url: /auto-docs/editor/classes/FlowDocument.md
---
# Class: FlowDocument\
流程整个文档数据
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | [`FlowDocumentJSON`](../types/FlowDocumentJSON.md) |
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./FlowDocument.md#constructor)
### Properties
- [config](./FlowDocument.md#config)
- [onLayoutChange](./FlowDocument.md#onlayoutchange)
- [onNodeCreate](./FlowDocument.md#onnodecreate)
- [onNodeDispose](./FlowDocument.md#onnodedispose)
- [onNodeUpdate](./FlowDocument.md#onnodeupdate)
- [options](./FlowDocument.md#options)
- [originTree](./FlowDocument.md#origintree)
- [renderState](./FlowDocument.md#renderstate)
- [renderTree](./FlowDocument.md#rendertree)
- [root](./FlowDocument.md#root)
- [transformer](./FlowDocument.md#transformer)
### Accessors
- [disposed](./FlowDocument.md#disposed)
- [layout](./FlowDocument.md#layout)
- [loading](./FlowDocument.md#loading)
- [size](./FlowDocument.md#size)
### Methods
- [addBlock](./FlowDocument.md#addblock)
- [addBlocksAsChildren](./FlowDocument.md#addblocksaschildren)
- [addFromNode](./FlowDocument.md#addfromnode)
- [addInlineBlocks](./FlowDocument.md#addinlineblocks)
- [addNode](./FlowDocument.md#addnode)
- [dispose](./FlowDocument.md#dispose)
- [fireRender](./FlowDocument.md#firerender)
- [fromJSON](./FlowDocument.md#fromjson)
- [getAllNodes](./FlowDocument.md#getallnodes)
- [getNode](./FlowDocument.md#getnode)
- [getNodeRegister](./FlowDocument.md#getnoderegister)
- [getNodeRegistry](./FlowDocument.md#getnoderegistry)
- [getRenderDatas](./FlowDocument.md#getrenderdatas)
- [hasNode](./FlowDocument.md#hasnode)
- [init](./FlowDocument.md#init)
- [isExtend](./FlowDocument.md#isextend)
- [isTypeOrExtendType](./FlowDocument.md#istypeorextendtype)
- [load](./FlowDocument.md#load)
- [moveChildNodes](./FlowDocument.md#movechildnodes)
- [moveNodes](./FlowDocument.md#movenodes)
- [registerFlowNodes](./FlowDocument.md#registerflownodes)
- [registerLayout](./FlowDocument.md#registerlayout)
- [registerNodeDatas](./FlowDocument.md#registernodedatas)
- [removeNode](./FlowDocument.md#removenode)
- [setLayout](./FlowDocument.md#setlayout)
- [toJSON](./FlowDocument.md#tojson)
- [toNodeJSON](./FlowDocument.md#tonodejson)
- [toString](./FlowDocument.md#tostring)
- [toggleFixedLayout](./FlowDocument.md#togglefixedlayout)
- [traverse](./FlowDocument.md#traverse)
## Constructors
### constructor
**new FlowDocument**\<`T`\>()
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | [`FlowDocumentJSON`](../types/FlowDocumentJSON.md) |
## Properties
### config
`Readonly` **config**: [`FlowDocumentConfig`](./FlowDocumentConfig.md)
___
### onLayoutChange
`Readonly` **onLayoutChange**: [`Event`](../interfaces/Event-1.md)\<[`FlowLayout`](../variables/FlowLayout-1.md)\>
___
### onNodeCreate
`Readonly` **onNodeCreate**: [`Event`](../interfaces/Event-1.md)\<\{ `data`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `json`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `node`: [`FlowNodeEntity`](./FlowNodeEntity-1.md) }\>
___
### onNodeDispose
`Readonly` **onNodeDispose**: [`Event`](../interfaces/Event-1.md)\<\{ `node`: [`FlowNodeEntity`](./FlowNodeEntity-1.md) }\>
___
### onNodeUpdate
`Readonly` **onNodeUpdate**: [`Event`](../interfaces/Event-1.md)\<\{ `data`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `json`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `node`: [`FlowNodeEntity`](./FlowNodeEntity-1.md) }\>
___
### options
**options**: [`FlowDocumentOptions`](../variables/FlowDocumentOptions-1.md)
流程画布配置项
___
### originTree
**originTree**: [`FlowVirtualTree`](./FlowVirtualTree-1.md)\<[`FlowNodeEntity`](./FlowNodeEntity-1.md)\>
原始的 tree 结构
___
### renderState
**renderState**: [`FlowRendererStateEntity`](./FlowRendererStateEntity.md)
渲染相关的全局轧辊台
___
### renderTree
**renderTree**: `FlowRenderTree`\<[`FlowNodeEntity`](./FlowNodeEntity-1.md)\>
渲染后的 tree 结构
___
### root
**root**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### transformer
**transformer**: [`FlowDocumentTransformerEntity`](./FlowDocumentTransformerEntity.md)
## Accessors
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### layout
`get` **layout**(): [`FlowLayout`](../variables/FlowLayout-1.md)
#### Returns
[`FlowLayout`](../variables/FlowLayout-1.md)
___
### loading
`get` **loading**(): `boolean`
#### Returns
`boolean`
___
### size
`get` **size**(): `number`
#### Returns
`number`
## Methods
### addBlock
**addBlock**(`target`, `blockData`, `addedNodes?`, `parent?`, `index?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
添加单个 block
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `target` | `string` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md) | |
| `blockData` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) | |
| `addedNodes?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] | |
| `parent?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) | 默认去找 $inlineBlocks$ |
| `index?` | `number` | - |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### addBlocksAsChildren
**addBlocksAsChildren**(`parent`, `blocks`, `addedNodes?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `blocks` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)[] |
| `addedNodes?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`void`
___
### addFromNode
**addFromNode**(`fromNode`, `json`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
从指定节点的下一个节点新增
#### Parameters
| Name | Type |
| :------ | :------ |
| `fromNode` | `string` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `json` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### addInlineBlocks
**addInlineBlocks**(`node`, `blocks`, `addedNodes?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
block 格式:
node: (最原始的 id)
blockIcon
inlineBlocks
block
blockOrderIcon
block
blockOrderIcon
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `blocks` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)[] |
| `addedNodes?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### addNode
**addNode**(`data`, `addedNodes?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
添加节点,如果节点已经存在则不会重复创建
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | [`AddNodeData`](../types/AddNodeData.md) |
| `addedNodes?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### fireRender
**fireRender**(): `void`
触发 render
#### Returns
`void`
___
### fromJSON
**fromJSON**(`json`, `fireRender?`): `void`
加载数据,可以被重载
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `any` | 文档数据更新 |
| `fireRender?` | `boolean` | 是否要触发渲染,默认 true |
#### Returns
`void`
___
### getAllNodes
**getAllNodes**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### getNode
**getNode**(`id`): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
根据 id 获取节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### getNodeRegister
**getNodeRegister**\<`T`\>(`type`, `originParent?`): `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md), `T`\> = [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | [`FlowNodeType`](../types/FlowNodeType.md) |
| `originParent?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`T`
**`Deprecated`**
use `getNodeRegistry` instead
___
### getNodeRegistry
**getNodeRegistry**\<`T`\>(`type`, `originParent?`): `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md), `T`\> = [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | [`FlowNodeType`](../types/FlowNodeType.md) |
| `originParent?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`T`
___
### getRenderDatas
**getRenderDatas**\<`T`\>(`dataRegistry`, `containHiddenNodes?`): `T`[]
返回需要渲染的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `dataRegistry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`T`\> |
| `containHiddenNodes?` | `boolean` |
#### Returns
`T`[]
___
### hasNode
**hasNode**(`nodeId`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeId` | `string` |
#### Returns
`boolean`
___
### init
**init**(): `void`
#### Returns
`void`
___
### isExtend
**isExtend**(`currentType`, `extendType`): `boolean`
Check node extend
#### Parameters
| Name | Type |
| :------ | :------ |
| `currentType` | [`FlowNodeType`](../types/FlowNodeType.md) |
| `extendType` | [`FlowNodeType`](../types/FlowNodeType.md) |
#### Returns
`boolean`
___
### isTypeOrExtendType
**isTypeOrExtendType**(`currentType`, `extendType`): `boolean`
Check node type
#### Parameters
| Name | Type |
| :------ | :------ |
| `currentType` | [`FlowNodeType`](../types/FlowNodeType.md) |
| `extendType` | [`FlowNodeType`](../types/FlowNodeType.md) |
#### Returns
`boolean`
___
### load
**load**(): `Promise`\<`void`\>
#### Returns
`Promise`\<`void`\>
___
### moveChildNodes
**moveChildNodes**(`param0`): `void`
移动子节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.nodeIds` | `string`[] |
| `param0.toIndex` | `number` |
| `param0.toParentId` | `string` |
#### Returns
`void`
___
### moveNodes
**moveNodes**(`param0`): `void`
移动节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.dropNodeId` | `string` |
| `param0.inside?` | `boolean` |
| `param0.sortNodeIds` | `string`[] |
#### Returns
`void`
___
### registerFlowNodes
**registerFlowNodes**\<`T`\>(`...registries`): `void`
注册节点
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<`any`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `...registries` | `T`[] |
#### Returns
`void`
___
### registerLayout
**registerLayout**(`layout`): `void`
注册布局
#### Parameters
| Name | Type |
| :------ | :------ |
| `layout` | [`FlowLayout`](../variables/FlowLayout-1.md) |
#### Returns
`void`
___
### registerNodeDatas
**registerNodeDatas**(`...nodeDatas`): `void`
节点注入数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `...nodeDatas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
#### Returns
`void`
___
### removeNode
**removeNode**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `string` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### setLayout
**setLayout**(`layoutKey`): `void`
更新布局
#### Parameters
| Name | Type |
| :------ | :------ |
| `layoutKey` | `string` |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
导出数据,可以重载
#### Returns
`any`
___
### toNodeJSON
**toNodeJSON**(`node`): [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
[`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)
___
### toString
**toString**(`showType?`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `showType?` | `boolean` |
#### Returns
`string`
___
### toggleFixedLayout
**toggleFixedLayout**(): `void`
切换垂直或水平布局
#### Returns
`void`
___
### traverse
**traverse**(`fn`, `node?`, `depth?`): `boolean` \| `void`
traverse all nodes, O(n)
R
|
+---1
| |
| +---1.1
| |
| +---1.2
| |
| +---1.3
| | |
| | +---1.3.1
| | |
| | +---1.3.2
| |
| +---1.4
|
+---2
|
+---2.1
sort: [1, 1.1, 1.2, 1.3, 1.3.1, 1.3.2, 1.4, 2, 2.1]
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`node`: [`FlowNodeEntity`](./FlowNodeEntity-1.md), `depth`: `number`, `index`: `number`) => `boolean` \| `void` |
| `node?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `depth?` | `number` |
#### Returns
`boolean` \| `void`
isBreak
---
url: /auto-docs/editor/classes/FlowDocumentConfig.md
---
# Class: FlowDocumentConfig
用于文档扩展配置
## Table of contents
### Constructors
- [constructor](./FlowDocumentConfig.md#constructor)
### Properties
- [onChange](./FlowDocumentConfig.md#onchange)
### Methods
- [get](./FlowDocumentConfig.md#get)
- [registerConfigs](./FlowDocumentConfig.md#registerconfigs)
- [set](./FlowDocumentConfig.md#set)
## Constructors
### constructor
**new FlowDocumentConfig**(`_data?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `_data?` | `Record`\<`string`, `any`\> |
## Properties
### onChange
`Readonly` **onChange**: [`Event`](../interfaces/Event-1.md)\<`string`\>
## Methods
### get
**get**(`key`): `any`
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
#### Returns
`any`
___
### registerConfigs
**registerConfigs**(`config`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `config` | `Record`\<`string`, `any`\> |
#### Returns
`void`
___
### set
**set**(`key`, `value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `value` | `any` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/FlowDocumentTransformerEntity.md
---
# Class: FlowDocumentTransformerEntity
用于通知所有 layer 更新
## Hierarchy
- [`ConfigEntity`](./ConfigEntity.md)\<\{ `loading`: `boolean` ; `treeVersion`: `number` }, `FlowDocumentTransformerEntityConfig`\>
↳ **`FlowDocumentTransformerEntity`**
## Table of contents
### Constructors
- [constructor](./FlowDocumentTransformerEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowDocumentTransformerEntity.md#__opts_type__)
- [document](./FlowDocumentTransformerEntity.md#document)
- [entityManager](./FlowDocumentTransformerEntity.md#entitymanager)
- [onDataChange](./FlowDocumentTransformerEntity.md#ondatachange)
- [onEntityChange](./FlowDocumentTransformerEntity.md#onentitychange)
- [onRefresh](./FlowDocumentTransformerEntity.md#onrefresh)
- [preDispose](./FlowDocumentTransformerEntity.md#predispose)
- [toDispose](./FlowDocumentTransformerEntity.md#todispose)
- [type](./FlowDocumentTransformerEntity.md#type)
### Accessors
- [config](./FlowDocumentTransformerEntity.md#config)
- [context](./FlowDocumentTransformerEntity.md#context)
- [disposed](./FlowDocumentTransformerEntity.md#disposed)
- [id](./FlowDocumentTransformerEntity.md#id)
- [loading](./FlowDocumentTransformerEntity.md#loading)
- [onDispose](./FlowDocumentTransformerEntity.md#ondispose)
- [savedInManager](./FlowDocumentTransformerEntity.md#savedinmanager)
- [type](./FlowDocumentTransformerEntity.md#type-1)
- [version](./FlowDocumentTransformerEntity.md#version)
### Methods
- [addData](./FlowDocumentTransformerEntity.md#adddata)
- [addInitializeData](./FlowDocumentTransformerEntity.md#addinitializedata)
- [checkChanged](./FlowDocumentTransformerEntity.md#checkchanged)
- [clear](./FlowDocumentTransformerEntity.md#clear)
- [dispose](./FlowDocumentTransformerEntity.md#dispose)
- [fromJSON](./FlowDocumentTransformerEntity.md#fromjson)
- [getData](./FlowDocumentTransformerEntity.md#getdata)
- [getDefaultConfig](./FlowDocumentTransformerEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./FlowDocumentTransformerEntity.md#getdefaultdataregistries)
- [getService](./FlowDocumentTransformerEntity.md#getservice)
- [hasData](./FlowDocumentTransformerEntity.md#hasdata)
- [isTreeDirty](./FlowDocumentTransformerEntity.md#istreedirty)
- [onConfigChanged](./FlowDocumentTransformerEntity.md#onconfigchanged)
- [refresh](./FlowDocumentTransformerEntity.md#refresh)
- [removeData](./FlowDocumentTransformerEntity.md#removedata)
- [reset](./FlowDocumentTransformerEntity.md#reset)
- [toJSON](./FlowDocumentTransformerEntity.md#tojson)
- [updateConfig](./FlowDocumentTransformerEntity.md#updateconfig)
- [updateData](./FlowDocumentTransformerEntity.md#updatedata)
- [updateTransformsTree](./FlowDocumentTransformerEntity.md#updatetransformstree)
## Constructors
### constructor
**new FlowDocumentTransformerEntity**(`conf`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `conf` | `FlowDocumentTransformerEntityConfig` |
#### Overrides
[ConfigEntity](./ConfigEntity.md).[constructor](./ConfigEntity.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `FlowDocumentTransformerEntityConfig`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[__opts_type__](./ConfigEntity.md#__opts_type__)
___
### document
**document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[entityManager](./ConfigEntity.md#entitymanager)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onDataChange](./ConfigEntity.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onEntityChange](./ConfigEntity.md#onentitychange)
___
### onRefresh
`Readonly` **onRefresh**: [`Event`](../interfaces/Event-1.md)\<`void`\>
___
### preDispose
`Readonly` **preDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁前事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[preDispose](./ConfigEntity.md#predispose)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toDispose](./ConfigEntity.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[type](./ConfigEntity.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### loading
`get` **loading**(): `boolean`
#### Returns
`boolean`
`set` **loading**(`loading`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `loading` | `boolean` |
#### Returns
`void`
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
销毁事件
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addData](./ConfigEntity.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addInitializeData](./ConfigEntity.md#addinitializedata)
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `Object` |
| `oldData.loading` | `boolean` |
| `oldData.treeVersion` | `number` |
| `newData` | `Partial`\<\{ `loading`: `boolean` ; `treeVersion`: `number` }\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[checkChanged](./ConfigEntity.md#checkchanged)
___
### clear
**clear**(): `void`
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[dispose](./ConfigEntity.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[fromJSON](./ConfigEntity.md#fromjson)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getData](./ConfigEntity.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `loading` | `boolean` |
| `treeVersion` | `number` |
#### Overrides
[ConfigEntity](./ConfigEntity.md).[getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getService](./ConfigEntity.md#getservice)
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[hasData](./ConfigEntity.md#hasdata)
___
### isTreeDirty
**isTreeDirty**(): `boolean`
#### Returns
`boolean`
___
### onConfigChanged
**onConfigChanged**(`fn`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: \{ `loading`: `boolean` ; `treeVersion`: `number` }) => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onConfigChanged](./ConfigEntity.md#onconfigchanged)
___
### refresh
**refresh**(): `void`
刷新节点的相对偏移
#### Returns
`void`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[removeData](./ConfigEntity.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[reset](./ConfigEntity.md#reset)
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toJSON](./ConfigEntity.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<\{ `loading`: `boolean` ; `treeVersion`: `number` }\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateConfig](./ConfigEntity.md#updateconfig)
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateData](./ConfigEntity.md#updatedata)
___
### updateTransformsTree
**updateTransformsTree**(): `void`
更新矩阵结构 (这个只有在树结构变化时候才会触发,如:添加节点、删除节点、改变位置节点)
#### Returns
`void`
---
url: /auto-docs/editor/classes/FlowDragEntity.md
---
# Class: FlowDragEntity
用于专门的数据配置,且是单例
## Hierarchy
- [`ConfigEntity`](./ConfigEntity.md)\<`FlowDragEntityConfig`\>
↳ **`FlowDragEntity`**
## Table of contents
### Constructors
- [constructor](./FlowDragEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowDragEntity.md#__opts_type__)
- [entityManager](./FlowDragEntity.md#entitymanager)
- [onDataChange](./FlowDragEntity.md#ondatachange)
- [onEntityChange](./FlowDragEntity.md#onentitychange)
- [preDispose](./FlowDragEntity.md#predispose)
- [toDispose](./FlowDragEntity.md#todispose)
- [type](./FlowDragEntity.md#type)
### Accessors
- [config](./FlowDragEntity.md#config)
- [context](./FlowDragEntity.md#context)
- [disposed](./FlowDragEntity.md#disposed)
- [hasScroll](./FlowDragEntity.md#hasscroll)
- [id](./FlowDragEntity.md#id)
- [onDispose](./FlowDragEntity.md#ondispose)
- [savedInManager](./FlowDragEntity.md#savedinmanager)
- [type](./FlowDragEntity.md#type-1)
- [version](./FlowDragEntity.md#version)
### Methods
- [addData](./FlowDragEntity.md#adddata)
- [addInitializeData](./FlowDragEntity.md#addinitializedata)
- [checkChanged](./FlowDragEntity.md#checkchanged)
- [dispose](./FlowDragEntity.md#dispose)
- [fromJSON](./FlowDragEntity.md#fromjson)
- [getData](./FlowDragEntity.md#getdata)
- [getDefaultConfig](./FlowDragEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./FlowDragEntity.md#getdefaultdataregistries)
- [getService](./FlowDragEntity.md#getservice)
- [hasData](./FlowDragEntity.md#hasdata)
- [isBranchCollision](./FlowDragEntity.md#isbranchcollision)
- [isCollision](./FlowDragEntity.md#iscollision)
- [isNodeCollision](./FlowDragEntity.md#isnodecollision)
- [onConfigChanged](./FlowDragEntity.md#onconfigchanged)
- [removeData](./FlowDragEntity.md#removedata)
- [reset](./FlowDragEntity.md#reset)
- [scrollDirection](./FlowDragEntity.md#scrolldirection)
- [stopAllScroll](./FlowDragEntity.md#stopallscroll)
- [toJSON](./FlowDragEntity.md#tojson)
- [updateConfig](./FlowDragEntity.md#updateconfig)
- [updateData](./FlowDragEntity.md#updatedata)
## Constructors
### constructor
**new FlowDragEntity**(`conf`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `conf` | `any` |
#### Overrides
[ConfigEntity](./ConfigEntity.md).[constructor](./ConfigEntity.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`EntityOpts`](../interfaces/EntityOpts.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[__opts_type__](./ConfigEntity.md#__opts_type__)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[entityManager](./ConfigEntity.md#entitymanager)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onDataChange](./ConfigEntity.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onEntityChange](./ConfigEntity.md#onentitychange)
___
### preDispose
`Readonly` **preDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁前事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[preDispose](./ConfigEntity.md#predispose)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toDispose](./ConfigEntity.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[type](./ConfigEntity.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### hasScroll
`get` **hasScroll**(): `boolean`
#### Returns
`boolean`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
销毁事件
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addData](./ConfigEntity.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addInitializeData](./ConfigEntity.md#addinitializedata)
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `FlowDragEntityConfig` |
| `newData` | `Partial`\<`FlowDragEntityConfig`\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[checkChanged](./ConfigEntity.md#checkchanged)
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[dispose](./ConfigEntity.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[fromJSON](./ConfigEntity.md#fromjson)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getData](./ConfigEntity.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): `FlowDragEntityConfig`
#### Returns
`FlowDragEntityConfig`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getService](./ConfigEntity.md#getservice)
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[hasData](./ConfigEntity.md#hasdata)
___
### isBranchCollision
**isBranchCollision**(`transition`, `rect`, `scale`): [`CollisionRetType`](../interfaces/CollisionRetType.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | [`FlowNodeTransitionData`](./FlowNodeTransitionData.md) |
| `rect` | [`Rectangle`](./Rectangle-1.md) |
| `scale` | `number` |
#### Returns
[`CollisionRetType`](../interfaces/CollisionRetType.md)
___
### isCollision
**isCollision**(`transition`, `rect`, `isBranch`): [`CollisionRetType`](../interfaces/CollisionRetType.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | [`FlowNodeTransitionData`](./FlowNodeTransitionData.md) |
| `rect` | [`Rectangle`](./Rectangle-1.md) |
| `isBranch` | `boolean` |
#### Returns
[`CollisionRetType`](../interfaces/CollisionRetType.md)
___
### isNodeCollision
**isNodeCollision**(`transition`, `rect`, `scale`): [`CollisionRetType`](../interfaces/CollisionRetType.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `transition` | [`FlowNodeTransitionData`](./FlowNodeTransitionData.md) |
| `rect` | [`Rectangle`](./Rectangle-1.md) |
| `scale` | `number` |
#### Returns
[`CollisionRetType`](../interfaces/CollisionRetType.md)
___
### onConfigChanged
**onConfigChanged**(`fn`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: `FlowDragEntityConfig`) => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onConfigChanged](./ConfigEntity.md#onconfigchanged)
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[removeData](./ConfigEntity.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[reset](./ConfigEntity.md#reset)
___
### scrollDirection
**scrollDirection**(`e`, `x`, `y`): `undefined` \| `ScrollDirection`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` |
| `x` | `number` |
| `y` | `number` |
#### Returns
`undefined` \| `ScrollDirection`
___
### stopAllScroll
**stopAllScroll**(): `void`
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toJSON](./ConfigEntity.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<`FlowDragEntityConfig`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateConfig](./ConfigEntity.md#updateconfig)
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateData](./ConfigEntity.md#updatedata)
---
url: /auto-docs/editor/classes/FlowDragLayer.md
---
# Class: FlowDragLayer
监听节点的激活状态
## Hierarchy
- [`Layer`](./Layer.md)\<[`FlowDragOptions`](../interfaces/FlowDragOptions.md)\>
↳ **`FlowDragLayer`**
## Table of contents
### Constructors
- [constructor](./FlowDragLayer.md#constructor)
### Properties
- [config](./FlowDragLayer.md#config)
- [containerRef](./FlowDragLayer.md#containerref)
- [context](./FlowDragLayer.md#context)
- [document](./FlowDragLayer.md#document)
- [dragOffset](./FlowDragLayer.md#dragoffset)
- [draggingNodeMask](./FlowDragLayer.md#draggingnodemask)
- [entityManager](./FlowDragLayer.md#entitymanager)
- [flowDragService](./FlowDragLayer.md#flowdragservice)
- [getOtherLayer](./FlowDragLayer.md#getotherlayer)
- [isFocused](./FlowDragLayer.md#isfocused)
- [listenGlobalEvent](./FlowDragLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowDragLayer.md#listenplaygroundevent)
- [node](./FlowDragLayer.md#node)
- [observeManager](./FlowDragLayer.md#observemanager)
- [options](./FlowDragLayer.md#options)
- [pipelineNode](./FlowDragLayer.md#pipelinenode)
- [playgroundNode](./FlowDragLayer.md#playgroundnode)
- [reloadEntities](./FlowDragLayer.md#reloadentities)
- [renderWithReactMemo](./FlowDragLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowDragLayer.md#rendererregistry)
- [transforms](./FlowDragLayer.md#transforms)
### Accessors
- [dragEntities](./FlowDragLayer.md#dragentities)
- [dragStartEntity](./FlowDragLayer.md#dragstartentity)
- [transitions](./FlowDragLayer.md#transitions)
### Methods
- [autorun](./FlowDragLayer.md#autorun)
- [createDOMCache](./FlowDragLayer.md#createdomcache)
- [dispose](./FlowDragLayer.md#dispose)
- [dragEnable](./FlowDragLayer.md#dragenable)
- [getPosFromMouseEvent](./FlowDragLayer.md#getposfrommouseevent)
- [handleMouseMove](./FlowDragLayer.md#handlemousemove)
- [handleMouseUp](./FlowDragLayer.md#handlemouseup)
- [onBlur](./FlowDragLayer.md#onblur)
- [onFocus](./FlowDragLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowDragLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowDragLayer.md#onready)
- [onResize](./FlowDragLayer.md#onresize)
- [onScroll](./FlowDragLayer.md#onscroll)
- [onViewportChange](./FlowDragLayer.md#onviewportchange)
- [onZoom](./FlowDragLayer.md#onzoom)
- [render](./FlowDragLayer.md#render)
- [setDraggingStatus](./FlowDragLayer.md#setdraggingstatus)
- [startDrag](./FlowDragLayer.md#startdrag)
## Constructors
### constructor
**new FlowDragLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### containerRef
**containerRef**: `RefObject`\<`HTMLDivElement`\>
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### document
`Readonly` **document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### dragOffset
**dragOffset**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `x` | `number` |
| `y` | `number` |
___
### draggingNodeMask
**draggingNodeMask**: `HTMLDivElement`
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### flowDragService
`Readonly` **flowDragService**: [`FlowDragService`](./FlowDragService.md)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Inherited from
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: [`FlowDragOptions`](../interfaces/FlowDragOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
___
### transforms
**transforms**: [`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
## Accessors
### dragEntities
`get` **dragEntities**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
`set` **dragEntities**(`entities`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entities` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`void`
___
### dragStartEntity
`get` **dragStartEntity**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
`set` **dragStartEntity**(`entity`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### transitions
`get` **transitions**(): [`FlowNodeTransitionData`](./FlowNodeTransitionData.md)[]
#### Returns
[`FlowNodeTransitionData`](./FlowNodeTransitionData.md)[]
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### dragEnable
**dragEnable**(`e`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` |
#### Returns
`boolean`
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### handleMouseMove
**handleMouseMove**(`event`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `MouseEvent` |
#### Returns
`void`
___
### handleMouseUp
**handleMouseUp**(): `Promise`\<`void`\>
#### Returns
`Promise`\<`void`\>
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
**render**(): `ReactPortal`
绘制 react
#### Returns
`ReactPortal`
#### Overrides
[Layer](./Layer.md).[render](./Layer.md#render)
___
### setDraggingStatus
**setDraggingStatus**(`status`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `status` | `boolean` |
#### Returns
`void`
___
### startDrag
**startDrag**(`e`, `«destructured»`, `options?`): `Promise`\<`void`\>
开始拖拽事件
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `Object` |
| `e.clientX` | `number` |
| `e.clientY` | `number` |
| `«destructured»` | `StartDragProps` |
| `options?` | `Object` |
| `options.disableDragScroll?` | `boolean` |
| `options.dragOffsetX?` | `number` |
| `options.dragOffsetY?` | `number` |
#### Returns
`Promise`\<`void`\>
---
url: /auto-docs/editor/classes/FlowDragService.md
---
# Class: FlowDragService
拖拽相关操作
外部实现抽象类
## Table of contents
### Constructors
- [constructor](./FlowDragService.md#constructor)
### Properties
- [onDrop](./FlowDragService.md#ondrop)
### Accessors
- [dragNodes](./FlowDragService.md#dragnodes)
- [dragStartNode](./FlowDragService.md#dragstartnode)
- [dragging](./FlowDragService.md#dragging)
- [dropNodeId](./FlowDragService.md#dropnodeid)
- [isDragBranch](./FlowDragService.md#isdragbranch)
- [labelSide](./FlowDragService.md#labelside)
- [nodeDragIdsWithChildren](./FlowDragService.md#nodedragidswithchildren)
- [renderState](./FlowDragService.md#renderstate)
### Methods
- [dropBranch](./FlowDragService.md#dropbranch)
- [dropCreateNode](./FlowDragService.md#dropcreatenode)
- [dropNode](./FlowDragService.md#dropnode)
- [isDroppableBranch](./FlowDragService.md#isdroppablebranch)
- [isDroppableNode](./FlowDragService.md#isdroppablenode)
## Constructors
### constructor
**new FlowDragService**()
## Properties
### onDrop
`Readonly` **onDrop**: [`Event`](../interfaces/Event-1.md)\<\{ `dragJSON?`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) ; `dragNodes`: [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] ; `dropNode`: [`FlowNodeEntity`](./FlowNodeEntity-1.md) }\>
## Accessors
### dragNodes
`get` **dragNodes**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### dragStartNode
`get` **dragStartNode**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### dragging
`get` **dragging**(): `boolean`
#### Returns
`boolean`
___
### dropNodeId
`get` **dropNodeId**(): `undefined` \| `string`
#### Returns
`undefined` \| `string`
___
### isDragBranch
`get` **isDragBranch**(): `boolean`
#### Returns
`boolean`
___
### labelSide
`get` **labelSide**(): `undefined` \| [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md)
#### Returns
`undefined` \| [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md)
___
### nodeDragIdsWithChildren
`get` **nodeDragIdsWithChildren**(): `string`[]
#### Returns
`string`[]
___
### renderState
`get` **renderState**(): [`FlowRendererStateEntity`](./FlowRendererStateEntity.md)
#### Returns
[`FlowRendererStateEntity`](./FlowRendererStateEntity.md)
## Methods
### dropBranch
**dropBranch**(): `void`
放置到目标分支
#### Returns
`void`
___
### dropCreateNode
**dropCreateNode**(`json`, `onCreateNode?`): `Promise`\<`void`\>
移动并且创建节点
Move and create node
#### Parameters
| Name | Type |
| :------ | :------ |
| `json` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
| `onCreateNode?` | (`json`: [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md), `dropEntity`: [`FlowNodeEntity`](./FlowNodeEntity-1.md)) => `Promise`\<[`FlowNodeEntity`](./FlowNodeEntity-1.md)\> |
#### Returns
`Promise`\<`void`\>
___
### dropNode
**dropNode**(): `void`
移动到目标节点
#### Returns
`void`
___
### isDroppableBranch
**isDroppableBranch**(`node`, `side?`): `boolean`
拖拽分支是否可以释放在该分支
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) | 拖拽的分支节点 |
| `side?` | [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md) | 分支的前面还是后面 |
#### Returns
`boolean`
___
### isDroppableNode
**isDroppableNode**(`node`): `boolean`
拖拽是否可以释放在该节点后面
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`boolean`
---
url: /auto-docs/editor/classes/FlowEditorClient.md
---
# Class: FlowEditorClient
## Table of contents
### Constructors
- [constructor](./FlowEditorClient.md#constructor)
### Properties
- [nodeClient](./FlowEditorClient.md#nodeclient)
- [playground](./FlowEditorClient.md#playground)
### Methods
- [focusNode](./FlowEditorClient.md#focusnode)
- [focusNodeFormItem](./FlowEditorClient.md#focusnodeformitem)
## Constructors
### constructor
**new FlowEditorClient**()
## Properties
### nodeClient
`Readonly` **nodeClient**: [`NodeClient`](./NodeClient.md)
___
### playground
`Readonly` **playground**: [`Playground`](./Playground.md)\<`any`\>
## Methods
### focusNode
**focusNode**(`node`, `options?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `options?` | `FocusNodeOptions` |
#### Returns
`void`
___
### focusNodeFormItem
**focusNodeFormItem**(`formItem`, `options?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `formItem` | `FormItem` |
| `options?` | [`FocusNodeFormItemOptions`](../interfaces/FocusNodeFormItemOptions.md) |
#### Returns
`void`
---
url: /auto-docs/editor/classes/FlowGroupController.md
---
# Class: FlowGroupController
分组控制器
## Table of contents
### Properties
- [groupNode](./FlowGroupController.md#groupnode)
### Accessors
- [bounds](./FlowGroupController.md#bounds)
- [collapsed](./FlowGroupController.md#collapsed)
- [hovered](./FlowGroupController.md#hovered)
- [nodes](./FlowGroupController.md#nodes)
- [note](./FlowGroupController.md#note)
- [noteHeight](./FlowGroupController.md#noteheight)
- [positionConfig](./FlowGroupController.md#positionconfig)
### Methods
- [collapse](./FlowGroupController.md#collapse)
- [expand](./FlowGroupController.md#expand)
- [isEndNode](./FlowGroupController.md#isendnode)
- [isStartNode](./FlowGroupController.md#isstartnode)
- [create](./FlowGroupController.md#create)
## Properties
### groupNode
`Readonly` **groupNode**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
## Accessors
### bounds
`get` **bounds**(): [`Rectangle`](./Rectangle-1.md)
获取分组外围的最大边框
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### collapsed
`get` **collapsed**(): `boolean`
#### Returns
`boolean`
`set` **collapsed**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `value` | `boolean` |
#### Returns
`void`
___
### hovered
`get` **hovered**(): `boolean`
#### Returns
`boolean`
`set` **hovered**(`hovered`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `hovered` | `boolean` |
#### Returns
`void`
___
### nodes
`get` **nodes**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### note
`get` **note**(): `string`
#### Returns
`string`
`set` **note**(`note`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `note` | `string` |
#### Returns
`void`
___
### noteHeight
`get` **noteHeight**(): `number`
#### Returns
`number`
`set` **noteHeight**(`height`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `height` | `number` |
#### Returns
`void`
___
### positionConfig
`get` **positionConfig**(): `Record`\<`string`, `number`\>
#### Returns
`Record`\<`string`, `number`\>
## Methods
### collapse
**collapse**(): `void`
#### Returns
`void`
___
### expand
**expand**(): `void`
#### Returns
`void`
___
### isEndNode
**isEndNode**(`node?`): `boolean`
是否是结束节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `node?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`boolean`
___
### isStartNode
**isStartNode**(`node?`): `boolean`
是否是开始节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `node?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`boolean`
___
### create
`Static` **create**(`groupNode?`): `undefined` \| [`FlowGroupController`](./FlowGroupController.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `groupNode?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`undefined` \| [`FlowGroupController`](./FlowGroupController.md)
---
url: /auto-docs/editor/classes/FlowGroupService.md
---
# Class: FlowGroupService
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Table of contents
### Constructors
- [constructor](./FlowGroupService.md#constructor)
### Properties
- [entityManager](./FlowGroupService.md#entitymanager)
- [operationService](./FlowGroupService.md#operationservice)
### Methods
- [createGroup](./FlowGroupService.md#creategroup)
- [deleteGroup](./FlowGroupService.md#deletegroup)
- [getAllGroups](./FlowGroupService.md#getallgroups)
- [groupController](./FlowGroupService.md#groupcontroller)
- [ungroup](./FlowGroupService.md#ungroup)
- [validate](./FlowGroupService.md#validate)
## Constructors
### constructor
**new FlowGroupService**()
## Properties
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
___
### operationService
`Readonly` **operationService**: [`FlowOperationBaseService`](../variables/FlowOperationBaseService-1.md)
## Methods
### createGroup
**createGroup**(`nodes`): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
创建分组节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### deleteGroup
**deleteGroup**(`groupNode`): `void`
删除分组
#### Parameters
| Name | Type |
| :------ | :------ |
| `groupNode` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### getAllGroups
**getAllGroups**(): [`FlowGroupController`](./FlowGroupController.md)[]
返回所有分组节点
#### Returns
[`FlowGroupController`](./FlowGroupController.md)[]
___
### groupController
**groupController**(`group`): `undefined` \| [`FlowGroupController`](./FlowGroupController.md)
获取分组控制器
#### Parameters
| Name | Type |
| :------ | :------ |
| `group` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`undefined` \| [`FlowGroupController`](./FlowGroupController.md)
___
### ungroup
**ungroup**(`groupNode`): `void`
取消分组
#### Parameters
| Name | Type |
| :------ | :------ |
| `groupNode` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### validate
`Static` **validate**(`nodes`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`boolean`
---
url: /auto-docs/editor/classes/FlowLabelsLayer.md
---
# Class: FlowLabelsLayer
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- [`Layer`](./Layer.md)
↳ **`FlowLabelsLayer`**
## Table of contents
### Constructors
- [constructor](./FlowLabelsLayer.md#constructor)
### Properties
- [\_transitions](./FlowLabelsLayer.md#_transitions)
- [config](./FlowLabelsLayer.md#config)
- [context](./FlowLabelsLayer.md#context)
- [document](./FlowLabelsLayer.md#document)
- [documentTransformer](./FlowLabelsLayer.md#documenttransformer)
- [entityManager](./FlowLabelsLayer.md#entitymanager)
- [flowRenderState](./FlowLabelsLayer.md#flowrenderstate)
- [getOtherLayer](./FlowLabelsLayer.md#getotherlayer)
- [isFocused](./FlowLabelsLayer.md#isfocused)
- [listenGlobalEvent](./FlowLabelsLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowLabelsLayer.md#listenplaygroundevent)
- [node](./FlowLabelsLayer.md#node)
- [observeManager](./FlowLabelsLayer.md#observemanager)
- [onViewportChange](./FlowLabelsLayer.md#onviewportchange)
- [options](./FlowLabelsLayer.md#options)
- [pipelineNode](./FlowLabelsLayer.md#pipelinenode)
- [playgroundNode](./FlowLabelsLayer.md#playgroundnode)
- [reloadEntities](./FlowLabelsLayer.md#reloadentities)
- [renderWithReactMemo](./FlowLabelsLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowLabelsLayer.md#rendererregistry)
### Accessors
- [transitions](./FlowLabelsLayer.md#transitions)
### Methods
- [autorun](./FlowLabelsLayer.md#autorun)
- [createDOMCache](./FlowLabelsLayer.md#createdomcache)
- [dispose](./FlowLabelsLayer.md#dispose)
- [getPosFromMouseEvent](./FlowLabelsLayer.md#getposfrommouseevent)
- [onBlur](./FlowLabelsLayer.md#onblur)
- [onFocus](./FlowLabelsLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowLabelsLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowLabelsLayer.md#onready)
- [onResize](./FlowLabelsLayer.md#onresize)
- [onScroll](./FlowLabelsLayer.md#onscroll)
- [onZoom](./FlowLabelsLayer.md#onzoom)
- [render](./FlowLabelsLayer.md#render)
## Constructors
### constructor
**new FlowLabelsLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### \_transitions
**\_transitions**: [`FlowNodeTransitionData`](./FlowNodeTransitionData.md)[]
监听 transition 变化
___
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### document
`Readonly` **document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### documentTransformer
`Readonly` **documentTransformer**: [`FlowDocumentTransformerEntity`](./FlowDocumentTransformerEntity.md)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### flowRenderState
`Readonly` **flowRenderState**: [`FlowRendererStateEntity`](./FlowRendererStateEntity.md)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLDivElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Overrides
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### onViewportChange
**onViewportChange**: `DebouncedFunc`\<(...`args`: `any`) => `any`\>
可视区域变化
#### Overrides
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
## Accessors
### transitions
`get` **transitions**(): [`FlowNodeTransitionData`](./FlowNodeTransitionData.md)[]
#### Returns
[`FlowNodeTransitionData`](./FlowNodeTransitionData.md)[]
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
**onReadonlyOrDisabledChange**(): `void`
监听readonly和 disabled 状态 并刷新layer, 并刷新
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onZoom
**onZoom**(`scale`): `void`
监听缩放,目前采用整体缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
**render**(): `Element`
绘制 react
#### Returns
`Element`
#### Overrides
[Layer](./Layer.md).[render](./Layer.md#render)
---
url: /auto-docs/editor/classes/FlowLinesLayer.md
---
# Class: FlowLinesLayer
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- [`Layer`](./Layer.md)
↳ **`FlowLinesLayer`**
## Table of contents
### Constructors
- [constructor](./FlowLinesLayer.md#constructor)
### Properties
- [\_transitions](./FlowLinesLayer.md#_transitions)
- [config](./FlowLinesLayer.md#config)
- [context](./FlowLinesLayer.md#context)
- [document](./FlowLinesLayer.md#document)
- [documentTransformer](./FlowLinesLayer.md#documenttransformer)
- [entityManager](./FlowLinesLayer.md#entitymanager)
- [flowRenderState](./FlowLinesLayer.md#flowrenderstate)
- [getOtherLayer](./FlowLinesLayer.md#getotherlayer)
- [isFocused](./FlowLinesLayer.md#isfocused)
- [listenGlobalEvent](./FlowLinesLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowLinesLayer.md#listenplaygroundevent)
- [node](./FlowLinesLayer.md#node)
- [observeManager](./FlowLinesLayer.md#observemanager)
- [onViewportChange](./FlowLinesLayer.md#onviewportchange)
- [options](./FlowLinesLayer.md#options)
- [pipelineNode](./FlowLinesLayer.md#pipelinenode)
- [playgroundNode](./FlowLinesLayer.md#playgroundnode)
- [reloadEntities](./FlowLinesLayer.md#reloadentities)
- [renderWithReactMemo](./FlowLinesLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowLinesLayer.md#rendererregistry)
### Accessors
- [transitions](./FlowLinesLayer.md#transitions)
- [viewBox](./FlowLinesLayer.md#viewbox)
### Methods
- [autorun](./FlowLinesLayer.md#autorun)
- [createDOMCache](./FlowLinesLayer.md#createdomcache)
- [dispose](./FlowLinesLayer.md#dispose)
- [getPosFromMouseEvent](./FlowLinesLayer.md#getposfrommouseevent)
- [onBlur](./FlowLinesLayer.md#onblur)
- [onFocus](./FlowLinesLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowLinesLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowLinesLayer.md#onready)
- [onResize](./FlowLinesLayer.md#onresize)
- [onScroll](./FlowLinesLayer.md#onscroll)
- [onZoom](./FlowLinesLayer.md#onzoom)
- [render](./FlowLinesLayer.md#render)
## Constructors
### constructor
**new FlowLinesLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### \_transitions
**\_transitions**: [`FlowNodeTransitionData`](./FlowNodeTransitionData.md)[]
监听 transition 变化
___
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### document
`Readonly` **document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### documentTransformer
`Readonly` **documentTransformer**: [`FlowDocumentTransformerEntity`](./FlowDocumentTransformerEntity.md)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### flowRenderState
`Readonly` **flowRenderState**: [`FlowRendererStateEntity`](./FlowRendererStateEntity.md)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLDivElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Overrides
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### onViewportChange
**onViewportChange**: `DebouncedFunc`\<(...`args`: `any`) => `any`\>
可视区域变化
#### Overrides
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
## Accessors
### transitions
`get` **transitions**(): [`FlowNodeTransitionData`](./FlowNodeTransitionData.md)[]
#### Returns
[`FlowNodeTransitionData`](./FlowNodeTransitionData.md)[]
___
### viewBox
`get` **viewBox**(): `string`
#### Returns
`string`
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onZoom
**onZoom**(): `void`
监听缩放
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
**render**(): `Element`
绘制 react
#### Returns
`Element`
#### Overrides
[Layer](./Layer.md).[render](./Layer.md#render)
---
url: /auto-docs/editor/classes/FlowNodeEntity-1.md
---
# Class: FlowNodeEntity
An object that performs a cleanup operation when `.dispose()` is called.
Some examples of how disposables are used:
- An event listener that removes itself when `.dispose()` is called.
- The return value from registering a provider. When `.dispose()` is called, the provider is unregistered.
## Hierarchy
- [`Entity`](./Entity-1.md)\<[`FlowNodeEntityConfig`](../interfaces/FlowNodeEntityConfig.md)\>
↳ **`FlowNodeEntity`**
## Table of contents
### Constructors
- [constructor](./FlowNodeEntity-1.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowNodeEntity-1.md#__opts_type__)
- [document](./FlowNodeEntity-1.md#document)
- [entityManager](./FlowNodeEntity-1.md#entitymanager)
- [flowNodeType](./FlowNodeEntity-1.md#flownodetype)
- [form](./FlowNodeEntity-1.md#form)
- [index](./FlowNodeEntity-1.md#index)
- [metaFromJSON](./FlowNodeEntity-1.md#metafromjson)
- [onDataChange](./FlowNodeEntity-1.md#ondatachange)
- [onEntityChange](./FlowNodeEntity-1.md#onentitychange)
- [originParent](./FlowNodeEntity-1.md#originparent)
- [preDispose](./FlowNodeEntity-1.md#predispose)
- [privateScope](./FlowNodeEntity-1.md#privatescope)
- [scope](./FlowNodeEntity-1.md#scope)
- [toDispose](./FlowNodeEntity-1.md#todispose)
- [type](./FlowNodeEntity-1.md#type)
### Accessors
- [allChildren](./FlowNodeEntity-1.md#allchildren)
- [allCollapsedChildren](./FlowNodeEntity-1.md#allcollapsedchildren)
- [blocks](./FlowNodeEntity-1.md#blocks)
- [bounds](./FlowNodeEntity-1.md#bounds)
- [children](./FlowNodeEntity-1.md#children)
- [childrenLength](./FlowNodeEntity-1.md#childrenlength)
- [collapsed](./FlowNodeEntity-1.md#collapsed)
- [collapsedChildren](./FlowNodeEntity-1.md#collapsedchildren)
- [context](./FlowNodeEntity-1.md#context)
- [disposed](./FlowNodeEntity-1.md#disposed)
- [firstChild](./FlowNodeEntity-1.md#firstchild)
- [hasChild](./FlowNodeEntity-1.md#haschild)
- [hidden](./FlowNodeEntity-1.md#hidden)
- [id](./FlowNodeEntity-1.md#id)
- [isFirst](./FlowNodeEntity-1.md#isfirst)
- [isInlineBlock](./FlowNodeEntity-1.md#isinlineblock)
- [isInlineBlocks](./FlowNodeEntity-1.md#isinlineblocks)
- [isLast](./FlowNodeEntity-1.md#islast)
- [isNodeEnd](./FlowNodeEntity-1.md#isnodeend)
- [isStart](./FlowNodeEntity-1.md#isstart)
- [isVertical](./FlowNodeEntity-1.md#isvertical)
- [lastBlock](./FlowNodeEntity-1.md#lastblock)
- [lastChild](./FlowNodeEntity-1.md#lastchild)
- [lastCollapsedChild](./FlowNodeEntity-1.md#lastcollapsedchild)
- [next](./FlowNodeEntity-1.md#next)
- [onDispose](./FlowNodeEntity-1.md#ondispose)
- [onExtInfoChange](./FlowNodeEntity-1.md#onextinfochange)
- [parent](./FlowNodeEntity-1.md#parent)
- [pre](./FlowNodeEntity-1.md#pre)
- [renderData](./FlowNodeEntity-1.md#renderdata)
- [savedInManager](./FlowNodeEntity-1.md#savedinmanager)
- [transform](./FlowNodeEntity-1.md#transform)
- [type](./FlowNodeEntity-1.md#type-1)
- [version](./FlowNodeEntity-1.md#version)
### Methods
- [addChild](./FlowNodeEntity-1.md#addchild)
- [addData](./FlowNodeEntity-1.md#adddata)
- [addInitializeData](./FlowNodeEntity-1.md#addinitializedata)
- [clearMemoGlobal](./FlowNodeEntity-1.md#clearmemoglobal)
- [clearMemoLocal](./FlowNodeEntity-1.md#clearmemolocal)
- [dispose](./FlowNodeEntity-1.md#dispose)
- [fromJSON](./FlowNodeEntity-1.md#fromjson)
- [getData](./FlowNodeEntity-1.md#getdata)
- [getDefaultDataRegistries](./FlowNodeEntity-1.md#getdefaultdataregistries)
- [getExtInfo](./FlowNodeEntity-1.md#getextinfo)
- [getJSONData](./FlowNodeEntity-1.md#getjsondata)
- [getNodeMeta](./FlowNodeEntity-1.md#getnodemeta)
- [getNodeRegister](./FlowNodeEntity-1.md#getnoderegister)
- [getNodeRegistry](./FlowNodeEntity-1.md#getnoderegistry)
- [getService](./FlowNodeEntity-1.md#getservice)
- [hasData](./FlowNodeEntity-1.md#hasdata)
- [initData](./FlowNodeEntity-1.md#initdata)
- [isExtend](./FlowNodeEntity-1.md#isextend)
- [isTypeOrExtendType](./FlowNodeEntity-1.md#istypeorextendtype)
- [memoGlobal](./FlowNodeEntity-1.md#memoglobal)
- [memoLocal](./FlowNodeEntity-1.md#memolocal)
- [openInsideCollapsed](./FlowNodeEntity-1.md#openinsidecollapsed)
- [removeData](./FlowNodeEntity-1.md#removedata)
- [reset](./FlowNodeEntity-1.md#reset)
- [toJSON](./FlowNodeEntity-1.md#tojson)
- [updateData](./FlowNodeEntity-1.md#updatedata)
- [updateExtInfo](./FlowNodeEntity-1.md#updateextinfo)
## Constructors
### constructor
**new FlowNodeEntity**(`conf`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `conf` | [`FlowNodeEntityConfig`](../interfaces/FlowNodeEntityConfig.md) |
#### Overrides
[Entity](./Entity-1.md).[constructor](./Entity-1.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`FlowNodeEntityConfig`](../interfaces/FlowNodeEntityConfig.md)
#### Inherited from
[Entity](./Entity-1.md).[__opts_type__](./Entity-1.md#__opts_type__)
___
### document
**document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
文档引用
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[Entity](./Entity-1.md).[entityManager](./Entity-1.md#entitymanager)
___
### flowNodeType
**flowNodeType**: [`FlowNodeType`](../types/FlowNodeType.md)
___
### form
**form**: `undefined` \| [`NodeFormProps`](../interfaces/NodeFormProps.md)\<`any`\>
___
### index
**index**: `number`
___
### metaFromJSON
`Optional` **metaFromJSON**: [`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[Entity](./Entity-1.md).[onDataChange](./Entity-1.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[Entity](./Entity-1.md).[onEntityChange](./Entity-1.md#onentitychange)
___
### originParent
`Optional` **originParent**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
真实的父节点,条件块在内部会创建一些空的块节点,这些块需要关联它真实的父亲节点
___
### preDispose
`Readonly` **preDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁前事件管理
#### Inherited from
[Entity](./Entity-1.md).[preDispose](./Entity-1.md#predispose)
___
### privateScope
**privateScope**: `undefined` \| [`FlowNodeScope`](../interfaces/FlowNodeScope.md)
___
### scope
**scope**: `undefined` \| [`FlowNodeScope`](../interfaces/FlowNodeScope.md)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁事件管理
#### Inherited from
[Entity](./Entity-1.md).[toDispose](./Entity-1.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[Entity](./Entity-1.md).[type](./Entity-1.md#type)
## Accessors
### allChildren
`get` **allChildren**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
获取所有子节点,包含 child 及其所有兄弟节点
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### allCollapsedChildren
`get` **allCollapsedChildren**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
获取所有收起的子节点,包含 child 及其所有兄弟节点
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### blocks
`get` **blocks**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
Get child blocks
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### bounds
`get` **bounds**(): [`Rectangle`](./Rectangle-1.md)
获取节点的位置及大小矩形
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### children
`get` **children**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
获取子节点,如果子节点收起来,则会返回 空数组
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### childrenLength
`get` **childrenLength**(): `number`
#### Returns
`number`
___
### collapsed
`get` **collapsed**(): `boolean`
#### Returns
`boolean`
`set` **collapsed**(`collapsed`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `collapsed` | `boolean` |
#### Returns
`void`
___
### collapsedChildren
`get` **collapsedChildren**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
Get child blocks
use `blocks` instead
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
**`Deprecated`**
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
Entity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
Entity.disposed
___
### firstChild
`get` **firstChild**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### hasChild
`get` **hasChild**(): `boolean`
#### Returns
`boolean`
___
### hidden
`get` **hidden**(): `boolean`
#### Returns
`boolean`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
Entity.id
___
### isFirst
`get` **isFirst**(): `boolean`
#### Returns
`boolean`
___
### isInlineBlock
`get` **isInlineBlock**(): `boolean`
水平节点
#### Returns
`boolean`
___
### isInlineBlocks
`get` **isInlineBlocks**(): `boolean`
子节点采用水平布局
#### Returns
`boolean`
___
### isLast
`get` **isLast**(): `boolean`
#### Returns
`boolean`
___
### isNodeEnd
`get` **isNodeEnd**(): `boolean`
节点结束标记
- 当前节点是结束节点
- 当前节点最后一个节点包含结束标记
- 当前节点为 inlineBlock,每一个 block 包含结束标记
由子元素确定,因此使用 memoLocal
#### Returns
`boolean`
___
### isStart
`get` **isStart**(): `boolean`
#### Returns
`boolean`
___
### isVertical
`get` **isVertical**(): `boolean`
#### Returns
`boolean`
___
### lastBlock
`get` **lastBlock**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
Get last block
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### lastChild
`get` **lastChild**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### lastCollapsedChild
`get` **lastCollapsedChild**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
use `lastBlock` instead
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### next
`get` **next**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
销毁事件
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
Entity.onDispose
___
### onExtInfoChange
`get` **onExtInfoChange**(): [`Event`](../interfaces/Event-1.md)\<\{ `newInfo`: `any` ; `oldInfo`: `any` }\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<\{ `newInfo`: `any` ; `oldInfo`: `any` }\>
___
### parent
`get` **parent**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### pre
`get` **pre**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### renderData
`get` **renderData**(): [`FlowNodeRenderData`](./FlowNodeRenderData.md)
获取渲染数据
#### Returns
[`FlowNodeRenderData`](./FlowNodeRenderData.md)
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
Entity.savedInManager
___
### transform
`get` **transform**(): [`FlowNodeTransformData`](./FlowNodeTransformData.md)
获取位置大小数据
#### Returns
[`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
Entity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
Entity.version
## Methods
### addChild
**addChild**(`child`, `index?`): `void`
添加 子节点
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `child` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) | 插入节点 |
| `index?` | `number` | - |
#### Returns
`void`
___
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[Entity](./Entity-1.md).[addData](./Entity-1.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[addInitializeData](./Entity-1.md#addinitializedata)
___
### clearMemoGlobal
**clearMemoGlobal**(): `void`
#### Returns
`void`
___
### clearMemoLocal
**clearMemoLocal**(): `void`
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[dispose](./Entity-1.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[fromJSON](./Entity-1.md#fromjson)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[Entity](./Entity-1.md).[getData](./Entity-1.md#getdata)
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[Entity](./Entity-1.md).[getDefaultDataRegistries](./Entity-1.md#getdefaultdataregistries)
___
### getExtInfo
**getExtInfo**\<`T`\>(): `T`
获取节点扩展信息
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Record`\<`string`, `any`\> = `Record`\<`string`, `any`\> |
#### Returns
`T`
___
### getJSONData
**getJSONData**(): `any`
可以重载
#### Returns
`any`
___
### getNodeMeta
**getNodeMeta**\<`M`\>(): `M` & `Required`\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\>
#### Type parameters
| Name | Type |
| :------ | :------ |
| `M` | extends [`FlowNodeMeta`](../interfaces/FlowNodeMeta.md) = [`FlowNodeMeta`](../interfaces/FlowNodeMeta.md) |
#### Returns
`M` & `Required`\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\>
___
### getNodeRegister
**getNodeRegister**\<`M`\>(): `M`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `M` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md), `M`\> = [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> |
#### Returns
`M`
**`Deprecated`**
use getNodeRegistry instead
___
### getNodeRegistry
**getNodeRegistry**\<`M`\>(): `M`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `M` | extends [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md), `M`\> = [`FlowNodeRegistry`](../interfaces/FlowNodeRegistry-1.md)\<[`FlowNodeMeta`](../interfaces/FlowNodeMeta.md)\> & \{ `meta`: [`FlowNodeMeta`](../interfaces/FlowNodeMeta.md) } |
#### Returns
`M`
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
#### Inherited from
[Entity](./Entity-1.md).[getService](./Entity-1.md#getservice)
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[Entity](./Entity-1.md).[hasData](./Entity-1.md#hasdata)
___
### initData
**initData**(`initConf`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `initConf` | [`FlowNodeInitData`](../interfaces/FlowNodeInitData.md) |
#### Returns
`void`
___
### isExtend
**isExtend**(`parentType`): `boolean`
Check node extend type
#### Parameters
| Name | Type |
| :------ | :------ |
| `parentType` | [`FlowNodeType`](../types/FlowNodeType.md) |
#### Returns
`boolean`
___
### isTypeOrExtendType
**isTypeOrExtendType**(`parentType`): `boolean`
Check node type
#### Parameters
| Name | Type |
| :------ | :------ |
| `parentType` | [`FlowNodeType`](../types/FlowNodeType.md) |
#### Returns
`boolean`
___
### memoGlobal
**memoGlobal**\<`T`\>(`key`, `fn`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `fn` | () => `T` |
#### Returns
`T`
___
### memoLocal
**memoLocal**\<`T`\>(`key`, `fn`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `fn` | () => `T` |
#### Returns
`T`
___
### openInsideCollapsed
**openInsideCollapsed**(): `void`
#### Returns
`void`
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[removeData](./Entity-1.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[reset](./Entity-1.md#reset)
___
### toJSON
**toJSON**(): [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)
生成 JSON
#### Returns
[`FlowNodeJSON`](../interfaces/FlowNodeJSON.md)
#### Overrides
[Entity](./Entity-1.md).[toJSON](./Entity-1.md#tojson)
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[Entity](./Entity-1.md).[updateData](./Entity-1.md#updatedata)
___
### updateExtInfo
**updateExtInfo**\<`T`\>(`extInfo`, `fullUpdate?`): `void`
修改节点扩展信息
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Record`\<`string`, `any`\> = `Record`\<`string`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `extInfo` | `T` |
| `fullUpdate?` | `boolean` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/FlowNodeFormData.md
---
# Class: FlowNodeFormData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)
↳ **`FlowNodeFormData`**
## Table of contents
### Constructors
- [constructor](./FlowNodeFormData.md#constructor)
### Properties
- [entity](./FlowNodeFormData.md#entity)
- [formModel](./FlowNodeFormData.md#formmodel)
- [onDataChange](./FlowNodeFormData.md#ondatachange)
- [onWillChange](./FlowNodeFormData.md#onwillchange)
- [opts](./FlowNodeFormData.md#opts)
- [toDispose](./FlowNodeFormData.md#todispose)
- [type](./FlowNodeFormData.md#type)
### Accessors
- [changeLocked](./FlowNodeFormData.md#changelocked)
- [data](./FlowNodeFormData.md#data)
- [disposed](./FlowNodeFormData.md#disposed)
- [onDispose](./FlowNodeFormData.md#ondispose)
- [type](./FlowNodeFormData.md#type-1)
- [version](./FlowNodeFormData.md#version)
### Methods
- [checkChanged](./FlowNodeFormData.md#checkchanged)
- [createForm](./FlowNodeFormData.md#createform)
- [dispose](./FlowNodeFormData.md#dispose)
- [fireChange](./FlowNodeFormData.md#firechange)
- [fireWillChange](./FlowNodeFormData.md#firewillchange)
- [fromJSON](./FlowNodeFormData.md#fromjson)
- [fullyUpdate](./FlowNodeFormData.md#fullyupdate)
- [getDefaultData](./FlowNodeFormData.md#getdefaultdata)
- [getFormModel](./FlowNodeFormData.md#getformmodel)
- [recreateForm](./FlowNodeFormData.md#recreateform)
- [toJSON](./FlowNodeFormData.md#tojson)
- [update](./FlowNodeFormData.md#update)
- [updateFormValues](./FlowNodeFormData.md#updateformvalues)
## Constructors
### constructor
**new FlowNodeFormData**(`entity`, `opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `opts` | `Options` |
#### Overrides
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### formModel
`Readonly` **formModel**: `FormModel`
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | `any` |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### createForm
**createForm**(`formMetaOrFormMetaGenerator`, `initialValue?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `formMetaOrFormMetaGenerator` | `any` |
| `initialValue?` | `any` |
#### Returns
`void`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Overrides
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): `any`
初始化数据
#### Returns
`any`
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### getFormModel
**getFormModel**\<`TFormModel`\>(): `TFormModel`
#### Type parameters
| Name |
| :------ |
| `TFormModel` |
#### Returns
`TFormModel`
___
### recreateForm
**recreateForm**(`formMetaOrFormMetaGenerator`, `initialValue?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `formMetaOrFormMetaGenerator` | `FormMetaOrFormMetaGenerator` |
| `initialValue?` | `any` |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Overrides
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `any` |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
___
### updateFormValues
**updateFormValues**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `value` | `any` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/FlowNodeRenderData.md
---
# Class: FlowNodeRenderData
节点渲染状态相关数据
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)\>
↳ **`FlowNodeRenderData`**
## Table of contents
### Constructors
- [constructor](./FlowNodeRenderData.md#constructor)
### Properties
- [entity](./FlowNodeRenderData.md#entity)
- [mouseLeaveTimeout](./FlowNodeRenderData.md#mouseleavetimeout)
- [onDataChange](./FlowNodeRenderData.md#ondatachange)
- [onExtInfoChange](./FlowNodeRenderData.md#onextinfochange)
- [onWillChange](./FlowNodeRenderData.md#onwillchange)
- [opts](./FlowNodeRenderData.md#opts)
- [toDispose](./FlowNodeRenderData.md#todispose)
- [type](./FlowNodeRenderData.md#type)
### Accessors
- [activated](./FlowNodeRenderData.md#activated)
- [addable](./FlowNodeRenderData.md#addable)
- [changeLocked](./FlowNodeRenderData.md#changelocked)
- [data](./FlowNodeRenderData.md#data)
- [disposed](./FlowNodeRenderData.md#disposed)
- [draggable](./FlowNodeRenderData.md#draggable)
- [dragging](./FlowNodeRenderData.md#dragging)
- [expandable](./FlowNodeRenderData.md#expandable)
- [expanded](./FlowNodeRenderData.md#expanded)
- [hidden](./FlowNodeRenderData.md#hidden)
- [hovered](./FlowNodeRenderData.md#hovered)
- [key](./FlowNodeRenderData.md#key)
- [lineActivated](./FlowNodeRenderData.md#lineactivated)
- [node](./FlowNodeRenderData.md#node)
- [onDispose](./FlowNodeRenderData.md#ondispose)
- [stackIndex](./FlowNodeRenderData.md#stackindex)
- [type](./FlowNodeRenderData.md#type-1)
- [version](./FlowNodeRenderData.md#version)
### Methods
- [checkChanged](./FlowNodeRenderData.md#checkchanged)
- [dispose](./FlowNodeRenderData.md#dispose)
- [fireChange](./FlowNodeRenderData.md#firechange)
- [fireWillChange](./FlowNodeRenderData.md#firewillchange)
- [fromJSON](./FlowNodeRenderData.md#fromjson)
- [fullyUpdate](./FlowNodeRenderData.md#fullyupdate)
- [getDefaultData](./FlowNodeRenderData.md#getdefaultdata)
- [getExtInfo](./FlowNodeRenderData.md#getextinfo)
- [toJSON](./FlowNodeRenderData.md#tojson)
- [toggleExpand](./FlowNodeRenderData.md#toggleexpand)
- [toggleMouseEnter](./FlowNodeRenderData.md#togglemouseenter)
- [toggleMouseLeave](./FlowNodeRenderData.md#togglemouseleave)
- [update](./FlowNodeRenderData.md#update)
- [updateExtInfo](./FlowNodeRenderData.md#updateextinfo)
## Constructors
### constructor
**new FlowNodeRenderData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Overrides
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Overrides
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### mouseLeaveTimeout
`Optional` **mouseLeaveTimeout**: `number`
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onExtInfoChange
`Readonly` **onExtInfoChange**: [`Event`](../interfaces/Event-1.md)\<\{ `newInfo`: `any` ; `oldInfo`: `any` }\>
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### activated
`get` **activated**(): `boolean`
#### Returns
`boolean`
`set` **activated**(`activated`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `activated` | `boolean` |
#### Returns
`void`
___
### addable
`get` **addable**(): `boolean`
#### Returns
`boolean`
___
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### draggable
`get` **draggable**(): `boolean`
#### Returns
`boolean`
___
### dragging
`get` **dragging**(): `boolean`
#### Returns
`boolean`
`set` **dragging**(`dragging`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `dragging` | `boolean` |
#### Returns
`void`
___
### expandable
`get` **expandable**(): `boolean`
#### Returns
`boolean`
___
### expanded
`get` **expanded**(): `boolean`
#### Returns
`boolean`
`set` **expanded**(`expanded`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `expanded` | `boolean` |
#### Returns
`void`
___
### hidden
`get` **hidden**(): `boolean`
#### Returns
`boolean`
___
### hovered
`get` **hovered**(): `boolean`
#### Returns
`boolean`
`set` **hovered**(`hovered`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `hovered` | `boolean` |
#### Returns
`void`
___
### key
`get` **key**(): `string`
#### Returns
`string`
___
### lineActivated
`get` **lineActivated**(): `boolean`
#### Returns
`boolean`
___
### node
`get` **node**(): `HTMLDivElement`
#### Returns
`HTMLDivElement`
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### stackIndex
`get` **stackIndex**(): `number`
#### Returns
`number`
`set` **stackIndex**(`index`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `index` | `number` |
#### Returns
`void`
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md) \| `Partial`\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Overrides
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)
初始化数据
#### Returns
[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### getExtInfo
**getExtInfo**(): `undefined` \| `Record`\<`string`, `any`\>
#### Returns
`undefined` \| `Record`\<`string`, `any`\>
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### toggleExpand
**toggleExpand**(): `void`
#### Returns
`void`
___
### toggleMouseEnter
**toggleMouseEnter**(`silent?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `silent?` | `boolean` |
#### Returns
`void`
___
### toggleMouseLeave
**toggleMouseLeave**(`silent?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `silent?` | `boolean` |
#### Returns
`void`
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md) \| `Partial`\<[`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md)\> \| keyof [`FlowNodeRenderSchema`](../interfaces/FlowNodeRenderSchema.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
___
### updateExtInfo
**updateExtInfo**(`info`, `fullUpdate?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `info` | `Record`\<`string`, `any`\> |
| `fullUpdate?` | `boolean` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/FlowNodeTransformData.md
---
# Class: FlowNodeTransformData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)\>
↳ **`FlowNodeTransformData`**
## Table of contents
### Constructors
- [constructor](./FlowNodeTransformData.md#constructor)
### Properties
- [entity](./FlowNodeTransformData.md#entity)
- [localDirty](./FlowNodeTransformData.md#localdirty)
- [onDataChange](./FlowNodeTransformData.md#ondatachange)
- [onWillChange](./FlowNodeTransformData.md#onwillchange)
- [opts](./FlowNodeTransformData.md#opts)
- [renderState](./FlowNodeTransformData.md#renderstate)
- [toDispose](./FlowNodeTransformData.md#todispose)
- [transform](./FlowNodeTransformData.md#transform)
- [type](./FlowNodeTransformData.md#type)
### Accessors
- [bounds](./FlowNodeTransformData.md#bounds)
- [boundsWithPadding](./FlowNodeTransformData.md#boundswithpadding)
- [changeLocked](./FlowNodeTransformData.md#changelocked)
- [children](./FlowNodeTransformData.md#children)
- [collapsed](./FlowNodeTransformData.md#collapsed)
- [data](./FlowNodeTransformData.md#data)
- [defaultInputPoint](./FlowNodeTransformData.md#defaultinputpoint)
- [defaultOutputPoint](./FlowNodeTransformData.md#defaultoutputpoint)
- [disposed](./FlowNodeTransformData.md#disposed)
- [firstChild](./FlowNodeTransformData.md#firstchild)
- [inlineSpacingAfter](./FlowNodeTransformData.md#inlinespacingafter)
- [inlineSpacingPre](./FlowNodeTransformData.md#inlinespacingpre)
- [inputPoint](./FlowNodeTransformData.md#inputpoint)
- [isContainer](./FlowNodeTransformData.md#iscontainer)
- [isFirst](./FlowNodeTransformData.md#isfirst)
- [isLast](./FlowNodeTransformData.md#islast)
- [key](./FlowNodeTransformData.md#key)
- [lastChild](./FlowNodeTransformData.md#lastchild)
- [localBounds](./FlowNodeTransformData.md#localbounds)
- [minInlineBlockSpacing](./FlowNodeTransformData.md#mininlineblockspacing)
- [next](./FlowNodeTransformData.md#next)
- [onDispose](./FlowNodeTransformData.md#ondispose)
- [origin](./FlowNodeTransformData.md#origin)
- [originDeltaX](./FlowNodeTransformData.md#origindeltax)
- [originDeltaY](./FlowNodeTransformData.md#origindeltay)
- [originParent](./FlowNodeTransformData.md#originparent)
- [outputPoint](./FlowNodeTransformData.md#outputpoint)
- [padding](./FlowNodeTransformData.md#padding)
- [parent](./FlowNodeTransformData.md#parent)
- [position](./FlowNodeTransformData.md#position)
- [pre](./FlowNodeTransformData.md#pre)
- [size](./FlowNodeTransformData.md#size)
- [spacing](./FlowNodeTransformData.md#spacing)
- [type](./FlowNodeTransformData.md#type-1)
- [version](./FlowNodeTransformData.md#version)
### Methods
- [checkChanged](./FlowNodeTransformData.md#checkchanged)
- [dispose](./FlowNodeTransformData.md#dispose)
- [fireChange](./FlowNodeTransformData.md#firechange)
- [fireWillChange](./FlowNodeTransformData.md#firewillchange)
- [fromJSON](./FlowNodeTransformData.md#fromjson)
- [fullyUpdate](./FlowNodeTransformData.md#fullyupdate)
- [getDefaultData](./FlowNodeTransformData.md#getdefaultdata)
- [setParentTransform](./FlowNodeTransformData.md#setparenttransform)
- [toJSON](./FlowNodeTransformData.md#tojson)
- [update](./FlowNodeTransformData.md#update)
## Constructors
### constructor
**new FlowNodeTransformData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Overrides
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Overrides
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### localDirty
**localDirty**: `boolean`
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### renderState
**renderState**: [`FlowNodeRenderData`](./FlowNodeRenderData.md)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### transform
**transform**: [`TransformData`](./TransformData-1.md)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### bounds
`get` **bounds**(): [`Rectangle`](./Rectangle-1.md)
绝对坐标 bbox, 不包含自身的 spacing(marginBottom), 但是包含 inlineSpacing 和 子节点的 spacing
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### boundsWithPadding
`get` **boundsWithPadding**(): [`Rectangle`](./Rectangle-1.md)
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### children
`get` **children**(): [`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
#### Returns
[`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
___
### collapsed
`get` **collapsed**(): `boolean`
获取节点是否展开
#### Returns
`boolean`
`set` **collapsed**(`collapsed`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `collapsed` | `boolean` |
#### Returns
`void`
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### defaultInputPoint
`get` **defaultInputPoint**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### defaultOutputPoint
`get` **defaultOutputPoint**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### firstChild
`get` **firstChild**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### inlineSpacingAfter
`get` **inlineSpacingAfter**(): `number`
#### Returns
`number`
___
### inlineSpacingPre
`get` **inlineSpacingPre**(): `number`
#### Returns
`number`
___
### inputPoint
`get` **inputPoint**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### isContainer
`get` **isContainer**(): `boolean`
#### Returns
`boolean`
___
### isFirst
`get` **isFirst**(): `boolean`
#### Returns
`boolean`
___
### isLast
`get` **isLast**(): `boolean`
#### Returns
`boolean`
___
### key
`get` **key**(): `string`
#### Returns
`string`
___
### lastChild
`get` **lastChild**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### localBounds
`get` **localBounds**(): [`Rectangle`](./Rectangle-1.md)
相对坐标 bbox, 这里的 localBounds 会加入 padding 一起算
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### minInlineBlockSpacing
`get` **minInlineBlockSpacing**(): `number`
#### Returns
`number`
___
### next
`get` **next**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
下一个节点的 transform 数据
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### origin
`get` **origin**(): [`OriginSchema`](../interfaces/OriginSchema.md)
#### Returns
[`OriginSchema`](../interfaces/OriginSchema.md)
___
### originDeltaX
`get` **originDeltaX**(): `number`
原点的最左偏移
#### Returns
`number`
___
### originDeltaY
`get` **originDeltaY**(): `number`
原点 y 轴偏移
#### Returns
`number`
___
### originParent
`get` **originParent**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### outputPoint
`get` **outputPoint**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### padding
`get` **padding**(): [`PaddingSchema`](../interfaces/PaddingSchema-1.md)
#### Returns
[`PaddingSchema`](../interfaces/PaddingSchema-1.md)
___
### parent
`get` **parent**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
parent 节点的 transform 数据
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### position
`get` **position**(): [`PositionSchema`](../interfaces/PositionSchema.md)
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
`set` **position**(`position`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `position` | [`PositionSchema`](../interfaces/PositionSchema.md) |
#### Returns
`void`
___
### pre
`get` **pre**(): `undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
上一个节点的 transform 数据
#### Returns
`undefined` \| [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### size
`get` **size**(): [`SizeSchema`](../interfaces/SizeSchema-1.md)
获取节点的大小
#### Returns
[`SizeSchema`](../interfaces/SizeSchema-1.md)
`set` **size**(`size`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`SizeSchema`](../interfaces/SizeSchema-1.md) |
#### Returns
`void`
___
### spacing
`get` **spacing**(): `number`
#### Returns
`number`
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md) \| `Partial`\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)
初始化数据
#### Returns
[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### setParentTransform
**setParentTransform**(`transform?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `transform?` | [`FlowNodeTransformData`](./FlowNodeTransformData.md) |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | ``"size"`` \| [`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md) \| `Partial`\<[`FlowNodeTransformSchema`](../interfaces/FlowNodeTransformSchema.md)\> |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/editor/classes/FlowNodeTransitionData.md
---
# Class: FlowNodeTransitionData
实体的数据块
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)\>
↳ **`FlowNodeTransitionData`**
## Table of contents
### Constructors
- [constructor](./FlowNodeTransitionData.md#constructor)
### Properties
- [entity](./FlowNodeTransitionData.md#entity)
- [onDataChange](./FlowNodeTransitionData.md#ondatachange)
- [onWillChange](./FlowNodeTransitionData.md#onwillchange)
- [opts](./FlowNodeTransitionData.md#opts)
- [renderData](./FlowNodeTransitionData.md#renderdata)
- [toDispose](./FlowNodeTransitionData.md#todispose)
- [transform](./FlowNodeTransitionData.md#transform)
- [type](./FlowNodeTransitionData.md#type)
### Accessors
- [changeLocked](./FlowNodeTransitionData.md#changelocked)
- [collapsed](./FlowNodeTransitionData.md#collapsed)
- [data](./FlowNodeTransitionData.md#data)
- [disposed](./FlowNodeTransitionData.md#disposed)
- [isNodeEnd](./FlowNodeTransitionData.md#isnodeend)
- [labels](./FlowNodeTransitionData.md#labels)
- [lines](./FlowNodeTransitionData.md#lines)
- [onDispose](./FlowNodeTransitionData.md#ondispose)
- [type](./FlowNodeTransitionData.md#type-1)
- [version](./FlowNodeTransitionData.md#version)
### Methods
- [checkChanged](./FlowNodeTransitionData.md#checkchanged)
- [dispose](./FlowNodeTransitionData.md#dispose)
- [fireChange](./FlowNodeTransitionData.md#firechange)
- [fireWillChange](./FlowNodeTransitionData.md#firewillchange)
- [formatLabels](./FlowNodeTransitionData.md#formatlabels)
- [formatLines](./FlowNodeTransitionData.md#formatlines)
- [fromJSON](./FlowNodeTransitionData.md#fromjson)
- [fullyUpdate](./FlowNodeTransitionData.md#fullyupdate)
- [getDefaultData](./FlowNodeTransitionData.md#getdefaultdata)
- [toJSON](./FlowNodeTransitionData.md#tojson)
- [update](./FlowNodeTransitionData.md#update)
## Constructors
### constructor
**new FlowNodeTransitionData**(`entity`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Overrides
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Overrides
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### renderData
**renderData**: [`FlowNodeRenderData`](./FlowNodeRenderData.md)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### transform
**transform**: [`FlowNodeTransformData`](./FlowNodeTransformData.md)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### collapsed
`get` **collapsed**(): `boolean`
#### Returns
`boolean`
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### isNodeEnd
`get` **isNodeEnd**(): `boolean`
#### Returns
`boolean`
___
### labels
`get` **labels**(): [`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[]
#### Returns
[`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[]
___
### lines
`get` **lines**(): [`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[]
#### Returns
[`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[]
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md) \| `Partial`\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### formatLabels
**formatLabels**(`labels`): [`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `labels` | [`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[] |
#### Returns
[`FlowTransitionLabel`](../interfaces/FlowTransitionLabel.md)[]
___
### formatLines
**formatLines**(`lines`): [`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `lines` | [`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[] |
#### Returns
[`FlowTransitionLine`](../interfaces/FlowTransitionLine.md)[]
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)
初始化数据
#### Returns
[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md) \| `Partial`\<[`FlowNodeTransitionSchema`](../interfaces/FlowNodeTransitionSchema.md)\> |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/editor/classes/FlowNodeVariableData.md
---
# Class: FlowNodeVariableData
Manages variable data for a flow node, including public and private scopes.
## Hierarchy
- [`EntityData`](./EntityData.md)
↳ **`FlowNodeVariableData`**
## Table of contents
### Constructors
- [constructor](./FlowNodeVariableData.md#constructor)
### Properties
- [entity](./FlowNodeVariableData.md#entity)
- [onDataChange](./FlowNodeVariableData.md#ondatachange)
- [onWillChange](./FlowNodeVariableData.md#onwillchange)
- [opts](./FlowNodeVariableData.md#opts)
- [toDispose](./FlowNodeVariableData.md#todispose)
- [variableEngine](./FlowNodeVariableData.md#variableengine)
- [type](./FlowNodeVariableData.md#type)
### Accessors
- [allScopes](./FlowNodeVariableData.md#allscopes)
- [changeLocked](./FlowNodeVariableData.md#changelocked)
- [data](./FlowNodeVariableData.md#data)
- [disposed](./FlowNodeVariableData.md#disposed)
- [onDispose](./FlowNodeVariableData.md#ondispose)
- [private](./FlowNodeVariableData.md#private)
- [public](./FlowNodeVariableData.md#public)
- [type](./FlowNodeVariableData.md#type-1)
- [version](./FlowNodeVariableData.md#version)
### Methods
- [checkChanged](./FlowNodeVariableData.md#checkchanged)
- [clearPrivateVar](./FlowNodeVariableData.md#clearprivatevar)
- [clearVar](./FlowNodeVariableData.md#clearvar)
- [dispose](./FlowNodeVariableData.md#dispose)
- [fireChange](./FlowNodeVariableData.md#firechange)
- [fireWillChange](./FlowNodeVariableData.md#firewillchange)
- [fromJSON](./FlowNodeVariableData.md#fromjson)
- [fullyUpdate](./FlowNodeVariableData.md#fullyupdate)
- [getByKeyPath](./FlowNodeVariableData.md#getbykeypath)
- [getByKeyPathInPrivate](./FlowNodeVariableData.md#getbykeypathinprivate)
- [getDefaultData](./FlowNodeVariableData.md#getdefaultdata)
- [getPrivateVar](./FlowNodeVariableData.md#getprivatevar)
- [getVar](./FlowNodeVariableData.md#getvar)
- [initPrivate](./FlowNodeVariableData.md#initprivate)
- [setPrivateVar](./FlowNodeVariableData.md#setprivatevar)
- [setVar](./FlowNodeVariableData.md#setvar)
- [toJSON](./FlowNodeVariableData.md#tojson)
- [update](./FlowNodeVariableData.md#update)
## Constructors
### constructor
**new FlowNodeVariableData**(`entity`, `opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `opts` | `Options` |
#### Overrides
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Overrides
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Readonly` **opts**: `Options`
#### Overrides
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### variableEngine
`Readonly` **variableEngine**: [`VariableEngine`](./VariableEngine.md)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### allScopes
`get` **allScopes**(): [`FlowNodeScope`](../interfaces/FlowNodeScope.md)[]
An array containing all scopes (public and private) of the node.
#### Returns
[`FlowNodeScope`](../interfaces/FlowNodeScope.md)[]
___
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### private
`get` **private**(): `undefined` \| [`FlowNodeScope`](../interfaces/FlowNodeScope.md)
The private scope of the node.
#### Returns
`undefined` \| [`FlowNodeScope`](../interfaces/FlowNodeScope.md)
___
### public
`get` **public**(): [`FlowNodeScope`](../interfaces/FlowNodeScope.md)
The public scope of the node.
#### Returns
[`FlowNodeScope`](../interfaces/FlowNodeScope.md)
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | `any` |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### clearPrivateVar
**clearPrivateVar**(`key?`): `undefined` \| `void`
Clears a variable from the private AST (Abstract Syntax Tree) by key.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key?` | `string` | The key of the variable to clear. Defaults to 'outputs'. |
#### Returns
`undefined` \| `void`
The updated AST node.
___
### clearVar
**clearVar**(`key?`): `void`
Clears a variable from the public AST (Abstract Syntax Tree) by key.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key?` | `string` | The key of the variable to clear. Defaults to 'outputs'. |
#### Returns
`void`
The updated AST node.
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getByKeyPath
**getByKeyPath**(`keyPath`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Find a variable field by key path in the public scope by scope chain.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath` | `string`[] | The key path of the variable field. |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
The variable field, or undefined if not found.
___
### getByKeyPathInPrivate
**getByKeyPathInPrivate**(`keyPath`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Find a variable field by key path in the private scope by scope chain.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath` | `string`[] | The key path of the variable field. |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
The variable field, or undefined if not found.
___
### getDefaultData
**getDefaultData**(): `Object`
初始化数据
#### Returns
`Object`
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### getPrivateVar
**getPrivateVar**(`key?`): `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
Retrieves a variable from the private AST (Abstract Syntax Tree) by key.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key?` | `string` | The key of the variable to retrieve. Defaults to 'outputs'. |
#### Returns
`undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The value of the variable, or undefined if not found.
___
### getVar
**getVar**(`key?`): `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
Retrieves a variable from the public AST (Abstract Syntax Tree) by key.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key?` | `string` | The key of the variable to retrieve. Defaults to 'outputs'. |
#### Returns
`undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The value of the variable, or undefined if not found.
___
### initPrivate
**initPrivate**(): [`FlowNodeScope`](../interfaces/FlowNodeScope.md)
Initializes and returns the private scope for the node.
If the private scope already exists, it returns the existing one.
#### Returns
[`FlowNodeScope`](../interfaces/FlowNodeScope.md)
The private scope of the node.
___
### setPrivateVar
**setPrivateVar**(`key`, `json`): [`ASTNode`](./ASTNode.md)\<`any`\>
Sets a variable in the private AST (Abstract Syntax Tree) with the given key and JSON value.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key` | `string` | The key under which the variable will be stored. |
| `json` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) | The JSON value to store. |
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>
The updated AST node.
**setPrivateVar**(`json`): [`ASTNode`](./ASTNode.md)\<`any`\>
Sets a variable in the private AST (Abstract Syntax Tree) with the default key 'outputs'.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) | The JSON value to store. |
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>
The updated AST node.
___
### setVar
**setVar**(`key`, `json`): [`ASTNode`](./ASTNode.md)\<`any`\>
Sets a variable in the public AST (Abstract Syntax Tree) with the given key and JSON value.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key` | `string` | The key under which the variable will be stored. |
| `json` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) | The JSON value to store. |
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>
The updated AST node.
**setVar**(`json`): [`ASTNode`](./ASTNode.md)\<`any`\>
Sets a variable in the public AST (Abstract Syntax Tree) with the default key 'outputs'.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) | The JSON value to store. |
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>
The updated AST node.
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `any` |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/editor/classes/FlowNodesContentLayer.md
---
# Class: FlowNodesContentLayer
渲染节点内容
## Hierarchy
- [`Layer`](./Layer.md)
↳ **`FlowNodesContentLayer`**
## Table of contents
### Constructors
- [constructor](./FlowNodesContentLayer.md#constructor)
### Properties
- [\_renderStates](./FlowNodesContentLayer.md#_renderstates)
- [config](./FlowNodesContentLayer.md#config)
- [context](./FlowNodesContentLayer.md#context)
- [document](./FlowNodesContentLayer.md#document)
- [documentTransformer](./FlowNodesContentLayer.md#documenttransformer)
- [entityManager](./FlowNodesContentLayer.md#entitymanager)
- [getOtherLayer](./FlowNodesContentLayer.md#getotherlayer)
- [isFocused](./FlowNodesContentLayer.md#isfocused)
- [listenGlobalEvent](./FlowNodesContentLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowNodesContentLayer.md#listenplaygroundevent)
- [node](./FlowNodesContentLayer.md#node)
- [observeManager](./FlowNodesContentLayer.md#observemanager)
- [options](./FlowNodesContentLayer.md#options)
- [pipelineNode](./FlowNodesContentLayer.md#pipelinenode)
- [playgroundNode](./FlowNodesContentLayer.md#playgroundnode)
- [reloadEntities](./FlowNodesContentLayer.md#reloadentities)
- [renderWithReactMemo](./FlowNodesContentLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowNodesContentLayer.md#rendererregistry)
### Accessors
- [renderStatesVisible](./FlowNodesContentLayer.md#renderstatesvisible)
### Methods
- [autorun](./FlowNodesContentLayer.md#autorun)
- [createDOMCache](./FlowNodesContentLayer.md#createdomcache)
- [dispose](./FlowNodesContentLayer.md#dispose)
- [getPortalRenderer](./FlowNodesContentLayer.md#getportalrenderer)
- [getPortals](./FlowNodesContentLayer.md#getportals)
- [getPosFromMouseEvent](./FlowNodesContentLayer.md#getposfrommouseevent)
- [onBlur](./FlowNodesContentLayer.md#onblur)
- [onFocus](./FlowNodesContentLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowNodesContentLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowNodesContentLayer.md#onready)
- [onResize](./FlowNodesContentLayer.md#onresize)
- [onScroll](./FlowNodesContentLayer.md#onscroll)
- [onViewportChange](./FlowNodesContentLayer.md#onviewportchange)
- [onZoom](./FlowNodesContentLayer.md#onzoom)
- [render](./FlowNodesContentLayer.md#render)
## Constructors
### constructor
**new FlowNodesContentLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### \_renderStates
**\_renderStates**: [`FlowNodeRenderData`](./FlowNodeRenderData.md)[]
___
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### document
`Readonly` **document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### documentTransformer
`Readonly` **documentTransformer**: [`FlowDocumentTransformerEntity`](./FlowDocumentTransformerEntity.md)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLDivElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Overrides
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
## Accessors
### renderStatesVisible
`get` **renderStatesVisible**(): [`FlowNodeRenderData`](./FlowNodeRenderData.md)[]
#### Returns
[`FlowNodeRenderData`](./FlowNodeRenderData.md)[]
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPortalRenderer
**getPortalRenderer**(`data`): (`props`: `any`) => `Element`
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | [`FlowNodeRenderData`](./FlowNodeRenderData.md) |
#### Returns
`fn`
(`props`): `Element`
##### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `any` |
##### Returns
`Element`
___
### getPortals
**getPortals**(): `NodePortal`[]
#### Returns
`NodePortal`[]
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
**onReadonlyOrDisabledChange**(): `void`
监听readonly和 disabled 状态 并刷新layer, 并刷新节点
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
**onZoom**(`scale`): `void`
监听缩放,目前采用整体缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
**render**(): `Element`
绘制 react
#### Returns
`Element`
#### Overrides
[Layer](./Layer.md).[render](./Layer.md#render)
---
url: /auto-docs/editor/classes/FlowNodesTransformLayer.md
---
# Class: FlowNodesTransformLayer
渲染节点位置
## Hierarchy
- [`Layer`](./Layer.md)\<[`FlowNodesTransformLayerOptions`](../interfaces/FlowNodesTransformLayerOptions.md)\>
↳ **`FlowNodesTransformLayer`**
## Table of contents
### Constructors
- [constructor](./FlowNodesTransformLayer.md#constructor)
### Properties
- [\_transforms](./FlowNodesTransformLayer.md#_transforms)
- [config](./FlowNodesTransformLayer.md#config)
- [context](./FlowNodesTransformLayer.md#context)
- [document](./FlowNodesTransformLayer.md#document)
- [documentTransformer](./FlowNodesTransformLayer.md#documenttransformer)
- [entityManager](./FlowNodesTransformLayer.md#entitymanager)
- [getOtherLayer](./FlowNodesTransformLayer.md#getotherlayer)
- [isFocused](./FlowNodesTransformLayer.md#isfocused)
- [listenGlobalEvent](./FlowNodesTransformLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowNodesTransformLayer.md#listenplaygroundevent)
- [node](./FlowNodesTransformLayer.md#node)
- [observeManager](./FlowNodesTransformLayer.md#observemanager)
- [options](./FlowNodesTransformLayer.md#options)
- [pipelineNode](./FlowNodesTransformLayer.md#pipelinenode)
- [playgroundNode](./FlowNodesTransformLayer.md#playgroundnode)
- [reloadEntities](./FlowNodesTransformLayer.md#reloadentities)
- [renderWithReactMemo](./FlowNodesTransformLayer.md#renderwithreactmemo)
- [resizeObserver](./FlowNodesTransformLayer.md#resizeobserver)
### Accessors
- [transformVisibles](./FlowNodesTransformLayer.md#transformvisibles)
- [visibeBounds](./FlowNodesTransformLayer.md#visibebounds)
### Methods
- [autorun](./FlowNodesTransformLayer.md#autorun)
- [createDOMCache](./FlowNodesTransformLayer.md#createdomcache)
- [dispose](./FlowNodesTransformLayer.md#dispose)
- [getPosFromMouseEvent](./FlowNodesTransformLayer.md#getposfrommouseevent)
- [onBlur](./FlowNodesTransformLayer.md#onblur)
- [onFocus](./FlowNodesTransformLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowNodesTransformLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowNodesTransformLayer.md#onready)
- [onResize](./FlowNodesTransformLayer.md#onresize)
- [onScroll](./FlowNodesTransformLayer.md#onscroll)
- [onViewportChange](./FlowNodesTransformLayer.md#onviewportchange)
- [onZoom](./FlowNodesTransformLayer.md#onzoom)
- [render](./FlowNodesTransformLayer.md#render)
- [updateNodesBounds](./FlowNodesTransformLayer.md#updatenodesbounds)
## Constructors
### constructor
**new FlowNodesTransformLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### \_transforms
**\_transforms**: [`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
___
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### document
`Readonly` **document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### documentTransformer
`Readonly` **documentTransformer**: [`FlowDocumentTransformerEntity`](./FlowDocumentTransformerEntity.md)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLDivElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Overrides
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: [`FlowNodesTransformLayerOptions`](../interfaces/FlowNodesTransformLayerOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### resizeObserver
`Readonly` **resizeObserver**: `FlowRendererResizeObserver`
## Accessors
### transformVisibles
`get` **transformVisibles**(): [`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
#### Returns
[`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
___
### visibeBounds
`get` **visibeBounds**(): [`Rectangle`](./Rectangle-1.md)[]
#### Returns
[`Rectangle`](./Rectangle-1.md)[]
## Methods
### autorun
**autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
**onZoom**(`scale`): `void`
监听缩放,目前采用整体缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
[Layer](./Layer.md).[render](./Layer.md#render)
___
### updateNodesBounds
**updateNodesBounds**(): `void`
更新节点的 bounds 数据
#### Returns
`void`
---
url: /auto-docs/editor/classes/FlowOperationBaseServiceImpl.md
---
# Class: FlowOperationBaseServiceImpl
操作服务
## Implements
- [`FlowOperationBaseService`](../variables/FlowOperationBaseService-1.md)
## Table of contents
### Constructors
- [constructor](./FlowOperationBaseServiceImpl.md#constructor)
### Properties
- [onNodeAdd](./FlowOperationBaseServiceImpl.md#onnodeadd)
- [onNodeMove](./FlowOperationBaseServiceImpl.md#onnodemove)
### Methods
- [addBlock](./FlowOperationBaseServiceImpl.md#addblock)
- [addFromNode](./FlowOperationBaseServiceImpl.md#addfromnode)
- [addNode](./FlowOperationBaseServiceImpl.md#addnode)
- [apply](./FlowOperationBaseServiceImpl.md#apply)
- [deleteNode](./FlowOperationBaseServiceImpl.md#deletenode)
- [deleteNodes](./FlowOperationBaseServiceImpl.md#deletenodes)
- [dispose](./FlowOperationBaseServiceImpl.md#dispose)
- [dragNodes](./FlowOperationBaseServiceImpl.md#dragnodes)
- [moveNode](./FlowOperationBaseServiceImpl.md#movenode)
- [transact](./FlowOperationBaseServiceImpl.md#transact)
## Constructors
### constructor
**new FlowOperationBaseServiceImpl**()
## Properties
### onNodeAdd
`Readonly` **onNodeAdd**: [`Event`](../interfaces/Event-1.md)\<[`OnNodeAddEvent`](../interfaces/OnNodeAddEvent.md)\>
#### Implementation of
FlowOperationBaseService.onNodeAdd
___
### onNodeMove
`Readonly` **onNodeMove**: [`Event`](../interfaces/Event-1.md)\<[`OnNodeMoveEvent`](../interfaces/OnNodeMoveEvent.md)\>
#### Implementation of
FlowOperationBaseService.onNodeMove
## Methods
### addBlock
**addBlock**(`target`, `blockJSON`, `config?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) |
| `blockJSON` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
| `config?` | [`AddBlockConfig`](../interfaces/AddBlockConfig.md) |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Implementation of
FlowOperationBaseService.addBlock
___
### addFromNode
**addFromNode**(`fromNode`, `nodeJSON`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fromNode` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) |
| `nodeJSON` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Implementation of
FlowOperationBaseService.addFromNode
___
### addNode
**addNode**(`nodeJSON`, `config?`): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeJSON` | [`FlowNodeJSON`](../interfaces/FlowNodeJSON.md) |
| `config?` | [`AddNodeConfig`](../types/AddNodeConfig.md) |
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Implementation of
FlowOperationBaseService.addNode
___
### apply
**apply**(`operation`): `any`
执行操作
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `operation` | [`FlowOperation`](../types/FlowOperation.md) | 可序列化的操作 |
#### Returns
`any`
操作返回
#### Implementation of
FlowOperationBaseService.apply
___
### deleteNode
**deleteNode**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) |
#### Returns
`void`
#### Implementation of
FlowOperationBaseService.deleteNode
___
### deleteNodes
**deleteNodes**(`nodes`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md)[] |
#### Returns
`void`
#### Implementation of
FlowOperationBaseService.deleteNodes
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
FlowOperationBaseService.dispose
___
### dragNodes
**dragNodes**(`param0`): `any`
拖拽节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `param0` | `Object` |
| `param0.dropNode` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
| `param0.nodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`any`
#### Implementation of
FlowOperationBaseService.dragNodes
___
### moveNode
**moveNode**(`node`, `config?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntityOrId`](../types/FlowNodeEntityOrId.md) |
| `config?` | [`MoveNodeConfig`](../interfaces/MoveNodeConfig.md) |
#### Returns
`void`
#### Implementation of
FlowOperationBaseService.moveNode
___
### transact
**transact**(`transaction`): `void`
事务执行
#### Parameters
| Name | Type |
| :------ | :------ |
| `transaction` | () => `void` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/FlowRendererRegistry.md
---
# Class: FlowRendererRegistry
## Table of contents
### Constructors
- [constructor](./FlowRendererRegistry.md#constructor)
### Properties
- [pipeline](./FlowRendererRegistry.md#pipeline)
### Methods
- [getRendererComponent](./FlowRendererRegistry.md#getrenderercomponent)
- [getText](./FlowRendererRegistry.md#gettext)
- [init](./FlowRendererRegistry.md#init)
- [registerLayer](./FlowRendererRegistry.md#registerlayer)
- [registerLayers](./FlowRendererRegistry.md#registerlayers)
- [registerReactComponent](./FlowRendererRegistry.md#registerreactcomponent)
- [registerRendererComponents](./FlowRendererRegistry.md#registerrenderercomponents)
- [registerText](./FlowRendererRegistry.md#registertext)
- [tryToGetRendererComponent](./FlowRendererRegistry.md#trytogetrenderercomponent)
## Constructors
### constructor
**new FlowRendererRegistry**()
## Properties
### pipeline
`Readonly` **pipeline**: [`PipelineRegistry`](./PipelineRegistry.md)
## Methods
### getRendererComponent
**getRendererComponent**(`renderKey`): [`FlowRendererComponent`](../interfaces/FlowRendererComponent.md)
TODO: support memo
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderKey` | `string` |
#### Returns
[`FlowRendererComponent`](../interfaces/FlowRendererComponent.md)
___
### getText
**getText**(`textKey`): `undefined` \| `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `textKey` | `string` |
#### Returns
`undefined` \| `string`
___
### init
**init**(): `void`
#### Returns
`void`
___
### registerLayer
**registerLayer**\<`P`\>(`layerRegistry`, `options?`): `void`
根据配置注册画布
#### Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`Layer`](./Layer.md)\<`any`, `any`, `P`\> = [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<[`Layer`](./Layer.md)\<`any`, `any`\>\> |
| `options?` | `P`[``"options"``] |
#### Returns
`void`
___
### registerLayers
**registerLayers**(`...layerRegistries`): `void`
注册画布层
#### Parameters
| Name | Type |
| :------ | :------ |
| `...layerRegistries` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<[`Layer`](./Layer.md)\<`any`, `any`\>\>[] |
#### Returns
`void`
___
### registerReactComponent
**registerReactComponent**(`renderKey`, `renderer`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderKey` | `string` |
| `renderer` | (`props`: `any`) => `any` |
#### Returns
`void`
___
### registerRendererComponents
**registerRendererComponents**(`renderKey`, `comp`): `void`
注册 组件数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderKey` | `string` |
| `comp` | [`FlowRendererComponent`](../interfaces/FlowRendererComponent.md) |
#### Returns
`void`
___
### registerText
**registerText**(`configs`): `void`
注册文案
#### Parameters
| Name | Type |
| :------ | :------ |
| `configs` | `Record`\<`string`, `string`\> |
#### Returns
`void`
___
### tryToGetRendererComponent
**tryToGetRendererComponent**(`renderKey`): `undefined` \| [`FlowRendererComponent`](../interfaces/FlowRendererComponent.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderKey` | `string` |
#### Returns
`undefined` \| [`FlowRendererComponent`](../interfaces/FlowRendererComponent.md)
---
url: /auto-docs/editor/classes/FlowRendererStateEntity.md
---
# Class: FlowRendererStateEntity
渲染相关的全局状态管理
## Hierarchy
- [`ConfigEntity`](./ConfigEntity.md)\<`FlowRendererState`, `FlowRendererStateEntityConfig`\>
↳ **`FlowRendererStateEntity`**
## Table of contents
### Constructors
- [constructor](./FlowRendererStateEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowRendererStateEntity.md#__opts_type__)
- [entityManager](./FlowRendererStateEntity.md#entitymanager)
- [onDataChange](./FlowRendererStateEntity.md#ondatachange)
- [onEntityChange](./FlowRendererStateEntity.md#onentitychange)
- [preDispose](./FlowRendererStateEntity.md#predispose)
- [toDispose](./FlowRendererStateEntity.md#todispose)
- [type](./FlowRendererStateEntity.md#type)
### Accessors
- [config](./FlowRendererStateEntity.md#config)
- [context](./FlowRendererStateEntity.md#context)
- [disposed](./FlowRendererStateEntity.md#disposed)
- [dragging](./FlowRendererStateEntity.md#dragging)
- [id](./FlowRendererStateEntity.md#id)
- [isBranch](./FlowRendererStateEntity.md#isbranch)
- [onDispose](./FlowRendererStateEntity.md#ondispose)
- [savedInManager](./FlowRendererStateEntity.md#savedinmanager)
- [type](./FlowRendererStateEntity.md#type-1)
- [version](./FlowRendererStateEntity.md#version)
### Methods
- [addData](./FlowRendererStateEntity.md#adddata)
- [addInitializeData](./FlowRendererStateEntity.md#addinitializedata)
- [checkChanged](./FlowRendererStateEntity.md#checkchanged)
- [dispose](./FlowRendererStateEntity.md#dispose)
- [fromJSON](./FlowRendererStateEntity.md#fromjson)
- [getData](./FlowRendererStateEntity.md#getdata)
- [getDefaultConfig](./FlowRendererStateEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./FlowRendererStateEntity.md#getdefaultdataregistries)
- [getDragEntities](./FlowRendererStateEntity.md#getdragentities)
- [getDragLabelSide](./FlowRendererStateEntity.md#getdraglabelside)
- [getDragStartEntity](./FlowRendererStateEntity.md#getdragstartentity)
- [getNodeDroppingId](./FlowRendererStateEntity.md#getnodedroppingid)
- [getNodeHovered](./FlowRendererStateEntity.md#getnodehovered)
- [getService](./FlowRendererStateEntity.md#getservice)
- [hasData](./FlowRendererStateEntity.md#hasdata)
- [onConfigChanged](./FlowRendererStateEntity.md#onconfigchanged)
- [onNodeHoveredChange](./FlowRendererStateEntity.md#onnodehoveredchange)
- [removeData](./FlowRendererStateEntity.md#removedata)
- [reset](./FlowRendererStateEntity.md#reset)
- [setDragEntities](./FlowRendererStateEntity.md#setdragentities)
- [setDragLabelSide](./FlowRendererStateEntity.md#setdraglabelside)
- [setDragStartEntity](./FlowRendererStateEntity.md#setdragstartentity)
- [setDragging](./FlowRendererStateEntity.md#setdragging)
- [setIsBranch](./FlowRendererStateEntity.md#setisbranch)
- [setNodeDroppingId](./FlowRendererStateEntity.md#setnodedroppingid)
- [setNodeHovered](./FlowRendererStateEntity.md#setnodehovered)
- [toJSON](./FlowRendererStateEntity.md#tojson)
- [updateConfig](./FlowRendererStateEntity.md#updateconfig)
- [updateData](./FlowRendererStateEntity.md#updatedata)
## Constructors
### constructor
**new FlowRendererStateEntity**(`conf`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `conf` | `FlowRendererStateEntityConfig` |
#### Overrides
[ConfigEntity](./ConfigEntity.md).[constructor](./ConfigEntity.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: `FlowRendererStateEntityConfig`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[__opts_type__](./ConfigEntity.md#__opts_type__)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[entityManager](./ConfigEntity.md#entitymanager)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onDataChange](./ConfigEntity.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onEntityChange](./ConfigEntity.md#onentitychange)
___
### preDispose
`Readonly` **preDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁前事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[preDispose](./ConfigEntity.md#predispose)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toDispose](./ConfigEntity.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[type](./ConfigEntity.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### dragging
`get` **dragging**(): `undefined` \| `boolean`
#### Returns
`undefined` \| `boolean`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### isBranch
`get` **isBranch**(): `undefined` \| `boolean`
#### Returns
`undefined` \| `boolean`
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
销毁事件
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addData](./ConfigEntity.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addInitializeData](./ConfigEntity.md#addinitializedata)
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `FlowRendererState` |
| `newData` | `Partial`\<`FlowRendererState`\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[checkChanged](./ConfigEntity.md#checkchanged)
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[dispose](./ConfigEntity.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[fromJSON](./ConfigEntity.md#fromjson)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getData](./ConfigEntity.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): `Object`
#### Returns
`Object`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
___
### getDragEntities
**getDragEntities**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
___
### getDragLabelSide
**getDragLabelSide**(): `undefined` \| [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md)
#### Returns
`undefined` \| [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md)
___
### getDragStartEntity
**getDragStartEntity**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### getNodeDroppingId
**getNodeDroppingId**(): `undefined` \| `string`
#### Returns
`undefined` \| `string`
___
### getNodeHovered
**getNodeHovered**(): `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
`undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getService](./ConfigEntity.md#getservice)
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[hasData](./ConfigEntity.md#hasdata)
___
### onConfigChanged
**onConfigChanged**(`fn`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: `FlowRendererState`) => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onConfigChanged](./ConfigEntity.md#onconfigchanged)
___
### onNodeHoveredChange
**onNodeHoveredChange**(`fn`, `debounceTime?`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`hoveredNode`: `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md)) => `void` |
| `debounceTime?` | `number` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[removeData](./ConfigEntity.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[reset](./ConfigEntity.md#reset)
___
### setDragEntities
**setDragEntities**(`nodes`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`void`
___
### setDragLabelSide
**setDragLabelSide**(`dragLabelSide?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `dragLabelSide?` | [`LABEL_SIDE_TYPE`](../enums/LABEL_SIDE_TYPE.md) |
#### Returns
`void`
___
### setDragStartEntity
**setDragStartEntity**(`node?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node?` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### setDragging
**setDragging**(`dragging`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `dragging` | `boolean` |
#### Returns
`void`
___
### setIsBranch
**setIsBranch**(`isBranch`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `isBranch` | `boolean` |
#### Returns
`void`
___
### setNodeDroppingId
**setNodeDroppingId**(`nodeDroppingId?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodeDroppingId?` | `string` |
#### Returns
`void`
___
### setNodeHovered
**setNodeHovered**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `undefined` \| [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toJSON](./ConfigEntity.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<`FlowRendererState`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateConfig](./ConfigEntity.md#updateconfig)
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateData](./ConfigEntity.md#updatedata)
---
url: /auto-docs/editor/classes/FlowScrollBarLayer.md
---
# Class: FlowScrollBarLayer
渲染滚动条 layer
## Hierarchy
- [`Layer`](./Layer.md)\<[`ScrollBarOptions`](../interfaces/ScrollBarOptions.md)\>
↳ **`FlowScrollBarLayer`**
## Table of contents
### Constructors
- [constructor](./FlowScrollBarLayer.md#constructor)
### Properties
- [bottomScrollBar](./FlowScrollBarLayer.md#bottomscrollbar)
- [bottomScrollBarBlock](./FlowScrollBarLayer.md#bottomscrollbarblock)
- [config](./FlowScrollBarLayer.md#config)
- [context](./FlowScrollBarLayer.md#context)
- [entityManager](./FlowScrollBarLayer.md#entitymanager)
- [events](./FlowScrollBarLayer.md#events)
- [flowDocument](./FlowScrollBarLayer.md#flowdocument)
- [getOtherLayer](./FlowScrollBarLayer.md#getotherlayer)
- [isFocused](./FlowScrollBarLayer.md#isfocused)
- [listenGlobalEvent](./FlowScrollBarLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowScrollBarLayer.md#listenplaygroundevent)
- [node](./FlowScrollBarLayer.md#node)
- [observeManager](./FlowScrollBarLayer.md#observemanager)
- [options](./FlowScrollBarLayer.md#options)
- [pipelineNode](./FlowScrollBarLayer.md#pipelinenode)
- [playgroundNode](./FlowScrollBarLayer.md#playgroundnode)
- [reloadEntities](./FlowScrollBarLayer.md#reloadentities)
- [renderWithReactMemo](./FlowScrollBarLayer.md#renderwithreactmemo)
- [rightScrollBar](./FlowScrollBarLayer.md#rightscrollbar)
- [rightScrollBarBlock](./FlowScrollBarLayer.md#rightscrollbarblock)
### Accessors
- [clientViewportHeight](./FlowScrollBarLayer.md#clientviewportheight)
- [clientViewportWidth](./FlowScrollBarLayer.md#clientviewportwidth)
- [viewportFullHeight](./FlowScrollBarLayer.md#viewportfullheight)
- [viewportFullWidth](./FlowScrollBarLayer.md#viewportfullwidth)
- [viewportMoveHeight](./FlowScrollBarLayer.md#viewportmoveheight)
- [viewportMoveWidth](./FlowScrollBarLayer.md#viewportmovewidth)
### Methods
- [autorun](./FlowScrollBarLayer.md#autorun)
- [clickBottomScrollBar](./FlowScrollBarLayer.md#clickbottomscrollbar)
- [clickRightScrollBar](./FlowScrollBarLayer.md#clickrightscrollbar)
- [createDOMCache](./FlowScrollBarLayer.md#createdomcache)
- [dispose](./FlowScrollBarLayer.md#dispose)
- [getPosFromMouseEvent](./FlowScrollBarLayer.md#getposfrommouseevent)
- [getToLeft](./FlowScrollBarLayer.md#gettoleft)
- [getToTop](./FlowScrollBarLayer.md#gettotop)
- [onBlur](./FlowScrollBarLayer.md#onblur)
- [onBoardingToast](./FlowScrollBarLayer.md#onboardingtoast)
- [onFocus](./FlowScrollBarLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowScrollBarLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowScrollBarLayer.md#onready)
- [onResize](./FlowScrollBarLayer.md#onresize)
- [onScroll](./FlowScrollBarLayer.md#onscroll)
- [onViewportChange](./FlowScrollBarLayer.md#onviewportchange)
- [onZoom](./FlowScrollBarLayer.md#onzoom)
- [render](./FlowScrollBarLayer.md#render)
## Constructors
### constructor
**new FlowScrollBarLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### bottomScrollBar
`Readonly` **bottomScrollBar**: `HTMLDivElement`
___
### bottomScrollBarBlock
`Readonly` **bottomScrollBarBlock**: `HTMLDivElement`
___
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### events
`Optional` `Readonly` **events**: [`ScrollBarEvents`](../variables/ScrollBarEvents-1.md)
___
### flowDocument
`Optional` **flowDocument**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Inherited from
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: [`ScrollBarOptions`](../interfaces/ScrollBarOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### rightScrollBar
`Readonly` **rightScrollBar**: `HTMLDivElement`
___
### rightScrollBarBlock
`Readonly` **rightScrollBarBlock**: `HTMLDivElement`
## Accessors
### clientViewportHeight
`get` **clientViewportHeight**(): `number`
#### Returns
`number`
___
### clientViewportWidth
`get` **clientViewportWidth**(): `number`
#### Returns
`number`
___
### viewportFullHeight
`get` **viewportFullHeight**(): `number`
#### Returns
`number`
___
### viewportFullWidth
`get` **viewportFullWidth**(): `number`
#### Returns
`number`
___
### viewportMoveHeight
`get` **viewportMoveHeight**(): `number`
#### Returns
`number`
___
### viewportMoveWidth
`get` **viewportMoveWidth**(): `number`
#### Returns
`number`
## Methods
### autorun
**autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### clickBottomScrollBar
**clickBottomScrollBar**(`e`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` |
#### Returns
`void`
___
### clickRightScrollBar
**clickRightScrollBar**(`e`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | `MouseEvent` |
#### Returns
`void`
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### getToLeft
**getToLeft**(`scrollX`): `number`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scrollX` | `number` |
#### Returns
`number`
___
### getToTop
**getToTop**(`scrollY`): `number`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scrollY` | `number` |
#### Returns
`number`
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onBoardingToast
**onBoardingToast**(): `void`
#### Returns
`void`
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
[Layer](./Layer.md).[render](./Layer.md#render)
---
url: /auto-docs/editor/classes/FlowScrollLimitLayer.md
---
# Class: FlowScrollLimitLayer
控制滚动边界
## Hierarchy
- [`Layer`](./Layer.md)
↳ **`FlowScrollLimitLayer`**
## Table of contents
### Constructors
- [constructor](./FlowScrollLimitLayer.md#constructor)
### Properties
- [config](./FlowScrollLimitLayer.md#config)
- [context](./FlowScrollLimitLayer.md#context)
- [document](./FlowScrollLimitLayer.md#document)
- [entityManager](./FlowScrollLimitLayer.md#entitymanager)
- [getOtherLayer](./FlowScrollLimitLayer.md#getotherlayer)
- [isFocused](./FlowScrollLimitLayer.md#isfocused)
- [listenGlobalEvent](./FlowScrollLimitLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowScrollLimitLayer.md#listenplaygroundevent)
- [node](./FlowScrollLimitLayer.md#node)
- [observeManager](./FlowScrollLimitLayer.md#observemanager)
- [options](./FlowScrollLimitLayer.md#options)
- [pipelineNode](./FlowScrollLimitLayer.md#pipelinenode)
- [playgroundNode](./FlowScrollLimitLayer.md#playgroundnode)
- [reloadEntities](./FlowScrollLimitLayer.md#reloadentities)
- [renderWithReactMemo](./FlowScrollLimitLayer.md#renderwithreactmemo)
### Methods
- [autorun](./FlowScrollLimitLayer.md#autorun)
- [createDOMCache](./FlowScrollLimitLayer.md#createdomcache)
- [dispose](./FlowScrollLimitLayer.md#dispose)
- [getInitScroll](./FlowScrollLimitLayer.md#getinitscroll)
- [getPosFromMouseEvent](./FlowScrollLimitLayer.md#getposfrommouseevent)
- [onBlur](./FlowScrollLimitLayer.md#onblur)
- [onFocus](./FlowScrollLimitLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowScrollLimitLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowScrollLimitLayer.md#onready)
- [onResize](./FlowScrollLimitLayer.md#onresize)
- [onScroll](./FlowScrollLimitLayer.md#onscroll)
- [onViewportChange](./FlowScrollLimitLayer.md#onviewportchange)
- [onZoom](./FlowScrollLimitLayer.md#onzoom)
- [render](./FlowScrollLimitLayer.md#render)
## Constructors
### constructor
**new FlowScrollLimitLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### document
`Readonly` **document**: [`FlowDocument`](./FlowDocument.md)\<[`FlowDocumentJSON`](../types/FlowDocumentJSON.md)\>
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Inherited from
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: `any`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getInitScroll
**getInitScroll**(): [`ScrollSchema`](../interfaces/ScrollSchema.md)
#### Returns
[`ScrollSchema`](../interfaces/ScrollSchema.md)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
[Layer](./Layer.md).[render](./Layer.md#render)
---
url: /auto-docs/editor/classes/FlowSelectConfigEntity.md
---
# Class: FlowSelectConfigEntity
圈选节点相关数据存储
## Hierarchy
- [`ConfigEntity`](./ConfigEntity.md)\<`FlowSelectConfigEntityData`\>
↳ **`FlowSelectConfigEntity`**
## Table of contents
### Constructors
- [constructor](./FlowSelectConfigEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./FlowSelectConfigEntity.md#__opts_type__)
- [boundsPadding](./FlowSelectConfigEntity.md#boundspadding)
- [entityManager](./FlowSelectConfigEntity.md#entitymanager)
- [onDataChange](./FlowSelectConfigEntity.md#ondatachange)
- [onEntityChange](./FlowSelectConfigEntity.md#onentitychange)
- [preDispose](./FlowSelectConfigEntity.md#predispose)
- [toDispose](./FlowSelectConfigEntity.md#todispose)
- [type](./FlowSelectConfigEntity.md#type)
### Accessors
- [config](./FlowSelectConfigEntity.md#config)
- [context](./FlowSelectConfigEntity.md#context)
- [disposed](./FlowSelectConfigEntity.md#disposed)
- [id](./FlowSelectConfigEntity.md#id)
- [onDispose](./FlowSelectConfigEntity.md#ondispose)
- [savedInManager](./FlowSelectConfigEntity.md#savedinmanager)
- [selectedNodes](./FlowSelectConfigEntity.md#selectednodes)
- [type](./FlowSelectConfigEntity.md#type-1)
- [version](./FlowSelectConfigEntity.md#version)
### Methods
- [addData](./FlowSelectConfigEntity.md#adddata)
- [addInitializeData](./FlowSelectConfigEntity.md#addinitializedata)
- [checkChanged](./FlowSelectConfigEntity.md#checkchanged)
- [clearSelectedNodes](./FlowSelectConfigEntity.md#clearselectednodes)
- [dispose](./FlowSelectConfigEntity.md#dispose)
- [fromJSON](./FlowSelectConfigEntity.md#fromjson)
- [getData](./FlowSelectConfigEntity.md#getdata)
- [getDefaultConfig](./FlowSelectConfigEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./FlowSelectConfigEntity.md#getdefaultdataregistries)
- [getSelectedBounds](./FlowSelectConfigEntity.md#getselectedbounds)
- [getService](./FlowSelectConfigEntity.md#getservice)
- [hasData](./FlowSelectConfigEntity.md#hasdata)
- [onConfigChanged](./FlowSelectConfigEntity.md#onconfigchanged)
- [removeData](./FlowSelectConfigEntity.md#removedata)
- [reset](./FlowSelectConfigEntity.md#reset)
- [selectFromBounds](./FlowSelectConfigEntity.md#selectfrombounds)
- [toJSON](./FlowSelectConfigEntity.md#tojson)
- [updateConfig](./FlowSelectConfigEntity.md#updateconfig)
- [updateData](./FlowSelectConfigEntity.md#updatedata)
## Constructors
### constructor
**new FlowSelectConfigEntity**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | [`EntityOpts`](../interfaces/EntityOpts.md) |
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[constructor](./ConfigEntity.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`EntityOpts`](../interfaces/EntityOpts.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[__opts_type__](./ConfigEntity.md#__opts_type__)
___
### boundsPadding
**boundsPadding**: `number`
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[entityManager](./ConfigEntity.md#entitymanager)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onDataChange](./ConfigEntity.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onEntityChange](./ConfigEntity.md#onentitychange)
___
### preDispose
`Readonly` **preDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁前事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[preDispose](./ConfigEntity.md#predispose)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toDispose](./ConfigEntity.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[type](./ConfigEntity.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
销毁事件
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### selectedNodes
`get` **selectedNodes**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)[]
`set` **selectedNodes**(`nodes`): `void`
选中节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `nodes` | [`FlowNodeEntity`](./FlowNodeEntity-1.md)[] |
#### Returns
`void`
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addData](./ConfigEntity.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addInitializeData](./ConfigEntity.md#addinitializedata)
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | `FlowSelectConfigEntityData` |
| `newData` | `Partial`\<`FlowSelectConfigEntityData`\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[checkChanged](./ConfigEntity.md#checkchanged)
___
### clearSelectedNodes
**clearSelectedNodes**(): `void`
清除选中节点
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[dispose](./ConfigEntity.md#dispose)
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[fromJSON](./ConfigEntity.md#fromjson)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getData](./ConfigEntity.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): `FlowSelectConfigEntityData`
#### Returns
`FlowSelectConfigEntityData`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
___
### getSelectedBounds
**getSelectedBounds**(): [`Rectangle`](./Rectangle-1.md)
获取选中节点外围的最大边框
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getService](./ConfigEntity.md#getservice)
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[hasData](./ConfigEntity.md#hasdata)
___
### onConfigChanged
**onConfigChanged**(`fn`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: `FlowSelectConfigEntityData`) => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onConfigChanged](./ConfigEntity.md#onconfigchanged)
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[removeData](./ConfigEntity.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[reset](./ConfigEntity.md#reset)
___
### selectFromBounds
**selectFromBounds**(`rect`, `transforms`): `void`
通过选择框选中节点
#### Parameters
| Name | Type |
| :------ | :------ |
| `rect` | [`Rectangle`](./Rectangle-1.md) |
| `transforms` | [`FlowNodeTransformData`](./FlowNodeTransformData.md)[] |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toJSON](./ConfigEntity.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<`FlowSelectConfigEntityData`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateConfig](./ConfigEntity.md#updateconfig)
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateData](./ConfigEntity.md#updatedata)
---
url: /auto-docs/editor/classes/FlowSelectorBoundsLayer.md
---
# Class: FlowSelectorBoundsLayer
流程节点被框选后的边界区域渲染
## Hierarchy
- [`Layer`](./Layer.md)\<[`FlowSelectorBoundsLayerOptions`](../interfaces/FlowSelectorBoundsLayerOptions.md)\>
↳ **`FlowSelectorBoundsLayer`**
## Table of contents
### Constructors
- [constructor](./FlowSelectorBoundsLayer.md#constructor)
### Properties
- [\_transforms](./FlowSelectorBoundsLayer.md#_transforms)
- [commandRegistry](./FlowSelectorBoundsLayer.md#commandregistry)
- [config](./FlowSelectorBoundsLayer.md#config)
- [context](./FlowSelectorBoundsLayer.md#context)
- [entityManager](./FlowSelectorBoundsLayer.md#entitymanager)
- [getOtherLayer](./FlowSelectorBoundsLayer.md#getotherlayer)
- [isFocused](./FlowSelectorBoundsLayer.md#isfocused)
- [listenGlobalEvent](./FlowSelectorBoundsLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowSelectorBoundsLayer.md#listenplaygroundevent)
- [node](./FlowSelectorBoundsLayer.md#node)
- [observeManager](./FlowSelectorBoundsLayer.md#observemanager)
- [options](./FlowSelectorBoundsLayer.md#options)
- [pipelineNode](./FlowSelectorBoundsLayer.md#pipelinenode)
- [playgroundNode](./FlowSelectorBoundsLayer.md#playgroundnode)
- [reloadEntities](./FlowSelectorBoundsLayer.md#reloadentities)
- [renderStates](./FlowSelectorBoundsLayer.md#renderstates)
- [renderWithReactMemo](./FlowSelectorBoundsLayer.md#renderwithreactmemo)
- [rendererRegistry](./FlowSelectorBoundsLayer.md#rendererregistry)
- [selectBoundsBackground](./FlowSelectorBoundsLayer.md#selectboundsbackground)
### Methods
- [autorun](./FlowSelectorBoundsLayer.md#autorun)
- [createDOMCache](./FlowSelectorBoundsLayer.md#createdomcache)
- [dispose](./FlowSelectorBoundsLayer.md#dispose)
- [getPosFromMouseEvent](./FlowSelectorBoundsLayer.md#getposfrommouseevent)
- [isEnabled](./FlowSelectorBoundsLayer.md#isenabled)
- [onBlur](./FlowSelectorBoundsLayer.md#onblur)
- [onFocus](./FlowSelectorBoundsLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowSelectorBoundsLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowSelectorBoundsLayer.md#onready)
- [onResize](./FlowSelectorBoundsLayer.md#onresize)
- [onScroll](./FlowSelectorBoundsLayer.md#onscroll)
- [onViewportChange](./FlowSelectorBoundsLayer.md#onviewportchange)
- [onZoom](./FlowSelectorBoundsLayer.md#onzoom)
- [render](./FlowSelectorBoundsLayer.md#render)
## Constructors
### constructor
**new FlowSelectorBoundsLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### \_transforms
**\_transforms**: [`FlowNodeTransformData`](./FlowNodeTransformData.md)[]
___
### commandRegistry
`Readonly` **commandRegistry**: [`CommandRegistry`](./CommandRegistry.md)
___
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
`Readonly` **node**: `HTMLDivElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Overrides
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: [`FlowSelectorBoundsLayerOptions`](../interfaces/FlowSelectorBoundsLayerOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderStates
**renderStates**: [`FlowNodeRenderData`](./FlowNodeRenderData.md)[]
需要监听节点的展开和收起状态,重新绘制边框
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### rendererRegistry
`Readonly` **rendererRegistry**: [`FlowRendererRegistry`](./FlowRendererRegistry.md)
___
### selectBoundsBackground
`Readonly` **selectBoundsBackground**: `HTMLDivElement`
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### isEnabled
**isEnabled**(): `boolean`
#### Returns
`boolean`
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onViewportChange
**onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
**onZoom**(`scale`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `scale` | `number` |
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
**render**(): `Element`
绘制 react
#### Returns
`Element`
#### Overrides
[Layer](./Layer.md).[render](./Layer.md#render)
---
url: /auto-docs/editor/classes/FlowSelectorBoxLayer.md
---
# Class: FlowSelectorBoxLayer
流程选择框
## Hierarchy
- [`Layer`](./Layer.md)\<[`FlowSelectorBoxOptions`](../interfaces/FlowSelectorBoxOptions.md)\>
↳ **`FlowSelectorBoxLayer`**
## Table of contents
### Constructors
- [constructor](./FlowSelectorBoxLayer.md#constructor)
### Properties
- [config](./FlowSelectorBoxLayer.md#config)
- [context](./FlowSelectorBoxLayer.md#context)
- [contextMenuService](./FlowSelectorBoxLayer.md#contextmenuservice)
- [entityManager](./FlowSelectorBoxLayer.md#entitymanager)
- [getOtherLayer](./FlowSelectorBoxLayer.md#getotherlayer)
- [isFocused](./FlowSelectorBoxLayer.md#isfocused)
- [listenGlobalEvent](./FlowSelectorBoxLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./FlowSelectorBoxLayer.md#listenplaygroundevent)
- [node](./FlowSelectorBoxLayer.md#node)
- [observeManager](./FlowSelectorBoxLayer.md#observemanager)
- [options](./FlowSelectorBoxLayer.md#options)
- [pipelineNode](./FlowSelectorBoxLayer.md#pipelinenode)
- [playgroundNode](./FlowSelectorBoxLayer.md#playgroundnode)
- [reloadEntities](./FlowSelectorBoxLayer.md#reloadentities)
- [renderWithReactMemo](./FlowSelectorBoxLayer.md#renderwithreactmemo)
- [selectionService](./FlowSelectorBoxLayer.md#selectionservice)
### Methods
- [autorun](./FlowSelectorBoxLayer.md#autorun)
- [createDOMCache](./FlowSelectorBoxLayer.md#createdomcache)
- [dispose](./FlowSelectorBoxLayer.md#dispose)
- [getPosFromMouseEvent](./FlowSelectorBoxLayer.md#getposfrommouseevent)
- [isEnabled](./FlowSelectorBoxLayer.md#isenabled)
- [onBlur](./FlowSelectorBoxLayer.md#onblur)
- [onFocus](./FlowSelectorBoxLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./FlowSelectorBoxLayer.md#onreadonlyordisabledchange)
- [onReady](./FlowSelectorBoxLayer.md#onready)
- [onResize](./FlowSelectorBoxLayer.md#onresize)
- [onScroll](./FlowSelectorBoxLayer.md#onscroll)
- [onViewportChange](./FlowSelectorBoxLayer.md#onviewportchange)
- [onZoom](./FlowSelectorBoxLayer.md#onzoom)
- [render](./FlowSelectorBoxLayer.md#render)
## Constructors
### constructor
**new FlowSelectorBoxLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### contextMenuService
`Readonly` **contextMenuService**: [`ContextMenuService`](./ContextMenuService.md)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
`Readonly` **node**: `HTMLDivElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Overrides
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: [`FlowSelectorBoxOptions`](../interfaces/FlowSelectorBoxOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
___
### selectionService
`Readonly` **selectionService**: [`SelectionService`](./SelectionService.md)
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### dispose
**dispose**(): `void`
Destroy
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### isEnabled
**isEnabled**(): `boolean`
#### Returns
`boolean`
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
[Layer](./Layer.md).[render](./Layer.md#render)
---
url: /auto-docs/editor/classes/FlowVirtualTree-1.md
---
# Class: FlowVirtualTree\
存储节点的 tree 结构信息
策略是 "重修改轻查询",即修改时候做的事情更多,查询都通过指针来操作
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Object` |
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./FlowVirtualTree-1.md#constructor)
### Properties
- [onTreeChange](./FlowVirtualTree-1.md#ontreechange)
- [root](./FlowVirtualTree-1.md#root)
### Accessors
- [size](./FlowVirtualTree-1.md#size)
### Methods
- [addChild](./FlowVirtualTree-1.md#addchild)
- [clear](./FlowVirtualTree-1.md#clear)
- [clone](./FlowVirtualTree-1.md#clone)
- [cloneMap](./FlowVirtualTree-1.md#clonemap)
- [dispose](./FlowVirtualTree-1.md#dispose)
- [fireTreeChange](./FlowVirtualTree-1.md#firetreechange)
- [getById](./FlowVirtualTree-1.md#getbyid)
- [getChildren](./FlowVirtualTree-1.md#getchildren)
- [getInfo](./FlowVirtualTree-1.md#getinfo)
- [getNext](./FlowVirtualTree-1.md#getnext)
- [getParent](./FlowVirtualTree-1.md#getparent)
- [getPre](./FlowVirtualTree-1.md#getpre)
- [insertAfter](./FlowVirtualTree-1.md#insertafter)
- [moveChilds](./FlowVirtualTree-1.md#movechilds)
- [remove](./FlowVirtualTree-1.md#remove)
- [removeParent](./FlowVirtualTree-1.md#removeparent)
- [toString](./FlowVirtualTree-1.md#tostring)
- [traverse](./FlowVirtualTree-1.md#traverse)
## Constructors
### constructor
**new FlowVirtualTree**\<`T`\>(`root`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends `Object` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `root` | `T` |
## Properties
### onTreeChange
**onTreeChange**: [`Event`](../interfaces/Event-1.md)\<`void`\>
tree 结构变化时候触发
___
### root
`Readonly` **root**: `T`
## Accessors
### size
`get` **size**(): `number`
#### Returns
`number`
## Methods
### addChild
**addChild**(`parent`, `child`, `index?`): `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | `T` |
| `child` | `T` |
| `index?` | `number` |
#### Returns
`T`
___
### clear
**clear**(): `void`
#### Returns
`void`
___
### clone
**clone**(): [`FlowVirtualTree`](./FlowVirtualTree-1.md)\<`T`\>
#### Returns
[`FlowVirtualTree`](./FlowVirtualTree-1.md)\<`T`\>
___
### cloneMap
**cloneMap**(): `Map`\<`T`, [`NodeInfo`](../interfaces/FlowVirtualTree.NodeInfo.md)\<`T`\>\>
#### Returns
`Map`\<`T`, [`NodeInfo`](../interfaces/FlowVirtualTree.NodeInfo.md)\<`T`\>\>
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### fireTreeChange
**fireTreeChange**(): `void`
通知文档树结构更新
#### Returns
`void`
___
### getById
**getById**(`id`): `undefined` \| `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `id` | `string` |
#### Returns
`undefined` \| `T`
___
### getChildren
**getChildren**(`node`): `T`[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`T`[]
___
### getInfo
**getInfo**(`node`): [`NodeInfo`](../interfaces/FlowVirtualTree.NodeInfo.md)\<`T`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
[`NodeInfo`](../interfaces/FlowVirtualTree.NodeInfo.md)\<`T`\>
___
### getNext
**getNext**(`node`): `undefined` \| `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`undefined` \| `T`
___
### getParent
**getParent**(`node`): `undefined` \| `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`undefined` \| `T`
___
### getPre
**getPre**(`node`): `undefined` \| `T`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`undefined` \| `T`
___
### insertAfter
**insertAfter**(`before`, `after`): `void`
插入节点到后边
#### Parameters
| Name | Type |
| :------ | :------ |
| `before` | `T` |
| `after` | `T` |
#### Returns
`void`
___
### moveChilds
**moveChilds**(`parent`, `childs`, `index?`): `T`[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | `T` |
| `childs` | `T`[] |
| `index?` | `number` |
#### Returns
`T`[]
___
### remove
**remove**(`node`, `withChildren?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
| `withChildren?` | `boolean` |
#### Returns
`void`
___
### removeParent
**removeParent**(`node`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | `T` |
#### Returns
`void`
___
### toString
**toString**(`showType?`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `showType?` | `boolean` |
#### Returns
`string`
___
### traverse
**traverse**(`fn`, `node?`, `depth?`, `index?`): `boolean` \| `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`node`: `T`, `depth`: `number`, `index`: `number`) => `boolean` \| `void` |
| `node?` | `T` |
| `depth?` | `number` |
| `index?` | `number` |
#### Returns
`boolean` \| `void`
---
url: /auto-docs/editor/classes/FlushLayerMessage.md
---
# Class: FlushLayerMessage
## Hierarchy
- `ConflatableMessage`
↳ **`FlushLayerMessage`**
## Table of contents
### Constructors
- [constructor](./FlushLayerMessage.md#constructor)
### Properties
- [isConflatable](./FlushLayerMessage.md#isconflatable)
- [layer](./FlushLayerMessage.md#layer)
- [type](./FlushLayerMessage.md#type)
### Methods
- [conflate](./FlushLayerMessage.md#conflate)
## Constructors
### constructor
**new FlushLayerMessage**(`layer`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Overrides
ConflatableMessage.constructor
## Properties
### isConflatable
`Readonly` **isConflatable**: `boolean`
Test whether the message is conflatable.
#### Notes
This property is always `true`.
#### Inherited from
ConflatableMessage.isConflatable
___
### layer
`Readonly` **layer**: [`Layer`](./Layer.md)\<`any`, `any`\>
___
### type
`Readonly` **type**: `string`
The type of the message.
#### Notes
The `type` of a message should be related directly to its actual
runtime type. This means that `type` can and will be used to cast
the message to the relevant derived `Message` subtype.
#### Inherited from
ConflatableMessage.type
## Methods
### conflate
**conflate**(`other`): `boolean`
Conflate this message with another message of the same `type`.
#### Notes
This method always returns `true`.
#### Parameters
| Name | Type |
| :------ | :------ |
| `other` | `ConflatableMessage` |
#### Returns
`boolean`
#### Inherited from
ConflatableMessage.conflate
---
url: /auto-docs/editor/classes/FormModel.md
---
# Class: FormModel
An object that performs a cleanup operation when `.dispose()` is called.
Some examples of how disposables are used:
- An event listener that removes itself when `.dispose()` is called.
- The return value from registering a provider. When `.dispose()` is called, the provider is unregistered.
## Hierarchy
- `FormModel`
↳ **`FormModel`**
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./FormModel.md#constructor)
### Properties
- [onDispose](./FormModel.md#ondispose)
- [onFeedbacksChange](./FormModel.md#onfeedbackschange)
- [onFormValuesChange](./FormModel.md#onformvalueschange)
- [onInitialized](./FormModel.md#oninitialized)
- [onValidChange](./FormModel.md#onvalidchange)
- [onValidate](./FormModel.md#onvalidate)
### Accessors
- [feedbacks](./FormModel.md#feedbacks)
- [flowNodeEntity](./FormModel.md#flownodeentity)
- [formControl](./FormModel.md#formcontrol)
- [formItemPathMap](./FormModel.md#formitempathmap)
- [formManager](./FormModel.md#formmanager)
- [formMeta](./FormModel.md#formmeta)
- [initialized](./FormModel.md#initialized)
- [nativeFormModel](./FormModel.md#nativeformmodel)
- [nodeContext](./FormModel.md#nodecontext)
- [valid](./FormModel.md#valid)
- [values](./FormModel.md#values)
### Methods
- [clearValid](./FormModel.md#clearvalid)
- [dispose](./FormModel.md#dispose)
- [getField](./FormModel.md#getfield)
- [getFormItemByPath](./FormModel.md#getformitembypath)
- [getFormItemValueByPath](./FormModel.md#getformitemvaluebypath)
- [getValueIn](./FormModel.md#getvaluein)
- [getValues](./FormModel.md#getvalues)
- [init](./FormModel.md#init)
- [initPlugins](./FormModel.md#initplugins)
- [onFormValueChangeIn](./FormModel.md#onformvaluechangein)
- [render](./FormModel.md#render)
- [setValueIn](./FormModel.md#setvaluein)
- [toJSON](./FormModel.md#tojson)
- [updateFormValues](./FormModel.md#updateformvalues)
- [validate](./FormModel.md#validate)
- [validateWithFeedbacks](./FormModel.md#validatewithfeedbacks)
## Constructors
### constructor
**new FormModel**(`node`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `node` | [`FlowNodeEntity`](./FlowNodeEntity-1.md) |
#### Overrides
FormModel.constructor
## Properties
### onDispose
`Readonly` **onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
___
### onFeedbacksChange
`Readonly` **onFeedbacksChange**: [`Event`](../interfaces/Event-1.md)\<`FormFeedback`[]\>
#### Overrides
FormModel.onFeedbacksChange
___
### onFormValuesChange
`Readonly` **onFormValuesChange**: [`Event`](../interfaces/Event-1.md)\<`OnFormValuesChangePayload`\>
___
### onInitialized
`Readonly` **onInitialized**: [`Event`](../interfaces/Event-1.md)\<`FormModel`\>
#### Overrides
FormModel.onInitialized
___
### onValidChange
`Readonly` **onValidChange**: [`Event`](../interfaces/Event-1.md)\<`FormModelValid`\>
#### Overrides
FormModel.onValidChange
___
### onValidate
`Readonly` **onValidate**: [`Event`](../interfaces/Event-1.md)\<`FormModel`\>
#### Overrides
FormModel.onValidate
## Accessors
### feedbacks
`get` **feedbacks**(): `FormFeedback`[]
#### Returns
`FormFeedback`[]
`set` **feedbacks**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `value` | `FormFeedback`[] |
#### Returns
`void`
___
### flowNodeEntity
`get` **flowNodeEntity**(): [`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Returns
[`FlowNodeEntity`](./FlowNodeEntity-1.md)
#### Overrides
FormModel.flowNodeEntity
___
### formControl
`get` **formControl**(): `undefined` \| [`FormControl`](../interfaces/FormControl.md)\<`any`\>
#### Returns
`undefined` \| [`FormControl`](../interfaces/FormControl.md)\<`any`\>
___
### formItemPathMap
`get` **formItemPathMap**(): `Map`\<`string`, `IFormItem`\<`any`\>\>
#### Returns
`Map`\<`string`, `IFormItem`\<`any`\>\>
#### Overrides
FormModel.formItemPathMap
___
### formManager
`get` **formManager**(): `FormManager`
#### Returns
`FormManager`
#### Overrides
FormModel.formManager
___
### formMeta
`get` **formMeta**(): [`FormMeta`](../interfaces/FormMeta.md)\<`any`\>
#### Returns
[`FormMeta`](../interfaces/FormMeta.md)\<`any`\>
#### Overrides
FormModel.formMeta
___
### initialized
`get` **initialized**(): `boolean`
#### Returns
`boolean`
#### Overrides
FormModel.initialized
___
### nativeFormModel
`get` **nativeFormModel**(): `undefined` \| `FormModel`\<`any`\>
#### Returns
`undefined` \| `FormModel`\<`any`\>
___
### nodeContext
`get` **nodeContext**(): `NodeFormContext`
#### Returns
`NodeFormContext`
___
### valid
`get` **valid**(): `FormModelValid`
#### Returns
`FormModelValid`
#### Overrides
FormModel.valid
`set` **valid**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `value` | `FormModelValid` |
#### Returns
`void`
#### Overrides
FormModel.valid
___
### values
`get` **values**(): `any`
#### Returns
`any`
## Methods
### clearValid
**clearValid**(): `void`
#### Returns
`void`
#### Overrides
FormModel.clearValid
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
#### Overrides
FormModel.dispose
___
### getField
**getField**\<`TValue`, `TField`\>(`name`): `undefined` \| `TField`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `TValue` | `any` |
| `TField` | extends [`IFieldArray`](../interfaces/IFieldArray.md)\<`TValue`\> \| [`IField`](../interfaces/IField.md)\<`TValue`, `ChangeEvent`\<`any`\> \| `TValue`\> = [`IField`](../interfaces/IField.md)\<`TValue`, `ChangeEvent`\<`any`\> \| `TValue`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
#### Returns
`undefined` \| `TField`
___
### getFormItemByPath
**getFormItemByPath**(`path`): `undefined` \| `FormItem`
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `path` | `string` | glob path |
#### Returns
`undefined` \| `FormItem`
**`Deprecated`**
该方法用于兼容 V1 版本 FormModel接口,如果确定是FormModelV2, 请使用FormModel.getValueIn 和 FormModel.setValueIn
#### Overrides
FormModel.getFormItemByPath
___
### getFormItemValueByPath
**getFormItemValueByPath**(`globPath`): `any`
#### Parameters
| Name | Type |
| :------ | :------ |
| `globPath` | `string` |
#### Returns
`any`
**`Deprecated`**
该方法用于兼容 V1 版本 FormModel接口,如果确定是FormModelV2 请使用 FormModel.getValueIn
#### Overrides
FormModel.getFormItemValueByPath
___
### getValueIn
**getValueIn**\<`TValue`\>(`name`): `undefined` \| `TValue`
#### Type parameters
| Name |
| :------ |
| `TValue` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
#### Returns
`undefined` \| `TValue`
___
### getValues
**getValues**\<`T`\>(): `undefined` \| `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | `any` |
#### Returns
`undefined` \| `T`
___
### init
**init**(`formMeta`, `rawInitialValues?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `formMeta` | [`FormMeta`](../interfaces/FormMeta.md)\<`any`\> |
| `rawInitialValues?` | `any` |
#### Returns
`void`
#### Overrides
FormModel.init
___
### initPlugins
**initPlugins**(`plugins`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `plugins` | [`FormPlugin`](./FormPlugin.md)\<`any`\>[] |
#### Returns
`void`
___
### onFormValueChangeIn
**onFormValueChangeIn**\<`TValue`, `TFormValue`\>(`name`, `callback`): [`Disposable`](../interfaces/Disposable-1.md)
监听表单某个路径下的值变化
#### Type parameters
| Name | Type |
| :------ | :------ |
| `TValue` | `any` |
| `TFormValue` | `any` |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `name` | `string` | 路径 |
| `callback` | (`payload`: [`onFormValueChangeInPayload`](../interfaces/onFormValueChangeInPayload.md)\<`TValue`, `TFormValue`\>) => `void` | 回调函数 |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### render
**render**(): `Element`
#### Returns
`Element`
#### Overrides
FormModel.render
___
### setValueIn
**setValueIn**(`name`, `value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `value` | `any` |
#### Returns
`void`
___
### toJSON
**toJSON**(): `any`
#### Returns
`any`
#### Overrides
FormModel.toJSON
___
### updateFormValues
**updateFormValues**(`value`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `value` | `any` |
#### Returns
`void`
#### Overrides
FormModel.updateFormValues
___
### validate
**validate**(): `Promise`\<`boolean`\>
#### Returns
`Promise`\<`boolean`\>
#### Overrides
FormModel.validate
___
### validateWithFeedbacks
**validateWithFeedbacks**(): `Promise`\<`FormFeedback`[]\>
#### Returns
`Promise`\<`FormFeedback`[]\>
#### Overrides
FormModel.validateWithFeedbacks
---
url: /auto-docs/editor/classes/FormPlugin.md
---
# Class: FormPlugin\
An object that performs a cleanup operation when `.dispose()` is called.
Some examples of how disposables are used:
- An event listener that removes itself when `.dispose()` is called.
- The return value from registering a provider. When `.dispose()` is called, the provider is unregistered.
## Type parameters
| Name | Type |
| :------ | :------ |
| `Opts` | `any` |
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./FormPlugin.md#constructor)
### Properties
- [config](./FormPlugin.md#config)
- [name](./FormPlugin.md#name)
- [opts](./FormPlugin.md#opts)
- [pluginId](./FormPlugin.md#pluginid)
### Accessors
- [ctx](./FormPlugin.md#ctx)
- [formModel](./FormPlugin.md#formmodel)
### Methods
- [dispose](./FormPlugin.md#dispose)
- [init](./FormPlugin.md#init)
- [setupFormMeta](./FormPlugin.md#setupformmeta)
## Constructors
### constructor
**new FormPlugin**\<`Opts`\>(`config`, `opts?`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Opts` | `any` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `config` | [`FormPluginConfig`](../interfaces/FormPluginConfig.md)\<`any`\> |
| `opts?` | `Opts` |
## Properties
### config
`Readonly` **config**: [`FormPluginConfig`](../interfaces/FormPluginConfig.md)\<`any`\>
___
### name
`Readonly` **name**: `string`
___
### opts
`Optional` `Readonly` **opts**: `Opts`
___
### pluginId
`Readonly` **pluginId**: `string`
## Accessors
### ctx
`get` **ctx**(): \{ `formModel`: [`FormModel`](./FormModel.md) } & `NodeFormContext`
#### Returns
\{ `formModel`: [`FormModel`](./FormModel.md) } & `NodeFormContext`
___
### formModel
`get` **formModel**(): [`FormModel`](./FormModel.md)
#### Returns
[`FormModel`](./FormModel.md)
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### init
**init**(`formModel`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `formModel` | [`FormModel`](./FormModel.md) |
#### Returns
`void`
___
### setupFormMeta
**setupFormMeta**(`formMeta`, `nodeContext`): [`FormMeta`](../interfaces/FormMeta.md)\<`any`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `formMeta` | [`FormMeta`](../interfaces/FormMeta.md)\<`any`\> |
| `nodeContext` | `NodeFormContext` |
#### Returns
[`FormMeta`](../interfaces/FormMeta.md)\<`any`\>
---
url: /auto-docs/editor/classes/GlobalScope.md
---
# Class: GlobalScope
Global Scope stores all variables that are not scoped to any node.
- Variables in Global Scope can be accessed by any node.
- Any other scope's variables can not be accessed by Global Scope.
## Hierarchy
- [`Scope`](./Scope.md)
↳ **`GlobalScope`**
## Table of contents
### Constructors
- [constructor](./GlobalScope.md#constructor)
### Properties
- [ast](./GlobalScope.md#ast)
- [available](./GlobalScope.md#available)
- [event](./GlobalScope.md#event)
- [id](./GlobalScope.md#id)
- [meta](./GlobalScope.md#meta)
- [onDispose](./GlobalScope.md#ondispose)
- [output](./GlobalScope.md#output)
- [toDispose](./GlobalScope.md#todispose)
- [variableEngine](./GlobalScope.md#variableengine)
- [ID](./GlobalScope.md#id-1)
### Accessors
- [coverScopes](./GlobalScope.md#coverscopes)
- [depScopes](./GlobalScope.md#depscopes)
- [disposed](./GlobalScope.md#disposed)
### Methods
- [clearVar](./GlobalScope.md#clearvar)
- [dispose](./GlobalScope.md#dispose)
- [getVar](./GlobalScope.md#getvar)
- [refreshCovers](./GlobalScope.md#refreshcovers)
- [refreshDeps](./GlobalScope.md#refreshdeps)
- [setVar](./GlobalScope.md#setvar)
- [is](./GlobalScope.md#is)
## Constructors
### constructor
**new GlobalScope**(`options`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `options` | `Object` |
| `options.id` | `string` \| `symbol` |
| `options.meta?` | `Record`\<`string`, `any`\> |
| `options.variableEngine` | [`VariableEngine`](./VariableEngine.md) |
#### Inherited from
[Scope](./Scope.md).[constructor](./Scope.md#constructor)
## Properties
### ast
`Readonly` **ast**: [`MapNode`](./MapNode.md)
The root AST node for this scope, which is a MapNode.
It stores various data related to the scope, such as `outputs`.
#### Inherited from
[Scope](./Scope.md).[ast](./Scope.md#ast)
___
### available
`Readonly` **available**: `ScopeAvailableData`
Manages the available variables for this scope.
#### Inherited from
[Scope](./Scope.md).[available](./Scope.md#available)
___
### event
`Readonly` **event**: `ScopeEventData`
Manages event dispatching and handling for this scope.
#### Inherited from
[Scope](./Scope.md).[event](./Scope.md#event)
___
### id
`Readonly` **id**: `string` \| `symbol`
A unique identifier for the scope.
#### Inherited from
[Scope](./Scope.md).[id](./Scope.md#id)
___
### meta
`Readonly` **meta**: `Record`\<`string`, `any`\>
Metadata associated with the scope, which can be extended by higher-level business logic.
#### Inherited from
[Scope](./Scope.md).[meta](./Scope.md#meta)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
[Scope](./Scope.md).[onDispose](./Scope.md#ondispose)
___
### output
`Readonly` **output**: [`ScopeOutputData`](./ScopeOutputData.md)
Manages the output variables for this scope.
#### Inherited from
[Scope](./Scope.md).[output](./Scope.md#output)
___
### toDispose
**toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[Scope](./Scope.md).[toDispose](./Scope.md#todispose)
___
### variableEngine
`Readonly` **variableEngine**: [`VariableEngine`](./VariableEngine.md)
The variable engine instance this scope belongs to.
#### Inherited from
[Scope](./Scope.md).[variableEngine](./Scope.md#variableengine)
___
### ID
`Static` `Readonly` **ID**: typeof [`ID`](./GlobalScope.md#id-1)
## Accessors
### coverScopes
`get` **coverScopes**(): [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>[]
Gets the scopes that are covered by this scope.
#### Returns
[`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>[]
#### Inherited from
Scope.coverScopes
___
### depScopes
`get` **depScopes**(): [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>[]
Gets the scopes that this scope depends on.
#### Returns
[`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>[]
#### Inherited from
Scope.depScopes
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
Scope.disposed
## Methods
### clearVar
**clearVar**(`key?`): `void`
Clears a variable from the scope by its key.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key?` | `string` | The key of the variable to clear. Defaults to 'outputs'. |
#### Returns
`void`
#### Inherited from
[Scope](./Scope.md).[clearVar](./Scope.md#clearvar)
___
### dispose
**dispose**(): `void`
Disposes of the scope and its resources.
This will also trigger updates in dependent and covering scopes.
#### Returns
`void`
#### Inherited from
[Scope](./Scope.md).[dispose](./Scope.md#dispose)
___
### getVar
**getVar**\<`Node`\>(`key?`): `undefined` \| `Node`
Retrieves a variable from the scope by its key.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Node` | extends [`ASTNode`](./ASTNode.md)\<`any`, `Node`\> = [`ASTNode`](./ASTNode.md)\<`any`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key?` | `string` | The key of the variable to retrieve. Defaults to 'outputs'. |
#### Returns
`undefined` \| `Node`
The AST node for the variable, or `undefined` if not found.
#### Inherited from
[Scope](./Scope.md).[getVar](./Scope.md#getvar)
___
### refreshCovers
**refreshCovers**(): `void`
Refreshes the covering scopes.
#### Returns
`void`
#### Inherited from
[Scope](./Scope.md).[refreshCovers](./Scope.md#refreshcovers)
___
### refreshDeps
**refreshDeps**(): `void`
Refreshes the dependency scopes and the available variables.
#### Returns
`void`
#### Inherited from
[Scope](./Scope.md).[refreshDeps](./Scope.md#refreshdeps)
___
### setVar
**setVar**\<`Node`\>(`json`): `Node`
Sets a variable in the scope with the default key 'outputs'.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Node` | extends [`ASTNode`](./ASTNode.md)\<`any`, `Node`\> = [`ASTNode`](./ASTNode.md)\<`any`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) | The JSON representation of the AST node to set. |
#### Returns
`Node`
The created or updated AST node.
#### Inherited from
[Scope](./Scope.md).[setVar](./Scope.md#setvar)
**setVar**\<`Node`\>(`key`, `json`): `Node`
Sets a variable in the scope with a specified key.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Node` | extends [`ASTNode`](./ASTNode.md)\<`any`, `Node`\> = [`ASTNode`](./ASTNode.md)\<`any`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key` | `string` | The key of the variable to set. |
| `json` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) | The JSON representation of the AST node to set. |
#### Returns
`Node`
The created or updated AST node.
#### Inherited from
[Scope](./Scope.md).[setVar](./Scope.md#setvar)
___
### is
`Static` **is**(`scope`): `boolean`
Check if the scope is Global Scope.
#### Parameters
| Name | Type |
| :------ | :------ |
| `scope` | [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\> |
#### Returns
`boolean`
---
url: /auto-docs/editor/classes/IntegerType.md
---
# Class: IntegerType
Represents an integer type.
## Hierarchy
- [`BaseType`](./BaseType.md)
↳ **`IntegerType`**
## Table of contents
### Constructors
- [constructor](./IntegerType.md#constructor)
### Properties
- [changeLocked](./IntegerType.md#changelocked)
- [flags](./IntegerType.md#flags)
- [key](./IntegerType.md#key)
- [onDispose](./IntegerType.md#ondispose)
- [opts](./IntegerType.md#opts)
- [parent](./IntegerType.md#parent)
- [scope](./IntegerType.md#scope)
- [toDispose](./IntegerType.md#todispose)
- [value$](./IntegerType.md#value$)
- [kind](./IntegerType.md#kind)
### Accessors
- [children](./IntegerType.md#children)
- [disposed](./IntegerType.md#disposed)
- [hash](./IntegerType.md#hash)
- [kind](./IntegerType.md#kind-1)
- [version](./IntegerType.md#version)
### Methods
- [dispatchGlobalEvent](./IntegerType.md#dispatchglobalevent)
- [dispose](./IntegerType.md#dispose)
- [fireChange](./IntegerType.md#firechange)
- [fromJSON](./IntegerType.md#fromjson)
- [getByKeyPath](./IntegerType.md#getbykeypath)
- [isTypeEqual](./IntegerType.md#istypeequal)
- [subscribe](./IntegerType.md#subscribe)
- [toJSON](./IntegerType.md#tojson)
## Constructors
### constructor
**new IntegerType**(`createParams`, `opts?`)
Constructor.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[BaseType](./BaseType.md).[constructor](./BaseType.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseType](./BaseType.md).[changeLocked](./BaseType.md#changelocked)
___
### flags
**flags**: [`ASTNodeFlags`](../enums/ASTNodeFlags.md)
Node flags, used to record some flag information.
#### Overrides
[BaseType](./BaseType.md).[flags](./BaseType.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseType](./BaseType.md).[key](./BaseType.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseType](./BaseType.md).[onDispose](./BaseType.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseType](./BaseType.md).[opts](./BaseType.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[parent](./BaseType.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseType](./BaseType.md).[scope](./BaseType.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[toDispose](./BaseType.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseType](./BaseType.md).[value$](./BaseType.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseType](./BaseType.md).[kind](./BaseType.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseType.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseType.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseType.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseType.kind
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseType.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispatchGlobalEvent](./BaseType.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispose](./BaseType.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[fireChange](./BaseType.md#firechange)
___
### fromJSON
**fromJSON**(): `void`
Deserializes the `IntegerJSON` to the `IntegerType`.
#### Returns
`void`
#### Overrides
[BaseType](./BaseType.md).[fromJSON](./BaseType.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath?`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Get a variable field by key path.
This method should be implemented by drillable types.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath?` | `string`[] | The key path to search for. |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
The variable field if found, otherwise `undefined`.
#### Inherited from
[BaseType](./BaseType.md).[getByKeyPath](./BaseType.md#getbykeypath)
___
### isTypeEqual
**isTypeEqual**(`targetTypeJSONOrKind?`): `boolean`
Check if the current type is equal to the target type.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `targetTypeJSONOrKind?` | `ASTNodeJSONOrKind` | The type to compare with. |
#### Returns
`boolean`
`true` if the types are equal, `false` otherwise.
#### Inherited from
[BaseType](./BaseType.md).[isTypeEqual](./BaseType.md#istypeequal)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`IntegerType`](./IntegerType.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`IntegerType`](./IntegerType.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseType](./BaseType.md).[subscribe](./BaseType.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serializes the current ASTNode to ASTNodeJSON.
#### Returns
`Object`
#### Overrides
[BaseType](./BaseType.md).[toJSON](./BaseType.md#tojson)
---
url: /auto-docs/editor/classes/KeyPathExpression.md
---
# Class: KeyPathExpression\
Represents a key path expression, which is used to reference a variable by its key path.
This is the V2 of `KeyPathExpression`, with the following improvements:
- `returnType` is copied to a new instance to avoid reference issues.
- Circular reference detection is introduced.
## Type parameters
| Name | Type |
| :------ | :------ |
| `CustomPathJSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = [`KeyPathExpressionJSON`](../interfaces/KeyPathExpressionJSON.md) |
## Hierarchy
- [`BaseExpression`](./BaseExpression.md)\<`CustomPathJSON`\>
↳ **`KeyPathExpression`**
## Table of contents
### Constructors
- [constructor](./KeyPathExpression.md#constructor)
### Properties
- [\_returnType](./KeyPathExpression.md#_returntype)
- [changeLocked](./KeyPathExpression.md#changelocked)
- [flags](./KeyPathExpression.md#flags)
- [key](./KeyPathExpression.md#key)
- [onDispose](./KeyPathExpression.md#ondispose)
- [opts](./KeyPathExpression.md#opts)
- [parent](./KeyPathExpression.md#parent)
- [refs$](./KeyPathExpression.md#refs$)
- [scope](./KeyPathExpression.md#scope)
- [toDispose](./KeyPathExpression.md#todispose)
- [value$](./KeyPathExpression.md#value$)
- [kind](./KeyPathExpression.md#kind)
### Accessors
- [children](./KeyPathExpression.md#children)
- [disposed](./KeyPathExpression.md#disposed)
- [globalVariableTable](./KeyPathExpression.md#globalvariabletable)
- [hash](./KeyPathExpression.md#hash)
- [keyPath](./KeyPathExpression.md#keypath)
- [kind](./KeyPathExpression.md#kind-1)
- [parentFields](./KeyPathExpression.md#parentfields)
- [refs](./KeyPathExpression.md#refs)
- [returnType](./KeyPathExpression.md#returntype)
- [version](./KeyPathExpression.md#version)
### Methods
- [dispatchGlobalEvent](./KeyPathExpression.md#dispatchglobalevent)
- [dispose](./KeyPathExpression.md#dispose)
- [fireChange](./KeyPathExpression.md#firechange)
- [fromJSON](./KeyPathExpression.md#fromjson)
- [getRefFields](./KeyPathExpression.md#getreffields)
- [getReturnTypeJSONByRef](./KeyPathExpression.md#getreturntypejsonbyref)
- [refreshRefs](./KeyPathExpression.md#refreshrefs)
- [subscribe](./KeyPathExpression.md#subscribe)
- [toJSON](./KeyPathExpression.md#tojson)
## Constructors
### constructor
**new KeyPathExpression**\<`CustomPathJSON`\>(`params`, `opts`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `CustomPathJSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = [`KeyPathExpressionJSON`](../interfaces/KeyPathExpressionJSON.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`CreateASTParams`](../interfaces/CreateASTParams.md) |
| `opts` | `any` |
#### Overrides
[BaseExpression](./BaseExpression.md).[constructor](./BaseExpression.md#constructor)
## Properties
### \_returnType
**\_returnType**: [`BaseType`](./BaseType.md)\<`any`\>
The return type of the expression.
A new `returnType` node is generated directly, instead of reusing the existing one, to ensure that different key paths do not point to the same field.
___
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseExpression](./BaseExpression.md).[changeLocked](./BaseExpression.md#changelocked)
___
### flags
**flags**: [`ASTNodeFlags`](../enums/ASTNodeFlags.md)
Node flags, used to record some flag information.
#### Inherited from
[BaseExpression](./BaseExpression.md).[flags](./BaseExpression.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseExpression](./BaseExpression.md).[key](./BaseExpression.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseExpression](./BaseExpression.md).[onDispose](./BaseExpression.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseExpression](./BaseExpression.md).[opts](./BaseExpression.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseExpression](./BaseExpression.md).[parent](./BaseExpression.md#parent)
___
### refs$
**refs$**: `Observable`\<`ExpressionRefs`\>
An observable that emits the referenced variable fields when they change.
#### Inherited from
[BaseExpression](./BaseExpression.md).[refs$](./BaseExpression.md#refs$)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseExpression](./BaseExpression.md).[scope](./BaseExpression.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseExpression](./BaseExpression.md).[toDispose](./BaseExpression.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseExpression](./BaseExpression.md).[value$](./BaseExpression.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseExpression](./BaseExpression.md).[kind](./BaseExpression.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseExpression.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseExpression.disposed
___
### globalVariableTable
`get` **globalVariableTable**(): [`IVariableTable`](../interfaces/IVariableTable.md)
Get the global variable table, which is used to access referenced variables.
#### Returns
[`IVariableTable`](../interfaces/IVariableTable.md)
#### Inherited from
BaseExpression.globalVariableTable
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseExpression.hash
___
### keyPath
`get` **keyPath**(): `string`[]
The key path of the variable.
#### Returns
`string`[]
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseExpression.kind
___
### parentFields
`get` **parentFields**(): [`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
Parent variable fields, sorted from closest to farthest.
#### Returns
[`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
#### Inherited from
BaseExpression.parentFields
___
### refs
`get` **refs**(): `ExpressionRefs`
The variable fields referenced by the expression.
#### Returns
`ExpressionRefs`
#### Inherited from
BaseExpression.refs
___
### returnType
`get` **returnType**(): [`BaseType`](./BaseType.md)\<`any`\>
The return type of the expression.
#### Returns
[`BaseType`](./BaseType.md)\<`any`\>
#### Overrides
BaseExpression.returnType
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseExpression.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[dispatchGlobalEvent](./BaseExpression.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[dispose](./BaseExpression.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[fireChange](./BaseExpression.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `KeyPathExpressionJSON` to the `KeyPathExpression`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `CustomPathJSON` | The `KeyPathExpressionJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[BaseExpression](./BaseExpression.md).[fromJSON](./BaseExpression.md#fromjson)
___
### getRefFields
**getRefFields**(): [`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
Get the variable fields referenced by the expression.
#### Returns
[`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
An array of referenced variable fields.
#### Overrides
[BaseExpression](./BaseExpression.md).[getRefFields](./BaseExpression.md#getreffields)
___
### getReturnTypeJSONByRef
**getReturnTypeJSONByRef**(`_ref`): `undefined` \| [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md)
Get the return type JSON by reference.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `_ref` | `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\> | The referenced variable field. |
#### Returns
`undefined` \| [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md)
The JSON representation of the return type.
___
### refreshRefs
**refreshRefs**(): `void`
Refresh the variable references.
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[refreshRefs](./BaseExpression.md#refreshrefs)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`KeyPathExpression`](./KeyPathExpression.md)\<`CustomPathJSON`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`KeyPathExpression`](./KeyPathExpression.md)\<`CustomPathJSON`\>, `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseExpression](./BaseExpression.md).[subscribe](./BaseExpression.md#subscribe)
___
### toJSON
**toJSON**(): `CustomPathJSON`
Serialize the `KeyPathExpression` to `KeyPathExpressionJSON`.
#### Returns
`CustomPathJSON`
The JSON representation of `KeyPathExpression`.
#### Overrides
[BaseExpression](./BaseExpression.md).[toJSON](./BaseExpression.md#tojson)
---
url: /auto-docs/editor/classes/Layer.md
---
# Class: Layer\
基础 layer
## Type parameters
| Name | Type |
| :------ | :------ |
| `OPT` | extends [`LayerOptions`](../variables/LayerOptions-1.md) = `any` |
| `CONTEXT` | extends [`PlaygroundContext`](../variables/PlaygroundContext-1.md) = [`PlaygroundContext`](../variables/PlaygroundContext-1.md) |
## Hierarchy
- **`Layer`**
↳ [`PlaygroundLayer`](./PlaygroundLayer.md)
↳ [`FlowContextMenuLayer`](./FlowContextMenuLayer.md)
↳ [`FlowDebugLayer`](./FlowDebugLayer.md)
↳ [`FlowDragLayer`](./FlowDragLayer.md)
↳ [`FlowLabelsLayer`](./FlowLabelsLayer.md)
↳ [`FlowLinesLayer`](./FlowLinesLayer.md)
↳ [`FlowNodesContentLayer`](./FlowNodesContentLayer.md)
↳ [`FlowNodesTransformLayer`](./FlowNodesTransformLayer.md)
↳ [`FlowScrollBarLayer`](./FlowScrollBarLayer.md)
↳ [`FlowScrollLimitLayer`](./FlowScrollLimitLayer.md)
↳ [`FlowSelectorBoundsLayer`](./FlowSelectorBoundsLayer.md)
↳ [`FlowSelectorBoxLayer`](./FlowSelectorBoxLayer.md)
## Table of contents
### Constructors
- [constructor](./Layer.md#constructor)
### Properties
- [config](./Layer.md#config)
- [context](./Layer.md#context)
- [entityManager](./Layer.md#entitymanager)
- [getOtherLayer](./Layer.md#getotherlayer)
- [isFocused](./Layer.md#isfocused)
- [listenGlobalEvent](./Layer.md#listenglobalevent)
- [listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
- [node](./Layer.md#node)
- [observeManager](./Layer.md#observemanager)
- [options](./Layer.md#options)
- [pipelineNode](./Layer.md#pipelinenode)
- [playgroundNode](./Layer.md#playgroundnode)
- [reloadEntities](./Layer.md#reloadentities)
- [renderWithReactMemo](./Layer.md#renderwithreactmemo)
### Methods
- [autorun](./Layer.md#autorun)
- [createDOMCache](./Layer.md#createdomcache)
- [dispose](./Layer.md#dispose)
- [getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
- [onBlur](./Layer.md#onblur)
- [onFocus](./Layer.md#onfocus)
- [onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
- [onReady](./Layer.md#onready)
- [onResize](./Layer.md#onresize)
- [onScroll](./Layer.md#onscroll)
- [onViewportChange](./Layer.md#onviewportchange)
- [onZoom](./Layer.md#onzoom)
- [render](./Layer.md#render)
## Constructors
### constructor
**new Layer**\<`OPT`, `CONTEXT`\>()
#### Type parameters
| Name | Type |
| :------ | :------ |
| `OPT` | extends [`LayerOptions`](../variables/LayerOptions-1.md) = `any` |
| `CONTEXT` | extends `unknown` = `any` |
## Properties
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
___
### context
`Readonly` **context**: `CONTEXT`
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
___
### options
**options**: `OPT`
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
## Methods
### autorun
`Optional` **autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
___
### onReady
`Optional` **onReady**(): `void`
初始化时候触发
#### Returns
`void`
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
---
url: /auto-docs/editor/classes/LegacyKeyPathExpression.md
---
# Class: LegacyKeyPathExpression\
**`Deprecated`**
Use `KeyPathExpression` instead.
Represents a key path expression, which is used to reference a variable by its key path.
## Type parameters
| Name | Type |
| :------ | :------ |
| `CustomPathJSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = `KeyPathExpressionJSON` |
## Hierarchy
- [`BaseExpression`](./BaseExpression.md)\<`CustomPathJSON`\>
↳ **`LegacyKeyPathExpression`**
## Table of contents
### Constructors
- [constructor](./LegacyKeyPathExpression.md#constructor)
### Properties
- [changeLocked](./LegacyKeyPathExpression.md#changelocked)
- [flags](./LegacyKeyPathExpression.md#flags)
- [key](./LegacyKeyPathExpression.md#key)
- [onDispose](./LegacyKeyPathExpression.md#ondispose)
- [opts](./LegacyKeyPathExpression.md#opts)
- [parent](./LegacyKeyPathExpression.md#parent)
- [refs$](./LegacyKeyPathExpression.md#refs$)
- [scope](./LegacyKeyPathExpression.md#scope)
- [toDispose](./LegacyKeyPathExpression.md#todispose)
- [value$](./LegacyKeyPathExpression.md#value$)
- [kind](./LegacyKeyPathExpression.md#kind)
### Accessors
- [children](./LegacyKeyPathExpression.md#children)
- [disposed](./LegacyKeyPathExpression.md#disposed)
- [globalVariableTable](./LegacyKeyPathExpression.md#globalvariabletable)
- [hash](./LegacyKeyPathExpression.md#hash)
- [keyPath](./LegacyKeyPathExpression.md#keypath)
- [kind](./LegacyKeyPathExpression.md#kind-1)
- [parentFields](./LegacyKeyPathExpression.md#parentfields)
- [refs](./LegacyKeyPathExpression.md#refs)
- [returnType](./LegacyKeyPathExpression.md#returntype)
- [version](./LegacyKeyPathExpression.md#version)
### Methods
- [dispatchGlobalEvent](./LegacyKeyPathExpression.md#dispatchglobalevent)
- [dispose](./LegacyKeyPathExpression.md#dispose)
- [fireChange](./LegacyKeyPathExpression.md#firechange)
- [fromJSON](./LegacyKeyPathExpression.md#fromjson)
- [getRefFields](./LegacyKeyPathExpression.md#getreffields)
- [refreshRefs](./LegacyKeyPathExpression.md#refreshrefs)
- [subscribe](./LegacyKeyPathExpression.md#subscribe)
- [toJSON](./LegacyKeyPathExpression.md#tojson)
## Constructors
### constructor
**new LegacyKeyPathExpression**\<`CustomPathJSON`\>(`params`, `opts`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `CustomPathJSON` | extends [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) = `KeyPathExpressionJSON` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`CreateASTParams`](../interfaces/CreateASTParams.md) |
| `opts` | `any` |
#### Overrides
[BaseExpression](./BaseExpression.md).[constructor](./BaseExpression.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseExpression](./BaseExpression.md).[changeLocked](./BaseExpression.md#changelocked)
___
### flags
**flags**: [`ASTNodeFlags`](../enums/ASTNodeFlags.md)
Node flags, used to record some flag information.
#### Inherited from
[BaseExpression](./BaseExpression.md).[flags](./BaseExpression.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseExpression](./BaseExpression.md).[key](./BaseExpression.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseExpression](./BaseExpression.md).[onDispose](./BaseExpression.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseExpression](./BaseExpression.md).[opts](./BaseExpression.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseExpression](./BaseExpression.md).[parent](./BaseExpression.md#parent)
___
### refs$
**refs$**: `Observable`\<`ExpressionRefs`\>
An observable that emits the referenced variable fields when they change.
#### Inherited from
[BaseExpression](./BaseExpression.md).[refs$](./BaseExpression.md#refs$)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseExpression](./BaseExpression.md).[scope](./BaseExpression.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseExpression](./BaseExpression.md).[toDispose](./BaseExpression.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseExpression](./BaseExpression.md).[value$](./BaseExpression.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseExpression](./BaseExpression.md).[kind](./BaseExpression.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseExpression.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseExpression.disposed
___
### globalVariableTable
`get` **globalVariableTable**(): [`IVariableTable`](../interfaces/IVariableTable.md)
Get the global variable table, which is used to access referenced variables.
#### Returns
[`IVariableTable`](../interfaces/IVariableTable.md)
#### Inherited from
BaseExpression.globalVariableTable
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseExpression.hash
___
### keyPath
`get` **keyPath**(): `string`[]
The key path of the variable.
#### Returns
`string`[]
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseExpression.kind
___
### parentFields
`get` **parentFields**(): [`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
Parent variable fields, sorted from closest to farthest.
#### Returns
[`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
#### Inherited from
BaseExpression.parentFields
___
### refs
`get` **refs**(): `ExpressionRefs`
The variable fields referenced by the expression.
#### Returns
`ExpressionRefs`
#### Inherited from
BaseExpression.refs
___
### returnType
`get` **returnType**(): `undefined` \| [`BaseType`](./BaseType.md)\<`any`\>
The return type of the expression.
#### Returns
`undefined` \| [`BaseType`](./BaseType.md)\<`any`\>
#### Overrides
BaseExpression.returnType
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseExpression.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[dispatchGlobalEvent](./BaseExpression.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[dispose](./BaseExpression.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[fireChange](./BaseExpression.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `KeyPathExpressionJSON` to the `KeyPathExpression`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `CustomPathJSON` | The `KeyPathExpressionJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[BaseExpression](./BaseExpression.md).[fromJSON](./BaseExpression.md#fromjson)
___
### getRefFields
**getRefFields**(): [`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
Get the variable fields referenced by the expression.
#### Returns
[`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
An array of referenced variable fields.
#### Overrides
[BaseExpression](./BaseExpression.md).[getRefFields](./BaseExpression.md#getreffields)
___
### refreshRefs
**refreshRefs**(): `void`
Refresh the variable references.
#### Returns
`void`
#### Inherited from
[BaseExpression](./BaseExpression.md).[refreshRefs](./BaseExpression.md#refreshrefs)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`LegacyKeyPathExpression`](./LegacyKeyPathExpression.md)\<`CustomPathJSON`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`LegacyKeyPathExpression`](./LegacyKeyPathExpression.md)\<`CustomPathJSON`\>, `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseExpression](./BaseExpression.md).[subscribe](./BaseExpression.md#subscribe)
___
### toJSON
**toJSON**(): `CustomPathJSON`
Serialize the `KeyPathExpression` to `KeyPathExpressionJSON`.
#### Returns
`CustomPathJSON`
The JSON representation of `KeyPathExpression`.
#### Overrides
[BaseExpression](./BaseExpression.md).[toJSON](./BaseExpression.md#tojson)
---
url: /auto-docs/editor/classes/ListNode.md
---
# Class: ListNode
Represents a list of nodes.
## Hierarchy
- [`ASTNode`](./ASTNode.md)\<[`ListNodeJSON`](../interfaces/ListNodeJSON.md)\>
↳ **`ListNode`**
## Table of contents
### Constructors
- [constructor](./ListNode.md#constructor)
### Properties
- [changeLocked](./ListNode.md#changelocked)
- [flags](./ListNode.md#flags)
- [key](./ListNode.md#key)
- [onDispose](./ListNode.md#ondispose)
- [opts](./ListNode.md#opts)
- [parent](./ListNode.md#parent)
- [scope](./ListNode.md#scope)
- [toDispose](./ListNode.md#todispose)
- [value$](./ListNode.md#value$)
- [kind](./ListNode.md#kind)
### Accessors
- [children](./ListNode.md#children)
- [disposed](./ListNode.md#disposed)
- [hash](./ListNode.md#hash)
- [kind](./ListNode.md#kind-1)
- [list](./ListNode.md#list)
- [version](./ListNode.md#version)
### Methods
- [dispatchGlobalEvent](./ListNode.md#dispatchglobalevent)
- [dispose](./ListNode.md#dispose)
- [fireChange](./ListNode.md#firechange)
- [fromJSON](./ListNode.md#fromjson)
- [subscribe](./ListNode.md#subscribe)
- [toJSON](./ListNode.md#tojson)
## Constructors
### constructor
**new ListNode**(`createParams`, `opts?`)
Constructor.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[ASTNode](./ASTNode.md).[constructor](./ASTNode.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[ASTNode](./ASTNode.md).[changeLocked](./ASTNode.md#changelocked)
___
### flags
`Readonly` **flags**: `number`
Node flags, used to record some flag information.
#### Inherited from
[ASTNode](./ASTNode.md).[flags](./ASTNode.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[ASTNode](./ASTNode.md).[key](./ASTNode.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[ASTNode](./ASTNode.md).[onDispose](./ASTNode.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[ASTNode](./ASTNode.md).[opts](./ASTNode.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[parent](./ASTNode.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[ASTNode](./ASTNode.md).[scope](./ASTNode.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[toDispose](./ASTNode.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[ASTNode](./ASTNode.md).[value$](./ASTNode.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[ASTNode](./ASTNode.md).[kind](./ASTNode.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
ASTNode.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ASTNode.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
ASTNode.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
ASTNode.kind
___
### list
`get` **list**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
The list of nodes.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
ASTNode.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispatchGlobalEvent](./ASTNode.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispose](./ASTNode.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[fireChange](./ASTNode.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `ListNodeJSON` to the `ListNode`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | [`ListNodeJSON`](../interfaces/ListNodeJSON.md) | The `ListNodeJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[ASTNode](./ASTNode.md).[fromJSON](./ASTNode.md#fromjson)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`ListNode`](./ListNode.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`ListNode`](./ListNode.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ASTNode](./ASTNode.md).[subscribe](./ASTNode.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serialize the `ListNode` to `ListNodeJSON`.
#### Returns
`Object`
The JSON representation of `ListNode`.
| Name | Type |
| :------ | :------ |
| `kind` | [`ASTKind`](../enums/ASTKind.md) |
| `list` | `any`[] |
#### Overrides
[ASTNode](./ASTNode.md).[toJSON](./ASTNode.md#tojson)
---
url: /auto-docs/editor/classes/LocalStorageService.md
---
# Class: LocalStorageService
## Implements
- [`StorageService`](../variables/StorageService-1.md)
## Table of contents
### Constructors
- [constructor](./LocalStorageService.md#constructor)
### Methods
- [getData](./LocalStorageService.md#getdata)
- [prefix](./LocalStorageService.md#prefix)
- [setData](./LocalStorageService.md#setdata)
- [setPrefix](./LocalStorageService.md#setprefix)
## Constructors
### constructor
**new LocalStorageService**()
## Methods
### getData
**getData**\<`T`\>(`key`, `defaultValue?`): `T`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `defaultValue?` | `T` |
#### Returns
`T`
#### Implementation of
StorageService.getData
___
### prefix
**prefix**(`key`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
#### Returns
`string`
___
### setData
**setData**\<`T`\>(`key`, `data`): `void`
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `string` |
| `data` | `T` |
#### Returns
`void`
#### Implementation of
StorageService.setData
___
### setPrefix
**setPrefix**(`prefix`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `prefix` | `string` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/LoggerService.md
---
# Class: LoggerService
画布全局的选择器,可以放任何东西
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./LoggerService.md#constructor)
### Properties
- [onLogger](./LoggerService.md#onlogger)
### Methods
- [dispose](./LoggerService.md#dispose)
- [onAllLayersRendered](./LoggerService.md#onalllayersrendered)
- [onFlushRequest](./LoggerService.md#onflushrequest)
## Constructors
### constructor
**new LoggerService**()
## Properties
### onLogger
`Readonly` **onLogger**: [`Event`](../interfaces/Event-1.md)\<`any`\>
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### onAllLayersRendered
**onAllLayersRendered**(): `void`
#### Returns
`void`
___
### onFlushRequest
**onFlushRequest**(`renderFrameInterval`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `renderFrameInterval` | `number` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/MapNode.md
---
# Class: MapNode
Represents a map of nodes.
## Hierarchy
- [`ASTNode`](./ASTNode.md)\<[`MapNodeJSON`](../interfaces/MapNodeJSON.md)\>
↳ **`MapNode`**
## Table of contents
### Constructors
- [constructor](./MapNode.md#constructor)
### Properties
- [changeLocked](./MapNode.md#changelocked)
- [flags](./MapNode.md#flags)
- [key](./MapNode.md#key)
- [onDispose](./MapNode.md#ondispose)
- [opts](./MapNode.md#opts)
- [parent](./MapNode.md#parent)
- [scope](./MapNode.md#scope)
- [toDispose](./MapNode.md#todispose)
- [value$](./MapNode.md#value$)
- [kind](./MapNode.md#kind)
### Accessors
- [children](./MapNode.md#children)
- [disposed](./MapNode.md#disposed)
- [hash](./MapNode.md#hash)
- [kind](./MapNode.md#kind-1)
- [version](./MapNode.md#version)
### Methods
- [dispatchGlobalEvent](./MapNode.md#dispatchglobalevent)
- [dispose](./MapNode.md#dispose)
- [fireChange](./MapNode.md#firechange)
- [fromJSON](./MapNode.md#fromjson)
- [get](./MapNode.md#get)
- [remove](./MapNode.md#remove)
- [set](./MapNode.md#set)
- [subscribe](./MapNode.md#subscribe)
- [toJSON](./MapNode.md#tojson)
## Constructors
### constructor
**new MapNode**(`createParams`, `opts?`)
Constructor.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[ASTNode](./ASTNode.md).[constructor](./ASTNode.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[ASTNode](./ASTNode.md).[changeLocked](./ASTNode.md#changelocked)
___
### flags
`Readonly` **flags**: `number`
Node flags, used to record some flag information.
#### Inherited from
[ASTNode](./ASTNode.md).[flags](./ASTNode.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[ASTNode](./ASTNode.md).[key](./ASTNode.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[ASTNode](./ASTNode.md).[onDispose](./ASTNode.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[ASTNode](./ASTNode.md).[opts](./ASTNode.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[parent](./ASTNode.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[ASTNode](./ASTNode.md).[scope](./ASTNode.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[ASTNode](./ASTNode.md).[toDispose](./ASTNode.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[ASTNode](./ASTNode.md).[value$](./ASTNode.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[ASTNode](./ASTNode.md).[kind](./ASTNode.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
ASTNode.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ASTNode.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
ASTNode.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
ASTNode.kind
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
ASTNode.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispatchGlobalEvent](./ASTNode.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[dispose](./ASTNode.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[ASTNode](./ASTNode.md).[fireChange](./ASTNode.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `MapNodeJSON` to the `MapNode`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | [`MapNodeJSON`](../interfaces/MapNodeJSON.md) | The `MapNodeJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[ASTNode](./ASTNode.md).[fromJSON](./ASTNode.md#fromjson)
___
### get
**get**\<`Node`\>(`key`): `undefined` \| `Node`
Get a node from the map.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Node` | extends [`ASTNode`](./ASTNode.md)\<`any`, `Node`\> = [`ASTNode`](./ASTNode.md)\<`any`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key` | `string` | The key of the node. |
#### Returns
`undefined` \| `Node`
The node instance if found, otherwise `undefined`.
___
### remove
**remove**(`key`): `void`
Remove a node from the map.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key` | `string` | The key of the node. |
#### Returns
`void`
___
### set
**set**\<`Node`\>(`key`, `nextJSON`): `Node`
Set a node in the map.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Node` | extends [`ASTNode`](./ASTNode.md)\<`any`, `Node`\> = [`ASTNode`](./ASTNode.md)\<`any`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `key` | `string` | The key of the node. |
| `nextJSON` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) | The JSON representation of the node. |
#### Returns
`Node`
The node instance.
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`MapNode`](./MapNode.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`MapNode`](./MapNode.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ASTNode](./ASTNode.md).[subscribe](./ASTNode.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serialize the `MapNode` to `MapNodeJSON`.
#### Returns
`Object`
The JSON representation of `MapNode`.
| Name | Type |
| :------ | :------ |
| `kind` | [`ASTKind`](../enums/ASTKind.md) |
| `map` | [`string`, [`ASTNode`](./ASTNode.md)\<`any`\>][] |
#### Overrides
[ASTNode](./ASTNode.md).[toJSON](./ASTNode.md#tojson)
---
url: /auto-docs/editor/classes/MapType.md
---
# Class: MapType
Represents a map type.
## Hierarchy
- [`BaseType`](./BaseType.md)\<`MapJSON`\>
↳ **`MapType`**
## Table of contents
### Constructors
- [constructor](./MapType.md#constructor)
### Properties
- [changeLocked](./MapType.md#changelocked)
- [flags](./MapType.md#flags)
- [key](./MapType.md#key)
- [keyType](./MapType.md#keytype)
- [onDispose](./MapType.md#ondispose)
- [opts](./MapType.md#opts)
- [parent](./MapType.md#parent)
- [scope](./MapType.md#scope)
- [toDispose](./MapType.md#todispose)
- [value$](./MapType.md#value$)
- [valueType](./MapType.md#valuetype)
- [kind](./MapType.md#kind)
### Accessors
- [children](./MapType.md#children)
- [disposed](./MapType.md#disposed)
- [hash](./MapType.md#hash)
- [kind](./MapType.md#kind-1)
- [version](./MapType.md#version)
### Methods
- [dispatchGlobalEvent](./MapType.md#dispatchglobalevent)
- [dispose](./MapType.md#dispose)
- [fireChange](./MapType.md#firechange)
- [fromJSON](./MapType.md#fromjson)
- [getByKeyPath](./MapType.md#getbykeypath)
- [isTypeEqual](./MapType.md#istypeequal)
- [subscribe](./MapType.md#subscribe)
- [toJSON](./MapType.md#tojson)
## Constructors
### constructor
**new MapType**(`createParams`, `opts?`)
Constructor.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[BaseType](./BaseType.md).[constructor](./BaseType.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseType](./BaseType.md).[changeLocked](./BaseType.md#changelocked)
___
### flags
**flags**: `number`
Node flags, used to record some flag information.
#### Inherited from
[BaseType](./BaseType.md).[flags](./BaseType.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseType](./BaseType.md).[key](./BaseType.md#key)
___
### keyType
**keyType**: [`BaseType`](./BaseType.md)\<`any`\>
The type of the keys in the map.
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseType](./BaseType.md).[onDispose](./BaseType.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseType](./BaseType.md).[opts](./BaseType.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[parent](./BaseType.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseType](./BaseType.md).[scope](./BaseType.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[toDispose](./BaseType.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseType](./BaseType.md).[value$](./BaseType.md#value$)
___
### valueType
**valueType**: [`BaseType`](./BaseType.md)\<`any`\>
The type of the values in the map.
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseType](./BaseType.md).[kind](./BaseType.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseType.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseType.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseType.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseType.kind
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseType.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispatchGlobalEvent](./BaseType.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispose](./BaseType.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[fireChange](./BaseType.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `MapJSON` to the `MapType`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `MapJSON` | The `MapJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[BaseType](./BaseType.md).[fromJSON](./BaseType.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath?`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Get a variable field by key path.
This method should be implemented by drillable types.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath?` | `string`[] | The key path to search for. |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
The variable field if found, otherwise `undefined`.
#### Inherited from
[BaseType](./BaseType.md).[getByKeyPath](./BaseType.md#getbykeypath)
___
### isTypeEqual
**isTypeEqual**(`targetTypeJSONOrKind?`): `boolean`
Check if the current type is equal to the target type.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `targetTypeJSONOrKind?` | `ASTNodeJSONOrKind` | The type to compare with. |
#### Returns
`boolean`
`true` if the types are equal, `false` otherwise.
#### Overrides
[BaseType](./BaseType.md).[isTypeEqual](./BaseType.md#istypeequal)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`MapType`](./MapType.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`MapType`](./MapType.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseType](./BaseType.md).[subscribe](./BaseType.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serialize the node to a JSON object.
#### Returns
`Object`
The JSON representation of the node.
| Name | Type |
| :------ | :------ |
| `keyType` | `any` |
| `kind` | [`ASTKind`](../enums/ASTKind.md) |
| `valueType` | `any` |
#### Overrides
[BaseType](./BaseType.md).[toJSON](./BaseType.md#tojson)
---
url: /auto-docs/editor/classes/Matrix.md
---
# Class: Matrix
The PIXIJS Matrix as a class makes it a lot faster.
Here is a representation of it:
```js
| a | c | tx|
| b | d | ty|
| 0 | 0 | 1 |
// default:
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
```
## Table of contents
### Constructors
- [constructor](./Matrix.md#constructor)
### Properties
- [a](./Matrix.md#a)
- [array](./Matrix.md#array)
- [b](./Matrix.md#b)
- [c](./Matrix.md#c)
- [d](./Matrix.md#d)
- [tx](./Matrix.md#tx)
- [ty](./Matrix.md#ty)
### Accessors
- [IDENTITY](./Matrix.md#identity)
- [TEMP\_MATRIX](./Matrix.md#temp_matrix)
### Methods
- [append](./Matrix.md#append)
- [apply](./Matrix.md#apply)
- [applyInverse](./Matrix.md#applyinverse)
- [clone](./Matrix.md#clone)
- [copyFrom](./Matrix.md#copyfrom)
- [copyTo](./Matrix.md#copyto)
- [decompose](./Matrix.md#decompose)
- [fromArray](./Matrix.md#fromarray)
- [identity](./Matrix.md#identity-1)
- [invert](./Matrix.md#invert)
- [isSimple](./Matrix.md#issimple)
- [prepend](./Matrix.md#prepend)
- [rotate](./Matrix.md#rotate)
- [scale](./Matrix.md#scale)
- [set](./Matrix.md#set)
- [setTransform](./Matrix.md#settransform)
- [toArray](./Matrix.md#toarray)
- [translate](./Matrix.md#translate)
## Constructors
### constructor
**new Matrix**(`a?`, `b?`, `c?`, `d?`, `tx?`, `ty?`)
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `a?` | `number` | x scale |
| `b?` | `number` | x skew |
| `c?` | `number` | y skew |
| `d?` | `number` | y scale |
| `tx?` | `number` | x translation |
| `ty?` | `number` | y translation |
## Properties
### a
**a**: `number`
___
### array
**array**: ``null`` \| `Float32Array`
___
### b
**b**: `number`
___
### c
**c**: `number`
___
### d
**d**: `number`
___
### tx
**tx**: `number`
___
### ty
**ty**: `number`
## Accessors
### IDENTITY
`Static` `get` **IDENTITY**(): [`Matrix`](./Matrix.md)
A default (identity) matrix
#### Returns
[`Matrix`](./Matrix.md)
___
### TEMP\_MATRIX
`Static` `get` **TEMP_MATRIX**(): [`Matrix`](./Matrix.md)
A temp matrix
#### Returns
[`Matrix`](./Matrix.md)
## Methods
### append
**append**(`matrix`): [`Matrix`](./Matrix.md)
矩阵乘法,当前矩阵 * matrix
Appends the given Matrix to this Matrix.
#### Parameters
| Name | Type |
| :------ | :------ |
| `matrix` | [`Matrix`](./Matrix.md) |
#### Returns
[`Matrix`](./Matrix.md)
___
### apply
**apply**(`pos`, `newPos?`): [`IPoint`](../interfaces/IPoint.md)
Get a new position with the current transformation applied.
Can be used to go from a child's coordinate space to the world coordinate space. (e.g. rendering)
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `pos` | [`IPoint`](../interfaces/IPoint.md) | The origin |
| `newPos?` | [`IPoint`](../interfaces/IPoint.md) | The point that the new position is assigned to (allowed to be same as input) |
#### Returns
[`IPoint`](../interfaces/IPoint.md)
The new point, transformed through this matrix
___
### applyInverse
**applyInverse**(`pos`, `newPos?`): [`IPoint`](../interfaces/IPoint.md)
Get a new position with the inverse of the current transformation applied.
Can be used to go from the world coordinate space to a child's coordinate space. (e.g. input)
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `pos` | [`IPoint`](../interfaces/IPoint.md) | The origin |
| `newPos?` | [`IPoint`](../interfaces/IPoint.md) | The point that the new position is assigned to (allowed to be same as input) |
#### Returns
[`IPoint`](../interfaces/IPoint.md)
The new point, inverse-transformed through this matrix
___
### clone
**clone**(): [`Matrix`](./Matrix.md)
Creates a new Matrix object with the same values as this one.
#### Returns
[`Matrix`](./Matrix.md)
A copy of this matrix.
___
### copyFrom
**copyFrom**(`matrix`): [`Matrix`](./Matrix.md)
Changes the values of the matrix to be the same as the ones in given matrix
#### Parameters
| Name | Type |
| :------ | :------ |
| `matrix` | [`Matrix`](./Matrix.md) |
#### Returns
[`Matrix`](./Matrix.md)
___
### copyTo
**copyTo**(`matrix`): [`Matrix`](./Matrix.md)
Changes the values of the given matrix to be the same as the ones in this matrix
#### Parameters
| Name | Type |
| :------ | :------ |
| `matrix` | [`Matrix`](./Matrix.md) |
#### Returns
[`Matrix`](./Matrix.md)
The matrix given in parameter with its values updated.
___
### decompose
**decompose**(`transform`): [`Transform`](./Transform.md)
Decomposes the matrix (x, y, scaleX, scaleY, and rotation) and sets the properties on to a transform.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `transform` | [`Transform`](./Transform.md) | The transform to apply the properties to. |
#### Returns
[`Transform`](./Transform.md)
The transform with the newly applied properties
___
### fromArray
**fromArray**(`array`): [`Matrix`](./Matrix.md)
Creates a Matrix object based on the given array. The Element to Matrix mapping order is as follows:
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `array` | `number`[] | The array that the matrix will be populated from. |
#### Returns
[`Matrix`](./Matrix.md)
___
### identity
**identity**(): [`Matrix`](./Matrix.md)
Resets this Matrix to an identity (default) matrix.
#### Returns
[`Matrix`](./Matrix.md)
___
### invert
**invert**(): [`Matrix`](./Matrix.md)
Inverts this matrix
#### Returns
[`Matrix`](./Matrix.md)
___
### isSimple
**isSimple**(): `boolean`
未做旋转的矩阵
#### Returns
`boolean`
___
### prepend
**prepend**(`matrix`): [`Matrix`](./Matrix.md)
矩阵乘法,matrix * 当前矩阵
Prepends the given Matrix to this Matrix.
#### Parameters
| Name | Type |
| :------ | :------ |
| `matrix` | [`Matrix`](./Matrix.md) |
#### Returns
[`Matrix`](./Matrix.md)
___
### rotate
**rotate**(`angle`): [`Matrix`](./Matrix.md)
Applies a rotation transformation to the matrix.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `angle` | `number` | The angle in radians. |
#### Returns
[`Matrix`](./Matrix.md)
___
### scale
**scale**(`x`, `y`): [`Matrix`](./Matrix.md)
Applies a scale transformation to the matrix.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `x` | `number` | The amount to scale horizontally |
| `y` | `number` | The amount to scale vertically |
#### Returns
[`Matrix`](./Matrix.md)
___
### set
**set**(`a`, `b`, `c`, `d`, `tx`, `ty`): [`Matrix`](./Matrix.md)
sets the matrix properties
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `a` | `number` | Matrix component |
| `b` | `number` | Matrix component |
| `c` | `number` | Matrix component |
| `d` | `number` | Matrix component |
| `tx` | `number` | Matrix component |
| `ty` | `number` | Matrix component |
#### Returns
[`Matrix`](./Matrix.md)
___
### setTransform
**setTransform**(`x`, `y`, `pivotX`, `pivotY`, `scaleX`, `scaleY`, `rotation`, `skewX`, `skewY`): [`Matrix`](./Matrix.md)
Sets the matrix based on all the available properties
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `x` | `number` | Position on the x axis |
| `y` | `number` | Position on the y axis |
| `pivotX` | `number` | Pivot on the x axis |
| `pivotY` | `number` | Pivot on the y axis |
| `scaleX` | `number` | Scale on the x axis |
| `scaleY` | `number` | Scale on the y axis |
| `rotation` | `number` | Rotation in radians |
| `skewX` | `number` | Skew on the x axis |
| `skewY` | `number` | Skew on the y axis |
#### Returns
[`Matrix`](./Matrix.md)
___
### toArray
**toArray**(`transpose`, `out?`): `Float32Array`
Creates an array from the current Matrix object.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `transpose` | `boolean` | Whether we need to transpose the matrix or not |
| `out?` | `Float32Array` | - |
#### Returns
`Float32Array`
the newly created array which contains the matrix
___
### translate
**translate**(`x`, `y`): [`Matrix`](./Matrix.md)
Translates the matrix on the x and y.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `x` | `number` | How much to translate x by |
| `y` | `number` | How much to translate y by |
#### Returns
[`Matrix`](./Matrix.md)
---
url: /auto-docs/editor/classes/MutableToken.md
---
# Class: MutableToken
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Implements
- [`CancellationToken`](../interfaces/CancellationToken-1.md)
## Table of contents
### Constructors
- [constructor](./MutableToken.md#constructor)
### Accessors
- [isCancellationRequested](./MutableToken.md#iscancellationrequested)
- [onCancellationRequested](./MutableToken.md#oncancellationrequested)
### Methods
- [cancel](./MutableToken.md#cancel)
- [dispose](./MutableToken.md#dispose)
## Constructors
### constructor
**new MutableToken**()
## Accessors
### isCancellationRequested
`get` **isCancellationRequested**(): `boolean`
A flag signalling is cancellation has been requested.
#### Returns
`boolean`
#### Implementation of
[CancellationToken](../interfaces/CancellationToken-1.md).[isCancellationRequested](../interfaces/CancellationToken-1.md#iscancellationrequested)
___
### onCancellationRequested
`get` **onCancellationRequested**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
An event which fires when cancellation is requested. This event
only ever fires `once` as cancellation can only happen once. Listeners
that are registered after cancellation will be called (next event loop run),
but also only once.
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Implementation of
[CancellationToken](../interfaces/CancellationToken-1.md).[onCancellationRequested](../interfaces/CancellationToken-1.md#oncancellationrequested)
## Methods
### cancel
**cancel**(): `void`
#### Returns
`void`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
---
url: /auto-docs/editor/classes/NodeClient.md
---
# Class: NodeClient
## Table of contents
### Constructors
- [constructor](./NodeClient.md#constructor)
### Properties
- [nodeFocusService](./NodeClient.md#nodefocusservice)
## Constructors
### constructor
**new NodeClient**()
## Properties
### nodeFocusService
**nodeFocusService**: [`NodeFocusService`](./NodeFocusService.md)
---
url: /auto-docs/editor/classes/NodeFocusService.md
---
# Class: NodeFocusService
## Table of contents
### Constructors
- [constructor](./NodeFocusService.md#constructor)
### Properties
- [playground](./NodeFocusService.md#playground)
### Methods
- [focusNodeFormItem](./NodeFocusService.md#focusnodeformitem)
- [highlightNodeFormItem](./NodeFocusService.md#highlightnodeformitem)
## Constructors
### constructor
**new NodeFocusService**()
## Properties
### playground
`Readonly` **playground**: [`Playground`](./Playground.md)\<`any`\>
## Methods
### focusNodeFormItem
**focusNodeFormItem**(`formItem`, `options?`): `Promise`\<`void`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `formItem` | `FormItem` |
| `options?` | [`FocusNodeFormItemOptions`](../interfaces/FocusNodeFormItemOptions.md) |
#### Returns
`Promise`\<`void`\>
___
### highlightNodeFormItem
**highlightNodeFormItem**(`formItem`, `options?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `formItem` | `FormItem` |
| `options?` | [`HighLightOptions`](../interfaces/HighLightOptions.md) |
#### Returns
`void`
---
url: /auto-docs/editor/classes/NumberType.md
---
# Class: NumberType
Represents a number type.
## Hierarchy
- [`BaseType`](./BaseType.md)
↳ **`NumberType`**
## Table of contents
### Constructors
- [constructor](./NumberType.md#constructor)
### Properties
- [changeLocked](./NumberType.md#changelocked)
- [flags](./NumberType.md#flags)
- [key](./NumberType.md#key)
- [onDispose](./NumberType.md#ondispose)
- [opts](./NumberType.md#opts)
- [parent](./NumberType.md#parent)
- [scope](./NumberType.md#scope)
- [toDispose](./NumberType.md#todispose)
- [value$](./NumberType.md#value$)
- [kind](./NumberType.md#kind)
### Accessors
- [children](./NumberType.md#children)
- [disposed](./NumberType.md#disposed)
- [hash](./NumberType.md#hash)
- [kind](./NumberType.md#kind-1)
- [version](./NumberType.md#version)
### Methods
- [dispatchGlobalEvent](./NumberType.md#dispatchglobalevent)
- [dispose](./NumberType.md#dispose)
- [fireChange](./NumberType.md#firechange)
- [fromJSON](./NumberType.md#fromjson)
- [getByKeyPath](./NumberType.md#getbykeypath)
- [isTypeEqual](./NumberType.md#istypeequal)
- [subscribe](./NumberType.md#subscribe)
- [toJSON](./NumberType.md#tojson)
## Constructors
### constructor
**new NumberType**(`createParams`, `opts?`)
Constructor.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[BaseType](./BaseType.md).[constructor](./BaseType.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseType](./BaseType.md).[changeLocked](./BaseType.md#changelocked)
___
### flags
**flags**: `number`
Node flags, used to record some flag information.
#### Inherited from
[BaseType](./BaseType.md).[flags](./BaseType.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseType](./BaseType.md).[key](./BaseType.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseType](./BaseType.md).[onDispose](./BaseType.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseType](./BaseType.md).[opts](./BaseType.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[parent](./BaseType.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseType](./BaseType.md).[scope](./BaseType.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[toDispose](./BaseType.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseType](./BaseType.md).[value$](./BaseType.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseType](./BaseType.md).[kind](./BaseType.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseType.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseType.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseType.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseType.kind
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseType.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispatchGlobalEvent](./BaseType.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispose](./BaseType.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[fireChange](./BaseType.md#firechange)
___
### fromJSON
**fromJSON**(): `void`
Deserializes the `NumberJSON` to the `NumberType`.
#### Returns
`void`
#### Overrides
[BaseType](./BaseType.md).[fromJSON](./BaseType.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath?`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Get a variable field by key path.
This method should be implemented by drillable types.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath?` | `string`[] | The key path to search for. |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
The variable field if found, otherwise `undefined`.
#### Inherited from
[BaseType](./BaseType.md).[getByKeyPath](./BaseType.md#getbykeypath)
___
### isTypeEqual
**isTypeEqual**(`targetTypeJSONOrKind?`): `boolean`
Check if the current type is equal to the target type.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `targetTypeJSONOrKind?` | `ASTNodeJSONOrKind` | The type to compare with. |
#### Returns
`boolean`
`true` if the types are equal, `false` otherwise.
#### Inherited from
[BaseType](./BaseType.md).[isTypeEqual](./BaseType.md#istypeequal)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`NumberType`](./NumberType.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`NumberType`](./NumberType.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseType](./BaseType.md).[subscribe](./BaseType.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serializes the current ASTNode to ASTNodeJSON.
#### Returns
`Object`
#### Overrides
[BaseType](./BaseType.md).[toJSON](./BaseType.md#tojson)
---
url: /auto-docs/editor/classes/OBBRect.md
---
# Class: OBBRect
Oriented Bounding Box (OBB)
**`See`**
https://en.wikipedia.org/wiki/Bounding_volume
## Table of contents
### Constructors
- [constructor](./OBBRect.md#constructor)
### Properties
- [axesX](./OBBRect.md#axesx)
- [axesY](./OBBRect.md#axesy)
- [centerPoint](./OBBRect.md#centerpoint)
### Methods
- [getProjectionRadius](./OBBRect.md#getprojectionradius)
## Constructors
### constructor
**new OBBRect**(`centerPoint`, `width`, `height`, `rotation`)
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `centerPoint` | [`IPoint`](../interfaces/IPoint.md) | - |
| `width` | `number` | - |
| `height` | `number` | - |
| `rotation` | `number` | in radian |
## Properties
### axesX
`Readonly` **axesX**: `Vector2`
___
### axesY
`Readonly` **axesY**: `Vector2`
___
### centerPoint
`Readonly` **centerPoint**: `Vector2`
## Methods
### getProjectionRadius
**getProjectionRadius**(`axis`): `number`
计算投影半径
#### Parameters
| Name | Type |
| :------ | :------ |
| `axis` | `Vector2` |
#### Returns
`number`
---
url: /auto-docs/editor/classes/ObjectType.md
---
# Class: ObjectType
Represents an object type.
## Hierarchy
- [`BaseType`](./BaseType.md)\<[`ObjectJSON`](../interfaces/ObjectJSON.md)\>
↳ **`ObjectType`**
## Table of contents
### Constructors
- [constructor](./ObjectType.md#constructor)
### Properties
- [changeLocked](./ObjectType.md#changelocked)
- [flags](./ObjectType.md#flags)
- [key](./ObjectType.md#key)
- [onDispose](./ObjectType.md#ondispose)
- [opts](./ObjectType.md#opts)
- [parent](./ObjectType.md#parent)
- [properties](./ObjectType.md#properties)
- [propertyTable](./ObjectType.md#propertytable)
- [scope](./ObjectType.md#scope)
- [toDispose](./ObjectType.md#todispose)
- [value$](./ObjectType.md#value$)
- [kind](./ObjectType.md#kind)
### Accessors
- [children](./ObjectType.md#children)
- [disposed](./ObjectType.md#disposed)
- [hash](./ObjectType.md#hash)
- [kind](./ObjectType.md#kind-1)
- [version](./ObjectType.md#version)
### Methods
- [dispatchGlobalEvent](./ObjectType.md#dispatchglobalevent)
- [dispose](./ObjectType.md#dispose)
- [fireChange](./ObjectType.md#firechange)
- [fromJSON](./ObjectType.md#fromjson)
- [getByKeyPath](./ObjectType.md#getbykeypath)
- [isTypeEqual](./ObjectType.md#istypeequal)
- [subscribe](./ObjectType.md#subscribe)
- [toJSON](./ObjectType.md#tojson)
## Constructors
### constructor
**new ObjectType**(`createParams`, `opts?`)
Constructor.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[BaseType](./BaseType.md).[constructor](./BaseType.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseType](./BaseType.md).[changeLocked](./BaseType.md#changelocked)
___
### flags
**flags**: [`ASTNodeFlags`](../enums/ASTNodeFlags.md)
Node flags, used to record some flag information.
#### Overrides
[BaseType](./BaseType.md).[flags](./BaseType.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseType](./BaseType.md).[key](./BaseType.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseType](./BaseType.md).[onDispose](./BaseType.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseType](./BaseType.md).[opts](./BaseType.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[parent](./BaseType.md#parent)
___
### properties
**properties**: [`Property`](./Property.md)\<`any`\>[]
An array of `Property` instances.
___
### propertyTable
**propertyTable**: `Map`\<`string`, [`Property`](./Property.md)\<`any`\>\>
A map of property keys to `Property` instances.
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseType](./BaseType.md).[scope](./BaseType.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseType](./BaseType.md).[toDispose](./BaseType.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseType](./BaseType.md).[value$](./BaseType.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseType](./BaseType.md).[kind](./BaseType.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseType.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseType.disposed
___
### hash
`get` **hash**(): `string`
The unique hash value of the ASTNode.
- It will update when the ASTNode is updated.
- You can used to check two ASTNode are equal.
#### Returns
`string`
#### Inherited from
BaseType.hash
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseType.kind
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseType.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispatchGlobalEvent](./BaseType.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[dispose](./BaseType.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseType](./BaseType.md).[fireChange](./BaseType.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserializes the `ObjectJSON` to the `ObjectType`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | [`ObjectJSON`](../interfaces/ObjectJSON.md)\<`any`\> | The `ObjectJSON` to deserialize. |
#### Returns
`void`
#### Overrides
[BaseType](./BaseType.md).[fromJSON](./BaseType.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath`): `undefined` \| [`Property`](./Property.md)\<`any`\>
Get a variable field by key path.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `keyPath` | `string`[] | The key path to search for. |
#### Returns
`undefined` \| [`Property`](./Property.md)\<`any`\>
The variable field if found, otherwise `undefined`.
#### Overrides
[BaseType](./BaseType.md).[getByKeyPath](./BaseType.md#getbykeypath)
___
### isTypeEqual
**isTypeEqual**(`targetTypeJSONOrKind?`): `boolean`
Check if the current type is equal to the target type.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `targetTypeJSONOrKind?` | `ASTNodeJSONOrKind` | The type to compare with. |
#### Returns
`boolean`
`true` if the types are equal, `false` otherwise.
#### Overrides
[BaseType](./BaseType.md).[isTypeEqual](./BaseType.md#istypeequal)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`ObjectType`](./ObjectType.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`ObjectType`](./ObjectType.md), `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseType](./BaseType.md).[subscribe](./BaseType.md#subscribe)
___
### toJSON
**toJSON**(): `Object`
Serialize the `ObjectType` to `ObjectJSON`.
#### Returns
`Object`
The JSON representation of `ObjectType`.
| Name | Type |
| :------ | :------ |
| `properties` | `BaseVariableFieldJSON`\<`any`\>[] |
#### Overrides
[BaseType](./BaseType.md).[toJSON](./BaseType.md#tojson)
---
url: /auto-docs/editor/classes/OpacityData.md
---
# Class: OpacityData
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`OpacitySchema`](../types/OpacitySchema.md)\>
↳ **`OpacityData`**
## Table of contents
### Constructors
- [constructor](./OpacityData.md#constructor)
### Properties
- [entity](./OpacityData.md#entity)
- [onDataChange](./OpacityData.md#ondatachange)
- [onWillChange](./OpacityData.md#onwillchange)
- [opts](./OpacityData.md#opts)
- [toDispose](./OpacityData.md#todispose)
- [type](./OpacityData.md#type)
### Accessors
- [changeLocked](./OpacityData.md#changelocked)
- [data](./OpacityData.md#data)
- [disposed](./OpacityData.md#disposed)
- [onDispose](./OpacityData.md#ondispose)
- [type](./OpacityData.md#type-1)
- [version](./OpacityData.md#version)
### Methods
- [checkChanged](./OpacityData.md#checkchanged)
- [dispose](./OpacityData.md#dispose)
- [fireChange](./OpacityData.md#firechange)
- [fireWillChange](./OpacityData.md#firewillchange)
- [fromJSON](./OpacityData.md#fromjson)
- [fullyUpdate](./OpacityData.md#fullyupdate)
- [getDefaultData](./OpacityData.md#getdefaultdata)
- [toJSON](./OpacityData.md#tojson)
- [update](./OpacityData.md#update)
## Constructors
### constructor
**new OpacityData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`number`, {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`number`, {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | `number` |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `number` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): `number`
初始化数据
#### Returns
`number`
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `number` \| ``"toFixed"`` \| ``"toExponential"`` \| ``"toPrecision"`` \| ``"toString"`` \| ``"valueOf"`` \| ``"toLocaleString"`` |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/editor/classes/OriginData.md
---
# Class: OriginData
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`OriginSchema`](../interfaces/OriginSchema.md)\>
↳ **`OriginData`**
## Implements
- [`OriginSchema`](../interfaces/OriginSchema.md)
## Table of contents
### Constructors
- [constructor](./OriginData.md#constructor)
### Properties
- [entity](./OriginData.md#entity)
- [onDataChange](./OriginData.md#ondatachange)
- [onWillChange](./OriginData.md#onwillchange)
- [opts](./OriginData.md#opts)
- [toDispose](./OriginData.md#todispose)
- [type](./OriginData.md#type)
### Accessors
- [changeLocked](./OriginData.md#changelocked)
- [data](./OriginData.md#data)
- [disposed](./OriginData.md#disposed)
- [onDispose](./OriginData.md#ondispose)
- [type](./OriginData.md#type-1)
- [version](./OriginData.md#version)
- [x](./OriginData.md#x)
- [y](./OriginData.md#y)
### Methods
- [checkChanged](./OriginData.md#checkchanged)
- [dispose](./OriginData.md#dispose)
- [fireChange](./OriginData.md#firechange)
- [fireWillChange](./OriginData.md#firewillchange)
- [fromJSON](./OriginData.md#fromjson)
- [fullyUpdate](./OriginData.md#fullyupdate)
- [getDefaultData](./OriginData.md#getdefaultdata)
- [toJSON](./OriginData.md#tojson)
- [update](./OriginData.md#update)
## Constructors
### constructor
**new OriginData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`OriginSchema`](../interfaces/OriginSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`OriginSchema`](../interfaces/OriginSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
___
### x
`get` **x**(): `number`
#### Returns
`number`
#### Implementation of
[OriginSchema](../interfaces/OriginSchema.md).[x](../interfaces/OriginSchema.md#x)
`set` **x**(`x`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `x` | `number` |
#### Returns
`void`
#### Implementation of
[OriginSchema](../interfaces/OriginSchema.md).[x](../interfaces/OriginSchema.md#x)
___
### y
`get` **y**(): `number`
#### Returns
`number`
#### Implementation of
[OriginSchema](../interfaces/OriginSchema.md).[y](../interfaces/OriginSchema.md#y)
`set` **y**(`y`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `y` | `number` |
#### Returns
`void`
#### Implementation of
[OriginSchema](../interfaces/OriginSchema.md).[y](../interfaces/OriginSchema.md#y)
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`OriginSchema`](../interfaces/OriginSchema.md) \| `Partial`\<[`OriginSchema`](../interfaces/OriginSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`OriginSchema`](../interfaces/OriginSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`OriginSchema`](../interfaces/OriginSchema.md)
初始化数据
#### Returns
[`OriginSchema`](../interfaces/OriginSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`OriginSchema`](../interfaces/OriginSchema.md) \| `Partial`\<[`OriginSchema`](../interfaces/OriginSchema.md)\> \| keyof [`OriginSchema`](../interfaces/OriginSchema.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/editor/classes/PipelineEntitiesImpl.md
---
# Class: PipelineEntitiesImpl
注入到 Layer 中的实体选择器
## Implements
- [`PipelineEntities`](../interfaces/PipelineEntities.md)
## Table of contents
### Constructors
- [constructor](./PipelineEntitiesImpl.md#constructor)
### Accessors
- [size](./PipelineEntitiesImpl.md#size)
### Methods
- [[iterator]](PipelineEntitiesImpl.md#[iterator])
- [createEntity](./PipelineEntitiesImpl.md#createentity)
- [get](./PipelineEntitiesImpl.md#get)
- [getConfig](./PipelineEntitiesImpl.md#getconfig)
- [getEntities](./PipelineEntitiesImpl.md#getentities)
- [getEntityDatas](./PipelineEntitiesImpl.md#getentitydatas)
- [has](./PipelineEntitiesImpl.md#has)
- [load](./PipelineEntitiesImpl.md#load)
- [removeEntities](./PipelineEntitiesImpl.md#removeentities)
- [updateConfig](./PipelineEntitiesImpl.md#updateconfig)
## Constructors
### constructor
**new PipelineEntitiesImpl**(`entityManager`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityManager` | [`EntityManager`](./EntityManager.md) |
## Accessors
### size
`get` **size**(): `number`
当前画布订阅的实体数目
#### Returns
`number`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[size](../interfaces/PipelineEntities.md#size)
## Methods
### [iterator]
**[iterator]**(): `Iterator`\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>, `any`, `undefined`\>
#### Returns
`Iterator`\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>, `any`, `undefined`\>
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[[iterator]](../interfaces/PipelineEntities.md#[iterator])
___
### createEntity
**createEntity**\<`E`\>(`registry`, `opts?`): `E`
创建实体
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `opts?` | `Omit`\<`E`[``"__opts_type__"``], ``"entityManager"``\> |
#### Returns
`E`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[createEntity](../interfaces/PipelineEntities.md#createentity)
___
### get
**get**\<`T`\>(`registry`, `id?`): `undefined` \| `T`
获取单个实体,如果该实体是单例且被注册过,则会自动创建
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `id?` | `string` |
#### Returns
`undefined` \| `T`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[get](../interfaces/PipelineEntities.md#get)
___
### getConfig
**getConfig**\<`E`\>(`registry`): `undefined` \| `E`[``"config"``]
获取配置信息
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`ConfigEntity`](./ConfigEntity.md)\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md), [`EntityOpts`](../interfaces/EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`undefined` \| `E`[``"config"``]
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[getConfig](../interfaces/PipelineEntities.md#getconfig)
___
### getEntities
**getEntities**\<`T`\>(`registry`): `T`[]
获取多个实体
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`T`[]
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[getEntities](../interfaces/PipelineEntities.md#getentities)
___
### getEntityDatas
**getEntityDatas**\<`T`\>(`entityRegistry`, `dataRegistry`): `T`[]
获取 entity
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `T`\> = [`EntityData`](./EntityData.md)\<`any`, {}\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `dataRegistry` | `T` |
#### Returns
`T`[]
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[getEntityDatas](../interfaces/PipelineEntities.md#getentitydatas)
___
### has
**has**(`registy`): `boolean`
是否存在
#### Parameters
| Name | Type |
| :------ | :------ |
| `registy` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`boolean`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[has](../interfaces/PipelineEntities.md#has)
___
### load
**load**(`observeEntites`, `observeDatas`): `void`
加载订阅数据,会缓存到 layer 内部,layer 只能拿到订阅数据的子集
#### Parameters
| Name | Type |
| :------ | :------ |
| `observeEntites` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>[] |
| `observeDatas` | [`EntityData`](./EntityData.md)\<`any`, {}\>[] |
#### Returns
`void`
___
### removeEntities
**removeEntities**(`registry`): `void`
批量删除实体
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[removeEntities](../interfaces/PipelineEntities.md#removeentities)
___
### updateConfig
**updateConfig**\<`E`\>(`registry`, `props`): `void`
更新配置数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `E` | extends [`ConfigEntity`](./ConfigEntity.md)\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md), [`EntityOpts`](../interfaces/EntityOpts.md), `E`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `registry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `props` | `Partial`\<`E`[``"config"``]\> |
#### Returns
`void`
#### Implementation of
[PipelineEntities](../interfaces/PipelineEntities.md).[updateConfig](../interfaces/PipelineEntities.md#updateconfig)
---
url: /auto-docs/editor/classes/PipelineEntitiesSelector.md
---
# Class: PipelineEntitiesSelector
选择器用来在 pipeline 绘制之前,筛选并注入 entities
## Table of contents
### Constructors
- [constructor](./PipelineEntitiesSelector.md#constructor)
### Properties
- [ableLayerMap](./PipelineEntitiesSelector.md#ablelayermap)
- [entityLayerMap](./PipelineEntitiesSelector.md#entitylayermap)
- [entityManager](./PipelineEntitiesSelector.md#entitymanager)
### Methods
- [getLayerData](./PipelineEntitiesSelector.md#getlayerdata)
- [getLayerEntities](./PipelineEntitiesSelector.md#getlayerentities)
- [getLayerEntityDatas](./PipelineEntitiesSelector.md#getlayerentitydatas)
- [subscribeEntities](./PipelineEntitiesSelector.md#subscribeentities)
- [subscribleEntityByData](./PipelineEntitiesSelector.md#subscribleentitybydata)
## Constructors
### constructor
**new PipelineEntitiesSelector**()
## Properties
### ableLayerMap
`Readonly` **ableLayerMap**: `Map`\<`string`, `Set`\<[`Layer`](./Layer.md)\<`any`, `any`\>\>\>
___
### entityLayerMap
`Readonly` **entityLayerMap**: `Map`\<`string`, `Set`\<[`Layer`](./Layer.md)\<`any`, `any`\>\>\>
___
### entityManager
**entityManager**: [`EntityManager`](./EntityManager.md)
## Methods
### getLayerData
**getLayerData**(`layer`): `Object`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `changed` | `boolean` |
| `observeDatas` | [`EntityData`](./EntityData.md)\<`any`, {}\>[] |
| `observeEntities` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>[] |
___
### getLayerEntities
**getLayerEntities**(`layer`): `Object`
查询 layer 关联的实体
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `changed` | `boolean` |
| `entities` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>[] |
___
### getLayerEntityDatas
**getLayerEntityDatas**(`layer`): `Object`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `changed` | `boolean` |
| `datas` | [`EntityData`](./EntityData.md)\<`any`, {}\>[] |
___
### subscribeEntities
**subscribeEntities**(`layer`, `entities`): `void`
订阅关联的 entity,会影响 autorun
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
| `entities` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>[] |
#### Returns
`void`
___
### subscribleEntityByData
**subscribleEntityByData**(`layer`, `entity`, `data`): `void`
订阅 data 数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
| `entity` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
| `data` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`void`
---
url: /auto-docs/editor/classes/PipelineRegistry.md
---
# Class: PipelineRegistry
pipeline 注册器,用于注册一些事件
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
- `IMessageHandler`
## Table of contents
### Constructors
- [constructor](./PipelineRegistry.md#constructor)
### Properties
- [context](./PipelineRegistry.md#context)
- [entityManager](./PipelineRegistry.md#entitymanager)
- [layerFactory](./PipelineRegistry.md#layerfactory)
- [onBlur](./PipelineRegistry.md#onblur)
- [onBlurEmitter](./PipelineRegistry.md#onbluremitter)
- [onFocus](./PipelineRegistry.md#onfocus)
- [onFocusEmitter](./PipelineRegistry.md#onfocusemitter)
- [onResize](./PipelineRegistry.md#onresize)
- [onResizeEmitter](./PipelineRegistry.md#onresizeemitter)
- [onScroll](./PipelineRegistry.md#onscroll)
- [onScrollEmitter](./PipelineRegistry.md#onscrollemitter)
- [onZoom](./PipelineRegistry.md#onzoom)
- [onZoomEmitter](./PipelineRegistry.md#onzoomemitter)
- [renderer](./PipelineRegistry.md#renderer)
- [selector](./PipelineRegistry.md#selector)
### Accessors
- [configEntity](./PipelineRegistry.md#configentity)
### Methods
- [\_listenEvent](./PipelineRegistry.md#_listenevent)
- [dispose](./PipelineRegistry.md#dispose)
- [getLayer](./PipelineRegistry.md#getlayer)
- [listenGlobalEvent](./PipelineRegistry.md#listenglobalevent)
- [listenPlaygroundEvent](./PipelineRegistry.md#listenplaygroundevent)
- [processMessage](./PipelineRegistry.md#processmessage)
- [ready](./PipelineRegistry.md#ready)
- [registerLayer](./PipelineRegistry.md#registerlayer)
## Constructors
### constructor
**new PipelineRegistry**()
## Properties
### context
**context**: `any`
___
### entityManager
**entityManager**: [`EntityManager`](./EntityManager.md)
___
### layerFactory
**layerFactory**: [`PipelineLayerFactory`](../variables/PipelineLayerFactory-1.md)
___
### onBlur
`Readonly` **onBlur**: [`Event`](../interfaces/Event-1.md)\<`void`\>
___
### onBlurEmitter
`Readonly` **onBlurEmitter**: [`Emitter`](./Emitter.md)\<`void`\>
___
### onFocus
`Readonly` **onFocus**: [`Event`](../interfaces/Event-1.md)\<`void`\>
___
### onFocusEmitter
`Readonly` **onFocusEmitter**: [`Emitter`](./Emitter.md)\<`void`\>
___
### onResize
`Readonly` **onResize**: [`Event`](../interfaces/Event-1.md)\<[`PipelineDimension`](../interfaces/PipelineDimension.md)\>
pipline 大小变化时候会触发
___
### onResizeEmitter
`Readonly` **onResizeEmitter**: [`Emitter`](./Emitter.md)\<[`PipelineDimension`](../interfaces/PipelineDimension.md)\>
___
### onScroll
`Readonly` **onScroll**: [`Event`](../interfaces/Event-1.md)\<\{ `scrollX`: `number` ; `scrollY`: `number` }\>
___
### onScrollEmitter
`Readonly` **onScrollEmitter**: [`Emitter`](./Emitter.md)\<\{ `scrollX`: `number` ; `scrollY`: `number` }\>
___
### onZoom
`Readonly` **onZoom**: [`Event`](../interfaces/Event-1.md)\<`number`\>
___
### onZoomEmitter
`Readonly` **onZoomEmitter**: [`Emitter`](./Emitter.md)\<`number`\>
___
### renderer
**renderer**: [`PipelineRenderer`](./PipelineRenderer.md)
___
### selector
**selector**: [`PipelineEntitiesSelector`](./PipelineEntitiesSelector.md)
## Accessors
### configEntity
`get` **configEntity**(): [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
#### Returns
[`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
## Methods
### \_listenEvent
**_listenEvent**(`name`, `handle`, `isGlobal`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | [`PipelineEventHandler`](../types/PipelineEventHandler.md) |
| `isGlobal` | `boolean` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### getLayer
**getLayer**\<`T`\>(`layerRegistry`): `undefined` \| `T`
获取 layer
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
#### Returns
`undefined` \| `T`
___
### listenGlobalEvent
**listenGlobalEvent**(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听全局的事件
#### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `undefined` \| `boolean` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听画布上的浏览器事件
#### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `undefined` \| `boolean` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
___
### processMessage
**processMessage**(`msg`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `msg` | `Message` |
#### Returns
`void`
#### Implementation of
IMessageHandler.processMessage
___
### ready
**ready**(): `void`
#### Returns
`void`
___
### registerLayer
**registerLayer**\<`P`\>(`layerRegistry`, `layerOptions?`): `void`
注册 layer
#### Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`Layer`](./Layer.md)\<`any`, `any`, `P`\> = [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`P`\> | |
| `layerOptions?` | `P`[``"options"``] | 配置 |
#### Returns
`void`
---
url: /auto-docs/editor/classes/PipelineRenderer.md
---
# Class: PipelineRenderer
pipeline 渲染器
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
- `IMessageHandler`
## Table of contents
### Constructors
- [constructor](./PipelineRenderer.md#constructor)
### Properties
- [isReady](./PipelineRenderer.md#isready)
- [layerAutorunMap](./PipelineRenderer.md#layerautorunmap)
- [layerFlushMessages](./PipelineRenderer.md#layerflushmessages)
- [layerRenderedMap](./PipelineRenderer.md#layerrenderedmap)
- [layers](./PipelineRenderer.md#layers)
- [node](./PipelineRenderer.md#node)
- [onAllLayersRendered](./PipelineRenderer.md#onalllayersrendered)
### Methods
- [addLayer](./PipelineRenderer.md#addlayer)
- [dispose](./PipelineRenderer.md#dispose)
- [flush](./PipelineRenderer.md#flush)
- [processMessage](./PipelineRenderer.md#processmessage)
- [ready](./PipelineRenderer.md#ready)
- [reportLayerRendered](./PipelineRenderer.md#reportlayerrendered)
- [toReactComponent](./PipelineRenderer.md#toreactcomponent)
- [updateLayer](./PipelineRenderer.md#updatelayer)
## Constructors
### constructor
**new PipelineRenderer**(`selector`, `entityManager`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `selector` | [`PipelineEntitiesSelector`](./PipelineEntitiesSelector.md) |
| `entityManager` | [`EntityManager`](./EntityManager.md) |
## Properties
### isReady
**isReady**: `boolean`
___
### layerAutorunMap
`Readonly` **layerAutorunMap**: `Map`\<[`Layer`](./Layer.md)\<`any`, `any`\>, () => `void`\>
___
### layerFlushMessages
`Readonly` **layerFlushMessages**: `Map`\<[`Layer`](./Layer.md)\<`any`, `any`\>, [`FlushLayerMessage`](./FlushLayerMessage.md)\>
___
### layerRenderedMap
`Readonly` **layerRenderedMap**: `Map`\<[`Layer`](./Layer.md)\<`any`, `any`\>, `boolean`\>
___
### layers
`Readonly` **layers**: [`Layer`](./Layer.md)\<`any`, `any`\>[]
___
### node
`Readonly` **node**: `HTMLDivElement`
___
### onAllLayersRendered
`Readonly` **onAllLayersRendered**: [`Event`](../interfaces/Event-1.md)\<`void`\>
所有 Layer 第一次渲染完成后触发
## Methods
### addLayer
**addLayer**(`layer`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`void`
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### flush
**flush**(`forceUpdate?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `forceUpdate?` | `boolean` |
#### Returns
`void`
___
### processMessage
**processMessage**(`msg`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `msg` | `Message` |
#### Returns
`void`
#### Implementation of
IMessageHandler.processMessage
___
### ready
**ready**(): `void`
#### Returns
`void`
___
### reportLayerRendered
**reportLayerRendered**(`layer`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Returns
`void`
___
### toReactComponent
**toReactComponent**(): `FC`\<{}\>
转成 react
#### Returns
`FC`\<{}\>
___
### updateLayer
**updateLayer**(`layer`, `forceUpdate?`): `void`
1. PostMessage: 会将消息在 nextTick 执行
2. ConflatableMessage: 当多个消息进来会在下一个 nextTick 做合并
3. 图层相互隔离,即时一层挂了也不受影响
#### Parameters
| Name | Type |
| :------ | :------ |
| `layer` | [`Layer`](./Layer.md)\<`any`, `any`\> |
| `forceUpdate?` | `boolean` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/Playground.md
---
# Class: Playground\
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Type parameters
| Name | Type |
| :------ | :------ |
| `CONTEXT` | [`PlaygroundContext`](../variables/PlaygroundContext-1.md) |
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./Playground.md#constructor)
### Properties
- [commandService](./Playground.md#commandservice)
- [contextProvider](./Playground.md#contextprovider)
- [entityManager](./Playground.md#entitymanager)
- [node](./Playground.md#node)
- [onBlur](./Playground.md#onblur)
- [onFocus](./Playground.md#onfocus)
- [onScroll](./Playground.md#onscroll)
- [onZoom](./Playground.md#onzoom)
- [pipelineRegistry](./Playground.md#pipelineregistry)
- [pipelineRenderer](./Playground.md#pipelinerenderer)
- [registry](./Playground.md#registry)
- [selectionService](./Playground.md#selectionservice)
- [toDispose](./Playground.md#todispose)
### Accessors
- [config](./Playground.md#config)
- [context](./Playground.md#context)
- [disposed](./Playground.md#disposed)
- [editorState](./Playground.md#editorstate)
- [focused](./Playground.md#focused)
- [onAllLayersRendered](./Playground.md#onalllayersrendered)
- [onResize](./Playground.md#onresize)
- [pipelineNode](./Playground.md#pipelinenode)
- [zoomEnable](./Playground.md#zoomenable)
### Methods
- [dispose](./Playground.md#dispose)
- [flush](./Playground.md#flush)
- [getConfigEntity](./Playground.md#getconfigentity)
- [getLayer](./Playground.md#getlayer)
- [init](./Playground.md#init)
- [ready](./Playground.md#ready)
- [registerLayer](./Playground.md#registerlayer)
- [registerLayers](./Playground.md#registerlayers)
- [resize](./Playground.md#resize)
- [scrollToView](./Playground.md#scrolltoview)
- [setParent](./Playground.md#setparent)
- [toReactComponent](./Playground.md#toreactcomponent)
## Constructors
### constructor
**new Playground**\<`CONTEXT`\>(`entityManager`, `registry`, `contextProvider`, `pipelineRenderer`, `pipelineRegistry`, `playgroundConfig`, `contributionProvider`, `commandService`, `selectionService`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `CONTEXT` | `any` |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `entityManager` | [`EntityManager`](./EntityManager.md) | - |
| `registry` | [`PlaygroundRegistry`](./PlaygroundRegistry.md) | - |
| `contextProvider` | [`PlaygroundContextProvider`](../variables/PlaygroundContextProvider-1.md) | - |
| `pipelineRenderer` | [`PipelineRenderer`](./PipelineRenderer.md) | - |
| `pipelineRegistry` | [`PipelineRegistry`](./PipelineRegistry.md) | - |
| `playgroundConfig` | [`PlaygroundConfig`](../variables/PlaygroundConfig-1.md) | - |
| `contributionProvider` | [`ContributionProvider`](../variables/ContributionProvider-1.md)\<[`PlaygroundContribution`](../variables/PlaygroundContribution-1.md)\> | - |
| `commandService` | [`CommandService`](../variables/CommandService-1.md) | 用于管理画布命令 |
| `selectionService` | [`SelectionService`](./SelectionService.md) | 用于管理画布选择 |
## Properties
### commandService
`Readonly` **commandService**: [`CommandService`](../variables/CommandService-1.md)
用于管理画布命令
___
### contextProvider
`Readonly` **contextProvider**: [`PlaygroundContextProvider`](../variables/PlaygroundContextProvider-1.md)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
___
### node
`Readonly` **node**: `HTMLElement`
___
### onBlur
`Readonly` **onBlur**: [`Event`](../interfaces/Event-1.md)\<`void`\>
___
### onFocus
`Readonly` **onFocus**: [`Event`](../interfaces/Event-1.md)\<`void`\>
___
### onScroll
`Readonly` **onScroll**: [`Event`](../interfaces/Event-1.md)\<\{ `scrollX`: `number` ; `scrollY`: `number` }\>
___
### onZoom
`Readonly` **onZoom**: [`Event`](../interfaces/Event-1.md)\<`number`\>
___
### pipelineRegistry
`Readonly` **pipelineRegistry**: [`PipelineRegistry`](./PipelineRegistry.md)
___
### pipelineRenderer
`Readonly` **pipelineRenderer**: [`PipelineRenderer`](./PipelineRenderer.md)
___
### registry
`Readonly` **registry**: [`PlaygroundRegistry`](./PlaygroundRegistry.md)
___
### selectionService
`Readonly` **selectionService**: [`SelectionService`](./SelectionService.md)
用于管理画布选择
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
## Accessors
### config
`get` **config**(): [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
画布配置数据
#### Returns
[`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
___
### context
`get` **context**(): `CONTEXT`
#### Returns
`CONTEXT`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
___
### editorState
`get` **editorState**(): [`EditorStateConfigEntity`](./EditorStateConfigEntity.md)
画布编辑状态管理
#### Returns
[`EditorStateConfigEntity`](./EditorStateConfigEntity.md)
___
### focused
`get` **focused**(): `boolean`
#### Returns
`boolean`
___
### onAllLayersRendered
`get` **onAllLayersRendered**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
___
### onResize
`get` **onResize**(): [`Event`](../interfaces/Event-1.md)\<[`PipelineDimension`](../interfaces/PipelineDimension.md)\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<[`PipelineDimension`](../interfaces/PipelineDimension.md)\>
___
### pipelineNode
`get` **pipelineNode**(): `HTMLDivElement`
#### Returns
`HTMLDivElement`
___
### zoomEnable
`get` **zoomEnable**(): `boolean`
对应的右键菜单路径
#### Returns
`boolean`
`set` **zoomEnable**(`zoomEnable`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoomEnable` | `boolean` |
#### Returns
`void`
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### flush
**flush**(): `void`
刷新所有 layer
#### Returns
`void`
___
### getConfigEntity
**getConfigEntity**\<`T`\>(`r`): `T`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`ConfigEntity`](./ConfigEntity.md)\<[`ConfigEntityProps`](../interfaces/ConfigEntityProps.md), [`EntityOpts`](../interfaces/EntityOpts.md), `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `r` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<`T`\> |
#### Returns
`T`
___
### getLayer
**getLayer**\<`T`\>(`layerRegistry`): `undefined` \| `T`
获取 layer
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
#### Returns
`undefined` \| `T`
___
### init
**init**(): `void`
#### Returns
`void`
___
### ready
**ready**(): `void`
#### Returns
`void`
___
### registerLayer
**registerLayer**\<`P`\>(`layerRegistry`, `layerOptions?`): `void`
注册 layer
#### Type parameters
| Name | Type |
| :------ | :------ |
| `P` | extends [`Layer`](./Layer.md)\<`any`, `any`, `P`\> = [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`P`\> |
| `layerOptions?` | `P`[``"options"``] |
#### Returns
`void`
___
### registerLayers
**registerLayers**(`...layerRegistries`): `void`
注册 多个 layer
#### Parameters
| Name | Type |
| :------ | :------ |
| `...layerRegistries` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<[`Layer`](./Layer.md)\<`any`, `any`\>\>[] |
#### Returns
`void`
___
### resize
**resize**(`msg?`, `scrollToCenter?`): `boolean`
这里会由 widget 透传进来
#### Parameters
| Name | Type |
| :------ | :------ |
| `msg?` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
| `scrollToCenter?` | `boolean` |
#### Returns
`boolean`
___
### scrollToView
**scrollToView**(`opts?`): `Promise`\<`void`\>
按下边顺序执行
1. 指定的 entity 位置或 pos 位置
2. selection 位置
3. 初始化位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts?` | [`PlaygroundConfigRevealOpts`](../interfaces/PlaygroundConfigRevealOpts.md) |
#### Returns
`Promise`\<`void`\>
___
### setParent
**setParent**(`parent`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `parent` | `HTMLElement` |
#### Returns
`void`
___
### toReactComponent
**toReactComponent**(): `FC`\<{}\>
转换成 react 组件
#### Returns
`FC`\<{}\>
---
url: /auto-docs/editor/classes/PlaygroundConfigEntity.md
---
# Class: PlaygroundConfigEntity
全局画布的配置信息
## Hierarchy
- [`ConfigEntity`](./ConfigEntity.md)\<[`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)\>
↳ **`PlaygroundConfigEntity`**
## Table of contents
### Constructors
- [constructor](./PlaygroundConfigEntity.md#constructor)
### Properties
- [\_\_opts\_type\_\_](./PlaygroundConfigEntity.md#__opts_type__)
- [cursor](./PlaygroundConfigEntity.md#cursor)
- [entityManager](./PlaygroundConfigEntity.md#entitymanager)
- [getCursors](./PlaygroundConfigEntity.md#getcursors)
- [onDataChange](./PlaygroundConfigEntity.md#ondatachange)
- [onEntityChange](./PlaygroundConfigEntity.md#onentitychange)
- [onGrabDisableChange](./PlaygroundConfigEntity.md#ongrabdisablechange)
- [onReadonlyOrDisabledChange](./PlaygroundConfigEntity.md#onreadonlyordisabledchange)
- [playgroundDomNode](./PlaygroundConfigEntity.md#playgrounddomnode)
- [preDispose](./PlaygroundConfigEntity.md#predispose)
- [toDispose](./PlaygroundConfigEntity.md#todispose)
- [type](./PlaygroundConfigEntity.md#type)
### Accessors
- [config](./PlaygroundConfigEntity.md#config)
- [context](./PlaygroundConfigEntity.md#context)
- [disabled](./PlaygroundConfigEntity.md#disabled)
- [disposed](./PlaygroundConfigEntity.md#disposed)
- [finalScale](./PlaygroundConfigEntity.md#finalscale)
- [grabDisable](./PlaygroundConfigEntity.md#grabdisable)
- [id](./PlaygroundConfigEntity.md#id)
- [loading](./PlaygroundConfigEntity.md#loading)
- [onDispose](./PlaygroundConfigEntity.md#ondispose)
- [readonly](./PlaygroundConfigEntity.md#readonly)
- [readonlyOrDisabled](./PlaygroundConfigEntity.md#readonlyordisabled)
- [savedInManager](./PlaygroundConfigEntity.md#savedinmanager)
- [scrollData](./PlaygroundConfigEntity.md#scrolldata)
- [scrollDisable](./PlaygroundConfigEntity.md#scrolldisable)
- [type](./PlaygroundConfigEntity.md#type-1)
- [version](./PlaygroundConfigEntity.md#version)
- [zoom](./PlaygroundConfigEntity.md#zoom)
- [zoomDisable](./PlaygroundConfigEntity.md#zoomdisable)
- [zoomEnable](./PlaygroundConfigEntity.md#zoomenable)
### Methods
- [addData](./PlaygroundConfigEntity.md#adddata)
- [addInitializeData](./PlaygroundConfigEntity.md#addinitializedata)
- [addScrollLimit](./PlaygroundConfigEntity.md#addscrolllimit)
- [checkChanged](./PlaygroundConfigEntity.md#checkchanged)
- [dispose](./PlaygroundConfigEntity.md#dispose)
- [fitView](./PlaygroundConfigEntity.md#fitview)
- [fixLayerPosition](./PlaygroundConfigEntity.md#fixlayerposition)
- [fromJSON](./PlaygroundConfigEntity.md#fromjson)
- [getClientBounds](./PlaygroundConfigEntity.md#getclientbounds)
- [getData](./PlaygroundConfigEntity.md#getdata)
- [getDefaultConfig](./PlaygroundConfigEntity.md#getdefaultconfig)
- [getDefaultDataRegistries](./PlaygroundConfigEntity.md#getdefaultdataregistries)
- [getPageBounds](./PlaygroundConfigEntity.md#getpagebounds)
- [getPosFromMouseEvent](./PlaygroundConfigEntity.md#getposfrommouseevent)
- [getService](./PlaygroundConfigEntity.md#getservice)
- [getViewport](./PlaygroundConfigEntity.md#getviewport)
- [hasData](./PlaygroundConfigEntity.md#hasdata)
- [isViewportVisible](./PlaygroundConfigEntity.md#isviewportvisible)
- [onConfigChanged](./PlaygroundConfigEntity.md#onconfigchanged)
- [removeData](./PlaygroundConfigEntity.md#removedata)
- [reset](./PlaygroundConfigEntity.md#reset)
- [scroll](./PlaygroundConfigEntity.md#scroll)
- [scrollPageBoundsToCenter](./PlaygroundConfigEntity.md#scrollpageboundstocenter)
- [scrollToView](./PlaygroundConfigEntity.md#scrolltoview)
- [setPageBounds](./PlaygroundConfigEntity.md#setpagebounds)
- [toFixedPos](./PlaygroundConfigEntity.md#tofixedpos)
- [toJSON](./PlaygroundConfigEntity.md#tojson)
- [updateConfig](./PlaygroundConfigEntity.md#updateconfig)
- [updateCursor](./PlaygroundConfigEntity.md#updatecursor)
- [updateData](./PlaygroundConfigEntity.md#updatedata)
- [updateZoom](./PlaygroundConfigEntity.md#updatezoom)
- [zoomin](./PlaygroundConfigEntity.md#zoomin)
- [zoomout](./PlaygroundConfigEntity.md#zoomout)
## Constructors
### constructor
**new PlaygroundConfigEntity**(`opts`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts` | `any` |
#### Overrides
[ConfigEntity](./ConfigEntity.md).[constructor](./ConfigEntity.md#constructor)
## Properties
### \_\_opts\_type\_\_
**\_\_opts\_type\_\_**: [`EntityOpts`](../interfaces/EntityOpts.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[__opts_type__](./ConfigEntity.md#__opts_type__)
___
### cursor
**cursor**: `string`
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
全局的entity管理器
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[entityManager](./ConfigEntity.md#entitymanager)
___
### getCursors
**getCursors**: `undefined` \| () => `undefined` \| [`Cursors`](../types/Cursors.md)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityDataChangedEvent`](../interfaces/EntityDataChangedEvent.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>\>
数据更改事件
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onDataChange](./ConfigEntity.md#ondatachange)
___
### onEntityChange
`Readonly` **onEntityChange**: [`Event`](../interfaces/Event-1.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\>
修改会触发
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onEntityChange](./ConfigEntity.md#onentitychange)
___
### onGrabDisableChange
`Readonly` **onGrabDisableChange**: [`Event`](../interfaces/Event-1.md)\<`boolean`\>
___
### onReadonlyOrDisabledChange
`Readonly` **onReadonlyOrDisabledChange**: [`Event`](../interfaces/Event-1.md)\<\{ `disabled`: `boolean` ; `readonly`: `boolean` }\>
___
### playgroundDomNode
**playgroundDomNode**: `HTMLElement`
___
### preDispose
`Readonly` **preDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁前事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[preDispose](./ConfigEntity.md#predispose)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
销毁事件管理
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toDispose](./ConfigEntity.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[type](./ConfigEntity.md#type)
## Accessors
### config
`get` **config**(): `P`
#### Returns
`P`
#### Inherited from
ConfigEntity.config
___
### context
`get` **context**(): `any`
#### Returns
`any`
#### Inherited from
ConfigEntity.context
___
### disabled
`get` **disabled**(): `boolean`
#### Returns
`boolean`
`set` **disabled**(`disabled`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `disabled` | `boolean` |
#### Returns
`void`
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
ConfigEntity.disposed
___
### finalScale
`get` **finalScale**(): `number`
缩放比例
使用 zoom 替代
#### Returns
`number`
**`Deprecated`**
___
### grabDisable
`get` **grabDisable**(): `boolean`
是否禁用抓取拖拽画布能力
#### Returns
`boolean`
`set` **grabDisable**(`grabDisable`): `void`
是否禁用抓取拖拽画布能力
#### Parameters
| Name | Type |
| :------ | :------ |
| `grabDisable` | `boolean` |
#### Returns
`void`
___
### id
`get` **id**(): `string`
实体 id
#### Returns
`string`
#### Inherited from
ConfigEntity.id
___
### loading
`get` **loading**(): `boolean`
#### Returns
`boolean`
`set` **loading**(`loading`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `loading` | `boolean` |
#### Returns
`void`
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
销毁事件
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
ConfigEntity.onDispose
___
### readonly
`get` **readonly**(): `boolean`
#### Returns
`boolean`
`set` **readonly**(`readonly`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `readonly` | `boolean` |
#### Returns
`void`
___
### readonlyOrDisabled
`get` **readonlyOrDisabled**(): `boolean`
#### Returns
`boolean`
___
### savedInManager
`get` **savedInManager**(): `boolean`
是否存到全局 manager,默认 true
#### Returns
`boolean`
#### Inherited from
ConfigEntity.savedInManager
___
### scrollData
`get` **scrollData**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `scrollX` | `number` |
| `scrollY` | `number` |
___
### scrollDisable
`get` **scrollDisable**(): `boolean`
#### Returns
`boolean`
`set` **scrollDisable**(`scrollDisable`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `scrollDisable` | `boolean` |
#### Returns
`void`
___
### type
`get` **type**(): `string`
实体类型
#### Returns
`string`
#### Inherited from
ConfigEntity.type
___
### version
`get` **version**(): `number`
实体的版本
#### Returns
`number`
#### Inherited from
ConfigEntity.version
___
### zoom
`get` **zoom**(): `number`
缩放比例
#### Returns
`number`
___
### zoomDisable
`get` **zoomDisable**(): `boolean`
#### Returns
`boolean`
`set` **zoomDisable**(`zoomDisable`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoomDisable` | `boolean` |
#### Returns
`void`
___
### zoomEnable
`get` **zoomEnable**(): `boolean`
#### Returns
`boolean`
**`Deprecated`**
use 'zoomDisable' instead
`set` **zoomEnable**(`zoomEnable`): `void`
开启缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoomEnable` | `boolean` |
#### Returns
`void`
**`Deprecated`**
use 'zoomDisable' instead
## Methods
### addData
**addData**\<`D`\>(`Registry`, `defaultProps?`): `D`
添加数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
| `defaultProps?` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addData](./ConfigEntity.md#adddata)
___
### addInitializeData
**addInitializeData**(`datas`, `dataConfig?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `datas` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[] |
| `dataConfig?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[addInitializeData](./ConfigEntity.md#addinitializedata)
___
### addScrollLimit
**addScrollLimit**(`fn`): `void`
添加滚动限制逻辑
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | [`PlaygroundScrollLimitFn`](../types/PlaygroundScrollLimitFn.md) |
#### Returns
`void`
___
### checkChanged
**checkChanged**(`oldData`, `newData`): `boolean`
判断 config 数据是否变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `oldData` | [`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md) |
| `newData` | `Partial`\<[`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[checkChanged](./ConfigEntity.md#checkchanged)
___
### dispose
**dispose**(): `void`
销毁实体
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[dispose](./ConfigEntity.md#dispose)
___
### fitView
**fitView**(`bounds`, `easing?`, `padding?`, `easingDuration?`): `Promise`\<`void`\>
适应大小
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `bounds` | [`Rectangle`](./Rectangle-1.md) | 目标大小 |
| `easing?` | `boolean` | 是否开启动画,默认开启 |
| `padding?` | `number` | 边界空白 |
| `easingDuration?` | `number` | |
#### Returns
`Promise`\<`void`\>
___
### fixLayerPosition
**fixLayerPosition**(`layerNode`): `void`
让 layer 的 node 节点不随着画布滚动条滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerNode` | `HTMLElement` |
#### Returns
`void`
___
### fromJSON
**fromJSON**(`data?`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data?` | `any` |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[fromJSON](./ConfigEntity.md#fromjson)
___
### getClientBounds
**getClientBounds**(): [`Rectangle`](./Rectangle-1.md)
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### getData
**getData**\<`D`\>(`Registry`): `D`
获取 data 数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`D`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getData](./ConfigEntity.md#getdata)
___
### getDefaultConfig
**getDefaultConfig**(): [`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)
#### Returns
[`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)
#### Overrides
[ConfigEntity](./ConfigEntity.md).[getDefaultConfig](./ConfigEntity.md#getdefaultconfig)
___
### getDefaultDataRegistries
**getDefaultDataRegistries**(): [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
默认初始化的 Data
#### Returns
[`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\>[]
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getDefaultDataRegistries](./ConfigEntity.md#getdefaultdataregistries)
___
### getPageBounds
**getPageBounds**(): `undefined` \| [`Rectangle`](./Rectangle-1.md)
#### Returns
`undefined` \| [`Rectangle`](./Rectangle-1.md)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `withScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取相对画布的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `MouseEvent` \| `TouchEvent` \| \{ `clientX`: `number` ; `clientY`: `number` } |
| `withScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
___
### getService
**getService**\<`T`\>(`identifier`): `T`
获取 IOC 服务
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `identifier` | [`ServiceIdentifier`](../types/interfaces.ServiceIdentifier.md)\<`T`\> |
#### Returns
`T`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[getService](./ConfigEntity.md#getservice)
___
### getViewport
**getViewport**(`withScale?`): [`Rectangle`](./Rectangle-1.md)
获取可视区域
#### Parameters
| Name | Type |
| :------ | :------ |
| `withScale?` | `boolean` |
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### hasData
**hasData**(`Registry`): `boolean`
是否有指定数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<[`EntityData`](./EntityData.md)\<`any`, {}\>\> |
#### Returns
`boolean`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[hasData](./ConfigEntity.md#hasdata)
___
### isViewportVisible
**isViewportVisible**(`bounds`, `rotation?`, `includeAll?`): `boolean`
判断矩形是否在可视区域,如果有擦边页代表在可是区域
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `bounds` | [`Rectangle`](./Rectangle-1.md) | |
| `rotation?` | `number` | |
| `includeAll?` | `boolean` | 是否包含在里边,默认 false |
#### Returns
`boolean`
___
### onConfigChanged
**onConfigChanged**(`fn`): [`Disposable`](../interfaces/Disposable-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`data`: [`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)) => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[onConfigChanged](./ConfigEntity.md#onconfigchanged)
___
### removeData
**removeData**\<`D`\>(`Registry`): `void`
删除数据,初始化状态注入的数据无法被删除
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[removeData](./ConfigEntity.md#removedata)
___
### reset
**reset**(): `void`
重制为初始化状态
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[reset](./ConfigEntity.md#reset)
___
### scroll
**scroll**(`scroll`, `easing?`, `easingDuration?`): `Promise`\<`void`\>
滚动
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `scroll` | `Partial`\<\{ `scrollX`: `number` ; `scrollY`: `number` ; `zoom`: `number` }\> | |
| `easing?` | `boolean` | 是否开启缓动,默认开启 |
| `easingDuration?` | `number` | 滚动持续时间,默认 300ms |
#### Returns
`Promise`\<`void`\>
___
### scrollPageBoundsToCenter
**scrollPageBoundsToCenter**(`zoomToFit?`, `fitPadding?`, `easing?`): `Promise`\<`void`\>
滚动到画布中央
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `zoomToFit?` | `boolean` | 是否缩放并适配外围大小 |
| `fitPadding?` | `number` | 适配外围的留白 |
| `easing?` | `boolean` | 是否缓动 |
#### Returns
`Promise`\<`void`\>
___
### scrollToView
**scrollToView**(`opts?`): `Promise`\<`void`\>
按下边顺序执行
1. 指定的 entity 位置或 pos 位置
3. 初始化位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts?` | [`PlaygroundConfigRevealOpts`](../interfaces/PlaygroundConfigRevealOpts.md) |
#### Returns
`Promise`\<`void`\>
___
### setPageBounds
**setPageBounds**(`bounds`): `void`
这只画布边框,元素编辑的时候回吸附画布边框
#### Parameters
| Name | Type |
| :------ | :------ |
| `bounds` | [`Rectangle`](./Rectangle-1.md) |
#### Returns
`void`
___
### toFixedPos
**toFixedPos**(`pos`): [`PositionSchema`](../interfaces/PositionSchema.md)
将画布中的位置转成相对 window 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `pos` | [`PositionSchema`](../interfaces/PositionSchema.md) |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
___
### toJSON
**toJSON**(): `any`
存储数据,用于持久化存储
#### Returns
`any`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[toJSON](./ConfigEntity.md#tojson)
___
### updateConfig
**updateConfig**(`props`): `void`
更新实体配置
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `Partial`\<[`PlaygroundConfigEntityData`](../interfaces/PlaygroundConfigEntityData.md)\> |
#### Returns
`void`
#### Overrides
[ConfigEntity](./ConfigEntity.md).[updateConfig](./ConfigEntity.md#updateconfig)
___
### updateCursor
**updateCursor**(`cursor`): `void`
修改画布光标
#### Parameters
| Name | Type |
| :------ | :------ |
| `cursor` | `string` |
#### Returns
`void`
___
### updateData
**updateData**\<`D`\>(`Registry`, `props`): `void`
更新实体的数据
#### Type parameters
| Name | Type |
| :------ | :------ |
| `D` | extends [`EntityData`](./EntityData.md)\<`any`, {}, `D`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `Registry` | [`EntityDataRegistry`](../interfaces/EntityDataRegistry.md)\<`D`\> |
| `props` | [`EntityDataProps`](../types/EntityDataProps.md)\<`D`\> |
#### Returns
`void`
#### Inherited from
[ConfigEntity](./ConfigEntity.md).[updateData](./ConfigEntity.md#updatedata)
___
### updateZoom
**updateZoom**(`newZoom`, `easing?`, `easingDuration?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newZoom` | `number` |
| `easing?` | `boolean` |
| `easingDuration?` | `number` |
#### Returns
`void`
___
### zoomin
**zoomin**(`easing?`, `easingDuration?`): `void`
放大
#### Parameters
| Name | Type |
| :------ | :------ |
| `easing?` | `boolean` |
| `easingDuration?` | `number` |
#### Returns
`void`
___
### zoomout
**zoomout**(`easing?`, `easingDuration?`): `void`
缩小
#### Parameters
| Name | Type |
| :------ | :------ |
| `easing?` | `boolean` |
| `easingDuration?` | `number` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/PlaygroundDrag-1.md
---
# Class: PlaygroundDrag\
An object that performs a cleanup operation when `.dispose()` is called.
Some examples of how disposables are used:
- An event listener that removes itself when `.dispose()` is called.
- The return value from registering a provider. When `.dispose()` is called, the provider is unregistered.
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | `undefined` |
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./PlaygroundDrag-1.md#constructor)
### Properties
- [onDrag](./PlaygroundDrag-1.md#ondrag)
- [onDragEnd](./PlaygroundDrag-1.md#ondragend)
- [onDragStart](./PlaygroundDrag-1.md#ondragstart)
### Accessors
- [isStarted](./PlaygroundDrag-1.md#isstarted)
- [scale](./PlaygroundDrag-1.md#scale)
### Methods
- [dispose](./PlaygroundDrag-1.md#dispose)
- [fireScroll](./PlaygroundDrag-1.md#firescroll)
- [handleEvent](./PlaygroundDrag-1.md#handleevent)
- [start](./PlaygroundDrag-1.md#start)
- [stop](./PlaygroundDrag-1.md#stop)
## Constructors
### constructor
**new PlaygroundDrag**\<`T`\>(`options?`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | `undefined` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `options?` | [`PlaygroundDragOptions`](../interfaces/PlaygroundDragOptions.md)\<`T`\> |
## Properties
### onDrag
`Readonly` **onDrag**: [`Event`](../interfaces/Event-1.md)\<[`PlaygroundDragEvent`](../interfaces/PlaygroundDragEvent.md)\>
___
### onDragEnd
`Readonly` **onDragEnd**: [`Event`](../interfaces/Event-1.md)\<[`PlaygroundDragEvent`](../interfaces/PlaygroundDragEvent.md)\>
___
### onDragStart
`Readonly` **onDragStart**: [`Event`](../interfaces/Event-1.md)\<[`PlaygroundDragEvent`](../interfaces/PlaygroundDragEvent.md)\>
## Accessors
### isStarted
`get` **isStarted**(): `boolean`
#### Returns
`boolean`
___
### scale
`get` **scale**(): `number`
#### Returns
`number`
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### fireScroll
**fireScroll**(`scrollKey`, `added`): `void`
触发滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scrollKey` | ``"scrollY"`` \| ``"scrollX"`` |
| `added` | `boolean` |
#### Returns
`void`
___
### handleEvent
**handleEvent**(`_event`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `_event` | `Event` |
#### Returns
`void`
___
### start
**start**(`clientX`, `clientY`, `entity?`, `context?`): `Promise`\<`void`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `clientX` | `number` |
| `clientY` | `number` |
| `entity?` | [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md) |
| `context?` | `T` |
#### Returns
`Promise`\<`void`\>
___
### stop
**stop**(`clientX`, `clientY`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `clientX` | `number` |
| `clientY` | `number` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/PlaygroundGesture.md
---
# Class: PlaygroundGesture
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- [`DisposableImpl`](./DisposableImpl.md)
↳ **`PlaygroundGesture`**
## Table of contents
### Constructors
- [constructor](./PlaygroundGesture.md#constructor)
### Properties
- [target](./PlaygroundGesture.md#target)
- [toDispose](./PlaygroundGesture.md#todispose)
### Accessors
- [disposed](./PlaygroundGesture.md#disposed)
- [onDispose](./PlaygroundGesture.md#ondispose)
- [pinching](./PlaygroundGesture.md#pinching)
### Methods
- [dispose](./PlaygroundGesture.md#dispose)
- [getScaleBounds](./PlaygroundGesture.md#getscalebounds)
- [handlePinch](./PlaygroundGesture.md#handlepinch)
## Constructors
### constructor
**new PlaygroundGesture**(`target`, `config`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `target` | `HTMLElement` |
| `config` | [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md) |
#### Overrides
[DisposableImpl](./DisposableImpl.md).[constructor](./DisposableImpl.md#constructor)
## Properties
### target
`Readonly` **target**: `HTMLElement`
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[DisposableImpl](./DisposableImpl.md).[toDispose](./DisposableImpl.md#todispose)
## Accessors
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
DisposableImpl.disposed
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
DisposableImpl.onDispose
___
### pinching
`get` **pinching**(): `boolean`
#### Returns
`boolean`
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[DisposableImpl](./DisposableImpl.md).[dispose](./DisposableImpl.md#dispose)
___
### getScaleBounds
**getScaleBounds**(): `Object`
#### Returns
`Object`
| Name | Type |
| :------ | :------ |
| `max` | `number` |
| `min` | `number` |
___
### handlePinch
**handlePinch**(`params`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | `Object` |
| `params.first` | `boolean` |
| `params.last` | `boolean` |
| `params.newScale` | `number` |
| `params.originX` | `number` |
| `params.originY` | `number` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/PlaygroundLayer.md
---
# Class: PlaygroundLayer
基础层,控制画布缩放/滚动等操作
## Hierarchy
- [`Layer`](./Layer.md)\<[`PlaygroundLayerOptions`](../interfaces/PlaygroundLayerOptions.md)\>
↳ **`PlaygroundLayer`**
## Table of contents
### Constructors
- [constructor](./PlaygroundLayer.md#constructor)
### Properties
- [config](./PlaygroundLayer.md#config)
- [context](./PlaygroundLayer.md#context)
- [entityManager](./PlaygroundLayer.md#entitymanager)
- [getOtherLayer](./PlaygroundLayer.md#getotherlayer)
- [isFocused](./PlaygroundLayer.md#isfocused)
- [listenGlobalEvent](./PlaygroundLayer.md#listenglobalevent)
- [listenPlaygroundEvent](./PlaygroundLayer.md#listenplaygroundevent)
- [node](./PlaygroundLayer.md#node)
- [observeManager](./PlaygroundLayer.md#observemanager)
- [options](./PlaygroundLayer.md#options)
- [pipelineNode](./PlaygroundLayer.md#pipelinenode)
- [playgroundNode](./PlaygroundLayer.md#playgroundnode)
- [protectWheelArea](./PlaygroundLayer.md#protectwheelarea)
- [reloadEntities](./PlaygroundLayer.md#reloadentities)
- [renderWithReactMemo](./PlaygroundLayer.md#renderwithreactmemo)
### Methods
- [autorun](./PlaygroundLayer.md#autorun)
- [createDOMCache](./PlaygroundLayer.md#createdomcache)
- [createGesture](./PlaygroundLayer.md#creategesture)
- [dispose](./PlaygroundLayer.md#dispose)
- [getPosFromMouseEvent](./PlaygroundLayer.md#getposfrommouseevent)
- [onBlur](./PlaygroundLayer.md#onblur)
- [onFocus](./PlaygroundLayer.md#onfocus)
- [onReadonlyOrDisabledChange](./PlaygroundLayer.md#onreadonlyordisabledchange)
- [onReady](./PlaygroundLayer.md#onready)
- [onResize](./PlaygroundLayer.md#onresize)
- [onScroll](./PlaygroundLayer.md#onscroll)
- [onStateChanged](./PlaygroundLayer.md#onstatechanged)
- [onViewportChange](./PlaygroundLayer.md#onviewportchange)
- [onZoom](./PlaygroundLayer.md#onzoom)
- [render](./PlaygroundLayer.md#render)
## Constructors
### constructor
**new PlaygroundLayer**()
#### Inherited from
[Layer](./Layer.md).[constructor](./Layer.md#constructor)
## Properties
### config
**config**: [`PlaygroundConfigEntity`](./PlaygroundConfigEntity.md)
全局画布配置
#### Inherited from
[Layer](./Layer.md).[config](./Layer.md#config)
___
### context
`Readonly` **context**: `any`
#### Inherited from
[Layer](./Layer.md).[context](./Layer.md#context)
___
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
实体管理器
#### Inherited from
[Layer](./Layer.md).[entityManager](./Layer.md#entitymanager)
___
### getOtherLayer
**getOtherLayer**: \(`layerRegistry`: [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\>) => `undefined` \| `T`
#### Type declaration
\<`T`\>(`layerRegistry`): `undefined` \| `T`
可以用于获取别的 layer
##### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> |
##### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<`T`\> |
##### Returns
`undefined` \| `T`
#### Inherited from
[Layer](./Layer.md).[getOtherLayer](./Layer.md#getotherlayer)
___
### isFocused
`Readonly` **isFocused**: `boolean`
playground 是否 focused
#### Inherited from
[Layer](./Layer.md).[isFocused](./Layer.md#isfocused)
___
### listenGlobalEvent
**listenGlobalEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 document 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenGlobalEvent](./Layer.md#listenglobalevent)
___
### listenPlaygroundEvent
**listenPlaygroundEvent**: (`name`: `string`, `handle`: (`event`: `any`) => `boolean` \| `void`, `priority?`: `number`, `options?`: `AddEventListenerOptions`) => [`Disposable`](../interfaces/Disposable-1.md)
#### Type declaration
(`name`, `handle`, `priority?`, `options?`): [`Disposable`](../interfaces/Disposable-1.md)
监听 playground 上的事件
规则:
1. 按 priority 排序,越高先执行
2. 没有提供,按 layer 的注册顺序,后注册先执行 (符合冒泡排序)
3. 执行返回 true,则阻止后续的执行
##### Parameters
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `handle` | (`event`: `any`) => `boolean` \| `void` |
| `priority?` | `number` |
| `options?` | `AddEventListenerOptions` |
##### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[Layer](./Layer.md).[listenPlaygroundEvent](./Layer.md#listenplaygroundevent)
___
### node
**node**: `HTMLElement`
layer 可能存在 dom 也可能没有,如果有,则会加入到 pipeline 的 dom 节点上
#### Inherited from
[Layer](./Layer.md).[node](./Layer.md#node)
___
### observeManager
**observeManager**: [`PipelineEntities`](../interfaces/PipelineEntities.md)
当前 layer 的所有监听的实体数据
#### Inherited from
[Layer](./Layer.md).[observeManager](./Layer.md#observemanager)
___
### options
**options**: [`PlaygroundLayerOptions`](../interfaces/PlaygroundLayerOptions.md)
layer 的配置, 由 registerLayer(Layer, LayerOptions) 传入
#### Inherited from
[Layer](./Layer.md).[options](./Layer.md#options)
___
### pipelineNode
**pipelineNode**: `HTMLElement`
父节点
#### Inherited from
[Layer](./Layer.md).[pipelineNode](./Layer.md#pipelinenode)
___
### playgroundNode
**playgroundNode**: `HTMLElement`
画布根节点
#### Inherited from
[Layer](./Layer.md).[playgroundNode](./Layer.md#playgroundnode)
___
### protectWheelArea
`Optional` **protectWheelArea**: [`ProtectWheelArea`](../variables/ProtectWheelArea-1.md)
___
### reloadEntities
**reloadEntities**: () => `boolean`
#### Type declaration
(): `boolean`
加载 layer 注册的实体数据,内部使用,不需要手动触发
##### Returns
`boolean`
数据是否变化
#### Inherited from
[Layer](./Layer.md).[reloadEntities](./Layer.md#reloadentities)
___
### renderWithReactMemo
**renderWithReactMemo**: `boolean`
默认在渲染时候都会启用 react memo 进行隔离,这种情况就需要数据驱动更新
#### Inherited from
[Layer](./Layer.md).[renderWithReactMemo](./Layer.md#renderwithreactmemo)
## Methods
### autorun
**autorun**(): `void`
自动触发更新,在不需要 react 的时候用这个方法
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[autorun](./Layer.md#autorun)
___
### createDOMCache
**createDOMCache**\<`T`\>(`className`, `children?`): [`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
创建 dom 缓冲池
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`DOMCache`](../interfaces/DOMCache.md) |
#### Parameters
| Name | Type |
| :------ | :------ |
| `className` | `string` \| () => `HTMLElement` |
| `children?` | `string` |
#### Returns
[`CacheManager`](../interfaces/CacheManager.md)\<`T`, [`CacheOriginItem`](../interfaces/CacheOriginItem.md)\>
#### Inherited from
[Layer](./Layer.md).[createDOMCache](./Layer.md#createdomcache)
___
### createGesture
**createGesture**(): `void`
#### Returns
`void`
___
### dispose
**dispose**(): `void`
销毁
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[dispose](./Layer.md#dispose)
___
### getPosFromMouseEvent
**getPosFromMouseEvent**(`event`, `addScale?`): [`PositionSchema`](../interfaces/PositionSchema.md)
获取鼠标在 Playground 的位置
#### Parameters
| Name | Type |
| :------ | :------ |
| `event` | `Object` |
| `event.clientX` | `number` |
| `event.clientY` | `number` |
| `addScale?` | `boolean` |
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Inherited from
[Layer](./Layer.md).[getPosFromMouseEvent](./Layer.md#getposfrommouseevent)
___
### onBlur
`Optional` **onBlur**(): `void`
playground blur 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onBlur](./Layer.md#onblur)
___
### onFocus
`Optional` **onFocus**(): `void`
playground focus 时候触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onFocus](./Layer.md#onfocus)
___
### onReadonlyOrDisabledChange
`Optional` **onReadonlyOrDisabledChange**(`state`): `void`
readonly 或 disable 状态变化
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | `Object` |
| `state.disabled` | `boolean` |
| `state.readonly` | `boolean` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onReadonlyOrDisabledChange](./Layer.md#onreadonlyordisabledchange)
___
### onReady
**onReady**(): `void`
初始化时候触发
#### Returns
`void`
#### Overrides
[Layer](./Layer.md).[onReady](./Layer.md#onready)
___
### onResize
`Optional` **onResize**(`size`): `void`
playground 大小变化时候会触发
#### Parameters
| Name | Type |
| :------ | :------ |
| `size` | [`PipelineDimension`](../interfaces/PipelineDimension.md) |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onResize](./Layer.md#onresize)
___
### onScroll
`Optional` **onScroll**(`scroll`): `void`
监听滚动
#### Parameters
| Name | Type |
| :------ | :------ |
| `scroll` | `Object` |
| `scroll.scrollX` | `number` |
| `scroll.scrollY` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onScroll](./Layer.md#onscroll)
___
### onStateChanged
**onStateChanged**(`e`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `e` | [`EditorStateChangeEvent`](../interfaces/EditorStateChangeEvent.md) |
#### Returns
`void`
___
### onViewportChange
`Optional` **onViewportChange**(): `void`
viewport 更新触发
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onViewportChange](./Layer.md#onviewportchange)
___
### onZoom
`Optional` **onZoom**(`zoom`): `void`
监听缩放
#### Parameters
| Name | Type |
| :------ | :------ |
| `zoom` | `number` |
#### Returns
`void`
#### Inherited from
[Layer](./Layer.md).[onZoom](./Layer.md#onzoom)
___
### render
`Optional` **render**(): `Element`
绘制 react
#### Returns
`Element`
#### Inherited from
[Layer](./Layer.md).[render](./Layer.md#render)
---
url: /auto-docs/editor/classes/PlaygroundMockTools.LayerTestState.md
---
# Class: LayerTestState\
[PlaygroundMockTools](../modules/PlaygroundMockTools.md).LayerTestState
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md) = [`Layer`](./Layer.md) |
## Table of contents
### Constructors
- [constructor](./PlaygroundMockTools.LayerTestState.md#constructor)
### Properties
- [autorun](./PlaygroundMockTools.LayerTestState.md#autorun)
- [container](./PlaygroundMockTools.LayerTestState.md#container)
- [instance](./PlaygroundMockTools.LayerTestState.md#instance)
- [onBlur](./PlaygroundMockTools.LayerTestState.md#onblur)
- [onFocus](./PlaygroundMockTools.LayerTestState.md#onfocus)
- [onReadonlyOrDisabledChange](./PlaygroundMockTools.LayerTestState.md#onreadonlyordisabledchange)
- [onReady](./PlaygroundMockTools.LayerTestState.md#onready)
- [onResize](./PlaygroundMockTools.LayerTestState.md#onresize)
- [onScroll](./PlaygroundMockTools.LayerTestState.md#onscroll)
- [onViewportChange](./PlaygroundMockTools.LayerTestState.md#onviewportchange)
- [onZoom](./PlaygroundMockTools.LayerTestState.md#onzoom)
- [playground](./PlaygroundMockTools.LayerTestState.md#playground)
- [render](./PlaygroundMockTools.LayerTestState.md#render)
## Constructors
### constructor
**new LayerTestState**\<`T`\>(`instance`, `playground`, `container`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`Layer`](./Layer.md)\<`any`, `any`, `T`\> = [`Layer`](./Layer.md)\<`any`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `instance` | `T` |
| `playground` | [`Playground`](./Playground.md)\<`any`\> |
| `container` | [`Container`](../interfaces/interfaces.Container.md) |
## Properties
### autorun
**autorun**: `SpyInstance`
___
### container
`Readonly` **container**: [`Container`](../interfaces/interfaces.Container.md)
___
### instance
`Readonly` **instance**: `T`
___
### onBlur
**onBlur**: `SpyInstance`
___
### onFocus
**onFocus**: `SpyInstance`
___
### onReadonlyOrDisabledChange
**onReadonlyOrDisabledChange**: `SpyInstance`
___
### onReady
**onReady**: `SpyInstance`
___
### onResize
**onResize**: `SpyInstance`
___
### onScroll
**onScroll**: `SpyInstance`
___
### onViewportChange
**onViewportChange**: `SpyInstance`
___
### onZoom
**onZoom**: `SpyInstance`
___
### playground
`Readonly` **playground**: [`Playground`](./Playground.md)\<`any`\>
___
### render
**render**: `SpyInstance`
---
url: /auto-docs/editor/classes/PlaygroundRegistry.md
---
# Class: PlaygroundRegistry
## Table of contents
### Constructors
- [constructor](./PlaygroundRegistry.md#constructor)
### Properties
- [entityManager](./PlaygroundRegistry.md#entitymanager)
- [playgroundConfig](./PlaygroundRegistry.md#playgroundconfig)
### Methods
- [config](./PlaygroundRegistry.md#config)
- [registerEditorState](./PlaygroundRegistry.md#registereditorstate)
- [registerEntity](./PlaygroundRegistry.md#registerentity)
- [registerLayer](./PlaygroundRegistry.md#registerlayer)
## Constructors
### constructor
**new PlaygroundRegistry**()
## Properties
### entityManager
`Readonly` **entityManager**: [`EntityManager`](./EntityManager.md)
___
### playgroundConfig
`Readonly` **playgroundConfig**: [`PlaygroundConfig`](../variables/PlaygroundConfig-1.md)
## Methods
### config
**config**(`config`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `config` | `Partial`\<[`PlaygroundConfig`](../variables/PlaygroundConfig-1.md)\> |
#### Returns
`void`
___
### registerEditorState
**registerEditorState**(`state`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `state` | [`EditorState`](../interfaces/EditorState-1.md) |
#### Returns
`void`
___
### registerEntity
**registerEntity**(`entityRegistry`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `entityRegistry` | [`EntityRegistry`](../interfaces/EntityRegistry.md)\<[`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>\> |
#### Returns
`void`
___
### registerLayer
**registerLayer**(`layerRegistry`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `layerRegistry` | [`LayerRegistry`](../interfaces/LayerRegistry.md)\<[`Layer`](./Layer.md)\<`any`, `any`\>\> |
#### Returns
`void`
---
url: /auto-docs/editor/classes/PlaygroundSchedule.md
---
# Class: PlaygroundSchedule
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Implements
- [`Disposable`](../interfaces/Disposable-1.md)
## Table of contents
### Constructors
- [constructor](./PlaygroundSchedule.md#constructor)
### Methods
- [dispose](./PlaygroundSchedule.md#dispose)
- [push](./PlaygroundSchedule.md#push)
## Constructors
### constructor
**new PlaygroundSchedule**()
## Methods
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Implementation of
[Disposable](../interfaces/Disposable-1.md).[dispose](../interfaces/Disposable-1.md#dispose)
___
### push
**push**(`key`, `fn`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `any` |
| `fn` | () => `void` |
#### Returns
`void`
---
url: /auto-docs/editor/classes/Point-1.md
---
# Class: Point
The Point object represents a location in a two-dimensional coordinate system, where x represents
the horizontal axis and y represents the vertical axis.
**`Memberof`**
PIXI
**`Implements`**
IPoint
## Implements
- [`IPoint`](../interfaces/IPoint.md)
## Table of contents
### Constructors
- [constructor](./Point-1.md#constructor)
### Properties
- [x](./Point-1.md#x)
- [y](./Point-1.md#y)
### Methods
- [clone](./Point-1.md#clone)
- [copyFrom](./Point-1.md#copyfrom)
- [copyTo](./Point-1.md#copyto)
- [equals](./Point-1.md#equals)
- [set](./Point-1.md#set)
## Constructors
### constructor
**new Point**(`x?`, `y?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `x?` | `number` |
| `y?` | `number` |
## Properties
### x
**x**: `number`
X coord
#### Implementation of
[IPoint](../interfaces/IPoint.md).[x](../interfaces/IPoint.md#x)
___
### y
**y**: `number`
Y coord
#### Implementation of
[IPoint](../interfaces/IPoint.md).[y](../interfaces/IPoint.md#y)
## Methods
### clone
**clone**(): [`Point`](./Point-1.md)
Creates a clone of this point
#### Returns
[`Point`](./Point-1.md)
a copy of the point
___
### copyFrom
**copyFrom**(`p`): [`Point`](./Point-1.md)
Copies x and y from the given point
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `p` | [`IPoint`](../interfaces/IPoint.md) | The point to copy from |
#### Returns
[`Point`](./Point-1.md)
Returns itself.
___
### copyTo
**copyTo**\<`T`\>(`p`): `T`
Copies x and y into the given point
#### Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`IPoint`](../interfaces/IPoint.md) |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `p` | `T` | The point to copy. |
#### Returns
`T`
Given point with values updated
___
### equals
**equals**(`p`): `boolean`
Returns true if the given point is equal to this point
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `p` | [`IPoint`](../interfaces/IPoint.md) | The point to check |
#### Returns
`boolean`
Whether the given point equal to this point
___
### set
**set**(`x?`, `y?`): [`Point`](./Point-1.md)
Sets the point to a new x and y position.
If y is omitted, both x and y will be set to x.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `x?` | `number` | position of the point on the x axis |
| `y?` | `number` | position of the point on the y axis |
#### Returns
[`Point`](./Point-1.md)
Returns itself.
---
url: /auto-docs/editor/classes/PositionData.md
---
# Class: PositionData
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`PositionSchema`](../interfaces/PositionSchema.md)\>
↳ **`PositionData`**
## Implements
- [`PositionSchema`](../interfaces/PositionSchema.md)
## Table of contents
### Constructors
- [constructor](./PositionData.md#constructor)
### Properties
- [entity](./PositionData.md#entity)
- [onDataChange](./PositionData.md#ondatachange)
- [onWillChange](./PositionData.md#onwillchange)
- [opts](./PositionData.md#opts)
- [toDispose](./PositionData.md#todispose)
- [type](./PositionData.md#type)
### Accessors
- [changeLocked](./PositionData.md#changelocked)
- [data](./PositionData.md#data)
- [disposed](./PositionData.md#disposed)
- [onDispose](./PositionData.md#ondispose)
- [type](./PositionData.md#type-1)
- [version](./PositionData.md#version)
- [x](./PositionData.md#x)
- [y](./PositionData.md#y)
### Methods
- [checkChanged](./PositionData.md#checkchanged)
- [dispose](./PositionData.md#dispose)
- [fireChange](./PositionData.md#firechange)
- [fireWillChange](./PositionData.md#firewillchange)
- [fromJSON](./PositionData.md#fromjson)
- [fullyUpdate](./PositionData.md#fullyupdate)
- [getDefaultData](./PositionData.md#getdefaultdata)
- [toJSON](./PositionData.md#tojson)
- [update](./PositionData.md#update)
## Constructors
### constructor
**new PositionData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`PositionSchema`](../interfaces/PositionSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`PositionSchema`](../interfaces/PositionSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
___
### x
`get` **x**(): `number`
#### Returns
`number`
#### Implementation of
[PositionSchema](../interfaces/PositionSchema.md).[x](../interfaces/PositionSchema.md#x)
`set` **x**(`x`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `x` | `number` |
#### Returns
`void`
#### Implementation of
[PositionSchema](../interfaces/PositionSchema.md).[x](../interfaces/PositionSchema.md#x)
___
### y
`get` **y**(): `number`
#### Returns
`number`
#### Implementation of
[PositionSchema](../interfaces/PositionSchema.md).[y](../interfaces/PositionSchema.md#y)
`set` **y**(`y`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `y` | `number` |
#### Returns
`void`
#### Implementation of
[PositionSchema](../interfaces/PositionSchema.md).[y](../interfaces/PositionSchema.md#y)
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`PositionSchema`](../interfaces/PositionSchema.md) \| `Partial`\<[`PositionSchema`](../interfaces/PositionSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`PositionSchema`](../interfaces/PositionSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`PositionSchema`](../interfaces/PositionSchema.md)
初始化数据
#### Returns
[`PositionSchema`](../interfaces/PositionSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`PositionSchema`](../interfaces/PositionSchema.md) \| `Partial`\<[`PositionSchema`](../interfaces/PositionSchema.md)\> \| keyof [`PositionSchema`](../interfaces/PositionSchema.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/editor/classes/PromiseDeferred.md
---
# Class: PromiseDeferred\
Simple implementation of the deferred pattern.
An object that exposes a promise and functions to resolve and reject it.
## Type parameters
| Name |
| :------ |
| `T` |
## Table of contents
### Constructors
- [constructor](./PromiseDeferred.md#constructor)
### Properties
- [promise](./PromiseDeferred.md#promise)
- [reject](./PromiseDeferred.md#reject)
- [resolve](./PromiseDeferred.md#resolve)
## Constructors
### constructor
**new PromiseDeferred**\<`T`\>()
#### Type parameters
| Name |
| :------ |
| `T` |
## Properties
### promise
**promise**: `Promise`\<`T`\>
___
### reject
**reject**: (`err?`: `any`) => `void`
#### Type declaration
(`err?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `err?` | `any` |
##### Returns
`void`
___
### resolve
**resolve**: (`value?`: `T` \| `PromiseLike`\<`T`\>) => `void`
#### Type declaration
(`value?`): `void`
##### Parameters
| Name | Type |
| :------ | :------ |
| `value?` | `T` \| `PromiseLike`\<`T`\> |
##### Returns
`void`
---
url: /auto-docs/editor/classes/PromisePool.md
---
# Class: PromisePool
## Table of contents
### Constructors
- [constructor](./PromisePool.md#constructor)
### Methods
- [run](./PromisePool.md#run)
## Constructors
### constructor
**new PromisePool**(`opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `opts?` | [`PromisePoolOpts`](../interfaces/PromisePoolOpts.md) |
## Methods
### run
**run**\<`T`\>(`tasks`, `checkIfRetry?`): `Promise`\<`T`[]\>
#### Type parameters
| Name |
| :------ |
| `T` |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `tasks` | [`PromiseTask`](../interfaces/PromiseTask.md)\<`T`\>[] | 执行任务 |
| `checkIfRetry?` | (`res`: `T`) => `boolean` | 判断结果是否需要重试 |
#### Returns
`Promise`\<`T`[]\>
---
url: /auto-docs/editor/classes/Property.md
---
# Class: Property\
`Property` is a variable field that represents a property of a `ObjectType`.
## Type parameters
| Name | Type |
| :------ | :------ |
| `VariableMeta` | `any` |
## Hierarchy
- [`BaseVariableField`](./BaseVariableField.md)\<`VariableMeta`\>
↳ **`Property`**
## Table of contents
### Constructors
- [constructor](./Property.md#constructor)
### Properties
- [changeLocked](./Property.md#changelocked)
- [flags](./Property.md#flags)
- [key](./Property.md#key)
- [onDispose](./Property.md#ondispose)
- [opts](./Property.md#opts)
- [parent](./Property.md#parent)
- [scope](./Property.md#scope)
- [toDispose](./Property.md#todispose)
- [value$](./Property.md#value$)
- [kind](./Property.md#kind)
### Accessors
- [children](./Property.md#children)
- [disposed](./Property.md#disposed)
- [hash](./Property.md#hash)
- [initializer](./Property.md#initializer)
- [keyPath](./Property.md#keypath)
- [kind](./Property.md#kind-1)
- [meta](./Property.md#meta)
- [parentFields](./Property.md#parentfields)
- [type](./Property.md#type)
- [version](./Property.md#version)
### Methods
- [dispatchGlobalEvent](./Property.md#dispatchglobalevent)
- [dispose](./Property.md#dispose)
- [fireChange](./Property.md#firechange)
- [fromJSON](./Property.md#fromjson)
- [getByKeyPath](./Property.md#getbykeypath)
- [onTypeChange](./Property.md#ontypechange)
- [subscribe](./Property.md#subscribe)
- [toJSON](./Property.md#tojson)
- [updateInitializer](./Property.md#updateinitializer)
- [updateMeta](./Property.md#updatemeta)
- [updateType](./Property.md#updatetype)
## Constructors
### constructor
**new Property**\<`VariableMeta`\>(`createParams`, `opts?`)
Constructor.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `VariableMeta` | `any` |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `createParams` | [`CreateASTParams`](../interfaces/CreateASTParams.md) | Necessary parameters for creating an ASTNode. |
| `opts?` | `any` | - |
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[constructor](./BaseVariableField.md#constructor)
## Properties
### changeLocked
**changeLocked**: `boolean`
Update lock.
- When set to `true`, `fireChange` will not trigger any events.
- This is useful when multiple updates are needed, and you want to avoid multiple triggers.
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[changeLocked](./BaseVariableField.md#changelocked)
___
### flags
**flags**: [`ASTNodeFlags`](../enums/ASTNodeFlags.md)
Node flags, used to record some flag information.
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[flags](./BaseVariableField.md#flags)
___
### key
`Readonly` **key**: `string`
The unique identifier of the ASTNode, which is **immutable**.
- Immutable: Once assigned, the key cannot be changed.
- Automatically generated if not specified, and cannot be changed as well.
- If a new key needs to be generated, the current ASTNode should be destroyed and a new ASTNode should be generated.
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[key](./BaseVariableField.md#key)
___
### onDispose
**onDispose**: [`Event`](../interfaces/Event-1.md)\<`void`\>
Callback triggered upon disposal.
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[onDispose](./BaseVariableField.md#ondispose)
___
### opts
`Optional` `Readonly` **opts**: `any`
**`Deprecated`**
Get the injected options for the ASTNode.
Please use `@injectToAst(XXXService) declare xxxService: XXXService` to achieve external dependency injection.
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[opts](./BaseVariableField.md#opts)
___
### parent
`Readonly` **parent**: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>
The parent ASTNode.
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[parent](./BaseVariableField.md#parent)
___
### scope
`Readonly` **scope**: [`Scope`](./Scope.md)\<`Record`\<`string`, `any`\>\>
The scope in which the ASTNode is located.
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[scope](./BaseVariableField.md#scope)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
List of disposal handlers for the ASTNode.
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[toDispose](./BaseVariableField.md#todispose)
___
### value$
`Readonly` **value$**: `BehaviorSubject`\<[`ASTNode`](./ASTNode.md)\<`any`\>\>
AST node change Observable events, implemented based on RxJS.
- Emits the current ASTNode value upon subscription.
- Emits a new value whenever `fireChange` is called.
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[value$](./BaseVariableField.md#value$)
___
### kind
`Static` **kind**: `string`
The kind of the ASTNode.
#### Overrides
[BaseVariableField](./BaseVariableField.md).[kind](./BaseVariableField.md#kind)
## Accessors
### children
`get` **children**(): [`ASTNode`](./ASTNode.md)\<`any`\>[]
Gets all child ASTNodes of the current ASTNode.
#### Returns
[`ASTNode`](./ASTNode.md)\<`any`\>[]
#### Inherited from
BaseVariableField.children
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
BaseVariableField.disposed
___
### hash
`get` **hash**(): `string`
The global unique hash of the field, and will be changed when the field is updated.
#### Returns
`string`
#### Inherited from
BaseVariableField.hash
___
### initializer
`get` **initializer**(): `undefined` \| [`BaseExpression`](./BaseExpression.md)\<`any`\>
Initializer of the variable field, similar to js code:
`const v = 'hello'`
with initializer, the type of field will be inferred from the initializer.
#### Returns
`undefined` \| [`BaseExpression`](./BaseExpression.md)\<`any`\>
#### Inherited from
BaseVariableField.initializer
___
### keyPath
`get` **keyPath**(): `string`[]
KeyPath of the variable field, sorted from farthest to closest
#### Returns
`string`[]
#### Inherited from
BaseVariableField.keyPath
___
### kind
`get` **kind**(): `string`
The type of the ASTNode.
#### Returns
`string`
#### Inherited from
BaseVariableField.kind
___
### meta
`get` **meta**(): `VariableMeta`
Metadata of the variable field, you cans store information like `title`, `icon`, etc.
#### Returns
`VariableMeta`
#### Inherited from
BaseVariableField.meta
___
### parentFields
`get` **parentFields**(): [`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
Parent variable fields, sorted from closest to farthest
#### Returns
[`BaseVariableField`](./BaseVariableField.md)\<`any`\>[]
#### Inherited from
BaseVariableField.parentFields
___
### type
`get` **type**(): [`BaseType`](./BaseType.md)\<`any`\>
Type of the variable field, similar to js code:
`const v: string`
#### Returns
[`BaseType`](./BaseType.md)\<`any`\>
#### Inherited from
BaseVariableField.type
___
### version
`get` **version**(): `number`
The version value of the ASTNode.
- You can used to check whether ASTNode are updated.
#### Returns
`number`
#### Inherited from
BaseVariableField.version
## Methods
### dispatchGlobalEvent
**dispatchGlobalEvent**\<`ActionType`\>(`event`): `void`
Dispatches a global event for the current ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `ActionType` | extends [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>, `ActionType`\> = [`GlobalEventActionType`](../interfaces/GlobalEventActionType.md)\<`string`, `any`, [`ASTNode`](./ASTNode.md)\<`any`\>\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `event` | `Omit`\<`ActionType`, ``"ast"``\> | The global event. |
#### Returns
`void`
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[dispatchGlobalEvent](./BaseVariableField.md#dispatchglobalevent)
___
### dispose
**dispose**(): `void`
Disposes the ASTNode.
#### Returns
`void`
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[dispose](./BaseVariableField.md#dispose)
___
### fireChange
**fireChange**(): `void`
Triggers an update for the current node.
#### Returns
`void`
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[fireChange](./BaseVariableField.md#firechange)
___
### fromJSON
**fromJSON**(`json`): `void`
Deserialize the `BaseVariableFieldJSON` to the `BaseVariableField`.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `json` | `Omit`\<`BaseVariableFieldJSON`\<`VariableMeta`\>, ``"key"``\> | ASTJSON representation of `BaseVariableField` |
#### Returns
`void`
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[fromJSON](./BaseVariableField.md#fromjson)
___
### getByKeyPath
**getByKeyPath**(`keyPath`): `undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
Get the variable field by keyPath, similar to js code:
`v.a.b`
#### Parameters
| Name | Type |
| :------ | :------ |
| `keyPath` | `string`[] |
#### Returns
`undefined` \| [`BaseVariableField`](./BaseVariableField.md)\<`any`\>
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[getByKeyPath](./BaseVariableField.md#getbykeypath)
___
### onTypeChange
**onTypeChange**(`observer`): [`Disposable`](../interfaces/Disposable-1.md)
Subscribe to type change of the variable field
#### Parameters
| Name | Type |
| :------ | :------ |
| `observer` | (`type`: `undefined` \| [`ASTNode`](./ASTNode.md)\<`any`\>) => `void` |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[onTypeChange](./BaseVariableField.md#ontypechange)
___
### subscribe
**subscribe**\<`Data`\>(`observer`, `selector?`): [`Disposable`](../interfaces/Disposable-1.md)
Listens for changes to the ASTNode.
#### Type parameters
| Name | Type |
| :------ | :------ |
| `Data` | [`Property`](./Property.md)\<`VariableMeta`\> |
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `observer` | `ObserverOrNext`\<`Data`\> | The listener callback. |
| `selector?` | `SubscribeConfig`\<[`Property`](./Property.md)\<`VariableMeta`\>, `Data`\> | Listens for specified data. |
#### Returns
[`Disposable`](../interfaces/Disposable-1.md)
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[subscribe](./BaseVariableField.md#subscribe)
___
### toJSON
**toJSON**(): `BaseVariableFieldJSON`\<`VariableMeta`\>
Serialize the variable field to JSON
#### Returns
`BaseVariableFieldJSON`\<`VariableMeta`\>
ASTNodeJSON representation of `BaseVariableField`
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[toJSON](./BaseVariableField.md#tojson)
___
### updateInitializer
**updateInitializer**(`nextInitializer?`): `void`
Update the initializer of the variable field
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `nextInitializer?` | [`ASTNodeJSON`](../interfaces/ASTNodeJSON.md) | initializer ASTJSON representation of Expression |
#### Returns
`void`
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[updateInitializer](./BaseVariableField.md#updateinitializer)
___
### updateMeta
**updateMeta**(`nextMeta`): `void`
Update the meta data of the variable field
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `nextMeta` | `VariableMeta` | meta data of the variable field |
#### Returns
`void`
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[updateMeta](./BaseVariableField.md#updatemeta)
___
### updateType
**updateType**(`type`): `void`
Update the type of the variable field
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `type` | `undefined` \| `ASTNodeJSONOrKind` | type ASTJSON representation of Type |
#### Returns
`void`
#### Inherited from
[BaseVariableField](./BaseVariableField.md).[updateType](./BaseVariableField.md#updatetype)
---
url: /auto-docs/editor/classes/ReactiveBaseState.md
---
# Class: ReactiveBaseState\
## Type parameters
| Name |
| :------ |
| `V` |
## Hierarchy
- **`ReactiveBaseState`**
↳ [`ReactiveState`](./ReactiveState.md)
## Table of contents
### Constructors
- [constructor](./ReactiveBaseState.md#constructor)
### Accessors
- [value](./ReactiveBaseState.md#value)
### Methods
- [hasDependents](./ReactiveBaseState.md#hasdependents)
## Constructors
### constructor
**new ReactiveBaseState**\<`V`\>(`initialValue`, `opts?`)
#### Type parameters
| Name |
| :------ |
| `V` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `initialValue` | `V` |
| `opts?` | `Object` |
| `opts.isEqual?` | `IStateEqual` |
## Accessors
### value
`get` **value**(): `V`
#### Returns
`V`
`set` **value**(`newValue`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newValue` | `V` |
#### Returns
`void`
## Methods
### hasDependents
**hasDependents**(): `boolean`
#### Returns
`boolean`
---
url: /auto-docs/editor/classes/ReactiveState.md
---
# Class: ReactiveState\
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Type parameters
| Name | Type |
| :------ | :------ |
| `V` | extends `Record`\<`string`, `any`\> |
## Hierarchy
- [`ReactiveBaseState`](./ReactiveBaseState.md)\<`V`\>
↳ **`ReactiveState`**
## Table of contents
### Constructors
- [constructor](./ReactiveState.md#constructor)
### Accessors
- [readonlyValue](./ReactiveState.md#readonlyvalue)
- [value](./ReactiveState.md#value)
### Methods
- [get](./ReactiveState.md#get)
- [hasDependents](./ReactiveState.md#hasdependents)
- [keys](./ReactiveState.md#keys)
- [set](./ReactiveState.md#set)
## Constructors
### constructor
**new ReactiveState**\<`V`\>(`initialValue`, `opts?`)
#### Type parameters
| Name | Type |
| :------ | :------ |
| `V` | extends `Record`\<`string`, `any`\> |
#### Parameters
| Name | Type |
| :------ | :------ |
| `initialValue` | `V` |
| `opts?` | `Object` |
| `opts.isEqual?` | `IStateEqual` |
#### Inherited from
[ReactiveBaseState](./ReactiveBaseState.md).[constructor](./ReactiveBaseState.md#constructor)
## Accessors
### readonlyValue
`get` **readonlyValue**(): `Readonly`\<`V`\>
#### Returns
`Readonly`\<`V`\>
___
### value
`get` **value**(): `V`
#### Returns
`V`
#### Overrides
ReactiveBaseState.value
`set` **value**(`newValue`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newValue` | `V` |
#### Returns
`void`
#### Overrides
ReactiveBaseState.value
## Methods
### get
**get**\<`K`\>(`key`): `V`[`K`]
#### Type parameters
| Name | Type |
| :------ | :------ |
| `K` | extends `string` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `K` |
#### Returns
`V`[`K`]
___
### hasDependents
**hasDependents**(): `boolean`
#### Returns
`boolean`
#### Overrides
[ReactiveBaseState](./ReactiveBaseState.md).[hasDependents](./ReactiveBaseState.md#hasdependents)
___
### keys
**keys**(): `string`[]
#### Returns
`string`[]
___
### set
**set**\<`K`\>(`key`, `value`): `boolean`
#### Type parameters
| Name | Type |
| :------ | :------ |
| `K` | extends `string` |
#### Parameters
| Name | Type |
| :------ | :------ |
| `key` | `K` |
| `value` | `V`[`K`] |
#### Returns
`boolean`
---
url: /auto-docs/editor/classes/Rectangle-1.md
---
# Class: Rectangle
Rectangle object is an area defined by its position, as indicated by its top-left corner
point (x, y) and by its width and its height.
## Table of contents
### Constructors
- [constructor](./Rectangle-1.md#constructor)
### Properties
- [height](./Rectangle-1.md#height)
- [type](./Rectangle-1.md#type)
- [width](./Rectangle-1.md#width)
- [x](./Rectangle-1.md#x)
- [y](./Rectangle-1.md#y)
### Accessors
- [bottom](./Rectangle-1.md#bottom)
- [bottomCenter](./Rectangle-1.md#bottomcenter)
- [center](./Rectangle-1.md#center)
- [crossDistance](./Rectangle-1.md#crossdistance)
- [left](./Rectangle-1.md#left)
- [leftBottom](./Rectangle-1.md#leftbottom)
- [leftCenter](./Rectangle-1.md#leftcenter)
- [leftTop](./Rectangle-1.md#lefttop)
- [right](./Rectangle-1.md#right)
- [rightBottom](./Rectangle-1.md#rightbottom)
- [rightCenter](./Rectangle-1.md#rightcenter)
- [rightTop](./Rectangle-1.md#righttop)
- [top](./Rectangle-1.md#top)
- [topCenter](./Rectangle-1.md#topcenter)
- [EMPTY](./Rectangle-1.md#empty)
### Methods
- [ceil](./Rectangle-1.md#ceil)
- [clearSpace](./Rectangle-1.md#clearspace)
- [clone](./Rectangle-1.md#clone)
- [contains](./Rectangle-1.md#contains)
- [containsRectangle](./Rectangle-1.md#containsrectangle)
- [copyFrom](./Rectangle-1.md#copyfrom)
- [copyTo](./Rectangle-1.md#copyto)
- [enlarge](./Rectangle-1.md#enlarge)
- [fit](./Rectangle-1.md#fit)
- [isEqual](./Rectangle-1.md#isequal)
- [pad](./Rectangle-1.md#pad)
- [toStyleStr](./Rectangle-1.md#tostylestr)
- [update](./Rectangle-1.md#update)
- [withHeight](./Rectangle-1.md#withheight)
- [withPadding](./Rectangle-1.md#withpadding)
- [withoutPadding](./Rectangle-1.md#withoutpadding)
## Constructors
### constructor
**new Rectangle**(`x?`, `y?`, `width?`, `height?`)
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `x?` | `number` | The X coordinate of the upper-left corner of the rectangle |
| `y?` | `number` | The Y coordinate of the upper-left corner of the rectangle |
| `width?` | `number` | The overall width of this rectangle |
| `height?` | `number` | The overall height of this rectangle |
## Properties
### height
**height**: `number`
___
### type
`Readonly` **type**: [`RECT`](../enums/SHAPES.md#rect) = `SHAPES.RECT`
The type of the object, mainly used to avoid `instanceof` checks
___
### width
**width**: `number`
___
### x
**x**: `number`
___
### y
**y**: `number`
## Accessors
### bottom
`get` **bottom**(): `number`
#### Returns
`number`
___
### bottomCenter
`get` **bottomCenter**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### center
`get` **center**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### crossDistance
`get` **crossDistance**(): `number`
#### Returns
`number`
___
### left
`get` **left**(): `number`
#### Returns
`number`
___
### leftBottom
`get` **leftBottom**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### leftCenter
`get` **leftCenter**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### leftTop
`get` **leftTop**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### right
`get` **right**(): `number`
#### Returns
`number`
___
### rightBottom
`get` **rightBottom**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### rightCenter
`get` **rightCenter**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### rightTop
`get` **rightTop**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### top
`get` **top**(): `number`
#### Returns
`number`
___
### topCenter
`get` **topCenter**(): [`IPoint`](../interfaces/IPoint.md)
#### Returns
[`IPoint`](../interfaces/IPoint.md)
___
### EMPTY
`Static` `get` **EMPTY**(): [`Rectangle`](./Rectangle-1.md)
A constant empty rectangle. MUST NOT modify properties!
#### Returns
[`Rectangle`](./Rectangle-1.md)
## Methods
### ceil
**ceil**(`resolution?`, `precision?`): [`Rectangle`](./Rectangle-1.md)
Enlarges rectangle that way its corners lie on grid
#### Parameters
| Name | Type |
| :------ | :------ |
| `resolution?` | `number` |
| `precision?` | `number` |
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### clearSpace
**clearSpace**(): [`Rectangle`](./Rectangle-1.md)
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### clone
**clone**(): [`Rectangle`](./Rectangle-1.md)
Creates a clone of this Rectangle.
#### Returns
[`Rectangle`](./Rectangle-1.md)
a copy of the rectangle
___
### contains
**contains**(`x`, `y`): `boolean`
Checks whether the x and y coordinates given are contained within this Rectangle
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `x` | `number` | The X coordinate of the point to test |
| `y` | `number` | The Y coordinate of the point to test |
#### Returns
`boolean`
Whether the x/y coordinates are within this Rectangle
___
### containsRectangle
**containsRectangle**(`rect`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `rect` | [`Rectangle`](./Rectangle-1.md) |
#### Returns
`boolean`
___
### copyFrom
**copyFrom**(`rectangle`): [`Rectangle`](./Rectangle-1.md)
Copies another rectangle to this one.
#### Parameters
| Name | Type |
| :------ | :------ |
| `rectangle` | [`Rectangle`](./Rectangle-1.md) |
#### Returns
[`Rectangle`](./Rectangle-1.md)
Returns itself.
___
### copyTo
**copyTo**(`rectangle`): [`Rectangle`](./Rectangle-1.md)
Copies this rectangle to another one.
#### Parameters
| Name | Type |
| :------ | :------ |
| `rectangle` | [`Rectangle`](./Rectangle-1.md) |
#### Returns
[`Rectangle`](./Rectangle-1.md)
Returns given rectangle.
___
### enlarge
**enlarge**(`rectangle`): [`Rectangle`](./Rectangle-1.md)
Enlarges this rectangle to include the passed rectangle.
#### Parameters
| Name | Type |
| :------ | :------ |
| `rectangle` | [`Rectangle`](./Rectangle-1.md) |
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### fit
**fit**(`rectangle`): [`Rectangle`](./Rectangle-1.md)
Fits this rectangle around the passed one.
Intersection 交集
#### Parameters
| Name | Type |
| :------ | :------ |
| `rectangle` | [`Rectangle`](./Rectangle-1.md) |
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### isEqual
**isEqual**(`rect`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `rect` | [`Rectangle`](./Rectangle-1.md) |
#### Returns
`boolean`
___
### pad
**pad**(`paddingX?`, `paddingY?`): [`Rectangle`](./Rectangle-1.md)
Pads the rectangle making it grow in all directions.
If paddingY is omitted, both paddingX and paddingY will be set to paddingX.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `paddingX?` | `number` | The horizontal padding amount. |
| `paddingY?` | `number` | The vertical padding amount. |
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### toStyleStr
**toStyleStr**(): `string`
#### Returns
`string`
___
### update
**update**(`fn`): [`Rectangle`](./Rectangle-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `fn` | (`rect`: [`Rectangle`](./Rectangle-1.md)) => [`Rectangle`](./Rectangle-1.md) |
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### withHeight
**withHeight**(`height`): [`Rectangle`](./Rectangle-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `height` | `number` |
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### withPadding
**withPadding**(`padding`): [`Rectangle`](./Rectangle-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `padding` | [`PaddingSchema`](../interfaces/PaddingSchema-1.md) |
#### Returns
[`Rectangle`](./Rectangle-1.md)
___
### withoutPadding
**withoutPadding**(`padding`): [`Rectangle`](./Rectangle-1.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `padding` | [`PaddingSchema`](../interfaces/PaddingSchema-1.md) |
#### Returns
[`Rectangle`](./Rectangle-1.md)
---
url: /auto-docs/editor/classes/RotationData.md
---
# Class: RotationData
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`RotationSchema`](../types/RotationSchema.md)\>
↳ **`RotationData`**
## Table of contents
### Constructors
- [constructor](./RotationData.md#constructor)
### Properties
- [entity](./RotationData.md#entity)
- [onDataChange](./RotationData.md#ondatachange)
- [onWillChange](./RotationData.md#onwillchange)
- [opts](./RotationData.md#opts)
- [toDispose](./RotationData.md#todispose)
- [type](./RotationData.md#type)
### Accessors
- [changeLocked](./RotationData.md#changelocked)
- [data](./RotationData.md#data)
- [disposed](./RotationData.md#disposed)
- [onDispose](./RotationData.md#ondispose)
- [type](./RotationData.md#type-1)
- [version](./RotationData.md#version)
### Methods
- [checkChanged](./RotationData.md#checkchanged)
- [dispose](./RotationData.md#dispose)
- [fireChange](./RotationData.md#firechange)
- [fireWillChange](./RotationData.md#firewillchange)
- [fromJSON](./RotationData.md#fromjson)
- [fullyUpdate](./RotationData.md#fullyupdate)
- [getDefaultData](./RotationData.md#getdefaultdata)
- [toJSON](./RotationData.md#tojson)
- [update](./RotationData.md#update)
## Constructors
### constructor
**new RotationData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`number`, {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<`number`, {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | `number` |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `number` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): `number`
初始化数据
#### Returns
`number`
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | `number` \| ``"toFixed"`` \| ``"toExponential"`` \| ``"toPrecision"`` \| ``"toString"`` \| ``"valueOf"`` \| ``"toLocaleString"`` |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/editor/classes/ScaleData.md
---
# Class: ScaleData
Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
SPDX-License-Identifier: MIT
## Hierarchy
- [`EntityData`](./EntityData.md)\<[`ScaleSchema`](../interfaces/ScaleSchema.md)\>
↳ **`ScaleData`**
## Implements
- [`ScaleSchema`](../interfaces/ScaleSchema.md)
## Table of contents
### Constructors
- [constructor](./ScaleData.md#constructor)
### Properties
- [entity](./ScaleData.md#entity)
- [onDataChange](./ScaleData.md#ondatachange)
- [onWillChange](./ScaleData.md#onwillchange)
- [opts](./ScaleData.md#opts)
- [toDispose](./ScaleData.md#todispose)
- [type](./ScaleData.md#type)
### Accessors
- [changeLocked](./ScaleData.md#changelocked)
- [data](./ScaleData.md#data)
- [disposed](./ScaleData.md#disposed)
- [onDispose](./ScaleData.md#ondispose)
- [type](./ScaleData.md#type-1)
- [version](./ScaleData.md#version)
- [x](./ScaleData.md#x)
- [y](./ScaleData.md#y)
### Methods
- [checkChanged](./ScaleData.md#checkchanged)
- [dispose](./ScaleData.md#dispose)
- [fireChange](./ScaleData.md#firechange)
- [fireWillChange](./ScaleData.md#firewillchange)
- [fromJSON](./ScaleData.md#fromjson)
- [fullyUpdate](./ScaleData.md#fullyupdate)
- [getDefaultData](./ScaleData.md#getdefaultdata)
- [toJSON](./ScaleData.md#tojson)
- [update](./ScaleData.md#update)
## Constructors
### constructor
**new ScaleData**(`entity`, `opts?`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `entity` | [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\> |
| `opts?` | `Object` |
#### Inherited from
[EntityData](./EntityData.md).[constructor](./EntityData.md#constructor)
## Properties
### entity
**entity**: [`Entity`](./Entity-1.md)\<[`EntityOpts`](../interfaces/EntityOpts.md)\>
#### Inherited from
[EntityData](./EntityData.md).[entity](./EntityData.md#entity)
___
### onDataChange
`Readonly` **onDataChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`ScaleSchema`](../interfaces/ScaleSchema.md), {}\>\>
修改后触发
#### Inherited from
[EntityData](./EntityData.md).[onDataChange](./EntityData.md#ondatachange)
___
### onWillChange
`Readonly` **onWillChange**: [`Event`](../interfaces/Event-1.md)\<[`EntityData`](./EntityData.md)\<[`ScaleSchema`](../interfaces/ScaleSchema.md), {}\>\>
修改前触发
#### Inherited from
[EntityData](./EntityData.md).[onWillChange](./EntityData.md#onwillchange)
___
### opts
`Optional` `Readonly` **opts**: `Object`
#### Inherited from
[EntityData](./EntityData.md).[opts](./EntityData.md#opts)
___
### toDispose
`Readonly` **toDispose**: [`DisposableCollection`](./DisposableCollection.md)
#### Inherited from
[EntityData](./EntityData.md).[toDispose](./EntityData.md#todispose)
___
### type
`Static` **type**: `string`
#### Overrides
[EntityData](./EntityData.md).[type](./EntityData.md#type)
## Accessors
### changeLocked
`get` **changeLocked**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.changeLocked
`set` **changeLocked**(`p`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `p` | `boolean` |
#### Returns
`void`
#### Inherited from
EntityData.changeLocked
___
### data
`get` **data**(): `DATA`
当前数据
#### Returns
`DATA`
#### Inherited from
EntityData.data
___
### disposed
`get` **disposed**(): `boolean`
#### Returns
`boolean`
#### Inherited from
EntityData.disposed
___
### onDispose
`get` **onDispose**(): [`Event`](../interfaces/Event-1.md)\<`void`\>
#### Returns
[`Event`](../interfaces/Event-1.md)\<`void`\>
#### Inherited from
EntityData.onDispose
___
### type
`get` **type**(): `string`
data 类型
#### Returns
`string`
#### Inherited from
EntityData.type
___
### version
`get` **version**(): `number`
#### Returns
`number`
#### Inherited from
EntityData.version
___
### x
`get` **x**(): `number`
#### Returns
`number`
#### Implementation of
[ScaleSchema](../interfaces/ScaleSchema.md).[x](../interfaces/ScaleSchema.md#x)
`set` **x**(`x`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `x` | `number` |
#### Returns
`void`
#### Implementation of
[ScaleSchema](../interfaces/ScaleSchema.md).[x](../interfaces/ScaleSchema.md#x)
___
### y
`get` **y**(): `number`
#### Returns
`number`
#### Implementation of
[ScaleSchema](../interfaces/ScaleSchema.md).[y](../interfaces/ScaleSchema.md#y)
`set` **y**(`y`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `y` | `number` |
#### Returns
`void`
#### Implementation of
[ScaleSchema](../interfaces/ScaleSchema.md).[y](../interfaces/ScaleSchema.md#y)
## Methods
### checkChanged
**checkChanged**(`newProps`): `boolean`
#### Parameters
| Name | Type |
| :------ | :------ |
| `newProps` | [`ScaleSchema`](../interfaces/ScaleSchema.md) \| `Partial`\<[`ScaleSchema`](../interfaces/ScaleSchema.md)\> |
#### Returns
`boolean`
**`Deprecated`**
检测属性是否更改,默认采用浅比较
#### Inherited from
[EntityData](./EntityData.md).[checkChanged](./EntityData.md#checkchanged)
___
### dispose
**dispose**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[dispose](./EntityData.md#dispose)
___
### fireChange
**fireChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireChange](./EntityData.md#firechange)
___
### fireWillChange
**fireWillChange**(): `void`
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fireWillChange](./EntityData.md#firewillchange)
___
### fromJSON
**fromJSON**(`data`): `void`
还原数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `object` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fromJSON](./EntityData.md#fromjson)
___
### fullyUpdate
**fullyUpdate**(`props`): `void`
更新全量数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`ScaleSchema`](../interfaces/ScaleSchema.md) |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[fullyUpdate](./EntityData.md#fullyupdate)
___
### getDefaultData
**getDefaultData**(): [`ScaleSchema`](../interfaces/ScaleSchema.md)
初始化数据
#### Returns
[`ScaleSchema`](../interfaces/ScaleSchema.md)
#### Overrides
[EntityData](./EntityData.md).[getDefaultData](./EntityData.md#getdefaultdata)
___
### toJSON
**toJSON**(): `any`
存储数据,一般在关闭浏览器后需要暂时存到 localStorage
#### Returns
`any`
#### Inherited from
[EntityData](./EntityData.md).[toJSON](./EntityData.md#tojson)
___
### update
**update**(`props`, `value?`): `void`
更新单个数据
#### Parameters
| Name | Type |
| :------ | :------ |
| `props` | [`ScaleSchema`](../interfaces/ScaleSchema.md) \| `Partial`\<[`ScaleSchema`](../interfaces/ScaleSchema.md)\> \| keyof [`ScaleSchema`](../interfaces/ScaleSchema.md) |
| `value?` | `any` |
#### Returns
`void`
#### Inherited from
[EntityData](./EntityData.md).[update](./EntityData.md#update)
---
url: /auto-docs/editor/classes/Scope.md
---
# Class: Scope\