From 14bbe243434d2ef9f37f414545c73d76178af7b3 Mon Sep 17 00:00:00 2001
From: renyt <renyt@troyrc.com>
Date: Thu, 8 May 2025 18:26:27 +0800
Subject: [PATCH 1/4] 1

---
 pages/index/.DS_Store | Bin 6148 -> 0 bytes
 pages/index/index.vue | 222 +++++++++++++++++++++++++++++-------------
 2 files changed, 155 insertions(+), 67 deletions(-)
 delete mode 100644 pages/index/.DS_Store

diff --git a/pages/index/.DS_Store b/pages/index/.DS_Store
deleted file mode 100644
index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6148
zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3
zem<@ulZcFPQ@L2!n>{z**<q8>++&mCkOWA81W14cNZ<zv;LbK1Poaz?KmsK2CSc!(
z0ynLxE!0092;Krf2c+FF_Fe*7ECH>lEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ
zLs35+`xjp>T0<F0fCPF1$Cyrb|F7^5{eNG?83~ZUUlGt@xh*qZDeu<Z%US-OSsOPv
j)R!Z4KLME7ReXlK;d!wEw5GODWMKRea10D2@KpjYNUI8I

diff --git a/pages/index/index.vue b/pages/index/index.vue
index 43ae4de..9fff1df 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -2,17 +2,12 @@
 	<view>
 		<!-- 定义canvas画布 // 设置canvas大小为200x200像素 -->
 		<!-- // @touchstart="handleCanvasTouch" -->
-		<canvas
-			  @touchstart="handleTouchStart"
-			       @touchmove="handleTouchMove"
-			       @touchend="handleTouchEnd"
-						  :style="{
+		<canvas @touchstart="handleTouchStart" @touchmove="handleTouchMove" @touchend="handleTouchEnd" :style="{
 						         width: 1000 + 'px',
 						         height: 800 + 'px',
 						         transform: `translate(${offsetX}px, ${offsetY}px) scale(${scale})`
-						       }"
-		 canvas-id="canvas" id="canvas" ></canvas>
-		 <!-- style="border: 1px solid red;height: 600px;width: 100vw;" -->
+						       }" canvas-id="canvas" id="canvas"></canvas>
+		<!-- style="border: 1px solid red;height: 600px;width: 100vw;" -->
 		<image src="https://assets.sx25.troyrc.com/sx25/images/events/XBDT.jpg"></image>
 		<!-- 添加一个按钮,用于触发绘图 -->
 		<button @click="handleDraw">点击绘制圆形</button>
@@ -25,7 +20,9 @@
 		onMounted,
 		getCurrentInstance
 	} from 'vue'
-	import {  onReady } from '@dcloudio/uni-app'
+	import {
+		onReady
+	} from '@dcloudio/uni-app'
 
 	const canvasWidth = ref(375) // 动态设置Canvas宽度
 	const canvasHeight = ref(400) // 动态设置Canvas高度
@@ -38,7 +35,28 @@
 	const startY = ref(0)
 	const isDragging = ref(false)
 	const imgUrl = ref('https://assets.sx25.troyrc.com/sx25/images/events/XBDT.jpg'); // 修改为ref
-
+	// 定义图形数组
+	const blocks = ref([{
+		points: [{
+				x: 50,
+				y: 50
+			}, // 左下角点
+			{
+				x: 150,
+				y: 50
+			}, // 右下角点
+			{
+				x: 200,
+				y: 100
+			}, // 右上角点
+			{
+				x: 100,
+				y: 100
+			}, // 左上角点
+		],
+		message: '点击了四边形',
+		type: 'quadrilateral'
+	}]);
 	async function draw() {
 		const ctx = uni.createCanvasContext('canvas', instance) // 创建canvas绘图上下文
 		ctx.scale(scale.value, scale.value);
@@ -46,7 +64,26 @@
 			src: imgUrl.value,
 		})
 		ctx.drawImage(res.path, 0, 0);
-		
+
+		// 绘制每个图形
+		blocks.value.forEach((block) => {
+			ctx.beginPath();
+			ctx.fillStyle = block.color;
+
+			switch (block.type) {
+				case 'quadrilateral': // 四边形
+					ctx.moveTo(block.points[0].x, block.points[0].y);
+					for (let i = 1; i < block.points.length; i++) {
+						ctx.lineTo(block.points[i].x, block.points[i].y);
+					}
+					ctx.closePath();
+					break;
+
+			}
+
+			ctx.stroke(); // 绘制边框
+		});
+
 		// ctx.beginPath();
 		// ctx.moveTo(50, 50); // 左下角点
 		// ctx.lineTo(150, 50); // 右下角点
@@ -54,7 +91,7 @@
 		// ctx.lineTo(100, 100); // 左上角点
 		// ctx.closePath(); // 闭合路径
 		// ctx.stroke(); // 绘制边框
-		
+
 		// 先不删
 		// let xoffset = 0, yoffset = 0, flag = false;
 		// polygonList.forEach((level, index) => {
@@ -77,67 +114,98 @@
 		// })
 		ctx.draw()
 	}
-	
-		// 处理canvas触摸事件
-		function handleCanvasTouch(event) {
-			// 获取触摸点的坐标
-			const x = event.touches[0].x;
-			const y = event.touches[0].y;
-			console.log(x,y,'12');
-		
-		}
 
-	
+	// 处理canvas触摸事件
+	function handleCanvasTouch(event) {
+		// 获取触摸点的坐标
+		const x = event.touches[0].x;
+		const y = event.touches[0].y;
+		console.log(x, y, '12');
+
+	}
+
+
 	// 触摸开始
 	const handleTouchStart = (e) => {
-		console.log('handleTouchStart')
-	  if (e.touches.length === 1) {
-	    // 单指拖动
-	    startX.value = e.touches[0].clientX - offsetX.value
-	    startY.value = e.touches[0].clientY - offsetY.value
-	    isDragging.value = true
-	  } else if (e.touches.length === 2) {
-	    // 双指缩放
-	    const x1 = e.touches[0].clientX
-	    const y1 = e.touches[0].clientY
-	    const x2 = e.touches[1].clientX
-	    const y2 = e.touches[1].clientY
-	    lastDistance.value = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))
-	  }
+		const x = e.touches[0].x;
+		const y = e.touches[0].y;
+
+		// 判断点击位置
+		blocks.value.forEach((block) => {
+			if (isPointInQuadrilateral(x, y, block.points)) {
+				uni.showModal({
+					title: '提示',
+					content: block.message,
+					showCancel: true, // 显示取消按钮
+					success: (res) => {
+						if (res.confirm) {
+							console.log('用户点击了“确定”按钮');
+						} else if (res.cancel) {
+							console.log('用户点击了“取消”按钮');
+						}
+					},
+				});
+			}
+		});
+		if (e.touches.length === 1) {
+			// 单指拖动
+			startX.value = e.touches[0].clientX - offsetX.value
+			startY.value = e.touches[0].clientY - offsetY.value
+			isDragging.value = true
+		} else if (e.touches.length === 2) {
+			// 双指缩放
+			// const x1 = e.touches[0].clientX
+			// const y1 = e.touches[0].clientY
+			// const x2 = e.touches[1].clientX
+			// const y2 = e.touches[1].clientY
+			// lastDistance.value = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))
+			// 双指缩放逻辑...
+
+			const x1 = e.touches[0].clientX,
+				y1 = e.touches[0].clientY;
+			const x2 = e.touches[1].clientX,
+				y2 = e.touches[1].clientY;
+			const distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
+			if (lastDistance.value > 0) {
+
+				scale.value = Math.min(Math.max(scale.value * (distance / lastDistance.value), 0.5), 4);
+				draw(); // 重新绘制Canvas内容
+			}
+		}
 	}
-	
+
 	// 触摸移动
 	const handleTouchMove = (e) => {
 		console.log('handleTouchMove')
-	  if (e.touches.length === 1 && isDragging.value) {
-	    // 单指移动
-	    const currentX = e.touches[0].clientX - startX.value
-	    const currentY = e.touches[0].clientY - startY.value
-	    offsetX.value = currentX
-	    offsetY.value = currentY
-	  } else if (e.touches.length === 2) {
-	    // 双指缩放
-	    const x1 = e.touches[0].clientX
-	    const y1 = e.touches[0].clientY
-	    const x2 = e.touches[1].clientX
-	    const y2 = e.touches[1].clientY
-	    const distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))
-	    
-	    if (lastDistance.value > 0) {
-	      const newScale = scale.value * (distance / lastDistance.value)
-	      scale.value = Math.min(Math.max(newScale, 0.5), 4) // 限制缩放范围
-	    }
-	    lastDistance.value = distance
-	  }
+		if (e.touches.length === 1 && isDragging.value) {
+			// 单指移动
+			const currentX = e.touches[0].clientX - startX.value
+			const currentY = e.touches[0].clientY - startY.value
+			offsetX.value = currentX
+			offsetY.value = currentY
+		} else if (e.touches.length === 2) {
+			// 双指缩放
+			const x1 = e.touches[0].clientX
+			const y1 = e.touches[0].clientY
+			const x2 = e.touches[1].clientX
+			const y2 = e.touches[1].clientY
+			const distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))
+
+			if (lastDistance.value > 0) {
+				const newScale = scale.value * (distance / lastDistance.value)
+				scale.value = Math.min(Math.max(newScale, 0.5), 4) // 限制缩放范围
+			}
+			lastDistance.value = distance
+		}
 	}
-	
+
 	// 触摸结束
 	const handleTouchEnd = () => {
 		console.log('handleTouchEnd')
-	  lastDistance.value = -1
-	  isDragging.value = false
+		lastDistance.value = -1
+		isDragging.value = false
 	}
-	
+
 	// 按钮点击事件处理函数
 	const handleDraw = () => {
 		draw(); // 调用绘图函数
@@ -152,16 +220,36 @@
 	onReady(() => {
 		console.log('onReadyonReady');
 		uni.downloadFile({
-			url:imgUrl.value,
-			success: function (sres) {
-				console.log(sres,'sres');
+			url: imgUrl.value,
+			success: function(sres) {
+				console.log(sres, 'sres');
 				imgUrl.value = sres.tempFilePath || sres.path
 				draw()
-			},fail:function(fres){
-				console.log('fres',fres)
-      }
+			},
+			fail: function(fres) {
+				console.log('fres', fres)
+			}
 		})
 	})
+	// 判断点是否在四边形内
+	function isPointInQuadrilateral(px, py, points) {
+		let inside = false;
+		const n = points.length;
+		let p1 = points[0];
+		for (let i = 1; i <= n; i++) {
+			let p2 = points[i % n];
+			if (py > Math.min(p1.y, p2.y) && py <= Math.max(p1.y, p2.y) && px <= Math.max(p1.x, p2.x)) {
+				if (p1.y !== p2.y) {
+					let xinters = (py - p1.y) * (p2.x - p1.x) / (p2.y - p1.y) + p1.x;
+					if (p1.x === p2.x || px <= xinters) {
+						inside = !inside;
+					}
+				}
+			}
+			p1 = p2;
+		}
+		return inside;
+	}
 </script>
 
 <style scoped>

From dacfe9a0354d455ce0e52a805fa80a7d2390f4bf Mon Sep 17 00:00:00 2001
From: renyt <renyt@troyrc.com>
Date: Fri, 9 May 2025 09:14:07 +0800
Subject: [PATCH 2/4] 1

---
 pages/index/.DS_Store                         |  Bin 0 -> 6148 bytes
 .../mp-weixin-devtools/index.js.map           |    1 -
 .../pages/index/index.js.map                  |    1 -
 .../dist/dev/.sourcemap/mp-weixin/app.js.map  |    1 -
 .../.sourcemap/mp-weixin/common/assets.js.map |    1 -
 .../.sourcemap/mp-weixin/common/vendor.js.map |    1 -
 .../dev/.sourcemap/mp-weixin/index.js.map     |    1 -
 .../mp-weixin/pages/index/index.js.map        |    1 -
 .../mp-weixin/pages/index/index2.js.map       |    1 -
 .../mp-weixin/pages/index/indexFu.js.map      |    1 -
 .../mp-weixin/pages/index/index_step4.js.map  |    1 -
 .../mp-weixin/pages/index/step2.js.map        |    1 -
 .../.sourcemap/mp-weixin/static/canvas.js.map |    1 -
 unpackage/dist/dev/mp-weixin/app.js           |   28 -
 unpackage/dist/dev/mp-weixin/app.json         |   14 -
 unpackage/dist/dev/mp-weixin/app.wxss         |    3 -
 unpackage/dist/dev/mp-weixin/common/vendor.js | 7743 -----------------
 unpackage/dist/dev/mp-weixin/index.js         |   97 -
 .../dist/dev/mp-weixin/pages/index/index.js   |    4 -
 .../dist/dev/mp-weixin/pages/index/index.json |    4 -
 .../dist/dev/mp-weixin/pages/index/index.wxml |    1 -
 .../dist/dev/mp-weixin/pages/index/index.wxss |    4 -
 .../dist/dev/mp-weixin/pages/index/index2.js  |    4 -
 .../dev/mp-weixin/pages/index/index_step4.js  |   42 -
 .../mp-weixin/pages/index/index_step4.json    |    4 -
 .../mp-weixin/pages/index/index_step4.wxml    |    1 -
 .../mp-weixin/pages/index/index_step4.wxss    |    4 -
 .../dist/dev/mp-weixin/pages/index/step2.js   |   16 -
 .../dist/dev/mp-weixin/pages/index/step2.json |    6 -
 .../dist/dev/mp-weixin/pages/index/step2.wxml |    1 -
 .../dist/dev/mp-weixin/pages/index/step2.wxss |    0
 .../dist/dev/mp-weixin/project.config.json    |   29 -
 .../dev/mp-weixin/project.private.config.json |    8 -
 .../dist/dev/mp-weixin/static/canvas.jpg      |  Bin 195625 -> 0 bytes
 unpackage/dist/dev/mp-weixin/static/logo.png  |  Bin 4023 -> 0 bytes
 35 files changed, 8025 deletions(-)
 create mode 100644 pages/index/.DS_Store
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin-devtools/index.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin-devtools/pages/index/index.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/index.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index2.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/indexFu.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index_step4.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/step2.js.map
 delete mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/static/canvas.js.map
 delete mode 100644 unpackage/dist/dev/mp-weixin/app.js
 delete mode 100644 unpackage/dist/dev/mp-weixin/app.json
 delete mode 100644 unpackage/dist/dev/mp-weixin/app.wxss
 delete mode 100644 unpackage/dist/dev/mp-weixin/common/vendor.js
 delete mode 100644 unpackage/dist/dev/mp-weixin/index.js
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.js
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.json
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.wxml
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.wxss
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index2.js
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index_step4.js
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index_step4.json
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index_step4.wxml
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index_step4.wxss
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/step2.js
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/step2.json
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/step2.wxml
 delete mode 100644 unpackage/dist/dev/mp-weixin/pages/index/step2.wxss
 delete mode 100644 unpackage/dist/dev/mp-weixin/project.config.json
 delete mode 100644 unpackage/dist/dev/mp-weixin/project.private.config.json
 delete mode 100644 unpackage/dist/dev/mp-weixin/static/canvas.jpg
 delete mode 100644 unpackage/dist/dev/mp-weixin/static/logo.png

diff --git a/pages/index/.DS_Store b/pages/index/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
GIT binary patch
literal 6148
zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3
zem<@ulZcFPQ@L2!n>{z**<q8>++&mCkOWA81W14cNZ<zv;LbK1Poaz?KmsK2CSc!(
z0ynLxE!0092;Krf2c+FF_Fe*7ECH>lEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ
zLs35+`xjp>T0<F0fCPF1$Cyrb|F7^5{eNG?83~ZUUlGt@xh*qZDeu<Z%US-OSsOPv
j)R!Z4KLME7ReXlK;d!wEw5GODWMKRea10D2@KpjYNUI8I

literal 0
HcmV?d00001

diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin-devtools/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin-devtools/index.js.map
deleted file mode 100644
index 5f0e34a..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin-devtools/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":";","ignoreList":[]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin-devtools/pages/index/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin-devtools/pages/index/index.js.map
deleted file mode 100644
index 52301b2..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin-devtools/pages/index/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"names":["wx","createPage","index","MiniProgramPage"],"sources":["cGFnZXMvaW5kZXgvaW5kZXgudnVl"],"sourcesContent":["import MiniProgramPage from 'C:/Users/hp/Desktop/app/canvas/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"mappings":";;;;AACAA,EAAA,CAAGC,UAAA,CAAWC,KAAA,CAAeC,eAAA","ignoreList":[]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map
deleted file mode 100644
index 171f7f6..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"app.js","sources":["App.vue"],"sourcesContent":["<script>\n\texport default {\n\t\tonLaunch: function() {\n\t\t\tconsole.log('App Launch')\n\t\t},\n\t\tonShow: function() {\n\t\t\tconsole.log('App Show')\n\t\t},\n\t\tonHide: function() {\n\t\t\tconsole.log('App Hide')\n\t\t}\n\t}\n</script>\n\n<style>\n\t/*每个页面公共css */\n</style>\n"],"names":["uni"],"mappings":";;;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;;;;;;;;;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
deleted file mode 100644
index 81c5d3f..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"assets.js","sources":["static/logo.png"],"sourcesContent":["export default \"__VITE_ASSET__46719607__\""],"names":[],"mappings":";AAAA,MAAe,aAAA;;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
deleted file mode 100644
index 7a339a4..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"vendor.js","sources":["node_modules/@vue/shared/dist/shared.esm-bundler.js","node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","node_modules/@dcloudio/uni-console/dist/index.esm.js","node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js","node_modules/@dcloudio/uni-app/dist/uni-app.es.js"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n  const set = new Set(str.split(\",\"));\n  return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n  const i = arr.indexOf(el);\n  if (i > -1) {\n    arr.splice(i, 1);\n  }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n  return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n  return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n  // the leading comma is intentional so empty string \"\" is also included\n  \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n  \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n  const cache = /* @__PURE__ */ Object.create(null);\n  return (str) => {\n    const hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n  (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n  const s = str ? `on${capitalize(str)}` : ``;\n  return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n  for (let i = 0; i < fns.length; i++) {\n    fns[i](arg);\n  }\n};\nconst def = (obj, key, value) => {\n  Object.defineProperty(obj, key, {\n    configurable: true,\n    enumerable: false,\n    value\n  });\n};\nconst looseToNumber = (val) => {\n  const n = parseFloat(val);\n  return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n  const n = isString(val) ? Number(val) : NaN;\n  return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n  return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n  return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n  \"TEXT\": 1,\n  \"1\": \"TEXT\",\n  \"CLASS\": 2,\n  \"2\": \"CLASS\",\n  \"STYLE\": 4,\n  \"4\": \"STYLE\",\n  \"PROPS\": 8,\n  \"8\": \"PROPS\",\n  \"FULL_PROPS\": 16,\n  \"16\": \"FULL_PROPS\",\n  \"NEED_HYDRATION\": 32,\n  \"32\": \"NEED_HYDRATION\",\n  \"STABLE_FRAGMENT\": 64,\n  \"64\": \"STABLE_FRAGMENT\",\n  \"KEYED_FRAGMENT\": 128,\n  \"128\": \"KEYED_FRAGMENT\",\n  \"UNKEYED_FRAGMENT\": 256,\n  \"256\": \"UNKEYED_FRAGMENT\",\n  \"NEED_PATCH\": 512,\n  \"512\": \"NEED_PATCH\",\n  \"DYNAMIC_SLOTS\": 1024,\n  \"1024\": \"DYNAMIC_SLOTS\",\n  \"DEV_ROOT_FRAGMENT\": 2048,\n  \"2048\": \"DEV_ROOT_FRAGMENT\",\n  \"HOISTED\": -1,\n  \"-1\": \"HOISTED\",\n  \"BAIL\": -2,\n  \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n  [1]: `TEXT`,\n  [2]: `CLASS`,\n  [4]: `STYLE`,\n  [8]: `PROPS`,\n  [16]: `FULL_PROPS`,\n  [32]: `NEED_HYDRATION`,\n  [64]: `STABLE_FRAGMENT`,\n  [128]: `KEYED_FRAGMENT`,\n  [256]: `UNKEYED_FRAGMENT`,\n  [512]: `NEED_PATCH`,\n  [1024]: `DYNAMIC_SLOTS`,\n  [2048]: `DEV_ROOT_FRAGMENT`,\n  [-1]: `HOISTED`,\n  [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n  \"ELEMENT\": 1,\n  \"1\": \"ELEMENT\",\n  \"FUNCTIONAL_COMPONENT\": 2,\n  \"2\": \"FUNCTIONAL_COMPONENT\",\n  \"STATEFUL_COMPONENT\": 4,\n  \"4\": \"STATEFUL_COMPONENT\",\n  \"TEXT_CHILDREN\": 8,\n  \"8\": \"TEXT_CHILDREN\",\n  \"ARRAY_CHILDREN\": 16,\n  \"16\": \"ARRAY_CHILDREN\",\n  \"SLOTS_CHILDREN\": 32,\n  \"32\": \"SLOTS_CHILDREN\",\n  \"TELEPORT\": 64,\n  \"64\": \"TELEPORT\",\n  \"SUSPENSE\": 128,\n  \"128\": \"SUSPENSE\",\n  \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n  \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n  \"COMPONENT_KEPT_ALIVE\": 512,\n  \"512\": \"COMPONENT_KEPT_ALIVE\",\n  \"COMPONENT\": 6,\n  \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n  \"STABLE\": 1,\n  \"1\": \"STABLE\",\n  \"DYNAMIC\": 2,\n  \"2\": \"DYNAMIC\",\n  \"FORWARDED\": 3,\n  \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n  [1]: \"STABLE\",\n  [2]: \"DYNAMIC\",\n  [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n  let lines = source.split(/(\\r?\\n)/);\n  const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n  lines = lines.filter((_, idx) => idx % 2 === 0);\n  let count = 0;\n  const res = [];\n  for (let i = 0; i < lines.length; i++) {\n    count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n    if (count >= start) {\n      for (let j = i - range; j <= i + range || end > count; j++) {\n        if (j < 0 || j >= lines.length)\n          continue;\n        const line = j + 1;\n        res.push(\n          `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`\n        );\n        const lineLength = lines[j].length;\n        const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n        if (j === i) {\n          const pad = start - (count - (lineLength + newLineSeqLength));\n          const length = Math.max(\n            1,\n            end > count ? lineLength - pad : end - start\n          );\n          res.push(`   |  ` + \" \".repeat(pad) + \"^\".repeat(length));\n        } else if (j > i) {\n          if (end > count) {\n            const length = Math.max(Math.min(end - count, lineLength), 1);\n            res.push(`   |  ` + \"^\".repeat(length));\n          }\n          count += lineLength + newLineSeqLength;\n        }\n      }\n      break;\n    }\n  }\n  return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n  if (isArray(value)) {\n    const res = {};\n    for (let i = 0; i < value.length; i++) {\n      const item = value[i];\n      const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n      if (normalized) {\n        for (const key in normalized) {\n          res[key] = normalized[key];\n        }\n      }\n    }\n    return res;\n  } else if (isString(value) || isObject(value)) {\n    return value;\n  }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n  const ret = {};\n  cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n    if (item) {\n      const tmp = item.split(propertyDelimiterRE);\n      tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return ret;\n}\nfunction stringifyStyle(styles) {\n  let ret = \"\";\n  if (!styles || isString(styles)) {\n    return ret;\n  }\n  for (const key in styles) {\n    const value = styles[key];\n    const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n    if (isString(value) || typeof value === \"number\") {\n      ret += `${normalizedKey}:${value};`;\n    }\n  }\n  return ret;\n}\nfunction normalizeClass(value) {\n  let res = \"\";\n  if (isString(value)) {\n    res = value;\n  } else if (isArray(value)) {\n    for (let i = 0; i < value.length; i++) {\n      const normalized = normalizeClass(value[i]);\n      if (normalized) {\n        res += normalized + \" \";\n      }\n    }\n  } else if (isObject(value)) {\n    for (const name in value) {\n      if (value[name]) {\n        res += name + \" \";\n      }\n    }\n  }\n  return res.trim();\n}\nfunction normalizeProps(props) {\n  if (!props)\n    return null;\n  let { class: klass, style } = props;\n  if (klass && !isString(klass)) {\n    props.class = normalizeClass(klass);\n  }\n  if (style) {\n    props.style = normalizeStyle(style);\n  }\n  return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n  return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n  if (attrValidationCache.hasOwnProperty(name)) {\n    return attrValidationCache[name];\n  }\n  const isUnsafe = unsafeAttrCharRE.test(name);\n  if (isUnsafe) {\n    console.error(`unsafe attribute name: ${name}`);\n  }\n  return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n  acceptCharset: \"accept-charset\",\n  className: \"class\",\n  htmlFor: \"for\",\n  httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n  `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n  `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n  if (value == null) {\n    return false;\n  }\n  const type = typeof value;\n  return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n  const str = \"\" + string;\n  const match = escapeRE.exec(str);\n  if (!match) {\n    return str;\n  }\n  let html = \"\";\n  let escaped;\n  let index;\n  let lastIndex = 0;\n  for (index = match.index; index < str.length; index++) {\n    switch (str.charCodeAt(index)) {\n      case 34:\n        escaped = \"&quot;\";\n        break;\n      case 38:\n        escaped = \"&amp;\";\n        break;\n      case 39:\n        escaped = \"&#39;\";\n        break;\n      case 60:\n        escaped = \"&lt;\";\n        break;\n      case 62:\n        escaped = \"&gt;\";\n        break;\n      default:\n        continue;\n    }\n    if (lastIndex !== index) {\n      html += str.slice(lastIndex, index);\n    }\n    lastIndex = index + 1;\n    html += escaped;\n  }\n  return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n  return src.replace(commentStripRE, \"\");\n}\n\nfunction looseCompareArrays(a, b) {\n  if (a.length !== b.length)\n    return false;\n  let equal = true;\n  for (let i = 0; equal && i < a.length; i++) {\n    equal = looseEqual(a[i], b[i]);\n  }\n  return equal;\n}\nfunction looseEqual(a, b) {\n  if (a === b)\n    return true;\n  let aValidType = isDate(a);\n  let bValidType = isDate(b);\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n  }\n  aValidType = isSymbol(a);\n  bValidType = isSymbol(b);\n  if (aValidType || bValidType) {\n    return a === b;\n  }\n  aValidType = isArray(a);\n  bValidType = isArray(b);\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n  }\n  aValidType = isObject(a);\n  bValidType = isObject(b);\n  if (aValidType || bValidType) {\n    if (!aValidType || !bValidType) {\n      return false;\n    }\n    const aKeysCount = Object.keys(a).length;\n    const bKeysCount = Object.keys(b).length;\n    if (aKeysCount !== bKeysCount) {\n      return false;\n    }\n    for (const key in a) {\n      const aHasKey = a.hasOwnProperty(key);\n      const bHasKey = b.hasOwnProperty(key);\n      if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n  }\n  return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n  return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n  return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n  if (val && val.__v_isRef) {\n    return replacer(_key, val.value);\n  } else if (isMap(val)) {\n    return {\n      [`Map(${val.size})`]: [...val.entries()].reduce(\n        (entries, [key, val2], i) => {\n          entries[stringifySymbol(key, i) + \" =>\"] = val2;\n          return entries;\n        },\n        {}\n      )\n    };\n  } else if (isSet(val)) {\n    return {\n      [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n    };\n  } else if (isSymbol(val)) {\n    return stringifySymbol(val);\n  } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n    return String(val);\n  }\n  return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n  var _a;\n  return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","const isObject = (val) => val !== null && typeof val === 'object';\nconst defaultDelimiters = ['{', '}'];\nclass BaseFormatter {\n    constructor() {\n        this._caches = Object.create(null);\n    }\n    interpolate(message, values, delimiters = defaultDelimiters) {\n        if (!values) {\n            return [message];\n        }\n        let tokens = this._caches[message];\n        if (!tokens) {\n            tokens = parse(message, delimiters);\n            this._caches[message] = tokens;\n        }\n        return compile(tokens, values);\n    }\n}\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\nfunction parse(format, [startDelimiter, endDelimiter]) {\n    const tokens = [];\n    let position = 0;\n    let text = '';\n    while (position < format.length) {\n        let char = format[position++];\n        if (char === startDelimiter) {\n            if (text) {\n                tokens.push({ type: 'text', value: text });\n            }\n            text = '';\n            let sub = '';\n            char = format[position++];\n            while (char !== undefined && char !== endDelimiter) {\n                sub += char;\n                char = format[position++];\n            }\n            const isClosed = char === endDelimiter;\n            const type = RE_TOKEN_LIST_VALUE.test(sub)\n                ? 'list'\n                : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n                    ? 'named'\n                    : 'unknown';\n            tokens.push({ value: sub, type });\n        }\n        //  else if (char === '%') {\n        //   // when found rails i18n syntax, skip text capture\n        //   if (format[position] !== '{') {\n        //     text += char\n        //   }\n        // }\n        else {\n            text += char;\n        }\n    }\n    text && tokens.push({ type: 'text', value: text });\n    return tokens;\n}\nfunction compile(tokens, values) {\n    const compiled = [];\n    let index = 0;\n    const mode = Array.isArray(values)\n        ? 'list'\n        : isObject(values)\n            ? 'named'\n            : 'unknown';\n    if (mode === 'unknown') {\n        return compiled;\n    }\n    while (index < tokens.length) {\n        const token = tokens[index];\n        switch (token.type) {\n            case 'text':\n                compiled.push(token.value);\n                break;\n            case 'list':\n                compiled.push(values[parseInt(token.value, 10)]);\n                break;\n            case 'named':\n                if (mode === 'named') {\n                    compiled.push(values[token.value]);\n                }\n                else {\n                    if (process.env.NODE_ENV !== 'production') {\n                        console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\n                    }\n                }\n                break;\n            case 'unknown':\n                if (process.env.NODE_ENV !== 'production') {\n                    console.warn(`Detect 'unknown' type of token!`);\n                }\n                break;\n        }\n        index++;\n    }\n    return compiled;\n}\n\nconst LOCALE_ZH_HANS = 'zh-Hans';\nconst LOCALE_ZH_HANT = 'zh-Hant';\nconst LOCALE_EN = 'en';\nconst LOCALE_FR = 'fr';\nconst LOCALE_ES = 'es';\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst defaultFormatter = new BaseFormatter();\nfunction include(str, parts) {\n    return !!parts.find((part) => str.indexOf(part) !== -1);\n}\nfunction startsWith(str, parts) {\n    return parts.find((part) => str.indexOf(part) === 0);\n}\nfunction normalizeLocale(locale, messages) {\n    if (!locale) {\n        return;\n    }\n    locale = locale.trim().replace(/_/g, '-');\n    if (messages && messages[locale]) {\n        return locale;\n    }\n    locale = locale.toLowerCase();\n    if (locale === 'chinese') {\n        // 支付宝\n        return LOCALE_ZH_HANS;\n    }\n    if (locale.indexOf('zh') === 0) {\n        if (locale.indexOf('-hans') > -1) {\n            return LOCALE_ZH_HANS;\n        }\n        if (locale.indexOf('-hant') > -1) {\n            return LOCALE_ZH_HANT;\n        }\n        if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\n            return LOCALE_ZH_HANT;\n        }\n        return LOCALE_ZH_HANS;\n    }\n    let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];\n    if (messages && Object.keys(messages).length > 0) {\n        locales = Object.keys(messages);\n    }\n    const lang = startsWith(locale, locales);\n    if (lang) {\n        return lang;\n    }\n}\nclass I18n {\n    constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\n        this.locale = LOCALE_EN;\n        this.fallbackLocale = LOCALE_EN;\n        this.message = {};\n        this.messages = {};\n        this.watchers = [];\n        if (fallbackLocale) {\n            this.fallbackLocale = fallbackLocale;\n        }\n        this.formater = formater || defaultFormatter;\n        this.messages = messages || {};\n        this.setLocale(locale || LOCALE_EN);\n        if (watcher) {\n            this.watchLocale(watcher);\n        }\n    }\n    setLocale(locale) {\n        const oldLocale = this.locale;\n        this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\n        if (!this.messages[this.locale]) {\n            // 可能初始化时不存在\n            this.messages[this.locale] = {};\n        }\n        this.message = this.messages[this.locale];\n        // 仅发生变化时,通知\n        if (oldLocale !== this.locale) {\n            this.watchers.forEach((watcher) => {\n                watcher(this.locale, oldLocale);\n            });\n        }\n    }\n    getLocale() {\n        return this.locale;\n    }\n    watchLocale(fn) {\n        const index = this.watchers.push(fn) - 1;\n        return () => {\n            this.watchers.splice(index, 1);\n        };\n    }\n    add(locale, message, override = true) {\n        const curMessages = this.messages[locale];\n        if (curMessages) {\n            if (override) {\n                Object.assign(curMessages, message);\n            }\n            else {\n                Object.keys(message).forEach((key) => {\n                    if (!hasOwn(curMessages, key)) {\n                        curMessages[key] = message[key];\n                    }\n                });\n            }\n        }\n        else {\n            this.messages[locale] = message;\n        }\n    }\n    f(message, values, delimiters) {\n        return this.formater.interpolate(message, values, delimiters).join('');\n    }\n    t(key, locale, values) {\n        let message = this.message;\n        if (typeof locale === 'string') {\n            locale = normalizeLocale(locale, this.messages);\n            locale && (message = this.messages[locale]);\n        }\n        else {\n            values = locale;\n        }\n        if (!hasOwn(message, key)) {\n            console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\n            return key;\n        }\n        return this.formater.interpolate(message[key], values).join('');\n    }\n}\n\nfunction watchAppLocale(appVm, i18n) {\n    // 需要保证 watch 的触发在组件渲染之前\n    if (appVm.$watchLocale) {\n        // vue2\n        appVm.$watchLocale((newLocale) => {\n            i18n.setLocale(newLocale);\n        });\n    }\n    else {\n        appVm.$watch(() => appVm.$locale, (newLocale) => {\n            i18n.setLocale(newLocale);\n        });\n    }\n}\nfunction getDefaultLocale() {\n    if (typeof uni !== 'undefined' && uni.getLocale) {\n        return uni.getLocale();\n    }\n    // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\n    if (typeof global !== 'undefined' && global.getLocale) {\n        return global.getLocale();\n    }\n    return LOCALE_EN;\n}\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\n    // 兼容旧版本入参\n    if (typeof locale !== 'string') {\n        // ;[locale, messages] = [\n        //   messages as unknown as string,\n        //   locale as unknown as LocaleMessages,\n        // ]\n        // 暂不使用数组解构,uts编译器暂未支持。\n        const options = [\n            messages,\n            locale,\n        ];\n        locale = options[0];\n        messages = options[1];\n    }\n    if (typeof locale !== 'string') {\n        // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\n        locale = getDefaultLocale();\n    }\n    if (typeof fallbackLocale !== 'string') {\n        fallbackLocale =\n            (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\n                LOCALE_EN;\n    }\n    const i18n = new I18n({\n        locale,\n        fallbackLocale,\n        messages,\n        watcher,\n    });\n    let t = (key, values) => {\n        if (typeof getApp !== 'function') {\n            // app view\n            /* eslint-disable no-func-assign */\n            t = function (key, values) {\n                return i18n.t(key, values);\n            };\n        }\n        else {\n            let isWatchedAppLocale = false;\n            t = function (key, values) {\n                const appVm = getApp().$vm;\n                // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\n                // options: {\n                // \ttype: Array,\n                // \tdefault () {\n                // \t\treturn [{\n                // \t\t\ticon: 'shop',\n                // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\n                // \t\t}, {\n                // \t\t\ticon: 'cart',\n                // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\n                // \t\t}]\n                // \t}\n                // },\n                if (appVm) {\n                    // 触发响应式\n                    appVm.$locale;\n                    if (!isWatchedAppLocale) {\n                        isWatchedAppLocale = true;\n                        watchAppLocale(appVm, i18n);\n                    }\n                }\n                return i18n.t(key, values);\n            };\n        }\n        return t(key, values);\n    };\n    return {\n        i18n,\n        f(message, values, delimiters) {\n            return i18n.f(message, values, delimiters);\n        },\n        t(key, values) {\n            return t(key, values);\n        },\n        add(locale, message, override = true) {\n            return i18n.add(locale, message, override);\n        },\n        watch(fn) {\n            return i18n.watchLocale(fn);\n        },\n        getLocale() {\n            return i18n.getLocale();\n        },\n        setLocale(newLocale) {\n            return i18n.setLocale(newLocale);\n        },\n    };\n}\n\nconst isString = (val) => typeof val === 'string';\nlet formater;\nfunction hasI18nJson(jsonObj, delimiters) {\n    if (!formater) {\n        formater = new BaseFormatter();\n    }\n    return walkJsonObj(jsonObj, (jsonObj, key) => {\n        const value = jsonObj[key];\n        if (isString(value)) {\n            if (isI18nStr(value, delimiters)) {\n                return true;\n            }\n        }\n        else {\n            return hasI18nJson(value, delimiters);\n        }\n    });\n}\nfunction parseI18nJson(jsonObj, values, delimiters) {\n    if (!formater) {\n        formater = new BaseFormatter();\n    }\n    walkJsonObj(jsonObj, (jsonObj, key) => {\n        const value = jsonObj[key];\n        if (isString(value)) {\n            if (isI18nStr(value, delimiters)) {\n                jsonObj[key] = compileStr(value, values, delimiters);\n            }\n        }\n        else {\n            parseI18nJson(value, values, delimiters);\n        }\n    });\n    return jsonObj;\n}\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\n    if (!isI18nStr(jsonStr, delimiters)) {\n        return jsonStr;\n    }\n    if (!formater) {\n        formater = new BaseFormatter();\n    }\n    const localeValues = [];\n    Object.keys(locales).forEach((name) => {\n        if (name !== locale) {\n            localeValues.push({\n                locale: name,\n                values: locales[name],\n            });\n        }\n    });\n    localeValues.unshift({ locale, values: locales[locale] });\n    try {\n        return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\n    }\n    catch (e) { }\n    return jsonStr;\n}\nfunction isI18nStr(value, delimiters) {\n    return value.indexOf(delimiters[0]) > -1;\n}\nfunction compileStr(value, values, delimiters) {\n    return formater.interpolate(value, values, delimiters).join('');\n}\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\n    const value = jsonObj[key];\n    if (isString(value)) {\n        // 存在国际化\n        if (isI18nStr(value, delimiters)) {\n            jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\n            if (localeValues.length > 1) {\n                // 格式化国际化语言\n                const valueLocales = (jsonObj[key + 'Locales'] = {});\n                localeValues.forEach((localValue) => {\n                    valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\n                });\n            }\n        }\n    }\n    else {\n        compileJsonObj(value, localeValues, delimiters);\n    }\n}\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\n    walkJsonObj(jsonObj, (jsonObj, key) => {\n        compileValue(jsonObj, key, localeValues, delimiters);\n    });\n    return jsonObj;\n}\nfunction walkJsonObj(jsonObj, walk) {\n    if (Array.isArray(jsonObj)) {\n        for (let i = 0; i < jsonObj.length; i++) {\n            if (walk(jsonObj, i)) {\n                return true;\n            }\n        }\n    }\n    else if (isObject(jsonObj)) {\n        for (const key in jsonObj) {\n            if (walk(jsonObj, key)) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\nfunction resolveLocale(locales) {\n    return (locale) => {\n        if (!locale) {\n            return locale;\n        }\n        locale = normalizeLocale(locale) || locale;\n        return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\n    };\n}\nfunction resolveLocaleChain(locale) {\n    const chain = [];\n    const tokens = locale.split('-');\n    while (tokens.length) {\n        chain.push(tokens.join('-'));\n        tokens.pop();\n    }\n    return chain;\n}\n\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\n","import { isHTMLTag, isSVGTag, isString, isFunction, isPlainObject, hyphenate, camelize, normalizeStyle as normalizeStyle$1, parseStringStyle, isArray, normalizeClass as normalizeClass$1, extend, capitalize } from '@vue/shared';\n\nconst BUILT_IN_TAG_NAMES = [\n    'ad',\n    'ad-content-page',\n    'ad-draw',\n    'audio',\n    'button',\n    'camera',\n    'canvas',\n    'checkbox',\n    'checkbox-group',\n    'cover-image',\n    'cover-view',\n    'editor',\n    'form',\n    'functional-page-navigator',\n    'icon',\n    'image',\n    'input',\n    'label',\n    'live-player',\n    'live-pusher',\n    'map',\n    'movable-area',\n    'movable-view',\n    'navigator',\n    'official-account',\n    'open-data',\n    'picker',\n    'picker-view',\n    'picker-view-column',\n    'progress',\n    'radio',\n    'radio-group',\n    'rich-text',\n    'scroll-view',\n    'slider',\n    'swiper',\n    'swiper-item',\n    'switch',\n    'text',\n    'textarea',\n    'video',\n    'view',\n    'web-view',\n    'location-picker',\n    'location-view',\n];\nconst BUILT_IN_TAGS = BUILT_IN_TAG_NAMES.map((tag) => 'uni-' + tag);\nconst TAGS = [\n    'app',\n    'layout',\n    'content',\n    'main',\n    'top-window',\n    'left-window',\n    'right-window',\n    'tabbar',\n    'page',\n    'page-head',\n    'page-wrapper',\n    'page-body',\n    'page-refresh',\n    'actionsheet',\n    'modal',\n    'toast',\n    'resize-sensor',\n    'shadow-root',\n].map((tag) => 'uni-' + tag);\nconst NVUE_BUILT_IN_TAGS = [\n    'svg',\n    'view',\n    'a',\n    'div',\n    'img',\n    'image',\n    'text',\n    'span',\n    'input',\n    'textarea',\n    'spinner',\n    'select',\n    // slider 被自定义 u-slider 替代\n    // 'slider',\n    'slider-neighbor',\n    'indicator',\n    'canvas',\n    'list',\n    'cell',\n    'header',\n    'loading',\n    'loading-indicator',\n    'refresh',\n    'scrollable',\n    'scroller',\n    'video',\n    'web',\n    'embed',\n    'tabbar',\n    'tabheader',\n    'datepicker',\n    'timepicker',\n    'marquee',\n    'countdown',\n    'dc-switch',\n    'waterfall',\n    'richtext',\n    'recycle-list',\n    'u-scalable',\n    'barcode',\n    'gcanvas',\n];\nconst UVUE_BUILT_IN_TAGS = [\n    'ad',\n    'ad-content-page',\n    'ad-draw',\n    'native-view',\n    'loading-indicator',\n    'list-view',\n    'list-item',\n    'swiper',\n    'swiper-item',\n    'rich-text',\n    'sticky-view',\n    'sticky-header',\n    'sticky-section',\n    // 自定义\n    'uni-slider',\n    // 原生实现\n    'button',\n    'nested-scroll-header',\n    'nested-scroll-body',\n    'waterflow',\n    'flow-item',\n    'share-element',\n    'cover-view',\n    'cover-image',\n];\nconst UVUE_WEB_BUILT_IN_TAGS = [\n    'list-view',\n    'list-item',\n    'sticky-section',\n    'sticky-header',\n    'cloud-db-element',\n].map((tag) => 'uni-' + tag);\nconst UVUE_IOS_BUILT_IN_TAGS = [\n    'scroll-view',\n    'web-view',\n    'slider',\n    'form',\n    'switch',\n];\nconst UVUE_HARMONY_BUILT_IN_TAGS = [\n    // TODO 列出完整列表\n    ...BUILT_IN_TAG_NAMES,\n];\nconst NVUE_U_BUILT_IN_TAGS = [\n    'u-text',\n    'u-image',\n    'u-input',\n    'u-textarea',\n    'u-video',\n    'u-web-view',\n    'u-slider',\n    'u-ad',\n    'u-ad-draw',\n    'u-rich-text',\n];\nconst UNI_UI_CONFLICT_TAGS = ['list-item'].map((tag) => 'uni-' + tag);\nfunction isBuiltInComponent(tag) {\n    if (UNI_UI_CONFLICT_TAGS.indexOf(tag) !== -1) {\n        return false;\n    }\n    // h5 平台会被转换为 v-uni-\n    const realTag = 'uni-' + tag.replace('v-uni-', '');\n    // TODO 区分x和非x\n    return (BUILT_IN_TAGS.indexOf(realTag) !== -1 ||\n        UVUE_WEB_BUILT_IN_TAGS.indexOf(realTag) !== -1);\n}\nfunction isH5CustomElement(tag, isX = false) {\n    if (isX && UVUE_WEB_BUILT_IN_TAGS.indexOf(tag) !== -1) {\n        return true;\n    }\n    return TAGS.indexOf(tag) !== -1 || BUILT_IN_TAGS.indexOf(tag) !== -1;\n}\nfunction isUniXElement(name) {\n    return /^I?Uni.*Element(?:Impl)?$/.test(name);\n}\nfunction isH5NativeTag(tag) {\n    return (tag !== 'head' &&\n        (isHTMLTag(tag) || isSVGTag(tag)) &&\n        !isBuiltInComponent(tag));\n}\nfunction isAppNativeTag(tag) {\n    return isHTMLTag(tag) || isSVGTag(tag) || isBuiltInComponent(tag);\n}\nconst NVUE_CUSTOM_COMPONENTS = [\n    'ad',\n    'ad-draw',\n    'button',\n    'checkbox-group',\n    'checkbox',\n    'form',\n    'icon',\n    'label',\n    'movable-area',\n    'movable-view',\n    'navigator',\n    'picker',\n    'progress',\n    'radio-group',\n    'radio',\n    'rich-text',\n    'swiper-item',\n    'swiper',\n    'switch',\n    'slider',\n    'picker-view',\n    'picker-view-column',\n];\n// 内置的easycom组件\nconst UVUE_BUILT_IN_EASY_COMPONENTS = ['map'];\nfunction isAppUVueBuiltInEasyComponent(tag) {\n    return UVUE_BUILT_IN_EASY_COMPONENTS.includes(tag);\n}\n// 主要是指前端实现的组件列表\nconst UVUE_CUSTOM_COMPONENTS = [\n    ...NVUE_CUSTOM_COMPONENTS,\n    ...UVUE_BUILT_IN_EASY_COMPONENTS,\n];\nfunction isAppUVueNativeTag(tag) {\n    // 前端实现的内置组件都会注册一个根组件\n    if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n        return true;\n    }\n    if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    if (UVUE_CUSTOM_COMPONENTS.includes(tag)) {\n        return false;\n    }\n    if (isBuiltInComponent(tag)) {\n        return true;\n    }\n    // u-text,u-video...\n    if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    return false;\n}\nfunction isAppIOSUVueNativeTag(tag) {\n    // 前端实现的内置组件都会注册一个根组件\n    if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n        return true;\n    }\n    if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    if (UVUE_IOS_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    return false;\n}\nfunction isAppHarmonyUVueNativeTag(tag) {\n    // 前端实现的内置组件都会注册一个根组件\n    if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n        return true;\n    }\n    if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    if (UVUE_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    if (UVUE_HARMONY_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    return false;\n}\nfunction isAppNVueNativeTag(tag) {\n    if (NVUE_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    if (NVUE_CUSTOM_COMPONENTS.includes(tag)) {\n        return false;\n    }\n    if (isBuiltInComponent(tag)) {\n        return true;\n    }\n    // u-text,u-video...\n    if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\n        return true;\n    }\n    return false;\n}\nfunction isMiniProgramNativeTag(tag) {\n    return isBuiltInComponent(tag);\n}\nfunction isMiniProgramUVueNativeTag(tag) {\n    // 小程序平台内置的自定义元素,会被转换为 view\n    if (tag.startsWith('uni-') && tag.endsWith('-element')) {\n        return true;\n    }\n    return isBuiltInComponent(tag);\n}\nfunction createIsCustomElement(tags = []) {\n    return function isCustomElement(tag) {\n        return tags.includes(tag);\n    };\n}\nfunction isComponentTag(tag) {\n    return tag[0].toLowerCase() + tag.slice(1) === 'component';\n}\nconst COMPONENT_SELECTOR_PREFIX = 'uni-';\nconst COMPONENT_PREFIX = 'v-' + COMPONENT_SELECTOR_PREFIX;\n\nconst LINEFEED = '\\n';\nconst NAVBAR_HEIGHT = 44;\nconst TABBAR_HEIGHT = 50;\nconst ON_REACH_BOTTOM_DISTANCE = 50;\nconst RESPONSIVE_MIN_WIDTH = 768;\nconst UNI_STORAGE_LOCALE = 'UNI_LOCALE';\n// quickapp-webview 不能使用 default 作为插槽名称\nconst SLOT_DEFAULT_NAME = 'd';\nconst COMPONENT_NAME_PREFIX = 'VUni';\nconst I18N_JSON_DELIMITERS = ['%', '%'];\nconst PRIMARY_COLOR = '#007aff';\nconst SELECTED_COLOR = '#0062cc'; // 选中的颜色,如选项卡默认的选中颜色\nconst BACKGROUND_COLOR = '#f7f7f7'; // 背景色,如标题栏默认背景色\nconst UNI_SSR = '__uniSSR';\nconst UNI_SSR_TITLE = 'title';\nconst UNI_SSR_STORE = 'store';\nconst UNI_SSR_DATA = 'data';\nconst UNI_SSR_GLOBAL_DATA = 'globalData';\nconst SCHEME_RE = /^([a-z-]+:)?\\/\\//i;\nconst DATA_RE = /^data:.*,.*/;\nconst WEB_INVOKE_APPSERVICE = 'WEB_INVOKE_APPSERVICE';\nconst WXS_PROTOCOL = 'wxs://';\nconst JSON_PROTOCOL = 'json://';\nconst WXS_MODULES = 'wxsModules';\nconst RENDERJS_MODULES = 'renderjsModules';\n// lifecycle\n// App and Page\nconst ON_SHOW = 'onShow';\nconst ON_HIDE = 'onHide';\n//App\nconst ON_LAUNCH = 'onLaunch';\nconst ON_ERROR = 'onError';\nconst ON_THEME_CHANGE = 'onThemeChange';\nconst OFF_THEME_CHANGE = 'offThemeChange';\nconst ON_HOST_THEME_CHANGE = 'onHostThemeChange';\nconst OFF_HOST_THEME_CHANGE = 'offHostThemeChange';\nconst ON_KEYBOARD_HEIGHT_CHANGE = 'onKeyboardHeightChange';\nconst ON_PAGE_NOT_FOUND = 'onPageNotFound';\nconst ON_UNHANDLE_REJECTION = 'onUnhandledRejection';\nconst ON_EXIT = 'onExit';\n//Page\nconst ON_LOAD = 'onLoad';\nconst ON_READY = 'onReady';\nconst ON_UNLOAD = 'onUnload';\n// 百度特有\nconst ON_INIT = 'onInit';\n// 微信特有\nconst ON_SAVE_EXIT_STATE = 'onSaveExitState';\nconst ON_RESIZE = 'onResize';\nconst ON_BACK_PRESS = 'onBackPress';\nconst ON_PAGE_SCROLL = 'onPageScroll';\nconst ON_TAB_ITEM_TAP = 'onTabItemTap';\nconst ON_REACH_BOTTOM = 'onReachBottom';\nconst ON_PULL_DOWN_REFRESH = 'onPullDownRefresh';\nconst ON_SHARE_TIMELINE = 'onShareTimeline';\nconst ON_SHARE_CHAT = 'onShareChat'; // xhs-share\nconst ON_ADD_TO_FAVORITES = 'onAddToFavorites';\nconst ON_SHARE_APP_MESSAGE = 'onShareAppMessage';\n// navigationBar\nconst ON_NAVIGATION_BAR_BUTTON_TAP = 'onNavigationBarButtonTap';\nconst ON_NAVIGATION_BAR_CHANGE = 'onNavigationBarChange';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = 'onNavigationBarSearchInputClicked';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = 'onNavigationBarSearchInputChanged';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = 'onNavigationBarSearchInputConfirmed';\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = 'onNavigationBarSearchInputFocusChanged';\n// framework\nconst ON_APP_ENTER_FOREGROUND = 'onAppEnterForeground';\nconst ON_APP_ENTER_BACKGROUND = 'onAppEnterBackground';\nconst ON_WEB_INVOKE_APP_SERVICE = 'onWebInvokeAppService';\nconst ON_WXS_INVOKE_CALL_METHOD = 'onWxsInvokeCallMethod';\n// mergeVirtualHostAttributes\nconst VIRTUAL_HOST_STYLE = 'virtualHostStyle';\nconst VIRTUAL_HOST_CLASS = 'virtualHostClass';\nconst VIRTUAL_HOST_HIDDEN = 'virtualHostHidden';\nconst VIRTUAL_HOST_ID = 'virtualHostId';\n\nfunction cache(fn) {\n    const cache = Object.create(null);\n    return (str) => {\n        const hit = cache[str];\n        return hit || (cache[str] = fn(str));\n    };\n}\nfunction cacheStringFunction(fn) {\n    return cache(fn);\n}\nfunction getLen(str = '') {\n    return ('' + str).replace(/[^\\x00-\\xff]/g, '**').length;\n}\nfunction hasLeadingSlash(str) {\n    return str.indexOf('/') === 0;\n}\nfunction addLeadingSlash(str) {\n    return hasLeadingSlash(str) ? str : '/' + str;\n}\nfunction removeLeadingSlash(str) {\n    return hasLeadingSlash(str) ? str.slice(1) : str;\n}\nconst invokeArrayFns = (fns, arg) => {\n    let ret;\n    for (let i = 0; i < fns.length; i++) {\n        ret = fns[i](arg);\n    }\n    return ret;\n};\nfunction updateElementStyle(element, styles) {\n    for (const attrName in styles) {\n        element.style[attrName] = styles[attrName];\n    }\n}\nfunction once(fn, ctx = null) {\n    let res;\n    return ((...args) => {\n        if (fn) {\n            res = fn.apply(ctx, args);\n            fn = null;\n        }\n        return res;\n    });\n}\nconst sanitise = (val) => (val && JSON.parse(JSON.stringify(val))) || val;\nconst _completeValue = (value) => (value > 9 ? value : '0' + value);\nfunction formatDateTime({ date = new Date(), mode = 'date' }) {\n    if (mode === 'time') {\n        return (_completeValue(date.getHours()) + ':' + _completeValue(date.getMinutes()));\n    }\n    else {\n        return (date.getFullYear() +\n            '-' +\n            _completeValue(date.getMonth() + 1) +\n            '-' +\n            _completeValue(date.getDate()));\n    }\n}\nfunction callOptions(options, data) {\n    options = options || {};\n    if (isString(data)) {\n        data = {\n            errMsg: data,\n        };\n    }\n    if (/:ok$/.test(data.errMsg)) {\n        if (isFunction(options.success)) {\n            options.success(data);\n        }\n    }\n    else {\n        if (isFunction(options.fail)) {\n            options.fail(data);\n        }\n    }\n    if (isFunction(options.complete)) {\n        options.complete(data);\n    }\n}\nfunction getValueByDataPath(obj, path) {\n    if (!isString(path)) {\n        return;\n    }\n    path = path.replace(/\\[(\\d+)\\]/g, '.$1');\n    const parts = path.split('.');\n    let key = parts[0];\n    if (!obj) {\n        obj = {};\n    }\n    if (parts.length === 1) {\n        return obj[key];\n    }\n    return getValueByDataPath(obj[key], parts.slice(1).join('.'));\n}\nfunction sortObject(obj) {\n    let sortObj = {};\n    if (isPlainObject(obj)) {\n        Object.keys(obj)\n            .sort()\n            .forEach((key) => {\n            const _key = key;\n            sortObj[_key] = obj[_key];\n        });\n    }\n    return !Object.keys(sortObj) ? obj : sortObj;\n}\nfunction getGlobalOnce() {\n    if (typeof globalThis !== 'undefined') {\n        return globalThis;\n    }\n    // worker\n    if (typeof self !== 'undefined') {\n        return self;\n    }\n    // browser\n    if (typeof window !== 'undefined') {\n        return window;\n    }\n    // nodejs\n    // if (typeof global !== 'undefined') {\n    //   return global\n    // }\n    function g() {\n        return this;\n    }\n    if (typeof g() !== 'undefined') {\n        return g();\n    }\n    return (function () {\n        return new Function('return this')();\n    })();\n}\nlet g = undefined;\nfunction getGlobal() {\n    if (g) {\n        return g;\n    }\n    g = getGlobalOnce();\n    return g;\n}\n\nfunction isComponentInternalInstance(vm) {\n    return !!vm.appContext;\n}\nfunction resolveComponentInstance(instance) {\n    return (instance &&\n        (isComponentInternalInstance(instance) ? instance.proxy : instance));\n}\nfunction resolveOwnerVm(vm) {\n    if (!vm) {\n        return;\n    }\n    let componentName = vm.type.name;\n    while (componentName && isBuiltInComponent(hyphenate(componentName))) {\n        // ownerInstance 内置组件需要使用父 vm\n        vm = vm.parent;\n        componentName = vm.type.name;\n    }\n    return vm.proxy;\n}\nfunction isElement(el) {\n    // Element\n    return el.nodeType === 1;\n}\nfunction resolveOwnerEl(instance, multi = false) {\n    const { vnode } = instance;\n    if (isElement(vnode.el)) {\n        return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\n    }\n    const { subTree } = instance;\n    // ShapeFlags.ARRAY_CHILDREN = 1<<4\n    if (subTree.shapeFlag & 16) {\n        const elemVNodes = subTree.children.filter((vnode) => vnode.el && isElement(vnode.el));\n        if (elemVNodes.length > 0) {\n            if (multi) {\n                return elemVNodes.map((node) => node.el);\n            }\n            return elemVNodes[0].el;\n        }\n    }\n    return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\n}\nfunction dynamicSlotName(name) {\n    return name === 'default' ? SLOT_DEFAULT_NAME : name;\n}\nconst customizeRE = /:/g;\nfunction customizeEvent(str) {\n    return camelize(str.replace(customizeRE, '-'));\n}\nfunction normalizeStyle(value) {\n    const g = getGlobal();\n    if (g && g.UTSJSONObject && value instanceof g.UTSJSONObject) {\n        const styleObject = {};\n        g.UTSJSONObject.keys(value).forEach((key) => {\n            styleObject[key] = value[key];\n        });\n        return normalizeStyle$1(styleObject);\n    }\n    else if (value instanceof Map) {\n        const styleObject = {};\n        value.forEach((value, key) => {\n            styleObject[key] = value;\n        });\n        return normalizeStyle$1(styleObject);\n    }\n    else if (isString(value)) {\n        return parseStringStyle(value);\n    }\n    else if (isArray(value)) {\n        const res = {};\n        for (let i = 0; i < value.length; i++) {\n            const item = value[i];\n            const normalized = isString(item)\n                ? parseStringStyle(item)\n                : normalizeStyle(item);\n            if (normalized) {\n                for (const key in normalized) {\n                    res[key] = normalized[key];\n                }\n            }\n        }\n        return res;\n    }\n    else {\n        return normalizeStyle$1(value);\n    }\n}\nfunction normalizeClass(value) {\n    let res = '';\n    const g = getGlobal();\n    if (g && g.UTSJSONObject && value instanceof g.UTSJSONObject) {\n        g.UTSJSONObject.keys(value).forEach((key) => {\n            if (value[key]) {\n                res += key + ' ';\n            }\n        });\n    }\n    else if (value instanceof Map) {\n        value.forEach((value, key) => {\n            if (value) {\n                res += key + ' ';\n            }\n        });\n    }\n    else if (isArray(value)) {\n        for (let i = 0; i < value.length; i++) {\n            const normalized = normalizeClass(value[i]);\n            if (normalized) {\n                res += normalized + ' ';\n            }\n        }\n    }\n    else {\n        res = normalizeClass$1(value);\n    }\n    return res.trim();\n}\nfunction normalizeProps(props) {\n    if (!props)\n        return null;\n    let { class: klass, style } = props;\n    if (klass && !isString(klass)) {\n        props.class = normalizeClass(klass);\n    }\n    if (style) {\n        props.style = normalizeStyle(style);\n    }\n    return props;\n}\n\nlet lastLogTime = 0;\nfunction formatLog(module, ...args) {\n    const now = Date.now();\n    const diff = lastLogTime ? now - lastLogTime : 0;\n    lastLogTime = now;\n    return `[${now}][${diff}ms][${module}]:${args\n        .map((arg) => JSON.stringify(arg))\n        .join(' ')}`;\n}\n\nfunction formatKey(key) {\n    return camelize(key.substring(5));\n}\n// question/139181,增加副作用,避免 initCustomDataset 在 build 下被 tree-shaking\nconst initCustomDatasetOnce = /*#__PURE__*/ once((isBuiltInElement) => {\n    isBuiltInElement =\n        isBuiltInElement || ((el) => el.tagName.startsWith('UNI-'));\n    const prototype = HTMLElement.prototype;\n    const setAttribute = prototype.setAttribute;\n    prototype.setAttribute = function (key, value) {\n        if (key.startsWith('data-') && isBuiltInElement(this)) {\n            const dataset = this.__uniDataset ||\n                (this.__uniDataset = {});\n            dataset[formatKey(key)] = value;\n        }\n        setAttribute.call(this, key, value);\n    };\n    const removeAttribute = prototype.removeAttribute;\n    prototype.removeAttribute = function (key) {\n        if (this.__uniDataset &&\n            key.startsWith('data-') &&\n            isBuiltInElement(this)) {\n            delete this.__uniDataset[formatKey(key)];\n        }\n        removeAttribute.call(this, key);\n    };\n});\nfunction getCustomDataset(el) {\n    return extend({}, el.dataset, el.__uniDataset);\n}\n\nconst unitRE = new RegExp(`\"[^\"]+\"|'[^']+'|url\\\\([^)]+\\\\)|(\\\\d*\\\\.?\\\\d+)[r|u]px`, 'g');\nfunction toFixed(number, precision) {\n    const multiplier = Math.pow(10, precision + 1);\n    const wholeNumber = Math.floor(number * multiplier);\n    return (Math.round(wholeNumber / 10) * 10) / multiplier;\n}\nconst defaultRpx2Unit = {\n    unit: 'rem',\n    unitRatio: 10 / 320,\n    unitPrecision: 5,\n};\nconst defaultMiniProgramRpx2Unit = {\n    unit: 'rpx',\n    unitRatio: 1,\n    unitPrecision: 1,\n};\nconst defaultNVueRpx2Unit = defaultMiniProgramRpx2Unit;\nfunction createRpx2Unit(unit, unitRatio, unitPrecision) {\n    // ignore: rpxCalcIncludeWidth\n    return (val) => val.replace(unitRE, (m, $1) => {\n        if (!$1) {\n            return m;\n        }\n        if (unitRatio === 1) {\n            return `${$1}${unit}`;\n        }\n        const value = toFixed(parseFloat($1) * unitRatio, unitPrecision);\n        return value === 0 ? '0' : `${value}${unit}`;\n    });\n}\n\nfunction passive(passive) {\n    return { passive };\n}\nfunction normalizeDataset(el) {\n    // TODO\n    return JSON.parse(JSON.stringify(el.dataset || {}));\n}\nfunction normalizeTarget(el) {\n    const { id, offsetTop, offsetLeft } = el;\n    return {\n        id,\n        dataset: getCustomDataset(el),\n        offsetTop,\n        offsetLeft,\n    };\n}\nfunction addFont(family, source, desc) {\n    const fonts = document.fonts;\n    if (fonts) {\n        const fontFace = new FontFace(family, source, desc);\n        return fontFace.load().then(() => {\n            fonts.add && fonts.add(fontFace);\n        });\n    }\n    return new Promise((resolve) => {\n        const style = document.createElement('style');\n        const values = [];\n        if (desc) {\n            const { style, weight, stretch, unicodeRange, variant, featureSettings } = desc;\n            style && values.push(`font-style:${style}`);\n            weight && values.push(`font-weight:${weight}`);\n            stretch && values.push(`font-stretch:${stretch}`);\n            unicodeRange && values.push(`unicode-range:${unicodeRange}`);\n            variant && values.push(`font-variant:${variant}`);\n            featureSettings && values.push(`font-feature-settings:${featureSettings}`);\n        }\n        style.innerText = `@font-face{font-family:\"${family}\";src:${source};${values.join(';')}}`;\n        document.head.appendChild(style);\n        resolve();\n    });\n}\nfunction scrollTo(scrollTop, duration, isH5) {\n    if (isString(scrollTop)) {\n        const el = document.querySelector(scrollTop);\n        if (el) {\n            const { top } = el.getBoundingClientRect();\n            scrollTop = top + window.pageYOffset;\n            // 如果存在,减去 <uni-page-head> 高度\n            const pageHeader = document.querySelector('uni-page-head');\n            if (pageHeader) {\n                scrollTop -= pageHeader.offsetHeight;\n            }\n        }\n    }\n    if (scrollTop < 0) {\n        scrollTop = 0;\n    }\n    const documentElement = document.documentElement;\n    const { clientHeight, scrollHeight } = documentElement;\n    scrollTop = Math.min(scrollTop, scrollHeight - clientHeight);\n    if (duration === 0) {\n        // 部分浏览器(比如微信)中 scrollTop 的值需要通过 document.body 来控制\n        documentElement.scrollTop = document.body.scrollTop = scrollTop;\n        return;\n    }\n    if (window.scrollY === scrollTop) {\n        return;\n    }\n    const scrollTo = (duration) => {\n        if (duration <= 0) {\n            window.scrollTo(0, scrollTop);\n            return;\n        }\n        const distaince = scrollTop - window.scrollY;\n        requestAnimationFrame(function () {\n            window.scrollTo(0, window.scrollY + (distaince / duration) * 10);\n            scrollTo(duration - 10);\n        });\n    };\n    scrollTo(duration);\n}\n\nconst encode = encodeURIComponent;\nfunction stringifyQuery(obj, encodeStr = encode) {\n    const res = obj\n        ? Object.keys(obj)\n            .map((key) => {\n            let val = obj[key];\n            if (typeof val === undefined || val === null) {\n                val = '';\n            }\n            else if (isPlainObject(val)) {\n                val = JSON.stringify(val);\n            }\n            return encodeStr(key) + '=' + encodeStr(val);\n        })\n            .filter((x) => x.length > 0)\n            .join('&')\n        : null;\n    return res ? `?${res}` : '';\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n    try {\n        return decodeURIComponent('' + text);\n    }\n    catch (err) { }\n    return '' + text;\n}\nfunction decodedQuery(query = {}) {\n    const decodedQuery = {};\n    Object.keys(query).forEach((name) => {\n        try {\n            decodedQuery[name] = decode(query[name]);\n        }\n        catch (e) {\n            decodedQuery[name] = query[name];\n        }\n    });\n    return decodedQuery;\n}\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * https://github.com/vuejs/vue-router-next/blob/master/src/query.ts\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n    const query = {};\n    // avoid creating an object with an empty key and empty value\n    // because of split('&')\n    if (search === '' || search === '?')\n        return query;\n    const hasLeadingIM = search[0] === '?';\n    const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n    for (let i = 0; i < searchParams.length; ++i) {\n        // pre decode the + into space\n        const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n        // allow the = character\n        let eqPos = searchParam.indexOf('=');\n        let key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n        let value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n        if (key in query) {\n            // an extra variable for ts types\n            let currentValue = query[key];\n            if (!isArray(currentValue)) {\n                currentValue = query[key] = [currentValue];\n            }\n            currentValue.push(value);\n        }\n        else {\n            query[key] = value;\n        }\n    }\n    return query;\n}\n\nfunction parseUrl(url) {\n    const [path, querystring] = url.split('?', 2);\n    return {\n        path,\n        query: parseQuery(querystring || ''),\n    };\n}\n\nfunction parseNVueDataset(attr) {\n    const dataset = {};\n    if (attr) {\n        Object.keys(attr).forEach((key) => {\n            if (key.indexOf('data-') === 0) {\n                dataset[key.replace('data-', '')] = attr[key];\n            }\n        });\n    }\n    return dataset;\n}\n\nfunction plusReady(callback) {\n    if (!isFunction(callback)) {\n        return;\n    }\n    if (window.plus) {\n        return callback();\n    }\n    document.addEventListener('plusready', callback);\n}\n\nclass DOMException extends Error {\n    constructor(message) {\n        super(message);\n        this.name = 'DOMException';\n    }\n}\n\nfunction normalizeEventType(type, options) {\n    if (options) {\n        if (options.capture) {\n            type += 'Capture';\n        }\n        if (options.once) {\n            type += 'Once';\n        }\n        if (options.passive) {\n            type += 'Passive';\n        }\n    }\n    return `on${capitalize(camelize(type))}`;\n}\nclass UniEvent {\n    constructor(type, opts) {\n        this.defaultPrevented = false;\n        this.timeStamp = Date.now();\n        this._stop = false;\n        this._end = false;\n        this.type = type;\n        this.bubbles = !!opts.bubbles;\n        this.cancelable = !!opts.cancelable;\n    }\n    preventDefault() {\n        this.defaultPrevented = true;\n    }\n    stopImmediatePropagation() {\n        this._end = this._stop = true;\n    }\n    stopPropagation() {\n        this._stop = true;\n    }\n}\nfunction createUniEvent(evt) {\n    if (evt instanceof UniEvent) {\n        return evt;\n    }\n    const [type] = parseEventName(evt.type);\n    const uniEvent = new UniEvent(type, {\n        bubbles: false,\n        cancelable: false,\n    });\n    extend(uniEvent, evt);\n    return uniEvent;\n}\nclass UniEventTarget {\n    constructor() {\n        this.listeners = Object.create(null);\n    }\n    dispatchEvent(evt) {\n        const listeners = this.listeners[evt.type];\n        if (!listeners) {\n            if ((process.env.NODE_ENV !== 'production')) {\n                console.error(formatLog('dispatchEvent', this.nodeId), evt.type, 'not found');\n            }\n            return false;\n        }\n        // 格式化事件类型\n        const event = createUniEvent(evt);\n        const len = listeners.length;\n        for (let i = 0; i < len; i++) {\n            listeners[i].call(this, event);\n            if (event._end) {\n                break;\n            }\n        }\n        return event.cancelable && event.defaultPrevented;\n    }\n    addEventListener(type, listener, options) {\n        type = normalizeEventType(type, options);\n        (this.listeners[type] || (this.listeners[type] = [])).push(listener);\n    }\n    removeEventListener(type, callback, options) {\n        type = normalizeEventType(type, options);\n        const listeners = this.listeners[type];\n        if (!listeners) {\n            return;\n        }\n        const index = listeners.indexOf(callback);\n        if (index > -1) {\n            listeners.splice(index, 1);\n        }\n    }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseEventName(name) {\n    let options;\n    if (optionsModifierRE.test(name)) {\n        options = {};\n        let m;\n        while ((m = name.match(optionsModifierRE))) {\n            name = name.slice(0, name.length - m[0].length);\n            options[m[0].toLowerCase()] = true;\n        }\n    }\n    return [hyphenate(name.slice(2)), options];\n}\n\nconst EventModifierFlags = /*#__PURE__*/ (() => {\n    return {\n        stop: 1,\n        prevent: 1 << 1,\n        self: 1 << 2,\n    };\n})();\nfunction encodeModifier(modifiers) {\n    let flag = 0;\n    if (modifiers.includes('stop')) {\n        flag |= EventModifierFlags.stop;\n    }\n    if (modifiers.includes('prevent')) {\n        flag |= EventModifierFlags.prevent;\n    }\n    if (modifiers.includes('self')) {\n        flag |= EventModifierFlags.self;\n    }\n    return flag;\n}\n\nconst NODE_TYPE_PAGE = 0;\nconst NODE_TYPE_ELEMENT = 1;\nconst NODE_TYPE_TEXT = 3;\nconst NODE_TYPE_COMMENT = 8;\nfunction sibling(node, type) {\n    const { parentNode } = node;\n    if (!parentNode) {\n        return null;\n    }\n    const { childNodes } = parentNode;\n    return childNodes[childNodes.indexOf(node) + (type === 'n' ? 1 : -1)] || null;\n}\nfunction removeNode(node) {\n    const { parentNode } = node;\n    if (parentNode) {\n        const { childNodes } = parentNode;\n        const index = childNodes.indexOf(node);\n        if (index > -1) {\n            node.parentNode = null;\n            childNodes.splice(index, 1);\n        }\n    }\n}\nfunction checkNodeId(node) {\n    if (!node.nodeId && node.pageNode) {\n        node.nodeId = node.pageNode.genId();\n    }\n}\n// 为优化性能,各平台不使用proxy来实现node的操作拦截,而是直接通过pageNode定制\nclass UniNode extends UniEventTarget {\n    constructor(nodeType, nodeName, container) {\n        super();\n        this.pageNode = null;\n        this.parentNode = null;\n        this._text = null;\n        if (container) {\n            const { pageNode } = container;\n            if (pageNode) {\n                this.pageNode = pageNode;\n                this.nodeId = pageNode.genId();\n                !pageNode.isUnmounted && pageNode.onCreate(this, nodeName);\n            }\n        }\n        this.nodeType = nodeType;\n        this.nodeName = nodeName;\n        this.childNodes = [];\n    }\n    get firstChild() {\n        return this.childNodes[0] || null;\n    }\n    get lastChild() {\n        const { childNodes } = this;\n        const length = childNodes.length;\n        return length ? childNodes[length - 1] : null;\n    }\n    get nextSibling() {\n        return sibling(this, 'n');\n    }\n    get nodeValue() {\n        return null;\n    }\n    set nodeValue(_val) { }\n    get textContent() {\n        return this._text || '';\n    }\n    set textContent(text) {\n        this._text = text;\n        if (this.pageNode && !this.pageNode.isUnmounted) {\n            this.pageNode.onTextContent(this, text);\n        }\n    }\n    get parentElement() {\n        const { parentNode } = this;\n        if (parentNode && parentNode.nodeType === NODE_TYPE_ELEMENT) {\n            return parentNode;\n        }\n        return null;\n    }\n    get previousSibling() {\n        return sibling(this, 'p');\n    }\n    appendChild(newChild) {\n        return this.insertBefore(newChild, null);\n    }\n    cloneNode(deep) {\n        const cloned = extend(Object.create(Object.getPrototypeOf(this)), this);\n        const { attributes } = cloned;\n        if (attributes) {\n            cloned.attributes = extend({}, attributes);\n        }\n        if (deep) {\n            cloned.childNodes = cloned.childNodes.map((childNode) => childNode.cloneNode(true));\n        }\n        return cloned;\n    }\n    insertBefore(newChild, refChild) {\n        // 先从现在的父节点移除(注意:不能触发onRemoveChild,否则会生成先remove该 id,再 insert)\n        removeNode(newChild);\n        newChild.pageNode = this.pageNode;\n        newChild.parentNode = this;\n        checkNodeId(newChild);\n        const { childNodes } = this;\n        if (refChild) {\n            const index = childNodes.indexOf(refChild);\n            if (index === -1) {\n                throw new DOMException(`Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.`);\n            }\n            childNodes.splice(index, 0, newChild);\n        }\n        else {\n            childNodes.push(newChild);\n        }\n        return this.pageNode && !this.pageNode.isUnmounted\n            ? this.pageNode.onInsertBefore(this, newChild, refChild)\n            : newChild;\n    }\n    removeChild(oldChild) {\n        const { childNodes } = this;\n        const index = childNodes.indexOf(oldChild);\n        if (index === -1) {\n            throw new DOMException(`Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.`);\n        }\n        oldChild.parentNode = null;\n        childNodes.splice(index, 1);\n        return this.pageNode && !this.pageNode.isUnmounted\n            ? this.pageNode.onRemoveChild(oldChild)\n            : oldChild;\n    }\n}\nconst ATTR_CLASS = 'class';\nconst ATTR_STYLE = 'style';\nconst ATTR_INNER_HTML = 'innerHTML';\nconst ATTR_TEXT_CONTENT = 'textContent';\nconst ATTR_V_SHOW = '.vShow';\nconst ATTR_V_OWNER_ID = '.vOwnerId';\nconst ATTR_V_RENDERJS = '.vRenderjs';\nconst ATTR_CHANGE_PREFIX = 'change:';\nclass UniBaseNode extends UniNode {\n    constructor(nodeType, nodeName, container) {\n        super(nodeType, nodeName, container);\n        this.attributes = Object.create(null);\n        this.style = null;\n        this.vShow = null;\n        this._html = null;\n    }\n    get className() {\n        return (this.attributes[ATTR_CLASS] || '');\n    }\n    set className(val) {\n        this.setAttribute(ATTR_CLASS, val);\n    }\n    get innerHTML() {\n        return '';\n    }\n    set innerHTML(html) {\n        this._html = html;\n    }\n    addEventListener(type, listener, options) {\n        super.addEventListener(type, listener, options);\n        if (this.pageNode && !this.pageNode.isUnmounted) {\n            if (listener.wxsEvent) {\n                this.pageNode.onAddWxsEvent(this, normalizeEventType(type, options), listener.wxsEvent, encodeModifier(listener.modifiers || []));\n            }\n            else {\n                this.pageNode.onAddEvent(this, normalizeEventType(type, options), encodeModifier(listener.modifiers || []));\n            }\n        }\n    }\n    removeEventListener(type, callback, options) {\n        super.removeEventListener(type, callback, options);\n        if (this.pageNode && !this.pageNode.isUnmounted) {\n            this.pageNode.onRemoveEvent(this, normalizeEventType(type, options));\n        }\n    }\n    getAttribute(qualifiedName) {\n        if (qualifiedName === ATTR_STYLE) {\n            return this.style;\n        }\n        return this.attributes[qualifiedName];\n    }\n    removeAttribute(qualifiedName) {\n        if (qualifiedName == ATTR_STYLE) {\n            this.style = null;\n        }\n        else {\n            delete this.attributes[qualifiedName];\n        }\n        if (this.pageNode && !this.pageNode.isUnmounted) {\n            this.pageNode.onRemoveAttribute(this, qualifiedName);\n        }\n    }\n    setAttribute(qualifiedName, value) {\n        if (qualifiedName === ATTR_STYLE) {\n            this.style = value;\n        }\n        else {\n            this.attributes[qualifiedName] = value;\n        }\n        if (this.pageNode && !this.pageNode.isUnmounted) {\n            this.pageNode.onSetAttribute(this, qualifiedName, value);\n        }\n    }\n    toJSON({ attr, normalize, } = {}) {\n        const { attributes, style, listeners, _text } = this;\n        const res = {};\n        if (Object.keys(attributes).length) {\n            res.a = normalize ? normalize(attributes) : attributes;\n        }\n        const events = Object.keys(listeners);\n        if (events.length) {\n            let w = undefined;\n            const e = {};\n            events.forEach((name) => {\n                const handlers = listeners[name];\n                if (handlers.length) {\n                    // 可能存在多个 handler 且不同 modifiers 吗?\n                    const { wxsEvent, modifiers } = handlers[0];\n                    const modifier = encodeModifier(modifiers || []);\n                    if (!wxsEvent) {\n                        e[name] = modifier;\n                    }\n                    else {\n                        if (!w) {\n                            w = {};\n                        }\n                        w[name] = [normalize ? normalize(wxsEvent) : wxsEvent, modifier];\n                    }\n                }\n            });\n            res.e = normalize ? normalize(e, false) : e;\n            if (w) {\n                res.w = normalize ? normalize(w, false) : w;\n            }\n        }\n        if (style !== null) {\n            res.s = normalize ? normalize(style) : style;\n        }\n        if (!attr) {\n            res.i = this.nodeId;\n            res.n = this.nodeName;\n        }\n        if (_text !== null) {\n            res.t = normalize ? normalize(_text) : _text;\n        }\n        return res;\n    }\n}\n\nclass UniCommentNode extends UniNode {\n    constructor(text, container) {\n        super(NODE_TYPE_COMMENT, '#comment', container);\n        this._text = (process.env.NODE_ENV !== 'production') ? text : '';\n    }\n    toJSON(opts = {}) {\n        // 暂时不传递 text 到 view 层,没啥意义,节省点数据量\n        return opts.attr\n            ? {}\n            : {\n                i: this.nodeId,\n            };\n        // return opts.attr\n        //   ? { t: this._text as string }\n        //   : {\n        //       i: this.nodeId!,\n        //       t: this._text as string,\n        //     }\n    }\n}\n\nclass UniElement extends UniBaseNode {\n    constructor(nodeName, container) {\n        super(NODE_TYPE_ELEMENT, nodeName.toUpperCase(), container);\n        this.tagName = this.nodeName;\n    }\n}\nclass UniInputElement extends UniElement {\n    get value() {\n        return this.getAttribute('value');\n    }\n    set value(val) {\n        this.setAttribute('value', val);\n    }\n}\nclass UniTextAreaElement extends UniInputElement {\n}\n\nclass UniTextNode extends UniBaseNode {\n    constructor(text, container) {\n        super(NODE_TYPE_TEXT, '#text', container);\n        this._text = text;\n    }\n    get nodeValue() {\n        return this._text || '';\n    }\n    set nodeValue(text) {\n        this._text = text;\n        if (this.pageNode && !this.pageNode.isUnmounted) {\n            this.pageNode.onNodeValue(this, text);\n        }\n    }\n}\n\nconst forcePatchProps = {\n    AD: ['data'],\n    'AD-DRAW': ['data'],\n    'LIVE-PLAYER': ['picture-in-picture-mode'],\n    MAP: [\n        'markers',\n        'polyline',\n        'circles',\n        'controls',\n        'include-points',\n        'polygons',\n    ],\n    PICKER: ['range', 'value'],\n    'PICKER-VIEW': ['value'],\n    'RICH-TEXT': ['nodes'],\n    VIDEO: ['danmu-list', 'header'],\n    'WEB-VIEW': ['webview-styles'],\n};\nconst forcePatchPropKeys = ['animation'];\n\nconst forcePatchProp = (el, key) => {\n    if (forcePatchPropKeys.indexOf(key) > -1) {\n        return true;\n    }\n    const keys = forcePatchProps[el.nodeName];\n    if (keys && keys.indexOf(key) > -1) {\n        return true;\n    }\n    return false;\n};\n\nconst ACTION_TYPE_PAGE_CREATE = 1;\nconst ACTION_TYPE_PAGE_CREATED = 2;\nconst ACTION_TYPE_CREATE = 3;\nconst ACTION_TYPE_INSERT = 4;\nconst ACTION_TYPE_REMOVE = 5;\nconst ACTION_TYPE_SET_ATTRIBUTE = 6;\nconst ACTION_TYPE_REMOVE_ATTRIBUTE = 7;\nconst ACTION_TYPE_ADD_EVENT = 8;\nconst ACTION_TYPE_REMOVE_EVENT = 9;\nconst ACTION_TYPE_SET_TEXT = 10;\nconst ACTION_TYPE_ADD_WXS_EVENT = 12;\nconst ACTION_TYPE_PAGE_SCROLL = 15;\nconst ACTION_TYPE_EVENT = 20;\n\n/**\n * 需要手动传入 timer,主要是解决 App 平台的定制 timer\n */\nfunction debounce(fn, delay, { clearTimeout, setTimeout }) {\n    let timeout;\n    const newFn = function () {\n        clearTimeout(timeout);\n        const timerFn = () => fn.apply(this, arguments);\n        timeout = setTimeout(timerFn, delay);\n    };\n    newFn.cancel = function () {\n        clearTimeout(timeout);\n    };\n    return newFn;\n}\n\nclass EventChannel {\n    constructor(id, events) {\n        this.id = id;\n        this.listener = {};\n        this.emitCache = [];\n        if (events) {\n            Object.keys(events).forEach((name) => {\n                this.on(name, events[name]);\n            });\n        }\n    }\n    emit(eventName, ...args) {\n        const fns = this.listener[eventName];\n        if (!fns) {\n            return this.emitCache.push({\n                eventName,\n                args,\n            });\n        }\n        fns.forEach((opt) => {\n            opt.fn.apply(opt.fn, args);\n        });\n        this.listener[eventName] = fns.filter((opt) => opt.type !== 'once');\n    }\n    on(eventName, fn) {\n        this._addListener(eventName, 'on', fn);\n        this._clearCache(eventName);\n    }\n    once(eventName, fn) {\n        this._addListener(eventName, 'once', fn);\n        this._clearCache(eventName);\n    }\n    off(eventName, fn) {\n        const fns = this.listener[eventName];\n        if (!fns) {\n            return;\n        }\n        if (fn) {\n            for (let i = 0; i < fns.length;) {\n                if (fns[i].fn === fn) {\n                    fns.splice(i, 1);\n                    i--;\n                }\n                i++;\n            }\n        }\n        else {\n            delete this.listener[eventName];\n        }\n    }\n    _clearCache(eventName) {\n        for (let index = 0; index < this.emitCache.length; index++) {\n            const cache = this.emitCache[index];\n            const _name = eventName\n                ? cache.eventName === eventName\n                    ? eventName\n                    : null\n                : cache.eventName;\n            if (!_name)\n                continue;\n            const location = this.emit.apply(this, [_name, ...cache.args]);\n            if (typeof location === 'number') {\n                this.emitCache.pop();\n                continue;\n            }\n            this.emitCache.splice(index, 1);\n            index--;\n        }\n    }\n    _addListener(eventName, type, fn) {\n        (this.listener[eventName] || (this.listener[eventName] = [])).push({\n            fn,\n            type,\n        });\n    }\n}\n\nconst PAGE_HOOKS = [\n    ON_INIT,\n    ON_LOAD,\n    ON_SHOW,\n    ON_HIDE,\n    ON_UNLOAD,\n    ON_BACK_PRESS,\n    ON_PAGE_SCROLL,\n    ON_TAB_ITEM_TAP,\n    ON_REACH_BOTTOM,\n    ON_PULL_DOWN_REFRESH,\n    ON_SHARE_TIMELINE,\n    ON_SHARE_APP_MESSAGE,\n    ON_SHARE_CHAT,\n    ON_ADD_TO_FAVORITES,\n    ON_SAVE_EXIT_STATE,\n    ON_NAVIGATION_BAR_BUTTON_TAP,\n    ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n    ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n    ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n    ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nfunction isRootImmediateHook(name) {\n    const PAGE_SYNC_HOOKS = [ON_LOAD, ON_SHOW];\n    return PAGE_SYNC_HOOKS.indexOf(name) > -1;\n}\n// isRootImmediateHookX deprecated\nfunction isRootHook(name) {\n    return PAGE_HOOKS.indexOf(name) > -1;\n}\nconst UniLifecycleHooks = [\n    ON_SHOW,\n    ON_HIDE,\n    ON_LAUNCH,\n    ON_ERROR,\n    ON_THEME_CHANGE,\n    ON_PAGE_NOT_FOUND,\n    ON_UNHANDLE_REJECTION,\n    ON_EXIT,\n    ON_INIT,\n    ON_LOAD,\n    ON_READY,\n    ON_UNLOAD,\n    ON_RESIZE,\n    ON_BACK_PRESS,\n    ON_PAGE_SCROLL,\n    ON_TAB_ITEM_TAP,\n    ON_REACH_BOTTOM,\n    ON_PULL_DOWN_REFRESH,\n    ON_SHARE_TIMELINE,\n    ON_ADD_TO_FAVORITES,\n    ON_SHARE_APP_MESSAGE,\n    ON_SHARE_CHAT,\n    ON_SAVE_EXIT_STATE,\n    ON_NAVIGATION_BAR_BUTTON_TAP,\n    ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n    ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n    ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n    ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nconst MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /*#__PURE__*/ (() => {\n    return {\n        onPageScroll: 1,\n        onShareAppMessage: 1 << 1,\n        onShareTimeline: 1 << 2,\n    };\n})();\nfunction isUniLifecycleHook(name, value, checkType = true) {\n    // 检查类型\n    if (checkType && !isFunction(value)) {\n        return false;\n    }\n    if (UniLifecycleHooks.indexOf(name) > -1) {\n        // 已预定义\n        return true;\n    }\n    else if (name.indexOf('on') === 0) {\n        // 以 on 开头\n        return true;\n    }\n    return false;\n}\n\nlet vueApp;\nconst createVueAppHooks = [];\n/**\n * 提供 createApp 的回调事件,方便三方插件接收 App 对象,处理挂靠全局 mixin 之类的逻辑\n */\nfunction onCreateVueApp(hook) {\n    // TODO 每个 nvue 页面都会触发\n    if (vueApp) {\n        return hook(vueApp);\n    }\n    createVueAppHooks.push(hook);\n}\nfunction invokeCreateVueAppHook(app) {\n    vueApp = app;\n    createVueAppHooks.forEach((hook) => hook(app));\n}\nconst invokeCreateErrorHandler = once((app, createErrorHandler) => {\n    // 不再判断开发者是否监听了onError,直接返回 createErrorHandler,内部 errorHandler 会调用开发者自定义的 errorHandler,以及判断开发者是否监听了onError\n    return createErrorHandler(app);\n});\n\nconst E = function () {\n    // Keep this empty so it's easier to inherit from\n    // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n};\nE.prototype = {\n    _id: 1,\n    on: function (name, callback, ctx) {\n        var e = this.e || (this.e = {});\n        (e[name] || (e[name] = [])).push({\n            fn: callback,\n            ctx: ctx,\n            _id: this._id,\n        });\n        return this._id++;\n    },\n    once: function (name, callback, ctx) {\n        var self = this;\n        function listener() {\n            self.off(name, listener);\n            callback.apply(ctx, arguments);\n        }\n        listener._ = callback;\n        return this.on(name, listener, ctx);\n    },\n    emit: function (name) {\n        var data = [].slice.call(arguments, 1);\n        var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n        var i = 0;\n        var len = evtArr.length;\n        for (i; i < len; i++) {\n            evtArr[i].fn.apply(evtArr[i].ctx, data);\n        }\n        return this;\n    },\n    off: function (name, event) {\n        var e = this.e || (this.e = {});\n        var evts = e[name];\n        var liveEvents = [];\n        if (evts && event) {\n            for (var i = evts.length - 1; i >= 0; i--) {\n                if (evts[i].fn === event ||\n                    evts[i].fn._ === event ||\n                    evts[i]._id === event) {\n                    evts.splice(i, 1);\n                    break;\n                }\n            }\n            liveEvents = evts;\n        }\n        // Remove event from queue to prevent memory leak\n        // Suggested by https://github.com/lazd\n        // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n        liveEvents.length ? (e[name] = liveEvents) : delete e[name];\n        return this;\n    },\n};\nvar E$1 = E;\n\nconst borderStyles = {\n    black: 'rgba(0,0,0,0.4)',\n    white: 'rgba(255,255,255,0.4)',\n};\nfunction normalizeTabBarStyles(borderStyle) {\n    if (borderStyle && borderStyle in borderStyles) {\n        return borderStyles[borderStyle];\n    }\n    return borderStyle;\n}\nfunction normalizeTitleColor(titleColor) {\n    return titleColor === 'black' ? '#000000' : '#ffffff';\n}\nfunction resolveStringStyleItem(modeStyle, styleItem, key) {\n    if (isString(styleItem) && styleItem.startsWith('@')) {\n        const _key = styleItem.replace('@', '');\n        let _styleItem = modeStyle[_key] || styleItem;\n        switch (key) {\n            case 'titleColor':\n                _styleItem = normalizeTitleColor(_styleItem);\n                break;\n            case 'borderStyle':\n                _styleItem = normalizeTabBarStyles(_styleItem);\n                break;\n        }\n        return _styleItem;\n    }\n    return styleItem;\n}\nfunction normalizeStyles(pageStyle, themeConfig = {}, mode = 'light') {\n    const modeStyle = themeConfig[mode];\n    const styles = {};\n    if (typeof modeStyle === 'undefined' || !pageStyle)\n        return pageStyle;\n    Object.keys(pageStyle).forEach((key) => {\n        const styleItem = pageStyle[key]; // Object Array String\n        const parseStyleItem = () => {\n            if (isPlainObject(styleItem))\n                return normalizeStyles(styleItem, themeConfig, mode);\n            if (isArray(styleItem))\n                return styleItem.map((item) => {\n                    if (typeof item === 'object')\n                        return normalizeStyles(item, themeConfig, mode);\n                    return resolveStringStyleItem(modeStyle, item);\n                });\n            return resolveStringStyleItem(modeStyle, styleItem, key);\n        };\n        styles[key] = parseStyleItem();\n    });\n    return styles;\n}\n\nfunction getEnvLocale() {\n    const { env } = process;\n    const lang = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;\n    return (lang && lang.replace(/[.:].*/, '')) || 'en';\n}\n\nconst isStringIntegerKey = (key) => typeof key === 'string' &&\n    key !== 'NaN' &&\n    key[0] !== '-' &&\n    '' + parseInt(key, 10) === key;\nconst isNumberIntegerKey = (key) => typeof key === 'number' &&\n    !isNaN(key) &&\n    key >= 0 &&\n    parseInt(key + '', 10) === key;\n/**\n * 用于替代@vue/shared的isIntegerKey,原始方法在鸿蒙arkts中会引发bug。根本原因是arkts的数组的key是数字而不是字符串。\n * 目前这个方法使用的地方都和数组有关,切记不能挪作他用。\n * @param key\n * @returns\n */\nconst isIntegerKey = (key) => isNumberIntegerKey(key) || isStringIntegerKey(key);\n\nexport { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_ADD_WXS_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_PAGE_SCROLL, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CHANGE_PREFIX, ATTR_CLASS, ATTR_INNER_HTML, ATTR_STYLE, ATTR_TEXT_CONTENT, ATTR_V_OWNER_ID, ATTR_V_RENDERJS, ATTR_V_SHOW, BACKGROUND_COLOR, BUILT_IN_TAGS, BUILT_IN_TAG_NAMES, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, E$1 as Emitter, EventChannel, EventModifierFlags, I18N_JSON_DELIMITERS, JSON_PROTOCOL, LINEFEED, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, NVUE_BUILT_IN_TAGS, NVUE_U_BUILT_IN_TAGS, OFF_HOST_THEME_CHANGE, OFF_THEME_CHANGE, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_EXIT, ON_HIDE, ON_HOST_THEME_CHANGE, ON_INIT, ON_KEYBOARD_HEIGHT_CHANGE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_CHANGE, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SAVE_EXIT_STATE, ON_SHARE_APP_MESSAGE, ON_SHARE_CHAT, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, ON_WXS_INVOKE_CALL_METHOD, PLUS_RE, PRIMARY_COLOR, RENDERJS_MODULES, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, SLOT_DEFAULT_NAME, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UNI_STORAGE_LOCALE, UNI_UI_CONFLICT_TAGS, UVUE_BUILT_IN_TAGS, UVUE_HARMONY_BUILT_IN_TAGS, UVUE_IOS_BUILT_IN_TAGS, UVUE_WEB_BUILT_IN_TAGS, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniLifecycleHooks, UniNode, UniTextAreaElement, UniTextNode, VIRTUAL_HOST_CLASS, VIRTUAL_HOST_HIDDEN, VIRTUAL_HOST_ID, VIRTUAL_HOST_STYLE, WEB_INVOKE_APPSERVICE, WXS_MODULES, WXS_PROTOCOL, addFont, addLeadingSlash, borderStyles, cache, cacheStringFunction, callOptions, createIsCustomElement, createRpx2Unit, createUniEvent, customizeEvent, debounce, decode, decodedQuery, defaultMiniProgramRpx2Unit, defaultNVueRpx2Unit, defaultRpx2Unit, dynamicSlotName, forcePatchProp, formatDateTime, formatLog, getCustomDataset, getEnvLocale, getGlobal, getLen, getValueByDataPath, initCustomDatasetOnce, invokeArrayFns, invokeCreateErrorHandler, invokeCreateVueAppHook, isAppHarmonyUVueNativeTag, isAppIOSUVueNativeTag, isAppNVueNativeTag, isAppNativeTag, isAppUVueBuiltInEasyComponent, isAppUVueNativeTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isH5CustomElement, isH5NativeTag, isIntegerKey, isMiniProgramNativeTag, isMiniProgramUVueNativeTag, isRootHook, isRootImmediateHook, isUniLifecycleHook, isUniXElement, normalizeClass, normalizeDataset, normalizeEventType, normalizeProps, normalizeStyle, normalizeStyles, normalizeTabBarStyles, normalizeTarget, normalizeTitleColor, onCreateVueApp, once, parseEventName, parseNVueDataset, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, resolveComponentInstance, resolveOwnerEl, resolveOwnerVm, sanitise, scrollTo, sortObject, stringifyQuery, updateElementStyle };\n","import { isRootHook, getValueByDataPath, isUniLifecycleHook, ON_ERROR, UniLifecycleHooks, invokeCreateErrorHandler, dynamicSlotName } from '@dcloudio/uni-shared';\nimport { NOOP, extend, isSymbol, isObject, def, hasChanged, isFunction, isArray, isPromise, camelize, capitalize, EMPTY_OBJ, remove, toHandlerKey, hasOwn, hyphenate, isReservedProp, toRawType, isString, normalizeClass, normalizeStyle, isOn, toTypeString, isMap, isIntegerKey, isSet, isPlainObject, makeMap, invokeArrayFns, isBuiltInDirective, looseToNumber, NO, EMPTY_ARR, isModelListener, toNumber, toDisplayString } from '@vue/shared';\nexport { EMPTY_OBJ, camelize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/**\n* @dcloudio/uni-mp-vue v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nfunction warn$2(msg, ...args) {\n  console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n  constructor(detached = false) {\n    this.detached = detached;\n    /**\n     * @internal\n     */\n    this._active = true;\n    /**\n     * @internal\n     */\n    this.effects = [];\n    /**\n     * @internal\n     */\n    this.cleanups = [];\n    this.parent = activeEffectScope;\n    if (!detached && activeEffectScope) {\n      this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n        this\n      ) - 1;\n    }\n  }\n  get active() {\n    return this._active;\n  }\n  run(fn) {\n    if (this._active) {\n      const currentEffectScope = activeEffectScope;\n      try {\n        activeEffectScope = this;\n        return fn();\n      } finally {\n        activeEffectScope = currentEffectScope;\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$2(`cannot run an inactive effect scope.`);\n    }\n  }\n  /**\n   * This should only be called on non-detached scopes\n   * @internal\n   */\n  on() {\n    activeEffectScope = this;\n  }\n  /**\n   * This should only be called on non-detached scopes\n   * @internal\n   */\n  off() {\n    activeEffectScope = this.parent;\n  }\n  stop(fromParent) {\n    if (this._active) {\n      let i, l;\n      for (i = 0, l = this.effects.length; i < l; i++) {\n        this.effects[i].stop();\n      }\n      for (i = 0, l = this.cleanups.length; i < l; i++) {\n        this.cleanups[i]();\n      }\n      if (this.scopes) {\n        for (i = 0, l = this.scopes.length; i < l; i++) {\n          this.scopes[i].stop(true);\n        }\n      }\n      if (!this.detached && this.parent && !fromParent) {\n        const last = this.parent.scopes.pop();\n        if (last && last !== this) {\n          this.parent.scopes[this.index] = last;\n          last.index = this.index;\n        }\n      }\n      this.parent = void 0;\n      this._active = false;\n    }\n  }\n}\nfunction effectScope(detached) {\n  return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n  if (scope && scope.active) {\n    scope.effects.push(effect);\n  }\n}\nfunction getCurrentScope() {\n  return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n  if (activeEffectScope) {\n    activeEffectScope.cleanups.push(fn);\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$2(\n      `onScopeDispose() is called when there is no active effect scope to be associated with.`\n    );\n  }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n  constructor(fn, trigger, scheduler, scope) {\n    this.fn = fn;\n    this.trigger = trigger;\n    this.scheduler = scheduler;\n    this.active = true;\n    this.deps = [];\n    /**\n     * @internal\n     */\n    this._dirtyLevel = 4;\n    /**\n     * @internal\n     */\n    this._trackId = 0;\n    /**\n     * @internal\n     */\n    this._runnings = 0;\n    /**\n     * @internal\n     */\n    this._shouldSchedule = false;\n    /**\n     * @internal\n     */\n    this._depsLength = 0;\n    recordEffectScope(this, scope);\n  }\n  get dirty() {\n    if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n      this._dirtyLevel = 1;\n      pauseTracking();\n      for (let i = 0; i < this._depsLength; i++) {\n        const dep = this.deps[i];\n        if (dep.computed) {\n          triggerComputed(dep.computed);\n          if (this._dirtyLevel >= 4) {\n            break;\n          }\n        }\n      }\n      if (this._dirtyLevel === 1) {\n        this._dirtyLevel = 0;\n      }\n      resetTracking();\n    }\n    return this._dirtyLevel >= 4;\n  }\n  set dirty(v) {\n    this._dirtyLevel = v ? 4 : 0;\n  }\n  run() {\n    this._dirtyLevel = 0;\n    if (!this.active) {\n      return this.fn();\n    }\n    let lastShouldTrack = shouldTrack;\n    let lastEffect = activeEffect;\n    try {\n      shouldTrack = true;\n      activeEffect = this;\n      this._runnings++;\n      preCleanupEffect(this);\n      return this.fn();\n    } finally {\n      postCleanupEffect(this);\n      this._runnings--;\n      activeEffect = lastEffect;\n      shouldTrack = lastShouldTrack;\n    }\n  }\n  stop() {\n    var _a;\n    if (this.active) {\n      preCleanupEffect(this);\n      postCleanupEffect(this);\n      (_a = this.onStop) == null ? void 0 : _a.call(this);\n      this.active = false;\n    }\n  }\n}\nfunction triggerComputed(computed) {\n  return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n  effect2._trackId++;\n  effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n  if (effect2.deps.length > effect2._depsLength) {\n    for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n      cleanupDepEffect(effect2.deps[i], effect2);\n    }\n    effect2.deps.length = effect2._depsLength;\n  }\n}\nfunction cleanupDepEffect(dep, effect2) {\n  const trackId = dep.get(effect2);\n  if (trackId !== void 0 && effect2._trackId !== trackId) {\n    dep.delete(effect2);\n    if (dep.size === 0) {\n      dep.cleanup();\n    }\n  }\n}\nfunction effect(fn, options) {\n  if (fn.effect instanceof ReactiveEffect) {\n    fn = fn.effect.fn;\n  }\n  const _effect = new ReactiveEffect(fn, NOOP, () => {\n    if (_effect.dirty) {\n      _effect.run();\n    }\n  });\n  if (options) {\n    extend(_effect, options);\n    if (options.scope)\n      recordEffectScope(_effect, options.scope);\n  }\n  if (!options || !options.lazy) {\n    _effect.run();\n  }\n  const runner = _effect.run.bind(_effect);\n  runner.effect = _effect;\n  return runner;\n}\nfunction stop(runner) {\n  runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n  trackStack.push(shouldTrack);\n  shouldTrack = false;\n}\nfunction resetTracking() {\n  const last = trackStack.pop();\n  shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n  pauseScheduleStack++;\n}\nfunction resetScheduling() {\n  pauseScheduleStack--;\n  while (!pauseScheduleStack && queueEffectSchedulers.length) {\n    queueEffectSchedulers.shift()();\n  }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n  var _a;\n  if (dep.get(effect2) !== effect2._trackId) {\n    dep.set(effect2, effect2._trackId);\n    const oldDep = effect2.deps[effect2._depsLength];\n    if (oldDep !== dep) {\n      if (oldDep) {\n        cleanupDepEffect(oldDep, effect2);\n      }\n      effect2.deps[effect2._depsLength++] = dep;\n    } else {\n      effect2._depsLength++;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n    }\n  }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n  var _a;\n  pauseScheduling();\n  for (const effect2 of dep.keys()) {\n    let tracking;\n    if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n      effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n      effect2._dirtyLevel = dirtyLevel;\n    }\n    if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n      }\n      effect2.trigger();\n      if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n        effect2._shouldSchedule = false;\n        if (effect2.scheduler) {\n          queueEffectSchedulers.push(effect2.scheduler);\n        }\n      }\n    }\n  }\n  resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n  const dep = /* @__PURE__ */ new Map();\n  dep.cleanup = cleanup;\n  dep.computed = computed;\n  return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n  if (shouldTrack && activeEffect) {\n    let depsMap = targetMap.get(target);\n    if (!depsMap) {\n      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n    }\n    let dep = depsMap.get(key);\n    if (!dep) {\n      depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n    }\n    trackEffect(\n      activeEffect,\n      dep,\n      !!(process.env.NODE_ENV !== \"production\") ? {\n        target,\n        type,\n        key\n      } : void 0\n    );\n  }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n  const depsMap = targetMap.get(target);\n  if (!depsMap) {\n    return;\n  }\n  let deps = [];\n  if (type === \"clear\") {\n    deps = [...depsMap.values()];\n  } else if (key === \"length\" && isArray(target)) {\n    const newLength = Number(newValue);\n    depsMap.forEach((dep, key2) => {\n      if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n        deps.push(dep);\n      }\n    });\n  } else {\n    if (key !== void 0) {\n      deps.push(depsMap.get(key));\n    }\n    switch (type) {\n      case \"add\":\n        if (!isArray(target)) {\n          deps.push(depsMap.get(ITERATE_KEY));\n          if (isMap(target)) {\n            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n          }\n        } else if (isIntegerKey(key)) {\n          deps.push(depsMap.get(\"length\"));\n        }\n        break;\n      case \"delete\":\n        if (!isArray(target)) {\n          deps.push(depsMap.get(ITERATE_KEY));\n          if (isMap(target)) {\n            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n          }\n        }\n        break;\n      case \"set\":\n        if (isMap(target)) {\n          deps.push(depsMap.get(ITERATE_KEY));\n        }\n        break;\n    }\n  }\n  pauseScheduling();\n  for (const dep of deps) {\n    if (dep) {\n      triggerEffects(\n        dep,\n        4,\n        !!(process.env.NODE_ENV !== \"production\") ? {\n          target,\n          type,\n          key,\n          newValue,\n          oldValue,\n          oldTarget\n        } : void 0\n      );\n    }\n  }\n  resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n  var _a;\n  return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n  const instrumentations = {};\n  [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n    instrumentations[key] = function(...args) {\n      const arr = toRaw(this);\n      for (let i = 0, l = this.length; i < l; i++) {\n        track(arr, \"get\", i + \"\");\n      }\n      const res = arr[key](...args);\n      if (res === -1 || res === false) {\n        return arr[key](...args.map(toRaw));\n      } else {\n        return res;\n      }\n    };\n  });\n  [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n    instrumentations[key] = function(...args) {\n      pauseTracking();\n      pauseScheduling();\n      const res = toRaw(this)[key].apply(this, args);\n      resetScheduling();\n      resetTracking();\n      return res;\n    };\n  });\n  return instrumentations;\n}\nfunction hasOwnProperty(key) {\n  const obj = toRaw(this);\n  track(obj, \"has\", key);\n  return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n  constructor(_isReadonly = false, _isShallow = false) {\n    this._isReadonly = _isReadonly;\n    this._isShallow = _isShallow;\n  }\n  get(target, key, receiver) {\n    const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n    if (key === \"__v_isReactive\") {\n      return !isReadonly2;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly2;\n    } else if (key === \"__v_isShallow\") {\n      return isShallow2;\n    } else if (key === \"__v_raw\") {\n      if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n      // this means the reciever is a user proxy of the reactive proxy\n      Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n        return target;\n      }\n      return;\n    }\n    const targetIsArray = isArray(target);\n    if (!isReadonly2) {\n      if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n        return Reflect.get(arrayInstrumentations, key, receiver);\n      }\n      if (key === \"hasOwnProperty\") {\n        return hasOwnProperty;\n      }\n    }\n    const res = Reflect.get(target, key, receiver);\n    if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n      return res;\n    }\n    if (!isReadonly2) {\n      track(target, \"get\", key);\n    }\n    if (isShallow2) {\n      return res;\n    }\n    if (isRef(res)) {\n      return targetIsArray && isIntegerKey(key) ? res : res.value;\n    }\n    if (isObject(res)) {\n      return isReadonly2 ? readonly(res) : reactive(res);\n    }\n    return res;\n  }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n  constructor(isShallow2 = false) {\n    super(false, isShallow2);\n  }\n  set(target, key, value, receiver) {\n    let oldValue = target[key];\n    if (!this._isShallow) {\n      const isOldValueReadonly = isReadonly(oldValue);\n      if (!isShallow(value) && !isReadonly(value)) {\n        oldValue = toRaw(oldValue);\n        value = toRaw(value);\n      }\n      if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n        if (isOldValueReadonly) {\n          return false;\n        } else {\n          oldValue.value = value;\n          return true;\n        }\n      }\n    }\n    const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n    const result = Reflect.set(target, key, value, receiver);\n    if (target === toRaw(receiver)) {\n      if (!hadKey) {\n        trigger(target, \"add\", key, value);\n      } else if (hasChanged(value, oldValue)) {\n        trigger(target, \"set\", key, value, oldValue);\n      }\n    }\n    return result;\n  }\n  deleteProperty(target, key) {\n    const hadKey = hasOwn(target, key);\n    const oldValue = target[key];\n    const result = Reflect.deleteProperty(target, key);\n    if (result && hadKey) {\n      trigger(target, \"delete\", key, void 0, oldValue);\n    }\n    return result;\n  }\n  has(target, key) {\n    const result = Reflect.has(target, key);\n    if (!isSymbol(key) || !builtInSymbols.has(key)) {\n      track(target, \"has\", key);\n    }\n    return result;\n  }\n  ownKeys(target) {\n    track(\n      target,\n      \"iterate\",\n      isArray(target) ? \"length\" : ITERATE_KEY\n    );\n    return Reflect.ownKeys(target);\n  }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n  constructor(isShallow2 = false) {\n    super(true, isShallow2);\n  }\n  set(target, key) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$2(\n        `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n        target\n      );\n    }\n    return true;\n  }\n  deleteProperty(target, key) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$2(\n        `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n        target\n      );\n    }\n    return true;\n  }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n  true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n  target = target[\"__v_raw\"];\n  const rawTarget = toRaw(target);\n  const rawKey = toRaw(key);\n  if (!isReadonly) {\n    if (hasChanged(key, rawKey)) {\n      track(rawTarget, \"get\", key);\n    }\n    track(rawTarget, \"get\", rawKey);\n  }\n  const { has: has2 } = getProto(rawTarget);\n  const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n  if (has2.call(rawTarget, key)) {\n    return wrap(target.get(key));\n  } else if (has2.call(rawTarget, rawKey)) {\n    return wrap(target.get(rawKey));\n  } else if (target !== rawTarget) {\n    target.get(key);\n  }\n}\nfunction has(key, isReadonly = false) {\n  const target = this[\"__v_raw\"];\n  const rawTarget = toRaw(target);\n  const rawKey = toRaw(key);\n  if (!isReadonly) {\n    if (hasChanged(key, rawKey)) {\n      track(rawTarget, \"has\", key);\n    }\n    track(rawTarget, \"has\", rawKey);\n  }\n  return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n  target = target[\"__v_raw\"];\n  !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n  return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n  value = toRaw(value);\n  const target = toRaw(this);\n  const proto = getProto(target);\n  const hadKey = proto.has.call(target, value);\n  if (!hadKey) {\n    target.add(value);\n    trigger(target, \"add\", value, value);\n  }\n  return this;\n}\nfunction set$1(key, value) {\n  value = toRaw(value);\n  const target = toRaw(this);\n  const { has: has2, get: get2 } = getProto(target);\n  let hadKey = has2.call(target, key);\n  if (!hadKey) {\n    key = toRaw(key);\n    hadKey = has2.call(target, key);\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    checkIdentityKeys(target, has2, key);\n  }\n  const oldValue = get2.call(target, key);\n  target.set(key, value);\n  if (!hadKey) {\n    trigger(target, \"add\", key, value);\n  } else if (hasChanged(value, oldValue)) {\n    trigger(target, \"set\", key, value, oldValue);\n  }\n  return this;\n}\nfunction deleteEntry(key) {\n  const target = toRaw(this);\n  const { has: has2, get: get2 } = getProto(target);\n  let hadKey = has2.call(target, key);\n  if (!hadKey) {\n    key = toRaw(key);\n    hadKey = has2.call(target, key);\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    checkIdentityKeys(target, has2, key);\n  }\n  const oldValue = get2 ? get2.call(target, key) : void 0;\n  const result = target.delete(key);\n  if (hadKey) {\n    trigger(target, \"delete\", key, void 0, oldValue);\n  }\n  return result;\n}\nfunction clear() {\n  const target = toRaw(this);\n  const hadItems = target.size !== 0;\n  const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n  const result = target.clear();\n  if (hadItems) {\n    trigger(target, \"clear\", void 0, void 0, oldTarget);\n  }\n  return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n  return function forEach(callback, thisArg) {\n    const observed = this;\n    const target = observed[\"__v_raw\"];\n    const rawTarget = toRaw(target);\n    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n    !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n    return target.forEach((value, key) => {\n      return callback.call(thisArg, wrap(value), wrap(key), observed);\n    });\n  };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n  return function(...args) {\n    const target = this[\"__v_raw\"];\n    const rawTarget = toRaw(target);\n    const targetIsMap = isMap(rawTarget);\n    const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n    const isKeyOnly = method === \"keys\" && targetIsMap;\n    const innerIterator = target[method](...args);\n    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n    !isReadonly && track(\n      rawTarget,\n      \"iterate\",\n      isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n    );\n    return {\n      // iterator protocol\n      next() {\n        const { value, done } = innerIterator.next();\n        return done ? { value, done } : {\n          value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n          done\n        };\n      },\n      // iterable protocol\n      [Symbol.iterator]() {\n        return this;\n      }\n    };\n  };\n}\nfunction createReadonlyMethod(type) {\n  return function(...args) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n      warn$2(\n        `${capitalize(type)} operation ${key}failed: target is readonly.`,\n        toRaw(this)\n      );\n    }\n    return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n  };\n}\nfunction createInstrumentations() {\n  const mutableInstrumentations2 = {\n    get(key) {\n      return get(this, key);\n    },\n    get size() {\n      return size(this);\n    },\n    has,\n    add,\n    set: set$1,\n    delete: deleteEntry,\n    clear,\n    forEach: createForEach(false, false)\n  };\n  const shallowInstrumentations2 = {\n    get(key) {\n      return get(this, key, false, true);\n    },\n    get size() {\n      return size(this);\n    },\n    has,\n    add,\n    set: set$1,\n    delete: deleteEntry,\n    clear,\n    forEach: createForEach(false, true)\n  };\n  const readonlyInstrumentations2 = {\n    get(key) {\n      return get(this, key, true);\n    },\n    get size() {\n      return size(this, true);\n    },\n    has(key) {\n      return has.call(this, key, true);\n    },\n    add: createReadonlyMethod(\"add\"),\n    set: createReadonlyMethod(\"set\"),\n    delete: createReadonlyMethod(\"delete\"),\n    clear: createReadonlyMethod(\"clear\"),\n    forEach: createForEach(true, false)\n  };\n  const shallowReadonlyInstrumentations2 = {\n    get(key) {\n      return get(this, key, true, true);\n    },\n    get size() {\n      return size(this, true);\n    },\n    has(key) {\n      return has.call(this, key, true);\n    },\n    add: createReadonlyMethod(\"add\"),\n    set: createReadonlyMethod(\"set\"),\n    delete: createReadonlyMethod(\"delete\"),\n    clear: createReadonlyMethod(\"clear\"),\n    forEach: createForEach(true, true)\n  };\n  const iteratorMethods = [\n    \"keys\",\n    \"values\",\n    \"entries\",\n    Symbol.iterator\n  ];\n  iteratorMethods.forEach((method) => {\n    mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n    readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n    shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n    shallowReadonlyInstrumentations2[method] = createIterableMethod(\n      method,\n      true,\n      true\n    );\n  });\n  return [\n    mutableInstrumentations2,\n    readonlyInstrumentations2,\n    shallowInstrumentations2,\n    shallowReadonlyInstrumentations2\n  ];\n}\nconst [\n  mutableInstrumentations,\n  readonlyInstrumentations,\n  shallowInstrumentations,\n  shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n  const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n  return (target, key, receiver) => {\n    if (key === \"__v_isReactive\") {\n      return !isReadonly;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly;\n    } else if (key === \"__v_raw\") {\n      return target;\n    }\n    return Reflect.get(\n      hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n      key,\n      receiver\n    );\n  };\n}\nconst mutableCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n  const rawKey = toRaw(key);\n  if (rawKey !== key && has2.call(target, rawKey)) {\n    const type = toRawType(target);\n    warn$2(\n      `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n    );\n  }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n  switch (rawType) {\n    case \"Object\":\n    case \"Array\":\n      return 1 /* COMMON */;\n    case \"Map\":\n    case \"Set\":\n    case \"WeakMap\":\n    case \"WeakSet\":\n      return 2 /* COLLECTION */;\n    default:\n      return 0 /* INVALID */;\n  }\n}\nfunction getTargetType(value) {\n  return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n  if (isReadonly(target)) {\n    return target;\n  }\n  return createReactiveObject(\n    target,\n    false,\n    mutableHandlers,\n    mutableCollectionHandlers,\n    reactiveMap\n  );\n}\nfunction shallowReactive(target) {\n  return createReactiveObject(\n    target,\n    false,\n    shallowReactiveHandlers,\n    shallowCollectionHandlers,\n    shallowReactiveMap\n  );\n}\nfunction readonly(target) {\n  return createReactiveObject(\n    target,\n    true,\n    readonlyHandlers,\n    readonlyCollectionHandlers,\n    readonlyMap\n  );\n}\nfunction shallowReadonly(target) {\n  return createReactiveObject(\n    target,\n    true,\n    shallowReadonlyHandlers,\n    shallowReadonlyCollectionHandlers,\n    shallowReadonlyMap\n  );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n  if (!isObject(target)) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$2(`value cannot be made reactive: ${String(target)}`);\n    }\n    return target;\n  }\n  if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n    return target;\n  }\n  const existingProxy = proxyMap.get(target);\n  if (existingProxy) {\n    return existingProxy;\n  }\n  const targetType = getTargetType(target);\n  if (targetType === 0 /* INVALID */) {\n    return target;\n  }\n  const proxy = new Proxy(\n    target,\n    targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n  );\n  proxyMap.set(target, proxy);\n  return proxy;\n}\nfunction isReactive(value) {\n  if (isReadonly(value)) {\n    return isReactive(value[\"__v_raw\"]);\n  }\n  return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n  return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n  return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n  return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n  const raw = observed && observed[\"__v_raw\"];\n  return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n  if (Object.isExtensible(value)) {\n    def(value, \"__v_skip\", true);\n  }\n  return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided.  Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n  constructor(getter, _setter, isReadonly, isSSR) {\n    this.getter = getter;\n    this._setter = _setter;\n    this.dep = void 0;\n    this.__v_isRef = true;\n    this[\"__v_isReadonly\"] = false;\n    this.effect = new ReactiveEffect(\n      () => getter(this._value),\n      () => triggerRefValue(\n        this,\n        this.effect._dirtyLevel === 2 ? 2 : 3\n      )\n    );\n    this.effect.computed = this;\n    this.effect.active = this._cacheable = !isSSR;\n    this[\"__v_isReadonly\"] = isReadonly;\n  }\n  get value() {\n    const self = toRaw(this);\n    if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n      triggerRefValue(self, 4);\n    }\n    trackRefValue(self);\n    if (self.effect._dirtyLevel >= 2) {\n      if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n        warn$2(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n      }\n      triggerRefValue(self, 2);\n    }\n    return self._value;\n  }\n  set value(newValue) {\n    this._setter(newValue);\n  }\n  // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n  get _dirty() {\n    return this.effect.dirty;\n  }\n  set _dirty(v) {\n    this.effect.dirty = v;\n  }\n  // #endregion\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n  let getter;\n  let setter;\n  const onlyGetter = isFunction(getterOrOptions);\n  if (onlyGetter) {\n    getter = getterOrOptions;\n    setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n      warn$2(\"Write operation failed: computed value is readonly\");\n    } : NOOP;\n  } else {\n    getter = getterOrOptions.get;\n    setter = getterOrOptions.set;\n  }\n  const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n  if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n    cRef.effect.onTrack = debugOptions.onTrack;\n    cRef.effect.onTrigger = debugOptions.onTrigger;\n  }\n  return cRef;\n}\n\nfunction trackRefValue(ref2) {\n  var _a;\n  if (shouldTrack && activeEffect) {\n    ref2 = toRaw(ref2);\n    trackEffect(\n      activeEffect,\n      (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n        () => ref2.dep = void 0,\n        ref2 instanceof ComputedRefImpl ? ref2 : void 0\n      ),\n      !!(process.env.NODE_ENV !== \"production\") ? {\n        target: ref2,\n        type: \"get\",\n        key: \"value\"\n      } : void 0\n    );\n  }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n  ref2 = toRaw(ref2);\n  const dep = ref2.dep;\n  if (dep) {\n    triggerEffects(\n      dep,\n      dirtyLevel,\n      !!(process.env.NODE_ENV !== \"production\") ? {\n        target: ref2,\n        type: \"set\",\n        key: \"value\",\n        newValue: newVal\n      } : void 0\n    );\n  }\n}\nfunction isRef(r) {\n  return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n  return createRef(value, false);\n}\nfunction shallowRef(value) {\n  return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n  if (isRef(rawValue)) {\n    return rawValue;\n  }\n  return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n  constructor(value, __v_isShallow) {\n    this.__v_isShallow = __v_isShallow;\n    this.dep = void 0;\n    this.__v_isRef = true;\n    this._rawValue = __v_isShallow ? value : toRaw(value);\n    this._value = __v_isShallow ? value : toReactive(value);\n  }\n  get value() {\n    trackRefValue(this);\n    return this._value;\n  }\n  set value(newVal) {\n    const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n    newVal = useDirectValue ? newVal : toRaw(newVal);\n    if (hasChanged(newVal, this._rawValue)) {\n      this._rawValue = newVal;\n      this._value = useDirectValue ? newVal : toReactive(newVal);\n      triggerRefValue(this, 4, newVal);\n    }\n  }\n}\nfunction triggerRef(ref2) {\n  triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n  return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n  return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n  get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n  set: (target, key, value, receiver) => {\n    const oldValue = target[key];\n    if (isRef(oldValue) && !isRef(value)) {\n      oldValue.value = value;\n      return true;\n    } else {\n      return Reflect.set(target, key, value, receiver);\n    }\n  }\n};\nfunction proxyRefs(objectWithRefs) {\n  return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n  constructor(factory) {\n    this.dep = void 0;\n    this.__v_isRef = true;\n    const { get, set } = factory(\n      () => trackRefValue(this),\n      () => triggerRefValue(this)\n    );\n    this._get = get;\n    this._set = set;\n  }\n  get value() {\n    return this._get();\n  }\n  set value(newVal) {\n    this._set(newVal);\n  }\n}\nfunction customRef(factory) {\n  return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n  if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n    warn$2(`toRefs() expects a reactive object but received a plain one.`);\n  }\n  const ret = isArray(object) ? new Array(object.length) : {};\n  for (const key in object) {\n    ret[key] = propertyToRef(object, key);\n  }\n  return ret;\n}\nclass ObjectRefImpl {\n  constructor(_object, _key, _defaultValue) {\n    this._object = _object;\n    this._key = _key;\n    this._defaultValue = _defaultValue;\n    this.__v_isRef = true;\n  }\n  get value() {\n    const val = this._object[this._key];\n    return val === void 0 ? this._defaultValue : val;\n  }\n  set value(newVal) {\n    this._object[this._key] = newVal;\n  }\n  get dep() {\n    return getDepFromReactive(toRaw(this._object), this._key);\n  }\n}\nclass GetterRefImpl {\n  constructor(_getter) {\n    this._getter = _getter;\n    this.__v_isRef = true;\n    this.__v_isReadonly = true;\n  }\n  get value() {\n    return this._getter();\n  }\n}\nfunction toRef(source, key, defaultValue) {\n  if (isRef(source)) {\n    return source;\n  } else if (isFunction(source)) {\n    return new GetterRefImpl(source);\n  } else if (isObject(source) && arguments.length > 1) {\n    return propertyToRef(source, key, defaultValue);\n  } else {\n    return ref(source);\n  }\n}\nfunction propertyToRef(source, key, defaultValue) {\n  const val = source[key];\n  return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n  stack.push(vnode);\n}\nfunction popWarningContext() {\n  stack.pop();\n}\nfunction warn$1(msg, ...args) {\n  pauseTracking();\n  const instance = stack.length ? stack[stack.length - 1].component : null;\n  const appWarnHandler = instance && instance.appContext.config.warnHandler;\n  const trace = getComponentTrace();\n  if (appWarnHandler) {\n    callWithErrorHandling(\n      appWarnHandler,\n      instance,\n      11,\n      [\n        msg + args.map((a) => {\n          var _a, _b;\n          return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n        }).join(\"\"),\n        instance && instance.proxy,\n        trace.map(\n          ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n        ).join(\"\\n\"),\n        trace\n      ]\n    );\n  } else {\n    const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n    if (trace.length && // avoid spamming console during tests\n    true) {\n      warnArgs.push(`\n`, ...formatTrace(trace));\n    }\n    console.warn(...warnArgs);\n  }\n  resetTracking();\n}\nfunction getComponentTrace() {\n  let currentVNode = stack[stack.length - 1];\n  if (!currentVNode) {\n    return [];\n  }\n  const normalizedStack = [];\n  while (currentVNode) {\n    const last = normalizedStack[0];\n    if (last && last.vnode === currentVNode) {\n      last.recurseCount++;\n    } else {\n      normalizedStack.push({\n        vnode: currentVNode,\n        recurseCount: 0\n      });\n    }\n    const parentInstance = currentVNode.component && currentVNode.component.parent;\n    currentVNode = parentInstance && parentInstance.vnode;\n  }\n  return normalizedStack;\n}\nfunction formatTrace(trace) {\n  const logs = [];\n  trace.forEach((entry, i) => {\n    logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n  });\n  return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n  const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n  const isRoot = vnode.component ? vnode.component.parent == null : false;\n  const open = ` at <${formatComponentName(\n    vnode.component,\n    vnode.type,\n    isRoot\n  )}`;\n  const close = `>` + postfix;\n  return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n  const res = [];\n  const keys = Object.keys(props);\n  keys.slice(0, 3).forEach((key) => {\n    res.push(...formatProp(key, props[key]));\n  });\n  if (keys.length > 3) {\n    res.push(` ...`);\n  }\n  return res;\n}\nfunction formatProp(key, value, raw) {\n  if (isString(value)) {\n    value = JSON.stringify(value);\n    return raw ? value : [`${key}=${value}`];\n  } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n    return raw ? value : [`${key}=${value}`];\n  } else if (isRef(value)) {\n    value = formatProp(key, toRaw(value.value), true);\n    return raw ? value : [`${key}=Ref<`, value, `>`];\n  } else if (isFunction(value)) {\n    return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n  } else {\n    value = toRaw(value);\n    return raw ? value : [`${key}=`, value];\n  }\n}\n\nconst ErrorTypeStrings = {\n  [\"sp\"]: \"serverPrefetch hook\",\n  [\"bc\"]: \"beforeCreate hook\",\n  [\"c\"]: \"created hook\",\n  [\"bm\"]: \"beforeMount hook\",\n  [\"m\"]: \"mounted hook\",\n  [\"bu\"]: \"beforeUpdate hook\",\n  [\"u\"]: \"updated\",\n  [\"bum\"]: \"beforeUnmount hook\",\n  [\"um\"]: \"unmounted hook\",\n  [\"a\"]: \"activated hook\",\n  [\"da\"]: \"deactivated hook\",\n  [\"ec\"]: \"errorCaptured hook\",\n  [\"rtc\"]: \"renderTracked hook\",\n  [\"rtg\"]: \"renderTriggered hook\",\n  [0]: \"setup function\",\n  [1]: \"render function\",\n  [2]: \"watcher getter\",\n  [3]: \"watcher callback\",\n  [4]: \"watcher cleanup function\",\n  [5]: \"native event handler\",\n  [6]: \"component event handler\",\n  [7]: \"vnode hook\",\n  [8]: \"directive hook\",\n  [9]: \"transition hook\",\n  [10]: \"app errorHandler\",\n  [11]: \"app warnHandler\",\n  [12]: \"ref function\",\n  [13]: \"async component loader\",\n  [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n  try {\n    return args ? fn(...args) : fn();\n  } catch (err) {\n    handleError(err, instance, type);\n  }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n  if (isFunction(fn)) {\n    const res = callWithErrorHandling(fn, instance, type, args);\n    if (res && isPromise(res)) {\n      res.catch((err) => {\n        handleError(err, instance, type);\n      });\n    }\n    return res;\n  }\n  const values = [];\n  for (let i = 0; i < fn.length; i++) {\n    values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n  }\n  return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n  const contextVNode = instance ? instance.vnode : null;\n  if (instance) {\n    let cur = instance.parent;\n    const exposedInstance = instance.proxy;\n    const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] || type : `https://vuejs.org/error-reference/#runtime-${type}`;\n    while (cur) {\n      const errorCapturedHooks = cur.ec;\n      if (errorCapturedHooks) {\n        for (let i = 0; i < errorCapturedHooks.length; i++) {\n          if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n            return;\n          }\n        }\n      }\n      cur = cur.parent;\n    }\n    const appErrorHandler = instance.appContext.config.errorHandler;\n    if (appErrorHandler) {\n      callWithErrorHandling(\n        appErrorHandler,\n        null,\n        10,\n        [err, exposedInstance, errorInfo]\n      );\n      return;\n    }\n  }\n  logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const info = ErrorTypeStrings[type] || type;\n    if (contextVNode) {\n      pushWarningContext(contextVNode);\n    }\n    warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n    if (contextVNode) {\n      popWarningContext();\n    }\n    if (throwInDev) {\n      console.error(err);\n    } else {\n      console.error(err);\n    }\n  } else {\n    console.error(err);\n  }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick$1(fn) {\n  const p = currentFlushPromise || resolvedPromise;\n  return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n  let start = flushIndex + 1;\n  let end = queue.length;\n  while (start < end) {\n    const middle = start + end >>> 1;\n    const middleJob = queue[middle];\n    const middleJobId = getId(middleJob);\n    if (middleJobId < id || middleJobId === id && middleJob.pre) {\n      start = middle + 1;\n    } else {\n      end = middle;\n    }\n  }\n  return start;\n}\nfunction queueJob(job) {\n  if (!queue.length || !queue.includes(\n    job,\n    isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n  )) {\n    if (job.id == null) {\n      queue.push(job);\n    } else {\n      queue.splice(findInsertionIndex(job.id), 0, job);\n    }\n    queueFlush();\n  }\n}\nfunction queueFlush() {\n  if (!isFlushing && !isFlushPending) {\n    isFlushPending = true;\n    currentFlushPromise = resolvedPromise.then(flushJobs);\n  }\n}\nfunction hasQueueJob(job) {\n  return queue.indexOf(job) > -1;\n}\nfunction invalidateJob(job) {\n  const i = queue.indexOf(job);\n  if (i > flushIndex) {\n    queue.splice(i, 1);\n  }\n}\nfunction queuePostFlushCb(cb) {\n  if (!isArray(cb)) {\n    if (!activePostFlushCbs || !activePostFlushCbs.includes(\n      cb,\n      cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n    )) {\n      pendingPostFlushCbs.push(cb);\n    }\n  } else {\n    pendingPostFlushCbs.push(...cb);\n  }\n  queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    seen = seen || /* @__PURE__ */ new Map();\n  }\n  for (; i < queue.length; i++) {\n    const cb = queue[i];\n    if (cb && cb.pre) {\n      if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n        continue;\n      }\n      queue.splice(i, 1);\n      i--;\n      cb();\n    }\n  }\n}\nfunction flushPostFlushCbs(seen) {\n  if (pendingPostFlushCbs.length) {\n    const deduped = [...new Set(pendingPostFlushCbs)].sort(\n      (a, b) => getId(a) - getId(b)\n    );\n    pendingPostFlushCbs.length = 0;\n    if (activePostFlushCbs) {\n      activePostFlushCbs.push(...deduped);\n      return;\n    }\n    activePostFlushCbs = deduped;\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      seen = seen || /* @__PURE__ */ new Map();\n    }\n    for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n      if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n        continue;\n      }\n      activePostFlushCbs[postFlushIndex]();\n    }\n    activePostFlushCbs = null;\n    postFlushIndex = 0;\n  }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n  const diff = getId(a) - getId(b);\n  if (diff === 0) {\n    if (a.pre && !b.pre)\n      return -1;\n    if (b.pre && !a.pre)\n      return 1;\n  }\n  return diff;\n};\nfunction flushJobs(seen) {\n  isFlushPending = false;\n  isFlushing = true;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    seen = seen || /* @__PURE__ */ new Map();\n  }\n  queue.sort(comparator);\n  const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n  try {\n    for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n      const job = queue[flushIndex];\n      if (job && job.active !== false) {\n        if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n          continue;\n        }\n        callWithErrorHandling(job, null, 14);\n      }\n    }\n  } finally {\n    flushIndex = 0;\n    queue.length = 0;\n    flushPostFlushCbs(seen);\n    isFlushing = false;\n    currentFlushPromise = null;\n    if (queue.length || pendingPostFlushCbs.length) {\n      flushJobs(seen);\n    }\n  }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n  if (!seen.has(fn)) {\n    seen.set(fn, 1);\n  } else {\n    const count = seen.get(fn);\n    if (count > RECURSION_LIMIT) {\n      const instance = fn.ownerInstance;\n      const componentName = instance && getComponentName(instance.type);\n      handleError(\n        `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n        null,\n        10\n      );\n      return true;\n    } else {\n      seen.set(fn, count + 1);\n    }\n  }\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n  if (devtools) {\n    devtools.emit(event, ...args);\n  } else if (!devtoolsNotInstalled) {\n    buffer.push({ event, args });\n  }\n}\nfunction setDevtoolsHook(hook, target) {\n  var _a, _b;\n  devtools = hook;\n  if (devtools) {\n    devtools.enabled = true;\n    buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n    buffer = [];\n  } else if (\n    // handle late devtools injection - only do this if we are in an actual\n    // browser environment to avoid the timer handle stalling test runner exit\n    // (#4815)\n    typeof window !== \"undefined\" && // some envs mock window but not fully\n    window.HTMLElement && // also exclude jsdom\n    !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n  ) {\n    const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n    replay.push((newHook) => {\n      setDevtoolsHook(newHook, target);\n    });\n    setTimeout(() => {\n      if (!devtools) {\n        target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n        devtoolsNotInstalled = true;\n        buffer = [];\n      }\n    }, 3e3);\n  } else {\n    devtoolsNotInstalled = true;\n    buffer = [];\n  }\n}\nfunction devtoolsInitApp(app, version) {\n  emit$1(\"app:init\" /* APP_INIT */, app, version, {\n    Fragment,\n    Text,\n    Comment,\n    Static\n  });\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n  \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n  \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n  if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n  !devtools.cleanupBuffer(component)) {\n    _devtoolsComponentRemoved(component);\n  }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n  return (component) => {\n    emit$1(\n      hook,\n      component.appContext.app,\n      component.uid,\n      // fixed by xxxxxx\n      // 为 0 是 App,无 parent 是 Page 指向 App\n      component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0,\n      component\n    );\n  };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n  \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n  \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n  return (component, type, time) => {\n    emit$1(hook, component.appContext.app, component.uid, component, type, time);\n  };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n  emit$1(\n    \"component:emit\" /* COMPONENT_EMIT */,\n    component.appContext.app,\n    component,\n    event,\n    params\n  );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n  if (instance.isUnmounted)\n    return;\n  const props = instance.vnode.props || EMPTY_OBJ;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const {\n      emitsOptions,\n      propsOptions: [propsOptions]\n    } = instance;\n    if (emitsOptions) {\n      if (!(event in emitsOptions) && true) {\n        if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n          warn$1(\n            `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n          );\n        }\n      } else {\n        const validator = emitsOptions[event];\n        if (isFunction(validator)) {\n          const isValid = validator(...rawArgs);\n          if (!isValid) {\n            warn$1(\n              `Invalid event arguments: event validation failed for event \"${event}\".`\n            );\n          }\n        }\n      }\n    }\n  }\n  let args = rawArgs;\n  const isModelListener = event.startsWith(\"update:\");\n  const modelArg = isModelListener && event.slice(7);\n  if (modelArg && modelArg in props) {\n    const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n    const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n    if (trim) {\n      args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n    }\n    if (number) {\n      args = rawArgs.map(looseToNumber);\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsComponentEmit(instance, event, args);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const lowerCaseEvent = event.toLowerCase();\n    if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n      warn$1(\n        `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n          instance,\n          instance.type\n        )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n          event\n        )}\" instead of \"${event}\".`\n      );\n    }\n  }\n  let handlerName;\n  let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n  props[handlerName = toHandlerKey(camelize(event))];\n  if (!handler && isModelListener) {\n    handler = props[handlerName = toHandlerKey(hyphenate(event))];\n  }\n  if (handler) {\n    callWithAsyncErrorHandling(\n      handler,\n      instance,\n      6,\n      args\n    );\n  }\n  const onceHandler = props[handlerName + `Once`];\n  if (onceHandler) {\n    if (!instance.emitted) {\n      instance.emitted = {};\n    } else if (instance.emitted[handlerName]) {\n      return;\n    }\n    instance.emitted[handlerName] = true;\n    callWithAsyncErrorHandling(\n      onceHandler,\n      instance,\n      6,\n      args\n    );\n  }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n  const cache = appContext.emitsCache;\n  const cached = cache.get(comp);\n  if (cached !== void 0) {\n    return cached;\n  }\n  const raw = comp.emits;\n  let normalized = {};\n  let hasExtends = false;\n  if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n    const extendEmits = (raw2) => {\n      const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n      if (normalizedFromExtend) {\n        hasExtends = true;\n        extend(normalized, normalizedFromExtend);\n      }\n    };\n    if (!asMixin && appContext.mixins.length) {\n      appContext.mixins.forEach(extendEmits);\n    }\n    if (comp.extends) {\n      extendEmits(comp.extends);\n    }\n    if (comp.mixins) {\n      comp.mixins.forEach(extendEmits);\n    }\n  }\n  if (!raw && !hasExtends) {\n    if (isObject(comp)) {\n      cache.set(comp, null);\n    }\n    return null;\n  }\n  if (isArray(raw)) {\n    raw.forEach((key) => normalized[key] = null);\n  } else {\n    extend(normalized, raw);\n  }\n  if (isObject(comp)) {\n    cache.set(comp, normalized);\n  }\n  return normalized;\n}\nfunction isEmitListener(options, key) {\n  if (!options || !isOn(key)) {\n    return false;\n  }\n  key = key.slice(2).replace(/Once$/, \"\");\n  return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n  const prev = currentRenderingInstance;\n  currentRenderingInstance = instance;\n  currentScopeId = instance && instance.type.__scopeId || null;\n  return prev;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n  if (!ctx)\n    return fn;\n  if (fn._n) {\n    return fn;\n  }\n  const renderFnWithContext = (...args) => {\n    if (renderFnWithContext._d) {\n      setBlockTracking(-1);\n    }\n    const prevInstance = setCurrentRenderingInstance(ctx);\n    let res;\n    try {\n      res = fn(...args);\n    } finally {\n      setCurrentRenderingInstance(prevInstance);\n      if (renderFnWithContext._d) {\n        setBlockTracking(1);\n      }\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      devtoolsComponentUpdated(ctx);\n    }\n    return res;\n  };\n  renderFnWithContext._n = true;\n  renderFnWithContext._c = true;\n  renderFnWithContext._d = true;\n  return renderFnWithContext;\n}\n\nfunction markAttrsAccessed() {\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDirective(name) {\n  return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n  const instance = currentRenderingInstance || currentInstance;\n  if (instance) {\n    const Component = instance.type;\n    if (type === COMPONENTS) {\n      const selfName = getComponentName(\n        Component,\n        false\n      );\n      if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n        return Component;\n      }\n    }\n    const res = (\n      // local registration\n      // check instance[type] first which is resolved for options API\n      resolve(instance[type] || Component[type], name) || // global registration\n      resolve(instance.appContext[type], name)\n    );\n    if (!res && maybeSelfReference) {\n      return Component;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n      const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n      warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n    }\n    return res;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(\n      `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n    );\n  }\n}\nfunction resolve(registry, name) {\n  return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n  {\n    const ctx = inject(ssrContextKey);\n    if (!ctx) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n      );\n    }\n    return ctx;\n  }\n};\n\nfunction watchEffect(effect, options) {\n  return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n  return doWatch(\n    effect,\n    null,\n    !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n  );\n}\nfunction watchSyncEffect(effect, options) {\n  return doWatch(\n    effect,\n    null,\n    !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n  );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n  if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n    warn$1(\n      `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n    );\n  }\n  return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n  immediate,\n  deep,\n  flush,\n  once,\n  onTrack,\n  onTrigger\n} = EMPTY_OBJ) {\n  if (cb && once) {\n    const _cb = cb;\n    cb = (...args) => {\n      _cb(...args);\n      unwatch();\n    };\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n    warn$1(\n      `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n    );\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n    if (immediate !== void 0) {\n      warn$1(\n        `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n      );\n    }\n    if (deep !== void 0) {\n      warn$1(\n        `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n      );\n    }\n    if (once !== void 0) {\n      warn$1(\n        `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n      );\n    }\n  }\n  const warnInvalidSource = (s) => {\n    warn$1(\n      `Invalid watch source: `,\n      s,\n      `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n    );\n  };\n  const instance = currentInstance;\n  const reactiveGetter = (source2) => deep === true ? source2 : (\n    // for deep: false, only traverse root-level properties\n    traverse(source2, deep === false ? 1 : void 0)\n  );\n  let getter;\n  let forceTrigger = false;\n  let isMultiSource = false;\n  if (isRef(source)) {\n    getter = () => source.value;\n    forceTrigger = isShallow(source);\n  } else if (isReactive(source)) {\n    getter = () => reactiveGetter(source);\n    forceTrigger = true;\n  } else if (isArray(source)) {\n    isMultiSource = true;\n    forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n    getter = () => source.map((s) => {\n      if (isRef(s)) {\n        return s.value;\n      } else if (isReactive(s)) {\n        return reactiveGetter(s);\n      } else if (isFunction(s)) {\n        return callWithErrorHandling(s, instance, 2);\n      } else {\n        !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n      }\n    });\n  } else if (isFunction(source)) {\n    if (cb) {\n      getter = () => callWithErrorHandling(source, instance, 2);\n    } else {\n      getter = () => {\n        if (cleanup) {\n          cleanup();\n        }\n        return callWithAsyncErrorHandling(\n          source,\n          instance,\n          3,\n          [onCleanup]\n        );\n      };\n    }\n  } else {\n    getter = NOOP;\n    !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n  }\n  if (cb && deep) {\n    const baseGetter = getter;\n    getter = () => traverse(baseGetter());\n  }\n  let cleanup;\n  let onCleanup = (fn) => {\n    cleanup = effect.onStop = () => {\n      callWithErrorHandling(fn, instance, 4);\n      cleanup = effect.onStop = void 0;\n    };\n  };\n  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n  const job = () => {\n    if (!effect.active || !effect.dirty) {\n      return;\n    }\n    if (cb) {\n      const newValue = effect.run();\n      if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n        if (cleanup) {\n          cleanup();\n        }\n        callWithAsyncErrorHandling(cb, instance, 3, [\n          newValue,\n          // pass undefined as the old value when it's changed for the first time\n          oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n          onCleanup\n        ]);\n        oldValue = newValue;\n      }\n    } else {\n      effect.run();\n    }\n  };\n  job.allowRecurse = !!cb;\n  let scheduler;\n  if (flush === \"sync\") {\n    scheduler = job;\n  } else if (flush === \"post\") {\n    scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense);\n  } else {\n    job.pre = true;\n    if (instance)\n      job.id = instance.uid;\n    scheduler = () => queueJob(job);\n  }\n  const effect = new ReactiveEffect(getter, NOOP, scheduler);\n  const scope = getCurrentScope();\n  const unwatch = () => {\n    effect.stop();\n    if (scope) {\n      remove(scope.effects, effect);\n    }\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    effect.onTrack = onTrack;\n    effect.onTrigger = onTrigger;\n  }\n  if (cb) {\n    if (immediate) {\n      job();\n    } else {\n      oldValue = effect.run();\n    }\n  } else if (flush === \"post\") {\n    queuePostRenderEffect$1(\n      effect.run.bind(effect),\n      instance && instance.suspense\n    );\n  } else {\n    effect.run();\n  }\n  return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n  const publicThis = this.proxy;\n  const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n  let cb;\n  if (isFunction(value)) {\n    cb = value;\n  } else {\n    cb = value.handler;\n    options = value;\n  }\n  const reset = setCurrentInstance(this);\n  const res = doWatch(getter, cb.bind(publicThis), options);\n  reset();\n  return res;\n}\nfunction createPathGetter(ctx, path) {\n  const segments = path.split(\".\");\n  return () => {\n    let cur = ctx;\n    for (let i = 0; i < segments.length && cur; i++) {\n      cur = cur[segments[i]];\n    }\n    return cur;\n  };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n  if (!isObject(value) || value[\"__v_skip\"]) {\n    return value;\n  }\n  if (depth && depth > 0) {\n    if (currentDepth >= depth) {\n      return value;\n    }\n    currentDepth++;\n  }\n  seen = seen || /* @__PURE__ */ new Set();\n  if (seen.has(value)) {\n    return value;\n  }\n  seen.add(value);\n  if (isRef(value)) {\n    traverse(value.value, depth, currentDepth, seen);\n  } else if (isArray(value)) {\n    for (let i = 0; i < value.length; i++) {\n      traverse(value[i], depth, currentDepth, seen);\n    }\n  } else if (isSet(value) || isMap(value)) {\n    value.forEach((v) => {\n      traverse(v, depth, currentDepth, seen);\n    });\n  } else if (isPlainObject(value)) {\n    for (const key in value) {\n      traverse(value[key], depth, currentDepth, seen);\n    }\n  }\n  return value;\n}\n\nfunction validateDirectiveName(name) {\n  if (isBuiltInDirective(name)) {\n    warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n  }\n}\nfunction withDirectives(vnode, directives) {\n  if (currentRenderingInstance === null) {\n    !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n    return vnode;\n  }\n  const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n  const bindings = vnode.dirs || (vnode.dirs = []);\n  for (let i = 0; i < directives.length; i++) {\n    let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n    if (dir) {\n      if (isFunction(dir)) {\n        dir = {\n          mounted: dir,\n          updated: dir\n        };\n      }\n      if (dir.deep) {\n        traverse(value);\n      }\n      bindings.push({\n        dir,\n        instance,\n        value,\n        oldValue: void 0,\n        arg,\n        modifiers\n      });\n    }\n  }\n  return vnode;\n}\n\nfunction createAppContext() {\n  return {\n    app: null,\n    config: {\n      isNativeTag: NO,\n      performance: false,\n      globalProperties: {},\n      optionMergeStrategies: {},\n      errorHandler: void 0,\n      warnHandler: void 0,\n      compilerOptions: {}\n    },\n    mixins: [],\n    components: {},\n    directives: {},\n    provides: /* @__PURE__ */ Object.create(null),\n    optionsCache: /* @__PURE__ */ new WeakMap(),\n    propsCache: /* @__PURE__ */ new WeakMap(),\n    emitsCache: /* @__PURE__ */ new WeakMap()\n  };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n  return function createApp(rootComponent, rootProps = null) {\n    if (!isFunction(rootComponent)) {\n      rootComponent = extend({}, rootComponent);\n    }\n    if (rootProps != null && !isObject(rootProps)) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n      rootProps = null;\n    }\n    const context = createAppContext();\n    const installedPlugins = /* @__PURE__ */ new WeakSet();\n    const app = context.app = {\n      _uid: uid$1++,\n      _component: rootComponent,\n      _props: rootProps,\n      _container: null,\n      _context: context,\n      _instance: null,\n      version,\n      get config() {\n        return context.config;\n      },\n      set config(v) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\n            `app.config cannot be replaced. Modify individual options instead.`\n          );\n        }\n      },\n      use(plugin, ...options) {\n        if (installedPlugins.has(plugin)) {\n          !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n        } else if (plugin && isFunction(plugin.install)) {\n          installedPlugins.add(plugin);\n          plugin.install(app, ...options);\n        } else if (isFunction(plugin)) {\n          installedPlugins.add(plugin);\n          plugin(app, ...options);\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\n            `A plugin must either be a function or an object with an \"install\" function.`\n          );\n        }\n        return app;\n      },\n      mixin(mixin) {\n        if (__VUE_OPTIONS_API__) {\n          if (!context.mixins.includes(mixin)) {\n            context.mixins.push(mixin);\n          } else if (!!(process.env.NODE_ENV !== \"production\")) {\n            warn$1(\n              \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n            );\n          }\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\"Mixins are only available in builds supporting Options API\");\n        }\n        return app;\n      },\n      component(name, component) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          validateComponentName(name, context.config);\n        }\n        if (!component) {\n          return context.components[name];\n        }\n        if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n          warn$1(`Component \"${name}\" has already been registered in target app.`);\n        }\n        context.components[name] = component;\n        return app;\n      },\n      directive(name, directive) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          validateDirectiveName(name);\n        }\n        if (!directive) {\n          return context.directives[name];\n        }\n        if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n          warn$1(`Directive \"${name}\" has already been registered in target app.`);\n        }\n        context.directives[name] = directive;\n        return app;\n      },\n      // fixed by xxxxxx\n      mount() {\n      },\n      // fixed by xxxxxx\n      unmount() {\n      },\n      provide(key, value) {\n        if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n          warn$1(\n            `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n          );\n        }\n        context.provides[key] = value;\n        return app;\n      },\n      runWithContext(fn) {\n        const lastApp = currentApp;\n        currentApp = app;\n        try {\n          return fn();\n        } finally {\n          currentApp = lastApp;\n        }\n      }\n    };\n    return app;\n  };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n  if (!currentInstance) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`provide() can only be used inside setup().`);\n    }\n  } else {\n    let provides = currentInstance.provides;\n    const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n    if (parentProvides === provides) {\n      provides = currentInstance.provides = Object.create(parentProvides);\n    }\n    provides[key] = value;\n    if (currentInstance.type.mpType === \"app\") {\n      currentInstance.appContext.app.provide(key, value);\n    }\n  }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n  const instance = currentInstance || currentRenderingInstance;\n  if (instance || currentApp) {\n    const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n    if (provides && key in provides) {\n      return provides[key];\n    } else if (arguments.length > 1) {\n      return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`injection \"${String(key)}\" not found.`);\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(`inject() can only be used inside setup() or functional components.`);\n  }\n}\nfunction hasInjectionContext() {\n  return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n  return isFunction(options) ? (\n    // #8326: extend call and options.name access are considered side-effects\n    // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n    /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n  ) : options;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n  registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n  registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n  const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n    let current = target;\n    while (current) {\n      if (current.isDeactivated) {\n        return;\n      }\n      current = current.parent;\n    }\n    return hook();\n  });\n  injectHook(type, wrappedHook, target);\n  if (target) {\n    let current = target.parent;\n    while (current && current.parent) {\n      if (isKeepAlive(current.parent.vnode)) {\n        injectToKeepAliveRoot(wrappedHook, type, target, current);\n      }\n      current = current.parent;\n    }\n  }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n  const injected = injectHook(\n    type,\n    hook,\n    keepAliveRoot,\n    true\n    /* prepend */\n  );\n  onUnmounted(() => {\n    remove(keepAliveRoot[type], injected);\n  }, target);\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n  if (target) {\n    if (isRootHook(type)) {\n      target = target.root;\n    }\n    const hooks = target[type] || (target[type] = []);\n    const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n      if (target.isUnmounted) {\n        return;\n      }\n      pauseTracking();\n      const reset = setCurrentInstance(target);\n      const res = callWithAsyncErrorHandling(hook, target, type, args);\n      reset();\n      resetTracking();\n      return res;\n    });\n    if (prepend) {\n      hooks.unshift(wrappedHook);\n    } else {\n      hooks.push(wrappedHook);\n    }\n    return wrappedHook;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    const apiName = toHandlerKey(\n      (ErrorTypeStrings[type] || type.replace(/^on/, \"\")).replace(/ hook$/, \"\")\n    );\n    warn$1(\n      `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (``)\n    );\n  }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n  // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n  (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n  \"rtg\"\n);\nconst onRenderTracked = createHook(\n  \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n  injectHook(\"ec\", hook, target);\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n  const ret = {};\n  if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n    warn$1(`v-on with no argument expects an object value.`);\n    return ret;\n  }\n  for (const key in obj) {\n    ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n  }\n  return ret;\n}\n\nconst getPublicInstance = (i) => {\n  if (!i)\n    return null;\n  if (isStatefulComponent(i))\n    return getExposeProxy(i) || i.proxy;\n  return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n  // Move PURE marker to new line to workaround compiler discarding it\n  // due to type annotation\n  /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n    $: (i) => i,\n    // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的\n    // $el: i => i.vnode.el,\n    $el: (i) => i.__$el || (i.__$el = {}),\n    $data: (i) => i.data,\n    $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n    $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n    $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n    $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n    $parent: (i) => getPublicInstance(i.parent),\n    $root: (i) => getPublicInstance(i.root),\n    $emit: (i) => i.emit,\n    $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n    $forceUpdate: (i) => i.f || (i.f = () => {\n      i.effect.dirty = true;\n      queueJob(i.update);\n    }),\n    // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx\n    $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n  })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n  get({ _: instance }, key) {\n    const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n    if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n      return true;\n    }\n    let normalizedProps;\n    if (key[0] !== \"$\") {\n      const n = accessCache[key];\n      if (n !== void 0) {\n        switch (n) {\n          case 1 /* SETUP */:\n            return setupState[key];\n          case 2 /* DATA */:\n            return data[key];\n          case 4 /* CONTEXT */:\n            return ctx[key];\n          case 3 /* PROPS */:\n            return props[key];\n        }\n      } else if (hasSetupBinding(setupState, key)) {\n        accessCache[key] = 1 /* SETUP */;\n        return setupState[key];\n      } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n        accessCache[key] = 2 /* DATA */;\n        return data[key];\n      } else if (\n        // only cache other properties when instance has declared (thus stable)\n        // props\n        (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n      ) {\n        accessCache[key] = 3 /* PROPS */;\n        return props[key];\n      } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n        accessCache[key] = 4 /* CONTEXT */;\n        return ctx[key];\n      } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n        accessCache[key] = 0 /* OTHER */;\n      }\n    }\n    const publicGetter = publicPropertiesMap[key];\n    let cssModule, globalProperties;\n    if (publicGetter) {\n      if (key === \"$attrs\") {\n        track(instance, \"get\", key);\n        !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n      } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n        track(instance, \"get\", key);\n      }\n      return publicGetter(instance);\n    } else if (\n      // css module (injected by vue-loader)\n      (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n    ) {\n      return cssModule;\n    } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n      accessCache[key] = 4 /* CONTEXT */;\n      return ctx[key];\n    } else if (\n      // global properties\n      globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n    ) {\n      {\n        return globalProperties[key];\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n    // to infinite warning loop\n    key.indexOf(\"__v\") !== 0)) {\n      if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n        warn$1(\n          `Property ${JSON.stringify(\n            key\n          )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n        );\n      } else if (instance === currentRenderingInstance) {\n        warn$1(\n          `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n        );\n      }\n    }\n  },\n  set({ _: instance }, key, value) {\n    const { data, setupState, ctx } = instance;\n    if (hasSetupBinding(setupState, key)) {\n      setupState[key] = value;\n      return true;\n    } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n      warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n      return false;\n    } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n      data[key] = value;\n      return true;\n    } else if (hasOwn(instance.props, key)) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n      return false;\n    }\n    if (key[0] === \"$\" && key.slice(1) in instance) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n      );\n      return false;\n    } else {\n      if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n        Object.defineProperty(ctx, key, {\n          enumerable: true,\n          configurable: true,\n          value\n        });\n      } else {\n        ctx[key] = value;\n      }\n    }\n    return true;\n  },\n  has({\n    _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n  }, key) {\n    let normalizedProps;\n    return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n  },\n  defineProperty(target, key, descriptor) {\n    if (descriptor.get != null) {\n      target._.accessCache[key] = 0;\n    } else if (hasOwn(descriptor, \"value\")) {\n      this.set(target, key, descriptor.value, null);\n    }\n    return Reflect.defineProperty(target, key, descriptor);\n  }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n  PublicInstanceProxyHandlers.ownKeys = (target) => {\n    warn$1(\n      `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n    );\n    return Reflect.ownKeys(target);\n  };\n}\nfunction createDevRenderContext(instance) {\n  const target = {};\n  Object.defineProperty(target, `_`, {\n    configurable: true,\n    enumerable: false,\n    get: () => instance\n  });\n  Object.keys(publicPropertiesMap).forEach((key) => {\n    Object.defineProperty(target, key, {\n      configurable: true,\n      enumerable: false,\n      get: () => publicPropertiesMap[key](instance),\n      // intercepted by the proxy so no need for implementation,\n      // but needed to prevent set errors\n      set: NOOP\n    });\n  });\n  return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n  const {\n    ctx,\n    propsOptions: [propsOptions]\n  } = instance;\n  if (propsOptions) {\n    Object.keys(propsOptions).forEach((key) => {\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => instance.props[key],\n        set: NOOP\n      });\n    });\n  }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n  const { ctx, setupState } = instance;\n  Object.keys(toRaw(setupState)).forEach((key) => {\n    if (!setupState.__isScriptSetup) {\n      if (isReservedPrefix(key[0])) {\n        warn$1(\n          `setup() return property ${JSON.stringify(\n            key\n          )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n        );\n        return;\n      }\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => setupState[key],\n        set: NOOP\n      });\n    }\n  });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n  `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineProps`);\n  }\n  return null;\n}\nfunction defineEmits() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineEmits`);\n  }\n  return null;\n}\nfunction defineExpose(exposed) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineExpose`);\n  }\n}\nfunction withDefaults(props, defaults) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`withDefaults`);\n  }\n  return null;\n}\nfunction useSlots() {\n  return getContext().slots;\n}\nfunction useAttrs() {\n  return getContext().attrs;\n}\nfunction getContext() {\n  const i = getCurrentInstance();\n  if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n    warn$1(`useContext() called without active instance.`);\n  }\n  return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n  return isArray(props) ? props.reduce(\n    (normalized, p) => (normalized[p] = null, normalized),\n    {}\n  ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n  const props = normalizePropsOrEmits(raw);\n  for (const key in defaults) {\n    if (key.startsWith(\"__skip\"))\n      continue;\n    let opt = props[key];\n    if (opt) {\n      if (isArray(opt) || isFunction(opt)) {\n        opt = props[key] = { type: opt, default: defaults[key] };\n      } else {\n        opt.default = defaults[key];\n      }\n    } else if (opt === null) {\n      opt = props[key] = { default: defaults[key] };\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n    }\n    if (opt && defaults[`__skip_${key}`]) {\n      opt.skipFactory = true;\n    }\n  }\n  return props;\n}\nfunction mergeModels(a, b) {\n  if (!a || !b)\n    return a || b;\n  if (isArray(a) && isArray(b))\n    return a.concat(b);\n  return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n  const ret = {};\n  for (const key in props) {\n    if (!excludedKeys.includes(key)) {\n      Object.defineProperty(ret, key, {\n        enumerable: true,\n        get: () => props[key]\n      });\n    }\n  }\n  return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n  const ctx = getCurrentInstance();\n  if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n    warn$1(\n      `withAsyncContext called without active current instance. This is likely a bug.`\n    );\n  }\n  let awaitable = getAwaitable();\n  unsetCurrentInstance();\n  if (isPromise(awaitable)) {\n    awaitable = awaitable.catch((e) => {\n      setCurrentInstance(ctx);\n      throw e;\n    });\n  }\n  return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n  const cache = /* @__PURE__ */ Object.create(null);\n  return (type, key) => {\n    if (cache[key]) {\n      warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n    } else {\n      cache[key] = type;\n    }\n  };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions$1(instance) {\n  const options = resolveMergedOptions(instance);\n  const publicThis = instance.proxy;\n  const ctx = instance.ctx;\n  shouldCacheAccess = false;\n  if (options.beforeCreate) {\n    callHook(options.beforeCreate, instance, \"bc\");\n  }\n  const {\n    // state\n    data: dataOptions,\n    computed: computedOptions,\n    methods,\n    watch: watchOptions,\n    provide: provideOptions,\n    inject: injectOptions,\n    // lifecycle\n    created,\n    beforeMount,\n    mounted,\n    beforeUpdate,\n    updated,\n    activated,\n    deactivated,\n    beforeDestroy,\n    beforeUnmount,\n    destroyed,\n    unmounted,\n    render,\n    renderTracked,\n    renderTriggered,\n    errorCaptured,\n    serverPrefetch,\n    // public API\n    expose,\n    inheritAttrs,\n    // assets\n    components,\n    directives,\n    filters\n  } = options;\n  const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const [propsOptions] = instance.propsOptions;\n    if (propsOptions) {\n      for (const key in propsOptions) {\n        checkDuplicateProperties(\"Props\" /* PROPS */, key);\n      }\n    }\n  }\n  function initInjections() {\n    if (injectOptions) {\n      resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n    }\n  }\n  if (!__VUE_CREATED_DEFERRED__) {\n    initInjections();\n  }\n  if (methods) {\n    for (const key in methods) {\n      const methodHandler = methods[key];\n      if (isFunction(methodHandler)) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          Object.defineProperty(ctx, key, {\n            value: methodHandler.bind(publicThis),\n            configurable: true,\n            enumerable: true,\n            writable: true\n          });\n        } else {\n          ctx[key] = methodHandler.bind(publicThis);\n        }\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n        }\n      } else if (!!(process.env.NODE_ENV !== \"production\")) {\n        warn$1(\n          `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n        );\n      }\n    }\n  }\n  if (dataOptions) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n      warn$1(\n        `The data option must be a function. Plain object usage is no longer supported.`\n      );\n    }\n    const data = dataOptions.call(publicThis, publicThis);\n    if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n      warn$1(\n        `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n      );\n    }\n    if (!isObject(data)) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n    } else {\n      instance.data = reactive(data);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        for (const key in data) {\n          checkDuplicateProperties(\"Data\" /* DATA */, key);\n          if (!isReservedPrefix(key[0])) {\n            Object.defineProperty(ctx, key, {\n              configurable: true,\n              enumerable: true,\n              get: () => data[key],\n              set: NOOP\n            });\n          }\n        }\n      }\n    }\n  }\n  shouldCacheAccess = true;\n  if (computedOptions) {\n    for (const key in computedOptions) {\n      const opt = computedOptions[key];\n      const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n      if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n        warn$1(`Computed property \"${key}\" has no getter.`);\n      }\n      const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n        warn$1(\n          `Write operation failed: computed property \"${key}\" is readonly.`\n        );\n      } : NOOP;\n      const c = computed({\n        get,\n        set\n      });\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => c.value,\n        set: (v) => c.value = v\n      });\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n      }\n    }\n  }\n  if (watchOptions) {\n    for (const key in watchOptions) {\n      createWatcher(watchOptions[key], ctx, publicThis, key);\n    }\n  }\n  function initProvides() {\n    if (provideOptions) {\n      const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n      Reflect.ownKeys(provides).forEach((key) => {\n        provide(key, provides[key]);\n      });\n    }\n  }\n  if (!__VUE_CREATED_DEFERRED__) {\n    initProvides();\n  }\n  if (__VUE_CREATED_DEFERRED__) {\n    let callCreatedHook2 = function() {\n      initInjections();\n      initProvides();\n      if (created) {\n        callHook(created, instance, \"c\");\n      }\n      instance.update();\n    };\n    ctx.$callCreatedHook = function(name) {\n      const reset = setCurrentInstance(instance);\n      pauseTracking();\n      try {\n        callCreatedHook2();\n      } finally {\n        resetTracking();\n        reset();\n      }\n    };\n  } else {\n    if (created) {\n      callHook(created, instance, \"c\");\n    }\n  }\n  function registerLifecycleHook(register, hook) {\n    if (isArray(hook)) {\n      hook.forEach((_hook) => register(_hook.bind(publicThis)));\n    } else if (hook) {\n      register(hook.bind(publicThis));\n    }\n  }\n  registerLifecycleHook(onBeforeMount, beforeMount);\n  registerLifecycleHook(onMounted, mounted);\n  registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n  registerLifecycleHook(onUpdated, updated);\n  registerLifecycleHook(onActivated, activated);\n  registerLifecycleHook(onDeactivated, deactivated);\n  registerLifecycleHook(onErrorCaptured, errorCaptured);\n  registerLifecycleHook(onRenderTracked, renderTracked);\n  registerLifecycleHook(onRenderTriggered, renderTriggered);\n  registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n  registerLifecycleHook(onUnmounted, unmounted);\n  registerLifecycleHook(onServerPrefetch, serverPrefetch);\n  if (isArray(expose)) {\n    if (expose.length) {\n      const exposed = instance.exposed || (instance.exposed = {});\n      expose.forEach((key) => {\n        Object.defineProperty(exposed, key, {\n          get: () => publicThis[key],\n          set: (val) => publicThis[key] = val\n        });\n      });\n    } else if (!instance.exposed) {\n      instance.exposed = {};\n    }\n  }\n  if (render && instance.render === NOOP) {\n    instance.render = render;\n  }\n  if (inheritAttrs != null) {\n    instance.inheritAttrs = inheritAttrs;\n  }\n  if (components)\n    instance.components = components;\n  if (directives)\n    instance.directives = directives;\n  if (instance.ctx.$onApplyOptions) {\n    instance.ctx.$onApplyOptions(options, instance, publicThis);\n  }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n  if (isArray(injectOptions)) {\n    injectOptions = normalizeInject(injectOptions);\n  }\n  for (const key in injectOptions) {\n    const opt = injectOptions[key];\n    let injected;\n    if (isObject(opt)) {\n      if (\"default\" in opt) {\n        injected = inject(\n          opt.from || key,\n          opt.default,\n          true\n        );\n      } else {\n        injected = inject(opt.from || key);\n      }\n    } else {\n      injected = inject(opt);\n    }\n    if (isRef(injected)) {\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => injected.value,\n        set: (v) => injected.value = v\n      });\n    } else {\n      ctx[key] = injected;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n    }\n  }\n}\nfunction callHook(hook, instance, type) {\n  callWithAsyncErrorHandling(\n    isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n    instance,\n    type\n  );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n  const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n  if (isString(raw)) {\n    const handler = ctx[raw];\n    if (isFunction(handler)) {\n      watch(getter, handler);\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n    }\n  } else if (isFunction(raw)) {\n    watch(getter, raw.bind(publicThis));\n  } else if (isObject(raw)) {\n    if (isArray(raw)) {\n      raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n    } else {\n      const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n      if (isFunction(handler)) {\n        watch(getter, handler, raw);\n      } else if (!!(process.env.NODE_ENV !== \"production\")) {\n        warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n      }\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(`Invalid watch option: \"${key}\"`, raw);\n  }\n}\nfunction resolveMergedOptions(instance) {\n  const base = instance.type;\n  const { mixins, extends: extendsOptions } = base;\n  const {\n    mixins: globalMixins,\n    optionsCache: cache,\n    config: { optionMergeStrategies }\n  } = instance.appContext;\n  const cached = cache.get(base);\n  let resolved;\n  if (cached) {\n    resolved = cached;\n  } else if (!globalMixins.length && !mixins && !extendsOptions) {\n    {\n      resolved = base;\n    }\n  } else {\n    resolved = {};\n    if (globalMixins.length) {\n      globalMixins.forEach(\n        (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n      );\n    }\n    mergeOptions(resolved, base, optionMergeStrategies);\n  }\n  if (isObject(base)) {\n    cache.set(base, resolved);\n  }\n  return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n  const { mixins, extends: extendsOptions } = from;\n  if (extendsOptions) {\n    mergeOptions(to, extendsOptions, strats, true);\n  }\n  if (mixins) {\n    mixins.forEach(\n      (m) => mergeOptions(to, m, strats, true)\n    );\n  }\n  for (const key in from) {\n    if (asMixin && key === \"expose\") {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n      );\n    } else {\n      const strat = internalOptionMergeStrats[key] || strats && strats[key];\n      to[key] = strat ? strat(to[key], from[key]) : from[key];\n    }\n  }\n  return to;\n}\nconst internalOptionMergeStrats = {\n  data: mergeDataFn,\n  props: mergeEmitsOrPropsOptions,\n  emits: mergeEmitsOrPropsOptions,\n  // objects\n  methods: mergeObjectOptions,\n  computed: mergeObjectOptions,\n  // lifecycle\n  beforeCreate: mergeAsArray$1,\n  created: mergeAsArray$1,\n  beforeMount: mergeAsArray$1,\n  mounted: mergeAsArray$1,\n  beforeUpdate: mergeAsArray$1,\n  updated: mergeAsArray$1,\n  beforeDestroy: mergeAsArray$1,\n  beforeUnmount: mergeAsArray$1,\n  destroyed: mergeAsArray$1,\n  unmounted: mergeAsArray$1,\n  activated: mergeAsArray$1,\n  deactivated: mergeAsArray$1,\n  errorCaptured: mergeAsArray$1,\n  serverPrefetch: mergeAsArray$1,\n  // assets\n  components: mergeObjectOptions,\n  directives: mergeObjectOptions,\n  // watch\n  watch: mergeWatchOptions,\n  // provide / inject\n  provide: mergeDataFn,\n  inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n  if (!from) {\n    return to;\n  }\n  if (!to) {\n    return from;\n  }\n  return function mergedDataFn() {\n    return (extend)(\n      isFunction(to) ? to.call(this, this) : to,\n      isFunction(from) ? from.call(this, this) : from\n    );\n  };\n}\nfunction mergeInject(to, from) {\n  return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n  if (isArray(raw)) {\n    const res = {};\n    for (let i = 0; i < raw.length; i++) {\n      res[raw[i]] = raw[i];\n    }\n    return res;\n  }\n  return raw;\n}\nfunction mergeAsArray$1(to, from) {\n  return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n  return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n  if (to) {\n    if (isArray(to) && isArray(from)) {\n      return [.../* @__PURE__ */ new Set([...to, ...from])];\n    }\n    return extend(\n      /* @__PURE__ */ Object.create(null),\n      normalizePropsOrEmits(to),\n      normalizePropsOrEmits(from != null ? from : {})\n    );\n  } else {\n    return from;\n  }\n}\nfunction mergeWatchOptions(to, from) {\n  if (!to)\n    return from;\n  if (!from)\n    return to;\n  const merged = extend(/* @__PURE__ */ Object.create(null), to);\n  for (const key in from) {\n    merged[key] = mergeAsArray$1(to[key], from[key]);\n  }\n  return merged;\n}\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n  const props = {};\n  const attrs = {};\n  instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n  setFullProps(instance, rawProps, props, attrs);\n  for (const key in instance.propsOptions[0]) {\n    if (!(key in props)) {\n      props[key] = void 0;\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    validateProps(rawProps || {}, props, instance);\n  }\n  if (isStateful) {\n    instance.props = isSSR ? props : shallowReactive(props);\n  } else {\n    if (!instance.type.props) {\n      instance.props = attrs;\n    } else {\n      instance.props = props;\n    }\n  }\n  instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n  const {\n    props,\n    attrs,\n    vnode: { patchFlag }\n  } = instance;\n  const rawCurrentProps = toRaw(props);\n  const [options] = instance.propsOptions;\n  let hasAttrsChanged = false;\n  if (\n    // always force full diff in dev\n    // - #1942 if hmr is enabled with sfc component\n    // - vite#872 non-sfc component used by sfc component\n    !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext()) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n  ) {\n    if (patchFlag & 8) {\n      const propsToUpdate = instance.vnode.dynamicProps;\n      for (let i = 0; i < propsToUpdate.length; i++) {\n        let key = propsToUpdate[i];\n        if (isEmitListener(instance.emitsOptions, key)) {\n          continue;\n        }\n        const value = rawProps[key];\n        if (options) {\n          if (hasOwn(attrs, key)) {\n            if (value !== attrs[key]) {\n              attrs[key] = value;\n              hasAttrsChanged = true;\n            }\n          } else {\n            const camelizedKey = camelize(key);\n            props[camelizedKey] = resolvePropValue(\n              options,\n              rawCurrentProps,\n              camelizedKey,\n              value,\n              instance,\n              false\n            );\n          }\n        } else {\n          if (value !== attrs[key]) {\n            attrs[key] = value;\n            hasAttrsChanged = true;\n          }\n        }\n      }\n    }\n  } else {\n    if (setFullProps(instance, rawProps, props, attrs)) {\n      hasAttrsChanged = true;\n    }\n    let kebabKey;\n    for (const key in rawCurrentProps) {\n      if (!rawProps || // for camelCase\n      !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n      // and converted to camelCase (#955)\n      ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n        if (options) {\n          if (rawPrevProps && // for camelCase\n          (rawPrevProps[key] !== void 0 || // for kebab-case\n          rawPrevProps[kebabKey] !== void 0)) {\n            props[key] = resolvePropValue(\n              options,\n              rawCurrentProps,\n              key,\n              void 0,\n              instance,\n              true\n            );\n          }\n        } else {\n          delete props[key];\n        }\n      }\n    }\n    if (attrs !== rawCurrentProps) {\n      for (const key in attrs) {\n        if (!rawProps || !hasOwn(rawProps, key) && true) {\n          delete attrs[key];\n          hasAttrsChanged = true;\n        }\n      }\n    }\n  }\n  if (hasAttrsChanged) {\n    trigger(instance, \"set\", \"$attrs\");\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    validateProps(rawProps || {}, props, instance);\n  }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n  const [options, needCastKeys] = instance.propsOptions;\n  let hasAttrsChanged = false;\n  let rawCastValues;\n  if (rawProps) {\n    for (let key in rawProps) {\n      if (isReservedProp(key)) {\n        continue;\n      }\n      const value = rawProps[key];\n      let camelKey;\n      if (options && hasOwn(options, camelKey = camelize(key))) {\n        if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n          props[camelKey] = value;\n        } else {\n          (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n        }\n      } else if (!isEmitListener(instance.emitsOptions, key)) {\n        if (!(key in attrs) || value !== attrs[key]) {\n          attrs[key] = value;\n          hasAttrsChanged = true;\n        }\n      }\n    }\n  }\n  if (needCastKeys) {\n    const rawCurrentProps = toRaw(props);\n    const castValues = rawCastValues || EMPTY_OBJ;\n    for (let i = 0; i < needCastKeys.length; i++) {\n      const key = needCastKeys[i];\n      props[key] = resolvePropValue(\n        options,\n        rawCurrentProps,\n        key,\n        castValues[key],\n        instance,\n        !hasOwn(castValues, key)\n      );\n    }\n  }\n  return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n  const opt = options[key];\n  if (opt != null) {\n    const hasDefault = hasOwn(opt, \"default\");\n    if (hasDefault && value === void 0) {\n      const defaultValue = opt.default;\n      if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n        const { propsDefaults } = instance;\n        if (key in propsDefaults) {\n          value = propsDefaults[key];\n        } else {\n          const reset = setCurrentInstance(instance);\n          value = propsDefaults[key] = defaultValue.call(\n            null,\n            props\n          );\n          reset();\n        }\n      } else {\n        value = defaultValue;\n      }\n    }\n    if (opt[0 /* shouldCast */]) {\n      if (isAbsent && !hasDefault) {\n        value = false;\n      } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n        value = true;\n      }\n    }\n  }\n  return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n  const cache = appContext.propsCache;\n  const cached = cache.get(comp);\n  if (cached) {\n    return cached;\n  }\n  const raw = comp.props;\n  const normalized = {};\n  const needCastKeys = [];\n  let hasExtends = false;\n  if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n    const extendProps = (raw2) => {\n      hasExtends = true;\n      const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n      extend(normalized, props);\n      if (keys)\n        needCastKeys.push(...keys);\n    };\n    if (!asMixin && appContext.mixins.length) {\n      appContext.mixins.forEach(extendProps);\n    }\n    if (comp.extends) {\n      extendProps(comp.extends);\n    }\n    if (comp.mixins) {\n      comp.mixins.forEach(extendProps);\n    }\n  }\n  if (!raw && !hasExtends) {\n    if (isObject(comp)) {\n      cache.set(comp, EMPTY_ARR);\n    }\n    return EMPTY_ARR;\n  }\n  if (isArray(raw)) {\n    for (let i = 0; i < raw.length; i++) {\n      if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n        warn$1(`props must be strings when using array syntax.`, raw[i]);\n      }\n      const normalizedKey = camelize(raw[i]);\n      if (validatePropName(normalizedKey)) {\n        normalized[normalizedKey] = EMPTY_OBJ;\n      }\n    }\n  } else if (raw) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n      warn$1(`invalid props options`, raw);\n    }\n    for (const key in raw) {\n      const normalizedKey = camelize(key);\n      if (validatePropName(normalizedKey)) {\n        const opt = raw[key];\n        const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n        if (prop) {\n          const booleanIndex = getTypeIndex(Boolean, prop.type);\n          const stringIndex = getTypeIndex(String, prop.type);\n          prop[0 /* shouldCast */] = booleanIndex > -1;\n          prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex;\n          if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n            needCastKeys.push(normalizedKey);\n          }\n        }\n      }\n    }\n  }\n  const res = [normalized, needCastKeys];\n  if (isObject(comp)) {\n    cache.set(comp, res);\n  }\n  return res;\n}\nfunction validatePropName(key) {\n  if (key[0] !== \"$\" && !isReservedProp(key)) {\n    return true;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n  }\n  return false;\n}\nfunction getType(ctor) {\n  if (ctor === null) {\n    return \"null\";\n  }\n  if (typeof ctor === \"function\") {\n    return ctor.name || \"\";\n  } else if (typeof ctor === \"object\") {\n    const name = ctor.constructor && ctor.constructor.name;\n    return name || \"\";\n  }\n  return \"\";\n}\nfunction isSameType(a, b) {\n  return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n  if (isArray(expectedTypes)) {\n    return expectedTypes.findIndex((t) => isSameType(t, type));\n  } else if (isFunction(expectedTypes)) {\n    return isSameType(expectedTypes, type) ? 0 : -1;\n  }\n  return -1;\n}\nfunction validateProps(rawProps, props, instance) {\n  const resolvedValues = toRaw(props);\n  const options = instance.propsOptions[0];\n  for (const key in options) {\n    let opt = options[key];\n    if (opt == null)\n      continue;\n    validateProp(\n      key,\n      resolvedValues[key],\n      opt,\n      !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n      !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))\n    );\n  }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n  const { type, required, validator, skipCheck } = prop;\n  if (required && isAbsent) {\n    warn$1('Missing required prop: \"' + name + '\"');\n    return;\n  }\n  if (value == null && !required) {\n    return;\n  }\n  if (type != null && type !== true && !skipCheck) {\n    let isValid = false;\n    const types = isArray(type) ? type : [type];\n    const expectedTypes = [];\n    for (let i = 0; i < types.length && !isValid; i++) {\n      const { valid, expectedType } = assertType(value, types[i]);\n      expectedTypes.push(expectedType || \"\");\n      isValid = valid;\n    }\n    if (!isValid) {\n      warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n      return;\n    }\n  }\n  if (validator && !validator(value, props)) {\n    warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n  }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n  \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n  let valid;\n  const expectedType = getType(type);\n  if (isSimpleType(expectedType)) {\n    const t = typeof value;\n    valid = t === expectedType.toLowerCase();\n    if (!valid && t === \"object\") {\n      valid = value instanceof type;\n    }\n  } else if (expectedType === \"Object\") {\n    valid = isObject(value);\n  } else if (expectedType === \"Array\") {\n    valid = isArray(value);\n  } else if (expectedType === \"null\") {\n    valid = value === null;\n  } else {\n    valid = value instanceof type;\n  }\n  return {\n    valid,\n    expectedType\n  };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n  if (expectedTypes.length === 0) {\n    return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n  }\n  let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n  const expectedType = expectedTypes[0];\n  const receivedType = toRawType(value);\n  const expectedValue = styleValue(value, expectedType);\n  const receivedValue = styleValue(value, receivedType);\n  if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n    message += ` with value ${expectedValue}`;\n  }\n  message += `, got ${receivedType} `;\n  if (isExplicable(receivedType)) {\n    message += `with value ${receivedValue}.`;\n  }\n  return message;\n}\nfunction styleValue(value, type) {\n  if (type === \"String\") {\n    return `\"${value}\"`;\n  } else if (type === \"Number\") {\n    return `${Number(value)}`;\n  } else {\n    return `${value}`;\n  }\n}\nfunction isExplicable(type) {\n  const explicitTypes = [\"string\", \"number\", \"boolean\"];\n  return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n  return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n  if (instance.appContext.config.performance && isSupported()) {\n    perf.mark(`vue-${type}-${instance.uid}`);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n  }\n}\nfunction endMeasure(instance, type) {\n  if (instance.appContext.config.performance && isSupported()) {\n    const startTag = `vue-${type}-${instance.uid}`;\n    const endTag = startTag + `:end`;\n    perf.mark(endTag);\n    perf.measure(\n      `<${formatComponentName(instance, instance.type)}> ${type}`,\n      startTag,\n      endTag\n    );\n    perf.clearMarks(startTag);\n    perf.clearMarks(endTag);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n  }\n}\nfunction isSupported() {\n  if (supported !== void 0) {\n    return supported;\n  }\n  if (typeof window !== \"undefined\" && window.performance) {\n    supported = true;\n    perf = window.performance;\n  } else {\n    supported = false;\n  }\n  return supported;\n}\n\nconst queuePostRenderEffect$1 = queuePostFlushCb;\n\nconst isTeleport = (type) => type.__isTeleport;\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nlet currentBlock = null;\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n  isBlockTreeEnabled += value;\n}\nfunction isVNode(value) {\n  return value ? value.__v_isVNode === true : false;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n  return _createVNode(\n    ...args\n  );\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n  ref,\n  ref_key,\n  ref_for\n}) => {\n  if (typeof ref === \"number\") {\n    ref = \"\" + ref;\n  }\n  return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n  const vnode = {\n    __v_isVNode: true,\n    __v_skip: true,\n    type,\n    props,\n    key: props && normalizeKey(props),\n    ref: props && normalizeRef(props),\n    scopeId: currentScopeId,\n    slotScopeIds: null,\n    children,\n    component: null,\n    suspense: null,\n    ssContent: null,\n    ssFallback: null,\n    dirs: null,\n    transition: null,\n    el: null,\n    anchor: null,\n    target: null,\n    targetAnchor: null,\n    staticCount: 0,\n    shapeFlag,\n    patchFlag,\n    dynamicProps,\n    dynamicChildren: null,\n    appContext: null,\n    ctx: currentRenderingInstance\n  };\n  if (needFullChildrenNormalization) {\n    normalizeChildren(vnode, children);\n  } else if (children) {\n    vnode.shapeFlag |= isString(children) ? 8 : 16;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n    warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n  }\n  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n  !isBlockNode && // has current parent block\n  currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n  // component nodes also should always be patched, because even if the\n  // component doesn't need to update, it needs to persist the instance on to\n  // the next vnode so that it can be properly unmounted later.\n  (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n  // vnode should not be considered dynamic due to handler caching.\n  vnode.patchFlag !== 32) {\n    currentBlock.push(vnode);\n  }\n  return vnode;\n}\nconst createVNode$1 = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n  if (!type || type === NULL_DYNAMIC_COMPONENT) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n      warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n    }\n    type = Comment;\n  }\n  if (isVNode(type)) {\n    const cloned = cloneVNode(\n      type,\n      props,\n      true\n      /* mergeRef: true */\n    );\n    if (children) {\n      normalizeChildren(cloned, children);\n    }\n    if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n      if (cloned.shapeFlag & 6) {\n        currentBlock[currentBlock.indexOf(type)] = cloned;\n      } else {\n        currentBlock.push(cloned);\n      }\n    }\n    cloned.patchFlag |= -2;\n    return cloned;\n  }\n  if (isClassComponent(type)) {\n    type = type.__vccOpts;\n  }\n  if (props) {\n    props = guardReactiveProps(props);\n    let { class: klass, style } = props;\n    if (klass && !isString(klass)) {\n      props.class = normalizeClass(klass);\n    }\n    if (isObject(style)) {\n      if (isProxy(style) && !isArray(style)) {\n        style = extend({}, style);\n      }\n      props.style = normalizeStyle(style);\n    }\n  }\n  const shapeFlag = isString(type) ? 1 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n  if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n    type = toRaw(type);\n    warn$1(\n      `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n      `\nComponent that was made reactive: `,\n      type\n    );\n  }\n  return createBaseVNode(\n    type,\n    props,\n    children,\n    patchFlag,\n    dynamicProps,\n    shapeFlag,\n    isBlockNode,\n    true\n  );\n}\nfunction guardReactiveProps(props) {\n  if (!props)\n    return null;\n  return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n  const { props, ref, patchFlag, children } = vnode;\n  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n  const cloned = {\n    __v_isVNode: true,\n    __v_skip: true,\n    type: vnode.type,\n    props: mergedProps,\n    key: mergedProps && normalizeKey(mergedProps),\n    ref: extraProps && extraProps.ref ? (\n      // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n      // if the vnode itself already has a ref, cloneVNode will need to merge\n      // the refs so the single vnode can be set on multiple refs\n      mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n    ) : ref,\n    scopeId: vnode.scopeId,\n    slotScopeIds: vnode.slotScopeIds,\n    children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n    target: vnode.target,\n    targetAnchor: vnode.targetAnchor,\n    staticCount: vnode.staticCount,\n    shapeFlag: vnode.shapeFlag,\n    // if the vnode is cloned with extra props, we can no longer assume its\n    // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n    // note: preserve flag for fragments since they use the flag for children\n    // fast paths only.\n    patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n    dynamicProps: vnode.dynamicProps,\n    dynamicChildren: vnode.dynamicChildren,\n    appContext: vnode.appContext,\n    dirs: vnode.dirs,\n    transition: vnode.transition,\n    // These should technically only be non-null on mounted VNodes. However,\n    // they *should* be copied for kept-alive vnodes. So we just always copy\n    // them since them being non-null during a mount doesn't affect the logic as\n    // they will simply be overwritten.\n    component: vnode.component,\n    suspense: vnode.suspense,\n    ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n    ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n    el: vnode.el,\n    anchor: vnode.anchor,\n    ctx: vnode.ctx,\n    ce: vnode.ce\n  };\n  return cloned;\n}\nfunction deepCloneVNode(vnode) {\n  const cloned = cloneVNode(vnode);\n  if (isArray(vnode.children)) {\n    cloned.children = vnode.children.map(deepCloneVNode);\n  }\n  return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n  return createVNode$1(Text, null, text, flag);\n}\nfunction normalizeChildren(vnode, children) {\n  let type = 0;\n  const { shapeFlag } = vnode;\n  if (children == null) {\n    children = null;\n  } else if (isArray(children)) {\n    type = 16;\n  } else if (typeof children === \"object\") {\n    if (shapeFlag & (1 | 64)) {\n      const slot = children.default;\n      if (slot) {\n        slot._c && (slot._d = false);\n        normalizeChildren(vnode, slot());\n        slot._c && (slot._d = true);\n      }\n      return;\n    } else {\n      type = 32;\n      const slotFlag = children._;\n      if (!slotFlag && !(InternalObjectKey in children)) {\n        children._ctx = currentRenderingInstance;\n      } else if (slotFlag === 3 && currentRenderingInstance) {\n        if (currentRenderingInstance.slots._ === 1) {\n          children._ = 1;\n        } else {\n          children._ = 2;\n          vnode.patchFlag |= 1024;\n        }\n      }\n    }\n  } else if (isFunction(children)) {\n    children = { default: children, _ctx: currentRenderingInstance };\n    type = 32;\n  } else {\n    children = String(children);\n    if (shapeFlag & 64) {\n      type = 16;\n      children = [createTextVNode(children)];\n    } else {\n      type = 8;\n    }\n  }\n  vnode.children = children;\n  vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n  const ret = {};\n  for (let i = 0; i < args.length; i++) {\n    const toMerge = args[i];\n    for (const key in toMerge) {\n      if (key === \"class\") {\n        if (ret.class !== toMerge.class) {\n          ret.class = normalizeClass([ret.class, toMerge.class]);\n        }\n      } else if (key === \"style\") {\n        ret.style = normalizeStyle([ret.style, toMerge.style]);\n      } else if (isOn(key)) {\n        const existing = ret[key];\n        const incoming = toMerge[key];\n        if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n          ret[key] = existing ? [].concat(existing, incoming) : incoming;\n        }\n      } else if (key !== \"\") {\n        ret[key] = toMerge[key];\n      }\n    }\n  }\n  return ret;\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n  const type = vnode.type;\n  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n  const instance = {\n    uid: uid++,\n    vnode,\n    type,\n    parent,\n    appContext,\n    root: null,\n    // to be immediately set\n    next: null,\n    subTree: null,\n    // will be set synchronously right after creation\n    effect: null,\n    update: null,\n    // will be set synchronously right after creation\n    scope: new EffectScope(\n      true\n      /* detached */\n    ),\n    render: null,\n    proxy: null,\n    exposed: null,\n    exposeProxy: null,\n    withProxy: null,\n    provides: parent ? parent.provides : Object.create(appContext.provides),\n    accessCache: null,\n    renderCache: [],\n    // local resolved assets\n    components: null,\n    directives: null,\n    // resolved props and emits options\n    propsOptions: normalizePropsOptions(type, appContext),\n    emitsOptions: normalizeEmitsOptions(type, appContext),\n    // emit\n    emit: null,\n    // to be set immediately\n    emitted: null,\n    // props default value\n    propsDefaults: EMPTY_OBJ,\n    // inheritAttrs\n    inheritAttrs: type.inheritAttrs,\n    // state\n    ctx: EMPTY_OBJ,\n    data: EMPTY_OBJ,\n    props: EMPTY_OBJ,\n    attrs: EMPTY_OBJ,\n    slots: EMPTY_OBJ,\n    refs: EMPTY_OBJ,\n    setupState: EMPTY_OBJ,\n    setupContext: null,\n    attrsProxy: null,\n    slotsProxy: null,\n    // suspense related\n    suspense,\n    suspenseId: suspense ? suspense.pendingId : 0,\n    asyncDep: null,\n    asyncResolved: false,\n    // lifecycle hooks\n    // not using enums here because it results in computed properties\n    isMounted: false,\n    isUnmounted: false,\n    isDeactivated: false,\n    bc: null,\n    c: null,\n    bm: null,\n    m: null,\n    bu: null,\n    u: null,\n    um: null,\n    bum: null,\n    da: null,\n    a: null,\n    rtg: null,\n    rtc: null,\n    ec: null,\n    sp: null,\n    // fixed by xxxxxx 用于存储uni-app的元素缓存\n    $uniElements: /* @__PURE__ */ new Map(),\n    $templateUniElementRefs: [],\n    $templateUniElementStyles: {},\n    $eS: {},\n    $eA: {}\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    instance.ctx = createDevRenderContext(instance);\n  } else {\n    instance.ctx = { _: instance };\n  }\n  instance.root = parent ? parent.root : instance;\n  instance.emit = emit.bind(null, instance);\n  if (vnode.ce) {\n    vnode.ce(instance);\n  }\n  return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n  internalSetCurrentInstance = (i) => {\n    currentInstance = i;\n  };\n  setInSSRSetupState = (v) => {\n    isInSSRComponentSetup = v;\n  };\n}\nconst setCurrentInstance = (instance) => {\n  const prev = currentInstance;\n  internalSetCurrentInstance(instance);\n  instance.scope.on();\n  return () => {\n    instance.scope.off();\n    internalSetCurrentInstance(prev);\n  };\n};\nconst unsetCurrentInstance = () => {\n  currentInstance && currentInstance.scope.off();\n  internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n  if (isBuiltInTag(name) || isNativeTag(name)) {\n    warn$1(\n      \"Do not use built-in or reserved HTML elements as component id: \" + name\n    );\n  }\n}\nfunction isStatefulComponent(instance) {\n  return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n  isSSR && setInSSRSetupState(isSSR);\n  const {\n    props\n    /*, children*/\n  } = instance.vnode;\n  const isStateful = isStatefulComponent(instance);\n  initProps(instance, props, isStateful, isSSR);\n  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n  isSSR && setInSSRSetupState(false);\n  return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n  const Component = instance.type;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    if (Component.name) {\n      validateComponentName(Component.name, instance.appContext.config);\n    }\n    if (Component.components) {\n      const names = Object.keys(Component.components);\n      for (let i = 0; i < names.length; i++) {\n        validateComponentName(names[i], instance.appContext.config);\n      }\n    }\n    if (Component.directives) {\n      const names = Object.keys(Component.directives);\n      for (let i = 0; i < names.length; i++) {\n        validateDirectiveName(names[i]);\n      }\n    }\n    if (Component.compilerOptions && isRuntimeOnly()) {\n      warn$1(\n        `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n      );\n    }\n  }\n  instance.accessCache = /* @__PURE__ */ Object.create(null);\n  instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    exposePropsOnRenderContext(instance);\n  }\n  const { setup } = Component;\n  if (setup) {\n    const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n    const reset = setCurrentInstance(instance);\n    pauseTracking();\n    const setupResult = callWithErrorHandling(\n      setup,\n      instance,\n      0,\n      [\n        !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n        setupContext\n      ]\n    );\n    resetTracking();\n    reset();\n    if (isPromise(setupResult)) {\n      setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        warn$1(\n          `setup() returned a Promise, but the version of Vue you are using does not support it yet.`\n        );\n      }\n    } else {\n      handleSetupResult(instance, setupResult, isSSR);\n    }\n  } else {\n    finishComponentSetup(instance, isSSR);\n  }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n  if (isFunction(setupResult)) {\n    {\n      instance.render = setupResult;\n    }\n  } else if (isObject(setupResult)) {\n    if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n      warn$1(\n        `setup() should not return VNodes directly - return a render function instead.`\n      );\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      instance.devtoolsRawSetupState = setupResult;\n    }\n    instance.setupState = proxyRefs(setupResult);\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      exposeSetupStateOnRenderContext(instance);\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n    warn$1(\n      `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n    );\n  }\n  finishComponentSetup(instance, isSSR);\n}\nlet compile;\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n  const Component = instance.type;\n  if (!instance.render) {\n    instance.render = Component.render || NOOP;\n  }\n  if (__VUE_OPTIONS_API__ && true) {\n    const reset = setCurrentInstance(instance);\n    pauseTracking();\n    try {\n      applyOptions$1(instance);\n    } finally {\n      resetTracking();\n      reset();\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n    if (Component.template) {\n      warn$1(\n        `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n      );\n    } else {\n      warn$1(`Component is missing template or render function.`);\n    }\n  }\n}\nfunction getAttrsProxy(instance) {\n  return instance.attrsProxy || (instance.attrsProxy = new Proxy(\n    instance.attrs,\n    !!(process.env.NODE_ENV !== \"production\") ? {\n      get(target, key) {\n        track(instance, \"get\", \"$attrs\");\n        return target[key];\n      },\n      set() {\n        warn$1(`setupContext.attrs is readonly.`);\n        return false;\n      },\n      deleteProperty() {\n        warn$1(`setupContext.attrs is readonly.`);\n        return false;\n      }\n    } : {\n      get(target, key) {\n        track(instance, \"get\", \"$attrs\");\n        return target[key];\n      }\n    }\n  ));\n}\nfunction getSlotsProxy(instance) {\n  return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {\n    get(target, key) {\n      track(instance, \"get\", \"$slots\");\n      return target[key];\n    }\n  }));\n}\nfunction createSetupContext(instance) {\n  const expose = (exposed) => {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      if (instance.exposed) {\n        warn$1(`expose() should be called only once per setup().`);\n      }\n      if (exposed != null) {\n        let exposedType = typeof exposed;\n        if (exposedType === \"object\") {\n          if (isArray(exposed)) {\n            exposedType = \"array\";\n          } else if (isRef(exposed)) {\n            exposedType = \"ref\";\n          }\n        }\n        if (exposedType !== \"object\") {\n          warn$1(\n            `expose() should be passed a plain object, received ${exposedType}.`\n          );\n        }\n      }\n    }\n    instance.exposed = exposed || {};\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    return Object.freeze({\n      get attrs() {\n        return getAttrsProxy(instance);\n      },\n      get slots() {\n        return getSlotsProxy(instance);\n      },\n      get emit() {\n        return (event, ...args) => instance.emit(event, ...args);\n      },\n      expose\n    });\n  } else {\n    return {\n      get attrs() {\n        return getAttrsProxy(instance);\n      },\n      slots: instance.slots,\n      emit: instance.emit,\n      expose\n    };\n  }\n}\nfunction getExposeProxy(instance) {\n  if (instance.exposed) {\n    return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n      get(target, key) {\n        if (key in target) {\n          return target[key];\n        }\n        return instance.proxy[key];\n      },\n      has(target, key) {\n        return key in target || key in publicPropertiesMap;\n      }\n    }));\n  }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n  return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n  let name = getComponentName(Component);\n  if (!name && Component.__file) {\n    const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n    if (match) {\n      name = match[1];\n    }\n  }\n  if (!name && instance && instance.parent) {\n    const inferFromRegistry = (registry) => {\n      for (const key in registry) {\n        if (registry[key] === Component) {\n          return key;\n        }\n      }\n    };\n    name = inferFromRegistry(\n      instance.components || instance.parent.type.components\n    ) || inferFromRegistry(instance.appContext.components);\n  }\n  return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n  return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n  const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const i = getCurrentInstance();\n    if (i && i.appContext.config.warnRecursiveComputed) {\n      c._warnRecursive = true;\n    }\n  }\n  return c;\n};\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n  const i = getCurrentInstance();\n  if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n    warn$1(`useModel() called without active instance.`);\n    return ref();\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][name]) {\n    warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n    return ref();\n  }\n  const camelizedName = camelize(name);\n  const hyphenatedName = hyphenate(name);\n  const res = customRef((track, trigger) => {\n    let localValue;\n    watchSyncEffect(() => {\n      const propValue = props[name];\n      if (hasChanged(localValue, propValue)) {\n        localValue = propValue;\n        trigger();\n      }\n    });\n    return {\n      get() {\n        track();\n        return options.get ? options.get(localValue) : localValue;\n      },\n      set(value) {\n        const rawProps = i.vnode.props;\n        if (!(rawProps && // check if parent has passed v-model\n        (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {\n          localValue = value;\n          trigger();\n        }\n        i.emit(`update:${name}`, options.set ? options.set(value) : value);\n      }\n    };\n  });\n  const modifierKey = name === \"modelValue\" ? \"modelModifiers\" : `${name}Modifiers`;\n  res[Symbol.iterator] = () => {\n    let i2 = 0;\n    return {\n      next() {\n        if (i2 < 2) {\n          return { value: i2++ ? props[modifierKey] || {} : res, done: false };\n        } else {\n          return { done: true };\n        }\n      }\n    };\n  };\n  return res;\n}\n\nconst version = \"3.4.21\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst resolveFilter = null;\n\nfunction unwrapper(target) {\n  return unref(target);\n}\nfunction defineAsyncComponent(source) {\n  console.error(\"defineAsyncComponent is unsupported\");\n}\n\nconst ARRAYTYPE = \"[object Array]\";\nconst OBJECTTYPE = \"[object Object]\";\nfunction diff(current, pre) {\n  const result = {};\n  syncKeys(current, pre);\n  _diff(current, pre, \"\", result);\n  return result;\n}\nfunction syncKeys(current, pre) {\n  current = unwrapper(current);\n  if (current === pre)\n    return;\n  const rootCurrentType = toTypeString(current);\n  const rootPreType = toTypeString(pre);\n  if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n    for (let key in pre) {\n      const currentValue = current[key];\n      if (currentValue === void 0) {\n        current[key] = null;\n      } else {\n        syncKeys(currentValue, pre[key]);\n      }\n    }\n  } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n    if (current.length >= pre.length) {\n      pre.forEach((item, index) => {\n        syncKeys(current[index], item);\n      });\n    }\n  }\n}\nfunction _diff(current, pre, path, result) {\n  current = unwrapper(current);\n  if (current === pre)\n    return;\n  const rootCurrentType = toTypeString(current);\n  const rootPreType = toTypeString(pre);\n  if (rootCurrentType == OBJECTTYPE) {\n    if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n      setResult(result, path, current);\n    } else {\n      for (let key in current) {\n        const currentValue = unwrapper(current[key]);\n        const preValue = pre[key];\n        const currentType = toTypeString(currentValue);\n        const preType = toTypeString(preValue);\n        if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n          if (currentValue != preValue) {\n            setResult(\n              result,\n              (path == \"\" ? \"\" : path + \".\") + key,\n              currentValue\n            );\n          }\n        } else if (currentType == ARRAYTYPE) {\n          if (preType != ARRAYTYPE) {\n            setResult(\n              result,\n              (path == \"\" ? \"\" : path + \".\") + key,\n              currentValue\n            );\n          } else {\n            if (currentValue.length < preValue.length) {\n              setResult(\n                result,\n                (path == \"\" ? \"\" : path + \".\") + key,\n                currentValue\n              );\n            } else {\n              currentValue.forEach((item, index) => {\n                _diff(\n                  item,\n                  preValue[index],\n                  (path == \"\" ? \"\" : path + \".\") + key + \"[\" + index + \"]\",\n                  result\n                );\n              });\n            }\n          }\n        } else if (currentType == OBJECTTYPE) {\n          if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n            setResult(\n              result,\n              (path == \"\" ? \"\" : path + \".\") + key,\n              currentValue\n            );\n          } else {\n            for (let subKey in currentValue) {\n              _diff(\n                currentValue[subKey],\n                preValue[subKey],\n                (path == \"\" ? \"\" : path + \".\") + key + \".\" + subKey,\n                result\n              );\n            }\n          }\n        }\n      }\n    }\n  } else if (rootCurrentType == ARRAYTYPE) {\n    if (rootPreType != ARRAYTYPE) {\n      setResult(result, path, current);\n    } else {\n      if (current.length < pre.length) {\n        setResult(result, path, current);\n      } else {\n        current.forEach((item, index) => {\n          _diff(item, pre[index], path + \"[\" + index + \"]\", result);\n        });\n      }\n    }\n  } else {\n    setResult(result, path, current);\n  }\n}\nfunction setResult(result, k, v) {\n  result[k] = v;\n}\n\nfunction hasComponentEffect(instance) {\n  return queue.includes(instance.update);\n}\nfunction flushCallbacks(instance) {\n  const ctx = instance.ctx;\n  const callbacks = ctx.__next_tick_callbacks;\n  if (callbacks && callbacks.length) {\n    if (process.env.UNI_DEBUG) {\n      const mpInstance = ctx.$scope;\n      console.log(\n        \"uni-app:[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"]:flushCallbacks[\" + callbacks.length + \"]\"\n      );\n    }\n    const copies = callbacks.slice(0);\n    callbacks.length = 0;\n    for (let i = 0; i < copies.length; i++) {\n      copies[i]();\n    }\n  }\n}\nfunction nextTick(instance, fn) {\n  const ctx = instance.ctx;\n  if (!ctx.__next_tick_pending && !hasComponentEffect(instance)) {\n    if (process.env.UNI_DEBUG) {\n      const mpInstance = ctx.$scope;\n      console.log(\n        \"uni-app:[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"]:nextVueTick\"\n      );\n    }\n    return nextTick$1(fn && fn.bind(instance.proxy));\n  }\n  if (process.env.UNI_DEBUG) {\n    const mpInstance = ctx.$scope;\n    console.log(\n      \"uni-app:[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"]:nextMPTick\"\n    );\n  }\n  let _resolve;\n  if (!ctx.__next_tick_callbacks) {\n    ctx.__next_tick_callbacks = [];\n  }\n  ctx.__next_tick_callbacks.push(() => {\n    if (fn) {\n      callWithErrorHandling(\n        fn.bind(instance.proxy),\n        instance,\n        14\n      );\n    } else if (_resolve) {\n      _resolve(instance.proxy);\n    }\n  });\n  return new Promise((resolve) => {\n    _resolve = resolve;\n  });\n}\n\nfunction clone(src, seen) {\n  src = unwrapper(src);\n  const type = typeof src;\n  if (type === \"object\" && src !== null) {\n    let copy = seen.get(src);\n    if (typeof copy !== \"undefined\") {\n      return copy;\n    }\n    if (isArray(src)) {\n      const len = src.length;\n      copy = new Array(len);\n      seen.set(src, copy);\n      for (let i = 0; i < len; i++) {\n        copy[i] = clone(src[i], seen);\n      }\n    } else {\n      copy = {};\n      seen.set(src, copy);\n      for (const name in src) {\n        if (hasOwn(src, name)) {\n          copy[name] = clone(src[name], seen);\n        }\n      }\n    }\n    return copy;\n  }\n  if (type !== \"symbol\") {\n    return src;\n  }\n}\nfunction deepCopy(src) {\n  return clone(src, typeof WeakMap !== \"undefined\" ? /* @__PURE__ */ new WeakMap() : /* @__PURE__ */ new Map());\n}\n\nfunction getMPInstanceData(instance, keys) {\n  const data = instance.data;\n  const ret = /* @__PURE__ */ Object.create(null);\n  keys.forEach((key) => {\n    ret[key] = data[key];\n  });\n  return ret;\n}\nfunction patch(instance, data, oldData) {\n  if (!data) {\n    return;\n  }\n  data = deepCopy(data);\n  data.$eS = instance.$eS || {};\n  data.$eA = instance.$eA || {};\n  const ctx = instance.ctx;\n  const mpType = ctx.mpType;\n  if (mpType === \"page\" || mpType === \"component\") {\n    data.r0 = 1;\n    const start = Date.now();\n    const mpInstance = ctx.$scope;\n    const keys = Object.keys(data);\n    const diffData = diff(data, oldData || getMPInstanceData(mpInstance, keys));\n    if (Object.keys(diffData).length) {\n      if (process.env.UNI_DEBUG) {\n        console.log(\n          \"uni-app:[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + instance.uid + \"][\\u8017\\u65F6\" + (Date.now() - start) + \"]\\u5DEE\\u91CF\\u66F4\\u65B0\",\n          JSON.stringify(diffData)\n        );\n      }\n      ctx.__next_tick_pending = true;\n      mpInstance.setData(diffData, () => {\n        ctx.__next_tick_pending = false;\n        flushCallbacks(instance);\n      });\n      flushPreFlushCbs();\n    } else {\n      flushCallbacks(instance);\n    }\n  }\n}\n\nfunction initAppConfig(appConfig) {\n  appConfig.globalProperties.$nextTick = function $nextTick(fn) {\n    return nextTick(this.$, fn);\n  };\n}\n\nfunction onApplyOptions(options, instance, publicThis) {\n  instance.appContext.config.globalProperties.$applyOptions(\n    options,\n    instance,\n    publicThis\n  );\n  const computedOptions = options.computed;\n  if (computedOptions) {\n    const keys = Object.keys(computedOptions);\n    if (keys.length) {\n      const ctx = instance.ctx;\n      if (!ctx.$computedKeys) {\n        ctx.$computedKeys = [];\n      }\n      ctx.$computedKeys.push(...keys);\n    }\n  }\n  delete instance.ctx.$onApplyOptions;\n}\n\nfunction setRef$1(instance, isUnmount = false) {\n  const {\n    setupState,\n    $templateRefs,\n    $templateUniElementRefs,\n    ctx: { $scope, $mpPlatform }\n  } = instance;\n  if ($mpPlatform === \"mp-alipay\") {\n    return;\n  }\n  if (!$scope || !$templateRefs && !$templateUniElementRefs) {\n    return;\n  }\n  if (isUnmount) {\n    $templateRefs && $templateRefs.forEach(\n      (templateRef) => setTemplateRef(templateRef, null, setupState)\n    );\n    $templateUniElementRefs && $templateUniElementRefs.forEach(\n      (templateRef) => setTemplateRef(templateRef, null, setupState)\n    );\n    return;\n  }\n  const check = $mpPlatform === \"mp-baidu\" || $mpPlatform === \"mp-toutiao\";\n  const doSetByRefs = (refs) => {\n    if (refs.length === 0) {\n      return [];\n    }\n    const mpComponents = (\n      // 字节小程序 selectAllComponents 可能返回 null\n      // https://github.com/dcloudio/uni-app/issues/3954\n      ($scope.selectAllComponents(\".r\") || []).concat(\n        $scope.selectAllComponents(\".r-i-f\") || []\n      )\n    );\n    return refs.filter((templateRef) => {\n      const refValue = findComponentPublicInstance(mpComponents, templateRef.i);\n      if (check && refValue === null) {\n        return true;\n      }\n      setTemplateRef(templateRef, refValue, setupState);\n      return false;\n    });\n  };\n  const doSet = () => {\n    if ($templateRefs) {\n      const refs = doSetByRefs($templateRefs);\n      if (refs.length && instance.proxy && instance.proxy.$scope) {\n        instance.proxy.$scope.setData({ r1: 1 }, () => {\n          doSetByRefs(refs);\n        });\n      }\n    }\n  };\n  if ($templateUniElementRefs && $templateUniElementRefs.length) {\n    nextTick(instance, () => {\n      $templateUniElementRefs.forEach((templateRef) => {\n        if (isArray(templateRef.v)) {\n          templateRef.v.forEach((v) => {\n            setTemplateRef(templateRef, v, setupState);\n          });\n        } else {\n          setTemplateRef(templateRef, templateRef.v, setupState);\n        }\n      });\n    });\n  }\n  if ($scope._$setRef) {\n    $scope._$setRef(doSet);\n  } else {\n    nextTick(instance, doSet);\n  }\n}\nfunction toSkip(value) {\n  if (isObject(value)) {\n    markRaw(value);\n  }\n  return value;\n}\nfunction findComponentPublicInstance(mpComponents, id) {\n  const mpInstance = mpComponents.find(\n    (com) => com && (com.properties || com.props).uI === id\n  );\n  if (mpInstance) {\n    const vm = mpInstance.$vm;\n    if (vm) {\n      return getExposeProxy(vm.$) || vm;\n    }\n    return toSkip(mpInstance);\n  }\n  return null;\n}\nfunction setTemplateRef({ r, f }, refValue, setupState) {\n  if (isFunction(r)) {\n    r(refValue, {});\n  } else {\n    const _isString = isString(r);\n    const _isRef = isRef(r);\n    if (_isString || _isRef) {\n      if (f) {\n        if (!_isRef) {\n          return;\n        }\n        if (!isArray(r.value)) {\n          r.value = [];\n        }\n        const existing = r.value;\n        if (existing.indexOf(refValue) === -1) {\n          existing.push(refValue);\n          if (!refValue) {\n            return;\n          }\n          if (refValue.$) {\n            onBeforeUnmount(() => remove(existing, refValue), refValue.$);\n          }\n        }\n      } else if (_isString) {\n        if (hasOwn(setupState, r)) {\n          setupState[r] = refValue;\n        }\n      } else if (isRef(r)) {\n        r.value = refValue;\n      } else if (!!(process.env.NODE_ENV !== \"production\")) {\n        warnRef(r);\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warnRef(r);\n    }\n  }\n}\nfunction warnRef(ref) {\n  warn(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n}\n\nconst queuePostRenderEffect = queuePostFlushCb;\nfunction mountComponent(initialVNode, options) {\n  const instance = initialVNode.component = createComponentInstance(initialVNode, options.parentComponent, null);\n  if (__VUE_OPTIONS_API__) {\n    instance.ctx.$onApplyOptions = onApplyOptions;\n    instance.ctx.$children = [];\n  }\n  if (options.mpType === \"app\") {\n    instance.render = NOOP;\n  }\n  if (options.onBeforeSetup) {\n    options.onBeforeSetup(instance, options);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    pushWarningContext(initialVNode);\n    startMeasure(instance, `mount`);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    startMeasure(instance, `init`);\n  }\n  setupComponent(instance);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    endMeasure(instance, `init`);\n  }\n  if (__VUE_OPTIONS_API__) {\n    if (options.parentComponent && instance.proxy) {\n      options.parentComponent.ctx.$children.push(getExposeProxy(instance) || instance.proxy);\n    }\n  }\n  setupRenderEffect(instance);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    popWarningContext();\n    endMeasure(instance, `mount`);\n  }\n  return instance.proxy;\n}\nconst getFunctionalFallthrough = (attrs) => {\n  let res;\n  for (const key in attrs) {\n    if (key === \"class\" || key === \"style\" || isOn(key)) {\n      (res || (res = {}))[key] = attrs[key];\n    }\n  }\n  return res;\n};\nfunction renderComponentRoot(instance) {\n  const {\n    type: Component,\n    vnode,\n    proxy,\n    withProxy,\n    props,\n    propsOptions: [propsOptions],\n    slots,\n    attrs,\n    emit,\n    render,\n    renderCache,\n    data,\n    setupState,\n    ctx,\n    uid,\n    appContext: {\n      app: {\n        config: {\n          globalProperties: { pruneComponentPropsCache }\n        }\n      }\n    },\n    inheritAttrs\n  } = instance;\n  instance.$uniElementIds = /* @__PURE__ */ new Map();\n  instance.$templateRefs = [];\n  instance.$templateUniElementRefs = [];\n  instance.$templateUniElementStyles = {};\n  instance.$ei = 0;\n  pruneComponentPropsCache(uid);\n  instance.__counter = instance.__counter === 0 ? 1 : 0;\n  let result;\n  const prev = setCurrentRenderingInstance(instance);\n  try {\n    if (vnode.shapeFlag & 4) {\n      fallthroughAttrs(inheritAttrs, props, propsOptions, attrs);\n      const proxyToUse = withProxy || proxy;\n      result = render.call(\n        proxyToUse,\n        proxyToUse,\n        renderCache,\n        props,\n        setupState,\n        data,\n        ctx\n      );\n    } else {\n      fallthroughAttrs(\n        inheritAttrs,\n        props,\n        propsOptions,\n        Component.props ? attrs : getFunctionalFallthrough(attrs)\n      );\n      const render2 = Component;\n      result = render2.length > 1 ? render2(props, { attrs, slots, emit }) : render2(\n        props,\n        null\n        /* we know it doesn't need it */\n      );\n    }\n  } catch (err) {\n    handleError(err, instance, 1);\n    result = false;\n  }\n  setRef$1(instance);\n  setCurrentRenderingInstance(prev);\n  return result;\n}\nfunction fallthroughAttrs(inheritAttrs, props, propsOptions, fallthroughAttrs2) {\n  if (props && fallthroughAttrs2 && inheritAttrs !== false) {\n    const keys = Object.keys(fallthroughAttrs2).filter(\n      (key) => key !== \"class\" && key !== \"style\"\n    );\n    if (!keys.length) {\n      return;\n    }\n    if (propsOptions && keys.some(isModelListener)) {\n      keys.forEach((key) => {\n        if (!isModelListener(key) || !(key.slice(9) in propsOptions)) {\n          props[key] = fallthroughAttrs2[key];\n        }\n      });\n    } else {\n      keys.forEach((key) => props[key] = fallthroughAttrs2[key]);\n    }\n  }\n}\nconst updateComponentPreRender = (instance) => {\n  pauseTracking();\n  flushPreFlushCbs();\n  resetTracking();\n};\nfunction componentUpdateScopedSlotsFn() {\n  const scopedSlotsData = this.$scopedSlotsData;\n  if (!scopedSlotsData || scopedSlotsData.length === 0) {\n    return;\n  }\n  const start = Date.now();\n  const mpInstance = this.ctx.$scope;\n  const oldData = mpInstance.data;\n  const diffData = /* @__PURE__ */ Object.create(null);\n  scopedSlotsData.forEach(({ path, index, data }) => {\n    const oldScopedSlotData = getValueByDataPath(oldData, path);\n    const diffPath = isString(index) ? `${path}.${index}` : `${path}[${index}]`;\n    if (typeof oldScopedSlotData === \"undefined\" || typeof oldScopedSlotData[index] === \"undefined\") {\n      diffData[diffPath] = data;\n    } else {\n      const diffScopedSlotData = diff(\n        data,\n        oldScopedSlotData[index]\n      );\n      Object.keys(diffScopedSlotData).forEach((name) => {\n        diffData[diffPath + \".\" + name] = diffScopedSlotData[name];\n      });\n    }\n  });\n  scopedSlotsData.length = 0;\n  if (Object.keys(diffData).length) {\n    if (process.env.UNI_DEBUG) {\n      console.log(\n        \"uni-app:[\" + +/* @__PURE__ */ new Date() + \"][\" + (mpInstance.is || mpInstance.route) + \"][\" + this.uid + \"][\\u8017\\u65F6\" + (Date.now() - start) + \"]\\u4F5C\\u7528\\u57DF\\u63D2\\u69FD\\u5DEE\\u91CF\\u66F4\\u65B0\",\n        JSON.stringify(diffData)\n      );\n    }\n    mpInstance.setData(diffData);\n  }\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n  effect.allowRecurse = update.allowRecurse = allowed;\n}\nfunction setupRenderEffect(instance) {\n  const updateScopedSlots = componentUpdateScopedSlotsFn.bind(\n    instance\n  );\n  instance.$updateScopedSlots = () => nextTick$1(() => queueJob(updateScopedSlots));\n  const componentUpdateFn = () => {\n    if (!instance.isMounted) {\n      onBeforeUnmount(() => {\n        setRef$1(instance, true);\n      }, instance);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        startMeasure(instance, `patch`);\n      }\n      patch(instance, renderComponentRoot(instance));\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        endMeasure(instance, `patch`);\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n        devtoolsComponentAdded(instance);\n      }\n    } else {\n      const { next, bu, u } = instance;\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        pushWarningContext(next || instance.vnode);\n      }\n      toggleRecurse(instance, false);\n      updateComponentPreRender();\n      if (bu) {\n        invokeArrayFns(bu);\n      }\n      toggleRecurse(instance, true);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        startMeasure(instance, `patch`);\n      }\n      patch(instance, renderComponentRoot(instance));\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        endMeasure(instance, `patch`);\n      }\n      if (u) {\n        queuePostRenderEffect(u);\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n        devtoolsComponentUpdated(instance);\n      }\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        popWarningContext();\n      }\n    }\n  };\n  const effect = instance.effect = new ReactiveEffect(\n    componentUpdateFn,\n    NOOP,\n    () => queueJob(update),\n    instance.scope\n    // track it in component's effect scope\n  );\n  const update = instance.update = () => {\n    if (effect.dirty) {\n      effect.run();\n    }\n  };\n  update.id = instance.uid;\n  toggleRecurse(instance, true);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n    effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n    update.ownerInstance = instance;\n  }\n  if (!__VUE_CREATED_DEFERRED__) {\n    update();\n  }\n}\nfunction unmountComponent(instance) {\n  const { bum, scope, update, um } = instance;\n  if (bum) {\n    invokeArrayFns(bum);\n  }\n  if (__VUE_OPTIONS_API__) {\n    const parentInstance = instance.parent;\n    if (parentInstance) {\n      const $children = parentInstance.ctx.$children;\n      const target = getExposeProxy(instance) || instance.proxy;\n      const index = $children.indexOf(target);\n      if (index > -1) {\n        $children.splice(index, 1);\n      }\n    }\n  }\n  scope.stop();\n  if (update) {\n    update.active = false;\n  }\n  if (um) {\n    queuePostRenderEffect(um);\n  }\n  queuePostRenderEffect(() => {\n    instance.isUnmounted = true;\n  });\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsComponentRemoved(instance);\n  }\n}\nconst oldCreateApp = createAppAPI();\nfunction getTarget() {\n  if (typeof window !== \"undefined\") {\n    return window;\n  }\n  if (typeof globalThis !== \"undefined\") {\n    return globalThis;\n  }\n  if (typeof global !== \"undefined\") {\n    return global;\n  }\n  if (typeof my !== \"undefined\") {\n    return my;\n  }\n}\nfunction createVueApp(rootComponent, rootProps = null) {\n  const target = getTarget();\n  target.__VUE__ = true;\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n  }\n  const app = oldCreateApp(rootComponent, rootProps);\n  const appContext = app._context;\n  initAppConfig(appContext.config);\n  const createVNode = (initialVNode) => {\n    initialVNode.appContext = appContext;\n    initialVNode.shapeFlag = 6;\n    return initialVNode;\n  };\n  const createComponent = function createComponent2(initialVNode, options) {\n    return mountComponent(createVNode(initialVNode), options);\n  };\n  const destroyComponent = function destroyComponent2(component) {\n    return component && unmountComponent(component.$);\n  };\n  app.mount = function mount() {\n    rootComponent.render = NOOP;\n    const instance = mountComponent(\n      createVNode({ type: rootComponent }),\n      {\n        mpType: \"app\",\n        mpInstance: null,\n        parentComponent: null,\n        slots: [],\n        props: null\n      }\n    );\n    app._instance = instance.$;\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      devtoolsInitApp(app, version);\n    }\n    instance.$app = app;\n    instance.$createComponent = createComponent;\n    instance.$destroyComponent = destroyComponent;\n    appContext.$appInstance = instance;\n    return instance;\n  };\n  app.unmount = function unmount() {\n    warn(`Cannot unmount an app.`);\n  };\n  return app;\n}\n\nfunction useCssModule(name = \"$style\") {\n  {\n    const instance = getCurrentInstance();\n    if (!instance) {\n      !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n      return EMPTY_OBJ;\n    }\n    const modules = instance.type.__cssModules;\n    if (!modules) {\n      !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n      return EMPTY_OBJ;\n    }\n    const mod = modules[name];\n    if (!mod) {\n      !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n      return EMPTY_OBJ;\n    }\n    return mod;\n  }\n}\n\nfunction useCssVars(getter) {\n  const instance = getCurrentInstance();\n  if (!instance) {\n    !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n    return;\n  }\n  initCssVarsRender(instance, getter);\n}\nfunction initCssVarsRender(instance, getter) {\n  instance.ctx.__cssVars = () => {\n    const vars = getter(instance.proxy);\n    const cssVars = {};\n    for (const key in vars) {\n      cssVars[`--${key}`] = vars[key];\n    }\n    return cssVars;\n  };\n}\n\nfunction withModifiers() {\n}\nfunction createVNode() {\n}\n\nfunction injectLifecycleHook(name, hook, publicThis, instance) {\n    if (isFunction(hook)) {\n        injectHook(name, hook.bind(publicThis), instance);\n    }\n}\nfunction initHooks(options, instance, publicThis) {\n    const mpType = options.mpType || publicThis.$mpType;\n    if (!mpType || mpType === 'component') {\n        // 仅 App,Page 类型支持在 options 中配置 on 生命周期,组件可以使用组合式 API 定义页面生命周期\n        return;\n    }\n    Object.keys(options).forEach((name) => {\n        if (isUniLifecycleHook(name, options[name], false)) {\n            const hooks = options[name];\n            if (isArray(hooks)) {\n                hooks.forEach((hook) => injectLifecycleHook(name, hook, publicThis, instance));\n            }\n            else {\n                injectLifecycleHook(name, hooks, publicThis, instance);\n            }\n        }\n    });\n}\n\nfunction applyOptions(options, instance, publicThis) {\n    initHooks(options, instance, publicThis);\n}\n\nfunction set(target, key, val) {\n    return (target[key] = val);\n}\nfunction $callMethod(method, ...args) {\n    const fn = this[method];\n    if (fn) {\n        return fn(...args);\n    }\n    console.error(`method ${method} not found`);\n    return null;\n}\n\nfunction createErrorHandler(app) {\n    const userErrorHandler = app.config.errorHandler;\n    return function errorHandler(err, instance, info) {\n        if (userErrorHandler) {\n            userErrorHandler(err, instance, info);\n        }\n        const appInstance = app._instance;\n        if (!appInstance || !appInstance.proxy) {\n            throw err;\n        }\n        if (appInstance[ON_ERROR]) {\n            {\n                appInstance.proxy.$callHook(ON_ERROR, err);\n            }\n        }\n        else {\n            logError(err, info, instance ? instance.$.vnode : null, false);\n        }\n    };\n}\nfunction mergeAsArray(to, from) {\n    return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction initOptionMergeStrategies(optionMergeStrategies) {\n    UniLifecycleHooks.forEach((name) => {\n        optionMergeStrategies[name] = mergeAsArray;\n    });\n}\n\nlet realAtob;\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\nif (typeof atob !== 'function') {\n    realAtob = function (str) {\n        str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\n        if (!b64re.test(str)) {\n            throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");\n        }\n        // Adding the padding if missing, for semplicity\n        str += '=='.slice(2 - (str.length & 3));\n        var bitmap;\n        var result = '';\n        var r1;\n        var r2;\n        var i = 0;\n        for (; i < str.length;) {\n            bitmap =\n                (b64.indexOf(str.charAt(i++)) << 18) |\n                    (b64.indexOf(str.charAt(i++)) << 12) |\n                    ((r1 = b64.indexOf(str.charAt(i++))) << 6) |\n                    (r2 = b64.indexOf(str.charAt(i++)));\n            result +=\n                r1 === 64\n                    ? String.fromCharCode((bitmap >> 16) & 255)\n                    : r2 === 64\n                        ? String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255)\n                        : String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255, bitmap & 255);\n        }\n        return result;\n    };\n}\nelse {\n    // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\n    realAtob = atob;\n}\nfunction b64DecodeUnicode(str) {\n    return decodeURIComponent(realAtob(str)\n        .split('')\n        .map(function (c) {\n        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n    })\n        .join(''));\n}\nfunction getCurrentUserInfo() {\n    const token = uni.getStorageSync('uni_id_token') || '';\n    const tokenArr = token.split('.');\n    if (!token || tokenArr.length !== 3) {\n        return {\n            uid: null,\n            role: [],\n            permission: [],\n            tokenExpired: 0,\n        };\n    }\n    let userInfo;\n    try {\n        userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\n    }\n    catch (error) {\n        throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message);\n    }\n    userInfo.tokenExpired = userInfo.exp * 1000;\n    delete userInfo.exp;\n    delete userInfo.iat;\n    return userInfo;\n}\nfunction uniIdMixin(globalProperties) {\n    globalProperties.uniIDHasRole = function (roleId) {\n        const { role } = getCurrentUserInfo();\n        return role.indexOf(roleId) > -1;\n    };\n    globalProperties.uniIDHasPermission = function (permissionId) {\n        const { permission } = getCurrentUserInfo();\n        return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1;\n    };\n    globalProperties.uniIDTokenValid = function () {\n        const { tokenExpired } = getCurrentUserInfo();\n        return tokenExpired > Date.now();\n    };\n}\n\nfunction initApp(app) {\n    const appConfig = app.config;\n    // 该逻辑全平台会调用\n    // - 需要兼容支持开发者自定义的 errorHandler\n    // - nvue、vue 需要使用同一个(once) errorHandler\n    // - 需要支持 uni.onError 注册监听\n    //   * 目前仅部分小程序平台支持,调用uni.onError时,如果app已存在,则添加到instance的hooks中,如果不存在,则临时存储,初始化instance时添加到hooks中\n    //   * 目前在 errorHandler 中,会调用 app.$callHook(ON_ERROR, err),所以上一步需要将 uni.onError 存储到 app 的 hooks 中\n    // - 部分平台(目前主要是小程序)开发阶段 uni-console 会调用 uni.onError 注册监听\n    appConfig.errorHandler = invokeCreateErrorHandler(app, createErrorHandler);\n    initOptionMergeStrategies(appConfig.optionMergeStrategies);\n    const globalProperties = appConfig.globalProperties;\n    {\n        uniIdMixin(globalProperties);\n    }\n    if (__VUE_OPTIONS_API__) {\n        globalProperties.$set = set;\n        globalProperties.$applyOptions = applyOptions;\n        globalProperties.$callMethod = $callMethod;\n    }\n    {\n        uni.invokeCreateVueAppHook(app);\n    }\n}\n\nconst propsCaches = Object.create(null);\nfunction renderProps(props) {\n    const { uid, __counter } = getCurrentInstance();\n    const propsId = (propsCaches[uid] || (propsCaches[uid] = [])).push(guardReactiveProps(props)) - 1;\n    // 强制每次更新\n    return uid + ',' + propsId + ',' + __counter;\n}\nfunction pruneComponentPropsCache(uid) {\n    delete propsCaches[uid];\n}\nfunction findComponentPropsData(up) {\n    if (!up) {\n        return;\n    }\n    const [uid, propsId] = up.split(',');\n    if (!propsCaches[uid]) {\n        return;\n    }\n    return propsCaches[uid][parseInt(propsId)];\n}\n\nvar plugin = {\n    install(app) {\n        initApp(app);\n        app.config.globalProperties.pruneComponentPropsCache =\n            pruneComponentPropsCache;\n        const oldMount = app.mount;\n        app.mount = function mount(rootContainer) {\n            const instance = oldMount.call(app, rootContainer);\n            const createApp = getCreateApp();\n            if (createApp) {\n                createApp(instance);\n            }\n            else {\n                // @ts-expect-error 旧编译器\n                if (typeof createMiniProgramApp !== 'undefined') {\n                    // @ts-expect-error\n                    createMiniProgramApp(instance);\n                }\n            }\n            return instance;\n        };\n    },\n};\nfunction getCreateApp() {\n    const method = process.env.UNI_MP_PLUGIN\n        ? 'createPluginApp'\n        : process.env.UNI_SUBPACKAGE\n            ? 'createSubpackageApp'\n            : 'createApp';\n    if (typeof global !== 'undefined' &&\n        typeof global[method] !== 'undefined') {\n        return global[method];\n        // @ts-expect-error\n    }\n    else if (typeof my !== 'undefined') {\n        // 支付宝小程序开启globalObjectMode配置后才会有global\n        // @ts-expect-error\n        return my[method];\n    }\n}\n\nfunction stringifyStyle(value) {\n    if (isString(value)) {\n        return value;\n    }\n    return stringify(normalizeStyle(value));\n}\n// 不使用 @vue/shared 中的 stringifyStyle (#3456)\nfunction stringify(styles) {\n    let ret = '';\n    if (!styles || isString(styles)) {\n        return ret;\n    }\n    for (const key in styles) {\n        ret += `${key.startsWith(`--`) ? key : hyphenate(key)}:${styles[key]};`;\n    }\n    return ret;\n}\n\nfunction vOn(value, key) {\n    const instance = getCurrentInstance();\n    const ctx = instance.ctx;\n    // 微信小程序,QQ小程序,当 setData diff 的时候,若事件不主动同步过去,会导致事件绑定不更新,(question/137217)\n    const extraKey = typeof key !== 'undefined' &&\n        (ctx.$mpPlatform === 'mp-weixin' ||\n            ctx.$mpPlatform === 'mp-qq' ||\n            ctx.$mpPlatform === 'mp-xhs') &&\n        (isString(key) || typeof key === 'number')\n        ? '_' + key\n        : '';\n    const name = 'e' + instance.$ei++ + extraKey;\n    const mpInstance = ctx.$scope;\n    if (!value) {\n        // remove\n        delete mpInstance[name];\n        return name;\n    }\n    const existingInvoker = mpInstance[name];\n    if (existingInvoker) {\n        // patch\n        existingInvoker.value = value;\n    }\n    else {\n        // add\n        mpInstance[name] = createInvoker(value, instance);\n    }\n    return name;\n}\nfunction createInvoker(initialValue, instance) {\n    const invoker = (e) => {\n        patchMPEvent(e);\n        let args = [e];\n        if (instance && instance.ctx.$getTriggerEventDetail) {\n            if (typeof e.detail === 'number') {\n                e.detail = instance.ctx.$getTriggerEventDetail(e.detail);\n            }\n        }\n        if (e.detail && e.detail.__args__) {\n            args = e.detail.__args__;\n        }\n        const eventValue = invoker.value;\n        const invoke = () => callWithAsyncErrorHandling(patchStopImmediatePropagation(e, eventValue), instance, 5 /* ErrorCodes.NATIVE_EVENT_HANDLER */, args);\n        // 冒泡事件触发时,启用延迟策略,避免同一批次的事件执行时机不正确,对性能可能有略微影响 https://github.com/dcloudio/uni-app/issues/3228\n        const eventTarget = e.target;\n        const eventSync = eventTarget\n            ? eventTarget.dataset\n                ? String(eventTarget.dataset.eventsync) === 'true'\n                : false\n            : false;\n        if (bubbles.includes(e.type) && !eventSync) {\n            setTimeout(invoke);\n        }\n        else {\n            const res = invoke();\n            if (e.type === 'input' && (isArray(res) || isPromise(res))) {\n                return;\n            }\n            return res;\n        }\n    };\n    invoker.value = initialValue;\n    return invoker;\n}\n// 冒泡事件列表\nconst bubbles = [\n    // touch事件暂不做延迟,否则在 Android 上会影响性能,比如一些拖拽跟手手势等\n    // 'touchstart',\n    // 'touchmove',\n    // 'touchcancel',\n    // 'touchend',\n    'tap',\n    'longpress',\n    'longtap',\n    'transitionend',\n    'animationstart',\n    'animationiteration',\n    'animationend',\n    'touchforcechange',\n];\nfunction patchMPEvent(event, instance) {\n    if (event.type && event.target) {\n        event.preventDefault = NOOP;\n        event.stopPropagation = NOOP;\n        event.stopImmediatePropagation = NOOP;\n        if (!hasOwn(event, 'detail')) {\n            event.detail = {};\n        }\n        if (hasOwn(event, 'markerId')) {\n            event.detail = typeof event.detail === 'object' ? event.detail : {};\n            event.detail.markerId = event.markerId;\n        }\n        // mp-baidu,checked=>value\n        if (isPlainObject(event.detail) &&\n            hasOwn(event.detail, 'checked') &&\n            !hasOwn(event.detail, 'value')) {\n            event.detail.value = event.detail.checked;\n        }\n        if (isPlainObject(event.detail)) {\n            event.target = extend({}, event.target, event.detail);\n        }\n    }\n}\nfunction patchStopImmediatePropagation(e, value) {\n    if (isArray(value)) {\n        const originalStop = e.stopImmediatePropagation;\n        e.stopImmediatePropagation = () => {\n            originalStop && originalStop.call(e);\n            e._stopped = true;\n        };\n        return value.map((fn) => (e) => !e._stopped && fn(e));\n    }\n    else {\n        return value;\n    }\n}\n\n/**\n * Actual implementation\n */\nfunction vFor(source, renderItem) {\n    let ret;\n    if (isArray(source) || isString(source)) {\n        ret = new Array(source.length);\n        for (let i = 0, l = source.length; i < l; i++) {\n            ret[i] = renderItem(source[i], i, i);\n        }\n    }\n    else if (typeof source === 'number') {\n        if ((process.env.NODE_ENV !== 'production') && !Number.isInteger(source)) {\n            warn(`The v-for range expect an integer value but got ${source}.`);\n            return [];\n        }\n        ret = new Array(source);\n        for (let i = 0; i < source; i++) {\n            ret[i] = renderItem(i + 1, i, i);\n        }\n    }\n    else if (isObject(source)) {\n        if (source[Symbol.iterator]) {\n            ret = Array.from(source, (item, i) => renderItem(item, i, i));\n        }\n        else {\n            const keys = Object.keys(source);\n            ret = new Array(keys.length);\n            for (let i = 0, l = keys.length; i < l; i++) {\n                const key = keys[i];\n                ret[i] = renderItem(source[key], key, i);\n            }\n        }\n    }\n    else {\n        ret = [];\n    }\n    return ret;\n}\n\nfunction renderSlot(name, props = {}, key) {\n    const instance = getCurrentInstance();\n    const { parent, isMounted, ctx: { $scope }, } = instance;\n    // mp-alipay 为 props\n    const vueIds = ($scope.properties || $scope.props).uI;\n    if (!vueIds) {\n        return;\n    }\n    if (!parent && !isMounted) {\n        // 头条小程序首次 render 时,还没有 parent\n        onMounted(() => {\n            renderSlot(name, props, key);\n        }, instance);\n        return;\n    }\n    const invoker = findScopedSlotInvoker(vueIds, instance);\n    // 可能不存在,因为插槽不是必需的\n    if (invoker) {\n        invoker(name, props, key);\n    }\n}\nfunction findScopedSlotInvoker(vueId, instance) {\n    let parent = instance.parent;\n    while (parent) {\n        const invokers = parent.$ssi;\n        if (invokers && invokers[vueId]) {\n            return invokers[vueId];\n        }\n        parent = parent.parent;\n    }\n}\n\nfunction withScopedSlot(fn, { name, path, vueId, }) {\n    const instance = getCurrentInstance();\n    fn.path = path;\n    const scopedSlots = (instance.$ssi ||\n        (instance.$ssi = {}));\n    const invoker = scopedSlots[vueId] ||\n        (scopedSlots[vueId] = createScopedSlotInvoker(instance));\n    if (!invoker.slots[name]) {\n        invoker.slots[name] = {\n            fn,\n        };\n    }\n    else {\n        invoker.slots[name].fn = fn;\n    }\n    return getValueByDataPath(instance.ctx.$scope.data, path);\n}\nfunction createScopedSlotInvoker(instance) {\n    const invoker = (slotName, args, index) => {\n        const slot = invoker.slots[slotName];\n        if (!slot) {\n            // slot 可能不存在 https://github.com/dcloudio/uni-app/issues/3346\n            return;\n        }\n        const hasIndex = typeof index !== 'undefined';\n        index = index || 0;\n        // 确保当前 slot 的上下文,类似 withCtx\n        const prevInstance = setCurrentRenderingInstance(instance);\n        const data = slot.fn(args, slotName + (hasIndex ? '-' + index : ''), index);\n        const path = slot.fn.path;\n        setCurrentRenderingInstance(prevInstance);\n        (instance.$scopedSlotsData || (instance.$scopedSlotsData = [])).push({\n            path,\n            index,\n            data,\n        });\n        instance.$updateScopedSlots();\n    };\n    invoker.slots = {};\n    return invoker;\n}\n\n/**\n * quickapp-webview 不能使用 default 作为插槽名称,故统一转换 default 为 d\n * @param names\n * @returns\n */\nfunction dynamicSlot(names) {\n    if (isString(names)) {\n        return dynamicSlotName(names);\n    }\n    return names.map((name) => dynamicSlotName(name));\n}\n\nfunction setRef(ref, id, opts = {}) {\n    const { $templateRefs } = getCurrentInstance();\n    $templateRefs.push({ i: id, r: ref, k: opts.k, f: opts.f });\n}\n\nfunction withModelModifiers(fn, { number, trim }, isComponent = false) {\n    if (isComponent) {\n        return (...args) => {\n            if (trim) {\n                args = args.map((a) => a.trim());\n            }\n            else if (number) {\n                args = args.map(toNumber);\n            }\n            return fn(...args);\n        };\n    }\n    return (event) => {\n        const value = event.detail.value;\n        if (trim) {\n            event.detail.value = value.trim();\n        }\n        else if (number) {\n            event.detail.value = toNumber(value);\n        }\n        return fn(event);\n    };\n}\n\nfunction hasIdProp(_ctx) {\n    return (_ctx.$.propsOptions &&\n        _ctx.$.propsOptions[0] &&\n        'id' in _ctx.$.propsOptions[0]);\n}\nfunction hasVirtualHostId(_ctx) {\n    return _ctx.$scope.virtualHostId !== '';\n}\nfunction genIdWithVirtualHost(_ctx, idBinding) {\n    if (!hasVirtualHostId(_ctx) || hasIdProp(_ctx)) {\n        return idBinding;\n    }\n    return _ctx.virtualHostId;\n}\nfunction genUniElementId(_ctx, idBinding, genId) {\n    return genIdWithVirtualHost(_ctx, idBinding) || genId || '';\n}\n\nfunction setupDevtoolsPlugin() {\n    // noop\n}\n\nconst o = (value, key) => vOn(value, key);\nconst f = (source, renderItem) => vFor(source, renderItem);\nconst d = (names) => dynamicSlot(names);\nconst r = (name, props, key) => renderSlot(name, props, key);\nconst w = (fn, options) => withScopedSlot(fn, options);\nconst s = (value) => stringifyStyle(value);\nconst c = (str) => camelize(str);\nconst e = (target, ...sources) => extend(target, ...sources);\nconst h = (str) => hyphenate(str);\nconst n = (value) => normalizeClass(value);\nconst t = (val) => toDisplayString(val);\nconst p = (props) => renderProps(props);\nconst sr = (ref, id, opts) => setRef(ref, id, opts);\nconst m = (fn, modifiers, isComponent = false) => withModelModifiers(fn, modifiers, isComponent);\nconst j = (obj) => JSON.stringify(obj);\nconst gei = genUniElementId;\n\nfunction createApp(rootComponent, rootProps = null) {\n    rootComponent && (rootComponent.mpType = 'app');\n    return createVueApp(rootComponent, rootProps).use(plugin);\n}\nconst createSSRApp = createApp;\n\nexport { EffectScope, Fragment, ReactiveEffect, Text, c, callWithAsyncErrorHandling, callWithErrorHandling, computed, createApp, createPropsRestProxy, createSSRApp, createVNode, createVueApp, customRef, d, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtoolsComponentAdded, devtoolsComponentRemoved, devtoolsComponentUpdated, diff, e, effect, effectScope, f, findComponentPropsData, gei, getCurrentInstance, getCurrentScope, getExposeProxy, guardReactiveProps, h, hasInjectionContext, hasQueueJob, inject, injectHook, invalidateJob, isInSSRComponentSetup, isProxy, isReactive, isReadonly, isRef, isShallow, j, logError, m, markRaw, mergeDefaults, mergeModels, mergeProps, n, nextTick$1 as nextTick, o, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, p, patch, provide, proxyRefs, pruneComponentPropsCache, queuePostFlushCb, r, reactive, readonly, ref, resolveComponent, resolveDirective, resolveFilter, s, setCurrentRenderingInstance, setTemplateRef, setupDevtoolsPlugin, shallowReactive, shallowReadonly, shallowRef, sr, stop, t, toHandlers, toRaw, toRef, toRefs, toValue, triggerRef, unref, updateProps, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, version, w, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withModifiers, withScopeId };\n","import { isArray, hasOwn, isString, isPlainObject, isObject, capitalize, toRawType, makeMap, isFunction, isPromise, extend, remove } from '@vue/shared';\nimport { LOCALE_EN, normalizeLocale } from '@dcloudio/uni-i18n';\nimport { Emitter, sortObject, ON_ERROR, onCreateVueApp, invokeCreateVueAppHook } from '@dcloudio/uni-shared';\nimport { injectHook } from 'vue';\n\nfunction getLocaleLanguage() {\n    let localeLanguage = '';\n    {\n        const appBaseInfo = wx.getAppBaseInfo();\n        const language = appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN;\n        localeLanguage = normalizeLocale(language) || LOCALE_EN;\n    }\n    return localeLanguage;\n}\n\nfunction validateProtocolFail(name, msg) {\n    console.warn(`${name}: ${msg}`);\n}\nfunction validateProtocol(name, data, protocol, onFail) {\n    if (!onFail) {\n        onFail = validateProtocolFail;\n    }\n    for (const key in protocol) {\n        const errMsg = validateProp(key, data[key], protocol[key], !hasOwn(data, key));\n        if (isString(errMsg)) {\n            onFail(name, errMsg);\n        }\n    }\n}\nfunction validateProtocols(name, args, protocol, onFail) {\n    if (!protocol) {\n        return;\n    }\n    if (!isArray(protocol)) {\n        return validateProtocol(name, args[0] || Object.create(null), protocol, onFail);\n    }\n    const len = protocol.length;\n    const argsLen = args.length;\n    for (let i = 0; i < len; i++) {\n        const opts = protocol[i];\n        const data = Object.create(null);\n        if (argsLen > i) {\n            data[opts.name] = args[i];\n        }\n        validateProtocol(name, data, { [opts.name]: opts }, onFail);\n    }\n}\nfunction validateProp(name, value, prop, isAbsent) {\n    if (!isPlainObject(prop)) {\n        prop = { type: prop };\n    }\n    const { type, required, validator } = prop;\n    // required!\n    if (required && isAbsent) {\n        return 'Missing required args: \"' + name + '\"';\n    }\n    // missing but optional\n    if (value == null && !required) {\n        return;\n    }\n    // type check\n    if (type != null) {\n        let isValid = false;\n        const types = isArray(type) ? type : [type];\n        const expectedTypes = [];\n        // value is valid as long as one of the specified types match\n        for (let i = 0; i < types.length && !isValid; i++) {\n            const { valid, expectedType } = assertType(value, types[i]);\n            expectedTypes.push(expectedType || '');\n            isValid = valid;\n        }\n        if (!isValid) {\n            return getInvalidTypeMessage(name, value, expectedTypes);\n        }\n    }\n    // custom validator\n    if (validator) {\n        return validator(value);\n    }\n}\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol');\nfunction assertType(value, type) {\n    let valid;\n    const expectedType = getType(type);\n    if (isSimpleType(expectedType)) {\n        const t = typeof value;\n        valid = t === expectedType.toLowerCase();\n        // for primitive wrapper objects\n        if (!valid && t === 'object') {\n            valid = value instanceof type;\n        }\n    }\n    else if (expectedType === 'Object') {\n        valid = isObject(value);\n    }\n    else if (expectedType === 'Array') {\n        valid = isArray(value);\n    }\n    else {\n        {\n            valid = value instanceof type;\n        }\n    }\n    return {\n        valid,\n        expectedType,\n    };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n    let message = `Invalid args: type check failed for args \"${name}\".` +\n        ` Expected ${expectedTypes.map(capitalize).join(', ')}`;\n    const expectedType = expectedTypes[0];\n    const receivedType = toRawType(value);\n    const expectedValue = styleValue(value, expectedType);\n    const receivedValue = styleValue(value, receivedType);\n    // check if we need to specify expected value\n    if (expectedTypes.length === 1 &&\n        isExplicable(expectedType) &&\n        !isBoolean(expectedType, receivedType)) {\n        message += ` with value ${expectedValue}`;\n    }\n    message += `, got ${receivedType} `;\n    // check if we need to specify received value\n    if (isExplicable(receivedType)) {\n        message += `with value ${receivedValue}.`;\n    }\n    return message;\n}\nfunction getType(ctor) {\n    const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n    return match ? match[1] : '';\n}\nfunction styleValue(value, type) {\n    if (type === 'String') {\n        return `\"${value}\"`;\n    }\n    else if (type === 'Number') {\n        return `${Number(value)}`;\n    }\n    else {\n        return `${value}`;\n    }\n}\nfunction isExplicable(type) {\n    const explicitTypes = ['string', 'number', 'boolean'];\n    return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n    return args.some((elem) => elem.toLowerCase() === 'boolean');\n}\n\nfunction tryCatch(fn) {\n    return function () {\n        try {\n            return fn.apply(fn, arguments);\n        }\n        catch (e) {\n            // TODO\n            console.error(e);\n        }\n    };\n}\n\nlet invokeCallbackId = 1;\nconst invokeCallbacks = {};\nfunction addInvokeCallback(id, name, callback, keepAlive = false) {\n    invokeCallbacks[id] = {\n        name,\n        keepAlive,\n        callback,\n    };\n    return id;\n}\n// onNativeEventReceive((event,data)=>{}) 需要两个参数,目前写死最多两个参数\nfunction invokeCallback(id, res, extras) {\n    if (typeof id === 'number') {\n        const opts = invokeCallbacks[id];\n        if (opts) {\n            if (!opts.keepAlive) {\n                delete invokeCallbacks[id];\n            }\n            return opts.callback(res, extras);\n        }\n    }\n    return res;\n}\nconst API_SUCCESS = 'success';\nconst API_FAIL = 'fail';\nconst API_COMPLETE = 'complete';\nfunction getApiCallbacks(args) {\n    const apiCallbacks = {};\n    for (const name in args) {\n        const fn = args[name];\n        if (isFunction(fn)) {\n            apiCallbacks[name] = tryCatch(fn);\n            delete args[name];\n        }\n    }\n    return apiCallbacks;\n}\nfunction normalizeErrMsg(errMsg, name) {\n    if (!errMsg || errMsg.indexOf(':fail') === -1) {\n        return name + ':ok';\n    }\n    return name + errMsg.substring(errMsg.indexOf(':fail'));\n}\nfunction createAsyncApiCallback(name, args = {}, { beforeAll, beforeSuccess } = {}) {\n    if (!isPlainObject(args)) {\n        args = {};\n    }\n    const { success, fail, complete } = getApiCallbacks(args);\n    const hasSuccess = isFunction(success);\n    const hasFail = isFunction(fail);\n    const hasComplete = isFunction(complete);\n    const callbackId = invokeCallbackId++;\n    addInvokeCallback(callbackId, name, (res) => {\n        res = res || {};\n        res.errMsg = normalizeErrMsg(res.errMsg, name);\n        isFunction(beforeAll) && beforeAll(res);\n        if (res.errMsg === name + ':ok') {\n            isFunction(beforeSuccess) && beforeSuccess(res, args);\n            hasSuccess && success(res);\n        }\n        else {\n            hasFail && fail(res);\n        }\n        hasComplete && complete(res);\n    });\n    return callbackId;\n}\n\nconst HOOK_SUCCESS = 'success';\nconst HOOK_FAIL = 'fail';\nconst HOOK_COMPLETE = 'complete';\nconst globalInterceptors = {};\nconst scopedInterceptors = {};\nfunction wrapperHook(hook, params) {\n    return function (data) {\n        return hook(data, params) || data;\n    };\n}\nfunction queue(hooks, data, params) {\n    let promise = false;\n    for (let i = 0; i < hooks.length; i++) {\n        const hook = hooks[i];\n        if (promise) {\n            promise = Promise.resolve(wrapperHook(hook, params));\n        }\n        else {\n            const res = hook(data, params);\n            if (isPromise(res)) {\n                promise = Promise.resolve(res);\n            }\n            if (res === false) {\n                return {\n                    then() { },\n                    catch() { },\n                };\n            }\n        }\n    }\n    return (promise || {\n        then(callback) {\n            return callback(data);\n        },\n        catch() { },\n    });\n}\nfunction wrapperOptions(interceptors, options = {}) {\n    [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => {\n        const hooks = interceptors[name];\n        if (!isArray(hooks)) {\n            return;\n        }\n        const oldCallback = options[name];\n        options[name] = function callbackInterceptor(res) {\n            queue(hooks, res, options).then((res) => {\n                return (isFunction(oldCallback) && oldCallback(res)) || res;\n            });\n        };\n    });\n    return options;\n}\nfunction wrapperReturnValue(method, returnValue) {\n    const returnValueHooks = [];\n    if (isArray(globalInterceptors.returnValue)) {\n        returnValueHooks.push(...globalInterceptors.returnValue);\n    }\n    const interceptor = scopedInterceptors[method];\n    if (interceptor && isArray(interceptor.returnValue)) {\n        returnValueHooks.push(...interceptor.returnValue);\n    }\n    returnValueHooks.forEach((hook) => {\n        returnValue = hook(returnValue) || returnValue;\n    });\n    return returnValue;\n}\nfunction getApiInterceptorHooks(method) {\n    const interceptor = Object.create(null);\n    Object.keys(globalInterceptors).forEach((hook) => {\n        if (hook !== 'returnValue') {\n            interceptor[hook] = globalInterceptors[hook].slice();\n        }\n    });\n    const scopedInterceptor = scopedInterceptors[method];\n    if (scopedInterceptor) {\n        Object.keys(scopedInterceptor).forEach((hook) => {\n            if (hook !== 'returnValue') {\n                interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\n            }\n        });\n    }\n    return interceptor;\n}\nfunction invokeApi(method, api, options, params) {\n    const interceptor = getApiInterceptorHooks(method);\n    if (interceptor && Object.keys(interceptor).length) {\n        if (isArray(interceptor.invoke)) {\n            const res = queue(interceptor.invoke, options);\n            return res.then((options) => {\n                // 重新访问 getApiInterceptorHooks, 允许 invoke 中再次调用 addInterceptor,removeInterceptor\n                return api(wrapperOptions(getApiInterceptorHooks(method), options), ...params);\n            });\n        }\n        else {\n            return api(wrapperOptions(interceptor, options), ...params);\n        }\n    }\n    return api(options, ...params);\n}\n\nfunction hasCallback(args) {\n    if (isPlainObject(args) &&\n        [API_SUCCESS, API_FAIL, API_COMPLETE].find((cb) => isFunction(args[cb]))) {\n        return true;\n    }\n    return false;\n}\nfunction handlePromise(promise) {\n    // if (__UNI_FEATURE_PROMISE__) {\n    //   return promise\n    //     .then((data) => {\n    //       return [null, data]\n    //     })\n    //     .catch((err) => [err])\n    // }\n    return promise;\n}\nfunction promisify$1(name, fn) {\n    return (args = {}, ...rest) => {\n        if (hasCallback(args)) {\n            return wrapperReturnValue(name, invokeApi(name, fn, args, rest));\n        }\n        return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\n            invokeApi(name, fn, extend(args, { success: resolve, fail: reject }), rest);\n        })));\n    };\n}\n\nfunction formatApiArgs(args, options) {\n    args[0];\n    {\n        return;\n    }\n}\nfunction invokeSuccess(id, name, res) {\n    const result = {\n        errMsg: name + ':ok',\n    };\n    return invokeCallback(id, extend((res || {}), result));\n}\nfunction invokeFail(id, name, errMsg, errRes = {}) {\n    const errMsgPrefix = name + ':fail';\n    let apiErrMsg = '';\n    if (!errMsg) {\n        apiErrMsg = errMsgPrefix;\n    }\n    else if (errMsg.indexOf(errMsgPrefix) === 0) {\n        apiErrMsg = errMsg;\n    }\n    else {\n        apiErrMsg = errMsgPrefix + ' ' + errMsg;\n    }\n    {\n        delete errRes.errCode;\n    }\n    let res = extend({ errMsg: apiErrMsg }, errRes);\n    return invokeCallback(id, res);\n}\nfunction beforeInvokeApi(name, args, protocol, options) {\n    if ((process.env.NODE_ENV !== 'production')) {\n        validateProtocols(name, args, protocol);\n    }\n    const errMsg = formatApiArgs(args);\n    if (errMsg) {\n        return errMsg;\n    }\n}\nfunction parseErrMsg(errMsg) {\n    if (!errMsg || isString(errMsg)) {\n        return errMsg;\n    }\n    if (errMsg.stack) {\n        // 此处同时被鸿蒙arkts和jsvm使用,暂时使用运行时判断鸿蒙jsvm环境,注意此用法仅内部使用\n        if ((typeof globalThis === 'undefined' || !globalThis.harmonyChannel)) {\n            console.error(errMsg.message + '\\n' + errMsg.stack);\n        }\n        return errMsg.message;\n    }\n    return errMsg;\n}\nfunction wrapperTaskApi(name, fn, protocol, options) {\n    return (args) => {\n        const id = createAsyncApiCallback(name, args, options);\n        const errMsg = beforeInvokeApi(name, [args], protocol);\n        if (errMsg) {\n            return invokeFail(id, name, errMsg);\n        }\n        return fn(args, {\n            resolve: (res) => invokeSuccess(id, name, res),\n            reject: (errMsg, errRes) => invokeFail(id, name, parseErrMsg(errMsg), errRes),\n        });\n    };\n}\nfunction wrapperSyncApi(name, fn, protocol, options) {\n    return (...args) => {\n        const errMsg = beforeInvokeApi(name, args, protocol);\n        if (errMsg) {\n            throw new Error(errMsg);\n        }\n        return fn.apply(null, args);\n    };\n}\nfunction wrapperAsyncApi(name, fn, protocol, options) {\n    return wrapperTaskApi(name, fn, protocol, options);\n}\nfunction defineSyncApi(name, fn, protocol, options) {\n    return wrapperSyncApi(name, fn, (process.env.NODE_ENV !== 'production') ? protocol : undefined);\n}\nfunction defineAsyncApi(name, fn, protocol, options) {\n    return promisify$1(name, wrapperAsyncApi(name, fn, (process.env.NODE_ENV !== 'production') ? protocol : undefined, options));\n}\n\nconst API_UPX2PX = 'upx2px';\nconst Upx2pxProtocol = [\n    {\n        name: 'upx',\n        type: [Number, String],\n        required: true,\n    },\n];\n\nconst EPS = 1e-4;\nconst BASE_DEVICE_WIDTH = 750;\nlet isIOS = false;\nlet deviceWidth = 0;\nlet deviceDPR = 0;\nfunction checkDeviceWidth() {\n    const { windowWidth, pixelRatio, platform } = Object.assign({}, wx.getWindowInfo(), {\n            platform: wx.getDeviceInfo().platform,\n        })\n        ;\n    deviceWidth = windowWidth;\n    deviceDPR = pixelRatio;\n    isIOS = platform === 'ios';\n}\nconst upx2px = defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => {\n    if (deviceWidth === 0) {\n        checkDeviceWidth();\n    }\n    number = Number(number);\n    if (number === 0) {\n        return 0;\n    }\n    let width = newDeviceWidth || deviceWidth;\n    let result = (number / BASE_DEVICE_WIDTH) * width;\n    if (result < 0) {\n        result = -result;\n    }\n    result = Math.floor(result + EPS);\n    if (result === 0) {\n        if (deviceDPR === 1 || !isIOS) {\n            result = 1;\n        }\n        else {\n            result = 0.5;\n        }\n    }\n    return number < 0 ? -result : result;\n}, Upx2pxProtocol);\n\nfunction __f__(type, filename, ...args) {\n    if (filename) {\n        args.push(filename);\n    }\n    console[type].apply(console, args);\n}\n\nconst API_ADD_INTERCEPTOR = 'addInterceptor';\nconst API_REMOVE_INTERCEPTOR = 'removeInterceptor';\nconst AddInterceptorProtocol = [\n    {\n        name: 'method',\n        type: [String, Object],\n        required: true,\n    },\n];\nconst RemoveInterceptorProtocol = AddInterceptorProtocol;\n\nfunction mergeInterceptorHook(interceptors, interceptor) {\n    Object.keys(interceptor).forEach((hook) => {\n        if (isFunction(interceptor[hook])) {\n            interceptors[hook] = mergeHook(interceptors[hook], interceptor[hook]);\n        }\n    });\n}\nfunction removeInterceptorHook(interceptors, interceptor) {\n    if (!interceptors || !interceptor) {\n        return;\n    }\n    Object.keys(interceptor).forEach((name) => {\n        const hooks = interceptors[name];\n        const hook = interceptor[name];\n        if (isArray(hooks) && isFunction(hook)) {\n            remove(hooks, hook);\n        }\n    });\n}\nfunction mergeHook(parentVal, childVal) {\n    const res = childVal\n        ? parentVal\n            ? parentVal.concat(childVal)\n            : isArray(childVal)\n                ? childVal\n                : [childVal]\n        : parentVal;\n    return res ? dedupeHooks(res) : res;\n}\nfunction dedupeHooks(hooks) {\n    const res = [];\n    for (let i = 0; i < hooks.length; i++) {\n        if (res.indexOf(hooks[i]) === -1) {\n            res.push(hooks[i]);\n        }\n    }\n    return res;\n}\nconst addInterceptor = defineSyncApi(API_ADD_INTERCEPTOR, (method, interceptor) => {\n    if (isString(method) && isPlainObject(interceptor)) {\n        mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), interceptor);\n    }\n    else if (isPlainObject(method)) {\n        mergeInterceptorHook(globalInterceptors, method);\n    }\n}, AddInterceptorProtocol);\nconst removeInterceptor = defineSyncApi(API_REMOVE_INTERCEPTOR, (method, interceptor) => {\n    if (isString(method)) {\n        if (isPlainObject(interceptor)) {\n            removeInterceptorHook(scopedInterceptors[method], interceptor);\n        }\n        else {\n            delete scopedInterceptors[method];\n        }\n    }\n    else if (isPlainObject(method)) {\n        removeInterceptorHook(globalInterceptors, method);\n    }\n}, RemoveInterceptorProtocol);\nconst interceptors = {};\n\nconst API_ON = '$on';\nconst OnProtocol = [\n    {\n        name: 'event',\n        type: String,\n        required: true,\n    },\n    {\n        name: 'callback',\n        type: Function,\n        required: true,\n    },\n];\nconst API_ONCE = '$once';\nconst OnceProtocol = OnProtocol;\nconst API_OFF = '$off';\nconst OffProtocol = [\n    {\n        name: 'event',\n        type: [String, Array],\n    },\n    {\n        name: 'callback',\n        type: [Function, Number],\n    },\n];\nconst API_EMIT = '$emit';\nconst EmitProtocol = [\n    {\n        name: 'event',\n        type: String,\n        required: true,\n    },\n];\n\nclass EventBus {\n    constructor() {\n        this.$emitter = new Emitter();\n    }\n    on(name, callback) {\n        return this.$emitter.on(name, callback);\n    }\n    once(name, callback) {\n        return this.$emitter.once(name, callback);\n    }\n    off(name, callback) {\n        if (!name) {\n            this.$emitter.e = {};\n            return;\n        }\n        this.$emitter.off(name, callback);\n    }\n    emit(name, ...args) {\n        this.$emitter.emit(name, ...args);\n    }\n}\nconst eventBus = new EventBus();\nconst $on = defineSyncApi(API_ON, (name, callback) => {\n    eventBus.on(name, callback);\n    return () => eventBus.off(name, callback);\n}, OnProtocol);\nconst $once = defineSyncApi(API_ONCE, (name, callback) => {\n    eventBus.once(name, callback);\n    return () => eventBus.off(name, callback);\n}, OnceProtocol);\nconst $off = defineSyncApi(API_OFF, (name, callback) => {\n    // 类型中不再体现 name 支持 string[] 类型, 仅在 uni.$off 保留该逻辑向下兼容\n    if (!isArray(name))\n        name = name ? [name] : [];\n    name.forEach((n) => {\n        eventBus.off(n, callback);\n    });\n}, OffProtocol);\nconst $emit = defineSyncApi(API_EMIT, (name, ...args) => {\n    eventBus.emit(name, ...args);\n}, EmitProtocol);\n\nlet cid;\nlet cidErrMsg;\nlet enabled;\nfunction normalizePushMessage(message) {\n    try {\n        return JSON.parse(message);\n    }\n    catch (e) { }\n    return message;\n}\n/**\n * @private\n * @param args\n */\nfunction invokePushCallback(args) {\n    if (args.type === 'enabled') {\n        enabled = true;\n    }\n    else if (args.type === 'clientId') {\n        cid = args.cid;\n        cidErrMsg = args.errMsg;\n        invokeGetPushCidCallbacks(cid, args.errMsg);\n    }\n    else if (args.type === 'pushMsg') {\n        const message = {\n            type: 'receive',\n            data: normalizePushMessage(args.message),\n        };\n        for (let i = 0; i < onPushMessageCallbacks.length; i++) {\n            const callback = onPushMessageCallbacks[i];\n            callback(message);\n            // 该消息已被阻止\n            if (message.stopped) {\n                break;\n            }\n        }\n    }\n    else if (args.type === 'click') {\n        onPushMessageCallbacks.forEach((callback) => {\n            callback({\n                type: 'click',\n                data: normalizePushMessage(args.message),\n            });\n        });\n    }\n}\nconst getPushCidCallbacks = [];\nfunction invokeGetPushCidCallbacks(cid, errMsg) {\n    getPushCidCallbacks.forEach((callback) => {\n        callback(cid, errMsg);\n    });\n    getPushCidCallbacks.length = 0;\n}\nconst API_GET_PUSH_CLIENT_ID = 'getPushClientId';\nconst getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve, reject }) => {\n    Promise.resolve().then(() => {\n        if (typeof enabled === 'undefined') {\n            enabled = false;\n            cid = '';\n            cidErrMsg = 'uniPush is not enabled';\n        }\n        getPushCidCallbacks.push((cid, errMsg) => {\n            if (cid) {\n                resolve({ cid });\n            }\n            else {\n                reject(errMsg);\n            }\n        });\n        if (typeof cid !== 'undefined') {\n            invokeGetPushCidCallbacks(cid, cidErrMsg);\n        }\n    });\n});\nconst onPushMessageCallbacks = [];\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\nconst onPushMessage = (fn) => {\n    if (onPushMessageCallbacks.indexOf(fn) === -1) {\n        onPushMessageCallbacks.push(fn);\n    }\n};\nconst offPushMessage = (fn) => {\n    if (!fn) {\n        onPushMessageCallbacks.length = 0;\n    }\n    else {\n        const index = onPushMessageCallbacks.indexOf(fn);\n        if (index > -1) {\n            onPushMessageCallbacks.splice(index, 1);\n        }\n    }\n};\n\nconst SYNC_API_RE = /^\\$|__f__|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|rpx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getDeviceInfo|getAppBaseInfo|getWindowInfo|getSystemSetting|getAppAuthorizeSetting/;\nconst CONTEXT_API_RE = /^create|Manager$/;\n// Context例外情况\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\nconst TASK_APIS = ['request', 'downloadFile', 'uploadFile', 'connectSocket'];\n// 同步例外情况\nconst ASYNC_API = ['createBLEConnection'];\nconst CALLBACK_API_RE = /^on|^off/;\nfunction isContextApi(name) {\n    return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1;\n}\nfunction isSyncApi(name) {\n    return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1;\n}\nfunction isCallbackApi(name) {\n    return CALLBACK_API_RE.test(name) && name !== 'onPush';\n}\nfunction isTaskApi(name) {\n    return TASK_APIS.indexOf(name) !== -1;\n}\nfunction shouldPromise(name) {\n    if (isContextApi(name) || isSyncApi(name) || isCallbackApi(name)) {\n        return false;\n    }\n    return true;\n}\n/* eslint-disable no-extend-native */\nif (!Promise.prototype.finally) {\n    Promise.prototype.finally = function (onfinally) {\n        const promise = this.constructor;\n        return this.then((value) => promise.resolve(onfinally && onfinally()).then(() => value), (reason) => promise.resolve(onfinally && onfinally()).then(() => {\n            throw reason;\n        }));\n    };\n}\nfunction promisify(name, api) {\n    if (!shouldPromise(name)) {\n        return api;\n    }\n    if (!isFunction(api)) {\n        return api;\n    }\n    return function promiseApi(options = {}, ...rest) {\n        if (isFunction(options.success) ||\n            isFunction(options.fail) ||\n            isFunction(options.complete)) {\n            return wrapperReturnValue(name, invokeApi(name, api, options, rest));\n        }\n        return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\n            invokeApi(name, api, extend({}, options, {\n                success: resolve,\n                fail: reject,\n            }), rest);\n        })));\n    };\n}\n\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\nfunction initWrapper(protocols) {\n    function processCallback(methodName, method, returnValue) {\n        return function (res) {\n            return method(processReturnValue(methodName, res, returnValue));\n        };\n    }\n    function processArgs(methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\n        if (isPlainObject(fromArgs)) {\n            // 一般 api 的参数解析\n            const toArgs = (keepFromArgs === true ? fromArgs : {}); // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\n            if (isFunction(argsOption)) {\n                argsOption = argsOption(fromArgs, toArgs) || {};\n            }\n            for (const key in fromArgs) {\n                if (hasOwn(argsOption, key)) {\n                    let keyOption = argsOption[key];\n                    if (isFunction(keyOption)) {\n                        keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\n                    }\n                    if (!keyOption) {\n                        // 不支持的参数\n                        console.warn(`微信小程序 ${methodName} 暂不支持 ${key}`);\n                    }\n                    else if (isString(keyOption)) {\n                        // 重写参数 key\n                        toArgs[keyOption] = fromArgs[key];\n                    }\n                    else if (isPlainObject(keyOption)) {\n                        // {name:newName,value:value}可重新指定参数 key:value\n                        toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\n                    }\n                }\n                else if (CALLBACKS.indexOf(key) !== -1) {\n                    const callback = fromArgs[key];\n                    if (isFunction(callback)) {\n                        toArgs[key] = processCallback(methodName, callback, returnValue);\n                    }\n                }\n                else {\n                    if (!keepFromArgs && !hasOwn(toArgs, key)) {\n                        toArgs[key] = fromArgs[key];\n                    }\n                }\n            }\n            return toArgs;\n        }\n        else if (isFunction(fromArgs)) {\n            if (isFunction(argsOption)) {\n                argsOption(fromArgs, {});\n            }\n            fromArgs = processCallback(methodName, fromArgs, returnValue);\n        }\n        return fromArgs;\n    }\n    function processReturnValue(methodName, res, returnValue, keepReturnValue = false) {\n        if (isFunction(protocols.returnValue)) {\n            // 处理通用 returnValue\n            res = protocols.returnValue(methodName, res);\n        }\n        const realKeepReturnValue = keepReturnValue || (false);\n        return processArgs(methodName, res, returnValue, {}, realKeepReturnValue);\n    }\n    return function wrapper(methodName, method) {\n        /**\n         * 注意:\n         * - 此处method为原始全局对象上的uni方法名对应的属性值,比如method值可能为my.login,即undefined\n         * - uni.env并非方法,但是也会被传入wrapper\n         * - 开发者自定义的方法属性也会进入此方法,此时method为undefined,应返回undefined\n         */\n        const hasProtocol = hasOwn(protocols, methodName);\n        if (!hasProtocol && typeof wx[methodName] !== 'function') {\n            return method;\n        }\n        const needWrapper = hasProtocol ||\n            isFunction(protocols.returnValue) ||\n            isContextApi(methodName) ||\n            isTaskApi(methodName);\n        const hasMethod = hasProtocol || isFunction(method);\n        if (!hasProtocol && !method) {\n            // 暂不支持的 api\n            return function () {\n                console.error(`微信小程序 暂不支持${methodName}`);\n            };\n        }\n        if (!needWrapper || !hasMethod) {\n            return method;\n        }\n        const protocol = protocols[methodName];\n        return function (arg1, arg2) {\n            // 目前 api 最多两个参数\n            let options = protocol || {};\n            if (isFunction(protocol)) {\n                options = protocol(arg1);\n            }\n            arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\n            const args = [arg1];\n            if (typeof arg2 !== 'undefined') {\n                args.push(arg2);\n            }\n            const returnValue = wx[options.name || methodName].apply(wx, args);\n            if (isContextApi(methodName) || isTaskApi(methodName)) {\n                if (returnValue && !returnValue.__v_skip) {\n                    returnValue.__v_skip = true;\n                }\n            }\n            if (isSyncApi(methodName)) {\n                // 同步 api\n                return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName));\n            }\n            return returnValue;\n        };\n    };\n}\n\nconst getLocale = () => {\n    // 优先使用 $locale\n    const app = isFunction(getApp) && getApp({ allowDefault: true });\n    if (app && app.$vm) {\n        return app.$vm.$locale;\n    }\n    return getLocaleLanguage();\n};\nconst setLocale = (locale) => {\n    const app = isFunction(getApp) && getApp();\n    if (!app) {\n        return false;\n    }\n    const oldLocale = app.$vm.$locale;\n    if (oldLocale !== locale) {\n        app.$vm.$locale = locale;\n        onLocaleChangeCallbacks.forEach((fn) => fn({ locale }));\n        return true;\n    }\n    return false;\n};\nconst onLocaleChangeCallbacks = [];\nconst onLocaleChange = (fn) => {\n    if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\n        onLocaleChangeCallbacks.push(fn);\n    }\n};\nif (typeof global !== 'undefined') {\n    global.getLocale = getLocale;\n}\n\nconst UUID_KEY = '__DC_STAT_UUID';\nlet deviceId;\nfunction useDeviceId(global = wx) {\n    return function addDeviceId(_, toRes) {\n        deviceId = deviceId || global.getStorageSync(UUID_KEY);\n        if (!deviceId) {\n            deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\n            wx.setStorage({\n                key: UUID_KEY,\n                data: deviceId,\n            });\n        }\n        toRes.deviceId = deviceId;\n    };\n}\nfunction addSafeAreaInsets(fromRes, toRes) {\n    if (fromRes.safeArea) {\n        const safeArea = fromRes.safeArea;\n        toRes.safeAreaInsets = {\n            top: safeArea.top,\n            left: safeArea.left,\n            right: fromRes.windowWidth - safeArea.right,\n            bottom: fromRes.screenHeight - safeArea.bottom,\n        };\n    }\n}\nfunction getOSInfo(system, platform) {\n    let osName = '';\n    let osVersion = '';\n    if (platform &&\n        (\"mp-weixin\" === 'mp-baidu')) {\n        osName = platform;\n        osVersion = system;\n    }\n    else {\n        osName = system.split(' ')[0] || '';\n        osVersion = system.split(' ')[1] || '';\n    }\n    return {\n        osName: osName.toLocaleLowerCase(),\n        osVersion,\n    };\n}\nfunction populateParameters(fromRes, toRes) {\n    const { brand = '', model = '', system = '', language = '', theme, version, platform, fontSizeSetting, SDKVersion, pixelRatio, deviceOrientation, } = fromRes;\n    // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\n    // osName osVersion\n    const { osName, osVersion } = getOSInfo(system, platform);\n    let hostVersion = version;\n    // deviceType\n    let deviceType = getGetDeviceType(fromRes, model);\n    // deviceModel\n    let deviceBrand = getDeviceBrand(brand);\n    // hostName\n    let _hostName = getHostName(fromRes);\n    // deviceOrientation\n    let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\n    // devicePixelRatio\n    let _devicePixelRatio = pixelRatio;\n    // SDKVersion\n    let _SDKVersion = SDKVersion;\n    // hostLanguage\n    const hostLanguage = (language || '').replace(/_/g, '-');\n    // wx.getAccountInfoSync\n    const parameters = {\n        appId: process.env.UNI_APP_ID,\n        appName: process.env.UNI_APP_NAME,\n        appVersion: process.env.UNI_APP_VERSION_NAME,\n        appVersionCode: process.env.UNI_APP_VERSION_CODE,\n        appLanguage: getAppLanguage(hostLanguage),\n        uniCompileVersion: process.env.UNI_COMPILER_VERSION,\n        uniCompilerVersion: process.env.UNI_COMPILER_VERSION,\n        uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\n        uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\n        deviceBrand,\n        deviceModel: model,\n        deviceType,\n        devicePixelRatio: _devicePixelRatio,\n        deviceOrientation: _deviceOrientation,\n        osName,\n        osVersion,\n        hostTheme: theme,\n        hostVersion,\n        hostLanguage,\n        hostName: _hostName,\n        hostSDKVersion: _SDKVersion,\n        hostFontSizeSetting: fontSizeSetting,\n        windowTop: 0,\n        windowBottom: 0,\n        // TODO\n        osLanguage: undefined,\n        osTheme: undefined,\n        ua: undefined,\n        hostPackageName: undefined,\n        browserName: undefined,\n        browserVersion: undefined,\n        isUniAppX: false,\n    };\n    extend(toRes, parameters);\n}\nfunction getGetDeviceType(fromRes, model) {\n    // deviceType\n    let deviceType = fromRes.deviceType || 'phone';\n    {\n        const deviceTypeMaps = {\n            ipad: 'pad',\n            windows: 'pc',\n            mac: 'pc',\n        };\n        const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\n        const _model = model.toLocaleLowerCase();\n        for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\n            const _m = deviceTypeMapsKeys[index];\n            if (_model.indexOf(_m) !== -1) {\n                deviceType = deviceTypeMaps[_m];\n                break;\n            }\n        }\n    }\n    return deviceType;\n}\nfunction getDeviceBrand(brand) {\n    // deviceModel\n    let deviceBrand = brand;\n    if (deviceBrand) {\n        deviceBrand = deviceBrand.toLocaleLowerCase();\n    }\n    return deviceBrand;\n}\nfunction getAppLanguage(defaultLanguage) {\n    return getLocale ? getLocale() : defaultLanguage;\n}\nfunction getHostName(fromRes) {\n    const _platform = 'WeChat'\n        ;\n    let _hostName = fromRes.hostName || _platform; // mp-jd\n    {\n        if (fromRes.environment) {\n            _hostName = fromRes.environment;\n        }\n        else if (fromRes.host && fromRes.host.env) {\n            _hostName = fromRes.host.env;\n        }\n    }\n    return _hostName;\n}\n\nconst getSystemInfo = {\n    returnValue: (fromRes, toRes) => {\n        addSafeAreaInsets(fromRes, toRes);\n        useDeviceId()(fromRes, toRes);\n        populateParameters(fromRes, toRes);\n    },\n};\n\nconst getSystemInfoSync = getSystemInfo;\n\nconst redirectTo = {};\n\nconst previewImage = {\n    args(fromArgs, toArgs) {\n        let currentIndex = parseInt(fromArgs.current);\n        if (isNaN(currentIndex)) {\n            return;\n        }\n        const urls = fromArgs.urls;\n        if (!isArray(urls)) {\n            return;\n        }\n        const len = urls.length;\n        if (!len) {\n            return;\n        }\n        if (currentIndex < 0) {\n            currentIndex = 0;\n        }\n        else if (currentIndex >= len) {\n            currentIndex = len - 1;\n        }\n        if (currentIndex > 0) {\n            toArgs.current = urls[currentIndex];\n            toArgs.urls = urls.filter((item, index) => index < currentIndex ? item !== urls[currentIndex] : true);\n        }\n        else {\n            toArgs.current = urls[0];\n        }\n        return {\n            indicator: false,\n            loop: false,\n        };\n    },\n};\n\nconst showActionSheet = {\n    args(fromArgs, toArgs) {\n        toArgs.alertText = fromArgs.title;\n    },\n};\n\nconst getDeviceInfo = {\n    returnValue: (fromRes, toRes) => {\n        const { brand, model, system = '', platform = '' } = fromRes;\n        let deviceType = getGetDeviceType(fromRes, model);\n        let deviceBrand = getDeviceBrand(brand);\n        useDeviceId()(fromRes, toRes);\n        const { osName, osVersion } = getOSInfo(system, platform);\n        toRes = sortObject(extend(toRes, {\n            deviceType,\n            deviceBrand,\n            deviceModel: model,\n            osName,\n            osVersion,\n        }));\n    },\n};\n\nconst getAppBaseInfo = {\n    returnValue: (fromRes, toRes) => {\n        const { version, language, SDKVersion, theme } = fromRes;\n        let _hostName = getHostName(fromRes);\n        let hostLanguage = (language || '').replace(/_/g, '-');\n        const parameters = {\n            hostVersion: version,\n            hostLanguage,\n            hostName: _hostName,\n            hostSDKVersion: SDKVersion,\n            hostTheme: theme,\n            appId: process.env.UNI_APP_ID,\n            appName: process.env.UNI_APP_NAME,\n            appVersion: process.env.UNI_APP_VERSION_NAME,\n            appVersionCode: process.env.UNI_APP_VERSION_CODE,\n            appLanguage: getAppLanguage(hostLanguage),\n            isUniAppX: false,\n            uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\n            uniCompileVersion: process.env.UNI_COMPILER_VERSION,\n            uniCompilerVersion: process.env.UNI_COMPILER_VERSION,\n            uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\n        };\n        extend(toRes, parameters);\n    },\n};\n\nconst getWindowInfo = {\n    returnValue: (fromRes, toRes) => {\n        addSafeAreaInsets(fromRes, toRes);\n        toRes = sortObject(extend(toRes, {\n            windowTop: 0,\n            windowBottom: 0,\n        }));\n    },\n};\n\nconst getAppAuthorizeSetting = {\n    returnValue: function (fromRes, toRes) {\n        const { locationReducedAccuracy } = fromRes;\n        toRes.locationAccuracy = 'unsupported';\n        if (locationReducedAccuracy === true) {\n            toRes.locationAccuracy = 'reduced';\n        }\n        else if (locationReducedAccuracy === false) {\n            toRes.locationAccuracy = 'full';\n        }\n    },\n};\n\nconst onError = {\n    args(fromArgs) {\n        const app = getApp({ allowDefault: true }) || {};\n        if (!app.$vm) {\n            if (!wx.$onErrorHandlers) {\n                wx.$onErrorHandlers = [];\n            }\n            wx.$onErrorHandlers.push(fromArgs);\n        }\n        else {\n            injectHook(ON_ERROR, fromArgs, app.$vm.$);\n        }\n    },\n};\nconst offError = {\n    args(fromArgs) {\n        const app = getApp({ allowDefault: true }) || {};\n        if (!app.$vm) {\n            if (!wx.$onErrorHandlers) {\n                return;\n            }\n            const index = wx.$onErrorHandlers.findIndex((fn) => fn === fromArgs);\n            if (index !== -1) {\n                wx.$onErrorHandlers.splice(index, 1);\n            }\n        }\n        else if (fromArgs.__weh) {\n            const onErrors = app.$vm.$[ON_ERROR];\n            if (onErrors) {\n                const index = onErrors.indexOf(fromArgs.__weh);\n                if (index > -1) {\n                    onErrors.splice(index, 1);\n                }\n            }\n        }\n    },\n};\n\nconst onSocketOpen = {\n    args() {\n        if (wx.__uni_console__) {\n            if (wx.__uni_console_warned__) {\n                return;\n            }\n            wx.__uni_console_warned__ = true;\n            console.warn(`开发模式下小程序日志回显会使用 socket 连接,为了避免冲突,建议使用 SocketTask 的方式去管理 WebSocket 或手动关闭日志回显功能。[详情](https://uniapp.dcloud.net.cn/tutorial/run/mp-log.html)`);\n        }\n    },\n};\nconst onSocketMessage = onSocketOpen;\n\nconst baseApis = {\n    $on,\n    $off,\n    $once,\n    $emit,\n    upx2px,\n    rpx2px: upx2px,\n    interceptors,\n    addInterceptor,\n    removeInterceptor,\n    onCreateVueApp,\n    invokeCreateVueAppHook,\n    getLocale,\n    setLocale,\n    onLocaleChange,\n    getPushClientId,\n    onPushMessage,\n    offPushMessage,\n    invokePushCallback,\n    __f__,\n};\nfunction initUni(api, protocols, platform = wx) {\n    const wrapper = initWrapper(protocols);\n    const UniProxyHandlers = {\n        get(target, key) {\n            if (hasOwn(target, key)) {\n                return target[key];\n            }\n            if (hasOwn(api, key)) {\n                return promisify(key, api[key]);\n            }\n            if (hasOwn(baseApis, key)) {\n                return promisify(key, baseApis[key]);\n            }\n            // event-api\n            // provider-api?\n            return promisify(key, wrapper(key, platform[key]));\n        },\n    };\n    return new Proxy({}, UniProxyHandlers);\n}\n\nfunction initGetProvider(providers) {\n    return function getProvider({ service, success, fail, complete, }) {\n        let res;\n        if (providers[service]) {\n            res = {\n                errMsg: 'getProvider:ok',\n                service,\n                provider: providers[service],\n            };\n            isFunction(success) && success(res);\n        }\n        else {\n            res = {\n                errMsg: 'getProvider:fail:服务[' + service + ']不存在',\n            };\n            isFunction(fail) && fail(res);\n        }\n        isFunction(complete) && complete(res);\n    };\n}\n\nconst objectKeys = [\n    'qy',\n    'env',\n    'error',\n    'version',\n    'lanDebug',\n    'cloud',\n    'serviceMarket',\n    'router',\n    'worklet',\n    '__webpack_require_UNI_MP_PLUGIN__',\n];\nconst singlePageDisableKey = ['lanDebug', 'router', 'worklet'];\nconst launchOption = wx.getLaunchOptionsSync\n    ? wx.getLaunchOptionsSync()\n    : null;\nfunction isWxKey(key) {\n    if (launchOption &&\n        launchOption.scene === 1154 &&\n        singlePageDisableKey.includes(key)) {\n        return false;\n    }\n    return objectKeys.indexOf(key) > -1 || typeof wx[key] === 'function';\n}\nfunction initWx() {\n    const newWx = {};\n    for (const key in wx) {\n        if (isWxKey(key)) {\n            // TODO wrapper function\n            newWx[key] = wx[key];\n        }\n    }\n    if (typeof globalThis !== 'undefined' &&\n        typeof requireMiniProgram === 'undefined') {\n        globalThis.wx = newWx;\n    }\n    return newWx;\n}\n\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\n\nconst getProvider = initGetProvider({\n    oauth: ['weixin'],\n    share: ['weixin'],\n    payment: ['wxpay'],\n    push: ['weixin'],\n});\nfunction initComponentMocks(component) {\n    const res = Object.create(null);\n    mocks.forEach((name) => {\n        res[name] = component[name];\n    });\n    return res;\n}\n/**\n * 微信小程序内部会 Object.keys(vm),导致告警\n * Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.\n * @returns\n */\nfunction createSelectorQuery() {\n    const query = wx$2.createSelectorQuery();\n    const oldIn = query.in;\n    query.in = function newIn(component) {\n        if (component.$scope) {\n            // fix skyline 微信小程序内部无法读取component导致报错\n            return oldIn.call(this, component.$scope);\n        }\n        return oldIn.call(this, initComponentMocks(component));\n    };\n    return query;\n}\nconst wx$2 = initWx();\nif (!wx$2.canIUse('getAppBaseInfo')) {\n    wx$2.getAppBaseInfo = wx$2.getSystemInfoSync;\n}\nif (!wx$2.canIUse('getWindowInfo')) {\n    wx$2.getWindowInfo = wx$2.getSystemInfoSync;\n}\nif (!wx$2.canIUse('getDeviceInfo')) {\n    wx$2.getDeviceInfo = wx$2.getSystemInfoSync;\n}\nlet baseInfo = wx$2.getAppBaseInfo && wx$2.getAppBaseInfo();\nif (!baseInfo) {\n    baseInfo = wx$2.getSystemInfoSync();\n}\nconst host = baseInfo ? baseInfo.host : null;\nconst shareVideoMessage = host && host.env === 'SAAASDK'\n    ? wx$2.miniapp.shareVideoMessage\n    : wx$2.shareVideoMessage;\n\nvar shims = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  createSelectorQuery: createSelectorQuery,\n  getProvider: getProvider,\n  shareVideoMessage: shareVideoMessage\n});\n\nconst compressImage = {\n    args(fromArgs, toArgs) {\n        // https://developers.weixin.qq.com/community/develop/doc/000c08940c865011298e0a43256800?highLine=compressHeight\n        // @ts-expect-error\n        if (fromArgs.compressedHeight && !toArgs.compressHeight) {\n            // @ts-expect-error\n            toArgs.compressHeight = fromArgs.compressedHeight;\n        }\n        // @ts-expect-error\n        if (fromArgs.compressedWidth && !toArgs.compressWidth) {\n            // @ts-expect-error\n            toArgs.compressWidth = fromArgs.compressedWidth;\n        }\n    },\n};\n\nvar protocols = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  compressImage: compressImage,\n  getAppAuthorizeSetting: getAppAuthorizeSetting,\n  getAppBaseInfo: getAppBaseInfo,\n  getDeviceInfo: getDeviceInfo,\n  getSystemInfo: getSystemInfo,\n  getSystemInfoSync: getSystemInfoSync,\n  getWindowInfo: getWindowInfo,\n  offError: offError,\n  onError: onError,\n  onSocketMessage: onSocketMessage,\n  onSocketOpen: onSocketOpen,\n  previewImage: previewImage,\n  redirectTo: redirectTo,\n  showActionSheet: showActionSheet\n});\n\nconst wx$1 = initWx();\nvar index = initUni(shims, protocols, wx$1);\n\nexport { index as default, wx$1 as wx };\n","/// <reference types=\"@dcloudio/uni-app-x/types/uni/global\" />\nfunction initRuntimeSocket(hosts, port, id) {\n    if (hosts == '' || port == '' || id == '')\n        return Promise.resolve(null);\n    return hosts\n        .split(',')\n        .reduce((promise, host) => {\n        return promise.then((socket) => {\n            if (socket != null)\n                return Promise.resolve(socket);\n            return tryConnectSocket(host, port, id);\n        });\n    }, Promise.resolve(null));\n}\nconst SOCKET_TIMEOUT = 500;\nfunction tryConnectSocket(host, port, id) {\n    return new Promise((resolve, reject) => {\n        const socket = uni.connectSocket({\n            url: `ws://${host}:${port}/${id}`,\n            multiple: true, // 支付宝小程序 是否开启多实例\n            fail() {\n                resolve(null);\n            },\n        });\n        const timer = setTimeout(() => {\n            // @ts-expect-error\n            socket.close({\n                code: 1006,\n                reason: 'connect timeout',\n            });\n            resolve(null);\n        }, SOCKET_TIMEOUT);\n        socket.onOpen((e) => {\n            clearTimeout(timer);\n            resolve(socket);\n        });\n        socket.onClose((e) => {\n            clearTimeout(timer);\n            resolve(null);\n        });\n        socket.onError((e) => {\n            clearTimeout(timer);\n            resolve(null);\n        });\n    });\n}\n\nfunction formatMessage(type, args) {\n    try {\n        return {\n            type,\n            args: formatArgs(args),\n        };\n    }\n    catch (e) {\n        // originalConsole.error(e)\n    }\n    return {\n        type,\n        args: [],\n    };\n}\nfunction formatArgs(args) {\n    return args.map((arg) => formatArg(arg));\n}\nfunction formatArg(arg, depth = 0) {\n    if (depth >= 7) {\n        return {\n            type: 'object',\n            value: '[Maximum depth reached]',\n        };\n    }\n    const type = typeof arg;\n    switch (type) {\n        case 'string':\n            return formatString(arg);\n        case 'number':\n            return formatNumber(arg);\n        case 'boolean':\n            return formatBoolean(arg);\n        case 'object':\n            return formatObject(arg, depth);\n        case 'undefined':\n            return formatUndefined();\n        case 'function':\n            return formatFunction(arg);\n        case 'symbol':\n            {\n                return formatSymbol(arg);\n            }\n        case 'bigint':\n            return formatBigInt(arg);\n    }\n}\nfunction formatFunction(value) {\n    return {\n        type: 'function',\n        value: `function ${value.name}() {}`,\n    };\n}\nfunction formatUndefined() {\n    return {\n        type: 'undefined',\n    };\n}\nfunction formatBoolean(value) {\n    return {\n        type: 'boolean',\n        value: String(value),\n    };\n}\nfunction formatNumber(value) {\n    return {\n        type: 'number',\n        value: String(value),\n    };\n}\nfunction formatBigInt(value) {\n    return {\n        type: 'bigint',\n        value: String(value),\n    };\n}\nfunction formatString(value) {\n    return {\n        type: 'string',\n        value,\n    };\n}\nfunction formatSymbol(value) {\n    return {\n        type: 'symbol',\n        value: value.description,\n    };\n}\nfunction formatObject(value, depth) {\n    if (value === null) {\n        return {\n            type: 'null',\n        };\n    }\n    {\n        if (isComponentPublicInstance(value)) {\n            return formatComponentPublicInstance(value, depth);\n        }\n        if (isComponentInternalInstance(value)) {\n            return formatComponentInternalInstance(value, depth);\n        }\n        if (isUniElement(value)) {\n            return formatUniElement(value, depth);\n        }\n        if (isCSSStyleDeclaration(value)) {\n            return formatCSSStyleDeclaration(value, depth);\n        }\n    }\n    if (Array.isArray(value)) {\n        return {\n            type: 'object',\n            subType: 'array',\n            value: {\n                properties: value.map((v, i) => formatArrayElement(v, i, depth + 1)),\n            },\n        };\n    }\n    if (value instanceof Set) {\n        return {\n            type: 'object',\n            subType: 'set',\n            className: 'Set',\n            description: `Set(${value.size})`,\n            value: {\n                entries: Array.from(value).map((v) => formatSetEntry(v, depth + 1)),\n            },\n        };\n    }\n    if (value instanceof Map) {\n        return {\n            type: 'object',\n            subType: 'map',\n            className: 'Map',\n            description: `Map(${value.size})`,\n            value: {\n                entries: Array.from(value.entries()).map((v) => formatMapEntry(v, depth + 1)),\n            },\n        };\n    }\n    if (value instanceof Promise) {\n        return {\n            type: 'object',\n            subType: 'promise',\n            value: {\n                properties: [],\n            },\n        };\n    }\n    if (value instanceof RegExp) {\n        return {\n            type: 'object',\n            subType: 'regexp',\n            value: String(value),\n            className: 'Regexp',\n        };\n    }\n    if (value instanceof Date) {\n        return {\n            type: 'object',\n            subType: 'date',\n            value: String(value),\n            className: 'Date',\n        };\n    }\n    if (value instanceof Error) {\n        return {\n            type: 'object',\n            subType: 'error',\n            value: value.message || String(value),\n            className: value.name || 'Error',\n        };\n    }\n    let className = undefined;\n    {\n        const constructor = value.constructor;\n        if (constructor) {\n            // @ts-expect-error\n            if (constructor.get$UTSMetadata$) {\n                // @ts-expect-error\n                className = constructor.get$UTSMetadata$().name;\n            }\n        }\n    }\n    return {\n        type: 'object',\n        className,\n        value: {\n            properties: Object.entries(value).map((entry) => formatObjectProperty(entry[0], entry[1], depth + 1)),\n        },\n    };\n}\nfunction isComponentPublicInstance(value) {\n    return value.$ && isComponentInternalInstance(value.$);\n}\nfunction isComponentInternalInstance(value) {\n    return value.type && value.uid != null && value.appContext;\n}\nfunction formatComponentPublicInstance(value, depth) {\n    return {\n        type: 'object',\n        className: 'ComponentPublicInstance',\n        value: {\n            properties: Object.entries(value.$.type).map(([name, value]) => formatObjectProperty(name, value, depth + 1)),\n        },\n    };\n}\nfunction formatComponentInternalInstance(value, depth) {\n    return {\n        type: 'object',\n        className: 'ComponentInternalInstance',\n        value: {\n            properties: Object.entries(value.type).map(([name, value]) => formatObjectProperty(name, value, depth + 1)),\n        },\n    };\n}\nfunction isUniElement(value) {\n    return value.style && value.tagName != null && value.nodeName != null;\n}\nfunction formatUniElement(value, depth) {\n    return {\n        type: 'object',\n        // 非 x 没有 UniElement 的概念\n        // className: 'UniElement',\n        value: {\n            properties: Object.entries(value)\n                .filter(([name]) => [\n                'id',\n                'tagName',\n                'nodeName',\n                'dataset',\n                'offsetTop',\n                'offsetLeft',\n                'style',\n            ].includes(name))\n                .map(([name, value]) => formatObjectProperty(name, value, depth + 1)),\n        },\n    };\n}\nfunction isCSSStyleDeclaration(value) {\n    return (typeof value.getPropertyValue === 'function' &&\n        typeof value.setProperty === 'function' &&\n        value.$styles);\n}\nfunction formatCSSStyleDeclaration(style, depth) {\n    return {\n        type: 'object',\n        value: {\n            properties: Object.entries(style.$styles).map(([name, value]) => formatObjectProperty(name, value, depth + 1)),\n        },\n    };\n}\nfunction formatObjectProperty(name, value, depth) {\n    const result = formatArg(value, depth);\n    result.name = name;\n    return result;\n}\nfunction formatArrayElement(value, index, depth) {\n    const result = formatArg(value, depth);\n    result.name = `${index}`;\n    return result;\n}\nfunction formatSetEntry(value, depth) {\n    return {\n        value: formatArg(value, depth),\n    };\n}\nfunction formatMapEntry(value, depth) {\n    return {\n        key: formatArg(value[0], depth),\n        value: formatArg(value[1], depth),\n    };\n}\n\nconst CONSOLE_TYPES = ['log', 'warn', 'error', 'info', 'debug'];\nlet sendConsole = null;\nconst messageQueue = [];\nconst messageExtra = {};\nfunction sendConsoleMessages(messages) {\n    if (sendConsole == null) {\n        messageQueue.push(...messages);\n        return;\n    }\n    sendConsole(JSON.stringify(Object.assign({\n        type: 'console',\n        data: messages,\n    }, messageExtra)));\n}\nfunction setSendConsole(value, extra = {}) {\n    sendConsole = value;\n    Object.assign(messageExtra, extra);\n    if (value != null && messageQueue.length > 0) {\n        const messages = messageQueue.slice();\n        messageQueue.length = 0;\n        sendConsoleMessages(messages);\n    }\n}\nconst originalConsole = /*@__PURE__*/ CONSOLE_TYPES.reduce((methods, type) => {\n    methods[type] = console[type].bind(console);\n    return methods;\n}, {});\nconst atFileRegex = /^\\s*at\\s+[\\w/./-]+:\\d+$/;\nfunction rewriteConsole() {\n    function wrapConsole(type) {\n        return function (...args) {\n            const originalArgs = [...args];\n            if (originalArgs.length) {\n                const maybeAtFile = originalArgs[originalArgs.length - 1];\n                // 移除最后的 at pages/index/index.uvue:6\n                if (typeof maybeAtFile === 'string' && atFileRegex.test(maybeAtFile)) {\n                    originalArgs.pop();\n                }\n            }\n            if (process.env.UNI_CONSOLE_KEEP_ORIGINAL) {\n                originalConsole[type](...originalArgs);\n            }\n            sendConsoleMessages([formatMessage(type, args)]);\n        };\n    }\n    // 百度小程序不允许赋值,所以需要判断是否可写\n    if (isConsoleWritable()) {\n        CONSOLE_TYPES.forEach((type) => {\n            console[type] = wrapConsole(type);\n        });\n        return function restoreConsole() {\n            CONSOLE_TYPES.forEach((type) => {\n                console[type] = originalConsole[type];\n            });\n        };\n    }\n    else {\n        {\n            if (typeof uni !== 'undefined' && uni.__f__) {\n                const oldLog = uni.__f__;\n                if (oldLog) {\n                    // 重写 uni.__f__ 方法,这样的话,仅能打印开发者代码里的日志,其他没有被重写为__f__的日志将无法打印(比如uni-app框架、小程序框架等)\n                    uni.__f__ = function (...args) {\n                        const [type, filename, ...rest] = args;\n                        // 原始日志移除 filename\n                        oldLog(type, '', ...rest);\n                        sendConsoleMessages([formatMessage(type, [...rest, filename])]);\n                    };\n                    return function restoreConsole() {\n                        uni.__f__ = oldLog;\n                    };\n                }\n            }\n        }\n    }\n    return function restoreConsole() { };\n}\nfunction isConsoleWritable() {\n    const value = console.log;\n    const sym = Symbol();\n    try {\n        // @ts-expect-error\n        console.log = sym;\n    }\n    catch (ex) {\n        return false;\n    }\n    // @ts-expect-error\n    const isWritable = console.log === sym;\n    console.log = value;\n    return isWritable;\n}\n\nlet sendError = null;\n// App.onError会监听到两类错误,一类是小程序自身抛出的,一类是 vue 的 errorHandler 触发的\n// uni.onError 和 App.onError 会同时监听到错误(主要是App.onError监听之前的错误),所以需要用 Set 来去重\n// uni.onError 会在 App.onError 上边同时增加监听,因为要监听 vue 的errorHandler\n// 目前 vue 的 errorHandler 仅会callHook('onError'),所以需要把uni.onError的也挂在 App.onError 上\nconst errorQueue = new Set();\nconst errorExtra = {};\nfunction sendErrorMessages(errors) {\n    if (sendError == null) {\n        errors.forEach((error) => {\n            errorQueue.add(error);\n        });\n        return;\n    }\n    const data = errors\n        .map((err) => {\n        const isPromiseRejection = err && 'promise' in err && 'reason' in err;\n        const prefix = isPromiseRejection ? 'UnhandledPromiseRejection: ' : '';\n        if (isPromiseRejection) {\n            err = err.reason;\n        }\n        if (err instanceof Error && err.stack) {\n            if (err.message && !err.stack.includes(err.message)) {\n                return `${prefix}${err.message}\n${err.stack}`;\n            }\n            return `${prefix}${err.stack}`;\n        }\n        if (typeof err === 'object' && err !== null) {\n            try {\n                return prefix + JSON.stringify(err);\n            }\n            catch (err) {\n                return prefix + String(err);\n            }\n        }\n        return prefix + String(err);\n    })\n        .filter(Boolean);\n    if (data.length > 0) {\n        sendError(JSON.stringify(Object.assign({\n            type: 'error',\n            data,\n        }, errorExtra)));\n    }\n}\nfunction setSendError(value, extra = {}) {\n    sendError = value;\n    Object.assign(errorExtra, extra);\n    if (value != null && errorQueue.size > 0) {\n        const errors = Array.from(errorQueue);\n        errorQueue.clear();\n        sendErrorMessages(errors);\n    }\n}\nfunction initOnError() {\n    function onError(error) {\n        try {\n            // 小红书小程序 socket.send 时,会报错,onError错误信息为:\n            // Cannot create property 'errMsg' on string 'taskId'\n            // 导致陷入死循环\n            if (typeof PromiseRejectionEvent !== 'undefined' &&\n                error instanceof PromiseRejectionEvent &&\n                error.reason instanceof Error &&\n                error.reason.message &&\n                error.reason.message.includes(`Cannot create property 'errMsg' on string 'taskId`)) {\n                return;\n            }\n            if (process.env.UNI_CONSOLE_KEEP_ORIGINAL) {\n                originalConsole.error(error);\n            }\n            sendErrorMessages([error]);\n        }\n        catch (err) {\n            originalConsole.error(err);\n        }\n    }\n    if (typeof uni.onError === 'function') {\n        uni.onError(onError);\n    }\n    if (typeof uni.onUnhandledRejection === 'function') {\n        uni.onUnhandledRejection(onError);\n    }\n    return function offError() {\n        if (typeof uni.offError === 'function') {\n            uni.offError(onError);\n        }\n        if (typeof uni.offUnhandledRejection === 'function') {\n            uni.offUnhandledRejection(onError);\n        }\n    };\n}\n\nfunction initRuntimeSocketService() {\n    const hosts = process.env.UNI_SOCKET_HOSTS;\n    const port = process.env.UNI_SOCKET_PORT;\n    const id = process.env.UNI_SOCKET_ID;\n    if (!hosts || !port || !id)\n        return Promise.resolve(false);\n    // 百度小程序需要延迟初始化,不然会存在循环引用问题vendor.js\n    const lazy = typeof swan !== 'undefined';\n    // 重写需要同步,避免丢失早期日志信息\n    let restoreError = lazy ? () => { } : initOnError();\n    let restoreConsole = lazy ? () => { } : rewriteConsole();\n    // 百度小程序需要异步初始化,不然调用 uni.connectSocket 会循环引入vendor.js\n    return Promise.resolve().then(() => {\n        if (lazy) {\n            restoreError = initOnError();\n            restoreConsole = rewriteConsole();\n        }\n        return initRuntimeSocket(hosts, port, id).then((socket) => {\n            if (!socket) {\n                restoreError();\n                restoreConsole();\n                originalConsole.error(wrapError('开发模式下日志通道建立 socket 连接失败。'));\n                originalConsole.error(wrapError('如果是小程序平台,请勾选不校验合法域名配置。'));\n                originalConsole.error(wrapError('如果是运行到真机,请确认手机与电脑处于同一网络。'));\n                return false;\n            }\n            initMiniProgramGlobalFlag();\n            socket.onClose(() => {\n                if (process.env.UNI_DEBUG) {\n                    originalConsole.log(`uni-app:[${Date.now()}][socket]`, 'connect close and restore');\n                }\n                originalConsole.error(wrapError('开发模式下日志通道 socket 连接关闭,请在 HBuilderX 中重新运行。'));\n                restoreError();\n                restoreConsole();\n            });\n            setSendConsole((data) => {\n                if (process.env.UNI_DEBUG) {\n                    originalConsole.log(`uni-app:[${Date.now()}][console]`, data);\n                }\n                socket.send({\n                    data,\n                });\n            });\n            setSendError((data) => {\n                if (process.env.UNI_DEBUG) {\n                    originalConsole.log(`uni-app:[${Date.now()}][error]`, data);\n                }\n                socket.send({\n                    data,\n                });\n            });\n            return true;\n        });\n    });\n}\nconst ERROR_CHAR = '\\u200C';\nfunction wrapError(error) {\n    return `${ERROR_CHAR}${error}${ERROR_CHAR}`;\n}\nfunction initMiniProgramGlobalFlag() {\n    if (typeof wx !== 'undefined') {\n        // @ts-expect-error\n        wx.__uni_console__ = true;\n        // @ts-expect-error\n    }\n    else if (typeof my !== 'undefined') {\n        // @ts-expect-error\n        my.__uni_console__ = true;\n    }\n    else if (typeof tt !== 'undefined') {\n        tt.__uni_console__ = true;\n    }\n    else if (typeof swan !== 'undefined') {\n        swan.__uni_console__ = true;\n    }\n    else if (typeof qq !== 'undefined') {\n        qq.__uni_console__ = true;\n    }\n    else if (typeof ks !== 'undefined') {\n        ks.__uni_console__ = true;\n    }\n    else if (typeof jd !== 'undefined') {\n        jd.__uni_console__ = true;\n    }\n    else if (typeof xhs !== 'undefined') {\n        xhs.__uni_console__ = true;\n    }\n    else if (typeof has !== 'undefined') {\n        has.__uni_console__ = true;\n    }\n    else if (typeof qa !== 'undefined') {\n        qa.__uni_console__ = true;\n    }\n}\ninitRuntimeSocketService();\n\nexport { initRuntimeSocketService };\n","import { VIRTUAL_HOST_ID, SLOT_DEFAULT_NAME, invokeArrayFns, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, ON_LOAD, ON_SHOW, ON_HIDE, ON_UNLOAD, ON_RESIZE, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_ADD_TO_FAVORITES, isUniLifecycleHook, ON_READY, once, ON_LAUNCH, ON_ERROR, ON_THEME_CHANGE, ON_PAGE_NOT_FOUND, ON_UNHANDLE_REJECTION, VIRTUAL_HOST_STYLE, VIRTUAL_HOST_CLASS, VIRTUAL_HOST_HIDDEN, addLeadingSlash, stringifyQuery, customizeEvent } from '@dcloudio/uni-shared';\nimport { hasOwn, isArray, isFunction, extend, isPlainObject, isObject } from '@vue/shared';\nimport { injectHook, ref, findComponentPropsData, toRaw, updateProps, hasQueueJob, invalidateJob, devtoolsComponentAdded, getExposeProxy, pruneComponentPropsCache } from 'vue';\nimport { LOCALE_EN, normalizeLocale } from '@dcloudio/uni-i18n';\n\nfunction initVueIds(vueIds, mpInstance) {\n    if (!vueIds) {\n        return;\n    }\n    const ids = vueIds.split(',');\n    const len = ids.length;\n    if (len === 1) {\n        mpInstance._$vueId = ids[0];\n    }\n    else if (len === 2) {\n        mpInstance._$vueId = ids[0];\n        mpInstance._$vuePid = ids[1];\n    }\n}\nconst EXTRAS = ['externalClasses'];\nfunction initExtraOptions(miniProgramComponentOptions, vueOptions) {\n    EXTRAS.forEach((name) => {\n        if (hasOwn(vueOptions, name)) {\n            miniProgramComponentOptions[name] = vueOptions[name];\n        }\n    });\n}\nconst WORKLET_RE = /_(.*)_worklet_factory_/;\nfunction initWorkletMethods(mpMethods, vueMethods) {\n    if (vueMethods) {\n        Object.keys(vueMethods).forEach((name) => {\n            const matches = name.match(WORKLET_RE);\n            if (matches) {\n                const workletName = matches[1];\n                mpMethods[name] = vueMethods[name];\n                mpMethods[workletName] = vueMethods[workletName];\n            }\n        });\n    }\n}\nfunction initWxsCallMethods(methods, wxsCallMethods) {\n    if (!isArray(wxsCallMethods)) {\n        return;\n    }\n    wxsCallMethods.forEach((callMethod) => {\n        methods[callMethod] = function (args) {\n            return this.$vm[callMethod](args);\n        };\n    });\n}\nfunction selectAllComponents(mpInstance, selector, $refs) {\n    const components = mpInstance.selectAllComponents(selector);\n    components.forEach((component) => {\n        const ref = component.properties.uR;\n        $refs[ref] = component.$vm || component;\n    });\n}\nfunction initRefs(instance, mpInstance) {\n    Object.defineProperty(instance, 'refs', {\n        get() {\n            const $refs = {};\n            selectAllComponents(mpInstance, '.r', $refs);\n            const forComponents = mpInstance.selectAllComponents('.r-i-f');\n            forComponents.forEach((component) => {\n                const ref = component.properties.uR;\n                if (!ref) {\n                    return;\n                }\n                if (!$refs[ref]) {\n                    $refs[ref] = [];\n                }\n                $refs[ref].push(component.$vm || component);\n            });\n            return $refs;\n        },\n    });\n}\nfunction findVmByVueId(instance, vuePid) {\n    // 标准 vue3 中 没有 $children,定制了内核\n    const $children = instance.$children;\n    // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\n    for (let i = $children.length - 1; i >= 0; i--) {\n        const childVm = $children[i];\n        if (childVm.$scope._$vueId === vuePid) {\n            return childVm;\n        }\n    }\n    // 反向递归查找\n    let parentVm;\n    for (let i = $children.length - 1; i >= 0; i--) {\n        parentVm = findVmByVueId($children[i], vuePid);\n        if (parentVm) {\n            return parentVm;\n        }\n    }\n}\nfunction getLocaleLanguage() {\n    let localeLanguage = '';\n    {\n        const appBaseInfo = wx.getAppBaseInfo();\n        const language = appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN;\n        localeLanguage = normalizeLocale(language) || LOCALE_EN;\n    }\n    return localeLanguage;\n}\n\nconst MP_METHODS = [\n    'createSelectorQuery',\n    'createIntersectionObserver',\n    'selectAllComponents',\n    'selectComponent',\n];\nfunction createEmitFn(oldEmit, ctx) {\n    return function emit(event, ...args) {\n        const scope = ctx.$scope;\n        if (scope && event) {\n            const detail = { __args__: args };\n            {\n                scope.triggerEvent(event, detail);\n            }\n        }\n        return oldEmit.apply(this, [event, ...args]);\n    };\n}\nfunction initBaseInstance(instance, options) {\n    const ctx = instance.ctx;\n    // mp\n    ctx.mpType = options.mpType; // @deprecated\n    ctx.$mpType = options.mpType;\n    ctx.$mpPlatform = \"mp-weixin\";\n    ctx.$scope = options.mpInstance;\n    {\n        // mergeVirtualHostAttributes\n        Object.defineProperties(ctx, {\n            // only id\n            [VIRTUAL_HOST_ID]: {\n                get() {\n                    const id = this.$scope.data[VIRTUAL_HOST_ID];\n                    // props in page can be undefined\n                    return id === undefined ? '' : id;\n                },\n            },\n        });\n    }\n    // TODO @deprecated\n    ctx.$mp = {};\n    if (__VUE_OPTIONS_API__) {\n        ctx._self = {};\n    }\n    // slots\n    instance.slots = {};\n    if (isArray(options.slots) && options.slots.length) {\n        options.slots.forEach((name) => {\n            instance.slots[name] = true;\n        });\n        if (instance.slots[SLOT_DEFAULT_NAME]) {\n            instance.slots.default = true;\n        }\n    }\n    ctx.getOpenerEventChannel = function () {\n        // 微信小程序使用自身getOpenerEventChannel\n        {\n            return options.mpInstance.getOpenerEventChannel();\n        }\n    };\n    ctx.$hasHook = hasHook;\n    ctx.$callHook = callHook;\n    // $emit\n    instance.emit = createEmitFn(instance.emit, ctx);\n}\nfunction initComponentInstance(instance, options) {\n    initBaseInstance(instance, options);\n    const ctx = instance.ctx;\n    MP_METHODS.forEach((method) => {\n        ctx[method] = function (...args) {\n            const mpInstance = ctx.$scope;\n            if (mpInstance && mpInstance[method]) {\n                return mpInstance[method].apply(mpInstance, args);\n            }\n        };\n    });\n}\nfunction initMocks(instance, mpInstance, mocks) {\n    const ctx = instance.ctx;\n    mocks.forEach((mock) => {\n        if (hasOwn(mpInstance, mock)) {\n            instance[mock] = ctx[mock] = mpInstance[mock];\n        }\n    });\n}\nfunction hasHook(name) {\n    const hooks = this.$[name];\n    if (hooks && hooks.length) {\n        return true;\n    }\n    return false;\n}\nfunction callHook(name, args) {\n    if (name === 'mounted') {\n        callHook.call(this, 'bm'); // beforeMount\n        this.$.isMounted = true;\n        name = 'm';\n    }\n    const hooks = this.$[name];\n    return hooks && invokeArrayFns(hooks, args);\n}\n\nconst PAGE_INIT_HOOKS = [\n    ON_LOAD,\n    ON_SHOW,\n    ON_HIDE,\n    ON_UNLOAD,\n    ON_RESIZE,\n    ON_TAB_ITEM_TAP,\n    ON_REACH_BOTTOM,\n    ON_PULL_DOWN_REFRESH,\n    ON_ADD_TO_FAVORITES,\n    // 'onReady', // lifetimes.ready\n    // 'onPageScroll', // 影响性能,开发者手动注册\n    // 'onShareTimeline', // 右上角菜单,开发者手动注册\n    // 'onShareAppMessage' // 右上角菜单,开发者手动注册\n];\nfunction findHooks(vueOptions, hooks = new Set()) {\n    if (vueOptions) {\n        Object.keys(vueOptions).forEach((name) => {\n            if (isUniLifecycleHook(name, vueOptions[name])) {\n                hooks.add(name);\n            }\n        });\n        if (__VUE_OPTIONS_API__) {\n            const { extends: extendsOptions, mixins } = vueOptions;\n            if (mixins) {\n                mixins.forEach((mixin) => findHooks(mixin, hooks));\n            }\n            if (extendsOptions) {\n                findHooks(extendsOptions, hooks);\n            }\n        }\n    }\n    return hooks;\n}\nfunction initHook(mpOptions, hook, excludes) {\n    if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {\n        mpOptions[hook] = function (args) {\n            return this.$vm && this.$vm.$callHook(hook, args);\n        };\n    }\n}\nconst EXCLUDE_HOOKS = [ON_READY];\nfunction initHooks(mpOptions, hooks, excludes = EXCLUDE_HOOKS) {\n    hooks.forEach((hook) => initHook(mpOptions, hook, excludes));\n}\nfunction initUnknownHooks(mpOptions, vueOptions, excludes = EXCLUDE_HOOKS) {\n    findHooks(vueOptions).forEach((hook) => initHook(mpOptions, hook, excludes));\n}\nfunction initRuntimeHooks(mpOptions, runtimeHooks) {\n    if (!runtimeHooks) {\n        return;\n    }\n    const hooks = Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS);\n    hooks.forEach((hook) => {\n        if (runtimeHooks & MINI_PROGRAM_PAGE_RUNTIME_HOOKS[hook]) {\n            initHook(mpOptions, hook, []);\n        }\n    });\n}\nconst findMixinRuntimeHooks = /*#__PURE__*/ once(() => {\n    const runtimeHooks = [];\n    const app = isFunction(getApp) && getApp({ allowDefault: true });\n    if (app && app.$vm && app.$vm.$) {\n        const mixins = app.$vm.$.appContext.mixins;\n        if (isArray(mixins)) {\n            const hooks = Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS);\n            mixins.forEach((mixin) => {\n                hooks.forEach((hook) => {\n                    if (hasOwn(mixin, hook) && !runtimeHooks.includes(hook)) {\n                        runtimeHooks.push(hook);\n                    }\n                });\n            });\n        }\n    }\n    return runtimeHooks;\n});\nfunction initMixinRuntimeHooks(mpOptions) {\n    initHooks(mpOptions, findMixinRuntimeHooks());\n}\n\nconst HOOKS = [\n    ON_SHOW,\n    ON_HIDE,\n    ON_ERROR,\n    ON_THEME_CHANGE,\n    ON_PAGE_NOT_FOUND,\n    ON_UNHANDLE_REJECTION,\n];\nfunction parseApp(instance, parseAppOptions) {\n    const internalInstance = instance.$;\n    if (__VUE_PROD_DEVTOOLS__) {\n        // 定制 App 的 $children\n        Object.defineProperty(internalInstance.ctx, '$children', {\n            get() {\n                return getCurrentPages().map((page) => page.$vm);\n            },\n        });\n    }\n    const appOptions = {\n        globalData: (instance.$options && instance.$options.globalData) || {},\n        $vm: instance, // mp-alipay 组件 data 初始化比 onLaunch 早,提前挂载\n        onLaunch(options) {\n            this.$vm = instance; // 飞书小程序可能会把 AppOptions 序列化,导致 $vm 对象部分属性丢失\n            const ctx = internalInstance.ctx;\n            if (this.$vm && ctx.$scope && ctx.$callHook) {\n                // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\n                // $scope值在微信小程序混合分包情况下存在,额外用$callHook兼容判断处理\n                return;\n            }\n            initBaseInstance(internalInstance, {\n                mpType: 'app',\n                mpInstance: this,\n                slots: [],\n            });\n            ctx.globalData = this.globalData;\n            instance.$callHook(ON_LAUNCH, options);\n        },\n    };\n    const onErrorHandlers = wx.$onErrorHandlers;\n    if (onErrorHandlers) {\n        onErrorHandlers.forEach((fn) => {\n            injectHook(ON_ERROR, fn, internalInstance);\n        });\n        onErrorHandlers.length = 0;\n    }\n    initLocale(instance);\n    const vueOptions = instance.$.type;\n    initHooks(appOptions, HOOKS);\n    initUnknownHooks(appOptions, vueOptions);\n    if (__VUE_OPTIONS_API__) {\n        const methods = vueOptions.methods;\n        methods && extend(appOptions, methods);\n    }\n    return appOptions;\n}\nfunction initCreateApp(parseAppOptions) {\n    return function createApp(vm) {\n        return App(parseApp(vm));\n    };\n}\nfunction initCreateSubpackageApp(parseAppOptions) {\n    return function createApp(vm) {\n        const appOptions = parseApp(vm);\n        const app = isFunction(getApp) &&\n            getApp({\n                allowDefault: true,\n            });\n        if (!app)\n            return;\n        vm.$.ctx.$scope = app;\n        const globalData = app.globalData;\n        if (globalData) {\n            Object.keys(appOptions.globalData).forEach((name) => {\n                if (!hasOwn(globalData, name)) {\n                    globalData[name] = appOptions.globalData[name];\n                }\n            });\n        }\n        Object.keys(appOptions).forEach((name) => {\n            if (!hasOwn(app, name)) {\n                app[name] = appOptions[name];\n            }\n        });\n        initAppLifecycle(appOptions, vm);\n        if (process.env.UNI_SUBPACKAGE) {\n            (wx.$subpackages || (wx.$subpackages = {}))[process.env.UNI_SUBPACKAGE] = {\n                $vm: vm,\n            };\n        }\n    };\n}\nfunction initAppLifecycle(appOptions, vm) {\n    if (isFunction(appOptions.onLaunch)) {\n        const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\n        appOptions.onLaunch(args);\n    }\n    if (isFunction(appOptions.onShow) && wx.onAppShow) {\n        wx.onAppShow((args) => {\n            vm.$callHook('onShow', args);\n        });\n    }\n    if (isFunction(appOptions.onHide) && wx.onAppHide) {\n        wx.onAppHide((args) => {\n            vm.$callHook('onHide', args);\n        });\n    }\n}\nfunction initLocale(appVm) {\n    const locale = ref(getLocaleLanguage());\n    Object.defineProperty(appVm, '$locale', {\n        get() {\n            return locale.value;\n        },\n        set(v) {\n            locale.value = v;\n        },\n    });\n}\n\nconst builtInProps = [\n    // 百度小程序,快手小程序自定义组件不支持绑定动态事件,动态dataset,故通过props传递事件信息\n    // event-opts\n    'eO',\n    // 组件 ref\n    'uR',\n    // 组件 ref-in-for\n    'uRIF',\n    // 组件 id\n    'uI',\n    // 组件类型 m: 小程序组件\n    'uT',\n    // 组件 props\n    'uP',\n    // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\n    'uS',\n];\nfunction initDefaultProps(options, isBehavior = false) {\n    const properties = {};\n    if (!isBehavior) {\n        // 均不指定类型,避免微信小程序 property received type-uncompatible value 警告\n        builtInProps.forEach((name) => {\n            properties[name] = {\n                type: null,\n                value: '',\n            };\n        });\n        // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\n        function observerSlots(newVal) {\n            const $slots = Object.create(null);\n            newVal &&\n                newVal.forEach((slotName) => {\n                    $slots[slotName] = true;\n                });\n            this.setData({\n                $slots,\n            });\n        }\n        properties.uS = {\n            type: null,\n            value: [],\n        };\n        {\n            properties.uS.observer = observerSlots;\n        }\n    }\n    if (options.behaviors) {\n        // wx://form-field\n        if (options.behaviors.includes('wx' + '://form-field')) {\n            if (!options.properties || !options.properties.name) {\n                properties.name = {\n                    type: null,\n                    value: '',\n                };\n            }\n            if (!options.properties || !options.properties.value) {\n                properties.value = {\n                    type: null,\n                    value: '',\n                };\n            }\n        }\n    }\n    return properties;\n}\nfunction initVirtualHostProps(options) {\n    const properties = {};\n    {\n        if ((options && options.virtualHost)) {\n            properties[VIRTUAL_HOST_STYLE] = {\n                type: null,\n                value: '',\n            };\n            properties[VIRTUAL_HOST_CLASS] = {\n                type: null,\n                value: '',\n            };\n            properties[VIRTUAL_HOST_HIDDEN] = {\n                type: null,\n                value: '',\n            };\n            properties[VIRTUAL_HOST_ID] = {\n                type: null,\n                value: '',\n            };\n        }\n    }\n    return properties;\n}\n/**\n *\n * @param mpComponentOptions\n * @param isBehavior\n */\nfunction initProps(mpComponentOptions) {\n    if (!mpComponentOptions.properties) {\n        mpComponentOptions.properties = {};\n    }\n    extend(mpComponentOptions.properties, initDefaultProps(mpComponentOptions), initVirtualHostProps(mpComponentOptions.options));\n}\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\nfunction parsePropType(type, defaultValue) {\n    // [String]=>String\n    if (isArray(type) && type.length === 1) {\n        return type[0];\n    }\n    return type;\n}\nfunction normalizePropType(type, defaultValue) {\n    const res = parsePropType(type);\n    return PROP_TYPES.indexOf(res) !== -1 ? res : null;\n}\n/**\n * 初始化页面 props,方便接收页面参数,类型均为String,默认值均为''\n * @param param\n * @param rawProps\n */\nfunction initPageProps({ properties }, rawProps) {\n    if (isArray(rawProps)) {\n        rawProps.forEach((key) => {\n            properties[key] = {\n                type: String,\n                value: '',\n            };\n        });\n    }\n    else if (isPlainObject(rawProps)) {\n        Object.keys(rawProps).forEach((key) => {\n            const opts = rawProps[key];\n            if (isPlainObject(opts)) {\n                // title:{type:String,default:''}\n                let value = opts.default;\n                if (isFunction(value)) {\n                    value = value();\n                }\n                const type = opts.type;\n                opts.type = normalizePropType(type);\n                properties[key] = {\n                    type: opts.type,\n                    value,\n                };\n            }\n            else {\n                // content:String\n                properties[key] = {\n                    type: normalizePropType(opts),\n                };\n            }\n        });\n    }\n}\nfunction findPropsData(properties, isPage) {\n    return ((isPage\n        ? findPagePropsData(properties)\n        : findComponentPropsData(resolvePropValue(properties.uP))) || {});\n}\nfunction findPagePropsData(properties) {\n    const propsData = {};\n    if (isPlainObject(properties)) {\n        Object.keys(properties).forEach((name) => {\n            if (builtInProps.indexOf(name) === -1) {\n                propsData[name] = resolvePropValue(properties[name]);\n            }\n        });\n    }\n    return propsData;\n}\nfunction initFormField(vm) {\n    // 同步 form-field 的 name,value 值\n    const vueOptions = vm.$options;\n    if (isArray(vueOptions.behaviors) &&\n        vueOptions.behaviors.includes('uni://form-field')) {\n        vm.$watch('modelValue', () => {\n            vm.$scope &&\n                vm.$scope.setData({\n                    name: vm.name,\n                    value: vm.modelValue,\n                });\n        }, {\n            immediate: true,\n        });\n    }\n}\nfunction resolvePropValue(prop) {\n    return prop;\n}\n\nfunction initData(_) {\n    return {};\n}\nfunction initPropsObserver(componentOptions) {\n    const observe = function observe() {\n        const up = this.properties.uP;\n        if (!up) {\n            return;\n        }\n        if (this.$vm) {\n            updateComponentProps(resolvePropValue(up), this.$vm.$);\n        }\n        else if (resolvePropValue(this.properties.uT) === 'm') {\n            // 小程序组件\n            updateMiniProgramComponentProperties(resolvePropValue(up), this);\n        }\n    };\n    {\n        if (!componentOptions.observers) {\n            componentOptions.observers = {};\n        }\n        componentOptions.observers.uP = observe;\n    }\n}\nfunction updateMiniProgramComponentProperties(up, mpInstance) {\n    const prevProps = mpInstance.properties;\n    const nextProps = findComponentPropsData(up) || {};\n    if (hasPropsChanged(prevProps, nextProps, false)) {\n        mpInstance.setData(nextProps);\n    }\n}\nfunction updateComponentProps(up, instance) {\n    const prevProps = toRaw(instance.props);\n    const nextProps = findComponentPropsData(up) || {};\n    if (hasPropsChanged(prevProps, nextProps)) {\n        updateProps(instance, nextProps, prevProps, false);\n        if (hasQueueJob(instance.update)) {\n            invalidateJob(instance.update);\n        }\n        {\n            instance.update();\n        }\n    }\n}\nfunction hasPropsChanged(prevProps, nextProps, checkLen = true) {\n    const nextKeys = Object.keys(nextProps);\n    if (checkLen && nextKeys.length !== Object.keys(prevProps).length) {\n        return true;\n    }\n    for (let i = 0; i < nextKeys.length; i++) {\n        const key = nextKeys[i];\n        if (nextProps[key] !== prevProps[key]) {\n            return true;\n        }\n    }\n    return false;\n}\nfunction initBehaviors(vueOptions) {\n    const vueBehaviors = vueOptions.behaviors;\n    let vueProps = vueOptions.props;\n    if (!vueProps) {\n        vueOptions.props = vueProps = [];\n    }\n    const behaviors = [];\n    if (isArray(vueBehaviors)) {\n        vueBehaviors.forEach((behavior) => {\n            // 这里的 global 应该是个变量\n            behaviors.push(behavior.replace('uni://', 'wx' + '://'));\n            if (behavior === 'uni://form-field') {\n                if (isArray(vueProps)) {\n                    vueProps.push('name');\n                    vueProps.push('modelValue');\n                }\n                else {\n                    vueProps.name = {\n                        type: String,\n                        default: '',\n                    };\n                    vueProps.modelValue = {\n                        type: [String, Number, Boolean, Array, Object, Date],\n                        default: '',\n                    };\n                }\n            }\n        });\n    }\n    return behaviors;\n}\nfunction applyOptions(componentOptions, vueOptions) {\n    componentOptions.data = initData();\n    componentOptions.behaviors = initBehaviors(vueOptions);\n}\n\nfunction parseComponent(vueOptions, { parse, mocks, isPage, isPageInProject, initRelation, handleLink, initLifetimes, }) {\n    vueOptions = vueOptions.default || vueOptions;\n    const options = {\n        multipleSlots: true,\n        // styleIsolation: 'apply-shared',\n        addGlobalClass: true,\n        pureDataPattern: /^uP$/,\n    };\n    if (isArray(vueOptions.mixins)) {\n        vueOptions.mixins.forEach((item) => {\n            if (isObject(item.options)) {\n                extend(options, item.options);\n            }\n        });\n    }\n    if (vueOptions.options) {\n        extend(options, vueOptions.options);\n    }\n    const mpComponentOptions = {\n        options,\n        lifetimes: initLifetimes({ mocks, isPage, initRelation, vueOptions }),\n        pageLifetimes: {\n            show() {\n                if (__VUE_PROD_DEVTOOLS__) {\n                    devtoolsComponentAdded(this.$vm.$);\n                }\n                this.$vm && this.$vm.$callHook('onPageShow');\n            },\n            hide() {\n                this.$vm && this.$vm.$callHook('onPageHide');\n            },\n            resize(size) {\n                this.$vm && this.$vm.$callHook('onPageResize', size);\n            },\n        },\n        methods: {\n            __l: handleLink,\n        },\n    };\n    if (__VUE_OPTIONS_API__) {\n        applyOptions(mpComponentOptions, vueOptions);\n    }\n    initProps(mpComponentOptions);\n    initPropsObserver(mpComponentOptions);\n    initExtraOptions(mpComponentOptions, vueOptions);\n    initWxsCallMethods(mpComponentOptions.methods, vueOptions.wxsCallMethods);\n    {\n        initWorkletMethods(mpComponentOptions.methods, vueOptions.methods);\n    }\n    if (parse) {\n        parse(mpComponentOptions, { handleLink });\n    }\n    return mpComponentOptions;\n}\nfunction initCreateComponent(parseOptions) {\n    return function createComponent(vueComponentOptions) {\n        return Component(parseComponent(vueComponentOptions, parseOptions));\n    };\n}\nlet $createComponentFn;\nlet $destroyComponentFn;\nfunction getAppVm() {\n    if (process.env.UNI_MP_PLUGIN) {\n        return wx.$vm;\n    }\n    if (process.env.UNI_SUBPACKAGE) {\n        return wx.$subpackages[process.env.UNI_SUBPACKAGE].$vm;\n    }\n    return getApp().$vm;\n}\nfunction $createComponent(initialVNode, options) {\n    if (!$createComponentFn) {\n        $createComponentFn = getAppVm().$createComponent;\n    }\n    const proxy = $createComponentFn(initialVNode, options);\n    return getExposeProxy(proxy.$) || proxy;\n}\nfunction $destroyComponent(instance) {\n    if (!$destroyComponentFn) {\n        $destroyComponentFn = getAppVm().$destroyComponent;\n    }\n    return $destroyComponentFn(instance);\n}\n\nfunction parsePage(vueOptions, parseOptions) {\n    const { parse, mocks, isPage, initRelation, handleLink, initLifetimes } = parseOptions;\n    const miniProgramPageOptions = parseComponent(vueOptions, {\n        mocks,\n        isPage,\n        isPageInProject: true,\n        initRelation,\n        handleLink,\n        initLifetimes,\n    });\n    initPageProps(miniProgramPageOptions, (vueOptions.default || vueOptions).props);\n    const methods = miniProgramPageOptions.methods;\n    methods.onLoad = function (query) {\n        {\n            this.options = query;\n        }\n        this.$page = {\n            fullPath: addLeadingSlash(this.route + stringifyQuery(query)),\n        };\n        return this.$vm && this.$vm.$callHook(ON_LOAD, query);\n    };\n    initHooks(methods, PAGE_INIT_HOOKS);\n    {\n        initUnknownHooks(methods, vueOptions);\n    }\n    initRuntimeHooks(methods, vueOptions.__runtimeHooks);\n    initMixinRuntimeHooks(methods);\n    parse && parse(miniProgramPageOptions, { handleLink });\n    return miniProgramPageOptions;\n}\nfunction initCreatePage(parseOptions) {\n    return function createPage(vuePageOptions) {\n        return Component(parsePage(vuePageOptions, parseOptions));\n    };\n}\n\nfunction initCreatePluginApp(parseAppOptions) {\n    return function createApp(vm) {\n        initAppLifecycle(parseApp(vm), vm);\n        if (process.env.UNI_MP_PLUGIN) {\n            wx.$vm = vm;\n        }\n    };\n}\n\nconst MPPage = Page;\nconst MPComponent = Component;\nfunction initTriggerEvent(mpInstance) {\n    const oldTriggerEvent = mpInstance.triggerEvent;\n    const newTriggerEvent = function (event, ...args) {\n        return oldTriggerEvent.apply(mpInstance, [\n            customizeEvent(event),\n            ...args,\n        ]);\n    };\n    // 京东小程序triggerEvent为只读属性\n    try {\n        mpInstance.triggerEvent = newTriggerEvent;\n    }\n    catch (error) {\n        mpInstance._triggerEvent = newTriggerEvent;\n    }\n}\nfunction initMiniProgramHook(name, options, isComponent) {\n    const oldHook = options[name];\n    if (!oldHook) {\n        options[name] = function () {\n            initTriggerEvent(this);\n        };\n    }\n    else {\n        options[name] = function (...args) {\n            initTriggerEvent(this);\n            return oldHook.apply(this, args);\n        };\n    }\n}\nPage = function (options) {\n    initMiniProgramHook(ON_LOAD, options);\n    return MPPage(options);\n};\nComponent = function (options) {\n    initMiniProgramHook('created', options);\n    // 小程序组件\n    const isVueComponent = options.properties && options.properties.uP;\n    if (!isVueComponent) {\n        initProps(options);\n        initPropsObserver(options);\n    }\n    return MPComponent(options);\n};\n\n// @ts-expect-error\nfunction initLifetimes({ mocks, isPage, initRelation, vueOptions, }) {\n    return {\n        attached() {\n            let properties = this.properties;\n            initVueIds(properties.uI, this);\n            const relationOptions = {\n                vuePid: this._$vuePid,\n            };\n            // 处理父子关系\n            initRelation(this, relationOptions);\n            // 初始化 vue 实例\n            const mpInstance = this;\n            const isMiniProgramPage = isPage(mpInstance);\n            let propsData = properties;\n            this.$vm = $createComponent({\n                type: vueOptions,\n                props: findPropsData(propsData, isMiniProgramPage),\n            }, {\n                mpType: isMiniProgramPage ? 'page' : 'component',\n                mpInstance,\n                slots: properties.uS || {}, // vueSlots\n                parentComponent: relationOptions.parent && relationOptions.parent.$,\n                onBeforeSetup(instance, options) {\n                    initRefs(instance, mpInstance);\n                    initMocks(instance, mpInstance, mocks);\n                    initComponentInstance(instance, options);\n                },\n            });\n            if (process.env.UNI_DEBUG) {\n                console.log('uni-app:[' +\n                    Date.now() +\n                    '][' +\n                    (mpInstance.is || mpInstance.route) +\n                    '][' +\n                    this.$vm.$.uid +\n                    ']attached');\n            }\n            if (!isMiniProgramPage) {\n                initFormField(this.$vm);\n            }\n        },\n        ready() {\n            if (process.env.UNI_DEBUG) {\n                console.log('uni-app:[' + Date.now() + '][' + (this.is || this.route) + ']ready');\n            }\n            // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\n            // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\n            if (this.$vm) {\n                {\n                    this.$vm.$callHook('mounted');\n                    this.$vm.$callHook(ON_READY);\n                }\n            }\n        },\n        detached() {\n            if (this.$vm) {\n                pruneComponentPropsCache(this.$vm.$.uid);\n                $destroyComponent(this.$vm);\n            }\n        },\n    };\n}\n\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\nfunction isPage(mpInstance) {\n    return !!mpInstance.route;\n}\nfunction initRelation(mpInstance, detail) {\n    mpInstance.triggerEvent('__l', detail);\n}\nfunction handleLink(event) {\n    // detail 是微信,value 是百度(dipatch)\n    const detail = (event.detail ||\n        event.value);\n    const vuePid = detail.vuePid;\n    let parentVm;\n    if (vuePid) {\n        parentVm = findVmByVueId(this.$vm, vuePid);\n    }\n    if (!parentVm) {\n        parentVm = this.$vm;\n    }\n    detail.parent = parentVm;\n}\n\nvar parseOptions = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  handleLink: handleLink,\n  initLifetimes: initLifetimes,\n  initRelation: initRelation,\n  isPage: isPage,\n  mocks: mocks\n});\n\nconst createApp = initCreateApp();\nconst createPage = initCreatePage(parseOptions);\nconst createComponent = initCreateComponent(parseOptions);\nconst createPluginApp = initCreatePluginApp();\nconst createSubpackageApp = initCreateSubpackageApp();\n{\n    wx.createApp = global.createApp = createApp;\n    wx.createPage = createPage;\n    wx.createComponent = createComponent;\n    wx.createPluginApp = global.createPluginApp =\n        createPluginApp;\n    wx.createSubpackageApp = global.createSubpackageApp =\n        createSubpackageApp;\n}\n\nexport { createApp, createComponent, createPage, createPluginApp, createSubpackageApp };\n","import { shallowRef, ref, getCurrentInstance, isInSSRComponentSetup, injectHook } from 'vue';\nimport { hasOwn } from '@vue/shared';\nexport { capitalize, extend, hasOwn, isPlainObject } from '@vue/shared';\nimport { sanitise, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR, ON_SHOW, ON_HIDE, ON_LAUNCH, ON_ERROR, ON_THEME_CHANGE, ON_PAGE_NOT_FOUND, ON_UNHANDLE_REJECTION, ON_EXIT, ON_INIT, ON_LOAD, ON_READY, ON_UNLOAD, ON_RESIZE, ON_BACK_PRESS, ON_PAGE_SCROLL, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_SAVE_EXIT_STATE, ON_SHARE_TIMELINE, ON_ADD_TO_FAVORITES, ON_SHARE_APP_MESSAGE, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED } from '@dcloudio/uni-shared';\n\nfunction getSSRDataType() {\n    return getCurrentInstance() ? UNI_SSR_DATA : UNI_SSR_GLOBAL_DATA;\n}\nfunction assertKey(key, shallow = false) {\n    if (!key) {\n        throw new Error(`${shallow ? 'shallowSsrRef' : 'ssrRef'}: You must provide a key.`);\n    }\n}\nconst ssrClientRef = (value, key, shallow = false) => {\n    const valRef = shallow ? shallowRef(value) : ref(value);\n    // 非 h5 平台\n    if (typeof window === 'undefined') {\n        return valRef;\n    }\n    const __uniSSR = window[UNI_SSR];\n    if (!__uniSSR) {\n        return valRef;\n    }\n    const type = getSSRDataType();\n    assertKey(key, shallow);\n    if (hasOwn(__uniSSR[type], key)) {\n        valRef.value = __uniSSR[type][key];\n        if (type === UNI_SSR_DATA) {\n            delete __uniSSR[type][key]; // TODO 非全局数据仅使用一次?否则下次还会再次使用该数据\n        }\n    }\n    return valRef;\n};\nconst globalData = {};\nconst ssrRef = (value, key) => {\n    return ssrClientRef(value, key);\n};\nconst shallowSsrRef = (value, key) => {\n    return ssrClientRef(value, key, true);\n};\nfunction getSsrGlobalData() {\n    return sanitise(globalData);\n}\n\n/**\n * uni 对象是跨实例的,而此处列的 API 均是需要跟当前实例关联的,比如 requireNativePlugin 获取 dom 时,依赖当前 weex 实例\n */\nfunction getCurrentSubNVue() {\n    return uni.getSubNVueById(plus.webview.currentWebview().id);\n}\nfunction requireNativePlugin(name) {\n    return weex.requireModule(name);\n}\n\nfunction formatAppLog(type, filename, ...args) {\n    // @ts-expect-error\n    if (uni.__log__) {\n        // @ts-expect-error\n        uni.__log__(type, filename, ...args);\n    }\n    else {\n        console[type].apply(console, [...args, filename]);\n    }\n}\nfunction formatLog(type, filename, ...args) {\n    if (filename) {\n        args.push(filename);\n    }\n    console[type].apply(console, args);\n}\n\nfunction resolveEasycom(component, easycom) {\n    return typeof component === 'string' ? easycom : component;\n}\n\n/// <reference types=\"@dcloudio/types\" />\nconst createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {\n    // post-create lifecycle registrations are noops during SSR\n    !isInSSRComponentSetup && injectHook(lifecycle, hook, target);\n};\nconst onShow = /*#__PURE__*/ createHook(ON_SHOW);\nconst onHide = /*#__PURE__*/ createHook(ON_HIDE);\nconst onLaunch = \n/*#__PURE__*/ createHook(ON_LAUNCH);\nconst onError = \n/*#__PURE__*/ createHook(ON_ERROR);\nconst onThemeChange = \n/*#__PURE__*/ createHook(ON_THEME_CHANGE);\nconst onPageNotFound = \n/*#__PURE__*/ createHook(ON_PAGE_NOT_FOUND);\nconst onUnhandledRejection = /*#__PURE__*/ createHook(ON_UNHANDLE_REJECTION);\nconst onExit = /*#__PURE__*/ createHook(ON_EXIT);\nconst onInit = \n/*#__PURE__*/ createHook(ON_INIT);\n// 小程序如果想在 setup 的 props 传递页面参数,需要定义 props,故同时暴露 onLoad 吧\nconst onLoad = \n/*#__PURE__*/ createHook(ON_LOAD);\nconst onReady = /*#__PURE__*/ createHook(ON_READY);\nconst onUnload = /*#__PURE__*/ createHook(ON_UNLOAD);\nconst onResize = \n/*#__PURE__*/ createHook(ON_RESIZE);\nconst onBackPress = \n/*#__PURE__*/ createHook(ON_BACK_PRESS);\nconst onPageScroll = \n/*#__PURE__*/ createHook(ON_PAGE_SCROLL);\nconst onTabItemTap = \n/*#__PURE__*/ createHook(ON_TAB_ITEM_TAP);\nconst onReachBottom = /*#__PURE__*/ createHook(ON_REACH_BOTTOM);\nconst onPullDownRefresh = /*#__PURE__*/ createHook(ON_PULL_DOWN_REFRESH);\nconst onSaveExitState = \n/*#__PURE__*/ createHook(ON_SAVE_EXIT_STATE);\nconst onShareTimeline = \n/*#__PURE__*/ createHook(ON_SHARE_TIMELINE);\nconst onAddToFavorites = \n/*#__PURE__*/ createHook(ON_ADD_TO_FAVORITES);\nconst onShareAppMessage = \n/*#__PURE__*/ createHook(ON_SHARE_APP_MESSAGE);\nconst onNavigationBarButtonTap = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_BUTTON_TAP);\nconst onNavigationBarSearchInputChanged = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED);\nconst onNavigationBarSearchInputClicked = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED);\nconst onNavigationBarSearchInputConfirmed = /*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED);\nconst onNavigationBarSearchInputFocusChanged = \n/*#__PURE__*/ createHook(ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED);\n// for uni-app-x web\nconst onPageHide = onHide;\nconst onPageShow = onShow;\n\nfunction renderComponentSlot(slots, name, props = null) {\n    if (slots[name]) {\n        return slots[name](props);\n    }\n    return null;\n}\n\nexport { formatAppLog, formatLog, getCurrentSubNVue, getSsrGlobalData, onAddToFavorites, onBackPress, onError, onExit, onHide, onInit, onLaunch, onLoad, onNavigationBarButtonTap, onNavigationBarSearchInputChanged, onNavigationBarSearchInputClicked, onNavigationBarSearchInputConfirmed, onNavigationBarSearchInputFocusChanged, onPageHide, onPageNotFound, onPageScroll, onPageShow, onPullDownRefresh, onReachBottom, onReady, onResize, onSaveExitState, onShareAppMessage, onShareTimeline, onShow, onTabItemTap, onThemeChange, onUnhandledRejection, onUnload, renderComponentSlot, requireNativePlugin, resolveEasycom, shallowSsrRef, ssrRef };\n"],"names":["set","hasOwnProperty","invokeArrayFns","createErrorHandler","self","effect","trigger","computed","isReadonly","isShallow","has","r","queue","p","diff","version","isModelListener","once","s","createApp","plugin","createHook","n","callHook","get","c","h","m","initProps","resolvePropValue","getType","t","validateProp","assertType","getInvalidTypeMessage","isSimpleType","styleValue","isExplicable","isBoolean","Component","index","resolve","f","ref","emit","uid","pruneComponentPropsCache","e","createVNode","createComponent","createComponent2","initHooks","applyOptions","uni","getLocaleLanguage","interceptors","res","options","errMsg","Emitter","cid","protocols","global","getProvider","mocks","host","value","err","onError","offError","wx","isPage","observe","initRelation","handleLink","initLifetimes","size","parseOptions","createPage"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7]}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/index.js.map
deleted file mode 100644
index 15a6951..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
deleted file mode 100644
index 71eab5f..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["pages/index/index.vue?type=page"],"sourcesContent":["import MiniProgramPage from '/Users/sunmeng/Desktop/canvas/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;AACA,GAAG,WAAWA,MAAe,eAAA;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index2.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index2.js.map
deleted file mode 100644
index 9b2cc2d..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index2.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index2.js","sources":["/Users/sunmeng/Desktop/canvas/pages/index/index.vue?type=page"],"sourcesContent":["import MiniProgramPage from '/Users/sunmeng/Desktop/canvas/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;AACA,GAAG,WAAWA,MAAe,eAAA;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/indexFu.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/indexFu.js.map
deleted file mode 100644
index 800d0bd..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/indexFu.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"indexFu.js","sources":["pages/index/indexFu.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaW5kZXgvaW5kZXhGdS52dWU"],"sourcesContent":["<template>\r\n\t<view>\r\n\t<indexZi></indexZi>\r\n\t</view>\r\n</template>\r\n\r\n<script setup>\r\n\timport indexZi from \"./index.vue\" \r\n\timport {\r\n\t\tref\r\n\t} from 'vue'\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>","import MiniProgramPage from 'C:/Users/hp/Desktop/app/canvas/pages/index/indexFu.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;;;;AAOC,MAAM,UAAU,MAAW;;;;;;;;;ACN5B,GAAG,WAAWA,SAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index_step4.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index_step4.js.map
deleted file mode 100644
index 530d150..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index_step4.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index_step4.js","sources":["pages/index/index_step4.vue?type=page"],"sourcesContent":["import MiniProgramPage from '/Users/sunmeng/Desktop/canvas/pages/index/index_step4.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/step2.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/step2.js.map
deleted file mode 100644
index 461ca25..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/step2.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"step2.js","sources":["pages/index/step2.vue?type=page"],"sourcesContent":["import MiniProgramPage from '/Users/sunmeng/Desktop/canvas/pages/index/step2.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;;;;;;;;;;;;;AACA,GAAG,WAAWA,SAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/static/canvas.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/static/canvas.js.map
deleted file mode 100644
index fdea23c..0000000
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/static/canvas.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"canvas.js","sources":["static/canvas.jpg"],"sourcesContent":["export default \"__VITE_ASSET__72ea9485__\""],"names":[],"mappings":";;AAAA,MAAe,SAAA;;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js
deleted file mode 100644
index 38a674c..0000000
--- a/unpackage/dist/dev/mp-weixin/app.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
-const common_vendor = require("./common/vendor.js");
-if (!Math) {
-  "./pages/index/index_step4.js";
-  "./pages/index/step2.js";
-  "./pages/index/index.js";
-}
-const _sfc_main = {
-  onLaunch: function() {
-    common_vendor.index.__f__("log", "at App.vue:4", "App Launch");
-  },
-  onShow: function() {
-    common_vendor.index.__f__("log", "at App.vue:7", "App Show");
-  },
-  onHide: function() {
-    common_vendor.index.__f__("log", "at App.vue:10", "App Hide");
-  }
-};
-function createApp() {
-  const app = common_vendor.createSSRApp(_sfc_main);
-  return {
-    app
-  };
-}
-createApp().app.mount("#app");
-exports.createApp = createApp;
-//# sourceMappingURL=../.sourcemap/mp-weixin/app.js.map
diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json
deleted file mode 100644
index d4646dd..0000000
--- a/unpackage/dist/dev/mp-weixin/app.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "pages": [
-    "pages/index/index_step4",
-    "pages/index/step2",
-    "pages/index/index"
-  ],
-  "window": {
-    "navigationBarTextStyle": "black",
-    "navigationBarTitleText": "uni-app",
-    "navigationBarBackgroundColor": "#F8F8F8",
-    "backgroundColor": "#F8F8F8"
-  },
-  "usingComponents": {}
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/app.wxss b/unpackage/dist/dev/mp-weixin/app.wxss
deleted file mode 100644
index d4f3237..0000000
--- a/unpackage/dist/dev/mp-weixin/app.wxss
+++ /dev/null
@@ -1,3 +0,0 @@
-
-	/*每个页面公共css */
-page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js
deleted file mode 100644
index 69564f1..0000000
--- a/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ /dev/null
@@ -1,7743 +0,0 @@
-"use strict";
-/**
-* @vue/shared v3.4.21
-* (c) 2018-present Yuxi (Evan) You and Vue contributors
-* @license MIT
-**/
-function makeMap(str, expectsLowerCase) {
-  const set2 = new Set(str.split(","));
-  return expectsLowerCase ? (val) => set2.has(val.toLowerCase()) : (val) => set2.has(val);
-}
-const EMPTY_OBJ = Object.freeze({});
-const EMPTY_ARR = Object.freeze([]);
-const NOOP = () => {
-};
-const NO = () => false;
-const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter
-(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);
-const isModelListener = (key) => key.startsWith("onUpdate:");
-const extend = Object.assign;
-const remove = (arr, el) => {
-  const i = arr.indexOf(el);
-  if (i > -1) {
-    arr.splice(i, 1);
-  }
-};
-const hasOwnProperty$1 = Object.prototype.hasOwnProperty;
-const hasOwn = (val, key) => hasOwnProperty$1.call(val, key);
-const isArray = Array.isArray;
-const isMap = (val) => toTypeString(val) === "[object Map]";
-const isSet = (val) => toTypeString(val) === "[object Set]";
-const isFunction = (val) => typeof val === "function";
-const isString = (val) => typeof val === "string";
-const isSymbol = (val) => typeof val === "symbol";
-const isObject = (val) => val !== null && typeof val === "object";
-const isPromise = (val) => {
-  return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);
-};
-const objectToString = Object.prototype.toString;
-const toTypeString = (value) => objectToString.call(value);
-const toRawType = (value) => {
-  return toTypeString(value).slice(8, -1);
-};
-const isPlainObject = (val) => toTypeString(val) === "[object Object]";
-const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
-const isReservedProp = /* @__PURE__ */ makeMap(
-  // the leading comma is intentional so empty string "" is also included
-  ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
-);
-const isBuiltInDirective = /* @__PURE__ */ makeMap(
-  "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"
-);
-const cacheStringFunction = (fn) => {
-  const cache = /* @__PURE__ */ Object.create(null);
-  return (str) => {
-    const hit = cache[str];
-    return hit || (cache[str] = fn(str));
-  };
-};
-const camelizeRE = /-(\w)/g;
-const camelize = cacheStringFunction((str) => {
-  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
-});
-const hyphenateRE = /\B([A-Z])/g;
-const hyphenate = cacheStringFunction(
-  (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
-);
-const capitalize = cacheStringFunction((str) => {
-  return str.charAt(0).toUpperCase() + str.slice(1);
-});
-const toHandlerKey = cacheStringFunction((str) => {
-  const s = str ? `on${capitalize(str)}` : ``;
-  return s;
-});
-const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
-const invokeArrayFns$1 = (fns, arg) => {
-  for (let i = 0; i < fns.length; i++) {
-    fns[i](arg);
-  }
-};
-const def = (obj, key, value) => {
-  Object.defineProperty(obj, key, {
-    configurable: true,
-    enumerable: false,
-    value
-  });
-};
-const looseToNumber = (val) => {
-  const n = parseFloat(val);
-  return isNaN(n) ? val : n;
-};
-const LOCALE_ZH_HANS = "zh-Hans";
-const LOCALE_ZH_HANT = "zh-Hant";
-const LOCALE_EN = "en";
-const LOCALE_FR = "fr";
-const LOCALE_ES = "es";
-function include(str, parts) {
-  return !!parts.find((part) => str.indexOf(part) !== -1);
-}
-function startsWith(str, parts) {
-  return parts.find((part) => str.indexOf(part) === 0);
-}
-function normalizeLocale(locale, messages) {
-  if (!locale) {
-    return;
-  }
-  locale = locale.trim().replace(/_/g, "-");
-  if (messages && messages[locale]) {
-    return locale;
-  }
-  locale = locale.toLowerCase();
-  if (locale === "chinese") {
-    return LOCALE_ZH_HANS;
-  }
-  if (locale.indexOf("zh") === 0) {
-    if (locale.indexOf("-hans") > -1) {
-      return LOCALE_ZH_HANS;
-    }
-    if (locale.indexOf("-hant") > -1) {
-      return LOCALE_ZH_HANT;
-    }
-    if (include(locale, ["-tw", "-hk", "-mo", "-cht"])) {
-      return LOCALE_ZH_HANT;
-    }
-    return LOCALE_ZH_HANS;
-  }
-  let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];
-  if (messages && Object.keys(messages).length > 0) {
-    locales = Object.keys(messages);
-  }
-  const lang = startsWith(locale, locales);
-  if (lang) {
-    return lang;
-  }
-}
-const SLOT_DEFAULT_NAME = "d";
-const ON_SHOW = "onShow";
-const ON_HIDE = "onHide";
-const ON_LAUNCH = "onLaunch";
-const ON_ERROR = "onError";
-const ON_THEME_CHANGE = "onThemeChange";
-const ON_PAGE_NOT_FOUND = "onPageNotFound";
-const ON_UNHANDLE_REJECTION = "onUnhandledRejection";
-const ON_EXIT = "onExit";
-const ON_LOAD = "onLoad";
-const ON_READY = "onReady";
-const ON_UNLOAD = "onUnload";
-const ON_INIT = "onInit";
-const ON_SAVE_EXIT_STATE = "onSaveExitState";
-const ON_RESIZE = "onResize";
-const ON_BACK_PRESS = "onBackPress";
-const ON_PAGE_SCROLL = "onPageScroll";
-const ON_TAB_ITEM_TAP = "onTabItemTap";
-const ON_REACH_BOTTOM = "onReachBottom";
-const ON_PULL_DOWN_REFRESH = "onPullDownRefresh";
-const ON_SHARE_TIMELINE = "onShareTimeline";
-const ON_SHARE_CHAT = "onShareChat";
-const ON_ADD_TO_FAVORITES = "onAddToFavorites";
-const ON_SHARE_APP_MESSAGE = "onShareAppMessage";
-const ON_NAVIGATION_BAR_BUTTON_TAP = "onNavigationBarButtonTap";
-const ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = "onNavigationBarSearchInputClicked";
-const ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = "onNavigationBarSearchInputChanged";
-const ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = "onNavigationBarSearchInputConfirmed";
-const ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = "onNavigationBarSearchInputFocusChanged";
-const VIRTUAL_HOST_STYLE = "virtualHostStyle";
-const VIRTUAL_HOST_CLASS = "virtualHostClass";
-const VIRTUAL_HOST_HIDDEN = "virtualHostHidden";
-const VIRTUAL_HOST_ID = "virtualHostId";
-function hasLeadingSlash(str) {
-  return str.indexOf("/") === 0;
-}
-function addLeadingSlash(str) {
-  return hasLeadingSlash(str) ? str : "/" + str;
-}
-const invokeArrayFns = (fns, arg) => {
-  let ret;
-  for (let i = 0; i < fns.length; i++) {
-    ret = fns[i](arg);
-  }
-  return ret;
-};
-function once(fn, ctx = null) {
-  let res;
-  return (...args) => {
-    if (fn) {
-      res = fn.apply(ctx, args);
-      fn = null;
-    }
-    return res;
-  };
-}
-function getValueByDataPath(obj, path) {
-  if (!isString(path)) {
-    return;
-  }
-  path = path.replace(/\[(\d+)\]/g, ".$1");
-  const parts = path.split(".");
-  let key = parts[0];
-  if (!obj) {
-    obj = {};
-  }
-  if (parts.length === 1) {
-    return obj[key];
-  }
-  return getValueByDataPath(obj[key], parts.slice(1).join("."));
-}
-function sortObject(obj) {
-  let sortObj = {};
-  if (isPlainObject(obj)) {
-    Object.keys(obj).sort().forEach((key) => {
-      const _key = key;
-      sortObj[_key] = obj[_key];
-    });
-  }
-  return !Object.keys(sortObj) ? obj : sortObj;
-}
-const customizeRE = /:/g;
-function customizeEvent(str) {
-  return camelize(str.replace(customizeRE, "-"));
-}
-const encode = encodeURIComponent;
-function stringifyQuery(obj, encodeStr = encode) {
-  const res = obj ? Object.keys(obj).map((key) => {
-    let val = obj[key];
-    if (typeof val === void 0 || val === null) {
-      val = "";
-    } else if (isPlainObject(val)) {
-      val = JSON.stringify(val);
-    }
-    return encodeStr(key) + "=" + encodeStr(val);
-  }).filter((x) => x.length > 0).join("&") : null;
-  return res ? `?${res}` : "";
-}
-const PAGE_HOOKS = [
-  ON_INIT,
-  ON_LOAD,
-  ON_SHOW,
-  ON_HIDE,
-  ON_UNLOAD,
-  ON_BACK_PRESS,
-  ON_PAGE_SCROLL,
-  ON_TAB_ITEM_TAP,
-  ON_REACH_BOTTOM,
-  ON_PULL_DOWN_REFRESH,
-  ON_SHARE_TIMELINE,
-  ON_SHARE_APP_MESSAGE,
-  ON_SHARE_CHAT,
-  ON_ADD_TO_FAVORITES,
-  ON_SAVE_EXIT_STATE,
-  ON_NAVIGATION_BAR_BUTTON_TAP,
-  ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,
-  ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,
-  ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,
-  ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED
-];
-function isRootHook(name) {
-  return PAGE_HOOKS.indexOf(name) > -1;
-}
-const UniLifecycleHooks = [
-  ON_SHOW,
-  ON_HIDE,
-  ON_LAUNCH,
-  ON_ERROR,
-  ON_THEME_CHANGE,
-  ON_PAGE_NOT_FOUND,
-  ON_UNHANDLE_REJECTION,
-  ON_EXIT,
-  ON_INIT,
-  ON_LOAD,
-  ON_READY,
-  ON_UNLOAD,
-  ON_RESIZE,
-  ON_BACK_PRESS,
-  ON_PAGE_SCROLL,
-  ON_TAB_ITEM_TAP,
-  ON_REACH_BOTTOM,
-  ON_PULL_DOWN_REFRESH,
-  ON_SHARE_TIMELINE,
-  ON_ADD_TO_FAVORITES,
-  ON_SHARE_APP_MESSAGE,
-  ON_SHARE_CHAT,
-  ON_SAVE_EXIT_STATE,
-  ON_NAVIGATION_BAR_BUTTON_TAP,
-  ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,
-  ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,
-  ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,
-  ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED
-];
-const MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /* @__PURE__ */ (() => {
-  return {
-    onPageScroll: 1,
-    onShareAppMessage: 1 << 1,
-    onShareTimeline: 1 << 2
-  };
-})();
-function isUniLifecycleHook(name, value, checkType = true) {
-  if (checkType && !isFunction(value)) {
-    return false;
-  }
-  if (UniLifecycleHooks.indexOf(name) > -1) {
-    return true;
-  } else if (name.indexOf("on") === 0) {
-    return true;
-  }
-  return false;
-}
-let vueApp;
-const createVueAppHooks = [];
-function onCreateVueApp(hook) {
-  if (vueApp) {
-    return hook(vueApp);
-  }
-  createVueAppHooks.push(hook);
-}
-function invokeCreateVueAppHook(app) {
-  vueApp = app;
-  createVueAppHooks.forEach((hook) => hook(app));
-}
-const invokeCreateErrorHandler = once((app, createErrorHandler2) => {
-  return createErrorHandler2(app);
-});
-const E = function() {
-};
-E.prototype = {
-  _id: 1,
-  on: function(name, callback, ctx) {
-    var e = this.e || (this.e = {});
-    (e[name] || (e[name] = [])).push({
-      fn: callback,
-      ctx,
-      _id: this._id
-    });
-    return this._id++;
-  },
-  once: function(name, callback, ctx) {
-    var self2 = this;
-    function listener() {
-      self2.off(name, listener);
-      callback.apply(ctx, arguments);
-    }
-    listener._ = callback;
-    return this.on(name, listener, ctx);
-  },
-  emit: function(name) {
-    var data = [].slice.call(arguments, 1);
-    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
-    var i = 0;
-    var len = evtArr.length;
-    for (i; i < len; i++) {
-      evtArr[i].fn.apply(evtArr[i].ctx, data);
-    }
-    return this;
-  },
-  off: function(name, event) {
-    var e = this.e || (this.e = {});
-    var evts = e[name];
-    var liveEvents = [];
-    if (evts && event) {
-      for (var i = evts.length - 1; i >= 0; i--) {
-        if (evts[i].fn === event || evts[i].fn._ === event || evts[i]._id === event) {
-          evts.splice(i, 1);
-          break;
-        }
-      }
-      liveEvents = evts;
-    }
-    liveEvents.length ? e[name] = liveEvents : delete e[name];
-    return this;
-  }
-};
-var E$1 = E;
-/**
-* @dcloudio/uni-mp-vue v3.4.21
-* (c) 2018-present Yuxi (Evan) You and Vue contributors
-* @license MIT
-**/
-function warn$2(msg, ...args) {
-  console.warn(`[Vue warn] ${msg}`, ...args);
-}
-let activeEffectScope;
-class EffectScope {
-  constructor(detached = false) {
-    this.detached = detached;
-    this._active = true;
-    this.effects = [];
-    this.cleanups = [];
-    this.parent = activeEffectScope;
-    if (!detached && activeEffectScope) {
-      this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
-        this
-      ) - 1;
-    }
-  }
-  get active() {
-    return this._active;
-  }
-  run(fn) {
-    if (this._active) {
-      const currentEffectScope = activeEffectScope;
-      try {
-        activeEffectScope = this;
-        return fn();
-      } finally {
-        activeEffectScope = currentEffectScope;
-      }
-    } else {
-      warn$2(`cannot run an inactive effect scope.`);
-    }
-  }
-  /**
-   * This should only be called on non-detached scopes
-   * @internal
-   */
-  on() {
-    activeEffectScope = this;
-  }
-  /**
-   * This should only be called on non-detached scopes
-   * @internal
-   */
-  off() {
-    activeEffectScope = this.parent;
-  }
-  stop(fromParent) {
-    if (this._active) {
-      let i, l;
-      for (i = 0, l = this.effects.length; i < l; i++) {
-        this.effects[i].stop();
-      }
-      for (i = 0, l = this.cleanups.length; i < l; i++) {
-        this.cleanups[i]();
-      }
-      if (this.scopes) {
-        for (i = 0, l = this.scopes.length; i < l; i++) {
-          this.scopes[i].stop(true);
-        }
-      }
-      if (!this.detached && this.parent && !fromParent) {
-        const last = this.parent.scopes.pop();
-        if (last && last !== this) {
-          this.parent.scopes[this.index] = last;
-          last.index = this.index;
-        }
-      }
-      this.parent = void 0;
-      this._active = false;
-    }
-  }
-}
-function recordEffectScope(effect2, scope = activeEffectScope) {
-  if (scope && scope.active) {
-    scope.effects.push(effect2);
-  }
-}
-function getCurrentScope() {
-  return activeEffectScope;
-}
-let activeEffect;
-class ReactiveEffect {
-  constructor(fn, trigger2, scheduler, scope) {
-    this.fn = fn;
-    this.trigger = trigger2;
-    this.scheduler = scheduler;
-    this.active = true;
-    this.deps = [];
-    this._dirtyLevel = 4;
-    this._trackId = 0;
-    this._runnings = 0;
-    this._shouldSchedule = false;
-    this._depsLength = 0;
-    recordEffectScope(this, scope);
-  }
-  get dirty() {
-    if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
-      this._dirtyLevel = 1;
-      pauseTracking();
-      for (let i = 0; i < this._depsLength; i++) {
-        const dep = this.deps[i];
-        if (dep.computed) {
-          triggerComputed(dep.computed);
-          if (this._dirtyLevel >= 4) {
-            break;
-          }
-        }
-      }
-      if (this._dirtyLevel === 1) {
-        this._dirtyLevel = 0;
-      }
-      resetTracking();
-    }
-    return this._dirtyLevel >= 4;
-  }
-  set dirty(v) {
-    this._dirtyLevel = v ? 4 : 0;
-  }
-  run() {
-    this._dirtyLevel = 0;
-    if (!this.active) {
-      return this.fn();
-    }
-    let lastShouldTrack = shouldTrack;
-    let lastEffect = activeEffect;
-    try {
-      shouldTrack = true;
-      activeEffect = this;
-      this._runnings++;
-      preCleanupEffect(this);
-      return this.fn();
-    } finally {
-      postCleanupEffect(this);
-      this._runnings--;
-      activeEffect = lastEffect;
-      shouldTrack = lastShouldTrack;
-    }
-  }
-  stop() {
-    var _a;
-    if (this.active) {
-      preCleanupEffect(this);
-      postCleanupEffect(this);
-      (_a = this.onStop) == null ? void 0 : _a.call(this);
-      this.active = false;
-    }
-  }
-}
-function triggerComputed(computed2) {
-  return computed2.value;
-}
-function preCleanupEffect(effect2) {
-  effect2._trackId++;
-  effect2._depsLength = 0;
-}
-function postCleanupEffect(effect2) {
-  if (effect2.deps.length > effect2._depsLength) {
-    for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
-      cleanupDepEffect(effect2.deps[i], effect2);
-    }
-    effect2.deps.length = effect2._depsLength;
-  }
-}
-function cleanupDepEffect(dep, effect2) {
-  const trackId = dep.get(effect2);
-  if (trackId !== void 0 && effect2._trackId !== trackId) {
-    dep.delete(effect2);
-    if (dep.size === 0) {
-      dep.cleanup();
-    }
-  }
-}
-let shouldTrack = true;
-let pauseScheduleStack = 0;
-const trackStack = [];
-function pauseTracking() {
-  trackStack.push(shouldTrack);
-  shouldTrack = false;
-}
-function resetTracking() {
-  const last = trackStack.pop();
-  shouldTrack = last === void 0 ? true : last;
-}
-function pauseScheduling() {
-  pauseScheduleStack++;
-}
-function resetScheduling() {
-  pauseScheduleStack--;
-  while (!pauseScheduleStack && queueEffectSchedulers.length) {
-    queueEffectSchedulers.shift()();
-  }
-}
-function trackEffect(effect2, dep, debuggerEventExtraInfo) {
-  var _a;
-  if (dep.get(effect2) !== effect2._trackId) {
-    dep.set(effect2, effect2._trackId);
-    const oldDep = effect2.deps[effect2._depsLength];
-    if (oldDep !== dep) {
-      if (oldDep) {
-        cleanupDepEffect(oldDep, effect2);
-      }
-      effect2.deps[effect2._depsLength++] = dep;
-    } else {
-      effect2._depsLength++;
-    }
-    {
-      (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
-    }
-  }
-}
-const queueEffectSchedulers = [];
-function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
-  var _a;
-  pauseScheduling();
-  for (const effect2 of dep.keys()) {
-    let tracking;
-    if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
-      effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
-      effect2._dirtyLevel = dirtyLevel;
-    }
-    if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
-      {
-        (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
-      }
-      effect2.trigger();
-      if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
-        effect2._shouldSchedule = false;
-        if (effect2.scheduler) {
-          queueEffectSchedulers.push(effect2.scheduler);
-        }
-      }
-    }
-  }
-  resetScheduling();
-}
-const createDep = (cleanup, computed2) => {
-  const dep = /* @__PURE__ */ new Map();
-  dep.cleanup = cleanup;
-  dep.computed = computed2;
-  return dep;
-};
-const targetMap = /* @__PURE__ */ new WeakMap();
-const ITERATE_KEY = Symbol("iterate");
-const MAP_KEY_ITERATE_KEY = Symbol("Map key iterate");
-function track(target, type, key) {
-  if (shouldTrack && activeEffect) {
-    let depsMap = targetMap.get(target);
-    if (!depsMap) {
-      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
-    }
-    let dep = depsMap.get(key);
-    if (!dep) {
-      depsMap.set(key, dep = createDep(() => depsMap.delete(key)));
-    }
-    trackEffect(
-      activeEffect,
-      dep,
-      {
-        target,
-        type,
-        key
-      }
-    );
-  }
-}
-function trigger(target, type, key, newValue, oldValue, oldTarget) {
-  const depsMap = targetMap.get(target);
-  if (!depsMap) {
-    return;
-  }
-  let deps = [];
-  if (type === "clear") {
-    deps = [...depsMap.values()];
-  } else if (key === "length" && isArray(target)) {
-    const newLength = Number(newValue);
-    depsMap.forEach((dep, key2) => {
-      if (key2 === "length" || !isSymbol(key2) && key2 >= newLength) {
-        deps.push(dep);
-      }
-    });
-  } else {
-    if (key !== void 0) {
-      deps.push(depsMap.get(key));
-    }
-    switch (type) {
-      case "add":
-        if (!isArray(target)) {
-          deps.push(depsMap.get(ITERATE_KEY));
-          if (isMap(target)) {
-            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
-          }
-        } else if (isIntegerKey(key)) {
-          deps.push(depsMap.get("length"));
-        }
-        break;
-      case "delete":
-        if (!isArray(target)) {
-          deps.push(depsMap.get(ITERATE_KEY));
-          if (isMap(target)) {
-            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
-          }
-        }
-        break;
-      case "set":
-        if (isMap(target)) {
-          deps.push(depsMap.get(ITERATE_KEY));
-        }
-        break;
-    }
-  }
-  pauseScheduling();
-  for (const dep of deps) {
-    if (dep) {
-      triggerEffects(
-        dep,
-        4,
-        {
-          target,
-          type,
-          key,
-          newValue,
-          oldValue,
-          oldTarget
-        }
-      );
-    }
-  }
-  resetScheduling();
-}
-const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
-const builtInSymbols = new Set(
-  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
-);
-const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
-function createArrayInstrumentations() {
-  const instrumentations = {};
-  ["includes", "indexOf", "lastIndexOf"].forEach((key) => {
-    instrumentations[key] = function(...args) {
-      const arr = toRaw(this);
-      for (let i = 0, l = this.length; i < l; i++) {
-        track(arr, "get", i + "");
-      }
-      const res = arr[key](...args);
-      if (res === -1 || res === false) {
-        return arr[key](...args.map(toRaw));
-      } else {
-        return res;
-      }
-    };
-  });
-  ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
-    instrumentations[key] = function(...args) {
-      pauseTracking();
-      pauseScheduling();
-      const res = toRaw(this)[key].apply(this, args);
-      resetScheduling();
-      resetTracking();
-      return res;
-    };
-  });
-  return instrumentations;
-}
-function hasOwnProperty(key) {
-  const obj = toRaw(this);
-  track(obj, "has", key);
-  return obj.hasOwnProperty(key);
-}
-class BaseReactiveHandler {
-  constructor(_isReadonly = false, _isShallow = false) {
-    this._isReadonly = _isReadonly;
-    this._isShallow = _isShallow;
-  }
-  get(target, key, receiver) {
-    const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
-    if (key === "__v_isReactive") {
-      return !isReadonly2;
-    } else if (key === "__v_isReadonly") {
-      return isReadonly2;
-    } else if (key === "__v_isShallow") {
-      return isShallow2;
-    } else if (key === "__v_raw") {
-      if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
-      // this means the reciever is a user proxy of the reactive proxy
-      Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
-        return target;
-      }
-      return;
-    }
-    const targetIsArray = isArray(target);
-    if (!isReadonly2) {
-      if (targetIsArray && hasOwn(arrayInstrumentations, key)) {
-        return Reflect.get(arrayInstrumentations, key, receiver);
-      }
-      if (key === "hasOwnProperty") {
-        return hasOwnProperty;
-      }
-    }
-    const res = Reflect.get(target, key, receiver);
-    if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
-      return res;
-    }
-    if (!isReadonly2) {
-      track(target, "get", key);
-    }
-    if (isShallow2) {
-      return res;
-    }
-    if (isRef(res)) {
-      return targetIsArray && isIntegerKey(key) ? res : res.value;
-    }
-    if (isObject(res)) {
-      return isReadonly2 ? readonly(res) : reactive(res);
-    }
-    return res;
-  }
-}
-class MutableReactiveHandler extends BaseReactiveHandler {
-  constructor(isShallow2 = false) {
-    super(false, isShallow2);
-  }
-  set(target, key, value, receiver) {
-    let oldValue = target[key];
-    if (!this._isShallow) {
-      const isOldValueReadonly = isReadonly(oldValue);
-      if (!isShallow(value) && !isReadonly(value)) {
-        oldValue = toRaw(oldValue);
-        value = toRaw(value);
-      }
-      if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
-        if (isOldValueReadonly) {
-          return false;
-        } else {
-          oldValue.value = value;
-          return true;
-        }
-      }
-    }
-    const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);
-    const result = Reflect.set(target, key, value, receiver);
-    if (target === toRaw(receiver)) {
-      if (!hadKey) {
-        trigger(target, "add", key, value);
-      } else if (hasChanged(value, oldValue)) {
-        trigger(target, "set", key, value, oldValue);
-      }
-    }
-    return result;
-  }
-  deleteProperty(target, key) {
-    const hadKey = hasOwn(target, key);
-    const oldValue = target[key];
-    const result = Reflect.deleteProperty(target, key);
-    if (result && hadKey) {
-      trigger(target, "delete", key, void 0, oldValue);
-    }
-    return result;
-  }
-  has(target, key) {
-    const result = Reflect.has(target, key);
-    if (!isSymbol(key) || !builtInSymbols.has(key)) {
-      track(target, "has", key);
-    }
-    return result;
-  }
-  ownKeys(target) {
-    track(
-      target,
-      "iterate",
-      isArray(target) ? "length" : ITERATE_KEY
-    );
-    return Reflect.ownKeys(target);
-  }
-}
-class ReadonlyReactiveHandler extends BaseReactiveHandler {
-  constructor(isShallow2 = false) {
-    super(true, isShallow2);
-  }
-  set(target, key) {
-    {
-      warn$2(
-        `Set operation on key "${String(key)}" failed: target is readonly.`,
-        target
-      );
-    }
-    return true;
-  }
-  deleteProperty(target, key) {
-    {
-      warn$2(
-        `Delete operation on key "${String(key)}" failed: target is readonly.`,
-        target
-      );
-    }
-    return true;
-  }
-}
-const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
-const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
-const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(
-  true
-);
-const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
-const toShallow = (value) => value;
-const getProto = (v) => Reflect.getPrototypeOf(v);
-function get(target, key, isReadonly2 = false, isShallow2 = false) {
-  target = target["__v_raw"];
-  const rawTarget = toRaw(target);
-  const rawKey = toRaw(key);
-  if (!isReadonly2) {
-    if (hasChanged(key, rawKey)) {
-      track(rawTarget, "get", key);
-    }
-    track(rawTarget, "get", rawKey);
-  }
-  const { has: has2 } = getProto(rawTarget);
-  const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
-  if (has2.call(rawTarget, key)) {
-    return wrap(target.get(key));
-  } else if (has2.call(rawTarget, rawKey)) {
-    return wrap(target.get(rawKey));
-  } else if (target !== rawTarget) {
-    target.get(key);
-  }
-}
-function has$1(key, isReadonly2 = false) {
-  const target = this["__v_raw"];
-  const rawTarget = toRaw(target);
-  const rawKey = toRaw(key);
-  if (!isReadonly2) {
-    if (hasChanged(key, rawKey)) {
-      track(rawTarget, "has", key);
-    }
-    track(rawTarget, "has", rawKey);
-  }
-  return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
-}
-function size(target, isReadonly2 = false) {
-  target = target["__v_raw"];
-  !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY);
-  return Reflect.get(target, "size", target);
-}
-function add(value) {
-  value = toRaw(value);
-  const target = toRaw(this);
-  const proto = getProto(target);
-  const hadKey = proto.has.call(target, value);
-  if (!hadKey) {
-    target.add(value);
-    trigger(target, "add", value, value);
-  }
-  return this;
-}
-function set$1(key, value) {
-  value = toRaw(value);
-  const target = toRaw(this);
-  const { has: has2, get: get2 } = getProto(target);
-  let hadKey = has2.call(target, key);
-  if (!hadKey) {
-    key = toRaw(key);
-    hadKey = has2.call(target, key);
-  } else {
-    checkIdentityKeys(target, has2, key);
-  }
-  const oldValue = get2.call(target, key);
-  target.set(key, value);
-  if (!hadKey) {
-    trigger(target, "add", key, value);
-  } else if (hasChanged(value, oldValue)) {
-    trigger(target, "set", key, value, oldValue);
-  }
-  return this;
-}
-function deleteEntry(key) {
-  const target = toRaw(this);
-  const { has: has2, get: get2 } = getProto(target);
-  let hadKey = has2.call(target, key);
-  if (!hadKey) {
-    key = toRaw(key);
-    hadKey = has2.call(target, key);
-  } else {
-    checkIdentityKeys(target, has2, key);
-  }
-  const oldValue = get2 ? get2.call(target, key) : void 0;
-  const result = target.delete(key);
-  if (hadKey) {
-    trigger(target, "delete", key, void 0, oldValue);
-  }
-  return result;
-}
-function clear() {
-  const target = toRaw(this);
-  const hadItems = target.size !== 0;
-  const oldTarget = isMap(target) ? new Map(target) : new Set(target);
-  const result = target.clear();
-  if (hadItems) {
-    trigger(target, "clear", void 0, void 0, oldTarget);
-  }
-  return result;
-}
-function createForEach(isReadonly2, isShallow2) {
-  return function forEach(callback, thisArg) {
-    const observed = this;
-    const target = observed["__v_raw"];
-    const rawTarget = toRaw(target);
-    const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
-    !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY);
-    return target.forEach((value, key) => {
-      return callback.call(thisArg, wrap(value), wrap(key), observed);
-    });
-  };
-}
-function createIterableMethod(method, isReadonly2, isShallow2) {
-  return function(...args) {
-    const target = this["__v_raw"];
-    const rawTarget = toRaw(target);
-    const targetIsMap = isMap(rawTarget);
-    const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
-    const isKeyOnly = method === "keys" && targetIsMap;
-    const innerIterator = target[method](...args);
-    const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
-    !isReadonly2 && track(
-      rawTarget,
-      "iterate",
-      isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY
-    );
-    return {
-      // iterator protocol
-      next() {
-        const { value, done } = innerIterator.next();
-        return done ? { value, done } : {
-          value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
-          done
-        };
-      },
-      // iterable protocol
-      [Symbol.iterator]() {
-        return this;
-      }
-    };
-  };
-}
-function createReadonlyMethod(type) {
-  return function(...args) {
-    {
-      const key = args[0] ? `on key "${args[0]}" ` : ``;
-      warn$2(
-        `${capitalize(type)} operation ${key}failed: target is readonly.`,
-        toRaw(this)
-      );
-    }
-    return type === "delete" ? false : type === "clear" ? void 0 : this;
-  };
-}
-function createInstrumentations() {
-  const mutableInstrumentations2 = {
-    get(key) {
-      return get(this, key);
-    },
-    get size() {
-      return size(this);
-    },
-    has: has$1,
-    add,
-    set: set$1,
-    delete: deleteEntry,
-    clear,
-    forEach: createForEach(false, false)
-  };
-  const shallowInstrumentations2 = {
-    get(key) {
-      return get(this, key, false, true);
-    },
-    get size() {
-      return size(this);
-    },
-    has: has$1,
-    add,
-    set: set$1,
-    delete: deleteEntry,
-    clear,
-    forEach: createForEach(false, true)
-  };
-  const readonlyInstrumentations2 = {
-    get(key) {
-      return get(this, key, true);
-    },
-    get size() {
-      return size(this, true);
-    },
-    has(key) {
-      return has$1.call(this, key, true);
-    },
-    add: createReadonlyMethod("add"),
-    set: createReadonlyMethod("set"),
-    delete: createReadonlyMethod("delete"),
-    clear: createReadonlyMethod("clear"),
-    forEach: createForEach(true, false)
-  };
-  const shallowReadonlyInstrumentations2 = {
-    get(key) {
-      return get(this, key, true, true);
-    },
-    get size() {
-      return size(this, true);
-    },
-    has(key) {
-      return has$1.call(this, key, true);
-    },
-    add: createReadonlyMethod("add"),
-    set: createReadonlyMethod("set"),
-    delete: createReadonlyMethod("delete"),
-    clear: createReadonlyMethod("clear"),
-    forEach: createForEach(true, true)
-  };
-  const iteratorMethods = [
-    "keys",
-    "values",
-    "entries",
-    Symbol.iterator
-  ];
-  iteratorMethods.forEach((method) => {
-    mutableInstrumentations2[method] = createIterableMethod(method, false, false);
-    readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
-    shallowInstrumentations2[method] = createIterableMethod(method, false, true);
-    shallowReadonlyInstrumentations2[method] = createIterableMethod(
-      method,
-      true,
-      true
-    );
-  });
-  return [
-    mutableInstrumentations2,
-    readonlyInstrumentations2,
-    shallowInstrumentations2,
-    shallowReadonlyInstrumentations2
-  ];
-}
-const [
-  mutableInstrumentations,
-  readonlyInstrumentations,
-  shallowInstrumentations,
-  shallowReadonlyInstrumentations
-] = /* @__PURE__ */ createInstrumentations();
-function createInstrumentationGetter(isReadonly2, shallow) {
-  const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;
-  return (target, key, receiver) => {
-    if (key === "__v_isReactive") {
-      return !isReadonly2;
-    } else if (key === "__v_isReadonly") {
-      return isReadonly2;
-    } else if (key === "__v_raw") {
-      return target;
-    }
-    return Reflect.get(
-      hasOwn(instrumentations, key) && key in target ? instrumentations : target,
-      key,
-      receiver
-    );
-  };
-}
-const mutableCollectionHandlers = {
-  get: /* @__PURE__ */ createInstrumentationGetter(false, false)
-};
-const shallowCollectionHandlers = {
-  get: /* @__PURE__ */ createInstrumentationGetter(false, true)
-};
-const readonlyCollectionHandlers = {
-  get: /* @__PURE__ */ createInstrumentationGetter(true, false)
-};
-const shallowReadonlyCollectionHandlers = {
-  get: /* @__PURE__ */ createInstrumentationGetter(true, true)
-};
-function checkIdentityKeys(target, has2, key) {
-  const rawKey = toRaw(key);
-  if (rawKey !== key && has2.call(target, rawKey)) {
-    const type = toRawType(target);
-    warn$2(
-      `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`
-    );
-  }
-}
-const reactiveMap = /* @__PURE__ */ new WeakMap();
-const shallowReactiveMap = /* @__PURE__ */ new WeakMap();
-const readonlyMap = /* @__PURE__ */ new WeakMap();
-const shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
-function targetTypeMap(rawType) {
-  switch (rawType) {
-    case "Object":
-    case "Array":
-      return 1;
-    case "Map":
-    case "Set":
-    case "WeakMap":
-    case "WeakSet":
-      return 2;
-    default:
-      return 0;
-  }
-}
-function getTargetType(value) {
-  return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
-}
-function reactive(target) {
-  if (isReadonly(target)) {
-    return target;
-  }
-  return createReactiveObject(
-    target,
-    false,
-    mutableHandlers,
-    mutableCollectionHandlers,
-    reactiveMap
-  );
-}
-function shallowReactive(target) {
-  return createReactiveObject(
-    target,
-    false,
-    shallowReactiveHandlers,
-    shallowCollectionHandlers,
-    shallowReactiveMap
-  );
-}
-function readonly(target) {
-  return createReactiveObject(
-    target,
-    true,
-    readonlyHandlers,
-    readonlyCollectionHandlers,
-    readonlyMap
-  );
-}
-function shallowReadonly(target) {
-  return createReactiveObject(
-    target,
-    true,
-    shallowReadonlyHandlers,
-    shallowReadonlyCollectionHandlers,
-    shallowReadonlyMap
-  );
-}
-function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
-  if (!isObject(target)) {
-    {
-      warn$2(`value cannot be made reactive: ${String(target)}`);
-    }
-    return target;
-  }
-  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
-    return target;
-  }
-  const existingProxy = proxyMap.get(target);
-  if (existingProxy) {
-    return existingProxy;
-  }
-  const targetType = getTargetType(target);
-  if (targetType === 0) {
-    return target;
-  }
-  const proxy = new Proxy(
-    target,
-    targetType === 2 ? collectionHandlers : baseHandlers
-  );
-  proxyMap.set(target, proxy);
-  return proxy;
-}
-function isReactive(value) {
-  if (isReadonly(value)) {
-    return isReactive(value["__v_raw"]);
-  }
-  return !!(value && value["__v_isReactive"]);
-}
-function isReadonly(value) {
-  return !!(value && value["__v_isReadonly"]);
-}
-function isShallow(value) {
-  return !!(value && value["__v_isShallow"]);
-}
-function toRaw(observed) {
-  const raw = observed && observed["__v_raw"];
-  return raw ? toRaw(raw) : observed;
-}
-function markRaw(value) {
-  if (Object.isExtensible(value)) {
-    def(value, "__v_skip", true);
-  }
-  return value;
-}
-const toReactive = (value) => isObject(value) ? reactive(value) : value;
-const toReadonly = (value) => isObject(value) ? readonly(value) : value;
-const COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided.  Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;
-class ComputedRefImpl {
-  constructor(getter, _setter, isReadonly2, isSSR) {
-    this.getter = getter;
-    this._setter = _setter;
-    this.dep = void 0;
-    this.__v_isRef = true;
-    this["__v_isReadonly"] = false;
-    this.effect = new ReactiveEffect(
-      () => getter(this._value),
-      () => triggerRefValue(
-        this,
-        this.effect._dirtyLevel === 2 ? 2 : 3
-      )
-    );
-    this.effect.computed = this;
-    this.effect.active = this._cacheable = !isSSR;
-    this["__v_isReadonly"] = isReadonly2;
-  }
-  get value() {
-    const self = toRaw(this);
-    if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {
-      triggerRefValue(self, 4);
-    }
-    trackRefValue(self);
-    if (self.effect._dirtyLevel >= 2) {
-      if (this._warnRecursive) {
-        warn$2(COMPUTED_SIDE_EFFECT_WARN, `
-
-getter: `, this.getter);
-      }
-      triggerRefValue(self, 2);
-    }
-    return self._value;
-  }
-  set value(newValue) {
-    this._setter(newValue);
-  }
-  // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x
-  get _dirty() {
-    return this.effect.dirty;
-  }
-  set _dirty(v) {
-    this.effect.dirty = v;
-  }
-  // #endregion
-}
-function computed$1(getterOrOptions, debugOptions, isSSR = false) {
-  let getter;
-  let setter;
-  const onlyGetter = isFunction(getterOrOptions);
-  if (onlyGetter) {
-    getter = getterOrOptions;
-    setter = () => {
-      warn$2("Write operation failed: computed value is readonly");
-    };
-  } else {
-    getter = getterOrOptions.get;
-    setter = getterOrOptions.set;
-  }
-  const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
-  if (debugOptions && !isSSR) {
-    cRef.effect.onTrack = debugOptions.onTrack;
-    cRef.effect.onTrigger = debugOptions.onTrigger;
-  }
-  return cRef;
-}
-function trackRefValue(ref2) {
-  var _a;
-  if (shouldTrack && activeEffect) {
-    ref2 = toRaw(ref2);
-    trackEffect(
-      activeEffect,
-      (_a = ref2.dep) != null ? _a : ref2.dep = createDep(
-        () => ref2.dep = void 0,
-        ref2 instanceof ComputedRefImpl ? ref2 : void 0
-      ),
-      {
-        target: ref2,
-        type: "get",
-        key: "value"
-      }
-    );
-  }
-}
-function triggerRefValue(ref2, dirtyLevel = 4, newVal) {
-  ref2 = toRaw(ref2);
-  const dep = ref2.dep;
-  if (dep) {
-    triggerEffects(
-      dep,
-      dirtyLevel,
-      {
-        target: ref2,
-        type: "set",
-        key: "value",
-        newValue: newVal
-      }
-    );
-  }
-}
-function isRef(r2) {
-  return !!(r2 && r2.__v_isRef === true);
-}
-function ref(value) {
-  return createRef(value, false);
-}
-function createRef(rawValue, shallow) {
-  if (isRef(rawValue)) {
-    return rawValue;
-  }
-  return new RefImpl(rawValue, shallow);
-}
-class RefImpl {
-  constructor(value, __v_isShallow) {
-    this.__v_isShallow = __v_isShallow;
-    this.dep = void 0;
-    this.__v_isRef = true;
-    this._rawValue = __v_isShallow ? value : toRaw(value);
-    this._value = __v_isShallow ? value : toReactive(value);
-  }
-  get value() {
-    trackRefValue(this);
-    return this._value;
-  }
-  set value(newVal) {
-    const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);
-    newVal = useDirectValue ? newVal : toRaw(newVal);
-    if (hasChanged(newVal, this._rawValue)) {
-      this._rawValue = newVal;
-      this._value = useDirectValue ? newVal : toReactive(newVal);
-      triggerRefValue(this, 4, newVal);
-    }
-  }
-}
-function unref(ref2) {
-  return isRef(ref2) ? ref2.value : ref2;
-}
-const shallowUnwrapHandlers = {
-  get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),
-  set: (target, key, value, receiver) => {
-    const oldValue = target[key];
-    if (isRef(oldValue) && !isRef(value)) {
-      oldValue.value = value;
-      return true;
-    } else {
-      return Reflect.set(target, key, value, receiver);
-    }
-  }
-};
-function proxyRefs(objectWithRefs) {
-  return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
-}
-const stack = [];
-function pushWarningContext(vnode) {
-  stack.push(vnode);
-}
-function popWarningContext() {
-  stack.pop();
-}
-function warn$1(msg, ...args) {
-  pauseTracking();
-  const instance = stack.length ? stack[stack.length - 1].component : null;
-  const appWarnHandler = instance && instance.appContext.config.warnHandler;
-  const trace = getComponentTrace();
-  if (appWarnHandler) {
-    callWithErrorHandling(
-      appWarnHandler,
-      instance,
-      11,
-      [
-        msg + args.map((a) => {
-          var _a, _b;
-          return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
-        }).join(""),
-        instance && instance.proxy,
-        trace.map(
-          ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`
-        ).join("\n"),
-        trace
-      ]
-    );
-  } else {
-    const warnArgs = [`[Vue warn]: ${msg}`, ...args];
-    if (trace.length && // avoid spamming console during tests
-    true) {
-      warnArgs.push(`
-`, ...formatTrace(trace));
-    }
-    console.warn(...warnArgs);
-  }
-  resetTracking();
-}
-function getComponentTrace() {
-  let currentVNode = stack[stack.length - 1];
-  if (!currentVNode) {
-    return [];
-  }
-  const normalizedStack = [];
-  while (currentVNode) {
-    const last = normalizedStack[0];
-    if (last && last.vnode === currentVNode) {
-      last.recurseCount++;
-    } else {
-      normalizedStack.push({
-        vnode: currentVNode,
-        recurseCount: 0
-      });
-    }
-    const parentInstance = currentVNode.component && currentVNode.component.parent;
-    currentVNode = parentInstance && parentInstance.vnode;
-  }
-  return normalizedStack;
-}
-function formatTrace(trace) {
-  const logs = [];
-  trace.forEach((entry, i) => {
-    logs.push(...i === 0 ? [] : [`
-`], ...formatTraceEntry(entry));
-  });
-  return logs;
-}
-function formatTraceEntry({ vnode, recurseCount }) {
-  const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
-  const isRoot = vnode.component ? vnode.component.parent == null : false;
-  const open = ` at <${formatComponentName(
-    vnode.component,
-    vnode.type,
-    isRoot
-  )}`;
-  const close = `>` + postfix;
-  return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];
-}
-function formatProps(props) {
-  const res = [];
-  const keys = Object.keys(props);
-  keys.slice(0, 3).forEach((key) => {
-    res.push(...formatProp(key, props[key]));
-  });
-  if (keys.length > 3) {
-    res.push(` ...`);
-  }
-  return res;
-}
-function formatProp(key, value, raw) {
-  if (isString(value)) {
-    value = JSON.stringify(value);
-    return raw ? value : [`${key}=${value}`];
-  } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
-    return raw ? value : [`${key}=${value}`];
-  } else if (isRef(value)) {
-    value = formatProp(key, toRaw(value.value), true);
-    return raw ? value : [`${key}=Ref<`, value, `>`];
-  } else if (isFunction(value)) {
-    return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
-  } else {
-    value = toRaw(value);
-    return raw ? value : [`${key}=`, value];
-  }
-}
-const ErrorTypeStrings = {
-  ["sp"]: "serverPrefetch hook",
-  ["bc"]: "beforeCreate hook",
-  ["c"]: "created hook",
-  ["bm"]: "beforeMount hook",
-  ["m"]: "mounted hook",
-  ["bu"]: "beforeUpdate hook",
-  ["u"]: "updated",
-  ["bum"]: "beforeUnmount hook",
-  ["um"]: "unmounted hook",
-  ["a"]: "activated hook",
-  ["da"]: "deactivated hook",
-  ["ec"]: "errorCaptured hook",
-  ["rtc"]: "renderTracked hook",
-  ["rtg"]: "renderTriggered hook",
-  [0]: "setup function",
-  [1]: "render function",
-  [2]: "watcher getter",
-  [3]: "watcher callback",
-  [4]: "watcher cleanup function",
-  [5]: "native event handler",
-  [6]: "component event handler",
-  [7]: "vnode hook",
-  [8]: "directive hook",
-  [9]: "transition hook",
-  [10]: "app errorHandler",
-  [11]: "app warnHandler",
-  [12]: "ref function",
-  [13]: "async component loader",
-  [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."
-};
-function callWithErrorHandling(fn, instance, type, args) {
-  try {
-    return args ? fn(...args) : fn();
-  } catch (err) {
-    handleError(err, instance, type);
-  }
-}
-function callWithAsyncErrorHandling(fn, instance, type, args) {
-  if (isFunction(fn)) {
-    const res = callWithErrorHandling(fn, instance, type, args);
-    if (res && isPromise(res)) {
-      res.catch((err) => {
-        handleError(err, instance, type);
-      });
-    }
-    return res;
-  }
-  const values = [];
-  for (let i = 0; i < fn.length; i++) {
-    values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
-  }
-  return values;
-}
-function handleError(err, instance, type, throwInDev = true) {
-  const contextVNode = instance ? instance.vnode : null;
-  if (instance) {
-    let cur = instance.parent;
-    const exposedInstance = instance.proxy;
-    const errorInfo = ErrorTypeStrings[type] || type;
-    while (cur) {
-      const errorCapturedHooks = cur.ec;
-      if (errorCapturedHooks) {
-        for (let i = 0; i < errorCapturedHooks.length; i++) {
-          if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
-            return;
-          }
-        }
-      }
-      cur = cur.parent;
-    }
-    const appErrorHandler = instance.appContext.config.errorHandler;
-    if (appErrorHandler) {
-      callWithErrorHandling(
-        appErrorHandler,
-        null,
-        10,
-        [err, exposedInstance, errorInfo]
-      );
-      return;
-    }
-  }
-  logError(err, type, contextVNode, throwInDev);
-}
-function logError(err, type, contextVNode, throwInDev = true) {
-  {
-    const info = ErrorTypeStrings[type] || type;
-    if (contextVNode) {
-      pushWarningContext(contextVNode);
-    }
-    warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
-    if (contextVNode) {
-      popWarningContext();
-    }
-    if (throwInDev) {
-      console.error(err);
-    } else {
-      console.error(err);
-    }
-  }
-}
-let isFlushing = false;
-let isFlushPending = false;
-const queue$1 = [];
-let flushIndex = 0;
-const pendingPostFlushCbs = [];
-let activePostFlushCbs = null;
-let postFlushIndex = 0;
-const resolvedPromise = /* @__PURE__ */ Promise.resolve();
-let currentFlushPromise = null;
-const RECURSION_LIMIT = 100;
-function nextTick$1(fn) {
-  const p2 = currentFlushPromise || resolvedPromise;
-  return fn ? p2.then(this ? fn.bind(this) : fn) : p2;
-}
-function findInsertionIndex(id) {
-  let start = flushIndex + 1;
-  let end = queue$1.length;
-  while (start < end) {
-    const middle = start + end >>> 1;
-    const middleJob = queue$1[middle];
-    const middleJobId = getId(middleJob);
-    if (middleJobId < id || middleJobId === id && middleJob.pre) {
-      start = middle + 1;
-    } else {
-      end = middle;
-    }
-  }
-  return start;
-}
-function queueJob(job) {
-  if (!queue$1.length || !queue$1.includes(
-    job,
-    isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex
-  )) {
-    if (job.id == null) {
-      queue$1.push(job);
-    } else {
-      queue$1.splice(findInsertionIndex(job.id), 0, job);
-    }
-    queueFlush();
-  }
-}
-function queueFlush() {
-  if (!isFlushing && !isFlushPending) {
-    isFlushPending = true;
-    currentFlushPromise = resolvedPromise.then(flushJobs);
-  }
-}
-function hasQueueJob(job) {
-  return queue$1.indexOf(job) > -1;
-}
-function invalidateJob(job) {
-  const i = queue$1.indexOf(job);
-  if (i > flushIndex) {
-    queue$1.splice(i, 1);
-  }
-}
-function queuePostFlushCb(cb) {
-  if (!isArray(cb)) {
-    if (!activePostFlushCbs || !activePostFlushCbs.includes(
-      cb,
-      cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex
-    )) {
-      pendingPostFlushCbs.push(cb);
-    }
-  } else {
-    pendingPostFlushCbs.push(...cb);
-  }
-  queueFlush();
-}
-function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
-  {
-    seen = seen || /* @__PURE__ */ new Map();
-  }
-  for (; i < queue$1.length; i++) {
-    const cb = queue$1[i];
-    if (cb && cb.pre) {
-      if (checkRecursiveUpdates(seen, cb)) {
-        continue;
-      }
-      queue$1.splice(i, 1);
-      i--;
-      cb();
-    }
-  }
-}
-function flushPostFlushCbs(seen) {
-  if (pendingPostFlushCbs.length) {
-    const deduped = [...new Set(pendingPostFlushCbs)].sort(
-      (a, b) => getId(a) - getId(b)
-    );
-    pendingPostFlushCbs.length = 0;
-    if (activePostFlushCbs) {
-      activePostFlushCbs.push(...deduped);
-      return;
-    }
-    activePostFlushCbs = deduped;
-    {
-      seen = seen || /* @__PURE__ */ new Map();
-    }
-    for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
-      if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {
-        continue;
-      }
-      activePostFlushCbs[postFlushIndex]();
-    }
-    activePostFlushCbs = null;
-    postFlushIndex = 0;
-  }
-}
-const getId = (job) => job.id == null ? Infinity : job.id;
-const comparator = (a, b) => {
-  const diff2 = getId(a) - getId(b);
-  if (diff2 === 0) {
-    if (a.pre && !b.pre)
-      return -1;
-    if (b.pre && !a.pre)
-      return 1;
-  }
-  return diff2;
-};
-function flushJobs(seen) {
-  isFlushPending = false;
-  isFlushing = true;
-  {
-    seen = seen || /* @__PURE__ */ new Map();
-  }
-  queue$1.sort(comparator);
-  const check = (job) => checkRecursiveUpdates(seen, job);
-  try {
-    for (flushIndex = 0; flushIndex < queue$1.length; flushIndex++) {
-      const job = queue$1[flushIndex];
-      if (job && job.active !== false) {
-        if (check(job)) {
-          continue;
-        }
-        callWithErrorHandling(job, null, 14);
-      }
-    }
-  } finally {
-    flushIndex = 0;
-    queue$1.length = 0;
-    flushPostFlushCbs(seen);
-    isFlushing = false;
-    currentFlushPromise = null;
-    if (queue$1.length || pendingPostFlushCbs.length) {
-      flushJobs(seen);
-    }
-  }
-}
-function checkRecursiveUpdates(seen, fn) {
-  if (!seen.has(fn)) {
-    seen.set(fn, 1);
-  } else {
-    const count = seen.get(fn);
-    if (count > RECURSION_LIMIT) {
-      const instance = fn.ownerInstance;
-      const componentName = instance && getComponentName(instance.type);
-      handleError(
-        `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,
-        null,
-        10
-      );
-      return true;
-    } else {
-      seen.set(fn, count + 1);
-    }
-  }
-}
-let devtools;
-let buffer = [];
-let devtoolsNotInstalled = false;
-function emit$1(event, ...args) {
-  if (devtools) {
-    devtools.emit(event, ...args);
-  } else if (!devtoolsNotInstalled) {
-    buffer.push({ event, args });
-  }
-}
-function setDevtoolsHook(hook, target) {
-  var _a, _b;
-  devtools = hook;
-  if (devtools) {
-    devtools.enabled = true;
-    buffer.forEach(({ event, args }) => devtools.emit(event, ...args));
-    buffer = [];
-  } else if (
-    // handle late devtools injection - only do this if we are in an actual
-    // browser environment to avoid the timer handle stalling test runner exit
-    // (#4815)
-    typeof window !== "undefined" && // some envs mock window but not fully
-    window.HTMLElement && // also exclude jsdom
-    !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom"))
-  ) {
-    const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
-    replay.push((newHook) => {
-      setDevtoolsHook(newHook, target);
-    });
-    setTimeout(() => {
-      if (!devtools) {
-        target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
-        devtoolsNotInstalled = true;
-        buffer = [];
-      }
-    }, 3e3);
-  } else {
-    devtoolsNotInstalled = true;
-    buffer = [];
-  }
-}
-function devtoolsInitApp(app, version2) {
-  emit$1("app:init", app, version2, {
-    Fragment,
-    Text,
-    Comment,
-    Static
-  });
-}
-const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(
-  "component:added"
-  /* COMPONENT_ADDED */
-);
-const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(
-  "component:updated"
-  /* COMPONENT_UPDATED */
-);
-const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(
-  "component:removed"
-  /* COMPONENT_REMOVED */
-);
-const devtoolsComponentRemoved = (component) => {
-  if (devtools && typeof devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered
-  !devtools.cleanupBuffer(component)) {
-    _devtoolsComponentRemoved(component);
-  }
-};
-/*! #__NO_SIDE_EFFECTS__ */
-// @__NO_SIDE_EFFECTS__
-function createDevtoolsComponentHook(hook) {
-  return (component) => {
-    emit$1(
-      hook,
-      component.appContext.app,
-      component.uid,
-      // fixed by xxxxxx
-      // 为 0 是 App,无 parent 是 Page 指向 App
-      component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0,
-      component
-    );
-  };
-}
-const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(
-  "perf:start"
-  /* PERFORMANCE_START */
-);
-const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(
-  "perf:end"
-  /* PERFORMANCE_END */
-);
-function createDevtoolsPerformanceHook(hook) {
-  return (component, type, time) => {
-    emit$1(hook, component.appContext.app, component.uid, component, type, time);
-  };
-}
-function devtoolsComponentEmit(component, event, params) {
-  emit$1(
-    "component:emit",
-    component.appContext.app,
-    component,
-    event,
-    params
-  );
-}
-function emit(instance, event, ...rawArgs) {
-  if (instance.isUnmounted)
-    return;
-  const props = instance.vnode.props || EMPTY_OBJ;
-  {
-    const {
-      emitsOptions,
-      propsOptions: [propsOptions]
-    } = instance;
-    if (emitsOptions) {
-      if (!(event in emitsOptions) && true) {
-        if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
-          warn$1(
-            `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.`
-          );
-        }
-      } else {
-        const validator = emitsOptions[event];
-        if (isFunction(validator)) {
-          const isValid = validator(...rawArgs);
-          if (!isValid) {
-            warn$1(
-              `Invalid event arguments: event validation failed for event "${event}".`
-            );
-          }
-        }
-      }
-    }
-  }
-  let args = rawArgs;
-  const isModelListener2 = event.startsWith("update:");
-  const modelArg = isModelListener2 && event.slice(7);
-  if (modelArg && modelArg in props) {
-    const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`;
-    const { number, trim } = props[modifiersKey] || EMPTY_OBJ;
-    if (trim) {
-      args = rawArgs.map((a) => isString(a) ? a.trim() : a);
-    }
-    if (number) {
-      args = rawArgs.map(looseToNumber);
-    }
-  }
-  {
-    devtoolsComponentEmit(instance, event, args);
-  }
-  {
-    const lowerCaseEvent = event.toLowerCase();
-    if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {
-      warn$1(
-        `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
-          instance,
-          instance.type
-        )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(
-          event
-        )}" instead of "${event}".`
-      );
-    }
-  }
-  let handlerName;
-  let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)
-  props[handlerName = toHandlerKey(camelize(event))];
-  if (!handler && isModelListener2) {
-    handler = props[handlerName = toHandlerKey(hyphenate(event))];
-  }
-  if (handler) {
-    callWithAsyncErrorHandling(
-      handler,
-      instance,
-      6,
-      args
-    );
-  }
-  const onceHandler = props[handlerName + `Once`];
-  if (onceHandler) {
-    if (!instance.emitted) {
-      instance.emitted = {};
-    } else if (instance.emitted[handlerName]) {
-      return;
-    }
-    instance.emitted[handlerName] = true;
-    callWithAsyncErrorHandling(
-      onceHandler,
-      instance,
-      6,
-      args
-    );
-  }
-}
-function normalizeEmitsOptions(comp, appContext, asMixin = false) {
-  const cache = appContext.emitsCache;
-  const cached = cache.get(comp);
-  if (cached !== void 0) {
-    return cached;
-  }
-  const raw = comp.emits;
-  let normalized = {};
-  let hasExtends = false;
-  if (!isFunction(comp)) {
-    const extendEmits = (raw2) => {
-      const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);
-      if (normalizedFromExtend) {
-        hasExtends = true;
-        extend(normalized, normalizedFromExtend);
-      }
-    };
-    if (!asMixin && appContext.mixins.length) {
-      appContext.mixins.forEach(extendEmits);
-    }
-    if (comp.extends) {
-      extendEmits(comp.extends);
-    }
-    if (comp.mixins) {
-      comp.mixins.forEach(extendEmits);
-    }
-  }
-  if (!raw && !hasExtends) {
-    if (isObject(comp)) {
-      cache.set(comp, null);
-    }
-    return null;
-  }
-  if (isArray(raw)) {
-    raw.forEach((key) => normalized[key] = null);
-  } else {
-    extend(normalized, raw);
-  }
-  if (isObject(comp)) {
-    cache.set(comp, normalized);
-  }
-  return normalized;
-}
-function isEmitListener(options, key) {
-  if (!options || !isOn(key)) {
-    return false;
-  }
-  key = key.slice(2).replace(/Once$/, "");
-  return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);
-}
-let currentRenderingInstance = null;
-function setCurrentRenderingInstance(instance) {
-  const prev = currentRenderingInstance;
-  currentRenderingInstance = instance;
-  instance && instance.type.__scopeId || null;
-  return prev;
-}
-const INITIAL_WATCHER_VALUE = {};
-function watch(source, cb, options) {
-  if (!isFunction(cb)) {
-    warn$1(
-      `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`
-    );
-  }
-  return doWatch(source, cb, options);
-}
-function doWatch(source, cb, {
-  immediate,
-  deep,
-  flush,
-  once: once2,
-  onTrack,
-  onTrigger
-} = EMPTY_OBJ) {
-  if (cb && once2) {
-    const _cb = cb;
-    cb = (...args) => {
-      _cb(...args);
-      unwatch();
-    };
-  }
-  if (deep !== void 0 && typeof deep === "number") {
-    warn$1(
-      `watch() "deep" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`
-    );
-  }
-  if (!cb) {
-    if (immediate !== void 0) {
-      warn$1(
-        `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
-      );
-    }
-    if (deep !== void 0) {
-      warn$1(
-        `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
-      );
-    }
-    if (once2 !== void 0) {
-      warn$1(
-        `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
-      );
-    }
-  }
-  const warnInvalidSource = (s2) => {
-    warn$1(
-      `Invalid watch source: `,
-      s2,
-      `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
-    );
-  };
-  const instance = currentInstance;
-  const reactiveGetter = (source2) => deep === true ? source2 : (
-    // for deep: false, only traverse root-level properties
-    traverse(source2, deep === false ? 1 : void 0)
-  );
-  let getter;
-  let forceTrigger = false;
-  let isMultiSource = false;
-  if (isRef(source)) {
-    getter = () => source.value;
-    forceTrigger = isShallow(source);
-  } else if (isReactive(source)) {
-    getter = () => reactiveGetter(source);
-    forceTrigger = true;
-  } else if (isArray(source)) {
-    isMultiSource = true;
-    forceTrigger = source.some((s2) => isReactive(s2) || isShallow(s2));
-    getter = () => source.map((s2) => {
-      if (isRef(s2)) {
-        return s2.value;
-      } else if (isReactive(s2)) {
-        return reactiveGetter(s2);
-      } else if (isFunction(s2)) {
-        return callWithErrorHandling(s2, instance, 2);
-      } else {
-        warnInvalidSource(s2);
-      }
-    });
-  } else if (isFunction(source)) {
-    if (cb) {
-      getter = () => callWithErrorHandling(source, instance, 2);
-    } else {
-      getter = () => {
-        if (cleanup) {
-          cleanup();
-        }
-        return callWithAsyncErrorHandling(
-          source,
-          instance,
-          3,
-          [onCleanup]
-        );
-      };
-    }
-  } else {
-    getter = NOOP;
-    warnInvalidSource(source);
-  }
-  if (cb && deep) {
-    const baseGetter = getter;
-    getter = () => traverse(baseGetter());
-  }
-  let cleanup;
-  let onCleanup = (fn) => {
-    cleanup = effect2.onStop = () => {
-      callWithErrorHandling(fn, instance, 4);
-      cleanup = effect2.onStop = void 0;
-    };
-  };
-  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
-  const job = () => {
-    if (!effect2.active || !effect2.dirty) {
-      return;
-    }
-    if (cb) {
-      const newValue = effect2.run();
-      if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {
-        if (cleanup) {
-          cleanup();
-        }
-        callWithAsyncErrorHandling(cb, instance, 3, [
-          newValue,
-          // pass undefined as the old value when it's changed for the first time
-          oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
-          onCleanup
-        ]);
-        oldValue = newValue;
-      }
-    } else {
-      effect2.run();
-    }
-  };
-  job.allowRecurse = !!cb;
-  let scheduler;
-  if (flush === "sync") {
-    scheduler = job;
-  } else if (flush === "post") {
-    scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense);
-  } else {
-    job.pre = true;
-    if (instance)
-      job.id = instance.uid;
-    scheduler = () => queueJob(job);
-  }
-  const effect2 = new ReactiveEffect(getter, NOOP, scheduler);
-  const scope = getCurrentScope();
-  const unwatch = () => {
-    effect2.stop();
-    if (scope) {
-      remove(scope.effects, effect2);
-    }
-  };
-  {
-    effect2.onTrack = onTrack;
-    effect2.onTrigger = onTrigger;
-  }
-  if (cb) {
-    if (immediate) {
-      job();
-    } else {
-      oldValue = effect2.run();
-    }
-  } else if (flush === "post") {
-    queuePostRenderEffect$1(
-      effect2.run.bind(effect2),
-      instance && instance.suspense
-    );
-  } else {
-    effect2.run();
-  }
-  return unwatch;
-}
-function instanceWatch(source, value, options) {
-  const publicThis = this.proxy;
-  const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
-  let cb;
-  if (isFunction(value)) {
-    cb = value;
-  } else {
-    cb = value.handler;
-    options = value;
-  }
-  const reset = setCurrentInstance(this);
-  const res = doWatch(getter, cb.bind(publicThis), options);
-  reset();
-  return res;
-}
-function createPathGetter(ctx, path) {
-  const segments = path.split(".");
-  return () => {
-    let cur = ctx;
-    for (let i = 0; i < segments.length && cur; i++) {
-      cur = cur[segments[i]];
-    }
-    return cur;
-  };
-}
-function traverse(value, depth, currentDepth = 0, seen) {
-  if (!isObject(value) || value["__v_skip"]) {
-    return value;
-  }
-  if (depth && depth > 0) {
-    if (currentDepth >= depth) {
-      return value;
-    }
-    currentDepth++;
-  }
-  seen = seen || /* @__PURE__ */ new Set();
-  if (seen.has(value)) {
-    return value;
-  }
-  seen.add(value);
-  if (isRef(value)) {
-    traverse(value.value, depth, currentDepth, seen);
-  } else if (isArray(value)) {
-    for (let i = 0; i < value.length; i++) {
-      traverse(value[i], depth, currentDepth, seen);
-    }
-  } else if (isSet(value) || isMap(value)) {
-    value.forEach((v) => {
-      traverse(v, depth, currentDepth, seen);
-    });
-  } else if (isPlainObject(value)) {
-    for (const key in value) {
-      traverse(value[key], depth, currentDepth, seen);
-    }
-  }
-  return value;
-}
-function validateDirectiveName(name) {
-  if (isBuiltInDirective(name)) {
-    warn$1("Do not use built-in directive ids as custom directive id: " + name);
-  }
-}
-function createAppContext() {
-  return {
-    app: null,
-    config: {
-      isNativeTag: NO,
-      performance: false,
-      globalProperties: {},
-      optionMergeStrategies: {},
-      errorHandler: void 0,
-      warnHandler: void 0,
-      compilerOptions: {}
-    },
-    mixins: [],
-    components: {},
-    directives: {},
-    provides: /* @__PURE__ */ Object.create(null),
-    optionsCache: /* @__PURE__ */ new WeakMap(),
-    propsCache: /* @__PURE__ */ new WeakMap(),
-    emitsCache: /* @__PURE__ */ new WeakMap()
-  };
-}
-let uid$1 = 0;
-function createAppAPI(render, hydrate) {
-  return function createApp2(rootComponent, rootProps = null) {
-    if (!isFunction(rootComponent)) {
-      rootComponent = extend({}, rootComponent);
-    }
-    if (rootProps != null && !isObject(rootProps)) {
-      warn$1(`root props passed to app.mount() must be an object.`);
-      rootProps = null;
-    }
-    const context = createAppContext();
-    const installedPlugins = /* @__PURE__ */ new WeakSet();
-    const app = context.app = {
-      _uid: uid$1++,
-      _component: rootComponent,
-      _props: rootProps,
-      _container: null,
-      _context: context,
-      _instance: null,
-      version,
-      get config() {
-        return context.config;
-      },
-      set config(v) {
-        {
-          warn$1(
-            `app.config cannot be replaced. Modify individual options instead.`
-          );
-        }
-      },
-      use(plugin2, ...options) {
-        if (installedPlugins.has(plugin2)) {
-          warn$1(`Plugin has already been applied to target app.`);
-        } else if (plugin2 && isFunction(plugin2.install)) {
-          installedPlugins.add(plugin2);
-          plugin2.install(app, ...options);
-        } else if (isFunction(plugin2)) {
-          installedPlugins.add(plugin2);
-          plugin2(app, ...options);
-        } else {
-          warn$1(
-            `A plugin must either be a function or an object with an "install" function.`
-          );
-        }
-        return app;
-      },
-      mixin(mixin) {
-        {
-          if (!context.mixins.includes(mixin)) {
-            context.mixins.push(mixin);
-          } else {
-            warn$1(
-              "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
-            );
-          }
-        }
-        return app;
-      },
-      component(name, component) {
-        {
-          validateComponentName(name, context.config);
-        }
-        if (!component) {
-          return context.components[name];
-        }
-        if (context.components[name]) {
-          warn$1(`Component "${name}" has already been registered in target app.`);
-        }
-        context.components[name] = component;
-        return app;
-      },
-      directive(name, directive) {
-        {
-          validateDirectiveName(name);
-        }
-        if (!directive) {
-          return context.directives[name];
-        }
-        if (context.directives[name]) {
-          warn$1(`Directive "${name}" has already been registered in target app.`);
-        }
-        context.directives[name] = directive;
-        return app;
-      },
-      // fixed by xxxxxx
-      mount() {
-      },
-      // fixed by xxxxxx
-      unmount() {
-      },
-      provide(key, value) {
-        if (key in context.provides) {
-          warn$1(
-            `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
-          );
-        }
-        context.provides[key] = value;
-        return app;
-      },
-      runWithContext(fn) {
-        const lastApp = currentApp;
-        currentApp = app;
-        try {
-          return fn();
-        } finally {
-          currentApp = lastApp;
-        }
-      }
-    };
-    return app;
-  };
-}
-let currentApp = null;
-function provide(key, value) {
-  if (!currentInstance) {
-    {
-      warn$1(`provide() can only be used inside setup().`);
-    }
-  } else {
-    let provides = currentInstance.provides;
-    const parentProvides = currentInstance.parent && currentInstance.parent.provides;
-    if (parentProvides === provides) {
-      provides = currentInstance.provides = Object.create(parentProvides);
-    }
-    provides[key] = value;
-    if (currentInstance.type.mpType === "app") {
-      currentInstance.appContext.app.provide(key, value);
-    }
-  }
-}
-function inject(key, defaultValue, treatDefaultAsFactory = false) {
-  const instance = currentInstance || currentRenderingInstance;
-  if (instance || currentApp) {
-    const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;
-    if (provides && key in provides) {
-      return provides[key];
-    } else if (arguments.length > 1) {
-      return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
-    } else {
-      warn$1(`injection "${String(key)}" not found.`);
-    }
-  } else {
-    warn$1(`inject() can only be used inside setup() or functional components.`);
-  }
-}
-const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
-function onActivated(hook, target) {
-  registerKeepAliveHook(hook, "a", target);
-}
-function onDeactivated(hook, target) {
-  registerKeepAliveHook(hook, "da", target);
-}
-function registerKeepAliveHook(hook, type, target = currentInstance) {
-  const wrappedHook = hook.__wdc || (hook.__wdc = () => {
-    let current = target;
-    while (current) {
-      if (current.isDeactivated) {
-        return;
-      }
-      current = current.parent;
-    }
-    return hook();
-  });
-  injectHook(type, wrappedHook, target);
-  if (target) {
-    let current = target.parent;
-    while (current && current.parent) {
-      if (isKeepAlive(current.parent.vnode)) {
-        injectToKeepAliveRoot(wrappedHook, type, target, current);
-      }
-      current = current.parent;
-    }
-  }
-}
-function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
-  const injected = injectHook(
-    type,
-    hook,
-    keepAliveRoot,
-    true
-    /* prepend */
-  );
-  onUnmounted(() => {
-    remove(keepAliveRoot[type], injected);
-  }, target);
-}
-function injectHook(type, hook, target = currentInstance, prepend = false) {
-  if (target) {
-    if (isRootHook(type)) {
-      target = target.root;
-    }
-    const hooks = target[type] || (target[type] = []);
-    const wrappedHook = hook.__weh || (hook.__weh = (...args) => {
-      if (target.isUnmounted) {
-        return;
-      }
-      pauseTracking();
-      const reset = setCurrentInstance(target);
-      const res = callWithAsyncErrorHandling(hook, target, type, args);
-      reset();
-      resetTracking();
-      return res;
-    });
-    if (prepend) {
-      hooks.unshift(wrappedHook);
-    } else {
-      hooks.push(wrappedHook);
-    }
-    return wrappedHook;
-  } else {
-    const apiName = toHandlerKey(
-      (ErrorTypeStrings[type] || type.replace(/^on/, "")).replace(/ hook$/, "")
-    );
-    warn$1(
-      `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().`
-    );
-  }
-}
-const createHook$1 = (lifecycle) => (hook, target = currentInstance) => (
-  // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)
-  (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target)
-);
-const onBeforeMount = createHook$1("bm");
-const onMounted = createHook$1("m");
-const onBeforeUpdate = createHook$1("bu");
-const onUpdated = createHook$1("u");
-const onBeforeUnmount = createHook$1("bum");
-const onUnmounted = createHook$1("um");
-const onServerPrefetch = createHook$1("sp");
-const onRenderTriggered = createHook$1(
-  "rtg"
-);
-const onRenderTracked = createHook$1(
-  "rtc"
-);
-function onErrorCaptured(hook, target = currentInstance) {
-  injectHook("ec", hook, target);
-}
-const getPublicInstance = (i) => {
-  if (!i)
-    return null;
-  if (isStatefulComponent(i))
-    return getExposeProxy(i) || i.proxy;
-  return getPublicInstance(i.parent);
-};
-const publicPropertiesMap = (
-  // Move PURE marker to new line to workaround compiler discarding it
-  // due to type annotation
-  /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
-    $: (i) => i,
-    // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的
-    // $el: i => i.vnode.el,
-    $el: (i) => i.__$el || (i.__$el = {}),
-    $data: (i) => i.data,
-    $props: (i) => shallowReadonly(i.props),
-    $attrs: (i) => shallowReadonly(i.attrs),
-    $slots: (i) => shallowReadonly(i.slots),
-    $refs: (i) => shallowReadonly(i.refs),
-    $parent: (i) => getPublicInstance(i.parent),
-    $root: (i) => getPublicInstance(i.root),
-    $emit: (i) => i.emit,
-    $options: (i) => resolveMergedOptions(i),
-    $forceUpdate: (i) => i.f || (i.f = () => {
-      i.effect.dirty = true;
-      queueJob(i.update);
-    }),
-    // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx
-    $watch: (i) => instanceWatch.bind(i)
-  })
-);
-const isReservedPrefix = (key) => key === "_" || key === "$";
-const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);
-const PublicInstanceProxyHandlers = {
-  get({ _: instance }, key) {
-    const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
-    if (key === "__isVue") {
-      return true;
-    }
-    let normalizedProps;
-    if (key[0] !== "$") {
-      const n2 = accessCache[key];
-      if (n2 !== void 0) {
-        switch (n2) {
-          case 1:
-            return setupState[key];
-          case 2:
-            return data[key];
-          case 4:
-            return ctx[key];
-          case 3:
-            return props[key];
-        }
-      } else if (hasSetupBinding(setupState, key)) {
-        accessCache[key] = 1;
-        return setupState[key];
-      } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
-        accessCache[key] = 2;
-        return data[key];
-      } else if (
-        // only cache other properties when instance has declared (thus stable)
-        // props
-        (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)
-      ) {
-        accessCache[key] = 3;
-        return props[key];
-      } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
-        accessCache[key] = 4;
-        return ctx[key];
-      } else if (shouldCacheAccess) {
-        accessCache[key] = 0;
-      }
-    }
-    const publicGetter = publicPropertiesMap[key];
-    let cssModule, globalProperties;
-    if (publicGetter) {
-      if (key === "$attrs") {
-        track(instance, "get", key);
-      } else if (key === "$slots") {
-        track(instance, "get", key);
-      }
-      return publicGetter(instance);
-    } else if (
-      // css module (injected by vue-loader)
-      (cssModule = type.__cssModules) && (cssModule = cssModule[key])
-    ) {
-      return cssModule;
-    } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
-      accessCache[key] = 4;
-      return ctx[key];
-    } else if (
-      // global properties
-      globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)
-    ) {
-      {
-        return globalProperties[key];
-      }
-    } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading
-    // to infinite warning loop
-    key.indexOf("__v") !== 0)) {
-      if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {
-        warn$1(
-          `Property ${JSON.stringify(
-            key
-          )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
-        );
-      } else if (instance === currentRenderingInstance) {
-        warn$1(
-          `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
-        );
-      }
-    }
-  },
-  set({ _: instance }, key, value) {
-    const { data, setupState, ctx } = instance;
-    if (hasSetupBinding(setupState, key)) {
-      setupState[key] = value;
-      return true;
-    } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) {
-      warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
-      return false;
-    } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
-      data[key] = value;
-      return true;
-    } else if (hasOwn(instance.props, key)) {
-      warn$1(`Attempting to mutate prop "${key}". Props are readonly.`);
-      return false;
-    }
-    if (key[0] === "$" && key.slice(1) in instance) {
-      warn$1(
-        `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.`
-      );
-      return false;
-    } else {
-      if (key in instance.appContext.config.globalProperties) {
-        Object.defineProperty(ctx, key, {
-          enumerable: true,
-          configurable: true,
-          value
-        });
-      } else {
-        ctx[key] = value;
-      }
-    }
-    return true;
-  },
-  has({
-    _: { data, setupState, accessCache, ctx, appContext, propsOptions }
-  }, key) {
-    let normalizedProps;
-    return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);
-  },
-  defineProperty(target, key, descriptor) {
-    if (descriptor.get != null) {
-      target._.accessCache[key] = 0;
-    } else if (hasOwn(descriptor, "value")) {
-      this.set(target, key, descriptor.value, null);
-    }
-    return Reflect.defineProperty(target, key, descriptor);
-  }
-};
-{
-  PublicInstanceProxyHandlers.ownKeys = (target) => {
-    warn$1(
-      `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`
-    );
-    return Reflect.ownKeys(target);
-  };
-}
-function createDevRenderContext(instance) {
-  const target = {};
-  Object.defineProperty(target, `_`, {
-    configurable: true,
-    enumerable: false,
-    get: () => instance
-  });
-  Object.keys(publicPropertiesMap).forEach((key) => {
-    Object.defineProperty(target, key, {
-      configurable: true,
-      enumerable: false,
-      get: () => publicPropertiesMap[key](instance),
-      // intercepted by the proxy so no need for implementation,
-      // but needed to prevent set errors
-      set: NOOP
-    });
-  });
-  return target;
-}
-function exposePropsOnRenderContext(instance) {
-  const {
-    ctx,
-    propsOptions: [propsOptions]
-  } = instance;
-  if (propsOptions) {
-    Object.keys(propsOptions).forEach((key) => {
-      Object.defineProperty(ctx, key, {
-        enumerable: true,
-        configurable: true,
-        get: () => instance.props[key],
-        set: NOOP
-      });
-    });
-  }
-}
-function exposeSetupStateOnRenderContext(instance) {
-  const { ctx, setupState } = instance;
-  Object.keys(toRaw(setupState)).forEach((key) => {
-    if (!setupState.__isScriptSetup) {
-      if (isReservedPrefix(key[0])) {
-        warn$1(
-          `setup() return property ${JSON.stringify(
-            key
-          )} should not start with "$" or "_" which are reserved prefixes for Vue internals.`
-        );
-        return;
-      }
-      Object.defineProperty(ctx, key, {
-        enumerable: true,
-        configurable: true,
-        get: () => setupState[key],
-        set: NOOP
-      });
-    }
-  });
-}
-function normalizePropsOrEmits(props) {
-  return isArray(props) ? props.reduce(
-    (normalized, p2) => (normalized[p2] = null, normalized),
-    {}
-  ) : props;
-}
-function createDuplicateChecker() {
-  const cache = /* @__PURE__ */ Object.create(null);
-  return (type, key) => {
-    if (cache[key]) {
-      warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`);
-    } else {
-      cache[key] = type;
-    }
-  };
-}
-let shouldCacheAccess = true;
-function applyOptions$1(instance) {
-  const options = resolveMergedOptions(instance);
-  const publicThis = instance.proxy;
-  const ctx = instance.ctx;
-  shouldCacheAccess = false;
-  if (options.beforeCreate) {
-    callHook$1(options.beforeCreate, instance, "bc");
-  }
-  const {
-    // state
-    data: dataOptions,
-    computed: computedOptions,
-    methods,
-    watch: watchOptions,
-    provide: provideOptions,
-    inject: injectOptions,
-    // lifecycle
-    created,
-    beforeMount,
-    mounted,
-    beforeUpdate,
-    updated,
-    activated,
-    deactivated,
-    beforeDestroy,
-    beforeUnmount,
-    destroyed,
-    unmounted,
-    render,
-    renderTracked,
-    renderTriggered,
-    errorCaptured,
-    serverPrefetch,
-    // public API
-    expose,
-    inheritAttrs,
-    // assets
-    components,
-    directives,
-    filters
-  } = options;
-  const checkDuplicateProperties = createDuplicateChecker();
-  {
-    const [propsOptions] = instance.propsOptions;
-    if (propsOptions) {
-      for (const key in propsOptions) {
-        checkDuplicateProperties("Props", key);
-      }
-    }
-  }
-  function initInjections() {
-    if (injectOptions) {
-      resolveInjections(injectOptions, ctx, checkDuplicateProperties);
-    }
-  }
-  {
-    initInjections();
-  }
-  if (methods) {
-    for (const key in methods) {
-      const methodHandler = methods[key];
-      if (isFunction(methodHandler)) {
-        {
-          Object.defineProperty(ctx, key, {
-            value: methodHandler.bind(publicThis),
-            configurable: true,
-            enumerable: true,
-            writable: true
-          });
-        }
-        {
-          checkDuplicateProperties("Methods", key);
-        }
-      } else {
-        warn$1(
-          `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?`
-        );
-      }
-    }
-  }
-  if (dataOptions) {
-    if (!isFunction(dataOptions)) {
-      warn$1(
-        `The data option must be a function. Plain object usage is no longer supported.`
-      );
-    }
-    const data = dataOptions.call(publicThis, publicThis);
-    if (isPromise(data)) {
-      warn$1(
-        `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`
-      );
-    }
-    if (!isObject(data)) {
-      warn$1(`data() should return an object.`);
-    } else {
-      instance.data = reactive(data);
-      {
-        for (const key in data) {
-          checkDuplicateProperties("Data", key);
-          if (!isReservedPrefix(key[0])) {
-            Object.defineProperty(ctx, key, {
-              configurable: true,
-              enumerable: true,
-              get: () => data[key],
-              set: NOOP
-            });
-          }
-        }
-      }
-    }
-  }
-  shouldCacheAccess = true;
-  if (computedOptions) {
-    for (const key in computedOptions) {
-      const opt = computedOptions[key];
-      const get2 = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
-      if (get2 === NOOP) {
-        warn$1(`Computed property "${key}" has no getter.`);
-      }
-      const set2 = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
-        warn$1(
-          `Write operation failed: computed property "${key}" is readonly.`
-        );
-      };
-      const c2 = computed({
-        get: get2,
-        set: set2
-      });
-      Object.defineProperty(ctx, key, {
-        enumerable: true,
-        configurable: true,
-        get: () => c2.value,
-        set: (v) => c2.value = v
-      });
-      {
-        checkDuplicateProperties("Computed", key);
-      }
-    }
-  }
-  if (watchOptions) {
-    for (const key in watchOptions) {
-      createWatcher(watchOptions[key], ctx, publicThis, key);
-    }
-  }
-  function initProvides() {
-    if (provideOptions) {
-      const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;
-      Reflect.ownKeys(provides).forEach((key) => {
-        provide(key, provides[key]);
-      });
-    }
-  }
-  {
-    initProvides();
-  }
-  {
-    if (created) {
-      callHook$1(created, instance, "c");
-    }
-  }
-  function registerLifecycleHook(register, hook) {
-    if (isArray(hook)) {
-      hook.forEach((_hook) => register(_hook.bind(publicThis)));
-    } else if (hook) {
-      register(hook.bind(publicThis));
-    }
-  }
-  registerLifecycleHook(onBeforeMount, beforeMount);
-  registerLifecycleHook(onMounted, mounted);
-  registerLifecycleHook(onBeforeUpdate, beforeUpdate);
-  registerLifecycleHook(onUpdated, updated);
-  registerLifecycleHook(onActivated, activated);
-  registerLifecycleHook(onDeactivated, deactivated);
-  registerLifecycleHook(onErrorCaptured, errorCaptured);
-  registerLifecycleHook(onRenderTracked, renderTracked);
-  registerLifecycleHook(onRenderTriggered, renderTriggered);
-  registerLifecycleHook(onBeforeUnmount, beforeUnmount);
-  registerLifecycleHook(onUnmounted, unmounted);
-  registerLifecycleHook(onServerPrefetch, serverPrefetch);
-  if (isArray(expose)) {
-    if (expose.length) {
-      const exposed = instance.exposed || (instance.exposed = {});
-      expose.forEach((key) => {
-        Object.defineProperty(exposed, key, {
-          get: () => publicThis[key],
-          set: (val) => publicThis[key] = val
-        });
-      });
-    } else if (!instance.exposed) {
-      instance.exposed = {};
-    }
-  }
-  if (render && instance.render === NOOP) {
-    instance.render = render;
-  }
-  if (inheritAttrs != null) {
-    instance.inheritAttrs = inheritAttrs;
-  }
-  if (components)
-    instance.components = components;
-  if (directives)
-    instance.directives = directives;
-  if (instance.ctx.$onApplyOptions) {
-    instance.ctx.$onApplyOptions(options, instance, publicThis);
-  }
-}
-function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {
-  if (isArray(injectOptions)) {
-    injectOptions = normalizeInject(injectOptions);
-  }
-  for (const key in injectOptions) {
-    const opt = injectOptions[key];
-    let injected;
-    if (isObject(opt)) {
-      if ("default" in opt) {
-        injected = inject(
-          opt.from || key,
-          opt.default,
-          true
-        );
-      } else {
-        injected = inject(opt.from || key);
-      }
-    } else {
-      injected = inject(opt);
-    }
-    if (isRef(injected)) {
-      Object.defineProperty(ctx, key, {
-        enumerable: true,
-        configurable: true,
-        get: () => injected.value,
-        set: (v) => injected.value = v
-      });
-    } else {
-      ctx[key] = injected;
-    }
-    {
-      checkDuplicateProperties("Inject", key);
-    }
-  }
-}
-function callHook$1(hook, instance, type) {
-  callWithAsyncErrorHandling(
-    isArray(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy),
-    instance,
-    type
-  );
-}
-function createWatcher(raw, ctx, publicThis, key) {
-  const getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key];
-  if (isString(raw)) {
-    const handler = ctx[raw];
-    if (isFunction(handler)) {
-      watch(getter, handler);
-    } else {
-      warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
-    }
-  } else if (isFunction(raw)) {
-    watch(getter, raw.bind(publicThis));
-  } else if (isObject(raw)) {
-    if (isArray(raw)) {
-      raw.forEach((r2) => createWatcher(r2, ctx, publicThis, key));
-    } else {
-      const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
-      if (isFunction(handler)) {
-        watch(getter, handler, raw);
-      } else {
-        warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
-      }
-    }
-  } else {
-    warn$1(`Invalid watch option: "${key}"`, raw);
-  }
-}
-function resolveMergedOptions(instance) {
-  const base = instance.type;
-  const { mixins, extends: extendsOptions } = base;
-  const {
-    mixins: globalMixins,
-    optionsCache: cache,
-    config: { optionMergeStrategies }
-  } = instance.appContext;
-  const cached = cache.get(base);
-  let resolved;
-  if (cached) {
-    resolved = cached;
-  } else if (!globalMixins.length && !mixins && !extendsOptions) {
-    {
-      resolved = base;
-    }
-  } else {
-    resolved = {};
-    if (globalMixins.length) {
-      globalMixins.forEach(
-        (m2) => mergeOptions(resolved, m2, optionMergeStrategies, true)
-      );
-    }
-    mergeOptions(resolved, base, optionMergeStrategies);
-  }
-  if (isObject(base)) {
-    cache.set(base, resolved);
-  }
-  return resolved;
-}
-function mergeOptions(to, from, strats, asMixin = false) {
-  const { mixins, extends: extendsOptions } = from;
-  if (extendsOptions) {
-    mergeOptions(to, extendsOptions, strats, true);
-  }
-  if (mixins) {
-    mixins.forEach(
-      (m2) => mergeOptions(to, m2, strats, true)
-    );
-  }
-  for (const key in from) {
-    if (asMixin && key === "expose") {
-      warn$1(
-        `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`
-      );
-    } else {
-      const strat = internalOptionMergeStrats[key] || strats && strats[key];
-      to[key] = strat ? strat(to[key], from[key]) : from[key];
-    }
-  }
-  return to;
-}
-const internalOptionMergeStrats = {
-  data: mergeDataFn,
-  props: mergeEmitsOrPropsOptions,
-  emits: mergeEmitsOrPropsOptions,
-  // objects
-  methods: mergeObjectOptions,
-  computed: mergeObjectOptions,
-  // lifecycle
-  beforeCreate: mergeAsArray$1,
-  created: mergeAsArray$1,
-  beforeMount: mergeAsArray$1,
-  mounted: mergeAsArray$1,
-  beforeUpdate: mergeAsArray$1,
-  updated: mergeAsArray$1,
-  beforeDestroy: mergeAsArray$1,
-  beforeUnmount: mergeAsArray$1,
-  destroyed: mergeAsArray$1,
-  unmounted: mergeAsArray$1,
-  activated: mergeAsArray$1,
-  deactivated: mergeAsArray$1,
-  errorCaptured: mergeAsArray$1,
-  serverPrefetch: mergeAsArray$1,
-  // assets
-  components: mergeObjectOptions,
-  directives: mergeObjectOptions,
-  // watch
-  watch: mergeWatchOptions,
-  // provide / inject
-  provide: mergeDataFn,
-  inject: mergeInject
-};
-function mergeDataFn(to, from) {
-  if (!from) {
-    return to;
-  }
-  if (!to) {
-    return from;
-  }
-  return function mergedDataFn() {
-    return extend(
-      isFunction(to) ? to.call(this, this) : to,
-      isFunction(from) ? from.call(this, this) : from
-    );
-  };
-}
-function mergeInject(to, from) {
-  return mergeObjectOptions(normalizeInject(to), normalizeInject(from));
-}
-function normalizeInject(raw) {
-  if (isArray(raw)) {
-    const res = {};
-    for (let i = 0; i < raw.length; i++) {
-      res[raw[i]] = raw[i];
-    }
-    return res;
-  }
-  return raw;
-}
-function mergeAsArray$1(to, from) {
-  return to ? [...new Set([].concat(to, from))] : from;
-}
-function mergeObjectOptions(to, from) {
-  return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;
-}
-function mergeEmitsOrPropsOptions(to, from) {
-  if (to) {
-    if (isArray(to) && isArray(from)) {
-      return [.../* @__PURE__ */ new Set([...to, ...from])];
-    }
-    return extend(
-      /* @__PURE__ */ Object.create(null),
-      normalizePropsOrEmits(to),
-      normalizePropsOrEmits(from != null ? from : {})
-    );
-  } else {
-    return from;
-  }
-}
-function mergeWatchOptions(to, from) {
-  if (!to)
-    return from;
-  if (!from)
-    return to;
-  const merged = extend(/* @__PURE__ */ Object.create(null), to);
-  for (const key in from) {
-    merged[key] = mergeAsArray$1(to[key], from[key]);
-  }
-  return merged;
-}
-function initProps$1(instance, rawProps, isStateful, isSSR = false) {
-  const props = {};
-  const attrs = {};
-  instance.propsDefaults = /* @__PURE__ */ Object.create(null);
-  setFullProps(instance, rawProps, props, attrs);
-  for (const key in instance.propsOptions[0]) {
-    if (!(key in props)) {
-      props[key] = void 0;
-    }
-  }
-  {
-    validateProps(rawProps || {}, props, instance);
-  }
-  if (isStateful) {
-    instance.props = isSSR ? props : shallowReactive(props);
-  } else {
-    if (!instance.type.props) {
-      instance.props = attrs;
-    } else {
-      instance.props = props;
-    }
-  }
-  instance.attrs = attrs;
-}
-function isInHmrContext(instance) {
-}
-function updateProps(instance, rawProps, rawPrevProps, optimized) {
-  const {
-    props,
-    attrs,
-    vnode: { patchFlag }
-  } = instance;
-  const rawCurrentProps = toRaw(props);
-  const [options] = instance.propsOptions;
-  let hasAttrsChanged = false;
-  if (
-    // always force full diff in dev
-    // - #1942 if hmr is enabled with sfc component
-    // - vite#872 non-sfc component used by sfc component
-    !isInHmrContext() && (optimized || patchFlag > 0) && !(patchFlag & 16)
-  ) {
-    if (patchFlag & 8) {
-      const propsToUpdate = instance.vnode.dynamicProps;
-      for (let i = 0; i < propsToUpdate.length; i++) {
-        let key = propsToUpdate[i];
-        if (isEmitListener(instance.emitsOptions, key)) {
-          continue;
-        }
-        const value = rawProps[key];
-        if (options) {
-          if (hasOwn(attrs, key)) {
-            if (value !== attrs[key]) {
-              attrs[key] = value;
-              hasAttrsChanged = true;
-            }
-          } else {
-            const camelizedKey = camelize(key);
-            props[camelizedKey] = resolvePropValue$1(
-              options,
-              rawCurrentProps,
-              camelizedKey,
-              value,
-              instance,
-              false
-            );
-          }
-        } else {
-          if (value !== attrs[key]) {
-            attrs[key] = value;
-            hasAttrsChanged = true;
-          }
-        }
-      }
-    }
-  } else {
-    if (setFullProps(instance, rawProps, props, attrs)) {
-      hasAttrsChanged = true;
-    }
-    let kebabKey;
-    for (const key in rawCurrentProps) {
-      if (!rawProps || // for camelCase
-      !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case
-      // and converted to camelCase (#955)
-      ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
-        if (options) {
-          if (rawPrevProps && // for camelCase
-          (rawPrevProps[key] !== void 0 || // for kebab-case
-          rawPrevProps[kebabKey] !== void 0)) {
-            props[key] = resolvePropValue$1(
-              options,
-              rawCurrentProps,
-              key,
-              void 0,
-              instance,
-              true
-            );
-          }
-        } else {
-          delete props[key];
-        }
-      }
-    }
-    if (attrs !== rawCurrentProps) {
-      for (const key in attrs) {
-        if (!rawProps || !hasOwn(rawProps, key) && true) {
-          delete attrs[key];
-          hasAttrsChanged = true;
-        }
-      }
-    }
-  }
-  if (hasAttrsChanged) {
-    trigger(instance, "set", "$attrs");
-  }
-  {
-    validateProps(rawProps || {}, props, instance);
-  }
-}
-function setFullProps(instance, rawProps, props, attrs) {
-  const [options, needCastKeys] = instance.propsOptions;
-  let hasAttrsChanged = false;
-  let rawCastValues;
-  if (rawProps) {
-    for (let key in rawProps) {
-      if (isReservedProp(key)) {
-        continue;
-      }
-      const value = rawProps[key];
-      let camelKey;
-      if (options && hasOwn(options, camelKey = camelize(key))) {
-        if (!needCastKeys || !needCastKeys.includes(camelKey)) {
-          props[camelKey] = value;
-        } else {
-          (rawCastValues || (rawCastValues = {}))[camelKey] = value;
-        }
-      } else if (!isEmitListener(instance.emitsOptions, key)) {
-        if (!(key in attrs) || value !== attrs[key]) {
-          attrs[key] = value;
-          hasAttrsChanged = true;
-        }
-      }
-    }
-  }
-  if (needCastKeys) {
-    const rawCurrentProps = toRaw(props);
-    const castValues = rawCastValues || EMPTY_OBJ;
-    for (let i = 0; i < needCastKeys.length; i++) {
-      const key = needCastKeys[i];
-      props[key] = resolvePropValue$1(
-        options,
-        rawCurrentProps,
-        key,
-        castValues[key],
-        instance,
-        !hasOwn(castValues, key)
-      );
-    }
-  }
-  return hasAttrsChanged;
-}
-function resolvePropValue$1(options, props, key, value, instance, isAbsent) {
-  const opt = options[key];
-  if (opt != null) {
-    const hasDefault = hasOwn(opt, "default");
-    if (hasDefault && value === void 0) {
-      const defaultValue = opt.default;
-      if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {
-        const { propsDefaults } = instance;
-        if (key in propsDefaults) {
-          value = propsDefaults[key];
-        } else {
-          const reset = setCurrentInstance(instance);
-          value = propsDefaults[key] = defaultValue.call(
-            null,
-            props
-          );
-          reset();
-        }
-      } else {
-        value = defaultValue;
-      }
-    }
-    if (opt[
-      0
-      /* shouldCast */
-    ]) {
-      if (isAbsent && !hasDefault) {
-        value = false;
-      } else if (opt[
-        1
-        /* shouldCastTrue */
-      ] && (value === "" || value === hyphenate(key))) {
-        value = true;
-      }
-    }
-  }
-  return value;
-}
-function normalizePropsOptions(comp, appContext, asMixin = false) {
-  const cache = appContext.propsCache;
-  const cached = cache.get(comp);
-  if (cached) {
-    return cached;
-  }
-  const raw = comp.props;
-  const normalized = {};
-  const needCastKeys = [];
-  let hasExtends = false;
-  if (!isFunction(comp)) {
-    const extendProps = (raw2) => {
-      hasExtends = true;
-      const [props, keys] = normalizePropsOptions(raw2, appContext, true);
-      extend(normalized, props);
-      if (keys)
-        needCastKeys.push(...keys);
-    };
-    if (!asMixin && appContext.mixins.length) {
-      appContext.mixins.forEach(extendProps);
-    }
-    if (comp.extends) {
-      extendProps(comp.extends);
-    }
-    if (comp.mixins) {
-      comp.mixins.forEach(extendProps);
-    }
-  }
-  if (!raw && !hasExtends) {
-    if (isObject(comp)) {
-      cache.set(comp, EMPTY_ARR);
-    }
-    return EMPTY_ARR;
-  }
-  if (isArray(raw)) {
-    for (let i = 0; i < raw.length; i++) {
-      if (!isString(raw[i])) {
-        warn$1(`props must be strings when using array syntax.`, raw[i]);
-      }
-      const normalizedKey = camelize(raw[i]);
-      if (validatePropName(normalizedKey)) {
-        normalized[normalizedKey] = EMPTY_OBJ;
-      }
-    }
-  } else if (raw) {
-    if (!isObject(raw)) {
-      warn$1(`invalid props options`, raw);
-    }
-    for (const key in raw) {
-      const normalizedKey = camelize(key);
-      if (validatePropName(normalizedKey)) {
-        const opt = raw[key];
-        const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);
-        if (prop) {
-          const booleanIndex = getTypeIndex(Boolean, prop.type);
-          const stringIndex = getTypeIndex(String, prop.type);
-          prop[
-            0
-            /* shouldCast */
-          ] = booleanIndex > -1;
-          prop[
-            1
-            /* shouldCastTrue */
-          ] = stringIndex < 0 || booleanIndex < stringIndex;
-          if (booleanIndex > -1 || hasOwn(prop, "default")) {
-            needCastKeys.push(normalizedKey);
-          }
-        }
-      }
-    }
-  }
-  const res = [normalized, needCastKeys];
-  if (isObject(comp)) {
-    cache.set(comp, res);
-  }
-  return res;
-}
-function validatePropName(key) {
-  if (key[0] !== "$" && !isReservedProp(key)) {
-    return true;
-  } else {
-    warn$1(`Invalid prop name: "${key}" is a reserved property.`);
-  }
-  return false;
-}
-function getType$1(ctor) {
-  if (ctor === null) {
-    return "null";
-  }
-  if (typeof ctor === "function") {
-    return ctor.name || "";
-  } else if (typeof ctor === "object") {
-    const name = ctor.constructor && ctor.constructor.name;
-    return name || "";
-  }
-  return "";
-}
-function isSameType(a, b) {
-  return getType$1(a) === getType$1(b);
-}
-function getTypeIndex(type, expectedTypes) {
-  if (isArray(expectedTypes)) {
-    return expectedTypes.findIndex((t2) => isSameType(t2, type));
-  } else if (isFunction(expectedTypes)) {
-    return isSameType(expectedTypes, type) ? 0 : -1;
-  }
-  return -1;
-}
-function validateProps(rawProps, props, instance) {
-  const resolvedValues = toRaw(props);
-  const options = instance.propsOptions[0];
-  for (const key in options) {
-    let opt = options[key];
-    if (opt == null)
-      continue;
-    validateProp$1(
-      key,
-      resolvedValues[key],
-      opt,
-      shallowReadonly(resolvedValues),
-      !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))
-    );
-  }
-}
-function validateProp$1(name, value, prop, props, isAbsent) {
-  const { type, required, validator, skipCheck } = prop;
-  if (required && isAbsent) {
-    warn$1('Missing required prop: "' + name + '"');
-    return;
-  }
-  if (value == null && !required) {
-    return;
-  }
-  if (type != null && type !== true && !skipCheck) {
-    let isValid = false;
-    const types = isArray(type) ? type : [type];
-    const expectedTypes = [];
-    for (let i = 0; i < types.length && !isValid; i++) {
-      const { valid, expectedType } = assertType$1(value, types[i]);
-      expectedTypes.push(expectedType || "");
-      isValid = valid;
-    }
-    if (!isValid) {
-      warn$1(getInvalidTypeMessage$1(name, value, expectedTypes));
-      return;
-    }
-  }
-  if (validator && !validator(value, props)) {
-    warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
-  }
-}
-const isSimpleType$1 = /* @__PURE__ */ makeMap(
-  "String,Number,Boolean,Function,Symbol,BigInt"
-);
-function assertType$1(value, type) {
-  let valid;
-  const expectedType = getType$1(type);
-  if (isSimpleType$1(expectedType)) {
-    const t2 = typeof value;
-    valid = t2 === expectedType.toLowerCase();
-    if (!valid && t2 === "object") {
-      valid = value instanceof type;
-    }
-  } else if (expectedType === "Object") {
-    valid = isObject(value);
-  } else if (expectedType === "Array") {
-    valid = isArray(value);
-  } else if (expectedType === "null") {
-    valid = value === null;
-  } else {
-    valid = value instanceof type;
-  }
-  return {
-    valid,
-    expectedType
-  };
-}
-function getInvalidTypeMessage$1(name, value, expectedTypes) {
-  if (expectedTypes.length === 0) {
-    return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`;
-  }
-  let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`;
-  const expectedType = expectedTypes[0];
-  const receivedType = toRawType(value);
-  const expectedValue = styleValue$1(value, expectedType);
-  const receivedValue = styleValue$1(value, receivedType);
-  if (expectedTypes.length === 1 && isExplicable$1(expectedType) && !isBoolean$1(expectedType, receivedType)) {
-    message += ` with value ${expectedValue}`;
-  }
-  message += `, got ${receivedType} `;
-  if (isExplicable$1(receivedType)) {
-    message += `with value ${receivedValue}.`;
-  }
-  return message;
-}
-function styleValue$1(value, type) {
-  if (type === "String") {
-    return `"${value}"`;
-  } else if (type === "Number") {
-    return `${Number(value)}`;
-  } else {
-    return `${value}`;
-  }
-}
-function isExplicable$1(type) {
-  const explicitTypes = ["string", "number", "boolean"];
-  return explicitTypes.some((elem) => type.toLowerCase() === elem);
-}
-function isBoolean$1(...args) {
-  return args.some((elem) => elem.toLowerCase() === "boolean");
-}
-let supported;
-let perf;
-function startMeasure(instance, type) {
-  if (instance.appContext.config.performance && isSupported()) {
-    perf.mark(`vue-${type}-${instance.uid}`);
-  }
-  {
-    devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());
-  }
-}
-function endMeasure(instance, type) {
-  if (instance.appContext.config.performance && isSupported()) {
-    const startTag = `vue-${type}-${instance.uid}`;
-    const endTag = startTag + `:end`;
-    perf.mark(endTag);
-    perf.measure(
-      `<${formatComponentName(instance, instance.type)}> ${type}`,
-      startTag,
-      endTag
-    );
-    perf.clearMarks(startTag);
-    perf.clearMarks(endTag);
-  }
-  {
-    devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());
-  }
-}
-function isSupported() {
-  if (supported !== void 0) {
-    return supported;
-  }
-  if (typeof window !== "undefined" && window.performance) {
-    supported = true;
-    perf = window.performance;
-  } else {
-    supported = false;
-  }
-  return supported;
-}
-const queuePostRenderEffect$1 = queuePostFlushCb;
-const Fragment = Symbol.for("v-fgt");
-const Text = Symbol.for("v-txt");
-const Comment = Symbol.for("v-cmt");
-const Static = Symbol.for("v-stc");
-function isVNode(value) {
-  return value ? value.__v_isVNode === true : false;
-}
-const emptyAppContext = createAppContext();
-let uid = 0;
-function createComponentInstance(vnode, parent, suspense) {
-  const type = vnode.type;
-  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
-  const instance = {
-    uid: uid++,
-    vnode,
-    type,
-    parent,
-    appContext,
-    root: null,
-    // to be immediately set
-    next: null,
-    subTree: null,
-    // will be set synchronously right after creation
-    effect: null,
-    update: null,
-    // will be set synchronously right after creation
-    scope: new EffectScope(
-      true
-      /* detached */
-    ),
-    render: null,
-    proxy: null,
-    exposed: null,
-    exposeProxy: null,
-    withProxy: null,
-    provides: parent ? parent.provides : Object.create(appContext.provides),
-    accessCache: null,
-    renderCache: [],
-    // local resolved assets
-    components: null,
-    directives: null,
-    // resolved props and emits options
-    propsOptions: normalizePropsOptions(type, appContext),
-    emitsOptions: normalizeEmitsOptions(type, appContext),
-    // emit
-    emit: null,
-    // to be set immediately
-    emitted: null,
-    // props default value
-    propsDefaults: EMPTY_OBJ,
-    // inheritAttrs
-    inheritAttrs: type.inheritAttrs,
-    // state
-    ctx: EMPTY_OBJ,
-    data: EMPTY_OBJ,
-    props: EMPTY_OBJ,
-    attrs: EMPTY_OBJ,
-    slots: EMPTY_OBJ,
-    refs: EMPTY_OBJ,
-    setupState: EMPTY_OBJ,
-    setupContext: null,
-    attrsProxy: null,
-    slotsProxy: null,
-    // suspense related
-    suspense,
-    suspenseId: suspense ? suspense.pendingId : 0,
-    asyncDep: null,
-    asyncResolved: false,
-    // lifecycle hooks
-    // not using enums here because it results in computed properties
-    isMounted: false,
-    isUnmounted: false,
-    isDeactivated: false,
-    bc: null,
-    c: null,
-    bm: null,
-    m: null,
-    bu: null,
-    u: null,
-    um: null,
-    bum: null,
-    da: null,
-    a: null,
-    rtg: null,
-    rtc: null,
-    ec: null,
-    sp: null,
-    // fixed by xxxxxx 用于存储uni-app的元素缓存
-    $uniElements: /* @__PURE__ */ new Map(),
-    $templateUniElementRefs: [],
-    $templateUniElementStyles: {},
-    $eS: {},
-    $eA: {}
-  };
-  {
-    instance.ctx = createDevRenderContext(instance);
-  }
-  instance.root = parent ? parent.root : instance;
-  instance.emit = emit.bind(null, instance);
-  if (vnode.ce) {
-    vnode.ce(instance);
-  }
-  return instance;
-}
-let currentInstance = null;
-const getCurrentInstance = () => currentInstance || currentRenderingInstance;
-let internalSetCurrentInstance;
-let setInSSRSetupState;
-{
-  internalSetCurrentInstance = (i) => {
-    currentInstance = i;
-  };
-  setInSSRSetupState = (v) => {
-    isInSSRComponentSetup = v;
-  };
-}
-const setCurrentInstance = (instance) => {
-  const prev = currentInstance;
-  internalSetCurrentInstance(instance);
-  instance.scope.on();
-  return () => {
-    instance.scope.off();
-    internalSetCurrentInstance(prev);
-  };
-};
-const unsetCurrentInstance = () => {
-  currentInstance && currentInstance.scope.off();
-  internalSetCurrentInstance(null);
-};
-const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
-function validateComponentName(name, { isNativeTag }) {
-  if (isBuiltInTag(name) || isNativeTag(name)) {
-    warn$1(
-      "Do not use built-in or reserved HTML elements as component id: " + name
-    );
-  }
-}
-function isStatefulComponent(instance) {
-  return instance.vnode.shapeFlag & 4;
-}
-let isInSSRComponentSetup = false;
-function setupComponent(instance, isSSR = false) {
-  isSSR && setInSSRSetupState(isSSR);
-  const {
-    props
-    /*, children*/
-  } = instance.vnode;
-  const isStateful = isStatefulComponent(instance);
-  initProps$1(instance, props, isStateful, isSSR);
-  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
-  isSSR && setInSSRSetupState(false);
-  return setupResult;
-}
-function setupStatefulComponent(instance, isSSR) {
-  const Component2 = instance.type;
-  {
-    if (Component2.name) {
-      validateComponentName(Component2.name, instance.appContext.config);
-    }
-    if (Component2.components) {
-      const names = Object.keys(Component2.components);
-      for (let i = 0; i < names.length; i++) {
-        validateComponentName(names[i], instance.appContext.config);
-      }
-    }
-    if (Component2.directives) {
-      const names = Object.keys(Component2.directives);
-      for (let i = 0; i < names.length; i++) {
-        validateDirectiveName(names[i]);
-      }
-    }
-    if (Component2.compilerOptions && isRuntimeOnly()) {
-      warn$1(
-        `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`
-      );
-    }
-  }
-  instance.accessCache = /* @__PURE__ */ Object.create(null);
-  instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));
-  {
-    exposePropsOnRenderContext(instance);
-  }
-  const { setup } = Component2;
-  if (setup) {
-    const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
-    const reset = setCurrentInstance(instance);
-    pauseTracking();
-    const setupResult = callWithErrorHandling(
-      setup,
-      instance,
-      0,
-      [
-        shallowReadonly(instance.props),
-        setupContext
-      ]
-    );
-    resetTracking();
-    reset();
-    if (isPromise(setupResult)) {
-      setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
-      {
-        warn$1(
-          `setup() returned a Promise, but the version of Vue you are using does not support it yet.`
-        );
-      }
-    } else {
-      handleSetupResult(instance, setupResult, isSSR);
-    }
-  } else {
-    finishComponentSetup(instance, isSSR);
-  }
-}
-function handleSetupResult(instance, setupResult, isSSR) {
-  if (isFunction(setupResult)) {
-    {
-      instance.render = setupResult;
-    }
-  } else if (isObject(setupResult)) {
-    if (isVNode(setupResult)) {
-      warn$1(
-        `setup() should not return VNodes directly - return a render function instead.`
-      );
-    }
-    {
-      instance.devtoolsRawSetupState = setupResult;
-    }
-    instance.setupState = proxyRefs(setupResult);
-    {
-      exposeSetupStateOnRenderContext(instance);
-    }
-  } else if (setupResult !== void 0) {
-    warn$1(
-      `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`
-    );
-  }
-  finishComponentSetup(instance, isSSR);
-}
-let compile;
-const isRuntimeOnly = () => !compile;
-function finishComponentSetup(instance, isSSR, skipOptions) {
-  const Component2 = instance.type;
-  if (!instance.render) {
-    instance.render = Component2.render || NOOP;
-  }
-  {
-    const reset = setCurrentInstance(instance);
-    pauseTracking();
-    try {
-      applyOptions$1(instance);
-    } finally {
-      resetTracking();
-      reset();
-    }
-  }
-  if (!Component2.render && instance.render === NOOP && !isSSR) {
-    if (Component2.template) {
-      warn$1(
-        `Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".`
-      );
-    } else {
-      warn$1(`Component is missing template or render function.`);
-    }
-  }
-}
-function getAttrsProxy(instance) {
-  return instance.attrsProxy || (instance.attrsProxy = new Proxy(
-    instance.attrs,
-    {
-      get(target, key) {
-        track(instance, "get", "$attrs");
-        return target[key];
-      },
-      set() {
-        warn$1(`setupContext.attrs is readonly.`);
-        return false;
-      },
-      deleteProperty() {
-        warn$1(`setupContext.attrs is readonly.`);
-        return false;
-      }
-    }
-  ));
-}
-function getSlotsProxy(instance) {
-  return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {
-    get(target, key) {
-      track(instance, "get", "$slots");
-      return target[key];
-    }
-  }));
-}
-function createSetupContext(instance) {
-  const expose = (exposed) => {
-    {
-      if (instance.exposed) {
-        warn$1(`expose() should be called only once per setup().`);
-      }
-      if (exposed != null) {
-        let exposedType = typeof exposed;
-        if (exposedType === "object") {
-          if (isArray(exposed)) {
-            exposedType = "array";
-          } else if (isRef(exposed)) {
-            exposedType = "ref";
-          }
-        }
-        if (exposedType !== "object") {
-          warn$1(
-            `expose() should be passed a plain object, received ${exposedType}.`
-          );
-        }
-      }
-    }
-    instance.exposed = exposed || {};
-  };
-  {
-    return Object.freeze({
-      get attrs() {
-        return getAttrsProxy(instance);
-      },
-      get slots() {
-        return getSlotsProxy(instance);
-      },
-      get emit() {
-        return (event, ...args) => instance.emit(event, ...args);
-      },
-      expose
-    });
-  }
-}
-function getExposeProxy(instance) {
-  if (instance.exposed) {
-    return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
-      get(target, key) {
-        if (key in target) {
-          return target[key];
-        }
-        return instance.proxy[key];
-      },
-      has(target, key) {
-        return key in target || key in publicPropertiesMap;
-      }
-    }));
-  }
-}
-const classifyRE = /(?:^|[-_])(\w)/g;
-const classify = (str) => str.replace(classifyRE, (c2) => c2.toUpperCase()).replace(/[-_]/g, "");
-function getComponentName(Component2, includeInferred = true) {
-  return isFunction(Component2) ? Component2.displayName || Component2.name : Component2.name || includeInferred && Component2.__name;
-}
-function formatComponentName(instance, Component2, isRoot = false) {
-  let name = getComponentName(Component2);
-  if (!name && Component2.__file) {
-    const match = Component2.__file.match(/([^/\\]+)\.\w+$/);
-    if (match) {
-      name = match[1];
-    }
-  }
-  if (!name && instance && instance.parent) {
-    const inferFromRegistry = (registry) => {
-      for (const key in registry) {
-        if (registry[key] === Component2) {
-          return key;
-        }
-      }
-    };
-    name = inferFromRegistry(
-      instance.components || instance.parent.type.components
-    ) || inferFromRegistry(instance.appContext.components);
-  }
-  return name ? classify(name) : isRoot ? `App` : `Anonymous`;
-}
-const computed = (getterOrOptions, debugOptions) => {
-  const c2 = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
-  {
-    const i = getCurrentInstance();
-    if (i && i.appContext.config.warnRecursiveComputed) {
-      c2._warnRecursive = true;
-    }
-  }
-  return c2;
-};
-const version = "3.4.21";
-const warn = warn$1;
-function unwrapper(target) {
-  return unref(target);
-}
-const ARRAYTYPE = "[object Array]";
-const OBJECTTYPE = "[object Object]";
-function diff(current, pre) {
-  const result = {};
-  syncKeys(current, pre);
-  _diff(current, pre, "", result);
-  return result;
-}
-function syncKeys(current, pre) {
-  current = unwrapper(current);
-  if (current === pre)
-    return;
-  const rootCurrentType = toTypeString(current);
-  const rootPreType = toTypeString(pre);
-  if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {
-    for (let key in pre) {
-      const currentValue = current[key];
-      if (currentValue === void 0) {
-        current[key] = null;
-      } else {
-        syncKeys(currentValue, pre[key]);
-      }
-    }
-  } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {
-    if (current.length >= pre.length) {
-      pre.forEach((item, index2) => {
-        syncKeys(current[index2], item);
-      });
-    }
-  }
-}
-function _diff(current, pre, path, result) {
-  current = unwrapper(current);
-  if (current === pre)
-    return;
-  const rootCurrentType = toTypeString(current);
-  const rootPreType = toTypeString(pre);
-  if (rootCurrentType == OBJECTTYPE) {
-    if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {
-      setResult(result, path, current);
-    } else {
-      for (let key in current) {
-        const currentValue = unwrapper(current[key]);
-        const preValue = pre[key];
-        const currentType = toTypeString(currentValue);
-        const preType = toTypeString(preValue);
-        if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {
-          if (currentValue != preValue) {
-            setResult(
-              result,
-              (path == "" ? "" : path + ".") + key,
-              currentValue
-            );
-          }
-        } else if (currentType == ARRAYTYPE) {
-          if (preType != ARRAYTYPE) {
-            setResult(
-              result,
-              (path == "" ? "" : path + ".") + key,
-              currentValue
-            );
-          } else {
-            if (currentValue.length < preValue.length) {
-              setResult(
-                result,
-                (path == "" ? "" : path + ".") + key,
-                currentValue
-              );
-            } else {
-              currentValue.forEach((item, index2) => {
-                _diff(
-                  item,
-                  preValue[index2],
-                  (path == "" ? "" : path + ".") + key + "[" + index2 + "]",
-                  result
-                );
-              });
-            }
-          }
-        } else if (currentType == OBJECTTYPE) {
-          if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {
-            setResult(
-              result,
-              (path == "" ? "" : path + ".") + key,
-              currentValue
-            );
-          } else {
-            for (let subKey in currentValue) {
-              _diff(
-                currentValue[subKey],
-                preValue[subKey],
-                (path == "" ? "" : path + ".") + key + "." + subKey,
-                result
-              );
-            }
-          }
-        }
-      }
-    }
-  } else if (rootCurrentType == ARRAYTYPE) {
-    if (rootPreType != ARRAYTYPE) {
-      setResult(result, path, current);
-    } else {
-      if (current.length < pre.length) {
-        setResult(result, path, current);
-      } else {
-        current.forEach((item, index2) => {
-          _diff(item, pre[index2], path + "[" + index2 + "]", result);
-        });
-      }
-    }
-  } else {
-    setResult(result, path, current);
-  }
-}
-function setResult(result, k, v) {
-  result[k] = v;
-}
-function hasComponentEffect(instance) {
-  return queue$1.includes(instance.update);
-}
-function flushCallbacks(instance) {
-  const ctx = instance.ctx;
-  const callbacks = ctx.__next_tick_callbacks;
-  if (callbacks && callbacks.length) {
-    const copies = callbacks.slice(0);
-    callbacks.length = 0;
-    for (let i = 0; i < copies.length; i++) {
-      copies[i]();
-    }
-  }
-}
-function nextTick(instance, fn) {
-  const ctx = instance.ctx;
-  if (!ctx.__next_tick_pending && !hasComponentEffect(instance)) {
-    return nextTick$1(fn && fn.bind(instance.proxy));
-  }
-  let _resolve;
-  if (!ctx.__next_tick_callbacks) {
-    ctx.__next_tick_callbacks = [];
-  }
-  ctx.__next_tick_callbacks.push(() => {
-    if (fn) {
-      callWithErrorHandling(
-        fn.bind(instance.proxy),
-        instance,
-        14
-      );
-    } else if (_resolve) {
-      _resolve(instance.proxy);
-    }
-  });
-  return new Promise((resolve2) => {
-    _resolve = resolve2;
-  });
-}
-function clone(src, seen) {
-  src = unwrapper(src);
-  const type = typeof src;
-  if (type === "object" && src !== null) {
-    let copy = seen.get(src);
-    if (typeof copy !== "undefined") {
-      return copy;
-    }
-    if (isArray(src)) {
-      const len = src.length;
-      copy = new Array(len);
-      seen.set(src, copy);
-      for (let i = 0; i < len; i++) {
-        copy[i] = clone(src[i], seen);
-      }
-    } else {
-      copy = {};
-      seen.set(src, copy);
-      for (const name in src) {
-        if (hasOwn(src, name)) {
-          copy[name] = clone(src[name], seen);
-        }
-      }
-    }
-    return copy;
-  }
-  if (type !== "symbol") {
-    return src;
-  }
-}
-function deepCopy(src) {
-  return clone(src, typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : /* @__PURE__ */ new Map());
-}
-function getMPInstanceData(instance, keys) {
-  const data = instance.data;
-  const ret = /* @__PURE__ */ Object.create(null);
-  keys.forEach((key) => {
-    ret[key] = data[key];
-  });
-  return ret;
-}
-function patch(instance, data, oldData) {
-  if (!data) {
-    return;
-  }
-  data = deepCopy(data);
-  data.$eS = instance.$eS || {};
-  data.$eA = instance.$eA || {};
-  const ctx = instance.ctx;
-  const mpType = ctx.mpType;
-  if (mpType === "page" || mpType === "component") {
-    data.r0 = 1;
-    const mpInstance = ctx.$scope;
-    const keys = Object.keys(data);
-    const diffData = diff(data, oldData || getMPInstanceData(mpInstance, keys));
-    if (Object.keys(diffData).length) {
-      ctx.__next_tick_pending = true;
-      mpInstance.setData(diffData, () => {
-        ctx.__next_tick_pending = false;
-        flushCallbacks(instance);
-      });
-      flushPreFlushCbs();
-    } else {
-      flushCallbacks(instance);
-    }
-  }
-}
-function initAppConfig(appConfig) {
-  appConfig.globalProperties.$nextTick = function $nextTick(fn) {
-    return nextTick(this.$, fn);
-  };
-}
-function onApplyOptions(options, instance, publicThis) {
-  instance.appContext.config.globalProperties.$applyOptions(
-    options,
-    instance,
-    publicThis
-  );
-  const computedOptions = options.computed;
-  if (computedOptions) {
-    const keys = Object.keys(computedOptions);
-    if (keys.length) {
-      const ctx = instance.ctx;
-      if (!ctx.$computedKeys) {
-        ctx.$computedKeys = [];
-      }
-      ctx.$computedKeys.push(...keys);
-    }
-  }
-  delete instance.ctx.$onApplyOptions;
-}
-function setRef$1(instance, isUnmount = false) {
-  const {
-    setupState,
-    $templateRefs,
-    $templateUniElementRefs,
-    ctx: { $scope, $mpPlatform }
-  } = instance;
-  if ($mpPlatform === "mp-alipay") {
-    return;
-  }
-  if (!$scope || !$templateRefs && !$templateUniElementRefs) {
-    return;
-  }
-  if (isUnmount) {
-    $templateRefs && $templateRefs.forEach(
-      (templateRef) => setTemplateRef(templateRef, null, setupState)
-    );
-    $templateUniElementRefs && $templateUniElementRefs.forEach(
-      (templateRef) => setTemplateRef(templateRef, null, setupState)
-    );
-    return;
-  }
-  const check = $mpPlatform === "mp-baidu" || $mpPlatform === "mp-toutiao";
-  const doSetByRefs = (refs) => {
-    if (refs.length === 0) {
-      return [];
-    }
-    const mpComponents = (
-      // 字节小程序 selectAllComponents 可能返回 null
-      // https://github.com/dcloudio/uni-app/issues/3954
-      ($scope.selectAllComponents(".r") || []).concat(
-        $scope.selectAllComponents(".r-i-f") || []
-      )
-    );
-    return refs.filter((templateRef) => {
-      const refValue = findComponentPublicInstance(mpComponents, templateRef.i);
-      if (check && refValue === null) {
-        return true;
-      }
-      setTemplateRef(templateRef, refValue, setupState);
-      return false;
-    });
-  };
-  const doSet = () => {
-    if ($templateRefs) {
-      const refs = doSetByRefs($templateRefs);
-      if (refs.length && instance.proxy && instance.proxy.$scope) {
-        instance.proxy.$scope.setData({ r1: 1 }, () => {
-          doSetByRefs(refs);
-        });
-      }
-    }
-  };
-  if ($templateUniElementRefs && $templateUniElementRefs.length) {
-    nextTick(instance, () => {
-      $templateUniElementRefs.forEach((templateRef) => {
-        if (isArray(templateRef.v)) {
-          templateRef.v.forEach((v) => {
-            setTemplateRef(templateRef, v, setupState);
-          });
-        } else {
-          setTemplateRef(templateRef, templateRef.v, setupState);
-        }
-      });
-    });
-  }
-  if ($scope._$setRef) {
-    $scope._$setRef(doSet);
-  } else {
-    nextTick(instance, doSet);
-  }
-}
-function toSkip(value) {
-  if (isObject(value)) {
-    markRaw(value);
-  }
-  return value;
-}
-function findComponentPublicInstance(mpComponents, id) {
-  const mpInstance = mpComponents.find(
-    (com) => com && (com.properties || com.props).uI === id
-  );
-  if (mpInstance) {
-    const vm = mpInstance.$vm;
-    if (vm) {
-      return getExposeProxy(vm.$) || vm;
-    }
-    return toSkip(mpInstance);
-  }
-  return null;
-}
-function setTemplateRef({ r: r2, f: f2 }, refValue, setupState) {
-  if (isFunction(r2)) {
-    r2(refValue, {});
-  } else {
-    const _isString = isString(r2);
-    const _isRef = isRef(r2);
-    if (_isString || _isRef) {
-      if (f2) {
-        if (!_isRef) {
-          return;
-        }
-        if (!isArray(r2.value)) {
-          r2.value = [];
-        }
-        const existing = r2.value;
-        if (existing.indexOf(refValue) === -1) {
-          existing.push(refValue);
-          if (!refValue) {
-            return;
-          }
-          if (refValue.$) {
-            onBeforeUnmount(() => remove(existing, refValue), refValue.$);
-          }
-        }
-      } else if (_isString) {
-        if (hasOwn(setupState, r2)) {
-          setupState[r2] = refValue;
-        }
-      } else if (isRef(r2)) {
-        r2.value = refValue;
-      } else {
-        warnRef(r2);
-      }
-    } else {
-      warnRef(r2);
-    }
-  }
-}
-function warnRef(ref2) {
-  warn("Invalid template ref type:", ref2, `(${typeof ref2})`);
-}
-const queuePostRenderEffect = queuePostFlushCb;
-function mountComponent(initialVNode, options) {
-  const instance = initialVNode.component = createComponentInstance(initialVNode, options.parentComponent, null);
-  {
-    instance.ctx.$onApplyOptions = onApplyOptions;
-    instance.ctx.$children = [];
-  }
-  if (options.mpType === "app") {
-    instance.render = NOOP;
-  }
-  if (options.onBeforeSetup) {
-    options.onBeforeSetup(instance, options);
-  }
-  {
-    pushWarningContext(initialVNode);
-    startMeasure(instance, `mount`);
-  }
-  {
-    startMeasure(instance, `init`);
-  }
-  setupComponent(instance);
-  {
-    endMeasure(instance, `init`);
-  }
-  {
-    if (options.parentComponent && instance.proxy) {
-      options.parentComponent.ctx.$children.push(getExposeProxy(instance) || instance.proxy);
-    }
-  }
-  setupRenderEffect(instance);
-  {
-    popWarningContext();
-    endMeasure(instance, `mount`);
-  }
-  return instance.proxy;
-}
-const getFunctionalFallthrough = (attrs) => {
-  let res;
-  for (const key in attrs) {
-    if (key === "class" || key === "style" || isOn(key)) {
-      (res || (res = {}))[key] = attrs[key];
-    }
-  }
-  return res;
-};
-function renderComponentRoot(instance) {
-  const {
-    type: Component2,
-    vnode,
-    proxy,
-    withProxy,
-    props,
-    propsOptions: [propsOptions],
-    slots,
-    attrs,
-    emit: emit2,
-    render,
-    renderCache,
-    data,
-    setupState,
-    ctx,
-    uid: uid2,
-    appContext: {
-      app: {
-        config: {
-          globalProperties: { pruneComponentPropsCache: pruneComponentPropsCache2 }
-        }
-      }
-    },
-    inheritAttrs
-  } = instance;
-  instance.$uniElementIds = /* @__PURE__ */ new Map();
-  instance.$templateRefs = [];
-  instance.$templateUniElementRefs = [];
-  instance.$templateUniElementStyles = {};
-  instance.$ei = 0;
-  pruneComponentPropsCache2(uid2);
-  instance.__counter = instance.__counter === 0 ? 1 : 0;
-  let result;
-  const prev = setCurrentRenderingInstance(instance);
-  try {
-    if (vnode.shapeFlag & 4) {
-      fallthroughAttrs(inheritAttrs, props, propsOptions, attrs);
-      const proxyToUse = withProxy || proxy;
-      result = render.call(
-        proxyToUse,
-        proxyToUse,
-        renderCache,
-        props,
-        setupState,
-        data,
-        ctx
-      );
-    } else {
-      fallthroughAttrs(
-        inheritAttrs,
-        props,
-        propsOptions,
-        Component2.props ? attrs : getFunctionalFallthrough(attrs)
-      );
-      const render2 = Component2;
-      result = render2.length > 1 ? render2(props, { attrs, slots, emit: emit2 }) : render2(
-        props,
-        null
-        /* we know it doesn't need it */
-      );
-    }
-  } catch (err) {
-    handleError(err, instance, 1);
-    result = false;
-  }
-  setRef$1(instance);
-  setCurrentRenderingInstance(prev);
-  return result;
-}
-function fallthroughAttrs(inheritAttrs, props, propsOptions, fallthroughAttrs2) {
-  if (props && fallthroughAttrs2 && inheritAttrs !== false) {
-    const keys = Object.keys(fallthroughAttrs2).filter(
-      (key) => key !== "class" && key !== "style"
-    );
-    if (!keys.length) {
-      return;
-    }
-    if (propsOptions && keys.some(isModelListener)) {
-      keys.forEach((key) => {
-        if (!isModelListener(key) || !(key.slice(9) in propsOptions)) {
-          props[key] = fallthroughAttrs2[key];
-        }
-      });
-    } else {
-      keys.forEach((key) => props[key] = fallthroughAttrs2[key]);
-    }
-  }
-}
-const updateComponentPreRender = (instance) => {
-  pauseTracking();
-  flushPreFlushCbs();
-  resetTracking();
-};
-function componentUpdateScopedSlotsFn() {
-  const scopedSlotsData = this.$scopedSlotsData;
-  if (!scopedSlotsData || scopedSlotsData.length === 0) {
-    return;
-  }
-  const mpInstance = this.ctx.$scope;
-  const oldData = mpInstance.data;
-  const diffData = /* @__PURE__ */ Object.create(null);
-  scopedSlotsData.forEach(({ path, index: index2, data }) => {
-    const oldScopedSlotData = getValueByDataPath(oldData, path);
-    const diffPath = isString(index2) ? `${path}.${index2}` : `${path}[${index2}]`;
-    if (typeof oldScopedSlotData === "undefined" || typeof oldScopedSlotData[index2] === "undefined") {
-      diffData[diffPath] = data;
-    } else {
-      const diffScopedSlotData = diff(
-        data,
-        oldScopedSlotData[index2]
-      );
-      Object.keys(diffScopedSlotData).forEach((name) => {
-        diffData[diffPath + "." + name] = diffScopedSlotData[name];
-      });
-    }
-  });
-  scopedSlotsData.length = 0;
-  if (Object.keys(diffData).length) {
-    mpInstance.setData(diffData);
-  }
-}
-function toggleRecurse({ effect: effect2, update }, allowed) {
-  effect2.allowRecurse = update.allowRecurse = allowed;
-}
-function setupRenderEffect(instance) {
-  const updateScopedSlots = componentUpdateScopedSlotsFn.bind(
-    instance
-  );
-  instance.$updateScopedSlots = () => nextTick$1(() => queueJob(updateScopedSlots));
-  const componentUpdateFn = () => {
-    if (!instance.isMounted) {
-      onBeforeUnmount(() => {
-        setRef$1(instance, true);
-      }, instance);
-      {
-        startMeasure(instance, `patch`);
-      }
-      patch(instance, renderComponentRoot(instance));
-      {
-        endMeasure(instance, `patch`);
-      }
-      {
-        devtoolsComponentAdded(instance);
-      }
-    } else {
-      const { next, bu, u } = instance;
-      {
-        pushWarningContext(next || instance.vnode);
-      }
-      toggleRecurse(instance, false);
-      updateComponentPreRender();
-      if (bu) {
-        invokeArrayFns$1(bu);
-      }
-      toggleRecurse(instance, true);
-      {
-        startMeasure(instance, `patch`);
-      }
-      patch(instance, renderComponentRoot(instance));
-      {
-        endMeasure(instance, `patch`);
-      }
-      if (u) {
-        queuePostRenderEffect(u);
-      }
-      {
-        devtoolsComponentUpdated(instance);
-      }
-      {
-        popWarningContext();
-      }
-    }
-  };
-  const effect2 = instance.effect = new ReactiveEffect(
-    componentUpdateFn,
-    NOOP,
-    () => queueJob(update),
-    instance.scope
-    // track it in component's effect scope
-  );
-  const update = instance.update = () => {
-    if (effect2.dirty) {
-      effect2.run();
-    }
-  };
-  update.id = instance.uid;
-  toggleRecurse(instance, true);
-  {
-    effect2.onTrack = instance.rtc ? (e2) => invokeArrayFns$1(instance.rtc, e2) : void 0;
-    effect2.onTrigger = instance.rtg ? (e2) => invokeArrayFns$1(instance.rtg, e2) : void 0;
-    update.ownerInstance = instance;
-  }
-  {
-    update();
-  }
-}
-function unmountComponent(instance) {
-  const { bum, scope, update, um } = instance;
-  if (bum) {
-    invokeArrayFns$1(bum);
-  }
-  {
-    const parentInstance = instance.parent;
-    if (parentInstance) {
-      const $children = parentInstance.ctx.$children;
-      const target = getExposeProxy(instance) || instance.proxy;
-      const index2 = $children.indexOf(target);
-      if (index2 > -1) {
-        $children.splice(index2, 1);
-      }
-    }
-  }
-  scope.stop();
-  if (update) {
-    update.active = false;
-  }
-  if (um) {
-    queuePostRenderEffect(um);
-  }
-  queuePostRenderEffect(() => {
-    instance.isUnmounted = true;
-  });
-  {
-    devtoolsComponentRemoved(instance);
-  }
-}
-const oldCreateApp = createAppAPI();
-function getTarget() {
-  if (typeof window !== "undefined") {
-    return window;
-  }
-  if (typeof globalThis !== "undefined") {
-    return globalThis;
-  }
-  if (typeof global !== "undefined") {
-    return global;
-  }
-  if (typeof my !== "undefined") {
-    return my;
-  }
-}
-function createVueApp(rootComponent, rootProps = null) {
-  const target = getTarget();
-  target.__VUE__ = true;
-  {
-    setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
-  }
-  const app = oldCreateApp(rootComponent, rootProps);
-  const appContext = app._context;
-  initAppConfig(appContext.config);
-  const createVNode2 = (initialVNode) => {
-    initialVNode.appContext = appContext;
-    initialVNode.shapeFlag = 6;
-    return initialVNode;
-  };
-  const createComponent2 = function createComponent22(initialVNode, options) {
-    return mountComponent(createVNode2(initialVNode), options);
-  };
-  const destroyComponent = function destroyComponent2(component) {
-    return component && unmountComponent(component.$);
-  };
-  app.mount = function mount() {
-    rootComponent.render = NOOP;
-    const instance = mountComponent(
-      createVNode2({ type: rootComponent }),
-      {
-        mpType: "app",
-        mpInstance: null,
-        parentComponent: null,
-        slots: [],
-        props: null
-      }
-    );
-    app._instance = instance.$;
-    {
-      devtoolsInitApp(app, version);
-    }
-    instance.$app = app;
-    instance.$createComponent = createComponent2;
-    instance.$destroyComponent = destroyComponent;
-    appContext.$appInstance = instance;
-    return instance;
-  };
-  app.unmount = function unmount() {
-    warn(`Cannot unmount an app.`);
-  };
-  return app;
-}
-function injectLifecycleHook(name, hook, publicThis, instance) {
-  if (isFunction(hook)) {
-    injectHook(name, hook.bind(publicThis), instance);
-  }
-}
-function initHooks$1(options, instance, publicThis) {
-  const mpType = options.mpType || publicThis.$mpType;
-  if (!mpType || mpType === "component") {
-    return;
-  }
-  Object.keys(options).forEach((name) => {
-    if (isUniLifecycleHook(name, options[name], false)) {
-      const hooks = options[name];
-      if (isArray(hooks)) {
-        hooks.forEach((hook) => injectLifecycleHook(name, hook, publicThis, instance));
-      } else {
-        injectLifecycleHook(name, hooks, publicThis, instance);
-      }
-    }
-  });
-}
-function applyOptions$2(options, instance, publicThis) {
-  initHooks$1(options, instance, publicThis);
-}
-function set(target, key, val) {
-  return target[key] = val;
-}
-function $callMethod(method, ...args) {
-  const fn = this[method];
-  if (fn) {
-    return fn(...args);
-  }
-  console.error(`method ${method} not found`);
-  return null;
-}
-function createErrorHandler(app) {
-  const userErrorHandler = app.config.errorHandler;
-  return function errorHandler(err, instance, info) {
-    if (userErrorHandler) {
-      userErrorHandler(err, instance, info);
-    }
-    const appInstance = app._instance;
-    if (!appInstance || !appInstance.proxy) {
-      throw err;
-    }
-    if (appInstance[ON_ERROR]) {
-      {
-        appInstance.proxy.$callHook(ON_ERROR, err);
-      }
-    } else {
-      logError(err, info, instance ? instance.$.vnode : null, false);
-    }
-  };
-}
-function mergeAsArray(to, from) {
-  return to ? [...new Set([].concat(to, from))] : from;
-}
-function initOptionMergeStrategies(optionMergeStrategies) {
-  UniLifecycleHooks.forEach((name) => {
-    optionMergeStrategies[name] = mergeAsArray;
-  });
-}
-let realAtob;
-const b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-const b64re = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;
-if (typeof atob !== "function") {
-  realAtob = function(str) {
-    str = String(str).replace(/[\t\n\f\r ]+/g, "");
-    if (!b64re.test(str)) {
-      throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
-    }
-    str += "==".slice(2 - (str.length & 3));
-    var bitmap;
-    var result = "";
-    var r1;
-    var r2;
-    var i = 0;
-    for (; i < str.length; ) {
-      bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 | (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));
-      result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255) : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255) : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);
-    }
-    return result;
-  };
-} else {
-  realAtob = atob;
-}
-function b64DecodeUnicode(str) {
-  return decodeURIComponent(realAtob(str).split("").map(function(c2) {
-    return "%" + ("00" + c2.charCodeAt(0).toString(16)).slice(-2);
-  }).join(""));
-}
-function getCurrentUserInfo() {
-  const token = index.getStorageSync("uni_id_token") || "";
-  const tokenArr = token.split(".");
-  if (!token || tokenArr.length !== 3) {
-    return {
-      uid: null,
-      role: [],
-      permission: [],
-      tokenExpired: 0
-    };
-  }
-  let userInfo;
-  try {
-    userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));
-  } catch (error) {
-    throw new Error("获取当前用户信息出错,详细错误信息为:" + error.message);
-  }
-  userInfo.tokenExpired = userInfo.exp * 1e3;
-  delete userInfo.exp;
-  delete userInfo.iat;
-  return userInfo;
-}
-function uniIdMixin(globalProperties) {
-  globalProperties.uniIDHasRole = function(roleId) {
-    const { role } = getCurrentUserInfo();
-    return role.indexOf(roleId) > -1;
-  };
-  globalProperties.uniIDHasPermission = function(permissionId) {
-    const { permission } = getCurrentUserInfo();
-    return this.uniIDHasRole("admin") || permission.indexOf(permissionId) > -1;
-  };
-  globalProperties.uniIDTokenValid = function() {
-    const { tokenExpired } = getCurrentUserInfo();
-    return tokenExpired > Date.now();
-  };
-}
-function initApp(app) {
-  const appConfig = app.config;
-  appConfig.errorHandler = invokeCreateErrorHandler(app, createErrorHandler);
-  initOptionMergeStrategies(appConfig.optionMergeStrategies);
-  const globalProperties = appConfig.globalProperties;
-  {
-    uniIdMixin(globalProperties);
-  }
-  {
-    globalProperties.$set = set;
-    globalProperties.$applyOptions = applyOptions$2;
-    globalProperties.$callMethod = $callMethod;
-  }
-  {
-    index.invokeCreateVueAppHook(app);
-  }
-}
-const propsCaches = /* @__PURE__ */ Object.create(null);
-function pruneComponentPropsCache(uid2) {
-  delete propsCaches[uid2];
-}
-function findComponentPropsData(up) {
-  if (!up) {
-    return;
-  }
-  const [uid2, propsId] = up.split(",");
-  if (!propsCaches[uid2]) {
-    return;
-  }
-  return propsCaches[uid2][parseInt(propsId)];
-}
-var plugin = {
-  install(app) {
-    initApp(app);
-    app.config.globalProperties.pruneComponentPropsCache = pruneComponentPropsCache;
-    const oldMount = app.mount;
-    app.mount = function mount(rootContainer) {
-      const instance = oldMount.call(app, rootContainer);
-      const createApp2 = getCreateApp();
-      if (createApp2) {
-        createApp2(instance);
-      } else {
-        if (typeof createMiniProgramApp !== "undefined") {
-          createMiniProgramApp(instance);
-        }
-      }
-      return instance;
-    };
-  }
-};
-function getCreateApp() {
-  const method = "createApp";
-  if (typeof global !== "undefined" && typeof global[method] !== "undefined") {
-    return global[method];
-  } else if (typeof my !== "undefined") {
-    return my[method];
-  }
-}
-function vOn(value, key) {
-  const instance = getCurrentInstance();
-  const ctx = instance.ctx;
-  const extraKey = typeof key !== "undefined" && (ctx.$mpPlatform === "mp-weixin" || ctx.$mpPlatform === "mp-qq" || ctx.$mpPlatform === "mp-xhs") && (isString(key) || typeof key === "number") ? "_" + key : "";
-  const name = "e" + instance.$ei++ + extraKey;
-  const mpInstance = ctx.$scope;
-  if (!value) {
-    delete mpInstance[name];
-    return name;
-  }
-  const existingInvoker = mpInstance[name];
-  if (existingInvoker) {
-    existingInvoker.value = value;
-  } else {
-    mpInstance[name] = createInvoker(value, instance);
-  }
-  return name;
-}
-function createInvoker(initialValue, instance) {
-  const invoker = (e2) => {
-    patchMPEvent(e2);
-    let args = [e2];
-    if (instance && instance.ctx.$getTriggerEventDetail) {
-      if (typeof e2.detail === "number") {
-        e2.detail = instance.ctx.$getTriggerEventDetail(e2.detail);
-      }
-    }
-    if (e2.detail && e2.detail.__args__) {
-      args = e2.detail.__args__;
-    }
-    const eventValue = invoker.value;
-    const invoke = () => callWithAsyncErrorHandling(patchStopImmediatePropagation(e2, eventValue), instance, 5, args);
-    const eventTarget = e2.target;
-    const eventSync = eventTarget ? eventTarget.dataset ? String(eventTarget.dataset.eventsync) === "true" : false : false;
-    if (bubbles.includes(e2.type) && !eventSync) {
-      setTimeout(invoke);
-    } else {
-      const res = invoke();
-      if (e2.type === "input" && (isArray(res) || isPromise(res))) {
-        return;
-      }
-      return res;
-    }
-  };
-  invoker.value = initialValue;
-  return invoker;
-}
-const bubbles = [
-  // touch事件暂不做延迟,否则在 Android 上会影响性能,比如一些拖拽跟手手势等
-  // 'touchstart',
-  // 'touchmove',
-  // 'touchcancel',
-  // 'touchend',
-  "tap",
-  "longpress",
-  "longtap",
-  "transitionend",
-  "animationstart",
-  "animationiteration",
-  "animationend",
-  "touchforcechange"
-];
-function patchMPEvent(event, instance) {
-  if (event.type && event.target) {
-    event.preventDefault = NOOP;
-    event.stopPropagation = NOOP;
-    event.stopImmediatePropagation = NOOP;
-    if (!hasOwn(event, "detail")) {
-      event.detail = {};
-    }
-    if (hasOwn(event, "markerId")) {
-      event.detail = typeof event.detail === "object" ? event.detail : {};
-      event.detail.markerId = event.markerId;
-    }
-    if (isPlainObject(event.detail) && hasOwn(event.detail, "checked") && !hasOwn(event.detail, "value")) {
-      event.detail.value = event.detail.checked;
-    }
-    if (isPlainObject(event.detail)) {
-      event.target = extend({}, event.target, event.detail);
-    }
-  }
-}
-function patchStopImmediatePropagation(e2, value) {
-  if (isArray(value)) {
-    const originalStop = e2.stopImmediatePropagation;
-    e2.stopImmediatePropagation = () => {
-      originalStop && originalStop.call(e2);
-      e2._stopped = true;
-    };
-    return value.map((fn) => (e3) => !e3._stopped && fn(e3));
-  } else {
-    return value;
-  }
-}
-const o = (value, key) => vOn(value, key);
-function createApp$1(rootComponent, rootProps = null) {
-  rootComponent && (rootComponent.mpType = "app");
-  return createVueApp(rootComponent, rootProps).use(plugin);
-}
-const createSSRApp = createApp$1;
-function getLocaleLanguage$1() {
-  let localeLanguage = "";
-  {
-    const appBaseInfo = wx.getAppBaseInfo();
-    const language = appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN;
-    localeLanguage = normalizeLocale(language) || LOCALE_EN;
-  }
-  return localeLanguage;
-}
-function validateProtocolFail(name, msg) {
-  console.warn(`${name}: ${msg}`);
-}
-function validateProtocol(name, data, protocol, onFail) {
-  if (!onFail) {
-    onFail = validateProtocolFail;
-  }
-  for (const key in protocol) {
-    const errMsg = validateProp(key, data[key], protocol[key], !hasOwn(data, key));
-    if (isString(errMsg)) {
-      onFail(name, errMsg);
-    }
-  }
-}
-function validateProtocols(name, args, protocol, onFail) {
-  if (!protocol) {
-    return;
-  }
-  if (!isArray(protocol)) {
-    return validateProtocol(name, args[0] || /* @__PURE__ */ Object.create(null), protocol, onFail);
-  }
-  const len = protocol.length;
-  const argsLen = args.length;
-  for (let i = 0; i < len; i++) {
-    const opts = protocol[i];
-    const data = /* @__PURE__ */ Object.create(null);
-    if (argsLen > i) {
-      data[opts.name] = args[i];
-    }
-    validateProtocol(name, data, { [opts.name]: opts }, onFail);
-  }
-}
-function validateProp(name, value, prop, isAbsent) {
-  if (!isPlainObject(prop)) {
-    prop = { type: prop };
-  }
-  const { type, required, validator } = prop;
-  if (required && isAbsent) {
-    return 'Missing required args: "' + name + '"';
-  }
-  if (value == null && !required) {
-    return;
-  }
-  if (type != null) {
-    let isValid = false;
-    const types = isArray(type) ? type : [type];
-    const expectedTypes = [];
-    for (let i = 0; i < types.length && !isValid; i++) {
-      const { valid, expectedType } = assertType(value, types[i]);
-      expectedTypes.push(expectedType || "");
-      isValid = valid;
-    }
-    if (!isValid) {
-      return getInvalidTypeMessage(name, value, expectedTypes);
-    }
-  }
-  if (validator) {
-    return validator(value);
-  }
-}
-const isSimpleType = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol");
-function assertType(value, type) {
-  let valid;
-  const expectedType = getType(type);
-  if (isSimpleType(expectedType)) {
-    const t = typeof value;
-    valid = t === expectedType.toLowerCase();
-    if (!valid && t === "object") {
-      valid = value instanceof type;
-    }
-  } else if (expectedType === "Object") {
-    valid = isObject(value);
-  } else if (expectedType === "Array") {
-    valid = isArray(value);
-  } else {
-    {
-      valid = value instanceof type;
-    }
-  }
-  return {
-    valid,
-    expectedType
-  };
-}
-function getInvalidTypeMessage(name, value, expectedTypes) {
-  let message = `Invalid args: type check failed for args "${name}". Expected ${expectedTypes.map(capitalize).join(", ")}`;
-  const expectedType = expectedTypes[0];
-  const receivedType = toRawType(value);
-  const expectedValue = styleValue(value, expectedType);
-  const receivedValue = styleValue(value, receivedType);
-  if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {
-    message += ` with value ${expectedValue}`;
-  }
-  message += `, got ${receivedType} `;
-  if (isExplicable(receivedType)) {
-    message += `with value ${receivedValue}.`;
-  }
-  return message;
-}
-function getType(ctor) {
-  const match = ctor && ctor.toString().match(/^\s*function (\w+)/);
-  return match ? match[1] : "";
-}
-function styleValue(value, type) {
-  if (type === "String") {
-    return `"${value}"`;
-  } else if (type === "Number") {
-    return `${Number(value)}`;
-  } else {
-    return `${value}`;
-  }
-}
-function isExplicable(type) {
-  const explicitTypes = ["string", "number", "boolean"];
-  return explicitTypes.some((elem) => type.toLowerCase() === elem);
-}
-function isBoolean(...args) {
-  return args.some((elem) => elem.toLowerCase() === "boolean");
-}
-function tryCatch(fn) {
-  return function() {
-    try {
-      return fn.apply(fn, arguments);
-    } catch (e) {
-      console.error(e);
-    }
-  };
-}
-let invokeCallbackId = 1;
-const invokeCallbacks = {};
-function addInvokeCallback(id, name, callback, keepAlive = false) {
-  invokeCallbacks[id] = {
-    name,
-    keepAlive,
-    callback
-  };
-  return id;
-}
-function invokeCallback(id, res, extras) {
-  if (typeof id === "number") {
-    const opts = invokeCallbacks[id];
-    if (opts) {
-      if (!opts.keepAlive) {
-        delete invokeCallbacks[id];
-      }
-      return opts.callback(res, extras);
-    }
-  }
-  return res;
-}
-const API_SUCCESS = "success";
-const API_FAIL = "fail";
-const API_COMPLETE = "complete";
-function getApiCallbacks(args) {
-  const apiCallbacks = {};
-  for (const name in args) {
-    const fn = args[name];
-    if (isFunction(fn)) {
-      apiCallbacks[name] = tryCatch(fn);
-      delete args[name];
-    }
-  }
-  return apiCallbacks;
-}
-function normalizeErrMsg(errMsg, name) {
-  if (!errMsg || errMsg.indexOf(":fail") === -1) {
-    return name + ":ok";
-  }
-  return name + errMsg.substring(errMsg.indexOf(":fail"));
-}
-function createAsyncApiCallback(name, args = {}, { beforeAll, beforeSuccess } = {}) {
-  if (!isPlainObject(args)) {
-    args = {};
-  }
-  const { success, fail, complete } = getApiCallbacks(args);
-  const hasSuccess = isFunction(success);
-  const hasFail = isFunction(fail);
-  const hasComplete = isFunction(complete);
-  const callbackId = invokeCallbackId++;
-  addInvokeCallback(callbackId, name, (res) => {
-    res = res || {};
-    res.errMsg = normalizeErrMsg(res.errMsg, name);
-    isFunction(beforeAll) && beforeAll(res);
-    if (res.errMsg === name + ":ok") {
-      isFunction(beforeSuccess) && beforeSuccess(res, args);
-      hasSuccess && success(res);
-    } else {
-      hasFail && fail(res);
-    }
-    hasComplete && complete(res);
-  });
-  return callbackId;
-}
-const HOOK_SUCCESS = "success";
-const HOOK_FAIL = "fail";
-const HOOK_COMPLETE = "complete";
-const globalInterceptors = {};
-const scopedInterceptors = {};
-function wrapperHook(hook, params) {
-  return function(data) {
-    return hook(data, params) || data;
-  };
-}
-function queue(hooks, data, params) {
-  let promise = false;
-  for (let i = 0; i < hooks.length; i++) {
-    const hook = hooks[i];
-    if (promise) {
-      promise = Promise.resolve(wrapperHook(hook, params));
-    } else {
-      const res = hook(data, params);
-      if (isPromise(res)) {
-        promise = Promise.resolve(res);
-      }
-      if (res === false) {
-        return {
-          then() {
-          },
-          catch() {
-          }
-        };
-      }
-    }
-  }
-  return promise || {
-    then(callback) {
-      return callback(data);
-    },
-    catch() {
-    }
-  };
-}
-function wrapperOptions(interceptors2, options = {}) {
-  [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => {
-    const hooks = interceptors2[name];
-    if (!isArray(hooks)) {
-      return;
-    }
-    const oldCallback = options[name];
-    options[name] = function callbackInterceptor(res) {
-      queue(hooks, res, options).then((res2) => {
-        return isFunction(oldCallback) && oldCallback(res2) || res2;
-      });
-    };
-  });
-  return options;
-}
-function wrapperReturnValue(method, returnValue) {
-  const returnValueHooks = [];
-  if (isArray(globalInterceptors.returnValue)) {
-    returnValueHooks.push(...globalInterceptors.returnValue);
-  }
-  const interceptor = scopedInterceptors[method];
-  if (interceptor && isArray(interceptor.returnValue)) {
-    returnValueHooks.push(...interceptor.returnValue);
-  }
-  returnValueHooks.forEach((hook) => {
-    returnValue = hook(returnValue) || returnValue;
-  });
-  return returnValue;
-}
-function getApiInterceptorHooks(method) {
-  const interceptor = /* @__PURE__ */ Object.create(null);
-  Object.keys(globalInterceptors).forEach((hook) => {
-    if (hook !== "returnValue") {
-      interceptor[hook] = globalInterceptors[hook].slice();
-    }
-  });
-  const scopedInterceptor = scopedInterceptors[method];
-  if (scopedInterceptor) {
-    Object.keys(scopedInterceptor).forEach((hook) => {
-      if (hook !== "returnValue") {
-        interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);
-      }
-    });
-  }
-  return interceptor;
-}
-function invokeApi(method, api, options, params) {
-  const interceptor = getApiInterceptorHooks(method);
-  if (interceptor && Object.keys(interceptor).length) {
-    if (isArray(interceptor.invoke)) {
-      const res = queue(interceptor.invoke, options);
-      return res.then((options2) => {
-        return api(wrapperOptions(getApiInterceptorHooks(method), options2), ...params);
-      });
-    } else {
-      return api(wrapperOptions(interceptor, options), ...params);
-    }
-  }
-  return api(options, ...params);
-}
-function hasCallback(args) {
-  if (isPlainObject(args) && [API_SUCCESS, API_FAIL, API_COMPLETE].find((cb) => isFunction(args[cb]))) {
-    return true;
-  }
-  return false;
-}
-function handlePromise(promise) {
-  return promise;
-}
-function promisify$1(name, fn) {
-  return (args = {}, ...rest) => {
-    if (hasCallback(args)) {
-      return wrapperReturnValue(name, invokeApi(name, fn, args, rest));
-    }
-    return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {
-      invokeApi(name, fn, extend(args, { success: resolve, fail: reject }), rest);
-    })));
-  };
-}
-function formatApiArgs(args, options) {
-  args[0];
-  {
-    return;
-  }
-}
-function invokeSuccess(id, name, res) {
-  const result = {
-    errMsg: name + ":ok"
-  };
-  return invokeCallback(id, extend(res || {}, result));
-}
-function invokeFail(id, name, errMsg, errRes = {}) {
-  const errMsgPrefix = name + ":fail";
-  let apiErrMsg = "";
-  if (!errMsg) {
-    apiErrMsg = errMsgPrefix;
-  } else if (errMsg.indexOf(errMsgPrefix) === 0) {
-    apiErrMsg = errMsg;
-  } else {
-    apiErrMsg = errMsgPrefix + " " + errMsg;
-  }
-  {
-    delete errRes.errCode;
-  }
-  let res = extend({ errMsg: apiErrMsg }, errRes);
-  return invokeCallback(id, res);
-}
-function beforeInvokeApi(name, args, protocol, options) {
-  {
-    validateProtocols(name, args, protocol);
-  }
-  const errMsg = formatApiArgs(args);
-  if (errMsg) {
-    return errMsg;
-  }
-}
-function parseErrMsg(errMsg) {
-  if (!errMsg || isString(errMsg)) {
-    return errMsg;
-  }
-  if (errMsg.stack) {
-    if (typeof globalThis === "undefined" || !globalThis.harmonyChannel) {
-      console.error(errMsg.message + "\n" + errMsg.stack);
-    }
-    return errMsg.message;
-  }
-  return errMsg;
-}
-function wrapperTaskApi(name, fn, protocol, options) {
-  return (args) => {
-    const id = createAsyncApiCallback(name, args, options);
-    const errMsg = beforeInvokeApi(name, [args], protocol);
-    if (errMsg) {
-      return invokeFail(id, name, errMsg);
-    }
-    return fn(args, {
-      resolve: (res) => invokeSuccess(id, name, res),
-      reject: (errMsg2, errRes) => invokeFail(id, name, parseErrMsg(errMsg2), errRes)
-    });
-  };
-}
-function wrapperSyncApi(name, fn, protocol, options) {
-  return (...args) => {
-    const errMsg = beforeInvokeApi(name, args, protocol);
-    if (errMsg) {
-      throw new Error(errMsg);
-    }
-    return fn.apply(null, args);
-  };
-}
-function wrapperAsyncApi(name, fn, protocol, options) {
-  return wrapperTaskApi(name, fn, protocol, options);
-}
-function defineSyncApi(name, fn, protocol, options) {
-  return wrapperSyncApi(name, fn, protocol);
-}
-function defineAsyncApi(name, fn, protocol, options) {
-  return promisify$1(name, wrapperAsyncApi(name, fn, protocol, options));
-}
-const API_UPX2PX = "upx2px";
-const Upx2pxProtocol = [
-  {
-    name: "upx",
-    type: [Number, String],
-    required: true
-  }
-];
-const EPS = 1e-4;
-const BASE_DEVICE_WIDTH = 750;
-let isIOS = false;
-let deviceWidth = 0;
-let deviceDPR = 0;
-function checkDeviceWidth() {
-  const { windowWidth, pixelRatio, platform } = Object.assign({}, wx.getWindowInfo(), {
-    platform: wx.getDeviceInfo().platform
-  });
-  deviceWidth = windowWidth;
-  deviceDPR = pixelRatio;
-  isIOS = platform === "ios";
-}
-const upx2px = defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => {
-  if (deviceWidth === 0) {
-    checkDeviceWidth();
-  }
-  number = Number(number);
-  if (number === 0) {
-    return 0;
-  }
-  let width = newDeviceWidth || deviceWidth;
-  let result = number / BASE_DEVICE_WIDTH * width;
-  if (result < 0) {
-    result = -result;
-  }
-  result = Math.floor(result + EPS);
-  if (result === 0) {
-    if (deviceDPR === 1 || !isIOS) {
-      result = 1;
-    } else {
-      result = 0.5;
-    }
-  }
-  return number < 0 ? -result : result;
-}, Upx2pxProtocol);
-function __f__(type, filename, ...args) {
-  if (filename) {
-    args.push(filename);
-  }
-  console[type].apply(console, args);
-}
-const API_ADD_INTERCEPTOR = "addInterceptor";
-const API_REMOVE_INTERCEPTOR = "removeInterceptor";
-const AddInterceptorProtocol = [
-  {
-    name: "method",
-    type: [String, Object],
-    required: true
-  }
-];
-const RemoveInterceptorProtocol = AddInterceptorProtocol;
-function mergeInterceptorHook(interceptors2, interceptor) {
-  Object.keys(interceptor).forEach((hook) => {
-    if (isFunction(interceptor[hook])) {
-      interceptors2[hook] = mergeHook(interceptors2[hook], interceptor[hook]);
-    }
-  });
-}
-function removeInterceptorHook(interceptors2, interceptor) {
-  if (!interceptors2 || !interceptor) {
-    return;
-  }
-  Object.keys(interceptor).forEach((name) => {
-    const hooks = interceptors2[name];
-    const hook = interceptor[name];
-    if (isArray(hooks) && isFunction(hook)) {
-      remove(hooks, hook);
-    }
-  });
-}
-function mergeHook(parentVal, childVal) {
-  const res = childVal ? parentVal ? parentVal.concat(childVal) : isArray(childVal) ? childVal : [childVal] : parentVal;
-  return res ? dedupeHooks(res) : res;
-}
-function dedupeHooks(hooks) {
-  const res = [];
-  for (let i = 0; i < hooks.length; i++) {
-    if (res.indexOf(hooks[i]) === -1) {
-      res.push(hooks[i]);
-    }
-  }
-  return res;
-}
-const addInterceptor = defineSyncApi(API_ADD_INTERCEPTOR, (method, interceptor) => {
-  if (isString(method) && isPlainObject(interceptor)) {
-    mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), interceptor);
-  } else if (isPlainObject(method)) {
-    mergeInterceptorHook(globalInterceptors, method);
-  }
-}, AddInterceptorProtocol);
-const removeInterceptor = defineSyncApi(API_REMOVE_INTERCEPTOR, (method, interceptor) => {
-  if (isString(method)) {
-    if (isPlainObject(interceptor)) {
-      removeInterceptorHook(scopedInterceptors[method], interceptor);
-    } else {
-      delete scopedInterceptors[method];
-    }
-  } else if (isPlainObject(method)) {
-    removeInterceptorHook(globalInterceptors, method);
-  }
-}, RemoveInterceptorProtocol);
-const interceptors = {};
-const API_ON = "$on";
-const OnProtocol = [
-  {
-    name: "event",
-    type: String,
-    required: true
-  },
-  {
-    name: "callback",
-    type: Function,
-    required: true
-  }
-];
-const API_ONCE = "$once";
-const OnceProtocol = OnProtocol;
-const API_OFF = "$off";
-const OffProtocol = [
-  {
-    name: "event",
-    type: [String, Array]
-  },
-  {
-    name: "callback",
-    type: [Function, Number]
-  }
-];
-const API_EMIT = "$emit";
-const EmitProtocol = [
-  {
-    name: "event",
-    type: String,
-    required: true
-  }
-];
-class EventBus {
-  constructor() {
-    this.$emitter = new E$1();
-  }
-  on(name, callback) {
-    return this.$emitter.on(name, callback);
-  }
-  once(name, callback) {
-    return this.$emitter.once(name, callback);
-  }
-  off(name, callback) {
-    if (!name) {
-      this.$emitter.e = {};
-      return;
-    }
-    this.$emitter.off(name, callback);
-  }
-  emit(name, ...args) {
-    this.$emitter.emit(name, ...args);
-  }
-}
-const eventBus = new EventBus();
-const $on = defineSyncApi(API_ON, (name, callback) => {
-  eventBus.on(name, callback);
-  return () => eventBus.off(name, callback);
-}, OnProtocol);
-const $once = defineSyncApi(API_ONCE, (name, callback) => {
-  eventBus.once(name, callback);
-  return () => eventBus.off(name, callback);
-}, OnceProtocol);
-const $off = defineSyncApi(API_OFF, (name, callback) => {
-  if (!isArray(name))
-    name = name ? [name] : [];
-  name.forEach((n) => {
-    eventBus.off(n, callback);
-  });
-}, OffProtocol);
-const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
-  eventBus.emit(name, ...args);
-}, EmitProtocol);
-let cid;
-let cidErrMsg;
-let enabled;
-function normalizePushMessage(message) {
-  try {
-    return JSON.parse(message);
-  } catch (e) {
-  }
-  return message;
-}
-function invokePushCallback(args) {
-  if (args.type === "enabled") {
-    enabled = true;
-  } else if (args.type === "clientId") {
-    cid = args.cid;
-    cidErrMsg = args.errMsg;
-    invokeGetPushCidCallbacks(cid, args.errMsg);
-  } else if (args.type === "pushMsg") {
-    const message = {
-      type: "receive",
-      data: normalizePushMessage(args.message)
-    };
-    for (let i = 0; i < onPushMessageCallbacks.length; i++) {
-      const callback = onPushMessageCallbacks[i];
-      callback(message);
-      if (message.stopped) {
-        break;
-      }
-    }
-  } else if (args.type === "click") {
-    onPushMessageCallbacks.forEach((callback) => {
-      callback({
-        type: "click",
-        data: normalizePushMessage(args.message)
-      });
-    });
-  }
-}
-const getPushCidCallbacks = [];
-function invokeGetPushCidCallbacks(cid2, errMsg) {
-  getPushCidCallbacks.forEach((callback) => {
-    callback(cid2, errMsg);
-  });
-  getPushCidCallbacks.length = 0;
-}
-const API_GET_PUSH_CLIENT_ID = "getPushClientId";
-const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve, reject }) => {
-  Promise.resolve().then(() => {
-    if (typeof enabled === "undefined") {
-      enabled = false;
-      cid = "";
-      cidErrMsg = "uniPush is not enabled";
-    }
-    getPushCidCallbacks.push((cid2, errMsg) => {
-      if (cid2) {
-        resolve({ cid: cid2 });
-      } else {
-        reject(errMsg);
-      }
-    });
-    if (typeof cid !== "undefined") {
-      invokeGetPushCidCallbacks(cid, cidErrMsg);
-    }
-  });
-});
-const onPushMessageCallbacks = [];
-const onPushMessage = (fn) => {
-  if (onPushMessageCallbacks.indexOf(fn) === -1) {
-    onPushMessageCallbacks.push(fn);
-  }
-};
-const offPushMessage = (fn) => {
-  if (!fn) {
-    onPushMessageCallbacks.length = 0;
-  } else {
-    const index2 = onPushMessageCallbacks.indexOf(fn);
-    if (index2 > -1) {
-      onPushMessageCallbacks.splice(index2, 1);
-    }
-  }
-};
-const SYNC_API_RE = /^\$|__f__|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|rpx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getDeviceInfo|getAppBaseInfo|getWindowInfo|getSystemSetting|getAppAuthorizeSetting/;
-const CONTEXT_API_RE = /^create|Manager$/;
-const CONTEXT_API_RE_EXC = ["createBLEConnection"];
-const TASK_APIS = ["request", "downloadFile", "uploadFile", "connectSocket"];
-const ASYNC_API = ["createBLEConnection"];
-const CALLBACK_API_RE = /^on|^off/;
-function isContextApi(name) {
-  return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1;
-}
-function isSyncApi(name) {
-  return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1;
-}
-function isCallbackApi(name) {
-  return CALLBACK_API_RE.test(name) && name !== "onPush";
-}
-function isTaskApi(name) {
-  return TASK_APIS.indexOf(name) !== -1;
-}
-function shouldPromise(name) {
-  if (isContextApi(name) || isSyncApi(name) || isCallbackApi(name)) {
-    return false;
-  }
-  return true;
-}
-if (!Promise.prototype.finally) {
-  Promise.prototype.finally = function(onfinally) {
-    const promise = this.constructor;
-    return this.then((value) => promise.resolve(onfinally && onfinally()).then(() => value), (reason) => promise.resolve(onfinally && onfinally()).then(() => {
-      throw reason;
-    }));
-  };
-}
-function promisify(name, api) {
-  if (!shouldPromise(name)) {
-    return api;
-  }
-  if (!isFunction(api)) {
-    return api;
-  }
-  return function promiseApi(options = {}, ...rest) {
-    if (isFunction(options.success) || isFunction(options.fail) || isFunction(options.complete)) {
-      return wrapperReturnValue(name, invokeApi(name, api, options, rest));
-    }
-    return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {
-      invokeApi(name, api, extend({}, options, {
-        success: resolve,
-        fail: reject
-      }), rest);
-    })));
-  };
-}
-const CALLBACKS = ["success", "fail", "cancel", "complete"];
-function initWrapper(protocols2) {
-  function processCallback(methodName, method, returnValue) {
-    return function(res) {
-      return method(processReturnValue(methodName, res, returnValue));
-    };
-  }
-  function processArgs(methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {
-    if (isPlainObject(fromArgs)) {
-      const toArgs = keepFromArgs === true ? fromArgs : {};
-      if (isFunction(argsOption)) {
-        argsOption = argsOption(fromArgs, toArgs) || {};
-      }
-      for (const key in fromArgs) {
-        if (hasOwn(argsOption, key)) {
-          let keyOption = argsOption[key];
-          if (isFunction(keyOption)) {
-            keyOption = keyOption(fromArgs[key], fromArgs, toArgs);
-          }
-          if (!keyOption) {
-            console.warn(`微信小程序 ${methodName} 暂不支持 ${key}`);
-          } else if (isString(keyOption)) {
-            toArgs[keyOption] = fromArgs[key];
-          } else if (isPlainObject(keyOption)) {
-            toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;
-          }
-        } else if (CALLBACKS.indexOf(key) !== -1) {
-          const callback = fromArgs[key];
-          if (isFunction(callback)) {
-            toArgs[key] = processCallback(methodName, callback, returnValue);
-          }
-        } else {
-          if (!keepFromArgs && !hasOwn(toArgs, key)) {
-            toArgs[key] = fromArgs[key];
-          }
-        }
-      }
-      return toArgs;
-    } else if (isFunction(fromArgs)) {
-      if (isFunction(argsOption)) {
-        argsOption(fromArgs, {});
-      }
-      fromArgs = processCallback(methodName, fromArgs, returnValue);
-    }
-    return fromArgs;
-  }
-  function processReturnValue(methodName, res, returnValue, keepReturnValue = false) {
-    if (isFunction(protocols2.returnValue)) {
-      res = protocols2.returnValue(methodName, res);
-    }
-    const realKeepReturnValue = keepReturnValue || false;
-    return processArgs(methodName, res, returnValue, {}, realKeepReturnValue);
-  }
-  return function wrapper(methodName, method) {
-    const hasProtocol = hasOwn(protocols2, methodName);
-    if (!hasProtocol && typeof wx[methodName] !== "function") {
-      return method;
-    }
-    const needWrapper = hasProtocol || isFunction(protocols2.returnValue) || isContextApi(methodName) || isTaskApi(methodName);
-    const hasMethod = hasProtocol || isFunction(method);
-    if (!hasProtocol && !method) {
-      return function() {
-        console.error(`微信小程序 暂不支持${methodName}`);
-      };
-    }
-    if (!needWrapper || !hasMethod) {
-      return method;
-    }
-    const protocol = protocols2[methodName];
-    return function(arg1, arg2) {
-      let options = protocol || {};
-      if (isFunction(protocol)) {
-        options = protocol(arg1);
-      }
-      arg1 = processArgs(methodName, arg1, options.args, options.returnValue);
-      const args = [arg1];
-      if (typeof arg2 !== "undefined") {
-        args.push(arg2);
-      }
-      const returnValue = wx[options.name || methodName].apply(wx, args);
-      if (isContextApi(methodName) || isTaskApi(methodName)) {
-        if (returnValue && !returnValue.__v_skip) {
-          returnValue.__v_skip = true;
-        }
-      }
-      if (isSyncApi(methodName)) {
-        return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName));
-      }
-      return returnValue;
-    };
-  };
-}
-const getLocale = () => {
-  const app = isFunction(getApp) && getApp({ allowDefault: true });
-  if (app && app.$vm) {
-    return app.$vm.$locale;
-  }
-  return getLocaleLanguage$1();
-};
-const setLocale = (locale) => {
-  const app = isFunction(getApp) && getApp();
-  if (!app) {
-    return false;
-  }
-  const oldLocale = app.$vm.$locale;
-  if (oldLocale !== locale) {
-    app.$vm.$locale = locale;
-    onLocaleChangeCallbacks.forEach((fn) => fn({ locale }));
-    return true;
-  }
-  return false;
-};
-const onLocaleChangeCallbacks = [];
-const onLocaleChange = (fn) => {
-  if (onLocaleChangeCallbacks.indexOf(fn) === -1) {
-    onLocaleChangeCallbacks.push(fn);
-  }
-};
-if (typeof global !== "undefined") {
-  global.getLocale = getLocale;
-}
-const UUID_KEY = "__DC_STAT_UUID";
-let deviceId;
-function useDeviceId(global2 = wx) {
-  return function addDeviceId(_, toRes) {
-    deviceId = deviceId || global2.getStorageSync(UUID_KEY);
-    if (!deviceId) {
-      deviceId = Date.now() + "" + Math.floor(Math.random() * 1e7);
-      wx.setStorage({
-        key: UUID_KEY,
-        data: deviceId
-      });
-    }
-    toRes.deviceId = deviceId;
-  };
-}
-function addSafeAreaInsets(fromRes, toRes) {
-  if (fromRes.safeArea) {
-    const safeArea = fromRes.safeArea;
-    toRes.safeAreaInsets = {
-      top: safeArea.top,
-      left: safeArea.left,
-      right: fromRes.windowWidth - safeArea.right,
-      bottom: fromRes.screenHeight - safeArea.bottom
-    };
-  }
-}
-function getOSInfo(system, platform) {
-  let osName = "";
-  let osVersion = "";
-  if (platform && false) {
-    osName = platform;
-    osVersion = system;
-  } else {
-    osName = system.split(" ")[0] || "";
-    osVersion = system.split(" ")[1] || "";
-  }
-  return {
-    osName: osName.toLocaleLowerCase(),
-    osVersion
-  };
-}
-function populateParameters(fromRes, toRes) {
-  const { brand = "", model = "", system = "", language = "", theme, version: version2, platform, fontSizeSetting, SDKVersion, pixelRatio, deviceOrientation } = fromRes;
-  const { osName, osVersion } = getOSInfo(system, platform);
-  let hostVersion = version2;
-  let deviceType = getGetDeviceType(fromRes, model);
-  let deviceBrand = getDeviceBrand(brand);
-  let _hostName = getHostName(fromRes);
-  let _deviceOrientation = deviceOrientation;
-  let _devicePixelRatio = pixelRatio;
-  let _SDKVersion = SDKVersion;
-  const hostLanguage = (language || "").replace(/_/g, "-");
-  const parameters = {
-    appId: "__UNI__EBE2302",
-    appName: "canvas",
-    appVersion: "1.0.0",
-    appVersionCode: "100",
-    appLanguage: getAppLanguage(hostLanguage),
-    uniCompileVersion: "4.57",
-    uniCompilerVersion: "4.57",
-    uniRuntimeVersion: "4.57",
-    uniPlatform: "mp-weixin",
-    deviceBrand,
-    deviceModel: model,
-    deviceType,
-    devicePixelRatio: _devicePixelRatio,
-    deviceOrientation: _deviceOrientation,
-    osName,
-    osVersion,
-    hostTheme: theme,
-    hostVersion,
-    hostLanguage,
-    hostName: _hostName,
-    hostSDKVersion: _SDKVersion,
-    hostFontSizeSetting: fontSizeSetting,
-    windowTop: 0,
-    windowBottom: 0,
-    // TODO
-    osLanguage: void 0,
-    osTheme: void 0,
-    ua: void 0,
-    hostPackageName: void 0,
-    browserName: void 0,
-    browserVersion: void 0,
-    isUniAppX: false
-  };
-  extend(toRes, parameters);
-}
-function getGetDeviceType(fromRes, model) {
-  let deviceType = fromRes.deviceType || "phone";
-  {
-    const deviceTypeMaps = {
-      ipad: "pad",
-      windows: "pc",
-      mac: "pc"
-    };
-    const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);
-    const _model = model.toLocaleLowerCase();
-    for (let index2 = 0; index2 < deviceTypeMapsKeys.length; index2++) {
-      const _m = deviceTypeMapsKeys[index2];
-      if (_model.indexOf(_m) !== -1) {
-        deviceType = deviceTypeMaps[_m];
-        break;
-      }
-    }
-  }
-  return deviceType;
-}
-function getDeviceBrand(brand) {
-  let deviceBrand = brand;
-  if (deviceBrand) {
-    deviceBrand = deviceBrand.toLocaleLowerCase();
-  }
-  return deviceBrand;
-}
-function getAppLanguage(defaultLanguage) {
-  return getLocale ? getLocale() : defaultLanguage;
-}
-function getHostName(fromRes) {
-  const _platform = "WeChat";
-  let _hostName = fromRes.hostName || _platform;
-  {
-    if (fromRes.environment) {
-      _hostName = fromRes.environment;
-    } else if (fromRes.host && fromRes.host.env) {
-      _hostName = fromRes.host.env;
-    }
-  }
-  return _hostName;
-}
-const getSystemInfo = {
-  returnValue: (fromRes, toRes) => {
-    addSafeAreaInsets(fromRes, toRes);
-    useDeviceId()(fromRes, toRes);
-    populateParameters(fromRes, toRes);
-  }
-};
-const getSystemInfoSync = getSystemInfo;
-const redirectTo = {};
-const previewImage = {
-  args(fromArgs, toArgs) {
-    let currentIndex = parseInt(fromArgs.current);
-    if (isNaN(currentIndex)) {
-      return;
-    }
-    const urls = fromArgs.urls;
-    if (!isArray(urls)) {
-      return;
-    }
-    const len = urls.length;
-    if (!len) {
-      return;
-    }
-    if (currentIndex < 0) {
-      currentIndex = 0;
-    } else if (currentIndex >= len) {
-      currentIndex = len - 1;
-    }
-    if (currentIndex > 0) {
-      toArgs.current = urls[currentIndex];
-      toArgs.urls = urls.filter((item, index2) => index2 < currentIndex ? item !== urls[currentIndex] : true);
-    } else {
-      toArgs.current = urls[0];
-    }
-    return {
-      indicator: false,
-      loop: false
-    };
-  }
-};
-const showActionSheet = {
-  args(fromArgs, toArgs) {
-    toArgs.alertText = fromArgs.title;
-  }
-};
-const getDeviceInfo = {
-  returnValue: (fromRes, toRes) => {
-    const { brand, model, system = "", platform = "" } = fromRes;
-    let deviceType = getGetDeviceType(fromRes, model);
-    let deviceBrand = getDeviceBrand(brand);
-    useDeviceId()(fromRes, toRes);
-    const { osName, osVersion } = getOSInfo(system, platform);
-    toRes = sortObject(extend(toRes, {
-      deviceType,
-      deviceBrand,
-      deviceModel: model,
-      osName,
-      osVersion
-    }));
-  }
-};
-const getAppBaseInfo = {
-  returnValue: (fromRes, toRes) => {
-    const { version: version2, language, SDKVersion, theme } = fromRes;
-    let _hostName = getHostName(fromRes);
-    let hostLanguage = (language || "").replace(/_/g, "-");
-    const parameters = {
-      hostVersion: version2,
-      hostLanguage,
-      hostName: _hostName,
-      hostSDKVersion: SDKVersion,
-      hostTheme: theme,
-      appId: "__UNI__EBE2302",
-      appName: "canvas",
-      appVersion: "1.0.0",
-      appVersionCode: "100",
-      appLanguage: getAppLanguage(hostLanguage),
-      isUniAppX: false,
-      uniPlatform: "mp-weixin",
-      uniCompileVersion: "4.57",
-      uniCompilerVersion: "4.57",
-      uniRuntimeVersion: "4.57"
-    };
-    extend(toRes, parameters);
-  }
-};
-const getWindowInfo = {
-  returnValue: (fromRes, toRes) => {
-    addSafeAreaInsets(fromRes, toRes);
-    toRes = sortObject(extend(toRes, {
-      windowTop: 0,
-      windowBottom: 0
-    }));
-  }
-};
-const getAppAuthorizeSetting = {
-  returnValue: function(fromRes, toRes) {
-    const { locationReducedAccuracy } = fromRes;
-    toRes.locationAccuracy = "unsupported";
-    if (locationReducedAccuracy === true) {
-      toRes.locationAccuracy = "reduced";
-    } else if (locationReducedAccuracy === false) {
-      toRes.locationAccuracy = "full";
-    }
-  }
-};
-const onError = {
-  args(fromArgs) {
-    const app = getApp({ allowDefault: true }) || {};
-    if (!app.$vm) {
-      if (!wx.$onErrorHandlers) {
-        wx.$onErrorHandlers = [];
-      }
-      wx.$onErrorHandlers.push(fromArgs);
-    } else {
-      injectHook(ON_ERROR, fromArgs, app.$vm.$);
-    }
-  }
-};
-const offError = {
-  args(fromArgs) {
-    const app = getApp({ allowDefault: true }) || {};
-    if (!app.$vm) {
-      if (!wx.$onErrorHandlers) {
-        return;
-      }
-      const index2 = wx.$onErrorHandlers.findIndex((fn) => fn === fromArgs);
-      if (index2 !== -1) {
-        wx.$onErrorHandlers.splice(index2, 1);
-      }
-    } else if (fromArgs.__weh) {
-      const onErrors = app.$vm.$[ON_ERROR];
-      if (onErrors) {
-        const index2 = onErrors.indexOf(fromArgs.__weh);
-        if (index2 > -1) {
-          onErrors.splice(index2, 1);
-        }
-      }
-    }
-  }
-};
-const onSocketOpen = {
-  args() {
-    if (wx.__uni_console__) {
-      if (wx.__uni_console_warned__) {
-        return;
-      }
-      wx.__uni_console_warned__ = true;
-      console.warn(`开发模式下小程序日志回显会使用 socket 连接,为了避免冲突,建议使用 SocketTask 的方式去管理 WebSocket 或手动关闭日志回显功能。[详情](https://uniapp.dcloud.net.cn/tutorial/run/mp-log.html)`);
-    }
-  }
-};
-const onSocketMessage = onSocketOpen;
-const baseApis = {
-  $on,
-  $off,
-  $once,
-  $emit,
-  upx2px,
-  rpx2px: upx2px,
-  interceptors,
-  addInterceptor,
-  removeInterceptor,
-  onCreateVueApp,
-  invokeCreateVueAppHook,
-  getLocale,
-  setLocale,
-  onLocaleChange,
-  getPushClientId,
-  onPushMessage,
-  offPushMessage,
-  invokePushCallback,
-  __f__
-};
-function initUni(api, protocols2, platform = wx) {
-  const wrapper = initWrapper(protocols2);
-  const UniProxyHandlers = {
-    get(target, key) {
-      if (hasOwn(target, key)) {
-        return target[key];
-      }
-      if (hasOwn(api, key)) {
-        return promisify(key, api[key]);
-      }
-      if (hasOwn(baseApis, key)) {
-        return promisify(key, baseApis[key]);
-      }
-      return promisify(key, wrapper(key, platform[key]));
-    }
-  };
-  return new Proxy({}, UniProxyHandlers);
-}
-function initGetProvider(providers) {
-  return function getProvider2({ service, success, fail, complete }) {
-    let res;
-    if (providers[service]) {
-      res = {
-        errMsg: "getProvider:ok",
-        service,
-        provider: providers[service]
-      };
-      isFunction(success) && success(res);
-    } else {
-      res = {
-        errMsg: "getProvider:fail:服务[" + service + "]不存在"
-      };
-      isFunction(fail) && fail(res);
-    }
-    isFunction(complete) && complete(res);
-  };
-}
-const objectKeys = [
-  "qy",
-  "env",
-  "error",
-  "version",
-  "lanDebug",
-  "cloud",
-  "serviceMarket",
-  "router",
-  "worklet",
-  "__webpack_require_UNI_MP_PLUGIN__"
-];
-const singlePageDisableKey = ["lanDebug", "router", "worklet"];
-const launchOption = wx.getLaunchOptionsSync ? wx.getLaunchOptionsSync() : null;
-function isWxKey(key) {
-  if (launchOption && launchOption.scene === 1154 && singlePageDisableKey.includes(key)) {
-    return false;
-  }
-  return objectKeys.indexOf(key) > -1 || typeof wx[key] === "function";
-}
-function initWx() {
-  const newWx = {};
-  for (const key in wx) {
-    if (isWxKey(key)) {
-      newWx[key] = wx[key];
-    }
-  }
-  if (typeof globalThis !== "undefined" && typeof requireMiniProgram === "undefined") {
-    globalThis.wx = newWx;
-  }
-  return newWx;
-}
-const mocks$1 = ["__route__", "__wxExparserNodeId__", "__wxWebviewId__"];
-const getProvider = initGetProvider({
-  oauth: ["weixin"],
-  share: ["weixin"],
-  payment: ["wxpay"],
-  push: ["weixin"]
-});
-function initComponentMocks(component) {
-  const res = /* @__PURE__ */ Object.create(null);
-  mocks$1.forEach((name) => {
-    res[name] = component[name];
-  });
-  return res;
-}
-function createSelectorQuery() {
-  const query = wx$2.createSelectorQuery();
-  const oldIn = query.in;
-  query.in = function newIn(component) {
-    if (component.$scope) {
-      return oldIn.call(this, component.$scope);
-    }
-    return oldIn.call(this, initComponentMocks(component));
-  };
-  return query;
-}
-const wx$2 = initWx();
-if (!wx$2.canIUse("getAppBaseInfo")) {
-  wx$2.getAppBaseInfo = wx$2.getSystemInfoSync;
-}
-if (!wx$2.canIUse("getWindowInfo")) {
-  wx$2.getWindowInfo = wx$2.getSystemInfoSync;
-}
-if (!wx$2.canIUse("getDeviceInfo")) {
-  wx$2.getDeviceInfo = wx$2.getSystemInfoSync;
-}
-let baseInfo = wx$2.getAppBaseInfo && wx$2.getAppBaseInfo();
-if (!baseInfo) {
-  baseInfo = wx$2.getSystemInfoSync();
-}
-const host = baseInfo ? baseInfo.host : null;
-const shareVideoMessage = host && host.env === "SAAASDK" ? wx$2.miniapp.shareVideoMessage : wx$2.shareVideoMessage;
-var shims = /* @__PURE__ */ Object.freeze({
-  __proto__: null,
-  createSelectorQuery,
-  getProvider,
-  shareVideoMessage
-});
-const compressImage = {
-  args(fromArgs, toArgs) {
-    if (fromArgs.compressedHeight && !toArgs.compressHeight) {
-      toArgs.compressHeight = fromArgs.compressedHeight;
-    }
-    if (fromArgs.compressedWidth && !toArgs.compressWidth) {
-      toArgs.compressWidth = fromArgs.compressedWidth;
-    }
-  }
-};
-var protocols = /* @__PURE__ */ Object.freeze({
-  __proto__: null,
-  compressImage,
-  getAppAuthorizeSetting,
-  getAppBaseInfo,
-  getDeviceInfo,
-  getSystemInfo,
-  getSystemInfoSync,
-  getWindowInfo,
-  offError,
-  onError,
-  onSocketMessage,
-  onSocketOpen,
-  previewImage,
-  redirectTo,
-  showActionSheet
-});
-const wx$1 = initWx();
-var index = initUni(shims, protocols, wx$1);
-function initRuntimeSocket(hosts, port, id) {
-  if (hosts == "" || port == "" || id == "")
-    return Promise.resolve(null);
-  return hosts.split(",").reduce((promise, host2) => {
-    return promise.then((socket) => {
-      if (socket != null)
-        return Promise.resolve(socket);
-      return tryConnectSocket(host2, port, id);
-    });
-  }, Promise.resolve(null));
-}
-const SOCKET_TIMEOUT = 500;
-function tryConnectSocket(host2, port, id) {
-  return new Promise((resolve, reject) => {
-    const socket = index.connectSocket({
-      url: `ws://${host2}:${port}/${id}`,
-      multiple: true,
-      // 支付宝小程序 是否开启多实例
-      fail() {
-        resolve(null);
-      }
-    });
-    const timer = setTimeout(() => {
-      socket.close({
-        code: 1006,
-        reason: "connect timeout"
-      });
-      resolve(null);
-    }, SOCKET_TIMEOUT);
-    socket.onOpen((e) => {
-      clearTimeout(timer);
-      resolve(socket);
-    });
-    socket.onClose((e) => {
-      clearTimeout(timer);
-      resolve(null);
-    });
-    socket.onError((e) => {
-      clearTimeout(timer);
-      resolve(null);
-    });
-  });
-}
-function formatMessage(type, args) {
-  try {
-    return {
-      type,
-      args: formatArgs(args)
-    };
-  } catch (e) {
-  }
-  return {
-    type,
-    args: []
-  };
-}
-function formatArgs(args) {
-  return args.map((arg) => formatArg(arg));
-}
-function formatArg(arg, depth = 0) {
-  if (depth >= 7) {
-    return {
-      type: "object",
-      value: "[Maximum depth reached]"
-    };
-  }
-  const type = typeof arg;
-  switch (type) {
-    case "string":
-      return formatString(arg);
-    case "number":
-      return formatNumber(arg);
-    case "boolean":
-      return formatBoolean(arg);
-    case "object":
-      return formatObject(arg, depth);
-    case "undefined":
-      return formatUndefined();
-    case "function":
-      return formatFunction(arg);
-    case "symbol": {
-      return formatSymbol(arg);
-    }
-    case "bigint":
-      return formatBigInt(arg);
-  }
-}
-function formatFunction(value) {
-  return {
-    type: "function",
-    value: `function ${value.name}() {}`
-  };
-}
-function formatUndefined() {
-  return {
-    type: "undefined"
-  };
-}
-function formatBoolean(value) {
-  return {
-    type: "boolean",
-    value: String(value)
-  };
-}
-function formatNumber(value) {
-  return {
-    type: "number",
-    value: String(value)
-  };
-}
-function formatBigInt(value) {
-  return {
-    type: "bigint",
-    value: String(value)
-  };
-}
-function formatString(value) {
-  return {
-    type: "string",
-    value
-  };
-}
-function formatSymbol(value) {
-  return {
-    type: "symbol",
-    value: value.description
-  };
-}
-function formatObject(value, depth) {
-  if (value === null) {
-    return {
-      type: "null"
-    };
-  }
-  {
-    if (isComponentPublicInstance(value)) {
-      return formatComponentPublicInstance(value, depth);
-    }
-    if (isComponentInternalInstance(value)) {
-      return formatComponentInternalInstance(value, depth);
-    }
-    if (isUniElement(value)) {
-      return formatUniElement(value, depth);
-    }
-    if (isCSSStyleDeclaration(value)) {
-      return formatCSSStyleDeclaration(value, depth);
-    }
-  }
-  if (Array.isArray(value)) {
-    return {
-      type: "object",
-      subType: "array",
-      value: {
-        properties: value.map((v, i) => formatArrayElement(v, i, depth + 1))
-      }
-    };
-  }
-  if (value instanceof Set) {
-    return {
-      type: "object",
-      subType: "set",
-      className: "Set",
-      description: `Set(${value.size})`,
-      value: {
-        entries: Array.from(value).map((v) => formatSetEntry(v, depth + 1))
-      }
-    };
-  }
-  if (value instanceof Map) {
-    return {
-      type: "object",
-      subType: "map",
-      className: "Map",
-      description: `Map(${value.size})`,
-      value: {
-        entries: Array.from(value.entries()).map((v) => formatMapEntry(v, depth + 1))
-      }
-    };
-  }
-  if (value instanceof Promise) {
-    return {
-      type: "object",
-      subType: "promise",
-      value: {
-        properties: []
-      }
-    };
-  }
-  if (value instanceof RegExp) {
-    return {
-      type: "object",
-      subType: "regexp",
-      value: String(value),
-      className: "Regexp"
-    };
-  }
-  if (value instanceof Date) {
-    return {
-      type: "object",
-      subType: "date",
-      value: String(value),
-      className: "Date"
-    };
-  }
-  if (value instanceof Error) {
-    return {
-      type: "object",
-      subType: "error",
-      value: value.message || String(value),
-      className: value.name || "Error"
-    };
-  }
-  let className = void 0;
-  {
-    const constructor = value.constructor;
-    if (constructor) {
-      if (constructor.get$UTSMetadata$) {
-        className = constructor.get$UTSMetadata$().name;
-      }
-    }
-  }
-  return {
-    type: "object",
-    className,
-    value: {
-      properties: Object.entries(value).map((entry) => formatObjectProperty(entry[0], entry[1], depth + 1))
-    }
-  };
-}
-function isComponentPublicInstance(value) {
-  return value.$ && isComponentInternalInstance(value.$);
-}
-function isComponentInternalInstance(value) {
-  return value.type && value.uid != null && value.appContext;
-}
-function formatComponentPublicInstance(value, depth) {
-  return {
-    type: "object",
-    className: "ComponentPublicInstance",
-    value: {
-      properties: Object.entries(value.$.type).map(([name, value2]) => formatObjectProperty(name, value2, depth + 1))
-    }
-  };
-}
-function formatComponentInternalInstance(value, depth) {
-  return {
-    type: "object",
-    className: "ComponentInternalInstance",
-    value: {
-      properties: Object.entries(value.type).map(([name, value2]) => formatObjectProperty(name, value2, depth + 1))
-    }
-  };
-}
-function isUniElement(value) {
-  return value.style && value.tagName != null && value.nodeName != null;
-}
-function formatUniElement(value, depth) {
-  return {
-    type: "object",
-    // 非 x 没有 UniElement 的概念
-    // className: 'UniElement',
-    value: {
-      properties: Object.entries(value).filter(([name]) => [
-        "id",
-        "tagName",
-        "nodeName",
-        "dataset",
-        "offsetTop",
-        "offsetLeft",
-        "style"
-      ].includes(name)).map(([name, value2]) => formatObjectProperty(name, value2, depth + 1))
-    }
-  };
-}
-function isCSSStyleDeclaration(value) {
-  return typeof value.getPropertyValue === "function" && typeof value.setProperty === "function" && value.$styles;
-}
-function formatCSSStyleDeclaration(style, depth) {
-  return {
-    type: "object",
-    value: {
-      properties: Object.entries(style.$styles).map(([name, value]) => formatObjectProperty(name, value, depth + 1))
-    }
-  };
-}
-function formatObjectProperty(name, value, depth) {
-  const result = formatArg(value, depth);
-  result.name = name;
-  return result;
-}
-function formatArrayElement(value, index2, depth) {
-  const result = formatArg(value, depth);
-  result.name = `${index2}`;
-  return result;
-}
-function formatSetEntry(value, depth) {
-  return {
-    value: formatArg(value, depth)
-  };
-}
-function formatMapEntry(value, depth) {
-  return {
-    key: formatArg(value[0], depth),
-    value: formatArg(value[1], depth)
-  };
-}
-const CONSOLE_TYPES = ["log", "warn", "error", "info", "debug"];
-let sendConsole = null;
-const messageQueue = [];
-const messageExtra = {};
-function sendConsoleMessages(messages) {
-  if (sendConsole == null) {
-    messageQueue.push(...messages);
-    return;
-  }
-  sendConsole(JSON.stringify(Object.assign({
-    type: "console",
-    data: messages
-  }, messageExtra)));
-}
-function setSendConsole(value, extra = {}) {
-  sendConsole = value;
-  Object.assign(messageExtra, extra);
-  if (value != null && messageQueue.length > 0) {
-    const messages = messageQueue.slice();
-    messageQueue.length = 0;
-    sendConsoleMessages(messages);
-  }
-}
-const originalConsole = /* @__PURE__ */ CONSOLE_TYPES.reduce((methods, type) => {
-  methods[type] = console[type].bind(console);
-  return methods;
-}, {});
-const atFileRegex = /^\s*at\s+[\w/./-]+:\d+$/;
-function rewriteConsole() {
-  function wrapConsole(type) {
-    return function(...args) {
-      const originalArgs = [...args];
-      if (originalArgs.length) {
-        const maybeAtFile = originalArgs[originalArgs.length - 1];
-        if (typeof maybeAtFile === "string" && atFileRegex.test(maybeAtFile)) {
-          originalArgs.pop();
-        }
-      }
-      {
-        originalConsole[type](...originalArgs);
-      }
-      sendConsoleMessages([formatMessage(type, args)]);
-    };
-  }
-  if (isConsoleWritable()) {
-    CONSOLE_TYPES.forEach((type) => {
-      console[type] = wrapConsole(type);
-    });
-    return function restoreConsole() {
-      CONSOLE_TYPES.forEach((type) => {
-        console[type] = originalConsole[type];
-      });
-    };
-  } else {
-    {
-      if (typeof index !== "undefined" && index.__f__) {
-        const oldLog = index.__f__;
-        if (oldLog) {
-          index.__f__ = function(...args) {
-            const [type, filename, ...rest] = args;
-            oldLog(type, "", ...rest);
-            sendConsoleMessages([formatMessage(type, [...rest, filename])]);
-          };
-          return function restoreConsole() {
-            index.__f__ = oldLog;
-          };
-        }
-      }
-    }
-  }
-  return function restoreConsole() {
-  };
-}
-function isConsoleWritable() {
-  const value = console.log;
-  const sym = Symbol();
-  try {
-    console.log = sym;
-  } catch (ex) {
-    return false;
-  }
-  const isWritable = console.log === sym;
-  console.log = value;
-  return isWritable;
-}
-let sendError = null;
-const errorQueue = /* @__PURE__ */ new Set();
-const errorExtra = {};
-function sendErrorMessages(errors) {
-  if (sendError == null) {
-    errors.forEach((error) => {
-      errorQueue.add(error);
-    });
-    return;
-  }
-  const data = errors.map((err) => {
-    const isPromiseRejection = err && "promise" in err && "reason" in err;
-    const prefix = isPromiseRejection ? "UnhandledPromiseRejection: " : "";
-    if (isPromiseRejection) {
-      err = err.reason;
-    }
-    if (err instanceof Error && err.stack) {
-      if (err.message && !err.stack.includes(err.message)) {
-        return `${prefix}${err.message}
-${err.stack}`;
-      }
-      return `${prefix}${err.stack}`;
-    }
-    if (typeof err === "object" && err !== null) {
-      try {
-        return prefix + JSON.stringify(err);
-      } catch (err2) {
-        return prefix + String(err2);
-      }
-    }
-    return prefix + String(err);
-  }).filter(Boolean);
-  if (data.length > 0) {
-    sendError(JSON.stringify(Object.assign({
-      type: "error",
-      data
-    }, errorExtra)));
-  }
-}
-function setSendError(value, extra = {}) {
-  sendError = value;
-  Object.assign(errorExtra, extra);
-  if (value != null && errorQueue.size > 0) {
-    const errors = Array.from(errorQueue);
-    errorQueue.clear();
-    sendErrorMessages(errors);
-  }
-}
-function initOnError() {
-  function onError2(error) {
-    try {
-      if (typeof PromiseRejectionEvent !== "undefined" && error instanceof PromiseRejectionEvent && error.reason instanceof Error && error.reason.message && error.reason.message.includes(`Cannot create property 'errMsg' on string 'taskId`)) {
-        return;
-      }
-      if (true) {
-        originalConsole.error(error);
-      }
-      sendErrorMessages([error]);
-    } catch (err) {
-      originalConsole.error(err);
-    }
-  }
-  if (typeof index.onError === "function") {
-    index.onError(onError2);
-  }
-  if (typeof index.onUnhandledRejection === "function") {
-    index.onUnhandledRejection(onError2);
-  }
-  return function offError2() {
-    if (typeof index.offError === "function") {
-      index.offError(onError2);
-    }
-    if (typeof index.offUnhandledRejection === "function") {
-      index.offUnhandledRejection(onError2);
-    }
-  };
-}
-function initRuntimeSocketService() {
-  const hosts = "127.0.0.1,172.10.0.117";
-  const port = "8090";
-  const id = "mp-weixin_c9b8fP";
-  const lazy = typeof swan !== "undefined";
-  let restoreError = lazy ? () => {
-  } : initOnError();
-  let restoreConsole = lazy ? () => {
-  } : rewriteConsole();
-  return Promise.resolve().then(() => {
-    if (lazy) {
-      restoreError = initOnError();
-      restoreConsole = rewriteConsole();
-    }
-    return initRuntimeSocket(hosts, port, id).then((socket) => {
-      if (!socket) {
-        restoreError();
-        restoreConsole();
-        originalConsole.error(wrapError("开发模式下日志通道建立 socket 连接失败。"));
-        originalConsole.error(wrapError("如果是小程序平台,请勾选不校验合法域名配置。"));
-        originalConsole.error(wrapError("如果是运行到真机,请确认手机与电脑处于同一网络。"));
-        return false;
-      }
-      initMiniProgramGlobalFlag();
-      socket.onClose(() => {
-        originalConsole.error(wrapError("开发模式下日志通道 socket 连接关闭,请在 HBuilderX 中重新运行。"));
-        restoreError();
-        restoreConsole();
-      });
-      setSendConsole((data) => {
-        socket.send({
-          data
-        });
-      });
-      setSendError((data) => {
-        socket.send({
-          data
-        });
-      });
-      return true;
-    });
-  });
-}
-const ERROR_CHAR = "‌";
-function wrapError(error) {
-  return `${ERROR_CHAR}${error}${ERROR_CHAR}`;
-}
-function initMiniProgramGlobalFlag() {
-  if (typeof wx$1 !== "undefined") {
-    wx$1.__uni_console__ = true;
-  } else if (typeof my !== "undefined") {
-    my.__uni_console__ = true;
-  } else if (typeof tt !== "undefined") {
-    tt.__uni_console__ = true;
-  } else if (typeof swan !== "undefined") {
-    swan.__uni_console__ = true;
-  } else if (typeof qq !== "undefined") {
-    qq.__uni_console__ = true;
-  } else if (typeof ks !== "undefined") {
-    ks.__uni_console__ = true;
-  } else if (typeof jd !== "undefined") {
-    jd.__uni_console__ = true;
-  } else if (typeof xhs !== "undefined") {
-    xhs.__uni_console__ = true;
-  } else if (typeof has !== "undefined") {
-    has.__uni_console__ = true;
-  } else if (typeof qa !== "undefined") {
-    qa.__uni_console__ = true;
-  }
-}
-initRuntimeSocketService();
-const _export_sfc = (sfc, props) => {
-  const target = sfc.__vccOpts || sfc;
-  for (const [key, val] of props) {
-    target[key] = val;
-  }
-  return target;
-};
-function initVueIds(vueIds, mpInstance) {
-  if (!vueIds) {
-    return;
-  }
-  const ids = vueIds.split(",");
-  const len = ids.length;
-  if (len === 1) {
-    mpInstance._$vueId = ids[0];
-  } else if (len === 2) {
-    mpInstance._$vueId = ids[0];
-    mpInstance._$vuePid = ids[1];
-  }
-}
-const EXTRAS = ["externalClasses"];
-function initExtraOptions(miniProgramComponentOptions, vueOptions) {
-  EXTRAS.forEach((name) => {
-    if (hasOwn(vueOptions, name)) {
-      miniProgramComponentOptions[name] = vueOptions[name];
-    }
-  });
-}
-const WORKLET_RE = /_(.*)_worklet_factory_/;
-function initWorkletMethods(mpMethods, vueMethods) {
-  if (vueMethods) {
-    Object.keys(vueMethods).forEach((name) => {
-      const matches = name.match(WORKLET_RE);
-      if (matches) {
-        const workletName = matches[1];
-        mpMethods[name] = vueMethods[name];
-        mpMethods[workletName] = vueMethods[workletName];
-      }
-    });
-  }
-}
-function initWxsCallMethods(methods, wxsCallMethods) {
-  if (!isArray(wxsCallMethods)) {
-    return;
-  }
-  wxsCallMethods.forEach((callMethod) => {
-    methods[callMethod] = function(args) {
-      return this.$vm[callMethod](args);
-    };
-  });
-}
-function selectAllComponents(mpInstance, selector, $refs) {
-  const components = mpInstance.selectAllComponents(selector);
-  components.forEach((component) => {
-    const ref2 = component.properties.uR;
-    $refs[ref2] = component.$vm || component;
-  });
-}
-function initRefs(instance, mpInstance) {
-  Object.defineProperty(instance, "refs", {
-    get() {
-      const $refs = {};
-      selectAllComponents(mpInstance, ".r", $refs);
-      const forComponents = mpInstance.selectAllComponents(".r-i-f");
-      forComponents.forEach((component) => {
-        const ref2 = component.properties.uR;
-        if (!ref2) {
-          return;
-        }
-        if (!$refs[ref2]) {
-          $refs[ref2] = [];
-        }
-        $refs[ref2].push(component.$vm || component);
-      });
-      return $refs;
-    }
-  });
-}
-function findVmByVueId(instance, vuePid) {
-  const $children = instance.$children;
-  for (let i = $children.length - 1; i >= 0; i--) {
-    const childVm = $children[i];
-    if (childVm.$scope._$vueId === vuePid) {
-      return childVm;
-    }
-  }
-  let parentVm;
-  for (let i = $children.length - 1; i >= 0; i--) {
-    parentVm = findVmByVueId($children[i], vuePid);
-    if (parentVm) {
-      return parentVm;
-    }
-  }
-}
-function getLocaleLanguage() {
-  let localeLanguage = "";
-  {
-    const appBaseInfo = wx.getAppBaseInfo();
-    const language = appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN;
-    localeLanguage = normalizeLocale(language) || LOCALE_EN;
-  }
-  return localeLanguage;
-}
-const MP_METHODS = [
-  "createSelectorQuery",
-  "createIntersectionObserver",
-  "selectAllComponents",
-  "selectComponent"
-];
-function createEmitFn(oldEmit, ctx) {
-  return function emit2(event, ...args) {
-    const scope = ctx.$scope;
-    if (scope && event) {
-      const detail = { __args__: args };
-      {
-        scope.triggerEvent(event, detail);
-      }
-    }
-    return oldEmit.apply(this, [event, ...args]);
-  };
-}
-function initBaseInstance(instance, options) {
-  const ctx = instance.ctx;
-  ctx.mpType = options.mpType;
-  ctx.$mpType = options.mpType;
-  ctx.$mpPlatform = "mp-weixin";
-  ctx.$scope = options.mpInstance;
-  {
-    Object.defineProperties(ctx, {
-      // only id
-      [VIRTUAL_HOST_ID]: {
-        get() {
-          const id = this.$scope.data[VIRTUAL_HOST_ID];
-          return id === void 0 ? "" : id;
-        }
-      }
-    });
-  }
-  ctx.$mp = {};
-  {
-    ctx._self = {};
-  }
-  instance.slots = {};
-  if (isArray(options.slots) && options.slots.length) {
-    options.slots.forEach((name) => {
-      instance.slots[name] = true;
-    });
-    if (instance.slots[SLOT_DEFAULT_NAME]) {
-      instance.slots.default = true;
-    }
-  }
-  ctx.getOpenerEventChannel = function() {
-    {
-      return options.mpInstance.getOpenerEventChannel();
-    }
-  };
-  ctx.$hasHook = hasHook;
-  ctx.$callHook = callHook;
-  instance.emit = createEmitFn(instance.emit, ctx);
-}
-function initComponentInstance(instance, options) {
-  initBaseInstance(instance, options);
-  const ctx = instance.ctx;
-  MP_METHODS.forEach((method) => {
-    ctx[method] = function(...args) {
-      const mpInstance = ctx.$scope;
-      if (mpInstance && mpInstance[method]) {
-        return mpInstance[method].apply(mpInstance, args);
-      }
-    };
-  });
-}
-function initMocks(instance, mpInstance, mocks2) {
-  const ctx = instance.ctx;
-  mocks2.forEach((mock) => {
-    if (hasOwn(mpInstance, mock)) {
-      instance[mock] = ctx[mock] = mpInstance[mock];
-    }
-  });
-}
-function hasHook(name) {
-  const hooks = this.$[name];
-  if (hooks && hooks.length) {
-    return true;
-  }
-  return false;
-}
-function callHook(name, args) {
-  if (name === "mounted") {
-    callHook.call(this, "bm");
-    this.$.isMounted = true;
-    name = "m";
-  }
-  const hooks = this.$[name];
-  return hooks && invokeArrayFns(hooks, args);
-}
-const PAGE_INIT_HOOKS = [
-  ON_LOAD,
-  ON_SHOW,
-  ON_HIDE,
-  ON_UNLOAD,
-  ON_RESIZE,
-  ON_TAB_ITEM_TAP,
-  ON_REACH_BOTTOM,
-  ON_PULL_DOWN_REFRESH,
-  ON_ADD_TO_FAVORITES
-  // 'onReady', // lifetimes.ready
-  // 'onPageScroll', // 影响性能,开发者手动注册
-  // 'onShareTimeline', // 右上角菜单,开发者手动注册
-  // 'onShareAppMessage' // 右上角菜单,开发者手动注册
-];
-function findHooks(vueOptions, hooks = /* @__PURE__ */ new Set()) {
-  if (vueOptions) {
-    Object.keys(vueOptions).forEach((name) => {
-      if (isUniLifecycleHook(name, vueOptions[name])) {
-        hooks.add(name);
-      }
-    });
-    {
-      const { extends: extendsOptions, mixins } = vueOptions;
-      if (mixins) {
-        mixins.forEach((mixin) => findHooks(mixin, hooks));
-      }
-      if (extendsOptions) {
-        findHooks(extendsOptions, hooks);
-      }
-    }
-  }
-  return hooks;
-}
-function initHook(mpOptions, hook, excludes) {
-  if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {
-    mpOptions[hook] = function(args) {
-      return this.$vm && this.$vm.$callHook(hook, args);
-    };
-  }
-}
-const EXCLUDE_HOOKS = [ON_READY];
-function initHooks(mpOptions, hooks, excludes = EXCLUDE_HOOKS) {
-  hooks.forEach((hook) => initHook(mpOptions, hook, excludes));
-}
-function initUnknownHooks(mpOptions, vueOptions, excludes = EXCLUDE_HOOKS) {
-  findHooks(vueOptions).forEach((hook) => initHook(mpOptions, hook, excludes));
-}
-function initRuntimeHooks(mpOptions, runtimeHooks) {
-  if (!runtimeHooks) {
-    return;
-  }
-  const hooks = Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS);
-  hooks.forEach((hook) => {
-    if (runtimeHooks & MINI_PROGRAM_PAGE_RUNTIME_HOOKS[hook]) {
-      initHook(mpOptions, hook, []);
-    }
-  });
-}
-const findMixinRuntimeHooks = /* @__PURE__ */ once(() => {
-  const runtimeHooks = [];
-  const app = isFunction(getApp) && getApp({ allowDefault: true });
-  if (app && app.$vm && app.$vm.$) {
-    const mixins = app.$vm.$.appContext.mixins;
-    if (isArray(mixins)) {
-      const hooks = Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS);
-      mixins.forEach((mixin) => {
-        hooks.forEach((hook) => {
-          if (hasOwn(mixin, hook) && !runtimeHooks.includes(hook)) {
-            runtimeHooks.push(hook);
-          }
-        });
-      });
-    }
-  }
-  return runtimeHooks;
-});
-function initMixinRuntimeHooks(mpOptions) {
-  initHooks(mpOptions, findMixinRuntimeHooks());
-}
-const HOOKS = [
-  ON_SHOW,
-  ON_HIDE,
-  ON_ERROR,
-  ON_THEME_CHANGE,
-  ON_PAGE_NOT_FOUND,
-  ON_UNHANDLE_REJECTION
-];
-function parseApp(instance, parseAppOptions) {
-  const internalInstance = instance.$;
-  const appOptions = {
-    globalData: instance.$options && instance.$options.globalData || {},
-    $vm: instance,
-    // mp-alipay 组件 data 初始化比 onLaunch 早,提前挂载
-    onLaunch(options) {
-      this.$vm = instance;
-      const ctx = internalInstance.ctx;
-      if (this.$vm && ctx.$scope && ctx.$callHook) {
-        return;
-      }
-      initBaseInstance(internalInstance, {
-        mpType: "app",
-        mpInstance: this,
-        slots: []
-      });
-      ctx.globalData = this.globalData;
-      instance.$callHook(ON_LAUNCH, options);
-    }
-  };
-  const onErrorHandlers = wx.$onErrorHandlers;
-  if (onErrorHandlers) {
-    onErrorHandlers.forEach((fn) => {
-      injectHook(ON_ERROR, fn, internalInstance);
-    });
-    onErrorHandlers.length = 0;
-  }
-  initLocale(instance);
-  const vueOptions = instance.$.type;
-  initHooks(appOptions, HOOKS);
-  initUnknownHooks(appOptions, vueOptions);
-  {
-    const methods = vueOptions.methods;
-    methods && extend(appOptions, methods);
-  }
-  return appOptions;
-}
-function initCreateApp(parseAppOptions) {
-  return function createApp2(vm) {
-    return App(parseApp(vm));
-  };
-}
-function initCreateSubpackageApp(parseAppOptions) {
-  return function createApp2(vm) {
-    const appOptions = parseApp(vm);
-    const app = isFunction(getApp) && getApp({
-      allowDefault: true
-    });
-    if (!app)
-      return;
-    vm.$.ctx.$scope = app;
-    const globalData = app.globalData;
-    if (globalData) {
-      Object.keys(appOptions.globalData).forEach((name) => {
-        if (!hasOwn(globalData, name)) {
-          globalData[name] = appOptions.globalData[name];
-        }
-      });
-    }
-    Object.keys(appOptions).forEach((name) => {
-      if (!hasOwn(app, name)) {
-        app[name] = appOptions[name];
-      }
-    });
-    initAppLifecycle(appOptions, vm);
-  };
-}
-function initAppLifecycle(appOptions, vm) {
-  if (isFunction(appOptions.onLaunch)) {
-    const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();
-    appOptions.onLaunch(args);
-  }
-  if (isFunction(appOptions.onShow) && wx.onAppShow) {
-    wx.onAppShow((args) => {
-      vm.$callHook("onShow", args);
-    });
-  }
-  if (isFunction(appOptions.onHide) && wx.onAppHide) {
-    wx.onAppHide((args) => {
-      vm.$callHook("onHide", args);
-    });
-  }
-}
-function initLocale(appVm) {
-  const locale = ref(getLocaleLanguage());
-  Object.defineProperty(appVm, "$locale", {
-    get() {
-      return locale.value;
-    },
-    set(v) {
-      locale.value = v;
-    }
-  });
-}
-const builtInProps = [
-  // 百度小程序,快手小程序自定义组件不支持绑定动态事件,动态dataset,故通过props传递事件信息
-  // event-opts
-  "eO",
-  // 组件 ref
-  "uR",
-  // 组件 ref-in-for
-  "uRIF",
-  // 组件 id
-  "uI",
-  // 组件类型 m: 小程序组件
-  "uT",
-  // 组件 props
-  "uP",
-  // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
-  "uS"
-];
-function initDefaultProps(options, isBehavior = false) {
-  const properties = {};
-  if (!isBehavior) {
-    let observerSlots = function(newVal) {
-      const $slots = /* @__PURE__ */ Object.create(null);
-      newVal && newVal.forEach((slotName) => {
-        $slots[slotName] = true;
-      });
-      this.setData({
-        $slots
-      });
-    };
-    builtInProps.forEach((name) => {
-      properties[name] = {
-        type: null,
-        value: ""
-      };
-    });
-    properties.uS = {
-      type: null,
-      value: []
-    };
-    {
-      properties.uS.observer = observerSlots;
-    }
-  }
-  if (options.behaviors) {
-    if (options.behaviors.includes("wx://form-field")) {
-      if (!options.properties || !options.properties.name) {
-        properties.name = {
-          type: null,
-          value: ""
-        };
-      }
-      if (!options.properties || !options.properties.value) {
-        properties.value = {
-          type: null,
-          value: ""
-        };
-      }
-    }
-  }
-  return properties;
-}
-function initVirtualHostProps(options) {
-  const properties = {};
-  {
-    if (options && options.virtualHost) {
-      properties[VIRTUAL_HOST_STYLE] = {
-        type: null,
-        value: ""
-      };
-      properties[VIRTUAL_HOST_CLASS] = {
-        type: null,
-        value: ""
-      };
-      properties[VIRTUAL_HOST_HIDDEN] = {
-        type: null,
-        value: ""
-      };
-      properties[VIRTUAL_HOST_ID] = {
-        type: null,
-        value: ""
-      };
-    }
-  }
-  return properties;
-}
-function initProps(mpComponentOptions) {
-  if (!mpComponentOptions.properties) {
-    mpComponentOptions.properties = {};
-  }
-  extend(mpComponentOptions.properties, initDefaultProps(mpComponentOptions), initVirtualHostProps(mpComponentOptions.options));
-}
-const PROP_TYPES = [String, Number, Boolean, Object, Array, null];
-function parsePropType(type, defaultValue) {
-  if (isArray(type) && type.length === 1) {
-    return type[0];
-  }
-  return type;
-}
-function normalizePropType(type, defaultValue) {
-  const res = parsePropType(type);
-  return PROP_TYPES.indexOf(res) !== -1 ? res : null;
-}
-function initPageProps({ properties }, rawProps) {
-  if (isArray(rawProps)) {
-    rawProps.forEach((key) => {
-      properties[key] = {
-        type: String,
-        value: ""
-      };
-    });
-  } else if (isPlainObject(rawProps)) {
-    Object.keys(rawProps).forEach((key) => {
-      const opts = rawProps[key];
-      if (isPlainObject(opts)) {
-        let value = opts.default;
-        if (isFunction(value)) {
-          value = value();
-        }
-        const type = opts.type;
-        opts.type = normalizePropType(type);
-        properties[key] = {
-          type: opts.type,
-          value
-        };
-      } else {
-        properties[key] = {
-          type: normalizePropType(opts)
-        };
-      }
-    });
-  }
-}
-function findPropsData(properties, isPage2) {
-  return (isPage2 ? findPagePropsData(properties) : findComponentPropsData(resolvePropValue(properties.uP))) || {};
-}
-function findPagePropsData(properties) {
-  const propsData = {};
-  if (isPlainObject(properties)) {
-    Object.keys(properties).forEach((name) => {
-      if (builtInProps.indexOf(name) === -1) {
-        propsData[name] = resolvePropValue(properties[name]);
-      }
-    });
-  }
-  return propsData;
-}
-function initFormField(vm) {
-  const vueOptions = vm.$options;
-  if (isArray(vueOptions.behaviors) && vueOptions.behaviors.includes("uni://form-field")) {
-    vm.$watch("modelValue", () => {
-      vm.$scope && vm.$scope.setData({
-        name: vm.name,
-        value: vm.modelValue
-      });
-    }, {
-      immediate: true
-    });
-  }
-}
-function resolvePropValue(prop) {
-  return prop;
-}
-function initData(_) {
-  return {};
-}
-function initPropsObserver(componentOptions) {
-  const observe = function observe2() {
-    const up = this.properties.uP;
-    if (!up) {
-      return;
-    }
-    if (this.$vm) {
-      updateComponentProps(resolvePropValue(up), this.$vm.$);
-    } else if (resolvePropValue(this.properties.uT) === "m") {
-      updateMiniProgramComponentProperties(resolvePropValue(up), this);
-    }
-  };
-  {
-    if (!componentOptions.observers) {
-      componentOptions.observers = {};
-    }
-    componentOptions.observers.uP = observe;
-  }
-}
-function updateMiniProgramComponentProperties(up, mpInstance) {
-  const prevProps = mpInstance.properties;
-  const nextProps = findComponentPropsData(up) || {};
-  if (hasPropsChanged(prevProps, nextProps, false)) {
-    mpInstance.setData(nextProps);
-  }
-}
-function updateComponentProps(up, instance) {
-  const prevProps = toRaw(instance.props);
-  const nextProps = findComponentPropsData(up) || {};
-  if (hasPropsChanged(prevProps, nextProps)) {
-    updateProps(instance, nextProps, prevProps, false);
-    if (hasQueueJob(instance.update)) {
-      invalidateJob(instance.update);
-    }
-    {
-      instance.update();
-    }
-  }
-}
-function hasPropsChanged(prevProps, nextProps, checkLen = true) {
-  const nextKeys = Object.keys(nextProps);
-  if (checkLen && nextKeys.length !== Object.keys(prevProps).length) {
-    return true;
-  }
-  for (let i = 0; i < nextKeys.length; i++) {
-    const key = nextKeys[i];
-    if (nextProps[key] !== prevProps[key]) {
-      return true;
-    }
-  }
-  return false;
-}
-function initBehaviors(vueOptions) {
-  const vueBehaviors = vueOptions.behaviors;
-  let vueProps = vueOptions.props;
-  if (!vueProps) {
-    vueOptions.props = vueProps = [];
-  }
-  const behaviors = [];
-  if (isArray(vueBehaviors)) {
-    vueBehaviors.forEach((behavior) => {
-      behaviors.push(behavior.replace("uni://", "wx://"));
-      if (behavior === "uni://form-field") {
-        if (isArray(vueProps)) {
-          vueProps.push("name");
-          vueProps.push("modelValue");
-        } else {
-          vueProps.name = {
-            type: String,
-            default: ""
-          };
-          vueProps.modelValue = {
-            type: [String, Number, Boolean, Array, Object, Date],
-            default: ""
-          };
-        }
-      }
-    });
-  }
-  return behaviors;
-}
-function applyOptions(componentOptions, vueOptions) {
-  componentOptions.data = initData();
-  componentOptions.behaviors = initBehaviors(vueOptions);
-}
-function parseComponent(vueOptions, { parse, mocks: mocks2, isPage: isPage2, isPageInProject, initRelation: initRelation2, handleLink: handleLink2, initLifetimes: initLifetimes2 }) {
-  vueOptions = vueOptions.default || vueOptions;
-  const options = {
-    multipleSlots: true,
-    // styleIsolation: 'apply-shared',
-    addGlobalClass: true,
-    pureDataPattern: /^uP$/
-  };
-  if (isArray(vueOptions.mixins)) {
-    vueOptions.mixins.forEach((item) => {
-      if (isObject(item.options)) {
-        extend(options, item.options);
-      }
-    });
-  }
-  if (vueOptions.options) {
-    extend(options, vueOptions.options);
-  }
-  const mpComponentOptions = {
-    options,
-    lifetimes: initLifetimes2({ mocks: mocks2, isPage: isPage2, initRelation: initRelation2, vueOptions }),
-    pageLifetimes: {
-      show() {
-        this.$vm && this.$vm.$callHook("onPageShow");
-      },
-      hide() {
-        this.$vm && this.$vm.$callHook("onPageHide");
-      },
-      resize(size2) {
-        this.$vm && this.$vm.$callHook("onPageResize", size2);
-      }
-    },
-    methods: {
-      __l: handleLink2
-    }
-  };
-  {
-    applyOptions(mpComponentOptions, vueOptions);
-  }
-  initProps(mpComponentOptions);
-  initPropsObserver(mpComponentOptions);
-  initExtraOptions(mpComponentOptions, vueOptions);
-  initWxsCallMethods(mpComponentOptions.methods, vueOptions.wxsCallMethods);
-  {
-    initWorkletMethods(mpComponentOptions.methods, vueOptions.methods);
-  }
-  if (parse) {
-    parse(mpComponentOptions, { handleLink: handleLink2 });
-  }
-  return mpComponentOptions;
-}
-function initCreateComponent(parseOptions2) {
-  return function createComponent2(vueComponentOptions) {
-    return Component(parseComponent(vueComponentOptions, parseOptions2));
-  };
-}
-let $createComponentFn;
-let $destroyComponentFn;
-function getAppVm() {
-  return getApp().$vm;
-}
-function $createComponent(initialVNode, options) {
-  if (!$createComponentFn) {
-    $createComponentFn = getAppVm().$createComponent;
-  }
-  const proxy = $createComponentFn(initialVNode, options);
-  return getExposeProxy(proxy.$) || proxy;
-}
-function $destroyComponent(instance) {
-  if (!$destroyComponentFn) {
-    $destroyComponentFn = getAppVm().$destroyComponent;
-  }
-  return $destroyComponentFn(instance);
-}
-function parsePage(vueOptions, parseOptions2) {
-  const { parse, mocks: mocks2, isPage: isPage2, initRelation: initRelation2, handleLink: handleLink2, initLifetimes: initLifetimes2 } = parseOptions2;
-  const miniProgramPageOptions = parseComponent(vueOptions, {
-    mocks: mocks2,
-    isPage: isPage2,
-    isPageInProject: true,
-    initRelation: initRelation2,
-    handleLink: handleLink2,
-    initLifetimes: initLifetimes2
-  });
-  initPageProps(miniProgramPageOptions, (vueOptions.default || vueOptions).props);
-  const methods = miniProgramPageOptions.methods;
-  methods.onLoad = function(query) {
-    {
-      this.options = query;
-    }
-    this.$page = {
-      fullPath: addLeadingSlash(this.route + stringifyQuery(query))
-    };
-    return this.$vm && this.$vm.$callHook(ON_LOAD, query);
-  };
-  initHooks(methods, PAGE_INIT_HOOKS);
-  {
-    initUnknownHooks(methods, vueOptions);
-  }
-  initRuntimeHooks(methods, vueOptions.__runtimeHooks);
-  initMixinRuntimeHooks(methods);
-  parse && parse(miniProgramPageOptions, { handleLink: handleLink2 });
-  return miniProgramPageOptions;
-}
-function initCreatePage(parseOptions2) {
-  return function createPage2(vuePageOptions) {
-    return Component(parsePage(vuePageOptions, parseOptions2));
-  };
-}
-function initCreatePluginApp(parseAppOptions) {
-  return function createApp2(vm) {
-    initAppLifecycle(parseApp(vm), vm);
-  };
-}
-const MPPage = Page;
-const MPComponent = Component;
-function initTriggerEvent(mpInstance) {
-  const oldTriggerEvent = mpInstance.triggerEvent;
-  const newTriggerEvent = function(event, ...args) {
-    return oldTriggerEvent.apply(mpInstance, [
-      customizeEvent(event),
-      ...args
-    ]);
-  };
-  try {
-    mpInstance.triggerEvent = newTriggerEvent;
-  } catch (error) {
-    mpInstance._triggerEvent = newTriggerEvent;
-  }
-}
-function initMiniProgramHook(name, options, isComponent) {
-  const oldHook = options[name];
-  if (!oldHook) {
-    options[name] = function() {
-      initTriggerEvent(this);
-    };
-  } else {
-    options[name] = function(...args) {
-      initTriggerEvent(this);
-      return oldHook.apply(this, args);
-    };
-  }
-}
-Page = function(options) {
-  initMiniProgramHook(ON_LOAD, options);
-  return MPPage(options);
-};
-Component = function(options) {
-  initMiniProgramHook("created", options);
-  const isVueComponent = options.properties && options.properties.uP;
-  if (!isVueComponent) {
-    initProps(options);
-    initPropsObserver(options);
-  }
-  return MPComponent(options);
-};
-function initLifetimes({ mocks: mocks2, isPage: isPage2, initRelation: initRelation2, vueOptions }) {
-  return {
-    attached() {
-      let properties = this.properties;
-      initVueIds(properties.uI, this);
-      const relationOptions = {
-        vuePid: this._$vuePid
-      };
-      initRelation2(this, relationOptions);
-      const mpInstance = this;
-      const isMiniProgramPage = isPage2(mpInstance);
-      let propsData = properties;
-      this.$vm = $createComponent({
-        type: vueOptions,
-        props: findPropsData(propsData, isMiniProgramPage)
-      }, {
-        mpType: isMiniProgramPage ? "page" : "component",
-        mpInstance,
-        slots: properties.uS || {},
-        // vueSlots
-        parentComponent: relationOptions.parent && relationOptions.parent.$,
-        onBeforeSetup(instance, options) {
-          initRefs(instance, mpInstance);
-          initMocks(instance, mpInstance, mocks2);
-          initComponentInstance(instance, options);
-        }
-      });
-      if (!isMiniProgramPage) {
-        initFormField(this.$vm);
-      }
-    },
-    ready() {
-      if (this.$vm) {
-        {
-          this.$vm.$callHook("mounted");
-          this.$vm.$callHook(ON_READY);
-        }
-      }
-    },
-    detached() {
-      if (this.$vm) {
-        pruneComponentPropsCache(this.$vm.$.uid);
-        $destroyComponent(this.$vm);
-      }
-    }
-  };
-}
-const mocks = ["__route__", "__wxExparserNodeId__", "__wxWebviewId__"];
-function isPage(mpInstance) {
-  return !!mpInstance.route;
-}
-function initRelation(mpInstance, detail) {
-  mpInstance.triggerEvent("__l", detail);
-}
-function handleLink(event) {
-  const detail = event.detail || event.value;
-  const vuePid = detail.vuePid;
-  let parentVm;
-  if (vuePid) {
-    parentVm = findVmByVueId(this.$vm, vuePid);
-  }
-  if (!parentVm) {
-    parentVm = this.$vm;
-  }
-  detail.parent = parentVm;
-}
-var parseOptions = /* @__PURE__ */ Object.freeze({
-  __proto__: null,
-  handleLink,
-  initLifetimes,
-  initRelation,
-  isPage,
-  mocks
-});
-const createApp = initCreateApp();
-const createPage = initCreatePage(parseOptions);
-const createComponent = initCreateComponent(parseOptions);
-const createPluginApp = initCreatePluginApp();
-const createSubpackageApp = initCreateSubpackageApp();
-{
-  wx.createApp = global.createApp = createApp;
-  wx.createPage = createPage;
-  wx.createComponent = createComponent;
-  wx.createPluginApp = global.createPluginApp = createPluginApp;
-  wx.createSubpackageApp = global.createSubpackageApp = createSubpackageApp;
-}
-const createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {
-  !isInSSRComponentSetup && injectHook(lifecycle, hook, target);
-};
-const onReady = /* @__PURE__ */ createHook(ON_READY);
-exports._export_sfc = _export_sfc;
-exports.createSSRApp = createSSRApp;
-exports.getCurrentInstance = getCurrentInstance;
-exports.index = index;
-exports.o = o;
-exports.onMounted = onMounted;
-exports.onReady = onReady;
-exports.ref = ref;
-//# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map
diff --git a/unpackage/dist/dev/mp-weixin/index.js b/unpackage/dist/dev/mp-weixin/index.js
deleted file mode 100644
index 1525d68..0000000
--- a/unpackage/dist/dev/mp-weixin/index.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-const common_vendor = require("./common/vendor.js");
-const _sfc_main = {
-  __name: "index",
-  setup(__props) {
-    common_vendor.ref(375);
-    common_vendor.ref(400);
-    const instance = common_vendor.getCurrentInstance();
-    const scale = common_vendor.ref(1);
-    const offsetX = common_vendor.ref(0);
-    const offsetY = common_vendor.ref(0);
-    const lastDistance = common_vendor.ref(-1);
-    const startX = common_vendor.ref(0);
-    const startY = common_vendor.ref(0);
-    const isDragging = common_vendor.ref(false);
-    const imgUrl = common_vendor.ref("https://assets.sx25.troyrc.com/sx25/images/events/XBDT.jpg");
-    async function draw() {
-      const ctx = common_vendor.index.createCanvasContext("canvas", instance);
-      ctx.scale(scale.value, scale.value);
-      const res = await common_vendor.index.getImageInfo({
-        src: imgUrl.value
-      });
-      ctx.drawImage(res.path, 0, 0);
-      ctx.draw();
-    }
-    const handleTouchStart = (e) => {
-      common_vendor.index.__f__("log", "at pages/index/index.vue:93", "handleTouchStart");
-      if (e.touches.length === 1) {
-        startX.value = e.touches[0].clientX - offsetX.value;
-        startY.value = e.touches[0].clientY - offsetY.value;
-        isDragging.value = true;
-      } else if (e.touches.length === 2) {
-        const x1 = e.touches[0].clientX;
-        const y1 = e.touches[0].clientY;
-        const x2 = e.touches[1].clientX;
-        const y2 = e.touches[1].clientY;
-        lastDistance.value = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
-      }
-    };
-    const handleTouchMove = (e) => {
-      common_vendor.index.__f__("log", "at pages/index/index.vue:111", "handleTouchMove");
-      if (e.touches.length === 1 && isDragging.value) {
-        const currentX = e.touches[0].clientX - startX.value;
-        const currentY = e.touches[0].clientY - startY.value;
-        offsetX.value = currentX;
-        offsetY.value = currentY;
-      } else if (e.touches.length === 2) {
-        const x1 = e.touches[0].clientX;
-        const y1 = e.touches[0].clientY;
-        const x2 = e.touches[1].clientX;
-        const y2 = e.touches[1].clientY;
-        const distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
-        if (lastDistance.value > 0) {
-          const newScale = scale.value * (distance / lastDistance.value);
-          scale.value = Math.min(Math.max(newScale, 0.5), 4);
-        }
-        lastDistance.value = distance;
-      }
-    };
-    const handleTouchEnd = () => {
-      common_vendor.index.__f__("log", "at pages/index/index.vue:136", "handleTouchEnd");
-      lastDistance.value = -1;
-      isDragging.value = false;
-    };
-    const handleDraw = () => {
-      draw();
-    };
-    common_vendor.onReady(() => {
-      common_vendor.index.__f__("log", "at pages/index/index.vue:153", "onReadyonReady");
-      common_vendor.index.downloadFile({
-        url: imgUrl.value,
-        success: function(sres) {
-          common_vendor.index.__f__("log", "at pages/index/index.vue:157", sres, "sres");
-          imgUrl.value = sres.tempFilePath || sres.path;
-          draw();
-        },
-        fail: function(fres) {
-          common_vendor.index.__f__("log", "at pages/index/index.vue:161", "fres", fres);
-        }
-      });
-    });
-    return (_ctx, _cache) => {
-      return {
-        a: common_vendor.o(handleTouchStart),
-        b: common_vendor.o(handleTouchMove),
-        c: common_vendor.o(handleTouchEnd),
-        d: "1000px",
-        e: "800px",
-        f: `translate(${offsetX.value}px, ${offsetY.value}px) scale(${scale.value})`,
-        g: common_vendor.o(handleDraw)
-      };
-    };
-  }
-};
-const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-1cf27b2a"]]);
-exports.MiniProgramPage = MiniProgramPage;
-//# sourceMappingURL=../.sourcemap/mp-weixin/index.js.map
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js
deleted file mode 100644
index c5ca0bf..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-const index = require("../../index.js");
-wx.createPage(index.MiniProgramPage);
-//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index.js.map
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.json b/unpackage/dist/dev/mp-weixin/pages/index/index.json
deleted file mode 100644
index 1ff7531..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "navigationBarTitleText": "uni-app",
-  "usingComponents": {}
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
deleted file mode 100644
index 0bd41a7..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
+++ /dev/null
@@ -1 +0,0 @@
-<view class="data-v-1cf27b2a"><block wx:if="{{r0}}"><canvas class="data-v-1cf27b2a" bindtouchstart="{{a}}" bindtouchmove="{{b}}" bindtouchend="{{c}}" style="{{'width:' + d + ';' + ('height:' + e) + ';' + ('transform:' + f)}}" canvas-id="canvas" id="canvas"></canvas></block><image class="data-v-1cf27b2a" src="https://assets.sx25.troyrc.com/sx25/images/events/XBDT.jpg"></image><button class="data-v-1cf27b2a" bindtap="{{g}}">点击绘制圆形</button></view>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
deleted file mode 100644
index 99c7c73..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
+++ /dev/null
@@ -1,4 +0,0 @@
-
-button.data-v-1cf27b2a {
-		margin-top: 10px;
-}
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index2.js b/unpackage/dist/dev/mp-weixin/pages/index/index2.js
deleted file mode 100644
index fbb48ac..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/index2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-const index = require("../../index.js");
-wx.createPage(index.MiniProgramPage);
-//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index2.js.map
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index_step4.js b/unpackage/dist/dev/mp-weixin/pages/index/index_step4.js
deleted file mode 100644
index 200f78c..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/index_step4.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-const common_vendor = require("../../common/vendor.js");
-const _sfc_main = {
-  __name: "index_step4",
-  setup(__props) {
-    const canvasWidth = common_vendor.ref(200);
-    const canvasHeight = common_vendor.ref(200);
-    const instance = common_vendor.getCurrentInstance();
-    function draw() {
-      const ctx = common_vendor.index.createCanvasContext("canvas", instance);
-      common_vendor.index.__f__("log", "at pages/index/index_step4.vue:20", ctx, "12");
-      ctx.beginPath();
-      ctx.arc(100, 100, 80, 0, Math.PI * 2);
-      ctx.setFillStyle("rgba(100, 220, 0, 1)");
-      ctx.fill();
-      ctx.beginPath();
-      ctx.arc(100, 100, 75, 0, Math.PI * 2);
-      ctx.setFillStyle("white");
-      ctx.fill();
-      ctx.draw();
-    }
-    const handleDraw = () => {
-      common_vendor.index.navigateTo({
-        url: "/pages/index/step2"
-      });
-      draw();
-    };
-    common_vendor.onMounted(() => {
-      draw();
-    });
-    return (_ctx, _cache) => {
-      return {
-        a: canvasWidth.value,
-        b: canvasHeight.value,
-        c: common_vendor.o(handleDraw)
-      };
-    };
-  }
-};
-const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-7e4ca425"]]);
-wx.createPage(MiniProgramPage);
-//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index_step4.js.map
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index_step4.json b/unpackage/dist/dev/mp-weixin/pages/index/index_step4.json
deleted file mode 100644
index be3c335..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/index_step4.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "navigationBarTitleText": "step",
-  "usingComponents": {}
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index_step4.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index_step4.wxml
deleted file mode 100644
index 597add4..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/index_step4.wxml
+++ /dev/null
@@ -1 +0,0 @@
-<view class="data-v-7e4ca425"><canvas class="data-v-7e4ca425" canvas-id="canvas" id="canvas" style="width:200px;height:200px;border:1px solid red" width="{{a}}" height="{{b}}"></canvas><button class="data-v-7e4ca425" bindtap="{{c}}">跳转step2</button></view>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index_step4.wxss b/unpackage/dist/dev/mp-weixin/pages/index/index_step4.wxss
deleted file mode 100644
index 667b086..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/index_step4.wxss
+++ /dev/null
@@ -1,4 +0,0 @@
-
-button.data-v-7e4ca425 {
-		margin-top: 10px;
-}
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/step2.js b/unpackage/dist/dev/mp-weixin/pages/index/step2.js
deleted file mode 100644
index 32528f9..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/step2.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-require("../../common/vendor.js");
-if (!Math) {
-  indexstep2();
-}
-const indexstep2 = () => "./index2.js";
-const _sfc_main = {
-  __name: "step2",
-  setup(__props) {
-    return (_ctx, _cache) => {
-      return {};
-    };
-  }
-};
-wx.createPage(_sfc_main);
-//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/step2.js.map
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/step2.json b/unpackage/dist/dev/mp-weixin/pages/index/step2.json
deleted file mode 100644
index df8d65e..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/step2.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "navigationBarTitleText": "fu",
-  "usingComponents": {
-    "indexstep2": "./index"
-  }
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/step2.wxml b/unpackage/dist/dev/mp-weixin/pages/index/step2.wxml
deleted file mode 100644
index f705531..0000000
--- a/unpackage/dist/dev/mp-weixin/pages/index/step2.wxml
+++ /dev/null
@@ -1 +0,0 @@
-<view><indexstep2 u-i="4f007cb8-0" bind:__l="__l"></indexstep2></view>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/step2.wxss b/unpackage/dist/dev/mp-weixin/pages/index/step2.wxss
deleted file mode 100644
index e69de29..0000000
diff --git a/unpackage/dist/dev/mp-weixin/project.config.json b/unpackage/dist/dev/mp-weixin/project.config.json
deleted file mode 100644
index cd73585..0000000
--- a/unpackage/dist/dev/mp-weixin/project.config.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-    "description": "项目配置文件。",
-    "packOptions": {
-        "ignore": [],
-        "include": []
-    },
-    "setting": {
-        "urlCheck": false,
-        "es6": true,
-        "postcss": false,
-        "minified": false,
-        "newFeature": true,
-        "bigPackageSizeSupport": true,
-        "babelSetting": {
-            "ignore": [],
-            "disablePlugins": [],
-            "outputPath": ""
-        }
-    },
-    "compileType": "miniprogram",
-    "libVersion": "3.8.3",
-    "appid": "wx5c9edf82da6032c4",
-    "projectname": "canvas",
-    "condition": {},
-    "editorSetting": {
-        "tabIndent": "insertSpaces",
-        "tabSize": 4
-    }
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/project.private.config.json b/unpackage/dist/dev/mp-weixin/project.private.config.json
deleted file mode 100644
index de0e568..0000000
--- a/unpackage/dist/dev/mp-weixin/project.private.config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
-    "projectname": "canvas",
-    "setting": {
-        "compileHotReLoad": true,
-        "urlCheck": false
-    }
-}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/static/canvas.jpg b/unpackage/dist/dev/mp-weixin/static/canvas.jpg
deleted file mode 100644
index 204f55d6d8cce7f5fe12d88b59935646d243f653..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 195625
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%0A5&H0qutmAwjCYWHI=!8<%;ct
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
H3ZwrYyB3B|

diff --git a/unpackage/dist/dev/mp-weixin/static/logo.png b/unpackage/dist/dev/mp-weixin/static/logo.png
deleted file mode 100644
index b5771e209bb677e2ebd5ff766ad5ee11790f305a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4023
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
SYs}WS&%*SCNx89m_<sQGK?UOg


From a7c06b3a0ea0a8cb956506fd9e85190b59549aa2 Mon Sep 17 00:00:00 2001
From: renyt <renyt@troyrc.com>
Date: Fri, 9 May 2025 09:20:07 +0800
Subject: [PATCH 3/4] 1

---
 App.vue                  |  17 +++++++++
 index.html               |  20 +++++++++++
 main.js                  |  22 ++++++++++++
 manifest.json            |  72 +++++++++++++++++++++++++++++++++++++
 pages.json               |  28 +++++++++++++++
 pages/.DS_Store          | Bin 6148 -> 0 bytes
 uni.promisify.adaptor.js |  13 +++++++
 uni.scss                 |  76 +++++++++++++++++++++++++++++++++++++++
 8 files changed, 248 insertions(+)
 create mode 100644 App.vue
 create mode 100644 index.html
 create mode 100644 main.js
 create mode 100644 manifest.json
 create mode 100644 pages.json
 delete mode 100644 pages/.DS_Store
 create mode 100644 uni.promisify.adaptor.js
 create mode 100644 uni.scss

diff --git a/App.vue b/App.vue
new file mode 100644
index 0000000..8c2b732
--- /dev/null
+++ b/App.vue
@@ -0,0 +1,17 @@
+<script>
+	export default {
+		onLaunch: function() {
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		}
+	}
+</script>
+
+<style>
+	/*每个页面公共css */
+</style>
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c3ff205
--- /dev/null
+++ b/index.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+        CSS.supports('top: constant(a)'))
+      document.write(
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+    </script>
+    <title></title>
+    <!--preload-links-->
+    <!--app-context-->
+  </head>
+  <body>
+    <div id="app"><!--app-html--></div>
+    <script type="module" src="/main.js"></script>
+  </body>
+</html>
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..c1caf36
--- /dev/null
+++ b/main.js
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+  ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+  const app = createSSRApp(App)
+  return {
+    app
+  }
+}
+// #endif
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..9c96a3c
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,72 @@
+{
+    "name" : "canvas",
+    "appid" : "__UNI__EBE2302",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "wx5c9edf82da6032c4",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "3"
+}
diff --git a/pages.json b/pages.json
new file mode 100644
index 0000000..aed7ae0
--- /dev/null
+++ b/pages.json
@@ -0,0 +1,28 @@
+{
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/index/index_step4",
+			"style": {
+				"navigationBarTitleText": "step"
+			}
+		},{
+			"path": "pages/index/step2",
+			"style": {
+				"navigationBarTitleText": "fu"
+			}
+		},{
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "uni-app"
+			}
+		}
+	
+	],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "uni-app",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8"
+	},
+	"uniIdRouter": {}
+}
diff --git a/pages/.DS_Store b/pages/.DS_Store
deleted file mode 100644
index c5c001b5c5aa0f10fb585e403e453a094b3e7d82..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6148
zcmeHKI|>3Z5S{S@f{mqRuHX%V=n1@lg(8BiASjkwc`lFUn@_VWc3LQJVDgg5yo9`B
zXGcVIdEG5UW+F0y8_L6mzS+Kc&juM$ARK4hZ<|YVIyZ-2?z@0-$8wZLcCzpAZHGn$
zr~nn90#twsd|H95u#@Sh59WDPfC~J)0``3<aKoC|2KuK1gSP;{5yEbmdoKYj768`7
zHV_e*1{D}o%@#w0j(Ewun%D*gT{N2y&6_nl6!qJ2e(`kC8px3fP=T%j!&uI&{;%P0
z`u{G8D=I(*{z?HItv0JAo|Lt<_c*Jy1-^w_&J%8ixl=HBIR<(;#=^?++>;`&*c|&c
Vu?=)O;!X$hXTWr!QGstO@B%S!6xIL$

diff --git a/uni.promisify.adaptor.js b/uni.promisify.adaptor.js
new file mode 100644
index 0000000..5fec4f3
--- /dev/null
+++ b/uni.promisify.adaptor.js
@@ -0,0 +1,13 @@
+uni.addInterceptor({
+  returnValue (res) {
+    if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+      return res;
+    }
+    return new Promise((resolve, reject) => {
+      res.then((res) => {
+        if (!res) return resolve(res) 
+        return res[0] ? reject(res[0]) : resolve(res[1])
+      });
+    });
+  },
+});
\ No newline at end of file
diff --git a/uni.scss b/uni.scss
new file mode 100644
index 0000000..b9249e9
--- /dev/null
+++ b/uni.scss
@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16px;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;

From 2c43a14e38e6cb188d115435ef99b1b1b9f8055b Mon Sep 17 00:00:00 2001
From: renyt <renyt@troyrc.com>
Date: Fri, 9 May 2025 11:05:18 +0800
Subject: [PATCH 4/4] 1

---
 pages/index/index.vue | 2074 +++++++++++++++++++++++++++++++++++++++++
 pages/index/utils.js  |   79 ++
 2 files changed, 2153 insertions(+)
 create mode 100644 pages/index/index.vue
 create mode 100644 pages/index/utils.js

diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..ece85f2
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,2074 @@
+<template>
+	<view>
+		<!-- 定义canvas画布 // 设置canvas大小为200x200像素 -->
+		<!-- // @touchstart="handleCanvasTouch" -->
+		<canvas @touchstart="handleTouchStart" @touchmove="handleTouchMove" @touchend="handleTouchEnd" :style="{
+						         width: 1000 + 'px',
+						         height: 800 + 'px',
+						         transform: `translate(${offsetX}px, ${offsetY}px) scale(${scale})`
+						       }" canvas-id="canvas" id="canvas"></canvas>
+		<!-- 添加一个按钮,用于触发绘图 -->
+		<!-- <button @click="handleDraw">点击绘制圆形</button> -->
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref,
+		onMounted,
+		getCurrentInstance
+	} from 'vue'
+	import {
+		onReady
+	} from '@dcloudio/uni-app'
+	// import {  useRafFn } from "./utils.js"
+	const canvasWidth = ref() // 动态设置Canvas宽度
+	const canvasHeight = ref() // 动态设置Canvas高度
+	const instance = getCurrentInstance()
+	const scale = ref(1)
+	const offsetX = ref(0)
+	const offsetY = ref(0)
+	const lastDistance = ref(-1)
+	
+	const startX = ref(0)
+	const startY = ref(0)
+	const isDragging = ref(false)
+	const imgUrl = ref('https://assets.sx25.troyrc.com/sx25/images/events/XBDT.jpg'); // 修改为ref
+	const blocks = ref(
+	[
+	    {
+	      "areacode": "ksmj71jukqf7",
+	      "areaname": "B2区",
+	      "polygon": [
+	        348,
+	        193,
+	        348,
+	        216,
+	        348,
+	        240,
+	        348,
+	        263,
+	        363,
+	        263,
+	        377,
+	        263,
+	        392,
+	        263,
+	        392,
+	        240,
+	        392,
+	        216,
+	        392,
+	        193,
+	        377,
+	        193,
+	        363,
+	        193,
+	        348,
+	        193
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "B2区"
+	    },
+	    {
+	      "areacode": "3ala2e74fet0",
+	      "areaname": "A2区",
+	      "polygon": [
+	        488,
+	        251,
+	        473,
+	        262,
+	        453,
+	        281,
+	        455,
+	        290,
+	        494,
+	        290,
+	        518,
+	        290,
+	        542,
+	        290,
+	        542,
+	        273,
+	        542,
+	        257,
+	        536,
+	        205,
+	        521,
+	        207,
+	        494,
+	        240,
+	        488,
+	        251
+	      ],
+	      "row_size": 25,
+	      "col_size": 50,
+	      "stage": "2",
+	      "amount": 286,
+	      "hint": "A2区"
+	    },
+	    {
+	      "areacode": "h4pff5jukqf9",
+	      "areaname": "N3区",
+	      "polygon": [
+	        527,
+	        96,
+	        519,
+	        107,
+	        536,
+	        140,
+	        564,
+	        172,
+	        596,
+	        182,
+	        610,
+	        176,
+	        611,
+	        166,
+	        594,
+	        149,
+	        581,
+	        138,
+	        583,
+	        142,
+	        567,
+	        119,
+	        560,
+	        114,
+	        527,
+	        96
+	      ],
+	      "row_size": 20,
+	      "col_size": 35,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N3区"
+	    },
+	    {
+	      "areacode": "8nbhrh2gt604",
+	      "areaname": "H1区",
+	      "polygon": [
+	        348,
+	        144,
+	        348,
+	        152,
+	        348,
+	        162,
+	        348,
+	        170,
+	        361,
+	        170,
+	        374,
+	        170,
+	        388,
+	        169,
+	        387,
+	        162,
+	        387,
+	        152,
+	        387,
+	        144,
+	        374,
+	        144,
+	        361,
+	        144,
+	        348,
+	        144
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "H1区"
+	    },
+	    {
+	      "areacode": "0kc0kw2gt605",
+	      "areaname": "N20区",
+	      "polygon": [
+	        582,
+	        341,
+	        582,
+	        361,
+	        582,
+	        381,
+	        602,
+	        380,
+	        600,
+	        400,
+	        614,
+	        401,
+	        620,
+	        401,
+	        622,
+	        366,
+	        619,
+	        360,
+	        621,
+	        341,
+	        614,
+	        341,
+	        597,
+	        341,
+	        582,
+	        341
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N20区"
+	    },
+	    {
+	      "areacode": "xrc8rwej0jkc",
+	      "areaname": "G区",
+	      "polygon": [
+	        113,
+	        371,
+	        113,
+	        397,
+	        113,
+	        424,
+	        113,
+	        450,
+	        118,
+	        450,
+	        124,
+	        450,
+	        129,
+	        450,
+	        129,
+	        424,
+	        129,
+	        397,
+	        129,
+	        371,
+	        124,
+	        371,
+	        118,
+	        371,
+	        113,
+	        371
+	      ],
+	      "row_size": 10,
+	      "col_size": 37,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "G区"
+	    },
+	    {
+	      "areacode": "bjhut82gt607",
+	      "areaname": "N11区",
+	      "polygon": [
+	        58,
+	        323,
+	        58,
+	        345,
+	        58,
+	        367,
+	        58,
+	        389,
+	        71,
+	        389,
+	        83,
+	        389,
+	        96,
+	        389,
+	        96,
+	        367,
+	        96,
+	        345,
+	        96,
+	        323,
+	        83,
+	        323,
+	        71,
+	        323,
+	        58,
+	        323
+	      ],
+	      "row_size": 16,
+	      "col_size": 26,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N11区"
+	    },
+	    {
+	      "areacode": "xrwmq3sa807n",
+	      "areaname": "L区",
+	      "polygon": [
+	        541,
+	        196,
+	        554,
+	        223,
+	        553,
+	        252,
+	        554,
+	        282,
+	        555,
+	        285,
+	        564,
+	        285,
+	        568,
+	        284,
+	        567,
+	        253,
+	        568,
+	        222,
+	        559,
+	        191,
+	        564,
+	        188,
+	        555,
+	        188,
+	        541,
+	        196
+	      ],
+	      "row_size": 15,
+	      "col_size": 50,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "L区"
+	    },
+	    {
+	      "areacode": "aekymdjukqf6",
+	      "areaname": "N2区",
+	      "polygon": [
+	        577,
+	        204,
+	        579,
+	        216,
+	        579,
+	        240,
+	        602,
+	        252,
+	        602,
+	        267,
+	        609,
+	        267,
+	        618,
+	        267,
+	        621,
+	        240,
+	        615,
+	        221,
+	        611,
+	        191,
+	        609,
+	        189,
+	        595,
+	        194,
+	        577,
+	        204
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N2区"
+	    },
+	    {
+	      "areacode": "g1aynfej0jku",
+	      "areaname": "E区",
+	      "polygon": [
+	        114,
+	        215,
+	        114,
+	        236,
+	        114,
+	        257,
+	        114,
+	        278,
+	        119,
+	        278,
+	        124,
+	        278,
+	        129,
+	        278,
+	        129,
+	        257,
+	        129,
+	        236,
+	        129,
+	        215,
+	        124,
+	        215,
+	        119,
+	        215,
+	        114,
+	        215
+	      ],
+	      "row_size": 10,
+	      "col_size": 34,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "E区"
+	    },
+	    {
+	      "areacode": "66g4bm74fetb",
+	      "areaname": "N14区",
+	      "polygon": [
+	        155,
+	        529,
+	        149,
+	        538,
+	        148,
+	        542,
+	        142,
+	        551,
+	        170,
+	        563,
+	        192,
+	        563,
+	        213,
+	        563,
+	        213,
+	        550,
+	        213,
+	        538,
+	        213,
+	        525,
+	        192,
+	        525,
+	        170,
+	        525,
+	        155,
+	        529
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N14区"
+	    },
+	    {
+	      "areacode": "31q0udej0jkx",
+	      "areaname": "J区",
+	      "polygon": [
+	        393,
+	        137,
+	        393,
+	        152,
+	        393,
+	        168,
+	        393,
+	        183,
+	        414,
+	        183,
+	        434,
+	        183,
+	        455,
+	        183,
+	        455,
+	        168,
+	        455,
+	        152,
+	        455,
+	        137,
+	        434,
+	        137,
+	        414,
+	        137,
+	        393,
+	        137
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "J区"
+	    },
+	    {
+	      "areacode": "tsew3ejukqfb",
+	      "areaname": "N17区",
+	      "polygon": [
+	        445,
+	        532,
+	        445,
+	        544,
+	        445,
+	        555,
+	        445,
+	        567,
+	        468,
+	        567,
+	        492,
+	        567,
+	        515,
+	        560,
+	        515,
+	        555,
+	        515,
+	        544,
+	        503,
+	        527,
+	        492,
+	        532,
+	        468,
+	        532,
+	        445,
+	        532
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N17区"
+	    },
+	    {
+	      "areacode": "t4wshyjukqfc",
+	      "areaname": "G区",
+	      "polygon": [
+	        224,
+	        139,
+	        224,
+	        153,
+	        224,
+	        169,
+	        224,
+	        183,
+	        245,
+	        183,
+	        265,
+	        183,
+	        286,
+	        183,
+	        286,
+	        169,
+	        286,
+	        153,
+	        286,
+	        139,
+	        265,
+	        139,
+	        245,
+	        139,
+	        224,
+	        139
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "G区"
+	    },
+	    {
+	      "areacode": "bp2jtyjukqfd",
+	      "areaname": "N10区",
+	      "polygon": [
+	        60,
+	        256,
+	        60,
+	        276,
+	        60,
+	        297,
+	        60,
+	        317,
+	        73,
+	        317,
+	        85,
+	        317,
+	        98,
+	        317,
+	        98,
+	        297,
+	        98,
+	        276,
+	        98,
+	        256,
+	        85,
+	        256,
+	        73,
+	        256,
+	        60,
+	        256
+	      ],
+	      "row_size": 16,
+	      "col_size": 26,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N10区"
+	    },
+	    {
+	      "areacode": "pee7rxjukqfe",
+	      "areaname": "N9区",
+	      "polygon": [
+	        63,
+	        181,
+	        63,
+	        203,
+	        63,
+	        224,
+	        63,
+	        246,
+	        76,
+	        246,
+	        89,
+	        246,
+	        102,
+	        246,
+	        102,
+	        224,
+	        102,
+	        203,
+	        102,
+	        181,
+	        89,
+	        181,
+	        76,
+	        181,
+	        63,
+	        181
+	      ],
+	      "row_size": 16,
+	      "col_size": 31,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N9区"
+	    },
+	    {
+	      "areacode": "ga8mwdsa8081",
+	      "areaname": "N7区",
+	      "polygon": [
+	        159,
+	        87,
+	        159,
+	        100,
+	        159,
+	        113,
+	        159,
+	        126,
+	        185,
+	        126,
+	        212,
+	        126,
+	        238,
+	        126,
+	        238,
+	        113,
+	        238,
+	        100,
+	        238,
+	        87,
+	        212,
+	        87,
+	        185,
+	        87,
+	        159,
+	        87
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N7区"
+	    },
+	    {
+	      "areacode": "0trbqk2gt60a",
+	      "areaname": "M区",
+	      "polygon": [
+	        552,
+	        283,
+	        552,
+	        309,
+	        552,
+	        335,
+	        552,
+	        361,
+	        557,
+	        361,
+	        564,
+	        361,
+	        569,
+	        361,
+	        569,
+	        335,
+	        569,
+	        309,
+	        569,
+	        283,
+	        564,
+	        283,
+	        557,
+	        283,
+	        552,
+	        283
+	      ],
+	      "row_size": 15,
+	      "col_size": 40,
+	      "stage": "2",
+	      "amount": 75,
+	      "hint": "M区"
+	    },
+	    {
+	      "areacode": "0yup992gt60b",
+	      "areaname": "N4区",
+	      "polygon": [
+	        440,
+	        89,
+	        440,
+	        101,
+	        440,
+	        113,
+	        440,
+	        125,
+	        471,
+	        125,
+	        503,
+	        125,
+	        507,
+	        114,
+	        512,
+	        105,
+	        512,
+	        99,
+	        505,
+	        95,
+	        492,
+	        89,
+	        471,
+	        89,
+	        440,
+	        89
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N4区"
+	    },
+	    {
+	      "areacode": "x4uxg3jukqcr",
+	      "areaname": "Q区",
+	      "polygon": [
+	        223,
+	        467,
+	        223,
+	        483,
+	        223,
+	        499,
+	        223,
+	        515,
+	        257,
+	        515,
+	        290,
+	        515,
+	        324,
+	        515,
+	        324,
+	        499,
+	        324,
+	        483,
+	        324,
+	        467,
+	        290,
+	        467,
+	        257,
+	        467,
+	        223,
+	        467
+	      ],
+	      "row_size": 20,
+	      "col_size": 40,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "Q区"
+	    },
+	    {
+	      "areacode": "j6l96jjukqcg",
+	      "areaname": "O区",
+	      "polygon": [
+	        437,
+	        472,
+	        437,
+	        486,
+	        437,
+	        501,
+	        437,
+	        515,
+	        465,
+	        515,
+	        492,
+	        515,
+	        514,
+	        502,
+	        523,
+	        499,
+	        520,
+	        486,
+	        497,
+	        463,
+	        476,
+	        469,
+	        465,
+	        472,
+	        437,
+	        472
+	      ],
+	      "row_size": 20,
+	      "col_size": 44,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "O区"
+	    },
+	    {
+	      "areacode": "g4r5lysa8087",
+	      "areaname": "N13区",
+	      "polygon": [
+	        89,
+	        485,
+	        89,
+	        499,
+	        89,
+	        514,
+	        89,
+	        528,
+	        106,
+	        528,
+	        123,
+	        528,
+	        140,
+	        528,
+	        140,
+	        514,
+	        140,
+	        499,
+	        140,
+	        485,
+	        123,
+	        485,
+	        106,
+	        485,
+	        89,
+	        485
+	      ],
+	      "row_size": 20,
+	      "col_size": 36,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N13区"
+	    },
+	    {
+	      "areacode": "q6tq75ej0jl0",
+	      "areaname": "N18区",
+	      "polygon": [
+	        528,
+	        486,
+	        535,
+	        509,
+	        535,
+	        520,
+	        536,
+	        527,
+	        552,
+	        532,
+	        540,
+	        531,
+	        551,
+	        544,
+	        582,
+	        511,
+	        595,
+	        495,
+	        566,
+	        480,
+	        566,
+	        482,
+	        540,
+	        470,
+	        528,
+	        486
+	      ],
+	      "row_size": 20,
+	      "col_size": 36,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N18区"
+	    },
+	    {
+	      "areacode": "twgl38ej0jl1",
+	      "areaname": "N19区",
+	      "polygon": [
+	        583,
+	        409,
+	        583,
+	        435,
+	        595,
+	        461,
+	        589,
+	        482,
+	        600,
+	        484,
+	        605,
+	        481,
+	        610,
+	        473,
+	        611,
+	        463,
+	        617,
+	        442,
+	        619,
+	        413,
+	        615,
+	        409,
+	        599,
+	        409,
+	        583,
+	        409
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N19区"
+	    },
+	    {
+	      "areacode": "mnxkfajukqcl",
+	      "areaname": "D区",
+	      "polygon": [
+	        111,
+	        290,
+	        111,
+	        314,
+	        111,
+	        339,
+	        111,
+	        363,
+	        116,
+	        363,
+	        122,
+	        363,
+	        127,
+	        363,
+	        127,
+	        339,
+	        127,
+	        314,
+	        127,
+	        290,
+	        122,
+	        290,
+	        116,
+	        290,
+	        111,
+	        290
+	      ],
+	      "row_size": 10,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "D区"
+	    },
+	    {
+	      "areacode": "5k7ubtej0jl3",
+	      "areaname": "N12区",
+	      "polygon": [
+	        57,
+	        390,
+	        57,
+	        419,
+	        57,
+	        447,
+	        57,
+	        476,
+	        71,
+	        476,
+	        85,
+	        476,
+	        99,
+	        476,
+	        99,
+	        447,
+	        99,
+	        419,
+	        99,
+	        390,
+	        85,
+	        390,
+	        71,
+	        390,
+	        57,
+	        390
+	      ],
+	      "row_size": 16,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N12区"
+	    },
+	    {
+	      "areacode": "bt8yrj74fetj",
+	      "areaname": "D4区",
+	      "polygon": [
+	        234,
+	        412,
+	        223,
+	        423,
+	        215,
+	        440,
+	        215,
+	        463,
+	        236,
+	        463,
+	        256,
+	        463,
+	        277,
+	        463,
+	        277,
+	        440,
+	        277,
+	        419,
+	        277,
+	        396,
+	        256,
+	        396,
+	        242,
+	        402,
+	        234,
+	        412
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "D4区"
+	    },
+	    {
+	      "areacode": "sm0jwq2gt60m",
+	      "areaname": "P区",
+	      "polygon": [
+	        355,
+	        486,
+	        355,
+	        501,
+	        329,
+	        500,
+	        329,
+	        515,
+	        365,
+	        515,
+	        400,
+	        515,
+	        436,
+	        515,
+	        436,
+	        500,
+	        436,
+	        484,
+	        436,
+	        469,
+	        400,
+	        469,
+	        360,
+	        469,
+	        355,
+	        486
+	      ],
+	      "row_size": 20,
+	      "col_size": 40,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "P区"
+	    },
+	    {
+	      "areacode": "dn5kn974fetl",
+	      "areaname": "B3区",
+	      "polygon": [
+	        286,
+	        193,
+	        286,
+	        216,
+	        286,
+	        238,
+	        286,
+	        261,
+	        302,
+	        261,
+	        319,
+	        261,
+	        335,
+	        261,
+	        335,
+	        238,
+	        335,
+	        216,
+	        335,
+	        193,
+	        319,
+	        193,
+	        302,
+	        193,
+	        286,
+	        193
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "B3区"
+	    },
+	    {
+	      "areacode": "32lnp9jukqcs",
+	      "areaname": "D3区",
+	      "polygon": [
+	        286,
+	        398,
+	        286,
+	        419,
+	        286,
+	        441,
+	        286,
+	        462,
+	        302,
+	        462,
+	        317,
+	        462,
+	        333,
+	        462,
+	        333,
+	        441,
+	        333,
+	        419,
+	        333,
+	        398,
+	        317,
+	        398,
+	        302,
+	        398,
+	        286,
+	        398
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "D3区"
+	    },
+	    {
+	      "areacode": "u1w8mhej0jlk",
+	      "areaname": "D2区",
+	      "polygon": [
+	        347,
+	        396,
+	        347,
+	        418,
+	        347,
+	        441,
+	        347,
+	        463,
+	        362,
+	        463,
+	        376,
+	        463,
+	        391,
+	        463,
+	        391,
+	        441,
+	        391,
+	        418,
+	        391,
+	        396,
+	        376,
+	        396,
+	        362,
+	        396,
+	        347,
+	        396
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "D2区"
+	    },
+	    {
+	      "areacode": "p42ypdej0jla",
+	      "areaname": "D1区",
+	      "polygon": [
+	        404,
+	        397,
+	        404,
+	        419,
+	        404,
+	        440,
+	        404,
+	        462,
+	        424,
+	        462,
+	        444,
+	        462,
+	        464,
+	        462,
+	        464,
+	        440,
+	        460,
+	        435,
+	        457,
+	        425,
+	        443,
+	        411,
+	        424,
+	        397,
+	        404,
+	        397
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "D1区"
+	    },
+	    {
+	      "areacode": "0ca4mx2gt615",
+	      "areaname": "H2区",
+	      "polygon": [
+	        293,
+	        144,
+	        293,
+	        153,
+	        293,
+	        162,
+	        293,
+	        171,
+	        307,
+	        171,
+	        321,
+	        171,
+	        335,
+	        171,
+	        335,
+	        162,
+	        335,
+	        153,
+	        335,
+	        144,
+	        321,
+	        144,
+	        307,
+	        144,
+	        293,
+	        144
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "H2区"
+	    },
+	    {
+	      "areacode": "q4bf4074fets",
+	      "areaname": "F区",
+	      "polygon": [
+	        163,
+	        139,
+	        163,
+	        155,
+	        163,
+	        170,
+	        163,
+	        186,
+	        181,
+	        186,
+	        199,
+	        186,
+	        217,
+	        186,
+	        217,
+	        170,
+	        217,
+	        155,
+	        217,
+	        139,
+	        199,
+	        139,
+	        181,
+	        139,
+	        163,
+	        139
+	      ],
+	      "row_size": 20,
+	      "col_size": 35,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "F区"
+	    },
+	    {
+	      "areacode": "wpks2e74fett",
+	      "areaname": "N8区",
+	      "polygon": [
+	        93,
+	        121,
+	        93,
+	        136,
+	        93,
+	        149,
+	        93,
+	        164,
+	        108,
+	        164,
+	        123,
+	        164,
+	        138,
+	        164,
+	        138,
+	        149,
+	        138,
+	        136,
+	        138,
+	        121,
+	        123,
+	        121,
+	        108,
+	        121,
+	        93,
+	        121
+	      ],
+	      "row_size": 20,
+	      "col_size": 35,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N8区"
+	    },
+	    {
+	      "areacode": "9xnc21jukqd0",
+	      "areaname": "N区",
+	      "polygon": [
+	        552,
+	        372,
+	        554,
+	        401,
+	        553,
+	        423,
+	        545,
+	        459,
+	        555,
+	        465,
+	        558,
+	        462,
+	        562,
+	        453,
+	        568,
+	        426,
+	        569,
+	        398,
+	        565,
+	        367,
+	        564,
+	        367,
+	        561,
+	        369,
+	        552,
+	        372
+	      ],
+	      "row_size": 15,
+	      "col_size": 40,
+	      "stage": "2",
+	      "amount": 89,
+	      "hint": "N区"
+	    },
+	    {
+	      "areacode": "ul1nl874fetw",
+	      "areaname": "R区",
+	      "polygon": [
+	        157,
+	        469,
+	        157,
+	        484,
+	        157,
+	        497,
+	        157,
+	        512,
+	        177,
+	        512,
+	        196,
+	        512,
+	        216,
+	        512,
+	        216,
+	        497,
+	        216,
+	        484,
+	        216,
+	        469,
+	        196,
+	        469,
+	        177,
+	        469,
+	        157,
+	        469
+	      ],
+	      "row_size": 20,
+	      "col_size": 40,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "R区"
+	    },
+	    {
+	      "areacode": "8ejjq6ej0jlg",
+	      "areaname": "B1区",
+	      "polygon": [
+	        406,
+	        193,
+	        406,
+	        214,
+	        406,
+	        237,
+	        406,
+	        258,
+	        424,
+	        258,
+	        442,
+	        258,
+	        460,
+	        257,
+	        461,
+	        237,
+	        461,
+	        217,
+	        461,
+	        193,
+	        442,
+	        193,
+	        424,
+	        193,
+	        406,
+	        193
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "B1区"
+	    },
+	    {
+	      "areacode": "kt5npejukqd3",
+	      "areaname": "K区",
+	      "polygon": [
+	        466,
+	        140,
+	        466,
+	        155,
+	        466,
+	        172,
+	        466,
+	        187,
+	        481,
+	        187,
+	        494,
+	        187,
+	        509,
+	        187,
+	        509,
+	        172,
+	        509,
+	        155,
+	        509,
+	        140,
+	        494,
+	        140,
+	        481,
+	        140,
+	        466,
+	        140
+	      ],
+	      "row_size": 20,
+	      "col_size": 40,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "K区"
+	    },
+	    {
+	      "areacode": "w1perrjukqd5",
+	      "areaname": "N15区",
+	      "polygon": [
+	        225,
+	        530,
+	        225,
+	        545,
+	        224,
+	        565,
+	        247,
+	        566,
+	        247,
+	        578,
+	        290,
+	        582,
+	        325,
+	        580,
+	        326,
+	        561,
+	        326,
+	        545,
+	        326,
+	        530,
+	        292,
+	        530,
+	        259,
+	        530,
+	        225,
+	        530
+	      ],
+	      "row_size": 20,
+	      "col_size": 40,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N15区"
+	    },
+	    {
+	      "areacode": "c9e74k2gt61e",
+	      "areaname": "C3区",
+	      "polygon": [
+	        134,
+	        364,
+	        134,
+	        380,
+	        134,
+	        396,
+	        134,
+	        412,
+	        160,
+	        412,
+	        185,
+	        412,
+	        211,
+	        412,
+	        211,
+	        396,
+	        211,
+	        380,
+	        211,
+	        364,
+	        185,
+	        364,
+	        160,
+	        364,
+	        134,
+	        364
+	      ],
+	      "row_size": 24,
+	      "col_size": 43,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "C3区"
+	    },
+	    {
+	      "areacode": "y424tp2gt61f",
+	      "areaname": "A3区",
+	      "polygon": [
+	        451,
+	        364,
+	        453,
+	        373,
+	        470,
+	        390,
+	        486,
+	        399,
+	        493,
+	        413,
+	        516,
+	        414,
+	        541,
+	        414,
+	        541,
+	        398,
+	        541,
+	        380,
+	        541,
+	        364,
+	        516,
+	        364,
+	        493,
+	        364,
+	        451,
+	        364
+	      ],
+	      "row_size": 30,
+	      "col_size": 60,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "A3区"
+	    },
+	    {
+	      "areacode": "d2ekxysa808x",
+	      "areaname": "C2区",
+	      "polygon": [
+	        133,
+	        241,
+	        133,
+	        259,
+	        133,
+	        276,
+	        133,
+	        294,
+	        158,
+	        294,
+	        185,
+	        294,
+	        210,
+	        294,
+	        210,
+	        276,
+	        210,
+	        259,
+	        210,
+	        241,
+	        185,
+	        241,
+	        158,
+	        241,
+	        133,
+	        241
+	      ],
+	      "row_size": 24,
+	      "col_size": 40,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "C2区"
+	    },
+	    {
+	      "areacode": "x26ltu2gt61h",
+	      "areaname": "C1区",
+	      "polygon": [
+	        134,
+	        304,
+	        134,
+	        318,
+	        134,
+	        333,
+	        134,
+	        347,
+	        165,
+	        347,
+	        197,
+	        347,
+	        228,
+	        347,
+	        228,
+	        333,
+	        228,
+	        318,
+	        228,
+	        304,
+	        197,
+	        304,
+	        165,
+	        304,
+	        134,
+	        304
+	      ],
+	      "row_size": 24,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "C1区"
+	    },
+	    {
+	      "areacode": "02apw92gt618",
+	      "areaname": "N1区",
+	      "polygon": [
+	        581,
+	        276,
+	        581,
+	        296,
+	        581,
+	        316,
+	        604,
+	        321,
+	        606,
+	        335,
+	        607,
+	        336,
+	        620,
+	        335,
+	        620,
+	        316,
+	        620,
+	        296,
+	        620,
+	        276,
+	        607,
+	        276,
+	        594,
+	        276,
+	        581,
+	        276
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N1区"
+	    },
+	    {
+	      "areacode": "sgatj4jukqdb",
+	      "areaname": "N5区",
+	      "polygon": [
+	        334,
+	        75,
+	        334,
+	        92,
+	        334,
+	        109,
+	        334,
+	        126,
+	        367,
+	        126,
+	        399,
+	        126,
+	        432,
+	        126,
+	        432,
+	        109,
+	        432,
+	        92,
+	        432,
+	        75,
+	        399,
+	        75,
+	        367,
+	        75,
+	        334,
+	        75
+	      ],
+	      "row_size": 20,
+	      "col_size": 35,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N5区"
+	    },
+	    {
+	      "areacode": "c4m1arjukqdc",
+	      "areaname": "B4区",
+	      "polygon": [
+	        216,
+	        193,
+	        216,
+	        215,
+	        216,
+	        239,
+	        216,
+	        261,
+	        236,
+	        261,
+	        256,
+	        261,
+	        276,
+	        261,
+	        276,
+	        239,
+	        276,
+	        215,
+	        276,
+	        193,
+	        256,
+	        193,
+	        236,
+	        193,
+	        216,
+	        193
+	      ],
+	      "row_size": 20,
+	      "col_size": 30,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "B4区"
+	    },
+	    {
+	      "areacode": "fsp4282gt61b",
+	      "areaname": "N6区",
+	      "polygon": [
+	        246,
+	        74,
+	        246,
+	        91,
+	        246,
+	        109,
+	        246,
+	        126,
+	        273,
+	        126,
+	        299,
+	        126,
+	        326,
+	        126,
+	        326,
+	        109,
+	        326,
+	        91,
+	        326,
+	        74,
+	        299,
+	        74,
+	        273,
+	        74,
+	        246,
+	        74
+	      ],
+	      "row_size": 20,
+	      "col_size": 35,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N6区"
+	    },
+	    {
+	      "areacode": "9hw55eej0jlx",
+	      "areaname": "A1区",
+	      "polygon": [
+	        454,
+	        306,
+	        454,
+	        320,
+	        454,
+	        336,
+	        454,
+	        350,
+	        484,
+	        350,
+	        513,
+	        350,
+	        543,
+	        350,
+	        543,
+	        336,
+	        543,
+	        320,
+	        543,
+	        306,
+	        513,
+	        306,
+	        484,
+	        306,
+	        454,
+	        306
+	      ],
+	      "row_size": 25,
+	      "col_size": 50,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "A1区"
+	    },
+	    {
+	      "areacode": "cddsjlsa8097",
+	      "areaname": "N16区",
+	      "polygon": [
+	        335,
+	        534,
+	        335,
+	        550,
+	        335,
+	        565,
+	        335,
+	        581,
+	        369,
+	        581,
+	        404,
+	        581,
+	        438,
+	        581,
+	        438,
+	        565,
+	        438,
+	        550,
+	        438,
+	        534,
+	        404,
+	        534,
+	        369,
+	        534,
+	        335,
+	        534
+	      ],
+	      "row_size": 20,
+	      "col_size": 40,
+	      "stage": "2",
+	      "amount": 0,
+	      "hint": "N16区"
+	    }
+	  ]
+	);
+	async function draw() {
+		const ctx = uni.createCanvasContext('canvas', instance);
+		ctx.save(); // 保存当前状态
+		ctx.translate(offsetX.value, offsetY.value); // 应用偏移
+		ctx.scale(scale.value, scale.value); // 应用缩放
+		const res = await uni.getImageInfo({
+			src: imgUrl.value
+		});
+		ctx.drawImage(res.path, 0, 0, canvasWidth.value, canvasHeight.value);
+		ctx.restore(); // 恢复之前保存的状态
+		// 绘制每个图形
+		blocks.value.forEach((block) => {
+			ctx.beginPath();
+			// ctx.fillStyle = block.color;
+			// 应用缩放
+				ctx.scale(scale.value, scale.value); // 应用缩放
+			switch (block.hint) {
+				case block.hint: // 四边形
+					for (let i = 0; i < block.polygon.length; i += 2) {
+						const x = block.polygon[i];
+						const y = block.polygon[i + 1];
+						if (i === 0) {
+							ctx.moveTo(x, y);
+						} else {
+							ctx.lineTo(x, y);
+						}
+					}
+					ctx.closePath();
+					break;
+			}
+
+			ctx.restore(); // 恢复缩放前的状态,避免影响其他绘制
+
+			ctx.stroke(); // 绘制边框
+			if (block.color) ctx.fill(); // 如果有填充色就填充
+		});
+
+		ctx.draw()
+	}
+
+
+
+	// 处理canvas触摸事件
+	function handleCanvasTouch(event) {
+		// 获取触摸点的坐标
+		const x = event.touches[0].x;
+		const y = event.touches[0].y;
+		console.log(x, y, '12');
+
+	}
+
+
+	// 触摸开始
+	const handleTouchStart = (e) => {
+		console.log('handleTouchStart')
+		// 获取触摸点的坐标
+		const x = e.touches[0].x;
+		const y = e.touches[0].y;
+		// 判断点击位置
+		blocks.value.forEach((block) => {
+			if (isPointInQuadrilateral(x, y, block.polygon)) {
+				uni.showModal({
+					title: '提示',
+					content: block.hint,
+					showCancel: true, // 显示取消按钮
+					success: (res) => {
+						if (res.confirm) {
+							console.log('用户点击了“确定”按钮');
+						} else if (res.cancel) {
+							console.log('用户点击了“取消”按钮');
+						}
+					},
+				});
+			}
+		});
+		if (e.touches.length === 1) {
+			// 单指拖动
+			startX.value = e.touches[0].clientX - offsetX.value
+			startY.value = e.touches[0].clientY - offsetY.value
+			isDragging.value = true
+		} else if (e.touches.length === 2) {
+			// 双指缩放
+			const x1 = e.touches[0].clientX
+			const y1 = e.touches[0].clientY
+			const x2 = e.touches[1].clientX
+			const y2 = e.touches[1].clientY
+			lastDistance.value = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))
+		}
+	}
+
+	// 触摸移动
+	const handleTouchMove = (e) => {
+		console.log('11111');
+		if (e.touches.length === 1 && isDragging.value) {
+			// 单指移动逻辑...
+			offsetX.value = e.touches[0].clientX - startX.value;
+			offsetY.value = e.touches[0].clientY - startY.value;
+		} else if (e.touches.length === 2) {
+			// 双指缩放逻辑...
+			const x1 = e.touches[0].clientX,
+				y1 = e.touches[0].clientY;
+			const x2 = e.touches[1].clientX,
+				y2 = e.touches[1].clientY;
+			const distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
+
+			if (lastDistance.value > 0) {
+				scale.value = Math.min(Math.max(scale.value * (distance / lastDistance.value), 0.5), 4);
+				draw(); // 重新绘制Canvas内容
+			}
+			lastDistance.value = distance;
+		}
+	};
+
+
+	// 触摸结束
+	const handleTouchEnd = () => {
+		console.log('handleTouchEnd')
+		lastDistance.value = -1
+		isDragging.value = false
+	}
+
+	// 按钮点击事件处理函数
+	const handleDraw = () => {
+		draw(); // 调用绘图函数
+	}
+
+	// onMounted(() => {
+	// 	setInterval(()=>{
+	// 		draw()
+	// 	},300)
+	// 	// 确保在组件挂载后可以获取到Canvas元素
+	// })
+	// useRafFn(() => {
+	//   draw()
+	// })
+	onReady(() => {
+		console.log('onReadyonReady');
+		uni.downloadFile({
+			url: imgUrl.value,
+			success: function(sres) {
+				console.log(sres, 'sres');
+				imgUrl.value = sres.tempFilePath || sres.path
+				// setInterval(()=>{
+				draw()
+				// },16)
+			},
+			fail: function(fres) {
+				console.log('fres', fres)
+			}
+		})
+	})
+function isPointInQuadrilateral(px, py, polygon) {
+    let inside = false;
+    const n = polygon.length / 2; // 因为每两个数表示一个点(x,y)
+    for (let i = 0; i < n; i++) {
+        let p1_x = polygon[2 * i];
+        let p1_y = polygon[2 * i + 1];
+        let p2_x, p2_y;
+        if (i === n - 1) { // 最后一个点与第一个点相连形成闭合
+            p2_x = polygon[0];
+            p2_y = polygon[1];
+        } else {
+            p2_x = polygon[2 * i + 2];
+            p2_y = polygon[2 * i + 3];
+        }
+
+        if (py > Math.min(p1_y, p2_y) && py <= Math.max(p1_y, p2_y) && px <= Math.max(p1_x, p2_x)) {
+            if (p1_y !== p2_y) {
+                let xinters = (py - p1_y) * (p2_x - p1_x) / (p2_y - p1_y) + p1_x;
+                if (p1_x === p2_x || px <= xinters) {
+                    inside = !inside;
+                }
+            }
+        }
+    }
+    return inside;
+}
+</script>
+
+<style scoped>
+	button {
+		margin-top: 10px;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/index/utils.js b/pages/index/utils.js
new file mode 100644
index 0000000..2715f00
--- /dev/null
+++ b/pages/index/utils.js
@@ -0,0 +1,79 @@
+import { ref, onMounted, onUnmounted } from 'vue'
+
+export function useElementSize(targetSelector) {
+  const width = ref(0)
+  const height = ref(0)
+  let observer = null
+
+  const updateSize = () => {
+    const query = uni.createSelectorQuery()
+    query.select(targetSelector).boundingClientRect(rect => {
+      if (rect) {
+        width.value = rect.width
+        height.value = rect.height
+      }
+    }).exec()
+  }
+
+  onMounted(() => {
+    updateSize()
+    // 尝试使用 ResizeObserver(部分小程序基础库支持)
+    if (uni.createIntersectionObserver) {
+      observer = uni.createIntersectionObserver(this, {
+        observeAll: true
+      })
+      observer.relativeToViewport().observe(targetSelector, updateSize)
+    }
+  })
+
+  onUnmounted(() => {
+    observer?.disconnect()
+  })
+
+  return { width, height, updateSize }
+}
+
+export function useEventListener(target, event, handler) {
+  // 组件内事件
+  if (target.$on) {
+    target.$on(event, handler)
+    const stop = () => target.$off(event, handler)
+    onUnmounted(stop)
+    return stop
+  }
+  // 全局事件(需配合 uni.$emit 使用)
+  else {
+    uni.$on(event, handler)
+    const stop = () => uni.$off(event, handler)
+    onUnmounted(stop)
+    return stop
+  }
+}
+
+
+export function useRafFn(fn, { immediate = true } = {}) {
+  let isActive = false
+  let timerId = null
+
+  const loop = () => {
+    if (!isActive) return
+    fn()
+    timerId = setTimeout(loop, 16) // 模拟 60fps
+  }
+
+  const start = () => {
+    if (isActive) return
+    isActive = true
+    loop()
+  }
+
+  const stop = () => {
+    isActive = false
+    clearTimeout(timerId)
+  }
+
+  onUnmounted(stop)
+  immediate && start()
+
+  return { start, stop }
+}
\ No newline at end of file