@ai-group/chat-sdk 2.1.14 → 3.0.1-alpha.3
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.
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js +564 -10
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.js +92 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.js +137 -0
- package/dist/cjs/components/XAdkChatbot/components/FileGallery/styles.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/index.d.ts +10 -0
- package/dist/cjs/components/XAdkChatbot/index.js +292 -123
- package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAdkChatbot/styles.d.ts +10 -0
- package/dist/cjs/components/XAdkChatbot/styles.js +67 -3
- package/dist/cjs/components/XAdkChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js +394 -0
- package/dist/cjs/components/XAdkProvider/XAdkProvider.stories.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
- package/dist/cjs/components/XAdkProvider/compound/Chatbot.js +64 -0
- package/dist/cjs/components/XAdkProvider/compound/Chatbot.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +199 -0
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js +117 -0
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
- package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js +64 -0
- package/dist/cjs/components/XAdkProvider/compound/FeedbackTags.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Header.d.ts +25 -0
- package/dist/cjs/components/XAdkProvider/compound/Header.js +70 -0
- package/dist/cjs/components/XAdkProvider/compound/Header.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.d.ts +17 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.js +70 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +27 -0
- package/dist/cjs/components/XAdkProvider/compound/Sender.js +55 -0
- package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js +151 -0
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/Welcome.d.ts +6 -0
- package/dist/cjs/components/XAdkProvider/compound/Welcome.js +60 -0
- package/dist/cjs/components/XAdkProvider/compound/Welcome.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/index.d.ts +17 -0
- package/dist/cjs/components/XAdkProvider/compound/index.js +55 -0
- package/dist/cjs/components/XAdkProvider/compound/index.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +36 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js +49 -0
- package/dist/cjs/components/XAdkProvider/compound/styles.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js +40 -0
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js +42 -0
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/SessionContext.d.ts +29 -0
- package/dist/cjs/components/XAdkProvider/context/SessionContext.js +40 -0
- package/dist/cjs/components/XAdkProvider/context/SessionContext.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/context/index.d.ts +7 -0
- package/dist/cjs/components/XAdkProvider/context/index.js +28 -0
- package/dist/cjs/components/XAdkProvider/context/index.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/index.d.ts +55 -0
- package/dist/cjs/components/XAdkProvider/index.js +221 -0
- package/dist/cjs/components/XAdkProvider/index.js.map +7 -0
- package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -1
- package/dist/cjs/components/XAdkProvider/styles.js.map +7 -0
- package/dist/cjs/components/XAdkSender/FileGallery.d.ts +8 -0
- package/dist/cjs/components/XAdkSender/FileGallery.js +381 -0
- package/dist/cjs/components/XAdkSender/FileGallery.js.map +7 -0
- package/dist/cjs/components/XAdkSender/index.js +95 -81
- package/dist/cjs/components/XAdkSender/index.js.map +3 -3
- package/dist/cjs/components/XAdkSender/styles.d.ts +0 -9
- package/dist/cjs/components/XAdkSender/styles.js +21 -150
- package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +2 -2
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +277 -131
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +1 -1
- package/dist/cjs/components/XAiConversations/index.js.map +2 -2
- package/dist/cjs/components/XAiConversations/styles.js +5 -0
- package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +14 -2
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
- package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +2 -2
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +1 -1
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +1 -1
- package/dist/cjs/hooks/useADKChat.d.ts +7 -1
- package/dist/cjs/hooks/useADKChat.js +24 -8
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/index.d.ts +25 -9
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/styles/common.js +1 -1
- package/dist/cjs/styles/common.js.map +2 -2
- package/dist/cjs/types/ChatHook.d.ts +81 -0
- package/dist/cjs/types/ChatHook.js +18 -0
- package/dist/cjs/types/ChatHook.js.map +7 -0
- package/dist/cjs/types/XAdkChatbot.d.ts +80 -15
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/cjs/types/XAdkProvider.d.ts +10 -27
- package/dist/cjs/types/XAdkProvider.js.map +2 -2
- package/dist/cjs/types/XAdkSender.d.ts +18 -0
- package/dist/cjs/types/XAdkSender.js.map +1 -1
- package/dist/cjs/types/XAiConversations.d.ts +4 -2
- package/dist/cjs/types/XAiConversations.js.map +1 -1
- package/dist/cjs/types/XAiThoughtChain.d.ts +1 -1
- package/dist/cjs/types/XAiThoughtChain.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.js +4 -1
- package/dist/cjs/utils/index.js.map +2 -2
- package/dist/cjs/utils/parseAgentMessage.d.ts +81 -0
- package/dist/cjs/utils/parseAgentMessage.js +180 -0
- package/dist/cjs/utils/parseAgentMessage.js.map +7 -0
- package/dist/cjs/utils/umdEntry.d.ts +91 -0
- package/dist/cjs/utils/umdEntry.js +108 -6
- package/dist/cjs/utils/umdEntry.js.map +3 -3
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +9 -2
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +485 -8
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/components/FileGallery/index.d.ts +12 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js +104 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.d.ts +44 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js +20 -0
- package/dist/esm/components/XAdkChatbot/components/FileGallery/styles.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/index.d.ts +10 -0
- package/dist/esm/components/XAdkChatbot/index.js +388 -172
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/styles.d.ts +10 -0
- package/dist/esm/components/XAdkChatbot/styles.js +23 -12
- package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.d.ts +10 -0
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js +338 -0
- package/dist/esm/components/XAdkProvider/XAdkProvider.stories.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Chatbot.d.ts +30 -0
- package/dist/esm/components/XAdkProvider/compound/Chatbot.js +47 -0
- package/dist/esm/components/XAdkProvider/compound/Chatbot.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +26 -0
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +140 -0
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.d.ts +8 -0
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js +122 -0
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/FeedbackTags.d.ts +7 -0
- package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js +34 -0
- package/dist/esm/components/XAdkProvider/compound/FeedbackTags.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Header.d.ts +25 -0
- package/dist/esm/components/XAdkProvider/compound/Header.js +79 -0
- package/dist/esm/components/XAdkProvider/compound/Header.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Messages.d.ts +17 -0
- package/dist/esm/components/XAdkProvider/compound/Messages.js +53 -0
- package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +27 -0
- package/dist/esm/components/XAdkProvider/compound/Sender.js +41 -0
- package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Sidebar.d.ts +24 -0
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js +142 -0
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/Welcome.d.ts +6 -0
- package/dist/esm/components/XAdkProvider/compound/Welcome.js +36 -0
- package/dist/esm/components/XAdkProvider/compound/Welcome.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/index.d.ts +17 -0
- package/dist/esm/components/XAdkProvider/compound/index.js +13 -0
- package/dist/esm/components/XAdkProvider/compound/index.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/styles.d.ts +36 -0
- package/dist/esm/components/XAdkProvider/compound/styles.js +10 -0
- package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.d.ts +30 -0
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.js +23 -0
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +35 -0
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js +23 -0
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/SessionContext.d.ts +29 -0
- package/dist/esm/components/XAdkProvider/context/SessionContext.js +22 -0
- package/dist/esm/components/XAdkProvider/context/SessionContext.js.map +1 -0
- package/dist/esm/components/XAdkProvider/context/index.d.ts +7 -0
- package/dist/esm/components/XAdkProvider/context/index.js +9 -0
- package/dist/esm/components/XAdkProvider/context/index.js.map +1 -0
- package/dist/esm/components/XAdkProvider/index.d.ts +55 -0
- package/dist/esm/components/XAdkProvider/index.js +220 -0
- package/dist/esm/components/XAdkProvider/index.js.map +1 -0
- package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.js +2 -2
- package/dist/esm/components/XAdkProvider/styles.js.map +1 -0
- package/dist/esm/components/XAdkSender/FileGallery.d.ts +8 -0
- package/dist/esm/components/XAdkSender/FileGallery.js +236 -0
- package/dist/esm/components/XAdkSender/FileGallery.js.map +1 -0
- package/dist/esm/components/XAdkSender/index.js +92 -109
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/styles.d.ts +0 -9
- package/dist/esm/components/XAdkSender/styles.js +14 -31
- package/dist/esm/components/XAdkSender/styles.js.map +1 -1
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +2 -2
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +123 -123
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +1 -1
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.js +2 -2
- package/dist/esm/components/XAiConversations/styles.js.map +1 -1
- package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +2 -2
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js +53 -53
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +2 -2
- package/dist/esm/components/XAiSender/XAiSender.stories.js +9 -9
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -1
- package/dist/esm/hooks/useADKChat.d.ts +7 -1
- package/dist/esm/hooks/useADKChat.js +35 -16
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/index.d.ts +25 -9
- package/dist/esm/index.js +28 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/styles/common.js +11 -11
- package/dist/esm/styles/common.js.map +1 -1
- package/dist/esm/types/ChatHook.d.ts +81 -0
- package/dist/esm/types/ChatHook.js +2 -0
- package/dist/esm/types/ChatHook.js.map +1 -0
- package/dist/esm/types/XAdkChatbot.d.ts +80 -15
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +10 -27
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAdkSender.d.ts +18 -0
- package/dist/esm/types/XAdkSender.js.map +1 -1
- package/dist/esm/types/XAiConversations.d.ts +4 -2
- package/dist/esm/types/XAiConversations.js.map +1 -1
- package/dist/esm/types/XAiThoughtChain.d.ts +1 -1
- package/dist/esm/types/XAiThoughtChain.js.map +1 -1
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/parseAgentMessage.d.ts +81 -0
- package/dist/esm/utils/parseAgentMessage.js +286 -0
- package/dist/esm/utils/parseAgentMessage.js.map +1 -0
- package/dist/esm/utils/umdEntry.d.ts +91 -0
- package/dist/esm/utils/umdEntry.js +154 -16
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.css +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +20 -11
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -177
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -7
- package/dist/cjs/components/XAdkWebProvider/index.d.ts +0 -4
- package/dist/cjs/components/XAdkWebProvider/index.js +0 -372
- package/dist/cjs/components/XAdkWebProvider/index.js.map +0 -7
- package/dist/cjs/components/XAdkWebProvider/styles.js.map +0 -7
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +0 -7
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +0 -163
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +0 -1
- package/dist/esm/components/XAdkWebProvider/index.d.ts +0 -4
- package/dist/esm/components/XAdkWebProvider/index.js +0 -480
- package/dist/esm/components/XAdkWebProvider/index.js.map +0 -1
- package/dist/esm/components/XAdkWebProvider/styles.js.map +0 -1
- /package/dist/cjs/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
- /package/dist/esm/components/{XAdkWebProvider → XAdkProvider}/styles.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","Divider","MessageRole","MessageStatus","documentIcon","XAiProvider","XAiChatbot","useProviderContext","useProviderMethods","jsxs","_jsxs","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","navbar","description","messages","mockMessages","id","type","createdAt","Date","status","done","role","assistant","content","text","user","files","parentMessageId","thinks","extra","noFooter","suggestion","key","BasicUsageStory","args","_useState","_useState2","_slicedToArray","setMessages","_useState3","_useState4","loading","setLoading","handleSendMessage","stream","forEach","chunk","idx","setTimeout","prev","updated","_toConsumableArray","targetIndex","targetMsg","_objectSpread","Math","random","toString","slice","pending","length","_updated$targetIndex$","execute","push","icon","name","handleClear","handleActions","index","data","console","log","handleSuggestMessageClick","_item","filter","m","ToolTip","_ref","cost","token","style","display","alignItems","fontSize","color","flex","paddingRight","children","height","width","border","borderRadius","messageTooltip","onClear","onSuggestMessageClick","onSend","onMessagesActionsCallback","enableUpload","uploadRequest","_ref2","file","onProgress","onSuccess","percent","基础用法","render","emptyStateText","在Provider中使用","decorators","Story","url","多个Provider实例","gap","providerId","marginRight","ArchitectureDemoComponent","_ref3","_getProviderValue","_useProviderContext","props","mergeLogic","context","_context$messages","isInProvider","customData","mergedProps","getProviderValue","providerMethods","padding","marginBottom","backgroundColor","margin","onClick","_providerMethods$send","sendMessage","call","disabled","cursor","新架构演示","navbarShow","subtitle","_ref4","info","架构对比演示","_ref5","_ref6"],"sources":["../../../../src/components/XAiChatbot/XAiChatbot.stories.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Divider } from 'antd';\nimport { MessageRole, MessageStatus } from '@/types/XAiMessage';\nimport type { Messages } from '@/types/XAiMessage';\nimport documentIcon from '@/assets/document.svg';\nimport XAiProvider from '../XAiProvider';\nimport XAiChatbot from '.';\nimport { useProviderContext, useProviderMethods } from '@/hooks/useProviderContext';\n\nconst meta: Meta<typeof XAiChatbot> = {\n title: 'AI组件/XAiChatbot 聊天框',\n component: XAiChatbot,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {\n navbar: {\n description: '导航栏配置',\n },\n messages: {\n description: '消息列表',\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// mock 消息数据,严格符合 Messages 类型\nconst mockMessages: Messages[] = [\n {\n id: '1',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: '你好,有什么我能帮助你的吗?',\n },\n },\n {\n id: '2',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: '检索从北京到上海的车票数据给我',\n files: [{\n \"fileName\": \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n \"fileId\": 334,\n \"fileUrl\": \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n \"fileType\": \"image\",\n \"fileSize\": 28118,\n }, {\n \"fileName\": \"4250105220774925bfaeb3ca2a3350fe.pdf\",\n \"fileId\": 334,\n \"fileUrl\": \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n \"fileType\": \"pdf\",\n \"fileSize\": 28118,\n }]\n },\n parentMessageId: '1',\n },\n {\n id: '22',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: '',\n },\n thinks: '',\n // execute: [\n // // 工具库调用(MCP_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-1',\n // name: '已调用MCP智能工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(PLUGIN_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-2',\n // name: '已调用插件工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(SKILL)\n // // {\n // // action: 'INVOKE_AGENT_TOOL_START',\n // // id: 'tool-3',\n // // toolType: 'SKILL',\n // // agentToolName: '技能工具',\n // // args: { param3: 'baz' },\n\n // // },\n // // // 知识库调用(FAQ)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-1',\n // // processStatus: 'START',\n // // args: { question: '什么是FAQ?' },\n // // knowledgeType: 'FAQ',\n // // },\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-3',\n // name: '已调用文档知识库',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'RECALL_KNOWLEDGE_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 知识库调用(DOCUMENT)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-2',\n // // processStatus: 'START',\n // // args: { question: '文档库介绍' },\n // // knowledgeType: 'DOCUMENT',\n // // },\n // // 运行完毕\n // ],\n extra: {\n noFooter: true,\n },\n },\n {\n id: '4',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: '能否生成一段明年的产品计划开发计划文档给我',\n },\n },\n {\n id: '0',\n type: 'TextMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: `\n# 项目开发计划\n\n本文档概述了 2025 年第三季度的产品开发计划,包括目标、里程碑、团队分工和风险预案。\n\n---\n\n## 🎯 核心目标\n\n- 提升用户留存率至 **45%**\n- 完成 Web 端新版上线\n- 建立 AI 推荐模块 MVP\n- 优化数据库访问性能\n\n---\n\n## 📅 关键时间节点\n\n| 里程碑 | 截止日期 | 负责人 | 代理人 | 截止日期 | 负责人 |\n|------------------|--------------|----------|------------------|--------------|----------|\n| 产品需求冻结 | 2025-08-01 | Alice | 产品需求冻结 | 2025-08-01 | Alice |\n| UI 设计定稿 | 2025-08-10 | Bob | 产品需求冻结 | 2025-08-01 | Alice |\n| 开发完成(内测) | 2025-09-15 | Charlie | 产品需求冻结 | 2025-08-01 | Alice |\n| 正式上线 | 2025-09-30 | Diana | 产品需求冻结 | 2025-08-01 | Alice |\n\n---\n\n## 🛠️ 技术方案简述\n\n我们将使用以下技术栈:\n\n- 前端:React + Vite + Zustand\n- 后端:Node.js + PostgreSQL\n- 数据分析:Python + Pandas\n- 部署环境:Kubernetes on AWS\n\n---\n\n## 💡 示例代码片段\n\n以下是一个用于生成唯一 ID 的函数示例:\n\n~~~ts\nimport { nanoid } from 'nanoid'\n\nexport function generateSessionId() {\n return \\`sess-\\${nanoid()}\\`\n}\n~~~\n`,\n },\n extra: {\n noFooter: true,\n },\n },\n {\n id: '11',\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [\n {\n key: '1',\n description: '我要查看 AI 文档',\n },\n {\n key: '2',\n description: '我如何看待 AI',\n },\n {\n key: '3',\n description: '你是谁?',\n },\n ],\n },\n];\n\n// 基础用法\nconst BasicUsageStory = (args: any) => {\n const [messages, setMessages] = useState<Messages[]>(mockMessages);\n const [loading, setLoading] = useState<boolean>(false);\n\n // 模拟随机字符串流式返回\n const handleSendMessage = () => {\n setLoading(true);\n\n // 模拟流式输出(向 mockMessages 第二条消息 content.text 追加)\n const stream = ['我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '我', '正在', '为', '你', '生成', '内容', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '好', '多', '……'];\n\n stream.forEach((chunk, idx) => {\n setTimeout(() => {\n setMessages((prev) => {\n const updated = [...prev];\n const targetIndex = 2; // mockMessages 的第二条(索引 1)\n const targetMsg = updated[targetIndex];\n\n // 确保该消息存在且是 TextMessage\n if (targetMsg && targetMsg.type === 'TextMessage') {\n // content 可能是多种类型,这里做类型守卫\n if ('text' in targetMsg.content) {\n updated[targetIndex] = {\n ...targetMsg,\n content: {\n ...targetMsg.content,\n // 模拟随机字符串流式拼接\n // text: targetMsg.content.text + chunk + Math.random().toString(36).slice(2, 5),\n },\n thinks: targetMsg.thinks + chunk + Math.random().toString(36).slice(2, 5),\n status: MessageStatus.pending,\n };\n }\n }\n\n // 最后一个流块时,标记完成\n if (idx === stream.length - 1) {\n updated[targetIndex].execute?.push(\n {\n id: '5',\n type: 'ActionExecutionMessage',\n extra: {\n icon: documentIcon,\n },\n name: '运行完毕',\n createdAt: new Date(),\n });\n setLoading(false);\n updated[targetIndex] = {\n ...updated[targetIndex],\n status: MessageStatus.done,\n };\n }\n\n return updated;\n });\n }, 200 * (idx + 1)); // 每个片段延迟 600ms 模拟流\n });\n };\n\n useEffect(() => {\n if (messages) {\n handleSendMessage();\n }\n }, []);\n\n // 清空消息\n const handleClear = () => {\n setMessages([]);\n };\n\n // 模拟按钮回调\n const handleActions = (index: number, data: any) => {\n console.log(index, data);\n };\n\n // 模拟快捷短语点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev) => prev.filter((m) => m.id !== id));\n };\n\n // tooltip\n const ToolTip = (data: any) => {\n const { cost, token } = data?.extra || {};\n if (!cost && !token) return null;\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n fontSize: '12px',\n color: '#949494',\n flex: 1,\n paddingRight: '40px',\n }}\n >\n {cost && <div>{cost}s</div>}\n {token && <Divider type=\"vertical\" />}\n {token && <div>{token} tokens</div>}\n </div>\n );\n };\n\n return (\n <div\n style={{\n height: '600px',\n width: '400px',\n border: '1px solid #e7e7e7',\n borderRadius: '8px',\n }}\n >\n <XAiChatbot\n {...args}\n messages={messages}\n loading={loading}\n messageTooltip={ToolTip}\n onClear={handleClear}\n onSuggestMessageClick={handleSuggestMessageClick}\n onSend={handleSendMessage}\n onMessagesActionsCallback={handleActions}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({\n \"fileName\": \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n \"fileId\": 334,\n \"fileUrl\": \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n \"fileType\": \"image\",\n \"fileSize\": 28118,\n \"mimeType\": \"image/jpeg\",\n \"tempUrl\": \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n \"type\": \"image\"\n });\n }, 1000);\n }}\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {\n navbar: {\n title: '智能助手',\n },\n // messages: mockMessages,\n emptyStateText: '众安智能体',\n },\n};\n\n// 在 Provider 中使用\nexport const 在Provider中使用: Story = {\n decorators: [\n (Story) => (\n <XAiProvider token=\"test-token\" url=\"https://api.example.com\">\n <Story />\n </XAiProvider>\n ),\n ],\n args: {\n navbar: {\n title: '智能助手',\n },\n },\n};\n\n// 多个 Provider 实例\nexport const 多个Provider实例: Story = {\n decorators: [\n (Story) => (\n <div style={{ display: 'flex', gap: '50px', height: '600px' }}>\n <XAiProvider providerId=\"chat1\" token=\"token1\" url=\"https://api1.example.com\">\n <div style={{ width: '300px', marginRight: '40px' }}>\n <Story />\n </div>\n </XAiProvider>\n <XAiProvider providerId=\"chat2\" token=\"token2\" url=\"https://api2.example.com\">\n <div style={{ width: '300px' }}>\n <Story />\n </div>\n </XAiProvider>\n </div>\n ),\n ],\n args: {\n navbar: {\n title: '智能助手',\n },\n },\n};\n\n// 展示新架构的示例组件\nconst ArchitectureDemoComponent: React.FC<{ title: string }> = ({ title }) => {\n const { mergedProps, isInProvider, getProviderValue } = useProviderContext({\n props: { title },\n mergeLogic: (props, context) => {\n if (!context?.isInProvider) {\n return props;\n }\n\n return {\n ...props,\n messages: context.messages,\n loading: context.loading,\n customData: context.messages?.length || 0,\n };\n },\n });\n\n const providerMethods = useProviderMethods();\n\n return (\n <div style={{\n padding: '15px',\n border: '1px solid #e7e7e7',\n borderRadius: '8px',\n marginBottom: '10px',\n backgroundColor: '#fafafa',\n }}\n >\n <h4 style={{ margin: '0 0 10px 0' }}>{mergedProps.title}</h4>\n <div style={{ fontSize: '12px', color: '#666' }}>\n <p>Provider 状态: {isInProvider ? '✅ 已连接' : '❌ 未连接'}</p>\n <p>消息数量: {getProviderValue('messages')?.length || 0}</p>\n <p>加载状态: {getProviderValue('loading') ? '🔄 加载中' : '✅ 就绪'}</p>\n <button\n onClick={() => providerMethods.sendMessage?.({ text: '来自架构演示组件的消息' })}\n disabled={!isInProvider}\n style={{\n fontSize: '12px',\n padding: '4px 8px',\n backgroundColor: isInProvider ? '#1890ff' : '#d9d9d9',\n color: 'white',\n border: 'none',\n borderRadius: '4px',\n cursor: isInProvider ? 'pointer' : 'not-allowed',\n }}\n >\n {isInProvider ? '发送消息' : '需要 Provider'}\n </button>\n </div>\n </div>\n );\n};\n\n// 展示新架构的示例\nexport const 新架构演示: Story = {\n render: (args) => (\n <div style={{ width: '500px', height: '700px' }}>\n <XAiProvider token=\"demo-token\" url=\"https://api.example.com\" providerId=\"architecture-demo\">\n <div style={{ padding: '20px' }}>\n <h3 style={{ marginBottom: '20px' }}>新架构演示</h3>\n <p style={{ marginBottom: '20px', color: '#666' }}>\n 展示如何使用 useProviderContext 和 useProviderMethods Hook\n </p>\n\n {/* 演示组件 */}\n <div style={{ marginBottom: '20px' }}>\n <ArchitectureDemoComponent title=\"演示组件 A\" />\n <ArchitectureDemoComponent title=\"演示组件 B\" />\n <ArchitectureDemoComponent title=\"演示组件 C\" />\n </div>\n\n {/* 聊天机器人 */}\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: '架构演示聊天机器人',\n subtitle: '展示新 Hook 的使用',\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n ),\n args: {\n navbar: {\n title: '智能助手',\n },\n },\n};\n\n// 对比示例:独立使用 vs Provider 模式\nexport const 架构对比演示: Story = {\n render: (args) => (\n <div style={{ display: 'flex', gap: '20px', padding: '20px' }}>\n {/* 独立使用 */}\n <div style={{ width: '300px' }}>\n <h4>独立使用模式</h4>\n <div style={{ border: '1px solid #e7e7e7', borderRadius: '8px', padding: '15px' }}>\n <ArchitectureDemoComponent title=\"独立组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: '独立聊天机器人',\n subtitle: '不依赖 Provider',\n }}\n onSend={(content) => {\n console.log('独立模式发送:', content);\n }}\n onClear={() => {\n console.log('独立模式清空');\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </div>\n\n {/* Provider 模式 */}\n <div style={{ width: '300px' }}>\n <h4>Provider 模式</h4>\n <XAiProvider token=\"demo-token\" url=\"https://api.example.com\" providerId=\"comparison-demo\">\n <div style={{ border: '1px solid #e7e7e7', borderRadius: '8px', padding: '15px' }}>\n <ArchitectureDemoComponent title=\"Provider 组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理',\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n navbar: {\n title: '智能助手',\n },\n },\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","Divider","MessageRole","MessageStatus","documentIcon","XAiProvider","XAiChatbot","useProviderContext","useProviderMethods","jsxs","_jsxs","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","navbar","description","messages","mockMessages","id","type","createdAt","Date","status","done","role","assistant","content","text","user","files","fileName","fileId","fileUrl","fileType","fileSize","parentMessageId","thinks","extra","noFooter","suggestion","key","BasicUsageStory","args","_useState","_useState2","_slicedToArray","setMessages","_useState3","_useState4","loading","setLoading","handleSendMessage","stream","forEach","chunk","idx","setTimeout","prev","updated","_toConsumableArray","targetIndex","targetMsg","_objectSpread","Math","random","toString","slice","pending","length","_updated$targetIndex$","execute","push","icon","name","handleClear","handleActions","index","data","console","log","handleSuggestMessageClick","_item","filter","m","ToolTip","_ref","cost","token","style","display","alignItems","fontSize","color","flex","paddingRight","children","height","width","border","borderRadius","messageTooltip","onClear","onSuggestMessageClick","onSend","onMessagesActionsCallback","enableUpload","uploadRequest","_ref2","file","onProgress","onSuccess","percent","mimeType","tempUrl","基础用法","render","emptyStateText","在Provider中使用","decorators","Story","url","多个Provider实例","gap","providerId","marginRight","ArchitectureDemoComponent","_ref3","_getProviderValue","_useProviderContext","props","mergeLogic","context","_context$messages","isInProvider","customData","mergedProps","getProviderValue","providerMethods","padding","marginBottom","backgroundColor","margin","onClick","_providerMethods$send","sendMessage","call","disabled","cursor","新架构演示","navbarShow","subtitle","_ref4","info","架构对比演示","_ref5","_ref6"],"sources":["../../../../src/components/XAiChatbot/XAiChatbot.stories.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { Divider } from \"antd\";\nimport { MessageRole, MessageStatus } from \"@/types/XAiMessage\";\nimport type { Messages } from \"@/types/XAiMessage\";\nimport documentIcon from \"@/assets/document.svg\";\nimport XAiProvider from \"../XAiProvider\";\nimport XAiChatbot from \".\";\nimport {\n useProviderContext,\n useProviderMethods,\n} from \"@/hooks/useProviderContext\";\n\nconst meta: Meta<typeof XAiChatbot> = {\n title: \"AI组件/XAiChatbot 聊天框【下线】\",\n component: XAiChatbot,\n parameters: {\n layout: \"centered\",\n },\n tags: [\"autodocs\"],\n argTypes: {\n navbar: {\n description: \"导航栏配置\",\n },\n messages: {\n description: \"消息列表\",\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// mock 消息数据,严格符合 Messages 类型\nconst mockMessages: Messages[] = [\n {\n id: \"1\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: \"你好,有什么我能帮助你的吗?\",\n },\n },\n {\n id: \"2\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: \"检索从北京到上海的车票数据给我\",\n files: [\n {\n fileName: \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n fileId: 334,\n fileUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n fileType: \"image\",\n fileSize: 28118,\n },\n {\n fileName: \"4250105220774925bfaeb3ca2a3350fe.pdf\",\n fileId: 334,\n fileUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n fileType: \"pdf\",\n fileSize: 28118,\n },\n ],\n },\n parentMessageId: \"1\",\n },\n {\n id: \"22\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: \"\",\n },\n thinks: \"\",\n // execute: [\n // // 工具库调用(MCP_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-1',\n // name: '已调用MCP智能工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(PLUGIN_TOOL)\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-2',\n // name: '已调用插件工具',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'INVOKE_AGENT_TOOL_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 工具库调用(SKILL)\n // // {\n // // action: 'INVOKE_AGENT_TOOL_START',\n // // id: 'tool-3',\n // // toolType: 'SKILL',\n // // agentToolName: '技能工具',\n // // args: { param3: 'baz' },\n\n // // },\n // // // 知识库调用(FAQ)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-1',\n // // processStatus: 'START',\n // // args: { question: '什么是FAQ?' },\n // // knowledgeType: 'FAQ',\n // // },\n // {\n // type: 'ActionExecutionMessage',\n // createdAt: new Date(),\n // id: 'tool-3',\n // name: '已调用文档知识库',\n // arguments: { param1: 'foo' },\n // extra: {\n // action: 'RECALL_KNOWLEDGE_START',\n // icon: documentIcon,\n // type: 'MCP_TOOL',\n // cost: '3.9',\n // },\n // },\n // // // 知识库调用(DOCUMENT)\n // // {\n // // action: 'RECALL_KNOWLEDGE_START',\n // // uniqueId: 'kb-2',\n // // processStatus: 'START',\n // // args: { question: '文档库介绍' },\n // // knowledgeType: 'DOCUMENT',\n // // },\n // // 运行完毕\n // ],\n extra: {\n noFooter: true,\n },\n },\n {\n id: \"4\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.user,\n content: {\n text: \"能否生成一段明年的产品计划开发计划文档给我\",\n },\n },\n {\n id: \"0\",\n type: \"TextMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.assistant,\n content: {\n text: `\n# 项目开发计划\n\n本文档概述了 2025 年第三季度的产品开发计划,包括目标、里程碑、团队分工和风险预案。\n\n---\n\n## 🎯 核心目标\n\n- 提升用户留存率至 **45%**\n- 完成 Web 端新版上线\n- 建立 AI 推荐模块 MVP\n- 优化数据库访问性能\n\n---\n\n## 📅 关键时间节点\n\n| 里程碑 | 截止日期 | 负责人 | 代理人 | 截止日期 | 负责人 |\n|------------------|--------------|----------|------------------|--------------|----------|\n| 产品需求冻结 | 2025-08-01 | Alice | 产品需求冻结 | 2025-08-01 | Alice |\n| UI 设计定稿 | 2025-08-10 | Bob | 产品需求冻结 | 2025-08-01 | Alice |\n| 开发完成(内测) | 2025-09-15 | Charlie | 产品需求冻结 | 2025-08-01 | Alice |\n| 正式上线 | 2025-09-30 | Diana | 产品需求冻结 | 2025-08-01 | Alice |\n\n---\n\n## 🛠️ 技术方案简述\n\n我们将使用以下技术栈:\n\n- 前端:React + Vite + Zustand\n- 后端:Node.js + PostgreSQL\n- 数据分析:Python + Pandas\n- 部署环境:Kubernetes on AWS\n\n---\n\n## 💡 示例代码片段\n\n以下是一个用于生成唯一 ID 的函数示例:\n\n~~~ts\nimport { nanoid } from 'nanoid'\n\nexport function generateSessionId() {\n return \\`sess-\\${nanoid()}\\`\n}\n~~~\n`,\n },\n extra: {\n noFooter: true,\n },\n },\n {\n id: \"11\",\n type: \"SuggestionMessage\",\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [\n {\n key: \"1\",\n description: \"我要查看 AI 文档\",\n },\n {\n key: \"2\",\n description: \"我如何看待 AI\",\n },\n {\n key: \"3\",\n description: \"你是谁?\",\n },\n ],\n },\n];\n\n// 基础用法\nconst BasicUsageStory = (args: any) => {\n const [messages, setMessages] = useState<Messages[]>(mockMessages);\n const [loading, setLoading] = useState<boolean>(false);\n\n // 模拟随机字符串流式返回\n const handleSendMessage = () => {\n setLoading(true);\n\n // 模拟流式输出(向 mockMessages 第二条消息 content.text 追加)\n const stream = [\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"我\",\n \"正在\",\n \"为\",\n \"你\",\n \"生成\",\n \"内容\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"好\",\n \"多\",\n \"……\",\n ];\n\n stream.forEach((chunk, idx) => {\n setTimeout(\n () => {\n setMessages((prev) => {\n const updated = [...prev];\n const targetIndex = 2; // mockMessages 的第二条(索引 1)\n const targetMsg = updated[targetIndex];\n\n // 确保该消息存在且是 TextMessage\n if (targetMsg && targetMsg.type === \"TextMessage\") {\n // content 可能是多种类型,这里做类型守卫\n if (\"text\" in targetMsg.content) {\n updated[targetIndex] = {\n ...targetMsg,\n content: {\n ...targetMsg.content,\n // 模拟随机字符串流式拼接\n // text: targetMsg.content.text + chunk + Math.random().toString(36).slice(2, 5),\n },\n thinks:\n targetMsg.thinks +\n chunk +\n Math.random().toString(36).slice(2, 5),\n status: MessageStatus.pending,\n };\n }\n }\n\n // 最后一个流块时,标记完成\n if (idx === stream.length - 1) {\n updated[targetIndex].execute?.push({\n id: \"5\",\n type: \"ActionExecutionMessage\",\n extra: {\n icon: documentIcon,\n },\n name: \"运行完毕\",\n createdAt: new Date(),\n });\n setLoading(false);\n updated[targetIndex] = {\n ...updated[targetIndex],\n status: MessageStatus.done,\n };\n }\n\n return updated;\n });\n },\n 200 * (idx + 1),\n ); // 每个片段延迟 600ms 模拟流\n });\n };\n\n useEffect(() => {\n if (messages) {\n handleSendMessage();\n }\n }, []);\n\n // 清空消息\n const handleClear = () => {\n setMessages([]);\n };\n\n // 模拟按钮回调\n const handleActions = (index: number, data: any) => {\n console.log(index, data);\n };\n\n // 模拟快捷短语点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev) => prev.filter((m) => m.id !== id));\n };\n\n // tooltip\n const ToolTip = (data: any) => {\n const { cost, token } = data?.extra || {};\n if (!cost && !token) return null;\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n fontSize: \"12px\",\n color: \"#949494\",\n flex: 1,\n paddingRight: \"40px\",\n }}\n >\n {cost && <div>{cost}s</div>}\n {token && <Divider type=\"vertical\" />}\n {token && <div>{token} tokens</div>}\n </div>\n );\n };\n\n return (\n <div\n style={{\n height: \"600px\",\n width: \"400px\",\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n }}\n >\n <XAiChatbot\n {...args}\n messages={messages}\n loading={loading}\n messageTooltip={ToolTip}\n onClear={handleClear}\n onSuggestMessageClick={handleSuggestMessageClick}\n onSend={handleSendMessage}\n onMessagesActionsCallback={handleActions}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({\n fileName: \"4250105220774925bfaeb3ca2a3350fe.jpg\",\n fileId: 334,\n fileUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n fileType: \"image\",\n fileSize: 28118,\n mimeType: \"image/jpeg\",\n tempUrl:\n \"https://ai-platform-test.oss-cn-hangzhou.aliyuncs.com/ZABX/vbvljaaxlhlcy.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260112T132456Z&X-Amz-SignedHeaders=host&X-Amz-Credential=LTAI5tSfMvkvWhU43Ev1cFJo%2F20260112%2Foss-cn-hangzhou%2Fs3%2Faws4_request&X-Amz-Expires=518400&X-Amz-Signature=3a8546bfdf0332a5188e9e7c47c9b8d0bb46424177c5f9be703ade8482a6e4e2\",\n type: \"image\",\n });\n }, 1000);\n }}\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {\n navbar: {\n title: \"智能助手\",\n },\n // messages: mockMessages,\n emptyStateText: \"众安智能体\",\n },\n};\n\n// 在 Provider 中使用\nexport const 在Provider中使用: Story = {\n decorators: [\n (Story) => (\n <XAiProvider token=\"test-token\" url=\"https://api.example.com\">\n <Story />\n </XAiProvider>\n ),\n ],\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n\n// 多个 Provider 实例\nexport const 多个Provider实例: Story = {\n decorators: [\n (Story) => (\n <div style={{ display: \"flex\", gap: \"50px\", height: \"600px\" }}>\n <XAiProvider\n providerId=\"chat1\"\n token=\"token1\"\n url=\"https://api1.example.com\"\n >\n <div style={{ width: \"300px\", marginRight: \"40px\" }}>\n <Story />\n </div>\n </XAiProvider>\n <XAiProvider\n providerId=\"chat2\"\n token=\"token2\"\n url=\"https://api2.example.com\"\n >\n <div style={{ width: \"300px\" }}>\n <Story />\n </div>\n </XAiProvider>\n </div>\n ),\n ],\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n\n// 展示新架构的示例组件\nconst ArchitectureDemoComponent: React.FC<{ title: string }> = ({ title }) => {\n const { mergedProps, isInProvider, getProviderValue } = useProviderContext({\n props: { title },\n mergeLogic: (props, context) => {\n if (!context?.isInProvider) {\n return props;\n }\n\n return {\n ...props,\n messages: context.messages,\n loading: context.loading,\n customData: context.messages?.length || 0,\n };\n },\n });\n\n const providerMethods = useProviderMethods();\n\n return (\n <div\n style={{\n padding: \"15px\",\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n marginBottom: \"10px\",\n backgroundColor: \"#fafafa\",\n }}\n >\n <h4 style={{ margin: \"0 0 10px 0\" }}>{mergedProps.title}</h4>\n <div style={{ fontSize: \"12px\", color: \"#666\" }}>\n <p>Provider 状态: {isInProvider ? \"✅ 已连接\" : \"❌ 未连接\"}</p>\n <p>消息数量: {getProviderValue(\"messages\")?.length || 0}</p>\n <p>加载状态: {getProviderValue(\"loading\") ? \"🔄 加载中\" : \"✅ 就绪\"}</p>\n <button\n onClick={() =>\n providerMethods.sendMessage?.({ text: \"来自架构演示组件的消息\" })\n }\n disabled={!isInProvider}\n style={{\n fontSize: \"12px\",\n padding: \"4px 8px\",\n backgroundColor: isInProvider ? \"#1890ff\" : \"#d9d9d9\",\n color: \"white\",\n border: \"none\",\n borderRadius: \"4px\",\n cursor: isInProvider ? \"pointer\" : \"not-allowed\",\n }}\n >\n {isInProvider ? \"发送消息\" : \"需要 Provider\"}\n </button>\n </div>\n </div>\n );\n};\n\n// 展示新架构的示例\nexport const 新架构演示: Story = {\n render: (args) => (\n <div style={{ width: \"500px\", height: \"700px\" }}>\n <XAiProvider\n token=\"demo-token\"\n url=\"https://api.example.com\"\n providerId=\"architecture-demo\"\n >\n <div style={{ padding: \"20px\" }}>\n <h3 style={{ marginBottom: \"20px\" }}>新架构演示</h3>\n <p style={{ marginBottom: \"20px\", color: \"#666\" }}>\n 展示如何使用 useProviderContext 和 useProviderMethods Hook\n </p>\n\n {/* 演示组件 */}\n <div style={{ marginBottom: \"20px\" }}>\n <ArchitectureDemoComponent title=\"演示组件 A\" />\n <ArchitectureDemoComponent title=\"演示组件 B\" />\n <ArchitectureDemoComponent title=\"演示组件 C\" />\n </div>\n\n {/* 聊天机器人 */}\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: \"架构演示聊天机器人\",\n subtitle: \"展示新 Hook 的使用\",\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n ),\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n\n// 对比示例:独立使用 vs Provider 模式\nexport const 架构对比演示: Story = {\n render: (args) => (\n <div style={{ display: \"flex\", gap: \"20px\", padding: \"20px\" }}>\n {/* 独立使用 */}\n <div style={{ width: \"300px\" }}>\n <h4>独立使用模式</h4>\n <div\n style={{\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n padding: \"15px\",\n }}\n >\n <ArchitectureDemoComponent title=\"独立组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: \"独立聊天机器人\",\n subtitle: \"不依赖 Provider\",\n }}\n onSend={(content) => {\n console.log(\"独立模式发送:\", content);\n }}\n onClear={() => {\n console.log(\"独立模式清空\");\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </div>\n\n {/* Provider 模式 */}\n <div style={{ width: \"300px\" }}>\n <h4>Provider 模式</h4>\n <XAiProvider\n token=\"demo-token\"\n url=\"https://api.example.com\"\n providerId=\"comparison-demo\"\n >\n <div\n style={{\n border: \"1px solid #e7e7e7\",\n borderRadius: \"8px\",\n padding: \"15px\",\n }}\n >\n <ArchitectureDemoComponent title=\"Provider 组件\" />\n <XAiChatbot\n {...args}\n navbarShow\n navbar={{\n title: \"Provider 聊天机器人\",\n subtitle: \"由 Provider 管理\",\n }}\n enableUpload\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n />\n </div>\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n navbar: {\n title: \"智能助手\",\n },\n },\n};\n"],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ var XAiConversations = function XAiConversations(props) {
|
|
|
54
54
|
};
|
|
55
55
|
return /*#__PURE__*/_jsxs("div", {
|
|
56
56
|
className: styles.conversationsWrapper,
|
|
57
|
-
children: [/*#__PURE__*/_jsx(GlobalStyle, {}),
|
|
57
|
+
children: [/*#__PURE__*/_jsx(GlobalStyle, {}), !listVisible && /*#__PURE__*/_jsxs("div", {
|
|
58
58
|
className: styles.capWrapper,
|
|
59
59
|
children: [/*#__PURE__*/_jsx("img", {
|
|
60
60
|
alt: "logo",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","Conversations","RedoOutlined","Spin","Divider","InfiniteScroll","clsx","useChatbotContext","logo","AddChatIcon","flashOpen","SESSION_PAGE_SIZE","useStyles","GlobalStyle","jsx","_jsx","jsxs","_jsxs","XAiConversations","props","styles","_useChatbotContext","mergedProps","_mergedProps$isNarrow","isNarrow","sessionList","style","onActiveChange","onNewChat","loadMoreSessions","activeKey","menu","_useState","_useState2","_slicedToArray","listVisible","setListVisible","_useState3","_useState4","animateDirection","setAnimateDirection","handleSwitchTab","key","handleNewChat","handleShowList","handleCloseList","setTimeout","className","conversationsWrapper","children","capWrapper","alt","src","w","h","capShape","capIcon","onClick","text","display","nWrapper","fWrapper","slideIn","slideOut","fheaderWrapper","addChatBtn","mr","tipTitle","scrollList","dataLength","length","next","hasMore","loader","textAlign","indicator","spin","size","endMessage","plain","textColor","overflow","paddingBottom","v","items","_objectSpread","width","borderRadius","mask"],"sources":["../../../../src/components/XAiConversations/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Conversations } from '@ant-design/x';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { Spin, Divider } from 'antd';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport clsx from 'clsx';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { type XAiConversationsProps } from '@/types/XAiConversations';\nimport logo from '@/assets/logo.png';\nimport AddChatIcon from '@/assets/svg/AddChatIcon';\nimport flashOpen from '@/assets/flash-open.svg?url';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst XAiConversations: React.FC<XAiConversationsProps> = (props) => {\n const styles = useStyles();\n const { mergedProps } = useChatbotContext(props);\n const {\n isNarrow = false,\n sessionList,\n style,\n onActiveChange,\n onNewChat,\n loadMoreSessions,\n activeKey,\n menu,\n } = mergedProps;\n\n const [listVisible, setListVisible] = useState(false);\n const [animateDirection, setAnimateDirection] = useState<'in' | 'out' | null>(null);\n\n const handleSwitchTab = (key: string) => {\n onActiveChange?.(key);\n };\n\n const handleNewChat = () => {\n onNewChat?.();\n };\n\n const handleShowList = () => {\n setListVisible(true);\n setAnimateDirection('in');\n };\n\n const handleCloseList = () => {\n setAnimateDirection('out');\n setTimeout(() => {\n setListVisible(false);\n setAnimateDirection(null);\n }, 300);\n };\n\n return (\n <div className={styles.conversationsWrapper}>\n <GlobalStyle />\n {/** 顶部操作栏 */}\n {\n (!listVisible || isNarrow) && (\n <div className={styles.capWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capShape}>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleShowList} />\n </div>\n <div className={styles.capIcon}>\n <AddChatIcon className={clsx(styles.w(17), styles.text('#343434'))} onClick={handleNewChat} />\n </div>\n </div>\n </div>\n )\n }\n\n {/* 会话列表 */}\n <div\n style={{ display: listVisible ? 'block' : 'none' }}\n className={clsx(\n isNarrow ? styles.nWrapper : styles.fWrapper,\n animateDirection === 'in' && styles.slideIn,\n animateDirection === 'out' && styles.slideOut,\n )}\n >\n {/* 固定头部 */}\n <div className={styles.fheaderWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleCloseList} />\n </div>\n </div>\n <div className={styles.addChatBtn} onClick={handleNewChat}>\n <AddChatIcon className={clsx(styles.w(17), styles.mr(10))} />\n 开启新对话\n </div>\n <div className={styles.tipTitle}>历史对话</div>\n\n {/* 滚动区域 */}\n <div className={styles.scrollList}>\n <InfiniteScroll\n dataLength={sessionList.length}\n next={loadMoreSessions}\n hasMore={false}\n loader={(\n <div style={{ textAlign: 'center' }}>\n <Spin indicator={<RedoOutlined spin />} size=\"small\" />\n </div>\n )}\n endMessage={sessionList.length === SESSION_PAGE_SIZE && <Divider plain><span className={styles.textColor('#949494')}>只展示前 50 条数据</span></Divider>}\n style={{ overflow: 'hidden', paddingBottom: '5px' }}\n >\n <Conversations\n activeKey={activeKey}\n onActiveChange={(v) => handleSwitchTab(v)}\n items={sessionList}\n menu={menu}\n style={{\n width: 256,\n borderRadius: '6px',\n ...style,\n }}\n />\n </InfiniteScroll>\n </div>\n </div>\n\n {/* 遮罩层 - 仅在窄屏且列表可见时显示 */}\n {isNarrow && listVisible && (\n <div className={styles.mask} onClick={handleCloseList} />\n )}\n </div>\n );\n};\n\nexport default XAiConversations;\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,aAAa,QAAQ,eAAe;AAC7C,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,IAAI,EAAEC,OAAO,QAAQ,MAAM;AACpC,OAAOC,cAAc,MAAM,iCAAiC;AAC5D,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,iBAAiB;AAE1B,OAAOC,IAAI;AACX,OAAOC,WAAW;AAClB,OAAOC,SAAS;AAChB,SAASC,iBAAiB;AAC1B,SAASC,SAAS,EAAEC,WAAW;AAAmB,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAElD,IAAMC,gBAAiD,GAAG,SAApDA,gBAAiDA,CAAIC,KAAK,EAAK;EACnE,IAAMC,MAAM,GAAGR,SAAS,CAAC,CAAC;EAC1B,IAAAS,kBAAA,GAAwBd,iBAAiB,CAACY,KAAK,CAAC;IAAxCG,WAAW,GAAAD,kBAAA,CAAXC,WAAW;EACnB,IAAAC,qBAAA,GASID,WAAW,CARbE,QAAQ;IAARA,QAAQ,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAChBE,WAAW,GAOTH,WAAW,CAPbG,WAAW;IACXC,KAAK,GAMHJ,WAAW,CANbI,KAAK;IACLC,cAAc,GAKZL,WAAW,CALbK,cAAc;IACdC,SAAS,GAIPN,WAAW,CAJbM,SAAS;IACTC,gBAAgB,GAGdP,WAAW,CAHbO,gBAAgB;IAChBC,SAAS,GAEPR,WAAW,CAFbQ,SAAS;IACTC,IAAI,GACFT,WAAW,CADbS,IAAI;EAGN,IAAAC,SAAA,GAAsChC,QAAQ,CAAC,KAAK,CAAC;IAAAiC,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAA9CG,WAAW,GAAAF,UAAA;IAAEG,cAAc,GAAAH,UAAA;EAClC,IAAAI,UAAA,GAAgDrC,QAAQ,CAAsB,IAAI,CAAC;IAAAsC,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAA5EE,gBAAgB,GAAAD,UAAA;IAAEE,mBAAmB,GAAAF,UAAA;EAE5C,IAAMG,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,GAAW,EAAK;IACvCf,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAGe,GAAG,CAAC;EACvB,CAAC;EAED,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAA,EAAS;IAC1Bf,SAAS,aAATA,SAAS,eAATA,SAAS,CAAG,CAAC;EACf,CAAC;EAED,IAAMgB,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IAC3BR,cAAc,CAAC,IAAI,CAAC;IACpBI,mBAAmB,CAAC,IAAI,CAAC;EAC3B,CAAC;EAED,IAAMK,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;IAC5BL,mBAAmB,CAAC,KAAK,CAAC;IAC1BM,UAAU,CAAC,YAAM;MACfV,cAAc,CAAC,KAAK,CAAC;MACrBI,mBAAmB,CAAC,IAAI,CAAC;IAC3B,CAAC,EAAE,GAAG,CAAC;EACT,CAAC;EAED,oBACEvB,KAAA;IAAK8B,SAAS,EAAE3B,MAAM,CAAC4B,oBAAqB;IAAAC,QAAA,gBAC1ClC,IAAA,CAACF,WAAW,IAAE,CAAC,EAGb,CAAC,CAACsB,WAAW,IAAIX,QAAQ,kBACvBP,KAAA;MAAK8B,SAAS,EAAE3B,MAAM,CAAC8B,UAAW;MAAAD,QAAA,gBAChClC,IAAA;QAAKoC,GAAG,EAAC,MAAM;QAACC,GAAG,EAAE5C,IAAK;QAACuC,SAAS,EAAEzC,IAAI,CAACc,MAAM,CAACiC,CAAC,CAAC,EAAE,CAAC,EAAEjC,MAAM,CAACkC,CAAC,CAAC,EAAE,CAAC;MAAE,CAAE,CAAC,eAC1ErC,KAAA;QAAK8B,SAAS,EAAE3B,MAAM,CAACmC,QAAS;QAAAN,QAAA,gBAC9BlC,IAAA;UAAKgC,SAAS,EAAE3B,MAAM,CAACoC,OAAQ;UAAAP,QAAA,eAC7BlC,IAAA;YAAKqC,GAAG,EAAE1C,SAAU;YAACyC,GAAG,EAAC,EAAE;YAACM,OAAO,EAAEb;UAAe,CAAE;QAAC,CACpD,CAAC,eACN7B,IAAA;UAAKgC,SAAS,EAAE3B,MAAM,CAACoC,OAAQ;UAAAP,QAAA,eAC7BlC,IAAA,CAACN,WAAW;YAACsC,SAAS,EAAEzC,IAAI,CAACc,MAAM,CAACiC,CAAC,CAAC,EAAE,CAAC,EAAEjC,MAAM,CAACsC,IAAI,CAAC,SAAS,CAAC,CAAE;YAACD,OAAO,EAAEd;UAAc,CAAE;QAAC,CAC3F,CAAC;MAAA,CACH,CAAC;IAAA,CACH,CACN,eAIH1B,KAAA;MACES,KAAK,EAAE;QAAEiC,OAAO,EAAExB,WAAW,GAAG,OAAO,GAAG;MAAO,CAAE;MACnDY,SAAS,EAAEzC,IAAI,CACbkB,QAAQ,GAAGJ,MAAM,CAACwC,QAAQ,GAAGxC,MAAM,CAACyC,QAAQ,EAC5CtB,gBAAgB,KAAK,IAAI,IAAInB,MAAM,CAAC0C,OAAO,EAC3CvB,gBAAgB,KAAK,KAAK,IAAInB,MAAM,CAAC2C,QACvC,CAAE;MAAAd,QAAA,gBAGFhC,KAAA;QAAK8B,SAAS,EAAE3B,MAAM,CAAC4C,cAAe;QAAAf,QAAA,gBACpClC,IAAA;UAAKoC,GAAG,EAAC,MAAM;UAACC,GAAG,EAAE5C,IAAK;UAACuC,SAAS,EAAEzC,IAAI,CAACc,MAAM,CAACiC,CAAC,CAAC,EAAE,CAAC,EAAEjC,MAAM,CAACkC,CAAC,CAAC,EAAE,CAAC;QAAE,CAAE,CAAC,eAC1EvC,IAAA;UAAKgC,SAAS,EAAE3B,MAAM,CAACoC,OAAQ;UAAAP,QAAA,eAC7BlC,IAAA;YAAKqC,GAAG,EAAE1C,SAAU;YAACyC,GAAG,EAAC,EAAE;YAACM,OAAO,EAAEZ;UAAgB,CAAE;QAAC,CACrD,CAAC;MAAA,CACH,CAAC,eACN5B,KAAA;QAAK8B,SAAS,EAAE3B,MAAM,CAAC6C,UAAW;QAACR,OAAO,EAAEd,aAAc;QAAAM,QAAA,gBACxDlC,IAAA,CAACN,WAAW;UAACsC,SAAS,EAAEzC,IAAI,CAACc,MAAM,CAACiC,CAAC,CAAC,EAAE,CAAC,EAAEjC,MAAM,CAAC8C,EAAE,CAAC,EAAE,CAAC;QAAE,CAAE,CAAC,kCAE/D;MAAA,CAAK,CAAC,eACNnD,IAAA;QAAKgC,SAAS,EAAE3B,MAAM,CAAC+C,QAAS;QAAAlB,QAAA,EAAC;MAAI,CAAK,CAAC,eAG3ClC,IAAA;QAAKgC,SAAS,EAAE3B,MAAM,CAACgD,UAAW;QAAAnB,QAAA,eAChClC,IAAA,CAACV,cAAc;UACbgE,UAAU,EAAE5C,WAAW,CAAC6C,MAAO;UAC/BC,IAAI,EAAE1C,gBAAiB;UACvB2C,OAAO,EAAE,KAAM;UACfC,MAAM,eACJ1D,IAAA;YAAKW,KAAK,EAAE;cAAEgD,SAAS,EAAE;YAAS,CAAE;YAAAzB,QAAA,eAClClC,IAAA,CAACZ,IAAI;cAACwE,SAAS,eAAE5D,IAAA,CAACb,YAAY;gBAAC0E,IAAI;cAAA,CAAE,CAAE;cAACC,IAAI,EAAC;YAAO,CAAE;UAAC,CACpD,CACL;UACFC,UAAU,EAAErD,WAAW,CAAC6C,MAAM,KAAK3D,iBAAiB,iBAAII,IAAA,CAACX,OAAO;YAAC2E,KAAK;YAAA9B,QAAA,eAAClC,IAAA;cAAMgC,SAAS,EAAE3B,MAAM,CAAC4D,SAAS,CAAC,SAAS,CAAE;cAAA/B,QAAA,EAAC;YAAW,CAAM;UAAC,CAAS,CAAE;UAClJvB,KAAK,EAAE;YAAEuD,QAAQ,EAAE,QAAQ;YAAEC,aAAa,EAAE;UAAM,CAAE;UAAAjC,QAAA,eAEpDlC,IAAA,CAACd,aAAa;YACZ6B,SAAS,EAAEA,SAAU;YACrBH,cAAc,EAAE,SAAAA,eAACwD,CAAC;cAAA,OAAK1C,eAAe,CAAC0C,CAAC,CAAC;YAAA,CAAC;YAC1CC,KAAK,EAAE3D,WAAY;YACnBM,IAAI,EAAEA,IAAK;YACXL,KAAK,EAAA2D,aAAA;cACHC,KAAK,EAAE,GAAG;cACVC,YAAY,EAAE;YAAK,GAChB7D,KAAK;UACR,CACH;QAAC,CACY;MAAC,CACd,CAAC;IAAA,CACH,CAAC,EAGLF,QAAQ,IAAIW,WAAW,iBACtBpB,IAAA;MAAKgC,SAAS,EAAE3B,MAAM,CAACoE,IAAK;MAAC/B,OAAO,EAAEZ;IAAgB,CAAE,CACzD;EAAA,CACE,CAAC;AAEV,CAAC;AAED,eAAe3B,gBAAgB"}
|
|
1
|
+
{"version":3,"names":["React","useState","Conversations","RedoOutlined","Spin","Divider","InfiniteScroll","clsx","useChatbotContext","logo","AddChatIcon","flashOpen","SESSION_PAGE_SIZE","useStyles","GlobalStyle","jsx","_jsx","jsxs","_jsxs","XAiConversations","props","styles","_useChatbotContext","mergedProps","_mergedProps$isNarrow","isNarrow","sessionList","style","onActiveChange","onNewChat","loadMoreSessions","activeKey","menu","_useState","_useState2","_slicedToArray","listVisible","setListVisible","_useState3","_useState4","animateDirection","setAnimateDirection","handleSwitchTab","key","handleNewChat","handleShowList","handleCloseList","setTimeout","className","conversationsWrapper","children","capWrapper","alt","src","w","h","capShape","capIcon","onClick","text","display","nWrapper","fWrapper","slideIn","slideOut","fheaderWrapper","addChatBtn","mr","tipTitle","scrollList","dataLength","length","next","hasMore","loader","textAlign","indicator","spin","size","endMessage","plain","textColor","overflow","paddingBottom","v","items","_objectSpread","width","borderRadius","mask"],"sources":["../../../../src/components/XAiConversations/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Conversations } from '@ant-design/x';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { Spin, Divider } from 'antd';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport clsx from 'clsx';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { type XAiConversationsProps } from '@/types/XAiConversations';\nimport logo from '@/assets/logo.png';\nimport AddChatIcon from '@/assets/svg/AddChatIcon';\nimport flashOpen from '@/assets/flash-open.svg?url';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst XAiConversations: React.FC<XAiConversationsProps> = (props) => {\n const styles = useStyles();\n const { mergedProps } = useChatbotContext(props);\n const {\n isNarrow = false,\n sessionList,\n style,\n onActiveChange,\n onNewChat,\n loadMoreSessions,\n activeKey,\n menu,\n } = mergedProps;\n\n const [listVisible, setListVisible] = useState(false);\n const [animateDirection, setAnimateDirection] = useState<'in' | 'out' | null>(null);\n\n const handleSwitchTab = (key: string) => {\n onActiveChange?.(key);\n };\n\n const handleNewChat = () => {\n onNewChat?.();\n };\n\n const handleShowList = () => {\n setListVisible(true);\n setAnimateDirection('in');\n };\n\n const handleCloseList = () => {\n setAnimateDirection('out');\n setTimeout(() => {\n setListVisible(false);\n setAnimateDirection(null);\n }, 300);\n };\n\n return (\n <div className={styles.conversationsWrapper}>\n <GlobalStyle />\n {/** 顶部操作栏 */}\n {\n !listVisible && (\n <div className={styles.capWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capShape}>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleShowList} />\n </div>\n <div className={styles.capIcon}>\n <AddChatIcon className={clsx(styles.w(17), styles.text('#343434'))} onClick={handleNewChat} />\n </div>\n </div>\n </div>\n )\n }\n\n {/* 会话列表 */}\n <div\n style={{ display: listVisible ? 'block' : 'none' }}\n className={clsx(\n isNarrow ? styles.nWrapper : styles.fWrapper,\n animateDirection === 'in' && styles.slideIn,\n animateDirection === 'out' && styles.slideOut,\n )}\n >\n {/* 固定头部 */}\n <div className={styles.fheaderWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))} />\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleCloseList} />\n </div>\n </div>\n <div className={styles.addChatBtn} onClick={handleNewChat}>\n <AddChatIcon className={clsx(styles.w(17), styles.mr(10))} />\n 开启新对话\n </div>\n <div className={styles.tipTitle}>历史对话</div>\n\n {/* 滚动区域 */}\n <div className={styles.scrollList}>\n <InfiniteScroll\n dataLength={sessionList.length}\n next={loadMoreSessions}\n hasMore={false}\n loader={(\n <div style={{ textAlign: 'center' }}>\n <Spin indicator={<RedoOutlined spin />} size=\"small\" />\n </div>\n )}\n endMessage={sessionList.length === SESSION_PAGE_SIZE && <Divider plain><span className={styles.textColor('#949494')}>只展示前 50 条数据</span></Divider>}\n style={{ overflow: 'hidden', paddingBottom: '5px' }}\n >\n <Conversations\n activeKey={activeKey}\n onActiveChange={(v) => handleSwitchTab(v)}\n items={sessionList}\n menu={menu}\n style={{\n width: 256,\n borderRadius: '6px',\n ...style,\n }}\n />\n </InfiniteScroll>\n </div>\n </div>\n\n {/* 遮罩层 - 仅在窄屏且列表可见时显示 */}\n {isNarrow && listVisible && (\n <div className={styles.mask} onClick={handleCloseList} />\n )}\n </div>\n );\n};\n\nexport default XAiConversations;\n"],"mappings":"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"}
|
|
@@ -16,13 +16,13 @@ var slideOutRight = keyframes(_templateObject2 || (_templateObject2 = _taggedTem
|
|
|
16
16
|
export var useStyles = withBasicStyles(function () {
|
|
17
17
|
return {
|
|
18
18
|
// 静态样式
|
|
19
|
-
conversationsWrapper: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n overflow: hidden;\n "]))),
|
|
19
|
+
conversationsWrapper: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n overflow: hidden;\n display: flex;\n flex-direction: column;\n height: 100%;\n "]))),
|
|
20
20
|
capWrapper: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n padding: 12px 16px;\n display: flex;\n align-items: center;\n "]))),
|
|
21
21
|
capShape: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ", ";\n } */\n "])), primaryBlue),
|
|
22
22
|
capIcon: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n "]))),
|
|
23
23
|
addChatBtn: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n "]))),
|
|
24
24
|
tipTitle: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n "]))),
|
|
25
|
-
fWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n "]))),
|
|
25
|
+
fWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n flex-shrink: 0;\n border-right: 1px solid #f0f0f0;\n "]))),
|
|
26
26
|
nWrapper: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n "]))),
|
|
27
27
|
mask: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n "]))),
|
|
28
28
|
fheaderWrapper: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n "]))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","conversationsWrapper","_templateObject3","capWrapper","_templateObject4","capShape","_templateObject5","capIcon","_templateObject6","addChatBtn","_templateObject7","tipTitle","_templateObject8","fWrapper","_templateObject9","nWrapper","_templateObject10","mask","_templateObject11","fheaderWrapper","_templateObject12","scrollList","_templateObject13","slideIn","_templateObject14","slideOut","_templateObject15","GlobalStyle","styles","_templateObject16"],"sources":["../../../../src/components/XAiConversations/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css, keyframes } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\nconst slideInRight = keyframes`\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n`;\n\nconst slideOutRight = keyframes`\n from { transform: translateX(0); opacity: 1; }\n to { transform: translateX(-100%); opacity: 0; }\n`;\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n conversationsWrapper: css`\n overflow: hidden;\n `,\n\n capWrapper: css`\n padding: 12px 16px;\n display: flex;\n align-items: center;\n `,\n\n capShape: css`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ${primaryBlue};\n } */\n `,\n\n capIcon: css`\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n `,\n\n addChatBtn: css`\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n `,\n\n tipTitle: css`\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n `,\n\n fWrapper: css`\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n `,\n\n nWrapper: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n `,\n\n mask: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n `,\n\n fheaderWrapper: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n `,\n\n scrollList: css`\n max-height: calc(100vh - 120px); /* 120px为头部高度,可根据实际调整 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* 隐藏滚动条(Chrome, Edge, Safari) */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* 隐藏滚动条(Firefox) */\n scrollbar-width: none;\n\n /* 隐藏滚动条(IE/Edge) */\n -ms-overflow-style: none;\n `,\n\n slideIn: css`\n animation: ${slideInRight} 0.3s forwards;\n `,\n slideOut: css`\n animation: ${slideOutRight} 0.3s forwards;\n `,\n\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n `}\n />\n);\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,SAAS,QAAQ,cAAc;AAC7C,SAASD,GAAG,IAAIE,SAAS,EAAEC,MAAM,QAAQ,gBAAgB;AACzD,SAASC,eAAe;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAElD,IAAMC,WAAW,GAAG,SAAS,CAAC,CAAC;AAC/B,IAAMC,SAAS,GAAG,SAAS,CAAC,CAAG;AAC/B,IAAMC,QAAQ,GAAG,MAAM,CAAC,CAAQ;AAChC,IAAMC,SAAS,GAAG,MAAM,CAAC,CAAO;AAChC,IAAMC,UAAU,GAAG,MAAM,CAAC,CAAM;;AAEhC,IAAMC,YAAY,GAAGX,SAAS,CAAAY,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gHAG7B;AAED,IAAMC,aAAa,GAAGd,SAAS,CAAAe,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,gHAG9B;AAED,OAAO,IAAMG,SAAS,GAAGb,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAc,oBAAoB,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,
|
|
1
|
+
{"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","conversationsWrapper","_templateObject3","capWrapper","_templateObject4","capShape","_templateObject5","capIcon","_templateObject6","addChatBtn","_templateObject7","tipTitle","_templateObject8","fWrapper","_templateObject9","nWrapper","_templateObject10","mask","_templateObject11","fheaderWrapper","_templateObject12","scrollList","_templateObject13","slideIn","_templateObject14","slideOut","_templateObject15","GlobalStyle","styles","_templateObject16"],"sources":["../../../../src/components/XAiConversations/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css, keyframes } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\nconst slideInRight = keyframes`\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n`;\n\nconst slideOutRight = keyframes`\n from { transform: translateX(0); opacity: 1; }\n to { transform: translateX(-100%); opacity: 0; }\n`;\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n conversationsWrapper: css`\n overflow: hidden;\n display: flex;\n flex-direction: column;\n height: 100%;\n `,\n\n capWrapper: css`\n padding: 12px 16px;\n display: flex;\n align-items: center;\n `,\n\n capShape: css`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ${primaryBlue};\n } */\n `,\n\n capIcon: css`\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n `,\n\n addChatBtn: css`\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n `,\n\n tipTitle: css`\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n `,\n\n fWrapper: css`\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n flex-shrink: 0;\n border-right: 1px solid #f0f0f0;\n `,\n\n nWrapper: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n `,\n\n mask: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n `,\n\n fheaderWrapper: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n `,\n\n scrollList: css`\n max-height: calc(100vh - 120px); /* 120px为头部高度,可根据实际调整 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* 隐藏滚动条(Chrome, Edge, Safari) */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* 隐藏滚动条(Firefox) */\n scrollbar-width: none;\n\n /* 隐藏滚动条(IE/Edge) */\n -ms-overflow-style: none;\n `,\n\n slideIn: css`\n animation: ${slideInRight} 0.3s forwards;\n `,\n slideOut: css`\n animation: ${slideOutRight} 0.3s forwards;\n `,\n\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n `}\n />\n);\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,SAAS,QAAQ,cAAc;AAC7C,SAASD,GAAG,IAAIE,SAAS,EAAEC,MAAM,QAAQ,gBAAgB;AACzD,SAASC,eAAe;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAElD,IAAMC,WAAW,GAAG,SAAS,CAAC,CAAC;AAC/B,IAAMC,SAAS,GAAG,SAAS,CAAC,CAAG;AAC/B,IAAMC,QAAQ,GAAG,MAAM,CAAC,CAAQ;AAChC,IAAMC,SAAS,GAAG,MAAM,CAAC,CAAO;AAChC,IAAMC,UAAU,GAAG,MAAM,CAAC,CAAM;;AAEhC,IAAMC,YAAY,GAAGX,SAAS,CAAAY,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gHAG7B;AAED,IAAMC,aAAa,GAAGd,SAAS,CAAAe,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,gHAG9B;AAED,OAAO,IAAMG,SAAS,GAAGb,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAc,oBAAoB,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,uGAKxB;IAEDM,UAAU,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAP,sBAAA,mFAId;IAEDQ,QAAQ,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,+fAgBOP,WAAW,CAE9B;IAEDiB,OAAO,EAAExB,GAAG,CAAAyB,gBAAA,KAAAA,gBAAA,GAAAX,sBAAA,0QAgBX;IAEDY,UAAU,EAAE1B,GAAG,CAAA2B,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,sZAqBd;IAEDc,QAAQ,EAAE5B,GAAG,CAAA6B,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,gFAIZ;IAEDgB,QAAQ,EAAE9B,GAAG,CAAA+B,gBAAA,KAAAA,gBAAA,GAAAjB,sBAAA,wNASZ;IAEDkB,QAAQ,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAAnB,sBAAA,+PAWZ;IAEDoB,IAAI,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAArB,sBAAA,sLASR;IAEDsB,cAAc,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAvB,sBAAA,4HAKlB;IAEDwB,UAAU,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAzB,sBAAA,+jBAkBd;IAED0B,OAAO,EAAExC,GAAG,CAAAyC,iBAAA,KAAAA,iBAAA,GAAA3B,sBAAA,iDACGF,YAAY,CAC1B;IACD8B,QAAQ,EAAE1C,GAAG,CAAA2C,iBAAA,KAAAA,iBAAA,GAAA7B,sBAAA,iDACEC,aAAa;EAG9B,CAAC;AAAA,CAAC,CAAC;AAEH,OAAO,IAAM6B,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA;EAAA,oBAChCtC,IAAA,CAACH,MAAM;IACL0C,MAAM,EAAE3C,SAAS,CAAA4C,iBAAA,KAAAA,iBAAA,GAAAhC,sBAAA;EAQf,CACH,CAAC;AAAA,CACH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from
|
|
2
|
-
import XAiProvider from
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import XAiProvider from "./index";
|
|
3
3
|
declare const meta: Meta<typeof XAiProvider>;
|
|
4
4
|
export default meta;
|
|
5
5
|
type Story = StoryObj<typeof meta>;
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
-
import React from
|
|
3
|
-
import { Button } from
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Button } from "antd";
|
|
4
4
|
import XAiProvider from "./index";
|
|
5
5
|
import XAiChatbot from "../XAiChatbot";
|
|
6
6
|
import XAiConversations from "../XAiConversations";
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
var meta = {
|
|
10
|
-
title:
|
|
10
|
+
title: "AI组件/XAiProvider AI容器【下线】",
|
|
11
11
|
component: XAiProvider,
|
|
12
12
|
parameters: {
|
|
13
|
-
layout:
|
|
13
|
+
layout: "centered",
|
|
14
14
|
docs: {
|
|
15
15
|
description: {
|
|
16
|
-
component:
|
|
16
|
+
component: "AI 聊天机器人容器组件,提供全局上下文和消息管理功能。"
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
|
-
tags: [
|
|
20
|
+
tags: ["autodocs"],
|
|
21
21
|
argTypes: {
|
|
22
22
|
config: {
|
|
23
|
-
description:
|
|
23
|
+
description: "配置信息",
|
|
24
24
|
table: {
|
|
25
25
|
type: {
|
|
26
|
-
summary:
|
|
26
|
+
summary: "XAiProviderConfig",
|
|
27
27
|
detail: "{\n appNo?: string; // \u5E94\u7528\u552F\u4E00\u7F16\u53F7\n }"
|
|
28
28
|
},
|
|
29
|
-
category:
|
|
29
|
+
category: "配置选项"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
},
|
|
@@ -34,7 +34,7 @@ var meta = {
|
|
|
34
34
|
decorators: [function (Story) {
|
|
35
35
|
return /*#__PURE__*/_jsx("div", {
|
|
36
36
|
style: {
|
|
37
|
-
padding:
|
|
37
|
+
padding: "20px"
|
|
38
38
|
},
|
|
39
39
|
children: /*#__PURE__*/_jsx(Story, {})
|
|
40
40
|
});
|
|
@@ -49,23 +49,23 @@ export var 单聊天窗口实例 = {
|
|
|
49
49
|
var _providerRef$current;
|
|
50
50
|
if ((_providerRef$current = providerRef.current) !== null && _providerRef$current !== void 0 && _providerRef$current.chat) {
|
|
51
51
|
providerRef.current.chat({
|
|
52
|
-
text:
|
|
52
|
+
text: "你好,AI!"
|
|
53
53
|
});
|
|
54
54
|
} else {
|
|
55
|
-
console.log(
|
|
55
|
+
console.log("XAiProvider ref 未准备好或 chat 方法不存在");
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
58
|
return /*#__PURE__*/_jsxs("div", {
|
|
59
59
|
style: {
|
|
60
|
-
display:
|
|
60
|
+
display: "flex"
|
|
61
61
|
},
|
|
62
62
|
children: [/*#__PURE__*/_jsx("div", {
|
|
63
63
|
style: {
|
|
64
|
-
display:
|
|
65
|
-
flexDirection:
|
|
66
|
-
gap:
|
|
67
|
-
marginRight:
|
|
68
|
-
justifyContent:
|
|
64
|
+
display: "flex",
|
|
65
|
+
flexDirection: "column",
|
|
66
|
+
gap: "12px",
|
|
67
|
+
marginRight: "24px",
|
|
68
|
+
justifyContent: "center"
|
|
69
69
|
},
|
|
70
70
|
children: /*#__PURE__*/_jsx(Button, {
|
|
71
71
|
type: "primary",
|
|
@@ -74,8 +74,8 @@ export var 单聊天窗口实例 = {
|
|
|
74
74
|
})
|
|
75
75
|
}), /*#__PURE__*/_jsx("div", {
|
|
76
76
|
style: {
|
|
77
|
-
maxWidth:
|
|
78
|
-
height:
|
|
77
|
+
maxWidth: "800px",
|
|
78
|
+
height: "600px"
|
|
79
79
|
},
|
|
80
80
|
children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({
|
|
81
81
|
ref: providerRef
|
|
@@ -89,9 +89,9 @@ export var 单聊天窗口实例 = {
|
|
|
89
89
|
children: /*#__PURE__*/_jsx(XAiChatbot, {
|
|
90
90
|
navbarShow: true,
|
|
91
91
|
navbar: {
|
|
92
|
-
title:
|
|
93
|
-
subtitle:
|
|
94
|
-
avatar:
|
|
92
|
+
title: "Provider 聊天机器人",
|
|
93
|
+
subtitle: "由 Provider 管理消息",
|
|
94
|
+
avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
|
|
95
95
|
}
|
|
96
96
|
})
|
|
97
97
|
}))
|
|
@@ -99,12 +99,12 @@ export var 单聊天窗口实例 = {
|
|
|
99
99
|
});
|
|
100
100
|
},
|
|
101
101
|
args: {
|
|
102
|
-
url:
|
|
103
|
-
token:
|
|
102
|
+
url: "https://m-poc-dev.zaxline.com",
|
|
103
|
+
token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIl0sImV4cCI6MTc2NDY3MTc2MSwianRpIjoiRl9Zb0JBXzhIN01XempDZUxQenEzNTBXRnNrIiwiY2xpZW50X2lkIjoiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIn0.mtGBQfwNtIkhcOumsOvzMj2BdYUxAPwZ9GcvNLuCNGVzFkqkLkfy_LALjYR2B-RaNj11_Cx7DcewtmLceG31KfnCiFY24BD_CbwoahdFh40SYRTFnjDf8XQI22E63h5NxTuldPx0itYLUPaUO6NAubnRON40eQPGZKygM0i72ULsQQAyRpJLYAaTjUxyPIW3JmMzQmYiRx641JeAYAup4-ZNw-Fqmd-8_xK3kN-a832xM-M_eqXgn8yMttn0uFv95lxPdJ1_-mp2zx8N4TBCYVkHo3u_PjM65S3_p4u1dFGXBDAsxtVMgmVGeUvubTLFuDM153rz9MZ7aOuu_c8K7w",
|
|
104
104
|
config: {
|
|
105
|
-
appNo:
|
|
105
|
+
appNo: "PGlA63A1Gt9oZpxa6YCWMciH"
|
|
106
106
|
},
|
|
107
|
-
providerId:
|
|
107
|
+
providerId: "demo-provider"
|
|
108
108
|
}
|
|
109
109
|
};
|
|
110
110
|
|
|
@@ -113,38 +113,38 @@ export var 多容器示例 = {
|
|
|
113
113
|
render: function render(args) {
|
|
114
114
|
return /*#__PURE__*/_jsxs("div", {
|
|
115
115
|
style: {
|
|
116
|
-
display:
|
|
117
|
-
gap:
|
|
116
|
+
display: "flex",
|
|
117
|
+
gap: "20px"
|
|
118
118
|
},
|
|
119
119
|
children: [/*#__PURE__*/_jsx("div", {
|
|
120
120
|
style: {
|
|
121
|
-
width:
|
|
122
|
-
height:
|
|
121
|
+
width: "400px",
|
|
122
|
+
height: "600px"
|
|
123
123
|
},
|
|
124
124
|
children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({}, args), {}, {
|
|
125
125
|
providerId: "provider-1",
|
|
126
126
|
children: /*#__PURE__*/_jsx(XAiChatbot, {
|
|
127
127
|
navbarShow: true,
|
|
128
128
|
navbar: {
|
|
129
|
-
title:
|
|
130
|
-
subtitle:
|
|
131
|
-
avatar:
|
|
129
|
+
title: "Provider 1",
|
|
130
|
+
subtitle: "第一个聊天机器人",
|
|
131
|
+
avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
|
|
132
132
|
}
|
|
133
133
|
})
|
|
134
134
|
}))
|
|
135
135
|
}), /*#__PURE__*/_jsx("div", {
|
|
136
136
|
style: {
|
|
137
|
-
width:
|
|
138
|
-
height:
|
|
137
|
+
width: "400px",
|
|
138
|
+
height: "600px"
|
|
139
139
|
},
|
|
140
140
|
children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({}, args), {}, {
|
|
141
141
|
providerId: "provider-2",
|
|
142
142
|
children: /*#__PURE__*/_jsx(XAiChatbot, {
|
|
143
143
|
navbarShow: true,
|
|
144
144
|
navbar: {
|
|
145
|
-
title:
|
|
146
|
-
subtitle:
|
|
147
|
-
avatar:
|
|
145
|
+
title: "Provider 2",
|
|
146
|
+
subtitle: "第二个聊天机器人",
|
|
147
|
+
avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
|
|
148
148
|
}
|
|
149
149
|
})
|
|
150
150
|
}))
|
|
@@ -152,8 +152,8 @@ export var 多容器示例 = {
|
|
|
152
152
|
});
|
|
153
153
|
},
|
|
154
154
|
args: {
|
|
155
|
-
url:
|
|
156
|
-
token:
|
|
155
|
+
url: "https://api.example.com/ai",
|
|
156
|
+
token: "your-token-here"
|
|
157
157
|
}
|
|
158
158
|
};
|
|
159
159
|
|
|
@@ -163,9 +163,9 @@ export var 携带历史记录示例 = {
|
|
|
163
163
|
var providerRef = React.useRef(null);
|
|
164
164
|
return /*#__PURE__*/_jsx("div", {
|
|
165
165
|
style: {
|
|
166
|
-
width:
|
|
167
|
-
height:
|
|
168
|
-
overflow:
|
|
166
|
+
width: "1080px",
|
|
167
|
+
height: "600px",
|
|
168
|
+
overflow: "hidden"
|
|
169
169
|
},
|
|
170
170
|
children: /*#__PURE__*/_jsxs(XAiProvider, _objectSpread(_objectSpread({
|
|
171
171
|
ref: providerRef
|
|
@@ -179,14 +179,14 @@ export var 携带历史记录示例 = {
|
|
|
179
179
|
children: [/*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx("div", {
|
|
180
180
|
style: {
|
|
181
181
|
flex: 1,
|
|
182
|
-
display:
|
|
183
|
-
justifyContent:
|
|
182
|
+
display: "flex",
|
|
183
|
+
justifyContent: "center"
|
|
184
184
|
},
|
|
185
185
|
children: /*#__PURE__*/_jsx(XAiChatbot, {
|
|
186
186
|
navbar: {
|
|
187
|
-
title:
|
|
188
|
-
subtitle:
|
|
189
|
-
avatar:
|
|
187
|
+
title: "Provider 聊天机器人",
|
|
188
|
+
subtitle: "由 Provider 管理消息",
|
|
189
|
+
avatar: "https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg"
|
|
190
190
|
}
|
|
191
191
|
})
|
|
192
192
|
})]
|
|
@@ -194,15 +194,15 @@ export var 携带历史记录示例 = {
|
|
|
194
194
|
});
|
|
195
195
|
},
|
|
196
196
|
args: {
|
|
197
|
-
url:
|
|
198
|
-
token:
|
|
197
|
+
url: "https://m-poc.zaxline.com",
|
|
198
|
+
token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiU0tUYkp6MDE5bWFVdnFqcC9OUGJEQT09Iiwic2NvcGUiOlsiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIl0sImV4cCI6MTc2OTE2MzE5MCwianRpIjoiV1B4QTJrTzB0dlV5eW84MWdxSVlldlZRWUFRIiwiY2xpZW50X2lkIjoiMGhic2RXYkZVYktZRXkxMEsxNDM3WFhtIn0.f8tEHi-1Gokv09ce2YjO17yD4SL-KFNCiyFmVOLMvHnHltDh9g2BsxSEB9IreaEvqT70-nl9qgWjb8V2As9QTBNPvfdStXmvc1X4HYsWPDdX0YeLWBAgJ0clJufL62SzwRLNb-torvuLvQfqohF3Aqr7QUXt2x_ZOUA1G5jkG8K9_FZPYBBfUMf6JV8CejogqCSe-yjIKPhbh9dDcCGO6ibexTT1x8C1f2LwP-sMyYmPOIdEqelmzk5-m32yy2fINKz9zG8NWMRx8G4Sr1l-pZzxSGOQ3v6EKUe3M_I-W3pZc6G9gzIXb2Wq_lE7q_l91ee5dU8ex1To8X_PtFd8_g",
|
|
199
199
|
config: {
|
|
200
|
-
appNo:
|
|
200
|
+
appNo: "0hbsdWbFUbKYEy10K1437XXm",
|
|
201
201
|
chatProps: {
|
|
202
202
|
clearBtnShow: false
|
|
203
203
|
}
|
|
204
204
|
},
|
|
205
|
-
providerId:
|
|
205
|
+
providerId: "demo-provider"
|
|
206
206
|
}
|
|
207
207
|
};
|
|
208
208
|
//# sourceMappingURL=XAiProvider.stories.js.map
|