Acciones de selección múltiple y masivas
Seleccione varios nodos y Pivotick emerge una fila de acción masiva en la parte superior de la barra lateral: Fijar, Despin, Ocultar y Eliminar actúan sobre toda la selección en una vez (Aislar, Agrupar, Desagrupar y Editar en masa estarán disponibles próximamente). Un borrado ✕ restablece el selección.
Construya una selección:
Shift+Click— agrega un nodo a la selecciónAlt+Click- iniciar una nueva selecciónCtrl+Click— eliminar un nodo de la selección- o arrastrar un cuadro a través del lienzo vacío
Con dos o más nodos seleccionados, aparece la fila masiva. Para reaccionar a la selección en código, use la devolución de llamada onNodesSelect; la notificación a continuación está impulsada por ella.
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' } }
]
}