diff --git a/src/types/store.ts b/src/types/store.ts index 97f4d447..bb9e34a5 100644 --- a/src/types/store.ts +++ b/src/types/store.ts @@ -13,11 +13,11 @@ import { Transform, XYPosition, } from './flow' -import { HandleType, EdgeComponent, NodeComponent } from './components' -import { ConnectionMode, SetConnectionId } from './connection' +import { HandleType, EdgeComponent, NodeComponent, NodeTypes, EdgeTypes } from './components' +import { ConnectionLineType, ConnectionMode, SetConnectionId } from './connection' import { GraphEdge } from './edge' import { NodeExtent, GraphNode, TranslateExtent } from './node' -import { D3Selection, D3Zoom, D3ZoomHandler, InitD3ZoomPayload } from './zoom' +import { D3Selection, D3Zoom, D3ZoomHandler, InitD3ZoomPayload, KeyCode, PanOnScrollMode } from './zoom' import { FlowHooks } from './hooks' export interface FlowState extends Omit { @@ -25,16 +25,21 @@ export interface FlowState extends Omit { instance?: FlowInstance elements: FlowElements + nodeTypes: NodeTypes + edgeTypes: EdgeTypes d3Zoom?: D3Zoom d3Selection?: D3Selection d3ZoomHandler?: D3ZoomHandler minZoom: number maxZoom: number + defaultZoom: number translateExtent: TranslateExtent nodeExtent: NodeExtent dimensions: Dimensions transform: Transform + onlyRenderVisibleElements: boolean + defaultPosition: [number, number] selectedElements?: FlowElements selectedNodesBbox?: Rect @@ -42,20 +47,36 @@ export interface FlowState extends Omit { selectionActive: boolean userSelectionRect: SelectionRect multiSelectionActive: boolean + deleteKeyCode: KeyCode + selectionKeyCode: KeyCode + multiSelectionKeyCode: KeyCode + zoomActivationKeyCode: KeyCode connectionNodeId?: ElementId connectionHandleId?: ElementId connectionHandleType?: HandleType connectionPosition: XYPosition connectionMode: ConnectionMode + connectionLineType: ConnectionLineType + edgeUpdaterRadius: number snapToGrid: boolean snapGrid: SnapGrid + arrowHeadColor: string edgesUpdatable: boolean nodesDraggable: boolean nodesConnectable: boolean elementsSelectable: boolean + selectNodesOnDrag: boolean + paneMoveable: boolean + zoomOnScroll: boolean + zoomOnPinch: boolean + panOnScroll: boolean + panOnScrollSpeed: number + panOnScrollMode: PanOnScrollMode + zoomOnDoubleClick: boolean + preventScrolling: boolean isReady: boolean diff --git a/src/utils/store.ts b/src/utils/store.ts index c4ff174a..23d42dc9 100644 --- a/src/utils/store.ts +++ b/src/utils/store.ts @@ -1,4 +1,4 @@ -import { ConnectionMode, FlowState, PanOnScrollMode, DefaultNodeTypes, DefaultEdgeTypes } from '~/types' +import { ConnectionMode, FlowState, PanOnScrollMode, DefaultNodeTypes, DefaultEdgeTypes, ConnectionLineType } from '~/types' import { DefaultNode, InputNode, OutputNode, BezierEdge, SmoothStepEdge, StepEdge, StraightEdge } from '~/components' import { createHooks } from '~/composables' @@ -52,9 +52,9 @@ export const initialState = (): FlowState => ({ panOnScrollMode: PanOnScrollMode.Free, paneMoveable: true, edgeUpdaterRadius: 10, - onlyRenderVisibleElements: undefined, - defaultZoom: undefined, - defaultPosition: undefined, + onlyRenderVisibleElements: false, + defaultZoom: 1, + defaultPosition: [0, 0], nodesSelectionActive: false, selectionActive: false, @@ -71,7 +71,7 @@ export const initialState = (): FlowState => ({ arrowHeadColor: '#b1b1b7', connectionLineStyle: {}, - connectionLineType: undefined, + connectionLineType: ConnectionLineType.Bezier, connectionNodeId: undefined, connectionHandleId: undefined, connectionHandleType: 'source', @@ -82,15 +82,15 @@ export const initialState = (): FlowState => ({ snapToGrid: false, edgesUpdatable: false, - nodesDraggable: true, nodesConnectable: true, + nodesDraggable: true, elementsSelectable: true, - selectNodesOnDrag: undefined, + selectNodesOnDrag: true, multiSelectionActive: false, - deleteKeyCode: undefined, - selectionKeyCode: undefined, - multiSelectionKeyCode: undefined, - zoomActivationKeyCode: undefined, + selectionKeyCode: 'Shift', + multiSelectionKeyCode: 'Meta', + zoomActivationKeyCode: 'Meta', + deleteKeyCode: 'Backspace', hooks: createHooks(), loading: undefined,