chore(types): add element data typing
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { XYPosition, Dimensions } from './flow'
|
import { XYPosition, Dimensions, ElementData } from './flow'
|
||||||
import { NodeHandleBounds, Node } from './node'
|
import { NodeHandleBounds, Node } from './node'
|
||||||
import { Edge } from './edge'
|
import { Edge } from './edge'
|
||||||
|
|
||||||
@@ -27,12 +27,12 @@ export type NodeRemoveChange = {
|
|||||||
type: 'remove'
|
type: 'remove'
|
||||||
}
|
}
|
||||||
|
|
||||||
export type NodeAddChange<NodeData = any> = {
|
export type NodeAddChange<NodeData = ElementData> = {
|
||||||
item: Node<NodeData>
|
item: Node<NodeData>
|
||||||
type: 'add'
|
type: 'add'
|
||||||
}
|
}
|
||||||
|
|
||||||
export type NodeResetChange<NodeData = any> = {
|
export type NodeResetChange<NodeData = ElementData> = {
|
||||||
item: Node<NodeData>
|
item: Node<NodeData>
|
||||||
type: 'reset'
|
type: 'reset'
|
||||||
}
|
}
|
||||||
@@ -47,11 +47,11 @@ export type NodeChange =
|
|||||||
|
|
||||||
export type EdgeSelectionChange = NodeSelectionChange
|
export type EdgeSelectionChange = NodeSelectionChange
|
||||||
export type EdgeRemoveChange = NodeRemoveChange
|
export type EdgeRemoveChange = NodeRemoveChange
|
||||||
export type EdgeAddChange<EdgeData = any> = {
|
export type EdgeAddChange<EdgeData = ElementData> = {
|
||||||
item: Edge<EdgeData>
|
item: Edge<EdgeData>
|
||||||
type: 'add'
|
type: 'add'
|
||||||
}
|
}
|
||||||
export type EdgeResetChange<EdgeData = any> = {
|
export type EdgeResetChange<EdgeData = ElementData> = {
|
||||||
item: Edge<EdgeData>
|
item: Edge<EdgeData>
|
||||||
type: 'reset'
|
type: 'reset'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,14 +62,14 @@ export interface ControlEvents {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** expects a node and returns a color value */
|
/** expects a node and returns a color value */
|
||||||
export type MiniMapNodeFunc<Data = any> = (node: Node<Data> | GraphNode<Data>) => string
|
export type MiniMapNodeFunc<Data = ElementData> = (node: Node<Data> | GraphNode<Data>) => string
|
||||||
// hack for vue-type imports
|
// hack for vue-type imports
|
||||||
type MiniMapNodeFunc2<Data = any> = (node: Node<Data> | GraphNode<Data>) => string
|
type MiniMapNodeFunc2<Data = ElementData> = (node: Node<Data> | GraphNode<Data>) => string
|
||||||
type MiniMapNodeFunc3<Data = any> = (node: Node<Data> | GraphNode<Data>) => string
|
type MiniMapNodeFunc3<Data = ElementData> = (node: Node<Data> | GraphNode<Data>) => string
|
||||||
|
|
||||||
export type ShapeRendering = 'inherit' | 'auto' | 'geometricPrecision' | 'optimizeSpeed' | 'crispEdges' | undefined
|
export type ShapeRendering = CSSProperties['shapeRendering']
|
||||||
|
|
||||||
export interface MiniMapProps<Data = any> {
|
export interface MiniMapProps<Data = ElementData> {
|
||||||
/** Node color, can be either a string or a string func that receives the current node */
|
/** Node color, can be either a string or a string func that receives the current node */
|
||||||
nodeColor?: string | MiniMapNodeFunc<Data>
|
nodeColor?: string | MiniMapNodeFunc<Data>
|
||||||
/** Node stroke color, can be either a string or a string func that receives the current node */
|
/** Node stroke color, can be either a string or a string func that receives the current node */
|
||||||
@@ -90,7 +90,7 @@ export interface MiniMapNodeProps {
|
|||||||
dimensions: Dimensions
|
dimensions: Dimensions
|
||||||
borderRadius?: number
|
borderRadius?: number
|
||||||
color?: string
|
color?: string
|
||||||
shapeRendering?: CSSProperties['shapeRendering']
|
shapeRendering?: ShapeRendering
|
||||||
strokeColor?: string
|
strokeColor?: string
|
||||||
strokeWidth?: number
|
strokeWidth?: number
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export type NodeHandleBounds = {
|
|||||||
target?: HandleElement[]
|
target?: HandleElement[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Node<T = ElementData> extends Element<T> {
|
export interface Node<Data = ElementData> extends Element<Data> {
|
||||||
/** node position x, y */
|
/** node position x, y */
|
||||||
position: XYPosition
|
position: XYPosition
|
||||||
/** node type, can be a default type or a custom type */
|
/** node type, can be a default type or a custom type */
|
||||||
@@ -37,7 +37,7 @@ export interface Node<T = ElementData> extends Element<T> {
|
|||||||
parentNode?: string
|
parentNode?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface GraphNode<T = ElementData> extends Node<T> {
|
export interface GraphNode<Data = ElementData> extends Node<Data> {
|
||||||
/** absolute position in relation to parent elements + z-index */
|
/** absolute position in relation to parent elements + z-index */
|
||||||
computedPosition: XYZPosition
|
computedPosition: XYZPosition
|
||||||
handleBounds: NodeHandleBounds
|
handleBounds: NodeHandleBounds
|
||||||
@@ -49,12 +49,12 @@ export interface GraphNode<T = ElementData> extends Node<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** these props are passed to node components */
|
/** these props are passed to node components */
|
||||||
export interface NodeProps<T = ElementData> {
|
export interface NodeProps<Data = ElementData> {
|
||||||
id: string
|
id: string
|
||||||
/** node DOM-element */
|
/** node DOM-element */
|
||||||
nodeElement: HTMLDivElement
|
nodeElement: HTMLDivElement
|
||||||
type: string
|
type: string
|
||||||
data: T
|
data: Data
|
||||||
selected: boolean
|
selected: boolean
|
||||||
connectable: boolean
|
connectable: boolean
|
||||||
/** absolute position in relation to parent elements + z-index */
|
/** absolute position in relation to parent elements + z-index */
|
||||||
|
|||||||
Reference in New Issue
Block a user