1- import { TFile } from "obsidian"
1+ import { TFile , View } from "obsidian"
2+
3+ export interface Size {
4+ width : number
5+ height : number
6+ }
7+
8+ export interface Position {
9+ x : number
10+ y : number
11+ }
12+
13+ export interface BBox {
14+ minX : number
15+ maxX : number
16+ minY : number
17+ maxY : number
18+ }
219
320export interface Canvas {
421 view : CanvasView
@@ -7,50 +24,49 @@ export interface Canvas {
724 getData ( ) : CanvasData
825
926 nodes : Map < string , CanvasNode >
10- menu : PopupMenu
11- nodeInteractionLayer : NodeInteractionLayer
27+ edges : Map < string , CanvasEdge >
28+ getEdgesForNode ( node : CanvasNode ) : CanvasEdge [ ]
1229
1330 wrapperEl : HTMLElement
31+ menu : PopupMenu
1432 cardMenuEl : HTMLElement
1533 canvasControlsEl : HTMLElement
1634 quickSettingsButton : HTMLElement
35+ nodeInteractionLayer : NodeInteractionLayer
1736
1837 canvasRect : DOMRect
38+ getViewportBBox ( ) : BBox
39+ setViewport ( tx : number , ty : number , tZoom : number ) : void
40+ markViewportChanged ( ) : void
41+
1942 x : number
20- tx : number
2143 y : number
22- ty : number
2344 zoom : number
45+
46+ tx : number
47+ ty : number
2448 tZoom : number
2549
50+ zoomToBbox ( bbox : BBox ) : void
51+ zoomToSelection ( ) : void
52+
2653 readonly : boolean
2754 setReadonly ( readonly : boolean ) : void
2855
2956 selection : Set < CanvasNode >
3057 getSelectionData ( ) : SelectionData
3158 deselectAll ( ) : void
3259
33- getEdgesForNode ( node : CanvasNode ) : CanvasEdge [ ]
34-
60+ dragTempNode ( dragEvent : any , nodeSize : Size , onDropped : ( position : Position ) => void ) : void
3561 createTextNode ( options : TextNodeOptions ) : CanvasNode
3662 createGroupNode ( options : GroupNodeOptions ) : CanvasNode
3763 createFileNode ( options : FileNodeOptions ) : CanvasNode
3864 removeNode ( node : CanvasNode ) : void
3965
40- dragTempNode ( dragEvent : any , nodeSize : Size , onDropped : ( position : Position ) => void ) : void
41-
42- setViewport ( tx : number , ty : number , tZoom : number ) : void
43- markViewportChanged ( ) : void
44-
45- getViewportBBox ( ) : BBox
46- zoomToBbox ( bbox : BBox ) : void
47- zoomToSelection ( ) : void
48-
4966 undo ( ) : void
5067 redo ( ) : void
5168
5269 handlePaste ( ) : void
53- requestPushHistory ( data : CanvasData ) : void
5470 requestSave ( ) : void
5571
5672 // Custom
@@ -70,29 +86,10 @@ export interface CanvasConfig {
7086 defaultTextNodeDimensions : Size
7187}
7288
73- export interface CanvasView {
89+ export interface CanvasView extends View {
7490 file : TFile
7591}
7692
77- export interface Size {
78- width : number
79- height : number
80- }
81-
82- export interface Position {
83- x : number
84- y : number
85- }
86-
87- export interface BBox {
88- minX : number
89- maxX : number
90- minY : number
91- maxY : number
92- }
93-
94- type Side = 'top' | 'right' | 'bottom' | 'left'
95-
9693export interface NodeOptions {
9794 pos : Position
9895 size : Size
@@ -114,10 +111,11 @@ export interface FileNodeOptions extends NodeOptions {
114111}
115112
116113export interface CanvasData {
117- nodes : CanvasNode [ ]
118- edges : CanvasEdge [ ]
114+ nodes : CanvasNodeData [ ]
115+ edges : CanvasEdgeData [ ]
119116}
120117
118+ export type CanvasNodeType = 'text' | 'group' | 'file' | 'link'
121119export interface CanvasNodeData {
122120 type : CanvasNodeType
123121 shape : string
@@ -129,28 +127,24 @@ export interface CanvasNodeData {
129127export interface CanvasNode {
130128 canvas : Canvas
131129 nodeEl : HTMLElement
132- bbox : BBox
133130 getBBox ( ) : BBox
134- text ?: string
131+
135132 color : string
133+
134+ /** @deprecated Use `canvas.setNodeData` instead */
136135 setData ( data : CanvasNodeData ) : void
137136 getData ( ) : CanvasNodeData
138137}
139138
140- export interface CanvasNodeUnknownData {
141- }
142-
143- export type CanvasNodeType = 'text' | 'group' | 'file'
144-
139+ type Side = 'top' | 'right' | 'bottom' | 'left'
145140export interface CanvasEdgeData {
141+ id : string
142+
146143 fromNode : string
147144 toNode : string
148145
149146 fromSide : Side
150147 toSide : Side
151-
152- id : string
153- label ?: string
154148}
155149
156150export interface CanvasEdge {
@@ -172,11 +166,4 @@ export interface NodeInteractionLayer {
172166export interface PopupMenu {
173167 menuEl : HTMLElement
174168 render ( ) : void
175- }
176-
177- export interface BBox {
178- minX : number
179- minY : number
180- maxX : number
181- maxY : number
182169}
0 commit comments