1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
| import { provide, inject, ref, isRef, Ref, reactive, toRaw } from 'vue'
| import mitt from 'mitt'
| import type { Store, StoreKey } from '../type/index'
| import GraphEvent from './GraphEvent'
|
| const selected = ref(null)
| const lf = ref()
| const theme = ref({})
| const lastLines = ref<any[]>([])
| /**
| * Name,value
| */
| const flowMap: Map<string, any> = new Map()
| /**
| * id,value
| */
| const flowNodeMap: Map<string, any> = new Map()
| const xmlData = ref(null)
| /**
| * 保存时配置
| */
| const flowBaseConfig = ref<{
| type?: number
| version?: number
| content?: string
| }>({})
| const edgeMap = new Map()
| const nodeMap = new Map()
| const flowConfig: {
| type?: number
| version?: number
| } = {}
| export const baseStore: any = {
| lf,
| theme,
| xmlData,
| flowNodeMap,
| edgeMap,
| flowMap,
| selected,
| lastLines,
| flowBaseConfig,
| nodeMap,
| flowConfig,
| }
| const graphEvent = new GraphEvent(baseStore)
| const store = {
| ...baseStore,
| graphEvent,
| } as Store
|
| export const resetStore = () => {
| flowMap.clear()
| flowNodeMap.clear()
| flowBaseConfig.value = {}
| xmlData.value = null
| lastLines.value = []
| edgeMap.clear()
| nodeMap.clear()
| }
| export const createStore = () => {
| return store
| }
|
| export const injectStore = (key?: StoreKey) => {
| if (key) {
| return store[key]
| }
| return store as Store
| }
|
| export const emitter = mitt()
|
|