feat(types): add DefaultEdgeTypes-type
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com> feat(types): Add DefaultNodeTypes-type Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com> feat(types): Add DefaultNodeTypes and DefaultEdgeTypes to the exports object Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
+7
-4
@@ -3,9 +3,13 @@ import { ArrowHeadType, ElementId, Position } from './flow'
|
|||||||
import { EdgeTextProps } from './components'
|
import { EdgeTextProps } from './components'
|
||||||
import { SourceTargetNode } from './node'
|
import { SourceTargetNode } from './node'
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-use-before-define
|
||||||
|
export type DefaultEdgeTypes = { [key in 'default' | 'straight' | 'smoothstep' | 'step']: Component<EdgeProps> }
|
||||||
|
export type EdgeTypes = (keyof DefaultEdgeTypes | string)[]
|
||||||
|
|
||||||
export interface Edge<T = any> {
|
export interface Edge<T = any> {
|
||||||
id: ElementId
|
id: ElementId
|
||||||
type?: string
|
type?: EdgeTypes[number]
|
||||||
source: ElementId
|
source: ElementId
|
||||||
target: ElementId
|
target: ElementId
|
||||||
sourceHandle?: ElementId
|
sourceHandle?: ElementId
|
||||||
@@ -54,12 +58,11 @@ export interface EdgeSmoothStepProps<T = any> extends EdgeProps<T> {
|
|||||||
borderRadius?: number
|
borderRadius?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export type EdgeComponent = Component<EdgeProps> | DefineComponent<EdgeSmoothStepProps, any, any, any, any, any> | string
|
|
||||||
export type EdgeTypes = string[]
|
|
||||||
|
|
||||||
export interface EdgePositions {
|
export interface EdgePositions {
|
||||||
sourceX: number
|
sourceX: number
|
||||||
sourceY: number
|
sourceY: number
|
||||||
targetX: number
|
targetX: number
|
||||||
targetY: number
|
targetY: number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type EdgeComponent = Component<EdgeProps> | DefineComponent<EdgeProps, any, any, any, any, any> | string
|
||||||
|
|||||||
+20
-18
@@ -1,5 +1,6 @@
|
|||||||
import { Component, CSSProperties, DefineComponent } from 'vue'
|
import { Component, CSSProperties, DefineComponent } from 'vue'
|
||||||
import { XYPosition, ElementId, Position } from './flow'
|
import { DraggableOptions } from '@braks/revue-draggable'
|
||||||
|
import { XYPosition, ElementId, Position, SnapGrid } from './flow'
|
||||||
import { HandleElement } from './components'
|
import { HandleElement } from './components'
|
||||||
|
|
||||||
export interface VFInternals {
|
export interface VFInternals {
|
||||||
@@ -13,10 +14,27 @@ export interface VFInternals {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface NodeProps<T = any> {
|
||||||
|
id: ElementId
|
||||||
|
type?: string
|
||||||
|
data?: T
|
||||||
|
selected?: boolean
|
||||||
|
connectable?: boolean
|
||||||
|
xPos?: number
|
||||||
|
yPos?: number
|
||||||
|
targetPosition?: Position
|
||||||
|
sourcePosition?: Position
|
||||||
|
dragging?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export type NodeComponent = Component<NodeProps> | DefineComponent<NodeProps, any, any, any, any> | string
|
||||||
|
export type DefaultNodeTypes = { [key in 'input' | 'output' | 'default']: Component<NodeProps> }
|
||||||
|
export type NodeTypes = (keyof DefaultNodeTypes | string)[]
|
||||||
|
|
||||||
export interface Node<T = any> {
|
export interface Node<T = any> {
|
||||||
id: ElementId
|
id: ElementId
|
||||||
position: XYPosition
|
position: XYPosition
|
||||||
type?: string
|
type?: NodeTypes[number]
|
||||||
class?: string
|
class?: string
|
||||||
style?: CSSProperties
|
style?: CSSProperties
|
||||||
data?: T
|
data?: T
|
||||||
@@ -57,19 +75,3 @@ export type NodeDimensionUpdate = {
|
|||||||
nodeElement: HTMLDivElement
|
nodeElement: HTMLDivElement
|
||||||
forceUpdate?: boolean
|
forceUpdate?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface NodeProps<T = any> {
|
|
||||||
id?: ElementId
|
|
||||||
type?: string
|
|
||||||
data?: T
|
|
||||||
selected?: boolean
|
|
||||||
connectable?: boolean
|
|
||||||
xPos?: number
|
|
||||||
yPos?: number
|
|
||||||
targetPosition?: Position
|
|
||||||
sourcePosition?: Position
|
|
||||||
dragging?: boolean
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NodeComponent = Component<NodeProps> | DefineComponent<NodeProps, any, any, any, any> | string
|
|
||||||
export type NodeTypes = string[]
|
|
||||||
|
|||||||
+4
-5
@@ -1,28 +1,27 @@
|
|||||||
import { Component } from 'vue'
|
|
||||||
import { isEdge, isNode, parseEdge, parseNode } from './graph'
|
import { isEdge, isNode, parseEdge, parseNode } from './graph'
|
||||||
import {
|
import {
|
||||||
ConnectionMode,
|
ConnectionMode,
|
||||||
EdgeProps,
|
|
||||||
Elements,
|
Elements,
|
||||||
FlowState,
|
FlowState,
|
||||||
NextElements,
|
NextElements,
|
||||||
NodeExtent,
|
NodeExtent,
|
||||||
GraphNode,
|
GraphNode,
|
||||||
NodeProps,
|
|
||||||
PanOnScrollMode,
|
PanOnScrollMode,
|
||||||
Node,
|
Node,
|
||||||
Edge,
|
Edge,
|
||||||
|
DefaultNodeTypes,
|
||||||
|
DefaultEdgeTypes,
|
||||||
} from '~/types'
|
} from '~/types'
|
||||||
import { DefaultNode, InputNode, OutputNode, BezierEdge, SmoothStepEdge, StepEdge, StraightEdge } from '~/components'
|
import { DefaultNode, InputNode, OutputNode, BezierEdge, SmoothStepEdge, StepEdge, StraightEdge } from '~/components'
|
||||||
import { createHooks } from '~/composables'
|
import { createHooks } from '~/composables'
|
||||||
|
|
||||||
export const defaultNodeTypes: Record<string, Component<NodeProps>> = {
|
export const defaultNodeTypes: DefaultNodeTypes = {
|
||||||
input: InputNode,
|
input: InputNode,
|
||||||
default: DefaultNode,
|
default: DefaultNode,
|
||||||
output: OutputNode,
|
output: OutputNode,
|
||||||
}
|
}
|
||||||
|
|
||||||
export const defaultEdgeTypes: Record<string, Component<EdgeProps>> = {
|
export const defaultEdgeTypes: DefaultEdgeTypes = {
|
||||||
default: BezierEdge,
|
default: BezierEdge,
|
||||||
straight: StraightEdge,
|
straight: StraightEdge,
|
||||||
step: StepEdge,
|
step: StepEdge,
|
||||||
|
|||||||
Reference in New Issue
Block a user