pivotick / GraphUI / ExtraPanel
Interface: ExtraPanel
Defined in: interfaces/GraphUI.ts:993
Additional panel in the graph UI's sidebar.
Both title and render can be:
- A string or
HTMLElementfor static content, or - A function of the current selection (a
Node, anEdge, an array of either for a multi-selection, ornullwhen nothing is selected) — re-invoked on every selection change unless ExtraPanel.reactive isfalse.
Declare panels up front via UI.extraPanels, or register them at any point in the graph's life with graph.UIManager.addPanel() (which returns a disposer).
Example
{
id: 'description',
title: 'Description',
render: (element): HTMLElement => {
const node = element instanceof Node ? element : null
const div = document.createElement('div')
div.textContent = node?.getData().description ?? 'Empty node description'
return div
},
}Extended by
Properties
alwaysVisible?
optionalalwaysVisible:boolean
Defined in: interfaces/GraphUI.ts:1011
should the panel be always visible
Default
falseid?
optionalid:string
Defined in: interfaces/GraphUI.ts:998
Stable identifier, used to address the panel in removePanel / refreshPanel. Auto-generated when omitted.
order?
optionalorder:number
Defined in: interfaces/GraphUI.ts:1018
Display order in the sidebar, ascending. Panels sharing an order keep their registration order, so UI.extraPanels reads top-to-bottom and runtime panels append after them.
Default
0reactive?
optionalreactive:boolean
Defined in: interfaces/GraphUI.ts:1026
Re-resolve title and render whenever the selection changes. Set false for a panel that is expensive to build and doesn't describe the selection: it then renders once, and only an explicit refreshPanel() rebuilds it.
Default
truerender
render:
ExtraPanelContent
Defined in: interfaces/GraphUI.ts:1006
A string renders as plain text; pass an HTMLElement to render HTML.
title?
optionaltitle:ExtraPanelContent
Defined in: interfaces/GraphUI.ts:1004
The panel's header row. A string renders as plain text; pass an HTMLElement to render HTML. Omit it (or resolve to blank) for a panel with no header at all.