From 9a8bf69848fde063dd4a40dd7eb4ae8802b62343 Mon Sep 17 00:00:00 2001 From: Braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Fri, 25 Mar 2022 15:21:56 +0100 Subject: [PATCH] feat: Add default edge options --- src/store/actions.ts | 2 ++ src/store/state.ts | 6 ++++++ src/types/store.ts | 8 +++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/store/actions.ts b/src/store/actions.ts index 2cb9b1a6..e01854d7 100644 --- a/src/store/actions.ts +++ b/src/store/actions.ts @@ -226,6 +226,7 @@ export default (state: State, getters: ComputedGetters): Actions => { return { ...parseEdge(edge, { + ...state.defaultEdgeOptions, ...getters.getEdge.value(edge.id), }), sourceNode, @@ -263,6 +264,7 @@ export default (state: State, getters: ComputedGetters): Actions => { console.warn(`couldn't create edge for target id: ${edge.target}; edge id: ${edge.id}`) state.edges.push({ + ...state.defaultEdgeOptions, ...edge, sourceNode, targetNode, diff --git a/src/store/state.ts b/src/store/state.ts index 7571be3a..54900515 100644 --- a/src/store/state.ts +++ b/src/store/state.ts @@ -99,6 +99,12 @@ export default (opts?: FlowOptions): State => { applyDefault: true, + fitViewOnInit: false, + noDragClassName: undefined, + noWheelClassName: undefined, + noPanClassName: undefined, + defaultEdgeOptions: undefined, + vueFlowVersion: typeof __VUE_FLOW_VERSION__ !== 'undefined' ? __VUE_FLOW_VERSION__ : '-', } diff --git a/src/types/store.ts b/src/types/store.ts index 767771a4..a184b8a3 100644 --- a/src/types/store.ts +++ b/src/types/store.ts @@ -2,7 +2,7 @@ import { ComputedRef, CSSProperties, ToRefs } from 'vue' import { Dimensions, Elements, FlowElements, FlowInstance, FlowOptions, Rect, SnapGrid, Transform, XYPosition } from './flow' import { EdgeComponent, NodeComponent, DefaultNodeTypes, DefaultEdgeTypes } from './components' import { Connection, ConnectionLineType, ConnectionMode } from './connection' -import { Edge, GraphEdge } from './edge' +import { DefaultEdgeOptions, Edge, GraphEdge } from './edge' import { GraphNode, CoordinateExtent, Node } from './node' import { D3Selection, D3Zoom, D3ZoomHandler, KeyCode, PanOnScrollMode } from './zoom' import { FlowHooks, FlowHooksOn } from './hooks' @@ -71,6 +71,12 @@ export interface State extends Omit, 'id' | 'm initialized: boolean applyDefault: boolean + fitViewOnInit?: boolean + noDragClassName?: string + noWheelClassName?: string + noPanClassName?: string + defaultEdgeOptions?: DefaultEdgeOptions + vueFlowVersion: string }