defineBehavior
defineBehavior<
TPayload
,TBehaviorEventType
,TGuardResponse
>(behavior
):Behavior
Defined in: behaviors/behavior.types.behavior.ts:56
Type Parameters
TPayload
TPayload
extends Record
<string
, unknown
>
TBehaviorEventType
TBehaviorEventType
extends "serialize"
| "clipboard.copy"
| "clipboard.cut"
| "drag.dragstart"
| "serialization.failure"
| "serialization.success"
| "deserialize"
| "deserialization.failure"
| "deserialization.success"
| "delete"
| "select"
| "*"
| "annotation.add"
| "annotation.remove"
| "block.set"
| "block.unset"
| "decorator.add"
| "decorator.remove"
| "delete.backward"
| "delete.block"
| "delete.forward"
| "history.redo"
| "history.undo"
| "insert.inline object"
| "insert.block"
| "insert.span"
| "insert.text"
| "move.backward"
| "move.block"
| "move.forward"
| "split.block"
| "annotation.toggle"
| "decorator.toggle"
| "delete.text"
| "insert.blocks"
| "insert.break"
| "insert.soft break"
| "list item.add"
| "list item.remove"
| "list item.toggle"
| "move.block down"
| "move.block up"
| "select.previous block"
| "select.next block"
| "style.add"
| "style.remove"
| "style.toggle"
| "clipboard.paste"
| "drag.drag"
| "drag.dragend"
| "drag.dragenter"
| "drag.dragover"
| "drag.dragleave"
| "drag.drop"
| "input.*"
| "keyboard.keydown"
| "keyboard.keyup"
| "mouse.click"
| "serialize.*"
| "deserialize.*"
| "split.*"
| "style.*"
| "block.*"
| "delete.*"
| "move.*"
| "select.*"
| "history.*"
| "annotation.*"
| "decorator.*"
| "insert.*"
| "serialization.*"
| "deserialization.*"
| "list item.*"
| "clipboard.*"
| "drag.*"
| "keyboard.*"
| "mouse.*"
| `custom.${string}`
= `custom.${string}`
TGuardResponse
TGuardResponse
= true
Parameters
behavior
Behavior
<TBehaviorEventType
, TGuardResponse
, ResolveBehaviorEvent
<TBehaviorEventType
, TPayload
>>
Returns
Example
const noLowerCaseA = defineBehavior({ on: 'insert.text', guard: ({event, snapshot}) => event.text === 'a', actions: [({event, snapshot}) => [{type: 'insert.text', text: 'A'}]],})