forked from MrBlenny/react-flow-chart
/
chart.ts
88 lines (81 loc) · 1.4 KB
/
chart.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import { IPosition, ISize } from './generics'
export interface IChart {
offset: IPosition
nodes: {
[id: string]: INode,
}
links: {
[id: string]: ILink,
}
zoom: IZoom
properties?: any
/** System Temp */
selected: ISelectedOrHovered
hovered: ISelectedOrHovered
}
export interface ISelectedOrHovered {
type?: 'link' | 'node' | 'port',
id?: string
nodeId?: string
}
export interface INode {
id: string
type: string
position: IPosition
orientation?: number
ports: {
[id: string]: IPort,
}
properties?: any
/** System Temp */
size?: ISize
}
export interface IPort {
id: string
type: string
nodeId?: string
value?: string
properties?: any
/** System Temp */
position?: IPosition
}
export interface ILink {
id: string
from: {
nodeId: string
portId: string,
/** System Temp */
position?: IPosition,
}
to: {
nodeId?: string
portId?: string
/** System Temp */
position?: IPosition,
}
properties?: any
}
export interface IZoom {
scale: number,
transformEnabled?: boolean,
minScale?: number,
maxScale?: number,
pan?: {
disabled?: boolean,
touchPadEnabled?: boolean
}
wheel?: {
disabled?: boolean,
step?: number,
wheelEnabled?: boolean,
touchPadEnabled?: boolean
}
zoomIn?: {
disabled?: boolean,
step?: number
}
zoomOut?: {
disabled?: boolean,
step?: number
}
}