diff --git a/packages/vue-flow/src/types/hooks.ts b/packages/vue-flow/src/types/hooks.ts index bd290cc1..788efda1 100644 --- a/packages/vue-flow/src/types/hooks.ts +++ b/packages/vue-flow/src/types/hooks.ts @@ -157,15 +157,15 @@ type CustomEventHandlers = { } export type NodeEventsHandler = { - doubleClick: (event: NodeMouseEvent) => any - click: (event: NodeMouseEvent) => any - mouseEnter: (event: NodeMouseEvent) => any - mouseMove: (event: NodeMouseEvent) => any - mouseLeave: (event: NodeMouseEvent) => any - contextMenu: (event: NodeMouseEvent) => any - dragStart: (event: NodeDragEvent) => any - drag: (event: NodeDragEvent) => any - dragStop: (event: NodeDragEvent) => any + doubleClick: (event: NodeMouseEvent) => void | { off: () => void } + click: (event: NodeMouseEvent) => void | { off: () => void } + mouseEnter: (event: NodeMouseEvent) => void | { off: () => void } + mouseMove: (event: NodeMouseEvent) => void | { off: () => void } + mouseLeave: (event: NodeMouseEvent) => void | { off: () => void } + contextMenu: (event: NodeMouseEvent) => void | { off: () => void } + dragStart: (event: NodeDragEvent) => void | { off: () => void } + drag: (event: NodeDragEvent) => void | { off: () => void } + dragStop: (event: NodeDragEvent) => void | { off: () => void } } & CustomEventHandlers export type NodeEventsOn = { diff --git a/packages/vue-flow/src/types/node.ts b/packages/vue-flow/src/types/node.ts index 382fce2a..e89981e3 100644 --- a/packages/vue-flow/src/types/node.ts +++ b/packages/vue-flow/src/types/node.ts @@ -12,10 +12,13 @@ export interface NodeHandleBounds { target?: HandleElement[] } -// eslint-disable-next-line no-use-before-define -type WidthFunc = (node: GraphNode) => number | string | void -// eslint-disable-next-line no-use-before-define -type HeightFunc = (node: GraphNode) => number | string | void +export type WidthFunc = any> = ( + node: GraphNode, +) => number | string | void + +export type HeightFunc = any> = ( + node: GraphNode, +) => number | string | void export interface Node = any> { /** Unique node id */ @@ -52,30 +55,31 @@ export interface Node width: 300px) * or pass a string with units (width: `10rem` -> width: 10rem) */ - width?: number | string | WidthFunc + width?: number | string | WidthFunc /** * Fixed height of node, applied as style * You can pass a number which will be used in pixel values (height: 300 -> height: 300px) * or pass a string with units (height: `10rem` -> height: 10rem) */ - height?: number | string | HeightFunc + height?: number | string | HeightFunc /** Additional class names, can be a string or a callback returning a string (receives current flow element) */ - class?: string | ClassFunc> + class?: string | ClassFunc> /** Additional styles, can be an object or a callback returning an object (receives current flow element) */ - style?: Styles | StyleFunc> + style?: Styles | StyleFunc> /** Is node hidden */ hidden?: boolean /** overwrites current node type */ - template?: NodeComponent + template?: NodeComponent /** Additional data that is passed to your custom components */ data?: Data /** contextual and custom events that are passed to your custom components */ events?: Partial> } -export interface GraphNode extends Node { +export interface GraphNode = any> + extends Node { /** absolute position in relation to parent elements + z-index */ computedPosition: XYZPosition handleBounds: NodeHandleBounds