This commit is contained in:
pengxiaolong
2025-05-13 19:39:53 +08:00
parent 37da6765b8
commit c006a8e63d
1232 changed files with 96963 additions and 883 deletions

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/chat-header/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L2NoYXQtaGVhZGVyL2luZGV4LnZ1ZQ"],"sourcesContent":["<template>\n <view style=\"display: none;\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from '../../../adapter-vue';\nimport {\n TUIStore,\n StoreName,\n IConversationModel,\n TUITranslateService,\n} from '@tencentcloud/chat-uikit-engine';\nimport { TUIGlobal } from '@tencentcloud/universal-api';\nimport { onLoad, onNavigationBarButtonTap } from '@dcloudio/uni-app';\n\nconst emits = defineEmits(['openGroupManagement']);\nconst props = defineProps(['isGroup']);\n\nconst currentConversation = ref<IConversationModel>();\nconst typingStatus = ref(false);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst setChatHeaderContent = (content: string) => {\n TUIGlobal?.setNavigationBarTitle({\n title: content || '云通信 IM',\n });\n};\n\nonMounted(() => {\n TUIStore.watch(StoreName.CONV, {\n currentConversation: onCurrentConversationUpdated,\n });\n TUIStore.watch(StoreName.CHAT, {\n typingStatus: onTypingStatusUpdated,\n });\n});\n\nonUnmounted(() => {\n TUIStore.unwatch(StoreName.CONV, {\n currentConversation: onCurrentConversationUpdated,\n });\n TUIStore.unwatch(StoreName.CHAT, {\n typingStatus: onTypingStatusUpdated,\n });\n});\n\nonLoad(() => {\n setChatHeaderContent(currentConversation.value?.getShowName());\n});\n\nfunction onCurrentConversationUpdated(conversation: IConversationModel) {\n currentConversation.value = conversation;\n if (!typingStatus.value) {\n setChatHeaderContent(currentConversation?.value?.getShowName());\n }\n}\n\nfunction onTypingStatusUpdated(status: boolean) {\n typingStatus.value = status;\n if (typingStatus.value) {\n setChatHeaderContent(TUITranslateService.t('TUIChat.对方正在输入'));\n } else {\n setChatHeaderContent(currentConversation.value?.getShowName());\n }\n}\n</script>\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;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"config.js","sources":["TUIKit/components/TUIChat/config.ts"],"sourcesContent":["class TUIChatConfig {\n static instance: TUIChatConfig;\n private chatType: string;\n private features: Record<string, any>;\n private theme: string;\n constructor() {\n this.chatType = '';\n this.features = {\n DownloadFile: true,\n CopyMessage: true,\n DeleteMessage: true,\n RevokeMessage: true,\n QuoteMessage: true,\n ForwardMessage: true,\n TranslateMessage: true,\n VoiceToText: true,\n MultiSelection: true,\n EmojiReaction: true,\n InputEmoji: true,\n InputStickers: true,\n InputImage: true,\n InputVoice: true,\n InputVideo: true,\n InputFile: true,\n InputEvaluation: true,\n InputQuickReplies: true,\n InputMention: true,\n MessageSearch: true,\n ReadStatus: true,\n };\n this.theme = 'light';\n }\n\n static getInstance(): TUIChatConfig {\n if (!TUIChatConfig.instance) {\n TUIChatConfig.instance = new TUIChatConfig();\n }\n return TUIChatConfig.instance;\n }\n\n setChatType(chatType: string) {\n this.chatType = chatType;\n }\n\n getChatType() {\n return this.chatType;\n }\n\n hideTUIChatFeatures(features: string[]) {\n if (!features) {\n return;\n }\n features.forEach((feature: string) => {\n if (this.features[feature]) {\n this.features[feature] = false;\n }\n });\n }\n\n getFeatureConfig(key?: string) {\n if (key) {\n return this.features[key];\n }\n return this.features;\n }\n\n setTheme(theme: string) {\n this.theme = theme;\n }\n\n getTheme() {\n return this.theme;\n }\n}\n\nconst ChatConfig = TUIChatConfig.getInstance();\nconst hideTUIChatFeatures = ChatConfig.hideTUIChatFeatures.bind(ChatConfig);\n\nexport {\n hideTUIChatFeatures,\n};\n\nexport default ChatConfig;\n"],"names":[],"mappings":";AAAA,MAAM,cAAc;AAAA,EAKlB,cAAc;AACZ,SAAK,WAAW;AAChB,SAAK,WAAW;AAAA,MACd,cAAc;AAAA,MACd,aAAa;AAAA,MACb,eAAe;AAAA,MACf,eAAe;AAAA,MACf,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,MACnB,cAAc;AAAA,MACd,eAAe;AAAA,MACf,YAAY;AAAA,IAAA;AAEd,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,OAAO,cAA6B;AAC9B,QAAA,CAAC,cAAc,UAAU;AACb,oBAAA,WAAW,IAAI;IAC/B;AACA,WAAO,cAAc;AAAA,EACvB;AAAA,EAEA,YAAY,UAAkB;AAC5B,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,cAAc;AACZ,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,oBAAoB,UAAoB;AACtC,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AACS,aAAA,QAAQ,CAAC,YAAoB;AAChC,UAAA,KAAK,SAAS,OAAO,GAAG;AACrB,aAAA,SAAS,OAAO,IAAI;AAAA,MAC3B;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,iBAAiB,KAAc;AAC7B,QAAI,KAAK;AACA,aAAA,KAAK,SAAS,GAAG;AAAA,IAC1B;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAAS,OAAe;AACtB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,WAAW;AACT,WAAO,KAAK;AAAA,EACd;AACF;AAEM,MAAA,aAAa,cAAc,YAAY;AACjB,WAAW,oBAAoB,KAAK,UAAU;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"custom-emoji.js","sources":["TUIKit/components/TUIChat/emoji-config/custom-emoji.ts"],"sourcesContent":["import { IEmojiGroupList } from '../../../interface';\n\n/**\n* Custom big emoji\n*/\nexport const CUSTOM_BIG_EMOJI_URL: string = '';\n\nexport const CUSTOM_BIG_EMOJI_GROUP_LIST: IEmojiGroupList = [];\n\n/**\n* Custom basic emoji\n*/\nexport const CUSTOM_BASIC_EMOJI_URL: string = '';\n\nexport const CUSTOM_BASIC_EMOJI_URL_MAPPING: Record<string, string> = {};\n"],"names":[],"mappings":";AAKO,MAAM,uBAA+B;AAErC,MAAM,8BAA+C,CAAA;;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"default-emoji.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"en.js","sources":["TUIKit/components/TUIChat/emoji-config/locales/en.ts"],"sourcesContent":["const Emoji = {\n '[TUIEmoji_Smile]': '[Smile]',\n '[TUIEmoji_Expect]': '[Expect]',\n '[TUIEmoji_Blink]': '[Blink]',\n '[TUIEmoji_Guffaw]': '[Guffaw]',\n '[TUIEmoji_KindSmile]': '[KindSmile]',\n '[TUIEmoji_Haha]': '[Haha]',\n '[TUIEmoji_Cheerful]': '[Cheerful]',\n '[TUIEmoji_Speechless]': '[Speechless]',\n '[TUIEmoji_Amazed]': '[Amazed]',\n '[TUIEmoji_Sorrow]': '[Sorrow]',\n '[TUIEmoji_Complacent]': '[Complacent]',\n '[TUIEmoji_Silly]': '[Silly]',\n '[TUIEmoji_Lustful]': '[Lustful]',\n '[TUIEmoji_Giggle]': '[Giggle]',\n '[TUIEmoji_Kiss]': '[Kiss]',\n '[TUIEmoji_Wail]': '[Wail]',\n '[TUIEmoji_TearsLaugh]': '[TearsLaugh]',\n '[TUIEmoji_Trapped]': '[Trapped]',\n '[TUIEmoji_Mask]': '[Mask]',\n '[TUIEmoji_Fear]': '[Fear]',\n '[TUIEmoji_BareTeeth]': '[BareTeeth]',\n '[TUIEmoji_FlareUp]': '[FlareUp]',\n '[TUIEmoji_Yawn]': '[Yawn]',\n '[TUIEmoji_Tact]': '[Tact]',\n '[TUIEmoji_Stareyes]': '[StarEyes]',\n '[TUIEmoji_ShutUp]': '[ShutUp]',\n '[TUIEmoji_Sigh]': '[Sigh]',\n '[TUIEmoji_Hehe]': '[Hehe]',\n '[TUIEmoji_Silent]': '[Silent]',\n '[TUIEmoji_Surprised]': '[Surprised]',\n '[TUIEmoji_Askance]': '[Askance]]',\n '[TUIEmoji_Ok]': '[OK]',\n '[TUIEmoji_Shit]': '[Shit]',\n '[TUIEmoji_Monster]': '[Monster]',\n '[TUIEmoji_Daemon]': '[Daemon]',\n '[TUIEmoji_Rage]': '[Rage]',\n '[TUIEmoji_Fool]': '[Fool]',\n '[TUIEmoji_Pig]': '[Pig]',\n '[TUIEmoji_Cow]': '[Cow]',\n '[TUIEmoji_Ai]': '[AI]',\n '[TUIEmoji_Skull]': '[Skull]',\n '[TUIEmoji_Bombs]': '[Bombs]',\n '[TUIEmoji_Coffee]': '[Coffee]',\n '[TUIEmoji_Cake]': '[Cake]',\n '[TUIEmoji_Beer]': '[Beer]',\n '[TUIEmoji_Flower]': '[Flower]',\n '[TUIEmoji_Watermelon]': '[Watermelon]',\n '[TUIEmoji_Rich]': '[Rich]',\n '[TUIEmoji_Heart]': '[Heart]',\n '[TUIEmoji_Moon]': '[Moon]',\n '[TUIEmoji_Sun]': '[Sun]',\n '[TUIEmoji_Star]': '[Star]',\n '[TUIEmoji_RedPacket]': '[RedPacket]',\n '[TUIEmoji_Celebrate]': '[Celebrate]',\n '[TUIEmoji_Bless]': '[Bless]',\n '[TUIEmoji_Fortune]': '[Fortune]',\n '[TUIEmoji_Convinced]': '[Convinced]',\n '[TUIEmoji_Prohibit]': '[Prohibit]',\n '[TUIEmoji_666]': '[666]',\n '[TUIEmoji_857]': '[857]',\n '[TUIEmoji_Knife]': '[Knife]',\n '[TUIEmoji_Like]': '[Like]',\n};\n\nexport default Emoji;\n"],"names":[],"mappings":";AAAA,MAAM,QAAQ;AAAA,EACZ,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,wBAAwB;AAAA,EACxB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,yBAAyB;AAAA,EACzB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,EACxB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,mBAAmB;AACrB;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"zh_cn.js","sources":["TUIKit/components/TUIChat/emoji-config/locales/zh_cn.ts"],"sourcesContent":["const Emoji: Record<string, string> = {\n '[TUIEmoji_Smile]': '[微笑]',\n '[TUIEmoji_Expect]': '[期待]',\n '[TUIEmoji_Blink]': '[眨眼]',\n '[TUIEmoji_Guffaw]': '[大笑]',\n '[TUIEmoji_KindSmile]': '[姨母笑]',\n '[TUIEmoji_Haha]': '[哈哈哈]',\n '[TUIEmoji_Cheerful]': '[愉快]',\n '[TUIEmoji_Speechless]': '[无语]',\n '[TUIEmoji_Amazed]': '[惊讶]',\n '[TUIEmoji_Sorrow]': '[悲伤]',\n '[TUIEmoji_Complacent]': '[得意]',\n '[TUIEmoji_Silly]': '[傻了]',\n '[TUIEmoji_Lustful]': '[色]',\n '[TUIEmoji_Giggle]': '[憨笑]',\n '[TUIEmoji_Kiss]': '[亲亲]',\n '[TUIEmoji_Wail]': '[大哭]',\n '[TUIEmoji_TearsLaugh]': '[哭笑]',\n '[TUIEmoji_Trapped]': '[困]',\n '[TUIEmoji_Mask]': '[口罩]',\n '[TUIEmoji_Fear]': '[恐惧]',\n '[TUIEmoji_BareTeeth]': '[龇牙]',\n '[TUIEmoji_FlareUp]': '[发怒]',\n '[TUIEmoji_Yawn]': '[打哈欠]',\n '[TUIEmoji_Tact]': '[机智]',\n '[TUIEmoji_Stareyes]': '[星星眼]',\n '[TUIEmoji_ShutUp]': '[闭嘴]',\n '[TUIEmoji_Sigh]': '[叹气]',\n '[TUIEmoji_Hehe]': '[呵呵]',\n '[TUIEmoji_Silent]': '[收声]',\n '[TUIEmoji_Surprised]': '[惊喜]',\n '[TUIEmoji_Askance]': '[白眼]',\n '[TUIEmoji_Ok]': '[OK]',\n '[TUIEmoji_Shit]': '[便便]',\n '[TUIEmoji_Monster]': '[怪兽]',\n '[TUIEmoji_Daemon]': '[恶魔]',\n '[TUIEmoji_Rage]': '[恶魔怒]',\n '[TUIEmoji_Fool]': '[衰]',\n '[TUIEmoji_Pig]': '[猪]',\n '[TUIEmoji_Cow]': '[牛]',\n '[TUIEmoji_Ai]': '[AI]',\n '[TUIEmoji_Skull]': '[骷髅]',\n '[TUIEmoji_Bombs]': '[炸弹]',\n '[TUIEmoji_Coffee]': '[咖啡]',\n '[TUIEmoji_Cake]': '[蛋糕]',\n '[TUIEmoji_Beer]': '[啤酒]',\n '[TUIEmoji_Flower]': '[花]',\n '[TUIEmoji_Watermelon]': '[瓜]',\n '[TUIEmoji_Rich]': '[壕]',\n '[TUIEmoji_Heart]': '[爱心]',\n '[TUIEmoji_Moon]': '[月亮]',\n '[TUIEmoji_Sun]': '[太阳]',\n '[TUIEmoji_Star]': '[星星]',\n '[TUIEmoji_RedPacket]': '[红包]',\n '[TUIEmoji_Celebrate]': '[庆祝]',\n '[TUIEmoji_Bless]': '[福]',\n '[TUIEmoji_Fortune]': '[发]',\n '[TUIEmoji_Convinced]': '[服]',\n '[TUIEmoji_Prohibit]': '[禁]',\n '[TUIEmoji_666]': '[666]',\n '[TUIEmoji_857]': '[857]',\n '[TUIEmoji_Knife]': '[刀]',\n '[TUIEmoji_Like]': '[赞]',\n};\n\nexport default Emoji;\n"],"names":[],"mappings":";AAAA,MAAM,QAAgC;AAAA,EACpC,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,wBAAwB;AAAA,EACxB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,yBAAyB;AAAA,EACzB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,EACxB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,mBAAmB;AACrB;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"entry-chat-only.js","sources":["TUIKit/components/TUIChat/entry-chat-only.ts"],"sourcesContent":["import { TUILogin } from '@tencentcloud/tui-core';\nimport { TUIConversationService } from '@tencentcloud/chat-uikit-engine';\n// #ifdef MP-WEIXIN\nimport { TUIChatKit } from '../../index.ts';\n// #endif\n\nexport const initChat = (options: Record<string, string>) => {\n // #ifdef MP-WEIXIN\n // uni-app packages the mini program.\n // If you call TUIChatKit.init() directly during import, an error will be reported.\n // You need to init during the page onLoad.\n TUIChatKit.init();\n // #endif\n\n // When opening TUIChat, the options and options.conversationID parameters carried in the url,\n // determine whether to enter the Chat from the [Conversation List] or [Online Communication].\n const { chat } = TUILogin.getContext();\n if (options && options.conversationID && chat?.isReady()) {\n const { conversationID } = options;\n // verify conversationID\n if (!conversationID.startsWith('C2C') && !conversationID.startsWith('GROUP')) {\n console.warn('conversationID from options is invalid.');\n return;\n }\n // open chat\n TUIConversationService.switchConversation(conversationID);\n }\n};\n\nexport const logout = (flag: boolean) => {\n if (flag) {\n return TUILogin.logout();\n }\n return Promise.resolve();\n};\n"],"names":["TUIChatKit","TUILogin","uni","TUIConversationService"],"mappings":";;;AAMa,MAAA,WAAW,CAAC,YAAoC;AAK3DA,eAAA,WAAW,KAAK;AAKhB,QAAM,EAAE,KAAA,IAASC,cAAA,EAAS,WAAW;AACrC,MAAI,WAAW,QAAQ,mBAAkB,6BAAM,YAAW;AAClD,UAAA,EAAE,eAAmB,IAAA;AAEvB,QAAA,CAAC,eAAe,WAAW,KAAK,KAAK,CAAC,eAAe,WAAW,OAAO,GAAG;AAC/DC,oBAAAA,MAAA,MAAA,QAAA,sDAAA,yCAAyC;AACtD;AAAA,IACF;AAEAC,qBAAuB,mBAAmB,cAAc;AAAA,EAC1D;AACF;AAEa,MAAA,SAAS,CAAC,SAAkB;AACvC,MAAI,MAAM;AACR,WAAOF,cAAAA,EAAS;EAClB;AACA,SAAO,QAAQ;AACjB;;;"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/VFVJS2l0XGNvbXBvbmVudHNcVFVJQ2hhdFxpbmRleC52dWU"],"sourcesContent":["import MiniProgramPage from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["MiniProgramPage"],"mappings":";;AACA,GAAG,WAAWA,wBAAe,iBAAA;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtaW5wdXQtdG9vbGJhci90b29sYmFyLWl0ZW0tY29udGFpbmVyL2luZGV4LnZ1ZQ"],"sourcesContent":["<template>\n <div\n ref=\"toolbarItemRef\"\n :class=\"[\n 'toolbar-item-container',\n !isPC && 'toolbar-item-container-h5',\n isUniFrameWork && 'toolbar-item-container-uni',\n ]\"\n >\n <div\n :class=\"[\n 'toolbar-item-container-icon',\n isUniFrameWork && 'toolbar-item-container-uni-icon',\n ]\"\n @click=\"toggleToolbarItem\"\n >\n <Icon\n :file=\"props.iconFile\"\n class=\"icon\"\n :width=\"props.iconWidth\"\n :height=\"props.iconHeight\"\n />\n </div>\n <div\n v-if=\"isUniFrameWork\"\n :class=\"['toolbar-item-container-uni-title']\"\n >\n {{ props.title }}\n </div>\n <div\n v-show=\"showDialog\"\n ref=\"dialogRef\"\n :class=\"[\n 'toolbar-item-container-dialog',\n isDark && 'toolbar-item-container-dialog-dark',\n !isPC && 'toolbar-item-container-h5-dialog',\n isUniFrameWork && 'toolbar-item-container-uni-dialog',\n ]\"\n >\n <BottomPopup\n v-if=\"props.needBottomPopup && !isPC\"\n class=\"toolbar-bottom-popup\"\n :show=\"showDialog\"\n @touchmove.stop.prevent\n @onClose=\"onPopupClose\"\n >\n <slot />\n </BottomPopup>\n <slot v-else />\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { ref } from '../../../../adapter-vue';\nimport { outsideClick } from '@tencentcloud/universal-api';\nimport Icon from '../../../common/Icon.vue';\nimport BottomPopup from '../../../common/BottomPopup/index.vue';\nimport { isPC, isUniFrameWork } from '../../../../utils/env';\nimport TUIChatConfig from '../../config';\n\nconst props = defineProps({\n iconFile: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n default: '',\n },\n needDialog: {\n type: Boolean,\n default: true,\n },\n iconWidth: {\n type: String,\n default: '20px',\n },\n iconHeight: {\n type: String,\n default: '20px',\n },\n // Whether to display the bottom popup dialog on mobile devices\n // Invalid on PC\n needBottomPopup: {\n type: Boolean,\n default: false,\n },\n});\n\nconst emits = defineEmits(['onIconClick', 'onDialogClose', 'onDialogShow']);\n\nconst isDark = ref(TUIChatConfig.getTheme() === 'dark');\nconst showDialog = ref(false);\nconst toolbarItemRef = ref();\nconst dialogRef = ref();\n\nconst toggleToolbarItem = () => {\n emits('onIconClick', dialogRef);\n if (isPC) {\n outsideClick.listen({\n domRefs: toolbarItemRef.value,\n handler: closeToolbarItem,\n });\n }\n if (!props.needDialog) {\n return;\n }\n toggleDialogDisplay(!showDialog.value);\n};\n\nconst closeToolbarItem = () => {\n showDialog.value = false;\n emits('onDialogClose', dialogRef);\n};\n\nconst toggleDialogDisplay = (showStatus: boolean) => {\n if (showDialog.value === showStatus) {\n return;\n }\n showDialog.value = showStatus;\n switch (showStatus) {\n case true:\n emits('onDialogShow', dialogRef);\n break;\n case false:\n emits('onDialogClose', dialogRef);\n }\n};\n\nconst onPopupClose = () => {\n showDialog.value = false;\n};\n\ndefineExpose({\n toggleDialogDisplay,\n});\n</script>\n<style lang=\"scss\" scoped src=\"./style/index.scss\"></style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-input-toolbar/toolbar-item-container/index.vue'\nwx.createComponent(Component)"],"names":["ref","TUIChatConfig","isPC","outsideClick"],"mappings":";;;;;;;;AAuDA,MAAA,OAAiB,MAAA;AACjB,MAAA,cAAwB,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIxB,UAAM,QAAQ;AA6Bd,UAAM,QAAQ;AAEd,UAAM,SAASA,cAAAA,IAAIC,iCAAAA,WAAc,eAAe,MAAM;AAChD,UAAA,aAAaD,kBAAI,KAAK;AAC5B,UAAM,iBAAiBA,cAAAA;AACvB,UAAM,YAAYA,cAAAA;AAElB,UAAM,oBAAoB,MAAM;AAC9B,YAAM,eAAe,SAAS;AAC9B,UAAIE,uBAAM;AACRC,sBAAAA,EAAa,OAAO;AAAA,UAClB,SAAS,eAAe;AAAA,UACxB,SAAS;AAAA,QAAA,CACV;AAAA,MACH;AACI,UAAA,CAAC,MAAM,YAAY;AACrB;AAAA,MACF;AACoB,0BAAA,CAAC,WAAW,KAAK;AAAA,IAAA;AAGvC,UAAM,mBAAmB,MAAM;AAC7B,iBAAW,QAAQ;AACnB,YAAM,iBAAiB,SAAS;AAAA,IAAA;AAG5B,UAAA,sBAAsB,CAAC,eAAwB;AAC/C,UAAA,WAAW,UAAU,YAAY;AACnC;AAAA,MACF;AACA,iBAAW,QAAQ;AACnB,cAAQ,YAAY;AAAA,QAClB,KAAK;AACH,gBAAM,gBAAgB,SAAS;AAC/B;AAAA,QACF,KAAK;AACH,gBAAM,iBAAiB,SAAS;AAAA,MACpC;AAAA,IAAA;AAGF,UAAM,eAAe,MAAM;AACzB,iBAAW,QAAQ;AAAA,IAAA;AAGR,aAAA;AAAA,MACX;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtID,GAAG,gBAAgB,SAAS;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/message-input-toolbar/words/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtaW5wdXQtdG9vbGJhci93b3Jkcy9pbmRleC52dWU"],"sourcesContent":["<template>\n <ToolbarItemContainer\n ref=\"container\"\n :iconFile=\"wordsIcon\"\n title=\"常用语\"\n :needBottomPopup=\"true\"\n :iconWidth=\"isUniFrameWork ? '26px' : '20px'\"\n :iconHeight=\"isUniFrameWork ? '26px' : '20px'\"\n @onDialogShow=\"onDialogShow\"\n @onDialogClose=\"onDialogClose\"\n >\n <div :class=\"['words', !isPC && 'words-h5']\">\n <div :class=\"['words-header', !isPC && 'words-h5-header']\">\n <span :class=\"['words-header-title', !isPC && 'words-h5-header-title']\">\n {{ TUITranslateService.t(\"Words.常用语-快捷回复工具\") }}\n </span>\n <span\n v-if=\"!isPC\"\n :class=\"['words-header-close', !isPC && 'words-h5-header-close']\"\n @click=\"closeDialog\"\n >\n 关闭\n </span>\n </div>\n <ul :class=\"['words-list', !isPC && 'words-h5-list']\">\n <li\n v-for=\"(item, index) in wordsList\"\n :key=\"index\"\n :class=\"['words-list-item', !isPC && 'words-h5-list-item']\"\n @click=\"selectWord(item)\"\n >\n {{ TUITranslateService.t(`Words.${item.value}`) }}\n </li>\n </ul>\n </div>\n </ToolbarItemContainer>\n</template>\n<script setup lang=\"ts\">\nimport {\n TUITranslateService,\n TUIStore,\n StoreName,\n IConversationModel,\n SendMessageParams,\n TUIChatService,\n} from '@tencentcloud/chat-uikit-engine';\nimport { ref } from '../../../../adapter-vue';\nimport ToolbarItemContainer from '../toolbar-item-container/index.vue';\nimport wordsIconLight from '../../../../assets/icon/words-light.svg';\nimport wordsIconDark from '../../../../assets/icon/words-dark.svg';\nimport { wordsList } from '../../utils/wordsList';\nimport { isEnabledMessageReadReceiptGlobal } from '../../utils/utils';\nimport { isPC, isUniFrameWork } from '../../../../utils/env';\nimport TUIChatConfig from '../../config';\n\nconst wordsIcon = TUIChatConfig.getTheme() === 'dark' ? wordsIconDark : wordsIconLight;\nconst emits = defineEmits(['onDialogPopupShowOrHide']);\nconst currentConversation = ref<IConversationModel>();\nconst container = ref();\n\nTUIStore.watch(StoreName.CONV, {\n currentConversation: (conversation: IConversationModel) => {\n currentConversation.value = conversation;\n },\n});\n\nconst selectWord = (item: any) => {\n const options = {\n to:\n currentConversation?.value?.groupProfile?.groupID\n || currentConversation?.value?.userProfile?.userID,\n conversationType: currentConversation?.value?.type,\n payload: {\n text: TUITranslateService.t(`Words.${item.value}`),\n },\n needReadReceipt: isEnabledMessageReadReceiptGlobal(),\n } as SendMessageParams;\n TUIChatService.sendTextMessage(options);\n // close dialog after submit evaluate\n container?.value?.toggleDialogDisplay(false);\n};\n\nconst closeDialog = () => {\n container?.value?.toggleDialogDisplay(false);\n};\n\nconst onDialogShow = () => {\n emits('onDialogPopupShowOrHide', true);\n};\n\nconst onDialogClose = () => {\n emits('onDialogPopupShowOrHide', false);\n};\n</script>\n<style scoped lang=\"scss\" src=\"./style/index.scss\"></style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-input-toolbar/words/index.vue'\nwx.createComponent(Component)"],"names":["TUIChatConfig","wordsIconDark","wordsIconLight","ref","TUIStore","StoreName","TUITranslateService","isEnabledMessageReadReceiptGlobal","TUIChatService"],"mappings":";;;;;;;;;;;AA+CA,MAAA,uBAAiC,MAAA;;;;;AAQjC,UAAM,YAAYA,iCAAAA,WAAc,SAAS,MAAM,SAASC,cAAgB,gBAAAC;AACxE,UAAM,QAAQ;AACd,UAAM,sBAAsBC,cAAAA;AAC5B,UAAM,YAAYA,cAAAA;AAETC,qBAAA,MAAMC,gBAAU,MAAM;AAAA,MAC7B,qBAAqB,CAAC,iBAAqC;AACzD,4BAAoB,QAAQ;AAAA,MAC9B;AAAA,IAAA,CACD;AAEK,UAAA,aAAa,CAAC,SAAc;;AAChC,YAAM,UAAU;AAAA,QACd,MACE,sEAAqB,UAArB,mBAA4B,iBAA5B,mBAA0C,cACvC,sEAAqB,UAArB,mBAA4B,gBAA5B,mBAAyC;AAAA,QAC9C,mBAAkB,gEAAqB,UAArB,mBAA4B;AAAA,QAC9C,SAAS;AAAA,UACP,MAAMC,cAAoB,GAAA,EAAE,SAAS,KAAK,KAAK,EAAE;AAAA,QACnD;AAAA,QACA,iBAAiBC,sCAAAA,kCAAkC;AAAA,MAAA;AAErDC,uBAAe,gBAAgB,OAAO;AAE3B,mDAAA,UAAA,mBAAO,oBAAoB;AAAA,IAAK;AAG7C,UAAM,cAAc,MAAM;;AACb,mDAAA,UAAA,mBAAO,oBAAoB;AAAA,IAAK;AAG7C,UAAM,eAAe,MAAM;AACzB,YAAM,2BAA2B,IAAI;AAAA,IAAA;AAGvC,UAAM,gBAAgB,MAAM;AAC1B,YAAM,2BAA2B,KAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FxC,GAAG,gBAAgB,SAAS;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/message-list/link/index.ts"],"sourcesContent":["const Link = {\n product: {\n label: '产品文档',\n url: 'https://cloud.tencent.com/document/product/269/1499#.E7.BE.A4.E7.BB.84.E5.8A.9F.E8.83.BD',\n },\n customMessage: {\n label: '自定义消息',\n url: 'https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html#createCustomMessage',\n },\n complaint: {\n label: '点此投诉',\n url: 'https://cloud.tencent.com/apply/p/xc3oaubi98g',\n },\n implement: {\n label: '集成TUICallKit',\n url: 'https://cloud.tencent.com/document/product/269/79861',\n },\n purchase: {\n label: '开通腾讯实时音视频服务',\n url: 'https://cloud.tencent.com/document/product/1640/79968',\n },\n};\nexport default Link;\n"],"names":[],"mappings":";AAAA,MAAM,OAAO;AAAA,EACX,SAAS;AAAA,IACP,OAAO;AAAA,IACP,KAAK;AAAA,EACP;AAAA,EACA,eAAe;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,EACP;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,KAAK;AAAA,EACP;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,KAAK;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,KAAK;AAAA,EACP;AACF;;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"convert-content.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtY29udmVydC9jb252ZXJ0LWNvbnRlbnQudnVl"],"sourcesContent":["<template>\n <div class=\"message-convert-container\">\n <div\n v-if=\"convertFinished\"\n :class=\"{\n 'convert-content': true,\n 'occur': true,\n }\"\n >\n {{ convertText }}\n </div>\n <div\n :class=\"{\n 'loading': true,\n 'loading-end': convertFinished\n }\"\n >\n {{ TUITranslateService.t('TUIChat.转换中') }}...\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, watch } from '../../../../../adapter-vue';\nimport {\n IMessageModel,\n TUITranslateService,\n} from '@tencentcloud/chat-uikit-engine';\nimport { convertor } from '../../../utils/convertVoiceToText';\n\ninterface IProps {\n message: IMessageModel;\n contentVisible: boolean;\n}\n\ninterface IEmits {\n (e: 'toggleErrorStatus', status: boolean): void;\n}\n\nconst emits = defineEmits<IEmits>();\nconst props = withDefaults(defineProps<IProps>(), {\n message: () => ({} as IMessageModel),\n isSingleConvert: false,\n});\n\nconst convertFinished = ref<boolean>(false);\nconst convertText = ref<string>('');\n\nwatch(() => props.contentVisible, (newVal: boolean) => {\n if (newVal) {\n convertor.get(props.message)\n .then((text) => {\n convertFinished.value = true;\n convertText.value = text;\n })\n .catch((err) => {\n convertFinished.value = true;\n emits('toggleErrorStatus', true);\n convertText.value = err.message;\n });\n }\n}, {\n immediate: true,\n});\n</script>\n\n<style lang=\"scss\" scoped>\n.message-convert-container {\n min-height: 20px;\n min-width: 80px;\n position: relative;\n transition: width 0.15s ease-out, height 0.15s ease-out, ;\n font-size: 14px;\n\n .loading {\n position: absolute;\n top: 0;\n left: 0;\n opacity: 1;\n transition: opacity 0.3s ease-out;\n\n &.loading-end {\n opacity: 0;\n }\n }\n\n .convert-content {\n opacity: 0;\n\n &.occur {\n animation: occur 0.3s ease-out 0.45s forwards;\n\n @keyframes occur {\n 100% {\n opacity: 1;\n }\n }\n }\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-convert/convert-content.vue'\nwx.createComponent(Component)"],"names":["ref","watch","convertor"],"mappings":";;;;;;;;;;;;AAuCA,UAAM,QAAQ;AACd,UAAM,QAAQ;AAKR,UAAA,kBAAkBA,kBAAa,KAAK;AACpC,UAAA,cAAcA,kBAAY,EAAE;AAElCC,kBAAAA,MAAM,MAAM,MAAM,gBAAgB,CAAC,WAAoB;AACrD,UAAI,QAAQ;AACVC,2DAAA,UAAU,IAAI,MAAM,OAAO,EACxB,KAAK,CAAC,SAAS;AACd,0BAAgB,QAAQ;AACxB,sBAAY,QAAQ;AAAA,QAAA,CACrB,EACA,MAAM,CAAC,QAAQ;AACd,0BAAgB,QAAQ;AACxB,gBAAM,qBAAqB,IAAI;AAC/B,sBAAY,QAAQ,IAAI;AAAA,QAAA,CACzB;AAAA,MACL;AAAA,IAAA,GACC;AAAA,MACD,WAAW;AAAA,IAAA,CACZ;;;;;;;;;;;;;;AC9DD,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtY29udmVydC9pbmRleC52dWU"],"sourcesContent":["<template>\n <div\n v-if=\"convertVisible\"\n ref=\"convertWrapperRef\"\n :class=\"{\n 'message-convert': true,\n 'reverse': props.message.flow === 'out',\n 'error': hasConvertError,\n }\"\n >\n <ConvertContent\n :message=\"props.message\"\n :contentVisible=\"convertVisible\"\n :isSingleConvert=\"isSingleConvert\"\n :convertWrapperRef=\"convertWrapperRef\"\n @toggleErrorStatus=\"toggleErrorStatus\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted, onUnmounted } from '../../../../../adapter-vue';\nimport {\n TUIStore,\n StoreName,\n IMessageModel,\n} from '@tencentcloud/chat-uikit-engine';\nimport ConvertContent from './convert-content.vue';\nimport { IConvertInfo } from '../../../../../interface';\n\ninterface IProps {\n message: IMessageModel;\n}\n\nconst props = withDefaults(defineProps<IProps>(), {\n message: () => ({} as IMessageModel),\n});\n\nconst convertVisible = ref<boolean>(false);\nconst hasConvertError = ref<boolean>(false);\nconst convertWrapperRef = ref<HTMLDivElement>();\n\nlet isSingleConvert = true;\n\nonMounted(() => {\n TUIStore.watch(StoreName.CHAT, {\n voiceToTextInfo: onMessageConvertUpdated,\n });\n});\n\nonUnmounted(() => {\n TUIStore.unwatch(StoreName.CHAT, {\n voiceToTextInfo: onMessageConvertUpdated,\n });\n});\n\nfunction toggleErrorStatus(hasError: boolean) {\n hasConvertError.value = hasError;\n}\n\nfunction onMessageConvertUpdated(info: Map<string, IConvertInfo[]>) {\n if (info === undefined) return;\n isSingleConvert = false;\n const convertInfoList = info.get(props.message.conversationID) || [];\n for (let i = 0; i < convertInfoList.length; ++i) {\n const { messageID, visible } = convertInfoList[i];\n if (messageID === props.message.ID && visible !== undefined) {\n if (convertInfoList.length === 1 && visible) {\n isSingleConvert = true;\n }\n hasConvertError.value = false;\n convertVisible.value = visible;\n break;\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.message-convert {\n margin-top: 4px;\n margin-left: 44px;\n padding: 10px;\n background-color: #f2f7ff;\n border-radius: 10px;\n display: flex;\n flex-direction: column !important;\n transition: background-color 0.15s ease-out;\n\n &.error {\n background-color: #ffdfdf;\n }\n}\n\n.message-convert.reverse {\n margin-right: 44px;\n margin-left: auto;\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-convert/index.vue'\nwx.createComponent(Component)"],"names":["ref","onMounted","TUIStore","StoreName","onUnmounted"],"mappings":";;;;;;AA2BA,MAAA,iBAA2B,MAAA;;;;;;;AAO3B,UAAM,QAAQ;AAIR,UAAA,iBAAiBA,kBAAa,KAAK;AACnC,UAAA,kBAAkBA,kBAAa,KAAK;AAC1C,UAAM,oBAAoBA,cAAAA;AAE1B,QAAI,kBAAkB;AAEtBC,kBAAAA,UAAU,MAAM;AACLC,uBAAA,MAAMC,gBAAU,MAAM;AAAA,QAC7B,iBAAiB;AAAA,MAAA,CAClB;AAAA,IAAA,CACF;AAEDC,kBAAAA,YAAY,MAAM;AACPF,uBAAA,QAAQC,gBAAU,MAAM;AAAA,QAC/B,iBAAiB;AAAA,MAAA,CAClB;AAAA,IAAA,CACF;AAED,aAAS,kBAAkB,UAAmB;AAC5C,sBAAgB,QAAQ;AAAA,IAC1B;AAEA,aAAS,wBAAwB,MAAmC;AAClE,UAAI,SAAS;AAAW;AACN,wBAAA;AAClB,YAAM,kBAAkB,KAAK,IAAI,MAAM,QAAQ,cAAc,KAAK;AAClE,eAAS,IAAI,GAAG,IAAI,gBAAgB,QAAQ,EAAE,GAAG;AAC/C,cAAM,EAAE,WAAW,QAAQ,IAAI,gBAAgB,CAAC;AAChD,YAAI,cAAc,MAAM,QAAQ,MAAM,YAAY,QAAW;AACvD,cAAA,gBAAgB,WAAW,KAAK,SAAS;AACzB,8BAAA;AAAA,UACpB;AACA,0BAAgB,QAAQ;AACxB,yBAAe,QAAQ;AACvB;AAAA,QACF;AAAA,MACF;AAAA,IACF;;;;;;;;;;;;;;;;;;;AC1EA,GAAG,gBAAgB,SAAS;"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"message-face.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-face.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtZmFjZS52dWU"],"sourcesContent":["<template>\n <div\n class=\"message-image\"\n >\n <img\n mode=\"aspectFit\"\n class=\"message-image\"\n :src=\"url\"\n >\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted } from '../../../../adapter-vue';\nimport { CUSTOM_BIG_EMOJI_URL } from '../../emoji-config';\n\nconst props = defineProps({\n content: {\n type: Object,\n default: () => ({}),\n },\n});\n\nconst url = ref(props.content.url);\n\nonMounted(() => {\n if (props.content.type === 'custom') {\n if (!CUSTOM_BIG_EMOJI_URL) {\n uni.__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.');\n } else {\n url.value = CUSTOM_BIG_EMOJI_URL + props.content.name;\n }\n }\n});\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"../../../../assets/styles/common\";\n\n.message-image {\n width: 80px;\n height: 80px;\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-face.vue'\nwx.createComponent(Component)"],"names":["ref","onMounted","uni"],"mappings":";;;;;;;;;;;;;AAgBA,UAAM,QAAQ;AAOd,UAAM,MAAMA,cAAA,IAAI,MAAM,QAAQ,GAAG;AAEjCC,kBAAAA,UAAU,MAAM;AACV,UAAA,MAAM,QAAQ,SAAS,UAAU;AACR;AACrBC,wBAAAA,MAAA,MAAM,QAAO,kFAAiF,4FAA4F;AAAA,QAGhM;AAAA,MACF;AAAA,IAAA,CACD;;;;;;;;;AChCD,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"message-file.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-file.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtZmlsZS52dWU"],"sourcesContent":["<template>\n <div\n class=\"file-message-montainer\"\n :title=\"TUITranslateService.t('TUIChat.单击下载')\"\n @click=\"download\"\n >\n <Icon\n :file=\"files\"\n class=\"file-icon\"\n />\n <div>\n <div>{{ props.content.name }}</div>\n <div>{{ props.content.size }}</div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { withDefaults } from '../../../../adapter-vue';\nimport { TUITranslateService, IMessageModel } from '@tencentcloud/chat-uikit-engine';\nimport Icon from '../../../common/Icon.vue';\nimport files from '../../../../assets/icon/file-light.svg';\nimport type { IFileMessageContent } from '../../../../interface';\n\nconst props = withDefaults(\n defineProps<{\n content: IFileMessageContent;\n messageItem: IMessageModel;\n }>(),\n {\n content: () => ({} as IFileMessageContent),\n messageItem: () => ({} as IMessageModel),\n },\n);\n\nconst download = () => {\n if (props.messageItem.hasRiskContent) {\n return;\n }\n const option = {\n mode: 'cors',\n headers: new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded',\n }),\n } as RequestInit;\n // If the browser supports fetch, use blob to download, so as to avoid the browser clicking the a tag and jumping to the preview of the new page\n if ((window as any)?.fetch) {\n fetch(props.content.url, option)\n .then(res => res.blob())\n .then((blob) => {\n const a = document.createElement('a');\n const url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = props.content.name;\n a.click();\n });\n } else {\n const a = document.createElement('a');\n a.href = props.content.url;\n a.target = '_blank';\n a.download = props.content.name;\n a.click();\n }\n};\n</script>\n<style lang=\"scss\" scoped>\n@import \"../../../../assets/styles/common\";\n\n.file-message-montainer {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n\n .file-icon {\n margin: auto 8px;\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-file.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;AAoBA,MAAA,OAAiB,MAAA;;;;;;;;AAIjB,UAAM,QAAQ;AAWd,UAAM,WAAW,MAAM;AACjB,UAAA,MAAM,YAAY,gBAAgB;AACpC;AAAA,MACF;AACA,YAAM,SAAS;AAAA,QACb,MAAM;AAAA,QACN,SAAS,IAAI,QAAQ;AAAA,UACnB,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA;AAGH,UAAK,iCAAgB,OAAO;AAC1B,cAAM,MAAM,QAAQ,KAAK,MAAM,EAC5B,KAAK,CAAO,QAAA,IAAI,KAAK,CAAC,EACtB,KAAK,CAAC,SAAS;AACR,gBAAA,IAAI,SAAS,cAAc,GAAG;AACpC,gBAAM,MAAM,OAAO,IAAI,gBAAgB,IAAI;AAC3C,YAAE,OAAO;AACP,YAAA,WAAW,MAAM,QAAQ;AAC3B,YAAE,MAAM;AAAA,QAAA,CACT;AAAA,MAAA,OACE;AACC,cAAA,IAAI,SAAS,cAAc,GAAG;AAClC,UAAA,OAAO,MAAM,QAAQ;AACvB,UAAE,SAAS;AACT,UAAA,WAAW,MAAM,QAAQ;AAC3B,UAAE,MAAM;AAAA,MACV;AAAA,IAAA;;;;;;;;;;;;;;;AC7DF,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"message-image.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-image.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtaW1hZ2UudnVl"],"sourcesContent":["<template>\n <div\n class=\"image-container\"\n @click=\"handleImagePreview\"\n >\n <image\n class=\"message-image\"\n mode=\"aspectFit\"\n :src=\"props.content.url\"\n :style=\"{ width: imageStyles.width, height: imageStyles.height }\"\n @load=\"imageLoad\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { watchEffect, ref } from '../../../../adapter-vue';\nimport type { IMessageModel } from '@tencentcloud/chat-uikit-engine';\nimport type { IImageMessageContent } from '../../../../interface';\n\ninterface IProps {\n content: IImageMessageContent;\n messageItem: IMessageModel;\n}\ninterface IEmit {\n (key: 'previewImage'): void;\n}\n\nconst emits = defineEmits<IEmit>();\nconst props = withDefaults(\n defineProps<IProps>(),\n {\n content: () => ({}),\n messageItem: () => ({} as IMessageModel),\n },\n);\n\nconst DEFAULT_MAX_SIZE = 155;\nconst imageStyles = ref({ width: 'auto', height: 'auto' });\n\nconst genImageStyles = (value: { width?: any; height?: any }) => {\n const { width, height } = value;\n if (width === 0 || height === 0) {\n return;\n }\n\n let imageWidth = 0;\n let imageHeight = 0;\n if (width >= height) {\n imageWidth = DEFAULT_MAX_SIZE;\n imageHeight = (DEFAULT_MAX_SIZE * height) / width;\n } else {\n imageWidth = (DEFAULT_MAX_SIZE * width) / height;\n imageHeight = DEFAULT_MAX_SIZE;\n }\n imageStyles.value.width = imageWidth + 'px';\n imageStyles.value.height = imageHeight + 'px';\n};\n\nwatchEffect(() => {\n genImageStyles(props.content);\n});\n\nconst imageLoad = (event: Event) => {\n genImageStyles(event.detail);\n};\n\nconst handleImagePreview = () => {\n if (props.messageItem?.status === 'success' || props.messageItem.progress === 1) {\n emits('previewImage');\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.image-container {\n position: relative;\n background-color: #f4f4f4;\n font-size: 0;\n\n .message-image {\n max-width: 150px;\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-image.vue'\nwx.createComponent(Component)"],"names":["ref","watchEffect"],"mappings":";;;AAqCA,MAAM,mBAAmB;;;;;;;;;AATzB,UAAM,QAAQ;AACd,UAAM,QAAQ;AASd,UAAM,cAAcA,cAAAA,IAAI,EAAE,OAAO,QAAQ,QAAQ,QAAQ;AAEnD,UAAA,iBAAiB,CAAC,UAAyC;AACzD,YAAA,EAAE,OAAO,OAAW,IAAA;AACtB,UAAA,UAAU,KAAK,WAAW,GAAG;AAC/B;AAAA,MACF;AAEA,UAAI,aAAa;AACjB,UAAI,cAAc;AAClB,UAAI,SAAS,QAAQ;AACN,qBAAA;AACb,sBAAe,mBAAmB,SAAU;AAAA,MAAA,OACvC;AACL,qBAAc,mBAAmB,QAAS;AAC5B,sBAAA;AAAA,MAChB;AACY,kBAAA,MAAM,QAAQ,aAAa;AAC3B,kBAAA,MAAM,SAAS,cAAc;AAAA,IAAA;AAG3CC,kBAAAA,YAAY,MAAM;AAChB,qBAAe,MAAM,OAAO;AAAA,IAAA,CAC7B;AAEK,UAAA,YAAY,CAAC,UAAiB;AAClC,qBAAe,MAAM,MAAM;AAAA,IAAA;AAG7B,UAAM,qBAAqB,MAAM;;AAC/B,YAAI,WAAM,gBAAN,mBAAmB,YAAW,aAAa,MAAM,YAAY,aAAa,GAAG;AAC/E,cAAM,cAAc;AAAA,MACtB;AAAA,IAAA;;;;;;;;;;;;;ACrEF,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"message-location.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-location.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtbG9jYXRpb24udnVl"],"sourcesContent":["<template>\n <a\n class=\"message-location\"\n :href=\"data.href\"\n target=\"_blank\"\n title=\"点击查看详情\"\n >\n <span class=\"el-icon-location-outline\">{{ data.description }}</span>\n <img :src=\"data.url\">\n </a>\n</template>\n\n<script lang=\"ts\" setup>\nimport { watchEffect, ref } from '../../../../adapter-vue';\nconst props = defineProps({\n content: {\n type: Object,\n default: () => ({}),\n },\n});\nconst data = ref();\nwatchEffect(() => {\n data.value = props.content;\n});\n</script>\n<style lang=\"scss\" scoped>\n@import \"../../../../assets/styles/common\";\n\n.message-location {\n display: flex;\n flex-direction: column;\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-location.vue'\nwx.createComponent(Component)"],"names":["ref","watchEffect"],"mappings":";;;;;;;;;;;;AAcA,UAAM,QAAQ;AAMd,UAAM,OAAOA,cAAAA;AACbC,kBAAAA,YAAY,MAAM;AAChB,WAAK,QAAQ,MAAM;AAAA,IAAA,CACpB;;;;;;;;;;;ACtBD,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"interface.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-quote/interface.ts"],"sourcesContent":["export interface IQuoteContent {\n messageAbstract: string;\n messageID: string;\n messageSender: string;\n messageSequence: number;\n messageTime: number;\n messageType: number;\n version: number;\n}\n\nexport interface ICloudCustomData {\n messageReply: IQuoteContent;\n}\n\nexport enum MessageQuoteTypeEnum {\n /**\n * none message\n */\n TYPE_NONE = 0,\n /**\n * text message\n */\n TYPE_TEXT = 1,\n /**\n * custom message\n */\n TYPE_CUSTOM = 2,\n /**\n * image message\n */\n TYPE_IMAGE = 3,\n /**\n * voice message\n */\n TYPE_SOUND = 4,\n /**\n * video message\n */\n TYPE_VIDEO = 5,\n /**\n * file message\n */\n TYPE_FILE = 6,\n /**\n * location message\n */\n TYPE_LOCATION = 7,\n /**\n * animation face message\n */\n TYPE_FACE = 8,\n /**\n * group tips message (save in message list)\n */\n TYPE_GROUP_TIPS = 9,\n /**\n * merge forward message\n */\n TYPE_MERGER = 10,\n}\n"],"names":["MessageQuoteTypeEnum"],"mappings":";AAcY,IAAA,yCAAAA,0BAAL;AAILA,wBAAAA,sBAAA,eAAY,CAAZ,IAAA;AAIAA,wBAAAA,sBAAA,eAAY,CAAZ,IAAA;AAIAA,wBAAAA,sBAAA,iBAAc,CAAd,IAAA;AAIAA,wBAAAA,sBAAA,gBAAa,CAAb,IAAA;AAIAA,wBAAAA,sBAAA,gBAAa,CAAb,IAAA;AAIAA,wBAAAA,sBAAA,gBAAa,CAAb,IAAA;AAIAA,wBAAAA,sBAAA,eAAY,CAAZ,IAAA;AAIAA,wBAAAA,sBAAA,mBAAgB,CAAhB,IAAA;AAIAA,wBAAAA,sBAAA,eAAY,CAAZ,IAAA;AAIAA,wBAAAA,sBAAA,qBAAkB,CAAlB,IAAA;AAIAA,wBAAAA,sBAAA,iBAAc,EAAd,IAAA;AA5CUA,SAAAA;AAAA,GAAA,wBAAA,CAAA,CAAA;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-record/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtcmVjb3JkL2luZGV4LnZ1ZQ"],"sourcesContent":["<template>\n <div>\n <div\n class=\"message-record-container\"\n @click=\"openMergeDetail\"\n >\n <div\n class=\"record-title\"\n >\n {{ props.renderData.title }}\n </div>\n <div class=\"record-abstract-container\">\n <div\n v-for=\"(item, index) in props.renderData.abstractList.slice(0, 7)\"\n :key=\"index\"\n class=\"record-abstract-item\"\n >\n {{ transformTextWithKeysToEmojiNames(item) }}\n </div>\n </div>\n <div class=\"record-footer\">\n {{ TUITranslateService.t('TUIChat.聊天记录') }}\n </div>\n </div>\n <Overlay\n v-if=\"!props.disabled && isPC\"\n :visible=\"isMessageListVisible\"\n @onOverlayClick=\"isMessageListVisible = false\"\n >\n <SimpleMessageList\n :isMounted=\"isMessageListVisible\"\n :renderData=\"props.renderData\"\n :messageID=\"props.messageItem.ID\"\n @closeOverlay=\"closeMergeDetail\"\n />\n </Overlay>\n <Drawer\n v-else-if=\"!props.disabled && isH5 && !isUniFrameWork\"\n :visible=\"isMessageListVisible\"\n :isFullScreen=\"true\"\n :overlayColor=\"'transparent'\"\n :popDirection=\"'right'\"\n >\n <SimpleMessageList\n :isMounted=\"isMessageListVisible\"\n :renderData=\"props.renderData\"\n :messageID=\"props.messageItem.ID\"\n @closeOverlay=\"closeMergeDetail\"\n />\n </Drawer>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, withDefaults } from '../../../../../adapter-vue';\nimport { TUITranslateService, IMessageModel } from '@tencentcloud/chat-uikit-engine';\nimport Overlay from '../../../../common/Overlay/index.vue';\nimport Drawer from '../../../../common/Drawer/index.vue';\nimport SimpleMessageList from '../simple-message-list/index.vue';\nimport { isH5, isPC, isUniFrameWork } from '../../../../../utils/env';\nimport { transformTextWithKeysToEmojiNames } from '../../../emoji-config/index';\nimport { IMergeMessageContent } from '../../../../../interface';\n\ninterface IEmits {\n (e: 'assignMessageIDInUniapp', messageID: string): void;\n}\n\ninterface IProps {\n // Core data for rendering message record card and message list\n renderData: IMergeMessageContent;\n /**\n * The MessageRecord component has two main functions:\n * 1. display message record cards primarily.\n * 2. clicking on it and show the simple message list.\n * When used as a nested component with the disabled prop\n * it is only need renderData to render message record cards.\n * Therefore, 'messageItem' and 'disabled' is not a required prop.\n */\n disabled?: boolean;\n messageItem?: IMessageModel;\n}\n\nconst emits = defineEmits<IEmits>();\nconst props = withDefaults(defineProps<IProps>(), {\n messageItem: () => ({}) as IMessageModel,\n disabled: false,\n});\n\nconst isMessageListVisible = ref(false);\n\nfunction openMergeDetail() {\n if (props.disabled) {\n return;\n }\n if (!isUniFrameWork) {\n isMessageListVisible.value = true;\n } else {\n emits('assignMessageIDInUniapp', props.messageItem.ID);\n }\n}\n\nfunction closeMergeDetail() {\n isMessageListVisible.value = false;\n}\n</script>\n<style lang=\"scss\" scoped>\n:not(not) {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n min-width: 0;\n}\n\n.message-record-container {\n padding: 10px 15px;\n border: 1px solid #ddd;\n border-radius: 10px;\n cursor: pointer;\n background-color: #fff;\n max-width: 400px;\n min-width: 180px;\n overflow: hidden;\n\n .record-abstract-container {\n color: #bbb;\n font-size: 12px;\n margin: 8px 0;\n }\n\n .record-footer {\n color: #888;\n font-size: 11px;\n padding-top: 5px;\n border-top: 1px solid #eee;\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-record/index.vue'\nwx.createComponent(Component)"],"names":["ref","isUniFrameWork"],"mappings":";;;;;;;;AAwDA,MAAA,UAAoB,MAAA;AACpB,MAAA,SAAmB,MAAA;AACnB,MAAA,oBAA8B,MAAA;;;;;;;;;;AAwB9B,UAAM,QAAQ;AACd,UAAM,QAAQ;AAKR,UAAA,uBAAuBA,kBAAI,KAAK;AAEtC,aAAS,kBAAkB;AACzB,UAAI,MAAM,UAAU;AAClB;AAAA,MACF;AACA,UAAI,CAACC,iBAAAA,gBAAgB;AACnB,6BAAqB,QAAQ;AAAA,MAAA,OACxB;AACC,cAAA,2BAA2B,MAAM,YAAY,EAAE;AAAA,MACvD;AAAA,IACF;AAEA,aAAS,mBAAmB;AAC1B,2BAAqB,QAAQ;AAAA,IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtGA,GAAG,gBAAgB,SAAS;"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"message-timestamp.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtdGltZXN0YW1wLnZ1ZQ"],"sourcesContent":["<template>\n <div\n v-if=\"timestampShowFlag\"\n class=\"message-timestamp\"\n >\n {{ timestampShowContent }}\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { toRefs, ref, watch } from '../../../../adapter-vue';\nimport { calculateTimestamp } from '../../utils/utils';\n\nconst props = defineProps({\n currTime: {\n type: Number,\n default: 0,\n },\n prevTime: {\n type: Number,\n default: 0,\n },\n});\nconst { currTime, prevTime } = toRefs(props);\nconst timestampShowFlag = ref(false);\nconst timestampShowContent = ref('');\n\nconst handleItemTime = (currTime: number, prevTime: number) => {\n timestampShowFlag.value = false;\n if (currTime <= 0) {\n return '';\n } else if (!prevTime || prevTime <= 0) {\n timestampShowFlag.value = true;\n return calculateTimestamp(currTime * 1000);\n } else {\n const minDiffToShow = 10 * 60; // 10min 10*60s\n const diff = currTime - prevTime; // s\n if (diff >= minDiffToShow) {\n timestampShowFlag.value = true;\n return calculateTimestamp(currTime * 1000);\n }\n }\n return '';\n};\n\nwatch(\n () => [currTime.value, prevTime.value],\n (newVal: any, oldVal: any) => {\n if (newVal?.toString() === oldVal?.toString()) {\n return;\n } else {\n timestampShowContent.value = handleItemTime(\n currTime.value,\n prevTime.value,\n );\n }\n },\n {\n immediate: true,\n },\n);\n</script>\n<style lang=\"scss\" scoped>\n@import \"../../../../assets/styles/common\";\n\n.message-timestamp {\n margin: 10px auto;\n color: #999;\n font-size: 12px;\n overflow-wrap: anywhere;\n display: flex;\n align-items: center;\n text-align: center;\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-timestamp.vue'\nwx.createComponent(Component)"],"names":["toRefs","ref","currTime","prevTime","calculateTimestamp","watch"],"mappings":";;;;;;;;;;;;;;;;;AAYA,UAAM,QAAQ;AAUd,UAAM,EAAE,UAAU,SAAS,IAAIA,qBAAO,KAAK;AACrC,UAAA,oBAAoBC,kBAAI,KAAK;AAC7B,UAAA,uBAAuBA,kBAAI,EAAE;AAE7B,UAAA,iBAAiB,CAACC,WAAkBC,cAAqB;AAC7D,wBAAkB,QAAQ;AAC1B,UAAID,aAAY,GAAG;AACV,eAAA;AAAA,MACE,WAAA,CAACC,aAAYA,aAAY,GAAG;AACrC,0BAAkB,QAAQ;AACnB,eAAAC,sCAAA,mBAAmBF,YAAW,GAAI;AAAA,MAAA,OACpC;AACL,cAAM,gBAAgB,KAAK;AAC3B,cAAM,OAAOA,YAAWC;AACxB,YAAI,QAAQ,eAAe;AACzB,4BAAkB,QAAQ;AACnB,iBAAAC,sCAAA,mBAAmBF,YAAW,GAAI;AAAA,QAC3C;AAAA,MACF;AACO,aAAA;AAAA,IAAA;AAGTG,kBAAA;AAAA,MACE,MAAM,CAAC,SAAS,OAAO,SAAS,KAAK;AAAA,MACrC,CAAC,QAAa,WAAgB;AAC5B,aAAI,iCAAQ,iBAAe,iCAAQ,aAAY;AAC7C;AAAA,QAAA,OACK;AACL,+BAAqB,QAAQ;AAAA,YAC3B,SAAS;AAAA,YACT,SAAS;AAAA,UAAA;AAAA,QAEb;AAAA,MACF;AAAA,MACA;AAAA,QACE,WAAW;AAAA,MACb;AAAA,IAAA;;;;;;;;;;;ACzDF,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"message-tip.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-tip.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtdGlwLnZ1ZQ"],"sourcesContent":["<template>\n <div class=\"message-tip\">\n <span>{{ tipContent }}</span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from '../../../../adapter-vue';\nconst props = defineProps({\n content: {\n type: Object,\n default: () => ({}),\n },\n});\nconst tipContent = computed(() => props.content?.text || props.content?.custom || '');\n</script>\n<style lang=\"scss\" scoped>\n@import \"../../../../assets/styles/common\";\n\n.message-tip {\n margin: 0 auto;\n padding: 0 20px;\n color: #999;\n font-size: 12px;\n overflow-wrap: anywhere;\n display: flex;\n place-content: center center;\n align-items: center;\n text-align: center;\n margin-bottom: 10px;\n\n &-highlight {\n animation: highlight 1000ms infinite;\n\n @keyframes highlight {\n 50% {\n color: #ff9c19;\n }\n }\n\n @keyframes highlight {\n 50% {\n color: #ff9c19;\n }\n }\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-tip.vue'\nwx.createComponent(Component)"],"names":["computed"],"mappings":";;;;;;;;;;;;AAQA,UAAM,QAAQ;AAMR,UAAA,aAAaA,cAAAA,SAAS,MAAM;;AAAA,0BAAM,YAAN,mBAAe,WAAQ,WAAM,YAAN,mBAAe,WAAU;AAAA,KAAE;;;;;;;;;ACbpF,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtdHJhbnNsYXRlL2luZGV4LnZ1ZQ"],"sourcesContent":["<template>\n <div\n v-if=\"translationVisible\"\n ref=\"translationWrapperRef\"\n :class=\"{\n 'message-translation': true,\n 'reverse': props.message.flow === 'out',\n 'error': hasTranslationError,\n }\"\n >\n <TranslationContent\n :message=\"props.message\"\n :translationContentVisible=\"translationVisible\"\n :translationWrapperRef=\"translationWrapperRef\"\n :isSingleTranslation=\"isSingleTranslation\"\n @toggleErrorStatus=\"toggleErrorStatus\"\n />\n <div class=\"copyright\">\n <Icon\n :file=\"checkIcon\"\n size=\"13px\"\n />\n <div class=\"copyright-text\">\n {{ TUITranslateService.t('TUIChat.由IM提供翻译支持') }}\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, onMounted, onUnmounted } from '../../../../../adapter-vue';\nimport {\n TUIStore,\n StoreName,\n IMessageModel,\n TUITranslateService,\n} from '@tencentcloud/chat-uikit-engine';\nimport Icon from '../../../../common/Icon.vue';\nimport TranslationContent from './translation-content.vue';\nimport checkIcon from '../../../../../assets/icon/check-sm.svg';\nimport { ITranslateInfo } from '../../../../../interface';\n\ninterface IProps {\n message: IMessageModel;\n}\n\nconst props = withDefaults(defineProps<IProps>(), {\n message: () => ({} as IMessageModel),\n});\n\nconst translationVisible = ref<boolean>(false);\nconst hasTranslationError = ref<boolean>(false);\n\nconst translationWrapperRef = ref<HTMLDivElement>();\n\nlet isSingleTranslation = true;\n\nonMounted(() => {\n TUIStore.watch(StoreName.CHAT, {\n translateTextInfo: onMessageTranslationUpdated,\n });\n});\n\nonUnmounted(() => {\n TUIStore.unwatch(StoreName.CHAT, {\n translateTextInfo: onMessageTranslationUpdated,\n });\n});\n\nfunction toggleErrorStatus(hasError: boolean) {\n hasTranslationError.value = hasError;\n}\n\nfunction onMessageTranslationUpdated(info: Map<string, ITranslateInfo[]>) {\n if (info === undefined) return;\n isSingleTranslation = false;\n const translationInfoList = info.get(props.message.conversationID) || [];\n for (let i = 0; i < translationInfoList.length; ++i) {\n const { messageID, visible } = translationInfoList[i];\n if (messageID === props.message.ID && visible !== undefined) {\n if (translationInfoList.length === 1 && visible) {\n isSingleTranslation = true;\n }\n hasTranslationError.value = false;\n translationVisible.value = visible;\n break;\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.message-translation {\n margin-top: 4px;\n margin-left: 44px;\n padding: 10px;\n background-color: #f2f7ff;\n border-radius: 10px;\n display: flex;\n flex-direction: column !important;\n transition: background-color 0.15s ease-out;\n\n &.error {\n background-color: #ffdfdf;\n }\n\n .copyright {\n display: flex;\n align-items: center;\n margin-top: 10px;\n\n .copyright-text {\n margin-left: 2px;\n font-size: 12px;\n color: #999;\n }\n }\n}\n\n.message-translation.reverse {\n margin-right: 44px;\n margin-left: auto;\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-translate/index.vue'\nwx.createComponent(Component)"],"names":["ref","onMounted","TUIStore","StoreName","onUnmounted"],"mappings":";;;;;;;AAqCA,MAAA,OAAiB,MAAA;AACjB,MAAA,qBAA+B,MAAA;;;;;;;AAQ/B,UAAM,QAAQ;AAIR,UAAA,qBAAqBA,kBAAa,KAAK;AACvC,UAAA,sBAAsBA,kBAAa,KAAK;AAE9C,UAAM,wBAAwBA,cAAAA;AAE9B,QAAI,sBAAsB;AAE1BC,kBAAAA,UAAU,MAAM;AACLC,uBAAA,MAAMC,gBAAU,MAAM;AAAA,QAC7B,mBAAmB;AAAA,MAAA,CACpB;AAAA,IAAA,CACF;AAEDC,kBAAAA,YAAY,MAAM;AACPF,uBAAA,QAAQC,gBAAU,MAAM;AAAA,QAC/B,mBAAmB;AAAA,MAAA,CACpB;AAAA,IAAA,CACF;AAED,aAAS,kBAAkB,UAAmB;AAC5C,0BAAoB,QAAQ;AAAA,IAC9B;AAEA,aAAS,4BAA4B,MAAqC;AACxE,UAAI,SAAS;AAAW;AACF,4BAAA;AACtB,YAAM,sBAAsB,KAAK,IAAI,MAAM,QAAQ,cAAc,KAAK;AACtE,eAAS,IAAI,GAAG,IAAI,oBAAoB,QAAQ,EAAE,GAAG;AACnD,cAAM,EAAE,WAAW,QAAQ,IAAI,oBAAoB,CAAC;AACpD,YAAI,cAAc,MAAM,QAAQ,MAAM,YAAY,QAAW;AACvD,cAAA,oBAAoB,WAAW,KAAK,SAAS;AACzB,kCAAA;AAAA,UACxB;AACA,8BAAoB,QAAQ;AAC5B,6BAAmB,QAAQ;AAC3B;AAAA,QACF;AAAA,MACF;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;ACvFA,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"translation-content.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtdHJhbnNsYXRlL3RyYW5zbGF0aW9uLWNvbnRlbnQudnVl"],"sourcesContent":["<template>\n <div class=\"message-translation-container\">\n <div\n v-if=\"translationFinished\"\n :id=\"`translation-content-${props.message.ID}`\"\n :class=\"{\n 'translation-content': true,\n 'occur': true\n }\"\n >\n <template\n v-if=\"translationTextList.length > 0\"\n >\n <span\n v-for=\"(text, index) in translationTextList\"\n :key=\"index\"\n >\n <img\n v-if=\"text.type === 'face'\"\n class=\"text-face\"\n :src=\"text.value\"\n >\n <span\n v-else\n class=\"text-plain\"\n >\n {{ text.value }}\n </span>\n </span>\n </template>\n <template v-else>\n {{ translationErrorText }}\n </template>\n </div>\n <div\n :class=\"{\n 'loading': true,\n 'loading-end': translationFinished\n }\"\n >\n {{ TUITranslateService.t('TUIChat.翻译中') }}...\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, watch } from '../../../../../adapter-vue';\nimport {\n IMessageModel,\n TUITranslateService,\n} from '@tencentcloud/chat-uikit-engine';\nimport { TranslationTextType, translator } from '../../../utils/translation';\n\ninterface IProps {\n message: IMessageModel;\n translationContentVisible: boolean;\n isSingleTranslation: boolean;\n translationWrapperRef: HTMLDivElement | undefined;\n}\n\nconst props = withDefaults(defineProps<IProps>(), {\n message: () => ({} as IMessageModel),\n});\n\nconst translationFinished = ref<boolean>(false);\nconst translationErrorText = ref<string>('');\nconst translationTextList = ref<TranslationTextType[]>([]);\n\nwatch(() => props.translationContentVisible, (newVal: boolean) => {\n if (newVal) {\n translator.get(props.message)\n .then((result) => {\n translationFinished.value = true;\n translationTextList.value = result;\n })\n .catch((err) => {\n translationFinished.value = true;\n emits('toggleErrorStatus', true);\n translationErrorText.value = err.message;\n });\n }\n}, { immediate: true });\n</script>\n\n<style lang=\"scss\" scoped>\n.message-translation-container {\n min-height: 16px;\n min-width: 80px;\n position: relative;\n transition: width 0.15s ease-out, height 0.15s ease-out, ;\n font-size: 14px;\n\n .loading {\n position: absolute;\n top: 0;\n left: 0;\n opacity: 1;\n transition: opacity 0.3s ease-out;\n\n &.loading-end {\n opacity: 0;\n }\n }\n\n .translation-content {\n opacity: 0;\n\n &.occur {\n animation: occur 0.3s ease-out 0.45s forwards;\n\n @keyframes occur {\n 100% {\n opacity: 1;\n }\n }\n }\n\n .text-face {\n width: 20px;\n height: 20px;\n }\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-translate/translation-content.vue'\nwx.createComponent(Component)"],"names":["ref","watch","translator"],"mappings":";;;;;;;;;;;;;AA4DA,UAAM,QAAQ;AAIR,UAAA,sBAAsBA,kBAAa,KAAK;AACxC,UAAA,uBAAuBA,kBAAY,EAAE;AACrC,UAAA,sBAAsBA,kBAA2B,CAAA,CAAE;AAEzDC,kBAAAA,MAAM,MAAM,MAAM,2BAA2B,CAAC,WAAoB;AAChE,UAAI,QAAQ;AACVC,oDAAA,WAAW,IAAI,MAAM,OAAO,EACzB,KAAK,CAAC,WAAW;AAChB,8BAAoB,QAAQ;AAC5B,8BAAoB,QAAQ;AAAA,QAAA,CAC7B,EACA,MAAM,CAAC,QAAQ;AACd,8BAAoB,QAAQ;AAC5B,gBAAM,qBAAqB,IAAI;AAC/B,+BAAqB,QAAQ,IAAI;AAAA,QAAA,CAClC;AAAA,MACL;AAAA,IAAA,GACC,EAAE,WAAW,KAAA,CAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFtB,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"message-video.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/message-video.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL21lc3NhZ2UtdmlkZW8udnVl"],"sourcesContent":["<template>\n <div class=\"message-video\">\n <div\n class=\"message-video-box\"\n @click=\"handlerVideoPlay\"\n >\n <image\n :src=\"props.content.snapshotUrl\"\n class=\"message-video-box\"\n />\n <Icon\n v-if=\"props.messageItem.status === 'success' || props.messageItem.progress === 1\"\n class=\"video-play\"\n :file=\"playIcon\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { withDefaults } from '../../../../adapter-vue';\nimport type { IMessageModel } from '@tencentcloud/chat-uikit-engine';\nimport Icon from '../../../common/Icon.vue';\nimport playIcon from '../../../../assets/icon/video-play.png';\nimport type { IVideoMessageContent } from '../../../../interface';\n\nconst props = withDefaults(\n defineProps<{\n content: IVideoMessageContent;\n messageItem: IMessageModel;\n }>(),\n {\n content: () => ({} as IVideoMessageContent),\n messageItem: () => ({} as IMessageModel),\n },\n);\n\nfunction handlerVideoPlay() {\n const encodedUrl = encodeURIComponent(props.content.url);\n uni.navigateTo({\n url: `/TUIKit/components/TUIChat/video-play?videoUrl=${encodedUrl}`,\n });\n}\n</script>\n<style lang=\"scss\" scoped>\n.message-video {\n position: relative;\n\n &-box {\n width: 120px;\n max-width: 120px;\n background-color: rgba(#000, 0.3);\n border-radius: 6px;\n height: 200px;\n font-size: 0;\n }\n\n .video-play {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/message-video.vue'\nwx.createComponent(Component)"],"names":["uni"],"mappings":";;;;;;AAsBA,MAAA,OAAiB,MAAA;;;;;;;;AAIjB,UAAM,QAAQ;AAWd,aAAS,mBAAmB;AAC1B,YAAM,aAAa,mBAAmB,MAAM,QAAQ,GAAG;AACvDA,oBAAAA,MAAI,WAAW;AAAA,QACb,KAAK,kDAAkD,UAAU;AAAA,MAAA,CAClE;AAAA,IACH;;;;;;;;;;;;;;;;ACzCA,GAAG,gBAAgB,SAAS;"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"message-container.js","sources":["TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLWVsZW1lbnRzL3NpbXBsZS1tZXNzYWdlLWxpc3QvbWVzc2FnZS1jb250YWluZXIudnVl"],"sourcesContent":["<template>\n <div class=\"simple-message-container\">\n <div class=\"simple-message-avatar\">\n <Avatar :url=\"props.avatar\" />\n </div>\n <div>\n <div class=\"simple-message-sender\">\n {{ props.sender }}\n </div>\n <div class=\"simple-message-body\">\n <div\n :class=\"{\n 'simple-message-content': true,\n 'no-padding': isNoPadding\n }\"\n >\n <slot />\n </div>\n <div class=\"timestamp\">\n {{ calculateTimestamp(props.time*1000) }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from '../../../../../adapter-vue';\nimport TUIChatEngine from '@tencentcloud/chat-uikit-engine';\nimport Avatar from '../../../../common/Avatar/index.vue';\nimport { calculateTimestamp } from '../../../utils/utils';\n\ninterface IProps {\n sender: string;\n avatar: string;\n type: string;\n time: number;\n}\n\nconst props = withDefaults(defineProps<IProps>(), {\n sender: '',\n avatar: '',\n});\n\nconst TYPES = TUIChatEngine.TYPES;\n\nconst isNoPadding = computed(() => {\n return [TYPES.MSG_IMAGE, TYPES.MSG_VIDEO, TYPES.MSG_MERGER].includes(props.type);\n});\n</script>\n\n<style scoped lang=\"scss\">\n:not(not){\n display: flex;\n flex-direction: column;\n min-width: 0;\n box-sizing: border-box;\n}\n\n.simple-message-container {\n flex-direction: row;\n\n .simple-message-avatar {\n flex: 0 0 auto;\n margin-right: 8px;\n }\n\n .simple-message-sender {\n display: block;\n max-width: 200px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 11px;\n color: #999;\n }\n\n .simple-message-body {\n flex-direction: row;\n align-items: flex-end;\n }\n\n .simple-message-content {\n margin-top: 8px;\n background-color: #dceafd;\n border-radius: 0 10px 10px;\n padding: 10px 12px;\n }\n\n .timestamp {\n flex: 0 0 auto;\n font-size: 12px;\n color: #aaa;\n margin-left: 6px;\n }\n\n .no-padding {\n padding: 0;\n background-color: transparent;\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-elements/simple-message-list/message-container.vue'\nwx.createComponent(Component)"],"names":["TUIChatEngine","computed"],"mappings":";;;;;;;AA6BA,MAAA,SAAmB,MAAA;;;;;;;;;;AAUnB,UAAM,QAAQ;AAKd,UAAM,QAAQA,cAAc,GAAA;AAEtB,UAAA,cAAcC,cAAAA,SAAS,MAAM;AAC1B,aAAA,CAAC,MAAM,WAAW,MAAM,WAAW,MAAM,UAAU,EAAE,SAAS,MAAM,IAAI;AAAA,IAAA,CAChF;;;;;;;;;;;;;;AC/CD,GAAG,gBAAgB,SAAS;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"message-revoked.js","sources":["TUIKit/components/TUIChat/message-list/message-tool/message-revoked.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L21lc3NhZ2UtbGlzdC9tZXNzYWdlLXRvb2wvbWVzc2FnZS1yZXZva2VkLnZ1ZQ"],"sourcesContent":["<template>\n <div class=\"revoke\">\n <span v-if=\"message.flow === 'in'\">{{ message.nick || message.from }}</span>\n <span v-else-if=\"message.from === message.revoker\">{{ TUITranslateService.t(\"TUIChat.您\") }}</span>\n <span v-else>{{ message.revoker }}</span>\n <span>{{ TUITranslateService.t(\"TUIChat.撤回了一条消息\") }}</span>\n <span\n v-if=\"message.flow === 'out' && isEditMsg\"\n class=\"edit\"\n @click=\"messageEdit\"\n >{{ TUITranslateService.t(\"TUIChat.重新编辑\") }}</span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { watchEffect, ref } from '../../../../adapter-vue';\nimport { TUITranslateService, IMessageModel } from '@tencentcloud/chat-uikit-engine';\nconst props = defineProps({\n isEdit: {\n type: Boolean,\n default: () => false,\n },\n messageItem: {\n type: Object,\n default: () => ({}),\n },\n});\n\nconst message = ref<IMessageModel>();\nconst isEditMsg = ref(false);\nconst emits = defineEmits(['messageEdit']);\n\nwatchEffect(() => {\n message.value = props.messageItem;\n isEditMsg.value = props.isEdit;\n});\nconst messageEdit = () => {\n emits('messageEdit');\n};\n</script>\n<style lang=\"scss\" scoped>\n@import \"../../../../assets/styles/common\";\n\n.revoke {\n display: flex;\n flex-direction: row;\n justify-content: center;\n color: #999;\n font-size: 12px;\n margin-bottom: 10px;\n white-space: pre;\n\n .edit {\n padding: 0 5px;\n color: #006eff;\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/message-list/message-tool/message-revoked.vue'\nwx.createComponent(Component)"],"names":["ref","watchEffect"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,UAAM,QAAQ;AAWd,UAAM,UAAUA,cAAAA;AACV,UAAA,YAAYA,kBAAI,KAAK;AAC3B,UAAM,QAAQ;AAEdC,kBAAAA,YAAY,MAAM;AAChB,cAAQ,QAAQ,MAAM;AACtB,gBAAU,QAAQ,MAAM;AAAA,IAAA,CACzB;AACD,UAAM,cAAc,MAAM;AACxB,YAAM,aAAa;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;ACpCrB,GAAG,gBAAgB,SAAS;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/mulitple-select-panel/index.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDov6aG555uuL3RrLW1pbmktcHJvZ3JhbS9UVUlLaXQvY29tcG9uZW50cy9UVUlDaGF0L211bGl0cGxlLXNlbGVjdC1wYW5lbC9pbmRleC52dWU"],"sourcesContent":["<template>\n <div\n :class=\"{\n 'mulitple-select-panel': true,\n 'mulitple-select-panel-mobile': isMobile,\n }\"\n >\n <div\n class=\"forward-button\"\n @click=\"oneByOneForwardMessage\"\n >\n <Icon\n :file=\"ForwardEachIcon\"\n :size=\"iconSize\"\n />\n <span\n :class=\"{\n 'forward-button-text': true,\n 'forward-button-text-mobile': isMobile,\n }\"\n >{{ TUITranslateService.t('TUIChat.逐条转发') }}</span>\n </div>\n <div\n class=\"forward-button\"\n @click=\"mergeForwardMessage\"\n >\n <Icon\n :file=\"ForwardMergeIcon\"\n :size=\"iconSize\"\n />\n <span\n :class=\"{\n 'forward-button-text': true,\n 'forward-button-text-mobile': isMobile,\n }\"\n >{{ TUITranslateService.t('TUIChat.合并转发') }}</span>\n </div>\n <div\n class=\"forward-button\"\n @click=\"cancelMultipleSelect\"\n >\n <Icon\n class=\"cancel-button-icon\"\n :file=\"AddIcon\"\n :size=\"iconSize\"\n />\n <span\n :class=\"{\n 'forward-button-text': true,\n 'forward-button-text-mobile': isMobile,\n }\"\n >\n {{ TUITranslateService.t('TUIChat.取消') }}\n </span>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref } from '../../../adapter-vue';\nimport {\n TUITranslateService,\n} from '@tencentcloud/chat-uikit-engine';\nimport Icon from '../../common/Icon.vue';\nimport ForwardEachIcon from '../../../assets/icon/forward-each.svg';\nimport ForwardMergeIcon from '../../../assets/icon/forward-merge.svg';\nimport AddIcon from '../../../assets/icon/add-circle.svg';\nimport { isMobile } from '../../../utils/env';\n\ninterface IEmits {\n (key: 'oneByOneForwardMessage'): void;\n (key: 'mergeForwardMessage'): void;\n (key: 'toggleMultipleSelectMode'): void;\n}\n\nconst emits = defineEmits<IEmits>();\n\nconst iconSize = ref(isMobile ? '25px' : '30px');\n\nfunction oneByOneForwardMessage() {\n emits('oneByOneForwardMessage');\n}\n\nfunction mergeForwardMessage() {\n emits('mergeForwardMessage');\n}\n\nfunction cancelMultipleSelect() {\n emits('toggleMultipleSelectMode');\n}\n</script>\n\n<style lang=\"scss\" scoped>\n:not(not) {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n min-width: 0;\n}\n\n.mulitple-select-panel {\n height: 196px;\n border-top: 1px solid #ebebeb;\n flex-direction: row;\n justify-content: space-around;\n align-items: center;\n background-color: #EBF0F6;\n\n &-mobile {\n height: 64px;\n padding-bottom: 15px;\n flex-direction: row;\n align-items: flex-end;\n }\n}\n\n.forward-button {\n justify-content: center;\n align-items: center;\n\n &-text {\n margin-top: 8px;\n font-size: 12px;\n\n &-mobile {\n margin-top: 2px;\n }\n }\n\n .cancel-button-icon {\n transform: rotate(45deg);\n }\n}\n</style>\n","import Component from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/mulitple-select-panel/index.vue'\nwx.createComponent(Component)"],"names":["ref","isMobile"],"mappings":";;;;;;;;AA+DA,MAAA,OAAiB,MAAA;;;;;AAYjB,UAAM,QAAQ;AAEd,UAAM,WAAWA,cAAA,IAAIC,iBAAW,WAAA,SAAS,MAAM;AAE/C,aAAS,yBAAyB;AAChC,YAAM,wBAAwB;AAAA,IAChC;AAEA,aAAS,sBAAsB;AAC7B,YAAM,qBAAqB;AAAA,IAC7B;AAEA,aAAS,uBAAuB;AAC9B,YAAM,0BAA0B;AAAA,IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFA,GAAG,gBAAgB,SAAS;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"const.js","sources":["TUIKit/components/TUIChat/offlinePushInfoManager/const.ts"],"sourcesContent":["import TUIChatEngine from '@tencentcloud/chat-uikit-engine';\nexport const DEFAULT_DESC: any = {\n [TUIChatEngine.TYPES.MSG_TEXT]: '[文本]',\n [TUIChatEngine.TYPES.MSG_FACE]: '[动画表情]',\n [TUIChatEngine.TYPES.MSG_IMAGE]: '[图片]',\n [TUIChatEngine.TYPES.MSG_FILE]: '[文件]',\n [TUIChatEngine.TYPES.MSG_AUDIO]: '[语音]',\n [TUIChatEngine.TYPES.MSG_VIDEO]: '[视频]',\n [TUIChatEngine.TYPES.MSG_LOCATION]: '[地理位置]',\n [TUIChatEngine.TYPES.MSG_MERGER]: '[聊天记录]',\n [TUIChatEngine.TYPES.MSG_CUSTOM]: '[自定义消息]',\n};\n\nexport enum PUSH_SCENE {\n CHAT = 'chat',\n CALL = 'call',\n}\n"],"names":["TUIChatEngine","PUSH_SCENE"],"mappings":";;AACO,MAAM,eAAoB;AAAA,EAC/B,CAACA,cAAA,GAAc,MAAM,QAAQ,GAAG;AAAA,EAChC,CAACA,cAAA,GAAc,MAAM,QAAQ,GAAG;AAAA,EAChC,CAACA,cAAA,GAAc,MAAM,SAAS,GAAG;AAAA,EACjC,CAACA,cAAA,GAAc,MAAM,QAAQ,GAAG;AAAA,EAChC,CAACA,cAAA,GAAc,MAAM,SAAS,GAAG;AAAA,EACjC,CAACA,cAAA,GAAc,MAAM,SAAS,GAAG;AAAA,EACjC,CAACA,cAAA,GAAc,MAAM,YAAY,GAAG;AAAA,EACpC,CAACA,cAAA,GAAc,MAAM,UAAU,GAAG;AAAA,EAClC,CAACA,cAAA,GAAc,MAAM,UAAU,GAAG;AACpC;AAEY,IAAA,+BAAAC,gBAAL;AACLA,cAAA,MAAO,IAAA;AACPA,cAAA,MAAO,IAAA;AAFGA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["TUIKit/components/TUIChat/offlinePushInfoManager/index.ts"],"sourcesContent":["import OfflinePushInfoManager from './offlinePushInfoManager';\n\nexport * from './const';\nexport * from './interface';\n\nexport default OfflinePushInfoManager.getInstance();\n"],"names":["OfflinePushInfoManager"],"mappings":";;;AAKA,MAAeA,yBAAAA,wEAAAA,uBAAuB,YAAY;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"info.js","sources":["TUIKit/components/TUIChat/offlinePushInfoManager/info.ts"],"sourcesContent":["import { IChatOfflinePushInfo, ICallOfflinePushInfo } from './interface';\n\nexport const chatOfflinePushInfo: IChatOfflinePushInfo = {\n androidInfo: {},\n apnsInfo: {},\n};\n\nexport const callOfflinePushInfo: ICallOfflinePushInfo = {};\n"],"names":[],"mappings":";AAEO,MAAM,sBAA4C;AAAA,EACvD,aAAa,CAAC;AAAA,EACd,UAAU,CAAC;AACb;AAEO,MAAM,sBAA4C,CAAA;;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"interface.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@@ -0,0 +1 @@
{"version":3,"file":"offlinePushInfoManager.js","sources":["TUIKit/components/TUIChat/offlinePushInfoManager/offlinePushInfoManager.ts"],"sourcesContent":["import TUIChatEngine, { IConversationModel, StoreName, TUIStore, TUITranslateService } from '@tencentcloud/chat-uikit-engine';\nimport { transformTextWithKeysToEmojiNames } from '../emoji-config';\nimport {\n IChatOfflinePushInfo,\n IOfflinePushInfoCreateParams,\n} from './interface';\nimport { chatOfflinePushInfo, callOfflinePushInfo } from './info';\nimport { DEFAULT_DESC, PUSH_SCENE } from './const';\n\nclass OfflinePushInfoManager {\n private name = 'OfflinePushInfoManager';\n private static instance: OfflinePushInfoManager | null = null;\n\n private offlinePushInfo: any = {};\n\n private constructor() {\n this.offlinePushInfo = {\n [PUSH_SCENE.CHAT]: chatOfflinePushInfo,\n [PUSH_SCENE.CALL]: callOfflinePushInfo,\n };\n }\n\n public static getInstance(): OfflinePushInfoManager {\n if (!OfflinePushInfoManager.instance) {\n OfflinePushInfoManager.instance = new OfflinePushInfoManager();\n }\n return OfflinePushInfoManager.instance;\n }\n\n public getOfflinePushInfo(scene: PUSH_SCENE) {\n if (!Object.values(PUSH_SCENE).includes(scene)) {\n console.error(`${this.name} getOfflinePushInfo scene: ${scene} is invalid`);\n return null;\n }\n return this.offlinePushInfo[scene];\n }\n\n private genTitle(conversation: IConversationModel, userInfo: any) {\n let title = conversation?.getShowName();\n if (conversation.type === TUIChatEngine.TYPES.CONV_C2C) {\n title = userInfo?.nick || userInfo?.userID;\n }\n return title;\n }\n\n private genDesc(messageType: string, payload: any) {\n let desc = '';\n if (messageType === TUIChatEngine.TYPES.MSG_TEXT) {\n desc = transformTextWithKeysToEmojiNames(payload.text);\n }\n if (messageType === TUIChatEngine.TYPES.MSG_CUSTOM) {\n desc = payload.description;\n }\n return desc || TUITranslateService.t(`TUIChat.${DEFAULT_DESC[messageType]}`);\n }\n\n public create(options: IOfflinePushInfoCreateParams): IChatOfflinePushInfo {\n const { conversation, messageType = '', payload = {} } = options || {};\n const userInfo = TUIStore.getData(StoreName.USER, 'userProfile');\n const entity = {\n sender: conversation.type === TUIChatEngine.TYPES.CONV_GROUP ? conversation.groupProfile?.groupID : userInfo?.userID,\n nickName: userInfo?.nick,\n chatType: conversation.type === TUIChatEngine.TYPES.CONV_GROUP ? 2 : 1,\n version: 1,\n action: 1,\n };\n return {\n title: this.genTitle(conversation, userInfo),\n description: this.genDesc(messageType, payload),\n extension: JSON.stringify({ entity }),\n ...this.offlinePushInfo[PUSH_SCENE.CHAT],\n };\n }\n}\n\nexport default OfflinePushInfoManager;\n"],"names":["PUSH_SCENE","chatOfflinePushInfo","callOfflinePushInfo","uni","TUIChatEngine","transformTextWithKeysToEmojiNames","TUITranslateService","DEFAULT_DESC","TUIStore","StoreName"],"mappings":";;;;;AASA,MAAM,0BAAN,MAAM,wBAAuB;AAAA,EAMnB,cAAc;AALtB,SAAQ,OAAO;AAGf,SAAQ,kBAAuB;AAG7B,SAAK,kBAAkB;AAAA,MACrB,CAACA,uDAAAA,WAAW,IAAI,GAAGC,sDAAA;AAAA,MACnB,CAACD,uDAAAA,WAAW,IAAI,GAAGE,sDAAA;AAAA,IAAA;AAAA,EAEvB;AAAA,EAEA,OAAc,cAAsC;AAC9C,QAAA,CAAC,wBAAuB,UAAU;AACb,8BAAA,WAAW,IAAI;IACxC;AACA,WAAO,wBAAuB;AAAA,EAChC;AAAA,EAEO,mBAAmB,OAAmB;AAC3C,QAAI,CAAC,OAAO,OAAOF,uDAAU,UAAA,EAAE,SAAS,KAAK,GAAG;AAC9CG,oBAAAA,MAAA,MAAA,SAAA,oFAAc,GAAG,KAAK,IAAI,8BAA8B,KAAK,aAAa;AACnE,aAAA;AAAA,IACT;AACO,WAAA,KAAK,gBAAgB,KAAK;AAAA,EACnC;AAAA,EAEQ,SAAS,cAAkC,UAAe;AAC5D,QAAA,QAAQ,6CAAc;AAC1B,QAAI,aAAa,SAASC,iBAAc,MAAM,UAAU;AAC9C,eAAA,qCAAU,UAAQ,qCAAU;AAAA,IACtC;AACO,WAAA;AAAA,EACT;AAAA,EAEQ,QAAQ,aAAqB,SAAc;AACjD,QAAI,OAAO;AACP,QAAA,gBAAgBA,cAAAA,GAAc,MAAM,UAAU;AACzC,aAAAC,4CAAA,kCAAkC,QAAQ,IAAI;AAAA,IACvD;AACI,QAAA,gBAAgBD,cAAAA,GAAc,MAAM,YAAY;AAClD,aAAO,QAAQ;AAAA,IACjB;AACA,WAAO,QAAQE,cAAoB,GAAA,EAAE,WAAWC,oEAAa,WAAW,CAAC,EAAE;AAAA,EAC7E;AAAA,EAEO,OAAO,SAA6D;;AACnE,UAAA,EAAE,cAAc,cAAc,IAAI,UAAU,GAAO,IAAA,WAAW;AACpE,UAAM,WAAWC,cAAAA,GAAS,QAAQC,cAAAA,EAAU,MAAM,aAAa;AAC/D,UAAM,SAAS;AAAA,MACb,QAAQ,aAAa,SAASL,cAAAA,GAAc,MAAM,cAAa,kBAAa,iBAAb,mBAA2B,UAAU,qCAAU;AAAA,MAC9G,UAAU,qCAAU;AAAA,MACpB,UAAU,aAAa,SAASA,cAAAA,GAAc,MAAM,aAAa,IAAI;AAAA,MACrE,SAAS;AAAA,MACT,QAAQ;AAAA,IAAA;AAEH,WAAA;AAAA,MACL,OAAO,KAAK,SAAS,cAAc,QAAQ;AAAA,MAC3C,aAAa,KAAK,QAAQ,aAAa,OAAO;AAAA,MAC9C,WAAW,KAAK,UAAU,EAAE,QAAQ;AAAA,MACpC,GAAG,KAAK,gBAAgBJ,uDAAA,WAAW,IAAI;AAAA,IAAA;AAAA,EAE3C;AACF;AA9DE,wBAAe,WAA0C;AAF3D,IAAM,yBAAN;;"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"chatStorage.js","sources":["TUIKit/components/TUIChat/utils/chatStorage.ts"],"sourcesContent":["import { isUniFrameWork } from '../../../utils/env';\nimport { TUIGlobal } from '@tencentcloud/universal-api';\n\ninterface IChatStorage {\n getChatStorage(key: string): any;\n setChatStorage(key: string, value: any): void;\n}\n\nclass ChatStorage implements IChatStorage {\n private static instance: ChatStorage | null = null;\n private static CHAT_STORAGE_KEY: string = 'TUI_CHAT_STORAGE';\n\n private chatStorage: Record<string, any> | null = null;\n\n private constructor() {}\n\n public static getInstance(): ChatStorage {\n if (!ChatStorage.instance) {\n ChatStorage.instance = new ChatStorage();\n }\n return ChatStorage.instance;\n }\n\n public getChatStorage(key: string): any | undefined {\n if (!this.chatStorage) {\n this.chatStorage = this.getChatStorageFromLocalStorage();\n }\n if (key) {\n return this.chatStorage[key];\n } else {\n throw new Error('No key provided');\n }\n }\n\n public setChatStorage(key: string, value: any): void {\n if (!this.chatStorage) {\n this.chatStorage = this.getChatStorageFromLocalStorage();\n }\n this.chatStorage[key] = value;\n try {\n if (isUniFrameWork) {\n TUIGlobal.setStorageSync(ChatStorage.CHAT_STORAGE_KEY, JSON.stringify(this.chatStorage));\n } else {\n localStorage.setItem(ChatStorage.CHAT_STORAGE_KEY, JSON.stringify(this.chatStorage));\n }\n } catch (error) {\n throw new Error('Fail to set chat storage');\n }\n }\n\n private getChatStorageFromLocalStorage(): Record<string, any> {\n let chatStorageString: string = '';\n if (isUniFrameWork) {\n chatStorageString = TUIGlobal.getStorageSync(ChatStorage.CHAT_STORAGE_KEY) || '';\n } else {\n chatStorageString = localStorage.getItem(ChatStorage.CHAT_STORAGE_KEY) || '';\n }\n if (!chatStorageString) {\n return {};\n }\n try {\n this.chatStorage = JSON.parse(chatStorageString);\n } catch (error) {\n this.chatStorage = {};\n }\n return this.chatStorage as Record<string, any>;\n }\n}\n\nexport default ChatStorage.getInstance();\n"],"names":["isUniFrameWork","TUIGlobal"],"mappings":";;;AAQA,MAAM,eAAN,MAAM,aAAoC;AAAA,EAMhC,cAAc;AAFtB,SAAQ,cAA0C;AAAA,EAE3B;AAAA,EAEvB,OAAc,cAA2B;AACnC,QAAA,CAAC,aAAY,UAAU;AACb,mBAAA,WAAW,IAAI;IAC7B;AACA,WAAO,aAAY;AAAA,EACrB;AAAA,EAEO,eAAe,KAA8B;AAC9C,QAAA,CAAC,KAAK,aAAa;AAChB,WAAA,cAAc,KAAK;IAC1B;AACA,QAAI,KAAK;AACA,aAAA,KAAK,YAAY,GAAG;AAAA,IAAA,OACtB;AACC,YAAA,IAAI,MAAM,iBAAiB;AAAA,IACnC;AAAA,EACF;AAAA,EAEO,eAAe,KAAa,OAAkB;AAC/C,QAAA,CAAC,KAAK,aAAa;AAChB,WAAA,cAAc,KAAK;IAC1B;AACK,SAAA,YAAY,GAAG,IAAI;AACpB,QAAA;AACF,UAAIA,iCAAgB;AAClBC,wBAAU,eAAe,aAAY,kBAAkB,KAAK,UAAU,KAAK,WAAW,CAAC;AAAA,MAAA,OAClF;AACL,qBAAa,QAAQ,aAAY,kBAAkB,KAAK,UAAU,KAAK,WAAW,CAAC;AAAA,MACrF;AAAA,aACO,OAAO;AACR,YAAA,IAAI,MAAM,0BAA0B;AAAA,IAC5C;AAAA,EACF;AAAA,EAEQ,iCAAsD;AAC5D,QAAI,oBAA4B;AAChC,QAAID,iCAAgB;AAClB,0BAAoBC,cAAU,EAAA,eAAe,aAAY,gBAAgB,KAAK;AAAA,IAAA,OACzE;AACL,0BAAoB,aAAa,QAAQ,aAAY,gBAAgB,KAAK;AAAA,IAC5E;AACA,QAAI,CAAC,mBAAmB;AACtB,aAAO;IACT;AACI,QAAA;AACG,WAAA,cAAc,KAAK,MAAM,iBAAiB;AAAA,aACxC,OAAO;AACd,WAAK,cAAc;IACrB;AACA,WAAO,KAAK;AAAA,EACd;AACF;AA1DE,aAAe,WAA+B;AAC9C,aAAe,mBAA2B;AAF5C,IAAM,cAAN;AA6DA,MAAe,cAAA,YAAY,YAAY;;"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"convertVoiceToText.js","sources":["TUIKit/components/TUIChat/utils/convertVoiceToText.ts"],"sourcesContent":["import {\n IMessageModel,\n TUIChatService,\n TUIStore,\n} from '@tencentcloud/chat-uikit-engine';\nimport { IChatResponese } from '../../../interface';\n\nclass Convertor {\n public isUseCache = true;\n private convertCache = new Map<string, string>();\n private static instance: Convertor | undefined = undefined;\n\n private constructor() {}\n\n static getInstance() {\n if (!Convertor.instance) {\n Convertor.instance = new Convertor();\n }\n return Convertor.instance;\n }\n\n async get(message: IMessageModel): Promise<string> {\n // step1: check in cache if convert result exist\n if (this.isUseCache) {\n const cache = this.convertCache.get(message.ID);\n if (cache !== undefined) {\n return cache;\n }\n }\n\n // step2: get message model with prototype methods\n const currentMessage: IMessageModel = TUIStore.getMessageModel(message.ID);\n if (!currentMessage) {\n return Promise.reject('message not found');\n }\n // step3: get response from api\n const response: IChatResponese<{ result: string }> = await TUIChatService.convertVoiceToText({\n message: currentMessage,\n });\n let { data: { result } = {} } = response;\n if (result) {\n this.convertCache.set(currentMessage.ID, result);\n } else {\n result = '';\n }\n return result;\n }\n\n clear() {\n this.convertCache.clear();\n }\n\n disableCache() {\n this.isUseCache = false;\n }\n\n enableCache() {\n this.isUseCache = true;\n }\n}\n\nexport const convertor = Convertor.getInstance();\n"],"names":["TUIStore","TUIChatService"],"mappings":";;AAOA,MAAM,aAAN,MAAM,WAAU;AAAA,EAKN,cAAc;AAJtB,SAAO,aAAa;AACZ,SAAA,mCAAmB;EAGJ;AAAA,EAEvB,OAAO,cAAc;AACf,QAAA,CAAC,WAAU,UAAU;AACb,iBAAA,WAAW,IAAI;IAC3B;AACA,WAAO,WAAU;AAAA,EACnB;AAAA,EAEA,MAAM,IAAI,SAAyC;AAEjD,QAAI,KAAK,YAAY;AACnB,YAAM,QAAQ,KAAK,aAAa,IAAI,QAAQ,EAAE;AAC9C,UAAI,UAAU,QAAW;AAChB,eAAA;AAAA,MACT;AAAA,IACF;AAGA,UAAM,iBAAgCA,cAAA,GAAS,gBAAgB,QAAQ,EAAE;AACzE,QAAI,CAAC,gBAAgB;AACZ,aAAA,QAAQ,OAAO,mBAAmB;AAAA,IAC3C;AAEM,UAAA,WAA+C,MAAMC,cAAA,GAAe,mBAAmB;AAAA,MAC3F,SAAS;AAAA,IAAA,CACV;AACD,QAAI,EAAE,MAAM,EAAE,OAAW,IAAA,OAAO;AAChC,QAAI,QAAQ;AACV,WAAK,aAAa,IAAI,eAAe,IAAI,MAAM;AAAA,IAAA,OAC1C;AACI,eAAA;AAAA,IACX;AACO,WAAA;AAAA,EACT;AAAA,EAEA,QAAQ;AACN,SAAK,aAAa;EACpB;AAAA,EAEA,eAAe;AACb,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,cAAc;AACZ,SAAK,aAAa;AAAA,EACpB;AACF;AAjDE,WAAe,WAAkC;AAHnD,IAAM,YAAN;AAsDa,MAAA,YAAY,UAAU,YAAY;;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"wordsList.js","sources":["TUIKit/components/TUIChat/utils/wordsList.ts"],"sourcesContent":["export const wordsList = [\n {\n value: '在吗?在吗?在吗?重要的话说三遍。',\n },\n {\n value: '好久没聊天了,快来和我说说话~',\n },\n {\n value: '好的,就这么说定了。',\n },\n {\n value: '感恩的心,感谢有你。',\n },\n {\n value: '糟糕!是心动的感觉!',\n },\n {\n value: '心疼地抱抱自己,我太难了!',\n },\n {\n value: '没关系,别在意,事情过去就过去了。',\n },\n {\n value: '早上好,今天也是让人期待的一天呢!',\n },\n {\n value: '熬夜有什么用,又没人陪你聊天,早点休息吧。',\n },\n];\n"],"names":[],"mappings":";AAAO,MAAM,YAAY;AAAA,EACvB;AAAA,IACE,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,EACT;AACF;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"video-play.js","sources":["TUIKit/components/TUIChat/video-play.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/VFVJS2l0XGNvbXBvbmVudHNcVFVJQ2hhdFx2aWRlby1wbGF5LnZ1ZQ"],"sourcesContent":["<template>\n <div class=\"dialog-video\">\n <video\n v-if=\"isShow\"\n id=\"videoEle\"\n class=\"video-box\"\n :src=\"videoData\"\n controls\n autoplay\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref } from '../../adapter-vue';\nimport { TUIGlobal } from '@tencentcloud/universal-api';\nimport { onLoad, onReady } from '@dcloudio/uni-app';\n\nconst videoData = ref();\nconst isShow = ref(false);\nconst videoContext = ref();\nonLoad((option: any) => {\n const decodedUrl = decodeURIComponent(option?.videoUrl);\n videoData.value = decodedUrl;\n isShow.value = true;\n});\n\nonReady(() => {\n isShow.value = true;\n videoContext.value = TUIGlobal.createVideoContext('videoEle');\n});\n</script>\n<style lang=\"scss\" scoped>\n.dialog-video {\n position: fixed;\n z-index: 999;\n width: 100vw;\n height: 100vh;\n background: rgba(#000, 0.6);\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .video-box {\n position: absolute;\n width: 100vw;\n height: 100vh;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n}\n</style>\n","import MiniProgramPage from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/video-play.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","onLoad","onReady","TUIGlobal"],"mappings":";;;;;;AAkBA,UAAM,YAAYA,cAAAA;AACZ,UAAA,SAASA,kBAAI,KAAK;AACxB,UAAM,eAAeA,cAAAA;AACrBC,kBAAA,OAAO,CAAC,WAAgB;AAChB,YAAA,aAAa,mBAAmB,iCAAQ,QAAQ;AACtD,gBAAU,QAAQ;AAClB,aAAO,QAAQ;AAAA,IAAA,CAChB;AAEDC,kBAAAA,QAAQ,MAAM;AACZ,aAAO,QAAQ;AACF,mBAAA,QAAQC,cAAAA,EAAU,mBAAmB,UAAU;AAAA,IAAA,CAC7D;;;;;;;;;;;AC7BD,GAAG,WAAW,eAAe;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"web-view.js","sources":["TUIKit/components/TUIChat/web-view.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/VFVJS2l0XGNvbXBvbmVudHNcVFVJQ2hhdFx3ZWItdmlldy52dWU"],"sourcesContent":["<template>\n <web-view :src=\"url\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref } from '../../adapter-vue';\nimport { onLoad } from '@dcloudio/uni-app';\n\nconst url = ref('');\nonLoad((option: any) => {\n url.value = option && option.url;\n});\n</script>\n","import MiniProgramPage from 'D:/项目/tk-mini-program/TUIKit/components/TUIChat/web-view.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","onLoad","MiniProgramPage"],"mappings":";;;;;;AAQM,UAAA,MAAMA,kBAAI,EAAE;AAClBC,kBAAA,OAAO,CAAC,WAAgB;AAClB,UAAA,QAAQ,UAAU,OAAO;AAAA,IAAA,CAC9B;;;;;;;;ACVD,GAAG,WAAWC,SAAe;"}