From c0fc95dc5e3eb3875fe800b080a6ff3de7f9be28 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Tue, 18 Oct 2022 09:24:18 +0200 Subject: [PATCH] refactor(core): add generics to Elements/FlowElements types --- packages/core/src/types/flow.ts | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/packages/core/src/types/flow.ts b/packages/core/src/types/flow.ts index 7b91e650..b7938b11 100644 --- a/packages/core/src/types/flow.ts +++ b/packages/core/src/types/flow.ts @@ -5,16 +5,39 @@ import type { CoordinateExtent, GraphNode, Node } from './node' import type { ConnectionLineOptions, ConnectionLineType, ConnectionMode, Connector } from './connection' import type { PanOnScrollMode } from './zoom' import type { EdgeTypesObject, NodeTypesObject } from './components' +import type { CustomEvent } from './hooks' export type ElementData = any /** A flow element (after parsing into state) */ -export type FlowElement = GraphNode | GraphEdge -export type FlowElements = FlowElement[] +export type FlowElement< + NodeData = ElementData, + EdgeData = ElementData, + NodeEvents extends Record = any, + EdgeEvents extends Record = any, +> = GraphNode | GraphEdge + +export type FlowElements< + NodeData = ElementData, + EdgeData = ElementData, + NodeEvents extends Record = any, + EdgeEvents extends Record = any, +> = FlowElement[] /** Initial elements (before parsing into state) */ -export type Element = Node | Edge -export type Elements = Element[] +export type Element< + NodeData = ElementData, + EdgeData = ElementData, + NodeEvents extends Record = any, + EdgeEvents extends Record = any, +> = Node | Edge + +export type Elements< + NodeData = ElementData, + EdgeData = ElementData, + NodeEvents extends Record = any, + EdgeEvents extends Record = any, +> = Element[] export type CustomThemeVars = Record export type CSSVars =