Aller au contenu

pivotick v3.0.0


pivotick / InterractionCallbacks / InterractionCallbacks

Interface: InterractionCallbacks<TElement> ​

Défini dans : interfaces/InterractionCallbacks.ts:12

Paramètres de type ​

TElement ​

TElement = unknown

Propriétés ​

isValidConnection()? ​

optional isValidConnection: (source, target) => boolean

Défini dans : interfaces/InterractionCallbacks.ts:251

Le prédicat de validité en direct a été évalué pendant le geste de connexion lorsque le curseur survole les cibles candidates (à la isValidConnection de React Flow). Retournez false pour marquer la cible survolée comme invalide : le bord de l'ombre s'affiche dans un style invalide, et relâcher/cliquer dessus ne crée rien (dans ce cas onBeforeEdgeCreate n'est pas consulté). S'exécute à chaque mouvement du pointeur, il doit donc être synchrone et bon marché.

Paramètres ​

source ​

Node | Note

target ​

Node

Renvoie ​

boolean


onBadgeClick()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:69

Appelé lorsque l'on clique sur l'un des badges de bordure d'un nœud, après le onClick de ce badge. Utilisez-le pour le comportement que chaque badge partage ; utilisez NodeBadge.onClick pour la propre action d'un badge.

En le déclarant, chaque badge prend le curseur du pointeur et consomme son clic, de sorte que le nœud en dessous n'est pas également sélectionné.

Paramètres ​

event ​

PointerEvent

node ​

Node

badge ​

NodeBadge

element ​

TElement

Renvoie ​

void


onBeforeDelete()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:277

Appelé lorsque l'utilisateur demande de supprimer des éléments du graphique, avant tout est supprimé. La bibliothèque résout d'abord l'ensemble de la cible - y compris les bords que la suppression d'un nœud entraînerait (DeleteContext.cascadingEdges) - afin qu'un consommateur puisse conserver toutes les conséquences du geste sans rediriger la cascade.

  • Renvoyez false / { accept: false } au veto : rien n'est supprimé, aucun nodeRemove/edgeRemove/noteRemove ne se déclenche et la sélection reste intacte.
  • Renvoyez true pour supprimer exactement ce qui a été demandé.
  • Renvoyez { accept: true, nodes?, edges?, notes? } à narrow la suppression dans un sous-ensemble - par ex. ne conservez que ce que le backend a réellement supprimé. Une clé omise signifie « comme demandé », donc { accept: true } est équivalent à true ; passez un tableau vide pour épargner entièrement ce type. Les éléments qui ne faisaient pas partie de la requête sont ignorés.

Peut être asynchrone (conserver la suppression, puis décider) : un deuxième geste de suppression est ignoré pendant qu'une décision est en attente. DeleteContext.confirm ouvre un modal de confirmation afin que les consommateurs n'en reconstruisent pas.

Seules les suppressions initiées par l'utilisateur sont bloquées : les programmes graph.removeNode() / graph.removeEdge() / noteManager.removeNote() n'invoquent jamais ce hook, de sorte que le code du consommateur pilotant le modèle n'est pas bloqué par la propre porte du consommateur.

Paramètres ​

context ​

DeleteContext

Renvoie ​

DeleteDecision | Promise<DeleteDecision>


onBeforeEdgeCreate()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:241

Appelé lors d'un geste de connexion, une fois le nœud cible résolu mais avant le bord (ou le lien de note) est créé. Agit comme l'équivalent de pointe de onBeforeNodeEditCommit : un crochet de validation/enrichissement/veto.

  • Renvoyez false / { accept: false } au veto : l'aperçu est supprimé, rien n'est ajouté et le mode de connexion reste armé pour que l'utilisateur puisse réessayer.
  • Renvoyez true pour accepter avec les valeurs par défaut.
  • Renvoyez { accept: true, data?, style?, id?, directed? } pour accepter et fournir la charge utile/le style/l'identifiant/la direction du nouveau Edge.

Peut être asynchrone (par exemple, persister sur un backend avant de décider) ; l'aperçu du bord de l'ombre persiste jusqu'à ce que la promesse soit satisfaite, et aucun nouveau geste de connexion n'est accepté tant qu'il est en attente. Se déclenche à la fois par clic et par glisser pour se connecter. Se déclenche également pour les liens note → nœud (EdgeCreateContext.kind 'note-link'), où les champs spécifiques aux bords de la décision sont ignorés.

Paramètres ​

context ​

EdgeCreateContext

Renvoie ​

EdgeCreateDecision | Promise<EdgeCreateDecision>

si la connexion doit être créée, éventuellement avec ses données.


onBeforeEdgeEditCommit()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:320

Appelé lorsqu'une session de modification Edge est sur le point d'être validée. Agit comme un crochet de validation / persistance / veto, reflétant onBeforeNodeEditCommit : retournez false (ou une promesse de celui-ci) pour refuser, en laissant les données du bord intactes et le modal ouvert. En cas de succès, les données du Edge sont remplacées et edgeChange se déclenche sur le bus de données.

Paramètres ​

context ​

EdgeEditCommitContext

Renvoie ​

boolean | Promise<boolean>

si la validation doit avoir lieu


onBeforeIngest()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:300

Appelé une fois, avec l'ensemble du candidat défini, juste avant qu'un pivot ne l'ingère - la seule porte du pipeline d'ingestion.

  • Renvoyez false / { accept: false } au veto : rien n'atteint et l'exécution rapporte 'vetoed'.
  • Renvoyez true pour ingérer exactement ce qui a été choisi.
  • Renvoyez { accept: true, nodes?, edges? } à narrow l'ingest à un sous-ensemble - par ex. seulement ce que le backend a confirmé. Une clé omise signifie « comme demandé », donc { accept: true } est équivalent à true ; passez un tableau vide pour n'en atterrir aucun.

Appelé une fois par ingestion avec l'ensemble du lot, jamais par candidat : un pivot qui a trouvé 1 800 corrélations ne doit pas se transformer en 1 800 appels de hook, et les hooks de chemin d'écriture par geste (onBeforeEdgeCreate, onBeforeDelete) concernent délibérément les gestes de l'utilisateur plutôt que une fusion programmatique. Il ouvre également autoIngest pivots, ce qui les maintient gouvernés.

Peut être asynchrone (persister, puis décider). IngestContext.confirm ouvre le modal de confirmation partagé.

Paramètres ​

context ​

IngestContext

Renvoie ​

IngestDecision | Promise<IngestDecision>


onBeforeNodeCreate()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:342

Appelé lorsque l'utilisateur crée un nœud de manière interactive (Créer ▸ Ajouter un nœud ou "Ajouter un nœud ici" dans le menu contextuel du canevas), une fois que la position dans l'espace graphique est connue et avant que le nœud ne soit ajouté. Miroirs onBeforeEdgeCreate :

  • Renvoyez false / { accept: false } au veto — rien n'est ajouté.
  • Renvoyez true pour accepter le nœud par défaut de la bibliothèque.
  • Renvoyez { accept: true, id?, data?, style? } pour accepter et fournir l'identifiant/la charge utile/le style du nouveau nœud.

Peut être asynchrone, et NodeCreateContext.promptData ouvre le même formulaire déclaratif ou le même modal HTML personnalisé que le hook de bord utilise. En l'absence de ce hook, l'outil fonctionne toujours - il crée simplement un nœud par défaut sans nom. Le programmatique graph.addNode() n'est jamais bloqué.

Paramètres ​

context ​

NodeCreateContext

Renvoie ​

NodeCreateDecision | Promise<NodeCreateDecision>


onBeforeNodeEditCommit()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:216

Appelé lorsqu'une session de modification de nœud est sur le point d'être validée. Agit comme un crochet de validation/persistance/veto : retournez false (ou une promesse de celui-ci) pour refuser, en laissant les données du nœud intactes et le modal ouvert. En cas de succès, les données du nœud sont remplacées et nodeChange se déclenche sur le bus de données.

Paramètres ​

context ​

NodeEditCommitContext

Renvoie ​

boolean | Promise<boolean>

booléen indiquant si la validation doit avoir lieu ou non


onCanvasBeforeZoom()? ​

optional onCanvasBeforeZoom: (event) => void

Défini dans : interfaces/InterractionCallbacks.ts:176

Appelé lorsque le canevas est sur le point d’être zoomé.

Paramètres ​

event ​

unknown

Renvoie ​

void


onCanvasClick()? ​

optional onCanvasClick: (event) => void

Défini dans : interfaces/InterractionCallbacks.ts:162

Appelé lorsque l’on clique sur le canevas.

Paramètres ​

event ​

PointerEvent

Renvoie ​

void


onCanvasContextmenu()? ​

optional onCanvasContextmenu: (event) => void

Défini dans : interfaces/InterractionCallbacks.ts:186

Appelé lorsque le canevas est cliqué avec le bouton droit.

Paramètres ​

event ​

PointerEvent

Renvoie ​

void


onCanvasMousemove()? ​

optional onCanvasMousemove: (event) => void

Défini dans : interfaces/InterractionCallbacks.ts:191

Appelé lorsque la souris se déplace sur le canevas.

Paramètres ​

event ​

MouseEvent

Renvoie ​

void


onCanvasPointerDown()? ​

optional onCanvasPointerDown: (event) => void

Défini dans : interfaces/InterractionCallbacks.ts:167

Appelé lorsqu'un utilisateur pointe vers le bas du canevas.

Paramètres ​

event ​

PointerEvent

Renvoie ​

void


onCanvasPointerUp()? ​

optional onCanvasPointerUp: (event) => void

Défini dans : interfaces/InterractionCallbacks.ts:171

Appelé lorsqu'un utilisateur pointe vers le haut du canevas.

Paramètres ​

event ​

PointerEvent

Renvoie ​

void


onCanvasZoom()? ​

optional onCanvasZoom: (event) => void

Défini dans : interfaces/InterractionCallbacks.ts:181

Appelé lorsque le canevas est zoomé.

Paramètres ​

event ​

unknown

Renvoie ​

void


onEdgeBlur()? ​

optional onEdgeBlur: (edge, element) => void

Défini dans : interfaces/InterractionCallbacks.ts:102

Appelé lorsqu'un bord n'est pas sélectionné par l'utilisateur.

Paramètres ​

edge ​

Edge

element ​

TElement

Renvoie ​

void


onEdgeClick()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:84

Appelé lorsqu'un bord est sélectionné par l'utilisateur.

Paramètres ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Renvoie ​

void


onEdgeContextmenu()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:92

Appelé lorsqu'un clic droit sur une arête est effectué.

Paramètres ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Renvoie ​

void


onEdgeDbclick()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:88

Appelé lorsqu'un bord est sélectionné par l'utilisateur.

Paramètres ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Renvoie ​

void


onEdgeEdit()? ​

optional onEdgeEdit: (session) => HTMLDivElement

Défini dans : interfaces/InterractionCallbacks.ts:310

Appelé lorsqu’une session de modification Edge démarre. Agit comme un hook d'interface utilisateur, reflétant onNodeEdit : renvoie le corps à injecter dans le modal d'édition. Un corps personnalisé est propriétaire du brouillon - modifiez session.draft (ou appelez session.setDraft) au fur et à mesure que l'utilisateur tape, car la bibliothèque n'a aucun formulaire à lire lors de la soumission.

Paramètres ​

session ​

EdgeEditSession

La session d'édition en périphérie

Renvoie ​

HTMLDivElement

Un HTML Div qui sera injecté dans le corps du modal


onEdgeEditCancel()? ​

optional onEdgeEditCancel: (edge) => void

Défini dans : interfaces/InterractionCallbacks.ts:325

Appelé lorsqu’une session de modification Edge est annulée.

Paramètres ​

edge ​

Edge

Renvoie ​

void


onEdgeHoverIn()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:107

Appelé lorsqu'un utilisateur survole un bord.

Paramètres ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Renvoie ​

void


onEdgeHoverOut()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:111

Appelé lorsqu'un utilisateur survole un bord.

Paramètres ​

event ​

PointerEvent

edge ​

Edge

element ​

TElement

Renvoie ​

void


onEdgeSelect()? ​

optional onEdgeSelect: (edge, element) => void

Défini dans : interfaces/InterractionCallbacks.ts:97

Appelé lorsqu'un bord est sélectionné par l'utilisateur.

Paramètres ​

edge ​

Edge

element ​

TElement

Renvoie ​

void


onNodeBlur()? ​

optional onNodeBlur: (node, element) => void

Défini dans : interfaces/InterractionCallbacks.ts:59

Appelé lorsqu'un nœud est désélectionné par l'utilisateur.

Paramètres ​

node ​

Node

element ​

TElement

Renvoie ​

void


onNodeClick()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:16

Appelé lorsqu'un nœud est cliqué.

Paramètres ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Renvoie ​

void


onNodeContextmenu()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:26

Appelé lorsqu'un clic droit est effectué sur un nœud.

Paramètres ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Renvoie ​

void


onNodeDbclick()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:21

Appelé lorsqu'un nœud est double-cliqué.

Paramètres ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Renvoie ​

void


onNodeDragended()? ​

optional onNodeDragended: (event, node) => void

Défini dans : interfaces/InterractionCallbacks.ts:79

Appelé lorsqu'un déplacement de nœud se termine.

Paramètres ​

event ​

MouseEvent

node ​

Node

Renvoie ​

void


onNodeDragging()? ​

optional onNodeDragging: (event, node) => void

Défini dans : interfaces/InterractionCallbacks.ts:74

Appelé lorsqu'un nœud est déplacé.

Paramètres ​

event ​

MouseEvent

node ​

Node

Renvoie ​

void


onNodeEdit()? ​

optional onNodeEdit: (session) => HTMLDivElement

Défini dans : interfaces/InterractionCallbacks.ts:208

Appelé lorsqu'une session de modification de nœud démarre. Agir comme un hook d’interface utilisateur.

Paramètres ​

session ​

NodeEditSession

La session d'édition de nœud

Renvoie ​

HTMLDivElement

Un HTML Div qui sera injecté dans le corps du modal


onNodeEditCancel()? ​

optional onNodeEditCancel: (node) => void

Défini dans : interfaces/InterractionCallbacks.ts:220

Appelé lorsqu'une session de modification de nœud est annulée

Paramètres ​

node ​

Node

Renvoie ​

void


onNodeHoverIn()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:31

Appelé lorsqu'un utilisateur survole un nœud.

Paramètres ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Renvoie ​

void


onNodeHoverOut()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:35

Appelé lorsqu'un utilisateur survole un nœud.

Paramètres ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Renvoie ​

void


onNodePointerDown()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:40

Appelé lorsqu'un utilisateur pointe vers un nœud.

Paramètres ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Renvoie ​

void


onNodePointerUp()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:44

Appelé lorsqu'un utilisateur pointe vers un nœud.

Paramètres ​

event ​

PointerEvent

node ​

Node

element ​

TElement

Renvoie ​

void


onNodeSelect()? ​

optional onNodeSelect: (node, element) => void

Défini dans : interfaces/InterractionCallbacks.ts:49

Appelé lorsqu'un nœud est sélectionné par l'utilisateur.

Paramètres ​

node ​

Node

element ​

TElement

Renvoie ​

void


onNodesSelect()? ​

optional onNodesSelect: (selection) => void

Défini dans : interfaces/InterractionCallbacks.ts:54

Appelé lorsque les nœuds sont sélectionnés par l'utilisateur.

Paramètres ​

selection ​

NodeSelection<TElement>[]

Renvoie ​

void


onNoteClick()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:116

Appelé lorsqu'un clic sur une note est effectué.

Paramètres ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Renvoie ​

void


onNoteContextmenu()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:126

Appelé lorsqu'un clic droit sur une note est effectué.

Paramètres ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Renvoie ​

void


onNoteDbclick()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:121

Appelé lorsqu'un double-clic sur une note.

Paramètres ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Renvoie ​

void


onNoteDragging()? ​

optional onNoteDragging: (event, note) => void

Défini dans : interfaces/InterractionCallbacks.ts:157

Appelé lorsqu'un utilisateur pointe vers un nœud.

Paramètres ​

event ​

PointerEvent

note ​

Note

Renvoie ​

void


onNoteHandleClick()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:149

Appelé lorsqu'un utilisateur pointe vers un nœud.

Paramètres ​

event ​

PointerEvent

note ​

Note

handle ​

HTMLElement

Renvoie ​

void


onNoteHandlePointerDown()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:153

Appelé lorsqu'un utilisateur pointe vers un nœud.

Paramètres ​

event ​

PointerEvent

note ​

Note

handle ​

HTMLElement

Renvoie ​

void


onNoteHoverIn()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:131

Appelé lorsqu'un utilisateur survole une note.

Paramètres ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Renvoie ​

void


onNoteHoverOut()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:135

Appelé lorsqu'un utilisateur survole une note.

Paramètres ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Renvoie ​

void


onNotePointerDown()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:140

Appelé lorsqu'un utilisateur pointe vers un nœud.

Paramètres ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Renvoie ​

void


onNotePointerUp()? ​

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

Défini dans : interfaces/InterractionCallbacks.ts:144

Appelé lorsqu'un utilisateur pointe vers un nœud.

Paramètres ​

event ​

PointerEvent

note ​

Note

element ​

TElement

Renvoie ​

void


onSimulationSlowTick()? ​

optional onSimulationSlowTick: () => void

Défini dans : interfaces/InterractionCallbacks.ts:201

Appelé lorsque chaque dixième de simulation se déroule.

Renvoie ​

void


onSimulationTick()? ​

optional onSimulationTick: () => void

Défini dans : interfaces/InterractionCallbacks.ts:196

Appelé lorsque la simulation démarre.

Renvoie ​

void