Multi-select- en bulkacties
Selecteer verschillende knooppunten en Pivotick brengt een bulkactierij bovenaan het zijbalk — Vastzetten, Losmaken, Verbergen en Verwijderen hebben invloed op de hele selectie op één keer (Isoleren, Groeperen, Groeperen opheffen en Bulk-bewerkingen zijn binnenkort beschikbaar). Een duidelijke ✕ reset de selectie.
Maak een selectie:
Shift+Click— voeg een knooppunt toe aan de selectieAlt+Click— start een nieuwe selectieCtrl+Click— verwijder een knooppunt uit de selectie- of sleep een kader over een leeg canvas
Als twee of meer knooppunten zijn geselecteerd, verschijnt de bulkrij. Om te reageren op de selectie in code, gebruik de onNodesSelect callback - de onderstaande melding wordt hierdoor aangestuurd.
js
// Multi-selection is built in — pick several nodes and the sidebar shows a bulk-action
// row (Pin / Unpin / Hide / Delete) that acts on the whole selection. `mode: 'full'`
// is what renders the sidebar (and therefore the bulk row).
//
// To react programmatically, use the `onNodesSelect` callback. Its argument only
// carries the nodes involved in *this* change, so read the authoritative current
// selection from the interaction layer instead:
const options = {
UI: {
mode: 'full',
// Off: `full` mode brings a minimap and the data dock, and this card is about
// neither (see the Minimap and Data table cards for those).
minimap: false,
table: false,
// Keep the sidebar open so the bulk-action row is visible (the embed is
// short enough that 'auto' would otherwise collapse it).
sidebar: { collapsed: false }
},
callbacks: {
onNodesSelect: () => {
const selected = graph.renderer.getGraphInteraction().getSelectedNodes()
if (selected.length < 2) return
const labels = selected.map((s) => s.node.getData().label).join(', ')
graph.notifier.info(`${selected.length} nodes selected`, labels)
}
}
}js
const data = {
nodes: [
{ id: 'alice', data: { label: 'Alice', role: 'Maintainer', team: 'Core', commits: 342 } },
{ id: 'bob', data: { label: 'Bob', role: 'Contributor', team: 'Core', commits: 87 } },
{ id: 'carol', data: { label: 'Carol', role: 'Reviewer', team: 'Docs', commits: 45 } },
{ id: 'dave', data: { label: 'Dave', role: 'Contributor', team: 'Docs', commits: 63 } },
{ id: 'erin', data: { label: 'Erin', role: 'Maintainer', team: 'Infra', commits: 210 } }
],
edges: [
{ from: 'alice', to: 'bob', data: { label: 'mentors' } },
{ from: 'alice', to: 'carol', data: { label: 'reviews' } },
{ from: 'carol', to: 'dave', data: { label: 'pairs' } },
{ from: 'erin', to: 'alice', data: { label: 'syncs' } }
]
}