@touchvue/chat 1.0.0-beta.48 → 1.0.0-beta.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/es/package.json.mjs +1 -1
  2. package/es/packages/components/touchchat/component/QuoteContent.vue2.mjs +19 -8
  3. package/es/packages/components/touchchat/component/QuoteContent.vue2.mjs.map +1 -1
  4. package/es/packages/components/touchchat/component/UploadView.vue2.mjs +51 -14
  5. package/es/packages/components/touchchat/component/UploadView.vue2.mjs.map +1 -1
  6. package/es/packages/components/touchchat/src/AiChat/Chat/types.mjs.map +1 -1
  7. package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs +3 -1
  8. package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs.map +1 -1
  9. package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs +14 -4
  10. package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs.map +1 -1
  11. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +10 -1
  12. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
  13. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs +39 -0
  14. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs.map +1 -1
  15. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs +32 -11
  16. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
  17. package/es/packages/components/touchchat/src/index.vue2.mjs +7 -2
  18. package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
  19. package/es/packages/components/touchchat/src/types/a2a.mjs.map +1 -1
  20. package/lib/package.json.js +1 -1
  21. package/lib/packages/components/touchchat/component/QuoteContent.vue2.js +18 -7
  22. package/lib/packages/components/touchchat/component/QuoteContent.vue2.js.map +1 -1
  23. package/lib/packages/components/touchchat/component/UploadView.vue2.js +50 -13
  24. package/lib/packages/components/touchchat/component/UploadView.vue2.js.map +1 -1
  25. package/lib/packages/components/touchchat/src/AiChat/Chat/types.js.map +1 -1
  26. package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js +3 -1
  27. package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js.map +1 -1
  28. package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js +14 -4
  29. package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js.map +1 -1
  30. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +10 -1
  31. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
  32. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js +39 -0
  33. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js.map +1 -1
  34. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js +31 -10
  35. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
  36. package/lib/packages/components/touchchat/src/index.vue2.js +6 -1
  37. package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
  38. package/lib/packages/components/touchchat/src/types/a2a.js.map +1 -1
  39. package/package.json +1 -1
  40. package/theme/components/index.css +41 -0
  41. package/theme/index.css +41 -0
  42. package/theme/skin/default.css +41 -0
@@ -41,6 +41,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
41
41
  const stop = vue.inject("stop", () => {
42
42
  console.warn("\u672A\u63D0\u4F9Bstop\u51FD\u6570");
43
43
  });
44
+ const isSelectMode = vue.inject(
45
+ "isSelectMode",
46
+ vue.computed(() => false)
47
+ );
44
48
  const scriptsLength = vue.computed(() => {
45
49
  var _a;
46
50
  return ((_a = scripts.value) == null ? void 0 : _a.length) || 0;
@@ -115,6 +119,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
115
119
  chatList.value[idx].likeList = [];
116
120
  });
117
121
  };
122
+ const handleSelectChange = (idx) => {
123
+ if (isSelectMode.value) {
124
+ chatList.value[idx].selecting = !chatList.value[idx].selecting;
125
+ }
126
+ };
118
127
  const toggleSidebarClick = (item, index) => {
119
128
  emit("toggleSidebar", item, index);
120
129
  };
@@ -191,12 +200,26 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
191
200
  vue.Fragment,
192
201
  null,
193
202
  vue.renderList(vue.unref(chatList), (item, index) => {
194
- return vue.openBlock(), vue.createElementBlock(
195
- vue.Fragment,
196
- {
197
- key: item.chatId
198
- },
199
- [
203
+ return vue.openBlock(), vue.createElementBlock("div", {
204
+ key: item.chatId,
205
+ class: "touchchat-list-box"
206
+ }, [
207
+ vue.unref(isSelectMode) ? (vue.openBlock(), vue.createElementBlock("div", {
208
+ key: 0,
209
+ class: "touchchat-list-check"
210
+ }, [
211
+ vue.withDirectives(vue.createElementVNode("input", {
212
+ "onUpdate:modelValue": ($event) => item.selecting = $event,
213
+ class: "input-check",
214
+ type: "checkbox"
215
+ }, null, 8, ["onUpdate:modelValue"]), [
216
+ [vue.vModelCheckbox, item.selecting]
217
+ ])
218
+ ])) : vue.createCommentVNode("v-if", true),
219
+ vue.createElementVNode("div", {
220
+ class: vue.normalizeClass(["touchchat-list-content", [item.selecting ? "status-select" : "", vue.unref(isSelectMode) ? "select-mode" : ""]]),
221
+ onClick: ($event) => handleSelectChange(index)
222
+ }, [
200
223
  item.user === "u" ? (vue.openBlock(), vue.createBlock(UserMessage.default, {
201
224
  key: 0,
202
225
  item,
@@ -278,10 +301,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
278
301
  _: 2
279
302
  /* DYNAMIC */
280
303
  }, 1032, ["item", "index", "enable-deep-thinking", "has-retry", "onCopy", "onRetry", "onLike", "onDislike", "onCompleteRendered", "onSend"])) : vue.createCommentVNode("v-if", true)
281
- ],
282
- 64
283
- /* STABLE_FRAGMENT */
284
- );
304
+ ], 10, ["onClick"])
305
+ ]);
285
306
  }),
286
307
  128
287
308
  /* KEYED_FRAGMENT */
@@ -1 +1 @@
1
- {"version":3,"file":"TouchChat.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchChat.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-main\" @dragover.prevent @dragenter.prevent=\"handleDragEnter\" @dragleave=\"handleDragLeave\" @drop.prevent=\"handleDrop\">\n\t\t<div ref=\"chatContainer\" class=\"touchchat-dialog\" @scroll=\"handleScroll\">\n\t\t\t<slot name=\"top\"> </slot>\n\t\t\t<div v-if=\"chatList.length === 0\" class=\"touchchat-welcome\">\n\t\t\t\t<slot name=\"welcome\">\n\t\t\t\t\t<HelloChat @send-message=\"sendMessage\" />\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-dialog-content\">\n\t\t\t\t<template v-for=\"(item, index) in chatList\" :key=\"item.chatId\">\n\t\t\t\t\t<UserMessage v-if=\"item.user === 'u'\" :item=\"item\" :index=\"index\" @user-message-file-list=\"itemUploadFile\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @edit=\"handleMessageAction(MessageAction.EDIT, index)\" @delete=\"handleMessageAction(MessageAction.DELETE, index)\" @save-edit=\"saveEdit\" @cancel-edit=\"cancelEdit(index)\" @with-draw=\"handleMessageAction(MessageAction.WITHDRAW, index)\">\n\t\t\t\t\t\t<template #userAvatar>\n\t\t\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</UserMessage>\n\t\t\t\t\t<div v-if=\"item.user === 'withDraw'\" class=\"touchchat-dialog-withDraw\">你撤回了一条消息</div>\n\t\t\t\t\t<AiMessage v-if=\"item.user === 'ai'\" :item=\"item\" :index=\"index\" :enable-deep-thinking=\"enableDeepThinking\" :has-retry=\"activeAgentsName || scriptsLength > 0 ? false : true\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @retry=\"handleMessageAction(MessageAction.RETRY, index)\" @like=\"handleMessageAction(MessageAction.LIKE, index)\" @quote=\"handleMessageQuote\" @dislike=\"handleMessageAction(MessageAction.DISLIKE, index)\" @content-rendered=\"attachCopyButtons\" @complete-rendered=\"completeRendered\" @toggle-sidebar=\"toggleSidebarClick\" @open-side-bar=\"openSideBar\" @send=\"value => handleLikeSend(value, index)\">\n\t\t\t\t\t\t<template #aimsg>\n\t\t\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #msg>\n\t\t\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #mayLike>\n\t\t\t\t\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</AiMessage>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"$slots.shortcut\" class=\"touchchat-edit-shortcut\">\n\t\t\t<slot name=\"shortcut\"></slot>\n\t\t</div>\n\t\t<slot name=\"edit\">\n\t\t\t<ChatInput ref=\"ChatInputRef\" v-model:input-value=\"inputValue\" v-model:enable-deep-thinking=\"enableDeepThinking\" :is-chating=\"isChating\" @send=\"handleBeforeSend\" @stop=\"handleStop\" @toggle-deep-thinking=\"(val: boolean) => (enableDeepThinking = val)\" @module-info=\"(_info: any) => {}\">\n\t\t\t\t<template #editTop>\n\t\t\t\t\t<slot name=\"editTop\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editFn>\n\t\t\t\t\t<slot name=\"editFn\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitRight>\n\t\t\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitLeft>\n\t\t\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t\t\t</template>\n\t\t\t</ChatInput>\n\t\t</slot>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport UserMessage from './UserMessage.vue'\nimport AiMessage from './AiMessage.vue'\nimport ChatInput from './ChatInput.vue'\nimport HelloChat from '../../component/HelloChat.vue'\nimport { ref, computed, onMounted, onBeforeUnmount, inject, watch, provide, type Ref, nextTick } from 'vue'\nimport { MessageAction, type ChatMessage, type ChatMsgList, type ModuleItem } from './Chat/types'\nimport { useChat } from './Chat/useChat'\nimport { useCopy } from './Chat/useCopy'\n\n// 组件属性和注入\nconst emit = defineEmits(['sendMessage', 'toggleSidebar', 'beforeSendMessage', 'openSideBar'])\nconst scripts = inject<Ref<any[]>>('scripts', ref([]))\nconst unmatchText = inject<string>('unmatchText', '您的消息未匹配到任何内容')\nconst modules = inject<Ref<(string | ModuleItem)[]>>('modules', ref([]))\nconst afterSend = inject<(result: object) => void>('afterSend', () => {\n\tconsole.warn('未提供afterSend函数')\n})\nconst sendMessageInject = inject<(value: string, fileList?: any[]) => void>('send', () => {\n\tconsole.warn('未提供handleSend函数')\n})\nconst beforeSend = inject<() => { result: boolean; componentName?: string }>('beforeSend', () => ({\n\tresult: true,\n\tcomponentName: ''\n}))\n\nconst bottom = inject<() => void>('bottom', () => {\n\tconsole.warn('未提供bottom函数')\n})\n\nconst stop = inject<(item: ChatMessage, index: number) => void>('stop', () => {\n\tconsole.warn('未提供stop函数')\n})\n\n// 计算属性\nconst scriptsLength = computed(() => scripts.value?.length || 0)\n\n// 组件属性\nconst props = defineProps({\n\tvalue: {\n\t\ttype: Array as () => ChatMessage[],\n\t\tdefault: () => []\n\t}\n})\n\n// DOM 引用\nconst chatContainer = ref<HTMLElement | null>(null)\nconst ChatInputRef = ref<InstanceType<typeof ChatInput> | null>(null)\n\n// 初始化 useChat\nconst {\n\tchatList,\n\tisChating,\n\tinputValue,\n\tenableDeepThinking,\n\tactiveAgentsName,\n\tinit,\n\tsendMessage,\n\thandleBeforeSend,\n\thandleSend,\n\thandleStop,\n\thandleMessageAction,\n\tsaveEdit,\n\tcancelEdit,\n\tcompleteRendered,\n\thandleAgentSelect,\n\tupdate,\n\tupdateModule,\n\thandleDragEnter,\n\thandleDragLeave,\n\thandleDrop,\n\thandleScroll,\n\tonMounted: chatOnMounted,\n\tonBeforeUnmount: chatOnBeforeUnmount\n} = useChat({\n\tprops,\n\temit: emit as any,\n\tscripts: scripts.value,\n\tunmatchText,\n\tmodules: modules.value,\n\tafterSend,\n\tsendMessageInject,\n\tbeforeSend,\n\tbottom,\n\tstop,\n\tchatContainer,\n\tchatInputRef: ChatInputRef\n})\n\n// 使用 useCopy composable\nconst { copyWithFeedback } = useCopy()\n\n// 注入外部的 modelChange 并覆盖,调用内部 updateModule 更新 moduleInfo\nconst modelChangeExternal = inject<(item: ModuleItem, index: number) => void>('modelChange', () => {})\nprovide('modelChange', (item: ModuleItem, index: number) => {\n\tmodelChangeExternal(item, index)\n\tupdateModule(item)\n})\n\n// 附加复制按钮到代码块\nconst attachCopyButtons = (container: HTMLElement): void => {\n\tconst codeBlocks = container.querySelectorAll('pre code')\n\tcodeBlocks.forEach(codeBlock => {\n\t\tconst pre = codeBlock.parentElement\n\t\tif (pre) {\n\t\t\tconst copyBtn = document.createElement('button')\n\t\t\tcopyBtn.className = 'touchchat-code-copy'\n\t\t\tcopyBtn.addEventListener('click', () => {\n\t\t\t\tconst code = codeBlock.textContent || ''\n\t\t\t\tcopyWithFeedback(code, copyBtn, '', '已复制', 2000)\n\t\t\t})\n\t\t\tpre.style.position = 'relative'\n\t\t\tpre.appendChild(copyBtn)\n\t\t}\n\t})\n}\n\nconst handleLikeSend = (value: string, idx: number) => {\n\thandleSend(value)\n\tnextTick(() => {\n\t\tchatList.value[idx].likeList = []\n\t})\n}\n\n// 侧边栏切换\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\n\temit('toggleSidebar', item, index)\n}\n\nconst openSideBar = (item: ChatMessage & ChatMsgList, index: number) => {\n\temit('openSideBar', item, index)\n}\n\nconst handleMessageQuote = (item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.updateQuoteData(item, index)\n\t}\n}\n\n// 文件上传\nconst itemUploadFile = (_item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.itemUploadFile(index, 'drop')\n\t}\n}\nconst setInputValue = inject<any>('setInput')\n\n// 组件生命周期\nonMounted(() => {\n\tsetInputValue.value = (value: string) => {\n\t\tinputValue.value = value\n\t}\n\tchatOnMounted()\n\twatch(\n\t\t() => scripts,\n\t\t() => {\n\t\t\tinit()\n\t\t},\n\t\t{ deep: true, immediate: false }\n\t)\n})\n\nonBeforeUnmount(() => {\n\tchatOnBeforeUnmount()\n})\n\n// 提供给子组件\nprovide('touchchat', {\n\tsend: sendMessage,\n\tretry: handleMessageAction\n})\n\n// 暴露方法\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\thandleSend(value, fileList, auto, type)\n\t},\n\thandleAgentSelect,\n\tretry: (index: number) => {\n\t\thandleMessageAction(MessageAction.RETRY, index)\n\t},\n\tupdate\n})\n</script>\n"],"names":["inject","ref","computed","useChat","useCopy","provide","nextTick","onMounted","watch","onBeforeUnmount","MessageAction","_createElementBlock","_unref","_createElementVNode","_renderSlot","_createVNode","HelloChat","_openBlock","_Fragment","_renderList","_createBlock","UserMessage","AiMessage","$slots","ChatInput"],"mappings":"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"}
1
+ {"version":3,"file":"TouchChat.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchChat.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-main\" @dragover.prevent @dragenter.prevent=\"handleDragEnter\" @dragleave=\"handleDragLeave\" @drop.prevent=\"handleDrop\">\n\t\t<div ref=\"chatContainer\" class=\"touchchat-dialog\" @scroll=\"handleScroll\">\n\t\t\t<slot name=\"top\"> </slot>\n\t\t\t<div v-if=\"chatList.length === 0\" class=\"touchchat-welcome\">\n\t\t\t\t<slot name=\"welcome\">\n\t\t\t\t\t<HelloChat @send-message=\"sendMessage\" />\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-dialog-content\">\n\t\t\t\t<template v-for=\"(item, index) in chatList\" :key=\"item.chatId\">\n\t\t\t\t\t<div class=\"touchchat-list-box\">\n\t\t\t\t\t\t<div v-if=\"isSelectMode\" class=\"touchchat-list-check\">\n\t\t\t\t\t\t\t<input v-model=\"item.selecting\" class=\"input-check\" type=\"checkbox\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"touchchat-list-content\" :class=\"[item.selecting ? 'status-select' : '', isSelectMode ? 'select-mode' : '']\" @click=\"handleSelectChange(index)\">\n\t\t\t\t\t\t\t<UserMessage v-if=\"item.user === 'u'\" :item=\"item\" :index=\"index\" @user-message-file-list=\"itemUploadFile\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @edit=\"handleMessageAction(MessageAction.EDIT, index)\" @delete=\"handleMessageAction(MessageAction.DELETE, index)\" @save-edit=\"saveEdit\" @cancel-edit=\"cancelEdit(index)\" @with-draw=\"handleMessageAction(MessageAction.WITHDRAW, index)\">\n\t\t\t\t\t\t\t\t<template #userAvatar>\n\t\t\t\t\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</UserMessage>\n\t\t\t\t\t\t\t<div v-if=\"item.user === 'withDraw'\" class=\"touchchat-dialog-withDraw\">你撤回了一条消息</div>\n\t\t\t\t\t\t\t<AiMessage v-if=\"item.user === 'ai'\" :item=\"item\" :index=\"index\" :enable-deep-thinking=\"enableDeepThinking\" :has-retry=\"activeAgentsName || scriptsLength > 0 ? false : true\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @retry=\"handleMessageAction(MessageAction.RETRY, index)\" @like=\"handleMessageAction(MessageAction.LIKE, index)\" @quote=\"handleMessageQuote\" @dislike=\"handleMessageAction(MessageAction.DISLIKE, index)\" @content-rendered=\"attachCopyButtons\" @complete-rendered=\"completeRendered\" @toggle-sidebar=\"toggleSidebarClick\" @open-side-bar=\"openSideBar\" @send=\"value => handleLikeSend(value, index)\">\n\t\t\t\t\t\t\t\t<template #aimsg>\n\t\t\t\t\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #msg>\n\t\t\t\t\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #mayLike>\n\t\t\t\t\t\t\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</AiMessage>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"$slots.shortcut\" class=\"touchchat-edit-shortcut\">\n\t\t\t<slot name=\"shortcut\"></slot>\n\t\t</div>\n\t\t<slot name=\"edit\">\n\t\t\t<ChatInput ref=\"ChatInputRef\" v-model:input-value=\"inputValue\" v-model:enable-deep-thinking=\"enableDeepThinking\" :is-chating=\"isChating\" @send=\"handleBeforeSend\" @stop=\"handleStop\" @toggle-deep-thinking=\"(val: boolean) => (enableDeepThinking = val)\" @module-info=\"(_info: any) => {}\">\n\t\t\t\t<template #editTop>\n\t\t\t\t\t<slot name=\"editTop\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editFn>\n\t\t\t\t\t<slot name=\"editFn\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitRight>\n\t\t\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitLeft>\n\t\t\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t\t\t</template>\n\t\t\t</ChatInput>\n\t\t</slot>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport UserMessage from './UserMessage.vue'\nimport AiMessage from './AiMessage.vue'\nimport ChatInput from './ChatInput.vue'\nimport HelloChat from '../../component/HelloChat.vue'\nimport { ref, computed, onMounted, onBeforeUnmount, inject, watch, provide, type Ref, nextTick, ComputedRef } from 'vue'\nimport { MessageAction, type ChatMessage, type ChatMsgList, type ModuleItem } from './Chat/types'\nimport { useChat } from './Chat/useChat'\nimport { useCopy } from './Chat/useCopy'\n\n// 组件属性和注入\nconst emit = defineEmits(['sendMessage', 'toggleSidebar', 'beforeSendMessage', 'openSideBar'])\nconst scripts = inject<Ref<any[]>>('scripts', ref([]))\nconst unmatchText = inject<string>('unmatchText', '您的消息未匹配到任何内容')\nconst modules = inject<Ref<(string | ModuleItem)[]>>('modules', ref([]))\nconst afterSend = inject<(result: object) => void>('afterSend', () => {\n\tconsole.warn('未提供afterSend函数')\n})\nconst sendMessageInject = inject<(value: string, fileList?: any[]) => void>('send', () => {\n\tconsole.warn('未提供handleSend函数')\n})\nconst beforeSend = inject<() => { result: boolean; componentName?: string }>('beforeSend', () => ({\n\tresult: true,\n\tcomponentName: ''\n}))\n\nconst bottom = inject<() => void>('bottom', () => {\n\tconsole.warn('未提供bottom函数')\n})\n\nconst stop = inject<(item: ChatMessage, index: number) => void>('stop', () => {\n\tconsole.warn('未提供stop函数')\n})\n\nconst isSelectMode = inject<ComputedRef<boolean>>(\n\t'isSelectMode',\n\tcomputed(() => false)\n)\n\n// 计算属性\nconst scriptsLength = computed(() => scripts.value?.length || 0)\n\n// 组件属性\nconst props = defineProps({\n\tvalue: {\n\t\ttype: Array as () => ChatMessage[],\n\t\tdefault: () => []\n\t}\n})\n\n// DOM 引用\nconst chatContainer = ref<HTMLElement | null>(null)\nconst ChatInputRef = ref<InstanceType<typeof ChatInput> | null>(null)\n\n// 初始化 useChat\nconst {\n\tchatList,\n\tisChating,\n\tinputValue,\n\tenableDeepThinking,\n\tactiveAgentsName,\n\tinit,\n\tsendMessage,\n\thandleBeforeSend,\n\thandleSend,\n\thandleStop,\n\thandleMessageAction,\n\tsaveEdit,\n\tcancelEdit,\n\tcompleteRendered,\n\thandleAgentSelect,\n\tupdate,\n\tupdateModule,\n\thandleDragEnter,\n\thandleDragLeave,\n\thandleDrop,\n\thandleScroll,\n\tonMounted: chatOnMounted,\n\tonBeforeUnmount: chatOnBeforeUnmount\n} = useChat({\n\tprops,\n\temit: emit as any,\n\tscripts: scripts.value,\n\tunmatchText,\n\tmodules: modules.value,\n\tafterSend,\n\tsendMessageInject,\n\tbeforeSend,\n\tbottom,\n\tstop,\n\tchatContainer,\n\tchatInputRef: ChatInputRef\n})\n\n// 使用 useCopy composable\nconst { copyWithFeedback } = useCopy()\n\n// 注入外部的 modelChange 并覆盖,调用内部 updateModule 更新 moduleInfo\nconst modelChangeExternal = inject<(item: ModuleItem, index: number) => void>('modelChange', () => {})\nprovide('modelChange', (item: ModuleItem, index: number) => {\n\tmodelChangeExternal(item, index)\n\tupdateModule(item)\n})\n\n// 附加复制按钮到代码块\nconst attachCopyButtons = (container: HTMLElement): void => {\n\tconst codeBlocks = container.querySelectorAll('pre code')\n\tcodeBlocks.forEach(codeBlock => {\n\t\tconst pre = codeBlock.parentElement\n\t\tif (pre) {\n\t\t\tconst copyBtn = document.createElement('button')\n\t\t\tcopyBtn.className = 'touchchat-code-copy'\n\t\t\tcopyBtn.addEventListener('click', () => {\n\t\t\t\tconst code = codeBlock.textContent || ''\n\t\t\t\tcopyWithFeedback(code, copyBtn, '', '已复制', 2000)\n\t\t\t})\n\t\t\tpre.style.position = 'relative'\n\t\t\tpre.appendChild(copyBtn)\n\t\t}\n\t})\n}\n\nconst handleLikeSend = (value: string, idx: number) => {\n\thandleSend(value)\n\tnextTick(() => {\n\t\tchatList.value[idx].likeList = []\n\t})\n}\n\nconst handleSelectChange = (idx: number) => {\n\tif (isSelectMode.value) {\n\t\tchatList.value[idx].selecting = !chatList.value[idx].selecting\n\t}\n}\n\n// 侧边栏切换\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\n\temit('toggleSidebar', item, index)\n}\n\nconst openSideBar = (item: ChatMessage & ChatMsgList, index: number) => {\n\temit('openSideBar', item, index)\n}\n\nconst handleMessageQuote = (item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.updateQuoteData(item, index)\n\t}\n}\n\n// 文件上传\nconst itemUploadFile = (_item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.itemUploadFile(index, 'drop')\n\t}\n}\nconst setInputValue = inject<any>('setInput')\n\n// 组件生命周期\nonMounted(() => {\n\tsetInputValue.value = (value: string) => {\n\t\tinputValue.value = value\n\t}\n\tchatOnMounted()\n\twatch(\n\t\t() => scripts,\n\t\t() => {\n\t\t\tinit()\n\t\t},\n\t\t{ deep: true, immediate: false }\n\t)\n})\n\nonBeforeUnmount(() => {\n\tchatOnBeforeUnmount()\n})\n\n// 提供给子组件\nprovide('touchchat', {\n\tsend: sendMessage,\n\tretry: handleMessageAction\n})\n\n// 暴露方法\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\thandleSend(value, fileList, auto, type)\n\t},\n\thandleAgentSelect,\n\tretry: (index: number) => {\n\t\thandleMessageAction(MessageAction.RETRY, index)\n\t},\n\tupdate\n})\n</script>\n"],"names":["inject","ref","computed","useChat","useCopy","provide","nextTick","onMounted","watch","onBeforeUnmount","MessageAction","_createElementBlock","_unref","_createElementVNode","_renderSlot","_createVNode","HelloChat","_openBlock","_Fragment","_renderList","_vModelCheckbox","_createBlock","UserMessage","AiMessage","$slots","ChatInput"],"mappings":"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"}
@@ -41,13 +41,16 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
41
41
  ai: ["retry", "like", "dislike", "copy"]
42
42
  };
43
43
  } },
44
- hasRead: { type: Boolean, default: false }
44
+ hasRead: { type: Boolean, default: false },
45
+ isSelectMode: { type: Boolean, default: false },
46
+ uploadAction: { type: Function, default: void 0 }
45
47
  },
46
48
  emits: ["send", "afterSend", "like", "dislike", "side-bottom", "change", "historyRemove", "remove", "bottom", "stop", "modelChange", "openSideBar", "share", "withDraw", "file-action"],
47
49
  setup(__props, { expose: __expose, emit: __emit }) {
48
50
  const emits = __emit;
49
51
  const sendVal = vue.ref("");
50
52
  const props = __props;
53
+ const selectMode = vue.computed(() => props.isSelectMode);
51
54
  vue.provide("components", props.components);
52
55
  vue.provide("avatar", props.avatar);
53
56
  vue.provide("placeholder", props.placeholder);
@@ -61,6 +64,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
61
64
  vue.provide("a2uiProps", props.a2uiProps);
62
65
  vue.provide("messageActions", props.messageActions);
63
66
  vue.provide("hasRead", props.hasRead);
67
+ vue.provide("isSelectMode", selectMode);
68
+ vue.provide("uploadAction", props.uploadAction);
64
69
  const historyListComputed = vue.computed(() => props.historyList);
65
70
  const providedHistoryList = vue.ref(props.historyList);
66
71
  vue.watch(
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../../../packages/components/touchchat/src/index.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({ name: 'Touchchat' });\n</script>\n<template>\n\t<!-- <div>1.0.0-beta.2026032301</div> -->\n\t<DeepSeek ref=\"deepSeekRef\" :style=\"elementStyle\" :class=\"elementClass\">\n\t\t<!-- msg -->\n\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #msg=\"{ item, index }\">\n\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #aiAvatar>\n\t\t\t<slot name=\"aiAvatar\" />\n\t\t</template>\n\t\t<template #userAvatar>\n\t\t\t<slot name=\"userAvatar\" />\n\t\t</template>\n\t\t<template #welcome>\n\t\t\t<slot name=\"welcome\" />\n\t\t</template>\n\t\t<!-- edit -->\n\t\t<template #edit>\n\t\t\t<slot name=\"edit\" />\n\t\t</template>\n\t\t<!-- top -->\n\t\t<template #top>\n\t\t\t<slot name=\"top\" />\n\t\t</template>\n\t\t<template #shortcut>\n\t\t\t<slot name=\"shortcut\" />\n\t\t</template>\n\t\t<!-- extend -->\n\t\t<template #extend=\"{ item, index }\">\n\t\t\t<slot name=\"extend\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<!-- fn -->\n\t\t<template #fn=\"{ item, index }\">\n\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #editTop>\n\t\t\t<slot name=\"editTop\" />\n\t\t</template>\n\t\t<template #editFn>\n\t\t\t<slot name=\"editFn\" />\n\t\t</template>\n\t\t<template #editSubmitRight>\n\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t</template>\n\t\t<template #editSubmitLeft>\n\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t</template>\n\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #mayLike=\"{ item, index }\">\n\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t</DeepSeek>\n</template>\n<script setup lang=\"ts\">\nimport { ChatMessage, ChatMsgList, MessageActions, ModuleItem } from './AiChat/Chat/types'\nimport type { AgentConfig, SubAgent } from './types/a2a'\nimport DeepSeek from './AiChat/TouchHistory.vue'\nimport { provide, ref, computed, watch } from 'vue'\n\n\n\nconst emits = defineEmits<{\n\t(e: 'send', value: string, fileList?: any[]): void\n\t(e: 'afterSend', result: any): void\n\t(e: 'like', index: number, isLike: boolean): void\n\t(e: 'dislike', index: number, isDislike: boolean): void\n\t(e: 'side-bottom'): void\n\t(e: 'change', id: string): void\n\t(e: 'historyRemove', id: string): void\n\t(e: 'remove', item: ChatMessage, index: number): void\n\t(e: 'bottom'): void\n\t(e: 'stop', item: ChatMessage, index: number): void\n\t(e: 'modelChange', item: ModuleItem, index: number): void\n\t(e: 'openSideBar', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'share', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'withDraw', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'file-action', item: ChatMessage & ChatMsgList, index: number): void\n}>()\n\nconst sendVal = ref('')\n\ninterface ScriptItem {\n\tid?: string\n\tname: string\n\tsubTitle?: string\n\tcontent: Array<{\n\t\tuser: string\n\t\tdata?: string\n\t\talias?: string[]\n\t\ttype?: string\n\t}>\n}\n\ninterface HistoryItem {\n\tid?: string\n\ttime?: string\n\ttitle?: string\n}\n\ninterface MessageItem {\n\tchatId: string\n\tuser: string\n\ttype: string\n\tcontent: string\n\t[props: string]: any\n}\n\n// interface ModuleItem {\n// \tname: string\n// \tconfig: {\n// \t\taction: string\n// \t\theaders: () => object\n// \t\tbody: () => object\n// \t\trespoKey: () => object\n// \t}\n// }\ntype Modules = (string | ModuleItem)[]\ntype ResultArray = AgentConfig[] | SubAgent[]\ninterface MultiAgentInfo {\n\tlist: ResultArray\n\turl?: string\n\t// token?: string\n\theaders?: object\n}\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\tmode?: string\n\t\tscripts?: ScriptItem[]\n\t\twidth?: number | string\n\t\theight?: number | string\n\t\tcomponents?: { [key: string]: any } // components\n\t\tavatar?: boolean // avatar\n\t\tplaceholder?: string\n\t\tunmatchText?: string // unmatchText\n\t\ttitle?: string\n\t\tlayout?: string // layout=\"side, think, upload, chain,realtime\"\n\t\tbeforeSend?: () => { result: boolean; componentName?: string }\n\t\thistoryList?: HistoryItem[] // historyList\n\t\thistoryDetail?: MessageItem[] // historyDetail\n\t\tagents?: {\n\t\t\tid: string\n\t\t\tname: string\n\t\t\tintro: string\n\t\t}[] // agents\n\t\tmodules?: Modules // modules\n\t\tspeed?: number // speed\n\t\tallowedTypes?: string[] // allowedTypes\n\t\t// agentConfigList?: ResultArray // agentConfigList 智能体配置列表\n\t\t// multiAgentHost?: string // multiAgentHost 多智能体主机地址\n\t\t// multiAgentToken?: string // multiAgentToken 多智能体认证令牌\n\t\tagentInfo?: MultiAgentInfo // agentInfo 多智能体信息\n\t\ta2uiProps?: {\n\t\t\t[key: string]: any\n\t\t}\n\t\tmessageActions?: MessageActions\n\t\thasRead?: boolean\n\t}>(),\n\t{\n\t\tmode: '',\n\t\tscripts: () => [],\n\t\twidth: '',\n\t\theight: '',\n\t\tcomponents: () => ({}),\n\t\tavatar: true,\n\t\tplaceholder: 'hi,我是touchchat,快来和我聊天吧~',\n\t\tunmatchText: '您的消息未匹配到任何内容',\n\t\ttitle: 'TouchChat',\n\t\tlayout: 'side, clear, think, upload, screen, voice,realtime', //chain 思考链\n\t\t// side 侧边栏(历史记录),think 深度思考,upload 上传文件,chain 思考链\n\t\tbeforeSend: () => ({ result: true, componentName: '' }),\n\t\thistoryList: () => [],\n\t\thistoryDetail: () => [],\n\t\tagents: () => [],\n\t\tmodules: () => [],\n\t\tspeed: 10,\n\t\tallowedTypes: () => [],\n\t\tagentInfo: () => ({\n\t\t\tlist: [], // list 智能体列表 =1 单智能体 >1 多智能体\n\t\t\turl: '', // url 多智能体主机地址 单智能体为空 多智能体必传\n\t\t\theaders: {} // 多智能体请求头信息\n\t\t}),\n\t\ta2uiProps: () => ({}),\n\t\tmessageActions: () => {\n\t\t\treturn {\n\t\t\t\tuser: ['edit', 'delete', 'copy'],\n\t\t\t\tai: ['retry', 'like', 'dislike', 'copy']\n\t\t\t}\n\t\t},\n\t\thasRead: false\n\t}\n)\n\nprovide('components', props.components)\nprovide('avatar', props.avatar)\nprovide('placeholder', props.placeholder)\nprovide('unmatchText', props.unmatchText)\nprovide('title', props.title)\nprovide('layout', props.layout)\nprovide('beforeSend', props.beforeSend)\nprovide('scripts', ref(props.scripts || []))\nprovide('speed', props.speed)\nprovide('allowedTypes', props.allowedTypes)\nprovide('a2uiProps', props.a2uiProps)\nprovide('messageActions', props.messageActions)\nprovide('hasRead', props.hasRead)\nconst historyListComputed = computed(() => props.historyList)\nconst providedHistoryList = ref(props.historyList)\nwatch(\n\thistoryListComputed,\n\tnewVal => {\n\t\tprovidedHistoryList.value = newVal\n\t},\n\t{ immediate: true }\n)\nprovide('historyList', providedHistoryList)\nconst historyDetailComputed = computed(() => props.historyDetail)\nconst providedHistoryDetail = ref(props.historyDetail)\nwatch(\n\thistoryDetailComputed,\n\tnewVal => {\n\t\tprovidedHistoryDetail.value = newVal\n\t},\n\t{ immediate: true }\n)\nprovide('historyDetail', providedHistoryDetail)\nprovide('agents', props.agents)\nconst iModules = ref(props.modules)\nwatch(\n\t() => props.modules,\n\tnewVal => {\n\t\tiModules.value = newVal\n\t\t// console.log('modules === index.vue === 191', newVal)\n\t},\n\t{ immediate: true }\n)\nprovide('modules', iModules)\n\nconst iMultiAgentInfo = ref(props.agentInfo)\nwatch(\n\t() => props.agentInfo,\n\tnewVal => {\n\t\tiMultiAgentInfo.value = newVal\n\t},\n\t{ immediate: true, deep: true }\n)\nprovide('agentInfo', iMultiAgentInfo)\n\n// 新增:提供处理点赞事件的函数\nprovide('like', (index: number, isLike: boolean) => {\n\t// 这里可以实现具体的点赞逻辑\n\temits('like', index, isLike) // like\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\n// 新增:提供处理点赞事件的函数 dislike\nprovide('dislike', (index: number, isUnlike: boolean) => {\n\t// 这里可以实现具体的点赞逻辑\n\temits('dislike', index, isUnlike) // dislike\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\nprovide('send', (value: string, fileList?: any[]) => {\n\t// send\n\t// 这里可以实现具体的点赞逻辑\n\tsendVal.value = value\n\temits('send', value, fileList)\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\nprovide('sideBottom', () => {\n\t// console.log('sideBottom === 触底事件') // bottom\n\temits('side-bottom')\n})\n\nprovide('change', (id: string) => {\n\t// console.log('change === 激活事件', id) // change\n\temits('change', id)\n})\n\nprovide('historyRemove', (id: string) => {\n\t//remove\n\t// console.log('historyRemove === 删除事件', id)\n\temits('historyRemove', id)\n})\n\nprovide('openSideBar', (item: any, index: number) => {\n\temits('openSideBar', item, index)\n})\n\nprovide('share', (item: any, index: number) => {\n\temits('share', item, index)\n})\n\nprovide('withDraw', (item: any, index: number) => {\n\temits('withDraw', item, index)\n})\n\nprovide('afterSend', (content: any) => {\n\t// afterSend\n\t// console.log('afterSend === 发送消息事件', content)\n\temits('afterSend', content)\n})\n\nprovide('remove', (item: ChatMessage, index: number) => {\n\t// afterSend\n\t// console.log('remove === 详情删除', item, index)\n\temits('remove', item, index)\n})\n\nprovide('bottom', () => {\n\t// console.log('bottom === 详情触底')\n\temits('bottom')\n})\n\nprovide('stop', (item: ChatMessage, index: number) => {\n\t// console.log('stop === 用户终止事件')\n\temits('stop', item, index)\n})\n\nprovide('modelChange', (item: ModuleItem, index: number) => {\n\t// console.log('modelChange === 模型切换事件', item, index)\n\temits('modelChange', item, index)\n})\n\n// const rootRef = ref(null)\nconst deepSeekRef = ref<InstanceType<typeof DeepSeek> | null>(null)\n\nconst elementClass = computed(() => {\n\tconst classList = []\n\tif (props.mode) {\n\t\tclassList.push(`touchchat-${props.mode}`)\n\t}\n\treturn classList.join(' ')\n})\n\n// 修改elementStyle计算属性,移除对scripts.length的检查\nconst elementStyle = computed(() => {\n\tlet width = ''\n\tlet height = ''\n\n\tif (props.width) {\n\t\tif (typeof props.width === 'string') {\n\t\t\twidth = props.width ?? '100%'\n\t\t} else {\n\t\t\twidth = `${props.width}em`\n\t\t}\n\t}\n\n\tif (props.height) {\n\t\tif (typeof props.height === 'string') {\n\t\t\theight = props.height ?? '100%'\n\t\t} else {\n\t\t\theight = `${props.height}em`\n\t\t}\n\t}\n\n\treturn {\n\t\twidth,\n\t\theight\n\t}\n})\nconst updateInputMethod = ref<any>(null)\nprovide('setInput', updateInputMethod)\nconst setInput = (newValue: string) => {\n\tif (updateInputMethod.value) {\n\t\tupdateInputMethod.value(newValue)\n\t}\n}\nprovide('fileAction', (item: any, index: number) => {\n\temits('file-action', item, index)\n})\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\tdeepSeekRef.value?.send(value, fileList, auto, type) //send\n\t},\n\tcloseExtend: () => {\n\t\tdeepSeekRef.value?.closeExtend() // closeExtend\n\t},\n\tcreate: () => {\n\t\tdeepSeekRef.value?.create() // reset\n\t},\n\tretry: (index: number) => {\n\t\tdeepSeekRef.value?.retry(index)\n\t},\n\tupdate: (index: number, message: object) => {\n\t\tdeepSeekRef.value?.update(index, message)\n\t},\n\tchangeChat: (index: number) => {\n\t\tdeepSeekRef.value?.changeChat(index)\n\t},\n\tclearChat: () => {\n\t\tdeepSeekRef.value?.clearChat()\n\t},\n\tsetInput\n})\n</script>\n"],"names":["DO_defineComponent","ref","provide","computed","watch","_createCommentVNode","_createVNode","DeepSeek","_withCtx","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../../../packages/components/touchchat/src/index.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({ name: 'Touchchat' });\n</script>\n<template>\n\t<!-- <div>1.0.0-beta.2026032301</div> -->\n\t<DeepSeek ref=\"deepSeekRef\" :style=\"elementStyle\" :class=\"elementClass\">\n\t\t<!-- msg -->\n\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #msg=\"{ item, index }\">\n\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #aiAvatar>\n\t\t\t<slot name=\"aiAvatar\" />\n\t\t</template>\n\t\t<template #userAvatar>\n\t\t\t<slot name=\"userAvatar\" />\n\t\t</template>\n\t\t<template #welcome>\n\t\t\t<slot name=\"welcome\" />\n\t\t</template>\n\t\t<!-- edit -->\n\t\t<template #edit>\n\t\t\t<slot name=\"edit\" />\n\t\t</template>\n\t\t<!-- top -->\n\t\t<template #top>\n\t\t\t<slot name=\"top\" />\n\t\t</template>\n\t\t<template #shortcut>\n\t\t\t<slot name=\"shortcut\" />\n\t\t</template>\n\t\t<!-- extend -->\n\t\t<template #extend=\"{ item, index }\">\n\t\t\t<slot name=\"extend\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<!-- fn -->\n\t\t<template #fn=\"{ item, index }\">\n\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #editTop>\n\t\t\t<slot name=\"editTop\" />\n\t\t</template>\n\t\t<template #editFn>\n\t\t\t<slot name=\"editFn\" />\n\t\t</template>\n\t\t<template #editSubmitRight>\n\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t</template>\n\t\t<template #editSubmitLeft>\n\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t</template>\n\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t\t<template #mayLike=\"{ item, index }\">\n\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\" />\n\t\t</template>\n\t</DeepSeek>\n</template>\n<script setup lang=\"ts\">\nimport { ChatMessage, ChatMsgList, MessageActions, ModuleItem } from './AiChat/Chat/types'\nimport type { AgentConfig, SubAgent } from './types/a2a'\nimport DeepSeek from './AiChat/TouchHistory.vue'\nimport { provide, ref, computed, watch } from 'vue'\n\n\n\nconst emits = defineEmits<{\n\t(e: 'send', value: string, fileList?: any[]): void\n\t(e: 'afterSend', result: any): void\n\t(e: 'like', index: number, isLike: boolean): void\n\t(e: 'dislike', index: number, isDislike: boolean): void\n\t(e: 'side-bottom'): void\n\t(e: 'change', id: string): void\n\t(e: 'historyRemove', id: string): void\n\t(e: 'remove', item: ChatMessage, index: number): void\n\t(e: 'bottom'): void\n\t(e: 'stop', item: ChatMessage, index: number): void\n\t(e: 'modelChange', item: ModuleItem, index: number): void\n\t(e: 'openSideBar', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'share', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'withDraw', item: ChatMessage & ChatMsgList, index: number): void\n\t(e: 'file-action', item: ChatMessage & ChatMsgList, index: number): void\n}>()\n\nconst sendVal = ref('')\n\ninterface ScriptItem {\n\tid?: string\n\tname: string\n\tsubTitle?: string\n\tcontent: Array<{\n\t\tuser: string\n\t\tdata?: string\n\t\talias?: string[]\n\t\ttype?: string\n\t}>\n}\n\ninterface HistoryItem {\n\tid?: string\n\ttime?: string\n\ttitle?: string\n}\n\ninterface MessageItem {\n\tchatId: string\n\tuser: string\n\ttype: string\n\tcontent: string\n\t[props: string]: any\n}\n\n// interface ModuleItem {\n// \tname: string\n// \tconfig: {\n// \t\taction: string\n// \t\theaders: () => object\n// \t\tbody: () => object\n// \t\trespoKey: () => object\n// \t}\n// }\ntype Modules = (string | ModuleItem)[]\ntype ResultArray = AgentConfig[] | SubAgent[]\ninterface MultiAgentInfo {\n\tlist: ResultArray\n\turl?: string\n\t// token?: string\n\theaders?: object\n}\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\tmode?: string\n\t\tscripts?: ScriptItem[]\n\t\twidth?: number | string\n\t\theight?: number | string\n\t\tcomponents?: { [key: string]: any } // components\n\t\tavatar?: boolean // avatar\n\t\tplaceholder?: string\n\t\tunmatchText?: string // unmatchText\n\t\ttitle?: string\n\t\tlayout?: string // layout=\"side, think, upload, chain,realtime\"\n\t\tbeforeSend?: () => { result: boolean; componentName?: string }\n\t\thistoryList?: HistoryItem[] // historyList\n\t\thistoryDetail?: MessageItem[] // historyDetail\n\t\tagents?: {\n\t\t\tid: string\n\t\t\tname: string\n\t\t\tintro: string\n\t\t}[] // agents\n\t\tmodules?: Modules // modules\n\t\tspeed?: number // speed\n\t\tallowedTypes?: string[] // allowedTypes\n\t\t// agentConfigList?: ResultArray // agentConfigList 智能体配置列表\n\t\t// multiAgentHost?: string // multiAgentHost 多智能体主机地址\n\t\t// multiAgentToken?: string // multiAgentToken 多智能体认证令牌\n\t\tagentInfo?: MultiAgentInfo // agentInfo 多智能体信息\n\t\ta2uiProps?: {\n\t\t\t[key: string]: any\n\t\t}\n\t\tmessageActions?: MessageActions\n\t\thasRead?: boolean\n\t\tisSelectMode?: boolean\n\t\tuploadAction?: (file: File, onProgress: (percent: number) => void) => Promise<any>\n\t}>(),\n\t{\n\t\tmode: '',\n\t\tscripts: () => [],\n\t\twidth: '',\n\t\theight: '',\n\t\tcomponents: () => ({}),\n\t\tavatar: true,\n\t\tplaceholder: 'hi,我是touchchat,快来和我聊天吧~',\n\t\tunmatchText: '您的消息未匹配到任何内容',\n\t\ttitle: 'TouchChat',\n\t\tlayout: 'side, clear, think, upload, screen, voice,realtime', //chain 思考链\n\t\t// side 侧边栏(历史记录),think 深度思考,upload 上传文件,chain 思考链\n\t\tbeforeSend: () => ({ result: true, componentName: '' }),\n\t\thistoryList: () => [],\n\t\thistoryDetail: () => [],\n\t\tagents: () => [],\n\t\tmodules: () => [],\n\t\tspeed: 10,\n\t\tallowedTypes: () => [],\n\t\tagentInfo: () => ({\n\t\t\tlist: [], // list 智能体列表 =1 单智能体 >1 多智能体\n\t\t\turl: '', // url 多智能体主机地址 单智能体为空 多智能体必传\n\t\t\theaders: {} // 多智能体请求头信息\n\t\t}),\n\t\ta2uiProps: () => ({}),\n\t\tmessageActions: () => {\n\t\t\treturn {\n\t\t\t\tuser: ['edit', 'delete', 'copy'],\n\t\t\t\tai: ['retry', 'like', 'dislike', 'copy']\n\t\t\t}\n\t\t},\n\t\thasRead: false,\n\t\tisSelectMode: false,\n\t\tuploadAction: undefined\n\t}\n)\nconst selectMode = computed(() => props.isSelectMode)\nprovide('components', props.components)\nprovide('avatar', props.avatar)\nprovide('placeholder', props.placeholder)\nprovide('unmatchText', props.unmatchText)\nprovide('title', props.title)\nprovide('layout', props.layout)\nprovide('beforeSend', props.beforeSend)\nprovide('scripts', ref(props.scripts || []))\nprovide('speed', props.speed)\nprovide('allowedTypes', props.allowedTypes)\nprovide('a2uiProps', props.a2uiProps)\nprovide('messageActions', props.messageActions)\nprovide('hasRead', props.hasRead)\nprovide('isSelectMode', selectMode)\nprovide('uploadAction', props.uploadAction)\nconst historyListComputed = computed(() => props.historyList)\nconst providedHistoryList = ref(props.historyList)\nwatch(\n\thistoryListComputed,\n\tnewVal => {\n\t\tprovidedHistoryList.value = newVal\n\t},\n\t{ immediate: true }\n)\nprovide('historyList', providedHistoryList)\nconst historyDetailComputed = computed(() => props.historyDetail)\nconst providedHistoryDetail = ref(props.historyDetail)\nwatch(\n\thistoryDetailComputed,\n\tnewVal => {\n\t\tprovidedHistoryDetail.value = newVal\n\t},\n\t{ immediate: true }\n)\nprovide('historyDetail', providedHistoryDetail)\nprovide('agents', props.agents)\nconst iModules = ref(props.modules)\nwatch(\n\t() => props.modules,\n\tnewVal => {\n\t\tiModules.value = newVal\n\t\t// console.log('modules === index.vue === 191', newVal)\n\t},\n\t{ immediate: true }\n)\nprovide('modules', iModules)\n\nconst iMultiAgentInfo = ref(props.agentInfo)\nwatch(\n\t() => props.agentInfo,\n\tnewVal => {\n\t\tiMultiAgentInfo.value = newVal\n\t},\n\t{ immediate: true, deep: true }\n)\nprovide('agentInfo', iMultiAgentInfo)\n\n// 新增:提供处理点赞事件的函数\nprovide('like', (index: number, isLike: boolean) => {\n\t// 这里可以实现具体的点赞逻辑\n\temits('like', index, isLike) // like\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\n// 新增:提供处理点赞事件的函数 dislike\nprovide('dislike', (index: number, isUnlike: boolean) => {\n\t// 这里可以实现具体的点赞逻辑\n\temits('dislike', index, isUnlike) // dislike\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\nprovide('send', (value: string, fileList?: any[]) => {\n\t// send\n\t// 这里可以实现具体的点赞逻辑\n\tsendVal.value = value\n\temits('send', value, fileList)\n\t// 可以添加实际的业务逻辑,如调用API等\n})\n\nprovide('sideBottom', () => {\n\t// console.log('sideBottom === 触底事件') // bottom\n\temits('side-bottom')\n})\n\nprovide('change', (id: string) => {\n\t// console.log('change === 激活事件', id) // change\n\temits('change', id)\n})\n\nprovide('historyRemove', (id: string) => {\n\t//remove\n\t// console.log('historyRemove === 删除事件', id)\n\temits('historyRemove', id)\n})\n\nprovide('openSideBar', (item: any, index: number) => {\n\temits('openSideBar', item, index)\n})\n\nprovide('share', (item: any, index: number) => {\n\temits('share', item, index)\n})\n\nprovide('withDraw', (item: any, index: number) => {\n\temits('withDraw', item, index)\n})\n\nprovide('afterSend', (content: any) => {\n\t// afterSend\n\t// console.log('afterSend === 发送消息事件', content)\n\temits('afterSend', content)\n})\n\nprovide('remove', (item: ChatMessage, index: number) => {\n\t// afterSend\n\t// console.log('remove === 详情删除', item, index)\n\temits('remove', item, index)\n})\n\nprovide('bottom', () => {\n\t// console.log('bottom === 详情触底')\n\temits('bottom')\n})\n\nprovide('stop', (item: ChatMessage, index: number) => {\n\t// console.log('stop === 用户终止事件')\n\temits('stop', item, index)\n})\n\nprovide('modelChange', (item: ModuleItem, index: number) => {\n\t// console.log('modelChange === 模型切换事件', item, index)\n\temits('modelChange', item, index)\n})\n\n// const rootRef = ref(null)\nconst deepSeekRef = ref<InstanceType<typeof DeepSeek> | null>(null)\n\nconst elementClass = computed(() => {\n\tconst classList = []\n\tif (props.mode) {\n\t\tclassList.push(`touchchat-${props.mode}`)\n\t}\n\treturn classList.join(' ')\n})\n\n// 修改elementStyle计算属性,移除对scripts.length的检查\nconst elementStyle = computed(() => {\n\tlet width = ''\n\tlet height = ''\n\n\tif (props.width) {\n\t\tif (typeof props.width === 'string') {\n\t\t\twidth = props.width ?? '100%'\n\t\t} else {\n\t\t\twidth = `${props.width}em`\n\t\t}\n\t}\n\n\tif (props.height) {\n\t\tif (typeof props.height === 'string') {\n\t\t\theight = props.height ?? '100%'\n\t\t} else {\n\t\t\theight = `${props.height}em`\n\t\t}\n\t}\n\n\treturn {\n\t\twidth,\n\t\theight\n\t}\n})\nconst updateInputMethod = ref<any>(null)\nprovide('setInput', updateInputMethod)\nconst setInput = (newValue: string) => {\n\tif (updateInputMethod.value) {\n\t\tupdateInputMethod.value(newValue)\n\t}\n}\nprovide('fileAction', (item: any, index: number) => {\n\temits('file-action', item, index)\n})\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\tdeepSeekRef.value?.send(value, fileList, auto, type) //send\n\t},\n\tcloseExtend: () => {\n\t\tdeepSeekRef.value?.closeExtend() // closeExtend\n\t},\n\tcreate: () => {\n\t\tdeepSeekRef.value?.create() // reset\n\t},\n\tretry: (index: number) => {\n\t\tdeepSeekRef.value?.retry(index)\n\t},\n\tupdate: (index: number, message: object) => {\n\t\tdeepSeekRef.value?.update(index, message)\n\t},\n\tchangeChat: (index: number) => {\n\t\tdeepSeekRef.value?.changeChat(index)\n\t},\n\tclearChat: () => {\n\t\tdeepSeekRef.value?.clearChat()\n\t},\n\tsetInput\n})\n</script>\n"],"names":["DO_defineComponent","ref","computed","provide","watch","_createCommentVNode","_createVNode","DeepSeek","_withCtx","_renderSlot"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"a2a.js","sources":["../../../../../../../packages/components/touchchat/src/types/a2a.ts"],"sourcesContent":["// A2A Protocol Types\n// Based on A2A (Agent-to-Agent) protocol specification\n\n// Message Part Types\nexport interface TextPart {\n\ttype: 'text'\n\ttext: string\n}\n\nexport interface FilePart {\n\ttype: 'file'\n\tfile: {\n\t\tname: string\n\t\tmimeType?: string\n\t\tbytes?: string\n\t\turi?: string\n\t}\n}\n\nexport interface DataPart {\n\ttype: 'data'\n\tdata: Record<string, unknown>\n}\n\nexport type Part = TextPart | FilePart | DataPart\n\n// Message\nexport interface Message {\n\tmessageId: string\n\trole: 'user' | 'agent'\n\tparts: Part[]\n\ttimestamp?: string\n}\n\n// JSON-RPC Request\nexport interface JSONRPCRequest {\n\tjsonrpc: '2.0'\n\tid: string\n\tmethod: string\n\tparams: Record<string, unknown>\n}\n\n// JSON-RPC Response\nexport interface JSONRPCResponse {\n\tjsonrpc: '2.0'\n\tid: string\n\tresult?: Record<string, unknown>\n\terror?: {\n\t\tcode: number\n\t\tmessage: string\n\t\tdata?: unknown\n\t}\n}\n\n// Agent Configuration\nexport interface AgentConfig {\n\tid: string\n\tname: string\n\tversion: string\n\tendpoint: string\n\tauthToken?: string\n\tdescription?: string\n}\n\n// Stream Response Chunk\nexport interface StreamChunk {\n\tjsonrpc: '2.0'\n\tid?: string\n\tmethod?: string\n\tparams?: {\n\t\tmessage?: Message\n\t\tstatus?: TaskStatus\n\t\tartifact?: Artifact\n\t}\n\tresult?: Record<string, unknown>\n\terror?: {\n\t\tcode: number\n\t\tmessage: string\n\t\tdata?: unknown\n\t}\n}\n\n// Task Status\nexport interface TaskStatus {\n\tstate: 'pending' | 'working' | 'input-required' | 'completed' | 'canceled' | 'failed'\n\tmessage?: Message\n\ttimestamp?: string\n}\n\n// Artifact\nexport interface Artifact {\n\tartifactId: string\n\tname?: string\n\tdescription?: string\n\tparts: Part[]\n\tindex?: number\n\tappend?: boolean\n\tlastChunk?: boolean\n\tmetadata?: Record<string, unknown>\n}\n\n// Task\nexport interface Task {\n\ttaskId: string\n\tsessionId?: string\n\tstatus: TaskStatus\n\tartifacts?: Artifact[]\n\thistory?: Message[]\n\tmetadata?: Record<string, unknown>\n}\n\n// A2A Methods\nexport enum A2AMethods {\n\tSEND_MESSAGE = 'message/send',\n\tSTREAM_MESSAGE = 'message/stream',\n\tGET_TASK = 'task/get',\n\tCANCEL_TASK = 'task/cancel',\n\tSUBSCRIBE_TASK = 'task/subscribe'\n}\n\n// Agent Card (Agent Discovery)\nexport interface AgentCard {\n\tname: string\n\tdescription: string\n\turl: string\n\tversion: string\n\tcapabilities: {\n\t\tstreaming?: boolean\n\t\tpushNotifications?: boolean\n\t\tstateTransitionHistory?: boolean\n\t}\n\tauthentication?: {\n\t\tschemes: string[]\n\t\tcredentials?: string\n\t}\n\tdefaultInputModes?: string[]\n\tdefaultOutputModes?: string[]\n\tskills?: Array<{\n\t\tid: string\n\t\tname: string\n\t\tdescription?: string\n\t\ttags?: string[]\n\t\texamples?: string[]\n\t\tinputModes?: string[]\n\t\toutputModes?: string[]\n\t}>\n}\n\n// Multi-Agent Types\nexport interface SubAgent {\n\tagent_name: string\n\tagent_url: string\n\theaders: {\n\t\tAuthorization: string\n\t}\n}\n\nexport interface MultiAgentConfig {\n\thostEndpoint: string\n\tsubAgents: SubAgent[]\n}\n"],"names":["A2AMethods"],"mappings":";;AAgHY,IAAA,UAAA,qBAAAA,WAAL,KAAA;AACN,EAAAA,YAAA,cAAe,CAAA,GAAA,cAAA,CAAA;AACf,EAAAA,YAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AACjB,EAAAA,YAAA,UAAW,CAAA,GAAA,UAAA,CAAA;AACX,EAAAA,YAAA,aAAc,CAAA,GAAA,aAAA,CAAA;AACd,EAAAA,YAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AALN,EAAAA,OAAAA,WAAAA,CAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;;;;"}
1
+ {"version":3,"file":"a2a.js","sources":["../../../../../../../packages/components/touchchat/src/types/a2a.ts"],"sourcesContent":["// A2A Protocol Types\n// Based on A2A (Agent-to-Agent) protocol specification\n\n// Message Part Types\nexport interface TextPart {\n\ttype: 'text'\n\ttext: string\n}\n\nexport interface FilePart {\n\ttype: 'file'\n\tfile: {\n\t\tname: string\n\t\tmimeType?: string\n\t\tbytes?: string\n\t\turi?: string\n\t}\n}\n\nexport interface DataPart {\n\ttype: 'data'\n\tdata: Record<string, unknown>\n}\n\nexport type Part = TextPart | FilePart | DataPart\n\n// Message\nexport interface Message {\n\tmessageId: string\n\trole: 'user' | 'agent'\n\tparts: Part[]\n\ttimestamp?: string\n}\n\n// JSON-RPC Request\nexport interface JSONRPCRequest {\n\tjsonrpc: '2.0'\n\tid: string\n\tmethod: string\n\tparams: Record<string, unknown>\n}\n\n// JSON-RPC Response\nexport interface JSONRPCResponse {\n\tjsonrpc: '2.0'\n\tid: string\n\tresult?: Record<string, unknown>\n\terror?: {\n\t\tcode: number\n\t\tmessage: string\n\t\tdata?: unknown\n\t}\n}\n\n// Agent Configuration\nexport interface AgentConfig {\n\tid: string\n\tname: string\n\tversion: string\n\tendpoint: string\n\tauthToken?: string\n\tdescription?: string\n}\n\n// Stream Response Chunk\nexport interface StreamChunk {\n\tjsonrpc: '2.0'\n\tid?: string\n\tmethod?: string\n\tparams?: {\n\t\tmessage?: Message\n\t\tstatus?: TaskStatus\n\t\tartifact?: Artifact\n\t}\n\tresult?: Record<string, unknown>\n\terror?: {\n\t\tcode: number\n\t\tmessage: string\n\t\tdata?: unknown\n\t}\n}\n\n// Task Status\nexport interface TaskStatus {\n\tstate: 'pending' | 'working' | 'input-required' | 'completed' | 'canceled' | 'failed'\n\tmessage?: Message\n\ttimestamp?: string\n}\n\n// Artifact\nexport interface Artifact {\n\tartifactId: string\n\tname?: string\n\tdescription?: string\n\tparts: Part[]\n\tindex?: number\n\tappend?: boolean\n\tlastChunk?: boolean\n\tmetadata?: Record<string, unknown>\n}\n\n// Task\nexport interface Task {\n\ttaskId: string\n\tsessionId?: string\n\tstatus: TaskStatus\n\tartifacts?: Artifact[]\n\thistory?: Message[]\n\tmetadata?: Record<string, unknown>\n}\n\n// A2A Methods\nexport enum A2AMethods {\n\tSEND_MESSAGE = 'message/send',\n\tSTREAM_MESSAGE = 'message/stream',\n\tGET_TASK = 'task/get',\n\tCANCEL_TASK = 'task/cancel',\n\tSUBSCRIBE_TASK = 'task/subscribe'\n}\n\n// Agent Card (Agent Discovery)\nexport interface AgentCard {\n\tname: string\n\tdescription: string\n\turl: string\n\tversion: string\n\tcapabilities: {\n\t\tstreaming?: boolean\n\t\tpushNotifications?: boolean\n\t\tstateTransitionHistory?: boolean\n\t}\n\tauthentication?: {\n\t\tschemes: string[]\n\t\tcredentials?: string\n\t}\n\tdefaultInputModes?: string[]\n\tdefaultOutputModes?: string[]\n\tskills?: Array<{\n\t\tid: string\n\t\tname: string\n\t\tdescription?: string\n\t\ttags?: string[]\n\t\texamples?: string[]\n\t\tinputModes?: string[]\n\t\toutputModes?: string[]\n\t}>\n}\n\n// A2A 1.0 Protocol Types\n\n// A2A 1.0 Message Part\nexport interface Part1_0 {\n\ttext: string\n\tfile: string | null\n\tdata: Record<string, unknown> | null\n\tmetadata: Record<string, unknown> | null\n}\n\n// A2A 1.0 Message\nexport interface Message1_0 {\n\tmessageId: string\n\tparts: Part1_0[]\n\trole: string\n\tmetadata: Record<string, unknown> | null\n}\n\n// A2A 1.0 Status\nexport interface Status1_0 {\n\tmessage: Message1_0\n\tstate: string\n\ttimestamp: string\n}\n\n// A2A 1.0 Task\nexport interface Task1_0 {\n\ttaskId: string\n\tcontextId: string\n\tstatus: Status1_0\n\tmetadata: Record<string, unknown> | null\n}\n\n// A2A 1.0 Stream Chunk\nexport interface StreamChunk1_0 {\n\ttaskId: string\n\tcontextId: string\n\tstatus: {\n\t\tmessage: {\n\t\t\tmessageId: string\n\t\t\tparts: Array<{\n\t\t\t\ttext: string\n\t\t\t\tfile: string | null\n\t\t\t\tdata: Record<string, unknown> | null\n\t\t\t\tmetadata: Record<string, unknown> | null\n\t\t\t}>\n\t\t\trole: string\n\t\t\tmetadata: Record<string, unknown> | null\n\t\t}\n\t\tstate: string\n\t\ttimestamp: string\n\t}\n\tmetadata: Record<string, unknown> | null\n}\n\n// Multi-Agent Types\nexport interface SubAgent {\n\tagent_name: string\n\tagent_url: string\n\theaders: {\n\t\tAuthorization: string\n\t}\n}\n\nexport interface MultiAgentConfig {\n\thostEndpoint: string\n\tsubAgents: SubAgent[]\n}\n"],"names":["A2AMethods"],"mappings":";;AAgHY,IAAA,UAAA,qBAAAA,WAAL,KAAA;AACN,EAAAA,YAAA,cAAe,CAAA,GAAA,cAAA,CAAA;AACf,EAAAA,YAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AACjB,EAAAA,YAAA,UAAW,CAAA,GAAA,UAAA,CAAA;AACX,EAAAA,YAAA,aAAc,CAAA,GAAA,aAAA,CAAA;AACd,EAAAA,YAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AALN,EAAAA,OAAAA,WAAAA,CAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@touchvue/chat",
3
- "version": "1.0.0-beta.48",
3
+ "version": "1.0.0-beta.49",
4
4
  "description": "TouchVue Chat Component Library",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -792,6 +792,47 @@
792
792
  flex-direction: column;
793
793
  gap: 1em;
794
794
  }
795
+ .touchchat-dialog-content .touchchat-list-box {
796
+ display: flex;
797
+ }
798
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check {
799
+ padding: 0 1em;
800
+ }
801
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check input[type='checkbox'] {
802
+ appearance: none;
803
+ -webkit-appearance: none;
804
+ width: 16px;
805
+ height: 16px;
806
+ border: 1px solid #ccc;
807
+ border-radius: 3px;
808
+ cursor: pointer;
809
+ position: relative;
810
+ }
811
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check input[type='checkbox']:checked {
812
+ background-color: #409eff;
813
+ border-color: #409eff;
814
+ }
815
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check input[type='checkbox']:checked::after {
816
+ content: '';
817
+ position: absolute;
818
+ top: 50%;
819
+ left: 50%;
820
+ width: 4px;
821
+ height: 7px;
822
+ border: solid #fff;
823
+ /* 加粗线条 */
824
+ border-width: 0 2.5px 2.5px 0;
825
+ transform: translate(-50%, -65%) rotate(45deg);
826
+ }
827
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-content {
828
+ flex: 1;
829
+ }
830
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-content.status-select {
831
+ background-color: #eee;
832
+ }
833
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-content.select-mode * {
834
+ pointer-events: none;
835
+ }
795
836
  .touchchat-dialog-withDraw {
796
837
  text-align: center;
797
838
  color: #868686;
package/theme/index.css CHANGED
@@ -795,6 +795,47 @@
795
795
  flex-direction: column;
796
796
  gap: 1em;
797
797
  }
798
+ .touchchat-dialog-content .touchchat-list-box {
799
+ display: flex;
800
+ }
801
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check {
802
+ padding: 0 1em;
803
+ }
804
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check input[type='checkbox'] {
805
+ appearance: none;
806
+ -webkit-appearance: none;
807
+ width: 16px;
808
+ height: 16px;
809
+ border: 1px solid #ccc;
810
+ border-radius: 3px;
811
+ cursor: pointer;
812
+ position: relative;
813
+ }
814
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check input[type='checkbox']:checked {
815
+ background-color: #409eff;
816
+ border-color: #409eff;
817
+ }
818
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check input[type='checkbox']:checked::after {
819
+ content: '';
820
+ position: absolute;
821
+ top: 50%;
822
+ left: 50%;
823
+ width: 4px;
824
+ height: 7px;
825
+ border: solid #fff;
826
+ /* 加粗线条 */
827
+ border-width: 0 2.5px 2.5px 0;
828
+ transform: translate(-50%, -65%) rotate(45deg);
829
+ }
830
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-content {
831
+ flex: 1;
832
+ }
833
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-content.status-select {
834
+ background-color: #eee;
835
+ }
836
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-content.select-mode * {
837
+ pointer-events: none;
838
+ }
798
839
  .touchchat-dialog-withDraw {
799
840
  text-align: center;
800
841
  color: #868686;
@@ -795,6 +795,47 @@
795
795
  flex-direction: column;
796
796
  gap: 1em;
797
797
  }
798
+ .touchchat-dialog-content .touchchat-list-box {
799
+ display: flex;
800
+ }
801
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check {
802
+ padding: 0 1em;
803
+ }
804
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check input[type='checkbox'] {
805
+ appearance: none;
806
+ -webkit-appearance: none;
807
+ width: 16px;
808
+ height: 16px;
809
+ border: 1px solid #ccc;
810
+ border-radius: 3px;
811
+ cursor: pointer;
812
+ position: relative;
813
+ }
814
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check input[type='checkbox']:checked {
815
+ background-color: #409eff;
816
+ border-color: #409eff;
817
+ }
818
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-check input[type='checkbox']:checked::after {
819
+ content: '';
820
+ position: absolute;
821
+ top: 50%;
822
+ left: 50%;
823
+ width: 4px;
824
+ height: 7px;
825
+ border: solid #fff;
826
+ /* 加粗线条 */
827
+ border-width: 0 2.5px 2.5px 0;
828
+ transform: translate(-50%, -65%) rotate(45deg);
829
+ }
830
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-content {
831
+ flex: 1;
832
+ }
833
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-content.status-select {
834
+ background-color: #eee;
835
+ }
836
+ .touchchat-dialog-content .touchchat-list-box .touchchat-list-content.select-mode * {
837
+ pointer-events: none;
838
+ }
798
839
  .touchchat-dialog-withDraw {
799
840
  text-align: center;
800
841
  color: #868686;