{"version":3,"file":"chat-ai.mjs","sources":["../../src/chat/chat-ai.tsx"],"sourcesContent":["import { defineComponent, PropType } from 'vue';\nimport props from './props';\nimport { MetaData, TdChatItemProps } from './type';\nimport Chat from './chat';\nimport ChatItem from './chat-item';\nimport ChatInput from './chat-input';\nimport ChatAction from './chat-action';\nimport { useChat } from './useChat';\n\nexport default defineComponent({\n  name: 'TChatAi',\n  components: {\n    Chat,\n    ChatItem,\n    ChatInput,\n    ChatAction,\n  },\n  props: {\n    apiKey: {\n      type: String,\n    },\n    welcome: {\n      type: Array,\n      default: (): String[] => [],\n    },\n    userMeta: {\n      type: Object as PropType<MetaData>,\n      default() {\n        return {};\n      },\n    },\n    assistantMeta: {\n      type: Object as PropType<MetaData>,\n      default() {\n        return {};\n      },\n    },\n    footer: {\n      type: Boolean,\n      default: true,\n    },\n    showUserMsg: {\n      type: Boolean,\n      default: true,\n    },\n    operationBtn: props.operationBtn,\n    layout: props.layout,\n    chatRequest: {\n      type: Function,\n    },\n    model: {\n      type: String,\n      default: '',\n    },\n    onOperation: props.onOperation,\n  },\n  emits: ['operation', 'clear'],\n  setup(props, { emit }) {\n    const { chatList, loading, onStop, operation, clearConfirm, isStreamLoad, sendRequest } = useChat(props, emit);\n    const handleSend = (inputValue: string) => {\n      sendRequest('hunyuan', inputValue, props.model);\n    };\n    return () => (\n      <Chat\n        layout={props.layout}\n        clearHistory={chatList.value.length > 0 && !isStreamLoad.value}\n        onClear={clearConfirm}\n        v-slots={{\n          footer: () => <ChatInput stopDisabled={isStreamLoad.value} onSend={handleSend} onStop={onStop} />,\n        }}\n      >\n        {chatList.value.map((item: TdChatItemProps, index: number) => (\n          <ChatItem\n            key={index}\n            avatar={item.avatar}\n            role={item.role}\n            datetime={item.datetime}\n            content={item.content}\n            text-loading={index === 0 && loading.value}\n            v-slots={{\n              actions: () => (\n                <ChatAction\n                  operationBtn={props.operationBtn}\n                  content={item.content}\n                  onOperation={(type, { e }) => operation(type, { e, index })}\n                />\n              ),\n            }}\n          ></ChatItem>\n        ))}\n      </Chat>\n    );\n  },\n});\n"],"names":["defineComponent","name","components","Chat","ChatItem","ChatInput","ChatAction","props","apiKey","type","String","welcome","Array","default","userMeta","Object","assistantMeta","footer","Boolean","showUserMsg","operationBtn","layout","chatRequest","Function","model","onOperation","emits","setup","emit","_ref","_useChat","useChat","chatList","loading","onStop","operation","clearConfirm","isStreamLoad","sendRequest","handleSend","inputValue","_createVNode","value","length","map","item","index","avatar","role","datetime","content","actions","_ref2","e"],"mappings":"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"}