Naar inhoud

Contextmenu ​

De contextmenu-opties configureren rechtermuisknopmenu's voor knooppunten, randen en het canvas.

Standaard:

  • Contextmenu's zijn ingeschakeld.
  • Elk menu (knooppunt, rand, canvas) heeft afzonderlijke acties.
  • Eventuele extra aangepaste acties worden toegevoegd na de standaardacties, boven het verwijderen.

Knopinfo uitschakelen ​

Vrij eenvoudig door de eigenschap enabled in te stellen op false.

ts
const options = {
    UI: {
        contextMenu: {
            enabled: false
        }
    }
}

Aanvullende acties ​

U kunt de acties aanpassen die verschijnen wanneer u met de rechtermuisknop op een knooppunt, een rand of het canvas klikt.

Elk contextmenu is opgesplitst in twee secties:

U kunt deze menu's voor deze bereiken configureren:

  • menuNode
  • menuEdge
  • menuNote
  • menuSelection
  • menuCanvas

Standaardacties ​

ReikwijdteStandaardgegevens
menuNodeVastzetten/losmaken/focussen/verbergen (bovenbalk) · Draaien · Uit groep verwijderen · Terug in groep plaatsen · Afbeelding bekijken · Buren selecteren · Kinderen verbergen · Verbinding maken met... · Eigenschappen inspecteren · Knooppunt verwijderen
menuEdgeRand bewerken · Rand verwijderen
menuNoteNotitie verbergen (bovenbalk) · Notitie verwijderen
menuSelectionGeselecteerde vastzetten/losmaken/verbergen (bovenbalk) · Draaien · Geselecteerde knooppunten groeperen · Uit groep verwijderen · Terug in groep plaatsen · Groep opheffen · Buren selecteren · Geselecteerde verwijderen
menuCanvasAlles vastzetten/alles losmaken (bovenste balk) · Voeg hier een knooppunt toe · Notitie toevoegen · Laat vastgezette knooppunten vrij (terwijl een knooppunt vastgezet is)

De knooppunt-, selectie- en groepsmenu's worden in dezelfde volgorde gelezen: eerst Pivot ▸, daarna de groep vermeldingen die van toepassing zijn, daarna de overige vermeldingen met de jouwe erna, en de verwijdering als laatste. Het menu van een groep (Draaien · Groep openen · Leden selecteren · Leden in tabel bekijken · Groep hernoemen · Groep opheffen · Buren selecteren · Leden verwijderen) is de eigen bibliotheek en neemt geen gegevens van u aan. Een vermelding die niet van toepassing is, wordt weggelaten zonder de anderen verplaatsen.

De schrijfpad-items (verwijderen, bewerken, maken) doorlopen hun before-hooks - zie Schrijfpad-levenscyclushooks — en elk verdwijnt wanneer de editors.<editor>.enabled vlag false is: Delete met deletion, Edge bewerken met edgeEditor, Voeg hier een knooppunt toe met nodeCreator, Verbinden met… met edgeCreator. Hetzelfde geldt voor ingangen die een deur vormen in een schakelbare functie: Voeg notitie toe en de hele menuNote volg UI.notes, Eigenschappen inspecteren volgt op UI.inspector. Uw eigen inzendingen zijn nooit afgesloten. Beide "...hier"-items plaatsen hun element waar het menu ** werd geopend**, ongeacht de zoomen of pannen.

Handelen op basis van een selectie ​

Als u met de rechtermuisknop klikt op een knooppunt dat deel uitmaakt van een selectie van meerdere knooppunten, wordt menuSelection geopend, met op hoeveel knooppunten het inwerkt. Elke invoer heeft invloed op de gehele selectie, aangezien de de bulkacties in de zijbalk doen dat wel, en de items die alleen zinvol zijn voor één knooppunt (Inspecteren, Verbinden met…, Bekijk afbeelding) worden weggelaten. Als u met de rechtermuisknop op een knooppunt buiten de selectie klikt, wordt geopend het eigen menu van dat knooppunt en laat de selectie zoals die is, en het canvas behoudt zijn eigen menu. Invoer van menuSelection ontvangt de geselecteerde knooppunten als een Node[], in visible zoals in onclick.

Een rij van de gegevenstabel opent hetzelfde menu als het element ervan op de doek.

Del verbergt de geselecteerde knooppunten. Het verbergt in plaats van verwijdert omdat verbergen kosten kost niets ongedaan te maken; Selectie verwijderen staat in het menu.

js
const options = {
    UI: {
        contextMenu: {
            menuNode: {
                topbar: [
                    {
                        text: 'Delete Node',
                        variant: 'danger',
                        onclick: (evt, node) => console.log('Delete', node)
                    }
                ],
                menu: [
                    {
                        text: 'Edit Node',
                        variant: 'success',
                        onclick: (evt, node) => console.log('Edit', node)
                    }
                ]
            },
            menuEdge: {
                menu: [
                    {
                        text: 'Delete Edge',
                        variant: 'danger',
                        onclick: (evt, edge) =>
                            console.log('Delete edge', edge)
                    }
                ]
            },
            menuCanvas: {
                topbar: [
                    {
                        text: 'Add Node',
                        variant: 'primary',
                        onclick: (evt) => console.log('Add Node')
                    }
                ]
            }
        },
        tooltip: {
            enabled: false,
        },
    }
}

Opties of actiepunten ​

De interface voor actie-items wordt hier gedefinieerd.

OptieTypStandaardBeschrijving
iconClassIconClassundefinedCSS klasse gebruikt als pictogram. Meestal gebruikt in pictogrambibliotheken zoals fontawesome. Voorbeeld: fa-solid fa-edit
iconUnicodeIconUnicodeundefinedUnicode-teken gebruikt als pictogram. Ruwe Unicode voor gebruik in pictogrambibliotheken zoals Fontawesome. Voorbeeld: \uf007
imagePathImagePathundefinedPad naar een afbeelding die als pictogram wordt gebruikt.
svgIconSVGIconundefinedInline SVG object gebruikt als pictogram. Voorbeeld: <svg>...</svg>
textstringvereistHet label van de actie dat wordt weergegeven in menu's en werkbalken.
titlestringundefinedOptioneel tekstlabel weergegeven naast het item.
variantUIVariantoutline-primaryVisuele variant (stijl) van het menu-item.
visibleboolean | (element: Node | Node[] | Edge | null) => booleantrueBepaalt of het item zichtbaar is. Kan dynamisch zijn.
onclick(evt: PointerEvent | MouseEvent, element?: Node | Node[] | Edge | Edge[] | null) => voidvereistWordt geactiveerd wanneer de gebruiker het menu-item activeert.