浏览代码

no message

DESKTOP-70VPDLK\Administrator 2 月之前
父节点
当前提交
ba5093700d
共有 10 个文件被更改,包括 815 次插入421 次删除
  1. 3 2
      .env.dev.js
  2. 1 0
      .env.prod.js
  3. 1 0
      api/valuation.js
  4. 1 1
      components/en-utils/en-tab/en-tab.vue
  5. 20 13
      pages.json
  6. 7 1
      pages/index/module/popup-module.vue
  7. 166 0
      pages/task/index.vue
  8. 196 0
      pages/task/loan-item.vue
  9. 18 2
      pages/task/task.vue
  10. 402 402
      yarn.lock

+ 3 - 2
.env.dev.js

@@ -1,6 +1,7 @@
 const config = {
-  baseUrl: 'https://asset-api.geltsch.cn',
-  goUrl: 'http://127.0.0.1:8001',
+  // baseUrl: 'https://asset-api.geltsch.cn',
+  baseUrl: 'http://127.0.0.1:8002',
+  goUrl: 'http://127.0.0.1:8002',
   appName: '开发环境'
 }
 module.exports = config;

+ 1 - 0
.env.prod.js

@@ -1,4 +1,5 @@
 const config = {
+    // baseUrl: 'https://asset-api.geltsch.cn',
     baseUrl: 'https://asset-api.geltsch.cn',
     goUrl: 'https://api.wealfavor.cn',
     appName:'正式环境'

+ 1 - 0
api/valuation.js

@@ -8,3 +8,4 @@ export const addValuationModel = (data) => request(newsUrl + 'add', 'post', { ..
 export const publishValuationModel = (data) => request(newsUrl + 'publish', 'post', { ...data },false)
 export const getValuationOption = (data) => request(newsUrl + 'option', 'post', { ...data },false)
 export const predictProperty = (data) => request(newsUrl + 'predict', 'post', { ...data },false)
+export const getPredictList = (data) => request(newsUrl + 'predict-list', 'get', { ...data },false)

+ 1 - 1
components/en-utils/en-tab/en-tab.vue

@@ -62,7 +62,7 @@
 					},
 					{
 						name: '任务',
-						path: '/pages/task/task',
+						path: '/pages/task/index',
 						iconPath: 'task-default',
 						selectedIconPath: 'task-select',
 					},

+ 20 - 13
pages.json

@@ -7,12 +7,12 @@
         "disableScroll": true
       }
     },
-	{
-	  "path": "pages/loan/loan",
-	  "style": {
-	    "navigationBarTitleText": ""
-	  }
-	},
+    {
+      "path": "pages/loan/loan",
+      "style": {
+        "navigationBarTitleText": ""
+      }
+    },
     {
       "path": "pages/index/index",
       "style": {
@@ -72,6 +72,13 @@
       "style": {
         "navigationBarTitleText": ""
       }
+    },
+    {
+      "path": "pages/task/index",
+      "style": {
+        "navigationBarTitleText": "",
+        "enablePullDownRefresh": false
+      }
     }
   ],
   "subPackages": [
@@ -227,7 +234,7 @@
         "text": ""
       },
       {
-        "pagePath": "pages/task/task",
+        "pagePath": "pages/task/index",
         "text": ""
       },
       {
@@ -259,17 +266,17 @@
         "name": "转换工具",
         "path": "/pages/task/task",
         "query": ""
-      }
+      },
       // {
       //   "name": "审核",
       //   "path": "/pages/login/await-audit",
       //   "query": "productId=1"
       // },
-      // {
-      //   "name": "添加任务",
-      //   "path": "/page_task/information/information",
-      //   "query": "productId=1"
-      // },
+       {
+         "name": "评估记录",
+         "path": "/pages/task/index",
+         "query": "productId=1"
+       }
       // {
       //   "name": "任务详情",
       //   "path": "/page_task/task_details/task_details",

+ 7 - 1
pages/index/module/popup-module.vue

@@ -104,6 +104,8 @@
 
           </view>
         </view>
+
+        <EnButton class="m-b50" :is_fixed="false" :text="'评估'" @onSubmit="onSubmit"></EnButton>
       </view>
 
 		</view>
@@ -111,7 +113,6 @@
 </template>
 
 <script>
-	import {predictProperty} from "@/api/valuation";
 
   export default {
 		components: {},
@@ -131,6 +132,11 @@
 		onLoad(data) {},
 		mounted() {},
 		methods: {
+      onSubmit(){
+        uni.switchTab({
+          url: '/pages/task/index'
+        })
+      },
 			openPop(colorType,data) {
         if (colorType !==undefined){
           this.colorType=colorType

+ 166 - 0
pages/task/index.vue

@@ -0,0 +1,166 @@
+<template>
+  <view class="total-page page_env-20 page-box sys-list-background-color">
+    <view class="task-bg">
+      <Nav :title="'资产评估'" :genre="1" :back="false" is_fixed></Nav>
+      <view>
+        <Search :placeholder="'请输入资产名称'" @setSearch="setSearch"></Search>
+        <view class="page-box-bg-fff m-lr20 r-20">
+          <z-tabs ref="tabs" :list="tabsList"
+                  :active-style="{color:'#10B261',fontWeight:'bold',fontSize:'30rpx'}"
+                  :bar-style="{background:'#10B261'}" :inactive-style="{fontWeight:'bold',fontSize:'28rpx'}"
+                  :current="listData.status" :bar-animate-mode="'worm'" @change="tabsChange" />
+        </view>
+      </view>
+      <EnScroll ref="scroll" :navHeight="100" is_tabHeight @onRefresh="onRefresh" @onScrollBottom="onScrollBottom">
+        <LoanItem :task-list="list" @onCalculate="onCalculate"></LoanItem>
+      </EnScroll>
+      <view class="add-box" @click="addLaw">
+        新增查询
+      </view>
+      <!-- <en-button :is_both="0" :text="'新建查询'"  @onSubmit="addLaw">  </en-button> -->
+      <Tab class="tabs_height" :tab-index="2"></Tab>
+    </view>
+
+  </view>
+
+</template>
+<script>
+import LoanItem from "./loan-item.vue";
+import {getPredictList} from "@/api/valuation";
+
+export default {
+  components: {
+    LoanItem
+  },
+  data() {
+    return {
+      tabsList: [{
+        name: '全部',
+        disabled: false
+      }, {
+        name: '待认证',
+        dot_color: 'red',
+        is_dot: false,
+        disabled: false
+      }, {
+        name: '查询中',
+        dot_color: 'red',
+        is_dot: false,
+        disabled: false
+      }, {
+        name: '已完成',
+        dot_color: 'red',
+        is_dot: false,
+        disabled: false
+      }],
+      list: [],
+      listData: {
+        status: 0,
+        page: 1,
+        total: 100,
+        limit: 20,
+        id_number: ''
+      }
+    }
+  },
+  watch: {},
+  onShow() {
+    // this.startList()
+  },
+  mounted() {
+    this.startList()
+
+  },
+  methods: {
+    startList() {
+      this.listData = {
+        status: 0,
+        page: 1,
+        total: 100,
+        limit: 20,
+        id_number: ''
+      }
+      this.list = []
+      this.getPredictList()
+    },
+    getPredictList() {
+      if (this.isAjax || (this.listData.total <= this.list.length)) {
+        return;
+      }
+      getPredictList(this.listData).then((res) => {
+        if (res.code === 0) {
+          res.data.items.forEach(item=>{
+            item.data=JSON.parse(item.data)
+            this.list.push(item)
+          })
+          this.listData.total = res.data.total
+          ++this.listData.page
+        }
+      })
+    },
+    addLaw() {
+      console.log('aaaaaaaaaaaaaaaaaaaaaaaaaa')
+      uni.navigateTo({
+        url: "/pages/task/task"
+      })
+    },
+    setSearch(text) {
+
+    },
+    onCalculate(data) {
+
+    },
+    onClose() {
+
+    },
+    tabsChange(index) {
+      if (index && this.listData.status != index) {
+        this.listData.status = index;
+        this.listData.page = 1
+        this.list = []
+        this.lawOrderList()
+      }
+    },
+    onRefresh() {
+      if (this.list.length < this.listData.total) {
+        this.listData.page++
+        this.lawOrderList()
+      }
+      setTimeout(() => {
+        this.$refs.scroll.onEndPulling()
+      }, 200)
+      console.log("下拉刷新");
+    },
+    // 滚动到底部
+    onScrollBottom() {
+      uni.showLoading({
+        title: '数据加载中'
+      })
+      setTimeout(() => {
+        uni.showToast({
+          title: '加载完成',
+          icon: 'none'
+        })
+      }, 1000)
+      console.log("到底部了");
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+.add-box {
+  width: 100rpx;
+  height: 100rpx;
+  background: #10B261;
+  border-radius: 50%;
+  position: fixed;
+  bottom: 300rpx;
+  right: 10rpx;
+  color: #fff;
+  font-size: 27rpx;
+  text-align: center;
+  font-weight: bold;
+  padding: 12rpx;
+  box-sizing: border-box;
+}
+</style>

+ 196 - 0
pages/task/loan-item.vue

@@ -0,0 +1,196 @@
+<template>
+	<view class="p-t20">
+		<view class="task-body m-lr20  animate__animated animate__fadeIn" v-if="taskList.length>0">
+			<view class="row-c page-box-bg-fff m-b20 r-30 box-shadow-197 loan-item" v-for="(item,index) in taskList"
+				:key="index" @click="goItem(item.id)">
+				<view class="main_string" :class="item.model_type === 1?'bga-1':'bga-2'"></view>
+				<view class="row-c flex p-30 p-t60">
+					<image v-if="item.model_type === 2" class="wh-80 r-circle" src="@/static/img/index/gs.png" mode=""></image>
+					<image v-else class="wh-80 r-circle" src="@/static/img/index/gr.png" mode=""></image>
+					<view class="flex m-l20">
+						<view class="row-justify-sb center flex">
+							<text class="text-color-333 sys-weight-600" v-if="item.model_type===1">住宅评估</text>
+							<text class="text-color-333 sys-weight-600" v-else-if="item.model_type===2">公建评估</text>
+							<text class="text-color-333 sys-weight-600" v-else-if="item.model_type===3">土地评估</text>
+							<text class="text-color-333 sys-weight-600" v-else>工业用房评估</text>
+							<view class="row-c line-40" @click.stop="makCall(item.phone)">
+								<text class="size-26 text-color-333">{{item.name}}</text>
+								<image class="wh-30 m-l16"
+									src="https://wealfavor-1257406827.cos.ap-beijing.myqcloud.com/new-xcx/task/task-phone.png"
+									mode=""></image>
+							</view>
+						</view>
+						<view class="p-tb14 p-lr30 m-tb20 r-100 row-justify-sb center size-24 text-color-12 sys-from-background-color sys-weight-600"
+							style="line-height: 40rpx;">
+							<view class="">
+								<view class="fc-9 sys-size-24">
+									总价
+								</view>
+								<text class="size-28 text-color-E21">¥{{item.total_price}}</text>
+							</view>
+							<view class="">
+								<view class="fc-9 sys-size-24">
+									建筑面
+								</view>
+								<text class="size-24 text-color-333">{{item.data.area}}</text>
+							</view>
+							<view class="">
+								<view class="fc-9 sys-size-24">
+									评估单价
+								</view>
+								<text class="color-FF730E">¥{{item.unit_price}}</text>
+							</view>
+						</view>
+						<view class="sys-size-24 fc-9">
+							{{item.updated_at}}
+						</view>
+					</view>
+					<view class="accomplish-text" >
+            已完成
+					</view>
+				</view>
+			</view>
+			<view class="placeholder sys-list-background-color" v-if="is_bottom && taskList.length"></view>
+		</view>
+		<en-blank v-else></en-blank>
+	</view>
+</template>
+
+<script>
+	import EnButton from "@/components/en-utils/en-button/en-button.vue";
+	import tools from "@/service/tools";
+	import EnBlank from "@/components/en-utils/en-blank/en-blank.vue";
+	import ClientType from "@/pages/loan/components/clientType.vue";
+
+	export default {
+		components: {
+			ClientType,
+			EnBlank,
+			EnButton
+		},
+		props: {
+			type: {
+				type: Number,
+				default: 1
+			},
+			taskList: {
+				type: Array,
+				default: () => [1]
+			},
+			iconStatus: {
+				type: Number,
+				default: 1
+			},
+			leftImgStatus: {
+				type: Number,
+				default: 0
+			},
+			opacity: {
+				type: Number,
+				default: 0
+			},
+			back: {
+				type: Boolean,
+				default: false
+			},
+			is_bottom: {
+				type: Boolean,
+				default: false
+			},
+
+		},
+		data() {
+			return {
+				leftImg: ['task-house', 'task-business', 'task-repayment'],
+				iconList: ['task-audit', 'task-do', 'task-stay'],
+				lineColor: ['#DEF4FD', '#FFEEE6', '#FFEEE6', '#FFEEE6'],
+				isAjax: false,
+				item: {}
+			}
+		},
+		methods: {
+			goItem(id) {
+				uni.navigateTo({
+					url: '/page_law/order-detail/index?id=' + id
+				});
+			},
+			moveHandle() {
+				return false
+			},
+			onCalculate(item, type) {
+				this.$emit('onCalculate', {
+					'item': item,
+					'type': type
+				})
+			},
+			makCall(phone) {
+				tools.makingCall(phone)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.en_button {
+		border: none;
+	}
+
+	.task-body {
+		height: 100%;
+	}
+
+	.left_button {
+		height: 56rpx;
+		color: #008FD6;
+		line-height: 56rpx;
+		background: #FFFFFF;
+		border: 1rpx solid #008FD6;
+		border-radius: 100rpx;
+	}
+
+	.right_button {}
+
+	.placeholder {
+		height: 40rpx;
+	}
+
+	.main_string {
+		width: 6rpx;
+		height: 60rpx;
+		border-radius: 100rpx;
+	}
+
+	.loan-item {
+		position: relative;
+	}
+
+	.accomplish-text {
+		font-size: 24rpx;
+		color: #00994D;
+		background-color: #e7f7ef;
+		padding: 6rpx 30rpx;
+		line-height: 30rpx;
+		border-radius: 0 30rpx 0 30rpx;
+		position: absolute;
+		right: 0;
+		top: 0;
+	}
+
+	.unfinished {
+		color: #F64646;
+		background-color: #feeded;
+	}
+
+	button::after {
+		border: none;
+	}
+	.fc-9{
+		color: #999;
+	}
+	.bga-1{
+		background: #37B9FA;
+	}
+	.bga-2{
+		background: #FA5E43;
+	}
+</style>

+ 18 - 2
pages/task/task.vue

@@ -32,7 +32,7 @@
 				<EnRadio v-model="propertyData.is_seizured" label="是否查封" :list="statusOption"> </EnRadio>
 			</view>
 			</view>
-          <view class="m-t20 m-lr30 text-color-12">
+      <view class="m-t20 m-lr30 text-color-12">
 			<view class="sys-background-fff r-20 m-t20 p-lr30" v-if="propertyData.modelType*1===3">
 				<en-select v-model="propertyData.level_id" :local-data="levelOption" :label="'土地等级'"
 					placeholder="请选择土地等级"> </en-select>
@@ -52,10 +52,26 @@
 				<en-input v-model="propertyData.height_max" :label="'最大高度'" placeholder="请输入最大建筑高度"> </en-input>
 			</view>
 			</view>
+      <view class="m-t20 m-lr30 text-color-12">
+      <view class="sys-background-fff r-20 m-t20 p-lr30">
+        <view class="align-items-center p-tb20">
+          <view class="left-w">
+            支付方式
+          </view>
+          <view class="align-items-center" >
+            <uni-icons class="mr-10" type="checkbox-filled" size="20" color='#0FB160'></uni-icons>
+            <view class="size-26">
+              余额支付(¥:10.00)
+            </view>
+          </view>
+        </view>
+      </view>
+      </view>
 		</view>
+
 		<EnButton class="m-b50" :is_fixed="false" :text="'评估'" @onSubmit="onSubmit"></EnButton>
     <popupModuleVue ref="popupModuleRef"></popupModuleVue>
-    <Tab class="tabs_height" :tab-index="2"></Tab>
+
 	</view>
 </template>
 

+ 402 - 402
yarn.lock

@@ -3,515 +3,515 @@
 
 
 "@amap/amap-jsapi-loader@^1.0.1":
-  "integrity" "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw=="
-  "resolved" "https://registry.npmjs.org/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz"
-  "version" "1.0.1"
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz"
+  integrity sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==
 
 "@babel/parser@^7.18.4":
-  "integrity" "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw=="
-  "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz"
-  "version" "7.19.0"
+  version "7.19.0"
+  resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz"
+  integrity sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==
 
 "@babel/runtime@^7.17.8":
-  "integrity" "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ=="
-  "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz"
-  "version" "7.28.4"
+  version "7.28.4"
+  resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz"
+  integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==
 
 "@dimforge/rapier3d-compat@~0.12.0":
-  "integrity" "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow=="
-  "resolved" "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz"
-  "version" "0.12.0"
+  version "0.12.0"
+  resolved "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz"
+  integrity sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==
 
 "@tweenjs/tween.js@~23.1.3":
-  "integrity" "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA=="
-  "resolved" "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz"
-  "version" "23.1.3"
+  version "23.1.3"
+  resolved "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz"
+  integrity sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==
 
 "@tweenjs/tween.js@18 - 25":
-  "integrity" "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A=="
-  "resolved" "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz"
-  "version" "25.0.0"
+  version "25.0.0"
+  resolved "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz"
+  integrity sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==
 
 "@types/html5plus@^1.0.2":
-  "integrity" "sha512-OklP5lrmLq8/6TUOLgWc0LndUVvAiTWX5dnyoCFhIUtFW9opWsnCtG/UxPgeuC28Rv2XNbFfft/hEEI39P/4Ag=="
-  "resolved" "https://registry.npmjs.org/@types/html5plus/-/html5plus-1.0.2.tgz"
-  "version" "1.0.2"
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/@types/html5plus/-/html5plus-1.0.2.tgz"
+  integrity sha512-OklP5lrmLq8/6TUOLgWc0LndUVvAiTWX5dnyoCFhIUtFW9opWsnCtG/UxPgeuC28Rv2XNbFfft/hEEI39P/4Ag==
 
 "@types/stats.js@*":
-  "integrity" "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA=="
-  "resolved" "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz"
-  "version" "0.17.4"
+  version "0.17.4"
+  resolved "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz"
+  integrity sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==
 
 "@types/three@^0.181.0":
-  "integrity" "sha512-MLF1ks8yRM2k71D7RprFpDb9DOX0p22DbdPqT/uAkc6AtQXjxWCVDjCy23G9t1o8HcQPk7woD2NIyiaWcWPYmA=="
-  "resolved" "https://registry.npmjs.org/@types/three/-/three-0.181.0.tgz"
-  "version" "0.181.0"
+  version "0.181.0"
+  resolved "https://registry.npmjs.org/@types/three/-/three-0.181.0.tgz"
+  integrity sha512-MLF1ks8yRM2k71D7RprFpDb9DOX0p22DbdPqT/uAkc6AtQXjxWCVDjCy23G9t1o8HcQPk7woD2NIyiaWcWPYmA==
   dependencies:
     "@dimforge/rapier3d-compat" "~0.12.0"
     "@tweenjs/tween.js" "~23.1.3"
     "@types/stats.js" "*"
     "@types/webxr" "*"
     "@webgpu/types" "*"
-    "fflate" "~0.8.2"
-    "meshoptimizer" "~0.22.0"
+    fflate "~0.8.2"
+    meshoptimizer "~0.22.0"
 
 "@types/uni-app@^1.4.4":
-  "integrity" "sha512-ZTXnrCTblZyoLIoKbTv1Whz1nxrTcM7vg0qGXzDpXP8m9MqdjKt48N3FffQT1IsJWNkxbvJ1Eg5UHDaq+k+oBQ=="
-  "resolved" "https://registry.npmjs.org/@types/uni-app/-/uni-app-1.4.4.tgz"
-  "version" "1.4.4"
+  version "1.4.4"
+  resolved "https://registry.npmjs.org/@types/uni-app/-/uni-app-1.4.4.tgz"
+  integrity sha512-ZTXnrCTblZyoLIoKbTv1Whz1nxrTcM7vg0qGXzDpXP8m9MqdjKt48N3FffQT1IsJWNkxbvJ1Eg5UHDaq+k+oBQ==
   dependencies:
-    "vue" "^2.6.8"
+    vue "^2.6.8"
 
 "@types/webxr@*":
-  "integrity" "sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg=="
-  "resolved" "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.24.tgz"
-  "version" "0.5.24"
+  version "0.5.24"
+  resolved "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.24.tgz"
+  integrity sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==
 
 "@vue/compiler-sfc@2.7.10":
-  "integrity" "sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q=="
-  "resolved" "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.10.tgz"
-  "version" "2.7.10"
+  version "2.7.10"
+  resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.10.tgz"
+  integrity sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q==
   dependencies:
     "@babel/parser" "^7.18.4"
-    "postcss" "^8.4.14"
-    "source-map" "^0.6.1"
+    postcss "^8.4.14"
+    source-map "^0.6.1"
 
 "@webgpu/types@*":
-  "integrity" "sha512-YA2hLrwLpDsRueNDXIMqN9NTzD6bCDkuXbOSe0heS+f8YE8usA6Gbv1prj81pzVHrbaAma7zObnIC+I6/sXJgA=="
-  "resolved" "https://registry.npmjs.org/@webgpu/types/-/types-0.1.66.tgz"
-  "version" "0.1.66"
+  version "0.1.66"
+  resolved "https://registry.npmjs.org/@webgpu/types/-/types-0.1.66.tgz"
+  integrity sha512-YA2hLrwLpDsRueNDXIMqN9NTzD6bCDkuXbOSe0heS+f8YE8usA6Gbv1prj81pzVHrbaAma7zObnIC+I6/sXJgA==
 
 "3d-force-graph@^1.79.0":
-  "integrity" "sha512-0RUNcfiH12f93loY/iS4wShzhXzdLLN4futvFnintF7eP30DjX+nAdLDAGOZwSflhijQyVwnGtpczNjFrDLUzQ=="
-  "resolved" "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.79.0.tgz"
-  "version" "1.79.0"
+  version "1.79.0"
+  resolved "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.79.0.tgz"
+  integrity sha512-0RUNcfiH12f93loY/iS4wShzhXzdLLN4futvFnintF7eP30DjX+nAdLDAGOZwSflhijQyVwnGtpczNjFrDLUzQ==
   dependencies:
-    "accessor-fn" "1"
-    "kapsule" "^1.16"
-    "three" ">=0.118 <1"
-    "three-forcegraph" "1"
-    "three-render-objects" "^1.35"
-
-"accessor-fn@1":
-  "integrity" "sha512-rkAofCwe/FvYFUlMB0v0gWmhqtfAtV1IUkdPbfhTUyYniu5LrC0A0UJkTH0Jv3S8SvwkmfuAlY+mQIJATdocMA=="
-  "resolved" "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.5.3.tgz"
-  "version" "1.5.3"
-
-"animate.css@^4.1.1":
-  "integrity" "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ=="
-  "resolved" "https://registry.npmmirror.com/animate.css/-/animate.css-4.1.1.tgz"
-  "version" "4.1.1"
+    accessor-fn "1"
+    kapsule "^1.16"
+    three ">=0.118 <1"
+    three-forcegraph "1"
+    three-render-objects "^1.35"
+
+accessor-fn@1:
+  version "1.5.3"
+  resolved "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.5.3.tgz"
+  integrity sha512-rkAofCwe/FvYFUlMB0v0gWmhqtfAtV1IUkdPbfhTUyYniu5LrC0A0UJkTH0Jv3S8SvwkmfuAlY+mQIJATdocMA==
+
+animate.css@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.npmmirror.com/animate.css/-/animate.css-4.1.1.tgz"
+  integrity sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==
 
 "bezier-js@3 - 6":
-  "integrity" "sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg=="
-  "resolved" "https://registry.npmjs.org/bezier-js/-/bezier-js-6.1.4.tgz"
-  "version" "6.1.4"
-
-"canvas-color-tracker@^1.3":
-  "integrity" "sha512-ryQkDX26yJ3CXzb3hxUVNlg1NKE4REc5crLBq661Nxzr8TNd236SaEf2ffYLXyI5tSABSeguHLqcVq4vf9L3Zg=="
-  "resolved" "https://registry.npmjs.org/canvas-color-tracker/-/canvas-color-tracker-1.3.2.tgz"
-  "version" "1.3.2"
+  version "6.1.4"
+  resolved "https://registry.npmjs.org/bezier-js/-/bezier-js-6.1.4.tgz"
+  integrity sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==
+
+canvas-color-tracker@^1.3:
+  version "1.3.2"
+  resolved "https://registry.npmjs.org/canvas-color-tracker/-/canvas-color-tracker-1.3.2.tgz"
+  integrity sha512-ryQkDX26yJ3CXzb3hxUVNlg1NKE4REc5crLBq661Nxzr8TNd236SaEf2ffYLXyI5tSABSeguHLqcVq4vf9L3Zg==
   dependencies:
-    "tinycolor2" "^1.6.0"
+    tinycolor2 "^1.6.0"
 
-"crypto-js@^4.1.1":
-  "integrity" "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
-  "resolved" "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz"
-  "version" "4.1.1"
+crypto-js@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz"
+  integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==
 
-"csstype@^3.1.0":
-  "integrity" "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
-  "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz"
-  "version" "3.1.0"
+csstype@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz"
+  integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==
 
 "d3-array@1 - 3", "d3-array@2 - 3", "d3-array@2.10.0 - 3":
-  "integrity" "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg=="
-  "resolved" "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz"
-  "version" "3.2.4"
+  version "3.2.4"
+  resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz"
+  integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
   dependencies:
-    "internmap" "1 - 2"
+    internmap "1 - 2"
 
-"d3-binarytree@1":
-  "integrity" "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw=="
-  "resolved" "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz"
-  "version" "1.0.2"
+d3-binarytree@1:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz"
+  integrity sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==
 
 "d3-color@1 - 3":
-  "integrity" "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="
-  "resolved" "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz"
-  "version" "3.1.0"
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz"
+  integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
 
 "d3-dispatch@1 - 3":
-  "integrity" "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg=="
-  "resolved" "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz"
-  "version" "3.0.1"
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz"
+  integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==
 
 "d3-drag@2 - 3":
-  "integrity" "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg=="
-  "resolved" "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz"
-  "version" "3.0.0"
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz"
+  integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==
   dependencies:
-    "d3-dispatch" "1 - 3"
-    "d3-selection" "3"
+    d3-dispatch "1 - 3"
+    d3-selection "3"
 
 "d3-ease@1 - 3":
-  "integrity" "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w=="
-  "resolved" "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz"
-  "version" "3.0.1"
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz"
+  integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
 
 "d3-force-3d@2 - 3":
-  "integrity" "sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA=="
-  "resolved" "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.6.tgz"
-  "version" "3.0.6"
+  version "3.0.6"
+  resolved "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.6.tgz"
+  integrity sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA==
   dependencies:
-    "d3-binarytree" "1"
-    "d3-dispatch" "1 - 3"
-    "d3-octree" "1"
-    "d3-quadtree" "1 - 3"
-    "d3-timer" "1 - 3"
+    d3-binarytree "1"
+    d3-dispatch "1 - 3"
+    d3-octree "1"
+    d3-quadtree "1 - 3"
+    d3-timer "1 - 3"
 
 "d3-format@1 - 3":
-  "integrity" "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA=="
-  "resolved" "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz"
-  "version" "3.1.0"
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz"
+  integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==
 
 "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3":
-  "integrity" "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g=="
-  "resolved" "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz"
-  "version" "3.0.1"
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz"
+  integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
   dependencies:
-    "d3-color" "1 - 3"
+    d3-color "1 - 3"
 
-"d3-octree@1":
-  "integrity" "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A=="
-  "resolved" "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz"
-  "version" "1.1.0"
+d3-octree@1:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz"
+  integrity sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==
 
 "d3-quadtree@1 - 3":
-  "integrity" "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw=="
-  "resolved" "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz"
-  "version" "3.0.1"
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz"
+  integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==
 
 "d3-scale-chromatic@1 - 3":
-  "integrity" "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ=="
-  "resolved" "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz"
-  "version" "3.1.0"
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz"
+  integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==
   dependencies:
-    "d3-color" "1 - 3"
-    "d3-interpolate" "1 - 3"
+    d3-color "1 - 3"
+    d3-interpolate "1 - 3"
 
 "d3-scale@1 - 4":
-  "integrity" "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ=="
-  "resolved" "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz"
-  "version" "4.0.2"
+  version "4.0.2"
+  resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz"
+  integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
   dependencies:
-    "d3-array" "2.10.0 - 3"
-    "d3-format" "1 - 3"
-    "d3-interpolate" "1.2.0 - 3"
-    "d3-time" "2.1.1 - 3"
-    "d3-time-format" "2 - 4"
+    d3-array "2.10.0 - 3"
+    d3-format "1 - 3"
+    d3-interpolate "1.2.0 - 3"
+    d3-time "2.1.1 - 3"
+    d3-time-format "2 - 4"
 
-"d3-selection@2 - 3", "d3-selection@3":
-  "integrity" "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="
-  "resolved" "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz"
-  "version" "3.0.0"
+"d3-selection@2 - 3", d3-selection@3:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz"
+  integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
 
 "d3-time-format@2 - 4":
-  "integrity" "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg=="
-  "resolved" "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz"
-  "version" "4.1.0"
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz"
+  integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==
   dependencies:
-    "d3-time" "1 - 3"
+    d3-time "1 - 3"
 
 "d3-time@1 - 3", "d3-time@2.1.1 - 3":
-  "integrity" "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q=="
-  "resolved" "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz"
-  "version" "3.1.0"
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz"
+  integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
   dependencies:
-    "d3-array" "2 - 3"
+    d3-array "2 - 3"
 
 "d3-timer@1 - 3":
-  "integrity" "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="
-  "resolved" "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz"
-  "version" "3.0.1"
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz"
+  integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
 
 "d3-transition@2 - 3":
-  "integrity" "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w=="
-  "resolved" "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz"
-  "version" "3.0.1"
+  version "3.0.1"
+  resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz"
+  integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==
   dependencies:
-    "d3-color" "1 - 3"
-    "d3-dispatch" "1 - 3"
-    "d3-ease" "1 - 3"
-    "d3-interpolate" "1 - 3"
-    "d3-timer" "1 - 3"
+    d3-color "1 - 3"
+    d3-dispatch "1 - 3"
+    d3-ease "1 - 3"
+    d3-interpolate "1 - 3"
+    d3-timer "1 - 3"
 
 "d3-zoom@2 - 3":
-  "integrity" "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw=="
-  "resolved" "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz"
-  "version" "3.0.0"
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz"
+  integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==
   dependencies:
-    "d3-dispatch" "1 - 3"
-    "d3-drag" "2 - 3"
-    "d3-interpolate" "1 - 3"
-    "d3-selection" "2 - 3"
-    "d3-transition" "2 - 3"
-
-"data-bind-mapper@1":
-  "integrity" "sha512-QmU3lyEnbENQPo0M1F9BMu4s6cqNNp8iJA+b/HP2sSb7pf3dxwF3+EP1eO69rwBfH9kFJ1apmzrtogAmVt2/Xw=="
-  "resolved" "https://registry.npmjs.org/data-bind-mapper/-/data-bind-mapper-1.0.3.tgz"
-  "version" "1.0.3"
+    d3-dispatch "1 - 3"
+    d3-drag "2 - 3"
+    d3-interpolate "1 - 3"
+    d3-selection "2 - 3"
+    d3-transition "2 - 3"
+
+data-bind-mapper@1:
+  version "1.0.3"
+  resolved "https://registry.npmjs.org/data-bind-mapper/-/data-bind-mapper-1.0.3.tgz"
+  integrity sha512-QmU3lyEnbENQPo0M1F9BMu4s6cqNNp8iJA+b/HP2sSb7pf3dxwF3+EP1eO69rwBfH9kFJ1apmzrtogAmVt2/Xw==
   dependencies:
-    "accessor-fn" "1"
+    accessor-fn "1"
 
-"echarts@^6.0.0":
-  "integrity" "sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ=="
-  "resolved" "https://registry.npmjs.org/echarts/-/echarts-6.0.0.tgz"
-  "version" "6.0.0"
+echarts@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/echarts/-/echarts-6.0.0.tgz"
+  integrity sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==
   dependencies:
-    "tslib" "2.3.0"
-    "zrender" "6.0.0"
-
-"fflate@~0.8.2":
-  "integrity" "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="
-  "resolved" "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz"
-  "version" "0.8.2"
-
-"float-tooltip@^1.7":
-  "integrity" "sha512-/kXzuDnnBqyyWyhDMH7+PfP8J/oXiAavGzcRxASOMRHFuReDtofizLLJsf7nnDLAfEaMW4pVWaXrAjtnglpEkg=="
-  "resolved" "https://registry.npmjs.org/float-tooltip/-/float-tooltip-1.7.5.tgz"
-  "version" "1.7.5"
+    tslib "2.3.0"
+    zrender "6.0.0"
+
+fflate@~0.8.2:
+  version "0.8.2"
+  resolved "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz"
+  integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==
+
+float-tooltip@^1.7:
+  version "1.7.5"
+  resolved "https://registry.npmjs.org/float-tooltip/-/float-tooltip-1.7.5.tgz"
+  integrity sha512-/kXzuDnnBqyyWyhDMH7+PfP8J/oXiAavGzcRxASOMRHFuReDtofizLLJsf7nnDLAfEaMW4pVWaXrAjtnglpEkg==
   dependencies:
-    "d3-selection" "2 - 3"
-    "kapsule" "^1.16"
-    "preact" "10"
-
-"force-graph@^1.51.0":
-  "integrity" "sha512-aTnihCmiMA0ItLJLCbrQYS9mzriopW24goFPgUnKAAmAlPogTSmFWqoBPMXzIfPb7bs04Hur5zEI4WYgLW3Sig=="
-  "resolved" "https://registry.npmjs.org/force-graph/-/force-graph-1.51.0.tgz"
-  "version" "1.51.0"
+    d3-selection "2 - 3"
+    kapsule "^1.16"
+    preact "10"
+
+force-graph@^1.51.0:
+  version "1.51.0"
+  resolved "https://registry.npmjs.org/force-graph/-/force-graph-1.51.0.tgz"
+  integrity sha512-aTnihCmiMA0ItLJLCbrQYS9mzriopW24goFPgUnKAAmAlPogTSmFWqoBPMXzIfPb7bs04Hur5zEI4WYgLW3Sig==
   dependencies:
     "@tweenjs/tween.js" "18 - 25"
-    "accessor-fn" "1"
-    "bezier-js" "3 - 6"
-    "canvas-color-tracker" "^1.3"
-    "d3-array" "1 - 3"
-    "d3-drag" "2 - 3"
-    "d3-force-3d" "2 - 3"
-    "d3-scale" "1 - 4"
-    "d3-scale-chromatic" "1 - 3"
-    "d3-selection" "2 - 3"
-    "d3-zoom" "2 - 3"
-    "float-tooltip" "^1.7"
-    "index-array-by" "1"
-    "kapsule" "^1.16"
-    "lodash-es" "4"
-
-"index-array-by@1":
-  "integrity" "sha512-SP23P27OUKzXWEC/TOyWlwLviofQkCSCKONnc62eItjp69yCZZPqDQtr3Pw5gJDnPeUMqExmKydNZaJO0FU9pw=="
-  "resolved" "https://registry.npmjs.org/index-array-by/-/index-array-by-1.4.2.tgz"
-  "version" "1.4.2"
+    accessor-fn "1"
+    bezier-js "3 - 6"
+    canvas-color-tracker "^1.3"
+    d3-array "1 - 3"
+    d3-drag "2 - 3"
+    d3-force-3d "2 - 3"
+    d3-scale "1 - 4"
+    d3-scale-chromatic "1 - 3"
+    d3-selection "2 - 3"
+    d3-zoom "2 - 3"
+    float-tooltip "^1.7"
+    index-array-by "1"
+    kapsule "^1.16"
+    lodash-es "4"
+
+index-array-by@1:
+  version "1.4.2"
+  resolved "https://registry.npmjs.org/index-array-by/-/index-array-by-1.4.2.tgz"
+  integrity sha512-SP23P27OUKzXWEC/TOyWlwLviofQkCSCKONnc62eItjp69yCZZPqDQtr3Pw5gJDnPeUMqExmKydNZaJO0FU9pw==
 
 "internmap@1 - 2":
-  "integrity" "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="
-  "resolved" "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz"
-  "version" "2.0.3"
-
-"js-base64@^2.6.4":
-  "integrity" "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
-  "resolved" "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz"
-  "version" "2.6.4"
-
-"js-base64@^3.7.2":
-  "integrity" "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA=="
-  "resolved" "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz"
-  "version" "3.7.5"
-
-"js-md5@^0.8.3":
-  "integrity" "sha512-qR0HB5uP6wCuRMrWPTrkMaev7MJZwJuuw4fnwAzRgP4J4/F8RwtodOKpGp4XpqsLBFzzgqIO42efFAyz2Et6KQ=="
-  "resolved" "https://registry.npmjs.org/js-md5/-/js-md5-0.8.3.tgz"
-  "version" "0.8.3"
-
-"jweixin-module@^1.2.0":
-  "integrity" "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
-  "resolved" "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz"
-  "version" "1.6.0"
-
-"kapsule@^1.16":
-  "integrity" "sha512-4+5mNNf4vZDSwPhKprKwz3330iisPrb08JyMgbsdFrimBCKNHecua/WBwvVg3n7vwx0C1ARjfhwIpbrbd9n5wg=="
-  "resolved" "https://registry.npmjs.org/kapsule/-/kapsule-1.16.3.tgz"
-  "version" "1.16.3"
+  version "2.0.3"
+  resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz"
+  integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
+
+js-base64@^2.6.4:
+  version "2.6.4"
+  resolved "https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz"
+  integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==
+
+js-base64@^3.7.2:
+  version "3.7.5"
+  resolved "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz"
+  integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==
+
+js-md5@^0.8.3:
+  version "0.8.3"
+  resolved "https://registry.npmjs.org/js-md5/-/js-md5-0.8.3.tgz"
+  integrity sha512-qR0HB5uP6wCuRMrWPTrkMaev7MJZwJuuw4fnwAzRgP4J4/F8RwtodOKpGp4XpqsLBFzzgqIO42efFAyz2Et6KQ==
+
+jweixin-module@^1.2.0:
+  version "1.6.0"
+  resolved "https://registry.npmmirror.com/jweixin-module/-/jweixin-module-1.6.0.tgz"
+  integrity sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==
+
+kapsule@^1.16:
+  version "1.16.3"
+  resolved "https://registry.npmjs.org/kapsule/-/kapsule-1.16.3.tgz"
+  integrity sha512-4+5mNNf4vZDSwPhKprKwz3330iisPrb08JyMgbsdFrimBCKNHecua/WBwvVg3n7vwx0C1ARjfhwIpbrbd9n5wg==
   dependencies:
-    "lodash-es" "4"
-
-"lodash-es@4":
-  "integrity" "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
-  "resolved" "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
-  "version" "4.17.21"
-
-"meshoptimizer@~0.22.0":
-  "integrity" "sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg=="
-  "resolved" "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.22.0.tgz"
-  "version" "0.22.0"
-
-"mpvue-echarts@^1.0.0":
-  "integrity" "sha512-tY73yPqfB3KvU5o5vMxOjqknJI+Z+s/dk2l6Uw/yo3Hz0NgDPqa8t2z6H+6e4AWqLu2TODjjOys2IUMq5/YOGQ=="
-  "resolved" "https://registry.npmjs.org/mpvue-echarts/-/mpvue-echarts-1.0.0.tgz"
-  "version" "1.0.0"
-
-"nanoid@^3.3.4":
-  "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
-  "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
-  "version" "3.3.4"
-
-"ngraph.events@^1.0.0", "ngraph.events@^1.2.1":
-  "integrity" "sha512-NeDGI4DSyjBNBRtA86222JoYietsmCXbs8CEB0dZ51Xeh4lhVl1y3wpWLumczvnha8sFQIW4E0vvVWwgmX2mGw=="
-  "resolved" "https://registry.npmjs.org/ngraph.events/-/ngraph.events-1.4.0.tgz"
-  "version" "1.4.0"
-
-"ngraph.forcelayout@3":
-  "integrity" "sha512-MKBuEh1wujyQHFTW57y5vd/uuEOK0XfXYxm3lC7kktjJLRdt/KEKEknyOlc6tjXflqBKEuYBBcu7Ax5VY+S6aw=="
-  "resolved" "https://registry.npmjs.org/ngraph.forcelayout/-/ngraph.forcelayout-3.3.1.tgz"
-  "version" "3.3.1"
+    lodash-es "4"
+
+lodash-es@4:
+  version "4.17.21"
+  resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
+  integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
+meshoptimizer@~0.22.0:
+  version "0.22.0"
+  resolved "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.22.0.tgz"
+  integrity sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg==
+
+mpvue-echarts@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/mpvue-echarts/-/mpvue-echarts-1.0.0.tgz"
+  integrity sha512-tY73yPqfB3KvU5o5vMxOjqknJI+Z+s/dk2l6Uw/yo3Hz0NgDPqa8t2z6H+6e4AWqLu2TODjjOys2IUMq5/YOGQ==
+
+nanoid@^3.3.4:
+  version "3.3.4"
+  resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
+  integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
+
+ngraph.events@^1.0.0, ngraph.events@^1.2.1:
+  version "1.4.0"
+  resolved "https://registry.npmjs.org/ngraph.events/-/ngraph.events-1.4.0.tgz"
+  integrity sha512-NeDGI4DSyjBNBRtA86222JoYietsmCXbs8CEB0dZ51Xeh4lhVl1y3wpWLumczvnha8sFQIW4E0vvVWwgmX2mGw==
+
+ngraph.forcelayout@3:
+  version "3.3.1"
+  resolved "https://registry.npmjs.org/ngraph.forcelayout/-/ngraph.forcelayout-3.3.1.tgz"
+  integrity sha512-MKBuEh1wujyQHFTW57y5vd/uuEOK0XfXYxm3lC7kktjJLRdt/KEKEknyOlc6tjXflqBKEuYBBcu7Ax5VY+S6aw==
   dependencies:
-    "ngraph.events" "^1.0.0"
-    "ngraph.merge" "^1.0.0"
-    "ngraph.random" "^1.0.0"
-
-"ngraph.graph@20":
-  "integrity" "sha512-1jorNgIc0Kg0L9bTNN4+RCrVvbZ+4pqGVMrbhX3LLyqYcRdLvAQRRnxddmfj9l5f6Eq59SUTfbYZEm8cktiE7Q=="
-  "resolved" "https://registry.npmjs.org/ngraph.graph/-/ngraph.graph-20.1.0.tgz"
-  "version" "20.1.0"
+    ngraph.events "^1.0.0"
+    ngraph.merge "^1.0.0"
+    ngraph.random "^1.0.0"
+
+ngraph.graph@20:
+  version "20.1.0"
+  resolved "https://registry.npmjs.org/ngraph.graph/-/ngraph.graph-20.1.0.tgz"
+  integrity sha512-1jorNgIc0Kg0L9bTNN4+RCrVvbZ+4pqGVMrbhX3LLyqYcRdLvAQRRnxddmfj9l5f6Eq59SUTfbYZEm8cktiE7Q==
   dependencies:
-    "ngraph.events" "^1.2.1"
-
-"ngraph.merge@^1.0.0":
-  "integrity" "sha512-5J8YjGITUJeapsomtTALYsw7rFveYkM+lBj3QiYZ79EymQcuri65Nw3knQtFxQBU1r5iOaVRXrSwMENUPK62Vg=="
-  "resolved" "https://registry.npmjs.org/ngraph.merge/-/ngraph.merge-1.0.0.tgz"
-  "version" "1.0.0"
-
-"ngraph.random@^1.0.0":
-  "integrity" "sha512-4EUeAGbB2HWX9njd6bP6tciN6ByJfoaAvmVL9QTaZSeXrW46eNGA9GajiXiPBbvFqxUWFkEbyo6x5qsACUuVfA=="
-  "resolved" "https://registry.npmjs.org/ngraph.random/-/ngraph.random-1.2.0.tgz"
-  "version" "1.2.0"
-
-"picocolors@^1.0.0":
-  "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
-  "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
-  "version" "1.0.0"
-
-"polished@4":
-  "integrity" "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA=="
-  "resolved" "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz"
-  "version" "4.3.1"
+    ngraph.events "^1.2.1"
+
+ngraph.merge@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/ngraph.merge/-/ngraph.merge-1.0.0.tgz"
+  integrity sha512-5J8YjGITUJeapsomtTALYsw7rFveYkM+lBj3QiYZ79EymQcuri65Nw3knQtFxQBU1r5iOaVRXrSwMENUPK62Vg==
+
+ngraph.random@^1.0.0:
+  version "1.2.0"
+  resolved "https://registry.npmjs.org/ngraph.random/-/ngraph.random-1.2.0.tgz"
+  integrity sha512-4EUeAGbB2HWX9njd6bP6tciN6ByJfoaAvmVL9QTaZSeXrW46eNGA9GajiXiPBbvFqxUWFkEbyo6x5qsACUuVfA==
+
+picocolors@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
+  integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+polished@4:
+  version "4.3.1"
+  resolved "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz"
+  integrity sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==
   dependencies:
     "@babel/runtime" "^7.17.8"
 
-"postcss@^8.4.14":
-  "integrity" "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ=="
-  "resolved" "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz"
-  "version" "8.4.16"
+postcss@^8.4.14:
+  version "8.4.16"
+  resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz"
+  integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==
   dependencies:
-    "nanoid" "^3.3.4"
-    "picocolors" "^1.0.0"
-    "source-map-js" "^1.0.2"
-
-"preact@10":
-  "integrity" "sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg=="
-  "resolved" "https://registry.npmjs.org/preact/-/preact-10.27.2.tgz"
-  "version" "10.27.2"
-
-"source-map-js@^1.0.2":
-  "integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
-  "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
-  "version" "1.0.2"
-
-"source-map@^0.6.1":
-  "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
-  "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
-  "version" "0.6.1"
-
-"three-forcegraph@1":
-  "integrity" "sha512-1AqLmTCjjjwcuccObG96fCxiRnNJjCLdA5Mozl7XK+ROwTJ6QEJPo2XJ6uxWeuAmPE7ukMhgv4lj28oZSfE4wg=="
-  "resolved" "https://registry.npmjs.org/three-forcegraph/-/three-forcegraph-1.43.0.tgz"
-  "version" "1.43.0"
+    nanoid "^3.3.4"
+    picocolors "^1.0.0"
+    source-map-js "^1.0.2"
+
+preact@10:
+  version "10.27.2"
+  resolved "https://registry.npmjs.org/preact/-/preact-10.27.2.tgz"
+  integrity sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==
+
+source-map-js@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
+  integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+source-map@^0.6.1:
+  version "0.6.1"
+  resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+three-forcegraph@1:
+  version "1.43.0"
+  resolved "https://registry.npmjs.org/three-forcegraph/-/three-forcegraph-1.43.0.tgz"
+  integrity sha512-1AqLmTCjjjwcuccObG96fCxiRnNJjCLdA5Mozl7XK+ROwTJ6QEJPo2XJ6uxWeuAmPE7ukMhgv4lj28oZSfE4wg==
   dependencies:
-    "accessor-fn" "1"
-    "d3-array" "1 - 3"
-    "d3-force-3d" "2 - 3"
-    "d3-scale" "1 - 4"
-    "d3-scale-chromatic" "1 - 3"
-    "data-bind-mapper" "1"
-    "kapsule" "^1.16"
-    "ngraph.forcelayout" "3"
-    "ngraph.graph" "20"
-    "tinycolor2" "1"
-
-"three-render-objects@^1.35":
-  "integrity" "sha512-Ukpu1pei3L5r809izvjsZxwuRcYLiyn6Uvy3lZ9bpMTdvj3i6PeX6w++/hs2ZS3KnEzGjb6YvTvh4UQuwHTDJg=="
-  "resolved" "https://registry.npmjs.org/three-render-objects/-/three-render-objects-1.40.4.tgz"
-  "version" "1.40.4"
+    accessor-fn "1"
+    d3-array "1 - 3"
+    d3-force-3d "2 - 3"
+    d3-scale "1 - 4"
+    d3-scale-chromatic "1 - 3"
+    data-bind-mapper "1"
+    kapsule "^1.16"
+    ngraph.forcelayout "3"
+    ngraph.graph "20"
+    tinycolor2 "1"
+
+three-render-objects@^1.35:
+  version "1.40.4"
+  resolved "https://registry.npmjs.org/three-render-objects/-/three-render-objects-1.40.4.tgz"
+  integrity sha512-Ukpu1pei3L5r809izvjsZxwuRcYLiyn6Uvy3lZ9bpMTdvj3i6PeX6w++/hs2ZS3KnEzGjb6YvTvh4UQuwHTDJg==
   dependencies:
     "@tweenjs/tween.js" "18 - 25"
-    "accessor-fn" "1"
-    "float-tooltip" "^1.7"
-    "kapsule" "^1.16"
-    "polished" "4"
-
-"three@^0.181.1", "three@>=0.118 <1", "three@>=0.118.3", "three@>=0.168":
-  "integrity" "sha512-bz9xZUQMw3pJbjKy7roiwXWgAp+oVUa+4k5o0oBAQ+IFJuru1xzvtk63h6k72XZanXS/SgoEhV6927Vgazyq2w=="
-  "resolved" "https://registry.npmjs.org/three/-/three-0.181.1.tgz"
-  "version" "0.181.1"
-
-"tinycolor2@^1.6.0", "tinycolor2@1":
-  "integrity" "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
-  "resolved" "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz"
-  "version" "1.6.0"
-
-"tslib@2.3.0":
-  "integrity" "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
-  "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz"
-  "version" "2.3.0"
-
-"uni-read-pages@^1.0.5":
-  "integrity" "sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA=="
-  "resolved" "https://registry.npmmirror.com/uni-read-pages/-/uni-read-pages-1.0.5.tgz"
-  "version" "1.0.5"
-
-"uni-simple-router@^2.0.7":
-  "integrity" "sha512-8FKv5dw7Eoonm0gkO8udprrxzin0fNUI0+AvIphFkFRH5ZmP5ZWJ2pvnWzb2NiiqQSECTSU5VSB7HhvOSwD5eA=="
-  "resolved" "https://registry.npmmirror.com/uni-simple-router/-/uni-simple-router-2.0.7.tgz"
-  "version" "2.0.7"
-
-"uploading-oss@^1.0.3":
-  "integrity" "sha512-aqHh5NCOBcrA4d8yCIKR7B9GrKzH88X7gL8BSvIw18pi79AgWnhDkCoyjQmDqzTvjQqYfKwyFTEgnafzMx/GbQ=="
-  "resolved" "https://registry.npmjs.org/uploading-oss/-/uploading-oss-1.0.3.tgz"
-  "version" "1.0.3"
+    accessor-fn "1"
+    float-tooltip "^1.7"
+    kapsule "^1.16"
+    polished "4"
+
+three@^0.181.1, "three@>=0.118 <1", three@>=0.118.3, three@>=0.168:
+  version "0.181.1"
+  resolved "https://registry.npmjs.org/three/-/three-0.181.1.tgz"
+  integrity sha512-bz9xZUQMw3pJbjKy7roiwXWgAp+oVUa+4k5o0oBAQ+IFJuru1xzvtk63h6k72XZanXS/SgoEhV6927Vgazyq2w==
+
+tinycolor2@^1.6.0, tinycolor2@1:
+  version "1.6.0"
+  resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz"
+  integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==
+
+tslib@2.3.0:
+  version "2.3.0"
+  resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz"
+  integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
+
+uni-read-pages@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.npmmirror.com/uni-read-pages/-/uni-read-pages-1.0.5.tgz"
+  integrity sha512-GkrrZ0LX0vn9R5k6RKEi0Ez3Q3e2vUpjXQ8Z6/K/d28KudI9ajqgt8WEjQFlG5EPm1K6uTArN8LlqmZTEixDUA==
+
+uni-simple-router@^2.0.7:
+  version "2.0.7"
+  resolved "https://registry.npmmirror.com/uni-simple-router/-/uni-simple-router-2.0.7.tgz"
+  integrity sha512-8FKv5dw7Eoonm0gkO8udprrxzin0fNUI0+AvIphFkFRH5ZmP5ZWJ2pvnWzb2NiiqQSECTSU5VSB7HhvOSwD5eA==
+
+uploading-oss@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.npmjs.org/uploading-oss/-/uploading-oss-1.0.3.tgz"
+  integrity sha512-aqHh5NCOBcrA4d8yCIKR7B9GrKzH88X7gL8BSvIw18pi79AgWnhDkCoyjQmDqzTvjQqYfKwyFTEgnafzMx/GbQ==
   dependencies:
-    "crypto-js" "^4.1.1"
-    "js-base64" "^2.6.4"
-
-"vue-waterfall-easy@^2.4.4":
-  "integrity" "sha512-5OkpT2FPNC3rHBy858zk/nmJxqdPaGmj/KVbmA6dgcvtsovKMa+zuf/Z7F+S2NnObeavpIBztTWgcH3S42ZD+g=="
-  "resolved" "https://registry.npmjs.org/vue-waterfall-easy/-/vue-waterfall-easy-2.4.4.tgz"
-  "version" "2.4.4"
-
-"vue@^2.6.8":
-  "integrity" "sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg=="
-  "resolved" "https://registry.npmjs.org/vue/-/vue-2.7.10.tgz"
-  "version" "2.7.10"
+    crypto-js "^4.1.1"
+    js-base64 "^2.6.4"
+
+vue-waterfall-easy@^2.4.4:
+  version "2.4.4"
+  resolved "https://registry.npmjs.org/vue-waterfall-easy/-/vue-waterfall-easy-2.4.4.tgz"
+  integrity sha512-5OkpT2FPNC3rHBy858zk/nmJxqdPaGmj/KVbmA6dgcvtsovKMa+zuf/Z7F+S2NnObeavpIBztTWgcH3S42ZD+g==
+
+vue@^2.6.8:
+  version "2.7.10"
+  resolved "https://registry.npmjs.org/vue/-/vue-2.7.10.tgz"
+  integrity sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg==
   dependencies:
     "@vue/compiler-sfc" "2.7.10"
-    "csstype" "^3.1.0"
+    csstype "^3.1.0"
 
-"wecomjsdk@^1.0.2":
-  "integrity" "sha512-nPbrTcA5P8IOY/gQJJ3/AtXE2zSqJIQB156RUAQ2+RvwvJmcR66p7hpZtCjbtKefvyDO0LJBdEFqfjRR72zjIw=="
-  "resolved" "https://registry.npmmirror.com/wecomjsdk/-/wecomjsdk-1.0.2.tgz"
-  "version" "1.0.2"
+wecomjsdk@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.npmmirror.com/wecomjsdk/-/wecomjsdk-1.0.2.tgz"
+  integrity sha512-nPbrTcA5P8IOY/gQJJ3/AtXE2zSqJIQB156RUAQ2+RvwvJmcR66p7hpZtCjbtKefvyDO0LJBdEFqfjRR72zjIw==
 
-"zrender@6.0.0":
-  "integrity" "sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg=="
-  "resolved" "https://registry.npmjs.org/zrender/-/zrender-6.0.0.tgz"
-  "version" "6.0.0"
+zrender@6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/zrender/-/zrender-6.0.0.tgz"
+  integrity sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg==
   dependencies:
-    "tslib" "2.3.0"
+    tslib "2.3.0"