Commit Graph

185 Commits

Author SHA1 Message Date
Braks
37388ddf47 feat(types): Add NodeTypes and EdgeTypes
* Interface for passing an object of NodeTypes/EdgeTypes
* Object needs to be passed with components markedRaw

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 17:47:57 +01:00
Braks
8c4747a8a9 update: move watcher to onMounted hook
* remove default values for nodes edges from initial store

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 16:51:40 +01:00
Braks
f92c5462bf update: a couple more perfomance related updates
* check for selected value inside Node instead of the wrapping renderer
* instead of "parsing" elements just return the current store.elements object
* use map funct to find index

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 15:41:00 +01:00
Braks
3f139dffee update: add default null value to injections
* "disables" warnings about injection not being found
* we assume that the injection can be undefined, so we don't need to be spammed about missing injections

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 13:55:42 +01:00
Braks
054e71a609 feat: Add instance to store
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 13:46:37 +01:00
Braks
e93da64c70 feat: v-model for elements
* add vmodel for elements and a new modelValue prop (which should replace the elements prop further along the road to avoid confusion)
*

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 13:46:17 +01:00
Braks
b91d65fd3a fix: storage not properly preloading
* Add elements to store state when using addElements action

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 13:42:41 +01:00
Braks
48da1eccba update: merge props with state objects
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 02:44:48 +01:00
Braks
f534572cef fix!: v-model implemented again
* fix store usage

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 02:13:47 +01:00
Braks
8605909f5d feat: export default edge and node types object
* set isReady after load-hook trigger

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 01:55:48 +01:00
Braks
70b077a1f5 fix!: props and composable not merging together properly
* Add getter for node/edge types
* change nodeTypes prop type to only Record<string, NodeType> - same for edges
* Add rgb example
* remove v-model for elements

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-19 01:43:07 +01:00
Braks
c8d3ff6a29 update: add return type to useVueFlow default export
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 23:42:37 +01:00
Braks
470ab3782a update: remove useHooks usage
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 23:17:09 +01:00
Braks
99dbd4b2cc feat!: Add hooks to store
* For easier access and to avoid context issues with injections hooks are put into the store
* hooks can be accessed and will emit events when the flow has bound its emit function to the hooks
* useHooks and useStore are not exported anymore! Instead, useVueFlow is provided, which will return an instance of the current vue flow store
* Rename NodeIdContextKey to NodeId
* Add addElements function to store to add elements without having to re-set the whole store
* use v-model for elements, re-set elements only if there's an actual change

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 21:24:20 +01:00
Braks
3e24a3585a update: mini map to accept node slot instead of "nodes" slot
* some type updates

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 18:17:00 +01:00
Braks
a493168daf feat: Add useVueFlow composable
* Allows for use of the vue flow instance without having to listen to the onLoad event
* fix usekeypress export
* Add types for controls events

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 18:04:50 +01:00
Braks
6bcd708234 fix: default value for label
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 15:33:36 +01:00
Braks
156287b9d2 chore(deps): update deps
* replace fast-deep-equal with microdiff
* remove localforage (using useStorage instead)

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 15:29:50 +01:00
Braks
90a2a6544d update(zoom): remove watcher and use until
* wait until height and width are set for zoom pane to trigger load hook

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 14:32:30 +01:00
Braks
60327c4ca0 update(zoom): clamp transform values
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 14:14:05 +01:00
Braks
14980e38b7 feat: Add suspensions to node, noderenderer and around zoom-pane
* bind zoompanhelper functions to zoom-pane slot

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 14:08:46 +01:00
Braks
54dfd8498b feat: add zoom-pane slot
* if the user wants to pass a slot into zoom pane
* props are the current width/height and transform values

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 13:40:51 +01:00
Braks
0be492b7c6 feat: bind props to slots
* bind props to slots in edges, handle, nodes

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 13:40:06 +01:00
Braks
b918eb6b89 fix: event propagation from zoom
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 03:23:36 +01:00
Braks
8b82c4fb33 feat: Add slots to edges and nodes
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 03:19:13 +01:00
Braks
812a7da2fe fix: move slots outside of zoom pane
* avoids zoom gesture events bubbling to zoom pane and causing elements over flow to trigger zoom when they shouldn't

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-18 03:06:21 +01:00
Braks
1deb41766b chore(deps): update revue-draggable to v0.3.4
* fix import path of utils in NodesSelection.vue
* remove scale (bug)

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-17 16:07:56 +01:00
Braks
43ce52347c update: invoke until func in zoom pane
* instead of using .then cb we use the invoke func to call the async await and wait for the zoomPaneEl

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-17 10:04:28 +01:00
Braks
954722aac2 feat(zoom): Add suspension to zoom pane
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-17 09:44:26 +01:00
Braks
10215b4631 update: create vue.d.ts files
* add vue-tsc to emit d.ts files from vue components
* use absolute paths in components
* avoids conflicts with ts custom paths in vue-tsc generated vue.d.ts files

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-17 01:39:50 +01:00
Braks
23ad66dd75 update: hide edges with v-show instead of v-if
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-17 00:46:43 +01:00
Braks
677c9a8b5e fix: properly check if node is connectable/draggable/connectable
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-17 00:45:43 +01:00
Braks
6b4cb9e937 update(docs): README.md
* minor updates in zoompane and interaction example

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-17 00:35:21 +01:00
Braks
694dc7e691 fix: node dimensions not updating properly
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 23:20:06 +01:00
Braks
9b604e7628 fix: pass props to store state
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 20:04:00 +01:00
Braks
808c6b17e0 fix: remove force-update from node
* update dimensions directly, not on next tick

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 20:00:09 +01:00
Braks
93730a7b98 update: count store id gradually up instead of "randomizing" one
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 19:59:44 +01:00
Braks
e1e656ccf2 update: export default nodes and edges
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 19:04:35 +01:00
Braks
6c2bdcdae6 fix(types): remove sourceX/Y, targetX/Y attributes from edge type
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 17:55:14 +01:00
Braks
413c7ac688 update(types!): Merge EdgeProps into Edge type
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 17:45:01 +01:00
Braks
a58d952e9f fix: disable inherting attrs on nodes/edges to avoid warnings
* disable context warnings for non-dev environments

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 16:01:44 +01:00
Braks
4fb55aba68 fix: cancel keypress for input dom nodes
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 13:34:21 +01:00
Braks
476a5aa09b fix: type in usehooks
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 13:06:54 +01:00
Braks
490983bebe fix: todo in useHandle
* edge update end only emits the mouse event, not the edge

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 13:04:55 +01:00
Braks
7c66cf5d9b update!: Remove update node internals composable
* It's practically useless as vue doesn't need the trigger to catch a re-render
* Remove unused types

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 12:58:16 +01:00
Braks
d1dab4cda8 feat: Extend options to pass custom nodes / edges
* Accept either a Record<string, Component | boolean> or string[] as nodetypes option
* If bool / string is used a slot will be expected, otherwise no node/edge will be rendered

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-16 09:43:17 +01:00
Braks
ffdadda051 update!: Rename Flow container to VueFlow
* Export renamed to VueFlow

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-15 20:34:02 +01:00
Braks
dec2774145 update(edge): hide edge if source/target pos are NaN-ish
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-15 14:31:54 +01:00
Braks
d6ee5f8868 fix: wrong watch source in nodes
* causes console warnings

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-15 12:50:03 +01:00
Braks
9c3eeef5eb fix: warnings when NaN values are passed to svg transformations
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-11-15 12:44:09 +01:00