Merge branch '21128-toolbar-context-menu'
[arvados-workbench2.git] / src / lib / cwl-svg / plugins / plugin.ts
1 import {Workflow} from '../graph/workflow';
2
3 export interface GraphChange {
4     type: string;
5
6 }
7
8 export interface SVGPlugin {
9
10     registerWorkflow?(workflow: Workflow): void;
11
12     registerOnBeforeChange?(fn: (change: GraphChange) => void): void;
13
14     registerOnAfterChange?(fn: (change: GraphChange) => void): void;
15
16     registerOnAfterRender?(fn: (change: GraphChange) => void): void;
17
18     afterRender?(): void;
19
20     /**
21      * Invoked when the underlying model instance changes.
22      * Implementation should dispose listeners from the old model and attach listeners to the new one.
23      */
24     afterModelChange?(): void;
25
26     onEditableStateChange?(enabled: boolean): void;
27
28     /**
29      * Invoked when a graph should be destroyed.
30      * Implementations should remove attached DOM and model event listeners, as well as other stuff that
31      * might be left in memory.
32      */
33     destroy?(): void;
34 }