@touchvue/chat 1.0.0-beta.52 → 1.0.0-beta.53

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.
@@ -1 +1 @@
1
- .hljs{background:#fafafa;color:#383a42;display:block;overflow-x:auto;padding:.5em}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-built_in,.hljs-class .hljs-title{color:#c18401}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.video-File[data-v-7305b796]{height:auto;width:5em}.video-play[data-v-7305b796]{width:100%}.typewriter-container[data-v-5bee9536]{position:relative}.loading-container[data-v-5bee9536]{min-height:40px}.typewriter-loading[data-v-5bee9536]{align-items:center;color:#666;display:flex;font-size:14px;gap:8px;line-height:1;margin-top:12px;padding:8px 0}.loading-dot[data-v-5bee9536]{animation:bounce-5bee9536 1.4s ease-in-out infinite both;background-color:#666;border-radius:50%;display:inline-block;height:8px;width:8px}.loading-text[data-v-5bee9536]{user-select:none}@keyframes bounce-5bee9536{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.markdown-content[data-v-5bee9536]{color:#333}.markdown-content h1[data-v-5bee9536],.markdown-content h2[data-v-5bee9536]{margin:1em 0 .5em}.markdown-content p[data-v-5bee9536]{margin:.5em 0}.markdown-content code[data-v-5bee9536]{background:#f0f0f0;border-radius:4px;padding:.2em .4em}
1
+ .video-File[data-v-7305b796]{height:auto;width:5em}.video-play[data-v-7305b796]{width:100%}.typewriter-container[data-v-5bee9536]{position:relative}.loading-container[data-v-5bee9536]{min-height:40px}.typewriter-loading[data-v-5bee9536]{align-items:center;color:#666;display:flex;font-size:14px;gap:8px;line-height:1;margin-top:12px;padding:8px 0}.loading-dot[data-v-5bee9536]{animation:bounce-5bee9536 1.4s ease-in-out infinite both;background-color:#666;border-radius:50%;display:inline-block;height:8px;width:8px}.loading-text[data-v-5bee9536]{user-select:none}@keyframes bounce-5bee9536{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.markdown-content[data-v-5bee9536]{color:#333}.markdown-content h1[data-v-5bee9536],.markdown-content h2[data-v-5bee9536]{margin:1em 0 .5em}.markdown-content p[data-v-5bee9536]{margin:.5em 0}.markdown-content code[data-v-5bee9536]{background:#f0f0f0;border-radius:4px;padding:.2em .4em}.hljs{background:#fafafa;color:#383a42;display:block;overflow-x:auto;padding:.5em}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-built_in,.hljs-class .hljs-title{color:#c18401}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
@@ -1,5 +1,5 @@
1
1
  var name = "@touchvue/chat";
2
- var version = "1.0.0-beta.52";
2
+ var version = "1.0.0-beta.53";
3
3
  var description = "TouchVue Chat Component Library";
4
4
  var main = "lib/index.js";
5
5
  var module = "es/index.mjs";
@@ -1,5 +1,4 @@
1
- import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, createCommentVNode } from 'vue';
2
- import _imports_0 from '../img/file.png.mjs';
1
+ import { defineComponent, computed, inject, openBlock, createElementBlock, createElementVNode, normalizeClass, toDisplayString, withModifiers } from 'vue';
3
2
 
4
3
  const __default__ = defineComponent({ name: "FileView" });
5
4
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -9,7 +8,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
9
8
  index: {}
10
9
  },
11
10
  emits: ["fileClick"],
12
- setup(__props, { emit: __emit }) {
11
+ setup(__props, { expose: __expose, emit: __emit }) {
13
12
  const props = __props;
14
13
  const emit = __emit;
15
14
  const formatFileSize = (size) => {
@@ -21,38 +20,69 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
21
20
  return `${(size / 1024).toFixed(1)} KB`;
22
21
  return `${(size / (1024 * 1024)).toFixed(1)} MB`;
23
22
  };
23
+ const itype = computed(() => {
24
+ var _a;
25
+ const validTypes = ["doc", "jpg", "pdf", "txt", "docx", "mp3", "png", "gif", "mp4", "ppt", "xls", "html", "pptx", "xlsx"];
26
+ if (props.item.fileName) {
27
+ const extension = (_a = props.item.fileName.split(".").pop()) == null ? void 0 : _a.toLowerCase();
28
+ if (extension && validTypes.includes(extension)) {
29
+ return extension;
30
+ }
31
+ }
32
+ return "unknown";
33
+ });
34
+ const fileAction = inject("fileAction", () => {
35
+ });
36
+ const downloadAction = inject("downloadAction", () => {
37
+ });
38
+ __expose({ itype });
24
39
  const handleFileClick = () => {
25
40
  if (props.item.fileName) {
26
41
  emit("fileClick", props.item.fileName, props.index);
42
+ fileAction(props.item, props.index);
43
+ }
44
+ };
45
+ const handleDownloadClick = () => {
46
+ if (props.item.fileName) {
47
+ downloadAction(props.item, props.index);
27
48
  }
28
49
  };
29
50
  return (_ctx, _cache) => {
30
51
  return openBlock(), createElementBlock("div", {
31
- class: "file-view",
52
+ class: "touchchat-file",
32
53
  onClick: handleFileClick
33
54
  }, [
34
- createElementVNode("img", {
35
- src: _imports_0,
36
- alt: "\u6587\u4EF6\u56FE\u6807",
37
- class: "file-icon"
38
- }),
39
- createElementVNode("div", { class: "file-info" }, [
55
+ createElementVNode(
56
+ "div",
57
+ {
58
+ class: normalizeClass(["touchchat-file-icon", `type-${itype.value}`])
59
+ },
60
+ null,
61
+ 2
62
+ /* CLASS */
63
+ ),
64
+ createElementVNode("div", { class: "touchchat-file-info" }, [
40
65
  createElementVNode(
41
66
  "div",
42
- { class: "file-name" },
67
+ { class: "touchchat-file-name" },
43
68
  toDisplayString(_ctx.item.fileName || "\u672A\u77E5\u6587\u4EF6"),
44
69
  1
45
70
  /* TEXT */
46
71
  ),
47
72
  createElementVNode(
48
73
  "div",
49
- { class: "file-size" },
74
+ { class: "touchchat-file-size" },
50
75
  toDisplayString(formatFileSize(_ctx.item.fileSize)),
51
76
  1
52
77
  /* TEXT */
53
78
  )
54
79
  ]),
55
- createCommentVNode(' <div class="file-action">\n <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">\n <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>\n <polyline points="7 10 12 15 17 10"></polyline>\n <line x1="12" y1="15" x2="12" y2="3"></line>\n </svg>\n </div> ')
80
+ createElementVNode("div", { class: "touchchat-file-download" }, [
81
+ createElementVNode("div", {
82
+ class: "touchchat-file-download-icon",
83
+ onClick: withModifiers(handleDownloadClick, ["stop"])
84
+ })
85
+ ])
56
86
  ]);
57
87
  };
58
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileView.vue2.mjs","sources":["../../../../../../packages/components/touchchat/component/FileView.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({ name: 'FileView' });\n</script>\n<template>\n <div class=\"file-view\" @click=\"handleFileClick\">\n <img src=\"../img/file.png\" alt=\"文件图标\" class=\"file-icon\" />\n <div class=\"file-info\">\n <div class=\"file-name\">{{ item.fileName || '未知文件' }}</div>\n <div class=\"file-size\">{{ formatFileSize(item.fileSize) }}</div>\n </div>\n <!-- <div class=\"file-action\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path>\n <polyline points=\"7 10 12 15 17 10\"></polyline>\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"></line>\n </svg>\n </div> -->\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n// import type { ChatMessage } from '../src/AiChat/TouchChat.vue';\ninterface ChatMessage {\n chatId?: string;\n user: string;\n type: string;\n content: string;\n isChating?: boolean;\n thinkContent?: string;\n reasoningContent?: string;\n isLiked?: boolean;\n isDisliked?: boolean;\n isEditing?: boolean;\n editContent?: string;\n componentName?: string;\n thinkStatus?: 'thinking' | 'completed' | 'stopped';\n thinkStartTime?: number;\n thinkTime?: number;\n [key: string]: unknown;\n}\n\n;\n\nconst props = defineProps<{\n item: ChatMessage & { fileName?: string; fileSize?: number };\n index: number;\n}>();\n\nconst emit = defineEmits<{\n (e: 'fileClick', fileName: string, index: number): void;\n}>();\n\n// 格式化文件大小\nconst formatFileSize = (size?: number): string => {\n if (!size) return '未知大小';\n if (size < 1024) return `${size} B`;\n if (size < 1024 * 1024) return `${(size / 1024).toFixed(1)} KB`;\n return `${(size / (1024 * 1024)).toFixed(1)} MB`;\n};\n\n// 处理文件点击事件\nconst handleFileClick = () => {\n if (props.item.fileName) {\n emit('fileClick', props.item.fileName, props.index);\n }\n};\n</script>\n\n<!-- <style scoped lang=\"less\">\n@import './style/FileView.less';\n</style> -->\n"],"names":["DO_defineComponent","_createElementBlock","_createElementVNode","item","_createCommentVNode"],"mappings":";;;AAEA,MAAA,WAA6B,GAAAA,eAAA,CAAmB,EAAE,IAAA,EAAM,YAAY,CAAA,CAAA;;;;;;;;;AA0CpE,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAKd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAKb,IAAM,MAAA,cAAA,GAAiB,CAAC,IAA0B,KAAA;AAChD,MAAA,IAAI,CAAC,IAAA;AAAM,QAAO,OAAA,0BAAA,CAAA;AAClB,MAAA,IAAI,IAAO,GAAA,IAAA;AAAM,QAAA,OAAO,CAAG,EAAA,IAAA,CAAA,EAAA,CAAA,CAAA;AAC3B,MAAA,IAAI,OAAO,IAAO,GAAA,IAAA;AAAM,QAAA,OAAO,CAAI,EAAA,CAAA,IAAA,GAAO,IAAM,EAAA,OAAA,CAAQ,CAAC,CAAA,CAAA,GAAA,CAAA,CAAA;AACzD,MAAA,OAAO,CAAI,EAAA,CAAA,IAAA,IAAQ,IAAO,GAAA,IAAA,CAAA,EAAO,QAAQ,CAAC,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KAC5C,CAAA;AAGA,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAI,IAAA,KAAA,CAAM,KAAK,QAAU,EAAA;AACvB,QAAA,IAAA,CAAK,WAAa,EAAA,KAAA,CAAM,IAAK,CAAA,QAAA,EAAU,MAAM,KAAK,CAAA,CAAA;AAAA,OACpD;AAAA,KACF,CAAA;;wBA7DE,EAAAC,kBAAA,CAaM,KAAA,EAAA;AAAA,QAbD,KAAM,EAAA,WAAA;AAAA,QAAa,OAAO,EAAA,eAAA;AAAA;QAC7BC,mBAA0D,KAAA,EAAA;AAAA,UAArD,GAAA,EAAA,UAAA;AAAA,UAAsB,GAAI,EAAA,0BAAA;AAAA,UAAO,KAAM,EAAA,WAAA;AAAA;QAC5CA,kBAGM,CAAA,KAAA,EAAA,EAHD,KAAA,EAAM,aAAW,EAAA;AAAA,UACpBA,kBAAA;AAAA,YAA0D,KAAA;AAAA,cAArD,OAAM,WAAeC,EAAAA;AAAAA,YAAAA,eAAAA,CAAAA,IAAAA,CAAAA,IAAK,CAAA,QAAA,IAAQ,0BAAA,CAAA;AAAA,YAAA,CAAA;AAAA;AAAA,WAAA;AAAA,UACvCD,kBAAA;AAAA,YAAgE,KAAA;AAAA,YAAA,EAA3D,OAAM;2BAAe,CAAA,cAAA,CAAeC,IAAI,CAAA,IAAA,CAAC,QAAQ,CAAA,CAAA;AAAA,YAAA,CAAA;AAAA;AAAA,WAAA;AAAA;QAExDC,mBAMU,yXAAA,CAAA;AAAA;;;;;;;"}
1
+ {"version":3,"file":"FileView.vue2.mjs","sources":["../../../../../../packages/components/touchchat/component/FileView.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({ name: 'FileView' });\n</script>\n<template>\n\t<div class=\"touchchat-file\" @click=\"handleFileClick\">\n\t\t<div class=\"touchchat-file-icon\" :class=\"`type-${itype}`\" />\n\t\t<div class=\"touchchat-file-info\">\n\t\t\t<div class=\"touchchat-file-name\">{{ item.fileName || '未知文件' }}</div>\n\t\t\t<div class=\"touchchat-file-size\">{{ formatFileSize(item.fileSize) }}</div>\n\t\t</div>\n\t\t<div class=\"touchchat-file-download\">\n\t\t\t<div class=\"touchchat-file-download-icon\" @click.stop=\"handleDownloadClick\"></div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { inject, computed } from 'vue'\n\n// import type { ChatMessage } from '../src/AiChat/TouchChat.vue';\ninterface ChatMessage {\n\tchatId?: string\n\tuser: string\n\ttype: string\n\tcontent: string\n\tisChating?: boolean\n\tthinkContent?: string\n\treasoningContent?: string\n\tisLiked?: boolean\n\tisDisliked?: boolean\n\tisEditing?: boolean\n\teditContent?: string\n\tcomponentName?: string\n\tthinkStatus?: 'thinking' | 'completed' | 'stopped'\n\tthinkStartTime?: number\n\tthinkTime?: number\n\t[key: string]: unknown\n}\n\n\n\nconst props = defineProps<{\n\titem: ChatMessage & { fileName?: string; fileSize?: number }\n\tindex: number\n}>()\n\nconst emit = defineEmits<{\n\t(e: 'fileClick', fileName: string, index: number): void\n}>()\n\n// 格式化文件大小\nconst formatFileSize = (size?: number): string => {\n\tif (!size) return '未知大小'\n\tif (size < 1024) return `${size} B`\n\tif (size < 1024 * 1024) return `${(size / 1024).toFixed(1)} KB`\n\treturn `${(size / (1024 * 1024)).toFixed(1)} MB`\n}\n\n// 计算文件类型\nconst itype = computed(() => {\n\tconst validTypes = ['doc', 'jpg', 'pdf', 'txt', 'docx', 'mp3', 'png', 'gif', 'mp4', 'ppt', 'xls', 'html', 'pptx', 'xlsx']\n\tif (props.item.fileName) {\n\t\tconst extension = props.item.fileName.split('.').pop()?.toLowerCase()\n\t\tif (extension && validTypes.includes(extension)) {\n\t\t\treturn extension\n\t\t}\n\t}\n\treturn 'unknown'\n})\n\nconst fileAction = inject<(item: any, index: number) => void>('fileAction', () => {})\nconst downloadAction = inject<(item: any, index: number) => void>('downloadAction', () => {})\n\ndefineExpose({ itype })\n\n// 处理文件点击事件\nconst handleFileClick = () => {\n\tif (props.item.fileName) {\n\t\temit('fileClick', props.item.fileName, props.index)\n\t\tfileAction(props.item, props.index)\n\t}\n}\nconst handleDownloadClick = () => {\n\tif (props.item.fileName) {\n\t\tdownloadAction(props.item, props.index)\n\t}\n}\n</script>\n\n<!-- <style scoped lang=\"less\">\n@import './style/FileView.less';\n</style> -->\n"],"names":["DO_defineComponent","_createElementBlock","_createElementVNode","_normalizeClass","item"],"mappings":"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"}
@@ -41,7 +41,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
41
41
  isSelectMode: { type: Boolean, default: false },
42
42
  uploadAction: { type: Function, default: void 0 }
43
43
  },
44
- emits: ["send", "afterSend", "like", "dislike", "side-bottom", "change", "historyRemove", "remove", "bottom", "stop", "modelChange", "openSideBar", "share", "withDraw", "file-action"],
44
+ emits: ["send", "afterSend", "like", "dislike", "side-bottom", "change", "historyRemove", "remove", "bottom", "stop", "modelChange", "openSideBar", "share", "withDraw", "file-action", "download-action"],
45
45
  setup(__props, { expose: __expose, emit: __emit }) {
46
46
  const emits = __emit;
47
47
  const sendVal = ref("");
@@ -185,6 +185,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
185
185
  provide("fileAction", (item, index) => {
186
186
  emits("file-action", item, index);
187
187
  });
188
+ provide("downloadAction", (item, index) => {
189
+ emits("download-action", item, index);
190
+ });
188
191
  __expose({
189
192
  send: (value, fileList, auto, type) => {
190
193
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.mjs","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","_createCommentVNode","_createVNode","_withCtx","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue2.mjs","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\t(e: 'download-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})\nprovide('downloadAction', (item: any, index: number) => {\n\temits('download-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","_createCommentVNode","_createVNode","_withCtx","_renderSlot"],"mappings":"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"}
@@ -1 +1 @@
1
- .hljs{background:#fafafa;color:#383a42;display:block;overflow-x:auto;padding:.5em}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-built_in,.hljs-class .hljs-title{color:#c18401}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.video-File[data-v-7305b796]{height:auto;width:5em}.video-play[data-v-7305b796]{width:100%}.typewriter-container[data-v-5bee9536]{position:relative}.loading-container[data-v-5bee9536]{min-height:40px}.typewriter-loading[data-v-5bee9536]{align-items:center;color:#666;display:flex;font-size:14px;gap:8px;line-height:1;margin-top:12px;padding:8px 0}.loading-dot[data-v-5bee9536]{animation:bounce-5bee9536 1.4s ease-in-out infinite both;background-color:#666;border-radius:50%;display:inline-block;height:8px;width:8px}.loading-text[data-v-5bee9536]{user-select:none}@keyframes bounce-5bee9536{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.markdown-content[data-v-5bee9536]{color:#333}.markdown-content h1[data-v-5bee9536],.markdown-content h2[data-v-5bee9536]{margin:1em 0 .5em}.markdown-content p[data-v-5bee9536]{margin:.5em 0}.markdown-content code[data-v-5bee9536]{background:#f0f0f0;border-radius:4px;padding:.2em .4em}
1
+ .video-File[data-v-7305b796]{height:auto;width:5em}.video-play[data-v-7305b796]{width:100%}.typewriter-container[data-v-5bee9536]{position:relative}.loading-container[data-v-5bee9536]{min-height:40px}.typewriter-loading[data-v-5bee9536]{align-items:center;color:#666;display:flex;font-size:14px;gap:8px;line-height:1;margin-top:12px;padding:8px 0}.loading-dot[data-v-5bee9536]{animation:bounce-5bee9536 1.4s ease-in-out infinite both;background-color:#666;border-radius:50%;display:inline-block;height:8px;width:8px}.loading-text[data-v-5bee9536]{user-select:none}@keyframes bounce-5bee9536{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.markdown-content[data-v-5bee9536]{color:#333}.markdown-content h1[data-v-5bee9536],.markdown-content h2[data-v-5bee9536]{margin:1em 0 .5em}.markdown-content p[data-v-5bee9536]{margin:.5em 0}.markdown-content code[data-v-5bee9536]{background:#f0f0f0;border-radius:4px;padding:.2em .4em}.hljs{background:#fafafa;color:#383a42;display:block;overflow-x:auto;padding:.5em}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-built_in,.hljs-class .hljs-title{color:#c18401}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "@touchvue/chat";
6
- var version = "1.0.0-beta.52";
6
+ var version = "1.0.0-beta.53";
7
7
  var description = "TouchVue Chat Component Library";
8
8
  var main = "lib/index.js";
9
9
  var module$1 = "es/index.mjs";
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
- var file = require('../img/file.png.js');
7
6
 
8
7
  const __default__ = vue.defineComponent({ name: "FileView" });
9
8
  var _sfc_main = /* @__PURE__ */ vue.defineComponent({
@@ -13,7 +12,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
13
12
  index: {}
14
13
  },
15
14
  emits: ["fileClick"],
16
- setup(__props, { emit: __emit }) {
15
+ setup(__props, { expose: __expose, emit: __emit }) {
17
16
  const props = __props;
18
17
  const emit = __emit;
19
18
  const formatFileSize = (size) => {
@@ -25,38 +24,69 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
25
24
  return `${(size / 1024).toFixed(1)} KB`;
26
25
  return `${(size / (1024 * 1024)).toFixed(1)} MB`;
27
26
  };
27
+ const itype = vue.computed(() => {
28
+ var _a;
29
+ const validTypes = ["doc", "jpg", "pdf", "txt", "docx", "mp3", "png", "gif", "mp4", "ppt", "xls", "html", "pptx", "xlsx"];
30
+ if (props.item.fileName) {
31
+ const extension = (_a = props.item.fileName.split(".").pop()) == null ? void 0 : _a.toLowerCase();
32
+ if (extension && validTypes.includes(extension)) {
33
+ return extension;
34
+ }
35
+ }
36
+ return "unknown";
37
+ });
38
+ const fileAction = vue.inject("fileAction", () => {
39
+ });
40
+ const downloadAction = vue.inject("downloadAction", () => {
41
+ });
42
+ __expose({ itype });
28
43
  const handleFileClick = () => {
29
44
  if (props.item.fileName) {
30
45
  emit("fileClick", props.item.fileName, props.index);
46
+ fileAction(props.item, props.index);
47
+ }
48
+ };
49
+ const handleDownloadClick = () => {
50
+ if (props.item.fileName) {
51
+ downloadAction(props.item, props.index);
31
52
  }
32
53
  };
33
54
  return (_ctx, _cache) => {
34
55
  return vue.openBlock(), vue.createElementBlock("div", {
35
- class: "file-view",
56
+ class: "touchchat-file",
36
57
  onClick: handleFileClick
37
58
  }, [
38
- vue.createElementVNode("img", {
39
- src: file.default,
40
- alt: "\u6587\u4EF6\u56FE\u6807",
41
- class: "file-icon"
42
- }),
43
- vue.createElementVNode("div", { class: "file-info" }, [
59
+ vue.createElementVNode(
60
+ "div",
61
+ {
62
+ class: vue.normalizeClass(["touchchat-file-icon", `type-${itype.value}`])
63
+ },
64
+ null,
65
+ 2
66
+ /* CLASS */
67
+ ),
68
+ vue.createElementVNode("div", { class: "touchchat-file-info" }, [
44
69
  vue.createElementVNode(
45
70
  "div",
46
- { class: "file-name" },
71
+ { class: "touchchat-file-name" },
47
72
  vue.toDisplayString(_ctx.item.fileName || "\u672A\u77E5\u6587\u4EF6"),
48
73
  1
49
74
  /* TEXT */
50
75
  ),
51
76
  vue.createElementVNode(
52
77
  "div",
53
- { class: "file-size" },
78
+ { class: "touchchat-file-size" },
54
79
  vue.toDisplayString(formatFileSize(_ctx.item.fileSize)),
55
80
  1
56
81
  /* TEXT */
57
82
  )
58
83
  ]),
59
- vue.createCommentVNode(' <div class="file-action">\n <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">\n <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>\n <polyline points="7 10 12 15 17 10"></polyline>\n <line x1="12" y1="15" x2="12" y2="3"></line>\n </svg>\n </div> ')
84
+ vue.createElementVNode("div", { class: "touchchat-file-download" }, [
85
+ vue.createElementVNode("div", {
86
+ class: "touchchat-file-download-icon",
87
+ onClick: vue.withModifiers(handleDownloadClick, ["stop"])
88
+ })
89
+ ])
60
90
  ]);
61
91
  };
62
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileView.vue2.js","sources":["../../../../../../packages/components/touchchat/component/FileView.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({ name: 'FileView' });\n</script>\n<template>\n <div class=\"file-view\" @click=\"handleFileClick\">\n <img src=\"../img/file.png\" alt=\"文件图标\" class=\"file-icon\" />\n <div class=\"file-info\">\n <div class=\"file-name\">{{ item.fileName || '未知文件' }}</div>\n <div class=\"file-size\">{{ formatFileSize(item.fileSize) }}</div>\n </div>\n <!-- <div class=\"file-action\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path>\n <polyline points=\"7 10 12 15 17 10\"></polyline>\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"></line>\n </svg>\n </div> -->\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n// import type { ChatMessage } from '../src/AiChat/TouchChat.vue';\ninterface ChatMessage {\n chatId?: string;\n user: string;\n type: string;\n content: string;\n isChating?: boolean;\n thinkContent?: string;\n reasoningContent?: string;\n isLiked?: boolean;\n isDisliked?: boolean;\n isEditing?: boolean;\n editContent?: string;\n componentName?: string;\n thinkStatus?: 'thinking' | 'completed' | 'stopped';\n thinkStartTime?: number;\n thinkTime?: number;\n [key: string]: unknown;\n}\n\n;\n\nconst props = defineProps<{\n item: ChatMessage & { fileName?: string; fileSize?: number };\n index: number;\n}>();\n\nconst emit = defineEmits<{\n (e: 'fileClick', fileName: string, index: number): void;\n}>();\n\n// 格式化文件大小\nconst formatFileSize = (size?: number): string => {\n if (!size) return '未知大小';\n if (size < 1024) return `${size} B`;\n if (size < 1024 * 1024) return `${(size / 1024).toFixed(1)} KB`;\n return `${(size / (1024 * 1024)).toFixed(1)} MB`;\n};\n\n// 处理文件点击事件\nconst handleFileClick = () => {\n if (props.item.fileName) {\n emit('fileClick', props.item.fileName, props.index);\n }\n};\n</script>\n\n<!-- <style scoped lang=\"less\">\n@import './style/FileView.less';\n</style> -->\n"],"names":["DO_defineComponent","_createElementBlock","_createElementVNode","_imports_0","item","_createCommentVNode"],"mappings":";;;;;;;AAEA,MAAA,WAA6B,GAAAA,mBAAA,CAAmB,EAAE,IAAA,EAAM,YAAY,CAAA,CAAA;;;;;;;;;AA0CpE,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAKd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAKb,IAAM,MAAA,cAAA,GAAiB,CAAC,IAA0B,KAAA;AAChD,MAAA,IAAI,CAAC,IAAA;AAAM,QAAO,OAAA,0BAAA,CAAA;AAClB,MAAA,IAAI,IAAO,GAAA,IAAA;AAAM,QAAA,OAAO,CAAG,EAAA,IAAA,CAAA,EAAA,CAAA,CAAA;AAC3B,MAAA,IAAI,OAAO,IAAO,GAAA,IAAA;AAAM,QAAA,OAAO,CAAI,EAAA,CAAA,IAAA,GAAO,IAAM,EAAA,OAAA,CAAQ,CAAC,CAAA,CAAA,GAAA,CAAA,CAAA;AACzD,MAAA,OAAO,CAAI,EAAA,CAAA,IAAA,IAAQ,IAAO,GAAA,IAAA,CAAA,EAAO,QAAQ,CAAC,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KAC5C,CAAA;AAGA,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAI,IAAA,KAAA,CAAM,KAAK,QAAU,EAAA;AACvB,QAAA,IAAA,CAAK,WAAa,EAAA,KAAA,CAAM,IAAK,CAAA,QAAA,EAAU,MAAM,KAAK,CAAA,CAAA;AAAA,OACpD;AAAA,KACF,CAAA;;4BA7DE,EAAAC,sBAAA,CAaM,KAAA,EAAA;AAAA,QAbD,KAAM,EAAA,WAAA;AAAA,QAAa,OAAO,EAAA,eAAA;AAAA;QAC7BC,uBAA0D,KAAA,EAAA;AAAA,UAArD,GAAA,EAAAC,YAAA;AAAA,UAAsB,GAAI,EAAA,0BAAA;AAAA,UAAO,KAAM,EAAA,WAAA;AAAA;QAC5CD,sBAGM,CAAA,KAAA,EAAA,EAHD,KAAA,EAAM,aAAW,EAAA;AAAA,UACpBA,sBAAA;AAAA,YAA0D,KAAA;AAAA,cAArD,OAAM,WAAeE,EAAAA;AAAAA,YAAAA,mBAAAA,CAAAA,IAAAA,CAAAA,IAAK,CAAA,QAAA,IAAQ,0BAAA,CAAA;AAAA,YAAA,CAAA;AAAA;AAAA,WAAA;AAAA,UACvCF,sBAAA;AAAA,YAAgE,KAAA;AAAA,YAAA,EAA3D,OAAM;+BAAe,CAAA,cAAA,CAAeE,IAAI,CAAA,IAAA,CAAC,QAAQ,CAAA,CAAA;AAAA,YAAA,CAAA;AAAA;AAAA,WAAA;AAAA;QAExDC,uBAMU,yXAAA,CAAA;AAAA;;;;;;;"}
1
+ {"version":3,"file":"FileView.vue2.js","sources":["../../../../../../packages/components/touchchat/component/FileView.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({ name: 'FileView' });\n</script>\n<template>\n\t<div class=\"touchchat-file\" @click=\"handleFileClick\">\n\t\t<div class=\"touchchat-file-icon\" :class=\"`type-${itype}`\" />\n\t\t<div class=\"touchchat-file-info\">\n\t\t\t<div class=\"touchchat-file-name\">{{ item.fileName || '未知文件' }}</div>\n\t\t\t<div class=\"touchchat-file-size\">{{ formatFileSize(item.fileSize) }}</div>\n\t\t</div>\n\t\t<div class=\"touchchat-file-download\">\n\t\t\t<div class=\"touchchat-file-download-icon\" @click.stop=\"handleDownloadClick\"></div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { inject, computed } from 'vue'\n\n// import type { ChatMessage } from '../src/AiChat/TouchChat.vue';\ninterface ChatMessage {\n\tchatId?: string\n\tuser: string\n\ttype: string\n\tcontent: string\n\tisChating?: boolean\n\tthinkContent?: string\n\treasoningContent?: string\n\tisLiked?: boolean\n\tisDisliked?: boolean\n\tisEditing?: boolean\n\teditContent?: string\n\tcomponentName?: string\n\tthinkStatus?: 'thinking' | 'completed' | 'stopped'\n\tthinkStartTime?: number\n\tthinkTime?: number\n\t[key: string]: unknown\n}\n\n\n\nconst props = defineProps<{\n\titem: ChatMessage & { fileName?: string; fileSize?: number }\n\tindex: number\n}>()\n\nconst emit = defineEmits<{\n\t(e: 'fileClick', fileName: string, index: number): void\n}>()\n\n// 格式化文件大小\nconst formatFileSize = (size?: number): string => {\n\tif (!size) return '未知大小'\n\tif (size < 1024) return `${size} B`\n\tif (size < 1024 * 1024) return `${(size / 1024).toFixed(1)} KB`\n\treturn `${(size / (1024 * 1024)).toFixed(1)} MB`\n}\n\n// 计算文件类型\nconst itype = computed(() => {\n\tconst validTypes = ['doc', 'jpg', 'pdf', 'txt', 'docx', 'mp3', 'png', 'gif', 'mp4', 'ppt', 'xls', 'html', 'pptx', 'xlsx']\n\tif (props.item.fileName) {\n\t\tconst extension = props.item.fileName.split('.').pop()?.toLowerCase()\n\t\tif (extension && validTypes.includes(extension)) {\n\t\t\treturn extension\n\t\t}\n\t}\n\treturn 'unknown'\n})\n\nconst fileAction = inject<(item: any, index: number) => void>('fileAction', () => {})\nconst downloadAction = inject<(item: any, index: number) => void>('downloadAction', () => {})\n\ndefineExpose({ itype })\n\n// 处理文件点击事件\nconst handleFileClick = () => {\n\tif (props.item.fileName) {\n\t\temit('fileClick', props.item.fileName, props.index)\n\t\tfileAction(props.item, props.index)\n\t}\n}\nconst handleDownloadClick = () => {\n\tif (props.item.fileName) {\n\t\tdownloadAction(props.item, props.index)\n\t}\n}\n</script>\n\n<!-- <style scoped lang=\"less\">\n@import './style/FileView.less';\n</style> -->\n"],"names":["DO_defineComponent","computed","inject","_createElementBlock","_createElementVNode","_normalizeClass","item"],"mappings":";;;;;;AAEA,MAAA,WAA6B,GAAAA,mBAAA,CAAmB,EAAE,IAAA,EAAM,YAAY,CAAA,CAAA;;;;;;;;;AAwCpE,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAKd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAKb,IAAM,MAAA,cAAA,GAAiB,CAAC,IAA0B,KAAA;AACjD,MAAA,IAAI,CAAC,IAAA;AAAM,QAAO,OAAA,0BAAA,CAAA;AAClB,MAAA,IAAI,IAAO,GAAA,IAAA;AAAM,QAAA,OAAO,CAAG,EAAA,IAAA,CAAA,EAAA,CAAA,CAAA;AAC3B,MAAA,IAAI,OAAO,IAAO,GAAA,IAAA;AAAM,QAAA,OAAO,CAAI,EAAA,CAAA,IAAA,GAAO,IAAM,EAAA,OAAA,CAAQ,CAAC,CAAA,CAAA,GAAA,CAAA,CAAA;AACzD,MAAA,OAAO,CAAI,EAAA,CAAA,IAAA,IAAQ,IAAO,GAAA,IAAA,CAAA,EAAO,QAAQ,CAAC,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KAC3C,CAAA;AAGA,IAAM,MAAA,KAAA,GAAQC,aAAS,MAAM;;AAC5B,MAAA,MAAM,UAAa,GAAA,CAAC,KAAO,EAAA,KAAA,EAAO,OAAO,KAAO,EAAA,MAAA,EAAQ,KAAO,EAAA,KAAA,EAAO,OAAO,KAAO,EAAA,KAAA,EAAO,KAAO,EAAA,MAAA,EAAQ,QAAQ,MAAM,CAAA,CAAA;AACxH,MAAI,IAAA,KAAA,CAAM,KAAK,QAAU,EAAA;AACxB,QAAM,MAAA,SAAA,GAAA,CAAY,WAAM,IAAK,CAAA,QAAA,CAAS,MAAM,GAAG,CAAA,CAAE,GAAI,EAAA,KAAnC,IAAsC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAA,EAAA,CAAA;AACxD,QAAA,IAAI,SAAa,IAAA,UAAA,CAAW,QAAS,CAAA,SAAS,CAAG,EAAA;AAChD,UAAO,OAAA,SAAA,CAAA;AAAA,SACR;AAAA,OACD;AACA,MAAO,OAAA,SAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAED,IAAM,MAAA,UAAA,GAAaC,UAA2C,CAAA,YAAA,EAAc,MAAM;AAAA,KAAE,CAAA,CAAA;AACpF,IAAM,MAAA,cAAA,GAAiBA,UAA2C,CAAA,gBAAA,EAAkB,MAAM;AAAA,KAAE,CAAA,CAAA;AAE5F,IAAa,QAAA,CAAA,EAAE,OAAO,CAAA,CAAA;AAGtB,IAAA,MAAM,kBAAkB,MAAM;AAC7B,MAAI,IAAA,KAAA,CAAM,KAAK,QAAU,EAAA;AACxB,QAAA,IAAA,CAAK,WAAa,EAAA,KAAA,CAAM,IAAK,CAAA,QAAA,EAAU,MAAM,KAAK,CAAA,CAAA;AAClD,QAAW,UAAA,CAAA,KAAA,CAAM,IAAM,EAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAAA,OACnC;AAAA,KACD,CAAA;AACA,IAAA,MAAM,sBAAsB,MAAM;AACjC,MAAI,IAAA,KAAA,CAAM,KAAK,QAAU,EAAA;AACxB,QAAe,cAAA,CAAA,KAAA,CAAM,IAAM,EAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAAA,OACvC;AAAA,KACD,CAAA;;4BAlFC,EAAAC,sBAAA,CASM,KAAA,EAAA;AAAA,QATD,KAAM,EAAA,gBAAA;AAAA,QAAkB,OAAO,EAAA,eAAA;AAAA;QACnCC,sBAAA;AAAA,UAA4D,KAAA;AAAA,UAAA;AAAA,YAAvD,OAAKC,kBAAA,CAAA,CAAC,uBAAqB,CAAiB,KAAA,EAAA,KAAA,CAAK,OAAA,CAAA,CAAA;AAAA;;;;;QACtDD,sBAGM,CAAA,KAAA,EAAA,EAHD,KAAA,EAAM,uBAAqB,EAAA;AAAA,UAC/BA,sBAAA;AAAA,YAAoE,KAAA;AAAA,cAA/D,OAAM,qBAAyBE,EAAAA;AAAAA,YAAAA,mBAAAA,CAAAA,IAAAA,CAAAA,IAAK,CAAA,QAAA,IAAQ,0BAAA,CAAA;AAAA,YAAA,CAAA;AAAA;AAAA,WAAA;AAAA,UACjDF,sBAAA;AAAA,YAA0E,KAAA;AAAA,YAAA,EAArE,OAAM;+BAAyB,CAAA,cAAA,CAAeE,IAAI,CAAA,IAAA,CAAC,QAAQ,CAAA,CAAA;AAAA,YAAA,CAAA;AAAA;AAAA,WAAA;AAAA;QAEjEF,sBAEM,CAAA,KAAA,EAAA,EAFD,KAAA,EAAM,2BAAyB,EAAA;AAAA,UACnCA,uBAAkF,KAAA,EAAA;AAAA,YAA7E,KAAM,EAAA,8BAAA;AAAA,YAAgC,2BAAY,mBAAmB,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA;;;;;;;;;"}
@@ -45,7 +45,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
45
45
  isSelectMode: { type: Boolean, default: false },
46
46
  uploadAction: { type: Function, default: void 0 }
47
47
  },
48
- emits: ["send", "afterSend", "like", "dislike", "side-bottom", "change", "historyRemove", "remove", "bottom", "stop", "modelChange", "openSideBar", "share", "withDraw", "file-action"],
48
+ emits: ["send", "afterSend", "like", "dislike", "side-bottom", "change", "historyRemove", "remove", "bottom", "stop", "modelChange", "openSideBar", "share", "withDraw", "file-action", "download-action"],
49
49
  setup(__props, { expose: __expose, emit: __emit }) {
50
50
  const emits = __emit;
51
51
  const sendVal = vue.ref("");
@@ -189,6 +189,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
189
189
  vue.provide("fileAction", (item, index) => {
190
190
  emits("file-action", item, index);
191
191
  });
192
+ vue.provide("downloadAction", (item, index) => {
193
+ emits("download-action", item, index);
194
+ });
192
195
  __expose({
193
196
  send: (value, fileList, auto, type) => {
194
197
  var _a;
@@ -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\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
+ {"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\t(e: 'download-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})\nprovide('downloadAction', (item: any, index: number) => {\n\temits('download-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":";;;;;;;AAEA,MAAA,WAA6B,GAAAA,mBAAA,CAAmB,EAAE,IAAA,EAAM,aAAa,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoErE,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAmBd,IAAM,MAAA,OAAA,GAAUC,QAAI,EAAE,CAAA,CAAA;AA8CtB,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAuEd,IAAA,MAAM,UAAa,GAAAC,YAAA,CAAS,MAAM,KAAA,CAAM,YAAY,CAAA,CAAA;AACpD,IAAQC,WAAA,CAAA,YAAA,EAAc,MAAM,UAAU,CAAA,CAAA;AACtC,IAAQA,WAAA,CAAA,QAAA,EAAU,MAAM,MAAM,CAAA,CAAA;AAC9B,IAAQA,WAAA,CAAA,aAAA,EAAe,MAAM,WAAW,CAAA,CAAA;AACxC,IAAQA,WAAA,CAAA,aAAA,EAAe,MAAM,WAAW,CAAA,CAAA;AACxC,IAAQA,WAAA,CAAA,OAAA,EAAS,MAAM,KAAK,CAAA,CAAA;AAC5B,IAAQA,WAAA,CAAA,QAAA,EAAU,MAAM,MAAM,CAAA,CAAA;AAC9B,IAAQA,WAAA,CAAA,YAAA,EAAc,MAAM,UAAU,CAAA,CAAA;AACtC,IAAAA,WAAA,CAAQ,WAAWF,OAAI,CAAA,KAAA,CAAM,OAAW,IAAA,EAAE,CAAC,CAAA,CAAA;AAC3C,IAAQE,WAAA,CAAA,OAAA,EAAS,MAAM,KAAK,CAAA,CAAA;AAC5B,IAAQA,WAAA,CAAA,cAAA,EAAgB,MAAM,YAAY,CAAA,CAAA;AAC1C,IAAQA,WAAA,CAAA,WAAA,EAAa,MAAM,SAAS,CAAA,CAAA;AACpC,IAAQA,WAAA,CAAA,gBAAA,EAAkB,MAAM,cAAc,CAAA,CAAA;AAC9C,IAAQA,WAAA,CAAA,SAAA,EAAW,MAAM,OAAO,CAAA,CAAA;AAChC,IAAAA,WAAA,CAAQ,gBAAgB,UAAU,CAAA,CAAA;AAClC,IAAQA,WAAA,CAAA,cAAA,EAAgB,MAAM,YAAY,CAAA,CAAA;AAC1C,IAAA,MAAM,mBAAsB,GAAAD,YAAA,CAAS,MAAM,KAAA,CAAM,WAAW,CAAA,CAAA;AAC5D,IAAM,MAAA,mBAAA,GAAsBD,OAAI,CAAA,KAAA,CAAM,WAAW,CAAA,CAAA;AACjD,IAAAG,SAAA;AAAA,MACC,mBAAA;AAAA,MACA,CAAU,MAAA,KAAA;AACT,QAAA,mBAAA,CAAoB,KAAQ,GAAA,MAAA,CAAA;AAAA,OAC7B;AAAA,MACA,EAAE,WAAW,IAAK,EAAA;AAAA,KACnB,CAAA;AACA,IAAAD,WAAA,CAAQ,eAAe,mBAAmB,CAAA,CAAA;AAC1C,IAAA,MAAM,qBAAwB,GAAAD,YAAA,CAAS,MAAM,KAAA,CAAM,aAAa,CAAA,CAAA;AAChE,IAAM,MAAA,qBAAA,GAAwBD,OAAI,CAAA,KAAA,CAAM,aAAa,CAAA,CAAA;AACrD,IAAAG,SAAA;AAAA,MACC,qBAAA;AAAA,MACA,CAAU,MAAA,KAAA;AACT,QAAA,qBAAA,CAAsB,KAAQ,GAAA,MAAA,CAAA;AAAA,OAC/B;AAAA,MACA,EAAE,WAAW,IAAK,EAAA;AAAA,KACnB,CAAA;AACA,IAAAD,WAAA,CAAQ,iBAAiB,qBAAqB,CAAA,CAAA;AAC9C,IAAQA,WAAA,CAAA,QAAA,EAAU,MAAM,MAAM,CAAA,CAAA;AAC9B,IAAM,MAAA,QAAA,GAAWF,OAAI,CAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAClC,IAAAG,SAAA;AAAA,MACC,MAAM,KAAM,CAAA,OAAA;AAAA,MACZ,CAAU,MAAA,KAAA;AACT,QAAA,QAAA,CAAS,KAAQ,GAAA,MAAA,CAAA;AAAA,OAElB;AAAA,MACA,EAAE,WAAW,IAAK,EAAA;AAAA,KACnB,CAAA;AACA,IAAAD,WAAA,CAAQ,WAAW,QAAQ,CAAA,CAAA;AAE3B,IAAM,MAAA,eAAA,GAAkBF,OAAI,CAAA,KAAA,CAAM,SAAS,CAAA,CAAA;AAC3C,IAAAG,SAAA;AAAA,MACC,MAAM,KAAM,CAAA,SAAA;AAAA,MACZ,CAAU,MAAA,KAAA;AACT,QAAA,eAAA,CAAgB,KAAQ,GAAA,MAAA,CAAA;AAAA,OACzB;AAAA,MACA,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,IAAK,EAAA;AAAA,KAC/B,CAAA;AACA,IAAAD,WAAA,CAAQ,aAAa,eAAe,CAAA,CAAA;AAGpC,IAAQA,WAAA,CAAA,MAAA,EAAQ,CAAC,KAAA,EAAe,MAAoB,KAAA;AAEnD,MAAM,KAAA,CAAA,MAAA,EAAQ,OAAO,MAAM,CAAA,CAAA;AAAA,KAE3B,CAAA,CAAA;AAGD,IAAQA,WAAA,CAAA,SAAA,EAAW,CAAC,KAAA,EAAe,QAAsB,KAAA;AAExD,MAAM,KAAA,CAAA,SAAA,EAAW,OAAO,QAAQ,CAAA,CAAA;AAAA,KAEhC,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,MAAA,EAAQ,CAAC,KAAA,EAAe,QAAqB,KAAA;AAGpD,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAChB,MAAM,KAAA,CAAA,MAAA,EAAQ,OAAO,QAAQ,CAAA,CAAA;AAAA,KAE7B,CAAA,CAAA;AAED,IAAAA,WAAA,CAAQ,cAAc,MAAM;AAE3B,MAAA,KAAA,CAAM,aAAa,CAAA,CAAA;AAAA,KACnB,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,QAAA,EAAU,CAAC,EAAe,KAAA;AAEjC,MAAA,KAAA,CAAM,UAAU,EAAE,CAAA,CAAA;AAAA,KAClB,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,eAAA,EAAiB,CAAC,EAAe,KAAA;AAGxC,MAAA,KAAA,CAAM,iBAAiB,EAAE,CAAA,CAAA;AAAA,KACzB,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,aAAA,EAAe,CAAC,IAAA,EAAW,KAAkB,KAAA;AACpD,MAAM,KAAA,CAAA,aAAA,EAAe,MAAM,KAAK,CAAA,CAAA;AAAA,KAChC,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,OAAA,EAAS,CAAC,IAAA,EAAW,KAAkB,KAAA;AAC9C,MAAM,KAAA,CAAA,OAAA,EAAS,MAAM,KAAK,CAAA,CAAA;AAAA,KAC1B,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,UAAA,EAAY,CAAC,IAAA,EAAW,KAAkB,KAAA;AACjD,MAAM,KAAA,CAAA,UAAA,EAAY,MAAM,KAAK,CAAA,CAAA;AAAA,KAC7B,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,WAAA,EAAa,CAAC,OAAiB,KAAA;AAGtC,MAAA,KAAA,CAAM,aAAa,OAAO,CAAA,CAAA;AAAA,KAC1B,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,QAAA,EAAU,CAAC,IAAA,EAAmB,KAAkB,KAAA;AAGvD,MAAM,KAAA,CAAA,QAAA,EAAU,MAAM,KAAK,CAAA,CAAA;AAAA,KAC3B,CAAA,CAAA;AAED,IAAAA,WAAA,CAAQ,UAAU,MAAM;AAEvB,MAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;AAAA,KACd,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,MAAA,EAAQ,CAAC,IAAA,EAAmB,KAAkB,KAAA;AAErD,MAAM,KAAA,CAAA,MAAA,EAAQ,MAAM,KAAK,CAAA,CAAA;AAAA,KACzB,CAAA,CAAA;AAED,IAAQA,WAAA,CAAA,aAAA,EAAe,CAAC,IAAA,EAAkB,KAAkB,KAAA;AAE3D,MAAM,KAAA,CAAA,aAAA,EAAe,MAAM,KAAK,CAAA,CAAA;AAAA,KAChC,CAAA,CAAA;AAGD,IAAM,MAAA,WAAA,GAAcF,QAA0C,IAAI,CAAA,CAAA;AAElE,IAAM,MAAA,YAAA,GAAeC,aAAS,MAAM;AACnC,MAAA,MAAM,YAAY,EAAC,CAAA;AACnB,MAAA,IAAI,MAAM,IAAM,EAAA;AACf,QAAU,SAAA,CAAA,IAAA,CAAK,CAAa,UAAA,EAAA,KAAA,CAAM,IAAM,CAAA,CAAA,CAAA,CAAA;AAAA,OACzC;AACA,MAAO,OAAA,SAAA,CAAU,KAAK,GAAG,CAAA,CAAA;AAAA,KACzB,CAAA,CAAA;AAGD,IAAM,MAAA,YAAA,GAAeA,aAAS,MAAM;;AACnC,MAAA,IAAI,KAAQ,GAAA,EAAA,CAAA;AACZ,MAAA,IAAI,MAAS,GAAA,EAAA,CAAA;AAEb,MAAA,IAAI,MAAM,KAAO,EAAA;AAChB,QAAI,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAU,EAAA;AACpC,UAAQ,KAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,UAAN,IAAe,GAAA,EAAA,GAAA,MAAA,CAAA;AAAA,SACjB,MAAA;AACN,UAAA,KAAA,GAAQ,GAAG,KAAM,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SAClB;AAAA,OACD;AAEA,MAAA,IAAI,MAAM,MAAQ,EAAA;AACjB,QAAI,IAAA,OAAO,KAAM,CAAA,MAAA,KAAW,QAAU,EAAA;AACrC,UAAS,MAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,WAAN,IAAgB,GAAA,EAAA,GAAA,MAAA,CAAA;AAAA,SACnB,MAAA;AACN,UAAA,MAAA,GAAS,GAAG,KAAM,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SACnB;AAAA,OACD;AAEA,MAAO,OAAA;AAAA,QACN,KAAA;AAAA,QACA,MAAA;AAAA,OACD,CAAA;AAAA,KACA,CAAA,CAAA;AACD,IAAM,MAAA,iBAAA,GAAoBD,QAAS,IAAI,CAAA,CAAA;AACvC,IAAAE,WAAA,CAAQ,YAAY,iBAAiB,CAAA,CAAA;AACrC,IAAM,MAAA,QAAA,GAAW,CAAC,QAAqB,KAAA;AACtC,MAAA,IAAI,kBAAkB,KAAO,EAAA;AAC5B,QAAA,iBAAA,CAAkB,MAAM,QAAQ,CAAA,CAAA;AAAA,OACjC;AAAA,KACD,CAAA;AACA,IAAQA,WAAA,CAAA,YAAA,EAAc,CAAC,IAAA,EAAW,KAAkB,KAAA;AACnD,MAAM,KAAA,CAAA,aAAA,EAAe,MAAM,KAAK,CAAA,CAAA;AAAA,KAChC,CAAA,CAAA;AACD,IAAQA,WAAA,CAAA,gBAAA,EAAkB,CAAC,IAAA,EAAW,KAAkB,KAAA;AACvD,MAAM,KAAA,CAAA,iBAAA,EAAmB,MAAM,KAAK,CAAA,CAAA;AAAA,KACpC,CAAA,CAAA;AACD,IAAa,QAAA,CAAA;AAAA,MACZ,IAAM,EAAA,CAAC,KAAe,EAAA,QAAA,EAAkB,MAAgB,IAAkB,KAAA;;AACzE,QAAA,CAAA,EAAA,GAAA,WAAA,CAAY,KAAZ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAmB,IAAK,CAAA,KAAA,EAAO,UAAU,IAAM,EAAA,IAAA,CAAA,CAAA;AAAA,OAChD;AAAA,MACA,aAAa,MAAM;;AAClB,QAAA,CAAA,EAAA,GAAA,WAAA,CAAY,UAAZ,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAA,EAAA,CAAA;AAAA,OACpB;AAAA,MACA,QAAQ,MAAM;;AACb,QAAA,CAAA,EAAA,GAAA,WAAA,CAAY,UAAZ,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,EAAA,CAAA;AAAA,OACpB;AAAA,MACA,KAAA,EAAO,CAAC,KAAkB,KAAA;;AACzB,QAAY,CAAA,EAAA,GAAA,WAAA,CAAA,KAAA,KAAZ,mBAAmB,KAAM,CAAA,KAAA,CAAA,CAAA;AAAA,OAC1B;AAAA,MACA,MAAA,EAAQ,CAAC,KAAA,EAAe,OAAoB,KAAA;;AAC3C,QAAY,CAAA,EAAA,GAAA,WAAA,CAAA,KAAA,KAAZ,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,CAAO,KAAO,EAAA,OAAA,CAAA,CAAA;AAAA,OAClC;AAAA,MACA,UAAA,EAAY,CAAC,KAAkB,KAAA;;AAC9B,QAAY,CAAA,EAAA,GAAA,WAAA,CAAA,KAAA,KAAZ,mBAAmB,UAAW,CAAA,KAAA,CAAA,CAAA;AAAA,OAC/B;AAAA,MACA,WAAW,MAAM;;AAChB,QAAA,CAAA,EAAA,GAAA,WAAA,CAAY,UAAZ,IAAmB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAA,EAAA,CAAA;AAAA,OACpB;AAAA,MACA,QAAA;AAAA,KACA,CAAA,CAAA;;;;;;UAzZAE,uBAAyC,oCAAA,CAAA;AAAA,UACzCC,gBAsDWC,oBAAA,EAAA;AAAA,mBAtDG,EAAA,aAAA;AAAA,YAAJ,GAAI,EAAA,WAAA;AAAA,YAAe,KAAA,oBAAO,CAAA,YAAA,CAAY,KAAA,CAAA;AAAA,YAAG,KAAA,oBAAO,CAAA,YAAA,CAAY,KAAA,CAAA;AAAA;YAE1D,OACVC,WAAA,CAAA,CAAiD,EAD9B,IAAA,EAAM,OAAK,KAAA;AAAA,cAC9BC,cAAA,CAAiD,IAAA,CAAA,MAAA,EAAA,OAAA,EAAA;AAAA,gBAA7B,IAAA;AAAA,gBAAa,KAAA;AAAA;;YAEvB,KACVD,WAAA,CAAA,CAA+C,EAD9B,IAAA,EAAM,OAAK,KAAA;AAAA,cAC5BC,cAAA,CAA+C,IAAA,CAAA,MAAA,EAAA,KAAA,EAAA;AAAA,gBAA7B,IAAA;AAAA,gBAAa,KAAA;AAAA;;YAErB,QAAA,cACV,MAAwB;AAAA,cAAxBA,cAAA,CAAwB,IAAA,CAAA,MAAA,EAAA,UAAA,CAAA;AAAA;YAEd,UAAA,cACV,MAA0B;AAAA,cAA1BA,cAAA,CAA0B,IAAA,CAAA,MAAA,EAAA,YAAA,CAAA;AAAA;YAEhB,OAAA,cACV,MAAuB;AAAA,cAAvBA,cAAA,CAAuB,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;YAGb,IAAA,cACV,MAAoB;AAAA,cAApBA,cAAA,CAAoB,IAAA,CAAA,MAAA,EAAA,MAAA,CAAA;AAAA;YAGV,GAAA,cACV,MAAmB;AAAA,cAAnBA,cAAA,CAAmB,IAAA,CAAA,MAAA,EAAA,KAAA,CAAA;AAAA;YAET,QAAA,cACV,MAAwB;AAAA,cAAxBA,cAAA,CAAwB,IAAA,CAAA,MAAA,EAAA,UAAA,CAAA;AAAA;YAGd,QACVD,WAAA,CAAA,CAAkD,EAD9B,IAAA,EAAM,OAAK,KAAA;AAAA,cAC/BC,cAAA,CAAkD,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA;AAAA,gBAA7B,IAAA;AAAA,gBAAa,KAAA;AAAA;;YAGxB,IACVD,WAAA,CAAA,CAA8C,EAD9B,IAAA,EAAM,OAAK,KAAA;AAAA,cAC3BC,cAAA,CAA8C,IAAA,CAAA,MAAA,EAAA,IAAA,EAAA;AAAA,gBAA7B,IAAA;AAAA,gBAAa,KAAA;AAAA;;YAEpB,OAAA,cACV,MAAuB;AAAA,cAAvBA,cAAA,CAAuB,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;YAEb,MAAA,cACV,MAAsB;AAAA,cAAtBA,cAAA,CAAsB,IAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AAAA;YAEZ,eAAA,cACV,MAAoC;AAAA,cAApCA,cAAA,CAAoC,IAAA,CAAA,MAAA,EAAA,iBAAA,CAAA;AAAA;YAE1B,cAAA,cACV,MAAmC;AAAA,cAAnCA,cAAA,CAAmC,IAAA,CAAA,MAAA,EAAA,gBAAA,CAAA;AAAA;YAEzB,WACVD,WAAA,CAAA,CAAqD,EAD9B,IAAA,EAAM,OAAK,KAAA;AAAA,cAClCC,cAAA,CAAqD,IAAA,CAAA,MAAA,EAAA,WAAA,EAAA;AAAA,gBAA7B,IAAA;AAAA,gBAAa,KAAA;AAAA;;YAE3B,SACVD,WAAA,CAAA,CAAmD,EAD9B,IAAA,EAAM,OAAK,KAAA;AAAA,cAChCC,cAAA,CAAmD,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA;AAAA,gBAA7B,IAAA;AAAA,gBAAa,KAAA;AAAA;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@touchvue/chat",
3
- "version": "1.0.0-beta.52",
3
+ "version": "1.0.0-beta.53",
4
4
  "description": "TouchVue Chat Component Library",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -1981,7 +1981,7 @@ table.touchchat-table tr:hover {
1981
1981
  top: 0;
1982
1982
  right: 0;
1983
1983
  }
1984
- .file-view {
1984
+ .touchchat-file {
1985
1985
  margin: 0.5em 0;
1986
1986
  display: flex;
1987
1987
  width: 15em;
@@ -1994,37 +1994,103 @@ table.touchchat-table tr:hover {
1994
1994
  cursor: pointer;
1995
1995
  transition: all 0.2s ease;
1996
1996
  }
1997
- .file-view:hover {
1997
+ .touchchat-file:hover {
1998
1998
  border-color: #0077ff;
1999
1999
  background-color: #f0f7ff;
2000
2000
  }
2001
- .file-icon {
2002
- width: 1.5em;
2003
- height: 1.5em;
2001
+ .touchchat-file-icon {
2002
+ width: 2.5em;
2003
+ height: 2.5em;
2004
2004
  flex-shrink: 0;
2005
+ background-size: 100% 100%;
2006
+ }
2007
+ .touchchat-file-icon.type-doc {
2008
+ background-image: url(./aiChat/img/file/doc.png);
2009
+ }
2010
+ .touchchat-file-icon.type-jpg {
2011
+ background-image: url(./aiChat/img/file/jpg.png);
2012
+ }
2013
+ .touchchat-file-icon.type-pdf {
2014
+ background-image: url(./aiChat/img/file/pdf.png);
2015
+ }
2016
+ .touchchat-file-icon.type-txt {
2017
+ background-image: url(./aiChat/img/file/txt.png);
2018
+ }
2019
+ .touchchat-file-icon.type-docx {
2020
+ background-image: url(./aiChat/img/file/docx.png);
2021
+ }
2022
+ .touchchat-file-icon.type-mp3 {
2023
+ background-image: url(./aiChat/img/file/mp3.png);
2024
+ }
2025
+ .touchchat-file-icon.type-png {
2026
+ background-image: url(./aiChat/img/file/png.png);
2027
+ }
2028
+ .touchchat-file-icon.type-gif {
2029
+ background-image: url(./aiChat/img/file/gif.png);
2030
+ }
2031
+ .touchchat-file-icon.type-mp4 {
2032
+ background-image: url(./aiChat/img/file/mp4.png);
2033
+ }
2034
+ .touchchat-file-icon.type-ppt {
2035
+ background-image: url(./aiChat/img/file/ppt.png);
2036
+ }
2037
+ .touchchat-file-icon.type-xls {
2038
+ background-image: url(./aiChat/img/file/xls.png);
2005
2039
  }
2006
- .file-info {
2040
+ .touchchat-file-icon.type-html {
2041
+ background-image: url(./aiChat/img/file/html.png);
2042
+ }
2043
+ .touchchat-file-icon.type-pptx {
2044
+ background-image: url(./aiChat/img/file/pptx.png);
2045
+ }
2046
+ .touchchat-file-icon.type-xlsx {
2047
+ background-image: url(./aiChat/img/file/xlsx.png);
2048
+ }
2049
+ .touchchat-file-icon.type-unknown {
2050
+ background-image: url(./aiChat/img/file/unknown.png);
2051
+ }
2052
+ .touchchat-file-info {
2007
2053
  flex: 1;
2008
2054
  min-width: 0;
2009
2055
  }
2010
- .file-name {
2056
+ .touchchat-file-name {
2011
2057
  font-size: 0.875em;
2012
2058
  color: #1d2129;
2013
2059
  white-space: nowrap;
2014
2060
  overflow: hidden;
2015
2061
  text-overflow: ellipsis;
2016
2062
  }
2017
- .file-size {
2063
+ .touchchat-file-size {
2018
2064
  font-size: 0.75em;
2019
2065
  color: #86909c;
2020
2066
  }
2021
- .file-action {
2067
+ .touchchat-file-action {
2022
2068
  color: #4e5969;
2023
2069
  transition: color 0.2s ease;
2024
2070
  }
2025
- .file-view:hover .file-action {
2071
+ .touchchat-file-view:hover .touchchat-file-action {
2026
2072
  color: #0077ff;
2027
2073
  }
2074
+ .touchchat-file-download-icon {
2075
+ width: 2em;
2076
+ height: 2em;
2077
+ align-items: center;
2078
+ border-radius: 50%;
2079
+ display: inline-flex;
2080
+ justify-content: center;
2081
+ color: #000;
2082
+ font-family: 'touchchat-icon';
2083
+ }
2084
+ .touchchat-file-download-icon:before {
2085
+ content: '\e66c';
2086
+ font-size: 0.8em;
2087
+ }
2088
+ .touchchat-file-download-icon:hover {
2089
+ background: rgba(0, 0, 0, 0.1);
2090
+ }
2091
+ .touchchat-file-download-icon:active {
2092
+ background: rgba(0, 0, 0, 0.3);
2093
+ }
2028
2094
  .hello-chat {
2029
2095
  display: flex;
2030
2096
  flex-direction: column;
Binary file
Binary file
package/theme/index.css CHANGED
@@ -1984,7 +1984,7 @@ table.touchchat-table tr:hover {
1984
1984
  top: 0;
1985
1985
  right: 0;
1986
1986
  }
1987
- .file-view {
1987
+ .touchchat-file {
1988
1988
  margin: 0.5em 0;
1989
1989
  display: flex;
1990
1990
  width: 15em;
@@ -1997,37 +1997,103 @@ table.touchchat-table tr:hover {
1997
1997
  cursor: pointer;
1998
1998
  transition: all 0.2s ease;
1999
1999
  }
2000
- .file-view:hover {
2000
+ .touchchat-file:hover {
2001
2001
  border-color: #0077ff;
2002
2002
  background-color: #f0f7ff;
2003
2003
  }
2004
- .file-icon {
2005
- width: 1.5em;
2006
- height: 1.5em;
2004
+ .touchchat-file-icon {
2005
+ width: 2.5em;
2006
+ height: 2.5em;
2007
2007
  flex-shrink: 0;
2008
+ background-size: 100% 100%;
2009
+ }
2010
+ .touchchat-file-icon.type-doc {
2011
+ background-image: url(./components/aiChat/img/file/doc.png);
2012
+ }
2013
+ .touchchat-file-icon.type-jpg {
2014
+ background-image: url(./components/aiChat/img/file/jpg.png);
2015
+ }
2016
+ .touchchat-file-icon.type-pdf {
2017
+ background-image: url(./components/aiChat/img/file/pdf.png);
2018
+ }
2019
+ .touchchat-file-icon.type-txt {
2020
+ background-image: url(./components/aiChat/img/file/txt.png);
2021
+ }
2022
+ .touchchat-file-icon.type-docx {
2023
+ background-image: url(./components/aiChat/img/file/docx.png);
2024
+ }
2025
+ .touchchat-file-icon.type-mp3 {
2026
+ background-image: url(./components/aiChat/img/file/mp3.png);
2027
+ }
2028
+ .touchchat-file-icon.type-png {
2029
+ background-image: url(./components/aiChat/img/file/png.png);
2030
+ }
2031
+ .touchchat-file-icon.type-gif {
2032
+ background-image: url(./components/aiChat/img/file/gif.png);
2033
+ }
2034
+ .touchchat-file-icon.type-mp4 {
2035
+ background-image: url(./components/aiChat/img/file/mp4.png);
2036
+ }
2037
+ .touchchat-file-icon.type-ppt {
2038
+ background-image: url(./components/aiChat/img/file/ppt.png);
2039
+ }
2040
+ .touchchat-file-icon.type-xls {
2041
+ background-image: url(./components/aiChat/img/file/xls.png);
2008
2042
  }
2009
- .file-info {
2043
+ .touchchat-file-icon.type-html {
2044
+ background-image: url(./components/aiChat/img/file/html.png);
2045
+ }
2046
+ .touchchat-file-icon.type-pptx {
2047
+ background-image: url(./components/aiChat/img/file/pptx.png);
2048
+ }
2049
+ .touchchat-file-icon.type-xlsx {
2050
+ background-image: url(./components/aiChat/img/file/xlsx.png);
2051
+ }
2052
+ .touchchat-file-icon.type-unknown {
2053
+ background-image: url(./components/aiChat/img/file/unknown.png);
2054
+ }
2055
+ .touchchat-file-info {
2010
2056
  flex: 1;
2011
2057
  min-width: 0;
2012
2058
  }
2013
- .file-name {
2059
+ .touchchat-file-name {
2014
2060
  font-size: 0.875em;
2015
2061
  color: #1d2129;
2016
2062
  white-space: nowrap;
2017
2063
  overflow: hidden;
2018
2064
  text-overflow: ellipsis;
2019
2065
  }
2020
- .file-size {
2066
+ .touchchat-file-size {
2021
2067
  font-size: 0.75em;
2022
2068
  color: #86909c;
2023
2069
  }
2024
- .file-action {
2070
+ .touchchat-file-action {
2025
2071
  color: #4e5969;
2026
2072
  transition: color 0.2s ease;
2027
2073
  }
2028
- .file-view:hover .file-action {
2074
+ .touchchat-file-view:hover .touchchat-file-action {
2029
2075
  color: #0077ff;
2030
2076
  }
2077
+ .touchchat-file-download-icon {
2078
+ width: 2em;
2079
+ height: 2em;
2080
+ align-items: center;
2081
+ border-radius: 50%;
2082
+ display: inline-flex;
2083
+ justify-content: center;
2084
+ color: #000;
2085
+ font-family: 'touchchat-icon';
2086
+ }
2087
+ .touchchat-file-download-icon:before {
2088
+ content: '\e66c';
2089
+ font-size: 0.8em;
2090
+ }
2091
+ .touchchat-file-download-icon:hover {
2092
+ background: rgba(0, 0, 0, 0.1);
2093
+ }
2094
+ .touchchat-file-download-icon:active {
2095
+ background: rgba(0, 0, 0, 0.3);
2096
+ }
2031
2097
  .hello-chat {
2032
2098
  display: flex;
2033
2099
  flex-direction: column;
@@ -1984,7 +1984,7 @@ table.touchchat-table tr:hover {
1984
1984
  top: 0;
1985
1985
  right: 0;
1986
1986
  }
1987
- .file-view {
1987
+ .touchchat-file {
1988
1988
  margin: 0.5em 0;
1989
1989
  display: flex;
1990
1990
  width: 15em;
@@ -1997,37 +1997,103 @@ table.touchchat-table tr:hover {
1997
1997
  cursor: pointer;
1998
1998
  transition: all 0.2s ease;
1999
1999
  }
2000
- .file-view:hover {
2000
+ .touchchat-file:hover {
2001
2001
  border-color: #0077ff;
2002
2002
  background-color: #f0f7ff;
2003
2003
  }
2004
- .file-icon {
2005
- width: 1.5em;
2006
- height: 1.5em;
2004
+ .touchchat-file-icon {
2005
+ width: 2.5em;
2006
+ height: 2.5em;
2007
2007
  flex-shrink: 0;
2008
+ background-size: 100% 100%;
2009
+ }
2010
+ .touchchat-file-icon.type-doc {
2011
+ background-image: url(../components/aiChat/img/file/doc.png);
2012
+ }
2013
+ .touchchat-file-icon.type-jpg {
2014
+ background-image: url(../components/aiChat/img/file/jpg.png);
2015
+ }
2016
+ .touchchat-file-icon.type-pdf {
2017
+ background-image: url(../components/aiChat/img/file/pdf.png);
2018
+ }
2019
+ .touchchat-file-icon.type-txt {
2020
+ background-image: url(../components/aiChat/img/file/txt.png);
2021
+ }
2022
+ .touchchat-file-icon.type-docx {
2023
+ background-image: url(../components/aiChat/img/file/docx.png);
2024
+ }
2025
+ .touchchat-file-icon.type-mp3 {
2026
+ background-image: url(../components/aiChat/img/file/mp3.png);
2027
+ }
2028
+ .touchchat-file-icon.type-png {
2029
+ background-image: url(../components/aiChat/img/file/png.png);
2030
+ }
2031
+ .touchchat-file-icon.type-gif {
2032
+ background-image: url(../components/aiChat/img/file/gif.png);
2033
+ }
2034
+ .touchchat-file-icon.type-mp4 {
2035
+ background-image: url(../components/aiChat/img/file/mp4.png);
2036
+ }
2037
+ .touchchat-file-icon.type-ppt {
2038
+ background-image: url(../components/aiChat/img/file/ppt.png);
2039
+ }
2040
+ .touchchat-file-icon.type-xls {
2041
+ background-image: url(../components/aiChat/img/file/xls.png);
2008
2042
  }
2009
- .file-info {
2043
+ .touchchat-file-icon.type-html {
2044
+ background-image: url(../components/aiChat/img/file/html.png);
2045
+ }
2046
+ .touchchat-file-icon.type-pptx {
2047
+ background-image: url(../components/aiChat/img/file/pptx.png);
2048
+ }
2049
+ .touchchat-file-icon.type-xlsx {
2050
+ background-image: url(../components/aiChat/img/file/xlsx.png);
2051
+ }
2052
+ .touchchat-file-icon.type-unknown {
2053
+ background-image: url(../components/aiChat/img/file/unknown.png);
2054
+ }
2055
+ .touchchat-file-info {
2010
2056
  flex: 1;
2011
2057
  min-width: 0;
2012
2058
  }
2013
- .file-name {
2059
+ .touchchat-file-name {
2014
2060
  font-size: 0.875em;
2015
2061
  color: #1d2129;
2016
2062
  white-space: nowrap;
2017
2063
  overflow: hidden;
2018
2064
  text-overflow: ellipsis;
2019
2065
  }
2020
- .file-size {
2066
+ .touchchat-file-size {
2021
2067
  font-size: 0.75em;
2022
2068
  color: #86909c;
2023
2069
  }
2024
- .file-action {
2070
+ .touchchat-file-action {
2025
2071
  color: #4e5969;
2026
2072
  transition: color 0.2s ease;
2027
2073
  }
2028
- .file-view:hover .file-action {
2074
+ .touchchat-file-view:hover .touchchat-file-action {
2029
2075
  color: #0077ff;
2030
2076
  }
2077
+ .touchchat-file-download-icon {
2078
+ width: 2em;
2079
+ height: 2em;
2080
+ align-items: center;
2081
+ border-radius: 50%;
2082
+ display: inline-flex;
2083
+ justify-content: center;
2084
+ color: #000;
2085
+ font-family: 'touchchat-icon';
2086
+ }
2087
+ .touchchat-file-download-icon:before {
2088
+ content: '\e66c';
2089
+ font-size: 0.8em;
2090
+ }
2091
+ .touchchat-file-download-icon:hover {
2092
+ background: rgba(0, 0, 0, 0.1);
2093
+ }
2094
+ .touchchat-file-download-icon:active {
2095
+ background: rgba(0, 0, 0, 0.3);
2096
+ }
2031
2097
  .hello-chat {
2032
2098
  display: flex;
2033
2099
  flex-direction: column;
@@ -1,4 +0,0 @@
1
- var _imports_0 = "data:image/png;base64,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";
2
-
3
- export { _imports_0 as default };
4
- //# sourceMappingURL=file.png.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.png.mjs","sources":["../../../../../../packages/components/touchchat/img/file.png"],"sourcesContent":["export default \"data:image/png;base64,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\""],"names":[],"mappings":"AAAA,iBAAe;;;;"}
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _imports_0 = "data:image/png;base64,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";
6
-
7
- exports.default = _imports_0;
8
- //# sourceMappingURL=file.png.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.png.js","sources":["../../../../../../packages/components/touchchat/img/file.png"],"sourcesContent":["export default \"data:image/png;base64,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\""],"names":[],"mappings":";;;;AAAA,iBAAe;;;;"}