| 
					
				 | 
			
			
				@@ -6,6 +6,7 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   parseNodesQueryParams, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   getUniqueNodesIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   getRelatedNodesIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getRandomIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   buildTree 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from '@/store/utils.js' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -13,6 +14,7 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   state: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     trees: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    randomNodes: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     nodebook: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // LibraryOptions options 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -89,6 +91,10 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       state.nodeDepartId = id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'SET_RANDOM_NODES' (state, ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      state.randomNodes = ids 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     'SET_SEARCH' (state, str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       state.search = str 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -114,14 +120,8 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async 'INIT_LIBRARY_MAP' ({ state, commit, dispatch }) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const departIds = await dispatch('INIT_LIBRARY') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const ids = departIds.slice(0, 3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const departNodes = await dispatch('GET_NODES', { ids, dataLevel: 'partial' }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const relatedIds = getRelatedNodesIds(departNodes, ids) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const relatedNodes = await dispatch('GET_NODES', { ids: relatedIds, dataLevel: 'partial' }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const nodes = [...departNodes, ...relatedNodes] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      commit('SET_TAGS_OPTIONS', nodes) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return nodes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await dispatch('INIT_LIBRARY') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return dispatch('ROLL_RANDOM_NODES') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async 'INIT_LIBRARY_LIST' ({ state, commit, dispatch }) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -186,6 +186,17 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return getters.nodeTree 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async 'ROLL_RANDOM_NODES' ({ state, rootState, commit, dispatch }) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      commit('SET_RANDOM_NODES', undefined) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const ids = getRandomIds(rootState.ids.depart) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const departNodes = await dispatch('GET_NODES', { ids, dataLevel: 'partial' }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const relatedIds = getRelatedNodesIds(departNodes, ids) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const relatedNodes = await dispatch('GET_NODES', { ids: relatedIds, dataLevel: 'partial' }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const nodes = [...departNodes, ...relatedNodes] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      commit('SET_RANDOM_NODES', [...ids, ...relatedIds]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      commit('SET_TAGS_OPTIONS', nodes) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     'UPDATE_QUERY_MODE' (store, mode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (router.currentRoute.query.mode === mode) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       router.push({ query: { mode } }) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -255,8 +266,14 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // LibraryMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    randomNodes: (state, getters, rootState) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (state.randomNodes === undefined) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return state.randomNodes.map(id => rootState.nodes[id]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // LibraryTree 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    nodeTree: (state, rootState) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nodeTree: state => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return state.trees[state.nodeDepartId] || { nodes: [], links: [] } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |