跳转到内容

pivotick v3.0.0


拓展 / InterractionCallbacks / InterractionCallbacks

接口: InterractionCallbacks<TElement> ​

定义于:interfaces/InterractionCallbacks.ts:12

类型参数 ​

TElement ​

TElement = unknown

属性 ​

isValidConnection()? ​

optional isValidConnection: (source, target) => boolean

定义于:interfaces/InterractionCallbacks.ts:251

当光标悬停在候选目标上时,实时有效性谓词在连接手势期间评估(类似于React Flow的isValidConnection)。返回 false 将悬停目标标记为无效:阴影边缘以无效样式渲染,释放/单击它不会创建任何内容(在这种情况下,不参考 onBeforeEdgeCreate)。在每次指针移动时运行,因此它必须是同步且便宜的。

参数 ​

source ​

Node | Note

target ​

Node

返回值 ​

boolean


onBadgeClick()? ​

optional onBadgeClick: (event, node, badge, element) => void

定义于:interfaces/InterractionCallbacks.ts:69

当单击节点的任何边缘徽章(在该徽章自己的 onClick 之后)时调用。将其用于每个徽章共享的行为;将 NodeBadge.onClick 用于一枚徽章自己的操作。

声明它会使每个徽章都接受指针光标并消耗其点击,因此下面的节点也不会被选择。

参数 ​

event ​

PointerEvent

node ​

Node

badge ​

NodeBadge

element ​

TElement

返回值 ​

void


onBeforeDelete()? ​

optional onBeforeDelete: (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 ​

DeleteContext

返回值 ​

DeleteDecision | Promise<DeleteDecision>


onBeforeEdgeCreate()? ​

optional onBeforeEdgeCreate: (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 ​

EdgeCreateContext

返回值 ​

EdgeCreateDecision | Promise<EdgeCreateDecision>

是否应创建连接(可选)及其数据。


onBeforeEdgeEditCommit()? ​

optional onBeforeEdgeEditCommit: (context) => boolean | Promise<boolean>

定义于:interfaces/InterractionCallbacks.ts:320

当即将提交边缘编辑会话时调用。充当验证/持久性/否决钩子,镜像onBeforeNodeEditCommit:返回false(或其承诺)拒绝,保持边缘数据不变并且模式打开。成功后,边缘的数据将被替换,并且 edgeChange 在数据总线上触发。

参数 ​

context ​

EdgeEditCommitContext

返回值 ​

boolean | Promise<boolean>

提交是否应该继续


onBeforeIngest()? ​

optional onBeforeIngest: (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 ​

IngestContext

返回值 ​

IngestDecision | Promise<IngestDecision>


onBeforeNodeCreate()? ​

optional onBeforeNodeCreate: (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 ​

NodeCreateContext

返回值 ​

NodeCreateDecision | Promise<NodeCreateDecision>


onBeforeNodeEditCommit()? ​

optional onBeforeNodeEditCommit: (context) => boolean | Promise<boolean>

定义于:interfaces/InterractionCallbacks.ts:216

当即将提交节点编辑会话时调用。充当验证/持久性/否决钩子:返回 false (或它的承诺)拒绝,保持节点的数据不变并且模式打开。成功后,节点的数据将被替换,并且 nodeChange 在数据总线上触发。

参数 ​

context ​

NodeEditCommitContext

返回值 ​

boolean | Promise<boolean>

指示提交是否应继续的布尔值


onCanvasBeforeZoom()? ​

optional onCanvasBeforeZoom: (event) => void

定义于:interfaces/InterractionCallbacks.ts:176

当画布即将缩放时调用。

参数 ​

event ​

unknown

返回值 ​

void


onCanvasClick()? ​

optional onCanvasClick: (event) => void

定义于:interfaces/InterractionCallbacks.ts:162

单击画布时调用。

参数 ​

event ​

PointerEvent

返回值 ​

void


onCanvasContextmenu()? ​

optional onCanvasContextmenu: (event) => void

定义于:interfaces/InterractionCallbacks.ts:186

右键单击画布时调用。

参数 ​

event ​

PointerEvent

返回值 ​

void


onCanvasMousemove()? ​

optional onCanvasMousemove: (event) => void

定义于:interfaces/InterractionCallbacks.ts:191

当鼠标移动到画布上时调用。

参数 ​

event ​

MouseEvent

返回值 ​

void


onCanvasPointerDown()? ​

optional onCanvasPointerDown: (event) => void

定义于:interfaces/InterractionCallbacks.ts:167

当用户指针指向画布时调用。

参数 ​

event ​

PointerEvent

返回值 ​

void


onCanvasPointerUp()? ​

optional onCanvasPointerUp: (event) => void

定义于:interfaces/InterractionCallbacks.ts:171

当用户将鼠标指针指向画布时调用。

参数 ​

event ​

PointerEvent

返回值 ​

void


onCanvasZoom()? ​

optional onCanvasZoom: (event) => void

定义于:interfaces/InterractionCallbacks.ts:181

当画布缩放时调用。

参数 ​

event ​

unknown

返回值 ​

void


onEdgeBlur()? ​

optional onEdgeBlur: (edge, element) => void

定义于:interfaces/InterractionCallbacks.ts:102

当用户取消选择边时调用。

参数 ​

edge ​

Edge

element ​

TElement

返回值 ​

void


onEdgeClick()? ​

optional onEdgeClick: (event, edge, element) => void

定义于:interfaces/InterractionCallbacks.ts:84

当用户选择一条边时调用。

参数 ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

返回值 ​

void


onEdgeContextmenu()? ​

optional onEdgeContextmenu: (event, edge, element) => void

定义于:interfaces/InterractionCallbacks.ts:92

右键单击边缘时调用。

参数 ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

返回值 ​

void


onEdgeDbclick()? ​

optional onEdgeDbclick: (event, edge, element) => void

定义于:interfaces/InterractionCallbacks.ts:88

当用户选择一条边时调用。

参数 ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

返回值 ​

void


onEdgeEdit()? ​

optional onEdgeEdit: (session) => HTMLDivElement

定义于:interfaces/InterractionCallbacks.ts:310

当边缘编辑会话开始时调用。充当 UI 挂钩,镜像 onNodeEdit:返回主体以注入编辑模式。自定义主体拥有草稿 - 在用户键入时改变 session.draft (或调用 session.setDraft),因为库在提交时没有可供读取的表单。

参数 ​

session ​

EdgeEditSession

边缘编辑会话

返回值 ​

HTMLDivElement

将注入模态主体的 HTML Div


onEdgeEditCancel()? ​

optional onEdgeEditCancel: (edge) => void

定义于:interfaces/InterractionCallbacks.ts:325

当边缘编辑会话被取消时调用。

参数 ​

edge ​

Edge

返回值 ​

void


onEdgeHoverIn()? ​

optional onEdgeHoverIn: (event, edge, element) => void

定义于:interfaces/InterractionCallbacks.ts:107

当用户将鼠标悬停在边缘上时调用。

参数 ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

返回值 ​

void


onEdgeHoverOut()? ​

optional onEdgeHoverOut: (event, edge, element) => void

定义于:interfaces/InterractionCallbacks.ts:111

当用户将鼠标悬停在边缘上时调用。

参数 ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

返回值 ​

void


onEdgeSelect()? ​

optional onEdgeSelect: (edge, element) => void

定义于:interfaces/InterractionCallbacks.ts:97

当用户选择一条边时调用。

参数 ​

edge ​

Edge

element ​

TElement

返回值 ​

void


onNodeBlur()? ​

optional onNodeBlur: (node, element) => void

定义于:interfaces/InterractionCallbacks.ts:59

当用户取消选择节点时调用。

参数 ​

node ​

Node

element ​

TElement

返回值 ​

void


onNodeClick()? ​

optional onNodeClick: (event, node, element) => void

定义于:interfaces/InterractionCallbacks.ts:16

单击节点时调用。

参数 ​

event ​

PointerEvent

node ​

Node

element ​

TElement

返回值 ​

void


onNodeContextmenu()? ​

optional onNodeContextmenu: (event, node, element) => void

定义于:interfaces/InterractionCallbacks.ts:26

右键单击节点时调用。

参数 ​

event ​

PointerEvent

node ​

Node

element ​

TElement

返回值 ​

void


onNodeDbclick()? ​

optional onNodeDbclick: (event, node, element) => void

定义于:interfaces/InterractionCallbacks.ts:21

双击节点时调用。

参数 ​

event ​

PointerEvent

node ​

Node

element ​

TElement

返回值 ​

void


onNodeDragended()? ​

optional onNodeDragended: (event, node) => void

定义于:interfaces/InterractionCallbacks.ts:79

当节点拖动结束时调用。

参数 ​

event ​

MouseEvent

node ​

Node

返回值 ​

void


onNodeDragging()? ​

optional onNodeDragging: (event, node) => void

定义于:interfaces/InterractionCallbacks.ts:74

当拖动节点时调用。

参数 ​

event ​

MouseEvent

node ​

Node

返回值 ​

void


onNodeEdit()? ​

optional onNodeEdit: (session) => HTMLDivElement

定义于:interfaces/InterractionCallbacks.ts:208

当节点编辑会话启动时调用。充当 UI 挂钩。

参数 ​

session ​

NodeEditSession

节点编辑会话

返回值 ​

HTMLDivElement

将注入模态主体的 HTML Div


onNodeEditCancel()? ​

optional onNodeEditCancel: (node) => void

定义于:interfaces/InterractionCallbacks.ts:220

当节点编辑会话被取消时调用

参数 ​

node ​

Node

返回值 ​

void


onNodeHoverIn()? ​

optional onNodeHoverIn: (event, node, element) => void

定义于:interfaces/InterractionCallbacks.ts:31

当用户将鼠标悬停在节点上时调用。

参数 ​

event ​

PointerEvent

node ​

Node

element ​

TElement

返回值 ​

void


onNodeHoverOut()? ​

optional onNodeHoverOut: (event, node, element) => void

定义于:interfaces/InterractionCallbacks.ts:35

当用户将鼠标悬停在节点之外时调用。

参数 ​

event ​

PointerEvent

node ​

Node

element ​

TElement

返回值 ​

void


onNodePointerDown()? ​

optional onNodePointerDown: (event, node, element) => void

定义于:interfaces/InterractionCallbacks.ts:40

当用户指针指向节点时调用。

参数 ​

event ​

PointerEvent

node ​

Node

element ​

TElement

返回值 ​

void


onNodePointerUp()? ​

optional onNodePointerUp: (event, node, element) => void

定义于:interfaces/InterractionCallbacks.ts:44

当用户指针向上指向节点时调用。

参数 ​

event ​

PointerEvent

node ​

Node

element ​

TElement

返回值 ​

void


onNodeSelect()? ​

optional onNodeSelect: (node, element) => void

定义于:interfaces/InterractionCallbacks.ts:49

当用户选择节点时调用。

参数 ​

node ​

Node

element ​

TElement

返回值 ​

void


onNodesSelect()? ​

optional onNodesSelect: (selection) => void

定义于:interfaces/InterractionCallbacks.ts:54

当用户选择节点时调用。

参数 ​

selection ​

NodeSelection<TElement>[]

返回值 ​

void


onNoteClick()? ​

optional onNoteClick: (event, note, element) => void

定义于:interfaces/InterractionCallbacks.ts:116

单击注释时调用。

参数 ​

event ​

PointerEvent

note ​

Note

element ​

TElement

返回值 ​

void


onNoteContextmenu()? ​

optional onNoteContextmenu: (event, note, element) => void

定义于:interfaces/InterractionCallbacks.ts:126

右键单击注释时调用。

参数 ​

event ​

PointerEvent

note ​

Note

element ​

TElement

返回值 ​

void


onNoteDbclick()? ​

optional onNoteDbclick: (event, note, element) => void

定义于:interfaces/InterractionCallbacks.ts:121

双击注释时调用。

参数 ​

event ​

PointerEvent

note ​

Note

element ​

TElement

返回值 ​

void


onNoteDragging()? ​

optional onNoteDragging: (event, note) => void

定义于:interfaces/InterractionCallbacks.ts:157

当用户指针向上指向节点时调用。

参数 ​

event ​

PointerEvent

note ​

Note

返回值 ​

void


onNoteHandleClick()? ​

optional onNoteHandleClick: (event, note, handle) => void

定义于:interfaces/InterractionCallbacks.ts:149

当用户指针指向节点时调用。

参数 ​

event ​

PointerEvent

note ​

Note

handle ​

HTMLElement

返回值 ​

void


onNoteHandlePointerDown()? ​

optional onNoteHandlePointerDown: (event, note, handle) => void

定义于:interfaces/InterractionCallbacks.ts:153

当用户指针向上指向节点时调用。

参数 ​

event ​

PointerEvent

note ​

Note

handle ​

HTMLElement

返回值 ​

void


onNoteHoverIn()? ​

optional onNoteHoverIn: (event, note, element) => void

定义于:interfaces/InterractionCallbacks.ts:131

当用户将鼠标悬停在注释上时调用。

参数 ​

event ​

PointerEvent

note ​

Note

element ​

TElement

返回值 ​

void


onNoteHoverOut()? ​

optional onNoteHoverOut: (event, note, element) => void

定义于:interfaces/InterractionCallbacks.ts:135

当用户将鼠标悬停在注释之外时调用。

参数 ​

event ​

PointerEvent

note ​

Note

element ​

TElement

返回值 ​

void


onNotePointerDown()? ​

optional onNotePointerDown: (event, note, element) => void

定义于:interfaces/InterractionCallbacks.ts:140

当用户指针指向节点时调用。

参数 ​

event ​

PointerEvent

note ​

Note

element ​

TElement

返回值 ​

void


onNotePointerUp()? ​

optional onNotePointerUp: (event, note, element) => void

定义于:interfaces/InterractionCallbacks.ts:144

当用户指针向上指向节点时调用。

参数 ​

event ​

PointerEvent

note ​

Note

element ​

TElement

返回值 ​

void


onSimulationSlowTick()? ​

optional onSimulationSlowTick: () => void

定义于:interfaces/InterractionCallbacks.ts:201

当模拟的十分之一滴答时调用。

返回值 ​

void


onSimulationTick()? ​

optional onSimulationTick: () => void

定义于:interfaces/InterractionCallbacks.ts:196

当模拟进行时调用。

返回值 ​

void