From e5d908701fdd1df9cd499a21cc0bdfed6c3d7b67 Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Mon, 14 Jul 2025 16:10:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=93=8D=E5=BA=94=E4=BD=93=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../images/2025-07-14_144207.png | Bin 0 -> 13424 bytes components/CommandWrapper/index.vue | 18 ++++ components/CommandWrapper/propmt.md | 12 +++ components/CommandWrapper/styles/index.scss | 11 ++ .../images/2025-07-14_155933.png | Bin 0 -> 73766 bytes components/ResponseIntro/index.vue | 21 ++++ components/ResponseIntro/prompt.md | 14 +++ components/ResponseIntro/styles/index.scss | 11 ++ components/ResponseWrapper/index.vue | 11 ++ components/ResponseWrapper/styles/index.scss | 7 ++ .../mp-weixin/ChatQuickAccess.js.map | 2 +- .../dist/dev/.sourcemap/mp-weixin/app.js.map | 2 +- .../.sourcemap/mp-weixin/common/assets.js.map | 2 +- .../.sourcemap/mp-weixin/common/vendor.js.map | 2 +- .../components/CommandWrapper/index.js.map | 1 + .../components/ResponseIntro/index.js.map | 1 + .../components/ResponseWrapper/index.js.map | 1 + .../mp-weixin/model/ChatModel.js.map | 2 +- .../mp-weixin/pages/chat/ChatCardAI.js.map | 2 +- .../mp-weixin/pages/chat/ChatCardMine.js.map | 2 +- .../mp-weixin/pages/chat/ChatMainList.js.map | 2 +- .../mp-weixin/pages/chat/ChatMoreTips.js.map | 2 +- .../pages/chat/ChatQuickAccess.js.map | 2 +- .../pages/chat/ChatQuickAccess2.js.map | 2 +- .../mp-weixin/pages/chat/ChatTopBanner.js.map | 2 +- .../mp-weixin/pages/chat/ChatTopBgImg.js.map | 2 +- .../mp-weixin/pages/chat/ChatTopNavBar.js.map | 2 +- .../mp-weixin/pages/drawer/DrawerHome.js.map | 2 +- .../mp-weixin/pages/index/index.js.map | 2 +- .../pages/module/OneFeelMK001.js.map | 2 +- .../order/components/GoodsInfo/index.js.map | 2 +- .../order/components/NoticeInfo/index.js.map | 2 +- .../order/components/OrderInfo/index.js.map | 2 +- .../components/OrderStatusInfo/index.js.map | 2 +- .../order/components/UserInfo/index.js.map | 2 +- .../mp-weixin/pages/order/detail.js.map | 2 +- .../mp-weixin/pages/order/list.js.map | 2 +- .../third/ex-drawer/ex-drawer.js.map | 2 +- unpackage/dist/dev/mp-weixin/common/vendor.js | 98 +++++++----------- .../components/ResponseIntro/index.js | 21 ++++ .../{TagsGroup => ResponseIntro}/index.json | 0 .../components/ResponseIntro/index.wxml | 1 + .../components/ResponseIntro/index.wxss | 35 +++++++ .../components/ResponseWrapper/index.js | 9 ++ .../components/ResponseWrapper/index.json | 4 + .../components/ResponseWrapper/index.wxml | 1 + .../components/ResponseWrapper/index.wxss | 32 ++++++ .../mp-weixin/components/TagsGroup/index.js | 25 ----- .../mp-weixin/components/TagsGroup/index.wxml | 1 - .../mp-weixin/components/TagsGroup/index.wxss | 12 --- .../dev/mp-weixin/pages/chat/ChatMainList.js | 14 +-- .../mp-weixin/pages/chat/ChatMainList.json | 4 +- .../mp-weixin/pages/chat/ChatMainList.wxml | 2 +- .../mp-weixin/pages/chat/ChatMainList.wxss | 8 +- .../dev/mp-weixin/project.private.config.json | 20 ---- 55 files changed, 290 insertions(+), 155 deletions(-) create mode 100644 components/CommandWrapper/images/2025-07-14_144207.png create mode 100644 components/CommandWrapper/index.vue create mode 100644 components/CommandWrapper/propmt.md create mode 100644 components/CommandWrapper/styles/index.scss create mode 100644 components/ResponseIntro/images/2025-07-14_155933.png create mode 100644 components/ResponseIntro/index.vue create mode 100644 components/ResponseIntro/prompt.md create mode 100644 components/ResponseIntro/styles/index.scss create mode 100644 components/ResponseWrapper/index.vue create mode 100644 components/ResponseWrapper/styles/index.scss create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/components/CommandWrapper/index.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/components/ResponseIntro/index.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/components/ResponseWrapper/index.js.map create mode 100644 unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.js rename unpackage/dist/dev/mp-weixin/components/{TagsGroup => ResponseIntro}/index.json (100%) create mode 100644 unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.wxss create mode 100644 unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.js create mode 100644 unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.json create mode 100644 unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.wxss delete mode 100644 unpackage/dist/dev/mp-weixin/components/TagsGroup/index.js delete mode 100644 unpackage/dist/dev/mp-weixin/components/TagsGroup/index.wxml delete mode 100644 unpackage/dist/dev/mp-weixin/components/TagsGroup/index.wxss diff --git a/components/CommandWrapper/images/2025-07-14_144207.png b/components/CommandWrapper/images/2025-07-14_144207.png new file mode 100644 index 0000000000000000000000000000000000000000..b271e83e2c1d72011f84c17dca491d9852109cf9 GIT binary patch literal 13424 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 SvDsDt0000 + + {{ text }} + + + + + + diff --git a/components/CommandWrapper/propmt.md b/components/CommandWrapper/propmt.md new file mode 100644 index 0000000..c14da46 --- /dev/null +++ b/components/CommandWrapper/propmt.md @@ -0,0 +1,12 @@ +## 消息体指令组件 + +## 提示词: + +使用 uniapp + vue3 组合式 api 开发微信小程序,要求如下: +1、按照提供的图片高度还原交互设计 +2、要求布局样式结构简洁明了,class 命名请按照模块名称来命名,例如:.command-wrapper +3、可以使用 uniapp 内置的组件 + +## 备注 + +仅供学习、交流使用,请勿用于商业用途。 diff --git a/components/CommandWrapper/styles/index.scss b/components/CommandWrapper/styles/index.scss new file mode 100644 index 0000000..4a80159 --- /dev/null +++ b/components/CommandWrapper/styles/index.scss @@ -0,0 +1,11 @@ +.command-wrapper { + background-color: #00a6ff; + border-radius: 20px 4px 20px 20px; + padding: 8px 24px; + width: max-content; +} + +.command-text { + color: #fff; + font-size: 14px; +} diff --git a/components/ResponseIntro/images/2025-07-14_155933.png b/components/ResponseIntro/images/2025-07-14_155933.png new file mode 100644 index 0000000000000000000000000000000000000000..1882d8aaeee95d4a859a6b5406e6addbc03f74ae GIT binary patch literal 73766 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 literal 0 HcmV?d00001 diff --git a/components/ResponseIntro/index.vue b/components/ResponseIntro/index.vue new file mode 100644 index 0000000..e67b9db --- /dev/null +++ b/components/ResponseIntro/index.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/components/ResponseIntro/prompt.md b/components/ResponseIntro/prompt.md new file mode 100644 index 0000000..fdc0b1c --- /dev/null +++ b/components/ResponseIntro/prompt.md @@ -0,0 +1,14 @@ +## 消息响应体文本介绍组件 + +组件名称:消息响应体文本介绍组件 + +## 提示词: + +使用 uniapp + vue3 组合式 api 开发微信小程序,要求如下: +1、参考图片,还原交互设计 +2、要求布局样式结构简洁明了,class 命名请按照模块名称来命名,例如:.response-intro-text +3、可以使用 uniapp 内置的组件 + +## 备注 + +仅供学习、交流使用,请勿用于商业用途。 diff --git a/components/ResponseIntro/styles/index.scss b/components/ResponseIntro/styles/index.scss new file mode 100644 index 0000000..4a61ff8 --- /dev/null +++ b/components/ResponseIntro/styles/index.scss @@ -0,0 +1,11 @@ +.response-intro-wrapper { + padding: 4px 8px 12px 12px; +} + +.response-intro-text { + font-weight: 500; + font-size: 14px; + color: #333333; + line-height: 20px; + text-align: justify; +} diff --git a/components/ResponseWrapper/index.vue b/components/ResponseWrapper/index.vue new file mode 100644 index 0000000..f47b591 --- /dev/null +++ b/components/ResponseWrapper/index.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/components/ResponseWrapper/styles/index.scss b/components/ResponseWrapper/styles/index.scss new file mode 100644 index 0000000..dfd23e5 --- /dev/null +++ b/components/ResponseWrapper/styles/index.scss @@ -0,0 +1,7 @@ +.response-wrapper { + background: rgba(255, 255, 255, 0.4); + box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.1); + border-radius: 4px 20px 20px 20px; + border: 1px solid #fff; + padding: 12px; +} diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/ChatQuickAccess.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/ChatQuickAccess.js.map index 85ca3f7..3bd2e71 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/ChatQuickAccess.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/ChatQuickAccess.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatQuickAccess.js","sources":["pages/chat/ChatQuickAccess.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n"],"names":["ref","onMounted"],"mappings":";;;;;;;AAiBC,UAAM,WAAWA,cAAG,IAAC,EAAE;AAEvB,UAAM,QAAQ;AAEd,UAAM,YAAY,CAAC,SAAS;AAC3B,YAAM,aAAa,IAAI;AAAA,IACvB;AAEDC,kBAAAA,UAAU,MAAM;AACf,eAAU;AAAA,IACZ,CAAE;AAED,UAAM,WAAW,MAAM;AACtB,eAAS,QAAQ;AAAA,QAChB;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,QACT;AAAA,QACD;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,QACT;AAAA,QACD;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,QACT;AAAA,QACD;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,QACT;AAAA,MACD;AAAA,IACD;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"ChatQuickAccess.js","sources":["pages/chat/ChatQuickAccess.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["ref","onMounted"],"mappings":";;;;;;;AAiBC,UAAM,WAAWA,cAAG,IAAC,EAAE;AAEvB,UAAM,QAAQ;AAEd,UAAM,YAAY,CAAC,SAAS;AAC3B,YAAM,aAAa,IAAI;AAAA,IACvB;AAEDC,kBAAAA,UAAU,MAAM;AACf,eAAU;AAAA,IACZ,CAAE;AAED,UAAM,WAAW,MAAM;AACtB,eAAS,QAAQ;AAAA,QAChB;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,QACT;AAAA,QACD;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,QACT;AAAA,QACD;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,QACT;AAAA,QACD;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,UACP,SAAS;AAAA,QACT;AAAA,MACD;AAAA,IACD;;;;;;;;;;;;;;;;;;;"} \ 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 index 49f3ff7..e690e1f 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["\r\n\r\n\r\n","import App from './App'\r\n\r\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nimport './uni.promisify.adaptor'\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\nconst app = new Vue({\r\n ...App\r\n})\r\napp.$mount()\r\n// #endif\r\n\r\n// #ifdef VUE3\r\nimport { createSSRApp } from 'vue'\r\nexport function createApp() {\r\n const app = createSSRApp(App)\r\n return {\r\n app\r\n }\r\n}\r\n// #endif"],"names":["onLaunch","uni","onShow","onHide","createSSRApp","App"],"mappings":";;;;;;;;;;;;AAGAA,kBAAAA,SAAS,MAAM;AACbC,oBAAAA,MAAY,MAAA,OAAA,gBAAA,YAAY;AAAA,IAC1B,CAAC;AAEDC,kBAAAA,OAAO,MAAM;AACXD,oBAAAA,MAAA,MAAA,OAAA,gBAAY,UAAU;AAAA,IACxB,CAAC;AAEDE,kBAAAA,OAAO,MAAM;AACXF,oBAAAA,MAAA,MAAA,OAAA,iBAAY,UAAU;AAAA,IACxB,CAAC;;;;;ACEM,SAAS,YAAY;AAC1B,QAAM,MAAMG,cAAY,aAACC,SAAG;AAC5B,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"} \ No newline at end of file +{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["\n\n\n","import App from './App'\n\n// #ifndef VUE3\nimport Vue from 'vue'\nimport './uni.promisify.adaptor'\nVue.config.productionTip = false\nApp.mpType = 'app'\nconst app = new Vue({\n ...App\n})\napp.$mount()\n// #endif\n\n// #ifdef VUE3\nimport { createSSRApp } from 'vue'\nexport function createApp() {\n const app = createSSRApp(App)\n return {\n app\n }\n}\n// #endif"],"names":["onLaunch","uni","onShow","onHide","createSSRApp","App"],"mappings":";;;;;;;;;;;;AAGAA,kBAAAA,SAAS,MAAM;AACbC,oBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,IAC1B,CAAC;AAEDC,kBAAAA,OAAO,MAAM;AACXD,oBAAAA,MAAA,MAAA,OAAA,gBAAY,UAAU;AAAA,IACxB,CAAC;AAEDE,kBAAAA,OAAO,MAAM;AACXF,oBAAAA,MAAA,MAAA,OAAA,iBAAY,UAAU;AAAA,IACxB,CAAC;;;;;ACEM,SAAS,YAAY;AAC1B,QAAM,MAAMG,cAAY,aAACC,SAAG;AAC5B,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"} \ 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 index d557f1e..f3d9492 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map @@ -1 +1 @@ -{"version":3,"file":"assets.js","sources":["static/quick/quick_icon_bg.png","pages/order/images/back.png","static/logo.png","static/input_voice_icon.png","static/input_send_icon.png","C:/static/icons/clock.png","pages/order/components/GoodsInfo/images/icon_house.png","pages/order/components/NoticeInfo/images/icon_clock.png","pages/order/components/NoticeInfo/images/icon_card.png","pages/order/components/NoticeInfo/images/icon_arrow.png","static/hello_xiaomu_icon@2x.png","static/hello_logo_icon@2x.png","static/top_bg_icon.png","static/drawer_icon.png","static/wave_icon.png","static/test/mk_img_1.png"],"sourcesContent":["export default \"__VITE_ASSET__ff753b35__\"","export default \"__VITE_ASSET__6961004c__\"","export default \"__VITE_ASSET__46719607__\"","export default \"__VITE_ASSET__76f969d6__\"","export default \"__VITE_ASSET__e6bd7a29__\"","export default \"/static/icons/clock.png\"","export default \"__VITE_ASSET__8779a05f__\"","export default \"__VITE_ASSET__50bb3f13__\"","export default \"__VITE_ASSET__c038c52d__\"","export default \"__VITE_ASSET__228274ee__\"","export default \"__VITE_ASSET__2eba501c__\"","export default \"__VITE_ASSET__51733f19__\"","export default \"__VITE_ASSET__ead16fdc__\"","export default \"__VITE_ASSET__a9576f2b__\"","export default \"__VITE_ASSET__d889f8a8__\"","export default \"__VITE_ASSET__c4efe7df__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"assets.js","sources":["static/quick/quick_icon_bg.png","pages/order/images/back.png","static/logo.png","static/input_voice_icon.png","static/input_send_icon.png","E:/static/icons/clock.png","pages/order/components/GoodsInfo/images/icon_house.png","pages/order/components/NoticeInfo/images/icon_clock.png","pages/order/components/NoticeInfo/images/icon_card.png","pages/order/components/NoticeInfo/images/icon_arrow.png","static/hello_xiaomu_icon@2x.png","static/hello_logo_icon@2x.png","static/top_bg_icon.png","static/drawer_icon.png","static/wave_icon.png","static/test/mk_img_1.png"],"sourcesContent":["export default \"__VITE_ASSET__ff753b35__\"","export default \"__VITE_ASSET__6961004c__\"","export default \"__VITE_ASSET__46719607__\"","export default \"__VITE_ASSET__76f969d6__\"","export default \"__VITE_ASSET__e6bd7a29__\"","export default \"/static/icons/clock.png\"","export default \"__VITE_ASSET__8779a05f__\"","export default \"__VITE_ASSET__50bb3f13__\"","export default \"__VITE_ASSET__c038c52d__\"","export default \"__VITE_ASSET__228274ee__\"","export default \"__VITE_ASSET__2eba501c__\"","export default \"__VITE_ASSET__51733f19__\"","export default \"__VITE_ASSET__ead16fdc__\"","export default \"__VITE_ASSET__a9576f2b__\"","export default \"__VITE_ASSET__d889f8a8__\"","export default \"__VITE_ASSET__c4efe7df__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,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 index e250d12..b0a8ad5 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map @@ -1 +1 @@ -{"version":3,"file":"vendor.js","sources":["C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/shared/dist/shared.esm-bundler.js","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/dist/mp.esm.js","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/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 = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\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 = /^-?>||--!>| 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, isVoidTag, isString, isFunction, isPlainObject, hyphenate, camelize, normalizeStyle as normalizeStyle$1, parseStringStyle, isArray, normalizeClass as normalizeClass$1, extend, capitalize, makeMap } 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 // custom element\n 'match-media',\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 'volume-panel',\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 UVUE_WEB_BUILT_IN_CUSTOM_ELEMENTS = ['match-media'];\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 = [\n 'map',\n 'camera',\n 'live-player',\n 'live-pusher',\n];\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 // video 目前是easycom实现的\n if (tag === 'video' || tag === 'map') {\n return false;\n }\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// TODO 是否还存在其他需要特殊处理的 void 标签?\nconst APP_VOID_TAGS = ['textarea'];\nfunction isAppVoidTag(tag) {\n return APP_VOID_TAGS.includes(tag) || isVoidTag(tag);\n}\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_LAST_PAGE_BACK_PRESS = 'onLastPageBackPress';\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 // 如果存在,减去 高度\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 (isPlainObject(item))\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\nconst GLOBALS_ALLOWED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,' +\n 'uni';\nconst isGloballyAllowed = /*#__PURE__*/ makeMap(GLOBALS_ALLOWED);\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_LAST_PAGE_BACK_PRESS, 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_CUSTOM_ELEMENTS, 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, isAppVoidTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isGloballyAllowed, 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};\nfunction getComponentInternalInstance(i) {\n return i;\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 // fixed by xxxxxx\n $: getComponentInternalInstance,\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 \r\n\r\n","import Component from 'D:/www/YGChatCS/pages/chat/ChatMainList.vue'\nwx.createComponent(Component)"],"names":["ref","uni","onLoad","onMounted","MessageRole","MessageType","nextTick"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ChatMainList.js","sources":["pages/chat/ChatMainList.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0TWFpbkxpc3QudnVl"],"sourcesContent":["\n\n\n\n\n","import Component from 'D:/YGChatCS/pages/chat/ChatMainList.vue'\nwx.createComponent(Component)"],"names":["ref","uni","onLoad","onMounted","MessageRole","MessageType","nextTick"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatMoreTips.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatMoreTips.js.map index 6e67c0e..a9b3733 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatMoreTips.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatMoreTips.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatMoreTips.js","sources":["pages/chat/ChatMoreTips.vue","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL2NoYXQvQ2hhdE1vcmVUaXBzLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import Component from 'D:/www/YGChatCS/pages/chat/ChatMoreTips.vue'\nwx.createComponent(Component)"],"names":["ref","onMounted"],"mappings":";;;;;;AAYC,UAAM,WAAWA,cAAG,IAAC,EAAE;AACvB,UAAM,QAAQ;AAEd,UAAM,YAAY,CAAC,SAAS;AAC3B,YAAM,aAAa,IAAI;AAAA,IACvB;AAEDC,kBAAAA,UAAU,MAAM;AACf,eAAU;AAAA,IACZ,CAAE;AAED,UAAM,WAAW,MAAM;AACtB,eAAS,QAAQ;AAAA,QAChB;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,MACD;AAAA,IACD;;;;;;;;;;;;;;;AC9CF,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"ChatMoreTips.js","sources":["pages/chat/ChatMoreTips.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0TW9yZVRpcHMudnVl"],"sourcesContent":["\n\n\n\n\n","import Component from 'D:/YGChatCS/pages/chat/ChatMoreTips.vue'\nwx.createComponent(Component)"],"names":["ref","onMounted"],"mappings":";;;;;;AAYC,UAAM,WAAWA,cAAG,IAAC,EAAE;AACvB,UAAM,QAAQ;AAEd,UAAM,YAAY,CAAC,SAAS;AAC3B,YAAM,aAAa,IAAI;AAAA,IACvB;AAEDC,kBAAAA,UAAU,MAAM;AACf,eAAU;AAAA,IACZ,CAAE;AAED,UAAM,WAAW,MAAM;AACtB,eAAS,QAAQ;AAAA,QAChB;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,QACD;AAAA,UACC,OAAO;AAAA,QACP;AAAA,MACD;AAAA,IACD;;;;;;;;;;;;;;;AC9CF,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatQuickAccess.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatQuickAccess.js.map index 9495606..18bd1b1 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatQuickAccess.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatQuickAccess.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatQuickAccess.js","sources":["C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvY2hhdC9DaGF0UXVpY2tBY2Nlc3MudnVl"],"sourcesContent":["import MiniProgramPage from 'D:/www/YGChatCS/pages/chat/ChatQuickAccess.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;AACA,GAAG,WAAWA,gBAAe,eAAA;"} \ No newline at end of file +{"version":3,"file":"ChatQuickAccess.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvY2hhdC9DaGF0UXVpY2tBY2Nlc3MudnVl"],"sourcesContent":["import MiniProgramPage from 'D:/YGChatCS/pages/chat/ChatQuickAccess.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;AACA,GAAG,WAAWA,gBAAe,eAAA;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatQuickAccess2.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatQuickAccess2.js.map index 567f607..93d83ec 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatQuickAccess2.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatQuickAccess2.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatQuickAccess2.js","sources":["C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL2NoYXQvQ2hhdFF1aWNrQWNjZXNzLnZ1ZQ"],"sourcesContent":["import MiniProgramPage from 'D:/www/YGChatCS/pages/chat/ChatQuickAccess.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;AACA,GAAG,WAAWA,gBAAe,eAAA;"} \ No newline at end of file +{"version":3,"file":"ChatQuickAccess2.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0UXVpY2tBY2Nlc3MudnVl"],"sourcesContent":["import MiniProgramPage from 'D:/YGChatCS/pages/chat/ChatQuickAccess.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;AACA,GAAG,WAAWA,gBAAe,eAAA;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopBanner.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopBanner.js.map index 49761ec..b12e61a 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopBanner.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopBanner.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatTopBanner.js","sources":["pages/chat/ChatTopBanner.vue","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL2NoYXQvQ2hhdFRvcEJhbm5lci52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n","import Component from 'D:/www/YGChatCS/pages/chat/ChatTopBanner.vue'\nwx.createComponent(Component)"],"names":["ref","onLoad","uni"],"mappings":";;;;;;AAkBC,UAAM,kBAAkBA,kBAAI,EAAE;AAC9B,UAAM,mBAAmBA,cAAG,IAAC,EAAE;AAE/BC,kBAAAA,OAAO,MAAM;AACXC,oBAAAA,MAAI,cAAc;AAAA,QAChB,SAAS,CAAC,QAAQ;AAChB,0BAAgB,QAAQ,IAAI,mBAAmB;AAClD,2BAAiB,SAAS,gBAAgB;AAAA,QACxC;AAAA,MACN,CAAI;AAAA,IACJ,CAAE;;;;;;;;;;;AC3BF,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"ChatTopBanner.js","sources":["pages/chat/ChatTopBanner.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0VG9wQmFubmVyLnZ1ZQ"],"sourcesContent":["\n\n\n\n","import Component from 'D:/YGChatCS/pages/chat/ChatTopBanner.vue'\nwx.createComponent(Component)"],"names":["ref","onLoad","uni"],"mappings":";;;;;;AAkBC,UAAM,kBAAkBA,kBAAI,EAAE;AAC9B,UAAM,mBAAmBA,cAAG,IAAC,EAAE;AAE/BC,kBAAAA,OAAO,MAAM;AACXC,oBAAAA,MAAI,cAAc;AAAA,QAChB,SAAS,CAAC,QAAQ;AAChB,0BAAgB,QAAQ,IAAI,mBAAmB;AAClD,2BAAiB,SAAS,gBAAgB;AAAA,QACxC;AAAA,MACN,CAAI;AAAA,IACJ,CAAE;;;;;;;;;;;AC3BF,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopBgImg.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopBgImg.js.map index 5b2740c..715c459 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopBgImg.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopBgImg.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatTopBgImg.js","sources":["C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL2NoYXQvQ2hhdFRvcEJnSW1nLnZ1ZQ"],"sourcesContent":["import Component from 'D:/www/YGChatCS/pages/chat/ChatTopBgImg.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"ChatTopBgImg.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0VG9wQmdJbWcudnVl"],"sourcesContent":["import Component from 'D:/YGChatCS/pages/chat/ChatTopBgImg.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopNavBar.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopNavBar.js.map index d243062..1ba8f9b 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopNavBar.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatTopNavBar.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatTopNavBar.js","sources":["pages/chat/ChatTopNavBar.vue","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL2NoYXQvQ2hhdFRvcE5hdkJhci52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n","import Component from 'D:/www/YGChatCS/pages/chat/ChatTopNavBar.vue'\nwx.createComponent(Component)"],"names":["uni"],"mappings":";;;;;;;AAWC,UAAM,QAAQ;AAEd,UAAM,aAAa,MAAM;AACxB,YAAM,YAAY;AAClBA,oBAAAA,yDAAY,mBAAmB;AAAA,IAC/B;;;;;;;;;;ACfF,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"ChatTopNavBar.js","sources":["pages/chat/ChatTopNavBar.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0VG9wTmF2QmFyLnZ1ZQ"],"sourcesContent":["\n\n\n\n","import Component from 'D:/YGChatCS/pages/chat/ChatTopNavBar.vue'\nwx.createComponent(Component)"],"names":["uni"],"mappings":";;;;;;;AAWC,UAAM,QAAQ;AAEd,UAAM,aAAa,MAAM;AACxB,YAAM,YAAY;AAClBA,oBAAAA,yDAAY,mBAAmB;AAAA,IAC/B;;;;;;;;;;ACfF,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/drawer/DrawerHome.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/drawer/DrawerHome.js.map index 63e5169..bec5872 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/drawer/DrawerHome.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/drawer/DrawerHome.js.map @@ -1 +1 @@ -{"version":3,"file":"DrawerHome.js","sources":["pages/drawer/DrawerHome.vue","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL2RyYXdlci9EcmF3ZXJIb21lLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n","import Component from 'D:/www/YGChatCS/pages/drawer/DrawerHome.vue'\nwx.createComponent(Component)"],"names":["uni"],"mappings":";;;;;;AAkBC,UAAM,QAAQ;AAEd,UAAM,cAAc,MAAM;AACzB,YAAM,aAAa;AACnBA,oBAAAA,wDAAY,mBAAmB;AAAA,IAC/B;;;;;;;;;;;;;;;ACtBF,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"DrawerHome.js","sources":["pages/drawer/DrawerHome.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvZHJhd2VyL0RyYXdlckhvbWUudnVl"],"sourcesContent":["\n\n\n\n","import Component from 'D:/YGChatCS/pages/drawer/DrawerHome.vue'\nwx.createComponent(Component)"],"names":["uni"],"mappings":";;;;;;AAkBC,UAAM,QAAQ;AAEd,UAAM,cAAc,MAAM;AACzB,YAAM,aAAa;AACnBA,oBAAAA,wDAAY,mBAAmB;AAAA,IAC/B;;;;;;;;;;;;;;;ACtBF,GAAG,gBAAgB,SAAS;"} \ 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 index 9755753..583ea49 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["pages/index/index.vue","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/www/YGChatCS/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref"],"mappings":";;;;;AAiBC,MAAM,WAAW,MAAW;AAC5B,MAAM,aAAa,MAAW;AAC9B,MAAM,eAAe,MAAW;;;;AAEhC,UAAM,SAASA,cAAAA,IAAK;AAEpB,UAAM,aAAa,MAAM;AACxB,aAAO,MAAM,KAAM;AAAA,IACnB;AAED,UAAM,cAAc,MAAM;AACzB,aAAO,MAAM,MAAO;AAAA,IACpB;;;;;;;;;;;;;;;;AC5BF,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["pages/index/index.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"],"sourcesContent":["\n\n\n\n","import MiniProgramPage from 'D:/YGChatCS/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref"],"mappings":";;;;;AAiBC,MAAM,WAAW,MAAW;AAC5B,MAAM,aAAa,MAAW;AAC9B,MAAM,eAAe,MAAW;;;;AAEhC,UAAM,SAASA,cAAAA,IAAK;AAEpB,UAAM,aAAa,MAAM;AACxB,aAAO,MAAM,KAAM;AAAA,IACnB;AAED,UAAM,cAAc,MAAM;AACzB,aAAO,MAAM,MAAO;AAAA,IACpB;;;;;;;;;;;;;;;;AC5BF,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/module/OneFeelMK001.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/module/OneFeelMK001.js.map index c67ed57..6d7d9c3 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/module/OneFeelMK001.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/module/OneFeelMK001.js.map @@ -1 +1 @@ -{"version":3,"file":"OneFeelMK001.js","sources":["C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL21vZHVsZS9PbmVGZWVsTUswMDEudnVl"],"sourcesContent":["import Component from 'D:/www/YGChatCS/pages/module/OneFeelMK001.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"OneFeelMK001.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvbW9kdWxlL09uZUZlZWxNSzAwMS52dWU"],"sourcesContent":["import Component from 'D:/YGChatCS/pages/module/OneFeelMK001.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/GoodsInfo/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/GoodsInfo/index.js.map index 7e19516..ca5ca93 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/GoodsInfo/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/GoodsInfo/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["pages/order/components/GoodsInfo/index.vue","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL29yZGVyL2NvbXBvbmVudHMvR29vZHNJbmZvL2luZGV4LnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n","import Component from 'D:/www/YGChatCS/pages/order/components/GoodsInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;AA4BA,MAAM,aAAa;;;;;;;;;;;;;AC3BnB,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["pages/order/components/GoodsInfo/index.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvb3JkZXIvY29tcG9uZW50cy9Hb29kc0luZm8vaW5kZXgudnVl"],"sourcesContent":["\n\n\n\n","import Component from 'D:/YGChatCS/pages/order/components/GoodsInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;AA4BA,MAAM,aAAa;;;;;;;;;;;;;AC3BnB,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/NoticeInfo/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/NoticeInfo/index.js.map index 56c64cb..cf16f16 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/NoticeInfo/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/NoticeInfo/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL29yZGVyL2NvbXBvbmVudHMvTm90aWNlSW5mby9pbmRleC52dWU"],"sourcesContent":["import Component from 'D:/www/YGChatCS/pages/order/components/NoticeInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvb3JkZXIvY29tcG9uZW50cy9Ob3RpY2VJbmZvL2luZGV4LnZ1ZQ"],"sourcesContent":["import Component from 'D:/YGChatCS/pages/order/components/NoticeInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/OrderInfo/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/OrderInfo/index.js.map index 7c0a9ea..e984746 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/OrderInfo/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/OrderInfo/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL29yZGVyL2NvbXBvbmVudHMvT3JkZXJJbmZvL2luZGV4LnZ1ZQ"],"sourcesContent":["import Component from 'D:/www/YGChatCS/pages/order/components/OrderInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvb3JkZXIvY29tcG9uZW50cy9PcmRlckluZm8vaW5kZXgudnVl"],"sourcesContent":["import Component from 'D:/YGChatCS/pages/order/components/OrderInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/OrderStatusInfo/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/OrderStatusInfo/index.js.map index 2fd7a6c..6ca10ab 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/OrderStatusInfo/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/OrderStatusInfo/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL29yZGVyL2NvbXBvbmVudHMvT3JkZXJTdGF0dXNJbmZvL2luZGV4LnZ1ZQ"],"sourcesContent":["import Component from 'D:/www/YGChatCS/pages/order/components/OrderStatusInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvb3JkZXIvY29tcG9uZW50cy9PcmRlclN0YXR1c0luZm8vaW5kZXgudnVl"],"sourcesContent":["import Component from 'D:/YGChatCS/pages/order/components/OrderStatusInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/UserInfo/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/UserInfo/index.js.map index 0aac128..0c73f62 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/UserInfo/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/components/UserInfo/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["pages/order/components/UserInfo/index.vue","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3BhZ2VzL29yZGVyL2NvbXBvbmVudHMvVXNlckluZm8vaW5kZXgudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n","import Component from 'D:/www/YGChatCS/pages/order/components/UserInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;AAeA,MAAM,cAAc;AACpB,MAAM,eAAe;;;;;;;;;;;;;ACfrB,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["pages/order/components/UserInfo/index.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvb3JkZXIvY29tcG9uZW50cy9Vc2VySW5mby9pbmRleC52dWU"],"sourcesContent":["\n\n\n\n","import Component from 'D:/YGChatCS/pages/order/components/UserInfo/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;AAeA,MAAM,cAAc;AACpB,MAAM,eAAe;;;;;;;;;;;;;ACfrB,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/detail.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/detail.js.map index 367127f..9ca9dbf 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/detail.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/detail.js.map @@ -1 +1 @@ -{"version":3,"file":"detail.js","sources":["pages/order/detail.vue","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvb3JkZXIvZGV0YWlsLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/www/YGChatCS/pages/order/detail.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;AAYA,MAAM,kBAAkB,MAAW;AACnC,MAAM,YAAY,MAAW;AAC7B,MAAM,WAAW,MAAW;AAC5B,MAAM,aAAa,MAAW;AAC9B,MAAM,YAAY,MAAW;;;;;;;;;;;;ACf7B,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"detail.js","sources":["pages/order/detail.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvb3JkZXIvZGV0YWlsLnZ1ZQ"],"sourcesContent":["\n\n\n\n","import MiniProgramPage from 'D:/YGChatCS/pages/order/detail.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;AAYA,MAAM,kBAAkB,MAAW;AACnC,MAAM,YAAY,MAAW;AAC7B,MAAM,WAAW,MAAW;AAC5B,MAAM,aAAa,MAAW;AAC9B,MAAM,YAAY,MAAW;;;;;;;;;;;;ACf7B,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/list.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/list.js.map index 4847e24..c952b74 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/list.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/list.js.map @@ -1 +1 @@ -{"version":3,"file":"list.js","sources":["C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvb3JkZXIvbGlzdC52dWU"],"sourcesContent":["import MiniProgramPage from 'D:/www/YGChatCS/pages/order/list.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;AACA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"list.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvb3JkZXIvbGlzdC52dWU"],"sourcesContent":["import MiniProgramPage from 'D:/YGChatCS/pages/order/list.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/third/ex-drawer/ex-drawer.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/third/ex-drawer/ex-drawer.js.map index 716f461..bf4988b 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/third/ex-drawer/ex-drawer.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/third/ex-drawer/ex-drawer.js.map @@ -1 +1 @@ -{"version":3,"file":"ex-drawer.js","sources":["third/ex-drawer/ex-drawer.vue","C:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovd3d3L1lHQ2hhdENTL3RoaXJkL2V4LWRyYXdlci9leC1kcmF3ZXIudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n\n","import Component from 'D:/www/YGChatCS/third/ex-drawer/ex-drawer.vue'\nwx.createComponent(Component)"],"names":["uni"],"mappings":";;AAoBA,MAAK,YAAU;AAAA,EACd,OAAO;AACN,WAAO;AAAA,MACN,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,SAAS;AAAA,MACT,MAAM;AAAA;EAEP;AAAA,EACD,OAAO;AAAA,IACN,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACA;AAAA,EACD,SAAS;AAAA,IACR,eAAe,GAAG;AACjB,WAAK,cAAc;AACnB,WAAK,OAAO;AACZ,WAAK,SAAS,EAAE,eAAe,CAAC,EAAE;AAClC,WAAK,SAAS,EAAE,eAAe,CAAC,EAAE;AAClC,WAAK,iBAAiB,KAAK;AAAA,IAC3B;AAAA,IACD,cAAc,GAAG;AAChB,WAAK,QAAQ,EAAE,eAAe,CAAC,EAAE;AACjC,WAAK,QAAQ,EAAE,eAAe,CAAC,EAAE;AACjC,UAAI,IAAI,KAAK,IAAI,KAAK,QAAQ,KAAK,MAAM;AACzC,UAAI,IAAI,KAAK,IAAI,KAAK,QAAQ,KAAK,MAAM;AACzC,UAAI,eAAe,KAAK,iBAAiB,KAAK,QAAQ,KAAK;AAC3D,qBAAe,KAAK,IAAIA,cAAG,MAAC,OAAO,KAAK,KAAK,GAAG,YAAY;AAC5D,qBAAe,KAAK,IAAI,GAAG,YAAY;AACvC,WAAK,eAAe,OAAQ,KAAK,cAAc,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,IAAK;AAC3E,UAAI,CAAC,KAAK,aAAa;AACtB,aAAK,eAAe;AACpB,YAAG,KAAK,gBAAgB,GAAG;AAC1B,eAAK,aAAa;AAAA,eACd;AACJ,eAAK,WAAW;AAAA,QACjB;AAAA,MACD;AAAA,IACA;AAAA,IACD,eAAe;AACd,UAAI,KAAK,eAAe,MAAM;AAC7B,YAAI,CAAC,KAAK,aAAa;AACtB,eAAK,UAAU,KAAK,eAAgBA,cAAAA,MAAI,OAAO,KAAK,KAAK,IAAI,IAAK;AAClE,eAAK,eAAe,KAAK,KAAK,eAAeA,cAAAA,MAAI,OAAO,KAAK,KAAK,IAAK,KAAK,OAAO,OAAQ;AAAA,QAC5F;AACA,aAAK,eAAe,KAAK,UAAUA,cAAAA,MAAI,OAAO,KAAK,KAAK,IAAI;AAC5D,aAAK,gBAAgB,IAAI,KAAK,WAAW,QAAQ;AAAA,MAClD;AAAA,IACA;AAAA,IACD,QAAO;AACN,UAAG,KAAK,UAAS;AAChB,aAAK,OAAO;AACZ,aAAK,eAAe;AACpB,YAAG,KAAK,gBAAgB,GAAG;AAC1B,eAAK,WAAW;AAChB,eAAK,UAAQ;AAAA,QACd;AAAA,MACD;AAAA,IACA;AAAA,IACD,OAAM;AACL,UAAG,CAAC,KAAK,UAAS;AACjB,aAAK,OAAO;AACZ,aAAK,eAAeA,cAAG,MAAC,OAAO,KAAK,KAAK;AACzC,YAAG,KAAK,gBAAgBA,cAAAA,MAAI,OAAO,KAAK,KAAK,GAAG;AAC/C,eAAK,WAAW;AAChB,eAAK,UAAQ;AAAA,QACd;AAAA,MAED;AAAA,IACD;AAAA,EACD;AACD;;;;;;;;;;;;;;AClGA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"ex-drawer.js","sources":["third/ex-drawer/ex-drawer.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvdGhpcmQvZXgtZHJhd2VyL2V4LWRyYXdlci52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n\n","import Component from 'D:/YGChatCS/third/ex-drawer/ex-drawer.vue'\nwx.createComponent(Component)"],"names":["uni"],"mappings":";;AAoBA,MAAK,YAAU;AAAA,EACd,OAAO;AACN,WAAO;AAAA,MACN,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,SAAS;AAAA,MACT,MAAM;AAAA;EAEP;AAAA,EACD,OAAO;AAAA,IACN,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACA;AAAA,EACD,SAAS;AAAA,IACR,eAAe,GAAG;AACjB,WAAK,cAAc;AACnB,WAAK,OAAO;AACZ,WAAK,SAAS,EAAE,eAAe,CAAC,EAAE;AAClC,WAAK,SAAS,EAAE,eAAe,CAAC,EAAE;AAClC,WAAK,iBAAiB,KAAK;AAAA,IAC3B;AAAA,IACD,cAAc,GAAG;AAChB,WAAK,QAAQ,EAAE,eAAe,CAAC,EAAE;AACjC,WAAK,QAAQ,EAAE,eAAe,CAAC,EAAE;AACjC,UAAI,IAAI,KAAK,IAAI,KAAK,QAAQ,KAAK,MAAM;AACzC,UAAI,IAAI,KAAK,IAAI,KAAK,QAAQ,KAAK,MAAM;AACzC,UAAI,eAAe,KAAK,iBAAiB,KAAK,QAAQ,KAAK;AAC3D,qBAAe,KAAK,IAAIA,cAAG,MAAC,OAAO,KAAK,KAAK,GAAG,YAAY;AAC5D,qBAAe,KAAK,IAAI,GAAG,YAAY;AACvC,WAAK,eAAe,OAAQ,KAAK,cAAc,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,IAAK;AAC3E,UAAI,CAAC,KAAK,aAAa;AACtB,aAAK,eAAe;AACpB,YAAG,KAAK,gBAAgB,GAAG;AAC1B,eAAK,aAAa;AAAA,eACd;AACJ,eAAK,WAAW;AAAA,QACjB;AAAA,MACD;AAAA,IACA;AAAA,IACD,eAAe;AACd,UAAI,KAAK,eAAe,MAAM;AAC7B,YAAI,CAAC,KAAK,aAAa;AACtB,eAAK,UAAU,KAAK,eAAgBA,cAAAA,MAAI,OAAO,KAAK,KAAK,IAAI,IAAK;AAClE,eAAK,eAAe,KAAK,KAAK,eAAeA,cAAAA,MAAI,OAAO,KAAK,KAAK,IAAK,KAAK,OAAO,OAAQ;AAAA,QAC5F;AACA,aAAK,eAAe,KAAK,UAAUA,cAAAA,MAAI,OAAO,KAAK,KAAK,IAAI;AAC5D,aAAK,gBAAgB,IAAI,KAAK,WAAW,QAAQ;AAAA,MAClD;AAAA,IACA;AAAA,IACD,QAAO;AACN,UAAG,KAAK,UAAS;AAChB,aAAK,OAAO;AACZ,aAAK,eAAe;AACpB,YAAG,KAAK,gBAAgB,GAAG;AAC1B,eAAK,WAAW;AAChB,eAAK,UAAQ;AAAA,QACd;AAAA,MACD;AAAA,IACA;AAAA,IACD,OAAM;AACL,UAAG,CAAC,KAAK,UAAS;AACjB,aAAK,OAAO;AACZ,aAAK,eAAeA,cAAG,MAAC,OAAO,KAAK,KAAK;AACzC,YAAG,KAAK,gBAAgBA,cAAAA,MAAI,OAAO,KAAK,KAAK,GAAG;AAC/C,eAAK,WAAW;AAChB,eAAK,UAAQ;AAAA,QACd;AAAA,MAED;AAAA,IACD;AAAA,EACD;AACD;;;;;;;;;;;;;;AClGA,GAAG,gBAAgB,SAAS;"} \ 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 index 3053ec1..955322a 100644 --- a/unpackage/dist/dev/mp-weixin/common/vendor.js +++ b/unpackage/dist/dev/mp-weixin/common/vendor.js @@ -2582,21 +2582,21 @@ function injectHook(type, hook, target = currentInstance, prepend = false) { ); } } -const createHook = (lifecycle) => (hook, target = currentInstance) => ( +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("bm"); -const onMounted = createHook("m"); -const onBeforeUpdate = createHook("bu"); -const onUpdated = createHook("u"); -const onBeforeUnmount = createHook("bum"); -const onUnmounted = createHook("um"); -const onServerPrefetch = createHook("sp"); -const onRenderTriggered = createHook( +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( +const onRenderTracked = createHook$1( "rtc" ); function onErrorCaptured(hook, target = currentInstance) { @@ -2609,15 +2609,11 @@ const getPublicInstance = (i) => { return getExposeProxy(i) || i.proxy; return getPublicInstance(i.parent); }; -function getComponentInternalInstance(i) { - return i; -} const publicPropertiesMap = ( // Move PURE marker to new line to workaround compiler discarding it // due to type annotation /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { - // fixed by xxxxxx - $: getComponentInternalInstance, + $: (i) => i, // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的 // $el: i => i.vnode.el, $el: (i) => i.__$el || (i.__$el = {}), @@ -4488,7 +4484,6 @@ function warnRef(ref2) { const queuePostRenderEffect = queuePostFlushCb; function mountComponent(initialVNode, options) { const instance = initialVNode.component = createComponentInstance(initialVNode, options.parentComponent, null); - instance.renderer = options.mpType ? options.mpType : "component"; { instance.ctx.$onApplyOptions = onApplyOptions; instance.ctx.$children = []; @@ -4827,8 +4822,7 @@ function injectLifecycleHook(name, hook, publicThis, instance) { } function initHooks$1(options, instance, publicThis) { const mpType = options.mpType || publicThis.$mpType; - if (!mpType || mpType === "component" || // instance.renderer 标识页面是否作为组件渲染 - mpType === "page" && instance.renderer === "component") { + if (!mpType || mpType === "component") { return; } Object.keys(options).forEach((name) => { @@ -5467,10 +5461,10 @@ function handlePromise(promise) { function promisify$1(name, fn) { return (args = {}, ...rest) => { if (hasCallback(args)) { - return wrapperReturnValue(name, invokeApi(name, fn, extend({}, args), rest)); + 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); + invokeApi(name, fn, extend(args, { success: resolve, fail: reject }), rest); }))); }; } @@ -5867,7 +5861,7 @@ function promisify(name, api) { } return function promiseApi(options = {}, ...rest) { if (isFunction(options.success) || isFunction(options.fail) || isFunction(options.complete)) { - return wrapperReturnValue(name, invokeApi(name, api, extend({}, options), rest)); + return wrapperReturnValue(name, invokeApi(name, api, options, rest)); } return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => { invokeApi(name, api, extend({}, options, { @@ -6034,7 +6028,7 @@ function getOSInfo(system, platform) { osName = system.split(" ")[0] || platform; osVersion = system.split(" ")[1] || ""; } - osName = osName.toLowerCase(); + osName = osName.toLocaleLowerCase(); switch (osName) { case "harmony": case "ohos": @@ -6074,9 +6068,9 @@ function populateParameters(fromRes, toRes) { appVersion: "1.0.0", appVersionCode: "100", appLanguage: getAppLanguage(hostLanguage), - uniCompileVersion: "4.75", - uniCompilerVersion: "4.75", - uniRuntimeVersion: "4.75", + uniCompileVersion: "4.66", + uniCompilerVersion: "4.66", + uniRuntimeVersion: "4.66", uniPlatform: "mp-weixin", deviceBrand, deviceModel: model, @@ -6113,7 +6107,7 @@ function getGetDeviceType(fromRes, model) { mac: "pc" }; const deviceTypeMapsKeys = Object.keys(deviceTypeMaps); - const _model = model.toLowerCase(); + const _model = model.toLocaleLowerCase(); for (let index2 = 0; index2 < deviceTypeMapsKeys.length; index2++) { const _m = deviceTypeMapsKeys[index2]; if (_model.indexOf(_m) !== -1) { @@ -6127,7 +6121,7 @@ function getGetDeviceType(fromRes, model) { function getDeviceBrand(brand) { let deviceBrand = brand; if (deviceBrand) { - deviceBrand = deviceBrand.toLowerCase(); + deviceBrand = deviceBrand.toLocaleLowerCase(); } return deviceBrand; } @@ -6225,9 +6219,9 @@ const getAppBaseInfo = { appLanguage: getAppLanguage(hostLanguage), isUniAppX: false, uniPlatform: "mp-weixin", - uniCompileVersion: "4.75", - uniCompilerVersion: "4.75", - uniRuntimeVersion: "4.75" + uniCompileVersion: "4.66", + uniCompilerVersion: "4.66", + uniRuntimeVersion: "4.66" }; extend(toRes, parameters); } @@ -6900,14 +6894,14 @@ 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(); - } + const originalArgs = [...args]; + if (originalArgs.length) { + const maybeAtFile = originalArgs[originalArgs.length - 1]; + if (typeof maybeAtFile === "string" && atFileRegex.test(maybeAtFile)) { + originalArgs.pop(); } + } + { originalConsole[type](...originalArgs); } if (type === "error" && args.length === 1) { @@ -6967,9 +6961,9 @@ function isConsoleWritable() { return isWritable; } function initRuntimeSocketService() { - const hosts = "192.168.1.23,127.0.0.1"; + const hosts = "10.10.3.1,192.168.56.1,127.0.0.1"; const port = "8090"; - const id = "mp-weixin_6ijytV"; + const id = "mp-weixin_BW9LnK"; const lazy = typeof swan !== "undefined"; let restoreError = lazy ? () => { } : initOnError(); @@ -7915,29 +7909,13 @@ const createSubpackageApp = initCreateSubpackageApp(); wx.createPluginApp = global.createPluginApp = createPluginApp; wx.createSubpackageApp = global.createSubpackageApp = createSubpackageApp; } -const createLifeCycleHook = (lifecycle, flag = 0) => (hook, target = getCurrentInstance()) => { +const createHook = (lifecycle) => (hook, target = getCurrentInstance()) => { !isInSSRComponentSetup && injectHook(lifecycle, hook, target); }; -const onShow = /* @__PURE__ */ createLifeCycleHook( - ON_SHOW, - 1 | 2 - /* HookFlags.PAGE */ -); -const onHide = /* @__PURE__ */ createLifeCycleHook( - ON_HIDE, - 1 | 2 - /* HookFlags.PAGE */ -); -const onLaunch = /* @__PURE__ */ createLifeCycleHook( - ON_LAUNCH, - 1 - /* HookFlags.APP */ -); -const onLoad = /* @__PURE__ */ createLifeCycleHook( - ON_LOAD, - 2 - /* HookFlags.PAGE */ -); +const onShow = /* @__PURE__ */ createHook(ON_SHOW); +const onHide = /* @__PURE__ */ createHook(ON_HIDE); +const onLaunch = /* @__PURE__ */ createHook(ON_LAUNCH); +const onLoad = /* @__PURE__ */ createHook(ON_LOAD); exports._export_sfc = _export_sfc; exports.createSSRApp = createSSRApp; exports.defineComponent = defineComponent; diff --git a/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.js b/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.js new file mode 100644 index 0000000..01741af --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.js @@ -0,0 +1,21 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const _sfc_main = { + __name: "index", + props: { + introText: { + type: String, + default: "酒店介绍酒店介绍酒店介绍酒店介绍酒店介绍酒店介绍酒店介绍酒店介绍酒店介绍酒店介绍酒店介绍" + } + }, + setup(__props) { + return (_ctx, _cache) => { + return { + a: common_vendor.t(__props.introText) + }; + }; + } +}; +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-0b1b7870"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/ResponseIntro/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.json b/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.json similarity index 100% rename from unpackage/dist/dev/mp-weixin/components/TagsGroup/index.json rename to unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.json diff --git a/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.wxml b/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.wxml new file mode 100644 index 0000000..0c3a01c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.wxml @@ -0,0 +1 @@ +{{a}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.wxss b/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.wxss new file mode 100644 index 0000000..2d694b5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/ResponseIntro/index.wxss @@ -0,0 +1,35 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.response-intro-wrapper.data-v-0b1b7870 { + padding: 4px 8px 12px 12px; +} +.response-intro-text.data-v-0b1b7870 { + font-weight: 500; + font-size: 14px; + color: #333333; + line-height: 20px; + text-align: justify; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.js b/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.js new file mode 100644 index 0000000..a709303 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.js @@ -0,0 +1,9 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const _sfc_main = {}; +function _sfc_render(_ctx, _cache) { + return {}; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-3a886041"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/ResponseWrapper/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.json b/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.wxml b/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.wxml new file mode 100644 index 0000000..d835d58 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.wxss b/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.wxss new file mode 100644 index 0000000..5b7db52 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/ResponseWrapper/index.wxss @@ -0,0 +1,32 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.response-wrapper.data-v-3a886041 { + background: rgba(255, 255, 255, 0.4); + box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.1); + border-radius: 4px 20px 20px 20px; + border: 1px solid #fff; + padding: 12px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.js b/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.js deleted file mode 100644 index c5c5f65..0000000 --- a/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -const common_vendor = require("../../common/vendor.js"); -const _sfc_main = { - __name: "index", - setup(__props) { - const tags = [ - "门票套餐", - "民俗活动", - "车程路况" - ]; - return (_ctx, _cache) => { - return { - a: common_vendor.f(tags, (tag, index, i0) => { - return { - a: common_vendor.t(tag), - b: index - }; - }) - }; - }; - } -}; -const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-716130f6"]]); -wx.createComponent(Component); -//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/TagsGroup/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.wxml b/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.wxml deleted file mode 100644 index a3558bb..0000000 --- a/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.wxml +++ /dev/null @@ -1 +0,0 @@ -{{tag.a}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.wxss b/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.wxss deleted file mode 100644 index 7183db8..0000000 --- a/unpackage/dist/dev/mp-weixin/components/TagsGroup/index.wxss +++ /dev/null @@ -1,12 +0,0 @@ -.tags-group.data-v-716130f6 { - display: flex; - gap: 8px; -} -.tag-item.data-v-716130f6 { - background-color: #fff; - border-radius: 10px; - padding: 8px 16px; - font-size: 12px; - color: #00A6FF; - white-space: nowrap; -} diff --git a/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.js b/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.js index 8cca4e9..f7af0a6 100644 --- a/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.js +++ b/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.js @@ -3,7 +3,7 @@ const common_vendor = require("../../common/vendor.js"); const common_assets = require("../../common/assets.js"); const model_ChatModel = require("../../model/ChatModel.js"); if (!Math) { - (ChatTopBgImg + ChatTopNavBar + ChatTopBanner + OneFeelMK001 + ChatCardAI + ChatCardMine + ChatMoreTips + ChatQuickAccess)(); + (ChatTopBgImg + ChatTopNavBar + ChatTopBanner + OneFeelMK001 + ResponseIntro + ResponseWrapper + ChatCardAI + ChatCardMine + ChatMoreTips + ChatQuickAccess)(); } const ChatTopBanner = () => "./ChatTopBanner.js"; const ChatTopBgImg = () => "./ChatTopBgImg.js"; @@ -13,6 +13,8 @@ const ChatCardMine = () => "./ChatCardMine.js"; const ChatQuickAccess = () => "./ChatQuickAccess2.js"; const ChatMoreTips = () => "./ChatMoreTips.js"; const OneFeelMK001 = () => "../module/OneFeelMK001.js"; +const ResponseIntro = () => "../../components/ResponseIntro/index.js"; +const ResponseWrapper = () => "../../components/ResponseWrapper/index.js"; const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ __name: "ChatMainList", emits: ["openDrawer"], @@ -30,7 +32,7 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ const emits = __emit; const openDrawer = () => { emits("openDrawer"); - common_vendor.index.__f__("log", "at pages/chat/ChatMainList.vue:152", "=============打开抽屉"); + common_vendor.index.__f__("log", "at pages/chat/ChatMainList.vue:170", "=============打开抽屉"); }; const handleReply = (text) => { loadMessage(text); @@ -96,7 +98,7 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ } }; chatMsgList.value.push(newMsgAI); - common_vendor.index.__f__("log", "at pages/chat/ChatMainList.vue:239", "发送的新消息:", JSON.stringify(newMsg)); + common_vendor.index.__f__("log", "at pages/chat/ChatMainList.vue:254", "发送的新消息:", JSON.stringify(newMsg)); }; const scrollToBottom = () => { lastMsgId.value = `${chatMsgList.value[chatMsgList.value.length - 1].msgId}`; @@ -117,13 +119,13 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ }, item.msgContent && item.msgContent.type === common_vendor.unref(model_ChatModel.MessageType).IMAGE ? { c: common_assets._imports_0$1 } : {}, { - d: "d7316ec5-7-" + i0 + "," + ("d7316ec5-6-" + i0), - e: "d7316ec5-6-" + i0, + d: "d7316ec5-9-" + i0 + "," + ("d7316ec5-8-" + i0), + e: "d7316ec5-8-" + i0, f: common_vendor.p({ text: item.msg }) }) : item.msgType === common_vendor.unref(model_ChatModel.MessageRole).ME ? { - h: "d7316ec5-8-" + i0, + h: "d7316ec5-10-" + i0, i: common_vendor.p({ text: item.msg }) diff --git a/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.json b/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.json index d795cf7..c142c69 100644 --- a/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.json +++ b/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.json @@ -8,6 +8,8 @@ "chat-card-mine": "./ChatCardMine", "chat-quick-access": "./ChatQuickAccess", "chat-more-tips": "./ChatMoreTips", - "one-feel-m-k001": "../module/OneFeelMK001" + "one-feel-m-k001": "../module/OneFeelMK001", + "response-intro": "../../components/ResponseIntro/index", + "response-wrapper": "../../components/ResponseWrapper/index" } } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.wxml b/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.wxml index a0e2bc0..76e7de4 100644 --- a/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/chat/ChatMainList.wxml @@ -1 +1 @@ -{{item.j}}