Zum Inhalt springen

pivotick v3.0.0


Pivotick / InterractionCallbacks / InterractionCallbacks

Interface: InterractionCallbacks<TElement> ​

Definiert in: interfaces/InterractionCallbacks.ts:12

Typparameter ​

TElement ​

TElement = unknown

Eigenschaften ​

isValidConnection()? ​

optional isValidConnection: (source, target) => boolean

Definiert in: interfaces/InterractionCallbacks.ts:251

Live-Gültigkeitsprädikat wird während der Verbindungsgeste ausgewertet, während der Cursor über Kandidatenzielen schwebt (à la React Flows isValidConnection). Geben Sie false zurück, um das schwebende Ziel als ungültig zu markieren: Der Schattenrand wird in einem ungültigen Stil gerendert, und wenn Sie ihn loslassen bzw. darauf klicken, wird nichts erstellt (in diesem Fall wird onBeforeEdgeCreate nicht verwendet). Läuft bei jeder Zeigerbewegung, daher muss es synchron und kostengünstig sein.

Parameter ​

source ​

Node | Note

target ​

Node

Rückgabewert ​

boolean


onBadgeClick()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:69

Wird aufgerufen, wenn auf eines der Randabzeichen eines Knotens geklickt wird, nach dem eigenen onClick dieses Abzeichens. Verwenden Sie es für das Verhalten, das jedes Abzeichen teilt. Verwenden Sie NodeBadge.onClick für die eigene Aktion eines Abzeichens.

Durch die Deklaration nimmt jedes Abzeichen den Zeigercursor und verbraucht seinen Klick, sodass der darunter liegende Knoten nicht ebenfalls ausgewählt wird.

Parameter ​

event ​

PointerEvent

node ​

Node

badge ​

NodeBadge

element ​

TElement

Rückgabewert ​

void


onBeforeDelete()? ​

optional onBeforeDelete: (context) => DeleteDecision | Promise<DeleteDecision>

Definiert in: interfaces/InterractionCallbacks.ts:277

Wird aufgerufen, wenn der Benutzer Diagrammelemente löschen möchte, bevor etwas entfernt wird. Die Bibliothek löst zuerst den gesamten Zielsatz auf – einschließlich der Kanten, die das Entfernen eines Knotens mit sich bringen würde (DeleteContext.cascadingEdges), sodass ein Verbraucher die volle Konsequenz der Geste beibehalten kann, ohne die Kaskade erneut abzuleiten.

  • Mit false / { accept: false } ein Veto einlegen: Es wird nichts entfernt, es werden keine nodeRemove/edgeRemove/noteRemove ausgelöst und die Auswahl bleibt erhalten.
  • Geben Sie true zurück, um genau das zu löschen, was angefordert wurde.
  • Geben Sie { accept: true, nodes?, edges?, notes? } auf einen zurück, um das Löschen auf eine Teilmenge zu beschränken – z. B. Behalten Sie nur das, was das Backend tatsächlich gelöscht hat. Ein weggelassener Schlüssel bedeutet „wie angefordert“, daher ist { accept: true } äquivalent zu true; Übergeben Sie ein leeres Array, um diese Art vollständig zu verschonen. Elemente, die nicht Teil der Anfrage waren, werden ignoriert.

Kann asynchron sein (Löschen beibehalten, dann entscheiden) – eine zweite Löschgeste wird ignoriert, während eine Entscheidung aussteht. DeleteContext.confirm öffnet ein Bestätigungsmodal, damit Verbraucher keines neu erstellen.

Nur vom Benutzer initiierte Löschvorgänge werden mit einem Gatter versehen: Programmgesteuert graph.removeNode() / graph.removeEdge() / noteManager.removeNote() ruft diesen Hook niemals auf, sodass der Verbrauchercode, der das Modell steuert, nicht durch das eigene Gate des Verbrauchers blockiert wird.

Parameter ​

context ​

DeleteContext

Rückgabewert ​

DeleteDecision | Promise<DeleteDecision>


onBeforeEdgeCreate()? ​

optional onBeforeEdgeCreate: (context) => EdgeCreateDecision | Promise<EdgeCreateDecision>

Definiert in: interfaces/InterractionCallbacks.ts:241

Wird während einer Verbindungsgeste aufgerufen, nachdem der Zielknoten aufgelöst wurde, aber bevor die Kante (oder der Notizlink) erstellt wird. Fungiert als Kantenäquivalent von onBeforeNodeEditCommit: ein Validierungs-/Anreicherungs-/Veto-Hook.

  • Zurück false / { accept: false } zum Veto: Die Vorschau wird gelöscht, nichts wird hinzugefügt und der Verbindungsmodus bleibt aktiviert, sodass der Benutzer es erneut versuchen kann.
  • Geben Sie true zurück, um die Standardeinstellungen zu übernehmen.
  • Geben Sie { accept: true, data?, style?, id?, directed? } zurück, um die Nutzlast/den Stil/die ID/die Richtung der neuen Kante zu akzeptieren und bereitzustellen.

Kann asynchron sein (z. B. vor der Entscheidung in einem Backend verbleiben); Die Shadow-Edge-Vorschau bleibt bestehen, bis das Versprechen erfüllt ist, und es wird keine neue Verbindungsgeste akzeptiert, während sie aussteht. Wird sowohl beim Klicken als auch beim Ziehen zum Verbinden ausgelöst. Wird auch für Notiz→Knoten-Links (EdgeCreateContext.kind 'note-link') ausgelöst, bei denen die kantenspezifischen Felder der Entscheidung ignoriert werden.

Parameter ​

context ​

EdgeCreateContext

Rückgabewert ​

EdgeCreateDecision | Promise<EdgeCreateDecision>

ob die Verbindung erstellt werden soll, optional mit ihren Daten.


onBeforeEdgeEditCommit()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:320

Wird aufgerufen, wenn eine Edge-Edit-Sitzung festgeschrieben werden soll. Fungiert als Validierungs-/Persistenz-/Veto-Hook und spiegelt onBeforeNodeEditCommit: Gibt false (oder ein Versprechen davon) zurück, um es abzulehnen, wobei die Daten der Kante unberührt bleiben und das Modal offen bleibt. Bei Erfolg werden die Daten der Kante ersetzt und edgeChange wird auf dem Datenbus ausgelöst.

Parameter ​

context ​

EdgeEditCommitContext

Rückgabewert ​

boolean | Promise<boolean>

ob der Commit fortgesetzt werden soll


onBeforeIngest()? ​

optional onBeforeIngest: (context) => IngestDecision | Promise<IngestDecision>

Definiert in: interfaces/InterractionCallbacks.ts:300

Wird einmal mit dem gesamten Kandidatensatz aufgerufen, kurz bevor ein Pivot ihn aufnimmt – das eine Gate in der Aufnahmepipeline.

  • Zurück false / { accept: false } zum Veto: Nichts landet und der Lauf meldet 'vetoed'.
  • Geben Sie true zurück, um genau das aufzunehmen, was ausgewählt wurde.
  • Geben Sie { accept: true, nodes?, edges? } auf einen zurück, um die Aufnahme auf eine Teilmenge zu beschränken – z. B. nur das, was das Backend bestätigt hat. Ein weggelassener Schlüssel bedeutet „wie angefordert“, daher ist { accept: true } äquivalent zu true; Übergeben Sie ein leeres Array, um nichts dergleichen zu landen.

Wird einmal pro Aufnahme mit dem gesamten Batch aufgerufen, niemals pro Kandidat: Ein Pivot, der 1.800 Korrelationen gefunden hat, darf nicht in 1.800 Hook-Aufrufe umgewandelt werden, und bei den Schreibpfad-Hooks pro Geste (onBeforeEdgeCreate, onBeforeDelete) geht es bewusst um Benutzergesten und nicht um eine programmatische Zusammenführung. Es steuert auch autoIngest Pivots, wodurch sie unter Kontrolle bleiben.

Kann asynchron sein (beibehalten, dann entscheiden). IngestContext.confirm öffnet das gemeinsame Bestätigungsmodal.

Parameter ​

context ​

IngestContext

Rückgabewert ​

IngestDecision | Promise<IngestDecision>


onBeforeNodeCreate()? ​

optional onBeforeNodeCreate: (context) => NodeCreateDecision | Promise<NodeCreateDecision>

Definiert in: interfaces/InterractionCallbacks.ts:342

Wird aufgerufen, wenn der Benutzer interaktiv einen Knoten erstellt (Erstellen ▸ Knoten hinzufügen oder „Knoten hier hinzufügen“ im Canvas-Kontextmenü), sobald die Position im Diagrammraum bekannt ist und bevor der Knoten hinzugefügt wird. Spiegel onBeforeEdgeCreate:

  • Geben Sie false / { accept: false } zurück, um Ihr Veto einzulegen – es wird nichts hinzugefügt.
  • Geben Sie true zurück, um den Standardknoten der Bibliothek zu akzeptieren.
  • Geben Sie { accept: true, id?, data?, style? } zurück, um die ID/Nutzlast/den Stil des neuen Knotens zu akzeptieren und bereitzustellen.

Kann asynchron sein und NodeCreateContext.promptData öffnet das gleiche deklarative Formular oder benutzerdefinierte HTML-Modal, das der Edge-Hook verwendet. Ohne diesen Hook funktioniert das Tool immer noch – es erstellt lediglich einen standardmäßigen, unbenannten Knoten. Programmatic graph.addNode() ist niemals begrenzt.

Parameter ​

context ​

NodeCreateContext

Rückgabewert ​

NodeCreateDecision | Promise<NodeCreateDecision>


onBeforeNodeEditCommit()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:216

Wird aufgerufen, wenn eine Knotenbearbeitungssitzung festgeschrieben werden soll. Fungiert als Validierungs-/Persistenz-/Veto-Hook: Gibt false (oder ein Versprechen davon) zurück, um es abzulehnen, wobei die Daten des Knotens unberührt bleiben und das Modal offen bleibt. Bei Erfolg werden die Daten des Knotens ersetzt und nodeChange wird auf dem Datenbus ausgelöst.

Parameter ​

context ​

NodeEditCommitContext

Rückgabewert ​

boolean | Promise<boolean>

Boolescher Wert, der angibt, ob der Commit fortgesetzt werden soll oder nicht


onCanvasBeforeZoom()? ​

optional onCanvasBeforeZoom: (event) => void

Definiert in: interfaces/InterractionCallbacks.ts:176

Wird aufgerufen, wenn die Arbeitsfläche gezoomt werden soll.

Parameter ​

event ​

unknown

Rückgabewert ​

void


onCanvasClick()? ​

optional onCanvasClick: (event) => void

Definiert in: interfaces/InterractionCallbacks.ts:162

Wird aufgerufen, wenn auf die Arbeitsfläche geklickt wird.

Parameter ​

event ​

PointerEvent

Rückgabewert ​

void


onCanvasContextmenu()? ​

optional onCanvasContextmenu: (event) => void

Definiert in: interfaces/InterractionCallbacks.ts:186

Wird aufgerufen, wenn mit der rechten Maustaste auf die Arbeitsfläche geklickt wird.

Parameter ​

event ​

PointerEvent

Rückgabewert ​

void


onCanvasMousemove()? ​

optional onCanvasMousemove: (event) => void

Definiert in: interfaces/InterractionCallbacks.ts:191

Wird aufgerufen, wenn die Maus über die Arbeitsfläche bewegt wird.

Parameter ​

event ​

MouseEvent

Rückgabewert ​

void


onCanvasPointerDown()? ​

optional onCanvasPointerDown: (event) => void

Definiert in: interfaces/InterractionCallbacks.ts:167

Wird aufgerufen, wenn ein Benutzer mit der Maus über die Arbeitsfläche zeigt.

Parameter ​

event ​

PointerEvent

Rückgabewert ​

void


onCanvasPointerUp()? ​

optional onCanvasPointerUp: (event) => void

Definiert in: interfaces/InterractionCallbacks.ts:171

Wird aufgerufen, wenn ein Benutzer mit der Maus auf die Arbeitsfläche zeigt.

Parameter ​

event ​

PointerEvent

Rückgabewert ​

void


onCanvasZoom()? ​

optional onCanvasZoom: (event) => void

Definiert in: interfaces/InterractionCallbacks.ts:181

Wird aufgerufen, wenn die Arbeitsfläche gezoomt wird.

Parameter ​

event ​

unknown

Rückgabewert ​

void


onEdgeBlur()? ​

optional onEdgeBlur: (edge, element) => void

Definiert in: interfaces/InterractionCallbacks.ts:102

Wird aufgerufen, wenn eine Kante vom Benutzer nicht ausgewählt wird.

Parameter ​

edge ​

Edge

element ​

TElement

Rückgabewert ​

void


onEdgeClick()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:84

Wird aufgerufen, wenn eine Kante vom Benutzer ausgewählt wird.

Parameter ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Rückgabewert ​

void


onEdgeContextmenu()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:92

Wird aufgerufen, wenn mit der rechten Maustaste auf eine Kante geklickt wird.

Parameter ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Rückgabewert ​

void


onEdgeDbclick()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:88

Wird aufgerufen, wenn eine Kante vom Benutzer ausgewählt wird.

Parameter ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Rückgabewert ​

void


onEdgeEdit()? ​

optional onEdgeEdit: (session) => HTMLDivElement

Definiert in: interfaces/InterractionCallbacks.ts:310

Wird aufgerufen, wenn eine Kantenbearbeitungssitzung beginnt. Fungiert als UI-Hook und spiegelt onNodeEdit: Gibt den Körper zurück, um ihn in das Bearbeitungsmodal einzufügen. Ein benutzerdefinierter Körper besitzt den Entwurf – mutieren Sie session.draft (oder rufen Sie session.setDraft auf), während der Benutzer eingibt, da die Bibliothek kein Formular zum Lesen beim Senden hat.

Parameter ​

session ​

EdgeEditSession

Die Kantenbearbeitungssitzung

Rückgabewert ​

HTMLDivElement

Ein HTML Div, das in den Körper des Modals injiziert wird


onEdgeEditCancel()? ​

optional onEdgeEditCancel: (edge) => void

Definiert in: interfaces/InterractionCallbacks.ts:325

Wird aufgerufen, wenn eine Edge-Edit-Sitzung abgebrochen wird.

Parameter ​

edge ​

Edge

Rückgabewert ​

void


onEdgeHoverIn()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:107

Wird aufgerufen, wenn ein Benutzer mit der Maus über eine Kante fährt.

Parameter ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Rückgabewert ​

void


onEdgeHoverOut()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:111

Wird aufgerufen, wenn ein Benutzer mit der Maus über eine Kante fährt.

Parameter ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Rückgabewert ​

void


onEdgeSelect()? ​

optional onEdgeSelect: (edge, element) => void

Definiert in: interfaces/InterractionCallbacks.ts:97

Wird aufgerufen, wenn eine Kante vom Benutzer ausgewählt wird.

Parameter ​

edge ​

Edge

element ​

TElement

Rückgabewert ​

void


onNodeBlur()? ​

optional onNodeBlur: (node, element) => void

Definiert in: interfaces/InterractionCallbacks.ts:59

Wird aufgerufen, wenn ein Knoten vom Benutzer nicht ausgewählt wird.

Parameter ​

node ​

Node

element ​

TElement

Rückgabewert ​

void


onNodeClick()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:16

Wird aufgerufen, wenn auf einen Knoten geklickt wird.

Parameter ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Rückgabewert ​

void


onNodeContextmenu()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:26

Wird aufgerufen, wenn mit der rechten Maustaste auf einen Knoten geklickt wird.

Parameter ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Rückgabewert ​

void


onNodeDbclick()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:21

Wird aufgerufen, wenn auf einen Knoten doppelgeklickt wird.

Parameter ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Rückgabewert ​

void


onNodeDragended()? ​

optional onNodeDragended: (event, node) => void

Definiert in: interfaces/InterractionCallbacks.ts:79

Wird aufgerufen, wenn das Ziehen eines Knotens endet.

Parameter ​

event ​

MouseEvent

node ​

Node

Rückgabewert ​

void


onNodeDragging()? ​

optional onNodeDragging: (event, node) => void

Definiert in: interfaces/InterractionCallbacks.ts:74

Wird aufgerufen, wenn ein Knoten gezogen wird.

Parameter ​

event ​

MouseEvent

node ​

Node

Rückgabewert ​

void


onNodeEdit()? ​

optional onNodeEdit: (session) => HTMLDivElement

Definiert in: interfaces/InterractionCallbacks.ts:208

Wird aufgerufen, wenn eine Knotenbearbeitungssitzung beginnt. Fungiert als UI-Hook.

Parameter ​

session ​

NodeEditSession

Die Knotenbearbeitungssitzung

Rückgabewert ​

HTMLDivElement

Ein HTML Div, das in den Körper des Modals injiziert wird


onNodeEditCancel()? ​

optional onNodeEditCancel: (node) => void

Definiert in: interfaces/InterractionCallbacks.ts:220

Wird aufgerufen, wenn eine Knotenbearbeitungssitzung abgebrochen wird

Parameter ​

node ​

Node

Rückgabewert ​

void


onNodeHoverIn()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:31

Wird aufgerufen, wenn ein Benutzer mit der Maus über einen Knoten fährt.

Parameter ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Rückgabewert ​

void


onNodeHoverOut()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:35

Wird aufgerufen, wenn ein Benutzer mit der Maus aus einem Knoten herausfährt.

Parameter ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Rückgabewert ​

void


onNodePointerDown()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:40

Wird aufgerufen, wenn ein Benutzerzeiger auf einen Knoten zeigt.

Parameter ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Rückgabewert ​

void


onNodePointerUp()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:44

Wird aufgerufen, wenn ein Benutzer mit dem Zeiger auf einen Knoten zeigt.

Parameter ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Rückgabewert ​

void


onNodeSelect()? ​

optional onNodeSelect: (node, element) => void

Definiert in: interfaces/InterractionCallbacks.ts:49

Wird aufgerufen, wenn ein Knoten vom Benutzer ausgewählt wird.

Parameter ​

node ​

Node

element ​

TElement

Rückgabewert ​

void


onNodesSelect()? ​

optional onNodesSelect: (selection) => void

Definiert in: interfaces/InterractionCallbacks.ts:54

Wird aufgerufen, wenn Knoten vom Benutzer ausgewählt werden.

Parameter ​

selection ​

NodeSelection<TElement>[]

Rückgabewert ​

void


onNoteClick()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:116

Wird aufgerufen, wenn auf eine Notiz geklickt wird.

Parameter ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Rückgabewert ​

void


onNoteContextmenu()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:126

Wird aufgerufen, wenn mit der rechten Maustaste auf eine Notiz geklickt wird.

Parameter ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Rückgabewert ​

void


onNoteDbclick()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:121

Wird aufgerufen, wenn auf eine Notiz doppelgeklickt wird.

Parameter ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Rückgabewert ​

void


onNoteDragging()? ​

optional onNoteDragging: (event, note) => void

Definiert in: interfaces/InterractionCallbacks.ts:157

Wird aufgerufen, wenn ein Benutzer mit dem Zeiger auf einen Knoten zeigt.

Parameter ​

event ​

PointerEvent

note ​

Note

Rückgabewert ​

void


onNoteHandleClick()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:149

Wird aufgerufen, wenn ein Benutzerzeiger auf einen Knoten zeigt.

Parameter ​

event ​

PointerEvent

note ​

Note

handle ​

HTMLElement

Rückgabewert ​

void


onNoteHandlePointerDown()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:153

Wird aufgerufen, wenn ein Benutzer mit dem Zeiger auf einen Knoten zeigt.

Parameter ​

event ​

PointerEvent

note ​

Note

handle ​

HTMLElement

Rückgabewert ​

void


onNoteHoverIn()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:131

Wird aufgerufen, wenn ein Benutzer mit der Maus über eine Notiz fährt.

Parameter ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Rückgabewert ​

void


onNoteHoverOut()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:135

Wird aufgerufen, wenn ein Benutzer mit der Maus aus einer Notiz herausfährt.

Parameter ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Rückgabewert ​

void


onNotePointerDown()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:140

Wird aufgerufen, wenn ein Benutzerzeiger auf einen Knoten zeigt.

Parameter ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Rückgabewert ​

void


onNotePointerUp()? ​

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

Definiert in: interfaces/InterractionCallbacks.ts:144

Wird aufgerufen, wenn ein Benutzer mit dem Zeiger auf einen Knoten zeigt.

Parameter ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Rückgabewert ​

void


onSimulationSlowTick()? ​

optional onSimulationSlowTick: () => void

Definiert in: interfaces/InterractionCallbacks.ts:201

Wird aufgerufen, wenn jedes Zehntel der Simulation tickt.

Rückgabewert ​

void


onSimulationTick()? ​

optional onSimulationTick: () => void

Definiert in: interfaces/InterractionCallbacks.ts:196

Wird aufgerufen, wenn die Simulation tickt.

Rückgabewert ​

void