拓展 / InterractionCallbacks / InterractionCallbacks
接口: InterractionCallbacks<TElement>
定义于:interfaces/InterractionCallbacks.ts:12
类型参数
TElement
TElement = unknown
属性
isValidConnection()?
optionalisValidConnection: (source,target) =>boolean
定义于:interfaces/InterractionCallbacks.ts:251
当光标悬停在候选目标上时,实时有效性谓词在连接手势期间评估(类似于React Flow的isValidConnection)。返回 false 将悬停目标标记为无效:阴影边缘以无效样式渲染,释放/单击它不会创建任何内容(在这种情况下,不参考 onBeforeEdgeCreate)。在每次指针移动时运行,因此它必须是同步且便宜的。
参数
source
target
返回值
boolean
onBadgeClick()?
optionalonBadgeClick: (event,node,badge,element) =>void
定义于:interfaces/InterractionCallbacks.ts:69
当单击节点的任何边缘徽章(在该徽章自己的 onClick 之后)时调用。将其用于每个徽章共享的行为;将 NodeBadge.onClick 用于一枚徽章自己的操作。
声明它会使每个徽章都接受指针光标并消耗其点击,因此下面的节点也不会被选择。
参数
event
PointerEvent
node
badge
element
TElement
返回值
void
onBeforeDelete()?
optionalonBeforeDelete: (context) =>DeleteDecision|Promise<DeleteDecision>
定义于:interfaces/InterractionCallbacks.ts:277
当用户要求删除图形元素时调用,before任何内容都被删除。该库首先解析整个目标集 - 包括删除节点所需的边缘 (DeleteContext.cascadingEdges) - 因此消费者可以保留手势的完整结果,而无需重新派生级联。
- 返回
false/{ accept: false }否决:不会删除任何内容,不会触发nodeRemove/edgeRemove/noteRemove,并且选择保持不变。 - 返回
true以准确删除所请求的内容。 - 将
{ accept: true, nodes?, edges?, notes? }返回到 narrow 删除子集 — 例如仅保留后端实际删除的内容。省略的键表示“按要求”,因此{ accept: true }相当于true;传递一个空数组以完全避免这种情况。不属于请求的元素将被忽略。
可能是异步的(保留删除,然后决定)——在决定悬而未决时,第二个删除手势将被忽略。 DeleteContext.confirm 打开一个确认模式,这样消费者就不会重建一个。
只有用户启动的删除才会被门控:编程式 graph.removeNode() / graph.removeEdge() / noteManager.removeNote() 永远不会调用此钩子,因此驱动模型的消费者代码不会被消费者自己的门阻止。
参数
context
返回值
DeleteDecision | Promise<DeleteDecision>
onBeforeEdgeCreate()?
optionalonBeforeEdgeCreate: (context) =>EdgeCreateDecision|Promise<EdgeCreateDecision>
定义于:interfaces/InterractionCallbacks.ts:241
在连接手势期间调用,在目标节点解析之后但之前创建边缘(或注释链接)。充当 onBeforeNodeEditCommit 的边缘等效项:验证/丰富/否决挂钩。
- 返回
false/{ accept: false }否决:放弃预览,不添加任何内容,并且连接模式保持武装状态,以便用户可以重试。 - 返回
true以接受默认值。 - 返回
{ accept: true, data?, style?, id?, directed? }接受并提供新边的有效负载/样式/id/方向。
可能是异步的(例如,在决定之前坚持到后端);阴影边缘预览一直持续到承诺解决为止,并且在等待期间不会接受新的连接手势。单击和拖动连接时都会触发。还会触发 note→node 链接 (EdgeCreateContext.kind 'note-link'),其中决策的特定于边的字段将被忽略。
参数
context
返回值
EdgeCreateDecision | Promise<EdgeCreateDecision>
是否应创建连接(可选)及其数据。
onBeforeEdgeEditCommit()?
optionalonBeforeEdgeEditCommit: (context) =>boolean|Promise<boolean>
定义于:interfaces/InterractionCallbacks.ts:320
当即将提交边缘编辑会话时调用。充当验证/持久性/否决钩子,镜像onBeforeNodeEditCommit:返回false(或其承诺)拒绝,保持边缘数据不变并且模式打开。成功后,边缘的数据将被替换,并且 edgeChange 在数据总线上触发。
参数
context
返回值
boolean | Promise<boolean>
提交是否应该继续
onBeforeIngest()?
optionalonBeforeIngest: (context) =>IngestDecision|Promise<IngestDecision>
定义于:interfaces/InterractionCallbacks.ts:300
就在拓展摄取之前(摄取管道上的一个门)对整个候选集调用一次。
- 返回
false/{ accept: false }进行否决:没有任何落地,并且运行报告'vetoed'。 - 返回
true以准确摄取所选内容。 - 将
{ accept: true, nodes?, edges? }返回到 narrow 摄取到子集 — 例如仅后端确认的内容。省略的键表示“按要求”,因此{ accept: true }相当于true;传递一个空数组以消除此类情况。
整个批次的每次摄取调用一次,而不是每个候选者:发现 1,800 个相关性的拓展表不得变成 1,800 个挂钩调用,并且每个手势写入路径挂钩(onBeforeEdgeCreate、onBeforeDelete)是故意与用户手势相关的,而不是编程合并。它也控制着 autoIngest 拓展,这就是让它们受到治理的原因。
可能是异步的(坚持,然后决定)。 IngestContext.confirm 打开共享确认模式。
参数
context
返回值
IngestDecision | Promise<IngestDecision>
onBeforeNodeCreate()?
optionalonBeforeNodeCreate: (context) =>NodeCreateDecision|Promise<NodeCreateDecision>
定义于:interfaces/InterractionCallbacks.ts:342
一旦图形空间位置已知且在添加节点之前,当用户以交互方式创建节点(创建 ▸ 添加节点,或画布上下文菜单的“在此处添加节点”)时调用。镜子onBeforeEdgeCreate:
- 返回
false/{ accept: false }否决 — 不添加任何内容。 - 返回
true接受库的默认节点。 - 返回
{ accept: true, id?, data?, style? }接受并提供新节点的 id / 负载 / 样式。
可能是异步的,NodeCreateContext。promptData打开边缘钩子使用的相同声明形式或自定义HTML模式。如果没有这个钩子,该工具仍然可以工作——它只是创建一个默认的、未命名的节点。程序化 graph.addNode() 永远不会受到限制。
参数
context
返回值
NodeCreateDecision | Promise<NodeCreateDecision>
onBeforeNodeEditCommit()?
optionalonBeforeNodeEditCommit: (context) =>boolean|Promise<boolean>
定义于:interfaces/InterractionCallbacks.ts:216
当即将提交节点编辑会话时调用。充当验证/持久性/否决钩子:返回 false (或它的承诺)拒绝,保持节点的数据不变并且模式打开。成功后,节点的数据将被替换,并且 nodeChange 在数据总线上触发。
参数
context
返回值
boolean | Promise<boolean>
指示提交是否应继续的布尔值
onCanvasBeforeZoom()?
optionalonCanvasBeforeZoom: (event) =>void
定义于:interfaces/InterractionCallbacks.ts:176
当画布即将缩放时调用。
参数
event
unknown
返回值
void
onCanvasClick()?
optionalonCanvasClick: (event) =>void
定义于:interfaces/InterractionCallbacks.ts:162
单击画布时调用。
参数
event
PointerEvent
返回值
void
onCanvasContextmenu()?
optionalonCanvasContextmenu: (event) =>void
定义于:interfaces/InterractionCallbacks.ts:186
右键单击画布时调用。
参数
event
PointerEvent
返回值
void
onCanvasMousemove()?
optionalonCanvasMousemove: (event) =>void
定义于:interfaces/InterractionCallbacks.ts:191
当鼠标移动到画布上时调用。
参数
event
MouseEvent
返回值
void
onCanvasPointerDown()?
optionalonCanvasPointerDown: (event) =>void
定义于:interfaces/InterractionCallbacks.ts:167
当用户指针指向画布时调用。
参数
event
PointerEvent
返回值
void
onCanvasPointerUp()?
optionalonCanvasPointerUp: (event) =>void
定义于:interfaces/InterractionCallbacks.ts:171
当用户将鼠标指针指向画布时调用。
参数
event
PointerEvent
返回值
void
onCanvasZoom()?
optionalonCanvasZoom: (event) =>void
定义于:interfaces/InterractionCallbacks.ts:181
当画布缩放时调用。
参数
event
unknown
返回值
void
onEdgeBlur()?
optionalonEdgeBlur: (edge,element) =>void
定义于:interfaces/InterractionCallbacks.ts:102
当用户取消选择边时调用。
参数
edge
element
TElement
返回值
void
onEdgeClick()?
optionalonEdgeClick: (event,edge,element) =>void
定义于:interfaces/InterractionCallbacks.ts:84
当用户选择一条边时调用。
参数
event
PointerEvent
edge
element
TElement
返回值
void
onEdgeContextmenu()?
optionalonEdgeContextmenu: (event,edge,element) =>void
定义于:interfaces/InterractionCallbacks.ts:92
右键单击边缘时调用。
参数
event
PointerEvent
edge
element
TElement
返回值
void
onEdgeDbclick()?
optionalonEdgeDbclick: (event,edge,element) =>void
定义于:interfaces/InterractionCallbacks.ts:88
当用户选择一条边时调用。
参数
event
PointerEvent
edge
element
TElement
返回值
void
onEdgeEdit()?
optionalonEdgeEdit: (session) =>HTMLDivElement
定义于:interfaces/InterractionCallbacks.ts:310
当边缘编辑会话开始时调用。充当 UI 挂钩,镜像 onNodeEdit:返回主体以注入编辑模式。自定义主体拥有草稿 - 在用户键入时改变 session.draft (或调用 session.setDraft),因为库在提交时没有可供读取的表单。
参数
session
EdgeEditSession
边缘编辑会话
返回值
HTMLDivElement
将注入模态主体的 HTML Div
onEdgeEditCancel()?
optionalonEdgeEditCancel: (edge) =>void
定义于:interfaces/InterractionCallbacks.ts:325
当边缘编辑会话被取消时调用。
参数
edge
返回值
void
onEdgeHoverIn()?
optionalonEdgeHoverIn: (event,edge,element) =>void
定义于:interfaces/InterractionCallbacks.ts:107
当用户将鼠标悬停在边缘上时调用。
参数
event
PointerEvent
edge
element
TElement
返回值
void
onEdgeHoverOut()?
optionalonEdgeHoverOut: (event,edge,element) =>void
定义于:interfaces/InterractionCallbacks.ts:111
当用户将鼠标悬停在边缘上时调用。
参数
event
PointerEvent
edge
element
TElement
返回值
void
onEdgeSelect()?
optionalonEdgeSelect: (edge,element) =>void
定义于:interfaces/InterractionCallbacks.ts:97
当用户选择一条边时调用。
参数
edge
element
TElement
返回值
void
onNodeBlur()?
optionalonNodeBlur: (node,element) =>void
定义于:interfaces/InterractionCallbacks.ts:59
当用户取消选择节点时调用。
参数
node
element
TElement
返回值
void
onNodeClick()?
optionalonNodeClick: (event,node,element) =>void
定义于:interfaces/InterractionCallbacks.ts:16
单击节点时调用。
参数
event
PointerEvent
node
element
TElement
返回值
void
onNodeContextmenu()?
optionalonNodeContextmenu: (event,node,element) =>void
定义于:interfaces/InterractionCallbacks.ts:26
右键单击节点时调用。
参数
event
PointerEvent
node
element
TElement
返回值
void
onNodeDbclick()?
optionalonNodeDbclick: (event,node,element) =>void
定义于:interfaces/InterractionCallbacks.ts:21
双击节点时调用。
参数
event
PointerEvent
node
element
TElement
返回值
void
onNodeDragended()?
optionalonNodeDragended: (event,node) =>void
定义于:interfaces/InterractionCallbacks.ts:79
当节点拖动结束时调用。
参数
event
MouseEvent
node
返回值
void
onNodeDragging()?
optionalonNodeDragging: (event,node) =>void
定义于:interfaces/InterractionCallbacks.ts:74
当拖动节点时调用。
参数
event
MouseEvent
node
返回值
void
onNodeEdit()?
optionalonNodeEdit: (session) =>HTMLDivElement
定义于:interfaces/InterractionCallbacks.ts:208
当节点编辑会话启动时调用。充当 UI 挂钩。
参数
session
NodeEditSession
节点编辑会话
返回值
HTMLDivElement
将注入模态主体的 HTML Div
onNodeEditCancel()?
optionalonNodeEditCancel: (node) =>void
定义于:interfaces/InterractionCallbacks.ts:220
当节点编辑会话被取消时调用
参数
node
返回值
void
onNodeHoverIn()?
optionalonNodeHoverIn: (event,node,element) =>void
定义于:interfaces/InterractionCallbacks.ts:31
当用户将鼠标悬停在节点上时调用。
参数
event
PointerEvent
node
element
TElement
返回值
void
onNodeHoverOut()?
optionalonNodeHoverOut: (event,node,element) =>void
定义于:interfaces/InterractionCallbacks.ts:35
当用户将鼠标悬停在节点之外时调用。
参数
event
PointerEvent
node
element
TElement
返回值
void
onNodePointerDown()?
optionalonNodePointerDown: (event,node,element) =>void
定义于:interfaces/InterractionCallbacks.ts:40
当用户指针指向节点时调用。
参数
event
PointerEvent
node
element
TElement
返回值
void
onNodePointerUp()?
optionalonNodePointerUp: (event,node,element) =>void
定义于:interfaces/InterractionCallbacks.ts:44
当用户指针向上指向节点时调用。
参数
event
PointerEvent
node
element
TElement
返回值
void
onNodeSelect()?
optionalonNodeSelect: (node,element) =>void
定义于:interfaces/InterractionCallbacks.ts:49
当用户选择节点时调用。
参数
node
element
TElement
返回值
void
onNodesSelect()?
optionalonNodesSelect: (selection) =>void
定义于:interfaces/InterractionCallbacks.ts:54
当用户选择节点时调用。
参数
selection
NodeSelection<TElement>[]
返回值
void
onNoteClick()?
optionalonNoteClick: (event,note,element) =>void
定义于:interfaces/InterractionCallbacks.ts:116
单击注释时调用。
参数
event
PointerEvent
note
element
TElement
返回值
void
onNoteContextmenu()?
optionalonNoteContextmenu: (event,note,element) =>void
定义于:interfaces/InterractionCallbacks.ts:126
右键单击注释时调用。
参数
event
PointerEvent
note
element
TElement
返回值
void
onNoteDbclick()?
optionalonNoteDbclick: (event,note,element) =>void
定义于:interfaces/InterractionCallbacks.ts:121
双击注释时调用。
参数
event
PointerEvent
note
element
TElement
返回值
void
onNoteDragging()?
optionalonNoteDragging: (event,note) =>void
定义于:interfaces/InterractionCallbacks.ts:157
当用户指针向上指向节点时调用。
参数
event
PointerEvent
note
返回值
void
onNoteHandleClick()?
optionalonNoteHandleClick: (event,note,handle) =>void
定义于:interfaces/InterractionCallbacks.ts:149
当用户指针指向节点时调用。
参数
event
PointerEvent
note
handle
HTMLElement
返回值
void
onNoteHandlePointerDown()?
optionalonNoteHandlePointerDown: (event,note,handle) =>void
定义于:interfaces/InterractionCallbacks.ts:153
当用户指针向上指向节点时调用。
参数
event
PointerEvent
note
handle
HTMLElement
返回值
void
onNoteHoverIn()?
optionalonNoteHoverIn: (event,note,element) =>void
定义于:interfaces/InterractionCallbacks.ts:131
当用户将鼠标悬停在注释上时调用。
参数
event
PointerEvent
note
element
TElement
返回值
void
onNoteHoverOut()?
optionalonNoteHoverOut: (event,note,element) =>void
定义于:interfaces/InterractionCallbacks.ts:135
当用户将鼠标悬停在注释之外时调用。
参数
event
PointerEvent
note
element
TElement
返回值
void
onNotePointerDown()?
optionalonNotePointerDown: (event,note,element) =>void
定义于:interfaces/InterractionCallbacks.ts:140
当用户指针指向节点时调用。
参数
event
PointerEvent
note
element
TElement
返回值
void
onNotePointerUp()?
optionalonNotePointerUp: (event,note,element) =>void
定义于:interfaces/InterractionCallbacks.ts:144
当用户指针向上指向节点时调用。
参数
event
PointerEvent
note
element
TElement
返回值
void
onSimulationSlowTick()?
optionalonSimulationSlowTick: () =>void
定义于:interfaces/InterractionCallbacks.ts:201
当模拟的十分之一滴答时调用。
返回值
void
onSimulationTick()?
optionalonSimulationTick: () =>void
定义于:interfaces/InterractionCallbacks.ts:196
当模拟进行时调用。
返回值
void