diff --git a/TUIKit/components/TUIChat/chat-header/index.vue b/TUIKit/components/TUIChat/chat-header/index.vue index 95781f9..dc0bbc5 100644 --- a/TUIKit/components/TUIChat/chat-header/index.vue +++ b/TUIKit/components/TUIChat/chat-header/index.vue @@ -1,5 +1,5 @@ diff --git a/TUIKit/components/TUIConversation/index.vue b/TUIKit/components/TUIConversation/index.vue index 0768410..79aecac 100644 --- a/TUIKit/components/TUIConversation/index.vue +++ b/TUIKit/components/TUIConversation/index.vue @@ -25,7 +25,7 @@ />
- +
\r\n\r\n\r\n"],"names":["optionsArray","uni","request"],"mappings":";;;;AA8IA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,SAAS;AAAA;AAAA,MACT,QAAQ;AAAA,QACN,EAAE,OAAO,KAAK,OAAO,EAAG;AAAA,QACxB,EAAE,OAAO,KAAK,OAAO,EAAG;AAAA,MACzB;AAAA,MACD,SAASA,8BAAY;AAAA,MACrB,UAAU;AAAA;AAAA,MACV,YAAY;AAAA;AAAA,MACZ,aAAa;AAAA;AAAA,MACb,SAAS;AAAA;AAAA,MACT,SAAS;AAAA;AAAA,MACT,SAAS;AAAA,MACT,MAAM;AAAA,MACN,gBAAgB;AAAA;AAAA,MAChB,IAAI;AAAA;AAAA,MACJ,aAAa;AAAA;AAAA,MACb,YAAY;AAAA;AAAA,MACZ,sBAAsB;AAAA;AAAA;EAEzB;AAAA,EACD,UAAU;AACRC,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,KAAK,IAAI,KAAK;AAAA,MACpB;AAAA,IACH,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,OAAO,MAAM;AACX,WAAK,UAAU,KAAK;AACpBA,oBAAAA,MAAA,MAAA,OAAA,0CAAY,IAAI;AAAA,IACjB;AAAA,IAED,QAAQ,MAAM;AACZ,WAAK,WAAW,KAAK;AACrBA,oBAAAA,MAAA,MAAA,OAAA,0CAAY,IAAI;AAAA,IACjB;AAAA,IAED,mBAAmB,OAAO;AACxB,UAAI,MAAM,WAAW,KAAK,KAAK;AAC7B,aAAK,UAAU;AACf,aAAK,OAAO;AAAA,MACd;AAAA,IACD;AAAA,IACD,OAAO;AACL,UAAI,KAAK,SAAS;AAChB,aAAK,UAAU;AACf,aAAK,OAAO;AACZ,aAAK,aAAa;AAClB,aAAK,UAAU;AACf,aAAK,cAAc;AACnB,aAAK,UAAU;AACf,aAAK,iBAAiB;AACtB,aAAK,WAAW;AAChB,aAAK,UAAU;AAAA,aACV;AACL,aAAK,UAAU;AAAA,MACjB;AAAA,IACD;AAAA;AAAA,IAED,KAAK,OAAM;AACT,UAAG,KAAK,eAAe,MAAM,OAAO,OAAM;AACxC,aAAK,aAAa,MAAM,OAAO;AAC/BA,sBAAAA,MAAI,YAAY;AAAA,UAChB,OAAO;AAAA,UACP,MAAM;AAAA,QACR,CAAC;AACCA,sBAAAA,MAAI,QAAQ;AAAA,UACZ,KAAK,uCAAqC,KAAK;AAAA,UAC/C,SAAQ,CAAC,QAAM;AACb,gBAAI,IAAI,KAAK,SAAS,KAAK;AACzBA,4BAAG,MAAC,YAAW;AACfA,4BAAAA,MAAI,UAAU;AAAA,gBACZ,OAAO;AAAA,gBACP,MAAM;AAAA,gBACN,UAAU;AAAA,eACX;AACD,mBAAK,uBAAuB,IAAI,KAAK;AAAA,mBACjC;AACJA,4BAAG,MAAC,YAAW;AACfA,4BAAAA,MAAI,UAAU;AAAA,gBACZ,OAAO;AAAA,gBACP,MAAM;AAAA,gBACN,UAAU;AAAA,eACX;AAAA,YACH;AAAA,UACD;AAAA,UACD,MAAM,SAAU,KAAK;AACnBA,0BAAG,MAAC,YAAW;AACfA,0BAAAA,MAAI,UAAU;AAAA,cACV,OAAO;AAAA,cACP,MAAM;AAAA,cACN,UAAU;AAAA,aACX;AAAA,UACJ;AAAA,QACH,CAAC;AAAA,aACI;AACH;AAAA,MACF;AAAA,IACD;AAAA,IACD,MAAM,UAAU;AAEd,UACE,KAAK,eAAe,MACpB,KAAK,YAAY,KACjB,KAAK,gBAAgB,MACrB,KAAK,aAAa,MAClB,KAAK,mBAAmB,MACxB,KAAK,YAAY,MACjB,KAAK,yBAAyB,IAC9B;AACA,aAAK,OAAO;AACZ;AAAA,MACF;AAEA,YAAM,YAAY,KAAK,eAAe,QAAQ,KAAK,GAAG;AACtD,YAAM,YAAY,KAAK,MAAM,SAAS;AACtC,UAAI,MAAM,SAAS,GAAG;AACpB,cAAM,IAAI,MAAM,wBAAwB,KAAK,cAAc,EAAE;AAAA,MAC/D;AACA,WAAK,cAAc,KAAK,MAAM,YAAY,GAAI;AAC9C,YAAM,mBAAmB,KAAK,MAAM,KAAK,IAAG,IAAK,GAAI;AAErD,UAAI,KAAK,cAAc,kBAAkB;AACvCA,sBAAAA,MAAI,UAAU;AAAA,UACZ,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AACD;AAAA,MACF;AAEAA,oBAAAA,MAAI,YAAY;AAAA,QACd,OAAO;AAAA,QACP,MAAM;AAAA,MACR,CAAC;AACD,YAAM,MAAM,MAAMC,2BAAQ;AAAA,QACxB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,UAAU,KAAK;AAAA,UACf,QAAQ,KAAK;AAAA,UACb,KAAK,KAAK;AAAA,UACV,SAAS,KAAK;AAAA,UACd,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,UAAU,KAAK;AAAA,UACf,YAAY,KAAK;AAAA,UACjB,UAAU,KAAK;AAAA,QAChB;AAAA,QACD,UAAU;AAAA,MACZ,CAAC;AACD,UAAI,IAAI,SAAS,KAAK;AACpB,aAAK,UAAU;AACf,aAAK,OAAO;AACZ,aAAK,aAAa;AAClB,aAAK,UAAU;AACf,aAAK,cAAc;AACnB,aAAK,UAAU;AACf,aAAK,iBAAiB;AACtB,aAAK,UAAU;AACf,aAAK,uBAAuB;AAC5BD,sBAAG,MAAC,YAAW;AACfA,sBAAAA,MAAI,UAAU;AAAA,UACZ,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,aACI;AACLA,sBAAG,MAAC,YAAW;AACfA,sBAAAA,MAAI,UAAU;AAAA,UACZ,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACD;AAAA,EACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"NewAddedPk.js","sources":["pages/NewAddedPk/NewAddedPk.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n"],"names":["optionsArray","uni","request"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/TUIKit/components/TUIChat/chat-header/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/TUIKit/components/TUIChat/chat-header/index.js.map index 3bea9da..aeecd35 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/TUIKit/components/TUIChat/chat-header/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/TUIKit/components/TUIChat/chat-header/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/chat-header/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L2NoYXQtaGVhZGVyL2luZGV4LnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/chat-header/index.vue'\nwx.createComponent(Component)"],"names":["ref","TUIGlobal","onMounted","TUIStore","StoreName","onUnmounted","onLoad","TUITranslateService","Component"],"mappings":";;;;;;;;AAkBA,UAAM,sBAAsBA,cAAAA;AACtB,UAAA,eAAeA,kBAAI,KAAK;AAyBxB,UAAA,uBAAuB,CAAC,YAAoB;;AAChDC,0BAAAA,MAAAA,mBAAW,sBAAsB;AAAA,QAC/B,OAAO,WAAW;AAAA,MAAA;AAAA,IACnB;AAGHC,kBAAAA,UAAU,MAAM;AACLC,uBAAA,MAAMC,gBAAU,MAAM;AAAA,QAC7B,qBAAqB;AAAA,MAAA,CACtB;AACQD,uBAAA,MAAMC,gBAAU,MAAM;AAAA,QAC7B,cAAc;AAAA,MAAA,CACf;AAAA,IAAA,CACF;AAEDC,kBAAAA,YAAY,MAAM;AACPF,uBAAA,QAAQC,gBAAU,MAAM;AAAA,QAC/B,qBAAqB;AAAA,MAAA,CACtB;AACQD,uBAAA,QAAQC,gBAAU,MAAM;AAAA,QAC/B,cAAc;AAAA,MAAA,CACf;AAAA,IAAA,CACF;AAEDE,kBAAAA,OAAO,MAAM;;AACU,4BAAA,yBAAoB,UAApB,mBAA2B,aAAa;AAAA,IAAA,CAC9D;AAED,aAAS,6BAA6B,cAAkC;;AACtE,0BAAoB,QAAQ;AACxB,UAAA,CAAC,aAAa,OAAO;AACF,8BAAA,gEAAqB,UAArB,mBAA4B,aAAa;AAAA,MAChE;AAAA,IACF;AAEA,aAAS,sBAAsB,QAAiB;;AAC9C,mBAAa,QAAQ;AACrB,UAAI,aAAa,OAAO;AACD,6BAAAC,cAAA,GAAoB,EAAE,gBAAgB,CAAC;AAAA,MAAA,OACvD;AACgB,8BAAA,yBAAoB,UAApB,mBAA2B,aAAa;AAAA,MAC/D;AAAA,IACF;;;;;;ACrFA,GAAG,gBAAgBC,SAAS;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/chat-header/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L2NoYXQtaGVhZGVyL2luZGV4LnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/chat-header/index.vue'\nwx.createComponent(Component)"],"names":["ref","TUIGlobal","onMounted","TUIStore","StoreName","onUnmounted","onLoad","TUITranslateService","Component"],"mappings":";;;;;;;;AAkBA,UAAM,sBAAsBA,cAAAA;AACtB,UAAA,eAAeA,kBAAI,KAAK;AAyBxB,UAAA,uBAAuB,CAAC,YAAoB;;AAChDC,0BAAAA,MAAAA,mBAAW,sBAAsB;AAAA,QAC/B,OAAO,WAAW;AAAA,MAAA;AAAA,IACnB;AAGHC,kBAAAA,UAAU,MAAM;AACLC,uBAAA,MAAMC,gBAAU,MAAM;AAAA,QAC7B,qBAAqB;AAAA,MAAA,CACtB;AACQD,uBAAA,MAAMC,gBAAU,MAAM;AAAA,QAC7B,cAAc;AAAA,MAAA,CACf;AAAA,IAAA,CACF;AAEDC,kBAAAA,YAAY,MAAM;AACPF,uBAAA,QAAQC,gBAAU,MAAM;AAAA,QAC/B,qBAAqB;AAAA,MAAA,CACtB;AACQD,uBAAA,QAAQC,gBAAU,MAAM;AAAA,QAC/B,cAAc;AAAA,MAAA,CACf;AAAA,IAAA,CACF;AAEDE,kBAAAA,OAAO,MAAM;;AACU,4BAAA,yBAAoB,UAApB,mBAA2B,aAAa;AAAA,IAAA,CAC9D;AAED,aAAS,6BAA6B,cAAkC;;AACtE,0BAAoB,QAAQ;AACxB,UAAA,CAAC,aAAa,OAAO;AACF,8BAAA,gEAAqB,UAArB,mBAA4B,aAAa;AAAA,MAChE;AAAA,IACF;AAEA,aAAS,sBAAsB,QAAiB;;AAC9C,mBAAa,QAAQ;AACrB,UAAI,aAAa,OAAO;AACD,6BAAAC,cAAA,GAAoB,EAAE,gBAAgB,CAAC;AAAA,MAAA,OACvD;AACgB,8BAAA,yBAAoB,UAApB,mBAA2B,aAAa;AAAA,MAC/D;AAAA,IACF;;;;;;ACrFA,GAAG,gBAAgBC,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/TUIKit/components/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/TUIKit/components/index.js.map index 89d1340..8229db8 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/TUIKit/components/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/TUIKit/components/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/index.vue","TUIKit/components/TUIChat/index.ts","TUIKit/components/TUIConversation/index.ts","TUIKit/components/TUISearch/index.vue","TUIKit/components/TUISearch/index.ts","TUIKit/components/TUIContact/index.vue","TUIKit/components/TUIContact/index.ts","TUIKit/components/TUIGroup/index.vue","TUIKit/components/TUIGroup/index.ts","TUIKit/components/TUIConversation/index.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n","import TUIChat from './index.vue';\r\nimport Server from './server';\r\n\r\nnew Server();\r\n\r\nexport default TUIChat;\r\n","import TUIConversation from \"./index.vue\";\r\nimport TUIConversationServer from \"./server\";\r\nnew TUIConversationServer();\r\n\r\nexport default TUIConversation;\r\n","\r\n\r\n\r\n","import TUISearch from './index.vue';\r\nimport Server from './server';\r\nnew Server();\r\n\r\nexport default TUISearch;\r\n","\r\n\r\n\r\n","import TUIContact from './index.vue';\r\nimport Server from './server';\r\nServer.getInstance();\r\n\r\nexport default TUIContact;\r\n","\r\n\r\n\r\n","import TUIGroup from './index.vue';\r\nimport Server from './server';\r\n\r\nServer.getInstance();\r\n\r\nexport default TUIGroup;\r\n","\r\n\r\n\r\n\r\n"],"names":["useCounterStore","ref","onLoad","initChat","uni","onUnload","logout","TUIChatConfig","onMounted","TUIStore","StoreName","onUnmounted","myitem","youritem","request","generateMsgId","isEnabledMessageReadReceiptGlobal","TUIChatEngine","OfflinePushInfoManager","TUIChatService","res","computed","isUniFrameWork","TUITranslateService","TUIConversationService","TUICore","TUIConstants","Server","TUIConversationServer","isPC","searchMessageTypeDefault","searchMessageTimeDefault","outsideClick","TUIGlobal","watchEffect","onHide"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/index.vue","TUIKit/components/TUIChat/index.ts","TUIKit/components/TUIConversation/index.ts","TUIKit/components/TUISearch/index.vue","TUIKit/components/TUISearch/index.ts","TUIKit/components/TUIContact/index.vue","TUIKit/components/TUIContact/index.ts","TUIKit/components/TUIGroup/index.vue","TUIKit/components/TUIGroup/index.ts","TUIKit/components/TUIConversation/index.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n","import TUIChat from './index.vue';\r\nimport Server from './server';\r\n\r\nnew Server();\r\n\r\nexport default TUIChat;\r\n","import TUIConversation from \"./index.vue\";\r\nimport TUIConversationServer from \"./server\";\r\nnew TUIConversationServer();\r\n\r\nexport default TUIConversation;\r\n","\r\n\r\n\r\n","import TUISearch from './index.vue';\r\nimport Server from './server';\r\nnew Server();\r\n\r\nexport default TUISearch;\r\n","\r\n\r\n\r\n","import TUIContact from './index.vue';\r\nimport Server from './server';\r\nServer.getInstance();\r\n\r\nexport default TUIContact;\r\n","\r\n\r\n\r\n","import TUIGroup from './index.vue';\r\nimport Server from './server';\r\n\r\nServer.getInstance();\r\n\r\nexport default TUIGroup;\r\n","\r\n\r\n\r\n\r\n"],"names":["useCounterStore","ref","onLoad","initChat","uni","onUnload","logout","TUIChatConfig","onMounted","TUIStore","StoreName","onUnmounted","myitem","youritem","request","generateMsgId","isEnabledMessageReadReceiptGlobal","TUIChatEngine","OfflinePushInfoManager","TUIChatService","res","computed","isUniFrameWork","TUITranslateService","TUIConversationService","TUICore","TUIConstants","Server","TUIConversationServer","isPC","searchMessageTypeDefault","searchMessageTimeDefault","outsideClick","TUIGlobal","watchEffect","onHide"],"mappings":"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"} \ 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 eb8a3cf..453ccb4 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":["../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/dist/mp.esm.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/vue-demi/lib/index.mjs","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/pinia/dist/pinia.mjs","node_modules/@tencentcloud/chat/index.js","node_modules/tim-upload-plugin/index.js","node_modules/tim-profanity-filter-plugin/index.js","node_modules/@tencentcloud/tui-core/index.js","node_modules/cos-wx-sdk-v5/dist/cos-wx-sdk-v5.min.js","node_modules/@tencentcloud/chat-uikit-engine/index.js","node_modules/@tencentcloud/universal-api/index.js","../../HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-app/dist/uni-app.es.js","node_modules/dayjs/dayjs.min.js","node_modules/dayjs/plugin/localeData.js","node_modules/dayjs/plugin/isSameOrAfter.js","node_modules/dayjs/plugin/isSameOrBefore.js","node_modules/dayjs/locale/zh-cn.js","node_modules/@vue/composition-api/dist/vue-composition-api.mjs","node_modules/marked/lib/marked.esm.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:/项目/tk-mini-program/components/tabBar/tabBar.vue'\nwx.createComponent(Component)"],"names":["ref","reactive","onMounted","uni","VerifyLogin"],"mappings":";;;;;;AA+BA,MAAM,aAAa,MAAW;;;;;;;AAG9B,QAAI,mBAAmBA,cAAAA,IAAI,KAAK;AAKhC,QAAI,UAAUC,cAAAA,SAAS;AAAA,MACrB;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACd;AAAA,MACD;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACd;AAAA,MACD;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACd;AAAA,MACD;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,MACP;AAAA,MACD;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACd;AAAA,IACH,CAAC;AACDC,kBAAAA,UAAU,MAAM;AACd;IAEF,CAAC;AAEDC,kBAAG,MAAC,cAAc;AAAA,MAChB,SAAS,SAAU,KAAK;AAEtBA,sBAAY,MAAA,MAAA,OAAA,sCAAA,MAAM,IAAI,UAAU;AAChC,YAAI,IAAI,SAAS,MAAM,IAAI;AACzBA,iFAAY,YAAY,IAAI,SAAS,GAAG;AAAA,QACzC;AAAA,MACF;AAAA,IACH,CAAC;AAGD,aAAS,YAAY;AACnB,UAAI,YAAY,QAAQ;AACxB,UAAI,YAAY,GAAG;AACjB,yBAAiB,QAAQ;AACzB,YAAI,cAAc,KAAK,MAAM,YAAY,CAAC;AAC1C,gBAAQ,WAAW,EAAE,cAAc;AAAA,MACpC;AAAA,IACH;AACA,UAAM,eAAeH,cAAG,IAAA;AAExB,aAAS,oBAAoB;AAC3B,mBAAa,MAAM;IACrB;AAMA,UAAM,iBAAiB,MAAM;AAC3B,aAAO;AAAA,IACT;AAEA,aAAS,WAAW,MAAM,OAAO;AAC/B,UAAI,UAAU,GAAG;AACfI,2CAAa,EAAC,KAAK,CAAC,QAAQ;AAC1B,cAAI,KAAK;AACPD,0BAAAA,MAAI,WAAW;AAAA,cACb,KAAK;AAAA,cACL,eAAe;AAAA,YACzB,CAAS;AAAA,UACF;AAAA,QACP,CAAK;AAAA,MACL,WAAa,UAAU,GAAG;AAEtBC,2CAAa,EAAC,KAAK,CAAC,QAAQ;AAC5B,cAAI,KAAK;AACP;AACA;AAAA,UACD;AAAA,QACL,CAAG;AAAA,MACH,WAAa,UAAU,GAAG;AACtBA,2CAAa,EAAC,KAAK,CAAC,QAAQ;AAC5B,cAAI,KAAK;AACPD,0BAAAA,MAAI,UAAU;AAAA,cACZ,KAAK;AAAA,cACL,eAAe;AAAA,YACvB,CAAO;AAAA,UACF;AAAA,QACL,CAAG;AAAA,MACH,OAAS;AACLA,sBAAAA,MAAI,UAAU;AAAA,UACZ,KAAK,KAAK;AAAA,QAChB,CAAK;AAAA,MACF;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;AC/IA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file +{"version":3,"file":"tabBar.js","sources":["components/tabBar/tabBar.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9jb21wb25lbnRzL3RhYkJhci90YWJCYXIudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import Component from 'D:/项目/tk-mini-program/components/tabBar/tabBar.vue'\nwx.createComponent(Component)"],"names":["ref","reactive","onMounted","uni","VerifyLogin"],"mappings":";;;;;;AA+BA,MAAM,aAAa,MAAW;;;;;;;AAG9B,QAAI,mBAAmBA,cAAAA,IAAI,KAAK;AAKhC,QAAI,UAAUC,cAAAA,SAAS;AAAA,MACrB;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACd;AAAA,MACD;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACd;AAAA,MACD;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACd;AAAA,MACD;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,MACP;AAAA,MACD;AAAA,QACE,UAAU;AAAA,QACV,kBAAkB;AAAA,QAClB,MAAM;AAAA,QACN,UAAU;AAAA,QACV,aAAa;AAAA,MACd;AAAA,IACH,CAAC;AACDC,kBAAAA,UAAU,MAAM;AACd;IAEF,CAAC;AAEDC,kBAAG,MAAC,cAAc;AAAA,MAChB,SAAS,SAAU,KAAK;AAEtBA,sBAAY,MAAA,MAAA,OAAA,sCAAA,MAAM,IAAI,UAAU;AAChC,YAAI,IAAI,SAAS,MAAM,IAAI;AACzBA,iFAAY,YAAY,IAAI,SAAS,GAAG;AAAA,QACzC;AAAA,MACF;AAAA,IACH,CAAC;AAGD,aAAS,YAAY;AACnB,UAAI,YAAY,QAAQ;AACxB,UAAI,YAAY,GAAG;AACjB,yBAAiB,QAAQ;AACzB,YAAI,cAAc,KAAK,MAAM,YAAY,CAAC;AAC1C,gBAAQ,WAAW,EAAE,cAAc;AAAA,MACpC;AAAA,IACH;AACA,UAAM,eAAeH,cAAG,IAAA;AAExB,aAAS,oBAAoB;AAC3B,mBAAa,MAAM;IACrB;AAMA,UAAM,iBAAiB,MAAM;AAC3B,aAAO;AAAA,IACT;AAEA,aAAS,WAAW,MAAM,OAAO;AAC/B,UAAI,UAAU,GAAG;AACfI,2CAAa,EAAC,KAAK,CAAC,QAAQ;AAC1B,cAAI,KAAK;AACPD,0BAAAA,MAAI,WAAW;AAAA,cACb,KAAK;AAAA,cACL,eAAe;AAAA,YACzB,CAAS;AAAA,UACF;AAAA,QACP,CAAK;AAAA,MACL,WAAa,UAAU,GAAG;AAEtBC,2CAAa,EAAC,KAAK,CAAC,QAAQ;AAC5B,cAAI,KAAK;AACP;AACA;AAAA,UACD;AAAA,QACL,CAAG;AAAA,MACH,WAAa,UAAU,GAAG;AACtBA,2CAAa,EAAC,KAAK,CAAC,QAAQ;AAC5B,cAAI,KAAK;AACPD,0BAAAA,MAAI,UAAU;AAAA,cACZ,KAAK;AAAA,cACL,eAAe;AAAA,YACvB,CAAO;AAAA,UACF;AAAA,QACL,CAAG;AAAA,MACH,OAAS;AACLA,sBAAAA,MAAI,UAAU;AAAA,UACZ,KAAK,KAAK;AAAA,QAChB,CAAK;AAAA,MACF;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;AC/IA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Forum/Forum.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Forum/Forum.js.map index 5346727..dd222e3 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Forum/Forum.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Forum/Forum.js.map @@ -1 +1 @@ -{"version":3,"file":"Forum.js","sources":["pages/Forum/Forum.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvRm9ydW0vRm9ydW0udnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Forum/Forum.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;AAeA,eAAe,MAAW;AACtB,MAAK,YAAU;AAAA,EACX,OAAO;AACH,WAAO;AAAA,MACH,OAAO;AAAA,IACX;AAAA,EACH;AAAA,EACD,SAAS;AAAA,EAER;AAAA,EACD,SAAS;AAAA;AAAA,EAER;AAAA,EACD,YAAY;AAAA,IACR;AAAA,EACJ;AACJ;;;;;;;;;;;;;AC9BJ,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"Forum.js","sources":["pages/Forum/Forum.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvRm9ydW0vRm9ydW0udnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Forum/Forum.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;AAeA,eAAe,MAAW;AACtB,MAAK,YAAU;AAAA,EACX,OAAO;AACH,WAAO;AAAA,MACH,OAAO;AAAA,IACX;AAAA,EACH;AAAA,EACD,SAAS;AAAA,EAER;AAAA,EACD,SAAS;AAAA;AAAA,EAER;AAAA,EACD,YAAY;AAAA,IACR;AAAA,EACJ;AACJ;;;;;;;;;;;;;;;;;AC9BJ,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Home/Home.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Home/Home.js.map index c68469f..e9603f6 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Home/Home.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Home/Home.js.map @@ -1 +1 @@ -{"version":3,"file":"Home.js","sources":["pages/Home/Home.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvSG9tZS9Ib21lLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Home/Home.vue'\nwx.createPage(MiniProgramPage)"],"names":["useCounterStore","uni","res","TUIlogin","request","formatDate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Home.js","sources":["pages/Home/Home.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvSG9tZS9Ib21lLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Home/Home.vue'\nwx.createPage(MiniProgramPage)"],"names":["useCounterStore","uni","res","TUIlogin","request","formatDate"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/Mine.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/Mine.js.map index 75a716c..d8e0cad 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/Mine.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/Mine.js.map @@ -1 +1 @@ -{"version":3,"file":"Mine.js","sources":["pages/Mine/Mine.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvTWluZS9NaW5lLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Mine/Mine.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","formatDate","TimeFormatting","request","TUILogin"],"mappings":";;;;;AAoHA,eAAe,MAAW;AAM1B,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,UAAU,CAAE;AAAA,MACZ,mBAAmB,CAAE;AAAA,MACrB,gBAAgB,CAAE;AAAA;EAErB;AAAA,EACD,SAAS;AACPA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,WAAW,IAAI;AACpBA,sBAAY,MAAA,MAAA,OAAA,8BAAA,KAAK,QAAQ;AACzB,aAAK,iBAAgB;AACrB,aAAK,cAAa;AAAA,MACnB;AAAA,IACH,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,YAAYC,sBAAU;AAAA,IACtB,gBAAgBC,0BAAc;AAAA;AAAA,IAE9B,mBAAkB;AACJC,iCAAQ;AAAA,QAChB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,QAAQ,KAAK,SAAS;AAAA,UACtB,MAAK;AAAA,UACL,MAAK;AAAA,QACN;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AAChB,YAAI,IAAI,QAAQ,KAAK;AACpB,eAAK,oBAAoB,IAAI;AAC7BH,yEAAY,KAAK,iBAAiB;AAAA,eAC7B;AACLA,yEAAY,IAAI,GAAG;AAAA,QACpB;AAAA,MACD,CAAC;AAAA,IACJ;AAAA;AAAA,IAED,gBAAe;AACAG,iCAAQ;AAAA,QACjB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,MAAK;AAAA,UACL,QAAQ,KAAK,SAAS;AAAA,UACtB,MAAK;AAAA,UACL,MAAK;AAAA,QACN;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AAChB,YAAI,IAAI,QAAQ,KAAK;AACpB,eAAK,iBAAiB,IAAI;AAC1BH,wBAAA,MAAA,MAAA,OAAA,8BAAY,KAAK,cAAc;AAAA,eAC1B;AACLA,yEAAY,IAAI,GAAG;AAAA,QACpB;AAAA,MACD,CAAC;AAAA,IACJ;AAAA;AAAA,IAED,gBAAgB;AACdA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,WAAW;AACTA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,UAAU;AACRA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,YAAY;AACVA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,kBAAkB;AAChBA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,SAAQ;AACNA,oBAAAA,MAAI,aAAa;AACjBI,oBAAAA,EAAS;AACTJ,oBAAAA,MAAI,SAAS;AAAA,QACX,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA,EACF;AAAA,EACD,YAAY;AAAA,IACV;AAAA,EACD;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClOA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"Mine.js","sources":["pages/Mine/Mine.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvTWluZS9NaW5lLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Mine/Mine.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","formatDate","TimeFormatting","request","TUILogin"],"mappings":";;;;;AAoHA,eAAe,MAAW;AAM1B,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,UAAU,CAAE;AAAA,MACZ,mBAAmB,CAAE;AAAA,MACrB,gBAAgB,CAAE;AAAA;EAErB;AAAA,EACD,SAAS;AACPA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,WAAW,IAAI;AACpBA,sBAAY,MAAA,MAAA,OAAA,8BAAA,KAAK,QAAQ;AACzB,aAAK,iBAAgB;AACrB,aAAK,cAAa;AAAA,MACnB;AAAA,IACH,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,YAAYC,sBAAU;AAAA,IACtB,gBAAgBC,0BAAc;AAAA;AAAA,IAE9B,mBAAkB;AACJC,iCAAQ;AAAA,QAChB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,QAAQ,KAAK,SAAS;AAAA,UACtB,MAAK;AAAA,UACL,MAAK;AAAA,QACN;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AAChB,YAAI,IAAI,QAAQ,KAAK;AACpB,eAAK,oBAAoB,IAAI;AAC7BH,yEAAY,KAAK,iBAAiB;AAAA,eAC7B;AACLA,yEAAY,IAAI,GAAG;AAAA,QACpB;AAAA,MACD,CAAC;AAAA,IACJ;AAAA;AAAA,IAED,gBAAe;AACAG,iCAAQ;AAAA,QACjB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,MAAK;AAAA,UACL,QAAQ,KAAK,SAAS;AAAA,UACtB,MAAK;AAAA,UACL,MAAK;AAAA,QACN;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AAChB,YAAI,IAAI,QAAQ,KAAK;AACpB,eAAK,iBAAiB,IAAI;AAC1BH,wBAAA,MAAA,MAAA,OAAA,8BAAY,KAAK,cAAc;AAAA,eAC1B;AACLA,yEAAY,IAAI,GAAG;AAAA,QACpB;AAAA,MACD,CAAC;AAAA,IACJ;AAAA;AAAA,IAED,gBAAgB;AACdA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,WAAW;AACTA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,UAAU;AACRA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,YAAY;AACVA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,kBAAkB;AAChBA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA;AAAA,IAED,SAAQ;AACNA,oBAAAA,MAAI,aAAa;AACjBI,oBAAAA,EAAS;AACTJ,oBAAAA,MAAI,SAAS;AAAA,QACX,KAAK;AAAA,MACP,CAAC;AAAA,IACF;AAAA,EACF;AAAA,EACD,YAAY;AAAA,IACV;AAAA,EACD;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClOA,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/minecomponents/pkInformation.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/minecomponents/pkInformation.js.map index 85e6c10..49a0e86 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/minecomponents/pkInformation.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/minecomponents/pkInformation.js.map @@ -1 +1 @@ -{"version":3,"file":"pkInformation.js","sources":["pages/Mine/minecomponents/pkInformation.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvTWluZS9taW5lY29tcG9uZW50cy9wa0luZm9ybWF0aW9uLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Mine/minecomponents/pkInformation.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","formatDate","request"],"mappings":";;;;AA4FA,MAAO,YAAW,MAAW;AAE7B,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,QAAQ,CAAE;AAAA,MACV,UAAU,CAAE;AAAA,MACZ,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA;EAEd;AAAA,EACD,SAAS;AACPA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,WAAW,IAAI;AACpBA,sBAAY,MAAA,MAAA,OAAA,sDAAA,KAAK,QAAQ;AACzB,aAAK,UAAS;AAAA,MACf;AAAA,IACH,CAAC;AAAA,EACF;AAAA,EACD,UAAU;AACR,SAAK,eAAe,KAAK,MAAM;AAAA,EAChC;AAAA,EACD,SAAS;AAAA,IACP,qBAAqB;AACnB,WAAK,OAAO;AACZ,WAAK,SAAS;AACd,WAAK,UAAS;AACd,WAAK,YAAY;AAAA,IAClB;AAAA,IACD,kBAAkB;AAChB,WAAK;AACL,WAAK,UAAS;AAAA,IACf;AAAA,IACD,oBAAoB;AAClB,WAAK,OAAO;AACZ,WAAK,SAAS;AACd,WAAK,UAAS;AACd,WAAK,YAAY;AAAA,IAClB;AAAA,IACD,SAAS;AACPA,oBAAAA,MAAI,aAAa;AAAA,QACf,OAAO;AAAA,MACT,CAAC;AAAA,IACF;AAAA,IACD,YAAYC,sBAAU;AAAA,IACtB,YAAY;AACEC,iCAAQ;AAAA,QAClB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,QAAQ,KAAK,SAAS;AAAA,UACtB,MAAM,KAAK;AAAA,UACX,MAAM;AAAA,QACP;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,YAAI,IAAI,QAAQ,KAAK;AACnB,eAAK,OAAO,KAAK,GAAG,IAAI,IAAI;AAC5BF,wBAAY,MAAA,MAAA,OAAA,sDAAA,KAAK,MAAM;AACvB,eAAK,YAAY;AAAA,eACZ;AACLA,iGAAY,IAAI,GAAG;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,IACF;AAAA,IACD,YAAY,MAAM;AAChB,WAAK,gBAAgB;AACrB,WAAK,aAAa;IACnB;AAAA,IACD,YAAY,MAAM;AACJE,iCAAQ;AAAA,QAClB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,IAAI,KAAK;AAAA,QACV;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,YAAI,IAAI,QAAQ,KAAK;AACnBF,wBAAAA,MAAI,UAAU;AAAA,YACZ,OAAO;AAAA,YACP,MAAM;AAAA,YACN,UAAU;AAAA,UACZ,CAAC;AACD,eAAK,UAAS;AAAA,eACT;AACLA,iGAAY,IAAI,GAAG;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,IACF;AAAA,EACF;AAAA,EACD,YAAY;AAAA,IACV;AAAA,EACD;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7LA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"pkInformation.js","sources":["pages/Mine/minecomponents/pkInformation.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvTWluZS9taW5lY29tcG9uZW50cy9wa0luZm9ybWF0aW9uLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Mine/minecomponents/pkInformation.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","formatDate","request"],"mappings":";;;;AA4FA,MAAO,YAAW,MAAW;AAE7B,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,QAAQ,CAAE;AAAA,MACV,UAAU,CAAE;AAAA,MACZ,MAAM;AAAA,MACN,cAAc;AAAA,MACd,eAAe;AAAA,MACf,WAAW;AAAA;EAEd;AAAA,EACD,SAAS;AACPA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,WAAW,IAAI;AACpBA,sBAAY,MAAA,MAAA,OAAA,sDAAA,KAAK,QAAQ;AACzB,aAAK,UAAS;AAAA,MACf;AAAA,IACH,CAAC;AAAA,EACF;AAAA,EACD,UAAU;AACR,SAAK,eAAe,KAAK,MAAM;AAAA,EAChC;AAAA,EACD,SAAS;AAAA,IACP,qBAAqB;AACnB,WAAK,OAAO;AACZ,WAAK,SAAS;AACd,WAAK,UAAS;AACd,WAAK,YAAY;AAAA,IAClB;AAAA,IACD,kBAAkB;AAChB,WAAK;AACL,WAAK,UAAS;AAAA,IACf;AAAA,IACD,SAAS;AACPA,oBAAAA,MAAI,aAAa;AAAA,QACf,OAAO;AAAA,MACT,CAAC;AAAA,IACF;AAAA,IACD,YAAYC,sBAAU;AAAA,IACtB,YAAY;AACEC,iCAAQ;AAAA,QAClB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,QAAQ,KAAK,SAAS;AAAA,UACtB,MAAM,KAAK;AAAA,UACX,MAAM;AAAA,QACP;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,YAAI,IAAI,QAAQ,KAAK;AACnB,eAAK,OAAO,KAAK,GAAG,IAAI,IAAI;AAC5BF,wBAAY,MAAA,MAAA,OAAA,sDAAA,KAAK,MAAM;AACvB,eAAK,YAAY;AAAA,eACZ;AACLA,iGAAY,IAAI,GAAG;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,IACF;AAAA,IACD,YAAY,MAAM;AAChB,WAAK,gBAAgB;AACrB,WAAK,aAAa;IACnB;AAAA,IACD,YAAY,MAAM;AACJE,iCAAQ;AAAA,QAClB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,IAAI,KAAK;AAAA,QACV;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,YAAI,IAAI,QAAQ,KAAK;AACnB,eAAK,mBAAkB;AACvBF,wBAAAA,MAAI,UAAU;AAAA,YACZ,OAAO;AAAA,YACP,MAAM;AAAA,YACN,UAAU;AAAA,UACZ,CAAC;AAAA,eACI;AACLA,iGAAY,IAAI,GAAG;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,IACF;AAAA,EACF;AAAA,EACD,YAAY;AAAA,IACV;AAAA,EACD;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvLA,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/minecomponents/pkRecord.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/minecomponents/pkRecord.js.map index 1dbc06b..0dccb42 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/minecomponents/pkRecord.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Mine/minecomponents/pkRecord.js.map @@ -1 +1 @@ -{"version":3,"file":"pkRecord.js","sources":["pages/Mine/minecomponents/pkRecord.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvTWluZS9taW5lY29tcG9uZW50cy9wa1JlY29yZC52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Mine/minecomponents/pkRecord.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","formatDate","request"],"mappings":";;;;AA8FA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,WAAW;AAAA;AAAA,MACX,SAAS;AAAA;AAAA,MACT,aAAa;AAAA;AAAA,MACb,KAAK;AAAA;AAAA,MACL,WAAW;AAAA;AAAA,MACX,gBAAgB,CAAE;AAAA;AAAA,MAClB,wBAAwB,CAAE;AAAA;AAAA,MAC1B,cAAc,CAAE;AAAA;AAAA,MAChB,UAAU,CAAE;AAAA;AAAA,MACZ,MAAM;AAAA;AAAA;EAET;AAAA,EACD,SAAS;AACPA,kBAAAA,MAAI,WAAW;AAAA,MACX,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AACd,aAAK,WAAW,IAAI;AACtB,aAAK,gBAAgB,CAAC;AACtB,aAAK,gBAAgB,CAAC;AAAA,MACvB;AAAA,IACH,CAAC;AAAA,EACJ;AAAA,EACD,UAAU;AAAA,IACR,iBAAiB;AACf,YAAM,EAAE,SAAS,aAAa,QAAQ;AACtC,YAAM,mBAAmB;AACzB,YAAM,UAAU,cAAc,QAAQ,UAAU;AAChD,aAAO,mBAAmB,SAAS;AAAA,IACpC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,qBAAqB;AACnB,WAAK,YAAY;AACjB,WAAK,OAAO;AACZ,WAAK,gBAAgB,KAAK,OAAO;AAAA,IAClC;AAAA,IACD,kBAAkB;AAChB,WAAK;AACL,WAAK,gBAAgB,KAAK,OAAO;AAAA,IAClC;AAAA,IACD,YAAY,MAAM;AACdA,oBAAAA,MAAI,WAAW;AAAA,QACX,KAAK;AAAA,QACL,SAAS,CAAC,QAAQ;AAChB,cAAI,aAAa,KAAK,cAAc;AAAA,YAClC;AAAA,UACF,CAAC;AAAA,QACF;AAAA,MACH,CAAC;AAAA,IACN;AAAA,IACD,SAAS;AACPA,oBAAAA,MAAI;AAAA,QACF;AAAA,UACE,OAAO;AAAA,QACT;AAAA;IAEH;AAAA,IACD,YAAYC,sBAAU;AAAA;AAAA,IAEtB,gBAAgB,MAAM;AACRC,iCAAQ;AAAA,QAClB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ;AAAA,UACA,QAAQ,KAAK,SAAS;AAAA,UACtB,MAAM,KAAK;AAAA,UACX,MAAM;AAAA,QACP;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,YAAI,IAAI,SAAS,KAAK;AACpB,eAAK,YAAY;AACf,cAAI,SAAS,GAAG;AACd,iBAAK,eAAe,KAAK,GAAG,IAAI,IAAI;AACpCF,8FAAY,KAAK,YAAY;AAC7B,gBAAI,KAAK,YAAY,GAAG;AACtB,mBAAK,eAAe,KAAK;AAAA,YAC3B;AAAA,iBACK;AACL,iBAAK,uBAAuB,KAAK,GAAG,IAAI,IAAI;AAC5CA,0BAAY,MAAA,MAAA,OAAA,iDAAA,KAAK,sBAAsB;AACvC,gBAAI,KAAK,YAAY,GAAG;AACtB,mBAAK,eAAe,KAAK;AAAA,YAC3B;AAAA,UACF;AAAA,eACG;AACLA,4FAAY,IAAI,GAAG;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,IACF;AAAA;AAAA,IAED,aAAa,KAAK;AAChB,WAAK,UAAU;AACf,WAAK,YAAY,QAAQ,IAAI,WAAW;AACxC,UAAI,QAAQ,GAAG;AACb,aAAK,eAAe,KAAK;AAAA,aACtB;AACH,aAAK,eAAe,KAAK;AAAA,MAC3B;AAAA,IACD;AAAA,EACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtMA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"pkRecord.js","sources":["pages/Mine/minecomponents/pkRecord.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvTWluZS9taW5lY29tcG9uZW50cy9wa1JlY29yZC52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Mine/minecomponents/pkRecord.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","formatDate","request"],"mappings":";;;;AA8FA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,WAAW;AAAA;AAAA,MACX,SAAS;AAAA;AAAA,MACT,aAAa;AAAA;AAAA,MACb,KAAK;AAAA;AAAA,MACL,WAAW;AAAA;AAAA,MACX,gBAAgB,CAAE;AAAA;AAAA,MAClB,wBAAwB,CAAE;AAAA;AAAA,MAC1B,cAAc,CAAE;AAAA;AAAA,MAChB,UAAU,CAAE;AAAA;AAAA,MACZ,MAAM;AAAA;AAAA;EAET;AAAA,EACD,SAAS;AACPA,kBAAAA,MAAI,WAAW;AAAA,MACX,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AACd,aAAK,WAAW,IAAI;AACtB,aAAK,gBAAgB,CAAC;AACtB,aAAK,gBAAgB,CAAC;AAAA,MACvB;AAAA,IACH,CAAC;AAAA,EACJ;AAAA,EACD,UAAU;AAAA,IACR,iBAAiB;AACf,YAAM,EAAE,SAAS,aAAa,QAAQ;AACtC,YAAM,mBAAmB;AACzB,YAAM,UAAU,cAAc,QAAQ,UAAU;AAChD,aAAO,mBAAmB,SAAS;AAAA,IACpC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,qBAAqB;AACnB,WAAK,YAAY;AACjB,WAAK,OAAO;AACZ,WAAK,gBAAgB,KAAK,OAAO;AAAA,IAClC;AAAA,IACD,kBAAkB;AAChB,WAAK;AACL,WAAK,gBAAgB,KAAK,OAAO;AAAA,IAClC;AAAA,IACD,YAAY,MAAM;AACdA,oBAAAA,MAAI,WAAW;AAAA,QACX,KAAK;AAAA,QACL,SAAS,CAAC,QAAQ;AAChB,cAAI,aAAa,KAAK,cAAc;AAAA,YAClC;AAAA,UACF,CAAC;AAAA,QACF;AAAA,MACH,CAAC;AAAA,IACN;AAAA,IACD,SAAS;AACPA,oBAAAA,MAAI;AAAA,QACF;AAAA,UACE,OAAO;AAAA,QACT;AAAA;IAEH;AAAA,IACD,YAAYC,sBAAU;AAAA;AAAA,IAEtB,gBAAgB,MAAM;AACRC,iCAAQ;AAAA,QAClB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ;AAAA,UACA,QAAQ,KAAK,SAAS;AAAA,UACtB,MAAM,KAAK;AAAA,UACX,MAAM;AAAA,QACP;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,YAAI,IAAI,SAAS,KAAK;AACpB,eAAK,YAAY;AACf,cAAI,SAAS,GAAG;AACd,iBAAK,eAAe,KAAK,GAAG,IAAI,IAAI;AACpCF,8FAAY,KAAK,YAAY;AAC7B,gBAAI,KAAK,YAAY,GAAG;AACtB,mBAAK,eAAe,KAAK;AAAA,YAC3B;AAAA,iBACK;AACL,iBAAK,uBAAuB,KAAK,GAAG,IAAI,IAAI;AAC5CA,0BAAY,MAAA,MAAA,OAAA,iDAAA,KAAK,sBAAsB;AACvC,gBAAI,KAAK,YAAY,GAAG;AACtB,mBAAK,eAAe,KAAK;AAAA,YAC3B;AAAA,UACF;AAAA,eACG;AACLA,4FAAY,IAAI,GAAG;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,IACF;AAAA;AAAA,IAED,aAAa,KAAK;AAChB,WAAK,UAAU;AACf,WAAK,YAAY,QAAQ,IAAI,WAAW;AACxC,UAAI,QAAQ,GAAG;AACb,aAAK,eAAe,KAAK;AAAA,aACtB;AACH,aAAK,eAAe,KAAK;AAAA,MAC3B;AAAA,IACD;AAAA,EACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtMA,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/PKMessageprocessing/PKMessageprocessing.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/PKMessageprocessing/PKMessageprocessing.js.map index 409cd39..183e370 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/PKMessageprocessing/PKMessageprocessing.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/PKMessageprocessing/PKMessageprocessing.js.map @@ -1 +1 @@ -{"version":3,"file":"PKMessageprocessing.js","sources":["pages/PKMessageprocessing/PKMessageprocessing.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvUEtNZXNzYWdlcHJvY2Vzc2luZy9QS01lc3NhZ2Vwcm9jZXNzaW5nLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/PKMessageprocessing/PKMessageprocessing.vue'\nwx.createPage(MiniProgramPage)"],"names":["request","uni","wx","formatDate"],"mappings":";;;;AAqJA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,YAAY,CAAE;AAAA,MACd,YAAY,CAAE;AAAA,MACd,cAAc,CAAE;AAAA,MAChB,cAAc,CAAE;AAAA;EAEnB;AAAA,EACD,OAAO,SAAS;AACd,SAAK,aAAa,KAAK,MAAM,QAAQ,UAAU;AAC/C,SAAK,cAAa;AAClB,SAAK,cAAa;AAClB,SAAK,YAAW;AAAA,EACjB;AAAA,EACD,SAAS;AAAA;AAAA,IAEP,MAAM,cAAc;AACN,YAAMA,2BAAQ;AAAA,QACxB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,IAAI,KAAK,WAAW;AAAA,QACrB;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,aAAK,eAAe,IAAI;AACxBC,sBAAY,MAAA,MAAA,OAAA,4DAAA,KAAK,YAAY;AAAA,MAC/B,CAAC;AAAA,IACF;AAAA;AAAA,IAED,MAAM,gBAAgB;AACR,YAAMD,2BAAQ;AAAA,QACxB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,IAAI,KAAK,WAAW;AAAA,QACrB;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,aAAK,aAAa,IAAI;AACtBC,sBAAA,MAAA,MAAA,OAAA,4DAAY,KAAK,UAAU;AAAA,MAC7B,CAAC;AAAA,IACF;AAAA;AAAA,IAED,MAAM,gBAAgB;AACR,YAAMD,2BAAQ;AAAA,QACxB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,IAAI,KAAK,WAAW;AAAA,QACrB;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,aAAK,eAAe,IAAI;AACxBC,sBAAY,MAAA,MAAA,OAAA,4DAAA,KAAK,YAAY;AAAA,MAC/B,CAAC;AAAA,IACF;AAAA,IAED,SAAS;AACPC,oBAAAA,KAAG,aAAa;AAAA,QACd,OAAO;AAAA,MACT,CAAC;AAAA,IACF;AAAA,IACD,YAAYC,sBAAU;AAAA,IACtB,MAAM,UAAU,QAAQ;AACpBF,oBAAY,MAAA,MAAA,OAAA,4DAAA,UAAU,KAAK,UAAU;AACrCA,oBAAAA,MAAA,MAAA,OAAA,4DAAY,MAAM;AAER,YAAMD,2BAAQ;AAAA,QACxB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,IAAI,KAAK,WAAW;AAAA,UACpB,UAAU;AAAA,QACX;AAAA,QACD,UAAU;AAAA,MACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACfC,sBAAY,MAAA,MAAA,OAAA,4DAAA,IAAI,IAAI;AACpB,cAAM,WAAW,WAAW,IAAI,WAAW;AAC3C,YAAI,IAAI,SAAS,KAAK;AAClB,eAAK,YAAY;AACjBC,wBAAAA,KAAG,UAAU;AAAA,YACX,OAAO;AAAA,YACP,MAAM;AAAA,YACN,UAAU;AAAA,UACZ,CAAC;AACDA,wBAAAA,KAAG,aAAa;AAAA,YACd,OAAO;AAAA,UACT,CAAC;AAAA,eACC;AACFA,wBAAAA,KAAG,UAAU;AAAA,YACX,OAAO;AAAA,YACP,MAAM;AAAA,YACN,UAAU;AAAA,UACZ,CAAC;AAAA,QACL;AAAA,MACF,CAAC;AAAA,IACF;AAAA,EACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxPA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"PKMessageprocessing.js","sources":["pages/PKMessageprocessing/PKMessageprocessing.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvUEtNZXNzYWdlcHJvY2Vzc2luZy9QS01lc3NhZ2Vwcm9jZXNzaW5nLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/PKMessageprocessing/PKMessageprocessing.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","request","wx","formatDate"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Setting/Setting.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Setting/Setting.js.map index 833492a..d3172c6 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Setting/Setting.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/Setting/Setting.js.map @@ -1 +1 @@ -{"version":3,"file":"Setting.js","sources":["pages/Setting/Setting.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvU2V0dGluZy9TZXR0aW5nLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Setting/Setting.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","postFile","generateFileName","request"],"mappings":";;;;;AAqBA,MAAK,YAAU;AAAA,EACb,QAAQ,CAAC,SAAS;AAAA,EAClB,OAAO;AACL,WAAO;AAAA,MACL,UAAS;AAAA,MACT,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,MAAM,CAAE;AAAA,MACR,SAAS;AAAA;EAEZ;AAAA,EACD,OAAO,QAAQ;AACbA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,KAAK,IAAI,KAAK;AACnB,aAAK,OAAO,IAAI,KAAK;AACrB,aAAK,WAAW,IAAI,KAAK;AAAA,MAC1B;AAAA,IACH,CAAC;AACDA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,UAAU,IAAI;AAAA,MACpB;AAAA,IACH,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AACPA,oBAAAA,MAAI,aAAa;AAAA,QACf,OAAO;AAAA,MACT,CAAC;AAAA,IACF;AAAA;AAAA,IAED,UAAU,GAAG;AACX,WAAK,OAAO,EAAE,OAAO;AAAA,IACtB;AAAA;AAAA,IAED,MAAM,SAAS,GAAG;AAChB,YAAM,EAAE,UAAQ,IAAM,EAAE;AACxB,WAAK,WAAW;AAAA,IACjB;AAAA;AAAA,IAED,MAAM,QAAQ,GAAG;AACfA,oBAAAA,MAAI,YAAY;AAAA,QACd,OAAO;AAAA,QACP,MAAM;AAAA,MACR,CAAC;AAEDC,qCAAS;AAAA,QACL,MAAM,KAAK;AAAA,QACX,MAAKC,4BAAAA,iBAAkB;AAAA,MACzB,CAAC,EAAE,KAAK,CAAC,QAAQ;AACfF,sBAAA,MAAA,MAAA,OAAA,mCAAY,gBAAe,GAAG;AAE9B,aAAK,WAAW;AAAA,MAClB,CAAC,EAAE,MAAM,CAAC,QAAQ;AAChBA,sBAAAA,sDAAY,GAAG;AAAA,MACjB,CAAC;AAED,UAAG,KAAK,UAAS;AACnB,cAAM,MAAM,MAAMG,2BAAQ;AAAA,UACxB,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,MAAM;AAAA,YACJ,IAAI,KAAK;AAAA,YACT,YAAY,KAAK;AAAA,YACjB,UAAU,KAAK;AAAA,YACf,SAAS,KAAK,QAAQ;AAAA,UACvB;AAAA,UACD,UAAU;AAAA,QACZ,CAAC;AACD,YAAI,IAAI,SAAS,KAAK;AACpBH,wBAAAA,MAAI,UAAU;AAAA,YACZ,OAAO;AAAA,YACP,MAAM;AAAA,UACR,CAAC;AACDA,wBAAG,MAAC,eAAe,YAAY,IAAI,KAAK,IAAI;AAC5CA,wBAAG,MAAC,YAAW;AAEfA,wBAAAA,MAAI,aAAa;AAAA,YACb,OAAO;AAAA,UACX,CAAC;AAAA,eAEI;AACLA,wBAAAA,MAAI,UAAU;AAAA,YACZ,OAAO;AAAA,YACP,MAAM;AAAA,UACR,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACC;AAAA,EACF;AACH;;;;;;;;;;;ACjHA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"Setting.js","sources":["pages/Setting/Setting.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvU2V0dGluZy9TZXR0aW5nLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/Setting/Setting.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","postFile","generateFileName","request"],"mappings":";;;;;AAqBA,MAAK,YAAU;AAAA,EACb,QAAQ,CAAC,SAAS;AAAA,EAClB,OAAO;AACL,WAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,MAAM,CAAE;AAAA,MACR,SAAS;AAAA;EAEZ;AAAA,EACD,OAAO,QAAQ;AACbA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,KAAK,IAAI,KAAK;AACnB,aAAK,OAAO,IAAI,KAAK;AACrB,aAAK,WAAW,IAAI,KAAK;AAAA,MAC1B;AAAA,IACH,CAAC;AACDA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,UAAU,IAAI;AAAA,MACpB;AAAA,IACH,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AACPA,oBAAAA,MAAI,aAAa;AAAA,QACf,OAAO;AAAA,MACT,CAAC;AAAA,IACF;AAAA;AAAA,IAED,UAAU,GAAG;AACX,WAAK,OAAO,EAAE,OAAO;AAAA,IACtB;AAAA;AAAA,IAED,MAAM,SAAS,GAAG;AAChB,YAAM,EAAE,UAAQ,IAAM,EAAE;AACxB,WAAK,WAAW;AAAA,IACjB;AAAA;AAAA,IAED,QAAQ,GAAG;AACTA,oBAAAA,MAAI,YAAY;AAAA,QACd,OAAO;AAAA,QACP,MAAM;AAAA,MACR,CAAC;AAEDC,qCAAS;AAAA,QACP,MAAM,KAAK;AAAA,QACX,MAAMC,4BAAAA,iBAAkB;AAAA,OACzB,EACE,KAAK,CAAC,QAAQ;AACZF,4BAAA,MAAA,OAAA,mCAAY,IAAI,MAAM,GAAG,EAAE,IAAG,CAAE;AACjCG,mCAAQ;AAAA,UACN,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,MAAM;AAAA,YACJ,IAAI,KAAK;AAAA,YACT,YAAY,IAAI,MAAM,GAAG,EAAE,IAAK;AAAA,YAChC,UAAU,KAAK;AAAA,YACf,SAAS,KAAK,QAAQ;AAAA,UACvB;AAAA,UACD,UAAU;AAAA,QACZ,CAAC,EAAE,KAAK,CAAC,SAAS;AAChB,cAAI,KAAK,SAAS,KAAK;AACrBH,0BAAAA,MAAI,UAAU;AAAA,cACZ,OAAO;AAAA,cACP,MAAM;AAAA,YACR,CAAC;AACDA,0BAAG,MAAC,eAAe,YAAY,KAAK,KAAK,IAAI;AAC7CA,0BAAG,MAAC,YAAW;AAEfA,0BAAAA,MAAI,aAAa;AAAA,cACf,OAAO;AAAA,YACT,CAAC;AAAA,iBAEI;AACLA,0BAAAA,MAAI,UAAU;AAAA,cACZ,OAAO;AAAA,cACP,MAAM;AAAA,YACR,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,OACF,EACA,MAAM,CAAC,QAAQ;AACdA,sBAAAA,uDAAY,GAAG;AAAA,MACjB,CAAC;AAAA,IACJ;AAAA,EACF;AACH;;;;;;;;;;;AC/GA,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/UserInformation/UserInformation.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/UserInformation/UserInformation.js.map index fee3094..84d0107 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/UserInformation/UserInformation.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/UserInformation/UserInformation.js.map @@ -1 +1 @@ -{"version":3,"file":"UserInformation.js","sources":["pages/UserInformation/UserInformation.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvVXNlckluZm9ybWF0aW9uL1VzZXJJbmZvcm1hdGlvbi52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/UserInformation/UserInformation.vue'\nwx.createPage(MiniProgramPage)"],"names":["useCounterStore","generateFileName","uni","postFile","request"],"mappings":";;;;;;AAoBA,MAAM,UAAUA,eAAAA,gBAAgB;AAEhC,MAAK,YAAU;AAAA,EACb,QAAQ,CAAC,SAAS;AAAA,EAClB,OAAO;AACL,WAAO;AAAA,MACL,UACE;AAAA,MACF,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,MAAM,CAAE;AAAA,MACR,SAAS;AAAA,MACT,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAUC,4BAAAA,iBAAkB;AAAA;EAE/B;AAAA,EACD,OAAO,QAAQ;AACbC,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,KAAK,IAAI,KAAK;AAAA,MACpB;AAAA,IACH,CAAC;AACDA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,UAAU,IAAI;AAAA,MACpB;AAAA,IACH,CAAC;AACDA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,WAAW,MAAM,IAAI;AAAA,MAC3B;AAAA,MACD,MAAM,MAAM;AACV,aAAK,WAAW;AAAA,MACjB;AAAA,IACH,CAAC;AAAA,EAGF;AAAA,EACD,SAAS;AAAA;AAAA,IAEP,UAAU,GAAG;AACX,WAAK,OAAO,EAAE,OAAO;AAAA,IACtB;AAAA;AAAA,IAED,MAAM,SAAS,GAAG;AAChB,YAAM,EAAE,UAAQ,IAAM,EAAE;AACxB,WAAK,WAAW;AAAA,IACjB;AAAA;AAAA,IAED,MAAM,QAAQ,GAAG;AACfA,oBAAAA,MAAI,YAAY;AAAA,QACd,OAAO;AAAA,QACP,MAAM;AAAA,MACR,CAAC;AACD,YAAM,EAAE,KAAK,IAAI,MAAMA,cAAAA,MAAI,MAAM;AAAA,QAC/B,UAAU;AAAA,QACV,eAAe;AAAA,MACjB,CAAC;AACDC,qCAAS;AAAA,QACP,MAAM,KAAK;AAAA,QACX,MAAM,KAAK;AAAA,MACb,CAAC,EAAE,KAAK,CAAC,SAAS;AACd,aAAK,UAAU;AACHC,mCAAQ;AAAA,UAClB,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,MAAM;AAAA,YACJ,IAAI,KAAK;AAAA,YACT,YAAY,KAAK;AAAA,YACjB,UAAU,KAAK;AAAA,YACf;AAAA,YACA,SAAS,KAAK,QAAQ;AAAA,UACvB;AAAA,UACD,UAAU;AAAA,QACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,cAAI,IAAI,SAAS,KAAK;AACpBF,0BAAAA,MAAI,UAAU;AAAA,cACZ,OAAO;AAAA,cACP,MAAM;AAAA,YACR,CAAC;AACDA,0BAAG,MAAC,eAAe,YAAY,IAAI,KAAK,IAAI;AAC5C,oBAAQ,OAAO,EAAE,QAAO,IAAI,KAAK,MAAM;AACvCA,0BAAG,MAAC,YAAW;AAEfA,0BAAAA,MAAI,SAAS;AAAA,cACX,KAAK,KAAK;AAAA,YACZ,CAAC;AAAA,iBAEI;AACLA,0BAAAA,MAAI,UAAU;AAAA,cACZ,OAAO;AAAA,cACP,MAAM;AAAA,YACR,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,OACF,EACA,MAAM,CAAC,QAAQ;AACdA,sBAAAA,uEAAY,GAAG;AAAA,MACjB,CAAC;AAAA,IACJ;AAAA,EACF;AACH;;;;;;;;;;AC5HA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"UserInformation.js","sources":["pages/UserInformation/UserInformation.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvVXNlckluZm9ybWF0aW9uL1VzZXJJbmZvcm1hdGlvbi52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/UserInformation/UserInformation.vue'\nwx.createPage(MiniProgramPage)"],"names":["useCounterStore","generateFileName","uni","postFile","request"],"mappings":";;;;;;AAoBA,MAAM,UAAUA,eAAe,gBAAA;AAE/B,MAAK,YAAU;AAAA,EACb,QAAQ,CAAC,SAAS;AAAA,EAClB,OAAO;AACL,WAAO;AAAA,MACL,UAAS;AAAA,MACT,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,MAAM,CAAE;AAAA,MACR,SAAS;AAAA,MACT,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAUC,4BAAAA,iBAAkB;AAAA;EAE/B;AAAA,EACD,OAAO,QAAQ;AACbC,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,KAAK,IAAI,KAAK;AAAA,MACpB;AAAA,IACH,CAAC;AACDA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,UAAU,IAAI;AAAA,MACpB;AAAA,IACH,CAAC;AACDA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,WAAW,MAAM,IAAI;AAAA,MAC3B;AAAA,MACD,MAAM,MAAM;AACV,aAAK,WAAW;AAAA,MACjB;AAAA,IACH,CAAC;AAAA,EAGF;AAAA,EACD,SAAS;AAAA;AAAA,IAEP,UAAU,GAAG;AACX,WAAK,OAAO,EAAE,OAAO;AAAA,IACtB;AAAA;AAAA,IAED,MAAM,SAAS,GAAG;AAChB,YAAM,EAAE,UAAQ,IAAM,EAAE;AACxB,WAAK,WAAW;AAAA,IACjB;AAAA;AAAA,IAED,MAAM,QAAQ,GAAG;AACf,UACE,KAAK,SAAS,MACd,KAAK,aAAa,IAClB;AACAA,sBAAAA,MAAI,YAAY;AAAA,UACd,OAAO;AAAA,UACP,MAAM;AAAA,QACR,CAAC;AACD,cAAM,EAAE,KAAK,IAAI,MAAMA,cAAAA,MAAI,MAAM;AAAA,UAC/B,UAAU;AAAA,UACV,eAAe;AAAA,QACjB,CAAC;AACDC,uCAAS;AAAA,UACP,MAAM,KAAK;AAAA,UACX,MAAM,KAAK;AAAA,SACZ,EACE,KAAK,CAAC,SAAS;AACd,eAAK,UAAU;AACHC,qCAAQ;AAAA,YAClB,KAAK;AAAA,YACL,QAAQ;AAAA,YACR,MAAM;AAAA,cACJ,IAAI,KAAK;AAAA,cACT,YAAY,KAAK;AAAA,cACjB,UAAU,KAAK;AAAA,cACf;AAAA,cACA,SAAS,KAAK,QAAQ;AAAA,YACvB;AAAA,YACD,UAAU;AAAA,UACZ,CAAC,EAAE,KAAK,CAAC,QAAQ;AACf,gBAAI,IAAI,SAAS,KAAK;AACpBF,4BAAAA,MAAI,UAAU;AAAA,gBACZ,OAAO;AAAA,gBACP,MAAM;AAAA,cACR,CAAC;AACDA,4BAAG,MAAC,eAAe,YAAY,IAAI,KAAK,IAAI;AAC5C,sBAAQ,OAAO,EAAE,QAAQ,IAAI,KAAK,KAAG,CAAG;AACxCA,4BAAG,MAAC,YAAW;AAEfA,4BAAAA,MAAI,SAAS;AAAA,gBACX,KAAK,KAAK;AAAA,cACZ,CAAC;AAAA,mBAEI;AACLA,4BAAAA,MAAI,UAAU;AAAA,gBACZ,OAAO;AAAA,gBACP,MAAM;AAAA,cACR,CAAC;AAAA,YACH;AAAA,UACF,CAAC;AAAA,SACF,EACA,MAAM,CAAC,QAAQ;AACdA,wBAAAA,MAAY,MAAA,OAAA,oDAAA,GAAG;AAAA,QACjB,CAAC;AAAA,aACE;AACLA,sBAAAA,MAAI,UAAU;AAAA,UACZ,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACD;AAAA,EACF;AACH;;;;;;;;;;ACvIA,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/pkDetail/pkDetail.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/pkDetail/pkDetail.js.map index 46ff5f4..4d05714 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/pkDetail/pkDetail.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/pkDetail/pkDetail.js.map @@ -1 +1 @@ -{"version":3,"file":"pkDetail.js","sources":["pages/pkDetail/pkDetail.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvcGtEZXRhaWwvcGtEZXRhaWwudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/pkDetail/pkDetail.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","formatDate","TimeFormatting","request"],"mappings":";;;;;AAqIA,MAAK,aAAc,MAAW;AAQ9B,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,MAAM,CAAE;AAAA,MACR,IAAI;AAAA,MACJ,sBAAsB;AAAA,MACtB,MAAM,CAAE;AAAA,MACR,YAAY;AAAA,MACZ,yBAAyB;AAAA,MACzB,UAAU,CAAE;AAAA,MACZ,qBAAqB;AAAA;AAAA;EAGxB;AAAA,EACD,OAAO,SAAS;AAEd,UAAM,eAAe,KAAK;AAE1B,iBAAa,GAAG,cAAc,CAAC,SAAS;AACtC,WAAK,OAAO,KAAK;AACjBA,oBAAA,MAAA,MAAA,OAAA,sCAAY,WAAW,KAAK,IAAI;AAAA,IAClC,CAAC;AAEDA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,KAAK,IAAI,KAAK;AAAA,MACpB;AAAA,IACH,CAAC;AACDA,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,WAAW,IAAI;AAAA,MACrB;AAAA,IACH,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMP,YAAYC,sBAAU;AAAA,IACtB,gBAAgBC,0BAAc;AAAA,IAC9B,OAAO,IAAI,OAAO;AAChB,UAAI,KAAK,eAAe,IAAI;AAC1B,aAAK,aAAa;AAClB,aAAK,uBAAuB;AAC5B,aAAK,0BAA0B;AAAA,aAC1B;AACL,aAAK,aAAa,KAAK,eAAe,KAAK,OAAO;AAClD,aAAK,uBAAuB;AAC5B,aAAK,0BAA0B;AAAA,MACjC;AAAA,IACD;AAAA,IACD,aAAa;AACXF,oBAAAA,MAAI,aAAa;AAAA,QACf,OAAO;AAAA,MACT,CAAC;AAAA,IACF;AAAA,IACD,OAAO;AACL,WAAK,MAAM,MAAM,KAAK,QAAQ;AAC9B,WAAK,SAAQ;AAAA,IACd;AAAA,IACD,SAAS;AACP,UAAI,KAAK,KAAK,WAAW,KAAK,KAAK,KAAK,uBAAuB,EAAE,QAAQ;AACvEA,sBAAAA,MAAI,UAAU;AAAA,UACZ,MAAM;AAAA,UACN,OAAO;AAAA,QACT,CAAC;AACD;AAAA,MACF;AAEA,YAAM,iBAAiB,MAAM,KAAK,KAAK,QAAQ;AAC/C,YAAM,SAAS,KAAK,UAAU,KAAK,KAAK,KAAK,uBAAuB,CAAC;AACrE,YAAM,WAAW,KAAK,UAAU,KAAK,IAAI;AACzCA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK,mDAAmD,cAAc,WAAW,MAAM,aAAa,QAAQ;AAAA,MAC9G,CAAC;AAAA,IAEF;AAAA,IACD,QAAQ;AACN,WAAK,MAAM,MAAM;IAClB;AAAA,IACD,WAAW;AAET,YAAM,iBAAiB,MAAM,KAAK,KAAK,QAAQ;AAC/CA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK,mDAAmD,cAAc;AAAA,MACxE,CAAC;AAAA,IACF;AAAA,IAED,MAAM,WAAW;AACfA,oBAAAA,MAAI,YAAY;AAAA,QACd,OAAO;AAAA,QACP,MAAM;AAAA,MACR,CAAC;AACD,YAAM,MAAM,MAAMG,2BAAQ;AAAA,QACxB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,QAAQ,KAAK;AAAA,QACd;AAAA,QACD,UAAU;AAAA,MACZ,CAAC;AACD,UAAI,IAAI,SAAS,KAAK;AACpB,YAAI,IAAI,KAAK,WAAW,GAAG;AACzBH,wBAAG,MAAC,YAAW;AACfA,wBAAY,MAAA,MAAA,OAAA,sCAAA,YAAY,IAAI,IAAI;AAChC,eAAK,OAAO,IAAI;AAAA,eACX;AACLA,wBAAG,MAAC,YAAW;AACf,eAAK,kBAAiB;AAAA,QACxB;AAAA,aACK;AACLA,sBAAG,MAAC,YAAW;AACfA,sBAAAA,MAAI,UAAU;AAAA,UACZ,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACD;AAAA,IAED,oBAAoB;AAClB,WAAK,MAAM,aAAa;IACzB;AAAA,EACF;AAAA,EACD,YAAY;AAAA,IACV;AAAA,EACD;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/QA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"pkDetail.js","sources":["pages/pkDetail/pkDetail.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvcGtEZXRhaWwvcGtEZXRhaWwudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/项目/tk-mini-program/pages/pkDetail/pkDetail.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni","formatDate","TimeFormatting","request"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/recompose.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/recompose.js.map index 69694a4..e4fdf17 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/recompose.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/recompose.js.map @@ -1 +1 @@ -{"version":3,"file":"recompose.js","sources":["pages/Mine/minecomponents/recompose/recompose.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n"],"names":["optionsArray","formatDate","uni","request"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"recompose.js","sources":["pages/Mine/minecomponents/recompose/recompose.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n"],"names":["optionsArray","formatDate","uni","request"],"mappings":";;;;;AAqKA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,SAAS;AAAA;AAAA,MACT,QAAQ;AAAA,QACN,EAAE,OAAO,KAAK,OAAO,EAAG;AAAA,QACxB,EAAE,OAAO,KAAK,OAAO,EAAG;AAAA,MACzB;AAAA,MACD,SAASA,8BAAY;AAAA,MACrB,UAAU;AAAA;AAAA,MACV,YAAY;AAAA;AAAA,MACZ,aAAa;AAAA;AAAA,MACb,SAAS;AAAA;AAAA,MACT,SAAS;AAAA;AAAA,MACT,SAAS;AAAA,MACT,MAAM;AAAA,MACN,gBAAgB;AAAA;AAAA,MAChB,IAAI;AAAA;AAAA,MACJ,aAAa;AAAA;AAAA,MACb,YAAY;AAAA;AAAA;EAEf;AAAA,EACD,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,IACP;AAAA,EACF;AAAA,EACD,OAAO;AAAA,IACL,QAAQ,aAAa,aAAa;AAChC,WAAK,cAAc,YAAY;AAC/B,WAAK,UAAU,YAAY;AAC3B,WAAK,UAAU,YAAY;AAC3B,WAAK,iBAAiBC,sBAAAA,WAAW,YAAY,MAAM;AACnD,WAAK,KAAK,YAAY;AACtB,WAAK,aAAa,YAAY;AAC9B,WAAK,WAAW,YAAY;AAC5B,WAAK,UAAU,YAAY,QAAQ,MAAM,IAAI;AAAA,IAC9C;AAAA,EACF;AAAA,EACD,UAAU;AACRC,kBAAAA,MAAI,WAAW;AAAA,MACb,KAAK;AAAA,MACL,SAAS,CAAC,QAAQ;AAChB,aAAK,KAAK,IAAI,KAAK;AAAA,MACpB;AAAA,IACH,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA;AAAA,IAEP,OAAO,MAAM;AACX,WAAK,UAAU,KAAK;AACpBA,oBAAAA,MAAA,MAAA,OAAA,4DAAY,IAAI;AAAA,IACjB;AAAA;AAAA,IAED,QAAQ,MAAM;AACZ,WAAK,WAAW,KAAK;AACrBA,oBAAAA,MAAA,MAAA,OAAA,4DAAY,IAAI;AAAA,IACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQD,OAAO;AACL,UAAI,KAAK,SAAS;AAChB,aAAK,UAAU;AACf,aAAK,OAAO;AACZ,aAAK,aAAa;AAClB,aAAK,UAAU;AACf,aAAK,cAAc;AACnB,aAAK,UAAU;AACf,aAAK,iBAAiB;AACtB,aAAK,WAAW;AAChB,aAAK,UAAU;AAAA,aACV;AACL,aAAK,UAAU;AAAA,MACjB;AAAA,IACD;AAAA;AAAA,IAED,YAAY,SAAU,OAAO;AAC3B,WAAK,aAAa,MAAM,OAAO;AAAA,IAChC;AAAA,IAED,MAAM,UAAU;AAEd,UACG,KAAK,cAAc,MAAM,KAAK,cAAc,QAC5C,KAAK,WAAW,KAAK,KAAK,WAAW,QACrC,KAAK,eAAe,MAAM,KAAK,eAAe,QAC9C,KAAK,kBAAkB,MAAM,KAAK,kBAAkB,QACpD,KAAK,YAAY,MAAM,IAAI,YAAY,QACvC,KAAK,kBAAkB,MAAM,KAAK,kBAAkB,QACpD,KAAK,WAAW,MAAM,KAAK,WAAW,MACvC;AACA,aAAK,OAAO;AACZ;AAAA,MACF;AAEA,UAAI,KAAK,QAAQ,SAAS,KAAK,UAAU,GAAG;AAC1CA,sBAAAA,MAAI,UAAU;AAAA,UACZ,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AACD;AAAA,MACF;AAEA,YAAM,YAAY,KAAK,eAAe,QAAQ,KAAK,GAAG;AACtD,YAAM,YAAY,KAAK,MAAM,SAAS;AACtC,UAAI,MAAM,SAAS,GAAG;AACpB,cAAM,IAAI,MAAM,wBAAwB,KAAK,cAAc,EAAE;AAAA,MAC/D;AACA,WAAK,cAAc,KAAK,MAAM,YAAY,GAAI;AAC9C,YAAM,mBAAmB,KAAK,MAAM,KAAK,IAAG,IAAK,GAAI;AAErD,UAAI,KAAK,cAAc,kBAAkB;AACvCA,sBAAAA,MAAI,UAAU;AAAA,UACZ,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AACD;AAAA,MACF;AAEAA,oBAAAA,MAAI,YAAY;AAAA,QACd,OAAO;AAAA,QACP,MAAM;AAAA,MACR,CAAC;AACD,YAAM,MAAM,MAAMC,2BAAQ;AAAA,QACxB,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,UACJ,UAAU,KAAK;AAAA,UACf,QAAQ,KAAK;AAAA,UACb,KAAK,KAAK;AAAA,UACV,SAAS,KAAK;AAAA,UACd,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK;AAAA,UACb,QAAQ;AAAA,UACR,UAAU,KAAK;AAAA,UACf,YAAY;AAAA,UACZ,UAAU,KAAK;AAAA,QAChB;AAAA,QACD,UAAU;AAAA,MACZ,CAAC;AACD,UAAI,IAAI,SAAS,KAAK;AACpB,aAAK,UAAU;AACf,aAAK,OAAO;AACZ,aAAK,aAAa;AAClB,aAAK,UAAU;AACf,aAAK,cAAc;AACnB,aAAK,UAAU;AACf,aAAK,iBAAiB;AACtB,aAAK,UAAU;AACfD,sBAAG,MAAC,YAAW;AACfA,sBAAAA,MAAI,UAAU;AAAA,UACZ,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,aACI;AACLA,sBAAG,MAAC,YAAW;AACfA,sBAAAA,MAAI,UAAU;AAAA,UACZ,OAAO;AAAA,UACP,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACD;AAAA,EACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/NewAddedPk.js b/unpackage/dist/dev/mp-weixin/NewAddedPk.js new file mode 100644 index 0000000..a274717 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/NewAddedPk.js @@ -0,0 +1,284 @@ +"use strict"; +const common_vendor = require("./common/vendor.js"); +const components_NationalDictionary = require("./components/NationalDictionary.js"); +const components_request = require("./components/request.js"); +const _sfc_main = { + data() { + return { + genders: 0, + //性别 + Gender: [ + { label: "男", value: 1 }, + { label: "女", value: 2 } + ], + Country: components_NationalDictionary.optionsArray, + countrys: "", + //国家 + nameAnchor: "", + //主播名称 + numberCoins: "", + //金币数量 + session: "", + //场数 + remarks: "", + //备注 + Display: false, + Hint: false, + datetimesingle: "", + //日期 + id: null, + //用户id + sendingTime: "", + //发送时间 + filterable: true, + //是否可搜索 + AnchorProfilePicture: "" + //主播头像 + }; + }, + mounted() { + common_vendor.index.getStorage({ + key: "userinfo", + success: (res) => { + this.id = res.data.id; + } + }); + }, + methods: { + gender(item) { + this.genders = item.value; + common_vendor.index.__f__("log", "at pages/NewAddedPk/NewAddedPk.vue:182", item); + }, + country(item) { + this.countrys = item.value; + common_vendor.index.__f__("log", "at pages/NewAddedPk/NewAddedPk.vue:187", item); + }, + handleOverlayClick(event) { + if (event.target === this.$el) { + this.Display = false; + this.Hint = false; + } + }, + open() { + if (this.Display) { + this.Display = false; + this.Hint = false; + this.nameAnchor = ""; + this.genders = 0; + this.numberCoins = ""; + this.remarks = ""; + this.datetimesingle = ""; + this.countrys = ""; + this.session = ""; + } else { + this.Display = true; + } + }, + //获取主播名称以及头像地址 + blur(event) { + if (this.nameAnchor !== event.target.value) { + this.nameAnchor = event.target.value; + common_vendor.index.showLoading({ + title: "正在验证主播", + mask: true + }); + common_vendor.index.request({ + url: "https://python.yolojt.com/api/" + this.nameAnchor, + success: (res) => { + if (res.data.code === 200) { + common_vendor.index.hideLoading(); + common_vendor.index.showToast({ + title: "查询成功", + icon: "none", + duration: 3e3 + }); + this.AnchorProfilePicture = res.data.data; + } else { + common_vendor.index.hideLoading(); + common_vendor.index.showToast({ + title: "未查询到该主播", + icon: "none", + duration: 3e3 + }); + } + }, + fail: function(res) { + common_vendor.index.hideLoading(); + common_vendor.index.showToast({ + title: "网络请求失败", + icon: "none", + duration: 3e3 + }); + } + }); + } else { + return; + } + }, + async Publish() { + if (this.nameAnchor === "" || this.genders === 0 || this.numberCoins === "" || this.countrys === "" || this.datetimesingle === "" || this.session === "" || this.AnchorProfilePicture === "") { + this.Hint = true; + return; + } + if (this.remarks.includes(this.nameAnchor)) { + common_vendor.index.showToast({ + title: "备注中不能包含主播昵称", + icon: "none", + duration: 2e3 + }); + return; + } + const isoString = this.datetimesingle.replace(" ", "T"); + const timestamp = Date.parse(isoString); + if (isNaN(timestamp)) { + throw new Error(`Invalid date format: ${this.datetimesingle}`); + } + this.sendingTime = Math.floor(timestamp / 1e3); + const secondsTimestamp = Math.floor(Date.now() / 1e3); + if (this.sendingTime < secondsTimestamp) { + common_vendor.index.showToast({ + title: "日期不能早于当前时间", + icon: "none", + duration: 2e3 + }); + return; + } + common_vendor.index.showLoading({ + title: "发布中...", + mask: true + }); + const res = await components_request.request({ + url: "pk/addPkData", + method: "POST", + data: { + anchorId: this.nameAnchor, + pkTime: this.sendingTime, + sex: this.genders, + country: this.countrys, + coin: this.numberCoins, + remark: this.remarks, + senderId: this.id, + anchorIcon: this.AnchorProfilePicture, + pkNumber: this.session + }, + userInfo: true + }); + if (res.code === 200) { + this.Display = false; + this.Hint = false; + this.nameAnchor = ""; + this.genders = 0; + this.numberCoins = ""; + this.remarks = ""; + this.datetimesingle = ""; + this.session = ""; + this.AnchorProfilePicture = ""; + common_vendor.index.hideLoading(); + common_vendor.index.showToast({ + title: "发布成功", + icon: "success", + duration: 2e3 + }); + } else { + common_vendor.index.hideLoading(); + common_vendor.index.showToast({ + title: "发布失败", + icon: "none", + duration: 2e3 + }); + } + } + } +}; +if (!Array) { + const _easycom_wht_select2 = common_vendor.resolveComponent("wht-select"); + const _easycom_uni_number_box2 = common_vendor.resolveComponent("uni-number-box"); + const _easycom_uni_datetime_picker2 = common_vendor.resolveComponent("uni-datetime-picker"); + const _easycom_uni_easyinput2 = common_vendor.resolveComponent("uni-easyinput"); + (_easycom_wht_select2 + _easycom_uni_number_box2 + _easycom_uni_datetime_picker2 + _easycom_uni_easyinput2)(); +} +const _easycom_wht_select = () => "./uni_modules/wht-select/components/wht-select/wht-select.js"; +const _easycom_uni_number_box = () => "./uni_modules/uni-number-box/components/uni-number-box/uni-number-box.js"; +const _easycom_uni_datetime_picker = () => "./uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.js"; +const _easycom_uni_easyinput = () => "./uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js"; +if (!Math) { + (_easycom_wht_select + _easycom_uni_number_box + _easycom_uni_datetime_picker + _easycom_uni_easyinput)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $data.Display + }, $data.Display ? common_vendor.e({ + b: common_vendor.o$1(($event) => $options.open()), + c: common_vendor.o$1((...args) => _ctx.NameAnchor && _ctx.NameAnchor(...args)), + d: common_vendor.o$1((...args) => $options.blur && $options.blur(...args)), + e: $data.nameAnchor === "" && $data.Hint === true + }, $data.nameAnchor === "" && $data.Hint === true ? {} : {}, { + f: common_vendor.o$1($options.country), + g: common_vendor.p({ + backgroundColor: "#ffffff", + placeholderColor: "#666666", + textColor: "#666666", + borderColor: "#ffffff", + options: $data.Country, + filterable: $data.filterable, + placeholder: "请选择国家" + }), + h: $data.countrys === "" && $data.Hint === true + }, $data.countrys === "" && $data.Hint === true ? {} : {}, { + i: common_vendor.o$1($options.gender), + j: common_vendor.p({ + backgroundColor: "#ffffff", + placeholderColor: "#666666", + textColor: "#666666", + borderColor: "#ffffff", + options: $data.Gender, + placeholder: "性别" + }), + k: $data.genders === 0 + }, $data.genders === 0 ? {} : {}, { + l: $data.genders === 1 + }, $data.genders === 1 ? {} : {}, { + m: $data.genders === 2 + }, $data.genders === 2 ? {} : {}, { + n: $data.genders === 0 && $data.Hint === true + }, $data.genders === 0 && $data.Hint === true ? {} : {}, { + o: common_vendor.o$1(($event) => $data.numberCoins = $event), + p: common_vendor.p({ + max: 9999999999, + background: "#03ABA8", + modelValue: $data.numberCoins + }), + q: $data.numberCoins === "" && $data.Hint === true + }, $data.numberCoins === "" && $data.Hint === true ? {} : {}, { + r: common_vendor.o$1(($event) => $data.datetimesingle = $event), + s: common_vendor.p({ + type: "datetime", + ["hide-second"]: "true", + modelValue: $data.datetimesingle + }), + t: $data.datetimesingle === "" && $data.Hint === true + }, $data.datetimesingle === "" && $data.Hint === true ? {} : {}, { + v: common_vendor.o$1(($event) => $data.session = $event), + w: common_vendor.p({ + background: "#03ABA8", + modelValue: $data.session + }), + x: $data.session === "" && $data.Hint === true + }, $data.session === "" && $data.Hint === true ? {} : {}, { + y: common_vendor.o$1(($event) => $data.remarks = $event), + z: common_vendor.p({ + type: "textarea", + placeholder: "备注", + maxlength: "-1", + modelValue: $data.remarks + }), + A: common_vendor.o$1(($event) => $options.Publish()), + B: common_vendor.o$1(() => { + }), + C: common_vendor.n($data.Display ? "create-module" : "close-animation "), + D: common_vendor.o$1(($event) => $options.open()) + }) : {}); +} +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-96d38e2b"]]); +exports.MiniProgramPage = MiniProgramPage; +//# sourceMappingURL=../.sourcemap/mp-weixin/NewAddedPk.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/adapter-vue.js b/unpackage/dist/dev/mp-weixin/TUIKit/adapter-vue.js new file mode 100644 index 0000000..4779f31 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/adapter-vue.js @@ -0,0 +1,6 @@ +"use strict"; +const common_vendor = require("../common/vendor.js"); +let vueVersion; +vueVersion = 3; +common_vendor.index.__f__("warn", "at TUIKit/adapter-vue.ts:13", `[adapter-vue]: vue version is ${vueVersion}`); +//# sourceMappingURL=../../.sourcemap/mp-weixin/TUIKit/adapter-vue.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.js new file mode 100644 index 0000000..b3efede --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.js @@ -0,0 +1,59 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +require("../../../adapter-vue.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: ["isGroup"], + emits: ["openGroupManagement"], + setup(__props, { emit: __emit }) { + const currentConversation = common_vendor.ref(); + const typingStatus = common_vendor.ref(false); + const setChatHeaderContent = (content) => { + var _a; + (_a = common_vendor.i) == null ? void 0 : _a.setNavigationBarTitle({ + title: content || "云通信 IM" + }); + }; + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdated + }); + common_vendor.Jt.watch(common_vendor.o.CHAT, { + typingStatus: onTypingStatusUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdated + }); + common_vendor.Jt.unwatch(common_vendor.o.CHAT, { + typingStatus: onTypingStatusUpdated + }); + }); + common_vendor.onLoad(() => { + var _a; + setChatHeaderContent((_a = currentConversation.value) == null ? void 0 : _a.getShowName()); + }); + function onCurrentConversationUpdated(conversation) { + var _a; + currentConversation.value = conversation; + if (!typingStatus.value) { + setChatHeaderContent((_a = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _a.getShowName()); + } + } + function onTypingStatusUpdated(status) { + var _a; + typingStatus.value = status; + if (typingStatus.value) { + setChatHeaderContent(common_vendor.Wt.t("TUIChat.对方正在输入")); + } else { + setChatHeaderContent((_a = currentConversation.value) == null ? void 0 : _a.getShowName()); + } + } + return (_ctx, _cache) => { + return {}; + }; + } +}); +wx.createComponent(_sfc_main); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/chat-header/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.wxml new file mode 100644 index 0000000..f6bb233 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/chat-header/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/config.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/config.js new file mode 100644 index 0000000..9ec9e90 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/config.js @@ -0,0 +1,69 @@ +"use strict"; +class TUIChatConfig { + constructor() { + this.chatType = ""; + this.features = { + DownloadFile: true, + CopyMessage: true, + DeleteMessage: true, + RevokeMessage: true, + QuoteMessage: true, + ForwardMessage: true, + TranslateMessage: true, + VoiceToText: true, + MultiSelection: true, + EmojiReaction: true, + InputEmoji: true, + InputStickers: true, + InputImage: true, + InputVoice: true, + InputVideo: true, + InputFile: true, + InputEvaluation: true, + InputQuickReplies: true, + InputCustomMessage: true, + InputMention: true, + MessageSearch: true, + ReadStatus: true + }; + this.theme = "light"; + } + static getInstance() { + if (!TUIChatConfig.instance) { + TUIChatConfig.instance = new TUIChatConfig(); + } + return TUIChatConfig.instance; + } + setChatType(chatType) { + this.chatType = chatType; + } + getChatType() { + return this.chatType; + } + hideTUIChatFeatures(features) { + if (!features) { + return; + } + features.forEach((feature) => { + if (this.features[feature]) { + this.features[feature] = false; + } + }); + } + getFeatureConfig(key) { + if (key) { + return this.features[key]; + } + return this.features; + } + setTheme(theme) { + this.theme = theme; + } + getTheme() { + return this.theme; + } +} +const ChatConfig = TUIChatConfig.getInstance(); +ChatConfig.hideTUIChatFeatures.bind(ChatConfig); +exports.ChatConfig = ChatConfig; +//# sourceMappingURL=../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/config.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/custom-emoji.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/custom-emoji.js new file mode 100644 index 0000000..5795d8e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/custom-emoji.js @@ -0,0 +1,6 @@ +"use strict"; +const CUSTOM_BIG_EMOJI_URL = ""; +const CUSTOM_BIG_EMOJI_GROUP_LIST = []; +exports.CUSTOM_BIG_EMOJI_GROUP_LIST = CUSTOM_BIG_EMOJI_GROUP_LIST; +exports.CUSTOM_BIG_EMOJI_URL = CUSTOM_BIG_EMOJI_URL; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/emoji-config/custom-emoji.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/default-emoji.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/default-emoji.js new file mode 100644 index 0000000..7fe4fa9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/default-emoji.js @@ -0,0 +1,159 @@ +"use strict"; +var _a, _b; +const TUIKit_components_TUIChat_emojiConfig_locales_zh_cn = require("./locales/zh_cn.js"); +const TUIKit_components_TUIChat_emojiConfig_locales_en = require("./locales/en.js"); +const TUIKit_constant = require("../../../constant.js"); +const DEFAULT_BASIC_EMOJI_URL = "https://web.sdk.qcloud.com/im/assets/emoji-plugin/"; +const DEFAULT_BIG_EMOJI_URL = "https://web.sdk.qcloud.com/im/assets/face-elem/"; +const DEFAULT_BASIC_EMOJI_URL_MAPPING = { + "[TUIEmoji_Expect]": "emoji_0@2x.png", + "[TUIEmoji_Blink]": "emoji_1@2x.png", + "[TUIEmoji_Guffaw]": "emoji_2@2x.png", + "[TUIEmoji_KindSmile]": "emoji_3@2x.png", + "[TUIEmoji_Haha]": "emoji_4@2x.png", + "[TUIEmoji_Cheerful]": "emoji_5@2x.png", + "[TUIEmoji_Smile]": "emoji_6@2x.png", + "[TUIEmoji_Sorrow]": "emoji_7@2x.png", + "[TUIEmoji_Speechless]": "emoji_8@2x.png", + "[TUIEmoji_Amazed]": "emoji_9@2x.png", + "[TUIEmoji_Complacent]": "emoji_10@2x.png", + "[TUIEmoji_Lustful]": "emoji_11@2x.png", + "[TUIEmoji_Stareyes]": "emoji_12@2x.png", + "[TUIEmoji_Giggle]": "emoji_13@2x.png", + "[TUIEmoji_Daemon]": "emoji_14@2x.png", + "[TUIEmoji_Rage]": "emoji_15@2x.png", + "[TUIEmoji_Yawn]": "emoji_16@2x.png", + "[TUIEmoji_TearsLaugh]": "emoji_17@2x.png", + "[TUIEmoji_Silly]": "emoji_18@2x.png", + "[TUIEmoji_Wail]": "emoji_19@2x.png", + "[TUIEmoji_Kiss]": "emoji_20@2x.png", + "[TUIEmoji_Trapped]": "emoji_21@2x.png", + "[TUIEmoji_Fear]": "emoji_22@2x.png", + "[TUIEmoji_BareTeeth]": "emoji_23@2x.png", + "[TUIEmoji_FlareUp]": "emoji_24@2x.png", + "[TUIEmoji_Tact]": "emoji_25@2x.png", + "[TUIEmoji_Shit]": "emoji_26@2x.png", + "[TUIEmoji_ShutUp]": "emoji_27@2x.png", + "[TUIEmoji_Sigh]": "emoji_28@2x.png", + "[TUIEmoji_Hehe]": "emoji_29@2x.png", + "[TUIEmoji_Silent]": "emoji_30@2x.png", + "[TUIEmoji_Skull]": "emoji_31@2x.png", + "[TUIEmoji_Mask]": "emoji_32@2x.png", + "[TUIEmoji_Beer]": "emoji_33@2x.png", + "[TUIEmoji_Cake]": "emoji_34@2x.png", + "[TUIEmoji_RedPacket]": "emoji_35@2x.png", + "[TUIEmoji_Bombs]": "emoji_36@2x.png", + "[TUIEmoji_Ai]": "emoji_37@2x.png", + "[TUIEmoji_Celebrate]": "emoji_38@2x.png", + "[TUIEmoji_Bless]": "emoji_39@2x.png", + "[TUIEmoji_Flower]": "emoji_40@2x.png", + "[TUIEmoji_Watermelon]": "emoji_41@2x.png", + "[TUIEmoji_Cow]": "emoji_42@2x.png", + "[TUIEmoji_Fool]": "emoji_43@2x.png", + "[TUIEmoji_Surprised]": "emoji_44@2x.png", + "[TUIEmoji_Askance]": "emoji_45@2x.png", + "[TUIEmoji_Monster]": "emoji_46@2x.png", + "[TUIEmoji_Pig]": "emoji_47@2x.png", + "[TUIEmoji_Coffee]": "emoji_48@2x.png", + "[TUIEmoji_Ok]": "emoji_49@2x.png", + "[TUIEmoji_Heart]": "emoji_50@2x.png", + "[TUIEmoji_Sun]": "emoji_51@2x.png", + "[TUIEmoji_Moon]": "emoji_52@2x.png", + "[TUIEmoji_Star]": "emoji_53@2x.png", + "[TUIEmoji_Rich]": "emoji_54@2x.png", + "[TUIEmoji_Fortune]": "emoji_55@2x.png", + "[TUIEmoji_857]": "emoji_56@2x.png", + "[TUIEmoji_666]": "emoji_57@2x.png", + "[TUIEmoji_Prohibit]": "emoji_58@2x.png", + "[TUIEmoji_Convinced]": "emoji_59@2x.png", + "[TUIEmoji_Knife]": "emoji_60@2x.png", + "[TUIEmoji_Like]": "emoji_61@2x.png" +}; +const BIG_EMOJI_GROUP_LIST = [ + { + emojiGroupID: 1, + type: TUIKit_constant.EMOJI_TYPE.BIG, + url: DEFAULT_BIG_EMOJI_URL, + list: [ + "yz00", + "yz01", + "yz02", + "yz03", + "yz04", + "yz05", + "yz06", + "yz07", + "yz08", + "yz09", + "yz10", + "yz11", + "yz12", + "yz13", + "yz14", + "yz15", + "yz16", + "yz17" + ] + }, + { + emojiGroupID: 2, + type: TUIKit_constant.EMOJI_TYPE.BIG, + url: DEFAULT_BIG_EMOJI_URL, + list: [ + "ys00", + "ys01", + "ys02", + "ys03", + "ys04", + "ys05", + "ys06", + "ys07", + "ys08", + "ys09", + "ys10", + "ys11", + "ys12", + "ys13", + "ys14", + "ys15" + ] + }, + { + emojiGroupID: 3, + type: TUIKit_constant.EMOJI_TYPE.BIG, + url: DEFAULT_BIG_EMOJI_URL, + list: [ + "gcs00", + "gcs01", + "gcs02", + "gcs03", + "gcs04", + "gcs05", + "gcs06", + "gcs07", + "gcs08", + "gcs09", + "gcs10", + "gcs11", + "gcs12", + "gcs13", + "gcs14", + "gcs15", + "gcs16" + ] + } +]; +const BASIC_EMOJI_NAME_TO_KEY_MAPPING = { + ...Object.fromEntries( + (_a = Object.entries(TUIKit_components_TUIChat_emojiConfig_locales_zh_cn.Emoji)) == null ? void 0 : _a.map(([key, val]) => [val, key]) + ), + ...Object.fromEntries( + (_b = Object.entries(TUIKit_components_TUIChat_emojiConfig_locales_en.Emoji)) == null ? void 0 : _b.map(([key, val]) => [val, key]) + ) +}; +exports.BASIC_EMOJI_NAME_TO_KEY_MAPPING = BASIC_EMOJI_NAME_TO_KEY_MAPPING; +exports.BIG_EMOJI_GROUP_LIST = BIG_EMOJI_GROUP_LIST; +exports.DEFAULT_BASIC_EMOJI_URL = DEFAULT_BASIC_EMOJI_URL; +exports.DEFAULT_BASIC_EMOJI_URL_MAPPING = DEFAULT_BASIC_EMOJI_URL_MAPPING; +exports.DEFAULT_BIG_EMOJI_URL = DEFAULT_BIG_EMOJI_URL; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/emoji-config/default-emoji.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/index.js new file mode 100644 index 0000000..8e18955 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/index.js @@ -0,0 +1,77 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const TUIKit_components_TUIChat_emojiConfig_customEmoji = require("./custom-emoji.js"); +const TUIKit_components_TUIChat_emojiConfig_defaultEmoji = require("./default-emoji.js"); +const TUIKit_components_TUIChat_emojiConfig_locales_zh_cn = require("./locales/zh_cn.js"); +const TUIKit_constant = require("../../../constant.js"); +const TUIKit_utils_env = require("../../../utils/env.js"); +const BASIC_EMOJI_URL = TUIKit_components_TUIChat_emojiConfig_defaultEmoji.DEFAULT_BASIC_EMOJI_URL; +const BASIC_EMOJI_URL_MAPPING = TUIKit_components_TUIChat_emojiConfig_defaultEmoji.DEFAULT_BASIC_EMOJI_URL_MAPPING; +const EMOJI_GROUP_LIST = [ + { + emojiGroupID: 0, + type: TUIKit_constant.EMOJI_TYPE.BASIC, + url: BASIC_EMOJI_URL, + list: Object.keys(BASIC_EMOJI_URL_MAPPING) + }, + ...TUIKit_components_TUIChat_emojiConfig_defaultEmoji.BIG_EMOJI_GROUP_LIST, + ...TUIKit_components_TUIChat_emojiConfig_customEmoji.CUSTOM_BIG_EMOJI_GROUP_LIST +]; +const convertKeyToEmojiName = (key) => { + return TUIKit_utils_env.isWeChat ? TUIKit_components_TUIChat_emojiConfig_locales_zh_cn.Emoji[key] : common_vendor.Wt.t(`Emoji.${key}`); +}; +const transformTextWithKeysToEmojiNames = (text) => { + if (!text) { + return ""; + } + const reg = /(\[.+?\])/g; + let txt = text; + if (reg.test(text)) { + txt = text.replace(reg, (match) => BASIC_EMOJI_URL_MAPPING[match] ? convertKeyToEmojiName(match) : match); + } + return txt; +}; +const transformTextWithEmojiNamesToKeys = (text) => { + if (!text) { + return ""; + } + const reg = /(\[.+?\])/g; + let txt = text; + if (reg.test(text)) { + txt = text.replace(reg, (match) => TUIKit_components_TUIChat_emojiConfig_defaultEmoji.BASIC_EMOJI_NAME_TO_KEY_MAPPING[match] || match); + } + return txt; +}; +const parseTextToRenderArray = (text) => { + const emojiRegex = /\[([^\]]+)\]/g; + const result = []; + let match; + let lastIndex = 0; + while ((match = emojiRegex.exec(text)) !== null) { + const startIndex = match.index; + const endIndex = emojiRegex.lastIndex; + const emojiKey = match[0]; + if (startIndex > lastIndex) { + result.push({ type: "text", content: text.substring(lastIndex, startIndex) }); + } + const emojiUrl = BASIC_EMOJI_URL + BASIC_EMOJI_URL_MAPPING[emojiKey]; + if (emojiUrl) { + result.push({ type: "image", content: emojiUrl, emojiKey }); + } else { + result.push({ type: "text", content: emojiKey }); + } + lastIndex = endIndex; + emojiRegex.lastIndex = lastIndex; + } + if (lastIndex < text.length) { + result.push({ type: "text", content: text.substring(lastIndex) }); + } + return result; +}; +exports.BASIC_EMOJI_URL_MAPPING = BASIC_EMOJI_URL_MAPPING; +exports.EMOJI_GROUP_LIST = EMOJI_GROUP_LIST; +exports.convertKeyToEmojiName = convertKeyToEmojiName; +exports.parseTextToRenderArray = parseTextToRenderArray; +exports.transformTextWithEmojiNamesToKeys = transformTextWithEmojiNamesToKeys; +exports.transformTextWithKeysToEmojiNames = transformTextWithKeysToEmojiNames; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/emoji-config/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/locales/en.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/locales/en.js new file mode 100644 index 0000000..212b91f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/locales/en.js @@ -0,0 +1,67 @@ +"use strict"; +const Emoji = { + "[TUIEmoji_Smile]": "[Smile]", + "[TUIEmoji_Expect]": "[Expect]", + "[TUIEmoji_Blink]": "[Blink]", + "[TUIEmoji_Guffaw]": "[Guffaw]", + "[TUIEmoji_KindSmile]": "[KindSmile]", + "[TUIEmoji_Haha]": "[Haha]", + "[TUIEmoji_Cheerful]": "[Cheerful]", + "[TUIEmoji_Speechless]": "[Speechless]", + "[TUIEmoji_Amazed]": "[Amazed]", + "[TUIEmoji_Sorrow]": "[Sorrow]", + "[TUIEmoji_Complacent]": "[Complacent]", + "[TUIEmoji_Silly]": "[Silly]", + "[TUIEmoji_Lustful]": "[Lustful]", + "[TUIEmoji_Giggle]": "[Giggle]", + "[TUIEmoji_Kiss]": "[Kiss]", + "[TUIEmoji_Wail]": "[Wail]", + "[TUIEmoji_TearsLaugh]": "[TearsLaugh]", + "[TUIEmoji_Trapped]": "[Trapped]", + "[TUIEmoji_Mask]": "[Mask]", + "[TUIEmoji_Fear]": "[Fear]", + "[TUIEmoji_BareTeeth]": "[BareTeeth]", + "[TUIEmoji_FlareUp]": "[FlareUp]", + "[TUIEmoji_Yawn]": "[Yawn]", + "[TUIEmoji_Tact]": "[Tact]", + "[TUIEmoji_Stareyes]": "[StarEyes]", + "[TUIEmoji_ShutUp]": "[ShutUp]", + "[TUIEmoji_Sigh]": "[Sigh]", + "[TUIEmoji_Hehe]": "[Hehe]", + "[TUIEmoji_Silent]": "[Silent]", + "[TUIEmoji_Surprised]": "[Surprised]", + "[TUIEmoji_Askance]": "[Askance]]", + "[TUIEmoji_Ok]": "[OK]", + "[TUIEmoji_Shit]": "[Shit]", + "[TUIEmoji_Monster]": "[Monster]", + "[TUIEmoji_Daemon]": "[Daemon]", + "[TUIEmoji_Rage]": "[Rage]", + "[TUIEmoji_Fool]": "[Fool]", + "[TUIEmoji_Pig]": "[Pig]", + "[TUIEmoji_Cow]": "[Cow]", + "[TUIEmoji_Ai]": "[AI]", + "[TUIEmoji_Skull]": "[Skull]", + "[TUIEmoji_Bombs]": "[Bombs]", + "[TUIEmoji_Coffee]": "[Coffee]", + "[TUIEmoji_Cake]": "[Cake]", + "[TUIEmoji_Beer]": "[Beer]", + "[TUIEmoji_Flower]": "[Flower]", + "[TUIEmoji_Watermelon]": "[Watermelon]", + "[TUIEmoji_Rich]": "[Rich]", + "[TUIEmoji_Heart]": "[Heart]", + "[TUIEmoji_Moon]": "[Moon]", + "[TUIEmoji_Sun]": "[Sun]", + "[TUIEmoji_Star]": "[Star]", + "[TUIEmoji_RedPacket]": "[RedPacket]", + "[TUIEmoji_Celebrate]": "[Celebrate]", + "[TUIEmoji_Bless]": "[Bless]", + "[TUIEmoji_Fortune]": "[Fortune]", + "[TUIEmoji_Convinced]": "[Convinced]", + "[TUIEmoji_Prohibit]": "[Prohibit]", + "[TUIEmoji_666]": "[666]", + "[TUIEmoji_857]": "[857]", + "[TUIEmoji_Knife]": "[Knife]", + "[TUIEmoji_Like]": "[Like]" +}; +exports.Emoji = Emoji; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/emoji-config/locales/en.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/locales/zh_cn.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/locales/zh_cn.js new file mode 100644 index 0000000..9ba642e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/emoji-config/locales/zh_cn.js @@ -0,0 +1,67 @@ +"use strict"; +const Emoji = { + "[TUIEmoji_Smile]": "[微笑]", + "[TUIEmoji_Expect]": "[期待]", + "[TUIEmoji_Blink]": "[眨眼]", + "[TUIEmoji_Guffaw]": "[大笑]", + "[TUIEmoji_KindSmile]": "[姨母笑]", + "[TUIEmoji_Haha]": "[哈哈哈]", + "[TUIEmoji_Cheerful]": "[愉快]", + "[TUIEmoji_Speechless]": "[无语]", + "[TUIEmoji_Amazed]": "[惊讶]", + "[TUIEmoji_Sorrow]": "[悲伤]", + "[TUIEmoji_Complacent]": "[得意]", + "[TUIEmoji_Silly]": "[傻了]", + "[TUIEmoji_Lustful]": "[色]", + "[TUIEmoji_Giggle]": "[憨笑]", + "[TUIEmoji_Kiss]": "[亲亲]", + "[TUIEmoji_Wail]": "[大哭]", + "[TUIEmoji_TearsLaugh]": "[哭笑]", + "[TUIEmoji_Trapped]": "[困]", + "[TUIEmoji_Mask]": "[口罩]", + "[TUIEmoji_Fear]": "[恐惧]", + "[TUIEmoji_BareTeeth]": "[龇牙]", + "[TUIEmoji_FlareUp]": "[发怒]", + "[TUIEmoji_Yawn]": "[打哈欠]", + "[TUIEmoji_Tact]": "[机智]", + "[TUIEmoji_Stareyes]": "[星星眼]", + "[TUIEmoji_ShutUp]": "[闭嘴]", + "[TUIEmoji_Sigh]": "[叹气]", + "[TUIEmoji_Hehe]": "[呵呵]", + "[TUIEmoji_Silent]": "[收声]", + "[TUIEmoji_Surprised]": "[惊喜]", + "[TUIEmoji_Askance]": "[白眼]", + "[TUIEmoji_Ok]": "[OK]", + "[TUIEmoji_Shit]": "[便便]", + "[TUIEmoji_Monster]": "[怪兽]", + "[TUIEmoji_Daemon]": "[恶魔]", + "[TUIEmoji_Rage]": "[恶魔怒]", + "[TUIEmoji_Fool]": "[衰]", + "[TUIEmoji_Pig]": "[猪]", + "[TUIEmoji_Cow]": "[牛]", + "[TUIEmoji_Ai]": "[AI]", + "[TUIEmoji_Skull]": "[骷髅]", + "[TUIEmoji_Bombs]": "[炸弹]", + "[TUIEmoji_Coffee]": "[咖啡]", + "[TUIEmoji_Cake]": "[蛋糕]", + "[TUIEmoji_Beer]": "[啤酒]", + "[TUIEmoji_Flower]": "[花]", + "[TUIEmoji_Watermelon]": "[瓜]", + "[TUIEmoji_Rich]": "[壕]", + "[TUIEmoji_Heart]": "[爱心]", + "[TUIEmoji_Moon]": "[月亮]", + "[TUIEmoji_Sun]": "[太阳]", + "[TUIEmoji_Star]": "[星星]", + "[TUIEmoji_RedPacket]": "[红包]", + "[TUIEmoji_Celebrate]": "[庆祝]", + "[TUIEmoji_Bless]": "[福]", + "[TUIEmoji_Fortune]": "[发]", + "[TUIEmoji_Convinced]": "[服]", + "[TUIEmoji_Prohibit]": "[禁]", + "[TUIEmoji_666]": "[666]", + "[TUIEmoji_857]": "[857]", + "[TUIEmoji_Knife]": "[刀]", + "[TUIEmoji_Like]": "[赞]" +}; +exports.Emoji = Emoji; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/emoji-config/locales/zh_cn.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/entry-chat-only.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/entry-chat-only.js new file mode 100644 index 0000000..c3b7b18 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/entry-chat-only.js @@ -0,0 +1,24 @@ +"use strict"; +const common_vendor = require("../../../common/vendor.js"); +const TUIKit_index = require("../../index.js"); +const initChat = (options) => { + TUIKit_index.TUIChatKit.init(); + const { chat } = common_vendor.A.getContext(); + if (options && options.conversationID && (chat == null ? void 0 : chat.isReady())) { + const { conversationID } = options; + if (!conversationID.startsWith("C2C") && !conversationID.startsWith("GROUP")) { + common_vendor.index.__f__("warn", "at TUIKit/components/TUIChat/entry-chat-only.ts:22", "conversationID from options is invalid."); + return; + } + common_vendor.Xt.switchConversation(conversationID); + } +}; +const logout = (flag) => { + if (flag) { + return common_vendor.A.logout(); + } + return Promise.resolve(); +}; +exports.initChat = initChat; +exports.logout = logout; +//# sourceMappingURL=../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/entry-chat-only.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.js new file mode 100644 index 0000000..eb1c75a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.js @@ -0,0 +1,144 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +require("../../../adapter-vue.js"); +const TUIKit_components_common_Toast_index = require("../../common/Toast/index.js"); +const TUIKit_utils_env = require("../../../utils/env.js"); +const TUIKit_components_TUIChat_utils_utils = require("../utils/utils.js"); +const TUIKit_components_TUIChat_offlinePushInfoManager_index = require("../offlinePushInfoManager/index.js"); +const TUIKit_components_common_Toast_type = require("../../common/Toast/type.js"); +if (!Math) { + (Transfer + Overlay)(); +} +const Overlay = () => "../../common/Overlay/index.js"; +const Transfer = () => "../../common/Transfer/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + emits: ["toggleMultipleSelectMode"], + setup(__props, { emit: __emit }) { + const emits = __emit; + let selectedToForwardMessageIDList = []; + let isMergeForward = false; + const isShowForwardPanel = common_vendor.ref(false); + const customConversationList = common_vendor.ref(); + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CUSTOM, { + singleForwardMessageID: onSingleForwardMessageIDUpdated, + multipleForwardMessageID: onMultipleForwardMessageIDUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CUSTOM, { + singleForwardMessageID: onSingleForwardMessageIDUpdated, + multipleForwardMessageID: onMultipleForwardMessageIDUpdated + }); + clearStoreData(); + }); + function onSingleForwardMessageIDUpdated(messageID) { + if (typeof messageID !== "undefined") { + isMergeForward = false; + selectedToForwardMessageIDList = [messageID]; + openForwardPanel(); + } + } + function onMultipleForwardMessageIDUpdated(params) { + if (!params) { + return; + } + isMergeForward = false; + const { + isMergeForward: _isMergeForward, + messageIDList: selectedMessageIDList + } = params || {}; + if ((selectedMessageIDList == null ? void 0 : selectedMessageIDList.length) > 0) { + isMergeForward = _isMergeForward; + selectedToForwardMessageIDList = selectedMessageIDList; + openForwardPanel(); + } else { + TUIKit_components_common_Toast_index.Toast({ + message: common_vendor.Wt.t("TUIChat.未选择消息"), + type: TUIKit_components_common_Toast_type.TOAST_TYPE.ERROR + }); + } + } + function clearStoreData() { + common_vendor.Jt.update(common_vendor.o.CUSTOM, "singleForwardMessageID", void 0); + common_vendor.Jt.update(common_vendor.o.CUSTOM, "multipleForwardMessageID", void 0); + } + function closeForwardPanel() { + clearStoreData(); + isShowForwardPanel.value = false; + } + function openForwardPanel() { + getTransforRenderDataList(); + isShowForwardPanel.value = true; + } + function finishSelected(selectedConvIDWrapperList) { + if ((selectedConvIDWrapperList == null ? void 0 : selectedConvIDWrapperList.length) === 0) + return; + const selectedConversationList = selectedConvIDWrapperList.map((IDWrapper) => common_vendor.Jt.getConversationModel(IDWrapper.userID)); + const unsentMessageQueue = selectedToForwardMessageIDList.map((messageID) => common_vendor.Jt.getMessageModel(messageID)).sort((a, b) => a.time - b.time); + const forwardPromises = selectedConversationList.map((conversation) => { + const offlinePushInfoCreateParams = { + conversation, + messageType: common_vendor.qt.TYPES.MSG_MERGER + }; + return common_vendor.Qt.sendForwardMessage( + [conversation], + unsentMessageQueue, + { + needMerge: isMergeForward, + offlinePushInfo: TUIKit_components_TUIChat_offlinePushInfoManager_index.OfflinePushInfoManager.create(offlinePushInfoCreateParams), + params: { + needReadReceipt: TUIKit_components_TUIChat_utils_utils.isEnabledMessageReadReceiptGlobal() + } + } + ); + }); + Promise.allSettled(forwardPromises).then((results) => { + for (const result of results) { + const { status } = result; + if (status === "rejected") { + const errorMessage = result.reason.code === 80001 ? common_vendor.Wt.t("TUIChat.内容包含敏感词汇") : result.reason.message; + TUIKit_components_common_Toast_index.Toast({ + message: errorMessage, + type: TUIKit_components_common_Toast_type.TOAST_TYPE.ERROR + }); + break; + } + } + }); + closeForwardPanel(); + emits("toggleMultipleSelectMode", false); + } + function getTransforRenderDataList() { + const conversationList = common_vendor.Jt.getData(common_vendor.o.CONV, "conversationList"); + customConversationList.value = conversationList.map((conversation) => { + return { + // To achieve reusability of Transfer, userID is used here instead of ConversationID + userID: conversation.conversationID, + nick: conversation.getShowName(), + avatar: conversation.getAvatar() + }; + }); + } + return (_ctx, _cache) => { + return { + a: common_vendor.o$1(closeForwardPanel), + b: common_vendor.o$1(finishSelected), + c: common_vendor.p({ + title: common_vendor.unref(common_vendor.Wt).t("TUIChat.转发"), + isSearch: false, + isCustomItem: false, + list: common_vendor.unref(customConversationList), + isHiddenBackIcon: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) + }), + d: common_vendor.p({ + visible: common_vendor.unref(isShowForwardPanel), + useMask: false + }) + }; + }; + } +}); +wx.createComponent(_sfc_main); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/forward/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.json new file mode 100644 index 0000000..f8a652f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "overlay": "../../common/Overlay/index", + "transfer": "../../common/Transfer/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.wxml new file mode 100644 index 0000000..03d2255 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/forward/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.js new file mode 100644 index 0000000..cebbcfb --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.js @@ -0,0 +1,4 @@ +"use strict"; +const TUIKit_components_index = require("../index.js"); +wx.createPage(TUIKit_components_index.MiniProgramPage$1); +//# sourceMappingURL=../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.json new file mode 100644 index 0000000..c7ffff2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.json @@ -0,0 +1,11 @@ +{ + "navigationBarTitleText": "腾讯云 IM", + "usingComponents": { + "chat-header": "./chat-header/index", + "message-list": "./message-list/index", + "message-input": "./message-input/index", + "multiple-select-panel": "./mulitple-select-panel/index", + "forward": "./forward/index", + "message-input-toolbar": "./message-input-toolbar/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.wxml new file mode 100644 index 0000000..cad5947 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.wxml @@ -0,0 +1 @@ +{{q}}{{M}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.wxss new file mode 100644 index 0000000..fd43003 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/index.wxss @@ -0,0 +1,707 @@ + +.Navigation { + width: 100%; + height: 100rpx; + z-index: 999; +} +.Navigationimg { + width: 100%; + height: 200rpx; + position: absolute; + top: 0; + left: 0; + z-index: -1; +} +.Navigation { + width: 100%; + height: 200rpx; + z-index: 999; + display: flex; + justify-content: center; + align-items: center; +} +.Navigation-left{ + width: 100%; + height: 200rpx; + z-index: 998; +} +.Return { + width: 70rpx; + height: 70rpx; + position: absolute; + top: 120rpx; + left: 360rpx; + z-index: 999; + font-weight: bold; +} + +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-40b33296, div.data-v-40b33296, ul.data-v-40b33296, ol.data-v-40b33296, dt.data-v-40b33296, dd.data-v-40b33296, li.data-v-40b33296, dl.data-v-40b33296, h1.data-v-40b33296, h2.data-v-40b33296, h3.data-v-40b33296, h4.data-v-40b33296, p.data-v-40b33296 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-40b33296, ul.data-v-40b33296, li.data-v-40b33296 { + list-style: none; +} +img.data-v-40b33296 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-40b33296 { + color: #000; + background: #FFF; +} +.clear.data-v-40b33296 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-40b33296 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-40b33296:hover { + text-decoration: none; +} +input.data-v-40b33296, textarea.data-v-40b33296 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-40b33296:focus, input.data-v-40b33296:active, textarea.data-v-40b33296:focus, textarea.data-v-40b33296:active { + outline: none; +} +.chat-aside.data-v-40b33296 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.tui-conversation.data-v-40b33296 { + width: 100%; + height: 100%; + flex: 1; + overflow: hidden; + display: flex; + flex-direction: column; +} +.tui-conversation-list.data-v-40b33296 { + overflow: auto; +} +.tui-conversation-header.data-v-40b33296 { + width: 100%; + position: relative; +} +.tui-conversation-header .list.data-v-40b33296 { + display: flex; + align-items: center; + border-bottom: 1px solid #F4F5F9; + padding: 7px 0; +} +.tui-conversation-header .list-item.data-v-40b33296 { + flex: 1; + display: flex; + position: relative; + padding: 7px; + cursor: pointer; + -webkit-user-select: none; + user-select: none; +} +.tui-conversation-header-item.data-v-40b33296 { + flex: 1; + display: flex; + align-items: center; +} +.tui-conversation-header-item-title.data-v-40b33296 { + padding: 0 8px; + font-size: 16px; + font-weight: normal; +} +.tui-conversation-header-children.data-v-40b33296 { + position: absolute; + top: 100%; + z-index: 3; + padding: 7px 9px; + border-bottom: none; + box-shadow: 0 3px 7px 0 #0003; + flex-direction: column; +} +.network.data-v-40b33296 { + padding: 0 12px; + display: flex; + align-items: center; +} +.network .icon-error.data-v-40b33296 { + display: flex; + justify-content: center; + align-items: center; + width: 15px; + height: 15px; + border-radius: 15px; + color: #fff; + font-style: normal; +} +.network-content.data-v-40b33296 { + padding: 5px; + font-size: 12px; + line-height: 22px; +} +.plus.data-v-40b33296 { + display: inline-block; + width: 30px; + height: 30px; + position: relative; +} +.plus.data-v-40b33296::before, +.plus.data-v-40b33296::after { + content: ""; + position: absolute; + background-color: #232832; + border-radius: 0.5px; + width: 1px; + height: 14px; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; +} +.plus.data-v-40b33296::after { + transform: rotate(90deg); + width: 0.5px; +} +.network-content.data-v-40b33296 { + font-family: PingFangSC-Regular; + font-weight: 400; + color: #e54545; + letter-spacing: 0; +} +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-fdde69b1, div.data-v-fdde69b1, ul.data-v-fdde69b1, ol.data-v-fdde69b1, dt.data-v-fdde69b1, dd.data-v-fdde69b1, li.data-v-fdde69b1, dl.data-v-fdde69b1, h1.data-v-fdde69b1, h2.data-v-fdde69b1, h3.data-v-fdde69b1, h4.data-v-fdde69b1, p.data-v-fdde69b1 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-fdde69b1, ul.data-v-fdde69b1, li.data-v-fdde69b1 { + list-style: none; +} +img.data-v-fdde69b1 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-fdde69b1 { + color: #000; + background: #FFF; +} +.clear.data-v-fdde69b1 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-fdde69b1 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-fdde69b1:hover { + text-decoration: none; +} +input.data-v-fdde69b1, textarea.data-v-fdde69b1 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-fdde69b1:focus, input.data-v-fdde69b1:active, textarea.data-v-fdde69b1:focus, textarea.data-v-fdde69b1:active { + outline: none; +} +.chat-aside.data-v-fdde69b1 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.tui-search-main-global.data-v-fdde69b1 { + width: 100%; + height: -webkit-fit-content; + height: fit-content; +} +.tui-search-main-conversation.data-v-fdde69b1 { + width: 100%; + height: 100%; + background: #fff; + box-shadow: 0 1px 10px 0 rgba(2, 16, 43, 0.15); +} +.tui-search .tui-search-global-header.data-v-fdde69b1 { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +} +.tui-search .tui-search-conversation.data-v-fdde69b1 { + width: 100%; + height: 100%; + overflow: hidden; +} +.tui-search-h5-full-screen.data-v-fdde69b1 { + position: absolute; + width: 100%; + height: 100%; + overflow: hidden; + display: flex; + flex-direction: column; + z-index: 1000; + background: #fff; +} +.tui-search-h5-global.data-v-fdde69b1, .tui-search-h5-conversation.data-v-fdde69b1 { + width: 100%; + height: 100%; + display: flex; + flex: 1; + flex-direction: column; +} +.tui-search-h5-conversation.data-v-fdde69b1 { + overflow: hidden; +} +.tui-search-h5.tui-search-main-conversation.data-v-fdde69b1 { + box-shadow: none; +} +.tui-search-h5 .search-input.data-v-fdde69b1, +.tui-search-h5 .search-container.data-v-fdde69b1, +.tui-search-h5 .search-result.data-v-fdde69b1 { + min-width: 0; + box-sizing: border-box; + display: flex; + flex: 1; + overflow: hidden; +} +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-32d81a7d, div.data-v-32d81a7d, ul.data-v-32d81a7d, ol.data-v-32d81a7d, dt.data-v-32d81a7d, dd.data-v-32d81a7d, li.data-v-32d81a7d, dl.data-v-32d81a7d, h1.data-v-32d81a7d, h2.data-v-32d81a7d, h3.data-v-32d81a7d, h4.data-v-32d81a7d, p.data-v-32d81a7d { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-32d81a7d, ul.data-v-32d81a7d, li.data-v-32d81a7d { + list-style: none; +} +img.data-v-32d81a7d { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-32d81a7d { + color: #000; + background: #FFF; +} +.clear.data-v-32d81a7d { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-32d81a7d { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-32d81a7d:hover { + text-decoration: none; +} +input.data-v-32d81a7d, textarea.data-v-32d81a7d { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-32d81a7d:focus, input.data-v-32d81a7d:active, textarea.data-v-32d81a7d:focus, textarea.data-v-32d81a7d:active { + outline: none; +} +.chat-aside.data-v-32d81a7d { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.tui-contact.data-v-32d81a7d { + width: 100%; + height: 100%; + box-sizing: border-box; + display: flex; + overflow: hidden; +} +.tui-contact-left.data-v-32d81a7d { + min-width: 285px; + flex: 0 0 24%; + overflow: hidden; + display: flex; + flex-direction: column; +} +.tui-contact-right.data-v-32d81a7d { + border-left: 1px solid #f4f5f9; + flex: 1; + overflow: hidden; +} +.tui-contact-h5.data-v-32d81a7d { + position: relative; +} +.tui-contact-h5-left.data-v-32d81a7d, .tui-contact-h5-right.data-v-32d81a7d { + width: 100%; + height: 100%; + flex: 1; +} +.tui-contact-h5-right.data-v-32d81a7d { + position: absolute; + z-index: 100; +} +.tui-contact-h5-left-list.data-v-32d81a7d { + overflow-y: auto; +} +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.tui-group.data-v-61238656 { + width: 100%; + height: 100%; +} +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-04dfedea, div.data-v-04dfedea, ul.data-v-04dfedea, ol.data-v-04dfedea, dt.data-v-04dfedea, dd.data-v-04dfedea, li.data-v-04dfedea, dl.data-v-04dfedea, h1.data-v-04dfedea, h2.data-v-04dfedea, h3.data-v-04dfedea, h4.data-v-04dfedea, p.data-v-04dfedea { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-04dfedea, ul.data-v-04dfedea, li.data-v-04dfedea { + list-style: none; +} +img.data-v-04dfedea { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-04dfedea { + color: #000; + background: #FFF; +} +.clear.data-v-04dfedea { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-04dfedea { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-04dfedea:hover { + text-decoration: none; +} +input.data-v-04dfedea, textarea.data-v-04dfedea { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-04dfedea:focus, input.data-v-04dfedea:active, textarea.data-v-04dfedea:focus, textarea.data-v-04dfedea:active { + outline: none; +} +.chat-aside.data-v-04dfedea { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.tui-chat.data-v-04dfedea { + width: 100%; + height: 100%; + max-width: 100%; + overflow: hidden; + box-sizing: border-box; + display: flex; + flex-direction: column; + position: relative; +} +.tui-chat-default.data-v-04dfedea { + width: 100%; + height: 100%; + box-sizing: border-box; + display: flex; +} +.tui-chat-header.data-v-04dfedea { + padding: 10px; + box-sizing: border-box; + display: flex; +} +.tui-chat-message-list.data-v-04dfedea { + flex: 1; + overflow: hidden; + display: flex; +} +.tui-chat-leave-group.data-v-04dfedea { + font-size: 14px; + height: 160px; + border-top: 1px solid #efefef; + justify-content: center; + align-items: center; +} +.tui-chat-leave-group-mobile.data-v-04dfedea { + height: 50px; +} +.tui-chat-message-input.data-v-04dfedea { + height: 160px; + display: flex; +} +.chat.data-v-04dfedea { + display: block; + height: 85%; + overflow: hidden; +} +.tui-chat-h5-message-list.data-v-04dfedea { + flex: 1; + overflow: hidden; + display: flex; +} +.tui-chat-h5-message-input.data-v-04dfedea { + height: auto; + padding: 10px 10px 0; + border-top: 1px solid #eee; +} +.tui-chat-h5-message-input-toolbar.data-v-04dfedea { + order: 1; + border: none; +} +.tui-chat-uniapp-header.data-v-04dfedea { + display: none; +} +.group-profile.data-v-04dfedea { + position: absolute; + top: 14%; + right: 0; + width: 50px; + height: 30px; + line-height: 30px; + color: #000; + font-size: 10px; + border-top-left-radius: 20px; + border-bottom-left-radius: 20px; + padding-left: 15px; + z-index: 100; + background-color: #ccc; + opacity: 0.5; +} +.tui-chat-uni-message-input.data-v-04dfedea { + max-height: 370px; + padding: 10px; +} +.tui-chat-uni-message-input-toolbar.data-v-04dfedea { + z-index: 100; +} +.tui-chat-wx-message-input.data-v-04dfedea { + padding: 0; +} +.data-v-04dfedea:not(not) { + display: flex; + flex-direction: column; + box-sizing: border-box; + min-width: 0; +} + +.dingweizhibox{ + width: 100%; + height: 15%; +} +.tui-chat{ + width: 100%; + height: 15%; +} +.tui-chat-h5 { + width: 100%; + height: 100%; +} +.tui-chat-uniapp-header{ + width: 100%; + height: 100%; +} +.Navigation { + width: 100%; + height: 10%; + position: fixed; + top: 0; + left: 0; + z-index: 999; + display: flex; + justify-content: center; + align-items: center; +} +.Navigationimg { + width: 100%; + height: 200rpx; + position: absolute; + top: 0; + left: 0; + z-index: -1; +} +.Navigation { + width: 100%; + height: 200rpx; + z-index: 999; + display: flex; + justify-content: center; + align-items: center; +} +.Return { + width: 50rpx; + height: 50rpx; + position: absolute; + top: 100rpx; + left: 40rpx; + z-index: 999; +} +.Navigation-name{ + width: 50rpx; + height: 50rpx; + position: absolute; + top: 100rpx; + left: 300rpx; + z-index: 999; +} diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.js new file mode 100644 index 0000000..2cdbcc7 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.js @@ -0,0 +1,150 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_constant = require("../../../../constant.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +const TUIKit_components_TUIChat_utils_utils = require("../../utils/utils.js"); +const TUIKit_components_TUIChat_emojiConfig_index = require("../../emoji-config/index.js"); +const TUIKit_components_TUIChat_config = require("../../config.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "emoji-picker-dialog", + emits: ["insertEmoji", "onClose", "sendMessage"], + setup(__props, { emit: __emit }) { + var _a; + const faceIcon = TUIKit_components_TUIChat_config.ChatConfig.getTheme() === "dark" ? common_assets.faceIconDark : common_assets.faceIconLight; + const emits = __emit; + const currentTabIndex = common_vendor.ref(0); + const currentConversation = common_vendor.ref(); + common_vendor.ref(); + const emojiPickerListRef = common_vendor.ref(); + const featureConfig = TUIKit_components_TUIChat_config.ChatConfig.getFeatureConfig(); + const list = common_vendor.ref(initEmojiList()); + const currentTabItem = common_vendor.ref(list == null ? void 0 : list.value[0]); + const currentEmojiList = common_vendor.ref((_a = list == null ? void 0 : list.value[0]) == null ? void 0 : _a.list); + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdate + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdate + }); + }); + const toggleEmojiTab = (index) => { + var _a2; + currentTabIndex.value = index; + currentTabItem.value = list == null ? void 0 : list.value[index]; + currentEmojiList.value = (_a2 = list == null ? void 0 : list.value[index]) == null ? void 0 : _a2.list; + if (!TUIKit_utils_env.isUniFrameWork) { + (emojiPickerListRef == null ? void 0 : emojiPickerListRef.value) && (emojiPickerListRef.value.scrollTop = 0); + } + }; + const select = (item, index) => { + var _a2, _b, _c; + const options = { + emoji: { key: item, name: TUIKit_components_TUIChat_emojiConfig_index.convertKeyToEmojiName(item) }, + type: (_a2 = currentTabItem == null ? void 0 : currentTabItem.value) == null ? void 0 : _a2.type + }; + switch ((_b = currentTabItem == null ? void 0 : currentTabItem.value) == null ? void 0 : _b.type) { + case TUIKit_constant.EMOJI_TYPE.BASIC: + options.url = ((_c = currentTabItem == null ? void 0 : currentTabItem.value) == null ? void 0 : _c.url) + TUIKit_components_TUIChat_emojiConfig_index.BASIC_EMOJI_URL_MAPPING[item]; + if (TUIKit_utils_env.isUniFrameWork) { + common_vendor.index.$emit("insert-emoji", options); + } else { + emits("insertEmoji", options); + } + break; + case TUIKit_constant.EMOJI_TYPE.BIG: + sendFaceMessage(index, currentTabItem.value); + break; + case TUIKit_constant.EMOJI_TYPE.CUSTOM: + sendFaceMessage(index, currentTabItem.value); + break; + } + TUIKit_utils_env.isPC && emits("onClose"); + }; + const sendFaceMessage = (index, listItem) => { + var _a2, _b, _c, _d, _e; + const options = { + to: ((_b = (_a2 = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _a2.groupProfile) == null ? void 0 : _b.groupID) || ((_d = (_c = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _c.userProfile) == null ? void 0 : _d.userID), + conversationType: (_e = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _e.type, + payload: { + index: listItem.emojiGroupID, + data: listItem.list[index] + }, + needReadReceipt: TUIKit_components_TUIChat_utils_utils.isEnabledMessageReadReceiptGlobal() + }; + common_vendor.Qt.sendFaceMessage(options); + }; + function sendMessage() { + common_vendor.index.$emit("send-message-in-emoji-picker"); + } + function onCurrentConversationUpdate(conversation) { + currentConversation.value = conversation; + } + function initEmojiList() { + return TUIKit_components_TUIChat_emojiConfig_index.EMOJI_GROUP_LIST.filter((item) => { + if (item.type === TUIKit_constant.EMOJI_TYPE.BASIC) { + return featureConfig.InputEmoji; + } + if (item.type === TUIKit_constant.EMOJI_TYPE.BIG) { + return featureConfig.InputStickers; + } + if (item.type === TUIKit_constant.EMOJI_TYPE.CUSTOM) { + return featureConfig.InputStickers; + } + }); + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.f(common_vendor.unref(currentEmojiList), (childrenItem, childrenIndex, i0) => { + return common_vendor.e(common_vendor.unref(currentTabItem).type === common_vendor.unref(TUIKit_constant.EMOJI_TYPE).BASIC ? { + a: common_vendor.unref(currentTabItem).url + common_vendor.unref(TUIKit_components_TUIChat_emojiConfig_index.BASIC_EMOJI_URL_MAPPING)[childrenItem] + } : common_vendor.unref(currentTabItem).type === common_vendor.unref(TUIKit_constant.EMOJI_TYPE).BIG ? { + b: common_vendor.unref(currentTabItem).url + childrenItem + "@2x.png" + } : { + c: common_vendor.unref(currentTabItem).url + childrenItem + }, { + d: childrenIndex, + e: common_vendor.o$1(($event) => select(childrenItem, childrenIndex), childrenIndex) + }); + }), + b: common_vendor.unref(currentTabItem).type === common_vendor.unref(TUIKit_constant.EMOJI_TYPE).BASIC, + c: common_vendor.unref(currentTabItem).type === common_vendor.unref(TUIKit_constant.EMOJI_TYPE).BIG, + d: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "emoji-picker-h5-list"), + e: common_vendor.f(common_vendor.unref(list), (item, index, i0) => { + return common_vendor.e({ + a: item.type === common_vendor.unref(TUIKit_constant.EMOJI_TYPE).BASIC + }, item.type === common_vendor.unref(TUIKit_constant.EMOJI_TYPE).BASIC ? { + b: "194fb307-0-" + i0, + c: common_vendor.p({ + file: common_vendor.unref(faceIcon) + }) + } : item.type === common_vendor.unref(TUIKit_constant.EMOJI_TYPE).BIG ? { + e: item.url + item.list[0] + "@2x.png" + } : { + f: item.url + item.list[0] + }, { + d: item.type === common_vendor.unref(TUIKit_constant.EMOJI_TYPE).BIG, + g: index, + h: common_vendor.o$1(($event) => toggleEmojiTab(index), index) + }); + }), + f: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) + }, common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? { + g: common_vendor.o$1(sendMessage) + } : {}, { + h: !common_vendor.unref(TUIKit_utils_env.isPC) ? 1 : "" + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-194fb307"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.json new file mode 100644 index 0000000..e4996d2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.wxml new file mode 100644 index 0000000..081d373 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.wxml @@ -0,0 +1 @@ + 发送 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.wxss new file mode 100644 index 0000000..9b00404 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.wxss @@ -0,0 +1,143 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-194fb307, div.data-v-194fb307, ul.data-v-194fb307, ol.data-v-194fb307, dt.data-v-194fb307, dd.data-v-194fb307, li.data-v-194fb307, dl.data-v-194fb307, h1.data-v-194fb307, h2.data-v-194fb307, h3.data-v-194fb307, h4.data-v-194fb307, p.data-v-194fb307 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-194fb307, ul.data-v-194fb307, li.data-v-194fb307 { + list-style: none; +} +img.data-v-194fb307 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-194fb307 { + color: #000; + background: #FFF; +} +.clear.data-v-194fb307 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-194fb307 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-194fb307:hover { + text-decoration: none; +} +input.data-v-194fb307, textarea.data-v-194fb307 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-194fb307:focus, input.data-v-194fb307:active, textarea.data-v-194fb307:focus, textarea.data-v-194fb307:active { + outline: none; +} +.chat-aside.data-v-194fb307 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.emoji-picker.data-v-194fb307 { + width: 405px; + height: 300px; + display: flex; + flex-direction: column; +} +.emoji-picker-list.data-v-194fb307 { + flex: 1; + display: flex; + flex-wrap: wrap; + overflow-y: auto; + margin: 2px; +} +.emoji-picker-list.data-v-194fb307::-webkit-scrollbar { + display: none; +} +.emoji-picker-list-item.data-v-194fb307 { + cursor: pointer; + padding: 5px; +} +.emoji-picker-list-item .emoji.data-v-194fb307 { + width: 30px; + height: 30px; +} +.emoji-picker-list-item .emoji-big.data-v-194fb307 { + width: 70px; + height: 70px; +} +.emoji-picker-tab.data-v-194fb307 { + display: flex; + align-items: center; +} +.emoji-picker-tab-item.data-v-194fb307 { + padding: 0 10px; + cursor: pointer; +} +.emoji-picker-tab-item .icon.data-v-194fb307 { + margin: 10px; + width: 20px; + height: 20px; +} +.emoji-picker-tab-item .icon-big.data-v-194fb307 { + margin: 2px 0; + width: 30px; + height: 30px; +} +.emoji-picker-h5.data-v-194fb307 { + width: 100%; +} +.emoji-picker-h5-list.data-v-194fb307 { + justify-content: space-between; +} +.emoji-picker-h5-list.data-v-194fb307::after { + content: ""; + display: block; + flex: 1 1 auto; +} +.emoji-picker-h5 .send-btn.data-v-194fb307 { + width: 50px; + height: 30px; + background-color: #55C06A; + position: absolute; + right: 10px; + font-size: 16px; + color: #fff; + text-align: center; + line-height: 30px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.js new file mode 100644 index 0000000..b1809d1 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.js @@ -0,0 +1,137 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_components_TUIChat_utils_utils = require("../../utils/utils.js"); +const TUIKit_components_TUIChat_offlinePushInfoManager_index = require("../../offlinePushInfoManager/index.js"); +const TUIKit_components_TUIChat_config = require("../../config.js"); +if (!Math) { + ToolbarItemContainer(); +} +const ToolbarItemContainer = () => "../toolbar-item-container/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + // Image source: only valid for uni-app version, web version only supports selecting images from the album. + // album: Select from album + // camera: Take a photo using the camera + imageSourceType: { + type: String, + default: "album" + } + }, + setup(__props) { + const props = __props; + const inputRef = common_vendor.ref(); + const currentConversation = common_vendor.ref(); + const theme = TUIKit_components_TUIChat_config.ChatConfig.getTheme(); + const IMAGE_TOOLBAR_SHOW_MAP = { + web_album: { + icon: theme === "dark" ? common_assets.imageIconDark : common_assets.imageIconLight, + title: "图片" + }, + uni_album: { + icon: common_assets.imageUniIcon, + title: "图片" + }, + uni_camera: { + icon: common_assets.cameraUniIcon, + title: "拍照" + } + }; + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversation: (conversation) => { + currentConversation.value = conversation; + } + }); + const imageToolbarForShow = common_vendor.computed(() => { + if (TUIKit_utils_env.isUniFrameWork) { + return props.imageSourceType === "camera" ? IMAGE_TOOLBAR_SHOW_MAP["uni_camera"] : IMAGE_TOOLBAR_SHOW_MAP["uni_album"]; + } else { + return IMAGE_TOOLBAR_SHOW_MAP["web_album"]; + } + }); + const onIconClick = () => { + var _a, _b, _c, _d; + if (TUIKit_utils_env.isUniFrameWork) { + if (TUIKit_utils_env.isWeChat && ((_a = common_vendor.i) == null ? void 0 : _a.chooseMedia)) { + (_b = common_vendor.i) == null ? void 0 : _b.chooseMedia({ + count: 1, + mediaType: ["image"], + sizeType: ["original", "compressed"], + sourceType: [props.imageSourceType], + // Use camera or select from album. + success: function(res) { + sendImageMessage(res); + } + }); + } else { + (_c = common_vendor.i) == null ? void 0 : _c.chooseImage({ + count: 1, + sourceType: [props.imageSourceType], + // Use camera or select from album. + success: function(res) { + sendImageMessage(res); + } + }); + } + } else { + if ((_d = inputRef.value) == null ? void 0 : _d.click) { + inputRef.value.click(); + } + } + }; + const sendImageInWeb = (e) => { + var _a, _b; + if (((_b = (_a = e == null ? void 0 : e.target) == null ? void 0 : _a.files) == null ? void 0 : _b.length) <= 0) { + return; + } + sendImageMessage(e == null ? void 0 : e.target); + e.target.value = ""; + }; + const sendImageMessage = (files) => { + var _a, _b, _c, _d, _e; + if (!files) { + return; + } + const options = { + to: ((_b = (_a = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _a.groupProfile) == null ? void 0 : _b.groupID) || ((_d = (_c = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _c.userProfile) == null ? void 0 : _d.userID), + conversationType: (_e = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _e.type, + payload: { + file: files + }, + needReadReceipt: TUIKit_components_TUIChat_utils_utils.isEnabledMessageReadReceiptGlobal() + }; + const offlinePushInfoCreateParams = { + conversation: currentConversation.value, + payload: options.payload, + messageType: common_vendor.qt.TYPES.MSG_IMAGE + }; + const sendMessageOptions = { + offlinePushInfo: TUIKit_components_TUIChat_offlinePushInfoManager_index.OfflinePushInfoManager.create(offlinePushInfoCreateParams) + }; + common_vendor.Qt.sendImageMessage(options, sendMessageOptions); + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: !common_vendor.unref(TUIKit_utils_env.isUniFrameWork) + }, !common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? { + b: common_vendor.o$1(sendImageInWeb), + c: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "image-upload-h5") + } : {}, { + d: common_vendor.o$1(onIconClick), + e: common_vendor.p({ + iconFile: common_vendor.unref(imageToolbarForShow).icon, + title: common_vendor.unref(imageToolbarForShow).title, + iconWidth: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? "32px" : "20px", + iconHeight: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? "25px" : "18px", + needDialog: false + }) + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2d15f470"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.json new file mode 100644 index 0000000..d700001 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "toolbar-item-container": "../toolbar-item-container/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.wxml new file mode 100644 index 0000000..aa830cc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.wxss new file mode 100644 index 0000000..88df68f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/image-upload/index.wxss @@ -0,0 +1,75 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-2d15f470, div.data-v-2d15f470, ul.data-v-2d15f470, ol.data-v-2d15f470, dt.data-v-2d15f470, dd.data-v-2d15f470, li.data-v-2d15f470, dl.data-v-2d15f470, h1.data-v-2d15f470, h2.data-v-2d15f470, h3.data-v-2d15f470, h4.data-v-2d15f470, p.data-v-2d15f470 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-2d15f470, ul.data-v-2d15f470, li.data-v-2d15f470 { + list-style: none; +} +img.data-v-2d15f470 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-2d15f470 { + color: #000; + background: #FFF; +} +.clear.data-v-2d15f470 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-2d15f470 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-2d15f470:hover { + text-decoration: none; +} +input.data-v-2d15f470, textarea.data-v-2d15f470 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-2d15f470:focus, input.data-v-2d15f470:active, textarea.data-v-2d15f470:focus, textarea.data-v-2d15f470:active { + outline: none; +} +.chat-aside.data-v-2d15f470 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.js new file mode 100644 index 0000000..1f07a76 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.js @@ -0,0 +1,260 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +require("../../../adapter-vue.js"); +const TUIKit_components_TUIChat_config = require("../config.js"); +const TUIKit_utils_enableSampleTaskStatus = require("../../../utils/enableSampleTaskStatus.js"); +const TUIKit_components_TUIChat_offlinePushInfoManager_index = require("../offlinePushInfoManager/index.js"); +const TUIKit_components_TUIChat_offlinePushInfoManager_const = require("../offlinePushInfoManager/const.js"); +if (!Math) { + (EmojiPickerDialog + ImageUpload + VideoUpload + Words + ToolbarItemContainer + UserSelector)(); +} +const ImageUpload = () => "./image-upload/index.js"; +const VideoUpload = () => "./video-upload/index.js"; +const Words = () => "./words/index.js"; +const ToolbarItemContainer = () => "./toolbar-item-container/index.js"; +const EmojiPickerDialog = () => "./emoji-picker/emoji-picker-dialog.js"; +const UserSelector = () => "./user-selector/index.js"; +const __default__ = { + options: { + styleIsolation: "shared" + } +}; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + ...__default__, + __name: "index", + props: { + displayType: {} + }, + setup(__props) { + const props = __props; + const currentConversation = common_vendor.ref(); + const isGroup = common_vendor.ref(false); + const selectorShowType = common_vendor.ref(""); + const userSelectorRef = common_vendor.ref(); + const currentUserSelectorExtension = common_vendor.ref(); + const currentExtensionList = common_vendor.ref([]); + const isSwiperIndicatorDotsEnable = common_vendor.ref(false); + const featureConfig = TUIKit_components_TUIChat_config.ChatConfig.getFeatureConfig(); + const neededCountFirstPage = common_vendor.ref(8); + const slicePos = common_vendor.ref(0); + const computeToolbarPaging = () => { + if (featureConfig.InputImage && featureConfig.InputVideo) { + neededCountFirstPage.value -= 4; + } else if (featureConfig.InputImage || featureConfig.InputVideo) { + neededCountFirstPage.value -= 2; + } + slicePos.value = neededCountFirstPage.value; + neededCountFirstPage.value -= currentExtensionList.value.length; + if (neededCountFirstPage.value === 1) { + isSwiperIndicatorDotsEnable.value = featureConfig.InputEvaluation && featureConfig.InputQuickReplies; + } else if (neededCountFirstPage.value < 1) { + isSwiperIndicatorDotsEnable.value = featureConfig.InputEvaluation || featureConfig.InputQuickReplies; + } + }; + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CUSTOM, { + activeConversation: onActiveConversationUpdate + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CUSTOM, { + activeConversation: onActiveConversationUpdate + }); + }); + const onActiveConversationUpdate = (conversationID) => { + var _a; + if (!conversationID) { + return; + } + if (conversationID !== ((_a = currentConversation.value) == null ? void 0 : _a.conversationID)) { + getExtensionList(); + computeToolbarPaging(); + currentConversation.value = common_vendor.Jt.getData(common_vendor.o.CONV, "currentConversation"); + isGroup.value = conversationID.startsWith(common_vendor.qt.TYPES.CONV_GROUP); + } + }; + const getExtensionList = () => { + const chatType = TUIKit_components_TUIChat_config.ChatConfig.getChatType(); + const params = { chatType }; + if (chatType === common_vendor.E.TUIChat.TYPE.CUSTOMER_SERVICE) { + params.filterVoice = true; + params.filterVideo = true; + TUIKit_utils_enableSampleTaskStatus.enableSampleTaskStatus("customerService"); + } + currentExtensionList.value = [ + ...common_vendor.R.getExtensionList(common_vendor.E.TUIChat.EXTENSION.INPUT_MORE.EXT_ID, params) + ].filter((extension) => { + var _a; + if (((_a = extension == null ? void 0 : extension.data) == null ? void 0 : _a.name) === "search") { + return featureConfig.MessageSearch; + } + return true; + }); + reportExtension(currentExtensionList.value); + }; + function reportExtension(extensionList) { + extensionList.forEach((extension) => { + var _a; + const _name = (_a = extension == null ? void 0 : extension.data) == null ? void 0 : _a.name; + if (_name === "voiceCall") { + common_vendor.ss.reportFeature(203, "voice-call"); + } else if (_name === "videoCall") { + common_vendor.ss.reportFeature(203, "video-call"); + } else if (_name === "quickRoom") { + common_vendor.ss.reportFeature(204); + } + }); + } + const onExtensionClick = (extension) => { + var _a, _b, _c; + const extensionModel = currentExtensionList.value.find( + (targetExtension) => { + var _a2, _b2; + return ((_a2 = targetExtension == null ? void 0 : targetExtension.data) == null ? void 0 : _a2.name) === ((_b2 = extension == null ? void 0 : extension.data) == null ? void 0 : _b2.name); + } + ); + switch ((_a = extensionModel == null ? void 0 : extensionModel.data) == null ? void 0 : _a.name) { + case "voiceCall": + onCallExtensionClicked(extensionModel, 1); + break; + case "videoCall": + onCallExtensionClicked(extensionModel, 2); + break; + case "search": + (_c = (_b = extensionModel == null ? void 0 : extensionModel.listener) == null ? void 0 : _b.onClicked) == null ? void 0 : _c.call(_b); + break; + } + }; + const onCallExtensionClicked = (extension, callType) => { + var _a, _b, _c, _d, _e, _f, _g; + selectorShowType.value = (_a = extension == null ? void 0 : extension.data) == null ? void 0 : _a.name; + if (((_b = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _b.type) === common_vendor.qt.TYPES.CONV_C2C) { + (_f = (_c = extension == null ? void 0 : extension.listener) == null ? void 0 : _c.onClicked) == null ? void 0 : _f.call(_c, { + userIDList: [(_e = (_d = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _d.conversationID) == null ? void 0 : _e.slice(3)], + type: callType, + callParams: { + offlinePushInfo: TUIKit_components_TUIChat_offlinePushInfoManager_index.OfflinePushInfoManager.getOfflinePushInfo(TUIKit_components_TUIChat_offlinePushInfoManager_const.PUSH_SCENE.CALL) + } + }); + } else if (isGroup.value) { + currentUserSelectorExtension.value = extension; + ((_g = userSelectorRef == null ? void 0 : userSelectorRef.value) == null ? void 0 : _g.toggleShow) && userSelectorRef.value.toggleShow(true); + } + }; + const genExtensionIcon = (extension) => { + return extension == null ? void 0 : extension.icon; + }; + const genExtensionText = (extension) => { + return extension == null ? void 0 : extension.text; + }; + const onUserSelectorSubmit = (selectedInfo) => { + var _a, _b, _c; + (_c = (_b = (_a = currentUserSelectorExtension.value) == null ? void 0 : _a.listener) == null ? void 0 : _b.onClicked) == null ? void 0 : _c.call(_b, { + ...selectedInfo, + callParams: { + offlinePushInfo: TUIKit_components_TUIChat_offlinePushInfoManager_index.OfflinePushInfoManager.getOfflinePushInfo(TUIKit_components_TUIChat_offlinePushInfoManager_const.PUSH_SCENE.CALL) + } + }); + currentUserSelectorExtension.value = null; + }; + const onUserSelectorCancel = () => { + currentUserSelectorExtension.value = null; + }; + const handleSwiperDotShow = (showStatus) => { + isSwiperIndicatorDotsEnable.value = neededCountFirstPage.value <= 1 && !showStatus; + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: props.displayType === "emojiPicker" + }, props.displayType === "emojiPicker" ? {} : common_vendor.e({ + b: common_vendor.unref(featureConfig).InputImage + }, common_vendor.unref(featureConfig).InputImage ? { + c: common_vendor.p({ + imageSourceType: "camera" + }) + } : {}, { + d: common_vendor.unref(featureConfig).InputImage + }, common_vendor.unref(featureConfig).InputImage ? { + e: common_vendor.p({ + imageSourceType: "album" + }) + } : {}, { + f: common_vendor.unref(featureConfig).InputVideo + }, common_vendor.unref(featureConfig).InputVideo ? { + g: common_vendor.p({ + videoSourceType: "album" + }) + } : {}, { + h: common_vendor.unref(featureConfig).InputVideo + }, common_vendor.unref(featureConfig).InputVideo ? { + i: common_vendor.p({ + videoSourceType: "camera" + }) + } : {}, { + j: common_vendor.unref(currentExtensionList).length > 0 + }, common_vendor.unref(currentExtensionList).length > 0 ? { + k: common_vendor.f(common_vendor.unref(currentExtensionList).slice(0, common_vendor.unref(slicePos)), (extension, index, i0) => { + return { + a: index + }; + }) + } : {}, { + l: common_vendor.unref(neededCountFirstPage) === 1 + }, common_vendor.unref(neededCountFirstPage) === 1 ? common_vendor.e({ + m: common_vendor.unref(featureConfig).InputQuickReplies + }, common_vendor.unref(featureConfig).InputQuickReplies ? { + n: common_vendor.o$1(handleSwiperDotShow) + } : {}) : {}, { + o: common_vendor.unref(neededCountFirstPage) > 1 + }, common_vendor.unref(neededCountFirstPage) > 1 ? common_vendor.e({ + p: common_vendor.unref(featureConfig).InputQuickReplies + }, common_vendor.unref(featureConfig).InputQuickReplies ? { + q: common_vendor.o$1(handleSwiperDotShow) + } : {}) : {}, { + r: common_vendor.unref(neededCountFirstPage) <= 1 + }, common_vendor.unref(neededCountFirstPage) <= 1 ? common_vendor.e({ + s: common_vendor.f(common_vendor.unref(currentExtensionList).slice(common_vendor.unref(slicePos)), (extension, index, i0) => { + return common_vendor.e({ + a: extension + }, extension ? { + b: common_vendor.o$1(($event) => onExtensionClick(extension), index), + c: "76f68da4-7-" + i0, + d: common_vendor.p({ + iconFile: genExtensionIcon(extension), + title: genExtensionText(extension), + iconWidth: "25px", + iconHeight: "25px", + needDialog: false + }) + } : {}, { + e: index + }); + }), + t: common_vendor.unref(neededCountFirstPage) === 1 + }, common_vendor.unref(neededCountFirstPage) === 1 ? common_vendor.e({ + v: common_vendor.unref(featureConfig).InputQuickReplies + }, common_vendor.unref(featureConfig).InputQuickReplies ? { + w: common_vendor.o$1(handleSwiperDotShow) + } : {}) : common_vendor.e({ + x: common_vendor.unref(featureConfig).InputQuickReplies + }, common_vendor.unref(featureConfig).InputQuickReplies ? { + y: common_vendor.o$1(handleSwiperDotShow) + } : {})) : {}, { + z: common_vendor.unref(isSwiperIndicatorDotsEnable) + }), { + A: common_vendor.sr(userSelectorRef, "76f68da4-10", { + "k": "userSelectorRef" + }), + B: common_vendor.o$1(onUserSelectorSubmit), + C: common_vendor.o$1(onUserSelectorCancel), + D: common_vendor.p({ + type: common_vendor.unref(selectorShowType), + currentConversation: common_vendor.unref(currentConversation), + isGroup: common_vendor.unref(isGroup) + }) + }); + }; + } +}); +wx.createComponent(_sfc_main); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.json new file mode 100644 index 0000000..9b16f96 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.json @@ -0,0 +1,11 @@ +{ + "component": true, + "usingComponents": { + "image-upload": "./image-upload/index", + "video-upload": "./video-upload/index", + "words": "./words/index", + "toolbar-item-container": "./toolbar-item-container/index", + "emoji-picker-dialog": "./emoji-picker/emoji-picker-dialog", + "user-selector": "./user-selector/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.wxml new file mode 100644 index 0000000..8ca160a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.wxss new file mode 100644 index 0000000..325d9a0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/index.wxss @@ -0,0 +1,254 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body, div, ul, ol, dt, dd, li, dl, h1, h2, h3, h4, p { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol, ul, li { + list-style: none; +} +img { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body { + color: #000; + background: #FFF; +} +.clear { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a { + color: #000; + text-decoration: none; + cursor: pointer; +} +a:hover { + text-decoration: none; +} +input, textarea { + -webkit-user-select: auto; + user-select: auto; +} +input:focus, input:active, textarea:focus, textarea:active { + outline: none; +} +.chat-aside { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +/* stylelint-disable */ +.message-input-toolbar { + border-top: 1px solid #f4f5f9; + width: 100%; + max-width: 100%; + display: flex; + flex-direction: row; + justify-content: space-between; + z-index: 100; + user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; +} +.message-input-toolbar-list { + display: flex; + flex-direction: row; + align-items: center; +} +.message-input-toolbar-list .extension-list { + list-style: none; + display: flex; +} +.message-input-toolbar-list .extension-list-item { + width: 20px; + height: 20px; + padding: 12px 10px 1px; + cursor: pointer; +} +.message-input-toolbar-h5 { + padding: 5px 10px; + box-sizing: border-box; + flex-direction: column; +} +.message-input-toolbar-uni { + background-color: #ebf0f6; + flex-direction: column; + z-index: 100; +} +.message-input-toolbar-uni-list { + flex: 1; + display: grid; + grid-template-columns: repeat(4, 25%); + grid-template-rows: repeat(2, 100px); +} +wx-swiper .wx-swiper-wrapper, +wx-swiper .wx-swiper-slides, +wx-swiper .wx-swiper-slide-frame, +.message-input-toolbar-list { + overflow: visible !important; +} +.message-input-toolbar .bottom-popup, +.message-input-toolbar .bottom-popup-h5, +.message-input-toolbar .bottom-popup-uni { + position: -webkit-sticky !important; + position: sticky !important; +} +.message-input-toolbar-swiper { + width: 100%; + height: 220px; +} +.message-input-toolbar-swiper .uni-swiper-wrapper, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper { + overflow: visible !important; +} +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides { + overflow: visible !important; +} +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame { + overflow: visible !important; +} +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame .message-input-toolbar-list, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .message-input-toolbar-list { + overflow: visible !important; +} +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-uni { + position: static !important; +} +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog { + position: absolute !important; + background: transparent; + left: -10px; + bottom: -5px; +} +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper .uni-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .uni-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .uni-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni, +.message-input-toolbar-swiper wx-swiper .wx-swiper-wrapper wx-swiper .wx-swiper-slides wx-swiper .wx-swiper-slide-frame .toolbar-item-container-dialog .bottom-popup-uni { + position: -webkit-sticky !important; + position: sticky !important; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.js new file mode 100644 index 0000000..a51b8e8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.js @@ -0,0 +1,119 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +const TUIKit_components_TUIChat_config = require("../../config.js"); +if (!Math) { + (Icon + BottomPopup)(); +} +const Icon = () => "../../../common/Icon.js"; +const BottomPopup = () => "../../../common/BottomPopup/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + iconFile: { + type: String, + required: true + }, + title: { + type: String, + default: "" + }, + needDialog: { + type: Boolean, + default: true + }, + iconWidth: { + type: String, + default: "20px" + }, + iconHeight: { + type: String, + default: "20px" + }, + // Whether to display the bottom popup dialog on mobile devices + // Invalid on PC + needBottomPopup: { + type: Boolean, + default: false + } + }, + emits: ["onIconClick", "onDialogClose", "onDialogShow"], + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emits = __emit; + const isDark = common_vendor.ref(TUIKit_components_TUIChat_config.ChatConfig.getTheme() === "dark"); + const showDialog = common_vendor.ref(false); + const toolbarItemRef = common_vendor.ref(); + const dialogRef = common_vendor.ref(); + const toggleToolbarItem = () => { + emits("onIconClick", dialogRef); + if (TUIKit_utils_env.isPC) { + common_vendor.O.listen({ + domRefs: toolbarItemRef.value, + handler: closeToolbarItem + }); + } + if (!props.needDialog) { + return; + } + toggleDialogDisplay(!showDialog.value); + }; + const closeToolbarItem = () => { + showDialog.value = false; + emits("onDialogClose", dialogRef); + }; + const toggleDialogDisplay = (showStatus) => { + if (showDialog.value === showStatus) { + return; + } + showDialog.value = showStatus; + switch (showStatus) { + case true: + emits("onDialogShow", dialogRef); + break; + case false: + emits("onDialogClose", dialogRef); + } + }; + const onPopupClose = () => { + showDialog.value = false; + }; + __expose({ + toggleDialogDisplay + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.p({ + file: props.iconFile, + width: props.iconWidth, + height: props.iconHeight + }), + b: common_vendor.n(common_vendor.unref(TUIKit_utils_env.isUniFrameWork) && "toolbar-item-container-uni-icon"), + c: common_vendor.o$1(toggleToolbarItem), + d: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) + }, common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? { + e: common_vendor.t(props.title) + } : {}, { + f: props.needBottomPopup && !common_vendor.unref(TUIKit_utils_env.isPC) + }, props.needBottomPopup && !common_vendor.unref(TUIKit_utils_env.isPC) ? { + g: common_vendor.o$1(() => { + }), + h: common_vendor.o$1(onPopupClose), + i: common_vendor.p({ + show: common_vendor.unref(showDialog) + }) + } : {}, { + j: common_vendor.unref(showDialog), + k: common_vendor.n(common_vendor.unref(isDark) && "toolbar-item-container-dialog-dark"), + l: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "toolbar-item-container-h5-dialog"), + m: common_vendor.n(common_vendor.unref(TUIKit_utils_env.isUniFrameWork) && "toolbar-item-container-uni-dialog"), + n: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "toolbar-item-container-h5"), + o: common_vendor.n(common_vendor.unref(TUIKit_utils_env.isUniFrameWork) && "toolbar-item-container-uni") + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-bf58df78"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.json new file mode 100644 index 0000000..6f99130 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon", + "bottom-popup": "../../../common/BottomPopup/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.wxml new file mode 100644 index 0000000..70034ad --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.wxml @@ -0,0 +1 @@ +{{e}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.wxss new file mode 100644 index 0000000..ff7e4fa --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.wxss @@ -0,0 +1,140 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-bf58df78, div.data-v-bf58df78, ul.data-v-bf58df78, ol.data-v-bf58df78, dt.data-v-bf58df78, dd.data-v-bf58df78, li.data-v-bf58df78, dl.data-v-bf58df78, h1.data-v-bf58df78, h2.data-v-bf58df78, h3.data-v-bf58df78, h4.data-v-bf58df78, p.data-v-bf58df78 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-bf58df78, ul.data-v-bf58df78, li.data-v-bf58df78 { + list-style: none; +} +img.data-v-bf58df78 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-bf58df78 { + color: #000; + background: #FFF; +} +.clear.data-v-bf58df78 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-bf58df78 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-bf58df78:hover { + text-decoration: none; +} +input.data-v-bf58df78, textarea.data-v-bf58df78 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-bf58df78:focus, input.data-v-bf58df78:active, textarea.data-v-bf58df78:focus, textarea.data-v-bf58df78:active { + outline: none; +} +.chat-aside.data-v-bf58df78 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.toolbar-item-container-dialog.data-v-bf58df78 { + background: #fff; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); +} +.toolbar-item-container.data-v-bf58df78 { + position: relative; +} +.toolbar-item-container-icon.data-v-bf58df78 { + padding: 8px; + cursor: pointer; + -webkit-tap-highlight-color: transparent; +} +.toolbar-item-container-dialog.data-v-bf58df78 { + z-index: 5; + position: absolute; + background: #fff; + box-shadow: 0 2px 4px -3px rgba(32, 77, 141, 0.03), 0 6px 10px 1px rgba(32, 77, 141, 0.06), 0 3px 14px 2px rgba(32, 77, 141, 0.05); + width: -webkit-fit-content; + width: fit-content; + height: -webkit-fit-content; + height: fit-content; + bottom: 35px; +} +.toolbar-item-container-dialog-dark.data-v-bf58df78 { + background: #22262E; + box-shadow: 0 8px 40px 0 rgba(23, 25, 31, 0.6), 0 4px 12px 0 rgba(23, 25, 31, 0.8); +} +.toolbar-item-container-h5-dialog.data-v-bf58df78 { + position: static !important; + width: 100%; + box-shadow: none; +} +.toolbar-item-container-uni.data-v-bf58df78 { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + position: static; +} +.toolbar-item-container-uni-icon.data-v-bf58df78 { + background: #fff; + border-radius: 15px; + width: 60px; + height: 60px; + padding: 0; + display: flex; + justify-content: center; + align-items: center; +} +.toolbar-item-container-uni-title.data-v-bf58df78 { + font-size: 14px; + color: #8F959D; +} +.toolbar-item-container-uni-dialog.data-v-bf58df78 { + position: absolute !important; + background: transparent; + left: -10px; + bottom: -5px; +} +.toolbar-item-container-uni-dialog .toolbar-bottom-popup.data-v-bf58df78 { + position: -webkit-sticky; + position: sticky; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.js new file mode 100644 index 0000000..5ca23ed --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.js @@ -0,0 +1,134 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +if (!Math) { + (Transfer + Dialog)(); +} +const Dialog = () => "../../../common/Dialog/index.js"; +const Transfer = () => "../../../common/Transfer/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + // type: voiceCall/groupCall/... + type: { + type: String, + default: "" + }, + currentConversation: { + type: Object, + default: () => ({}) + }, + isGroup: { + type: Boolean, + default: false + } + }, + emits: ["submit", "cancel"], + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emits = __emit; + const show = common_vendor.ref(false); + const groupID = common_vendor.ref(""); + const memberList = common_vendor.ref([]); + const searchMemberList = common_vendor.ref([]); + const selfUserID = common_vendor.ref(""); + const titleMap = { + voiceCall: "发起群语音", + videoCall: "发起群视频" + }; + const title = common_vendor.computed(() => { + return titleMap[props.type] ? titleMap[props.type] : ""; + }); + common_vendor.Zt.getUserProfile().then((res) => { + var _a; + if ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.userID) { + selfUserID.value = res.data.userID; + } + }); + common_vendor.watch( + () => { + var _a; + return [(_a = props == null ? void 0 : props.currentConversation) == null ? void 0 : _a.conversationID, show.value]; + }, + (newVal, oldVal) => { + if (newVal && newVal !== oldVal) { + if (props.isGroup && show.value) { + groupID.value = props.currentConversation.groupProfile.groupID; + common_vendor.es.getGroupMemberList({ + groupID: groupID.value + }).then((res) => { + var _a, _b; + memberList.value = (_b = (_a = res == null ? void 0 : res.data) == null ? void 0 : _a.memberList) == null ? void 0 : _b.filter( + (user) => (user == null ? void 0 : user.userID) !== selfUserID.value + ); + searchMemberList.value = memberList.value; + }); + } else { + groupID.value = ""; + memberList.value = []; + searchMemberList.value = memberList.value; + } + } + }, + { + immediate: true + } + ); + const search = (searchInfo) => { + var _a; + const results = (_a = memberList.value) == null ? void 0 : _a.filter( + (member) => (member == null ? void 0 : member.userID) === searchInfo + ); + searchMemberList.value = (results == null ? void 0 : results.length) ? results : memberList.value; + }; + const submit = (selectedMemberList) => { + const userIDList = []; + selectedMemberList == null ? void 0 : selectedMemberList.forEach((user) => { + (user == null ? void 0 : user.userID) && userIDList.push(user.userID); + }); + if (props.type === "voiceCall") { + emits("submit", { userIDList, groupID: groupID.value, type: 1 }); + } else if (props.type === "videoCall") { + emits("submit", { userIDList, groupID: groupID.value, type: 2 }); + } + searchMemberList.value = memberList.value; + toggleShow(false); + }; + const cancel = () => { + searchMemberList.value = memberList.value; + emits("cancel"); + toggleShow(false); + }; + const toggleShow = (showStatus) => { + show.value = showStatus; + }; + __expose({ + toggleShow + }); + return (_ctx, _cache) => { + return { + a: common_vendor.o$1(search), + b: common_vendor.o$1(submit), + c: common_vendor.o$1(cancel), + d: common_vendor.p({ + isSearch: true, + title: common_vendor.unref(title), + list: common_vendor.unref(searchMemberList), + isH5: !common_vendor.unref(TUIKit_utils_env.isPC), + isRadio: false + }), + e: common_vendor.o$1(toggleShow), + f: common_vendor.p({ + show: common_vendor.unref(show), + isH5: !common_vendor.unref(TUIKit_utils_env.isPC), + isHeaderShow: false, + isFooterShow: false, + background: false + }) + }; + }; + } +}); +wx.createComponent(_sfc_main); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.json new file mode 100644 index 0000000..e06ced4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "dialog": "../../../common/Dialog/index", + "transfer": "../../../common/Transfer/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.wxml new file mode 100644 index 0000000..70fffab --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/user-selector/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.js new file mode 100644 index 0000000..ec2e434 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.js @@ -0,0 +1,131 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_components_TUIChat_utils_utils = require("../../utils/utils.js"); +const TUIKit_components_TUIChat_offlinePushInfoManager_index = require("../../offlinePushInfoManager/index.js"); +const TUIKit_components_TUIChat_config = require("../../config.js"); +if (!Math) { + ToolbarItemContainer(); +} +const ToolbarItemContainer = () => "../toolbar-item-container/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + // Video source, only valid for uni-app version, web version only supports selecting videos from files + // album: Select from files + // camera: Take a video using the camera + videoSourceType: { + type: String, + default: "album" + } + }, + setup(__props) { + const props = __props; + const inputRef = common_vendor.ref(); + const currentConversation = common_vendor.ref(); + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversation: (conversation) => { + currentConversation.value = conversation; + } + }); + const handleIcon = () => { + if (TUIKit_utils_env.isUniFrameWork) { + switch (props.videoSourceType) { + case "album": + return common_assets.videoUniIcon; + case "camera": + return common_assets.cameraUniIcon; + default: + return common_assets.videoUniIcon; + } + } else { + const videoIcon = TUIKit_components_TUIChat_config.ChatConfig.getTheme() === "dark" ? common_assets.videoIconDark : common_assets.videoIconLight; + return videoIcon; + } + }; + const handleTitle = () => { + if (TUIKit_utils_env.isUniFrameWork && props.videoSourceType === "camera") { + return "录制"; + } else { + return "视频"; + } + }; + const onIconClick = () => { + var _a, _b, _c, _d, _e; + if (TUIKit_utils_env.isUniFrameWork) { + if (TUIKit_utils_env.isWeChat && ((_a = common_vendor.i) == null ? void 0 : _a.chooseMedia)) { + (_b = common_vendor.i) == null ? void 0 : _b.chooseMedia({ + mediaType: ["video"], + count: 1, + sourceType: [props.videoSourceType], + maxDuration: 60, + success: function(res) { + sendVideoMessage(res); + } + }); + } else { + (_c = common_vendor.i) == null ? void 0 : _c.chooseVideo({ + count: 1, + sourceType: [props.videoSourceType], + compressed: false, + success: function(res) { + sendVideoMessage(res); + } + }); + } + } else { + ((_d = inputRef == null ? void 0 : inputRef.value) == null ? void 0 : _d.click) && ((_e = inputRef == null ? void 0 : inputRef.value) == null ? void 0 : _e.click()); + } + }; + const sendVideoInWeb = (e) => { + var _a, _b; + if (((_b = (_a = e == null ? void 0 : e.target) == null ? void 0 : _a.files) == null ? void 0 : _b.length) <= 0) { + return; + } + sendVideoMessage(e == null ? void 0 : e.target); + e.target.value = ""; + }; + const sendVideoMessage = (file) => { + var _a, _b, _c, _d, _e; + if (!file) { + return; + } + const options = { + to: ((_b = (_a = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _a.groupProfile) == null ? void 0 : _b.groupID) || ((_d = (_c = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _c.userProfile) == null ? void 0 : _d.userID), + conversationType: (_e = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _e.type, + payload: { + file + }, + needReadReceipt: TUIKit_components_TUIChat_utils_utils.isEnabledMessageReadReceiptGlobal() + }; + const offlinePushInfoCreateParams = { + conversation: currentConversation.value, + payload: options.payload, + messageType: common_vendor.qt.TYPES.MSG_VIDEO + }; + const sendMessageOptions = { + offlinePushInfo: TUIKit_components_TUIChat_offlinePushInfoManager_index.OfflinePushInfoManager.create(offlinePushInfoCreateParams) + }; + common_vendor.Qt.sendVideoMessage(options, sendMessageOptions); + }; + return (_ctx, _cache) => { + return { + a: common_vendor.o$1(sendVideoInWeb), + b: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "video-upload-h5"), + c: common_vendor.o$1(onIconClick), + d: common_vendor.p({ + iconFile: handleIcon(), + title: handleTitle(), + needDialog: false, + iconWidth: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? "32px" : "20px", + iconHeight: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? props.videoSourceType === "album" ? "20px" : "25px" : "18px" + }) + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-11a33e36"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.json new file mode 100644 index 0000000..d700001 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "toolbar-item-container": "../toolbar-item-container/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.wxml new file mode 100644 index 0000000..1779c96 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.wxss new file mode 100644 index 0000000..d4540f4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/video-upload/index.wxss @@ -0,0 +1,75 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-11a33e36, div.data-v-11a33e36, ul.data-v-11a33e36, ol.data-v-11a33e36, dt.data-v-11a33e36, dd.data-v-11a33e36, li.data-v-11a33e36, dl.data-v-11a33e36, h1.data-v-11a33e36, h2.data-v-11a33e36, h3.data-v-11a33e36, h4.data-v-11a33e36, p.data-v-11a33e36 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-11a33e36, ul.data-v-11a33e36, li.data-v-11a33e36 { + list-style: none; +} +img.data-v-11a33e36 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-11a33e36 { + color: #000; + background: #FFF; +} +.clear.data-v-11a33e36 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-11a33e36 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-11a33e36:hover { + text-decoration: none; +} +input.data-v-11a33e36, textarea.data-v-11a33e36 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-11a33e36:focus, input.data-v-11a33e36:active, textarea.data-v-11a33e36:focus, textarea.data-v-11a33e36:active { + outline: none; +} +.chat-aside.data-v-11a33e36 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.js new file mode 100644 index 0000000..eb540a1 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.js @@ -0,0 +1,87 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_components_TUIChat_utils_wordsList = require("../../utils/wordsList.js"); +const TUIKit_components_TUIChat_utils_utils = require("../../utils/utils.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +const TUIKit_components_TUIChat_config = require("../../config.js"); +if (!Math) { + ToolbarItemContainer(); +} +const ToolbarItemContainer = () => "../toolbar-item-container/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + emits: ["onDialogPopupShowOrHide"], + setup(__props, { emit: __emit }) { + const wordsIcon = TUIKit_components_TUIChat_config.ChatConfig.getTheme() === "dark" ? common_assets.wordsIconDark : common_assets.wordsIconLight; + const emits = __emit; + const currentConversation = common_vendor.ref(); + const container = common_vendor.ref(); + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversation: (conversation) => { + currentConversation.value = conversation; + } + }); + const selectWord = (item) => { + var _a, _b, _c, _d, _e, _f; + const options = { + to: ((_b = (_a = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _a.groupProfile) == null ? void 0 : _b.groupID) || ((_d = (_c = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _c.userProfile) == null ? void 0 : _d.userID), + conversationType: (_e = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _e.type, + payload: { + text: common_vendor.Wt.t(`Words.${item.value}`) + }, + needReadReceipt: TUIKit_components_TUIChat_utils_utils.isEnabledMessageReadReceiptGlobal() + }; + common_vendor.Qt.sendTextMessage(options); + (_f = container == null ? void 0 : container.value) == null ? void 0 : _f.toggleDialogDisplay(false); + }; + const closeDialog = () => { + var _a; + (_a = container == null ? void 0 : container.value) == null ? void 0 : _a.toggleDialogDisplay(false); + }; + const onDialogShow = () => { + emits("onDialogPopupShowOrHide", true); + }; + const onDialogClose = () => { + emits("onDialogPopupShowOrHide", false); + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("Words.常用语-快捷回复工具")), + b: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "words-h5-header-title"), + c: !common_vendor.unref(TUIKit_utils_env.isPC) + }, !common_vendor.unref(TUIKit_utils_env.isPC) ? { + d: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "words-h5-header-close"), + e: common_vendor.o$1(closeDialog) + } : {}, { + f: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "words-h5-header"), + g: common_vendor.f(common_vendor.unref(TUIKit_components_TUIChat_utils_wordsList.wordsList), (item, index, i0) => { + return { + a: common_vendor.t(common_vendor.unref(common_vendor.Wt).t(`Words.${item.value}`)), + b: index, + c: common_vendor.o$1(($event) => selectWord(item), index) + }; + }), + h: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "words-h5-list-item"), + i: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "words-h5-list"), + j: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "words-h5"), + k: common_vendor.sr(container, "ac0e1580-0", { + "k": "container" + }), + l: common_vendor.o$1(onDialogShow), + m: common_vendor.o$1(onDialogClose), + n: common_vendor.p({ + iconFile: common_vendor.unref(wordsIcon), + title: "常用语", + needBottomPopup: true, + iconWidth: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? "26px" : "20px", + iconHeight: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? "26px" : "20px" + }) + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-ac0e1580"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.json new file mode 100644 index 0000000..d700001 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "toolbar-item-container": "../toolbar-item-container/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.wxml new file mode 100644 index 0000000..643726f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.wxml @@ -0,0 +1 @@ +{{item.a}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.wxss new file mode 100644 index 0000000..d579cea --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input-toolbar/words/index.wxss @@ -0,0 +1,142 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-ac0e1580, div.data-v-ac0e1580, ul.data-v-ac0e1580, ol.data-v-ac0e1580, dt.data-v-ac0e1580, dd.data-v-ac0e1580, li.data-v-ac0e1580, dl.data-v-ac0e1580, h1.data-v-ac0e1580, h2.data-v-ac0e1580, h3.data-v-ac0e1580, h4.data-v-ac0e1580, p.data-v-ac0e1580 { + margin:0; + padding:0; + font-style:normal; + + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-ac0e1580, ul.data-v-ac0e1580, li.data-v-ac0e1580 { + list-style:none; +} +img.data-v-ac0e1580 { + border:0; + vertical-align:middle; + pointer-events:none; +} +body.data-v-ac0e1580 { + color:#000; + background:#FFF; +} +.clear.data-v-ac0e1580 { + clear:both; + height:1px; + width:100%; + overflow:hidden; + margin-top:-1px; +} +a.data-v-ac0e1580 { + color:#000; + text-decoration:none; + cursor: pointer; +} +a.data-v-ac0e1580:hover { + text-decoration:none; +} +input.data-v-ac0e1580, textarea.data-v-ac0e1580 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-ac0e1580:focus, input.data-v-ac0e1580:active, textarea.data-v-ac0e1580:focus, textarea.data-v-ac0e1580:active { + outline: none; +} +.chat-aside.data-v-ac0e1580 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.words.data-v-ac0e1580 { + background-color: #ffffff; +} +.words-header-close.data-v-ac0e1580 { + color: #3370ff; +} +.words.data-v-ac0e1580 { + z-index: 5; + width: 315px; + padding: 12px; + display: flex; + flex-direction: column; + width: 19.13rem; + height: 12.44rem; + overflow-y: auto; +} +.words-header.data-v-ac0e1580 { + display: flex; + justify-content: space-between; + font-size: 14px; + font-weight: 500; +} +.words-list.data-v-ac0e1580 { + flex: 1; + display: flex; + flex-direction: column; + cursor: pointer; +} +.words-list-item.data-v-ac0e1580 { + cursor: pointer; + padding: 4px 0; + font-size: 14px; + color: #50545c; + line-height: 18px; +} +.words-list-item.data-v-ac0e1580:hover { + color: #006eff; +} +.words-h5.data-v-ac0e1580 { + width: 100%; + box-sizing: border-box; + max-height: 80vh; + height: -webkit-fit-content; + height: fit-content; + overflow: hidden; + display: flex; + flex-direction: column; +} +.words-h5-header-title.data-v-ac0e1580 { + font-size: 18px; + line-height: 40px; +} +.words-h5-list.data-v-ac0e1580 { + flex: 1; + overflow-y: scroll; +} +.words-h5-list-item.data-v-ac0e1580 { + cursor: none; + -webkit-tap-highlight-color: transparent; + -moz-tap-highlight-color: transparent; + padding: 12px 0; + font-size: 16px; + color: #50545c; + line-height: 18px; + border-bottom: 1px solid #eeeeee; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.js new file mode 100644 index 0000000..d504def --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.js @@ -0,0 +1,176 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +require("../../../adapter-vue.js"); +const common_assets = require("../../../../common/assets.js"); +const TUIKit_utils_env = require("../../../utils/env.js"); +const TUIKit_components_TUIChat_utils_sendMessage = require("../utils/sendMessage.js"); +const TUIKit_components_TUIChat_config = require("../config.js"); +if (!Math) { + (MessageInputAudio + MessageInputEditor + MessageInputAt + Icon + MessageQuote)(); +} +const MessageInputEditor = () => "./message-input-editor.js"; +const MessageInputAt = () => "./message-input-at/index.js"; +const MessageInputAudio = () => "./message-input-audio.js"; +const MessageQuote = () => "./message-input-quote/index.js"; +const Icon = () => "../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + placeholder: { default: "this is placeholder" }, + isMuted: { type: Boolean, default: true }, + muteText: { default: "" }, + enableInput: { type: Boolean, default: true }, + enableAt: { type: Boolean, default: true }, + enableTyping: { type: Boolean, default: true }, + replyOrReference: { default: () => ({}) }, + inputToolbarDisplayType: { default: "none" } + }, + emits: ["changeToolbarDisplayType"], + setup(__props, { expose: __expose, emit: __emit }) { + const emits = __emit; + const props = __props; + const editor = common_vendor.ref(); + const messageInputAtRef = common_vendor.ref(); + const currentConversation = common_vendor.ref(); + const isGroup = common_vendor.ref(false); + const displayType = common_vendor.ref("editor"); + const featureConfig = TUIKit_components_TUIChat_config.ChatConfig.getFeatureConfig(); + const isRenderVoice = common_vendor.ref(featureConfig.InputVoice); + const isRenderEmojiPicker = common_vendor.ref(featureConfig.InputEmoji || featureConfig.InputStickers); + const isRenderMore = common_vendor.ref(featureConfig.InputImage || featureConfig.InputVideo || featureConfig.InputEvaluation || featureConfig.InputQuickReplies); + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdated + }); + common_vendor.Jt.watch(common_vendor.o.CHAT, { + quoteMessage: onQuoteMessageUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdated + }); + common_vendor.Jt.unwatch(common_vendor.o.CHAT, { + quoteMessage: onQuoteMessageUpdated + }); + }); + common_vendor.watch(() => props.inputToolbarDisplayType, (newVal) => { + if (newVal !== "none") { + changeDisplayType("editor"); + } + }); + function changeDisplayType(display) { + displayType.value = display; + if (display === "audio") { + emits("changeToolbarDisplayType", "none"); + } + } + function changeToolbarDisplayType(displayType2) { + emits("changeToolbarDisplayType", displayType2); + } + const onTyping = (inputContentEmpty, inputBlur) => { + TUIKit_components_TUIChat_utils_sendMessage.sendTyping(inputContentEmpty, inputBlur); + }; + const onAt = (show) => { + var _a; + (_a = messageInputAtRef == null ? void 0 : messageInputAtRef.value) == null ? void 0 : _a.toggleAtList(show); + }; + const onFocus = () => { + if (TUIKit_utils_env.isH5) { + emits("changeToolbarDisplayType", "none"); + } + }; + const insertEmoji = (emoji) => { + var _a, _b; + ((_a = editor == null ? void 0 : editor.value) == null ? void 0 : _a.addEmoji) && ((_b = editor == null ? void 0 : editor.value) == null ? void 0 : _b.addEmoji(emoji)); + }; + const insertAt = (atInfo) => { + var _a, _b; + ((_a = editor == null ? void 0 : editor.value) == null ? void 0 : _a.insertAt) && ((_b = editor == null ? void 0 : editor.value) == null ? void 0 : _b.insertAt(atInfo)); + }; + const onAtListOpen = () => { + var _a, _b; + ((_a = editor == null ? void 0 : editor.value) == null ? void 0 : _a.blur) && ((_b = editor == null ? void 0 : editor.value) == null ? void 0 : _b.blur()); + }; + const reEdit = (content) => { + var _a, _b; + (_a = editor == null ? void 0 : editor.value) == null ? void 0 : _a.resetEditor(); + (_b = editor == null ? void 0 : editor.value) == null ? void 0 : _b.setEditorContent(content); + }; + function onCurrentConversationUpdated(conversation) { + var _a; + currentConversation.value = conversation; + isGroup.value = ((_a = currentConversation.value) == null ? void 0 : _a.type) === common_vendor.qt.TYPES.CONV_GROUP; + } + function onQuoteMessageUpdated(options) { + if ((options == null ? void 0 : options.message) && (options == null ? void 0 : options.type) === "quote") { + changeDisplayType("editor"); + } + } + __expose({ + insertEmoji, + reEdit + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: (common_vendor.unref(TUIKit_utils_env.isWeChat) || common_vendor.unref(TUIKit_utils_env.isApp)) && common_vendor.unref(isRenderVoice) + }, (common_vendor.unref(TUIKit_utils_env.isWeChat) || common_vendor.unref(TUIKit_utils_env.isApp)) && common_vendor.unref(isRenderVoice) ? { + b: common_vendor.unref(displayType) === "audio" ? 1 : "", + c: common_vendor.o$1(changeDisplayType), + d: common_vendor.p({ + isEnableAudio: common_vendor.unref(displayType) === "audio" + }) + } : {}, { + e: common_vendor.sr(editor, "ceb9e230-1", { + "k": "editor" + }), + f: common_vendor.unref(displayType) === "editor", + g: common_vendor.o$1(onTyping), + h: common_vendor.o$1(onAt), + i: common_vendor.o$1(onFocus), + j: common_vendor.p({ + placeholder: props.placeholder, + isMuted: props.isMuted, + muteText: props.muteText, + enableInput: props.enableInput, + enableAt: props.enableAt, + enableTyping: props.enableTyping, + isGroup: common_vendor.unref(isGroup) + }), + k: props.enableAt + }, props.enableAt ? { + l: common_vendor.sr(messageInputAtRef, "ceb9e230-2", { + "k": "messageInputAtRef" + }), + m: common_vendor.o$1(insertAt), + n: common_vendor.o$1(onAtListOpen) + } : {}, { + o: common_vendor.unref(isRenderEmojiPicker) + }, common_vendor.unref(isRenderEmojiPicker) ? { + p: common_vendor.o$1(($event) => changeToolbarDisplayType("emojiPicker")), + q: common_vendor.p({ + file: common_vendor.unref(common_assets.faceIcon), + size: "23px", + hotAreaSize: "3px" + }) + } : {}, { + r: common_vendor.unref(isRenderMore) + }, common_vendor.unref(isRenderMore) ? { + s: common_vendor.o$1(($event) => changeToolbarDisplayType("tools")), + t: common_vendor.p({ + file: common_vendor.unref(common_assets.moreIcon), + size: "23px", + hotAreaSize: "3px" + }) + } : {}, { + v: common_vendor.p({ + displayType: common_vendor.unref(displayType) + }), + w: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "message-input-h5") + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-ceb9e230"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.json new file mode 100644 index 0000000..b5d7cbb --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "message-input-editor": "./message-input-editor", + "message-input-at": "./message-input-at/index", + "message-input-audio": "./message-input-audio", + "message-quote": "./message-input-quote/index", + "icon": "../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.wxml new file mode 100644 index 0000000..5b27d80 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.wxss new file mode 100644 index 0000000..600b21b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/index.wxss @@ -0,0 +1,107 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-ceb9e230, div.data-v-ceb9e230, ul.data-v-ceb9e230, ol.data-v-ceb9e230, dt.data-v-ceb9e230, dd.data-v-ceb9e230, li.data-v-ceb9e230, dl.data-v-ceb9e230, h1.data-v-ceb9e230, h2.data-v-ceb9e230, h3.data-v-ceb9e230, h4.data-v-ceb9e230, p.data-v-ceb9e230 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-ceb9e230, ul.data-v-ceb9e230, li.data-v-ceb9e230 { + list-style: none; +} +img.data-v-ceb9e230 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-ceb9e230 { + color: #000; + background: #FFF; +} +.clear.data-v-ceb9e230 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-ceb9e230 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-ceb9e230:hover { + text-decoration: none; +} +input.data-v-ceb9e230, textarea.data-v-ceb9e230 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-ceb9e230:focus, input.data-v-ceb9e230:active, textarea.data-v-ceb9e230:focus, textarea.data-v-ceb9e230:active { + outline: none; +} +.chat-aside.data-v-ceb9e230 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.data-v-ceb9e230:not(not) { + display: flex; + flex-direction: column; + min-width: 0; + box-sizing: border-box; +} +.message-input.data-v-ceb9e230 { + position: relative; + display: flex; + flex-direction: column; + border: none; + overflow: hidden; + background: #ebf0f6; +} +.message-input-h5.data-v-ceb9e230 { + padding: 10px 10px 15px; +} +.message-input-editor.data-v-ceb9e230 { + flex: 1; + display: flex; +} +.message-input .icon.data-v-ceb9e230 { + margin-left: 3px; +} +.message-input-wx-audio-open.data-v-ceb9e230 { + flex: 1; +} +.audio-main-content-line.data-v-ceb9e230 { + display: flex; + flex-direction: row; + align-items: center; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.js new file mode 100644 index 0000000..5d92af6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.js @@ -0,0 +1,154 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +if (!Math) { + BottomPopup(); +} +const BottomPopup = () => "../../../common/BottomPopup/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + emits: ["onAtListOpen", "insertAt"], + setup(__props, { expose: __expose, emit: __emit }) { + const emits = __emit; + const MessageInputAt = common_vendor.ref(); + const memberListItems = common_vendor.ref(); + const showAtList = common_vendor.ref(false); + const memberList = common_vendor.ref(); + const allMemberList = common_vendor.ref(); + const showMemberList = common_vendor.ref(); + const isGroup = common_vendor.ref(false); + const position = common_vendor.ref({ + left: 0, + top: 0 + }); + const selectedIndex = common_vendor.ref(0); + const currentConversationID = common_vendor.ref(""); + const all = { + userID: common_vendor.qt.TYPES.MSG_AT_ALL, + nick: "所有人", + isAll: true, + avatar: "https://web.sdk.qcloud.com/im/assets/images/at.svg" + }; + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversationID: (id) => { + var _a, _b; + if (id !== currentConversationID.value) { + currentConversationID.value = id; + memberList.value = []; + allMemberList.value = []; + showMemberList.value = []; + isGroup.value = false; + common_vendor.Jt.update(common_vendor.o.CUSTOM, "memberList", memberList.value); + if ((_a = currentConversationID == null ? void 0 : currentConversationID.value) == null ? void 0 : _a.startsWith("GROUP")) { + isGroup.value = true; + const groupID = (_b = currentConversationID == null ? void 0 : currentConversationID.value) == null ? void 0 : _b.substring(5); + common_vendor.es.switchGroup(groupID); + } else { + common_vendor.es.switchGroup(""); + } + } + } + }); + common_vendor.Jt.watch(common_vendor.o.GRP, { + currentGroupMemberList: (list) => { + memberList.value = list; + allMemberList.value = [all, ...memberList.value]; + showMemberList.value = allMemberList.value; + common_vendor.Jt.update(common_vendor.o.CUSTOM, "memberList", memberList.value); + } + }); + const toggleAtList = (show) => { + if (!isGroup.value) { + return; + } + showAtList.value = show; + if (showAtList.value) { + emits("onAtListOpen"); + } + }; + const handleAtListPosition = (positionData) => { + position.value = positionData; + }; + const setCurrentSelectIndex = (index) => { + var _a, _b; + selectedIndex.value = index; + (_b = (_a = memberListItems.value) == null ? void 0 : _a[selectedIndex.value]) == null ? void 0 : _b.scrollIntoView(false); + }; + const setShowMemberList = (list) => { + showMemberList.value = list; + }; + common_vendor.i.toggleAtList = toggleAtList; + common_vendor.i.handleAtListPosition = handleAtListPosition; + common_vendor.i.setCurrentSelectIndex = setCurrentSelectIndex; + common_vendor.i.setShowMemberList = setShowMemberList; + __expose({ + toggleAtList + }); + common_vendor.watch( + () => [position.value, MessageInputAt == null ? void 0 : MessageInputAt.value], + () => { + var _a; + if (TUIKit_utils_env.isH5 || !(MessageInputAt == null ? void 0 : MessageInputAt.value) || !((_a = MessageInputAt == null ? void 0 : MessageInputAt.value) == null ? void 0 : _a.style)) { + return; + } + MessageInputAt.value.style.left = position.value.left + "px"; + MessageInputAt.value.style.top = position.value.top - MessageInputAt.value.clientHeight + "px"; + } + ); + const closeAt = () => { + showAtList.value = false; + showMemberList.value = allMemberList.value; + position.value = { + left: 0, + top: 0 + }; + }; + const selectItem = (index) => { + var _a; + if (TUIKit_utils_env.isPC && common_vendor.i.selectItem) { + common_vendor.i.selectItem(index); + } else { + if ((_a = showMemberList == null ? void 0 : showMemberList.value) == null ? void 0 : _a.length) { + const item = showMemberList == null ? void 0 : showMemberList.value[index]; + emits("insertAt", { + id: item == null ? void 0 : item.userID, + label: (item == null ? void 0 : item.nick) || (item == null ? void 0 : item.userID) + }); + } + } + closeAt(); + }; + const handleMemberAvatar = (item) => { + return (item == null ? void 0 : item.avatar) || "https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png"; + }; + const handleMemberName = (item) => { + return (item == null ? void 0 : item.nick) ? item == null ? void 0 : item.nick : item == null ? void 0 : item.userID; + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: !common_vendor.unref(TUIKit_utils_env.isPC) + }, !common_vendor.unref(TUIKit_utils_env.isPC) ? { + b: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.选择提醒的人")) + } : {}, { + c: common_vendor.f(common_vendor.unref(showMemberList), (item, index, i0) => { + return { + a: handleMemberAvatar(item), + b: common_vendor.t(handleMemberName(item)), + c: index, + d: common_vendor.n(index === common_vendor.unref(selectedIndex) && "selected"), + e: common_vendor.o$1(($event) => selectItem(index), index) + }; + }), + d: common_vendor.n(common_vendor.unref(TUIKit_utils_env.isPC) ? "message-input-at" : "message-input-at-h5"), + e: common_vendor.o$1(closeAt), + f: common_vendor.p({ + show: common_vendor.unref(showAtList) + }) + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-7a11d573"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.json new file mode 100644 index 0000000..66ad39c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "bottom-popup": "../../../common/BottomPopup/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.wxml new file mode 100644 index 0000000..7b19350 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.wxss new file mode 100644 index 0000000..2e2bea2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-at/index.wxss @@ -0,0 +1,168 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-7a11d573, div.data-v-7a11d573, ul.data-v-7a11d573, ol.data-v-7a11d573, dt.data-v-7a11d573, dd.data-v-7a11d573, li.data-v-7a11d573, dl.data-v-7a11d573, h1.data-v-7a11d573, h2.data-v-7a11d573, h3.data-v-7a11d573, h4.data-v-7a11d573, p.data-v-7a11d573 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-7a11d573, ul.data-v-7a11d573, li.data-v-7a11d573 { + list-style: none; +} +img.data-v-7a11d573 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-7a11d573 { + color: #000; + background: #FFF; +} +.clear.data-v-7a11d573 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-7a11d573 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-7a11d573:hover { + text-decoration: none; +} +input.data-v-7a11d573, textarea.data-v-7a11d573 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-7a11d573:focus, input.data-v-7a11d573:active, textarea.data-v-7a11d573:focus, textarea.data-v-7a11d573:active { + outline: none; +} +.chat-aside.data-v-7a11d573 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.message-input-at.data-v-7a11d573 { + position: fixed; + max-width: 15rem; + max-height: 10rem; + overflow: hidden auto; + background: #fff; + box-shadow: 0 0.06rem 0.63rem 0 rgba(2, 16, 43, 0.15); + border-radius: 0.13rem; +} +.member-list-box-header.data-v-7a11d573 { + height: 2.5rem; + padding-top: 5px; + cursor: pointer; +} +.member-list-box-header.data-v-7a11d573:hover { + background: rgba(0, 110, 255, 0.1); +} +.member-list-box span.data-v-7a11d573 { + font-family: PingFangSC-Regular; + font-weight: 400; + font-size: 12px; + color: #000; + letter-spacing: 0; + padding: 5px; +} +.member-list-box-body.data-v-7a11d573 { + height: 30px; + cursor: pointer; + display: flex; + align-items: center; +} +.member-list-box-body .selected.data-v-7a11d573, .member-list-box-body.data-v-7a11d573:hover { + background: rgba(0, 110, 255, 0.1); +} +.member-list-box-body-name.data-v-7a11d573 { + overflow: hidden; + white-space: nowrap; + word-wrap: break-word; + word-break: break-all; + text-overflow: ellipsis; +} +.member-list-box-body-avatar.data-v-7a11d573 { + width: 20px; + height: 20px; + padding-left: 10px; +} +.member-list-box .selected.data-v-7a11d573 { + background: rgba(0, 110, 255, 0.1); +} +.message-input-at-h5 .member-list.data-v-7a11d573 { + height: auto; + max-height: 500px; + width: 100%; + max-width: 100%; + background: white; + border-radius: 12px 12px 0 0; + display: flex; + flex-direction: column; + overflow: hidden; +} +.message-input-at-h5 .member-list-title.data-v-7a11d573 { + height: -webkit-fit-content; + height: fit-content; + width: calc(100% - 30px); + text-align: center; + vertical-align: middle; + padding: 15px; +} +.message-input-at-h5 .member-list-title .title.data-v-7a11d573 { + vertical-align: middle; + display: inline-block; + font-size: 16px; +} +.message-input-at-h5 .member-list-title .close.data-v-7a11d573 { + vertical-align: middle; + position: absolute; + right: 10px; + display: inline-block; +} +.message-input-at-h5 .member-list-box.data-v-7a11d573 { + flex: 1; + overflow-y: scroll; +} +.message-input-at-h5 .member-list-box-body.data-v-7a11d573 { + padding: 10px; +} +.message-input-at-h5 .member-list-box-body img.data-v-7a11d573 { + width: 26px; + height: 26px; +} +.message-input-at-h5 .member-list-box-body span.data-v-7a11d573 { + font-size: 14px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.js new file mode 100644 index 0000000..aefbd16 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.js @@ -0,0 +1,199 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +require("../../../adapter-vue.js"); +const common_assets = require("../../../../common/assets.js"); +const TUIKit_components_common_Toast_index = require("../../common/Toast/index.js"); +const TUIKit_utils_lodash = require("../../../utils/lodash.js"); +const TUIKit_components_TUIChat_utils_utils = require("../utils/utils.js"); +const TUIKit_components_common_Toast_type = require("../../common/Toast/type.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-input-audio", + props: { + isEnableAudio: { type: Boolean, default: false } + }, + emits: ["changeDisplayType"], + setup(__props, { emit: __emit }) { + var _a; + const emits = __emit; + const props = __props; + let recordTime = 0; + let isManualCancelBySlide = false; + let recordTimer; + let firstTouchPageY = -1; + let isFingerTouchingScreen = false; + let isFirstAuthrizedRecord = false; + const recorderManager = (_a = common_vendor.i) == null ? void 0 : _a.getRecorderManager(); + const isRecording = common_vendor.ref(false); + const touchBarText = common_vendor.ref("按住说话"); + const modalText = common_vendor.ref("正在录音"); + const isAudioTouchBarShow = common_vendor.ref(false); + const currentConversation = common_vendor.ref(); + const recordConfig = { + // Duration of the recording, in ms, with a maximum value of 600000 (10 minutes) + duration: 6e4, + // Sampling rate + sampleRate: 44100, + // Number of recording channels + numberOfChannels: 1, + // Encoding bit rate + encodeBitRate: 192e3, + // Audio format + // Select this format to create audio messages that can be interoperable across all chat platforms (Android, iOS, WeChat Mini Programs, and Web). + format: "mp3" + }; + function switchAudio() { + emits("changeDisplayType", props.isEnableAudio ? "editor" : "audio"); + } + common_vendor.onMounted(() => { + recorderManager.onStart(onRecorderStart); + recorderManager.onStop(onRecorderStop); + recorderManager.onError(onRecorderError); + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversation: onCurrentConverstaionUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CONV, { + currentConversation: onCurrentConverstaionUpdated + }); + }); + function onCurrentConverstaionUpdated(conversation) { + currentConversation.value = conversation; + } + function initRecorder() { + initRecorderData(); + initRecorderView(); + } + function initRecorderView() { + isRecording.value = false; + touchBarText.value = "按住说话"; + modalText.value = "正在录音"; + } + function initRecorderData(options) { + clearInterval(recordTimer); + recordTimer = void 0; + recordTime = 0; + firstTouchPageY = -1; + isManualCancelBySlide = false; + if (!(options == null ? void 0 : options.hasError)) { + recorderManager.stop(); + } + } + function handleTouchStart() { + if (isFingerTouchingScreen) { + isFirstAuthrizedRecord = true; + } + } + function handleLongPress() { + isFingerTouchingScreen = true; + recorderManager.start(recordConfig); + } + const handleTouchMove = TUIKit_utils_lodash.throttle(function(e) { + if (isRecording.value) { + const pageY = e.changedTouches[e.changedTouches.length - 1].pageY; + if (firstTouchPageY < 0) { + firstTouchPageY = pageY; + } + const offset = firstTouchPageY - pageY; + if (offset > 150) { + touchBarText.value = "抬起取消"; + modalText.value = "松开手指 取消发送"; + isManualCancelBySlide = true; + } else if (offset > 50) { + touchBarText.value = "抬起发送"; + modalText.value = "继续上滑可取消"; + isManualCancelBySlide = false; + } else { + touchBarText.value = "抬起发送"; + modalText.value = "正在录音"; + isManualCancelBySlide = false; + } + } + }, 100); + function handleTouchEnd() { + isFingerTouchingScreen = false; + recorderManager.stop(); + } + function onRecorderStart() { + if (!isFingerTouchingScreen) { + isFirstAuthrizedRecord = true; + recorderManager.stop(); + return; + } + recordTimer = setInterval(() => { + recordTime += 1; + }, 1e3); + touchBarText.value = "抬起发送"; + isRecording.value = true; + } + function onRecorderStop(res) { + var _a2, _b, _c, _d, _e, _f; + if (isFirstAuthrizedRecord) { + isFirstAuthrizedRecord = false; + initRecorder(); + return; + } + if (isManualCancelBySlide || !isRecording.value) { + initRecorder(); + return; + } + clearInterval(recordTimer); + const tempFilePath = res.tempFilePath; + const duration = res.duration ? res.duration : recordTime * 1e3; + const fileSize = res.fileSize ? res.fileSize : 48 * recordTime / 8 * 1024; + if (duration < 1e3) { + TUIKit_components_common_Toast_index.Toast({ + message: "录音时间太短", + type: TUIKit_components_common_Toast_type.TOAST_TYPE.NORMAL, + duration: 1500 + }); + } else { + const options = { + to: ((_b = (_a2 = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _a2.groupProfile) == null ? void 0 : _b.groupID) || ((_d = (_c = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _c.userProfile) == null ? void 0 : _d.userID), + conversationType: (_e = currentConversation == null ? void 0 : currentConversation.value) == null ? void 0 : _e.type, + payload: { file: { duration, tempFilePath, fileSize } }, + needReadReceipt: TUIKit_components_TUIChat_utils_utils.isEnabledMessageReadReceiptGlobal() + }; + (_f = common_vendor.Qt) == null ? void 0 : _f.sendAudioMessage(options); + } + initRecorder(); + } + function onRecorderError() { + initRecorderData({ hasError: true }); + initRecorderView(); + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.o$1(switchAudio), + b: common_vendor.p({ + file: common_vendor.unref(common_assets.audioIcon$1), + size: "23px", + hotAreaSize: "3px" + }), + c: props.isEnableAudio + }, props.isEnableAudio ? common_vendor.e({ + d: common_vendor.t(common_vendor.unref(common_vendor.Wt).t(`TUIChat.${common_vendor.unref(touchBarText)}`)), + e: common_vendor.unref(isRecording) + }, common_vendor.unref(isRecording) ? { + f: common_vendor.t(common_vendor.unref(common_vendor.Wt).t(`TUIChat.${common_vendor.unref(modalText)}`)) + } : {}, { + g: common_vendor.o$1(handleTouchStart), + h: common_vendor.o$1(handleLongPress), + i: common_vendor.o$1( + //@ts-ignore + (...args) => common_vendor.unref(handleTouchMove) && common_vendor.unref(handleTouchMove)(...args) + ), + j: common_vendor.o$1(handleTouchEnd) + }) : {}, { + k: common_vendor.unref(isAudioTouchBarShow) ? 1 : "" + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-89320e8a"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.json new file mode 100644 index 0000000..017f9cf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.wxml new file mode 100644 index 0000000..4111cf3 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.wxml @@ -0,0 +1 @@ +{{f}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.wxss new file mode 100644 index 0000000..1e6244f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-audio.wxss @@ -0,0 +1,145 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-89320e8a, div.data-v-89320e8a, ul.data-v-89320e8a, ol.data-v-89320e8a, dt.data-v-89320e8a, dd.data-v-89320e8a, li.data-v-89320e8a, dl.data-v-89320e8a, h1.data-v-89320e8a, h2.data-v-89320e8a, h3.data-v-89320e8a, h4.data-v-89320e8a, p.data-v-89320e8a { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-89320e8a, ul.data-v-89320e8a, li.data-v-89320e8a { + list-style: none; +} +img.data-v-89320e8a { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-89320e8a { + color: #000; + background: #FFF; +} +.clear.data-v-89320e8a { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-89320e8a { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-89320e8a:hover { + text-decoration: none; +} +input.data-v-89320e8a, textarea.data-v-89320e8a { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-89320e8a:focus, input.data-v-89320e8a:active, textarea.data-v-89320e8a:focus, textarea.data-v-89320e8a:active { + outline: none; +} +.chat-aside.data-v-89320e8a { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.message-input-audio.data-v-89320e8a { + display: flex; + flex-direction: row; + align-items: center; +} +.message-input-audio .audio-message-icon.data-v-89320e8a { + margin-right: 3px; +} +.message-input-audio .audio-input-touch-bar.data-v-89320e8a { + height: 39px; + flex: 1; + border-radius: 10px; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + background-color: #fff; +} +.message-input-audio .audio-input-touch-bar .record-modal.data-v-89320e8a { + height: 300rpx; + width: 60vw; + background-color: rgba(0, 0, 0, 0.8); + position: fixed; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + z-index: 9999; + border-radius: 24rpx; + display: flex; + flex-direction: column; + overflow: hidden; +} +.message-input-audio .audio-input-touch-bar .record-modal .red-mask.data-v-89320e8a { + position: absolute; + inset: 0; + background-color: rgba(255, 62, 72, 0.5); + opacity: 0; + transition: opacity 10ms linear; + z-index: 1; +} +.message-input-audio .audio-input-touch-bar .record-modal .moving-slider.data-v-89320e8a { + margin: 10vw; + width: 40rpx; + height: 16rpx; + border-radius: 4rpx; + background-color: #006fff; + animation: loading-89320e8a 1s ease-in-out infinite alternate; + z-index: 2; +} +.message-input-audio .audio-input-touch-bar .record-modal .float-element.data-v-89320e8a { + position: relative; + z-index: 2; +} +@keyframes loading-89320e8a { +0% { + transform: translate(0, 0); +} +100% { + transform: translate(30vw, 0); + background-color: #f5634a; + width: 40px; +} +} +.message-input-audio .audio-input-touch-bar .modal-title.data-v-89320e8a { + text-align: center; + color: #fff; +} +.message-input-audio-open.data-v-89320e8a { + flex: 1; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.js new file mode 100644 index 0000000..ac0617d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.js @@ -0,0 +1,214 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +require("../../../adapter-vue.js"); +const TUIKit_components_TUIChat_utils_conversationDraft = require("../utils/conversationDraft.js"); +const TUIKit_components_TUIChat_emojiConfig_index = require("../emoji-config/index.js"); +const TUIKit_utils_env = require("../../../utils/env.js"); +const TUIKit_components_TUIChat_utils_sendMessage = require("../utils/sendMessage.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-input-editor", + props: { + placeholder: { + type: String, + default: "this is placeholder" + }, + replayOrReferenceMessage: { + type: Object, + default: () => ({}), + required: false + }, + isMuted: { + type: Boolean, + default: true + }, + muteText: { + type: String, + default: "" + }, + enableInput: { + type: Boolean, + default: true + }, + enableAt: { + type: Boolean, + default: true + }, + enableTyping: { + type: Boolean, + default: true + }, + isGroup: { + type: Boolean, + default: false + } + }, + emits: ["onTyping", "onFocus", "onAt"], + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emits = __emit; + const inputText = common_vendor.ref(""); + common_vendor.ref(); + const inputBlur = common_vendor.ref(true); + const inputContentEmpty = common_vendor.ref(true); + const allInsertedAtInfo = /* @__PURE__ */ new Map(); + const currentConversation = common_vendor.ref(); + const currentConversationID = common_vendor.ref(""); + const currentQuoteMessage = common_vendor.ref(); + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdated + }); + common_vendor.Jt.watch(common_vendor.o.CHAT, { + quoteMessage: onQuoteMessageUpdated + }); + common_vendor.index.$on("insert-emoji", (data) => { + var _a; + inputText.value += (_a = data == null ? void 0 : data.emoji) == null ? void 0 : _a.name; + }); + common_vendor.index.$on("send-message-in-emoji-picker", () => { + handleSendMessage(); + }); + }); + common_vendor.onUnmounted(() => { + if (currentConversationID.value) { + TUIKit_components_TUIChat_utils_conversationDraft.DraftManager.setStore(currentConversationID.value, inputText.value, inputText.value, currentQuoteMessage.value); + } + common_vendor.index.$off("insertEmoji"); + common_vendor.index.$off("send-message-in-emoji-picker"); + common_vendor.Jt.unwatch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdated + }); + common_vendor.Jt.unwatch(common_vendor.o.CHAT, { + quoteMessage: onQuoteMessageUpdated + }); + reset(); + }); + const handleSendMessage = () => { + const messageList = getEditorContent(); + resetEditor(); + TUIKit_components_TUIChat_utils_sendMessage.sendMessages(messageList, currentConversation.value); + }; + const insertAt = (atInfo) => { + if (!(allInsertedAtInfo == null ? void 0 : allInsertedAtInfo.has(atInfo == null ? void 0 : atInfo.id))) { + allInsertedAtInfo == null ? void 0 : allInsertedAtInfo.set(atInfo == null ? void 0 : atInfo.id, atInfo == null ? void 0 : atInfo.label); + } + inputText.value += atInfo == null ? void 0 : atInfo.label; + }; + const getEditorContent = () => { + let text = inputText.value; + text = TUIKit_components_TUIChat_emojiConfig_index.transformTextWithEmojiNamesToKeys(text); + const atUserList = []; + allInsertedAtInfo == null ? void 0 : allInsertedAtInfo.forEach((value, key) => { + if (text == null ? void 0 : text.includes("@" + value)) { + atUserList.push(key); + } + }); + const payload = { + text + }; + if (atUserList == null ? void 0 : atUserList.length) { + payload.atUserList = atUserList; + } + return [ + { + type: "text", + payload + } + ]; + }; + const resetEditor = () => { + inputText.value = ""; + inputContentEmpty.value = true; + allInsertedAtInfo == null ? void 0 : allInsertedAtInfo.clear(); + }; + const setEditorContent = (content) => { + inputText.value = content; + }; + const onBlur = () => { + inputBlur.value = true; + }; + const onFocus = (e) => { + var _a; + inputBlur.value = false; + emits("onFocus", (_a = e == null ? void 0 : e.detail) == null ? void 0 : _a.height); + }; + const isEditorContentEmpty = () => { + var _a; + inputContentEmpty.value = ((_a = inputText == null ? void 0 : inputText.value) == null ? void 0 : _a.length) ? false : true; + }; + const onInput = (e) => { + var _a, _b; + const text = (_a = e == null ? void 0 : e.detail) == null ? void 0 : _a.value; + isEditorContentEmpty(); + if (props.isGroup && (text.endsWith("@") || text.endsWith("@\n"))) { + (_b = common_vendor.i) == null ? void 0 : _b.hideKeyboard(); + emits("onAt", true); + } + }; + common_vendor.watch( + () => [inputContentEmpty.value, inputBlur.value], + (newVal, oldVal) => { + if (newVal !== oldVal) { + emits("onTyping", inputContentEmpty.value, inputBlur.value); + } + }, + { + immediate: true, + deep: true + } + ); + function onCurrentConversationUpdated(conversation) { + const prevConversationID = currentConversationID.value; + currentConversation.value = conversation; + currentConversationID.value = conversation == null ? void 0 : conversation.conversationID; + if (prevConversationID !== currentConversationID.value) { + if (prevConversationID) { + TUIKit_components_TUIChat_utils_conversationDraft.DraftManager.setStore( + prevConversationID, + inputText.value, + inputText.value, + currentQuoteMessage.value + ); + } + resetEditor(); + if (currentConversationID.value) { + TUIKit_components_TUIChat_utils_conversationDraft.DraftManager.getStore(currentConversationID.value, setEditorContent); + } + } + } + function onQuoteMessageUpdated(options) { + currentQuoteMessage.value = options; + } + function reset() { + inputBlur.value = true; + currentConversation.value = null; + currentConversationID.value = ""; + currentQuoteMessage.value = null; + resetEditor(); + } + __expose({ + insertAt, + resetEditor, + setEditorContent, + getEditorContent + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: props.isMuted + }, props.isMuted ? { + b: common_vendor.t(props.muteText) + } : {}, { + c: props.placeholder, + d: common_vendor.o$1(handleSendMessage), + e: common_vendor.o$1([($event) => common_vendor.isRef(inputText) ? inputText.value = $event.detail.value : null, onInput]), + f: common_vendor.o$1(onBlur), + g: common_vendor.o$1(onFocus), + h: common_vendor.unref(inputText), + i: !common_vendor.unref(TUIKit_utils_env.isPC) ? 1 : "" + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-6acc9af1"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.wxml new file mode 100644 index 0000000..e3387e6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.wxml @@ -0,0 +1 @@ +{{b}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.wxss new file mode 100644 index 0000000..0f902ed --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-editor.wxss @@ -0,0 +1,104 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-6acc9af1, div.data-v-6acc9af1, ul.data-v-6acc9af1, ol.data-v-6acc9af1, dt.data-v-6acc9af1, dd.data-v-6acc9af1, li.data-v-6acc9af1, dl.data-v-6acc9af1, h1.data-v-6acc9af1, h2.data-v-6acc9af1, h3.data-v-6acc9af1, h4.data-v-6acc9af1, p.data-v-6acc9af1 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-6acc9af1, ul.data-v-6acc9af1, li.data-v-6acc9af1 { + list-style: none; +} +img.data-v-6acc9af1 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-6acc9af1 { + color: #000; + background: #FFF; +} +.clear.data-v-6acc9af1 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-6acc9af1 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-6acc9af1:hover { + text-decoration: none; +} +input.data-v-6acc9af1, textarea.data-v-6acc9af1 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-6acc9af1:focus, input.data-v-6acc9af1:active, textarea.data-v-6acc9af1:focus, textarea.data-v-6acc9af1:active { + outline: none; +} +.chat-aside.data-v-6acc9af1 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.message-input-container.data-v-6acc9af1 { + display: flex; + flex-direction: column; + flex: 1; + padding: 3px 10px 10px; + overflow: hidden; +} +.message-input-container-h5.data-v-6acc9af1 { + flex: 1; + height: auto; + background: #fff; + border-radius: 10px; + padding: 7px 0 7px 10px; + font-size: 16px !important; + max-height: 86px; +} +.message-input-container .message-input-mute.data-v-6acc9af1 { + flex: 1; + display: flex; + color: #999; + font-size: 14px; + justify-content: center; + align-items: center; +} +.message-input-container .message-input-area.data-v-6acc9af1 { + flex: 1; + overflow-y: scroll; + min-height: 25px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.js new file mode 100644 index 0000000..f99f15c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.js @@ -0,0 +1,94 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +const TUIKit_components_TUIChat_emojiConfig_index = require("../../emoji-config/index.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + displayType: { default: "editor" } + }, + setup(__props) { + const props = __props; + const TYPES = common_vendor.qt.TYPES; + const quoteMessage = common_vendor.ref(); + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CHAT, { + quoteMessage: onQuoteMessageUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CHAT, { + quoteMessage: onQuoteMessageUpdated + }); + }); + const quoteContentText = common_vendor.computed(() => { + var _a, _b; + let _quoteContentText; + switch ((_a = quoteMessage.value) == null ? void 0 : _a.type) { + case TYPES.MSG_TEXT: + _quoteContentText = TUIKit_components_TUIChat_emojiConfig_index.transformTextWithKeysToEmojiNames((_b = quoteMessage.value.payload) == null ? void 0 : _b.text); + break; + case TYPES.MSG_IMAGE: + _quoteContentText = common_vendor.Wt.t("TUIChat.图片"); + break; + case TYPES.MSG_AUDIO: + _quoteContentText = common_vendor.Wt.t("TUIChat.语音"); + break; + case TYPES.MSG_VIDEO: + _quoteContentText = common_vendor.Wt.t("TUIChat.视频"); + break; + case TYPES.MSG_FILE: + _quoteContentText = common_vendor.Wt.t("TUIChat.文件"); + break; + case TYPES.MSG_CUSTOM: + _quoteContentText = common_vendor.Wt.t("TUIChat.自定义"); + break; + case TYPES.MSG_FACE: + _quoteContentText = common_vendor.Wt.t("TUIChat.表情"); + break; + case TYPES.MSG_MERGER: + _quoteContentText = common_vendor.Wt.t("TUIChat.聊天记录"); + break; + default: + _quoteContentText = common_vendor.Wt.t("TUIChat.消息"); + break; + } + return _quoteContentText; + }); + function cancelQuote() { + common_vendor.Jt.update(common_vendor.o.CHAT, "quoteMessage", { message: void 0, type: "quote" }); + } + function onQuoteMessageUpdated(options) { + if ((options == null ? void 0 : options.message) && (options == null ? void 0 : options.type) === "quote") { + quoteMessage.value = options.message; + } else { + quoteMessage.value = void 0; + } + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: Boolean(common_vendor.unref(quoteMessage)) && props.displayType !== "audio" + }, Boolean(common_vendor.unref(quoteMessage)) && props.displayType !== "audio" ? { + b: common_vendor.t(common_vendor.unref(quoteMessage).nick || common_vendor.unref(quoteMessage).from), + c: common_vendor.t(common_vendor.unref(quoteContentText)), + d: common_vendor.o$1(cancelQuote), + e: common_vendor.p({ + file: common_vendor.unref(common_assets.closeIcon$2), + width: "11px", + height: "11px" + }), + f: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? 1 : "", + g: common_vendor.unref(TUIKit_utils_env.isH5) ? 1 : "" + } : {}); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-0be2008a"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.json new file mode 100644 index 0000000..e4996d2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.wxml new file mode 100644 index 0000000..3226672 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.wxml @@ -0,0 +1 @@ +{{b}}: {{c}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.wxss new file mode 100644 index 0000000..923904d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-input/message-input-quote/index.wxss @@ -0,0 +1,59 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.input-quote-container-h5.data-v-0be2008a, .input-quote-container-uni.data-v-0be2008a, .input-quote-container.data-v-0be2008a { + margin: 5px 100px 5px 8px; + display: flex; + flex: 0 1 auto; +} +.input-quote-container-h5 .input-quote-content.data-v-0be2008a, .input-quote-container-uni .input-quote-content.data-v-0be2008a, .input-quote-container .input-quote-content.data-v-0be2008a { + display: flex; + flex: 0 1 auto; + background-color: #fafafa; + border-radius: 8px; + padding: 12px; + font-size: 12px; + align-items: center; + line-height: 16px; + max-width: 100%; + box-sizing: border-box; + min-width: 0; +} +.input-quote-container-h5 .input-quote-content .max-one-line.data-v-0be2008a, .input-quote-container-uni .input-quote-content .max-one-line.data-v-0be2008a, .input-quote-container .input-quote-content .max-one-line.data-v-0be2008a { + flex: 0 1 auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.input-quote-container-h5 .input-quote-close-icon.data-v-0be2008a, .input-quote-container-uni .input-quote-close-icon.data-v-0be2008a, .input-quote-container .input-quote-close-icon.data-v-0be2008a { + margin-left: 5px; + padding: 5px; +} +.input-quote-container-uni.data-v-0be2008a { + margin: 5px 60px 0 30px; +} +.input-quote-container-h5.data-v-0be2008a { + margin: 5px 0 0; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.js new file mode 100644 index 0000000..2808b4f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.js @@ -0,0 +1,618 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +require("../../../adapter-vue.js"); +const TUIKit_components_TUIChat_messageList_link_index = require("./link/index.js"); +const TUIKit_plugins_pluginComponents_index = require("../../../plugins/plugin-components/index.js"); +const TUIKit_components_common_Toast_index = require("../../common/Toast/index.js"); +const TUIKit_components_TUIChat_utils_utils = require("../utils/utils.js"); +const TUIKit_utils_lodash = require("../../../utils/lodash.js"); +const TUIKit_utils_env = require("../../../utils/env.js"); +const TUIKit_components_TUIChat_utils_chatStorage = require("../utils/chatStorage.js"); +const TUIKit_components_common_Toast_type = require("../../common/Toast/type.js"); +if (!Math) { + (MessageGroupApplication + MessageTimestamp + MessageTip + MessageText + MessageImage + ProgressMessage + MessageVideo + MessageAudio + MessageRecord + MessageFile + MessageFace + MessageLocation + MessageCustom + MessageBubble + MessagePlugin + MessageRevoked + MessageTool + ScrollButton + Dialog + ReadReceiptPanel + SimpleMessageList + Drawer)(); +} +const SimpleMessageList = () => "./message-elements/simple-message-list/index.js"; +const MessageGroupApplication = () => "./message-group-application/index.js"; +const MessageText = () => "./message-elements/message-text.js"; +const MessageImage = () => "./message-elements/message-image.js"; +const MessageAudio = () => "./message-elements/message-audio.js"; +const MessageRecord = () => "./message-elements/message-record/index.js"; +const MessageFile = () => "./message-elements/message-file.js"; +const MessageFace = () => "./message-elements/message-face.js"; +const MessageCustom = () => "./message-elements/message-custom.js"; +const MessageTip = () => "./message-elements/message-tip.js"; +const MessageBubble = () => "./message-elements/message-bubble.js"; +const MessageLocation = () => "./message-elements/message-location.js"; +const MessageTimestamp = () => "./message-elements/message-timestamp.js"; +const MessageVideo = () => "./message-elements/message-video.js"; +const MessageTool = () => "./message-tool/index.js"; +const MessageRevoked = () => "./message-tool/message-revoked.js"; +const MessagePlugin = () => "../../../plugins/plugin-components/message-plugin.js"; +const ReadReceiptPanel = () => "./read-receipt-panel/index.js"; +const ScrollButton = () => "./scroll-button/index.js"; +const Dialog = () => "../../common/Dialog/index.js"; +const Drawer = () => "../../common/Drawer/index.js"; +const ProgressMessage = () => "../../common/ProgressMessage/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + isGroup: { type: Boolean, default: false }, + groupID: { default: "" }, + isNotInGroup: { type: Boolean, default: false }, + isMultipleSelectMode: { type: Boolean, default: false } + }, + emits: ["closeInputToolBar", "handleEditor", "toggleMultipleSelectMode"], + setup(__props, { expose: __expose, emit: __emit }) { + var _a; + const emits = __emit; + const props = __props; + let selfAddValue = 0; + let observer = null; + let groupType; + const sentReceiptMessageID = /* @__PURE__ */ new Set(); + const isOfficial = common_vendor.Jt.getData(common_vendor.o.APP, "isOfficial"); + const thisInstance = ((_a = common_vendor.getCurrentInstance()) == null ? void 0 : _a.proxy) || common_vendor.getCurrentInstance(); + const messageList = common_vendor.ref(); + const multipleSelectedMessageIDList = common_vendor.ref([]); + const isCompleted = common_vendor.ref(false); + const currentConversationID = common_vendor.ref(""); + const toggleID = common_vendor.ref(""); + const scrollTop = common_vendor.ref(5e3); + const TYPES = common_vendor.ref(common_vendor.qt.TYPES); + const isLoadingMessage = common_vendor.ref(false); + const isLongpressing = common_vendor.ref(false); + const blinkMessageIDList = common_vendor.ref([]); + const messageTarget = common_vendor.ref(); + const scrollButtonInstanceRef = common_vendor.ref(); + const historyFirstMessageID = common_vendor.ref(""); + const isShowSimpleMessageList = common_vendor.ref(false); + const simpleMessageListRenderMessageID = common_vendor.ref(); + const audioPlayedMapping = common_vendor.ref({}); + const broadcastNewAudioSrc = common_vendor.ref(""); + const readStatusMessage = common_vendor.ref(); + const isShowReadUserStatusPanel = common_vendor.ref(false); + const reSendDialogShow = common_vendor.ref(false); + const resendMessageData = common_vendor.ref(); + const scrollToBottom = () => { + scrollTop.value += 300; + const timer2 = setTimeout(() => { + scrollTop.value += 1; + clearTimeout(timer2); + }, 300); + }; + const onCurrentConversationIDUpdated = (conversationID) => { + currentConversationID.value = conversationID; + if (TUIKit_components_TUIChat_utils_utils.isEnabledMessageReadReceiptGlobal()) { + const { groupProfile } = common_vendor.Jt.getConversationModel(conversationID) || {}; + groupType = groupProfile == null ? void 0 : groupProfile.type; + } + if (Object.keys(audioPlayedMapping.value).length > 0) { + TUIKit_components_TUIChat_utils_chatStorage.chatStorage.setChatStorage("audioPlayedMapping", audioPlayedMapping.value); + } + }; + common_vendor.onMounted(() => { + audioPlayedMapping.value = TUIKit_components_TUIChat_utils_chatStorage.chatStorage.getChatStorage("audioPlayedMapping") || {}; + common_vendor.Jt.watch(common_vendor.o.CHAT, { + messageList: onMessageListUpdated, + messageSource: onMessageSourceUpdated, + isCompleted: onChatCompletedUpdated + }); + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversationID: onCurrentConversationIDUpdated + }); + common_vendor.v("messageList", thisInstance); + common_vendor.index.$on("scroll-to-bottom", scrollToLatestMessage); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CHAT, { + messageList: onMessageListUpdated, + isCompleted: onChatCompletedUpdated + }); + common_vendor.Jt.unwatch(common_vendor.o.CONV, { + currentConversationID: onCurrentConversationIDUpdated + }); + observer == null ? void 0 : observer.disconnect(); + observer = null; + common_vendor.index.$off("scroll-to-bottom"); + if (Object.keys(audioPlayedMapping.value).length > 0) { + TUIKit_components_TUIChat_utils_chatStorage.chatStorage.setChatStorage("audioPlayedMapping", audioPlayedMapping.value); + } + }); + const handelScrollListScroll = TUIKit_utils_lodash.throttle( + function(e) { + var _a2; + (_a2 = scrollButtonInstanceRef.value) == null ? void 0 : _a2.judgeScrollOverOneScreen(e); + }, + 500, + { leading: true } + ); + function getGlobalAudioContext(audioMap, options) { + if (options == null ? void 0 : options.newAudioSrc) { + broadcastNewAudioSrc.value = options.newAudioSrc; + } + } + async function onMessageListUpdated(list) { + var _a2, _b, _c; + observer == null ? void 0 : observer.disconnect(); + messageList.value = list.filter((message) => !message.isDeleted).map((message) => { + message.vueForRenderKey = `${message.ID}`; + return message; + }); + const newLastMessage = (_b = messageList.value) == null ? void 0 : _b[((_a2 = messageList.value) == null ? void 0 : _a2.length) - 1]; + if (messageTarget.value) { + scrollAndBlinkMessage(messageTarget.value); + } else if (!isLoadingMessage.value && !(((_c = scrollButtonInstanceRef.value) == null ? void 0 : _c.isScrollButtonVisible) && (newLastMessage == null ? void 0 : newLastMessage.flow) === "in")) { + common_vendor.nextTick$1(() => { + scrollToBottom(); + }); + } + if (TUIKit_components_TUIChat_utils_utils.isEnabledMessageReadReceiptGlobal()) { + common_vendor.nextTick$1(() => bindIntersectionObserver()); + } + } + async function scrollToLatestMessage() { + try { + const { scrollHeight } = await common_vendor.P( + "#messageScrollList", + "messageList" + ); + if (scrollHeight) { + scrollTop.value === scrollHeight ? scrollTop.value = scrollHeight + 1 : scrollTop.value = scrollHeight; + } else { + scrollToBottom(); + } + } catch (error) { + scrollToBottom(); + } + } + async function onMessageSourceUpdated(message) { + messageTarget.value = message; + scrollAndBlinkMessage(messageTarget.value); + } + function scrollAndBlinkMessage(message) { + var _a2; + if ((_a2 = messageList.value) == null ? void 0 : _a2.some( + (messageListItem) => (messageListItem == null ? void 0 : messageListItem.ID) === (message == null ? void 0 : message.ID) + )) { + common_vendor.nextTick$1(async () => { + await scrollToTargetMessage(message); + await blinkMessage(message == null ? void 0 : message.ID); + messageTarget.value = void 0; + }); + } + } + function onChatCompletedUpdated(flag) { + isCompleted.value = flag; + } + const getHistoryMessageList = () => { + var _a2, _b; + isLoadingMessage.value = true; + const currentFirstMessageID = ((_b = (_a2 = messageList.value) == null ? void 0 : _a2[0]) == null ? void 0 : _b.ID) || ""; + common_vendor.Qt.getMessageList().then(() => { + common_vendor.nextTick$1(() => { + historyFirstMessageID.value = currentFirstMessageID; + const timer2 = setTimeout(() => { + historyFirstMessageID.value = ""; + isLoadingMessage.value = false; + clearTimeout(timer2); + }, 500); + }); + }); + }; + const openComplaintLink = () => { + }; + const handleToggleMessageItem = (e, message, index, isLongpress = false) => { + if (props.isMultipleSelectMode || props.isNotInGroup) { + return; + } + if (isLongpress) { + isLongpressing.value = true; + } + toggleID.value = message.ID; + }; + let timer; + const handleH5LongPress = (e, message, index, type) => { + if (props.isMultipleSelectMode || props.isNotInGroup) { + return; + } + if (!TUIKit_utils_env.isH5) + return; + function longPressHandler() { + clearTimeout(timer); + handleToggleMessageItem(e, message, index, true); + } + function touchStartHandler() { + timer = setTimeout(longPressHandler, 500); + } + function touchEndHandler() { + clearTimeout(timer); + } + switch (type) { + case "touchstart": + touchStartHandler(); + break; + case "touchend": + touchEndHandler(); + setTimeout(() => { + isLongpressing.value = false; + }, 200); + break; + } + }; + const handleEdit = (message) => { + emits("handleEditor", message, "reedit"); + }; + const resendMessage = (message) => { + reSendDialogShow.value = true; + resendMessageData.value = message; + }; + const handleImagePreview = (index) => { + if (!messageList.value) { + return; + } + const imageMessageIndex = []; + const imageMessageList = messageList.value.filter((item, index2) => { + if (!item.isRevoked && !item.hasRiskContent && item.type === TYPES.value.MSG_IMAGE) { + imageMessageIndex.push(index2); + return true; + } + return false; + }); + common_vendor.index.previewImage({ + current: imageMessageIndex.indexOf(index), + urls: imageMessageList.map((message) => { + var _a2; + return (_a2 = message.payload.imageInfoArray) == null ? void 0 : _a2[2].url; + }) + }); + }; + const resendMessageConfirm = () => { + reSendDialogShow.value = !reSendDialogShow.value; + const messageModel = resendMessageData.value; + messageModel.resendMessage(); + }; + function blinkMessage(messageID) { + return new Promise((resolve) => { + const index = blinkMessageIDList.value.indexOf(messageID); + if (index < 0) { + blinkMessageIDList.value.push(messageID); + const timer2 = setTimeout(() => { + blinkMessageIDList.value.splice( + blinkMessageIDList.value.indexOf(messageID), + 1 + ); + clearTimeout(timer2); + resolve(); + }, 3e3); + } + }); + } + function scrollTo(scrollHeight) { + scrollTop.value = scrollHeight; + } + async function bindIntersectionObserver() { + if (!messageList.value || messageList.value.length === 0) { + return; + } + if (groupType === TYPES.value.GRP_AVCHATROOM || groupType === TYPES.value.GRP_COMMUNITY) { + return; + } + observer == null ? void 0 : observer.disconnect(); + observer = common_vendor.index.createIntersectionObserver(thisInstance, { + threshold: [0.7], + observeAll: true + // In Uni-app, the `safetip` is also included, so a negative margin is needed to exclude it. + }).relativeTo("#messageScrollList", { top: -70 }); + observer == null ? void 0 : observer.observe(".message-li.in .message-bubble-container", (res) => { + var _a2; + if (sentReceiptMessageID.has(res.id)) { + return; + } + const matchingMessage = messageList.value.find((message) => { + return res.id.indexOf(message.ID) > -1; + }); + if (matchingMessage && matchingMessage.needReadReceipt && matchingMessage.flow === "in" && !((_a2 = matchingMessage.readReceiptInfo) == null ? void 0 : _a2.isPeerRead)) { + common_vendor.Qt.sendMessageReadReceipt([matchingMessage]); + sentReceiptMessageID.add(res.id); + } + }); + } + function setReadReceiptPanelVisible(visible, message) { + if (visible && props.isNotInGroup) { + return; + } + if (!visible) { + readStatusMessage.value = void 0; + } else { + readStatusMessage.value = message; + } + isShowReadUserStatusPanel.value = visible; + } + async function scrollToTargetMessage(message) { + const targetMessageID = message.ID; + const isTargetMessageInScreen = messageList.value && messageList.value.some((msg) => msg.ID === targetMessageID); + if (targetMessageID && isTargetMessageInScreen) { + const timer2 = setTimeout(async () => { + try { + const scrollViewRect = await common_vendor.T( + "#messageScrollList", + "messageList" + ); + const originalMessageRect = await common_vendor.T( + "#tui-" + targetMessageID, + "messageList" + ); + const { scrollTop: scrollTop2 } = await common_vendor.P( + "#messageScrollList", + "messageList" + ); + const finalScrollTop = originalMessageRect.top + scrollTop2 - scrollViewRect.top - selfAddValue++ % 2; + scrollTo(finalScrollTop); + clearTimeout(timer2); + } catch (error) { + } + }, 500); + } else { + TUIKit_components_common_Toast_index.Toast({ + message: common_vendor.Wt.t("TUIChat.无法定位到原消息"), + type: TUIKit_components_common_Toast_type.TOAST_TYPE.WARNING + }); + } + } + function onMessageListBackgroundClick() { + emits("closeInputToolBar"); + } + common_vendor.watch(() => props.isMultipleSelectMode, (newValue) => { + if (!newValue) { + changeSelectMessageIDList({ + type: "clearAll", + messageID: "" + }); + } + }); + function changeSelectMessageIDList({ type, messageID }) { + if (type === "clearAll") { + multipleSelectedMessageIDList.value = []; + } else if (type === "add" && !multipleSelectedMessageIDList.value.includes(messageID)) { + multipleSelectedMessageIDList.value.push(messageID); + } else if (type === "remove") { + multipleSelectedMessageIDList.value = multipleSelectedMessageIDList.value.filter((id) => id !== messageID); + } + } + function mergeForwardMessage() { + common_vendor.Jt.update(common_vendor.o.CUSTOM, "multipleForwardMessageID", { + isMergeForward: true, + messageIDList: multipleSelectedMessageIDList.value + }); + } + function oneByOneForwardMessage() { + common_vendor.Jt.update(common_vendor.o.CUSTOM, "multipleForwardMessageID", { + isMergeForward: false, + messageIDList: multipleSelectedMessageIDList.value + }); + } + function assignMessageIDInUniapp(messageID) { + simpleMessageListRenderMessageID.value = messageID; + isShowSimpleMessageList.value = true; + } + function setAudioPlayed(messageID) { + audioPlayedMapping.value[messageID] = true; + } + __expose({ + oneByOneForwardMessage, + mergeForwardMessage, + scrollToLatestMessage + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(isOfficial) + }, common_vendor.unref(isOfficial) ? { + b: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.【安全提示】本 APP 仅用于体验腾讯云即时通信 IM 产品功能,不可用于业务洽谈与拓展。请勿轻信汇款、中奖等涉及钱款的信息,勿轻易拨打陌生电话,谨防上当受骗。")), + c: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.点此投诉")), + d: common_vendor.o$1(($event) => openComplaintLink(common_vendor.unref(TUIKit_components_TUIChat_messageList_link_index.Link).complaint)) + } : {}, { + e: _ctx.isGroup + }, _ctx.isGroup ? { + f: props.groupID, + g: common_vendor.p({ + groupID: props.groupID + }) + } : {}, { + h: !common_vendor.unref(isCompleted) + }, !common_vendor.unref(isCompleted) ? { + i: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.查看更多")), + j: common_vendor.o$1(getHistoryMessageList) + } : {}, { + k: common_vendor.f(common_vendor.unref(messageList), (item, index, i0) => { + return common_vendor.e({ + a: "c85b5b22-1-" + i0, + b: common_vendor.p({ + currTime: item.time, + prevTime: index > 0 ? common_vendor.unref(messageList)[index - 1].time : 0 + }), + c: item.type === common_vendor.unref(TYPES).MSG_GRP_TIP || common_vendor.unref(TUIKit_components_TUIChat_utils_utils.isCreateGroupCustomMessage)(item) + }, item.type === common_vendor.unref(TYPES).MSG_GRP_TIP || common_vendor.unref(TUIKit_components_TUIChat_utils_utils.isCreateGroupCustomMessage)(item) ? { + d: "c85b5b22-2-" + i0, + e: common_vendor.p({ + content: item.getMessageContent() + }) + } : !item.isRevoked && !common_vendor.unref(TUIKit_plugins_pluginComponents_index.isPluginMessage)(item) ? common_vendor.e({ + g: item.type === common_vendor.unref(TYPES).MSG_TEXT + }, item.type === common_vendor.unref(TYPES).MSG_TEXT ? { + h: "c85b5b22-4-" + i0 + "," + ("c85b5b22-3-" + i0), + i: common_vendor.p({ + content: item.getMessageContent(), + messageItem: item + }) + } : item.type === common_vendor.unref(TYPES).MSG_IMAGE ? { + k: common_vendor.o$1(($event) => handleImagePreview(index), item.vueForRenderKey), + l: "c85b5b22-6-" + i0 + "," + ("c85b5b22-5-" + i0), + m: common_vendor.p({ + content: item.getMessageContent(), + messageItem: item + }), + n: "c85b5b22-5-" + i0 + "," + ("c85b5b22-3-" + i0), + o: common_vendor.p({ + content: item.getMessageContent(), + messageItem: common_vendor.unref(TUIKit_components_TUIChat_utils_utils.deepCopy)(item) + }) + } : item.type === common_vendor.unref(TYPES).MSG_VIDEO ? { + q: "c85b5b22-8-" + i0 + "," + ("c85b5b22-7-" + i0), + r: common_vendor.p({ + content: item.getMessageContent(), + messageItem: item + }), + s: "c85b5b22-7-" + i0 + "," + ("c85b5b22-3-" + i0), + t: common_vendor.p({ + content: item.getMessageContent(), + messageItem: common_vendor.unref(TUIKit_components_TUIChat_utils_utils.deepCopy)(item) + }) + } : item.type === common_vendor.unref(TYPES).MSG_AUDIO ? { + w: common_vendor.o$1(setAudioPlayed, item.vueForRenderKey), + x: common_vendor.o$1(getGlobalAudioContext, item.vueForRenderKey), + y: "c85b5b22-9-" + i0 + "," + ("c85b5b22-3-" + i0), + z: common_vendor.p({ + content: item.getMessageContent(), + messageItem: item, + broadcastNewAudioSrc: common_vendor.unref(broadcastNewAudioSrc) + }) + } : item.type === common_vendor.unref(TYPES).MSG_MERGER ? { + B: common_vendor.o$1(assignMessageIDInUniapp, item.vueForRenderKey), + C: "c85b5b22-10-" + i0 + "," + ("c85b5b22-3-" + i0), + D: common_vendor.p({ + renderData: item.payload, + messageItem: item + }) + } : item.type === common_vendor.unref(TYPES).MSG_FILE ? { + F: "c85b5b22-11-" + i0 + "," + ("c85b5b22-3-" + i0), + G: common_vendor.p({ + content: item.getMessageContent() + }) + } : item.type === common_vendor.unref(TYPES).MSG_FACE ? { + I: "c85b5b22-12-" + i0 + "," + ("c85b5b22-3-" + i0), + J: common_vendor.p({ + content: item.getMessageContent() + }) + } : item.type === common_vendor.unref(TYPES).MSG_LOCATION ? { + L: "c85b5b22-13-" + i0 + "," + ("c85b5b22-3-" + i0), + M: common_vendor.p({ + content: item.getMessageContent() + }) + } : item.type === common_vendor.unref(TYPES).MSG_CUSTOM ? { + O: "c85b5b22-14-" + i0 + "," + ("c85b5b22-3-" + i0), + P: common_vendor.p({ + content: item.getMessageContent(), + messageItem: item + }) + } : {}, { + j: item.type === common_vendor.unref(TYPES).MSG_IMAGE, + p: item.type === common_vendor.unref(TYPES).MSG_VIDEO, + v: item.type === common_vendor.unref(TYPES).MSG_AUDIO, + A: item.type === common_vendor.unref(TYPES).MSG_MERGER, + E: item.type === common_vendor.unref(TYPES).MSG_FILE, + H: item.type === common_vendor.unref(TYPES).MSG_FACE, + K: item.type === common_vendor.unref(TYPES).MSG_LOCATION, + N: item.type === common_vendor.unref(TYPES).MSG_CUSTOM, + Q: common_vendor.o$1(($event) => resendMessage(item), item.vueForRenderKey), + R: common_vendor.o$1(blinkMessage, item.vueForRenderKey), + S: common_vendor.o$1(scrollTo, item.vueForRenderKey), + T: common_vendor.o$1(changeSelectMessageIDList, item.vueForRenderKey), + U: common_vendor.o$1(setReadReceiptPanelVisible, item.vueForRenderKey), + V: "c85b5b22-3-" + i0, + W: common_vendor.p({ + messageItem: common_vendor.unref(TUIKit_components_TUIChat_utils_utils.deepCopy)(item), + content: item.getMessageContent(), + isAudioPlayed: common_vendor.unref(audioPlayedMapping)[item.ID], + blinkMessageIDList: common_vendor.unref(blinkMessageIDList), + isMultipleSelectMode: _ctx.isMultipleSelectMode, + multipleSelectedMessageIDList: common_vendor.unref(multipleSelectedMessageIDList) + }), + X: `msg-bubble-${item.ID}`, + Y: common_vendor.o$1(($event) => handleToggleMessageItem($event, item, index, true), item.vueForRenderKey), + Z: common_vendor.o$1(($event) => handleH5LongPress($event, item, index, "touchstart"), item.vueForRenderKey), + aa: common_vendor.o$1(($event) => handleH5LongPress($event, item, index, "touchend"), item.vueForRenderKey), + ab: common_vendor.o$1(($event) => handleH5LongPress($event, item, index, "touchend"), item.vueForRenderKey) + }) : !item.isRevoked && common_vendor.unref(TUIKit_plugins_pluginComponents_index.isPluginMessage)(item) ? { + ad: common_vendor.o$1(resendMessage, item.vueForRenderKey), + ae: common_vendor.o$1(handleToggleMessageItem, item.vueForRenderKey), + af: common_vendor.o$1(handleH5LongPress, item.vueForRenderKey), + ag: "c85b5b22-15-" + i0, + ah: common_vendor.p({ + message: item + }) + } : { + ai: common_vendor.o$1(($event) => handleEdit(item), item.vueForRenderKey), + aj: "c85b5b22-16-" + i0, + ak: common_vendor.p({ + isEdit: item.type === common_vendor.unref(TYPES).MSG_TEXT, + messageItem: item + }) + }, { + f: !item.isRevoked && !common_vendor.unref(TUIKit_plugins_pluginComponents_index.isPluginMessage)(item), + ac: !item.isRevoked && common_vendor.unref(TUIKit_plugins_pluginComponents_index.isPluginMessage)(item), + al: item.ID === common_vendor.unref(toggleID) + }, item.ID === common_vendor.unref(toggleID) ? { + am: item.flow === "out" ? 1 : "", + an: item.flow === "in" ? 1 : "", + ao: common_vendor.o$1(() => emits("toggleMultipleSelectMode"), item.vueForRenderKey), + ap: "c85b5b22-17-" + i0, + aq: common_vendor.p({ + messageItem: item, + isMultipleSelectMode: _ctx.isMultipleSelectMode + }) + } : {}, { + ar: common_vendor.o$1(($event) => toggleID.value = "", item.vueForRenderKey), + as: `tui-${item.ID}`, + at: item.vueForRenderKey, + av: common_vendor.n("message-li " + item.flow) + }); + }), + l: common_vendor.unref(scrollTop), + m: `tui-${common_vendor.unref(historyFirstMessageID)}`, + n: common_vendor.o$1( + //@ts-ignore + (...args) => common_vendor.unref(handelScrollListScroll) && common_vendor.unref(handelScrollListScroll)(...args) + ), + o: common_vendor.sr(scrollButtonInstanceRef, "c85b5b22-18", { + "k": "scrollButtonInstanceRef" + }), + p: common_vendor.o$1(scrollToLatestMessage), + q: common_vendor.unref(reSendDialogShow) + }, common_vendor.unref(reSendDialogShow) ? { + r: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.确认重发该消息?")), + s: common_vendor.o$1(($event) => resendMessageConfirm()), + t: common_vendor.o$1((e) => reSendDialogShow.value = e), + v: common_vendor.p({ + show: common_vendor.unref(reSendDialogShow), + isH5: !common_vendor.unref(TUIKit_utils_env.isPC), + center: true, + isHeaderShow: common_vendor.unref(TUIKit_utils_env.isPC) + }) + } : {}, { + w: common_vendor.unref(isShowReadUserStatusPanel) + }, common_vendor.unref(isShowReadUserStatusPanel) ? { + x: common_vendor.o$1(setReadReceiptPanelVisible), + y: common_vendor.p({ + message: Object.assign({}, common_vendor.unref(readStatusMessage)) + }) + } : {}, { + z: common_vendor.o$1(($event) => isShowSimpleMessageList.value = false), + A: common_vendor.p({ + isMounted: common_vendor.unref(isShowSimpleMessageList), + messageID: common_vendor.unref(simpleMessageListRenderMessageID) + }), + B: common_vendor.p({ + visible: common_vendor.unref(isShowSimpleMessageList), + overlayColor: "transparent", + popDirection: "right" + }), + C: common_vendor.unref(TUIKit_utils_env.isMobile) ? 1 : "", + D: common_vendor.o$1(onMessageListBackgroundClick) + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-c85b5b22"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.json new file mode 100644 index 0000000..3a9993f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.json @@ -0,0 +1,27 @@ +{ + "component": true, + "usingComponents": { + "simple-message-list": "./message-elements/simple-message-list/index", + "message-group-application": "./message-group-application/index", + "message-text": "./message-elements/message-text", + "message-image": "./message-elements/message-image", + "message-audio": "./message-elements/message-audio", + "message-record": "./message-elements/message-record/index", + "message-file": "./message-elements/message-file", + "message-face": "./message-elements/message-face", + "message-custom": "./message-elements/message-custom", + "message-tip": "./message-elements/message-tip", + "message-bubble": "./message-elements/message-bubble", + "message-location": "./message-elements/message-location", + "message-timestamp": "./message-elements/message-timestamp", + "message-video": "./message-elements/message-video", + "message-tool": "./message-tool/index", + "message-revoked": "./message-tool/message-revoked", + "message-plugin": "../../../plugins/plugin-components/message-plugin", + "read-receipt-panel": "./read-receipt-panel/index", + "scroll-button": "./scroll-button/index", + "dialog": "../../common/Dialog/index", + "drawer": "../../common/Drawer/index", + "progress-message": "../../common/ProgressMessage/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.wxml new file mode 100644 index 0000000..76f4e6d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.wxml @@ -0,0 +1 @@ +{{c}}{{i}}{{r}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.wxss new file mode 100644 index 0000000..fc9db3d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/index.wxss @@ -0,0 +1,265 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-c85b5b22, div.data-v-c85b5b22, ul.data-v-c85b5b22, ol.data-v-c85b5b22, dt.data-v-c85b5b22, dd.data-v-c85b5b22, li.data-v-c85b5b22, dl.data-v-c85b5b22, h1.data-v-c85b5b22, h2.data-v-c85b5b22, h3.data-v-c85b5b22, h4.data-v-c85b5b22, p.data-v-c85b5b22 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-c85b5b22, ul.data-v-c85b5b22, li.data-v-c85b5b22 { + list-style: none; +} +img.data-v-c85b5b22 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-c85b5b22 { + color: #000; + background: #FFF; +} +.clear.data-v-c85b5b22 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-c85b5b22 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-c85b5b22:hover { + text-decoration: none; +} +input.data-v-c85b5b22, textarea.data-v-c85b5b22 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-c85b5b22:focus, input.data-v-c85b5b22:active, textarea.data-v-c85b5b22:focus, textarea.data-v-c85b5b22:active { + outline: none; +} +.chat-aside.data-v-c85b5b22 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.tui-chat .tui-message-list .message-more.data-v-c85b5b22 { + color: #999; + cursor: pointer; +} +.tui-chat .image-dialog.data-v-c85b5b22 { + background: rgba(0, 0, 0, 0.6); +} +.tui-chat .image-dialog header.data-v-c85b5b22 { + background: rgba(0, 0, 0, 0.49); +} +.tui-chat-h5 .tui-chat-header.data-v-c85b5b22 { + background: #FFF; +} +.tui-chat-h5 .tui-chat-footer.data-v-c85b5b22 { + background: #FFF; +} +.tui-chat-h5 .tui-chat-footer .input input.data-v-c85b5b22 { + background: #F4F5F9; +} +.tui-chat.data-v-c85b5b22 { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + overflow: hidden; +} +.tui-chat-main.data-v-c85b5b22 { + min-height: 0; + flex: 1; + overflow: hidden; + display: flex; + flex-direction: column; + position: relative; +} +.tui-chat-main .tui-chat-safe-tips.data-v-c85b5b22 { + padding: 12px 20px; + background-color: rgba(255, 149, 0, 0.1); + color: #ff8c39; + line-height: 18px; + font-family: PingFangSC-Regular; + font-style: normal; + font-weight: 400; + text-align: justify; + font-size: 12px; +} +.tui-chat-main .tui-chat-safe-tips a.data-v-c85b5b22 { + color: #006eff; + float: right; +} +.tui-chat-main .tui-chat-application-tips.data-v-c85b5b22 { + text-align: center; + width: 100%; + background: #fce4d3; + padding: 2px; + font-size: 12px; +} +.tui-chat-main .application-tips-btn.data-v-c85b5b22 { + color: #006eff; + padding-left: 10px; +} +.tui-chat-main .tui-message-list.data-v-c85b5b22 { + flex: 1; + height: 100%; + overflow: hidden auto; +} +.tui-chat-main .tui-message-list .message-more.data-v-c85b5b22 { + font-size: 14px; + padding: 5px; + text-align: center; +} +.tui-chat-main .tui-message-list .to-bottom-tip.data-v-c85b5b22 { + position: -webkit-sticky; + position: sticky; + bottom: 10px; + left: 100%; + margin-right: 15px; + width: 92px; + height: 28px; + padding: 0 5px; + background: #fff; + border: 1px solid #e0e0e0; + box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.06); + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + border-radius: 3px; + cursor: pointer; +} +.tui-chat-main .tui-message-list .to-bottom-tip-text.data-v-c85b5b22 { + font-family: PingFangSC-Regular; + font-weight: 400; + font-size: 10px; + color: #147aff; + letter-spacing: 0; + text-align: center; + padding-left: 3px; +} +.tui-chat-main .tui-message-list .message-li.data-v-c85b5b22 { + display: flex; + flex-direction: column; +} +.tui-chat-main .tui-message-list .message-li.data-v-c85b5b22:first-child { + margin-top: 5px; +} +.tui-chat-main .tui-message-list .message-li .message-item.data-v-c85b5b22 { + display: flex; + position: relative; + flex-direction: column; +} +.tui-chat-main .tui-message-list .message-li .message-item .message-tool.data-v-c85b5b22 { + z-index: 5; + position: absolute; + cursor: pointer; + transform: translateY(-100%); +} +.tui-chat-main .tui-message-list .message-li .message-item .message-tool-out.data-v-c85b5b22 { + right: 30px; + left: auto; +} +.tui-chat-main .tui-message-list .message-li .message-item .message-tool-in.data-v-c85b5b22 { + left: 30px; + right: auto; +} +.tui-chat-main .tui-message-list .message-li .message-item .message-tool-bottom.data-v-c85b5b22 { + z-index: 5; + bottom: 0; + transform: translateY(100%); +} +.tui-chat-main .tui-message-list .message-li .message-label.data-v-c85b5b22 { + max-width: 50px; +} +.tui-chat-main .tui-message-list .right.data-v-c85b5b22 { + flex-direction: row-reverse; + justify-content: flex-start; +} +.tui-chat .disabled.data-v-c85b5b22 { + position: relative; +} +.tui-chat .disabled.data-v-c85b5b22::before { + content: ""; + position: absolute; + width: 100%; + height: 100%; +} +.image-dialog.data-v-c85b5b22 { + position: fixed; + z-index: 5; + width: 100vw; + height: calc(100vh - 63px); + top: 63px; + left: 0; +} +.image-dialog header.data-v-c85b5b22 { + display: flex; + justify-content: flex-end; + width: 100%; + box-sizing: border-box; + padding: 10px; +} +.data-v-c85b5b22::-webkit-scrollbar { + width: 6px; + height: 140px; + background-color: transparent; +} +.data-v-c85b5b22::-webkit-scrollbar-track { + border-radius: 10px; +} +.data-v-c85b5b22::-webkit-scrollbar-thumb { + border-radius: 10px; + background-color: #9a999c; +} +.tui-chat-h5.data-v-c85b5b22 { + flex: 1; + position: static; +} +.tui-chat-h5 .tui-chat-main .tui-message-list.data-v-c85b5b22 { + height: 100%; +} +.tui-chat-h5 .tui-chat-main .message-more.data-v-c85b5b22 { + color: #999; + cursor: pointer; + font-size: 14px; +} +.data-v-c85b5b22:not(not) { + display: flex; + flex-direction: column; + box-sizing: border-box; + min-width: 0; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/link/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/link/index.js new file mode 100644 index 0000000..2edff7e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/link/index.js @@ -0,0 +1,25 @@ +"use strict"; +const Link = { + product: { + label: "产品文档", + url: "https://cloud.tencent.com/document/product/269/1499#.E7.BE.A4.E7.BB.84.E5.8A.9F.E8.83.BD" + }, + customMessage: { + label: "自定义消息", + url: "https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html#createCustomMessage" + }, + complaint: { + label: "点此投诉", + url: "https://cloud.tencent.com/apply/p/xc3oaubi98g" + }, + implement: { + label: "集成TUICallKit", + url: "https://cloud.tencent.com/document/product/269/79861" + }, + purchase: { + label: "开通腾讯实时音视频服务", + url: "https://cloud.tencent.com/document/product/1640/79968" + } +}; +exports.Link = Link; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/link/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.js new file mode 100644 index 0000000..dc81534 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.js @@ -0,0 +1,128 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const TUIKit_components_common_Toast_index = require("../../../common/Toast/index.js"); +const common_assets = require("../../../../../common/assets.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-audio", + props: { + broadcastNewAudioSrc: {}, + messageItem: { default: () => ({}) }, + content: { default: () => ({}) } + }, + emits: ["getGlobalAudioContext", "setAudioPlayed"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const props = __props; + const audioMap = /* @__PURE__ */ new Map(); + const isAudioPlaying = common_vendor.ref(false); + common_vendor.onUnmounted(() => { + var _a; + const audioContext = getAudio(); + if (isAudioPlaying.value) { + stopAudio(); + } + (_a = audioContext == null ? void 0 : audioContext.destroy) == null ? void 0 : _a.call(audioContext); + audioMap.delete("audio"); + }); + common_vendor.watch(() => props.broadcastNewAudioSrc, (newSrc) => { + if (newSrc !== props.content.url && isAudioPlaying.value) { + stopAudio(); + isAudioPlaying.value = false; + } + }); + function toggleClick() { + emits("getGlobalAudioContext", audioMap, { newAudioSrc: props.content.url }); + if (props.messageItem.hasRiskContent || !props.content.url) { + TUIKit_components_common_Toast_index.Toast({ + message: "暂不支持播放" + }); + return; + } + const audioContext = getAudio(); + if (!audioContext) { + audioMap.set("audio", common_vendor.index.createInnerAudioContext()); + common_vendor.index.setInnerAudioOption({ + obeyMuteSwitch: false + }); + initAudioSrc(); + } + toggleAudioPlayState(); + } + function toggleAudioPlayState() { + if (!isAudioPlaying.value) { + playAudio(); + } else { + stopAudio(); + } + } + function initAudioSrc() { + const audioContext = getAudio(); + if (!audioContext) { + return; + } + audioContext.src = props.content.url; + isAudioPlaying.value = false; + audioContext.onPlay(onAudioPlay); + audioContext.onStop(onAudioStop); + audioContext.onEnded(onAudioEnded); + audioContext.onError(onAudioError); + } + function playAudio() { + const audioContext = getAudio(); + if (!audioContext) { + return; + } + audioContext.play(); + if (props.messageItem.flow === "in") { + emits("setAudioPlayed", props.messageItem.ID); + } + } + function stopAudio() { + const audioContext = getAudio(); + if (!audioContext) { + return; + } + try { + audioContext.stop(); + } catch { + } + } + function onAudioPlay() { + isAudioPlaying.value = true; + } + function onAudioStop() { + isAudioPlaying.value = false; + } + function onAudioEnded() { + isAudioPlaying.value = false; + } + function onAudioError() { + common_vendor.index.__f__("warn", "at TUIKit/components/TUIChat/message-list/message-elements/message-audio.vue:156", "audio played error"); + } + function getAudio() { + return audioMap.get("audio"); + } + return (_ctx, _cache) => { + return { + a: common_vendor.unref(isAudioPlaying) ? 1 : "", + b: common_vendor.p({ + width: "15px", + height: "20px", + file: common_vendor.unref(common_assets.audioIcon) + }), + c: common_vendor.t(props.content.second || 1), + d: `${props.content.second * 5}px`, + e: props.messageItem.flow === "out" ? 1 : "", + f: common_vendor.o$1(toggleClick) + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-066fcccf"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.json new file mode 100644 index 0000000..e4996d2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.wxml new file mode 100644 index 0000000..3f94936 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.wxml @@ -0,0 +1 @@ +{{c}} " \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.wxss new file mode 100644 index 0000000..bbfd352 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-audio.wxss @@ -0,0 +1,100 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.data-v-066fcccf:not(not) { + display: flex; + flex-direction: column; + box-sizing: border-box; + min-width: 0; +} +.message-audio.data-v-066fcccf { + flex-direction: row; + flex: 0 0 auto; + cursor: pointer; + -webkit-tap-highlight-color: transparent; + overflow: hidden; +} +.message-audio .audio-icon-container.data-v-066fcccf { + width: 16px; + height: 20px; + position: relative; + flex: 0 0 auto; + flex-direction: row; + justify-content: flex-end; + margin: 0 7px 0 0; + overflow: hidden; +} +.message-audio .audio-icon-container .mask.data-v-066fcccf { + position: absolute; + z-index: 1; + width: 105%; + height: 105%; + left: 0; + top: 0; + transform-origin: right; + transform: scaleX(0); + background-color: #fbfbfb; +} +.message-audio .audio-icon-container .mask.play.data-v-066fcccf { + animation: audio-play-066fcccf 2s steps(1, end) infinite; +} +@keyframes audio-play-066fcccf { +0% { + transform: scaleX(0.7056); +} +50% { + transform: scaleX(0.3953); +} +75% { + transform: scaleX(0); + visibility: hidden; +} +100% { + transform: scaleX(0); + visibility: hidden; +} +} +.message-audio .time.data-v-066fcccf { + max-width: 165px; + min-width: 20px; + text-align: start; + white-space: nowrap; +} +.message-audio.reserve.data-v-066fcccf { + flex-direction: row-reverse; +} +.message-audio.reserve .time.data-v-066fcccf { + text-align: end; +} +.message-audio.reserve .audio-icon-container.data-v-066fcccf { + margin: 0 0 0 7px; +} +.message-audio.reserve .audio-icon-container .mask.data-v-066fcccf { + transform-origin: left; + background-color: #dceafd; +} +.message-audio.reserve .icon.data-v-066fcccf { + transform: rotate(180deg); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.js new file mode 100644 index 0000000..aa0c872 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.js @@ -0,0 +1,172 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_components_TUIChat_utils_utils = require("../../utils/utils.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +if (!Math) { + (RadioSelect + Avatar + Icon + ReadStatus + MessageTranslate + MessageConvert + MessageQuote)(); +} +const Icon = () => "../../../common/Icon.js"; +const ReadStatus = () => "./read-status/index.js"; +const MessageQuote = () => "./message-quote/index.js"; +const Avatar = () => "../../../common/Avatar/index.js"; +const MessageTranslate = () => "./message-translate/index.js"; +const MessageConvert = () => "./message-convert/index.js"; +const RadioSelect = () => "../../../common/RadioSelect/index.js"; +const riskImageReplaceUrl = "https://web.sdk.qcloud.com/component/TUIKit/assets/has_risk_default.png"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-bubble", + props: { + messageItem: { default: () => ({}) }, + content: { default: () => ({}) }, + classNameList: { default: () => [] }, + blinkMessageIDList: { default: () => [] }, + isMultipleSelectMode: { type: Boolean, default: false }, + isAudioPlayed: { type: Boolean, default: false }, + multipleSelectedMessageIDList: { default: () => [] } + }, + emits: ["resendMessage", "blinkMessage", "setReadReceiptPanelVisible", "changeSelectMessageIDList", "scrollTo"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const props = __props; + const TYPES = common_vendor.qt.TYPES; + const needLoadingIconMessageType = [ + TYPES.MSG_LOCATION, + TYPES.MSG_TEXT, + TYPES.MSG_CUSTOM, + TYPES.MSG_MERGER, + TYPES.MSG_FACE + ]; + const { blinkMessageIDList, messageItem: message } = common_vendor.toRefs(props); + const isMultipleSelected = common_vendor.computed(() => { + return props.multipleSelectedMessageIDList.includes(message.value.ID); + }); + const isDisplayUnplayMark = common_vendor.computed(() => { + return message.value.flow === "in" && message.value.status === "success" && message.value.type === TYPES.MSG_AUDIO && !props.isAudioPlayed; + }); + const containerClassNameList = common_vendor.computed(() => { + return [ + "message-bubble", + isMultipleSelected.value ? "multiple-selected" : "", + ...props.classNameList + ]; + }); + const isNoPadding = common_vendor.computed(() => { + return [TYPES.MSG_IMAGE, TYPES.MSG_VIDEO, TYPES.MSG_MERGER].includes(message.value.type); + }); + const riskContentText = common_vendor.computed(() => { + let content = common_vendor.Wt.t("TUIChat.涉及敏感内容") + ", "; + if (message.value.flow === "out") { + content += common_vendor.Wt.t("TUIChat.发送失败"); + } else { + content += common_vendor.Wt.t( + message.value.type === TYPES.MSG_AUDIO ? "TUIChat.无法收听" : "TUIChat.无法查看" + ); + } + return content; + }); + const isBlink = common_vendor.computed(() => { + var _a, _b; + if ((_a = message.value) == null ? void 0 : _a.ID) { + return (_b = blinkMessageIDList == null ? void 0 : blinkMessageIDList.value) == null ? void 0 : _b.includes(message.value.ID); + } + return false; + }); + function toggleMultipleSelect(isSelected) { + emits("changeSelectMessageIDList", { + type: isSelected ? "add" : "remove", + messageID: message.value.ID + }); + } + function resendMessage() { + var _a; + if (!((_a = message.value) == null ? void 0 : _a.hasRiskContent)) { + emits("resendMessage"); + } + } + function blinkMessage(messageID) { + emits("blinkMessage", messageID); + } + function scrollTo(scrollHeight) { + emits("scrollTo", scrollHeight); + } + function openReadUserPanel() { + emits("setReadReceiptPanelVisible", true, message.value); + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: props.isMultipleSelectMode + }, props.isMultipleSelectMode ? { + b: common_vendor.o$1(toggleMultipleSelect), + c: common_vendor.p({ + isSelected: common_vendor.unref(isMultipleSelected) + }) + } : {}, { + d: common_vendor.p({ + useSkeletonAnimation: true, + url: common_vendor.unref(message).avatar || "" + }), + e: common_vendor.unref(message).flow === "in" && common_vendor.unref(message).conversationType === "GROUP" + }, common_vendor.unref(message).flow === "in" && common_vendor.unref(message).conversationType === "GROUP" ? { + f: common_vendor.t(props.content.showName) + } : {}, { + g: (common_vendor.unref(message).type === common_vendor.unref(TYPES).MSG_IMAGE || common_vendor.unref(message).type === common_vendor.unref(TYPES).MSG_VIDEO) && common_vendor.unref(message).hasRiskContent + }, (common_vendor.unref(message).type === common_vendor.unref(TYPES).MSG_IMAGE || common_vendor.unref(message).type === common_vendor.unref(TYPES).MSG_VIDEO) && common_vendor.unref(message).hasRiskContent ? { + h: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "message-risk-replace-h5"), + i: riskImageReplaceUrl + } : {}, { + j: common_vendor.unref(message).hasRiskContent + }, common_vendor.unref(message).hasRiskContent ? { + k: common_vendor.t(common_vendor.unref(riskContentText)) + } : {}, { + l: common_vendor.n(common_vendor.unref(message).flow === "out" ? "content-out" : "content-in"), + m: common_vendor.n(common_vendor.unref(message).hasRiskContent && "content-has-risk"), + n: common_vendor.n(common_vendor.unref(isNoPadding) ? "content-no-padding" : ""), + o: common_vendor.n(common_vendor.unref(isNoPadding) && common_vendor.unref(isBlink) ? "blink-shadow" : ""), + p: common_vendor.n(!common_vendor.unref(isNoPadding) && common_vendor.unref(isBlink) ? "blink-content" : ""), + q: common_vendor.unref(isDisplayUnplayMark) + }, common_vendor.unref(isDisplayUnplayMark) ? {} : {}, { + r: common_vendor.unref(message).status === "fail" || common_vendor.unref(message).hasRiskContent + }, common_vendor.unref(message).status === "fail" || common_vendor.unref(message).hasRiskContent ? { + s: common_vendor.o$1(($event) => resendMessage()) + } : {}, { + t: common_vendor.unref(message).status === "unSend" && needLoadingIconMessageType.includes(common_vendor.unref(message).type) + }, common_vendor.unref(message).status === "unSend" && needLoadingIconMessageType.includes(common_vendor.unref(message).type) ? { + v: common_vendor.p({ + file: common_vendor.unref(common_assets.loadingIcon), + width: "15px", + height: "15px" + }) + } : {}, { + w: common_vendor.o$1(openReadUserPanel), + x: common_vendor.p({ + message: common_vendor.unref(TUIKit_components_TUIChat_utils_utils.shallowCopyMessage)(common_vendor.unref(message)) + }), + y: common_vendor.n(common_vendor.unref(message).flow === "out" && "message-body-main-reverse"), + z: common_vendor.o$1(() => { + }), + A: common_vendor.n(common_vendor.unref(message).flow === "in" ? "" : "reverse"), + B: common_vendor.n(common_vendor.unref(message).flow === "out" ? "reverse" : "flex-row"), + C: common_vendor.p({ + message: common_vendor.unref(message) + }), + D: common_vendor.n(common_vendor.unref(message).flow === "out" ? "reverse" : "flex-row"), + E: common_vendor.p({ + message: common_vendor.unref(message) + }), + F: common_vendor.n(common_vendor.unref(message).flow === "out" ? "reverse" : "flex-row"), + G: common_vendor.o$1(blinkMessage), + H: common_vendor.o$1(scrollTo), + I: common_vendor.p({ + message: common_vendor.unref(message) + }), + J: common_vendor.unref(message).flow === "out" ? 1 : "", + K: common_vendor.n(common_vendor.unref(containerClassNameList)) + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-51fb22b7"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.json new file mode 100644 index 0000000..3b1070b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.json @@ -0,0 +1,12 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon", + "read-status": "./read-status/index", + "message-quote": "./message-quote/index", + "avatar": "../../../common/Avatar/index", + "message-translate": "./message-translate/index", + "message-convert": "./message-convert/index", + "radio-select": "../../../common/RadioSelect/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.wxml new file mode 100644 index 0000000..8c3f29c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.wxml @@ -0,0 +1 @@ +{{f}}{{k}} ! \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.wxss new file mode 100644 index 0000000..bd4209d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-bubble.wxss @@ -0,0 +1,226 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.data-v-51fb22b7:not(not) { + display: flex; + flex-direction: column; + min-width: 0; + box-sizing: border-box; +} +.flex-row.data-v-51fb22b7 { + display: flex; +} +.reverse.data-v-51fb22b7 { + display: flex; + flex-direction: row-reverse; + justify-content: flex-start; +} +.message-bubble.data-v-51fb22b7 { + padding: 10px 15px; + display: flex; + flex-direction: row; + user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; +} +.message-bubble.multiple-selected.data-v-51fb22b7 { + background-color: #f0f0f0; +} +.message-bubble .multiple-select-radio.data-v-51fb22b7 { + margin-right: 12px; + flex: 0 0 auto; +} +.message-bubble .control-reverse.data-v-51fb22b7 { + flex: 1 1 auto; + flex-direction: row-reverse; +} +.message-bubble .message-bubble-main-content.data-v-51fb22b7 { + display: flex; + flex-direction: row; +} +.message-bubble .message-bubble-main-content .message-avatar.data-v-51fb22b7 { + display: block; + width: 36px; + height: 36px; + border-radius: 5px; + flex: 0 0 auto; +} +.message-bubble .message-bubble-main-content .message-body.data-v-51fb22b7 { + display: flex; + flex: 0 1 auto; + flex-direction: column; + align-items: flex-start; + margin: 0 8px; +} +.message-bubble .message-bubble-main-content .message-body .message-body-nick-name.data-v-51fb22b7 { + display: block; + margin-bottom: 4px; + font-size: 12px; + color: #999; + max-width: 150px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main.data-v-51fb22b7 { + max-width: 100%; + display: flex; + flex-direction: row; + min-width: 0; + box-sizing: border-box; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main-reverse.data-v-51fb22b7 { + flex-direction: row-reverse; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .audio-unplay-mark.data-v-51fb22b7 { + flex: 0 0 auto; + width: 5px; + height: 5px; + border-radius: 50%; + background-color: #f00; + margin: 5px; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .message-body-content.data-v-51fb22b7 { + display: flex; + flex-direction: column; + min-width: 0; + box-sizing: border-box; + padding: 12px; + font-size: 14px; + color: #000; + letter-spacing: 0; + word-wrap: break-word; + word-break: break-all; + position: relative; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .message-body-content .content-main.data-v-51fb22b7 { + box-sizing: border-box; + display: flex; + flex-direction: column; + flex-shrink: 0; + align-content: flex-start; + border: 0 solid black; + margin: 0; + padding: 0; + min-width: 0; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .message-body-content .content-main .message-risk-replace.data-v-51fb22b7 { + width: 130px; + height: 130px; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .message-body-content .content-has-risk-tips.data-v-51fb22b7 { + font-size: 12px; + color: #fa5151; + font-family: PingFangSC-Regular; + margin-top: 5px; + border-top: 1px solid #e5c7c7; + padding-top: 5px; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .content-in.data-v-51fb22b7 { + background: #fbfbfb; + border-radius: 0 10px 10px; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .content-out.data-v-51fb22b7 { + background: #dceafd; + border-radius: 10px 0 10px 10px; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .content-no-padding.data-v-51fb22b7 { + padding: 0; + background: transparent; + border-radius: 10px; + overflow: hidden; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .content-no-padding.content-has-risk.data-v-51fb22b7 { + padding: 12px; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .content-has-risk.data-v-51fb22b7 { + background: rgba(250, 81, 81, 0.16); +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .blink-shadow.data-v-51fb22b7 { + box-shadow: rgba(255, 156, 25, 0) 0 0 10px 0; + animation: shadow-blink-51fb22b7 1s linear 3; +} +@keyframes shadow-blink-51fb22b7 { +50% { + box-shadow: #ff9c19 0 0 10px 0; +} +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .blink-content.data-v-51fb22b7 { + animation: reference-blink-51fb22b7 1s linear 3; +} +@keyframes reference-blink-51fb22b7 { +50% { + background-color: #ff9c19; +} +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .message-label.data-v-51fb22b7 { + align-self: flex-end; + font-family: PingFangSC-Regular; + font-size: 12px; + color: #b6b8ba; + word-break: keep-all; + flex: 0 0 auto; + margin: 0 8px; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .message-label.fail.data-v-51fb22b7 { + width: 15px; + height: 15px; + border-radius: 15px; + background: red; + color: #fff; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .message-label.loading-circle.data-v-51fb22b7 { + opacity: 0; + animation: circle-loading-51fb22b7 2s linear 1s infinite; +} +@keyframes circle-loading-51fb22b7 { +0% { + transform: rotate(0); + opacity: 1; +} +100% { + opacity: 1; + transform: rotate(360deg); +} +} +.message-bubble .message-bubble-main-content .message-body .message-body-main .align-self-bottom.data-v-51fb22b7 { + align-self: flex-end; +} +.message-bubble .reverse.data-v-51fb22b7 { + display: flex; + flex-direction: row-reverse; + justify-content: flex-start; +} +.message-bubble .message-bubble-extra-content.data-v-51fb22b7 { + display: flex; + flex-direction: column; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.js new file mode 100644 index 0000000..f4733de --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.js @@ -0,0 +1,45 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +require("../../../../../adapter-vue.js"); +const TUIKit_components_TUIChat_utils_convertVoiceToText = require("../../../utils/convertVoiceToText.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "convert-content", + props: { + message: { default: () => ({}) }, + contentVisible: { type: Boolean } + }, + emits: ["toggleErrorStatus"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const props = __props; + const convertFinished = common_vendor.ref(false); + const convertText = common_vendor.ref(""); + common_vendor.watch(() => props.contentVisible, (newVal) => { + if (newVal) { + TUIKit_components_TUIChat_utils_convertVoiceToText.convertor.get(props.message).then((text) => { + convertFinished.value = true; + convertText.value = text; + }).catch((err) => { + convertFinished.value = true; + emits("toggleErrorStatus", true); + convertText.value = err.message; + }); + } + }, { + immediate: true + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(convertFinished) + }, common_vendor.unref(convertFinished) ? { + b: common_vendor.t(common_vendor.unref(convertText)) + } : {}, { + c: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.转换中")), + d: common_vendor.unref(convertFinished) ? 1 : "" + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-02f04f6f"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.wxml new file mode 100644 index 0000000..9aa27fa --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.wxml @@ -0,0 +1 @@ +{{b}}{{c}}... \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.wxss new file mode 100644 index 0000000..f7d3fbd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.wxss @@ -0,0 +1,53 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.message-convert-container.data-v-02f04f6f { + min-height: 20px; + min-width: 80px; + position: relative; + transition: width 0.15s ease-out, height 0.15s ease-out; + font-size: 14px; +} +.message-convert-container .loading.data-v-02f04f6f { + position: absolute; + top: 0; + left: 0; + opacity: 1; + transition: opacity 0.3s ease-out; +} +.message-convert-container .loading.loading-end.data-v-02f04f6f { + opacity: 0; +} +.message-convert-container .convert-content.data-v-02f04f6f { + opacity: 0; +} +.message-convert-container .convert-content.occur.data-v-02f04f6f { + animation: occur-02f04f6f 0.3s ease-out 0.45s forwards; +} +@keyframes occur-02f04f6f { +100% { + opacity: 1; +} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.js new file mode 100644 index 0000000..0c2f113 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.js @@ -0,0 +1,68 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +require("../../../../../adapter-vue.js"); +if (!Math) { + ConvertContent(); +} +const ConvertContent = () => "./convert-content.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + message: { default: () => ({}) } + }, + setup(__props) { + const props = __props; + const convertVisible = common_vendor.ref(false); + const hasConvertError = common_vendor.ref(false); + const convertWrapperRef = common_vendor.ref(); + let isSingleConvert = true; + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CHAT, { + voiceToTextInfo: onMessageConvertUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CHAT, { + voiceToTextInfo: onMessageConvertUpdated + }); + }); + function toggleErrorStatus(hasError) { + hasConvertError.value = hasError; + } + function onMessageConvertUpdated(info) { + if (info === void 0) + return; + isSingleConvert = false; + const convertInfoList = info.get(props.message.conversationID) || []; + for (let i = 0; i < convertInfoList.length; ++i) { + const { messageID, visible } = convertInfoList[i]; + if (messageID === props.message.ID && visible !== void 0) { + if (convertInfoList.length === 1 && visible) { + isSingleConvert = true; + } + hasConvertError.value = false; + convertVisible.value = visible; + break; + } + } + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(convertVisible) + }, common_vendor.unref(convertVisible) ? { + b: common_vendor.o$1(toggleErrorStatus), + c: common_vendor.p({ + message: props.message, + contentVisible: common_vendor.unref(convertVisible), + isSingleConvert: common_vendor.unref(isSingleConvert), + convertWrapperRef: common_vendor.unref(convertWrapperRef) + }), + d: props.message.flow === "out" ? 1 : "", + e: common_vendor.unref(hasConvertError) ? 1 : "" + } : {}); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-5d339368"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.json new file mode 100644 index 0000000..f9ed0b2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "convert-content": "./convert-content" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.wxml new file mode 100644 index 0000000..44fc988 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.wxss new file mode 100644 index 0000000..81b5cee --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.wxss @@ -0,0 +1,42 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.message-convert.data-v-5d339368 { + margin-top: 4px; + margin-left: 44px; + padding: 10px; + background-color: #f2f7ff; + border-radius: 10px; + display: flex; + flex-direction: column !important; + transition: background-color 0.15s ease-out; +} +.message-convert.error.data-v-5d339368 { + background-color: #ffdfdf; +} +.message-convert.reverse.data-v-5d339368 { + margin-right: 44px; + margin-left: auto; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.js new file mode 100644 index 0000000..48032d4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.js @@ -0,0 +1,110 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const TUIKit_utils_typeCheck = require("../../../../utils/type-check.js"); +const TUIKit_constant = require("../../../../constant.js"); +const common_assets = require("../../../../../common/assets.js"); +const stores_counter = require("../../../../../stores/counter.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-custom", + props: { + messageItem: { default: void 0 }, + content: { default: void 0 } + }, + setup(__props) { + stores_counter.useCounterStore(); + function handleAccept(customData2) { + const customDatainfo = JSON.stringify(customData2); + common_vendor.index.redirectTo({ + url: `/pages/PKMessageprocessing/PKMessageprocessing?customData=${customDatainfo}` + }); + } + const props = __props; + const custom = common_vendor.ref(); + const message = common_vendor.ref(); + const extension = common_vendor.ref(); + const customData = common_vendor.ref({ + businessID: "" + }); + common_vendor.watchEffect(() => { + custom.value = props.content; + message.value = props.messageItem; + const { payload } = props.messageItem; + customData.value = payload.data || ""; + customData.value = TUIKit_utils_typeCheck.JSONToObject(payload.data); + if (payload.data === TUIKit_constant.CHAT_MSG_CUSTOM_TYPE.SERVICE) { + extension.value = TUIKit_utils_typeCheck.JSONToObject(payload.extension); + } + }); + const openLink = (url) => { + window.open(url); + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).SERVICE + }, common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).SERVICE ? common_vendor.e({ + b: common_vendor.t(common_vendor.unref(extension).title), + c: common_vendor.unref(extension).hyperlinks_text + }, common_vendor.unref(extension).hyperlinks_text ? { + d: common_vendor.t(common_vendor.unref(extension).hyperlinks_text.key), + e: common_vendor.unref(extension).hyperlinks_text.value + } : {}, { + f: common_vendor.unref(extension).item && common_vendor.unref(extension).item.length > 0 + }, common_vendor.unref(extension).item && common_vendor.unref(extension).item.length > 0 ? { + g: common_vendor.f(common_vendor.unref(extension).item, (item, index, i0) => { + return common_vendor.e({ + a: common_vendor.unref(TUIKit_utils_typeCheck.isUrl)(item.value) + }, common_vendor.unref(TUIKit_utils_typeCheck.isUrl)(item.value) ? { + b: common_vendor.t(item.key), + c: item.value + } : { + d: common_vendor.t(item.key) + }, { + e: index + }); + }) + } : {}, { + h: common_vendor.t(common_vendor.unref(extension).description) + }) : common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).EVALUATE ? { + j: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("message.custom.对本次服务评价")), + k: common_vendor.f(Math.max(common_vendor.unref(customData).score, 0), (item, index, i0) => { + return { + a: "abd5dfdc-0-" + i0, + b: index + }; + }), + l: common_vendor.p({ + file: common_vendor.unref(common_assets.star) + }), + m: common_vendor.t(common_vendor.unref(customData).comment) + } : common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).ORDER ? { + o: common_vendor.unref(customData).imageUrl, + p: common_vendor.t(common_vendor.unref(customData).title), + q: common_vendor.t(common_vendor.unref(customData).description), + r: common_vendor.t(common_vendor.unref(customData).price), + s: common_vendor.o$1(($event) => openLink(common_vendor.unref(customData).link)) + } : common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).LINK ? { + v: common_vendor.t(common_vendor.unref(customData).text), + w: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("message.custom.查看详情>>")), + x: common_vendor.unref(customData).link + } : common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).PK ? { + z: common_vendor.unref(customData).link, + A: common_vendor.o$1(($event) => handleAccept(common_vendor.unref(customData))) + } : { + B: _ctx.content.custom + }, { + i: common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).EVALUATE, + n: common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).ORDER, + t: common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).LINK, + y: common_vendor.unref(customData).businessID === common_vendor.unref(TUIKit_constant.CHAT_MSG_CUSTOM_TYPE).PK + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-abd5dfdc"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.json new file mode 100644 index 0000000..e4996d2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.wxml new file mode 100644 index 0000000..fe4432b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.wxml @@ -0,0 +1 @@ +{{d}}{{item.b}}{{item.d}}{{h}}{{j}}{{m}}{{p}}{{q}}{{v}}{{w}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.wxss new file mode 100644 index 0000000..2ed78e3 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-custom.wxss @@ -0,0 +1,178 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-abd5dfdc, div.data-v-abd5dfdc, ul.data-v-abd5dfdc, ol.data-v-abd5dfdc, dt.data-v-abd5dfdc, dd.data-v-abd5dfdc, li.data-v-abd5dfdc, dl.data-v-abd5dfdc, h1.data-v-abd5dfdc, h2.data-v-abd5dfdc, h3.data-v-abd5dfdc, h4.data-v-abd5dfdc, p.data-v-abd5dfdc { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-abd5dfdc, ul.data-v-abd5dfdc, li.data-v-abd5dfdc { + list-style: none; +} +img.data-v-abd5dfdc { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-abd5dfdc { + color: #000; + background: #FFF; +} +.clear.data-v-abd5dfdc { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-abd5dfdc { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-abd5dfdc:hover { + text-decoration: none; +} +input.data-v-abd5dfdc, textarea.data-v-abd5dfdc { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-abd5dfdc:focus, input.data-v-abd5dfdc:active, textarea.data-v-abd5dfdc:focus, textarea.data-v-abd5dfdc:active { + outline: none; +} +.chat-aside.data-v-abd5dfdc { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +a.data-v-abd5dfdc { + color: #679ce1; +} +.custom.data-v-abd5dfdc { + font-size: 18px; +} +.custom h1.data-v-abd5dfdc { + font-size: 14px; + color: #000; +} +.custom h1.data-v-abd5dfdc, +.custom a.data-v-abd5dfdc, +.custom p.data-v-abd5dfdc { + font-size: 14px; +} +.custom .evaluate ul.data-v-abd5dfdc { + display: flex; + padding: 10px 0; +} +.custom .evaluate-list.data-v-abd5dfdc { + display: flex; + flex-direction: row; +} +.custom .evaluate-list-item.data-v-abd5dfdc { + padding: 0 2px; +} +.custom .order.data-v-abd5dfdc { + display: flex; +} +.custom .order main.data-v-abd5dfdc { + padding-left: 5px; +} +.custom .order main p.data-v-abd5dfdc { + font-family: PingFangSC-Regular; + width: 145px; + line-height: 17px; + font-size: 14px; + color: #999; + letter-spacing: 0; + margin-bottom: 6px; + word-break: break-word; +} +.custom .order main span.data-v-abd5dfdc { + font-family: PingFangSC-Regular; + line-height: 25px; + color: #ff7201; +} +.custom .order img.data-v-abd5dfdc { + width: 67px; + height: 67px; +} +.custom .pk.data-v-abd5dfdc { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100%; + background-color: #ffffff; + border-radius: 10px; + padding: 20px; + box-sizing: border-box; +} +.custom .pk h1.data-v-abd5dfdc { + font-size: 18px; + color: #333; + margin-bottom: 10px; +} +.custom .pk .button-group.data-v-abd5dfdc { + display: flex; + justify-content: center; +} +.custom .pk .button-group .buttonAccept.data-v-abd5dfdc { + width: 40%; + height: 60rpx; + background-color: #84ff0055; + border-radius: 10px; + border: 2px solid #26ff00; + color: #fff; + font-size: 16px; + text-align: center; + line-height: 60rpx; + margin-bottom: 10px; + border: none; + cursor: pointer; +} +.custom .pk .button-group .buttonRefuse.data-v-abd5dfdc { + width: 40%; + height: 60rpx; + background-color: #ff000078; + border: 2px solid #ff0000; + border-radius: 10px; + color: #fff; + font-size: 16px; + line-height: 60rpx; + text-align: center; + margin-bottom: 10px; + border: none; + cursor: pointer; +} +.Custommessageimage.data-v-abd5dfdc { + width: 385rpx; + height: 195rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.js new file mode 100644 index 0000000..4d23a03 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.js @@ -0,0 +1,32 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +require("../../emoji-config/index.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-face", + props: { + content: { + type: Object, + default: () => ({}) + } + }, + setup(__props) { + const props = __props; + const url = common_vendor.ref(props.content.url); + common_vendor.onMounted(() => { + if (props.content.type === "custom") { + { + common_vendor.index.__f__("warn", "at TUIKit/components/TUIChat/message-list/message-elements/message-face.vue:29", "CUSTOM_BIG_EMOJI_URL is required for custom emoji, please check your CUSTOM_BIG_EMOJI_URL."); + } + } + }); + return (_ctx, _cache) => { + return { + a: common_vendor.unref(url) + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-4ad96015"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.wxml new file mode 100644 index 0000000..d2e3958 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.wxss new file mode 100644 index 0000000..27fcc2e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-face.wxss @@ -0,0 +1,79 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-4ad96015, div.data-v-4ad96015, ul.data-v-4ad96015, ol.data-v-4ad96015, dt.data-v-4ad96015, dd.data-v-4ad96015, li.data-v-4ad96015, dl.data-v-4ad96015, h1.data-v-4ad96015, h2.data-v-4ad96015, h3.data-v-4ad96015, h4.data-v-4ad96015, p.data-v-4ad96015 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-4ad96015, ul.data-v-4ad96015, li.data-v-4ad96015 { + list-style: none; +} +img.data-v-4ad96015 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-4ad96015 { + color: #000; + background: #FFF; +} +.clear.data-v-4ad96015 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-4ad96015 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-4ad96015:hover { + text-decoration: none; +} +input.data-v-4ad96015, textarea.data-v-4ad96015 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-4ad96015:focus, input.data-v-4ad96015:active, textarea.data-v-4ad96015:focus, textarea.data-v-4ad96015:active { + outline: none; +} +.chat-aside.data-v-4ad96015 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.message-image.data-v-4ad96015 { + width: 80px; + height: 80px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.js new file mode 100644 index 0000000..ac5cb74 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.js @@ -0,0 +1,57 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +const common_assets = require("../../../../../common/assets.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-file", + props: { + content: { default: () => ({}) }, + messageItem: { default: () => ({}) } + }, + setup(__props) { + const props = __props; + const download = () => { + if (props.messageItem.hasRiskContent) { + return; + } + const option = { + mode: "cors", + headers: new Headers({ + "Content-Type": "application/x-www-form-urlencoded" + }) + }; + if (window == null ? void 0 : window.fetch) { + fetch(props.content.url, option).then((res) => res.blob()).then((blob) => { + const a = document.createElement("a"); + const url = window.URL.createObjectURL(blob); + a.href = url; + a.download = props.content.name; + a.click(); + }); + } else { + const a = document.createElement("a"); + a.href = props.content.url; + a.target = "_blank"; + a.download = props.content.name; + a.click(); + } + }; + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + file: common_vendor.unref(common_assets.files) + }), + b: common_vendor.t(props.content.name), + c: common_vendor.t(props.content.size), + d: common_vendor.unref(common_vendor.Wt).t("TUIChat.单击下载"), + e: common_vendor.o$1(download) + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-f3d5b3bc"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.json new file mode 100644 index 0000000..e4996d2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.wxml new file mode 100644 index 0000000..ef054d4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.wxml @@ -0,0 +1 @@ +{{b}}{{c}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.wxss new file mode 100644 index 0000000..84076b6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-file.wxss @@ -0,0 +1,83 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-f3d5b3bc, div.data-v-f3d5b3bc, ul.data-v-f3d5b3bc, ol.data-v-f3d5b3bc, dt.data-v-f3d5b3bc, dd.data-v-f3d5b3bc, li.data-v-f3d5b3bc, dl.data-v-f3d5b3bc, h1.data-v-f3d5b3bc, h2.data-v-f3d5b3bc, h3.data-v-f3d5b3bc, h4.data-v-f3d5b3bc, p.data-v-f3d5b3bc { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-f3d5b3bc, ul.data-v-f3d5b3bc, li.data-v-f3d5b3bc { + list-style: none; +} +img.data-v-f3d5b3bc { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-f3d5b3bc { + color: #000; + background: #FFF; +} +.clear.data-v-f3d5b3bc { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-f3d5b3bc { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-f3d5b3bc:hover { + text-decoration: none; +} +input.data-v-f3d5b3bc, textarea.data-v-f3d5b3bc { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-f3d5b3bc:focus, input.data-v-f3d5b3bc:active, textarea.data-v-f3d5b3bc:focus, textarea.data-v-f3d5b3bc:active { + outline: none; +} +.chat-aside.data-v-f3d5b3bc { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.file-message-montainer.data-v-f3d5b3bc { + display: flex; + flex-direction: row; + cursor: pointer; +} +.file-message-montainer .file-icon.data-v-f3d5b3bc { + margin: auto 8px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.js new file mode 100644 index 0000000..76ee072 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.js @@ -0,0 +1,58 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const DEFAULT_MAX_SIZE = 155; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-image", + props: { + content: { default: () => ({}) }, + messageItem: { default: () => ({}) } + }, + emits: ["previewImage"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const props = __props; + const imageStyles = common_vendor.ref({ width: "auto", height: "auto" }); + const genImageStyles = (value) => { + const { width, height } = value; + if (width === 0 || height === 0) { + return; + } + let imageWidth = 0; + let imageHeight = 0; + if (width >= height) { + imageWidth = DEFAULT_MAX_SIZE; + imageHeight = DEFAULT_MAX_SIZE * height / width; + } else { + imageWidth = DEFAULT_MAX_SIZE * width / height; + imageHeight = DEFAULT_MAX_SIZE; + } + imageStyles.value.width = imageWidth + "px"; + imageStyles.value.height = imageHeight + "px"; + }; + common_vendor.watchEffect(() => { + genImageStyles(props.content); + }); + const imageLoad = (event) => { + genImageStyles(event.detail); + }; + const handleImagePreview = () => { + var _a; + if (((_a = props.messageItem) == null ? void 0 : _a.status) === "success" || props.messageItem.progress === 1) { + emits("previewImage"); + } + }; + return (_ctx, _cache) => { + return { + a: props.content.url, + b: common_vendor.unref(imageStyles).width, + c: common_vendor.unref(imageStyles).height, + d: common_vendor.o$1(imageLoad), + e: common_vendor.o$1(handleImagePreview) + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-4e6bf9de"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.wxml new file mode 100644 index 0000000..4929c77 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.wxss new file mode 100644 index 0000000..708a302 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-image.wxss @@ -0,0 +1,33 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.image-container.data-v-4e6bf9de { + position: relative; + background-color: #f4f4f4; + font-size: 0; +} +.image-container .message-image.data-v-4e6bf9de { + max-width: 150px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.js new file mode 100644 index 0000000..7bad62e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.js @@ -0,0 +1,29 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-location", + props: { + content: { + type: Object, + default: () => ({}) + } + }, + setup(__props) { + const props = __props; + const data = common_vendor.ref(); + common_vendor.watchEffect(() => { + data.value = props.content; + }); + return (_ctx, _cache) => { + return { + a: common_vendor.t(common_vendor.unref(data).description), + b: common_vendor.unref(data).url, + c: common_vendor.unref(data).href + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-4337995a"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.wxml new file mode 100644 index 0000000..b220262 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.wxss new file mode 100644 index 0000000..996e243 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-location.wxss @@ -0,0 +1,79 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-4337995a, div.data-v-4337995a, ul.data-v-4337995a, ol.data-v-4337995a, dt.data-v-4337995a, dd.data-v-4337995a, li.data-v-4337995a, dl.data-v-4337995a, h1.data-v-4337995a, h2.data-v-4337995a, h3.data-v-4337995a, h4.data-v-4337995a, p.data-v-4337995a { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-4337995a, ul.data-v-4337995a, li.data-v-4337995a { + list-style: none; +} +img.data-v-4337995a { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-4337995a { + color: #000; + background: #FFF; +} +.clear.data-v-4337995a { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-4337995a { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-4337995a:hover { + text-decoration: none; +} +input.data-v-4337995a, textarea.data-v-4337995a { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-4337995a:focus, input.data-v-4337995a:active, textarea.data-v-4337995a:focus, textarea.data-v-4337995a:active { + outline: none; +} +.chat-aside.data-v-4337995a { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.message-location.data-v-4337995a { + display: flex; + flex-direction: column; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.js new file mode 100644 index 0000000..352c2d0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.js @@ -0,0 +1,144 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +require("../../../../../adapter-vue.js"); +const TUIKit_utils_env = require("../../../../../utils/env.js"); +const TUIKit_components_common_Toast_index = require("../../../../common/Toast/index.js"); +const TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface = require("./interface.js"); +const TUIKit_components_TUIChat_emojiConfig_index = require("../../../emoji-config/index.js"); +const TUIKit_components_common_Toast_type = require("../../../../common/Toast/type.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + message: { default: () => ({}) } + }, + emits: ["scrollTo", "blinkMessage"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const props = __props; + let selfAddValue = 0; + const messageQuoteText = common_vendor.ref(""); + const hasQuoteContent = common_vendor.ref(false); + const messageQuoteContent = common_vendor.ref({}); + const isMessageRevoked = common_vendor.computed(() => { + var _a; + try { + const cloudCustomData = JSON.parse(((_a = props.message) == null ? void 0 : _a.cloudCustomData) || "{}"); + const quotedMessageModel = common_vendor.Jt.getMessageModel(cloudCustomData.messageReply.messageID); + return quotedMessageModel == null ? void 0 : quotedMessageModel.isRevoked; + } catch (error) { + return true; + } + }); + common_vendor.onMounted(() => { + var _a; + try { + const cloudCustomData = JSON.parse(((_a = props.message) == null ? void 0 : _a.cloudCustomData) || "{}"); + hasQuoteContent.value = Boolean(cloudCustomData.messageReply); + if (hasQuoteContent.value) { + messageQuoteContent.value = cloudCustomData.messageReply; + messageQuoteText.value = performQuoteContent(messageQuoteContent.value); + } + } catch (error) { + hasQuoteContent.value = false; + } + }); + function performQuoteContent(params) { + let messageKey = ""; + let quoteContent = ""; + switch (params.messageType) { + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_TEXT: + messageKey = "[文本]"; + break; + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_CUSTOM: + messageKey = "[自定义消息]"; + break; + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_IMAGE: + messageKey = "[图片]"; + break; + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_SOUND: + messageKey = "[音频]"; + break; + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_VIDEO: + messageKey = "[视频]"; + break; + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_FILE: + messageKey = "[文件]"; + break; + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_LOCATION: + messageKey = "[地理位置]"; + break; + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_FACE: + messageKey = "[动画表情]"; + break; + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_GROUP_TIPS: + messageKey = "[群提示]"; + break; + case TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_MERGER: + messageKey = "[聊天记录]"; + break; + default: + messageKey = "[消息]"; + break; + } + if ([ + TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_TEXT, + TUIKit_components_TUIChat_messageList_messageElements_messageQuote_interface.MessageQuoteTypeEnum.TYPE_MERGER + ].includes(params.messageType)) { + quoteContent = params.messageAbstract; + } + return quoteContent ? quoteContent : common_vendor.Wt.t(`TUIChat.${messageKey}`); + } + async function scrollToOriginalMessage() { + var _a; + if (isMessageRevoked.value) { + return; + } + const originMessageID = (_a = messageQuoteContent.value) == null ? void 0 : _a.messageID; + const currentMessageList = common_vendor.Jt.getData(common_vendor.o.CHAT, "messageList"); + const isOriginalMessageInScreen = currentMessageList.some((msg) => msg.ID === originMessageID); + if (originMessageID && isOriginalMessageInScreen) { + try { + const scrollViewRect = await common_vendor.T("#messageScrollList", "messageList"); + const originalMessageRect = await common_vendor.T("#tui-" + originMessageID, "messageList"); + const { scrollTop } = await common_vendor.P("#messageScrollList", "messageList"); + const finalScrollTop = originalMessageRect.top + scrollTop - scrollViewRect.top - selfAddValue++ % 2; + const isNeedScroll = originalMessageRect.top < scrollViewRect.top; + if (!TUIKit_utils_env.isUniFrameWork && window) { + const scrollView = document.getElementById("messageScrollList"); + if (isNeedScroll && scrollView) { + scrollView.scrollTop = finalScrollTop; + } + } else if (TUIKit_utils_env.isUniFrameWork && isNeedScroll) { + emits("scrollTo", finalScrollTop); + } + emits("blinkMessage", originMessageID); + } catch (error) { + common_vendor.index.__f__("error", "at TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.vue:154", error); + } + } else { + TUIKit_components_common_Toast_index.Toast({ + message: common_vendor.Wt.t("TUIChat.无法定位到原消息"), + type: TUIKit_components_common_Toast_type.TOAST_TYPE.WARNING + }); + } + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(hasQuoteContent) + }, common_vendor.unref(hasQuoteContent) ? common_vendor.e({ + b: common_vendor.unref(isMessageRevoked) + }, common_vendor.unref(isMessageRevoked) ? { + c: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.引用内容已撤回")) + } : { + d: common_vendor.t(common_vendor.unref(messageQuoteContent).messageSender), + e: common_vendor.t(common_vendor.unref(TUIKit_components_TUIChat_emojiConfig_index.transformTextWithKeysToEmojiNames)(common_vendor.unref(messageQuoteText))) + }, { + f: _ctx.message.flow === "out" ? 1 : "", + g: common_vendor.o$1(scrollToOriginalMessage) + }) : {}); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-3506872c"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.wxml new file mode 100644 index 0000000..1d2d4a1 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.wxml @@ -0,0 +1 @@ +{{c}}{{d}}: {{e}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.wxss new file mode 100644 index 0000000..8f58ebc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/index.wxss @@ -0,0 +1,55 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.reference-content.data-v-3506872c { + max-width: 272px; + margin-top: 4px; + margin-left: 44px; + padding: 12px; + font-size: 12px; + color: #666; + word-wrap: break-word; + word-break: break-all; + background-color: #fbfbfb; + border-radius: 8px; + line-height: 16.8px; + cursor: pointer; + -webkit-tap-highlight-color: transparent; +} +.reverse.reference-content.data-v-3506872c { + margin-right: 44px; + margin-left: auto; +} +.revoked-text.data-v-3506872c { + color: #999; +} +.max-double-line.data-v-3506872c { + word-break: break-all; + overflow: hidden; + display: -webkit-box; + max-height: 33px; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/interface.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/interface.js new file mode 100644 index 0000000..1c40aa5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/interface.js @@ -0,0 +1,17 @@ +"use strict"; +var MessageQuoteTypeEnum = /* @__PURE__ */ ((MessageQuoteTypeEnum2) => { + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_NONE"] = 0] = "TYPE_NONE"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_TEXT"] = 1] = "TYPE_TEXT"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_CUSTOM"] = 2] = "TYPE_CUSTOM"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_IMAGE"] = 3] = "TYPE_IMAGE"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_SOUND"] = 4] = "TYPE_SOUND"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_VIDEO"] = 5] = "TYPE_VIDEO"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_FILE"] = 6] = "TYPE_FILE"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_LOCATION"] = 7] = "TYPE_LOCATION"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_FACE"] = 8] = "TYPE_FACE"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_GROUP_TIPS"] = 9] = "TYPE_GROUP_TIPS"; + MessageQuoteTypeEnum2[MessageQuoteTypeEnum2["TYPE_MERGER"] = 10] = "TYPE_MERGER"; + return MessageQuoteTypeEnum2; +})(MessageQuoteTypeEnum || {}); +exports.MessageQuoteTypeEnum = MessageQuoteTypeEnum; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-quote/interface.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.js new file mode 100644 index 0000000..640b5aa --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.js @@ -0,0 +1,81 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +require("../../../../../adapter-vue.js"); +const TUIKit_utils_env = require("../../../../../utils/env.js"); +const TUIKit_components_TUIChat_emojiConfig_index = require("../../../emoji-config/index.js"); +if (!Math) { + (SimpleMessageList + Overlay + Drawer)(); +} +const Overlay = () => "../../../../common/Overlay/index.js"; +const Drawer = () => "../../../../common/Drawer/index.js"; +const SimpleMessageList = () => "../simple-message-list/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + renderData: {}, + disabled: { type: Boolean, default: false }, + messageItem: { default: () => ({}) } + }, + emits: ["assignMessageIDInUniapp"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const props = __props; + const isMessageListVisible = common_vendor.ref(false); + function openMergeDetail() { + if (props.disabled) { + return; + } + if (!TUIKit_utils_env.isUniFrameWork) { + isMessageListVisible.value = true; + } else { + emits("assignMessageIDInUniapp", props.messageItem.ID); + } + } + function closeMergeDetail() { + isMessageListVisible.value = false; + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.t(props.renderData.title), + b: common_vendor.f(props.renderData.abstractList.slice(0, 7), (item, index, i0) => { + return { + a: common_vendor.t(common_vendor.unref(TUIKit_components_TUIChat_emojiConfig_index.transformTextWithKeysToEmojiNames)(item)), + b: index + }; + }), + c: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.聊天记录")), + d: common_vendor.o$1(openMergeDetail), + e: !props.disabled && common_vendor.unref(TUIKit_utils_env.isPC) + }, !props.disabled && common_vendor.unref(TUIKit_utils_env.isPC) ? { + f: common_vendor.o$1(closeMergeDetail), + g: common_vendor.p({ + isMounted: common_vendor.unref(isMessageListVisible), + renderData: props.renderData, + messageID: props.messageItem.ID + }), + h: common_vendor.o$1(($event) => isMessageListVisible.value = false), + i: common_vendor.p({ + visible: common_vendor.unref(isMessageListVisible) + }) + } : !props.disabled && common_vendor.unref(TUIKit_utils_env.isH5) && !common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? { + k: common_vendor.o$1(closeMergeDetail), + l: common_vendor.p({ + isMounted: common_vendor.unref(isMessageListVisible), + renderData: props.renderData, + messageID: props.messageItem.ID + }), + m: common_vendor.p({ + visible: common_vendor.unref(isMessageListVisible), + isFullScreen: true, + overlayColor: "transparent", + popDirection: "right" + }) + } : {}, { + j: !props.disabled && common_vendor.unref(TUIKit_utils_env.isH5) && !common_vendor.unref(TUIKit_utils_env.isUniFrameWork) + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2d2bd7ef"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.json new file mode 100644 index 0000000..57bf979 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "overlay": "../../../../common/Overlay/index", + "drawer": "../../../../common/Drawer/index", + "simple-message-list": "../simple-message-list/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.wxml new file mode 100644 index 0000000..34704f5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.wxml @@ -0,0 +1 @@ +{{a}}{{item.a}}{{c}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.wxss new file mode 100644 index 0000000..a086a0e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.wxss @@ -0,0 +1,52 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.data-v-2d2bd7ef:not(not) { + display: flex; + flex-direction: column; + box-sizing: border-box; + min-width: 0; +} +.message-record-container.data-v-2d2bd7ef { + padding: 10px 15px; + border: 1px solid #ddd; + border-radius: 10px; + cursor: pointer; + background-color: #fff; + max-width: 400px; + min-width: 180px; + overflow: hidden; +} +.message-record-container .record-abstract-container.data-v-2d2bd7ef { + color: #bbb; + font-size: 12px; + margin: 8px 0; +} +.message-record-container .record-footer.data-v-2d2bd7ef { + color: #888; + font-size: 11px; + padding-top: 5px; + border-top: 1px solid #eee; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.js new file mode 100644 index 0000000..f97eae6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.js @@ -0,0 +1,102 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +require("../../emoji-config/index.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-text", + props: { + content: { default: () => ({}) }, + messageItem: { default: () => ({}) }, + enableURLHighlight: { type: Boolean, default: false } + }, + setup(__props) { + const props = __props; + const processedContent = common_vendor.ref([]); + common_vendor.watch( + () => props.messageItem, + (newValue, oldValue) => { + var _a, _b, _c, _d, _e, _f; + if ((newValue == null ? void 0 : newValue.ID) === (oldValue == null ? void 0 : oldValue.ID)) { + return; + } + if (props.enableURLHighlight) { + common_vendor.ss.reportFeature(208); + } + if (props.messageItem.getMessageContent) { + processedContent.value = (_a = props.messageItem.getMessageContent()) == null ? void 0 : _a.text; + } else { + processedContent.value = (_c = (_b = common_vendor.Jt.getMessageModel(props.messageItem.ID)) == null ? void 0 : _b.getMessageContent()) == null ? void 0 : _c.text; + } + processedContent.value = processedContent.value || ((_d = props.content) == null ? void 0 : _d.text); + if (!((_e = processedContent.value) == null ? void 0 : _e.length)) { + processedContent.value = []; + return; + } + processedContent.value = (_f = processedContent.value.map((item) => { + if (item.name === "img" && (item == null ? void 0 : item.type) === "custom") { + { + common_vendor.index.__f__("warn", "at TUIKit/components/TUIChat/message-list/message-elements/message-text.vue:87", "CUSTOM_BASIC_EMOJI_URL is required for custom emoji."); + return item; + } + } + if (props.enableURLHighlight && item.name === "text" && item.text) { + if (!common_vendor.A$1) { + common_vendor.index.__f__("warn", "at TUIKit/components/TUIChat/message-list/message-elements/message-text.vue:103", "parseTextAndValidateUrls not found. Please update @tencentcloud/universal-api to 2.3.7 or higher."); + return item; + } + const segments = common_vendor.A$1(item.text); + if (segments.length) { + return segments.map((segment) => ({ + name: segment.type, + text: segment.text, + url: segment.url + })); + } + } + return item; + })) == null ? void 0 : _f.flat(); + }, + { + deep: true, + immediate: true + } + ); + function navigateToUrl(url) { + if (url) { + if (TUIKit_utils_env.isUniFrameWork) { + common_vendor.i.navigateTo({ + url: `/pages/views/webview?url=${url}` + // Assuming you have a webview page to handle external URLs + }); + } else { + common_vendor.i.open(url, "_blank"); + } + } + } + return (_ctx, _cache) => { + return { + a: common_vendor.f(common_vendor.unref(processedContent), (item, index, i0) => { + return common_vendor.e({ + a: item.name === "text" + }, item.name === "text" ? { + b: common_vendor.t(item.text) + } : item.name === "url" ? { + d: common_vendor.t(item.text), + e: common_vendor.o$1(($event) => navigateToUrl(item.url), index) + } : { + f: item.src, + g: item.emojiKey + }, { + c: item.name === "url", + h: index + }); + }), + b: common_vendor.n(common_vendor.unref(TUIKit_utils_env.isPC) && "text-select") + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-e1772b65"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.wxml new file mode 100644 index 0000000..ac6f98b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.wxss new file mode 100644 index 0000000..7d53f31 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-text.wxss @@ -0,0 +1,63 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.message-text-container.data-v-e1772b65 { + display: inline; + font-size: 0; + letter-spacing: -1px; +} +.text-select.data-v-e1772b65 { + -webkit-user-select: text; + user-select: text; +} +.text.data-v-e1772b65::selection, .emoji.data-v-e1772b65::selection, .url-link.data-v-e1772b65::selection { + background-color: #b4d5fe; + color: inherit; + cursor: text; +} +.emoji.data-v-e1772b65 { + font-size: 0; + vertical-align: bottom; + width: 20px; + height: 20px; +} +.text.data-v-e1772b65, .url-link.data-v-e1772b65 { + font-size: 14px; + white-space: pre-wrap; + word-break: break-all; + letter-spacing: normal; +} +.url-link.data-v-e1772b65 { + color: #0366d6; + text-decoration: none; + word-break: break-all; + cursor: text; +} +.url-link.data-v-e1772b65:hover:not(:active) { + cursor: pointer; +} +.url-link.data-v-e1772b65:visited { + color: #0366d6; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.js new file mode 100644 index 0000000..3175185 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.js @@ -0,0 +1,66 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const TUIKit_components_TUIChat_utils_utils = require("../../utils/utils.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-timestamp", + props: { + currTime: { + type: Number, + default: 0 + }, + prevTime: { + type: Number, + default: 0 + } + }, + setup(__props) { + const props = __props; + const { currTime, prevTime } = common_vendor.toRefs(props); + const timestampShowFlag = common_vendor.ref(false); + const timestampShowContent = common_vendor.ref(""); + const handleItemTime = (currTime2, prevTime2) => { + timestampShowFlag.value = false; + if (currTime2 <= 0) { + return ""; + } else if (!prevTime2 || prevTime2 <= 0) { + timestampShowFlag.value = true; + return TUIKit_components_TUIChat_utils_utils.calculateTimestamp(currTime2 * 1e3); + } else { + const minDiffToShow = 10 * 60; + const diff = currTime2 - prevTime2; + if (diff >= minDiffToShow) { + timestampShowFlag.value = true; + return TUIKit_components_TUIChat_utils_utils.calculateTimestamp(currTime2 * 1e3); + } + } + return ""; + }; + common_vendor.watch( + () => [currTime.value, prevTime.value], + (newVal, oldVal) => { + if ((newVal == null ? void 0 : newVal.toString()) === (oldVal == null ? void 0 : oldVal.toString())) { + return; + } else { + timestampShowContent.value = handleItemTime( + currTime.value, + prevTime.value + ); + } + }, + { + immediate: true + } + ); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(timestampShowFlag) + }, common_vendor.unref(timestampShowFlag) ? { + b: common_vendor.t(common_vendor.unref(timestampShowContent)) + } : {}); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2f98379f"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.wxml new file mode 100644 index 0000000..da5bcf7 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.wxml @@ -0,0 +1 @@ +{{b}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.wxss new file mode 100644 index 0000000..7a181ad --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.wxss @@ -0,0 +1,84 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-2f98379f, div.data-v-2f98379f, ul.data-v-2f98379f, ol.data-v-2f98379f, dt.data-v-2f98379f, dd.data-v-2f98379f, li.data-v-2f98379f, dl.data-v-2f98379f, h1.data-v-2f98379f, h2.data-v-2f98379f, h3.data-v-2f98379f, h4.data-v-2f98379f, p.data-v-2f98379f { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-2f98379f, ul.data-v-2f98379f, li.data-v-2f98379f { + list-style: none; +} +img.data-v-2f98379f { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-2f98379f { + color: #000; + background: #FFF; +} +.clear.data-v-2f98379f { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-2f98379f { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-2f98379f:hover { + text-decoration: none; +} +input.data-v-2f98379f, textarea.data-v-2f98379f { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-2f98379f:focus, input.data-v-2f98379f:active, textarea.data-v-2f98379f:focus, textarea.data-v-2f98379f:active { + outline: none; +} +.chat-aside.data-v-2f98379f { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.message-timestamp.data-v-2f98379f { + margin: 10px auto; + color: #999; + font-size: 12px; + overflow-wrap: anywhere; + display: flex; + align-items: center; + text-align: center; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.js new file mode 100644 index 0000000..83b8a8e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.js @@ -0,0 +1,27 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-tip", + props: { + content: { + type: Object, + default: () => ({}) + } + }, + setup(__props) { + const props = __props; + const tipContent = common_vendor.computed(() => { + var _a, _b; + return ((_a = props.content) == null ? void 0 : _a.text) || ((_b = props.content) == null ? void 0 : _b.custom) || ""; + }); + return (_ctx, _cache) => { + return { + a: common_vendor.t(common_vendor.unref(tipContent)) + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-9169fd29"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.wxml new file mode 100644 index 0000000..41f7be2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.wxss new file mode 100644 index 0000000..4c0fc6a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-tip.wxss @@ -0,0 +1,100 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-9169fd29, div.data-v-9169fd29, ul.data-v-9169fd29, ol.data-v-9169fd29, dt.data-v-9169fd29, dd.data-v-9169fd29, li.data-v-9169fd29, dl.data-v-9169fd29, h1.data-v-9169fd29, h2.data-v-9169fd29, h3.data-v-9169fd29, h4.data-v-9169fd29, p.data-v-9169fd29 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-9169fd29, ul.data-v-9169fd29, li.data-v-9169fd29 { + list-style: none; +} +img.data-v-9169fd29 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-9169fd29 { + color: #000; + background: #FFF; +} +.clear.data-v-9169fd29 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-9169fd29 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-9169fd29:hover { + text-decoration: none; +} +input.data-v-9169fd29, textarea.data-v-9169fd29 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-9169fd29:focus, input.data-v-9169fd29:active, textarea.data-v-9169fd29:focus, textarea.data-v-9169fd29:active { + outline: none; +} +.chat-aside.data-v-9169fd29 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.message-tip.data-v-9169fd29 { + margin: 0 auto; + padding: 0 20px; + color: #999; + font-size: 12px; + overflow-wrap: anywhere; + display: flex; + place-content: center center; + align-items: center; + text-align: center; + margin-bottom: 10px; +} +.message-tip-highlight.data-v-9169fd29 { + animation: highlight-9169fd29 1000ms infinite; +} +@keyframes highlight-9169fd29 { +50% { + color: #ff9c19; +} +} +@keyframes highlight-9169fd29 { +50% { + color: #ff9c19; +} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.js new file mode 100644 index 0000000..ba471fc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.js @@ -0,0 +1,75 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +require("../../../../../adapter-vue.js"); +const common_assets = require("../../../../../../common/assets.js"); +if (!Math) { + (TranslationContent + Icon)(); +} +const Icon = () => "../../../../common/Icon.js"; +const TranslationContent = () => "./translation-content.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + message: { default: () => ({}) } + }, + setup(__props) { + const props = __props; + const translationVisible = common_vendor.ref(false); + const hasTranslationError = common_vendor.ref(false); + const translationWrapperRef = common_vendor.ref(); + let isSingleTranslation = true; + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CHAT, { + translateTextInfo: onMessageTranslationUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CHAT, { + translateTextInfo: onMessageTranslationUpdated + }); + }); + function toggleErrorStatus(hasError) { + hasTranslationError.value = hasError; + } + function onMessageTranslationUpdated(info) { + if (info === void 0) + return; + isSingleTranslation = false; + const translationInfoList = info.get(props.message.conversationID) || []; + for (let i = 0; i < translationInfoList.length; ++i) { + const { messageID, visible } = translationInfoList[i]; + if (messageID === props.message.ID && visible !== void 0) { + if (translationInfoList.length === 1 && visible) { + isSingleTranslation = true; + } + hasTranslationError.value = false; + translationVisible.value = visible; + break; + } + } + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(translationVisible) + }, common_vendor.unref(translationVisible) ? { + b: common_vendor.o$1(toggleErrorStatus), + c: common_vendor.p({ + message: props.message, + translationContentVisible: common_vendor.unref(translationVisible), + translationWrapperRef: common_vendor.unref(translationWrapperRef), + isSingleTranslation: common_vendor.unref(isSingleTranslation) + }), + d: common_vendor.p({ + file: common_vendor.unref(common_assets.checkIcon), + size: "13px" + }), + e: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.由IM提供翻译支持")), + f: props.message.flow === "out" ? 1 : "", + g: common_vendor.unref(hasTranslationError) ? 1 : "" + } : {}); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-955a2daf"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.json new file mode 100644 index 0000000..603b8e0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../../common/Icon", + "translation-content": "./translation-content" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.wxml new file mode 100644 index 0000000..042a4ab --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.wxml @@ -0,0 +1 @@ +{{e}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.wxss new file mode 100644 index 0000000..a65f426 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.wxss @@ -0,0 +1,52 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.message-translation.data-v-955a2daf { + margin-top: 4px; + margin-left: 44px; + padding: 10px; + background-color: #f2f7ff; + border-radius: 10px; + display: flex; + flex-direction: column !important; + transition: background-color 0.15s ease-out; +} +.message-translation.error.data-v-955a2daf { + background-color: #ffdfdf; +} +.message-translation .copyright.data-v-955a2daf { + display: flex; + align-items: center; + margin-top: 10px; +} +.message-translation .copyright .copyright-text.data-v-955a2daf { + margin-left: 2px; + font-size: 12px; + color: #999; +} +.message-translation.reverse.data-v-955a2daf { + margin-right: 44px; + margin-left: auto; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.js new file mode 100644 index 0000000..c3d894d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.js @@ -0,0 +1,60 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +require("../../../../../adapter-vue.js"); +const TUIKit_components_TUIChat_utils_translation = require("../../../utils/translation.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "translation-content", + props: { + message: { default: () => ({}) }, + translationContentVisible: { type: Boolean }, + isSingleTranslation: { type: Boolean }, + translationWrapperRef: {} + }, + setup(__props) { + const props = __props; + const translationFinished = common_vendor.ref(false); + const translationErrorText = common_vendor.ref(""); + const translationTextList = common_vendor.ref([]); + common_vendor.watch(() => props.translationContentVisible, (newVal) => { + if (newVal) { + TUIKit_components_TUIChat_utils_translation.translator.get(props.message).then((result) => { + translationFinished.value = true; + translationTextList.value = result; + }).catch((err) => { + translationFinished.value = true; + emits("toggleErrorStatus", true); + translationErrorText.value = err.message; + }); + } + }, { immediate: true }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(translationFinished) + }, common_vendor.unref(translationFinished) ? common_vendor.e({ + b: common_vendor.unref(translationTextList).length > 0 + }, common_vendor.unref(translationTextList).length > 0 ? { + c: common_vendor.f(common_vendor.unref(translationTextList), (text, index, i0) => { + return common_vendor.e({ + a: text.type === "face" + }, text.type === "face" ? { + b: text.value + } : { + c: common_vendor.t(text.value) + }, { + d: index + }); + }) + } : { + d: common_vendor.t(common_vendor.unref(translationErrorText)) + }, { + e: `translation-content-${props.message.ID}` + }) : {}, { + f: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.翻译中")), + g: common_vendor.unref(translationFinished) ? 1 : "" + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-ef640ceb"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.wxml new file mode 100644 index 0000000..a7db3e1 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.wxml @@ -0,0 +1 @@ +{{d}}{{f}}... \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.wxss new file mode 100644 index 0000000..bed9639 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.wxss @@ -0,0 +1,57 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.message-translation-container.data-v-ef640ceb { + min-height: 16px; + min-width: 80px; + position: relative; + transition: width 0.15s ease-out, height 0.15s ease-out; + font-size: 14px; +} +.message-translation-container .loading.data-v-ef640ceb { + position: absolute; + top: 0; + left: 0; + opacity: 1; + transition: opacity 0.3s ease-out; +} +.message-translation-container .loading.loading-end.data-v-ef640ceb { + opacity: 0; +} +.message-translation-container .translation-content.data-v-ef640ceb { + opacity: 0; +} +.message-translation-container .translation-content.occur.data-v-ef640ceb { + animation: occur-ef640ceb 0.3s ease-out 0.45s forwards; +} +@keyframes occur-ef640ceb { +100% { + opacity: 1; +} +} +.message-translation-container .translation-content .text-face.data-v-ef640ceb { + width: 20px; + height: 20px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.js new file mode 100644 index 0000000..f197bda --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.js @@ -0,0 +1,38 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +const common_assets = require("../../../../../common/assets.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-video", + props: { + content: { default: () => ({}) }, + messageItem: { default: () => ({}) } + }, + setup(__props) { + const props = __props; + function handlerVideoPlay() { + const encodedUrl = encodeURIComponent(props.content.url); + common_vendor.index.navigateTo({ + url: `/TUIKit/components/TUIChat/video-play?videoUrl=${encodedUrl}` + }); + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: props.content.snapshotUrl, + b: props.messageItem.status === "success" || props.messageItem.progress === 1 + }, props.messageItem.status === "success" || props.messageItem.progress === 1 ? { + c: common_vendor.p({ + file: common_vendor.unref(common_assets.playIcon) + }) + } : {}, { + d: common_vendor.o$1(handlerVideoPlay) + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-c500d966"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.json new file mode 100644 index 0000000..e4996d2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.wxml new file mode 100644 index 0000000..de0759c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.wxss new file mode 100644 index 0000000..3138ec3 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/message-video.wxss @@ -0,0 +1,42 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.message-video.data-v-c500d966 { + position: relative; +} +.message-video-box.data-v-c500d966 { + width: 120px; + max-width: 120px; + background-color: rgba(0, 0, 0, 0.3); + border-radius: 6px; + height: 200px; + font-size: 0; +} +.message-video .video-play.data-v-c500d966 { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.js new file mode 100644 index 0000000..fcdd2ab --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.js @@ -0,0 +1,139 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +require("../../../../../adapter-vue.js"); +const TUIKit_components_TUIChat_config = require("../../../config.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + message: { default: () => ({}) } + }, + emits: ["openReadUserPanel"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const props = __props; + const ReadStatus = TUIKit_components_TUIChat_config.ChatConfig.getFeatureConfig("ReadStatus"); + const TYPES = common_vendor.qt.TYPES; + const isDisplayMessageReadReceipt = common_vendor.ref(common_vendor.Jt.getData(common_vendor.o.USER, "displayMessageReadReceipt")); + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.USER, { + displayMessageReadReceipt: onDisplayMessageReadReceiptUpdate + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.USER, { + displayMessageReadReceipt: onDisplayMessageReadReceiptUpdate + }); + }); + const isShowReadStatus = common_vendor.computed(() => { + if (!ReadStatus) { + return false; + } + if (!isDisplayMessageReadReceipt.value) { + return false; + } + const { + ID, + type, + flow, + status, + hasRiskContent, + conversationID, + conversationType, + needReadReceipt = false + } = props.message; + if (hasRiskContent) { + return false; + } + const { groupProfile } = common_vendor.Jt.getConversationModel(conversationID) || {}; + if ((groupProfile == null ? void 0 : groupProfile.type) === TYPES.GRP_AVCHATROOM || (groupProfile == null ? void 0 : groupProfile.type) === TYPES.GRP_COMMUNITY) { + return false; + } + if (type === TYPES.MSG_CUSTOM) { + const message = common_vendor.Jt.getMessageModel(ID); + if ((message == null ? void 0 : message.getSignalingInfo()) !== null) { + return false; + } + } + if (flow !== "out" || status !== "success") { + return false; + } + if (conversationType === "GROUP") { + return needReadReceipt; + } else if (conversationType === "C2C") { + return true; + } + return false; + }); + const readState = common_vendor.computed(() => { + const { conversationType, needReadReceipt = false, isPeerRead = false } = props.message; + const { readCount = 0, unreadCount = 0, isPeerRead: isReceiptPeerRead = false } = props.message.readReceiptInfo; + if (conversationType === "C2C") { + if (needReadReceipt) { + return isReceiptPeerRead ? 0 : 1; + } else { + return isPeerRead ? 0 : 1; + } + } else if (conversationType === "GROUP") { + if (needReadReceipt) { + if (readCount === 0) { + return 1; + } else if (unreadCount === 0) { + return 2; + } else { + return 4; + } + } else { + return 3; + } + } + return 1; + }); + const readStatusText = common_vendor.computed(() => { + const { readCount = 0 } = props.message.readReceiptInfo; + switch (readState.value) { + case 0: + return common_vendor.Wt.t("TUIChat.已读"); + case 1: + return common_vendor.Wt.t("TUIChat.未读"); + case 2: + return common_vendor.Wt.t("TUIChat.全部已读"); + case 4: + return `${readCount}${common_vendor.Wt.t("TUIChat.人已读")}`; + default: + return ""; + } + }); + const isUseUnreadStyle = common_vendor.computed(() => { + const { conversationType } = props.message; + if (conversationType === "C2C") { + return readState.value !== 0; + } else if (conversationType === "GROUP") { + return readState.value !== 2; + } + return false; + }); + const isHoverFingerPointer = common_vendor.computed(() => { + return props.message.needReadReceipt && props.message.conversationType === "GROUP" && (readState.value === 4 || readState.value === 1); + }); + function openReadUserPanel() { + if (isHoverFingerPointer.value) { + emits("openReadUserPanel"); + } + } + function onDisplayMessageReadReceiptUpdate(isDisplay) { + isDisplayMessageReadReceipt.value = isDisplay; + } + return (_ctx, _cache) => { + return { + a: common_vendor.t(common_vendor.unref(readStatusText)), + b: common_vendor.unref(isShowReadStatus), + c: common_vendor.unref(isUseUnreadStyle) ? 1 : "", + d: common_vendor.unref(isHoverFingerPointer) ? 1 : "", + e: common_vendor.o$1(openReadUserPanel) + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-bb856aa1"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.wxml new file mode 100644 index 0000000..7d647fa --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.wxss new file mode 100644 index 0000000..b046da5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/read-status/index.wxss @@ -0,0 +1,39 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.message-label.data-v-bb856aa1 { + align-self: flex-end; + font-size: 12px; + color: #b6b8ba; + word-break: keep-all; + flex: 0 0 auto; +} +.message-label.unread.data-v-bb856aa1 { + color: #679ce1 !important; +} +.finger-point.data-v-bb856aa1 { + cursor: pointer; + -webkit-tap-highlight-color: transparent; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.js new file mode 100644 index 0000000..05d6723 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.js @@ -0,0 +1,195 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +require("../../../../../adapter-vue.js"); +const common_assets = require("../../../../../../common/assets.js"); +const TUIKit_components_TUIChat_emojiConfig_index = require("../../../emoji-config/index.js"); +const TUIKit_utils_env = require("../../../../../utils/env.js"); +const TUIKit_components_TUIChat_emojiConfig_customEmoji = require("../../../emoji-config/custom-emoji.js"); +const TUIKit_components_TUIChat_emojiConfig_defaultEmoji = require("../../../emoji-config/default-emoji.js"); +if (!Math) { + (Icon + MessageRecord + MessageContainer)(); +} +const Icon = () => "../../../../common/Icon.js"; +const MessageContainer = () => "./message-container.js"; +const MessageRecord = () => "../message-record/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + messageID: { default: "" }, + isMounted: { type: Boolean, default: false } + }, + emits: ["closeOverlay"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const props = __props; + const TYPES = common_vendor.qt.TYPES; + const isDownloadOccurError = common_vendor.ref(false); + const messageListStack = common_vendor.ref([]); + const currentMergeMessageInfo = common_vendor.ref({ + title: "", + messageList: [] + }); + common_vendor.ref(); + common_vendor.watch(() => messageListStack.value.length, async (newValue) => { + isDownloadOccurError.value = false; + if (newValue < 1) { + return; + } + const stackTopMessageInfo = messageListStack.value[messageListStack.value.length - 1]; + if (stackTopMessageInfo.downloadKey && stackTopMessageInfo.messageList.length === 0) { + try { + const res = await common_vendor.Qt.downloadMergedMessages({ + payload: stackTopMessageInfo, + type: common_vendor.qt.TYPES.MSG_MERGER + }); + messageListStack.value[messageListStack.value.length - 1] = res.payload; + } catch (error) { + isDownloadOccurError.value = true; + } + } + currentMergeMessageInfo.value = messageListStack.value[messageListStack.value.length - 1]; + }); + common_vendor.watch(() => props.isMounted, (newValue) => { + if (newValue) { + if (!props.messageID) { + throw new Error("messageID is required when first render of simple-message-list."); + } + const sdkMessagePayload = common_vendor.Jt.getMessageModel(props.messageID).getMessage().payload; + messageListStack.value = [sdkMessagePayload]; + } else { + messageListStack.value = []; + } + }, { + immediate: true + }); + const isReturn = common_vendor.computed(() => { + return messageListStack.value.length > 1; + }); + const isMergeMessageInfoLoaded = common_vendor.computed(() => { + var _a; + return ((_a = currentMergeMessageInfo.value) == null ? void 0 : _a.messageList) ? currentMergeMessageInfo.value.messageList.length > 0 : false; + }); + function entryNextLevel(e, sdkMessage) { + messageListStack.value.push(sdkMessage.messageBody[0].payload); + e.stopPropagation(); + } + function backPreviousLevel() { + messageListStack.value.pop(); + if (messageListStack.value.length < 1) { + emits("closeOverlay"); + } + } + function previewVideoInUniapp(url) { + if (TUIKit_utils_env.isUniFrameWork) { + const encodedUrl = encodeURIComponent(url); + common_vendor.index.navigateTo({ + url: `/TUIKit/components/TUIChat/video-play?videoUrl=${encodedUrl}` + }); + } + } + function resolveBigFaceUrl(bigFaceKey) { + let url = ""; + if (bigFaceKey.indexOf("@custom") > -1) { + url = TUIKit_components_TUIChat_emojiConfig_customEmoji.CUSTOM_BIG_EMOJI_URL + bigFaceKey; + } else { + url = TUIKit_components_TUIChat_emojiConfig_defaultEmoji.DEFAULT_BIG_EMOJI_URL + bigFaceKey; + if (url.indexOf("@2x") === -1) { + url += "@2x.png"; + } else { + url += ".png"; + } + } + return url; + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.p({ + file: common_vendor.unref(common_assets.backIcon), + size: "18px" + }), + b: common_vendor.unref(isReturn) + }, common_vendor.unref(isReturn) ? { + c: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.返回")) + } : { + d: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.关闭")) + }, { + e: common_vendor.o$1(backPreviousLevel), + f: common_vendor.t(common_vendor.unref(currentMergeMessageInfo).title), + g: common_vendor.unref(isDownloadOccurError) + }, common_vendor.unref(isDownloadOccurError) ? {} : common_vendor.unref(isMergeMessageInfoLoaded) ? { + i: common_vendor.f(common_vendor.unref(currentMergeMessageInfo).messageList, (item, k0, i0) => { + return common_vendor.e({ + a: item.messageBody[0].type === common_vendor.unref(TYPES).MSG_TEXT + }, item.messageBody[0].type === common_vendor.unref(TYPES).MSG_TEXT ? { + b: common_vendor.f(common_vendor.unref(TUIKit_components_TUIChat_emojiConfig_index.parseTextToRenderArray)(item.messageBody[0].payload["text"]), (textInfo, index, i1) => { + return common_vendor.e({ + a: textInfo.type === "text" + }, textInfo.type === "text" ? { + b: common_vendor.t(textInfo.content) + } : { + c: textInfo.content + }, { + d: index + }); + }) + } : item.messageBody[0].type === common_vendor.unref(TYPES).MSG_IMAGE ? { + d: item.messageBody[0].payload["imageInfoArray"][2]["url"] + } : item.messageBody[0].type === common_vendor.unref(TYPES).MSG_VIDEO ? common_vendor.e({ + f: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) + }, common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? { + g: item.messageBody[0].payload["thumbUrl"], + h: "6bc34766-2-" + i0 + "," + ("6bc34766-1-" + i0), + i: common_vendor.p({ + file: common_vendor.unref(common_assets.playIcon) + }), + j: common_vendor.o$1(($event) => previewVideoInUniapp(item.messageBody[0].payload["remoteVideoUrl"]), item.ID) + } : { + k: item.messageBody[0].payload["remoteVideoUrl"], + l: item.messageBody[0].payload["thumbUrl"] + }) : item.messageBody[0].type === common_vendor.unref(TYPES).MSG_AUDIO ? { + n: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.语音")), + o: common_vendor.t(item.messageBody[0].payload.second) + } : item.messageBody[0].type === common_vendor.unref(TYPES).MSG_FACE ? { + q: resolveBigFaceUrl(item.messageBody[0].payload.data) + } : item.messageBody[0].type === common_vendor.unref(TYPES).MSG_FILE ? { + s: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.[文件]")) + } : item.messageBody[0].type === common_vendor.unref(TYPES).MSG_LOCATION ? { + v: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.[地理位置]")) + } : item.messageBody[0].type === common_vendor.unref(TYPES).MSG_MERGER ? { + x: "6bc34766-3-" + i0 + "," + ("6bc34766-1-" + i0), + y: common_vendor.p({ + disabled: true, + renderData: item.messageBody[0].payload + }), + z: common_vendor.o$1(($event) => entryNextLevel($event, item), item.ID) + } : item.messageBody[0].type === common_vendor.unref(TYPES).MSG_CUSTOM ? { + B: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.[自定义消息]")) + } : {}, { + c: item.messageBody[0].type === common_vendor.unref(TYPES).MSG_IMAGE, + e: item.messageBody[0].type === common_vendor.unref(TYPES).MSG_VIDEO, + m: item.messageBody[0].type === common_vendor.unref(TYPES).MSG_AUDIO, + p: item.messageBody[0].type === common_vendor.unref(TYPES).MSG_FACE, + r: item.messageBody[0].type === common_vendor.unref(TYPES).MSG_FILE, + t: item.messageBody[0].type === common_vendor.unref(TYPES).MSG_LOCATION, + w: item.messageBody[0].type === common_vendor.unref(TYPES).MSG_MERGER, + A: item.messageBody[0].type === common_vendor.unref(TYPES).MSG_CUSTOM, + C: "6bc34766-1-" + i0, + D: common_vendor.p({ + sender: item.nick, + avatar: item.avatar, + type: item.messageBody[0].type, + time: item.time + }), + E: item.ID + }); + }) + } : {}, { + h: common_vendor.unref(isMergeMessageInfoLoaded), + j: common_vendor.unref(TUIKit_utils_env.isMobile) ? 1 : "" + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-6bc34766"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.json new file mode 100644 index 0000000..ff74880 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../../common/Icon", + "message-container": "./message-container", + "message-record": "../message-record/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.wxml new file mode 100644 index 0000000..8c70399 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.wxml @@ -0,0 +1 @@ + Load Merge Message Error imageimageface{{item.s}}{{item.v}}{{item.B}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.wxss new file mode 100644 index 0000000..e130a1d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/index.wxss @@ -0,0 +1,142 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.data-v-6bc34766:not(not) { + display: flex; + flex-direction: column; + min-width: 0; + box-sizing: border-box; +} +.simple-message-list-container.data-v-6bc34766 { + position: relative; + overflow: hidden; + width: 40vw; + min-width: 550px; + height: calc(100vh - 200px); + background-color: #fff; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + border-radius: 8px; +} +.simple-message-list-container-mobile.data-v-6bc34766 { + width: 100vw; + height: 100vh; + min-width: auto; + border-radius: 0; +} +.simple-message-list-container .header-container.data-v-6bc34766 { + width: 100%; + text-align: center; + font-weight: bold; + position: absolute; + top: 0; + left: 0; + z-index: 1; + height: 60px; + justify-content: center; + align-items: center; + padding: 0 70px; + background-color: #fff; +} +.simple-message-list-container .header-container .back.data-v-6bc34766 { + flex-direction: row; + align-items: center; + position: absolute; + left: 10px; + cursor: pointer; +} +.simple-message-list-container .header-container .title.data-v-6bc34766 { + width: 100%; + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.simple-message-list-container .message-list.data-v-6bc34766 { + padding: 60px 20px 20px; + flex: 1 1 auto; + overflow: hidden auto; +} +.message-item.data-v-6bc34766 { + flex-direction: row; + margin: 10px 0; +} +.message-text.data-v-6bc34766 { + flex-flow: row wrap; + display: inline; +} +.message-text-container.data-v-6bc34766 { + display: inline; + flex: 0 0 auto; + flex-direction: row; +} +.message-text-container .text.data-v-6bc34766 { + vertical-align: bottom; + display: inline; + word-break: break-all; +} +.message-text-container .simple-emoji.data-v-6bc34766 { + display: inline-flex; + width: 20px; + height: 20px; +} +.message-image.data-v-6bc34766 { + max-width: 180px; + border-radius: 10px; + overflow: hidden; +} +.message-image .image.data-v-6bc34766 { + max-width: 180px; +} +.message-face.data-v-6bc34766 { + max-width: 100px; +} +.message-face .image.data-v-6bc34766 { + width: 80px; + height: 80px; +} +.message-audio.data-v-6bc34766 { + flex-direction: row; +} +.message-video.data-v-6bc34766 { + position: relative; +} +.message-video .image.data-v-6bc34766 { + max-width: 180px; +} +.message-video .video-play-icon.data-v-6bc34766 { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} +.message-video .video.data-v-6bc34766 { + max-width: 150px; + width: inherit; + height: inherit; + border-radius: 10px; +} +.message-combine.data-v-6bc34766 { + max-width: 300px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.js new file mode 100644 index 0000000..83c629e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.js @@ -0,0 +1,37 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +require("../../../../../adapter-vue.js"); +const TUIKit_components_TUIChat_utils_utils = require("../../../utils/utils.js"); +if (!Math) { + Avatar(); +} +const Avatar = () => "../../../../common/Avatar/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-container", + props: { + sender: { default: "" }, + avatar: { default: "" }, + type: {}, + time: {} + }, + setup(__props) { + const props = __props; + const TYPES = common_vendor.qt.TYPES; + const isNoPadding = common_vendor.computed(() => { + return [TYPES.MSG_IMAGE, TYPES.MSG_VIDEO, TYPES.MSG_MERGER].includes(props.type); + }); + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + url: props.avatar + }), + b: common_vendor.t(props.sender), + c: common_vendor.unref(isNoPadding) ? 1 : "", + d: common_vendor.t(common_vendor.unref(TUIKit_components_TUIChat_utils_utils.calculateTimestamp)(props.time * 1e3)) + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-79409a32"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.json new file mode 100644 index 0000000..4a4357b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "avatar": "../../../../common/Avatar/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.wxml new file mode 100644 index 0000000..e5056eb --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.wxml @@ -0,0 +1 @@ +{{b}}{{d}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.wxss new file mode 100644 index 0000000..5a6c6a6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.wxss @@ -0,0 +1,67 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.data-v-79409a32:not(not) { + display: flex; + flex-direction: column; + min-width: 0; + box-sizing: border-box; +} +.simple-message-container.data-v-79409a32 { + flex-direction: row; +} +.simple-message-container .simple-message-avatar.data-v-79409a32 { + flex: 0 0 auto; + margin-right: 8px; +} +.simple-message-container .simple-message-sender.data-v-79409a32 { + display: block; + max-width: 200px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 11px; + color: #999; +} +.simple-message-container .simple-message-body.data-v-79409a32 { + flex-direction: row; + align-items: flex-end; +} +.simple-message-container .simple-message-content.data-v-79409a32 { + margin-top: 8px; + background-color: #dceafd; + border-radius: 0 10px 10px; + padding: 10px 12px; +} +.simple-message-container .timestamp.data-v-79409a32 { + flex: 0 0 auto; + font-size: 12px; + color: #aaa; + margin-left: 6px; +} +.simple-message-container .no-padding.data-v-79409a32 { + padding: 0; + background-color: transparent; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.js new file mode 100644 index 0000000..0457d01 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.js @@ -0,0 +1,163 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +if (!Math) { + (Icon + Avatar + Drawer)(); +} +const Icon = () => "../../../common/Icon.js"; +const Avatar = () => "../../../common/Avatar/index.js"; +const Drawer = () => "../../../common/Drawer/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + groupID: { default: "" } + }, + setup(__props) { + const props = __props; + const drawerDomInstanceRef = common_vendor.ref(); + const groupApplicationCount = common_vendor.ref(0); + const isGroupApplicationDrawerShow = common_vendor.ref(false); + const customGroupApplicationList = common_vendor.ref([]); + common_vendor.watch(isGroupApplicationDrawerShow, (newVal) => { + if (newVal) { + generateCustomGroupApplicationList().then((list) => { + customGroupApplicationList.value = list; + groupApplicationCount.value = list.length; + }); + } + }); + common_vendor.watch(() => customGroupApplicationList.value.length, (newVal, oldVal) => { + if (oldVal > 0 && newVal === 0) { + isGroupApplicationDrawerShow.value = false; + } + }); + async function getCurrentGroupApplicationList() { + const result = await common_vendor.es.getGroupApplicationList(); + const currentGroupApplicationList = result.data.applicationList.filter((application) => application.groupID === props.groupID); + return currentGroupApplicationList; + } + function toggleGroupApplicationDrawerShow() { + isGroupApplicationDrawerShow.value = !isGroupApplicationDrawerShow.value; + } + async function generateCustomGroupApplicationList() { + const applicationList = await getCurrentGroupApplicationList(); + if (applicationList.length === 0) { + return []; + } + const userIDList = applicationList.map((application) => application.applicationType === 0 ? application.applicant : application.userID); + const { data: userProfileList } = await common_vendor.Zt.getUserProfile({ userIDList }); + const mappingFromUserID2Profile = {}; + userProfileList.forEach((profile) => { + mappingFromUserID2Profile[profile.userID] = profile; + }); + const groupApplicationList = applicationList.map((application) => { + const profile = mappingFromUserID2Profile[application.applicationType === 0 ? application.applicant : application.userID]; + return { + nick: profile.nick || profile.userID || "anonymous", + avatar: profile.avatar || "", + isRemoved: false, + application + }; + }); + return groupApplicationList; + } + function handleApplication(customApplication, action, index) { + common_vendor.es.handleGroupApplication({ + handleAction: action, + application: customApplication.application + }).then(() => { + customGroupApplicationList.value[index].isRemoved = true; + setTimeout(() => { + customGroupApplicationList.value.splice(index, 1); + groupApplicationCount.value -= 1; + }, 150); + }).catch(() => { + }); + } + common_vendor.onMounted(() => { + getCurrentGroupApplicationList().then((applicationList) => { + groupApplicationCount.value = applicationList.length; + }); + common_vendor.Jt.watch(common_vendor.o.GRP, { + groupSystemNoticeList: onGroupSystemNoticeListUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.GRP, { + groupSystemNoticeList: onGroupSystemNoticeListUpdated + }); + }); + function onGroupSystemNoticeListUpdated() { + generateCustomGroupApplicationList().then((list) => { + customGroupApplicationList.value = list; + groupApplicationCount.value = list.length; + }); + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(groupApplicationCount) > 0 + }, common_vendor.unref(groupApplicationCount) > 0 ? { + b: common_vendor.t(common_vendor.unref(groupApplicationCount)), + c: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.条入群申请")), + d: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.点击处理")), + e: common_vendor.o$1(toggleGroupApplicationDrawerShow) + } : {}, { + f: common_vendor.unref(TUIKit_utils_env.isPC) + }, common_vendor.unref(TUIKit_utils_env.isPC) ? { + g: common_vendor.p({ + file: common_vendor.unref(common_assets.closeIcon$1), + size: "16px" + }) + } : { + h: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("关闭")) + }, { + i: common_vendor.o$1(toggleGroupApplicationDrawerShow), + j: common_vendor.f(common_vendor.unref(customGroupApplicationList), (item, index, i0) => { + return { + a: "4c42d719-2-" + i0 + ",4c42d719-0", + b: common_vendor.p({ + url: item.avatar, + useSkeletonAnimation: true + }), + c: common_vendor.t(item.nick), + d: common_vendor.o$1(($event) => handleApplication(item, "Agree", index), item.nick), + e: common_vendor.o$1(($event) => handleApplication(item, "Reject", index), item.nick), + f: item.nick, + g: item.isRemoved ? 1 : "" + }; + }), + k: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.申请加入")), + l: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.同意")), + m: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.拒绝")), + n: common_vendor.sr(drawerDomInstanceRef, "4c42d719-0", { + "k": "drawerDomInstanceRef" + }), + o: common_vendor.o$1(toggleGroupApplicationDrawerShow), + p: common_vendor.p({ + visible: common_vendor.unref(isGroupApplicationDrawerShow), + zIndex: 998, + popDirection: common_vendor.unref(TUIKit_utils_env.isMobile) ? "bottom" : "right", + isFullScreen: common_vendor.unref(TUIKit_utils_env.isMobile), + overlayColor: common_vendor.unref(TUIKit_utils_env.isMobile) ? void 0 : "transparent", + drawerStyle: { + bottom: { + minHeight: "60vh", + maxHeight: "80vh", + borderRadius: "12px 12px 0 0" + }, + right: { + width: "360px", + borderRadius: "12px 0 0 12px", + boxShadow: "0 0 10px 0 #d0d0d0" + } + } + }) + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-4c42d719"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.json new file mode 100644 index 0000000..5326c1c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon", + "avatar": "../../../common/Avatar/index", + "drawer": "../../../common/Drawer/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.wxml new file mode 100644 index 0000000..c2d793e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.wxml @@ -0,0 +1 @@ +{{b}}{{c}}{{d}}{{h}}{{item.c}}{{k}}{{l}}{{m}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.wxss new file mode 100644 index 0000000..fb479fc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-group-application/index.wxss @@ -0,0 +1,109 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.data-v-4c42d719:not(not) { + display: flex; + flex-direction: column; + box-sizing: border-box; + min-width: 0; +} +.flex-row.data-v-4c42d719 { + flex-direction: row; +} +.application-tips.data-v-4c42d719 { + display: flex; + flex-direction: row; + justify-content: center; + width: 100%; + padding: 5px 0; + font-size: 14px; + background-color: #fce4d3; +} +.application-tips .application-tips-btn.data-v-4c42d719 { + color: #006eff; + cursor: pointer; + margin-left: 12px; +} +.application-contaienr.data-v-4c42d719 { + padding: 50px 18px 10px; + background-color: #fff; + height: 100%; + overflow: hidden auto; + font-size: 14px; +} +.application-contaienr .application-header.data-v-4c42d719 { + position: absolute; + top: 0; + left: 0; + right: 0; + padding: 10px 20px; + flex-direction: row-reverse; + color: #679ce1; + font-size: 14px; +} +.application-contaienr .application-item.data-v-4c42d719 { + display: flex; + flex-direction: row; + align-items: center; + padding: 10px 0; + transition: transform 0.15s ease-out; +} +.application-contaienr .application-item + .application-item.data-v-4c42d719 { + border-top: 0.5px solid #d0d0d0; +} +.application-contaienr .application-item .application-item-info.data-v-4c42d719 { + margin-left: 8px; + margin-right: 8px; + font-size: 14px; +} +.application-contaienr .application-item .application-item-info .application-item-nick.data-v-4c42d719 { + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.application-contaienr .application-item .application-item-info .application-item-note.data-v-4c42d719 { + color: #989191; + font-size: 12px; +} +.application-contaienr .application-item .application-item-operation.data-v-4c42d719 { + flex-direction: row; + margin-left: auto; + padding: 8px; + flex: 0 0 auto; + font-size: 14px; +} +.application-contaienr .application-item .application-item-operation .agree.data-v-4c42d719 { + color: #679ce1; + cursor: pointer; +} +.application-contaienr .application-item .application-item-operation .reject.data-v-4c42d719 { + margin-left: 12px; + color: #fb355d; + cursor: pointer; +} +.application-contaienr .removed.data-v-4c42d719 { + transform: translateX(-100%); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.js new file mode 100644 index 0000000..626fcaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.js @@ -0,0 +1,321 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const TUIKit_components_common_Toast_index = require("../../../common/Toast/index.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_utils_enableSampleTaskStatus = require("../../../../utils/enableSampleTaskStatus.js"); +const TUIKit_components_TUIChat_emojiConfig_index = require("../../emoji-config/index.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +const TUIKit_components_TUIChat_config = require("../../config.js"); +const TUIKit_components_common_Toast_type = require("../../../common/Toast/type.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + messageItem: { default: () => ({}) }, + isMultipleSelectMode: { type: Boolean, default: false } + }, + emits: ["toggleMultipleSelectMode"], + setup(__props, { expose: __expose, emit: __emit }) { + const emits = __emit; + const props = __props; + const featureConfig = TUIKit_components_TUIChat_config.ChatConfig.getFeatureConfig(); + const TYPES = common_vendor.qt.TYPES; + const actionItems = common_vendor.ref([ + { + key: "open", + text: common_vendor.Wt.t("TUIChat.打开"), + iconUrl: common_assets.copyIcon, + renderCondition() { + var _a; + if (!featureConfig.DownloadFile || !message.value) + return false; + return TUIKit_utils_env.isPC && (((_a = message.value) == null ? void 0 : _a.type) === TYPES.MSG_FILE || message.value.type === TYPES.MSG_VIDEO || message.value.type === TYPES.MSG_IMAGE); + }, + clickEvent: openMessage + }, + { + key: "copy", + text: common_vendor.Wt.t("TUIChat.复制"), + iconUrl: common_assets.copyIcon, + renderCondition() { + if (!featureConfig.CopyMessage || !message.value) + return false; + return message.value.type === TYPES.MSG_TEXT; + }, + clickEvent: copyMessage + }, + { + key: "revoke", + text: common_vendor.Wt.t("TUIChat.撤回"), + iconUrl: common_assets.revokeIcon, + renderCondition() { + if (!featureConfig.RevokeMessage || !message.value) + return false; + return message.value.flow === "out" && message.value.status === "success"; + }, + clickEvent: revokeMessage + }, + { + key: "delete", + text: common_vendor.Wt.t("TUIChat.删除"), + iconUrl: common_assets.delIcon, + renderCondition() { + if (!featureConfig.DeleteMessage || !message.value) + return false; + return message.value.status === "success"; + }, + clickEvent: deleteMessage + }, + { + key: "forward", + text: common_vendor.Wt.t("TUIChat.转发"), + iconUrl: common_assets.forwardIcon, + renderCondition() { + if (!featureConfig.ForwardMessage || !message.value) + return false; + return message.value.status === "success"; + }, + clickEvent: forwardSingleMessage + }, + { + key: "quote", + text: common_vendor.Wt.t("TUIChat.引用"), + iconUrl: common_assets.quoteIcon, + renderCondition() { + if (!featureConfig.QuoteMessage || !message.value) + return false; + const _message = common_vendor.Jt.getMessageModel(message.value.ID); + return message.value.status === "success" && !_message.getSignalingInfo(); + }, + clickEvent: quoteMessage + }, + { + key: "translate", + text: common_vendor.Wt.t("TUIChat.翻译"), + visible: false, + iconUrl: common_assets.translateIcon, + renderCondition() { + if (!featureConfig.TranslateMessage || !message.value) + return false; + return message.value.status === "success" && message.value.type === TYPES.MSG_TEXT; + }, + clickEvent: translateMessage + }, + { + key: "convert", + text: common_vendor.Wt.t("TUIChat.转文字"), + visible: false, + iconUrl: common_assets.convertText, + renderCondition() { + if (!featureConfig.VoiceToText || !message.value) + return false; + return message.value.status === "success" && message.value.type === TYPES.MSG_AUDIO; + }, + clickEvent: convertVoiceToText + }, + { + key: "multi-select", + text: common_vendor.Wt.t("TUIChat.多选"), + iconUrl: common_assets.multipleSelectIcon, + renderCondition() { + if (!featureConfig.MultiSelection || !message.value) + return false; + return message.value.status === "success"; + }, + clickEvent: multipleSelectMessage + } + ]); + const message = common_vendor.ref(); + const messageToolDom = common_vendor.ref(); + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CHAT, { + translateTextInfo: onMessageTranslationInfoUpdated, + voiceToTextInfo: onMessageConvertInfoUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CHAT, { + translateTextInfo: onMessageTranslationInfoUpdated, + voiceToTextInfo: onMessageConvertInfoUpdated + }); + }); + common_vendor.watchEffect(() => { + message.value = common_vendor.Jt.getMessageModel(props.messageItem.ID); + }); + const isAllActionItemInvalid = common_vendor.computed(() => { + for (let i = 0; i < actionItems.value.length; ++i) { + if (actionItems.value[i].renderCondition()) { + return false; + } + } + return true; + }); + function getFunction(index) { + actionItems.value[index].clickEvent(); + } + function openMessage() { + var _a; + let url = ""; + switch ((_a = message.value) == null ? void 0 : _a.type) { + case common_vendor.qt.TYPES.MSG_FILE: + url = message.value.payload.fileUrl; + break; + case common_vendor.qt.TYPES.MSG_VIDEO: + url = message.value.payload.remoteVideoUrl; + break; + case common_vendor.qt.TYPES.MSG_IMAGE: + url = message.value.payload.imageInfoArray[0].url; + break; + } + window == null ? void 0 : window.open(url, "_blank"); + } + function revokeMessage() { + if (!message.value) + return; + const messageModel = common_vendor.Jt.getMessageModel(message.value.ID); + messageModel.revokeMessage().then(() => { + TUIKit_utils_enableSampleTaskStatus.enableSampleTaskStatus("revokeMessage"); + }).catch((error) => { + if (error.code === 20016 || error.code === 10031) { + const message2 = common_vendor.Wt.t("TUIChat.已过撤回时限"); + TUIKit_components_common_Toast_index.Toast({ + message: message2, + type: TUIKit_components_common_Toast_type.TOAST_TYPE.ERROR + }); + } + }); + } + function deleteMessage() { + if (!message.value) + return; + const messageModel = common_vendor.Jt.getMessageModel(message.value.ID); + messageModel.deleteMessage(); + } + async function copyMessage() { + var _a, _b, _c; + if (TUIKit_utils_env.isUniFrameWork) { + (_c = common_vendor.i) == null ? void 0 : _c.setClipboardData({ + data: TUIKit_components_TUIChat_emojiConfig_index.transformTextWithKeysToEmojiNames((_b = (_a = message.value) == null ? void 0 : _a.payload) == null ? void 0 : _b.text) + }); + } + } + function beforeCopy(key) { + if (key !== "copy" || TUIKit_utils_env.isH5) { + return; + } + } + function forwardSingleMessage() { + if (!message.value) + return; + common_vendor.Jt.update(common_vendor.o.CUSTOM, "singleForwardMessageID", message.value.ID); + } + function quoteMessage() { + if (!message.value) + return; + message.value.quoteMessage(); + } + function translateMessage() { + const enable = common_vendor.Jt.getData(common_vendor.o.APP, "enabledTranslationPlugin"); + if (!enable) { + TUIKit_components_common_Toast_index.Toast({ + message: common_vendor.Wt.t("TUIChat.请开通翻译功能"), + type: TUIKit_components_common_Toast_type.TOAST_TYPE.WARNING + }); + return; + } + if (!message.value) + return; + const index = actionItems.value.findIndex((item) => item.key === "translate"); + common_vendor.Jt.update(common_vendor.o.CHAT, "translateTextInfo", { + conversationID: message.value.conversationID, + messageID: message.value.ID, + visible: !actionItems.value[index].visible + }); + } + function convertVoiceToText() { + const enable = common_vendor.Jt.getData(common_vendor.o.APP, "enabledVoiceToText"); + if (!enable) { + TUIKit_components_common_Toast_index.Toast({ + message: common_vendor.Wt.t("TUIChat.请开通语音转文字功能") + }); + return; + } + if (!message.value) + return; + const index = actionItems.value.findIndex((item) => item.key === "convert"); + common_vendor.Jt.update(common_vendor.o.CHAT, "voiceToTextInfo", { + conversationID: message.value.conversationID, + messageID: message.value.ID, + visible: !actionItems.value[index].visible + }); + } + function multipleSelectMessage() { + emits("toggleMultipleSelectMode"); + } + function onMessageTranslationInfoUpdated(info) { + if (info === void 0) + return; + const translationInfoList = info.get(props.messageItem.conversationID) || []; + const idx = actionItems.value.findIndex((item) => item.key === "translate"); + for (let i = 0; i < translationInfoList.length; ++i) { + const { messageID, visible } = translationInfoList[i]; + if (messageID === props.messageItem.ID) { + actionItems.value[idx].text = common_vendor.Wt.t(visible ? "TUIChat.隐藏" : "TUIChat.翻译"); + actionItems.value[idx].visible = !!visible; + return; + } + } + actionItems.value[idx].text = common_vendor.Wt.t("TUIChat.翻译"); + } + function onMessageConvertInfoUpdated(info) { + if (info === void 0) + return; + const convertInfoList = info.get(props.messageItem.conversationID) || []; + const idx = actionItems.value.findIndex((item) => item.key === "convert"); + for (let i = 0; i < convertInfoList.length; ++i) { + const { messageID, visible } = convertInfoList[i]; + if (messageID === props.messageItem.ID) { + actionItems.value[idx].text = common_vendor.Wt.t(visible ? "TUIChat.隐藏" : "TUIChat.转文字"); + actionItems.value[idx].visible = !!visible; + return; + } + } + actionItems.value[idx].text = common_vendor.Wt.t("TUIChat.转文字"); + } + __expose({ + messageToolDom + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: !common_vendor.unref(isAllActionItemInvalid) && !_ctx.messageItem.hasRiskContent + }, !common_vendor.unref(isAllActionItemInvalid) && !_ctx.messageItem.hasRiskContent ? common_vendor.e({ + b: common_vendor.unref(featureConfig).EmojiReaction + }, common_vendor.unref(featureConfig).EmojiReaction ? {} : {}, { + c: common_vendor.f(common_vendor.unref(actionItems), (item, index, i0) => { + return common_vendor.e({ + a: item.renderCondition() + }, item.renderCondition() ? { + b: "a62b3471-0-" + i0, + c: common_vendor.p({ + file: item.iconUrl, + size: "15px" + }), + d: common_vendor.t(item.text), + e: item.key, + f: common_vendor.o$1(($event) => getFunction(index), item.key), + g: common_vendor.o$1(($event) => beforeCopy(item.key), item.key) + } : {}); + }), + d: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) ? "dialog-item-list-h5" : "dialog-item-list-web"), + e: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) ? "dialog-item-h5" : "dialog-item-web") + }) : {}); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-a62b3471"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.json new file mode 100644 index 0000000..e4996d2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.wxml new file mode 100644 index 0000000..63708ef --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.wxss new file mode 100644 index 0000000..5f3de7e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/index.wxss @@ -0,0 +1,120 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-a62b3471, div.data-v-a62b3471, ul.data-v-a62b3471, ol.data-v-a62b3471, dt.data-v-a62b3471, dd.data-v-a62b3471, li.data-v-a62b3471, dl.data-v-a62b3471, h1.data-v-a62b3471, h2.data-v-a62b3471, h3.data-v-a62b3471, h4.data-v-a62b3471, p.data-v-a62b3471 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-a62b3471, ul.data-v-a62b3471, li.data-v-a62b3471 { + list-style: none; +} +img.data-v-a62b3471 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-a62b3471 { + color: #000; + background: #FFF; +} +.clear.data-v-a62b3471 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-a62b3471 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-a62b3471:hover { + text-decoration: none; +} +input.data-v-a62b3471, textarea.data-v-a62b3471 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-a62b3471:focus, input.data-v-a62b3471:active, textarea.data-v-a62b3471:focus, textarea.data-v-a62b3471:active { + outline: none; +} +.chat-aside.data-v-a62b3471 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.dialog-item-web.data-v-a62b3471, .dialog-item-h5.data-v-a62b3471 { + background: #fff; + border-radius: 8px; + border: 1px solid #e0e0e0; + padding: 12px 0; +} +.dialog-item-web .dialog-item-list.data-v-a62b3471, .dialog-item-h5 .dialog-item-list.data-v-a62b3471 { + display: flex; + align-items: baseline; + white-space: nowrap; + flex-wrap: wrap; + max-width: 280px; +} +.dialog-item-web .dialog-item-list .list-item.data-v-a62b3471, .dialog-item-h5 .dialog-item-list .list-item.data-v-a62b3471 { + padding: 4px 12px; + display: flex; + flex-direction: row; + align-items: center; +} +.dialog-item-web .dialog-item-list .list-item .list-item-text.data-v-a62b3471, .dialog-item-h5 .dialog-item-list .list-item .list-item-text.data-v-a62b3471 { + padding-left: 4px; + font-size: 12px; + line-height: 17px; + color: #000; +} +.dialog-item-h5.data-v-a62b3471 { + padding: 0; +} +.dialog-item-h5 .dialog-item-list.data-v-a62b3471 { + margin: 10px; + white-space: nowrap; + flex-wrap: wrap; + max-width: 280px; +} +.dialog-item-h5 .dialog-item-list .list-item.data-v-a62b3471 { + padding: 0 8px; + display: flex; + flex-direction: column; + align-items: center; + color: #4f4f4f; +} +.dialog-item-h5 .dialog-item-list .list-item .list-item-text.data-v-a62b3471 { + padding-left: 0; + color: #000; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.js new file mode 100644 index 0000000..d153ef9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.js @@ -0,0 +1,51 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "message-revoked", + props: { + isEdit: { + type: Boolean, + default: () => false + }, + messageItem: { + type: Object, + default: () => ({}) + } + }, + emits: ["messageEdit"], + setup(__props, { emit: __emit }) { + const props = __props; + const message = common_vendor.ref(); + const isEditMsg = common_vendor.ref(false); + const emits = __emit; + common_vendor.watchEffect(() => { + message.value = props.messageItem; + isEditMsg.value = props.isEdit; + }); + const messageEdit = () => { + emits("messageEdit"); + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(message).flow === "in" + }, common_vendor.unref(message).flow === "in" ? { + b: common_vendor.t(common_vendor.unref(message).nick || common_vendor.unref(message).from) + } : common_vendor.unref(message).from === common_vendor.unref(message).revoker ? { + d: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.您")) + } : { + e: common_vendor.t(common_vendor.unref(message).revoker) + }, { + c: common_vendor.unref(message).from === common_vendor.unref(message).revoker, + f: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.撤回了一条消息")), + g: common_vendor.unref(message).flow === "out" && common_vendor.unref(isEditMsg) + }, common_vendor.unref(message).flow === "out" && common_vendor.unref(isEditMsg) ? { + h: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.重新编辑")), + i: common_vendor.o$1(messageEdit) + } : {}); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-e1a956f2"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.wxml new file mode 100644 index 0000000..acb408c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.wxss new file mode 100644 index 0000000..861e0cc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.wxss @@ -0,0 +1,88 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +body.data-v-e1a956f2, div.data-v-e1a956f2, ul.data-v-e1a956f2, ol.data-v-e1a956f2, dt.data-v-e1a956f2, dd.data-v-e1a956f2, li.data-v-e1a956f2, dl.data-v-e1a956f2, h1.data-v-e1a956f2, h2.data-v-e1a956f2, h3.data-v-e1a956f2, h4.data-v-e1a956f2, p.data-v-e1a956f2 { + margin: 0; + padding: 0; + font-style: normal; + /* font:12px/22px"\5B8B\4F53",Arial,Helvetica,sans-serif; */ +} +ol.data-v-e1a956f2, ul.data-v-e1a956f2, li.data-v-e1a956f2 { + list-style: none; +} +img.data-v-e1a956f2 { + border: 0; + vertical-align: middle; + pointer-events: none; +} +body.data-v-e1a956f2 { + color: #000; + background: #FFF; +} +.clear.data-v-e1a956f2 { + clear: both; + height: 1px; + width: 100%; + overflow: hidden; + margin-top: -1px; +} +a.data-v-e1a956f2 { + color: #000; + text-decoration: none; + cursor: pointer; +} +a.data-v-e1a956f2:hover { + text-decoration: none; +} +input.data-v-e1a956f2, textarea.data-v-e1a956f2 { + -webkit-user-select: auto; + user-select: auto; +} +input.data-v-e1a956f2:focus, input.data-v-e1a956f2:active, textarea.data-v-e1a956f2:focus, textarea.data-v-e1a956f2:active { + outline: none; +} +.chat-aside.data-v-e1a956f2 { + position: absolute; + top: 50px; + right: 0; + box-sizing: border-box; + width: 360px !important; + border-radius: 8px 0 0 8px; + z-index: 9999; + max-height: calc(100% - 50px); +} +.revoke.data-v-e1a956f2 { + display: flex; + flex-direction: row; + justify-content: center; + color: #999; + font-size: 12px; + margin-bottom: 10px; + white-space: pre; +} +.revoke .edit.data-v-e1a956f2 { + padding: 0 5px; + color: #006eff; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.js new file mode 100644 index 0000000..16555d2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.js @@ -0,0 +1,229 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_utils_env = require("../../../../utils/env.js"); +if (!Math) { + (Icon + Avatar + FetchMore + Overlay)(); +} +const Icon = () => "../../../common/Icon.js"; +const Overlay = () => "../../../common/Overlay/index.js"; +const Avatar = () => "../../../common/Avatar/index.js"; +const FetchMore = () => "../../../common/FetchMore/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + props: { + message: { default: () => ({}) } + }, + emits: ["setReadReceiptPanelVisible"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const props = __props; + let lastUnreadCursor = ""; + let lastReadCursor = ""; + const tabNameList = ["unread", "read"]; + const isListFetchCompleted = { + unread: false, + read: false, + close: false + }; + const isPullDownFetching = common_vendor.ref(false); + const isPanelClose = common_vendor.ref(false); + const isFirstLoadFinished = common_vendor.ref(false); + const isStopFetchMore = common_vendor.ref(false); + const currentTabName = common_vendor.ref("unread"); + const tabInfo = common_vendor.ref(generateInitalTabInfo()); + common_vendor.onMounted(async () => { + await initAndRefetchReceiptInfomation(); + common_vendor.nextTick$1(() => { + isFirstLoadFinished.value = true; + }); + }); + common_vendor.watch( + () => props.message.readReceiptInfo.readCount, + () => { + initAndRefetchReceiptInfomation(); + } + ); + async function fetchGroupMessageRecriptMemberListByType(readType = "all") { + const message = common_vendor.Jt.getMessageModel(props.message.ID); + let unreadResult = {}; + let readResult = {}; + if (readType === "all" || readType === "unread") { + unreadResult = await common_vendor.Qt.getGroupMessageReadMemberList({ + message, + filter: 1, + cursor: lastUnreadCursor, + count: 100 + }); + if (unreadResult) { + lastUnreadCursor = unreadResult.data.cursor; + if (unreadResult.data.isCompleted) { + isListFetchCompleted.unread = true; + } + } + } + if (readType === "all" || readType === "read") { + readResult = await common_vendor.Qt.getGroupMessageReadMemberList({ + message, + filter: 0, + cursor: lastReadCursor, + count: 100 + }); + if (readResult) { + lastReadCursor = readResult.data.cursor; + if (readResult.data.isCompleted) { + isListFetchCompleted.read = true; + } + } + } + const { unreadCount: totalUnreadCount, readCount: totalReadCount } = message.readReceiptInfo; + return { + unreadResult: { + count: totalUnreadCount, + ...unreadResult.data + }, + readResult: { + count: totalReadCount, + ...readResult.data + } + }; + } + async function pullDownFetchMoreData() { + if (isListFetchCompleted[currentTabName.value] || isPullDownFetching.value) { + return; + } + isPullDownFetching.value = true; + if (currentTabName.value === "unread" || currentTabName.value === "read") { + const { unreadResult, readResult } = await fetchGroupMessageRecriptMemberListByType(currentTabName.value); + checkStopFetchMore(); + try { + tabInfo.value.unread.memberList = tabInfo.value.unread.memberList.concat(unreadResult.unreadUserInfoList || []); + tabInfo.value.read.memberList = tabInfo.value.read.memberList.concat(readResult.readUserInfoList || []); + } finally { + isPullDownFetching.value = false; + } + } + } + async function initAndRefetchReceiptInfomation() { + lastUnreadCursor = ""; + lastReadCursor = ""; + isStopFetchMore.value = false; + isListFetchCompleted.unread = false; + isListFetchCompleted.read = false; + const { unreadResult, readResult } = await fetchGroupMessageRecriptMemberListByType("all"); + checkStopFetchMore(); + resetTabInfo("read", readResult.count, readResult.readUserInfoList); + resetTabInfo("unread", unreadResult.count, unreadResult.unreadUserInfoList); + resetTabInfo("close"); + } + function checkStopFetchMore() { + if (isListFetchCompleted.read && isListFetchCompleted.unread) { + isStopFetchMore.value = true; + } + } + function resetTabInfo(tabName, count, memberList) { + tabInfo.value[tabName].count = count; + tabInfo.value[tabName].memberList = memberList || []; + } + function generateInitalTabInfo() { + return { + read: { + tabName: common_vendor.Wt.t("TUIChat.已读"), + count: void 0, + memberList: [] + }, + unread: { + tabName: common_vendor.Wt.t("TUIChat.未读"), + count: void 0, + memberList: [] + }, + close: { + tabName: common_vendor.Wt.t("TUIChat.关闭"), + count: void 0, + memberList: [] + } + }; + } + function toggleTabName(tabName) { + currentTabName.value = tabName; + } + function closeReadReceiptPanel() { + isPanelClose.value = true; + setTimeout(() => { + emits("setReadReceiptPanelVisible", false); + }, 200); + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.消息详情")), + b: common_vendor.o$1(closeReadReceiptPanel), + c: common_vendor.p({ + size: "12px", + hotAreaSize: "8", + file: common_vendor.unref(common_assets.closeIcon$2) + }), + d: common_vendor.f(tabNameList, (tabName, k0, i0) => { + return { + a: common_vendor.t(common_vendor.unref(tabInfo)[tabName].tabName), + b: common_vendor.t(common_vendor.unref(tabInfo)[tabName].count === void 0 ? "" : common_vendor.unref(tabInfo)[tabName].count), + c: tabName, + d: tabName === common_vendor.unref(currentTabName) ? 1 : "", + e: common_vendor.o$1(($event) => toggleTabName(tabName), tabName) + }; + }), + e: common_vendor.unref(tabInfo)[common_vendor.unref(currentTabName)].count === 0 && common_vendor.unref(isFirstLoadFinished) + }, common_vendor.unref(tabInfo)[common_vendor.unref(currentTabName)].count === 0 && common_vendor.unref(isFirstLoadFinished) ? { + f: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.空")) + } : common_vendor.unref(isFirstLoadFinished) ? common_vendor.e({ + h: common_vendor.unref(currentTabName) === "unread" + }, common_vendor.unref(currentTabName) === "unread" ? { + i: common_vendor.f(common_vendor.unref(tabInfo)[common_vendor.unref(currentTabName)].memberList, (item, k0, i0) => { + return { + a: "8316d693-2-" + i0 + ",8316d693-0", + b: common_vendor.p({ + useSkeletonAnimation: true, + url: item.avatar || "" + }), + c: common_vendor.t(item.nick || item.userID), + d: item.userID + }; + }) + } : {}, { + j: common_vendor.unref(currentTabName) === "read" + }, common_vendor.unref(currentTabName) === "read" ? { + k: common_vendor.f(common_vendor.unref(tabInfo)[common_vendor.unref(currentTabName)].memberList, (item, k0, i0) => { + return { + a: "8316d693-3-" + i0 + ",8316d693-0", + b: common_vendor.p({ + useSkeletonAnimation: true, + url: item.avatar + }), + c: common_vendor.t(item.nick || item.userID), + d: item.userID + }; + }) + } : {}) : {}, { + g: common_vendor.unref(isFirstLoadFinished), + l: common_vendor.unref(isFirstLoadFinished) + }, common_vendor.unref(isFirstLoadFinished) ? { + m: common_vendor.o$1(pullDownFetchMoreData), + n: common_vendor.p({ + isFetching: common_vendor.unref(isPullDownFetching), + isTerminateObserve: common_vendor.unref(isStopFetchMore) + }) + } : {}, { + o: common_vendor.unref(TUIKit_utils_env.isMobile) ? 1 : "", + p: common_vendor.unref(TUIKit_utils_env.isUniFrameWork) ? 1 : "", + q: common_vendor.unref(TUIKit_utils_env.isMobile) && common_vendor.unref(isPanelClose) ? 1 : "", + r: common_vendor.o$1(closeReadReceiptPanel), + s: common_vendor.p({ + maskColor: "transparent" + }) + }); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-8316d693"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.json new file mode 100644 index 0000000..67cf8a0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon", + "overlay": "../../../common/Overlay/index", + "avatar": "../../../common/Avatar/index", + "fetch-more": "../../../common/FetchMore/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.wxml new file mode 100644 index 0000000..c8c3090 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.wxml @@ -0,0 +1 @@ +{{a}}{{tabName.a}}{{tabName.b}} - {{f}} - {{item.c}}{{item.c}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.wxss new file mode 100644 index 0000000..6678298 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/read-receipt-panel/index.wxss @@ -0,0 +1,141 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.data-v-8316d693:not(not) { + display: flex; + flex-direction: column; + box-sizing: border-box; + min-width: 0; +} +.read-receipt-panel.data-v-8316d693, .read-receipt-panel-mobile.data-v-8316d693 { + background-color: #fff; + box-shadow: 0 7px 20px rgba(0, 0, 0, 0.1); + width: 368px; + height: 510px; + padding: 30px 20px; + display: flex; + flex-direction: column; + border-radius: 8px; + overflow: hidden; +} +.read-receipt-panel .header.data-v-8316d693, .read-receipt-panel-mobile .header.data-v-8316d693 { + flex-direction: row; + justify-content: center; + align-items: center; + position: relative; +} +.read-receipt-panel .header .header-text.data-v-8316d693, .read-receipt-panel-mobile .header .header-text.data-v-8316d693 { + font-weight: bold; + font-size: 16px; + line-height: 30px; + color: #333; +} +.read-receipt-panel .header .header-close-icon.data-v-8316d693, .read-receipt-panel-mobile .header .header-close-icon.data-v-8316d693 { + position: absolute; + right: 0; + margin-right: 10px; +} +.read-receipt-panel .read-status-counter-container.data-v-8316d693, .read-receipt-panel-mobile .read-status-counter-container.data-v-8316d693 { + flex-direction: row; + justify-content: space-between; + align-items: flex-start; + min-height: 59px; + margin: 20px 40px 17.5px; +} +.read-receipt-panel .read-status-counter-container .read-status-counter.data-v-8316d693, .read-receipt-panel-mobile .read-status-counter-container .read-status-counter.data-v-8316d693 { + justify-content: flex-start; + align-items: center; + cursor: pointer; + -webkit-tap-highlight-color: transparent; +} +.read-receipt-panel .read-status-counter-container .read-status-counter .status-text.data-v-8316d693, .read-receipt-panel-mobile .read-status-counter-container .read-status-counter .status-text.data-v-8316d693 { + font-size: 14px; + line-height: 20px; +} +.read-receipt-panel .read-status-counter-container .read-status-counter .status-count.data-v-8316d693, .read-receipt-panel-mobile .read-status-counter-container .read-status-counter .status-count.data-v-8316d693 { + margin-top: 2px; + font-size: 30px; + font-weight: bolder; + line-height: 37px; +} +.read-receipt-panel .read-status-counter-container .read-status-counter.active.data-v-8316d693, .read-receipt-panel-mobile .read-status-counter-container .read-status-counter.active.data-v-8316d693 { + color: #679ce1; +} +.read-receipt-panel .read-status-member-list.data-v-8316d693, .read-receipt-panel-mobile .read-status-member-list.data-v-8316d693 { + flex: 1 1 auto; + overflow: hidden auto; + padding: 20px 0 0; + border-top: 0.5px solid #e8e8e9; + font-size: 14px; +} +.read-receipt-panel .read-status-member-list .empty-list-tip.data-v-8316d693, .read-receipt-panel-mobile .read-status-member-list .empty-list-tip.data-v-8316d693 { + align-self: center; + color: #b3b3b3; +} +.read-receipt-panel .read-status-member-list .read-status-member-container.data-v-8316d693, .read-receipt-panel-mobile .read-status-member-list .read-status-member-container.data-v-8316d693 { + flex-direction: row; + align-items: center; +} +.read-receipt-panel .read-status-member-list .read-status-member-container .read-status-avatar.data-v-8316d693, .read-receipt-panel-mobile .read-status-member-list .read-status-member-container .read-status-avatar.data-v-8316d693 { + flex: 0 0 auto; +} +.read-receipt-panel .read-status-member-list .read-status-member-container .username.data-v-8316d693, .read-receipt-panel-mobile .read-status-member-list .read-status-member-container .username.data-v-8316d693 { + margin-left: 8px; + line-height: 20px; + flex: 0 1 auto; + display: block; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; +} +.read-receipt-panel .read-status-member-list .read-status-member-container + .read-status-member-container.data-v-8316d693, .read-receipt-panel-mobile .read-status-member-list .read-status-member-container + .read-status-member-container.data-v-8316d693 { + margin-top: 20px; +} +.read-receipt-panel .read-status-member-list .fetch-more-container.data-v-8316d693, .read-receipt-panel-mobile .read-status-member-list .fetch-more-container.data-v-8316d693 { + justify-content: center; + align-items: center; + margin-top: auto; +} +.read-receipt-panel-mobile.data-v-8316d693 { + box-shadow: none; + width: 100%; + height: 100%; + border-radius: 0; + animation: slide-in-from-right-8316d693 0.3s ease-out; + transition: transform 0.2s ease-out; +} +@keyframes slide-in-from-right-8316d693 { +from { + transform: translateX(100%); +} +} +.read-receipt-panel-uni.data-v-8316d693 { + width: 100vw; + height: 100vh; +} +.read-receipt-panel-close-mobile.data-v-8316d693 { + transform: translateX(100%); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.js new file mode 100644 index 0000000..ec20faf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.js @@ -0,0 +1,131 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +require("../../../../adapter-vue.js"); +const common_assets = require("../../../../../common/assets.js"); +const TUIKit_utils_typeCheck = require("../../../../utils/type-check.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + emits: ["scrollToLatestMessage"], + setup(__props, { expose: __expose, emit: __emit }) { + const emits = __emit; + const messageList = common_vendor.ref([]); + const currentConversationID = common_vendor.ref(""); + const currentLastMessageTime = common_vendor.ref(0); + const newMessageCount = common_vendor.ref(0); + const isScrollOverOneScreen = common_vendor.ref(false); + const isExistLastMessage = common_vendor.ref(false); + const isScrollButtonVisible = common_vendor.ref(false); + const scrollButtonContent = common_vendor.computed( + () => newMessageCount.value ? `${newMessageCount.value}${common_vendor.Wt.t("TUIChat.条新消息")}` : common_vendor.Wt.t("TUIChat.回到最新位置") + ); + common_vendor.watch( + () => [isScrollOverOneScreen.value, isExistLastMessage.value], + () => { + isScrollButtonVisible.value = isScrollOverOneScreen.value || isExistLastMessage.value; + if (!isScrollButtonVisible.value) { + resetNewMessageCount(); + } + }, + { immediate: true } + ); + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CHAT, { + messageList: onMessageListUpdated, + newMessageList: onNewMessageListUpdated + }); + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CHAT, { + messageList: onMessageListUpdated, + newMessageList: onNewMessageListUpdated + }); + common_vendor.Jt.unwatch(common_vendor.o.CONV, { + currentConversation: onCurrentConversationUpdated + }); + }); + function isTypingMessage(message) { + var _a, _b; + return ((_b = TUIKit_utils_typeCheck.JSONToObject((_a = message.payload) == null ? void 0 : _a.data)) == null ? void 0 : _b.businessID) === "user_typing_status"; + } + function onMessageListUpdated(newMessageList) { + var _a, _b; + messageList.value = newMessageList || []; + const lastMessage = (_b = messageList.value) == null ? void 0 : _b[((_a = messageList.value) == null ? void 0 : _a.length) - 1]; + isExistLastMessage.value = !!(lastMessage && (lastMessage == null ? void 0 : lastMessage.time) < (currentLastMessageTime == null ? void 0 : currentLastMessageTime.value)); + } + function onNewMessageListUpdated(newMessageList) { + if (Array.isArray(newMessageList) && isScrollButtonVisible.value) { + newMessageList.forEach((message) => { + if (message && message.conversationID === currentConversationID.value && !message.isDeleted && !message.isRevoked && !isTypingMessage(message)) { + newMessageCount.value += 1; + } + }); + } + } + function onCurrentConversationUpdated(conversation) { + var _a; + if ((conversation == null ? void 0 : conversation.conversationID) !== currentConversationID.value) { + resetNewMessageCount(); + } + currentConversationID.value = (conversation == null ? void 0 : conversation.conversationID) || ""; + currentLastMessageTime.value = ((_a = conversation == null ? void 0 : conversation.lastMessage) == null ? void 0 : _a.lastTime) || 0; + } + async function judgeScrollOverOneScreen(e) { + var _a, _b, _c, _d, _e; + if (e.target) { + try { + const { height } = await common_vendor.T(`#${(_a = e.target) == null ? void 0 : _a.id}`, "messageList") || {}; + const scrollHeight = ((_b = e.target) == null ? void 0 : _b.scrollHeight) || ((_c = e.detail) == null ? void 0 : _c.scrollHeight); + const scrollTop = ((_d = e.target) == null ? void 0 : _d.scrollTop) || ((_e = e.detail) == null ? void 0 : _e.scrollTop) || 0; + if (scrollHeight - scrollTop > 2 * height) { + isScrollOverOneScreen.value = true; + return; + } + isScrollOverOneScreen.value = false; + } catch (error) { + isScrollOverOneScreen.value = false; + } + } + } + function resetMessageSource() { + if (common_vendor.Jt.getData(common_vendor.o.CHAT, "messageSource") !== void 0) { + common_vendor.Jt.update(common_vendor.o.CHAT, "messageSource", void 0); + } + } + function resetNewMessageCount() { + newMessageCount.value = 0; + } + function scrollToMessageListBottom() { + resetMessageSource(); + resetNewMessageCount(); + emits("scrollToLatestMessage"); + } + __expose({ + judgeScrollOverOneScreen, + isScrollButtonVisible + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(isScrollButtonVisible) + }, common_vendor.unref(isScrollButtonVisible) ? { + b: common_vendor.p({ + width: "10px", + height: "10px", + file: common_vendor.unref(common_assets.doubleArrowIcon) + }), + c: common_vendor.t(common_vendor.unref(scrollButtonContent)), + d: common_vendor.o$1(scrollToMessageListBottom) + } : {}); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-59f2ce7f"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.json new file mode 100644 index 0000000..e4996d2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.wxml new file mode 100644 index 0000000..a743af6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.wxml @@ -0,0 +1 @@ +{{c}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.wxss new file mode 100644 index 0000000..83822dd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/message-list/scroll-button/index.wxss @@ -0,0 +1,48 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.scroll-button.data-v-59f2ce7f { + position: absolute; + bottom: 10px; + right: 10px; + width: 92px; + height: 28px; + background: #fff; + border: 1px solid #e0e0e0; + box-shadow: 0 4px 12px -5px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + border-radius: 3px; + cursor: pointer; + -webkit-tap-highlight-color: transparent; +} +.scroll-button-text.data-v-59f2ce7f { + font-family: PingFangSC-Regular, system-ui; + font-size: 10px; + color: #147aff; + margin-left: 3px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.js new file mode 100644 index 0000000..df5436b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.js @@ -0,0 +1,55 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +require("../../../adapter-vue.js"); +const common_assets = require("../../../../common/assets.js"); +const TUIKit_utils_env = require("../../../utils/env.js"); +if (!Math) { + Icon(); +} +const Icon = () => "../../common/Icon.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + emits: ["oneByOneForwardMessage", "mergeForwardMessage", "toggleMultipleSelectMode"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const iconSize = common_vendor.ref(TUIKit_utils_env.isMobile ? "25px" : "30px"); + function oneByOneForwardMessage() { + emits("oneByOneForwardMessage"); + } + function mergeForwardMessage() { + emits("mergeForwardMessage"); + } + function cancelMultipleSelect() { + emits("toggleMultipleSelectMode"); + } + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + file: common_vendor.unref(common_assets.ForwardEachIcon), + size: common_vendor.unref(iconSize) + }), + b: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.逐条转发")), + c: common_vendor.unref(TUIKit_utils_env.isMobile) ? 1 : "", + d: common_vendor.o$1(oneByOneForwardMessage), + e: common_vendor.p({ + file: common_vendor.unref(common_assets.ForwardMergeIcon), + size: common_vendor.unref(iconSize) + }), + f: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.合并转发")), + g: common_vendor.unref(TUIKit_utils_env.isMobile) ? 1 : "", + h: common_vendor.o$1(mergeForwardMessage), + i: common_vendor.p({ + file: common_vendor.unref(common_assets.AddIcon), + size: common_vendor.unref(iconSize) + }), + j: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIChat.取消")), + k: common_vendor.unref(TUIKit_utils_env.isMobile) ? 1 : "", + l: common_vendor.o$1(cancelMultipleSelect), + m: common_vendor.unref(TUIKit_utils_env.isMobile) ? 1 : "" + }; + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-65102b30"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.json new file mode 100644 index 0000000..017f9cf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../common/Icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.wxml new file mode 100644 index 0000000..29cef98 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.wxss new file mode 100644 index 0000000..688fc5a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/mulitple-select-panel/index.wxss @@ -0,0 +1,59 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.data-v-65102b30:not(not) { + display: flex; + flex-direction: column; + box-sizing: border-box; + min-width: 0; +} +.mulitple-select-panel.data-v-65102b30 { + height: 196px; + border-top: 1px solid #ebebeb; + flex-direction: row; + justify-content: space-around; + align-items: center; + background-color: #EBF0F6; +} +.mulitple-select-panel-mobile.data-v-65102b30 { + height: 64px; + padding-bottom: 15px; + flex-direction: row; + align-items: flex-end; +} +.forward-button.data-v-65102b30 { + justify-content: center; + align-items: center; +} +.forward-button-text.data-v-65102b30 { + margin-top: 8px; + font-size: 12px; +} +.forward-button-text-mobile.data-v-65102b30 { + margin-top: 2px; +} +.forward-button .cancel-button-icon.data-v-65102b30 { + transform: rotate(45deg); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/const.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/const.js new file mode 100644 index 0000000..31c6369 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/const.js @@ -0,0 +1,21 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const DEFAULT_DESC = { + [common_vendor.qt.TYPES.MSG_TEXT]: "[文本]", + [common_vendor.qt.TYPES.MSG_FACE]: "[动画表情]", + [common_vendor.qt.TYPES.MSG_IMAGE]: "[图片]", + [common_vendor.qt.TYPES.MSG_FILE]: "[文件]", + [common_vendor.qt.TYPES.MSG_AUDIO]: "[语音]", + [common_vendor.qt.TYPES.MSG_VIDEO]: "[视频]", + [common_vendor.qt.TYPES.MSG_LOCATION]: "[地理位置]", + [common_vendor.qt.TYPES.MSG_MERGER]: "[聊天记录]", + [common_vendor.qt.TYPES.MSG_CUSTOM]: "[自定义消息]" +}; +var PUSH_SCENE = /* @__PURE__ */ ((PUSH_SCENE2) => { + PUSH_SCENE2["CHAT"] = "chat"; + PUSH_SCENE2["CALL"] = "call"; + return PUSH_SCENE2; +})(PUSH_SCENE || {}); +exports.DEFAULT_DESC = DEFAULT_DESC; +exports.PUSH_SCENE = PUSH_SCENE; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/const.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/index.js new file mode 100644 index 0000000..605aa70 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/index.js @@ -0,0 +1,6 @@ +"use strict"; +const TUIKit_components_TUIChat_offlinePushInfoManager_offlinePushInfoManager = require("./offlinePushInfoManager.js"); +require("./const.js"); +const OfflinePushInfoManager = TUIKit_components_TUIChat_offlinePushInfoManager_offlinePushInfoManager.OfflinePushInfoManager.getInstance(); +exports.OfflinePushInfoManager = OfflinePushInfoManager; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/info.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/info.js new file mode 100644 index 0000000..a6ccdc2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/info.js @@ -0,0 +1,9 @@ +"use strict"; +const chatOfflinePushInfo = { + androidInfo: {}, + apnsInfo: {} +}; +const callOfflinePushInfo = {}; +exports.callOfflinePushInfo = callOfflinePushInfo; +exports.chatOfflinePushInfo = chatOfflinePushInfo; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/info.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/interface.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/interface.js new file mode 100644 index 0000000..96d85fd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/interface.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/interface.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/offlinePushInfoManager.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/offlinePushInfoManager.js new file mode 100644 index 0000000..683a483 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/offlinePushInfoManager.js @@ -0,0 +1,67 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const TUIKit_components_TUIChat_emojiConfig_index = require("../emoji-config/index.js"); +const TUIKit_components_TUIChat_offlinePushInfoManager_info = require("./info.js"); +const TUIKit_components_TUIChat_offlinePushInfoManager_const = require("./const.js"); +const _OfflinePushInfoManager = class _OfflinePushInfoManager { + constructor() { + this.name = "OfflinePushInfoManager"; + this.offlinePushInfo = {}; + this.offlinePushInfo = { + [TUIKit_components_TUIChat_offlinePushInfoManager_const.PUSH_SCENE.CHAT]: TUIKit_components_TUIChat_offlinePushInfoManager_info.chatOfflinePushInfo, + [TUIKit_components_TUIChat_offlinePushInfoManager_const.PUSH_SCENE.CALL]: TUIKit_components_TUIChat_offlinePushInfoManager_info.callOfflinePushInfo + }; + } + static getInstance() { + if (!_OfflinePushInfoManager.instance) { + _OfflinePushInfoManager.instance = new _OfflinePushInfoManager(); + } + return _OfflinePushInfoManager.instance; + } + getOfflinePushInfo(scene) { + if (!Object.values(TUIKit_components_TUIChat_offlinePushInfoManager_const.PUSH_SCENE).includes(scene)) { + common_vendor.index.__f__("error", "at TUIKit/components/TUIChat/offlinePushInfoManager/offlinePushInfoManager.ts:32", `${this.name} getOfflinePushInfo scene: ${scene} is invalid`); + return null; + } + return this.offlinePushInfo[scene]; + } + genTitle(conversation, userInfo) { + let title = conversation == null ? void 0 : conversation.getShowName(); + if (conversation.type === common_vendor.qt.TYPES.CONV_C2C) { + title = (userInfo == null ? void 0 : userInfo.nick) || (userInfo == null ? void 0 : userInfo.userID); + } + return title; + } + genDesc(messageType, payload) { + let desc = ""; + if (messageType === common_vendor.qt.TYPES.MSG_TEXT) { + desc = TUIKit_components_TUIChat_emojiConfig_index.transformTextWithKeysToEmojiNames(payload.text); + } + if (messageType === common_vendor.qt.TYPES.MSG_CUSTOM) { + desc = payload.description; + } + return desc || common_vendor.Wt.t(`TUIChat.${TUIKit_components_TUIChat_offlinePushInfoManager_const.DEFAULT_DESC[messageType]}`); + } + create(options) { + var _a; + const { conversation, messageType = "", payload = {} } = options || {}; + const userInfo = common_vendor.Jt.getData(common_vendor.o.USER, "userProfile"); + const entity = { + sender: conversation.type === common_vendor.qt.TYPES.CONV_GROUP ? (_a = conversation.groupProfile) == null ? void 0 : _a.groupID : userInfo == null ? void 0 : userInfo.userID, + nickName: userInfo == null ? void 0 : userInfo.nick, + chatType: conversation.type === common_vendor.qt.TYPES.CONV_GROUP ? 2 : 1, + version: 1, + action: 1 + }; + return { + title: this.genTitle(conversation, userInfo), + description: this.genDesc(messageType, payload), + extension: JSON.stringify({ entity }), + ...this.offlinePushInfo[TUIKit_components_TUIChat_offlinePushInfoManager_const.PUSH_SCENE.CHAT] + }; + } +}; +_OfflinePushInfoManager.instance = null; +let OfflinePushInfoManager = _OfflinePushInfoManager; +exports.OfflinePushInfoManager = OfflinePushInfoManager; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/offlinePushInfoManager/offlinePushInfoManager.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/server.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/server.js new file mode 100644 index 0000000..9700480 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/server.js @@ -0,0 +1,72 @@ +"use strict"; +const common_vendor = require("../../../common/vendor.js"); +const TUIKit_components_TUIChat_config = require("./config.js"); +class TUIChatServer { + constructor() { + this.currentConversationID = ""; + this.currentMessageList = []; + common_vendor.R.registerService(common_vendor.E.TUIChat.SERVICE.NAME, this); + common_vendor.R.registerEvent(common_vendor.E.TUITheme.EVENT.THEME_CHANGED, common_vendor.E.TUITheme.EVENT_SUB_KEY.CHANGE_SUCCESS, this); + common_vendor.R.registerEvent(common_vendor.E.TUIChat.EVENT.CHAT_TYPE_CHANGED, common_vendor.E.TUIChat.EVENT_SUB_KEY.CHANGE_SUCCESS, this); + common_vendor.Jt.watch(common_vendor.o.CONV, { + currentConversationID: (id) => { + this.currentConversationID = id; + } + }); + } + onCall(method, params, callback) { + let message; + switch (method) { + case common_vendor.E.TUIChat.SERVICE.METHOD.UPDATE_MESSAGE_LIST: + message = params.message; + if ((message == null ? void 0 : message.conversationID) === this.currentConversationID) { + common_vendor.Qt.updateMessageList([message], "push"); + } + break; + case common_vendor.E.TUIChat.SERVICE.METHOD.SEND_CUSTOM_MESSAGE: + common_vendor.Qt.sendCustomMessage(params).then((res) => { + callback && callback(res); + }); + break; + case common_vendor.E.TUIChat.SERVICE.METHOD.SEND_TEXT_MESSAGE: + common_vendor.Qt.sendTextMessage(params).then((res) => { + callback && callback(res); + }); + break; + case common_vendor.E.TUIChat.SERVICE.METHOD.SET_CHAT_TYPE: + TUIKit_components_TUIChat_config.ChatConfig.setChatType(params == null ? void 0 : params.chatType); + break; + case common_vendor.E.TUIChat.SERVICE.METHOD.CLOSE_MESSAGE_POP_MENU: + common_vendor.Jt.update(common_vendor.o.CUSTOM, "isShowMessagePopMenu", false); + break; + case common_vendor.E.TUIChat.SERVICE.METHOD.UPDATE_MESSAGE_INFO: + common_vendor.Qt.updateMessageInfo(params == null ? void 0 : params.userInfo); + break; + } + } + /** + * Listen for the success notification. + */ + onNotifyEvent(eventName, subKey, params) { + if (eventName === common_vendor.E.TUITheme.EVENT.THEME_CHANGED) { + switch (subKey) { + case common_vendor.E.TUITheme.EVENT_SUB_KEY.CHANGE_SUCCESS: + if (params == null ? void 0 : params.theme) { + TUIKit_components_TUIChat_config.ChatConfig.setTheme(params.theme.toLowerCase()); + } + break; + } + } + if (eventName === common_vendor.E.TUIChat.EVENT.CHAT_TYPE_CHANGED) { + switch (subKey) { + case common_vendor.E.TUIChat.EVENT_SUB_KEY.CHANGE_SUCCESS: + if (params == null ? void 0 : params.chatType) { + TUIKit_components_TUIChat_config.ChatConfig.setChatType(params == null ? void 0 : params.chatType); + } + break; + } + } + } +} +exports.TUIChatServer = TUIChatServer; +//# sourceMappingURL=../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/server.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/chatStorage.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/chatStorage.js new file mode 100644 index 0000000..f048103 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/chatStorage.js @@ -0,0 +1,62 @@ +"use strict"; +const TUIKit_utils_env = require("../../../utils/env.js"); +const common_vendor = require("../../../../common/vendor.js"); +const _ChatStorage = class _ChatStorage { + constructor() { + this.chatStorage = null; + } + static getInstance() { + if (!_ChatStorage.instance) { + _ChatStorage.instance = new _ChatStorage(); + } + return _ChatStorage.instance; + } + getChatStorage(key) { + if (!this.chatStorage) { + this.chatStorage = this.getChatStorageFromLocalStorage(); + } + if (key) { + return this.chatStorage[key]; + } else { + throw new Error("No key provided"); + } + } + setChatStorage(key, value) { + if (!this.chatStorage) { + this.chatStorage = this.getChatStorageFromLocalStorage(); + } + this.chatStorage[key] = value; + try { + if (TUIKit_utils_env.isUniFrameWork) { + common_vendor.i.setStorageSync(_ChatStorage.CHAT_STORAGE_KEY, JSON.stringify(this.chatStorage)); + } else { + localStorage.setItem(_ChatStorage.CHAT_STORAGE_KEY, JSON.stringify(this.chatStorage)); + } + } catch (error) { + throw new Error("Fail to set chat storage"); + } + } + getChatStorageFromLocalStorage() { + let chatStorageString = ""; + if (TUIKit_utils_env.isUniFrameWork) { + chatStorageString = common_vendor.i.getStorageSync(_ChatStorage.CHAT_STORAGE_KEY) || ""; + } else { + chatStorageString = localStorage.getItem(_ChatStorage.CHAT_STORAGE_KEY) || ""; + } + if (!chatStorageString) { + return {}; + } + try { + this.chatStorage = JSON.parse(chatStorageString); + } catch (error) { + this.chatStorage = {}; + } + return this.chatStorage; + } +}; +_ChatStorage.instance = null; +_ChatStorage.CHAT_STORAGE_KEY = "TUI_CHAT_STORAGE"; +let ChatStorage = _ChatStorage; +const chatStorage = ChatStorage.getInstance(); +exports.chatStorage = chatStorage; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/utils/chatStorage.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/conversationDraft.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/conversationDraft.js new file mode 100644 index 0000000..f20cb8a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/conversationDraft.js @@ -0,0 +1,75 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const TUIKit_components_TUIChat_emojiConfig_index = require("../emoji-config/index.js"); +const TUIKit_utils_typeCheck = require("../../../utils/type-check.js"); +const _ConversationDraftManager = class _ConversationDraftManager { + constructor() { + this.quoteMessageMap = /* @__PURE__ */ new Map(); + } + static getInstance() { + if (!_ConversationDraftManager.instance) { + _ConversationDraftManager.instance = new _ConversationDraftManager(); + } + return _ConversationDraftManager.instance; + } + setStore(conversationID, draftContent, abstract, quoteMessage) { + var _a, _b; + if (conversationID && (this.isEditorNotEmpty(draftContent) || ((_a = quoteMessage == null ? void 0 : quoteMessage.message) == null ? void 0 : _a.ID))) { + let additionalDraftInfo = {}; + if ((_b = quoteMessage == null ? void 0 : quoteMessage.message) == null ? void 0 : _b.ID) { + this.quoteMessageMap.set(quoteMessage.message.ID, quoteMessage.message); + additionalDraftInfo = { messageID: quoteMessage.message.ID, type: quoteMessage.type }; + } + const draftParams = { + conversationID, + draftInfo: { + html: draftContent, + abstract, + ...additionalDraftInfo + } + }; + common_vendor.Xt.setConversationDraft(draftParams); + common_vendor.Jt.update(common_vendor.o.CHAT, "quoteMessage", { message: void 0, type: "quote" }); + } + } + getStore(conversationID, setEditorContentCallback) { + const conversation = common_vendor.Jt.getConversationModel(conversationID); + if (!conversation) { + return; + } + if (conversation.conversationID && conversation.draftText) { + const draftObject = TUIKit_utils_typeCheck.JSONToObject(conversation.draftText); + common_vendor.Jt.update(common_vendor.o.CHAT, "quoteMessage", { message: this.quoteMessageMap.get(draftObject.messageID) || void 0, type: draftObject.type }); + setEditorContentCallback(draftObject.html); + } + common_vendor.Xt.setConversationDraft({ conversationID: conversation.conversationID }); + } + generateAbstract(editorContent) { + let abstract = ""; + editorContent == null ? void 0 : editorContent.forEach((item) => { + switch (item.type) { + case "text": + abstract += TUIKit_components_TUIChat_emojiConfig_index.transformTextWithKeysToEmojiNames(item.payload.text || ""); + break; + case "image": + abstract += common_vendor.Wt.t("TUIChat.图片"); + break; + case "video": + abstract += common_vendor.Wt.t("TUIChat.视频"); + break; + case "file": + abstract += common_vendor.Wt.t("TUIChat.文件"); + break; + } + }); + return abstract; + } + isEditorNotEmpty(editorHTML) { + return editorHTML && !editorHTML.includes("is-empty") && editorHTML !== "

"; + } +}; +_ConversationDraftManager.instance = null; +let ConversationDraftManager = _ConversationDraftManager; +const DraftManager = ConversationDraftManager.getInstance(); +exports.DraftManager = DraftManager; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/utils/conversationDraft.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/convertVoiceToText.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/convertVoiceToText.js new file mode 100644 index 0000000..6f9d9c6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/convertVoiceToText.js @@ -0,0 +1,50 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _Convertor = class _Convertor { + constructor() { + this.isUseCache = true; + this.convertCache = /* @__PURE__ */ new Map(); + } + static getInstance() { + if (!_Convertor.instance) { + _Convertor.instance = new _Convertor(); + } + return _Convertor.instance; + } + async get(message) { + if (this.isUseCache) { + const cache = this.convertCache.get(message.ID); + if (cache !== void 0) { + return cache; + } + } + const currentMessage = common_vendor.Jt.getMessageModel(message.ID); + if (!currentMessage) { + return Promise.reject("message not found"); + } + const response = await common_vendor.Qt.convertVoiceToText({ + message: currentMessage + }); + let { data: { result } = {} } = response; + if (result) { + this.convertCache.set(currentMessage.ID, result); + } else { + result = ""; + } + return result; + } + clear() { + this.convertCache.clear(); + } + disableCache() { + this.isUseCache = false; + } + enableCache() { + this.isUseCache = true; + } +}; +_Convertor.instance = void 0; +let Convertor = _Convertor; +const convertor = Convertor.getInstance(); +exports.convertor = convertor; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/utils/convertVoiceToText.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/sendMessage.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/sendMessage.js new file mode 100644 index 0000000..52108b7 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/sendMessage.js @@ -0,0 +1,107 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const TUIKit_components_common_Toast_index = require("../../common/Toast/index.js"); +const TUIKit_components_TUIChat_utils_utils = require("./utils.js"); +const TUIKit_utils_enableSampleTaskStatus = require("../../../utils/enableSampleTaskStatus.js"); +const TUIKit_components_TUIChat_offlinePushInfoManager_index = require("../offlinePushInfoManager/index.js"); +const TUIKit_components_common_Toast_type = require("../../common/Toast/type.js"); +const sendMessageErrorCodeMap = /* @__PURE__ */ new Map([ + [3123, "文本包含本地审核拦截词"], + [4004, "图片消息失败,无效的图片格式"], + [4005, "文件消息失败,禁止发送违规封禁的文件"], + [7004, "文件不存在,请检查文件路径是否正确"], + [7005, "文件大小超出了限制,如果上传文件,最大限制是100MB"], + [8001, "消息长度超出限制,消息长度不要超过12K"], + [80001, "消息或者资料中文本存在敏感内容,发送失败"], + [80004, "消息中图片存在敏感内容,发送失败"], + [10017, "您已被禁止聊天"] +]); +const sendMessages = async (messageList, currentConversation) => { + if (common_vendor.Jt.getData(common_vendor.o.CHAT, "messageSource")) { + common_vendor.Jt.update(common_vendor.o.CHAT, "messageSource", void 0); + } + messageList == null ? void 0 : messageList.forEach(async (content) => { + var _a, _b, _c, _d, _e, _f, _g; + try { + const options = { + to: ((_a = currentConversation == null ? void 0 : currentConversation.groupProfile) == null ? void 0 : _a.groupID) || ((_b = currentConversation == null ? void 0 : currentConversation.userProfile) == null ? void 0 : _b.userID), + conversationType: currentConversation == null ? void 0 : currentConversation.type, + payload: {}, + needReadReceipt: TUIKit_components_TUIChat_utils_utils.isEnabledMessageReadReceiptGlobal() + }; + let textMessageContent; + const sendMessageOptions = { + offlinePushInfo: {} + }; + const offlinePushInfoCreateParams = { + conversation: currentConversation, + payload: content.payload, + messageType: "" + }; + switch (content == null ? void 0 : content.type) { + case "text": + textMessageContent = JSON.parse(JSON.stringify((_c = content.payload) == null ? void 0 : _c.text)); + if (!textMessageContent) { + break; + } + options.payload = { + text: textMessageContent + }; + offlinePushInfoCreateParams.messageType = common_vendor.qt.TYPES.MSG_TEXT; + sendMessageOptions.offlinePushInfo = TUIKit_components_TUIChat_offlinePushInfoManager_index.OfflinePushInfoManager.create(offlinePushInfoCreateParams); + if ((_d = content.payload) == null ? void 0 : _d.atUserList) { + options.payload.atUserList = content.payload.atUserList; + await common_vendor.Qt.sendTextAtMessage(options, sendMessageOptions); + } else { + await common_vendor.Qt.sendTextMessage(options, sendMessageOptions); + } + break; + case "image": + options.payload = { + file: (_e = content.payload) == null ? void 0 : _e.file + }; + offlinePushInfoCreateParams.messageType = common_vendor.qt.TYPES.MSG_IMAGE; + sendMessageOptions.offlinePushInfo = TUIKit_components_TUIChat_offlinePushInfoManager_index.OfflinePushInfoManager.create(offlinePushInfoCreateParams); + await common_vendor.Qt.sendImageMessage(options, sendMessageOptions); + break; + case "video": + options.payload = { + file: (_f = content.payload) == null ? void 0 : _f.file + }; + offlinePushInfoCreateParams.messageType = common_vendor.qt.TYPES.MSG_VIDEO; + sendMessageOptions.offlinePushInfo = TUIKit_components_TUIChat_offlinePushInfoManager_index.OfflinePushInfoManager.create(offlinePushInfoCreateParams); + await common_vendor.Qt.sendVideoMessage(options, sendMessageOptions); + break; + case "file": + options.payload = { + file: (_g = content.payload) == null ? void 0 : _g.file + }; + offlinePushInfoCreateParams.messageType = common_vendor.qt.TYPES.MSG_FILE; + sendMessageOptions.offlinePushInfo = TUIKit_components_TUIChat_offlinePushInfoManager_index.OfflinePushInfoManager.create(offlinePushInfoCreateParams); + await common_vendor.Qt.sendFileMessage(options, sendMessageOptions); + break; + default: + break; + } + TUIKit_utils_enableSampleTaskStatus.enableSampleTaskStatus("sendMessage"); + } catch (error) { + TUIKit_components_common_Toast_index.Toast({ + message: sendMessageErrorCodeMap.get(error == null ? void 0 : error.code) ? common_vendor.Wt.t(`TUIChat.${sendMessageErrorCodeMap.get(error.code)}`) : error == null ? void 0 : error.message, + type: TUIKit_components_common_Toast_type.TOAST_TYPE.ERROR + }); + if (common_vendor.Jt.getData(common_vendor.o.CHAT, "quoteMessage")) { + common_vendor.Jt.update(common_vendor.o.CHAT, "quoteMessage", {}); + } + } + }); +}; +const sendTyping = (inputContentEmpty, inputBlur) => { + if (!inputContentEmpty && !inputBlur) { + common_vendor.Qt.enterTypingState(); + } else { + common_vendor.Qt.leaveTypingState(); + } +}; +exports.sendMessages = sendMessages; +exports.sendTyping = sendTyping; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/utils/sendMessage.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/translation.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/translation.js new file mode 100644 index 0000000..031153e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/translation.js @@ -0,0 +1,154 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _Translator = class _Translator { + constructor() { + this.isUseCache = true; + this.translationCache = /* @__PURE__ */ new Map(); + } + static getInstance() { + if (!_Translator.instance) { + _Translator.instance = new _Translator(); + } + return _Translator.instance; + } + async get(message) { + if (this.isUseCache) { + const cache = this.translationCache.get(message.ID); + if (cache !== void 0) { + return cache; + } + } + const currentMessage = common_vendor.Jt.getMessageModel(message.ID); + if (!currentMessage) { + return []; + } + const { text } = currentMessage.getMessageContent() || {}; + const textList = []; + const splittingList = await this.getNickList(currentMessage); + for (let i = 0; i < text.length; ++i) { + const item = text[i]; + if (item.name === "img") { + textList.push({ type: "face", value: item.src }); + continue; + } + const { transSplitingList, atNickList } = this.getSplitResult(item.text, splittingList); + for (let j = 0; j < transSplitingList.length; ++j) { + textList.push({ type: "text", value: transSplitingList[j] }); + if (j < atNickList.length) { + textList.push({ type: "mention", value: atNickList[j] }); + } + } + } + const needTranslateTextIndex = []; + const needTranslateText = textList.filter((item, index) => { + if (item.type === "text" && item.value.trim() !== "") { + needTranslateTextIndex.push(index); + return true; + } + return false; + }).map((item) => item.value); + if (needTranslateText.length === 0) { + this.translationCache.set(currentMessage.ID, textList); + return textList; + } + const translationResult = await this.getTranslationStandard(needTranslateText); + translationResult.forEach((item, index) => { + textList[needTranslateTextIndex[index]].value = item; + }); + this.translationCache.set(currentMessage.ID, textList); + return textList; + } + /** + * Clears the translation cache. + */ + clear() { + this.translationCache.clear(); + } + disableCache() { + this.isUseCache = false; + } + enableCache() { + this.isUseCache = true; + } + getTranslationStandard(originTextList) { + return new Promise((resolve, reject) => { + common_vendor.Qt.translateText({ + sourceTextList: originTextList, + sourceLanguage: "auto" + }).then((response) => { + const { + data: { translatedTextList } + } = response; + resolve(translatedTextList); + }).catch((error) => { + reject(error); + }); + }); + } + /** + * the nick list is used to split the text by @ + {nick or userID} + * @param message + * @returns e.g. ['@james', '@john'] + */ + async getNickList(message) { + const splittingList = []; + const { atUserList = [] } = message; + const atAllID = common_vendor.qt.TYPES.MSG_AT_ALL; + if (atUserList.includes(atAllID)) { + splittingList.push(`@${common_vendor.Wt.t("TUIChat.所有人")}`); + } + if (atUserList.length > 0) { + const { data: userProfileList } = await common_vendor.Zt.getUserProfile({ userIDList: atUserList }); + userProfileList.forEach((user) => { + const atNick = `@${user.nick || user.userID}`; + splittingList.push(atNick); + }); + } + return [...new Set(splittingList)]; + } + /** + * Splits the given text into substrings based on the provided splitString array. + * + * @param {string} text - The text to be split. + * @param {string[]} splitString - The array of strings to split the text by. + * @return {{ transSplitingList: string[]; atNickList: string[] }} - An object containing two arrays: + * - transSplitingList: An array of substrings extracted from the text. + * - atNickList: An array of split strings that were found in the text. + */ + getSplitResult(text, splitString) { + let searchStartPos = 0; + const transSplitingList = []; + const atNickList = []; + while (searchStartPos < text.length) { + const nextAtCharPos = text.indexOf("@", searchStartPos); + if (nextAtCharPos === -1) { + transSplitingList.push(text.substring(searchStartPos)); + break; + } + let found = false; + for (let i = 0; i < splitString.length; ++i) { + const pos = text.indexOf(splitString[i], nextAtCharPos); + if (pos !== -1 && pos === nextAtCharPos) { + transSplitingList.push(text.substring(searchStartPos, pos)); + atNickList.push(splitString[i]); + searchStartPos = pos + splitString[i].length; + found = true; + break; + } + } + if (!found) { + transSplitingList.push(text.substring(searchStartPos)); + break; + } + } + return { + transSplitingList, + atNickList + }; + } +}; +_Translator.instance = void 0; +let Translator = _Translator; +const translator = Translator.getInstance(); +exports.translator = translator; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/utils/translation.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/utils.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/utils.js new file mode 100644 index 0000000..4fe390d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/utils.js @@ -0,0 +1,92 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +function deepCopy(data, hash = /* @__PURE__ */ new WeakMap()) { + if (typeof data !== "object" || data === null || data === void 0) { + return data; + } + if (hash.has(data)) { + return hash.get(data); + } + const newData = Object.create(Object.getPrototypeOf(data)); + const dataKeys = Object.keys(data); + dataKeys.forEach((value) => { + const currentDataValue = data[value]; + if (typeof currentDataValue !== "object" || currentDataValue === null) { + newData[value] = currentDataValue; + } else if (Array.isArray(currentDataValue)) { + newData[value] = [...currentDataValue]; + } else if (currentDataValue instanceof Set) { + newData[value] = /* @__PURE__ */ new Set([...currentDataValue]); + } else if (currentDataValue instanceof Map) { + newData[value] = new Map([...currentDataValue]); + } else { + hash.set(data, data); + newData[value] = deepCopy(currentDataValue, hash); + } + }); + return newData; +} +const isCreateGroupCustomMessage = (message) => { + var _a; + return message.type === common_vendor.qt.TYPES.MSG_CUSTOM && ((_a = message == null ? void 0 : message.getMessageContent()) == null ? void 0 : _a.businessID) === "group_create"; +}; +function isEnabledMessageReadReceiptGlobal() { + return common_vendor.Jt.getData(common_vendor.o.USER, "displayMessageReadReceipt") && common_vendor.Jt.getData(common_vendor.o.APP, "enabledMessageReadReceipt"); +} +function shallowCopyMessage(message) { + return Object.assign({}, message); +} +function calculateTimestamp(timestamp) { + const todayZero = (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0); + const thisYear = new Date( + (/* @__PURE__ */ new Date()).getFullYear(), + 0, + 1, + 0, + 0, + 0, + 0 + ).getTime(); + const target = new Date(timestamp); + const oneDay = 24 * 60 * 60 * 1e3; + const oneWeek = 7 * oneDay; + const diff = todayZero - target.getTime(); + function formatNum(num) { + return num < 10 ? "0" + num : num.toString(); + } + if (diff <= 0) { + return `${formatNum(target.getHours())}:${formatNum(target.getMinutes())}`; + } else if (diff <= oneDay) { + return `${common_vendor.Wt.t("time.昨天")} ${formatNum( + target.getHours() + )}:${formatNum(target.getMinutes())}`; + } else if (diff <= oneWeek - oneDay) { + const weekdays = [ + "星期日", + "星期一", + "星期二", + "星期三", + "星期四", + "星期五", + "星期六" + ]; + const weekday = weekdays[target.getDay()]; + return `${common_vendor.Wt.t("time." + weekday)} ${formatNum( + target.getHours() + )}:${formatNum(target.getMinutes())}`; + } else if (target.getTime() >= thisYear) { + return `${target.getMonth() + 1}/${target.getDate()} ${formatNum( + target.getHours() + )}:${formatNum(target.getMinutes())}`; + } else { + return `${target.getFullYear()}/${target.getMonth() + 1}/${target.getDate()} ${formatNum(target.getHours())}:${formatNum( + target.getMinutes() + )}`; + } +} +exports.calculateTimestamp = calculateTimestamp; +exports.deepCopy = deepCopy; +exports.isCreateGroupCustomMessage = isCreateGroupCustomMessage; +exports.isEnabledMessageReadReceiptGlobal = isEnabledMessageReadReceiptGlobal; +exports.shallowCopyMessage = shallowCopyMessage; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/utils/utils.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/wordsList.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/wordsList.js new file mode 100644 index 0000000..ff9850e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/utils/wordsList.js @@ -0,0 +1,32 @@ +"use strict"; +const wordsList = [ + { + value: "在吗?在吗?在吗?重要的话说三遍。" + }, + { + value: "好久没聊天了,快来和我说说话~" + }, + { + value: "好的,就这么说定了。" + }, + { + value: "感恩的心,感谢有你。" + }, + { + value: "糟糕!是心动的感觉!" + }, + { + value: "心疼地抱抱自己,我太难了!" + }, + { + value: "没关系,别在意,事情过去就过去了。" + }, + { + value: "早上好,今天也是让人期待的一天呢!" + }, + { + value: "熬夜有什么用,又没人陪你聊天,早点休息吧。" + } +]; +exports.wordsList = wordsList; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/utils/wordsList.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.js new file mode 100644 index 0000000..f8d7cca --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.js @@ -0,0 +1,30 @@ +"use strict"; +const common_vendor = require("../../../common/vendor.js"); +require("../../adapter-vue.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "video-play", + setup(__props) { + const videoData = common_vendor.ref(); + const isShow = common_vendor.ref(false); + const videoContext = common_vendor.ref(); + common_vendor.onLoad((option) => { + const decodedUrl = decodeURIComponent(option == null ? void 0 : option.videoUrl); + videoData.value = decodedUrl; + isShow.value = true; + }); + common_vendor.onReady(() => { + isShow.value = true; + videoContext.value = common_vendor.i.createVideoContext("videoEle"); + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.unref(isShow) + }, common_vendor.unref(isShow) ? { + b: common_vendor.unref(videoData) + } : {}); + }; + } +}); +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-e40b9248"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/video-play.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.json new file mode 100644 index 0000000..5588294 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "腾讯云 IM", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.wxml new file mode 100644 index 0000000..05fadbc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.wxss new file mode 100644 index 0000000..86c6d73 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/video-play.wxss @@ -0,0 +1,48 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.dialog-video.data-v-e40b9248 { + position: fixed; + z-index: 999; + width: 100vw; + height: 100vh; + background: rgba(0, 0, 0, 0.6); + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; +} +.dialog-video .video-box.data-v-e40b9248 { + position: absolute; + width: 100vw; + height: 100vh; + top: 0; + left: 0; + right: 0; + bottom: 0; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.js new file mode 100644 index 0000000..c608557 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.js @@ -0,0 +1,19 @@ +"use strict"; +const common_vendor = require("../../../common/vendor.js"); +require("../../adapter-vue.js"); +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "web-view", + setup(__props) { + const url = common_vendor.ref(""); + common_vendor.onLoad((option) => { + url.value = option && option.url; + }); + return (_ctx, _cache) => { + return { + a: common_vendor.unref(url) + }; + }; + } +}); +wx.createPage(_sfc_main); +//# sourceMappingURL=../../../../.sourcemap/mp-weixin/TUIKit/components/TUIChat/web-view.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.json new file mode 100644 index 0000000..5588294 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "腾讯云 IM", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.wxml new file mode 100644 index 0000000..03f193c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.wxss b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIChat/web-view.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/contact-info-config.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/contact-info-config.js new file mode 100644 index 0000000..fc80c73 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/contact-info-config.js @@ -0,0 +1,175 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const TUIKit_constant = require("../../../constant.js"); +const TUIKit_components_TUIContact_utils_index = require("../utils/index.js"); +const contactMoreInfoConfig = { + // set friends' remark + setRemark: { + key: "setRemark", + label: "备注名", + data: "", + labelPosition: TUIKit_constant.CONTACT_INFO_LABEL_POSITION.LEFT, + editable: true, + editType: TUIKit_constant.CONTACT_INFO_MORE_EDIT_TYPE.INPUT, + editing: false, + editSubmitHandler: (props) => { + var _a, _b, _c, _d, _e, _f; + if (props == null ? void 0 : props.isBothFriend) { + const newRemarkValue = (_a = props == null ? void 0 : props.item) == null ? void 0 : _a.data; + TUIKit_components_TUIContact_utils_index.updateFriendRemark((_b = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _b.userID, newRemarkValue); + ((_c = props == null ? void 0 : props.item) == null ? void 0 : _c.editing) && (props.item.editing = false); + ((_d = props == null ? void 0 : props.item) == null ? void 0 : _d.data) && (props.item.data = (_e = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _e.remark); + } else { + ((_f = props == null ? void 0 : props.item) == null ? void 0 : _f.editing) && (props.item.editing = false); + } + } + }, + // blocked list + blackList: { + key: "blackList", + label: "加入黑名单", + data: false, + labelPosition: TUIKit_constant.CONTACT_INFO_LABEL_POSITION.LEFT, + editable: true, + editType: TUIKit_constant.CONTACT_INFO_MORE_EDIT_TYPE.SWITCH, + editing: true, + editSubmitHandler: (props) => { + var _a, _b; + if (props == null ? void 0 : props.isInBlackList) { + TUIKit_components_TUIContact_utils_index.removeFromBlacklist((_a = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _a.userID); + } else { + TUIKit_components_TUIContact_utils_index.addToBlacklist((_b = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _b.userID); + common_vendor.Jt.update(common_vendor.o.CUSTOM, "currentContactListKey", "blackList"); + } + } + }, + // Fill in verification words (applicant) + setWords: { + key: "setWords", + label: "请填写验证信息", + data: "", + labelPosition: TUIKit_constant.CONTACT_INFO_LABEL_POSITION.TOP, + editable: true, + editType: TUIKit_constant.CONTACT_INFO_MORE_EDIT_TYPE.TEXTAREA, + editing: true + }, + // Display verification words (application recipient) + displayWords: { + key: "displayWords", + label: "验证信息", + data: "", + labelPosition: TUIKit_constant.CONTACT_INFO_LABEL_POSITION.LEFT, + editable: false + } +}; +const contactButtonConfig = { + // --------------------- + // group command config + // --------------------- + dismissGroup: { + key: "dismissGroup", + label: "解散群聊", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.CANCEL, + onClick: (props) => { + var _a; + TUIKit_components_TUIContact_utils_index.dismissGroup((_a = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _a.groupID); + } + }, + quitGroup: { + key: "quitGroup", + label: "退出群聊", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.CANCEL, + onClick: (props) => { + var _a; + TUIKit_components_TUIContact_utils_index.quitGroup((_a = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _a.groupID); + } + }, + joinGroup: { + key: "joinGroup", + label: "发送申请", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.SUBMIT, + onClick: (props) => { + var _a, _b; + TUIKit_components_TUIContact_utils_index.joinGroup( + (_a = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _a.groupID, + (_b = props == null ? void 0 : props.contactInfoMoreList[0]) == null ? void 0 : _b.data + ); + } + }, + joinAVChatGroup: { + key: "joinAVChatGroup", + label: "加入直播群", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.SUBMIT, + onClick: (props) => { + var _a; + TUIKit_components_TUIContact_utils_index.joinGroup((_a = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _a.groupID); + } + }, + enterGroupConversation: { + key: "enterGroupConversation", + label: "进入群聊", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.SUBMIT, + onClick: (props) => { + TUIKit_components_TUIContact_utils_index.enterConversation(props == null ? void 0 : props.contactInfoData); + } + }, + // --------------------- + // friend command config + // --------------------- + addFriend: { + key: "addFriend", + label: "发送申请", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.SUBMIT, + onClick: (props) => { + var _a, _b, _c; + TUIKit_components_TUIContact_utils_index.addFriend({ + to: (_a = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _a.userID, + source: "AddSource_Type_Web", + remark: (_b = props == null ? void 0 : props.contactInfoMoreList[1]) == null ? void 0 : _b.data, + wording: (_c = props == null ? void 0 : props.contactInfoMoreList[0]) == null ? void 0 : _c.data + }); + } + }, + deleteFriend: { + key: "deleteFriend", + label: "删除好友", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.CANCEL, + onClick: (props) => { + var _a; + TUIKit_components_TUIContact_utils_index.deleteFriend((_a = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _a.userID); + } + }, + enterC2CConversation: { + key: "enterC2CConversation", + label: "发送消息", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.SUBMIT, + onClick: (props) => { + TUIKit_components_TUIContact_utils_index.enterConversation(props == null ? void 0 : props.contactInfoData); + } + }, + // --------------------- + // friend application command config + // --------------------- + acceptFriendApplication: { + key: "acceptFriendApplication", + label: "同意", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.SUBMIT, + onClick: (props) => { + var _a; + TUIKit_components_TUIContact_utils_index.acceptFriendApplication((_a = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _a.userID); + common_vendor.Jt.update(common_vendor.o.CUSTOM, "currentContactListKey", "friendList"); + } + }, + refuseFriendApplication: { + key: "refuseFriendApplication", + label: "拒绝", + type: TUIKit_constant.CONTACT_INFO_BUTTON_TYPE.CANCEL, + onClick: (props) => { + var _a; + TUIKit_components_TUIContact_utils_index.refuseFriendApplication((_a = props == null ? void 0 : props.contactInfoData) == null ? void 0 : _a.userID); + } + } +}; +exports.contactButtonConfig = contactButtonConfig; +exports.contactMoreInfoConfig = contactMoreInfoConfig; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIContact/contact-info/contact-info-config.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/index.js b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/index.js new file mode 100644 index 0000000..4b35ca6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/index.js @@ -0,0 +1,287 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +require("../../../adapter-vue.js"); +const TUIKit_utils_env = require("../../../utils/env.js"); +const TUIKit_components_TUIContact_utils_index = require("../utils/index.js"); +const TUIKit_components_TUIContact_contactInfo_contactInfoConfig = require("./contact-info-config.js"); +const common_assets = require("../../../../common/assets.js"); +const TUIKit_constant = require("../../../constant.js"); +const TUIKit_components_TUIChat_utils_utils = require("../../TUIChat/utils/utils.js"); +if (!Math) { + (Icon + SwitchBar)(); +} +const Icon = () => "../../common/Icon.js"; +const SwitchBar = () => "../../common/SwitchBar/index.js"; +const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ + __name: "index", + emits: ["switchConversation"], + setup(__props, { emit: __emit }) { + const emits = __emit; + const contactInfoData = common_vendor.ref({}); + const contactInfoBasicList = common_vendor.ref([]); + const contactInfoMoreList = common_vendor.ref([]); + const contactInfoButtonList = common_vendor.ref([]); + const setEditing = (item) => { + item.editing = true; + }; + const isGroup = common_vendor.computed( + () => { + var _a; + return ((_a = contactInfoData.value) == null ? void 0 : _a.groupID) ? true : false; + } + ); + const isApplication = common_vendor.computed(() => { + return TUIKit_components_TUIContact_utils_index.isApplicationType(contactInfoData == null ? void 0 : contactInfoData.value); + }); + const isBothFriend = common_vendor.ref(false); + const isGroupMember = common_vendor.computed(() => { + var _a, _b; + return ((_b = (_a = contactInfoData.value) == null ? void 0 : _a.selfInfo) == null ? void 0 : _b.userID) ? true : false; + }); + const isInBlackList = common_vendor.computed(() => { + var _a; + return !isGroup.value && ((_a = blackList.value) == null ? void 0 : _a.findIndex( + (item) => { + var _a2; + return (item == null ? void 0 : item.userID) === ((_a2 = contactInfoData.value) == null ? void 0 : _a2.userID); + } + )) >= 0; + }); + const blackList = common_vendor.ref([]); + common_vendor.onMounted(() => { + common_vendor.Jt.watch(common_vendor.o.CUSTOM, { + currentContactInfo: onCurrentContactInfoUpdated + }); + common_vendor.Jt.watch(common_vendor.o.USER, { + userBlacklist: onUserBlacklistUpdated + }); + }); + common_vendor.onUnmounted(() => { + common_vendor.Jt.unwatch(common_vendor.o.CUSTOM, { + currentContactInfo: onCurrentContactInfoUpdated + }); + common_vendor.Jt.unwatch(common_vendor.o.USER, { + userBlacklist: onUserBlacklistUpdated + }); + }); + const resetContactInfoUIData = () => { + contactInfoData.value = {}; + contactInfoBasicList.value = []; + contactInfoMoreList.value = []; + contactInfoButtonList.value = []; + }; + const resetContactSearchingUIData = () => { + var _a, _b; + common_vendor.Jt.update(common_vendor.o.CUSTOM, "currentContactInfo", {}); + common_vendor.Jt.update(common_vendor.o.CUSTOM, "currentContactSearchingStatus", false); + ((_a = common_vendor.i) == null ? void 0 : _a.closeSearching) && ((_b = common_vendor.i) == null ? void 0 : _b.closeSearching()); + }; + const onContactInfoEmitSubmit = (item) => { + item.editSubmitHandler && item.editSubmitHandler({ + item, + contactInfoData: contactInfoData.value, + isBothFriend: isBothFriend.value, + isInBlackList: isInBlackList.value + }); + }; + const onContactInfoButtonClicked = (item) => { + item.onClick && item.onClick({ + contactInfoData: contactInfoData.value, + contactInfoMoreList: contactInfoMoreList.value + }); + if (item.key === "enterGroupConversation" || item.key === "enterC2CConversation") { + emits("switchConversation", contactInfoData.value); + resetContactSearchingUIData(); + } + }; + const generateMoreInfo = async () => { + var _a, _b, _c, _d, _e; + if (!isApplication.value) { + if (!isGroup.value && !isBothFriend.value && !isInBlackList.value || isGroup.value && !isGroupMember.value && ((_a = contactInfoData.value) == null ? void 0 : _a.type) !== ((_c = (_b = common_vendor.qt) == null ? void 0 : _b.TYPES) == null ? void 0 : _c.GRP_AVCHATROOM)) { + TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig.setWords.data = ""; + contactInfoMoreList.value.push(TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig.setWords); + } + if (!isGroup.value && !isInBlackList.value) { + TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig.setRemark.data = ((_d = contactInfoData.value) == null ? void 0 : _d.remark) || ""; + TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig.setRemark.editing = false; + contactInfoMoreList.value.push(TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig.setRemark); + } + if (!isGroup.value && (isBothFriend.value || isInBlackList.value)) { + TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig.blackList.data = isInBlackList.value || false; + contactInfoMoreList.value.push(TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig.blackList); + } + } else { + TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig.displayWords.data = ((_e = contactInfoData.value) == null ? void 0 : _e.wording) || ""; + contactInfoMoreList.value.push(TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig.displayWords); + } + }; + const generateButton = () => { + var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q; + if (isInBlackList.value) { + return; + } + if (isApplication.value) { + if (((_a = contactInfoData.value) == null ? void 0 : _a.type) === ((_c = (_b = common_vendor.qt) == null ? void 0 : _b.TYPES) == null ? void 0 : _c.SNS_APPLICATION_SENT_TO_ME)) { + (_d = contactInfoButtonList == null ? void 0 : contactInfoButtonList.value) == null ? void 0 : _d.push( + TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.refuseFriendApplication + ); + (_e = contactInfoButtonList == null ? void 0 : contactInfoButtonList.value) == null ? void 0 : _e.push( + TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.acceptFriendApplication + ); + } + } else { + if (isGroup.value && isGroupMember.value) { + switch ((_g = (_f = contactInfoData.value) == null ? void 0 : _f.selfInfo) == null ? void 0 : _g.role) { + case "Owner": + (_h = contactInfoButtonList == null ? void 0 : contactInfoButtonList.value) == null ? void 0 : _h.push(TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.dismissGroup); + break; + default: + (_i = contactInfoButtonList == null ? void 0 : contactInfoButtonList.value) == null ? void 0 : _i.push(TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.quitGroup); + break; + } + (_j = contactInfoButtonList == null ? void 0 : contactInfoButtonList.value) == null ? void 0 : _j.push( + TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.enterGroupConversation + ); + } else if (!isGroup.value && isBothFriend.value) { + (_k = contactInfoButtonList == null ? void 0 : contactInfoButtonList.value) == null ? void 0 : _k.push(TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.deleteFriend); + (_l = contactInfoButtonList == null ? void 0 : contactInfoButtonList.value) == null ? void 0 : _l.push( + TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.enterC2CConversation + ); + } else { + if (isGroup.value) { + (_p = contactInfoButtonList == null ? void 0 : contactInfoButtonList.value) == null ? void 0 : _p.push( + ((_m = contactInfoData.value) == null ? void 0 : _m.type) === ((_o = (_n = common_vendor.qt) == null ? void 0 : _n.TYPES) == null ? void 0 : _o.GRP_AVCHATROOM) ? TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.joinAVChatGroup : TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.joinGroup + ); + } else { + (_q = contactInfoButtonList == null ? void 0 : contactInfoButtonList.value) == null ? void 0 : _q.push(TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig.addFriend); + } + } + } + }; + function onUserBlacklistUpdated(userBlacklist) { + blackList.value = userBlacklist; + } + async function onCurrentContactInfoUpdated(contactInfo) { + var _a; + if (contactInfoData.value && contactInfo && JSON.stringify(contactInfoData.value) === JSON.stringify(contactInfo)) { + return; + } + resetContactInfoUIData(); + contactInfoData.value = TUIKit_components_TUIChat_utils_utils.deepCopy(contactInfo) || {}; + if (!contactInfoData.value || ((_a = Object.keys(contactInfoData.value)) == null ? void 0 : _a.length) === 0) { + return; + } + contactInfoBasicList.value = TUIKit_components_TUIContact_utils_index.generateContactInfoBasic( + contactInfoData.value + ); + isBothFriend.value = await TUIKit_components_TUIContact_utils_index.isFriend(contactInfoData.value); + generateMoreInfo(); + generateButton(); + if (contactInfo.infoKeyList) { + contactInfoMoreList.value = contactInfo.infoKeyList.map((key) => { + return TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactMoreInfoConfig[key]; + }); + } + if (contactInfo.btnKeyList) { + contactInfoButtonList.value = contactInfo.btnKeyList.map((key) => { + return TUIKit_components_TUIContact_contactInfo_contactInfoConfig.contactButtonConfig[key]; + }); + } + } + return (_ctx, _cache) => { + return common_vendor.e({ + a: typeof common_vendor.unref(contactInfoData) === "object" && Object.keys(common_vendor.unref(contactInfoData)).length + }, typeof common_vendor.unref(contactInfoData) === "object" && Object.keys(common_vendor.unref(contactInfoData)).length ? common_vendor.e({ + b: !common_vendor.unref(TUIKit_utils_env.isPC) + }, !common_vendor.unref(TUIKit_utils_env.isPC) ? { + c: common_vendor.p({ + file: common_vendor.unref(common_assets.backIcon) + }), + d: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-header-icon"), + e: common_vendor.o$1(resetContactSearchingUIData), + f: common_vendor.t(common_vendor.unref(common_vendor.Wt).t("TUIContact.添加好友/群聊")), + g: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-header-title"), + h: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-header") + } : {}, { + i: common_vendor.t(common_vendor.unref(TUIKit_components_TUIContact_utils_index.generateContactInfoName)(common_vendor.unref(contactInfoData))), + j: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-basic-text-name"), + k: common_vendor.f(common_vendor.unref(contactInfoBasicList), (item, k0, i0) => { + return { + a: common_vendor.t(`${common_vendor.unref(common_vendor.Wt).t(`TUIContact.${item.label}`)}: + ${item.data}`), + b: item.label + }; + }), + l: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-basic-text-other"), + m: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-basic-text"), + n: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-basic-avatar"), + o: common_vendor.unref(TUIKit_components_TUIContact_utils_index.generateAvatar)(common_vendor.unref(contactInfoData)), + p: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-basic"), + q: common_vendor.unref(contactInfoMoreList)[0] + }, common_vendor.unref(contactInfoMoreList)[0] ? { + r: common_vendor.f(common_vendor.unref(contactInfoMoreList), (item, k0, i0) => { + return common_vendor.e({ + a: common_vendor.t(`${common_vendor.unref(common_vendor.Wt).t(`TUIContact.${item.label}`)}`), + b: !item.editing + }, !item.editing ? common_vendor.e({ + c: common_vendor.t(item.data), + d: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-more-item-content-text-data"), + e: item.editable + }, item.editable ? { + f: "e2a6c8d8-1-" + i0, + g: common_vendor.p({ + file: common_vendor.unref(common_assets.editIcon), + width: "14px", + height: "14px" + }), + h: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-more-item-content-text-icon"), + i: common_vendor.o$1(($event) => setEditing(item), item.key) + } : {}, { + j: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-more-item-content-text") + }) : item.editType === common_vendor.unref(TUIKit_constant.CONTACT_INFO_MORE_EDIT_TYPE).INPUT ? { + l: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-more-item-content-input"), + m: common_vendor.o$1(($event) => onContactInfoEmitSubmit(item), item.key), + n: common_vendor.o$1(($event) => onContactInfoEmitSubmit(item), item.key), + o: item.data, + p: common_vendor.o$1(($event) => item.data = $event.detail.value, item.key) + } : item.editType === common_vendor.unref(TUIKit_constant.CONTACT_INFO_MORE_EDIT_TYPE).TEXTAREA ? { + r: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-more-item-content-textarea"), + s: item.data, + t: common_vendor.o$1(($event) => item.data = $event.detail.value, item.key) + } : item.editType === common_vendor.unref(TUIKit_constant.CONTACT_INFO_MORE_EDIT_TYPE).SWITCH ? { + w: "e2a6c8d8-2-" + i0, + x: common_vendor.p({ + value: item.data + }), + y: common_vendor.o$1(($event) => onContactInfoEmitSubmit(item), item.key) + } : {}, { + k: item.editType === common_vendor.unref(TUIKit_constant.CONTACT_INFO_MORE_EDIT_TYPE).INPUT, + q: item.editType === common_vendor.unref(TUIKit_constant.CONTACT_INFO_MORE_EDIT_TYPE).TEXTAREA, + v: item.editType === common_vendor.unref(TUIKit_constant.CONTACT_INFO_MORE_EDIT_TYPE).SWITCH, + z: item.key, + A: common_vendor.n(item.labelPosition === common_vendor.unref(TUIKit_constant.CONTACT_INFO_LABEL_POSITION).TOP ? "tui-contact-info-more-item-top" : "tui-contact-info-more-item-left") + }); + }), + s: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-more-item-label"), + t: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-more-item-content"), + v: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-more-item"), + w: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-more") + } : {}, { + x: common_vendor.f(common_vendor.unref(contactInfoButtonList), (item, k0, i0) => { + return { + a: common_vendor.t(common_vendor.unref(common_vendor.Wt).t(`TUIContact.${item.label}`)), + b: item.key, + c: common_vendor.n(item.type === common_vendor.unref(TUIKit_constant.CONTACT_INFO_BUTTON_TYPE).CANCEL ? `tui-contact-info-button-item-cancel` : `tui-contact-info-button-item-submit`), + d: common_vendor.o$1(($event) => onContactInfoButtonClicked(item), item.key) + }; + }), + y: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-button-item"), + z: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5-button"), + A: common_vendor.n(!common_vendor.unref(TUIKit_utils_env.isPC) && "tui-contact-info-h5") + }) : {}); + }; + } +}); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-e2a6c8d8"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/TUIContact/contact-info/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/index.json b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/index.json new file mode 100644 index 0000000..f9e9331 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "icon": "../../common/Icon", + "switch-bar": "../../common/SwitchBar/index" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/index.wxml b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/index.wxml new file mode 100644 index 0000000..0183c39 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/TUIKit/components/TUIContact/contact-info/index.wxml @@ -0,0 +1 @@ +{{f}}{{i}}{{item.a}}{{item.a}}{{item.c}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.wxss new file mode 100644 index 0000000..b1ee19a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.wxss @@ -0,0 +1,144 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.uni-easyinput { + width: 100%; + flex: 1; + position: relative; + text-align: left; + color: #333; + font-size: 14px; +} +.uni-easyinput__content { + flex: 1; + width: 100%; + display: flex; + box-sizing: border-box; + flex-direction: row; + align-items: center; + border-color: #fff; + transition-property: border-color; + transition-duration: 0.3s; +} +.uni-easyinput__content-input { + width: auto; + position: relative; + overflow: hidden; + flex: 1; + line-height: 1; + font-size: 14px; + height: 35px; + /*ifdef H5*/ + /*endif*/ +} +.uni-easyinput__content-input ::-ms-reveal { + display: none; +} +.uni-easyinput__content-input ::-ms-clear { + display: none; +} +.uni-easyinput__content-input ::-o-clear { + display: none; +} +.uni-easyinput__placeholder-class { + color: #999; + font-size: 12px; +} +.is-textarea { + align-items: flex-start; +} +.is-textarea-icon { + margin-top: 5px; +} +.uni-easyinput__content-textarea { + position: relative; + overflow: hidden; + flex: 1; + line-height: 1.5; + font-size: 14px; + margin: 6px; + margin-left: 0; + height: 80px; + min-height: 80px; + min-height: 80px; + width: auto; +} +.input-padding { + padding-left: 10px; +} +.content-clear-icon { + padding: 0 5px; +} +.label-icon { + margin-right: 5px; + margin-top: -1px; +} +.is-input-border { + display: flex; + box-sizing: border-box; + flex-direction: row; + align-items: center; + border: 1px solid #dcdfe6; + border-radius: 4px; +} +.uni-error-message { + position: absolute; + bottom: -17px; + left: 0; + line-height: 12px; + color: #e43d33; + font-size: 12px; + text-align: left; +} +.uni-error-msg--boeder { + position: relative; + bottom: 0; + line-height: 22px; +} +.is-input-error-border { + border-color: #e43d33; +} +.is-input-error-border .uni-easyinput__placeholder-class { + color: #f29e99; +} +.uni-easyinput--border { + margin-bottom: 0; + padding: 10px 15px; + border-top: 1px #eee solid; +} +.uni-easyinput-error { + padding-bottom: 0; +} +.is-first-border { + border: none; +} +.is-disabled { + background-color: #f7f6f6; + color: #d5d5d5; +} +.is-disabled .uni-easyinput__placeholder-class { + color: #d5d5d5; + font-size: 12px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js new file mode 100644 index 0000000..3cf3402 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js @@ -0,0 +1,73 @@ +"use strict"; +const uni_modules_uniIcons_components_uniIcons_uniicons_file_vue = require("./uniicons_file_vue.js"); +const common_vendor = require("../../../../common/vendor.js"); +const getVal = (val) => { + const reg = /^[0-9]*$/g; + return typeof val === "number" || reg.test(val) ? val + "px" : val; +}; +const _sfc_main = { + name: "UniIcons", + emits: ["click"], + props: { + type: { + type: String, + default: "" + }, + color: { + type: String, + default: "#333333" + }, + size: { + type: [Number, String], + default: 16 + }, + customPrefix: { + type: String, + default: "" + }, + fontFamily: { + type: String, + default: "" + } + }, + data() { + return { + icons: uni_modules_uniIcons_components_uniIcons_uniicons_file_vue.fontData + }; + }, + computed: { + unicode() { + let code = this.icons.find((v) => v.font_class === this.type); + if (code) { + return code.unicode; + } + return ""; + }, + iconSize() { + return getVal(this.size); + }, + styleObj() { + if (this.fontFamily !== "") { + return `color: ${this.color}; font-size: ${this.iconSize}; font-family: ${this.fontFamily};`; + } + return `color: ${this.color}; font-size: ${this.iconSize};`; + } + }, + methods: { + _onClick() { + this.$emit("click"); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.s($options.styleObj), + b: common_vendor.n("uniui-" + $props.type), + c: common_vendor.n($props.customPrefix), + d: common_vendor.n($props.customPrefix ? $props.type : ""), + e: common_vendor.o$1((...args) => $options._onClick && $options._onClick(...args)) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml new file mode 100644 index 0000000..79d6edd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss new file mode 100644 index 0000000..6144312 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss @@ -0,0 +1,532 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.uniui-cart-filled:before { + content: "\e6d0"; +} +.uniui-gift-filled:before { + content: "\e6c4"; +} +.uniui-color:before { + content: "\e6cf"; +} +.uniui-wallet:before { + content: "\e6b1"; +} +.uniui-settings-filled:before { + content: "\e6ce"; +} +.uniui-auth-filled:before { + content: "\e6cc"; +} +.uniui-shop-filled:before { + content: "\e6cd"; +} +.uniui-staff-filled:before { + content: "\e6cb"; +} +.uniui-vip-filled:before { + content: "\e6c6"; +} +.uniui-plus-filled:before { + content: "\e6c7"; +} +.uniui-folder-add-filled:before { + content: "\e6c8"; +} +.uniui-color-filled:before { + content: "\e6c9"; +} +.uniui-tune-filled:before { + content: "\e6ca"; +} +.uniui-calendar-filled:before { + content: "\e6c0"; +} +.uniui-notification-filled:before { + content: "\e6c1"; +} +.uniui-wallet-filled:before { + content: "\e6c2"; +} +.uniui-medal-filled:before { + content: "\e6c3"; +} +.uniui-fire-filled:before { + content: "\e6c5"; +} +.uniui-refreshempty:before { + content: "\e6bf"; +} +.uniui-location-filled:before { + content: "\e6af"; +} +.uniui-person-filled:before { + content: "\e69d"; +} +.uniui-personadd-filled:before { + content: "\e698"; +} +.uniui-arrowthinleft:before { + content: "\e6d2"; +} +.uniui-arrowthinup:before { + content: "\e6d3"; +} +.uniui-arrowthindown:before { + content: "\e6d4"; +} +.uniui-back:before { + content: "\e6b9"; +} +.uniui-forward:before { + content: "\e6ba"; +} +.uniui-arrow-right:before { + content: "\e6bb"; +} +.uniui-arrow-left:before { + content: "\e6bc"; +} +.uniui-arrow-up:before { + content: "\e6bd"; +} +.uniui-arrow-down:before { + content: "\e6be"; +} +.uniui-arrowthinright:before { + content: "\e6d1"; +} +.uniui-down:before { + content: "\e6b8"; +} +.uniui-bottom:before { + content: "\e6b8"; +} +.uniui-arrowright:before { + content: "\e6d5"; +} +.uniui-right:before { + content: "\e6b5"; +} +.uniui-up:before { + content: "\e6b6"; +} +.uniui-top:before { + content: "\e6b6"; +} +.uniui-left:before { + content: "\e6b7"; +} +.uniui-arrowup:before { + content: "\e6d6"; +} +.uniui-eye:before { + content: "\e651"; +} +.uniui-eye-filled:before { + content: "\e66a"; +} +.uniui-eye-slash:before { + content: "\e6b3"; +} +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} +.uniui-info-filled:before { + content: "\e649"; +} +.uniui-reload:before { + content: "\e6b2"; +} +.uniui-micoff-filled:before { + content: "\e6b0"; +} +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} +.uniui-map-pin:before { + content: "\e6ad"; +} +.uniui-location:before { + content: "\e6ae"; +} +.uniui-starhalf:before { + content: "\e683"; +} +.uniui-star:before { + content: "\e688"; +} +.uniui-star-filled:before { + content: "\e68f"; +} +.uniui-calendar:before { + content: "\e6a0"; +} +.uniui-fire:before { + content: "\e6a1"; +} +.uniui-medal:before { + content: "\e6a2"; +} +.uniui-font:before { + content: "\e6a3"; +} +.uniui-gift:before { + content: "\e6a4"; +} +.uniui-link:before { + content: "\e6a5"; +} +.uniui-notification:before { + content: "\e6a6"; +} +.uniui-staff:before { + content: "\e6a7"; +} +.uniui-vip:before { + content: "\e6a8"; +} +.uniui-folder-add:before { + content: "\e6a9"; +} +.uniui-tune:before { + content: "\e6aa"; +} +.uniui-auth:before { + content: "\e6ab"; +} +.uniui-person:before { + content: "\e699"; +} +.uniui-email-filled:before { + content: "\e69a"; +} +.uniui-phone-filled:before { + content: "\e69b"; +} +.uniui-phone:before { + content: "\e69c"; +} +.uniui-email:before { + content: "\e69e"; +} +.uniui-personadd:before { + content: "\e69f"; +} +.uniui-chatboxes-filled:before { + content: "\e692"; +} +.uniui-contact:before { + content: "\e693"; +} +.uniui-chatbubble-filled:before { + content: "\e694"; +} +.uniui-contact-filled:before { + content: "\e695"; +} +.uniui-chatboxes:before { + content: "\e696"; +} +.uniui-chatbubble:before { + content: "\e697"; +} +.uniui-upload-filled:before { + content: "\e68e"; +} +.uniui-upload:before { + content: "\e690"; +} +.uniui-weixin:before { + content: "\e691"; +} +.uniui-compose:before { + content: "\e67f"; +} +.uniui-qq:before { + content: "\e680"; +} +.uniui-download-filled:before { + content: "\e681"; +} +.uniui-pyq:before { + content: "\e682"; +} +.uniui-sound:before { + content: "\e684"; +} +.uniui-trash-filled:before { + content: "\e685"; +} +.uniui-sound-filled:before { + content: "\e686"; +} +.uniui-trash:before { + content: "\e687"; +} +.uniui-videocam-filled:before { + content: "\e689"; +} +.uniui-spinner-cycle:before { + content: "\e68a"; +} +.uniui-weibo:before { + content: "\e68b"; +} +.uniui-videocam:before { + content: "\e68c"; +} +.uniui-download:before { + content: "\e68d"; +} +.uniui-help:before { + content: "\e679"; +} +.uniui-navigate-filled:before { + content: "\e67a"; +} +.uniui-plusempty:before { + content: "\e67b"; +} +.uniui-smallcircle:before { + content: "\e67c"; +} +.uniui-minus-filled:before { + content: "\e67d"; +} +.uniui-micoff:before { + content: "\e67e"; +} +.uniui-closeempty:before { + content: "\e66c"; +} +.uniui-clear:before { + content: "\e66d"; +} +.uniui-navigate:before { + content: "\e66e"; +} +.uniui-minus:before { + content: "\e66f"; +} +.uniui-image:before { + content: "\e670"; +} +.uniui-mic:before { + content: "\e671"; +} +.uniui-paperplane:before { + content: "\e672"; +} +.uniui-close:before { + content: "\e673"; +} +.uniui-help-filled:before { + content: "\e674"; +} +.uniui-paperplane-filled:before { + content: "\e675"; +} +.uniui-plus:before { + content: "\e676"; +} +.uniui-mic-filled:before { + content: "\e677"; +} +.uniui-image-filled:before { + content: "\e678"; +} +.uniui-locked-filled:before { + content: "\e668"; +} +.uniui-info:before { + content: "\e669"; +} +.uniui-locked:before { + content: "\e66b"; +} +.uniui-camera-filled:before { + content: "\e658"; +} +.uniui-chat-filled:before { + content: "\e659"; +} +.uniui-camera:before { + content: "\e65a"; +} +.uniui-circle:before { + content: "\e65b"; +} +.uniui-checkmarkempty:before { + content: "\e65c"; +} +.uniui-chat:before { + content: "\e65d"; +} +.uniui-circle-filled:before { + content: "\e65e"; +} +.uniui-flag:before { + content: "\e65f"; +} +.uniui-flag-filled:before { + content: "\e660"; +} +.uniui-gear-filled:before { + content: "\e661"; +} +.uniui-home:before { + content: "\e662"; +} +.uniui-home-filled:before { + content: "\e663"; +} +.uniui-gear:before { + content: "\e664"; +} +.uniui-smallcircle-filled:before { + content: "\e665"; +} +.uniui-map-filled:before { + content: "\e666"; +} +.uniui-map:before { + content: "\e667"; +} +.uniui-refresh-filled:before { + content: "\e656"; +} +.uniui-refresh:before { + content: "\e657"; +} +.uniui-cloud-upload:before { + content: "\e645"; +} +.uniui-cloud-download-filled:before { + content: "\e646"; +} +.uniui-cloud-download:before { + content: "\e647"; +} +.uniui-cloud-upload-filled:before { + content: "\e648"; +} +.uniui-redo:before { + content: "\e64a"; +} +.uniui-images-filled:before { + content: "\e64b"; +} +.uniui-undo-filled:before { + content: "\e64c"; +} +.uniui-more:before { + content: "\e64d"; +} +.uniui-more-filled:before { + content: "\e64e"; +} +.uniui-undo:before { + content: "\e64f"; +} +.uniui-images:before { + content: "\e650"; +} +.uniui-paperclip:before { + content: "\e652"; +} +.uniui-settings:before { + content: "\e653"; +} +.uniui-search:before { + content: "\e654"; +} +.uniui-redo-filled:before { + content: "\e655"; +} +.uniui-list:before { + content: "\e644"; +} +.uniui-mail-open-filled:before { + content: "\e63a"; +} +.uniui-hand-down-filled:before { + content: "\e63c"; +} +.uniui-hand-down:before { + content: "\e63d"; +} +.uniui-hand-up-filled:before { + content: "\e63e"; +} +.uniui-hand-up:before { + content: "\e63f"; +} +.uniui-heart-filled:before { + content: "\e641"; +} +.uniui-mail-open:before { + content: "\e643"; +} +.uniui-heart:before { + content: "\e639"; +} +.uniui-loop:before { + content: "\e633"; +} +.uniui-pulldown:before { + content: "\e632"; +} +.uniui-scan:before { + content: "\e62a"; +} +.uniui-bars:before { + content: "\e627"; +} +.uniui-checkbox:before { + content: "\e62b"; +} +.uniui-checkbox-filled:before { + content: "\e62c"; +} +.uniui-shop:before { + content: "\e62f"; +} +.uniui-headphones:before { + content: "\e630"; +} +.uniui-cart:before { + content: "\e631"; +} +@font-face { + font-family: uniicons; + src: url("data:font/ttf;base64,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5nkAAOZ5AAAAVgAA5noAAOZ6AAAAVwAA5nsAAOZ7AAAAWAAA5nwAAOZ8AAAAWQAA5n0AAOZ9AAAAWgAA5n4AAOZ+AAAAWwAA5n8AAOZ/AAAASQAA5oAAAOaAAAAASgAA5oEAAOaBAAAASwAA5oIAAOaCAAAATAAA5oMAAOaDAAAAKwAA5oQAAOaEAAAATQAA5oUAAOaFAAAATgAA5oYAAOaGAAAATwAA5ocAAOaHAAAAUAAA5ogAAOaIAAAALAAA5okAAOaJAAAAUQAA5ooAAOaKAAAAUgAA5osAAOaLAAAAUwAA5owAAOaMAAAAVAAA5o0AAOaNAAAAVQAA5o4AAOaOAAAARgAA5o8AAOaPAAAALQAA5pAAAOaQAAAARwAA5pEAAOaRAAAASAAA5pIAAOaSAAAAQAAA5pMAAOaTAAAAQQAA5pQAAOaUAAAAQgAA5pUAAOaVAAAAQwAA5pYAAOaWAAAARAAA5pcAAOaXAAAARQAA5pgAAOaYAAAAFgAA5pkAAOaZAAAAOgAA5poAAOaaAAAAOwAA5psAAOabAAAAPAAA5pwAAOacAAAAPQAA5p0AAOadAAAAFQAA5p4AAOaeAAAAPgAA5p8AAOafAAAAPwAA5qAAAOagAAAALgAA5qEAAOahAAAALwAA5qIAAOaiAAAAMAAA5qMAAOajAAAAMQAA5qQAAOakAAAAMgAA5qUAAOalAAAAMwAA5qYAAOamAAAANAAA5qcAAOanAAAANQAA5qgAAOaoAAAANgAA5qkAAOapAAAANwAA5qoAAOaqAAAAOAAA5qsAAOarAAAAOQAA5qwAAOasAAAAKAAA5q0AAOatAAAAKQAA5q4AAOauAAAAKgAA5q8AAOavAAAAFAAA5rAAAOawAAAAJwAA5rEAAOaxAAAABAAA5rIAAOayAAAAJgAA5rMAAOazAAAAIwAA5rQAAOa0AAAAJAAA5rUAAOa1AAAAHgAA5rYAAOa2AAAAHwAA5rcAAOa3AAAAIAAA5rgAAOa4AAAAHQAA5rkAAOa5AAAAGgAA5roAAOa6AAAAGwAA5rsAAOa7AAAAHAAA5rwAAOa8AAAAFwAA5r0AAOa9AAAAGAAA5r4AAOa+AAAAGQAA5r8AAOa/AAAAEwAA5sAAAObAAAAADgAA5sEAAObBAAAADwAA5sIAAObCAAAAEAAA5sMAAObDAAAAEQAA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AZ8BoAALY2FydC1maWxsZWQLZ2lmdC1maWxsZWQFY29sb3IGd2FsbGV0D3NldHRpbmdzLWZpbGxlZAthdXRoLWZpbGxlZAtzaG9wLWZpbGxlZAxzdGFmZi1maWxsZWQKdmlwLWZpbGxlZAtwbHVzLWZpbGxlZBFmb2xkZXItYWRkLWZpbGxlZAxjb2xvci1maWxsZWQLdHVuZS1maWxsZWQPY2FsZW5kYXItZmlsbGVkE25vdGlmaWNhdGlvbi1maWxsZWQNd2FsbGV0LWZpbGxlZAxtZWRhbC1maWxsZWQLZmlyZS1maWxsZWQMcmVmcmVzaGVtcHR5D2xvY2F0aW9uLWZpbGxlZA1wZXJzb24tZmlsbGVkEHBlcnNvbmFkZC1maWxsZWQNYXJyb3d0aGlubGVmdAthcnJvd3RoaW51cA1hcnJvd3RoaW5kb3duBGJhY2sHZm9yd2FyZAthcnJvdy1yaWdodAlhcnJvd2Rvd24KYXJyb3dyaWdodAN0b3AJYXJyb3dsZWZ0A2V5ZQpleWUtZmlsbGVkCWV5ZS1zbGFzaBBleWUtc2xhc2gtZmlsbGVkC2luZm8tZmlsbGVkBnJlbG9hZA1taWNvZmYtZmlsbGVkD21hcC1waW4tZWxsaXBzZQdtYXAtcGluCGxvY2F0aW9uCHN0YXJoYWxmBHN0YXILc3Rhci1maWxsZWQIY2FsZW5kYXIEZmlyZQVtZWRhbARmb250BGdpZnQEbGluawxub3RpZmljYXRpb24Fc3RhZmYDdmlwCmZvbGRlci1hZGQEdHVuZQRhdXRoBnBlcnNvbgxlbWFpbC1maWxsZWQMcGhvbmUtZmlsbGVkBXBob25lBWVtYWlsCXBlcnNvbmFkZBBjaGF0Ym94ZXMtZmlsbGVkB2NvbnRhY3QRY2hhdGJ1YmJsZS1maWxsZWQOY29udGFjdC1maWxsZWQJY2hhdGJveGVzCmNoYXRidWJibGUNdXBsb2FkLWZpbGxlZAZ1cGxvYWQGd2VpeGluB2NvbXBvc2UCcXEPZG93bmxvYWQtZmlsbGVkA3B5cQVzb3VuZAx0cmFzaC1maWxsZWQMc291bmQtZmlsbGVkBXRyYXNoD3ZpZGVvY2FtLWZpbGxlZA1zcGlubmVyLWN5Y2xlBXdlaWJvCHZpZGVvY2FtCGRvd25sb2FkBGhlbHAPbmF2aWdhdGUtZmlsbGVkCXBsdXNlbXB0eQtzbWFsbGNpcmNsZQxtaW51cy1maWxsZWQGbWljb2ZmCmNsb3NlZW1wdHkFY2xlYXIIbmF2aWdhdGUFbWludXMFaW1hZ2UDbWljCnBhcGVycGxhbmUFY2xvc2ULaGVscC1maWxsZWQRcGFwZXJwbGFuZS1maWxsZWQEcGx1cwptaWMtZmlsbGVkDGltYWdlLWZpbGxlZA1sb2NrZWQtZmlsbGVkBGluZm8GbG9ja2VkDWNhbWVyYS1maWxsZWQLY2hhdC1maWxsZWQGY2FtZXJhBmNpcmNsZQ5jaGVja21hcmtlbXB0eQRjaGF0DWNpcmNsZS1maWxsZWQEZmxhZwtmbGFnLWZpbGxlZAtnZWFyLWZpbGxlZARob21lC2hvbWUtZmlsbGVkBGdlYXISc21hbGxjaXJjbGUtZmlsbGVkCm1hcC1maWxsZWQDbWFwDnJlZnJlc2gtZmlsbGVkB3JlZnJlc2gMY2xvdWQtdXBsb2FkFWNsb3VkLWRvd25sb2FkLWZpbGxlZA5jbG91ZC1kb3dubG9hZBNjbG91ZC11cGxvYWQtZmlsbGVkBHJlZG8NaW1hZ2VzLWZpbGxlZAt1bmRvLWZpbGxlZARtb3JlC21vcmUtZmlsbGVkBHVuZG8GaW1hZ2VzCXBhcGVyY2xpcAhzZXR0aW5ncwZzZWFyY2gLcmVkby1maWxsZWQEbGlzdBBtYWlsLW9wZW4tZmlsbGVkEGhhbmQtZG93bi1maWxsZWQJaGFuZC1kb3duDmhhbmQtdXAtZmlsbGVkB2hhbmQtdXAMaGVhcnQtZmlsbGVkCW1haWwtb3BlbgVoZWFydARsb29wCHB1bGxkb3duBHNjYW4EYmFycwhjaGVja2JveA9jaGVja2JveC1maWxsZWQEc2hvcApoZWFkcGhvbmVzBGNhcnQAAA=="); +} +.uni-icons { + font-family: uniicons; + text-decoration: none; + text-align: center; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js new file mode 100644 index 0000000..da3fe1a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js @@ -0,0 +1,649 @@ +"use strict"; +const fontData = [ + { + "font_class": "arrow-down", + "unicode": "" + }, + { + "font_class": "arrow-left", + "unicode": "" + }, + { + "font_class": "arrow-right", + "unicode": "" + }, + { + "font_class": "arrow-up", + "unicode": "" + }, + { + "font_class": "auth", + "unicode": "" + }, + { + "font_class": "auth-filled", + "unicode": "" + }, + { + "font_class": "back", + "unicode": "" + }, + { + "font_class": "bars", + "unicode": "" + }, + { + "font_class": "calendar", + "unicode": "" + }, + { + "font_class": "calendar-filled", + "unicode": "" + }, + { + "font_class": "camera", + "unicode": "" + }, + { + "font_class": "camera-filled", + "unicode": "" + }, + { + "font_class": "cart", + "unicode": "" + }, + { + "font_class": "cart-filled", + "unicode": "" + }, + { + "font_class": "chat", + "unicode": "" + }, + { + "font_class": "chat-filled", + "unicode": "" + }, + { + "font_class": "chatboxes", + "unicode": "" + }, + { + "font_class": "chatboxes-filled", + "unicode": "" + }, + { + "font_class": "chatbubble", + "unicode": "" + }, + { + "font_class": "chatbubble-filled", + "unicode": "" + }, + { + "font_class": "checkbox", + "unicode": "" + }, + { + "font_class": "checkbox-filled", + "unicode": "" + }, + { + "font_class": "checkmarkempty", + "unicode": "" + }, + { + "font_class": "circle", + "unicode": "" + }, + { + "font_class": "circle-filled", + "unicode": "" + }, + { + "font_class": "clear", + "unicode": "" + }, + { + "font_class": "close", + "unicode": "" + }, + { + "font_class": "closeempty", + "unicode": "" + }, + { + "font_class": "cloud-download", + "unicode": "" + }, + { + "font_class": "cloud-download-filled", + "unicode": "" + }, + { + "font_class": "cloud-upload", + "unicode": "" + }, + { + "font_class": "cloud-upload-filled", + "unicode": "" + }, + { + "font_class": "color", + "unicode": "" + }, + { + "font_class": "color-filled", + "unicode": "" + }, + { + "font_class": "compose", + "unicode": "" + }, + { + "font_class": "contact", + "unicode": "" + }, + { + "font_class": "contact-filled", + "unicode": "" + }, + { + "font_class": "down", + "unicode": "" + }, + { + "font_class": "bottom", + "unicode": "" + }, + { + "font_class": "download", + "unicode": "" + }, + { + "font_class": "download-filled", + "unicode": "" + }, + { + "font_class": "email", + "unicode": "" + }, + { + "font_class": "email-filled", + "unicode": "" + }, + { + "font_class": "eye", + "unicode": "" + }, + { + "font_class": "eye-filled", + "unicode": "" + }, + { + "font_class": "eye-slash", + "unicode": "" + }, + { + "font_class": "eye-slash-filled", + "unicode": "" + }, + { + "font_class": "fire", + "unicode": "" + }, + { + "font_class": "fire-filled", + "unicode": "" + }, + { + "font_class": "flag", + "unicode": "" + }, + { + "font_class": "flag-filled", + "unicode": "" + }, + { + "font_class": "folder-add", + "unicode": "" + }, + { + "font_class": "folder-add-filled", + "unicode": "" + }, + { + "font_class": "font", + "unicode": "" + }, + { + "font_class": "forward", + "unicode": "" + }, + { + "font_class": "gear", + "unicode": "" + }, + { + "font_class": "gear-filled", + "unicode": "" + }, + { + "font_class": "gift", + "unicode": "" + }, + { + "font_class": "gift-filled", + "unicode": "" + }, + { + "font_class": "hand-down", + "unicode": "" + }, + { + "font_class": "hand-down-filled", + "unicode": "" + }, + { + "font_class": "hand-up", + "unicode": "" + }, + { + "font_class": "hand-up-filled", + "unicode": "" + }, + { + "font_class": "headphones", + "unicode": "" + }, + { + "font_class": "heart", + "unicode": "" + }, + { + "font_class": "heart-filled", + "unicode": "" + }, + { + "font_class": "help", + "unicode": "" + }, + { + "font_class": "help-filled", + "unicode": "" + }, + { + "font_class": "home", + "unicode": "" + }, + { + "font_class": "home-filled", + "unicode": "" + }, + { + "font_class": "image", + "unicode": "" + }, + { + "font_class": "image-filled", + "unicode": "" + }, + { + "font_class": "images", + "unicode": "" + }, + { + "font_class": "images-filled", + "unicode": "" + }, + { + "font_class": "info", + "unicode": "" + }, + { + "font_class": "info-filled", + "unicode": "" + }, + { + "font_class": "left", + "unicode": "" + }, + { + "font_class": "link", + "unicode": "" + }, + { + "font_class": "list", + "unicode": "" + }, + { + "font_class": "location", + "unicode": "" + }, + { + "font_class": "location-filled", + "unicode": "" + }, + { + "font_class": "locked", + "unicode": "" + }, + { + "font_class": "locked-filled", + "unicode": "" + }, + { + "font_class": "loop", + "unicode": "" + }, + { + "font_class": "mail-open", + "unicode": "" + }, + { + "font_class": "mail-open-filled", + "unicode": "" + }, + { + "font_class": "map", + "unicode": "" + }, + { + "font_class": "map-filled", + "unicode": "" + }, + { + "font_class": "map-pin", + "unicode": "" + }, + { + "font_class": "map-pin-ellipse", + "unicode": "" + }, + { + "font_class": "medal", + "unicode": "" + }, + { + "font_class": "medal-filled", + "unicode": "" + }, + { + "font_class": "mic", + "unicode": "" + }, + { + "font_class": "mic-filled", + "unicode": "" + }, + { + "font_class": "micoff", + "unicode": "" + }, + { + "font_class": "micoff-filled", + "unicode": "" + }, + { + "font_class": "minus", + "unicode": "" + }, + { + "font_class": "minus-filled", + "unicode": "" + }, + { + "font_class": "more", + "unicode": "" + }, + { + "font_class": "more-filled", + "unicode": "" + }, + { + "font_class": "navigate", + "unicode": "" + }, + { + "font_class": "navigate-filled", + "unicode": "" + }, + { + "font_class": "notification", + "unicode": "" + }, + { + "font_class": "notification-filled", + "unicode": "" + }, + { + "font_class": "paperclip", + "unicode": "" + }, + { + "font_class": "paperplane", + "unicode": "" + }, + { + "font_class": "paperplane-filled", + "unicode": "" + }, + { + "font_class": "person", + "unicode": "" + }, + { + "font_class": "person-filled", + "unicode": "" + }, + { + "font_class": "personadd", + "unicode": "" + }, + { + "font_class": "personadd-filled", + "unicode": "" + }, + { + "font_class": "personadd-filled-copy", + "unicode": "" + }, + { + "font_class": "phone", + "unicode": "" + }, + { + "font_class": "phone-filled", + "unicode": "" + }, + { + "font_class": "plus", + "unicode": "" + }, + { + "font_class": "plus-filled", + "unicode": "" + }, + { + "font_class": "plusempty", + "unicode": "" + }, + { + "font_class": "pulldown", + "unicode": "" + }, + { + "font_class": "pyq", + "unicode": "" + }, + { + "font_class": "qq", + "unicode": "" + }, + { + "font_class": "redo", + "unicode": "" + }, + { + "font_class": "redo-filled", + "unicode": "" + }, + { + "font_class": "refresh", + "unicode": "" + }, + { + "font_class": "refresh-filled", + "unicode": "" + }, + { + "font_class": "refreshempty", + "unicode": "" + }, + { + "font_class": "reload", + "unicode": "" + }, + { + "font_class": "right", + "unicode": "" + }, + { + "font_class": "scan", + "unicode": "" + }, + { + "font_class": "search", + "unicode": "" + }, + { + "font_class": "settings", + "unicode": "" + }, + { + "font_class": "settings-filled", + "unicode": "" + }, + { + "font_class": "shop", + "unicode": "" + }, + { + "font_class": "shop-filled", + "unicode": "" + }, + { + "font_class": "smallcircle", + "unicode": "" + }, + { + "font_class": "smallcircle-filled", + "unicode": "" + }, + { + "font_class": "sound", + "unicode": "" + }, + { + "font_class": "sound-filled", + "unicode": "" + }, + { + "font_class": "spinner-cycle", + "unicode": "" + }, + { + "font_class": "staff", + "unicode": "" + }, + { + "font_class": "staff-filled", + "unicode": "" + }, + { + "font_class": "star", + "unicode": "" + }, + { + "font_class": "star-filled", + "unicode": "" + }, + { + "font_class": "starhalf", + "unicode": "" + }, + { + "font_class": "trash", + "unicode": "" + }, + { + "font_class": "trash-filled", + "unicode": "" + }, + { + "font_class": "tune", + "unicode": "" + }, + { + "font_class": "tune-filled", + "unicode": "" + }, + { + "font_class": "undo", + "unicode": "" + }, + { + "font_class": "undo-filled", + "unicode": "" + }, + { + "font_class": "up", + "unicode": "" + }, + { + "font_class": "top", + "unicode": "" + }, + { + "font_class": "upload", + "unicode": "" + }, + { + "font_class": "upload-filled", + "unicode": "" + }, + { + "font_class": "videocam", + "unicode": "" + }, + { + "font_class": "videocam-filled", + "unicode": "" + }, + { + "font_class": "vip", + "unicode": "" + }, + { + "font_class": "vip-filled", + "unicode": "" + }, + { + "font_class": "wallet", + "unicode": "" + }, + { + "font_class": "wallet-filled", + "unicode": "" + }, + { + "font_class": "weibo", + "unicode": "" + }, + { + "font_class": "weixin", + "unicode": "" + } +]; +exports.fontData = fontData; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.js b/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.js new file mode 100644 index 0000000..e80e897 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.js @@ -0,0 +1,155 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "UniNumberBox", + emits: ["change", "input", "update:modelValue", "blur", "focus"], + props: { + value: { + type: [Number, String], + default: 1 + }, + modelValue: { + type: [Number, String], + default: 1 + }, + min: { + type: Number, + default: 0 + }, + max: { + type: Number, + default: 100 + }, + step: { + type: Number, + default: 1 + }, + background: { + type: String, + default: "#f5f5f5" + }, + color: { + type: String, + default: "#333" + }, + disabled: { + type: Boolean, + default: false + }, + width: { + type: Number, + default: 40 + } + }, + data() { + return { + inputValue: 0 + }; + }, + watch: { + value(val) { + this.inputValue = +val; + }, + modelValue(val) { + this.inputValue = +val; + } + }, + computed: { + widthWithPx() { + return this.width + "px"; + } + }, + created() { + if (this.value === 1) { + this.inputValue = +this.modelValue; + } + if (this.modelValue === 1) { + this.inputValue = +this.value; + } + }, + methods: { + _calcValue(type) { + if (this.disabled) { + return; + } + const scale = this._getDecimalScale(); + let value = this.inputValue * scale; + let step = this.step * scale; + if (type === "minus") { + value -= step; + if (value < this.min * scale) { + return; + } + if (value > this.max * scale) { + value = this.max * scale; + } + } + if (type === "plus") { + value += step; + if (value > this.max * scale) { + return; + } + if (value < this.min * scale) { + value = this.min * scale; + } + } + this.inputValue = (value / scale).toFixed(String(scale).length - 1); + this.$emit("input", +this.inputValue); + this.$emit("update:modelValue", +this.inputValue); + this.$emit("change", +this.inputValue); + }, + _getDecimalScale() { + let scale = 1; + if (~~this.step !== this.step) { + scale = Math.pow(10, String(this.step).split(".")[1].length); + } + return scale; + }, + _onBlur(event) { + this.$emit("blur", event); + let value = event.detail.value; + if (isNaN(value)) { + this.inputValue = this.value; + return; + } + value = +value; + if (value > this.max) { + value = this.max; + } else if (value < this.min) { + value = this.min; + } + const scale = this._getDecimalScale(); + this.inputValue = value.toFixed(String(scale).length - 1); + this.$emit("input", +this.inputValue); + this.$emit("update:modelValue", +this.inputValue); + this.$emit("change", +this.inputValue); + }, + _onFocus(event) { + this.$emit("focus", event); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: $data.inputValue <= $props.min || $props.disabled ? 1 : "", + b: $props.color, + c: common_vendor.o$1(($event) => $options._calcValue("minus")), + d: $props.background, + e: $props.disabled, + f: common_vendor.o$1((...args) => $options._onFocus && $options._onFocus(...args)), + g: common_vendor.o$1((...args) => $options._onBlur && $options._onBlur(...args)), + h: $props.step < 1 ? "digit" : "number", + i: $props.background, + j: $props.color, + k: $options.widthWithPx, + l: $data.inputValue, + m: common_vendor.o$1(($event) => $data.inputValue = $event.detail.value), + n: $data.inputValue >= $props.max || $props.disabled ? 1 : "", + o: $props.color, + p: common_vendor.o$1(($event) => $options._calcValue("plus")), + q: $props.background + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.json b/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.wxml new file mode 100644 index 0000000..8734f71 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.wxml @@ -0,0 +1 @@ +-+ \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.wxss new file mode 100644 index 0000000..8fbd08c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.wxss @@ -0,0 +1,65 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.uni-numbox { + display: flex; + flex-direction: row; +} +.uni-numbox-btns { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + padding: 0 8px; + background-color: #f5f5f5; +} +.uni-numbox__value { + margin: 0 2px; + background-color: #f5f5f5; + width: 40px; + height: 26px; + text-align: center; + font-size: 14px; + border-width: 0; + color: #333; +} +.uni-numbox__minus { + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; +} +.uni-numbox__plus { + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; +} +.uni-numbox--text { + line-height: 20px; + margin-bottom: 2px; + font-size: 20px; + font-weight: 300; + color: #333; +} +.uni-numbox .uni-numbox--disabled { + color: #c0c0c0 !important; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js b/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js new file mode 100644 index 0000000..de72c0f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js @@ -0,0 +1,397 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "uniPopup", + components: {}, + emits: ["change", "maskClick"], + props: { + // 开启动画 + animation: { + type: Boolean, + default: true + }, + // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层 + // message: 消息提示 ; dialog : 对话框 + type: { + type: String, + default: "center" + }, + // maskClick + isMaskClick: { + type: Boolean, + default: null + }, + // TODO 2 个版本后废弃属性 ,使用 isMaskClick + maskClick: { + type: Boolean, + default: null + }, + backgroundColor: { + type: String, + default: "none" + }, + safeArea: { + type: Boolean, + default: true + }, + maskBackgroundColor: { + type: String, + default: "rgba(0, 0, 0, 0.4)" + }, + borderRadius: { + type: String + } + }, + watch: { + /** + * 监听type类型 + */ + type: { + handler: function(type) { + if (!this.config[type]) + return; + this[this.config[type]](true); + }, + immediate: true + }, + isDesktop: { + handler: function(newVal) { + if (!this.config[newVal]) + return; + this[this.config[this.type]](true); + }, + immediate: true + }, + /** + * 监听遮罩是否可点击 + * @param {Object} val + */ + maskClick: { + handler: function(val) { + this.mkclick = val; + }, + immediate: true + }, + isMaskClick: { + handler: function(val) { + this.mkclick = val; + }, + immediate: true + }, + // H5 下禁止底部滚动 + showPopup(show) { + } + }, + data() { + return { + duration: 300, + ani: [], + showPopup: false, + showTrans: false, + popupWidth: 0, + popupHeight: 0, + config: { + top: "top", + bottom: "bottom", + center: "center", + left: "left", + right: "right", + message: "top", + dialog: "center", + share: "bottom" + }, + maskClass: { + position: "fixed", + bottom: 0, + top: 0, + left: 0, + right: 0, + backgroundColor: "rgba(0, 0, 0, 0.4)" + }, + transClass: { + backgroundColor: "transparent", + borderRadius: this.borderRadius || "0", + position: "fixed", + left: 0, + right: 0 + }, + maskShow: true, + mkclick: true, + popupstyle: "top" + }; + }, + computed: { + getStyles() { + let res = { backgroundColor: this.bg }; + if (this.borderRadius || "0") { + res = Object.assign(res, { borderRadius: this.borderRadius }); + } + return res; + }, + isDesktop() { + return this.popupWidth >= 500 && this.popupHeight >= 500; + }, + bg() { + if (this.backgroundColor === "" || this.backgroundColor === "none") { + return "transparent"; + } + return this.backgroundColor; + } + }, + mounted() { + const fixSize = () => { + const { + windowWidth, + windowHeight, + windowTop, + safeArea, + screenHeight, + safeAreaInsets + } = common_vendor.index.getWindowInfo(); + this.popupWidth = windowWidth; + this.popupHeight = windowHeight + (windowTop || 0); + if (safeArea && this.safeArea) { + this.safeAreaInsets = screenHeight - safeArea.bottom; + } else { + this.safeAreaInsets = 0; + } + }; + fixSize(); + }, + // TODO vue3 + unmounted() { + this.setH5Visible(); + }, + activated() { + this.setH5Visible(!this.showPopup); + }, + deactivated() { + this.setH5Visible(true); + }, + created() { + if (this.isMaskClick === null && this.maskClick === null) { + this.mkclick = true; + } else { + this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick; + } + if (this.animation) { + this.duration = 300; + } else { + this.duration = 0; + } + this.messageChild = null; + this.clearPropagation = false; + this.maskClass.backgroundColor = this.maskBackgroundColor; + }, + methods: { + setH5Visible(visible = true) { + }, + /** + * 公用方法,不显示遮罩层 + */ + closeMask() { + this.maskShow = false; + }, + /** + * 公用方法,遮罩层禁止点击 + */ + disableMask() { + this.mkclick = false; + }, + // TODO nvue 取消冒泡 + clear(e) { + e.stopPropagation(); + this.clearPropagation = true; + }, + open(direction) { + if (this.showPopup) { + return; + } + let innerType = ["top", "center", "bottom", "left", "right", "message", "dialog", "share"]; + if (!(direction && innerType.indexOf(direction) !== -1)) { + direction = this.type; + } + if (!this.config[direction]) { + common_vendor.index.__f__("error", "at uni_modules/uni-popup/components/uni-popup/uni-popup.vue:310", "缺少类型:", direction); + return; + } + this[this.config[direction]](); + this.$emit("change", { + show: true, + type: direction + }); + }, + close(type) { + this.showTrans = false; + this.$emit("change", { + show: false, + type: this.type + }); + clearTimeout(this.timer); + this.timer = setTimeout(() => { + this.showPopup = false; + }, 300); + }, + // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容 + touchstart() { + this.clearPropagation = false; + }, + onTap() { + if (this.clearPropagation) { + this.clearPropagation = false; + return; + } + this.$emit("maskClick"); + if (!this.mkclick) + return; + this.close(); + }, + /** + * 顶部弹出样式处理 + */ + top(type) { + this.popupstyle = this.isDesktop ? "fixforpc-top" : "top"; + this.ani = ["slide-top"]; + this.transClass = { + position: "fixed", + left: 0, + right: 0, + backgroundColor: this.bg, + borderRadius: this.borderRadius || "0" + }; + if (type) + return; + this.showPopup = true; + this.showTrans = true; + this.$nextTick(() => { + this.showPoptrans(); + if (this.messageChild && this.type === "message") { + this.messageChild.timerClose(); + } + }); + }, + /** + * 底部弹出样式处理 + */ + bottom(type) { + this.popupstyle = "bottom"; + this.ani = ["slide-bottom"]; + this.transClass = { + position: "fixed", + left: 0, + right: 0, + bottom: 0, + paddingBottom: this.safeAreaInsets + "px", + backgroundColor: this.bg, + borderRadius: this.borderRadius || "0" + }; + if (type) + return; + this.showPoptrans(); + }, + /** + * 中间弹出样式处理 + */ + center(type) { + this.popupstyle = "center"; + this.ani = ["fade"]; + this.transClass = { + position: "fixed", + display: "flex", + flexDirection: "column", + bottom: 0, + left: 0, + right: 0, + top: 0, + justifyContent: "center", + alignItems: "center", + borderRadius: this.borderRadius || "0" + }; + if (type) + return; + this.showPoptrans(); + }, + left(type) { + this.popupstyle = "left"; + this.ani = ["slide-left"]; + this.transClass = { + position: "fixed", + left: 0, + bottom: 0, + top: 0, + backgroundColor: this.bg, + borderRadius: this.borderRadius || "0", + display: "flex", + flexDirection: "column" + }; + if (type) + return; + this.showPoptrans(); + }, + right(type) { + this.popupstyle = "right"; + this.ani = ["slide-right"]; + this.transClass = { + position: "fixed", + bottom: 0, + right: 0, + top: 0, + backgroundColor: this.bg, + borderRadius: this.borderRadius || "0", + display: "flex", + flexDirection: "column" + }; + if (type) + return; + this.showPoptrans(); + }, + showPoptrans() { + this.$nextTick(() => { + this.showPopup = true; + this.showTrans = true; + }); + } + } +}; +if (!Array) { + const _easycom_uni_transition2 = common_vendor.resolveComponent("uni-transition"); + _easycom_uni_transition2(); +} +const _easycom_uni_transition = () => "../../../uni-transition/components/uni-transition/uni-transition.js"; +if (!Math) { + _easycom_uni_transition(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $data.showPopup + }, $data.showPopup ? common_vendor.e({ + b: $data.maskShow + }, $data.maskShow ? { + c: common_vendor.o$1($options.onTap), + d: common_vendor.p({ + name: "mask", + ["mode-class"]: "fade", + styles: $data.maskClass, + duration: $data.duration, + show: $data.showTrans + }) + } : {}, { + e: common_vendor.s($options.getStyles), + f: common_vendor.n($data.popupstyle), + g: common_vendor.o$1((...args) => $options.clear && $options.clear(...args)), + h: common_vendor.o$1($options.onTap), + i: common_vendor.p({ + ["mode-class"]: $data.ani, + name: "content", + styles: $data.transClass, + duration: $data.duration, + show: $data.showTrans + }), + j: common_vendor.o$1((...args) => $options.touchstart && $options.touchstart(...args)), + k: common_vendor.n($data.popupstyle), + l: common_vendor.n($options.isDesktop ? "fixforpc-z-index" : "") + }) : {}); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.json b/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.json new file mode 100644 index 0000000..3a0615f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "uni-transition": "../../../uni-transition/components/uni-transition/uni-transition" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxml new file mode 100644 index 0000000..1cc782d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxss new file mode 100644 index 0000000..4014708 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxss @@ -0,0 +1,47 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.uni-popup { + position: fixed; + z-index: 99; +} +.uni-popup.top, .uni-popup.left, .uni-popup.right { + top: 0; +} +.uni-popup .uni-popup__wrapper { + display: block; + position: relative; + /* iphonex 等安全区设置,底部安全区适配 */ +} +.uni-popup .uni-popup__wrapper.left, .uni-popup .uni-popup__wrapper.right { + padding-top: 0; + flex: 1; +} +.fixforpc-z-index { + z-index: 999; +} +.fixforpc-top { + top: 0; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/createAnimation.js new file mode 100644 index 0000000..31ac06c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/createAnimation.js @@ -0,0 +1,116 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +class MPAnimation { + constructor(options, _this) { + this.options = options; + this.animation = common_vendor.index.createAnimation({ + ...options + }); + this.currentStepAnimates = {}; + this.next = 0; + this.$ = _this; + } + _nvuePushAnimates(type, args) { + let aniObj = this.currentStepAnimates[this.next]; + let styles = {}; + if (!aniObj) { + styles = { + styles: {}, + config: {} + }; + } else { + styles = aniObj; + } + if (animateTypes1.includes(type)) { + if (!styles.styles.transform) { + styles.styles.transform = ""; + } + let unit = ""; + if (type === "rotate") { + unit = "deg"; + } + styles.styles.transform += `${type}(${args + unit}) `; + } else { + styles.styles[type] = `${args}`; + } + this.currentStepAnimates[this.next] = styles; + } + _animateRun(styles = {}, config = {}) { + let ref = this.$.$refs["ani"].ref; + if (!ref) + return; + return new Promise((resolve, reject) => { + nvueAnimation.transition(ref, { + styles, + ...config + }, (res) => { + resolve(); + }); + }); + } + _nvueNextAnimate(animates, step = 0, fn) { + let obj = animates[step]; + if (obj) { + let { + styles, + config + } = obj; + this._animateRun(styles, config).then(() => { + step += 1; + this._nvueNextAnimate(animates, step, fn); + }); + } else { + this.currentStepAnimates = {}; + typeof fn === "function" && fn(); + this.isEnd = true; + } + } + step(config = {}) { + this.animation.step(config); + return this; + } + run(fn) { + this.$.animationData = this.animation.export(); + this.$.timer = setTimeout(() => { + typeof fn === "function" && fn(); + }, this.$.durationTime); + } +} +const animateTypes1 = [ + "matrix", + "matrix3d", + "rotate", + "rotate3d", + "rotateX", + "rotateY", + "rotateZ", + "scale", + "scale3d", + "scaleX", + "scaleY", + "scaleZ", + "skew", + "skewX", + "skewY", + "translate", + "translate3d", + "translateX", + "translateY", + "translateZ" +]; +const animateTypes2 = ["opacity", "backgroundColor"]; +const animateTypes3 = ["width", "height", "left", "right", "top", "bottom"]; +animateTypes1.concat(animateTypes2, animateTypes3).forEach((type) => { + MPAnimation.prototype[type] = function(...args) { + this.animation[type](...args); + return this; + }; +}); +function createAnimation(option, _this) { + if (!_this) + return; + clearTimeout(_this.timer); + return new MPAnimation(option, _this); +} +exports.createAnimation = createAnimation; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/uni-transition/components/uni-transition/createAnimation.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js b/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js new file mode 100644 index 0000000..4506a70 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js @@ -0,0 +1,269 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const uni_modules_uniTransition_components_uniTransition_createAnimation = require("./createAnimation.js"); +const _sfc_main = { + name: "uniTransition", + emits: ["click", "change"], + props: { + show: { + type: Boolean, + default: false + }, + modeClass: { + type: [Array, String], + default() { + return "fade"; + } + }, + duration: { + type: Number, + default: 300 + }, + styles: { + type: Object, + default() { + return {}; + } + }, + customClass: { + type: String, + default: "" + }, + onceRender: { + type: Boolean, + default: false + } + }, + data() { + return { + isShow: false, + transform: "", + opacity: 1, + animationData: {}, + durationTime: 300, + config: {} + }; + }, + watch: { + show: { + handler(newVal) { + if (newVal) { + this.open(); + } else { + if (this.isShow) { + this.close(); + } + } + }, + immediate: true + } + }, + computed: { + // 生成样式数据 + stylesObject() { + let styles = { + ...this.styles, + "transition-duration": this.duration / 1e3 + "s" + }; + let transform = ""; + for (let i in styles) { + let line = this.toLine(i); + transform += line + ":" + styles[i] + ";"; + } + return transform; + }, + // 初始化动画条件 + transformStyles() { + return "transform:" + this.transform + ";opacity:" + this.opacity + ";" + this.stylesObject; + } + }, + created() { + this.config = { + duration: this.duration, + timingFunction: "ease", + transformOrigin: "50% 50%", + delay: 0 + }; + this.durationTime = this.duration; + }, + methods: { + /** + * ref 触发 初始化动画 + */ + init(obj = {}) { + if (obj.duration) { + this.durationTime = obj.duration; + } + this.animation = uni_modules_uniTransition_components_uniTransition_createAnimation.createAnimation(Object.assign(this.config, obj), this); + }, + /** + * 点击组件触发回调 + */ + onClick() { + this.$emit("click", { + detail: this.isShow + }); + }, + /** + * ref 触发 动画分组 + * @param {Object} obj + */ + step(obj, config = {}) { + if (!this.animation) + return; + for (let i in obj) { + try { + if (typeof obj[i] === "object") { + this.animation[i](...obj[i]); + } else { + this.animation[i](obj[i]); + } + } catch (e) { + common_vendor.index.__f__("error", "at uni_modules/uni-transition/components/uni-transition/uni-transition.vue:148", `方法 ${i} 不存在`); + } + } + this.animation.step(config); + return this; + }, + /** + * ref 触发 执行动画 + */ + run(fn) { + if (!this.animation) + return; + this.animation.run(fn); + }, + // 开始过度动画 + open() { + clearTimeout(this.timer); + this.transform = ""; + this.isShow = true; + let { opacity, transform } = this.styleInit(false); + if (typeof opacity !== "undefined") { + this.opacity = opacity; + } + this.transform = transform; + this.$nextTick(() => { + this.timer = setTimeout(() => { + this.animation = uni_modules_uniTransition_components_uniTransition_createAnimation.createAnimation(this.config, this); + this.tranfromInit(false).step(); + this.animation.run(() => { + this.transform = ""; + this.opacity = opacity || 1; + }); + this.$emit("change", { + detail: this.isShow + }); + }, 20); + }); + }, + // 关闭过度动画 + close(type) { + if (!this.animation) + return; + this.tranfromInit(true).step().run(() => { + this.isShow = false; + this.animationData = null; + this.animation = null; + let { opacity, transform } = this.styleInit(false); + this.opacity = opacity || 1; + this.transform = transform; + this.$emit("change", { + detail: this.isShow + }); + }); + }, + // 处理动画开始前的默认样式 + styleInit(type) { + let styles = { + transform: "" + }; + let buildStyle = (type2, mode) => { + if (mode === "fade") { + styles.opacity = this.animationType(type2)[mode]; + } else { + styles.transform += this.animationType(type2)[mode] + " "; + } + }; + if (typeof this.modeClass === "string") { + buildStyle(type, this.modeClass); + } else { + this.modeClass.forEach((mode) => { + buildStyle(type, mode); + }); + } + return styles; + }, + // 处理内置组合动画 + tranfromInit(type) { + let buildTranfrom = (type2, mode) => { + let aniNum = null; + if (mode === "fade") { + aniNum = type2 ? 0 : 1; + } else { + aniNum = type2 ? "-100%" : "0"; + if (mode === "zoom-in") { + aniNum = type2 ? 0.8 : 1; + } + if (mode === "zoom-out") { + aniNum = type2 ? 1.2 : 1; + } + if (mode === "slide-right") { + aniNum = type2 ? "100%" : "0"; + } + if (mode === "slide-bottom") { + aniNum = type2 ? "100%" : "0"; + } + } + this.animation[this.animationMode()[mode]](aniNum); + }; + if (typeof this.modeClass === "string") { + buildTranfrom(type, this.modeClass); + } else { + this.modeClass.forEach((mode) => { + buildTranfrom(type, mode); + }); + } + return this.animation; + }, + animationType(type) { + return { + fade: type ? 0 : 1, + "slide-top": `translateY(${type ? "0" : "-100%"})`, + "slide-right": `translateX(${type ? "0" : "100%"})`, + "slide-bottom": `translateY(${type ? "0" : "100%"})`, + "slide-left": `translateX(${type ? "0" : "-100%"})`, + "zoom-in": `scaleX(${type ? 1 : 0.8}) scaleY(${type ? 1 : 0.8})`, + "zoom-out": `scaleX(${type ? 1 : 1.2}) scaleY(${type ? 1 : 1.2})` + }; + }, + // 内置动画类型与实际动画对应字典 + animationMode() { + return { + fade: "opacity", + "slide-top": "translateY", + "slide-right": "translateX", + "slide-bottom": "translateY", + "slide-left": "translateX", + "zoom-in": "scale", + "zoom-out": "scale" + }; + }, + // 驼峰转中横线 + toLine(name) { + return name.replace(/([A-Z])/g, "-$1").toLowerCase(); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: $data.isShow, + b: $data.animationData, + c: common_vendor.n($props.customClass), + d: common_vendor.s($options.transformStyles), + e: common_vendor.o$1((...args) => $options.onClick && $options.onClick(...args)) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.json b/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxml new file mode 100644 index 0000000..8fa2f75 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.js b/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.js new file mode 100644 index 0000000..8caad8a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.js @@ -0,0 +1,191 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "wht-select", + props: { + options: { + type: Array, + default: () => [] + }, + value: { + type: [String, Number], + default: "" + }, + placeholder: { + type: String, + default: "请选择" + }, + disabled: { + type: Boolean, + default: false + }, + clearable: { + type: Boolean, + default: false + }, + // 样式相关的props + height: { + type: Number, + default: 40 + }, + fontSize: { + type: Number, + default: 14 + }, + borderColor: { + type: String, + default: "#dcdfe6" + }, + borderRadius: { + type: Number, + default: 4 + }, + backgroundColor: { + type: String, + default: "#ffffff" + }, + textColor: { + type: String, + default: "#606266" + }, + placeholderColor: { + type: String, + default: "#c0c4cc" + }, + activeColor: { + type: String, + default: "#409eff" + }, + filterable: { + type: Boolean, + default: false + }, + searchPlaceholder: { + type: String, + default: "请输入搜索内容" + } + }, + data() { + return { + currentValue: "", + isOpen: false, + searchQuery: "" + }; + }, + computed: { + currentLabel() { + const option = this.options.find((item) => item.value === this.currentValue); + return option ? option.label : ""; + }, + filteredOptions() { + if (!this.filterable || !this.searchQuery) { + return this.options; + } + return this.options.filter( + (item) => item.label.toLowerCase().includes(this.searchQuery.toLowerCase()) + ); + } + }, + watch: { + value: { + handler(newVal) { + this.currentValue = newVal; + }, + immediate: true + } + }, + methods: { + togglePicker() { + if (this.disabled) + return; + this.isOpen = !this.isOpen; + if (!this.isOpen) { + this.searchQuery = ""; + } + }, + selectOption(item, index) { + if (item.disabled) + return; + this.currentValue = item.value; + this.searchQuery = ""; + this.$emit("input", item.value); + this.$emit("change", item); + this.isOpen = false; + }, + clearValue(e) { + this.currentValue = ""; + this.searchQuery = ""; + this.$emit("input", ""); + this.$emit("change", null); + this.$emit("clear"); + }, + onSearch() { + this.$emit("search", this.searchQuery); + }, + handleFocus() { + if (!this.disabled) { + this.isOpen = true; + } + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $props.filterable + }, $props.filterable ? { + b: $data.currentValue ? $options.currentLabel : $props.placeholder, + c: $props.fontSize + "px", + d: $data.currentValue ? $props.textColor : $props.placeholderColor, + e: common_vendor.o$1(() => { + }), + f: common_vendor.o$1([($event) => $data.searchQuery = $event.detail.value, (...args) => $options.onSearch && $options.onSearch(...args)]), + g: common_vendor.o$1((...args) => $options.handleFocus && $options.handleFocus(...args)), + h: $data.searchQuery + } : { + i: common_vendor.t($options.currentLabel || $props.placeholder), + j: $props.fontSize + "px", + k: $data.currentValue ? $props.textColor : $props.placeholderColor + }, { + l: $props.clearable && $data.currentValue && !$props.disabled + }, $props.clearable && $data.currentValue && !$props.disabled ? { + m: common_vendor.o$1((...args) => $options.clearValue && $options.clearValue(...args)) + } : { + n: $props.placeholderColor + }, { + o: $data.isOpen ? 1 : "", + p: !$data.currentValue ? 1 : "", + q: $props.height + "px", + r: $props.backgroundColor, + s: $props.borderColor, + t: $props.borderRadius + "px", + v: common_vendor.o$1((...args) => $options.togglePicker && $options.togglePicker(...args)), + w: $data.isOpen + }, $data.isOpen ? common_vendor.e({ + x: common_vendor.o$1((...args) => $options.togglePicker && $options.togglePicker(...args)), + y: $options.filteredOptions.length > 0 + }, $options.filteredOptions.length > 0 ? { + z: common_vendor.f($options.filteredOptions, (item, index, i0) => { + return { + a: common_vendor.t(item.label), + b: item.value, + c: item.disabled ? 1 : "", + d: $data.currentValue === item.value ? 1 : "", + e: item.disabled ? $props.placeholderColor : $props.textColor, + f: $data.currentValue === item.value ? $props.activeColor + "20" : $props.backgroundColor, + g: common_vendor.o$1(($event) => $options.selectOption(item, index), item.value) + }; + }), + A: $props.fontSize + "px" + } : { + B: $props.fontSize + "px", + C: $props.placeholderColor + }, { + D: $props.backgroundColor, + E: $props.borderRadius + "px" + }) : {}, { + F: $props.disabled ? 1 : "" + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-57f09195"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.json b/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.wxml new file mode 100644 index 0000000..343004d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.wxml @@ -0,0 +1 @@ +{{i}}×{{item.a}} 暂无数据 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.wxss new file mode 100644 index 0000000..87475aa --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/wht-select/components/wht-select/wht-select.wxss @@ -0,0 +1,181 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.wht-select-wrapper.data-v-57f09195 { + width: 100%; + position: relative; +} +.wht-select-wrapper .wht-select-inner.data-v-57f09195 { + position: relative; + width: 100%; + border-width: 1px; + border-style: solid; + transition: all 0.2s; + cursor: pointer; +} +.wht-select-wrapper .wht-select-inner.is-active .wht-select-arrow.data-v-57f09195 { + transform: rotate(180deg); +} +.wht-select-wrapper .wht-select-value.data-v-57f09195 { + position: absolute; + left: 12px; + right: 30px; + top: 50%; + transform: translateY(-50%); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + height: 100%; + display: flex; + align-items: center; +} +.wht-select-wrapper .wht-select-suffix.data-v-57f09195 { + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + display: flex; + align-items: center; +} +.wht-select-wrapper .wht-select-clear.data-v-57f09195 { + width: 16px; + height: 16px; + line-height: 16px; + text-align: center; + border-radius: 50%; + background-color: #c0c4cc; + color: #fff; + font-size: 12px; + cursor: pointer; + transition: all 0.2s; +} +.wht-select-wrapper .wht-select-clear.data-v-57f09195:hover { + background-color: #909399; +} +.wht-select-wrapper .wht-select-arrow.data-v-57f09195 { + width: 0; + height: 0; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid; + transition: transform 0.2s; +} +.wht-select-wrapper .select-dropdown.data-v-57f09195 { + position: absolute; + top: 100%; + left: 0; + width: 100%; + margin-top: 4px; + z-index: 999; +} +.wht-select-wrapper .select-dropdown-mask.data-v-57f09195 { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 998; +} +.wht-select-wrapper .select-dropdown-content.data-v-57f09195 { + position: relative; + max-height: 240px; + border: 1px solid #e4e7ed; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + z-index: 999; + overflow-y: auto; +} +.wht-select-wrapper .select-dropdown-content.data-v-57f09195::-webkit-scrollbar { + width: 6px; +} +.wht-select-wrapper .select-dropdown-content.data-v-57f09195::-webkit-scrollbar-thumb { + background-color: #e4e7ed; + border-radius: 3px; +} +.wht-select-wrapper .select-dropdown-content > view.data-v-57f09195 { + padding: 0 12px; + height: 36px; + line-height: 36px; + cursor: pointer; +} +.wht-select-wrapper .select-dropdown-content > view.disabled.data-v-57f09195 { + cursor: not-allowed; +} +.wht-select-wrapper .select-dropdown-content .select-dropdown-search.data-v-57f09195 { + padding: 8px; + border-bottom: 1px solid #e4e7ed; +} +.wht-select-wrapper .select-dropdown-content .select-dropdown-search input.data-v-57f09195 { + width: 100%; + height: 32px; + padding: 0 8px; + border: 1px solid #dcdfe6; + border-radius: 4px; + font-size: 14px; +} +.wht-select-wrapper .select-dropdown-content .select-dropdown-search input.data-v-57f09195:focus { + border-color: #409eff; + outline: none; +} +.wht-select-wrapper .select-dropdown-content .select-dropdown-empty.data-v-57f09195 { + padding: 12px; + text-align: center; +} +.wht-select-wrapper .wht-select-input.data-v-57f09195 { + width: 100%; + height: 100%; + background: transparent; + border: none; + outline: none; + padding: 0; + margin: 0; + line-height: normal; +} +.wht-select-wrapper .wht-select-input.data-v-57f09195::-webkit-input-placeholder { + color: inherit; + line-height: normal; +} +.wht-select-wrapper .wht-select-input.data-v-57f09195::placeholder { + color: inherit; + line-height: normal; +} +@media (prefers-color-scheme: dark) { +.wht-select-wrapper .select-dropdown-content.data-v-57f09195 { + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.3); +} +.wht-select-wrapper .select-dropdown-content.data-v-57f09195::-webkit-scrollbar-thumb { + background-color: #48484a; +} +.wht-select-wrapper .select-dropdown-content .select-dropdown-search.data-v-57f09195 { + border-bottom-color: #48484a; +} +.wht-select-wrapper .select-dropdown-content .select-dropdown-search input.data-v-57f09195 { + border-color: #48484a; + background-color: #1c1c1e; + color: #fff; +} +.wht-select-wrapper .select-dropdown-content .select-dropdown-search input.data-v-57f09195:focus { + border-color: #409eff; +} +} \ No newline at end of file