From fb6c2588935c8422134b4681377a7c7a04ab9ebd Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Fri, 11 Jul 2025 14:01:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8F=90=E4=BA=A4=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=B7=A5=E5=8D=95=E7=BB=84=E4=BB=B6=E5=B0=81?= =?UTF-8?q?=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 40 ++--- .../images/2025-07-11_104138.png | Bin 0 -> 124904 bytes .../images/icon_service.png | Bin 0 -> 1260 bytes .../images/icon_volume.png | Bin 0 -> 844 bytes components/create-service-order/index.vue | 72 ++++++++ components/create-service-order/prompt.md | 21 +++ .../create-service-order/styles/index.scss | 144 ++++++++++++++++ project.config.json | 29 ++++ project.private.config.json | 7 + .../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 +- .../create-service-order/index.js.map | 1 + .../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 +- .../third/ex-drawer/ex-drawer.js.map | 2 +- unpackage/dist/dev/mp-weixin/app.js | 6 +- unpackage/dist/dev/mp-weixin/app.wxss | 7 +- .../assets/icon_service.86f6117d.png | Bin 0 -> 1260 bytes .../mp-weixin/assets/icon_volume.0bc37c9e.png | Bin 0 -> 844 bytes unpackage/dist/dev/mp-weixin/common/assets.js | 40 +++-- unpackage/dist/dev/mp-weixin/common/vendor.js | 4 +- .../components/create-service-order/index.js | 33 ++++ .../create-service-order/index.json | 4 + .../create-service-order/index.wxml | 1 + .../create-service-order/index.wxss | 148 +++++++++++++++++ .../dist/dev/mp-weixin/pages/chat/ChatList.js | 133 --------------- .../dev/mp-weixin/pages/chat/ChatList.json | 12 -- .../dev/mp-weixin/pages/chat/ChatList.wxml | 1 - .../dev/mp-weixin/pages/chat/ChatList.wxss | 156 ------------------ .../dev/mp-weixin/pages/chat/ChatMainList.js | 7 +- .../mp-weixin/pages/chat/ChatMainList.json | 3 +- .../mp-weixin/pages/chat/ChatMainList.wxml | 2 +- .../mp-weixin/pages/chat/ChatMainList.wxss | 8 +- .../dist/dev/mp-weixin/project.config.json | 63 ++++--- .../dev/mp-weixin/project.private.config.json | 10 +- 46 files changed, 573 insertions(+), 411 deletions(-) create mode 100644 components/create-service-order/images/2025-07-11_104138.png create mode 100644 components/create-service-order/images/icon_service.png create mode 100644 components/create-service-order/images/icon_volume.png create mode 100644 components/create-service-order/index.vue create mode 100644 components/create-service-order/prompt.md create mode 100644 components/create-service-order/styles/index.scss create mode 100644 project.config.json create mode 100644 project.private.config.json create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/components/create-service-order/index.js.map create mode 100644 unpackage/dist/dev/mp-weixin/assets/icon_service.86f6117d.png create mode 100644 unpackage/dist/dev/mp-weixin/assets/icon_volume.0bc37c9e.png create mode 100644 unpackage/dist/dev/mp-weixin/components/create-service-order/index.js create mode 100644 unpackage/dist/dev/mp-weixin/components/create-service-order/index.json create mode 100644 unpackage/dist/dev/mp-weixin/components/create-service-order/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/create-service-order/index.wxss delete mode 100644 unpackage/dist/dev/mp-weixin/pages/chat/ChatList.js delete mode 100644 unpackage/dist/dev/mp-weixin/pages/chat/ChatList.json delete mode 100644 unpackage/dist/dev/mp-weixin/pages/chat/ChatList.wxml delete mode 100644 unpackage/dist/dev/mp-weixin/pages/chat/ChatList.wxss diff --git a/App.vue b/App.vue index aeaa680..bb11142 100644 --- a/App.vue +++ b/App.vue @@ -1,26 +1,26 @@ - - diff --git a/components/create-service-order/images/2025-07-11_104138.png b/components/create-service-order/images/2025-07-11_104138.png new file mode 100644 index 0000000000000000000000000000000000000000..f71278c0ac19c1aabf2715ccaa5a043fec7dfa58 GIT binary patch literal 124904 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

ld@(a{J(2YHlQU-f<4TPzuGH=1M+@ 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 WaT6UV9i~_S0000 + + + + 创建服务工单 + + + + + 加一台麻将机 + + + + + 房间号: + 302 + + + 服务时间: + 2025-09-12 12:00 + + + 联系房客: + + + + 联系电话: + + + + + + + + + + 没解决问题?给我打电话吧! + 15185111210 + + + + + + + diff --git a/components/create-service-order/prompt.md b/components/create-service-order/prompt.md new file mode 100644 index 0000000..311ea38 --- /dev/null +++ b/components/create-service-order/prompt.md @@ -0,0 +1,21 @@ +## 消息体组件信息 + +组件名称:消息体创建服务工单 +服务名称:加一台麻将机 +房间号:302 +服务时间:2025-09-12 12:00 +联系房客: +联系电话: +立即呼叫按钮 + +## 提示词: + +使用 uniapp + vue3 组合式 api 开发微信小程序,要求如下: +1、按照提供的图片高度还原交互设计 +2、要求布局样式结构简洁明了,class 命名请按照模块名称来命名,例如:.create-service-order +3、可以使用 uniapp 内置的组件 +4、联系房客/联系电话,需要用户自己填写 + +## 备注 + +仅供学习、交流使用,请勿用于商业用途。 diff --git a/components/create-service-order/styles/index.scss b/components/create-service-order/styles/index.scss new file mode 100644 index 0000000..cf797e7 --- /dev/null +++ b/components/create-service-order/styles/index.scss @@ -0,0 +1,144 @@ +.create-service-order { + margin-left: 12px; + margin-right: 12px; +} + +.create-service-wrapper { + box-sizing: border-box; + padding: 12px 12px 16px; + background-color: #eff6fa; + box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.1); + border-radius: 4px 20px 20px 20px; + border: 1px solid #fff; +} + +.order-header { + font-size: 14px; + font-weight: 500; + margin-bottom: 10px; + color: #333; +} + +.order-content { + width: 100%; + box-sizing: border-box; + background-color: #fff; + padding: 12px; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); +} + +.order-item { + display: flex; + align-items: center; + margin-bottom: 12px; +} + +.order-icon { + width: 24px; + height: 24px; + margin-right: 8px; + border-radius: 50%; + background-color: #ffa500; + display: flex; + align-items: center; + justify-content: center; +} + +.order-description { + font-size: 14px; + font-weight: 500; + color: #333; +} + +.order-line { + position: relative; + border: 1px dashed #eeeeee; + margin-left: -12px; + margin-right: -12px; + + &::before, + &::after { + content: ""; + position: absolute; + top: -8px; + width: 16px; + height: 16px; + border-radius: 50px; + background-color: #eff6fa; + } + + &::before { + left: -8px; + } + + &::after { + right: -8px; + } +} + +.order-details { + margin-top: 12px; +} + +.detail-item { + display: flex; + align-items: center; + margin-bottom: 10px; + font-size: 14px; + color: #666; +} + +.detail-label { + width: 70px; + margin-right: 10px; +} + +.detail-value { + color: #333; +} + +.detail-input { + border: none; + outline: none; + width: calc(100% - 80px); + font-size: 14px; + color: #999; + border-bottom: 1px solid #ddd; +} + +.order-button { + width: 280px; + height: 42px; + background: linear-gradient(90deg, #ff7e00, #ffba00); + color: #fff; + font-size: 14px; + font-weight: 600; + border-radius: 20px; + margin-top: 20px; + display: flex; + align-items: center; + justify-content: center; +} + +.footer-help { + margin-top: 8px; + display: flex; + align-items: center; + font-size: 14px; + color: #ed6a0c; +} + +.help-icon { + width: 16px; + height: 14px; + margin-right: 5px; +} + +.help-text { + margin-right: 5px; +} + +.help-phone { + cursor: pointer; +} diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..5ced6dc --- /dev/null +++ b/project.config.json @@ -0,0 +1,29 @@ +{ + "appid": "wxb71a18420dee6fdc", + "compileType": "miniprogram", + "libVersion": "3.8.10", + "packOptions": { + "ignore": [], + "include": [] + }, + "setting": { + "coverView": true, + "es6": true, + "postcss": true, + "minified": true, + "enhance": true, + "showShadowRootInWxmlPanel": true, + "packNpmRelationList": [], + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + } + }, + "condition": {}, + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 2 + }, + "projectArchitecture": "miniProgram" +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..e0a362b --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,7 @@ +{ + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "projectname": "YGChatCS", + "setting": { + "compileHotReLoad": true + } +} \ 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 20abb5e..b62062f 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":["\n\n\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":";;;;;;;;;;AAKCA,kBAAAA,SAAS,MAAM;AACdC,oBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,IAC1B,CAAE;AAEDC,kBAAAA,OAAO,MAAM;AACZD,oBAAAA,MAAA,MAAA,OAAA,iBAAY,UAAU;AAAA,IACxB,CAAE;AAEDE,kBAAAA,OAAO,MAAM;AACZF,oBAAAA,MAAA,MAAA,OAAA,iBAAY,UAAU;AAAA,IACxB,CAAE;;;;;ACAK,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 8ef1b69..de7915f 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","static/logo.png","static/input_voice_icon.png","static/input_send_icon.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__46719607__\"","export default \"__VITE_ASSET__76f969d6__\"","export default \"__VITE_ASSET__e6bd7a29__\"","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,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","static/logo.png","static/input_voice_icon.png","static/input_send_icon.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","components/create-service-order/images/icon_service.png","components/create-service-order/images/icon_volume.png"],"sourcesContent":["export default \"__VITE_ASSET__ff753b35__\"","export default \"__VITE_ASSET__46719607__\"","export default \"__VITE_ASSET__76f969d6__\"","export default \"__VITE_ASSET__e6bd7a29__\"","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__\"","export default \"__VITE_ASSET__86f6117d__\"","export default \"__VITE_ASSET__0bc37c9e__\""],"names":[],"mappings":";AAAA,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,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 7b3db5d..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":["node_modules/@vue/shared/dist/shared.esm-bundler.js","node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","node_modules/@dcloudio/uni-console/dist/mp.esm.js","node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js","node_modules/@dcloudio/uni-app/dist/uni-app.es.js"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\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 } from '@vue/shared';\n\nconst BUILT_IN_TAG_NAMES = [\n 'ad',\n 'ad-content-page',\n 'ad-draw',\n 'audio',\n 'button',\n 'camera',\n 'canvas',\n 'checkbox',\n 'checkbox-group',\n 'cover-image',\n 'cover-view',\n 'editor',\n 'form',\n 'functional-page-navigator',\n 'icon',\n 'image',\n 'input',\n 'label',\n 'live-player',\n 'live-pusher',\n 'map',\n 'movable-area',\n 'movable-view',\n 'navigator',\n 'official-account',\n 'open-data',\n 'picker',\n 'picker-view',\n 'picker-view-column',\n 'progress',\n 'radio',\n 'radio-group',\n 'rich-text',\n 'scroll-view',\n 'slider',\n 'swiper',\n 'swiper-item',\n 'switch',\n 'text',\n 'textarea',\n 'video',\n 'view',\n 'web-view',\n 'location-picker',\n 'location-view',\n];\nconst BUILT_IN_TAGS = BUILT_IN_TAG_NAMES.map((tag) => 'uni-' + tag);\nconst TAGS = [\n 'app',\n 'layout',\n 'content',\n 'main',\n 'top-window',\n 'left-window',\n 'right-window',\n 'tabbar',\n 'page',\n 'page-head',\n 'page-wrapper',\n 'page-body',\n 'page-refresh',\n 'actionsheet',\n 'modal',\n 'toast',\n 'resize-sensor',\n 'shadow-root',\n].map((tag) => 'uni-' + tag);\nconst NVUE_BUILT_IN_TAGS = [\n 'svg',\n 'view',\n 'a',\n 'div',\n 'img',\n 'image',\n 'text',\n 'span',\n 'input',\n 'textarea',\n 'spinner',\n 'select',\n // slider 被自定义 u-slider 替代\n // 'slider',\n 'slider-neighbor',\n 'indicator',\n 'canvas',\n 'list',\n 'cell',\n 'header',\n 'loading',\n 'loading-indicator',\n 'refresh',\n 'scrollable',\n 'scroller',\n 'video',\n 'web',\n 'embed',\n 'tabbar',\n 'tabheader',\n 'datepicker',\n 'timepicker',\n 'marquee',\n 'countdown',\n 'dc-switch',\n 'waterfall',\n 'richtext',\n 'recycle-list',\n 'u-scalable',\n 'barcode',\n 'gcanvas',\n];\nconst UVUE_BUILT_IN_TAGS = [\n 'ad',\n 'ad-content-page',\n 'ad-draw',\n 'native-view',\n 'loading-indicator',\n 'list-view',\n 'list-item',\n 'swiper',\n 'swiper-item',\n 'rich-text',\n 'sticky-view',\n 'sticky-header',\n 'sticky-section',\n // 自定义\n 'uni-slider',\n // 原生实现\n 'button',\n 'nested-scroll-header',\n 'nested-scroll-body',\n 'waterflow',\n 'flow-item',\n 'share-element',\n 'cover-view',\n 'cover-image',\n];\nconst UVUE_WEB_BUILT_IN_TAGS = [\n 'list-view',\n 'list-item',\n 'sticky-section',\n 'sticky-header',\n 'cloud-db-element',\n].map((tag) => 'uni-' + tag);\nconst UVUE_IOS_BUILT_IN_TAGS = [\n 'scroll-view',\n 'web-view',\n 'slider',\n 'form',\n 'switch',\n];\nconst UVUE_HARMONY_BUILT_IN_TAGS = [\n // TODO 列出完整列表\n ...BUILT_IN_TAG_NAMES,\n '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 UNI_UI_CONFLICT_TAGS = ['list-item'].map((tag) => 'uni-' + tag);\nfunction isBuiltInComponent(tag) {\n if (UNI_UI_CONFLICT_TAGS.indexOf(tag) !== -1) {\n return false;\n }\n // h5 平台会被转换为 v-uni-\n const realTag = 'uni-' + tag.replace('v-uni-', '');\n // TODO 区分x和非x\n return (BUILT_IN_TAGS.indexOf(realTag) !== -1 ||\n UVUE_WEB_BUILT_IN_TAGS.indexOf(realTag) !== -1);\n}\nfunction isH5CustomElement(tag, isX = false) {\n if (isX && UVUE_WEB_BUILT_IN_TAGS.indexOf(tag) !== -1) {\n return true;\n }\n return TAGS.indexOf(tag) !== -1 || BUILT_IN_TAGS.indexOf(tag) !== -1;\n}\nfunction isUniXElement(name) {\n return /^I?Uni.*Element(?:Impl)?$/.test(name);\n}\nfunction isH5NativeTag(tag) {\n return (tag !== 'head' &&\n (isHTMLTag(tag) || isSVGTag(tag)) &&\n !isBuiltInComponent(tag));\n}\nfunction isAppNativeTag(tag) {\n return isHTMLTag(tag) || isSVGTag(tag) || isBuiltInComponent(tag);\n}\nconst NVUE_CUSTOM_COMPONENTS = [\n 'ad',\n 'ad-draw',\n 'button',\n 'checkbox-group',\n 'checkbox',\n 'form',\n 'icon',\n 'label',\n 'movable-area',\n 'movable-view',\n 'navigator',\n 'picker',\n 'progress',\n 'radio-group',\n 'radio',\n 'rich-text',\n 'swiper-item',\n 'swiper',\n 'switch',\n 'slider',\n 'picker-view',\n 'picker-view-column',\n];\n// 内置的easycom组件\nconst UVUE_BUILT_IN_EASY_COMPONENTS = ['map', 'camera'];\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_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\nexport { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_ADD_WXS_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_PAGE_SCROLL, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CHANGE_PREFIX, ATTR_CLASS, ATTR_INNER_HTML, ATTR_STYLE, ATTR_TEXT_CONTENT, ATTR_V_OWNER_ID, ATTR_V_RENDERJS, ATTR_V_SHOW, BACKGROUND_COLOR, BUILT_IN_TAGS, BUILT_IN_TAG_NAMES, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, E$1 as Emitter, EventChannel, EventModifierFlags, I18N_JSON_DELIMITERS, JSON_PROTOCOL, LINEFEED, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, NVUE_BUILT_IN_TAGS, NVUE_U_BUILT_IN_TAGS, OFF_HOST_THEME_CHANGE, OFF_THEME_CHANGE, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_EXIT, ON_HIDE, ON_HOST_THEME_CHANGE, ON_INIT, ON_KEYBOARD_HEIGHT_CHANGE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_CHANGE, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SAVE_EXIT_STATE, ON_SHARE_APP_MESSAGE, ON_SHARE_CHAT, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, ON_WXS_INVOKE_CALL_METHOD, PLUS_RE, PRIMARY_COLOR, RENDERJS_MODULES, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, SLOT_DEFAULT_NAME, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UNI_STORAGE_LOCALE, UNI_UI_CONFLICT_TAGS, UVUE_BUILT_IN_TAGS, UVUE_HARMONY_BUILT_IN_TAGS, UVUE_IOS_BUILT_IN_TAGS, UVUE_WEB_BUILT_IN_TAGS, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniLifecycleHooks, UniNode, UniTextAreaElement, UniTextNode, VIRTUAL_HOST_CLASS, VIRTUAL_HOST_HIDDEN, VIRTUAL_HOST_ID, VIRTUAL_HOST_STYLE, WEB_INVOKE_APPSERVICE, WXS_MODULES, WXS_PROTOCOL, addFont, addLeadingSlash, borderStyles, cache, cacheStringFunction, callOptions, createIsCustomElement, createRpx2Unit, createUniEvent, customizeEvent, debounce, decode, decodedQuery, defaultMiniProgramRpx2Unit, defaultNVueRpx2Unit, defaultRpx2Unit, dynamicSlotName, forcePatchProp, formatDateTime, formatLog, getCustomDataset, getEnvLocale, getGlobal, getLen, getValueByDataPath, initCustomDatasetOnce, invokeArrayFns, invokeCreateErrorHandler, invokeCreateVueAppHook, isAppHarmonyUVueNativeTag, isAppIOSUVueNativeTag, isAppNVueNativeTag, isAppNativeTag, isAppUVueBuiltInEasyComponent, isAppUVueNativeTag, isAppVoidTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isH5CustomElement, isH5NativeTag, isIntegerKey, isMiniProgramNativeTag, isMiniProgramUVueNativeTag, isRootHook, isRootImmediateHook, isUniLifecycleHook, isUniXElement, normalizeClass, normalizeDataset, normalizeEventType, normalizeProps, normalizeStyle, normalizeStyles, normalizeTabBarStyles, normalizeTarget, normalizeTitleColor, onCreateVueApp, once, parseEventName, parseNVueDataset, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, resolveComponentInstance, resolveOwnerEl, resolveOwnerVm, sanitise, scrollTo, sortObject, stringifyQuery, updateElementStyle };\n","import { isRootHook, getValueByDataPath, isUniLifecycleHook, ON_ERROR, UniLifecycleHooks, invokeCreateErrorHandler, dynamicSlotName } from '@dcloudio/uni-shared';\nimport { NOOP, extend, isSymbol, isObject, def, hasChanged, isFunction, isArray, isPromise, camelize, capitalize, EMPTY_OBJ, remove, toHandlerKey, hasOwn, hyphenate, isReservedProp, toRawType, isString, normalizeClass, normalizeStyle, isOn, toTypeString, isMap, isIntegerKey, isSet, isPlainObject, makeMap, invokeArrayFns, isBuiltInDirective, looseToNumber, NO, EMPTY_ARR, isModelListener, toNumber, toDisplayString } from '@vue/shared';\nexport { EMPTY_OBJ, camelize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/**\n* @dcloudio/uni-mp-vue v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nfunction warn$2(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn$2(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn$2(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn$2(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$2(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn$2(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] || type : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type] || type;\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n console.error(err);\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick$1(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction hasQueueJob(job) {\n return queue.indexOf(job) > -1;\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n // fixed by xxxxxx\n // 为 0 是 App,无 parent 是 Page 指向 App\n component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction markAttrsAccessed() {\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect$1(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n // fixed by xxxxxx\n mount() {\n },\n // fixed by xxxxxx\n unmount() {\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n if (currentInstance.type.mpType === \"app\") {\n currentInstance.appContext.app.provide(key, value);\n }\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n if (isRootHook(type)) {\n target = target.root;\n }\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(\n (ErrorTypeStrings[type] || type.replace(/^on/, \"\")).replace(/ hook$/, \"\")\n );\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (``)\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的\n // $el: i => i.vnode.el,\n $el: (i) => i.__$el || (i.__$el = {}),\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \r\n\r\n\r\n","import Component from 'D:/YGChatCS/components/create-service-order/index.vue'\nwx.createComponent(Component)"],"names":["ref","uni"],"mappings":";;;;;;AAqDA,UAAM,cAAcA,cAAAA,IAAI,EAAE;AAC1B,UAAM,eAAeA,cAAAA,IAAI,EAAE;AAE3B,UAAM,aAAa,MAAM;AAEvBC,0BAAY,MAAA,OAAA,mDAAA,iBAAiB,YAAY,OAAO,aAAa,KAAK;AAAA,IACpE;AAEA,UAAM,gBAAgB,MAAM;AAE1BA,oBAAAA,MAAI,cAAc;AAAA,QAChB,aAAa;AAAA,MACjB,CAAG;AAAA,IACH;;;;;;;;;;;;;;;;ACjEA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatCardAI.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatCardAI.js.map index d2a39de..5c3f824 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatCardAI.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatCardAI.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatCardAI.js","sources":["/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatCardAI.vue?type=component"],"sourcesContent":["import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatCardAI.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"ChatCardAI.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0Q2FyZEFJLnZ1ZQ"],"sourcesContent":["import Component from 'D:/YGChatCS/pages/chat/ChatCardAI.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/ChatCardMine.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatCardMine.js.map index 3be9291..240711a 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatCardMine.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatCardMine.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatCardMine.js","sources":["/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatCardMine.vue?type=component"],"sourcesContent":["import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatCardMine.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"ChatCardMine.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0Q2FyZE1pbmUudnVl"],"sourcesContent":["import Component from 'D:/YGChatCS/pages/chat/ChatCardMine.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/ChatMainList.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatMainList.js.map index c8fee93..3d2c655 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatMainList.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/chat/ChatMainList.js.map @@ -1 +1 @@ -{"version":3,"file":"ChatMainList.js","sources":["pages/chat/ChatMainList.vue","/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatMainList.vue?type=component"],"sourcesContent":["\n\n\n\n","import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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 f822519..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","/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatMoreTips.vue?type=component"],"sourcesContent":["\n\n\n\n\n","import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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 23c6971..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":["pages/chat/ChatQuickAccess.vue?type=page"],"sourcesContent":["import MiniProgramPage from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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 988d7c7..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":["/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatQuickAccess.vue?type=page"],"sourcesContent":["import MiniProgramPage from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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 f3f7bc2..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","/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatTopBanner.vue?type=component"],"sourcesContent":["\n\n\n\n","import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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 389d77a..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":["/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatTopBgImg.vue?type=component"],"sourcesContent":["import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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 d3cb68d..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","/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/chat/ChatTopNavBar.vue?type=component"],"sourcesContent":["\n\n\n\n","import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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 410bebb..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","/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/drawer/DrawerHome.vue?type=component"],"sourcesContent":["\n\n\n\n","import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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 68b6ad1..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","pages/index/index.vue?type=page"],"sourcesContent":["\n\n\n\n","import MiniProgramPage from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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 30eb7b4..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":["/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/pages/module/OneFeelMK001.vue?type=component"],"sourcesContent":["import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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/third/ex-drawer/ex-drawer.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/third/ex-drawer/ex-drawer.js.map index 9afa540..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","/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/third/ex-drawer/ex-drawer.vue?type=component"],"sourcesContent":["\r\n\r\n\r\n\r\n\n","import Component from '/Users/gleen/UniAppProjects/Tianmu/YGTianmuCS/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/app.js b/unpackage/dist/dev/mp-weixin/app.js index 1045c95..33c39ba 100644 --- a/unpackage/dist/dev/mp-weixin/app.js +++ b/unpackage/dist/dev/mp-weixin/app.js @@ -9,13 +9,13 @@ const _sfc_main = { __name: "App", setup(__props) { common_vendor.onLaunch(() => { - common_vendor.index.__f__("log", "at App.vue:7", "App Launch"); + common_vendor.index.__f__("log", "at App.vue:5", "App Launch"); }); common_vendor.onShow(() => { - common_vendor.index.__f__("log", "at App.vue:11", "App Show"); + common_vendor.index.__f__("log", "at App.vue:9", "App Show"); }); common_vendor.onHide(() => { - common_vendor.index.__f__("log", "at App.vue:15", "App Hide"); + common_vendor.index.__f__("log", "at App.vue:13", "App Hide"); }); return () => { }; diff --git a/unpackage/dist/dev/mp-weixin/app.wxss b/unpackage/dist/dev/mp-weixin/app.wxss index 65085c3..47102e9 100644 --- a/unpackage/dist/dev/mp-weixin/app.wxss +++ b/unpackage/dist/dev/mp-weixin/app.wxss @@ -24,7 +24,10 @@ /* 透明度 */ /* 文章场景相关 */ /* 添加全局样式 */ -page, body, #app { - width: 100vw; +page, +body, +#app { + font-family: PingFang SC, PingFang SC; height: 100vh; + width: 100vw; }page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/assets/icon_service.86f6117d.png b/unpackage/dist/dev/mp-weixin/assets/icon_service.86f6117d.png new file mode 100644 index 0000000000000000000000000000000000000000..5afa5d4945f6ba2edd11e1eb2898a8b47f1afbb8 GIT binary patch literal 1260 zcmVPx(rb$FWR7gw3muYNORS?I2bMEZ|infB92CZWm)EznHAK$G zd;T;3Idf*t{IAf=(gNJ8E?Ft!b~R%AiO2xZ9EGf~sc=D%Qnk9%irHIhLr2>NIU@zw zWUeLArsm@Wd(p!YlP`wHRmlO;n~5`|D*MIgx{$RSQ)hBa1dV5tkT|r+nIfVy5bi;7 zn#)X+{UA`G$UJwZ_j!wm^<6S-z{~+&X(d@A_&X-u7Rq!kH3meT_!{Zkz%xMFbt0|- zJ~ip~)yCve#9onE0=$%zG@}dBu`hJ$8;Pr`1U<0@s!u12(ADtwo^i9Z2tKNZ;9DLlCTvKvQmlPz_r09(rIIT(0yz#&x4AQ=J3eC$a`FOkA^w zJXg#nAUCc>W-c;xDUv+^t=J8}?|_SC5ol%(bRL3a_eaaWMYq2Um#*!_IxF?8osc@4 zgQ5i(n{H;H6#DVUt-$dck?cX}zBkcBE8yz+aGD~0EYPMs(sK&(@LaTFC%SfY{Im-m zmbXl;eM71jl9eXTS0eggT+;iVMn_JHOz=*+>Khcu+k^3hjeWt-JcSYW4 z^&k|0z+dRzx#9jb6TgSlcIctyX!&;dV|V;^3NCaXGsbRifx3t|@Kc-B2f4K~>bKWF zRdDtQRG)#m2c+^xblsT9Fo|6uiy1Cg3h9*YnyspIZ&AM_0yTazw>%%yyLD!&@>7j^ zPxwQ^wW(%4hS&as#A)4-fFQyg6R=CdW3hH2y&PkFZPZW|EjYe(8yBhQ&VwUkv0@kc z&5LmHL?Y`GA+@8@W>Fdu0{J-J1I}|Iy1WH^^$;`tLZrxyixwB6`DLQZx_cHXkEU1yZJ}yR4c$K@A;m6QW8Ai2H2S`TZAl WuMU84s|mFL0000Px&21!IgR7gv$m0d_vVHn5%&%4c!wpZKE)TnMEqAt1!!ob2P2#O-;gD!$7w20gk ziY&rzyecDuz;+xK+FjD;MMV~LRZ$@!T@^+*snBvC>N(Cicg|C1xmu=eu+HuCKIiv* z{vSe~A2Ud6mdZ>Vdq9q-9yK~l0OxY2Tn{WeAAl|5b#5i1vtVo^Lckr@&(KXIa{1>4 zi1?i+0XhxF3no+%^Ou=LuEr(pp~(#3Qxl4-rllB(ud08@K+=G3KIb|+iJb;>QN|zu0Z=uFH9MP^%hhtDKIwevLqJkE;7~H7y%ZGL=|uu<;ls z8kL}a&+?7SR zp%ZeGO|TWc&#UV9xfS+UNPdJswStW@0Fq?@s>dS9#uP%9t6MZ6+o}vS7~nwi4hPHlH)(qQs%#HKeF4EQ;Pu6IOu=?Um3(m=oK88ZziqyHg;h+o!#`94fK zuLQMjZiR@2ZF|dVAV~005H8Sp7RGor&YLa=lA`pL6P>D+8dTk2S1Bg0B zo#>k_&uuob&Q@&S;J!LGMnk7i>YR32v%GKaCNsoc8`I6jo#V000%k8-acbJZNn@?M zQhQ@?=W)S`4~*VCJvj~0=j4!5GcrdFgD(xOO{XE}^y4~UXcq3v7Mf$3j> z`Q+g*H6>h%2>ph_vUdSBJtl~cI*5*x1+>9G)HIj=SoeTHjXxyeIe-;l9+@lG6Q`v& zIhiW98lBfY$bOW4(HLAyM8T-g&t=N+uK@G9Xz8;#dy`XB=JuJC{Y_QZ_~%@iTlVjN WaT6UV9i~_S0000 { } : initOnError(); diff --git a/unpackage/dist/dev/mp-weixin/components/create-service-order/index.js b/unpackage/dist/dev/mp-weixin/components/create-service-order/index.js new file mode 100644 index 0000000..e0c50bb --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/create-service-order/index.js @@ -0,0 +1,33 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +const _sfc_main = { + __name: "index", + setup(__props) { + const contactName = common_vendor.ref(""); + const contactPhone = common_vendor.ref(""); + const handleCall = () => { + common_vendor.index.__f__("log", "at components/create-service-order/index.vue:59", "Calling with:", contactName.value, contactPhone.value); + }; + const makePhoneCall = () => { + common_vendor.index.makePhoneCall({ + phoneNumber: "15185111210" + }); + }; + return (_ctx, _cache) => { + return { + a: common_assets._imports_0$6, + b: contactName.value, + c: common_vendor.o(($event) => contactName.value = $event.detail.value), + d: contactPhone.value, + e: common_vendor.o(($event) => contactPhone.value = $event.detail.value), + f: common_vendor.o(handleCall), + g: common_assets._imports_1$3, + h: common_vendor.o(makePhoneCall) + }; + }; + } +}; +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-a90069d4"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/create-service-order/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/components/create-service-order/index.json b/unpackage/dist/dev/mp-weixin/components/create-service-order/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/create-service-order/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/create-service-order/index.wxml b/unpackage/dist/dev/mp-weixin/components/create-service-order/index.wxml new file mode 100644 index 0000000..fb901d0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/create-service-order/index.wxml @@ -0,0 +1 @@ +创建服务工单加一台麻将机房间号:302服务时间:2025-09-12 12:00联系房客:联系电话:没解决问题?给我打电话吧!15185111210 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/create-service-order/index.wxss b/unpackage/dist/dev/mp-weixin/components/create-service-order/index.wxss new file mode 100644 index 0000000..aaa11bd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/create-service-order/index.wxss @@ -0,0 +1,148 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.create-service-order.data-v-a90069d4 { + margin-left: 12px; + margin-right: 12px; +} +.create-service-wrapper.data-v-a90069d4 { + box-sizing: border-box; + padding: 12px 12px 16px; + background-color: #eff6fa; + box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.1); + border-radius: 4px 20px 20px 20px; + border: 1px solid #fff; +} +.order-header.data-v-a90069d4 { + font-size: 14px; + font-weight: 500; + margin-bottom: 10px; + color: #333; +} +.order-content.data-v-a90069d4 { + width: 100%; + box-sizing: border-box; + background-color: #fff; + padding: 12px; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); +} +.order-item.data-v-a90069d4 { + display: flex; + align-items: center; + margin-bottom: 12px; +} +.order-icon.data-v-a90069d4 { + width: 24px; + height: 24px; + margin-right: 8px; + border-radius: 50%; + background-color: #ffa500; + display: flex; + align-items: center; + justify-content: center; +} +.order-description.data-v-a90069d4 { + font-size: 14px; + font-weight: 500; + color: #333; +} +.order-line.data-v-a90069d4 { + position: relative; + border: 1px dashed #eeeeee; + margin-left: -12px; + margin-right: -12px; +} +.order-line.data-v-a90069d4::before, .order-line.data-v-a90069d4::after { + content: ""; + position: absolute; + top: -8px; + width: 16px; + height: 16px; + border-radius: 50px; + background-color: #eff6fa; +} +.order-line.data-v-a90069d4::before { + left: -8px; +} +.order-line.data-v-a90069d4::after { + right: -8px; +} +.order-details.data-v-a90069d4 { + margin-top: 12px; +} +.detail-item.data-v-a90069d4 { + display: flex; + align-items: center; + margin-bottom: 10px; + font-size: 14px; + color: #666; +} +.detail-label.data-v-a90069d4 { + width: 70px; + margin-right: 10px; +} +.detail-value.data-v-a90069d4 { + color: #333; +} +.detail-input.data-v-a90069d4 { + border: none; + outline: none; + width: calc(100% - 80px); + font-size: 14px; + color: #999; + border-bottom: 1px solid #ddd; +} +.order-button.data-v-a90069d4 { + width: 280px; + height: 42px; + background: linear-gradient(90deg, #ff7e00, #ffba00); + color: #fff; + font-size: 14px; + font-weight: 600; + border-radius: 20px; + margin-top: 20px; + display: flex; + align-items: center; + justify-content: center; +} +.footer-help.data-v-a90069d4 { + margin-top: 8px; + display: flex; + align-items: center; + font-size: 14px; + color: #ed6a0c; +} +.help-icon.data-v-a90069d4 { + width: 16px; + height: 14px; + margin-right: 5px; +} +.help-text.data-v-a90069d4 { + margin-right: 5px; +} +.help-phone.data-v-a90069d4 { + cursor: pointer; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/chat/ChatList.js b/unpackage/dist/dev/mp-weixin/pages/chat/ChatList.js deleted file mode 100644 index 209a49c..0000000 --- a/unpackage/dist/dev/mp-weixin/pages/chat/ChatList.js +++ /dev/null @@ -1,133 +0,0 @@ -"use strict"; -const common_vendor = require("../../common/vendor.js"); -const common_assets = require("../../common/assets.js"); -if (!Math) { - (ChatTopBgImg + ChatTopNavBar + ChatTopBanner + ChatCardAI + ChatCardMine + ChatMoreTips + ChatQuickAccess)(); -} -const ChatTopBanner = () => "./ChatTopBanner.js"; -const ChatTopBgImg = () => "./ChatTopBgImg.js"; -const ChatTopNavBar = () => "./ChatTopNavBar.js"; -const ChatCardAI = () => "./ChatCardAI.js"; -const ChatCardMine = () => "./ChatCardMine.js"; -const ChatQuickAccess = () => "./ChatQuickAccess2.js"; -const ChatMoreTips = () => "./ChatMoreTips.js"; -const _sfc_main = { - __name: "ChatList", - emits: ["openDrawer"], - setup(__props, { emit: __emit }) { - const statusBarHeight = common_vendor.ref(20); - const navBgColor = common_vendor.ref("rgba(66, 173, 249, 0)"); - common_vendor.ref(0); - const timer = common_vendor.ref(null); - const holdKeyboard = common_vendor.ref(false); - const holdKeyboardFlag = common_vendor.ref(true); - common_vendor.ref(""); - const chatMsgList = common_vendor.ref([]); - const inputMessage = common_vendor.ref(""); - const lastMsgId = common_vendor.ref(""); - holdKeyboard.value = true; - const emits = __emit; - const openDrawer = () => { - emits("openDrawer"); - common_vendor.index.__f__("log", "at pages/chat/ChatList.vue:112", "=============打开抽屉"); - }; - common_vendor.onLoad(() => { - common_vendor.index.getSystemInfo({ - success: (res) => { - statusBarHeight.value = res.statusBarHeight || 20; - } - }); - }); - common_vendor.onMounted(() => { - initData(); - }); - const initData = () => { - for (let i = 0; i < 30; i++) { - chatMsgList.value.push({ - mid: `msg_${i}`, - msg: `消息${i}` - }); - } - }; - const handleTouchEnd = () => { - clearTimeout(timer.value); - timer.value = setTimeout(() => { - if (handleNoHideKeyboard.value) { - common_vendor.index.hideKeyboard(); - } - holdKeyboardFlag.value = true; - }, 50); - }; - const handleNoHideKeyboard = () => { - holdKeyboardFlag.value = false; - }; - const sendMessage = () => { - handleNoHideKeyboard(); - chatMsgList.value.push({ - mid: `msg_${chatMsgList.value.length}`, - msg: `新消息${inputMessage.value}` - }); - inputMessage.value = ""; - common_vendor.index.__f__("log", "at pages/chat/ChatList.vue:231", JSON.stringify(chatMsgList.value)); - }; - common_vendor.watch(chatMsgList, (newVal) => { - if (newVal.length > 0) { - lastMsgId.value = newVal[newVal.length - 1].mid; - common_vendor.nextTick$1(() => { - lastMsgId.value = ""; - common_vendor.nextTick$1(() => { - lastMsgId.value = newVal[newVal.length - 1].mid; - }); - }); - } - }, { deep: true }); - return (_ctx, _cache) => { - return { - a: common_vendor.o(openDrawer), - b: statusBarHeight.value + "px", - c: navBgColor.value, - d: common_vendor.f(chatMsgList.value, (item, index, i0) => { - return common_vendor.e({ - a: index === 0 - }, index === 0 ? { - b: common_assets._imports_0, - c: "205c7d43-3-" + i0, - d: common_vendor.p({ - text: "查信息、预定下单、探索玩法、呼叫服务、我通通可以满足,快试试问我问题吧!" - }) - } : index === 1 ? { - f: "205c7d43-4-" + i0, - g: common_vendor.p({ - text: "查信息、预定下单、探索玩法" - }) - } : index === 3 ? { - i: "205c7d43-5-" + i0, - j: common_vendor.p({ - text: "推荐双卧私汤套房。【房间十设施十服务能力】房问为两室一厅两卫,房问为一个2米大床房和一个标问,可2加床,最多可 住6人; 房问内带麻将机、带汗蒸房,带阳台泡池,厨房 可烹饪; 【内容玩法】房间内可打麻将、泡汤、长形茶几 可坐10人,可打德州、惯蛋等娱乐活动;阳台泡池旁可加碳火进行BBQ(食材需自带);带小朋友的家长,小朋友可玩酒店内游乐场淘气堡。 【内容玩法】饮食方面酒店自助餐不限量供应,提供西餐、泰餐、中餐自助,距酒店10分钟车程可达老宇号息烽正宗辣子鸡。 【特别体验】近期“有为妃作歹”主题泼水活动。" - }) - } : { - k: common_vendor.t(item.msg) - }, { - e: index === 1, - h: index === 3, - l: item.mid, - m: item.mid - }); - }), - e: lastMsgId.value, - f: common_assets._imports_1, - g: common_vendor.o(sendMessage), - h: common_vendor.o(handleNoHideKeyboard), - i: holdKeyboard.value, - j: inputMessage.value, - k: common_vendor.o(($event) => inputMessage.value = $event.detail.value), - l: common_assets._imports_2, - m: common_vendor.o(sendMessage), - n: common_vendor.o(handleTouchEnd) - }; - }; - } -}; -const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-205c7d43"]]); -wx.createComponent(Component); -//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/chat/ChatList.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/chat/ChatList.json b/unpackage/dist/dev/mp-weixin/pages/chat/ChatList.json deleted file mode 100644 index 2cd73c4..0000000 --- a/unpackage/dist/dev/mp-weixin/pages/chat/ChatList.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "component": true, - "usingComponents": { - "chat-top-banner": "./ChatTopBanner", - "chat-top-bg-img": "./ChatTopBgImg", - "chat-top-nav-bar": "./ChatTopNavBar", - "chat-card-a-i": "./ChatCardAI", - "chat-card-mine": "./ChatCardMine", - "chat-quick-access": "./ChatQuickAccess", - "chat-more-tips": "./ChatMoreTips" - } -} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/chat/ChatList.wxml b/unpackage/dist/dev/mp-weixin/pages/chat/ChatList.wxml deleted file mode 100644 index 47e6127..0000000 --- a/unpackage/dist/dev/mp-weixin/pages/chat/ChatList.wxml +++ /dev/null @@ -1 +0,0 @@ - MM {{item.k}}