fix: try to deploy as package...

This commit is contained in:
Braks
2021-07-09 21:54:05 +02:00
parent 5eff860573
commit 99548a0dba
39 changed files with 161 additions and 120 deletions
+13 -3
View File
@@ -17,10 +17,10 @@
], ],
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vue-tsc --noEmit && vite build", "build": "vue-tsc --noEmit && vite build && yarn build:dist",
"build:dist": "rollup -c --environment NODE_ENV:production && postcss src/*.css --dir dist", "build:dist": "rollup -c --environment NODE_ENV:production && postcss src/*.css --dir dist",
"serve": "vite preview", "serve": "vite preview",
"prepublishOnly": "yarn build:dist", "prepublishOnly": "yarn build",
"test": "exit 0;", "test": "exit 0;",
"lint:js": "eslint --ext \".js,.jsx,.ts,.tsx\" --fix --ignore-path .gitignore .", "lint:js": "eslint --ext \".js,.jsx,.ts,.tsx\" --fix --ignore-path .gitignore .",
"lint": "yarn lint:js" "lint": "yarn lint:js"
@@ -28,7 +28,7 @@
"dependencies": { "dependencies": {
"d3": "^7.0.0", "d3": "^7.0.0",
"pinia": "^2.0.0-beta.3", "pinia": "^2.0.0-beta.3",
"vue": "^3.0.5" "vue-demi": "^0.10.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.14.6", "@babel/core": "^7.14.6",
@@ -65,8 +65,18 @@
"rollup-plugin-typescript2": "^0.30.0", "rollup-plugin-typescript2": "^0.30.0",
"typescript": "^4.3.5", "typescript": "^4.3.5",
"vite": "^2.3.8", "vite": "^2.3.8",
"vue": "^3.0.5",
"vue-tsc": "^0.0.24" "vue-tsc": "^0.0.24"
}, },
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^2.0.0 || >=3.0.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
},
"publishConfig": { "publishConfig": {
"access": "public", "access": "public",
"registry": "http://registry.npmjs.org/" "registry": "http://registry.npmjs.org/"
+1 -1
View File
@@ -58,7 +58,7 @@ export const baseConfig = ({ mainFile = pkg.main, moduleFile = pkg.module, injec
babel({ babel({
extensions: [...DEFAULT_BABEL_EXTENSIONS, '.ts', '.tsx'], extensions: [...DEFAULT_BABEL_EXTENSIONS, '.ts', '.tsx'],
exclude: 'node_modules/**', exclude: 'node_modules/**',
babelHelpers: 'bundled' babelHelpers: 'inline'
}) })
] ]
}); });
+1 -4
View File
@@ -1,18 +1,15 @@
<template> <template>
<div id="app"> <div id="app">
<h1>Revue Flow</h1> <h1>Revue Flow</h1>
<Basic style="height: 75vh; background: #0f0f0f" />
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue-demi';
import Basic from './Basic';
export default defineComponent({ export default defineComponent({
name: 'App', name: 'App',
components: { components: {
Basic
}, },
data() { data() {
return { return {
+1 -1
View File
@@ -2,7 +2,7 @@ import { Connection, Edge, Elements, FlowElement, Node, OnLoadParams } from './t
import { addEdge, isNode, removeElements } from './utils/graph'; import { addEdge, isNode, removeElements } from './utils/graph';
import RevueFlow from './container/RevueFlow'; import RevueFlow from './container/RevueFlow';
import { MiniMap, Controls, Background } from './additional-components'; import { MiniMap, Controls, Background } from './additional-components';
import { defineComponent, ref } from 'vue'; import { defineComponent, ref } from 'vue-demi';
const onNodeDragStop = (_: MouseEvent, node: Node) => console.log('drag stop', node); const onNodeDragStop = (_: MouseEvent, node: Node) => console.log('drag stop', node);
const onElementClick = (_: MouseEvent, element: FlowElement) => console.log('click', element); const onElementClick = (_: MouseEvent, element: FlowElement) => console.log('click', element);
@@ -1,6 +1,6 @@
import { BackgroundVariant } from '../../types'; import { BackgroundVariant } from '../../types';
import { createGridDotsPath, createGridLinesPath } from './utils'; import { createGridDotsPath, createGridLinesPath } from './utils';
import { computed, defineComponent, HTMLAttributes, PropType } from 'vue'; import { computed, defineComponent, HTMLAttributes, PropType } from 'vue-demi';
import store from '../../store'; import store from '../../store';
export interface BackgroundProps extends HTMLAttributes { export interface BackgroundProps extends HTMLAttributes {
+1 -1
View File
@@ -1,6 +1,6 @@
import useZoomPanHelper from '../../hooks/useZoomPanHelper'; import useZoomPanHelper from '../../hooks/useZoomPanHelper';
import { FitViewParams } from '../../types'; import { FitViewParams } from '../../types';
import { defineComponent, HTMLAttributes, onMounted, PropType, ref } from 'vue'; import { defineComponent, HTMLAttributes, onMounted, PropType, ref } from 'vue-demi';
import store from '../../store'; import store from '../../store';
export interface ControlProps extends HTMLAttributes { export interface ControlProps extends HTMLAttributes {
@@ -1,4 +1,4 @@
import { defineComponent, PropType } from 'vue'; import { defineComponent, PropType } from 'vue-demi';
interface MiniMapNodeProps { interface MiniMapNodeProps {
x: number; x: number;
+1 -1
View File
@@ -1,7 +1,7 @@
import { getRectOfNodes, getBoundsofRects } from '../../utils/graph'; import { getRectOfNodes, getBoundsofRects } from '../../utils/graph';
import { Node, Rect } from '../../types'; import { Node, Rect } from '../../types';
import MiniMapNode from './MiniMapNode'; import MiniMapNode from './MiniMapNode';
import { computed, defineComponent, HTMLAttributes, PropType } from 'vue'; import { computed, defineComponent, HTMLAttributes, PropType } from 'vue-demi';
import store from '../../store'; import store from '../../store';
type StringFunc = (node: Node) => string; type StringFunc = (node: Node) => string;
+1 -1
View File
@@ -1,4 +1,4 @@
import { ref, defineComponent, CSSProperties, PropType, computed } from 'vue'; import { ref, defineComponent, CSSProperties, PropType, computed } from 'vue-demi';
import { getBezierPath } from '../Edges/BezierEdge'; import { getBezierPath } from '../Edges/BezierEdge';
import { getSmoothStepPath } from '../Edges/SmoothStepEdge'; import { getSmoothStepPath } from '../Edges/SmoothStepEdge';
+1 -1
View File
@@ -1,4 +1,4 @@
import { computed, CSSProperties, defineComponent, PropType } from 'vue'; import { computed, CSSProperties, defineComponent, PropType } from 'vue-demi';
import EdgeText from './EdgeText'; import EdgeText from './EdgeText';
+1 -1
View File
@@ -1,5 +1,5 @@
import { Position } from '../../types'; import { Position } from '../../types';
import { defineComponent, HTMLAttributes, PropType } from 'vue'; import { defineComponent, HTMLAttributes, PropType } from 'vue-demi';
const shiftX = (x: number, shift: number, position: Position): number => { const shiftX = (x: number, shift: number, position: Position): number => {
if (position === Position.Left) return x - shift; if (position === Position.Left) return x - shift;
+1 -1
View File
@@ -1,5 +1,5 @@
import { EdgeTextProps, Rect } from '../../types'; import { EdgeTextProps, Rect } from '../../types';
import { defineComponent, PropType, ref, watch } from 'vue'; import { defineComponent, PropType, ref, watch } from 'vue-demi';
const EdgeText = defineComponent({ const EdgeText = defineComponent({
props: { props: {
+1 -1
View File
@@ -1,4 +1,4 @@
import { defineComponent } from 'vue'; import { defineComponent } from 'vue-demi';
import EdgeText from './EdgeText'; import EdgeText from './EdgeText';
import { getMarkerEnd, getCenter } from './utils'; import { getMarkerEnd, getCenter } from './utils';
+1 -1
View File
@@ -1,4 +1,4 @@
import { defineComponent } from 'vue'; import { defineComponent } from 'vue-demi';
import { EdgeSmoothStepProps } from '../../types'; import { EdgeSmoothStepProps } from '../../types';
import SmoothStepEdge from './SmoothStepEdge'; import SmoothStepEdge from './SmoothStepEdge';
+1 -1
View File
@@ -1,4 +1,4 @@
import { defineComponent } from 'vue'; import { defineComponent } from 'vue-demi';
import EdgeText from './EdgeText'; import EdgeText from './EdgeText';
import { getMarkerEnd } from './utils'; import { getMarkerEnd } from './utils';
+1 -1
View File
@@ -1,4 +1,4 @@
import { Component, computed, defineComponent, ref } from 'vue'; import { Component, computed, defineComponent, ref } from 'vue-demi';
import store from '../../store'; import store from '../../store';
import { Edge, EdgeProps, Position, WrapEdgeProps } from '../../types'; import { Edge, EdgeProps, Position, WrapEdgeProps } from '../../types';
+1 -1
View File
@@ -1,6 +1,6 @@
import { Connection, ElementId, Position } from '../../types'; import { Connection, ElementId, Position } from '../../types';
import { onMouseDown, ValidConnectionFunc } from './handler'; import { onMouseDown, ValidConnectionFunc } from './handler';
import { defineComponent, inject, PropType } from 'vue'; import { defineComponent, inject, PropType } from 'vue-demi';
import store from '../../store'; import store from '../../store';
const alwaysValid = () => true; const alwaysValid = () => true;
+1 -1
View File
@@ -1,6 +1,6 @@
import Handle from '../../components/Handle'; import Handle from '../../components/Handle';
import { NodeProps, Position } from '../../types'; import { NodeProps, Position } from '../../types';
import { defineComponent, PropType } from 'vue'; import { defineComponent, PropType } from 'vue-demi';
const DefaultNode = defineComponent({ const DefaultNode = defineComponent({
name: 'DefaultNode', name: 'DefaultNode',
+1 -1
View File
@@ -1,6 +1,6 @@
import Handle from '../../components/Handle'; import Handle from '../../components/Handle';
import { NodeProps, Position } from '../../types'; import { NodeProps, Position } from '../../types';
import { defineComponent, PropType } from 'vue'; import { defineComponent, PropType } from 'vue-demi';
const InputNode = defineComponent({ const InputNode = defineComponent({
name: 'InputNode', name: 'InputNode',
+1 -1
View File
@@ -1,6 +1,6 @@
import Handle from '../../components/Handle'; import Handle from '../../components/Handle';
import { NodeProps, Position } from '../../types'; import { NodeProps, Position } from '../../types';
import { defineComponent, PropType } from 'vue'; import { defineComponent, PropType } from 'vue-demi';
const OutputNode = defineComponent({ const OutputNode = defineComponent({
name: 'OutputNode', name: 'OutputNode',
+1 -1
View File
@@ -1,5 +1,5 @@
import { Node, WrapNodeProps } from '../../types'; import { Node, WrapNodeProps } from '../../types';
import { computed, CSSProperties, defineComponent, onMounted, provide, ref } from 'vue'; import { computed, CSSProperties, defineComponent, onMounted, provide, ref } from 'vue-demi';
import store from '../../store'; import store from '../../store';
export default (NodeComponent: any) => { export default (NodeComponent: any) => {
+1 -1
View File
@@ -2,7 +2,7 @@
* The user selection rectangle gets displayed when a user drags the mouse while pressing shift * The user selection rectangle gets displayed when a user drags the mouse while pressing shift
*/ */
import { XYPosition } from '../../types'; import { XYPosition } from '../../types';
import { defineComponent, PropType } from 'vue'; import { defineComponent, PropType } from 'vue-demi';
import store from '../../store'; import store from '../../store';
type UserSelectionProps = { type UserSelectionProps = {
@@ -1,4 +1,4 @@
import { defineComponent, PropType } from 'vue'; import { defineComponent, PropType } from 'vue-demi';
interface MarkerProps { interface MarkerProps {
id: string; id: string;
+1 -1
View File
@@ -13,7 +13,7 @@ import {
Transform, Transform,
OnEdgeUpdateFunc OnEdgeUpdateFunc
} from '../../types'; } from '../../types';
import { computed, CSSProperties, defineComponent, PropType } from 'vue'; import { computed, CSSProperties, defineComponent, PropType } from 'vue-demi';
import store from '../../store'; import store from '../../store';
interface EdgeRendererProps { interface EdgeRendererProps {
+1 -1
View File
@@ -3,7 +3,7 @@ import wrapEdge from '../../components/Edges/wrapEdge';
import { rectToBox } from '../../utils/graph'; import { rectToBox } from '../../utils/graph';
import { EdgeTypesType, EdgeProps, Position, Node, XYPosition, ElementId, HandleElement, Transform, Edge } from '../../types'; import { EdgeTypesType, EdgeProps, Position, Node, XYPosition, ElementId, HandleElement, Transform, Edge } from '../../types';
import { Component } from 'vue'; import { Component } from 'vue-demi';
export function createEdgeTypes(edgeTypes: EdgeTypesType): EdgeTypesType { export function createEdgeTypes(edgeTypes: EdgeTypesType): EdgeTypesType {
const standardTypes: EdgeTypesType = { const standardTypes: EdgeTypesType = {
+1 -1
View File
@@ -1,7 +1,7 @@
import { GraphViewProps } from '../GraphView'; import { GraphViewProps } from '../GraphView';
import ZoomPane from '../ZoomPane'; import ZoomPane from '../ZoomPane';
import UserSelection from '../../components/UserSelection'; import UserSelection from '../../components/UserSelection';
import { defineComponent, PropType } from 'vue'; import { defineComponent, PropType } from 'vue-demi';
import store from '../../store'; import store from '../../store';
type FlowRendererProps = Omit< type FlowRendererProps = Omit<
+3 -3
View File
@@ -2,13 +2,13 @@ import FlowRenderer from '../FlowRenderer';
import NodeRenderer from '../NodeRenderer'; import NodeRenderer from '../NodeRenderer';
import EdgeRenderer from '../EdgeRenderer'; import EdgeRenderer from '../EdgeRenderer';
import { onLoadProject, onLoadGetElements, onLoadToObject } from '../../utils/graph'; import { onLoadProject, onLoadGetElements, onLoadToObject } from '../../utils/graph';
import { ReactFlowProps } from '../RevueFlow'; import { RevueFlowProps } from '../RevueFlow';
import { NodeTypesType, EdgeTypesType, ConnectionLineType, KeyCode } from '../../types'; import { NodeTypesType, EdgeTypesType, ConnectionLineType, KeyCode } from '../../types';
import { CSSProperties, defineComponent, onBeforeMount, onMounted, PropType, ref } from 'vue'; import { CSSProperties, defineComponent, onBeforeMount, onMounted, PropType, ref } from 'vue-demi';
import store from '../../store'; import store from '../../store';
import useZoomPanHelper from '../../hooks/useZoomPanHelper'; import useZoomPanHelper from '../../hooks/useZoomPanHelper';
export interface GraphViewProps extends Omit<ReactFlowProps, 'onSelectionChange' | 'elements'> { export interface GraphViewProps extends Omit<RevueFlowProps, 'onSelectionChange' | 'elements'> {
nodeTypes: NodeTypesType; nodeTypes: NodeTypesType;
edgeTypes: EdgeTypesType; edgeTypes: EdgeTypesType;
selectionKeyCode: KeyCode; selectionKeyCode: KeyCode;
+1 -1
View File
@@ -1,6 +1,6 @@
import { getNodesInside } from '../../utils/graph'; import { getNodesInside } from '../../utils/graph';
import { Node, NodeTypesType, Edge } from '../../types'; import { Node, NodeTypesType, Edge } from '../../types';
import { computed, defineComponent, PropType } from 'vue'; import { computed, defineComponent, PropType } from 'vue-demi';
import store from '../../store'; import store from '../../store';
interface NodeRendererProps { interface NodeRendererProps {
+68 -68
View File
@@ -1,4 +1,4 @@
import { computed, CSSProperties, defineComponent, HTMLAttributes, onUpdated, PropType } from 'vue'; import { computed, CSSProperties, defineComponent, HTMLAttributes, onUpdated, PropType } from 'vue-demi';
import GraphView from '../GraphView'; import GraphView from '../GraphView';
import DefaultNode from '../../components/Nodes/DefaultNode'; import DefaultNode from '../../components/Nodes/DefaultNode';
import InputNode from '../../components/Nodes/InputNode'; import InputNode from '../../components/Nodes/InputNode';
@@ -45,7 +45,7 @@ const defaultEdgeTypes = {
smoothstep: SmoothStepEdge smoothstep: SmoothStepEdge
}; };
export interface ReactFlowProps extends Omit<HTMLAttributes, 'onLoad'> { export interface RevueFlowProps extends Omit<HTMLAttributes, 'onLoad'> {
elements: Elements; elements: Elements;
onElementClick?: (event: MouseEvent, element: Node | Edge) => void; onElementClick?: (event: MouseEvent, element: Node | Edge) => void;
onElementsRemove?: (elements: Elements) => void; onElementsRemove?: (elements: Elements) => void;
@@ -123,331 +123,331 @@ const RevueFlow = defineComponent({
components: { GraphView }, components: { GraphView },
props: { props: {
elements: { elements: {
type: Object as PropType<ReactFlowProps['elements']>, type: Object as PropType<RevueFlowProps['elements']>,
required: true required: true
}, },
nodeTypesId: { nodeTypesId: {
type: String as PropType<ReactFlowProps['nodeTypesId']>, type: String as PropType<RevueFlowProps['nodeTypesId']>,
required: false, required: false,
default: '1' default: '1'
}, },
edgeTypesId: { edgeTypesId: {
type: String as PropType<ReactFlowProps['edgeTypesId']>, type: String as PropType<RevueFlowProps['edgeTypesId']>,
required: false, required: false,
default: '1' default: '1'
}, },
nodeTypes: { nodeTypes: {
type: Object as PropType<ReactFlowProps['nodeTypes']>, type: Object as PropType<RevueFlowProps['nodeTypes']>,
required: false, required: false,
default: () => defaultNodeTypes default: () => defaultNodeTypes
}, },
edgeTypes: { edgeTypes: {
type: Object as PropType<ReactFlowProps['edgeTypes']>, type: Object as PropType<RevueFlowProps['edgeTypes']>,
required: false, required: false,
default: () => defaultEdgeTypes default: () => defaultEdgeTypes
}, },
onMove: { onMove: {
type: Function() as PropType<ReactFlowProps['onMove']>, type: Function() as PropType<RevueFlowProps['onMove']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onMoveStart: { onMoveStart: {
type: Function() as PropType<ReactFlowProps['onMoveStart']>, type: Function() as PropType<RevueFlowProps['onMoveStart']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onMoveEnd: { onMoveEnd: {
type: Function() as PropType<ReactFlowProps['onMoveEnd']>, type: Function() as PropType<RevueFlowProps['onMoveEnd']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onLoad: { onLoad: {
type: Function() as PropType<ReactFlowProps['onLoad']>, type: Function() as PropType<RevueFlowProps['onLoad']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onElementClick: { onElementClick: {
type: Function() as PropType<ReactFlowProps['onElementClick']>, type: Function() as PropType<RevueFlowProps['onElementClick']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onNodeDoubleClick: { onNodeDoubleClick: {
type: Function() as PropType<ReactFlowProps['onNodeDoubleClick']>, type: Function() as PropType<RevueFlowProps['onNodeDoubleClick']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onEdgeDoubleClick: { onEdgeDoubleClick: {
type: Function() as PropType<ReactFlowProps['onEdgeDoubleClick']>, type: Function() as PropType<RevueFlowProps['onEdgeDoubleClick']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onNodeMouseEnter: { onNodeMouseEnter: {
type: Function() as PropType<ReactFlowProps['onNodeMouseEnter']>, type: Function() as PropType<RevueFlowProps['onNodeMouseEnter']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onNodeMouseMove: { onNodeMouseMove: {
type: Function() as PropType<ReactFlowProps['onNodeMouseMove']>, type: Function() as PropType<RevueFlowProps['onNodeMouseMove']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onNodeMouseLeave: { onNodeMouseLeave: {
type: Function() as PropType<ReactFlowProps['onNodeMouseLeave']>, type: Function() as PropType<RevueFlowProps['onNodeMouseLeave']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onNodeContextMenu: { onNodeContextMenu: {
type: Function() as PropType<ReactFlowProps['onNodeContextMenu']>, type: Function() as PropType<RevueFlowProps['onNodeContextMenu']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onNodeDragStart: { onNodeDragStart: {
type: Function() as PropType<ReactFlowProps['onNodeDragStart']>, type: Function() as PropType<RevueFlowProps['onNodeDragStart']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onNodeDrag: { onNodeDrag: {
type: Function() as PropType<ReactFlowProps['onNodeDrag']>, type: Function() as PropType<RevueFlowProps['onNodeDrag']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onNodeDragStop: { onNodeDragStop: {
type: Function() as PropType<ReactFlowProps['onNodeDragStop']>, type: Function() as PropType<RevueFlowProps['onNodeDragStop']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onSelectionContextMenu: { onSelectionContextMenu: {
type: Function() as PropType<ReactFlowProps['onSelectionContextMenu']>, type: Function() as PropType<RevueFlowProps['onSelectionContextMenu']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onElementsRemove: { onElementsRemove: {
type: Function() as PropType<ReactFlowProps['onElementsRemove']>, type: Function() as PropType<RevueFlowProps['onElementsRemove']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onConnect: { onConnect: {
type: Function() as PropType<ReactFlowProps['onConnect']>, type: Function() as PropType<RevueFlowProps['onConnect']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onConnectStart: { onConnectStart: {
type: Function() as PropType<ReactFlowProps['onConnectStart']>, type: Function() as PropType<RevueFlowProps['onConnectStart']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onConnectStop: { onConnectStop: {
type: Function() as PropType<ReactFlowProps['onConnectStop']>, type: Function() as PropType<RevueFlowProps['onConnectStop']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onConnectEnd: { onConnectEnd: {
type: Function() as PropType<ReactFlowProps['onConnectEnd']>, type: Function() as PropType<RevueFlowProps['onConnectEnd']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
connectionMode: { connectionMode: {
type: String as PropType<ReactFlowProps['connectionMode']>, type: String as PropType<RevueFlowProps['connectionMode']>,
required: false, required: false,
default: ConnectionMode.Strict default: ConnectionMode.Strict
}, },
connectionLineType: { connectionLineType: {
type: String as PropType<ReactFlowProps['connectionLineType']>, type: String as PropType<RevueFlowProps['connectionLineType']>,
required: false, required: false,
default: ConnectionLineType.Bezier default: ConnectionLineType.Bezier
}, },
connectionLineStyle: { connectionLineStyle: {
type: Object as PropType<ReactFlowProps['connectionLineStyle']>, type: Object as PropType<RevueFlowProps['connectionLineStyle']>,
required: false, required: false,
default: () => ({} as CSSProperties) default: () => ({} as CSSProperties)
}, },
connectionLineComponent: { connectionLineComponent: {
type: Object as PropType<ReactFlowProps['connectionLineComponent']>, type: Object as PropType<RevueFlowProps['connectionLineComponent']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
selectionKeyCode: { selectionKeyCode: {
type: (Number || String) as PropType<ReactFlowProps['selectionKeyCode']>, type: (Number || String) as PropType<RevueFlowProps['selectionKeyCode']>,
required: false, required: false,
default: 'Shift' default: 'Shift'
}, },
multiSelectionKeyCode: { multiSelectionKeyCode: {
type: (Number || String) as PropType<ReactFlowProps['multiSelectionKeyCode']>, type: (Number || String) as PropType<RevueFlowProps['multiSelectionKeyCode']>,
required: false, required: false,
default: 'Meta' default: 'Meta'
}, },
zoomActivationKeyCode: { zoomActivationKeyCode: {
type: (Number || String) as PropType<ReactFlowProps['zoomActivationKeyCode']>, type: (Number || String) as PropType<RevueFlowProps['zoomActivationKeyCode']>,
required: false, required: false,
default: 'Meta' default: 'Meta'
}, },
deleteKeyCode: { deleteKeyCode: {
type: (Number || String) as PropType<ReactFlowProps['deleteKeyCode']>, type: (Number || String) as PropType<RevueFlowProps['deleteKeyCode']>,
required: false, required: false,
default: 'Backspace' default: 'Backspace'
}, },
snapToGrid: { snapToGrid: {
type: Boolean as PropType<ReactFlowProps['snapToGrid']>, type: Boolean as PropType<RevueFlowProps['snapToGrid']>,
required: false, required: false,
default: false default: false
}, },
snapGrid: { snapGrid: {
type: Array as unknown as PropType<ReactFlowProps['snapGrid']>, type: Array as unknown as PropType<RevueFlowProps['snapGrid']>,
required: false, required: false,
default: () => [15, 15] default: () => [15, 15]
}, },
onlyRenderVisibleElements: { onlyRenderVisibleElements: {
type: Boolean as PropType<ReactFlowProps['onlyRenderVisibleElements']>, type: Boolean as PropType<RevueFlowProps['onlyRenderVisibleElements']>,
required: false, required: false,
default: false default: false
}, },
nodesDraggable: { nodesDraggable: {
type: Boolean as PropType<ReactFlowProps['nodesDraggable']>, type: Boolean as PropType<RevueFlowProps['nodesDraggable']>,
required: false, required: false,
default: undefined default: undefined
}, },
nodesConnectable: { nodesConnectable: {
type: Boolean as PropType<ReactFlowProps['nodesConnectable']>, type: Boolean as PropType<RevueFlowProps['nodesConnectable']>,
required: false, required: false,
default: undefined default: undefined
}, },
elementsSelectable: { elementsSelectable: {
type: Boolean as PropType<ReactFlowProps['elementsSelectable']>, type: Boolean as PropType<RevueFlowProps['elementsSelectable']>,
required: false, required: false,
default: undefined default: undefined
}, },
selectNodesOnDrag: { selectNodesOnDrag: {
type: Boolean as PropType<ReactFlowProps['selectNodesOnDrag']>, type: Boolean as PropType<RevueFlowProps['selectNodesOnDrag']>,
required: false, required: false,
default: true default: true
}, },
minZoom: { minZoom: {
type: Number as PropType<ReactFlowProps['minZoom']>, type: Number as PropType<RevueFlowProps['minZoom']>,
required: false, required: false,
default: undefined default: undefined
}, },
maxZoom: { maxZoom: {
type: Number as PropType<ReactFlowProps['maxZoom']>, type: Number as PropType<RevueFlowProps['maxZoom']>,
required: false, required: false,
default: undefined default: undefined
}, },
defaultZoom: { defaultZoom: {
type: Number as PropType<ReactFlowProps['defaultZoom']>, type: Number as PropType<RevueFlowProps['defaultZoom']>,
required: false, required: false,
default: 1 default: 1
}, },
defaultPosition: { defaultPosition: {
type: Array as unknown as PropType<ReactFlowProps['defaultPosition']>, type: Array as unknown as PropType<RevueFlowProps['defaultPosition']>,
required: false, required: false,
default: () => [0, 0] default: () => [0, 0]
}, },
translateExtent: { translateExtent: {
type: Array as unknown as PropType<ReactFlowProps['translateExtent']>, type: Array as unknown as PropType<RevueFlowProps['translateExtent']>,
required: false, required: false,
default: undefined default: undefined
}, },
nodeExtent: { nodeExtent: {
type: Array as unknown as PropType<ReactFlowProps['nodeExtent']>, type: Array as unknown as PropType<RevueFlowProps['nodeExtent']>,
required: false, required: false,
default: undefined default: undefined
}, },
arrowHeadColor: { arrowHeadColor: {
type: String as PropType<ReactFlowProps['arrowHeadColor']>, type: String as PropType<RevueFlowProps['arrowHeadColor']>,
required: false, required: false,
default: '#b1b1b7' default: '#b1b1b7'
}, },
markerEndId: { markerEndId: {
type: String as PropType<ReactFlowProps['markerEndId']>, type: String as PropType<RevueFlowProps['markerEndId']>,
required: false, required: false,
default: undefined default: undefined
}, },
zoomOnScroll: { zoomOnScroll: {
type: Boolean as PropType<ReactFlowProps['zoomOnScroll']>, type: Boolean as PropType<RevueFlowProps['zoomOnScroll']>,
required: false, required: false,
default: true default: true
}, },
zoomOnPinch: { zoomOnPinch: {
type: Boolean as PropType<ReactFlowProps['zoomOnPinch']>, type: Boolean as PropType<RevueFlowProps['zoomOnPinch']>,
required: false, required: false,
default: true default: true
}, },
panOnScroll: { panOnScroll: {
type: Boolean as PropType<ReactFlowProps['panOnScroll']>, type: Boolean as PropType<RevueFlowProps['panOnScroll']>,
required: false, required: false,
default: false default: false
}, },
panOnScrollSpeed: { panOnScrollSpeed: {
type: Number as PropType<ReactFlowProps['panOnScrollSpeed']>, type: Number as PropType<RevueFlowProps['panOnScrollSpeed']>,
required: false, required: false,
default: 0.5 default: 0.5
}, },
panOnScrollMode: { panOnScrollMode: {
type: String as PropType<ReactFlowProps['panOnScrollMode']>, type: String as PropType<RevueFlowProps['panOnScrollMode']>,
required: false, required: false,
default: PanOnScrollMode.Free default: PanOnScrollMode.Free
}, },
zoomOnDoubleClick: { zoomOnDoubleClick: {
type: Boolean as PropType<ReactFlowProps['zoomOnDoubleClick']>, type: Boolean as PropType<RevueFlowProps['zoomOnDoubleClick']>,
required: false, required: false,
default: true default: true
}, },
paneMoveable: { paneMoveable: {
type: Boolean as PropType<ReactFlowProps['paneMoveable']>, type: Boolean as PropType<RevueFlowProps['paneMoveable']>,
required: false, required: false,
default: true default: true
}, },
onPaneClick: { onPaneClick: {
type: Function() as PropType<ReactFlowProps['onPaneClick']>, type: Function() as PropType<RevueFlowProps['onPaneClick']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onPaneScroll: { onPaneScroll: {
type: Function() as PropType<ReactFlowProps['onPaneScroll']>, type: Function() as PropType<RevueFlowProps['onPaneScroll']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onPaneContextMenu: { onPaneContextMenu: {
type: Function() as PropType<ReactFlowProps['onPaneContextMenu']>, type: Function() as PropType<RevueFlowProps['onPaneContextMenu']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onEdgeUpdate: { onEdgeUpdate: {
type: Function() as PropType<ReactFlowProps['onEdgeUpdate']>, type: Function() as PropType<RevueFlowProps['onEdgeUpdate']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onEdgeMouseEnter: { onEdgeMouseEnter: {
type: Function() as PropType<ReactFlowProps['onEdgeMouseEnter']>, type: Function() as PropType<RevueFlowProps['onEdgeMouseEnter']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onEdgeContextMenu: { onEdgeContextMenu: {
type: Function() as PropType<ReactFlowProps['onEdgeContextMenu']>, type: Function() as PropType<RevueFlowProps['onEdgeContextMenu']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onEdgeMouseMove: { onEdgeMouseMove: {
type: Function() as PropType<ReactFlowProps['onEdgeMouseMove']>, type: Function() as PropType<RevueFlowProps['onEdgeMouseMove']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onEdgeMouseLeave: { onEdgeMouseLeave: {
type: Function() as PropType<ReactFlowProps['onEdgeMouseLeave']>, type: Function() as PropType<RevueFlowProps['onEdgeMouseLeave']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onEdgeUpdateEnd: { onEdgeUpdateEnd: {
type: Function() as PropType<ReactFlowProps['onEdgeUpdateEnd']>, type: Function() as PropType<RevueFlowProps['onEdgeUpdateEnd']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
onEdgeUpdateStart: { onEdgeUpdateStart: {
type: Function() as PropType<ReactFlowProps['onEdgeUpdateStart']>, type: Function() as PropType<RevueFlowProps['onEdgeUpdateStart']>,
required: false, required: false,
default: undefined as any default: undefined as any
}, },
edgeUpdaterRadius: { edgeUpdaterRadius: {
type: Number as PropType<ReactFlowProps['edgeUpdaterRadius']>, type: Number as PropType<RevueFlowProps['edgeUpdaterRadius']>,
required: false, required: false,
default: 10 default: 10
} }
+1 -1
View File
@@ -3,7 +3,7 @@ import { select, pointer } from 'd3-selection';
import { clamp } from '../../utils'; import { clamp } from '../../utils';
import { FlowTransform, TranslateExtent, PanOnScrollMode, KeyCode } from '../../types'; import { FlowTransform, TranslateExtent, PanOnScrollMode, KeyCode } from '../../types';
import { defineComponent, onMounted, PropType, ref, watch } from 'vue'; import { defineComponent, onMounted, PropType, ref, watch } from 'vue-demi';
import store from '../../store'; import store from '../../store';
import useKeyPress from '../../hooks/useKeyPress'; import useKeyPress from '../../hooks/useKeyPress';
import useResizeHandler from '../../hooks/useResizeHandler'; import useResizeHandler from '../../hooks/useResizeHandler';
+1 -1
View File
@@ -2,7 +2,7 @@ import useKeyPress from './useKeyPress';
import { isNode, getConnectedEdges } from '../utils/graph'; import { isNode, getConnectedEdges } from '../utils/graph';
import { Elements, KeyCode, ElementId, FlowElement } from '../types'; import { Elements, KeyCode, ElementId, FlowElement } from '../types';
import store from '../store'; import store from '../store';
import { onMounted } from 'vue'; import { onMounted } from 'vue-demi';
interface HookParams { interface HookParams {
deleteKeyCode: KeyCode; deleteKeyCode: KeyCode;
+1 -1
View File
@@ -1,6 +1,6 @@
import { isInputDOMNode } from '../utils'; import { isInputDOMNode } from '../utils';
import { KeyCode } from '../types'; import { KeyCode } from '../types';
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue-demi';
export default (keyCode?: KeyCode): boolean => { export default (keyCode?: KeyCode): boolean => {
const keyPressed = ref<boolean>(false); const keyPressed = ref<boolean>(false);
-5
View File
@@ -25,8 +25,3 @@ export { default as useUpdateNodeInternals } from './hooks/useUpdateNodeInternal
export * from './additional-components'; export * from './additional-components';
export * from './types'; export * from './types';
export { ReactFlowProps } from './container/RevueFlow';
export { MiniMapProps } from './additional-components/MiniMap';
export { ControlProps } from './additional-components/Controls';
export { BackgroundProps } from './additional-components/Background';
+1 -1
View File
@@ -1,4 +1,4 @@
import { createApp } from 'vue'; import { createApp } from 'vue-demi';
import App from './App.vue'; import App from './App.vue';
import { createPinia } from 'pinia'; import { createPinia } from 'pinia';
+1 -1
View File
@@ -1,5 +1,5 @@
declare module '*.vue' { declare module '*.vue' {
import { DefineComponent } from 'vue'; import { DefineComponent } from 'vue-demi';
// eslint-disable-next-line @typescript-eslint/ban-types // eslint-disable-next-line @typescript-eslint/ban-types
const component: DefineComponent<{}, {}, any>; const component: DefineComponent<{}, {}, any>;
export default component; export default component;
+14 -4
View File
@@ -1,9 +1,18 @@
import { defineStore, StoreDefinition } from 'pinia'; import { createPinia, defineStore, StoreDefinition } from 'pinia';
import isEqual from 'fast-deep-equal'; import isEqual from 'fast-deep-equal';
import { Edge, Node, NodeDiffUpdate, ReactFlowState, RevueFlowActionsTree, XYPosition } from '../types'; import { Edge, Node, NodeDiffUpdate, ReactFlowState, RevueFlowActionsTree, XYPosition } from '../types';
import { getConnectedEdges, getNodesInside, getRectOfNodes, isEdge, isNode, parseEdge, parseNode } from '../utils/graph'; import {
getConnectedEdges,
getNodesInside,
getRectOfNodes,
isEdge,
isNode,
parseEdge,
parseNode
} from '../utils/graph';
import { clampPosition, getDimensions } from '../utils'; import { clampPosition, getDimensions } from '../utils';
import { getHandleBounds } from '../components/Nodes/utils'; import { getHandleBounds } from '../components/Nodes/utils';
import { provide } from 'vue-demi';
type NextElements = { type NextElements = {
nextNodes: Node[]; nextNodes: Node[];
@@ -13,6 +22,7 @@ type NextElements = {
export default function configureStore( export default function configureStore(
preloadedState: ReactFlowState preloadedState: ReactFlowState
): StoreDefinition<'revue-flow', ReactFlowState, any, RevueFlowActionsTree> { ): StoreDefinition<'revue-flow', ReactFlowState, any, RevueFlowActionsTree> {
provide(Symbol('pinia'), createPinia());
return defineStore({ return defineStore({
id: 'revue-flow', id: 'revue-flow',
state: () => preloadedState, state: () => preloadedState,
@@ -189,8 +199,8 @@ export default function configureStore(
const selectedElementsChanged = !isEqual(nextSelectedElements, this.selectedElements); const selectedElementsChanged = !isEqual(nextSelectedElements, this.selectedElements);
const selectedElementsUpdate = selectedElementsChanged const selectedElementsUpdate = selectedElementsChanged
? { ? {
selectedElements: nextSelectedElements.length > 0 ? nextSelectedElements : null selectedElements: nextSelectedElements.length > 0 ? nextSelectedElements : null
} }
: {}; : {};
this.userSelectionRect = nextUserSelectRect; this.userSelectionRect = nextUserSelectRect;
+1 -1
View File
@@ -1,5 +1,5 @@
import { Selection as D3Selection, ZoomBehavior } from 'd3'; import { Selection as D3Selection, ZoomBehavior } from 'd3';
import { Component, HTMLAttributes, PropType, VNode } from 'vue'; import { Component, HTMLAttributes, PropType, VNode } from 'vue-demi';
export type ElementId = string; export type ElementId = string;
+26 -2
View File
@@ -1,11 +1,35 @@
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import { resolve } from 'path';
import vue from '@vitejs/plugin-vue'; import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx'; import vueJsx from '@vitejs/plugin-vue-jsx';
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
build: { sourcemap: 'inline' }, build: {
esbuild: { sourcemap: 'both' }, lib: {
entry: resolve(__dirname, 'src/index.ts'),
name: 'RevueFlow'
},
rollupOptions: {
// make sure to externalize deps that shouldn't be bundled
// into your library
external: ['vue'],
output: {
// Provide global variables to use in the UMD build
// for externalized deps
globals: {
vue: 'Vue'
},
dir: 'dist',
sourcemap: true,
exports: 'named'
},
inlineDynamicImports: true
}
},
optimizeDeps: {
exclude: ['vue-demi']
},
plugins: [ plugins: [
vue(), vue(),
vueJsx({ vueJsx({
+5
View File
@@ -6599,6 +6599,11 @@ vite@^2.3.8:
optionalDependencies: optionalDependencies:
fsevents "~2.3.2" fsevents "~2.3.2"
vue-demi@^0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.10.1.tgz#229b81395510f02f4ee255344557a12cc0120930"
integrity sha512-L6Oi+BvmMv6YXvqv5rJNCFHEKSVu7llpWWJczqmAQYOdmPPw5PNYoz1KKS//Fxhi+4QP64dsPjtmvnYGo1jemA==
vue-eslint-parser@^7.0.0, vue-eslint-parser@^7.1.1, vue-eslint-parser@^7.6.0: vue-eslint-parser@^7.0.0, vue-eslint-parser@^7.1.1, vue-eslint-parser@^7.6.0:
version "7.6.0" version "7.6.0"
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.6.0.tgz#01ea1a2932f581ff244336565d712801f8f72561" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.6.0.tgz#01ea1a2932f581ff244336565d712801f8f72561"