@ai-group/chat-sdk 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +44 -4
  2. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +2 -2
  3. package/dist/cjs/components/XAiChatbot/index.js +34 -10
  4. package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
  5. package/dist/cjs/components/XAiChatbot/styles.js +31 -0
  6. package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
  7. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +1 -1
  8. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
  9. package/dist/cjs/components/XAiProvider/index.js +1 -1
  10. package/dist/cjs/components/XAiProvider/index.js.map +2 -2
  11. package/dist/cjs/components/XAiSender/XAiSender.stories.js +3 -2
  12. package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +2 -2
  13. package/dist/cjs/components/XAiSender/index.js +13 -3
  14. package/dist/cjs/components/XAiSender/index.js.map +2 -2
  15. package/dist/cjs/components/XAiSender/styles.js +0 -1
  16. package/dist/cjs/components/XAiSender/styles.js.map +2 -2
  17. package/dist/cjs/hooks/useAgentGenerator.d.ts +3 -3
  18. package/dist/cjs/hooks/useAgentGenerator.js +5 -5
  19. package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
  20. package/dist/cjs/hooks/useProviderContext.d.ts +2 -1
  21. package/dist/cjs/hooks/useProviderContext.js.map +2 -2
  22. package/dist/cjs/types/XAiChatbot.d.ts +8 -6
  23. package/dist/cjs/types/XAiChatbot.js.map +1 -1
  24. package/dist/cjs/types/XAiConversations.d.ts +2 -2
  25. package/dist/cjs/types/XAiConversations.js.map +1 -1
  26. package/dist/cjs/types/XAiMessage.d.ts +2 -1
  27. package/dist/cjs/types/XAiMessage.js.map +2 -2
  28. package/dist/cjs/types/XAiProvider.d.ts +3 -3
  29. package/dist/cjs/types/XAiProvider.js.map +2 -2
  30. package/dist/cjs/types/XAiSender.d.ts +5 -1
  31. package/dist/cjs/types/XAiSender.js.map +1 -1
  32. package/dist/cjs/types/index.js.map +1 -1
  33. package/dist/cjs/utils/umdEntry.d.ts +3 -2
  34. package/dist/cjs/utils/umdEntry.js +2 -2
  35. package/dist/cjs/utils/umdEntry.js.map +2 -2
  36. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +60 -6
  37. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -1
  38. package/dist/esm/components/XAiChatbot/index.js +104 -70
  39. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  40. package/dist/esm/components/XAiChatbot/styles.js +1 -1
  41. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  42. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +3 -1
  43. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  44. package/dist/esm/components/XAiProvider/index.js +1 -1
  45. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  46. package/dist/esm/components/XAiSender/XAiSender.stories.js +3 -2
  47. package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -1
  48. package/dist/esm/components/XAiSender/index.js +16 -4
  49. package/dist/esm/components/XAiSender/index.js.map +1 -1
  50. package/dist/esm/components/XAiSender/styles.js +1 -1
  51. package/dist/esm/components/XAiSender/styles.js.map +1 -1
  52. package/dist/esm/hooks/useAgentGenerator.d.ts +3 -3
  53. package/dist/esm/hooks/useAgentGenerator.js +8 -8
  54. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  55. package/dist/esm/hooks/useProviderContext.d.ts +2 -1
  56. package/dist/esm/hooks/useProviderContext.js.map +1 -1
  57. package/dist/esm/types/XAiChatbot.d.ts +8 -6
  58. package/dist/esm/types/XAiChatbot.js.map +1 -1
  59. package/dist/esm/types/XAiConversations.d.ts +2 -2
  60. package/dist/esm/types/XAiConversations.js.map +1 -1
  61. package/dist/esm/types/XAiMessage.d.ts +2 -1
  62. package/dist/esm/types/XAiMessage.js.map +1 -1
  63. package/dist/esm/types/XAiProvider.d.ts +3 -3
  64. package/dist/esm/types/XAiProvider.js.map +1 -1
  65. package/dist/esm/types/XAiSender.d.ts +5 -1
  66. package/dist/esm/types/XAiSender.js.map +1 -1
  67. package/dist/esm/types/index.js.map +1 -1
  68. package/dist/esm/utils/umdEntry.d.ts +3 -2
  69. package/dist/esm/utils/umdEntry.js +2 -2
  70. package/dist/esm/utils/umdEntry.js.map +1 -1
  71. package/dist/umd/chat-sdk.min.js +1 -1
  72. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","useState","useMemo","Tooltip","Bubble","Prompts","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","arrowUp","arrowDown","thinkIcon","groupIcon","arrowDownBlue","useChatbotContext","useStyles","GlobalStyle","XAiSender","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","ActionHeader","_ref","_last$extra","_ref$execute","execute","_ref$thinks","thinks","styles","_useState","_useState2","_slicedToArray","expanded","setExpanded","_useState3","_useState4","executeExpanded","setExecuteExpanded","length","last","name","icon","extra","className","actionHeaderWrapper","children","actionTitle","onClick","v","src","alt","actionHeaderIcon","flex1","w","actionHeaderDetail","actionDetailTitle","pl","actionDetailContent","style","whiteSpace","executeHiddenWrapper","h","executeWrapper","executeTitle","executeHeaderIcon","executeContent","map","action","_action$extra","_action$extra2","_action$extra3","thinkIcon2","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","concat","uniqueId","defaultActions","key","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$clearBtn","clearBtnShow","_mergedProps$inputSho","inputShow","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$empty","empty","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","messageTop","_useState5","_useState6","content","setContent","lastMessageId","isScriptScrolling","chatId","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref2","data","_ref2$lastMessage","lastMessage","flex","gap","index","_action$render","title","cursor","render","call","MessageFooter","_ref3","_ref3$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","maxWidth","classNames","user","suggestion","visibility","variant","handleSend","type","str","trim","handleChange","handleStop","NavBar","subtitle","confirmClear","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","messageList","items","msg","_ref4","role","status","_ref4$execute","_ref4$thinks","_ref4$extra","noFooter","stepContent","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","htmlString","item","html2","stepHtmlString","stepLine","vertical","onItemClick","info","description","footer","failed","value","onChange","onSubmit"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Tooltip,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Prompts,\n} from '@ant-design/x';\nimport {\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport thinkIcon from '@/assets/think.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowDownBlue from '@/assets/arrow-down-blue.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\nimport XAiSender from '../XAiSender';\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n execute: any[];\n thinks: string;\n}\n\n// ActionHeader 组件\nexport const ActionHeader: React.FC<ActionHeaderProps> = ({ execute = [], thinks = '' }) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(true);\n const [executeExpanded, setExecuteExpanded] = useState(false);\n\n // 关键修复:只要有思考内容或执行过程就显示,不要同时要求两者都有\n if (!thinks && (!execute || execute.length === 0)) return null;\n\n const last = execute[execute.length - 1] || {};\n const { name } = last;\n const icon = last?.icon || last?.extra?.icon;\n\n return (\n <div className={styles.actionHeaderWrapper}>\n {!expanded && (\n <div className={styles.actionTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />\n <span className={styles.flex1}>运行过程</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n )}\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={thinkIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n\n {thinks && (\n <div className={styles.actionDetailContent} style={{ whiteSpace: 'pre-line' }}>\n {thinks}\n </div>\n )}\n\n {execute && execute.length > 0 && (\n <>\n {!executeExpanded && (\n <div className={styles.executeHiddenWrapper} onClick={() => setExecuteExpanded((v) => !v)}>\n {icon && <img src={icon} alt=\"icon\" className={styles.h(15)} />}\n <span className={styles.flex1}>{name}</span>\n <img alt=\"工具icon\" src={arrowDownBlue} className={styles.w('16px')} />\n </div>\n )}\n {executeExpanded && (\n <div className={styles.executeWrapper}>\n <div className={styles.executeTitle} onClick={() => setExecuteExpanded((v) => !v)}>\n <img src={groupIcon} alt=\"icon\" className={styles.executeHeaderIcon} />\n <span className={styles.flex1}>隐藏运行详情</span>\n <img alt=\"展开详情icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n <div className={styles.executeContent}>\n {execute.map((action: any, idx: number) => {\n const thinkIcon2 = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n {thinkIcon2 && <img src={thinkIcon2} alt=\"icon\" className={styles.actionHeaderIcon} />}\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n )}\n </div>\n );\n};\n\n// 默认消息功能区\nexport const defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n const styles = useStyles();\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n inputShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n empty = null,\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n // 消息顶部\n messageTop,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [content, setContent] = useState<string>(text); // 输入框文本\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n {action.render?.(index, data)}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // 触发发送\n const handleSend = (type: string, str: string) => {\n if (str.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.(type, str);\n setContent(''); // 发送后清空输入框内容\n scrollToBottom();\n }\n };\n\n // 输出内容\n const handleChange = (str: string) => {\n setContent(str);\n };\n\n // 停止生成\n const handleStop = () => {\n onStop?.();\n };\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n };\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n empty || (\n <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n className={styles.messageList}\n items={messages.map((msg: any) => {\n const { id, role, status, type, execute = [], thinks = '', extra = { noFooter: false }, stepContent } = msg as Messages;\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => messageTop\n || (\n <ActionHeader\n execute={execute}\n thinks={thinks}\n />\n )),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"ai-markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n {/* 输出阶段性回答内容 */}\n {stepContent?.length && stepContent.map((item) => {\n // 输出html字符串\n const html2 = md.render(item.content || '');\n // 生成React节点\n const stepHtmlString = reactHtmlParser(html2);\n return (\n <div\n key={item.id}\n className=\"ai-markdown-body step-content\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n <div>\n {stepHtmlString}\n </div>\n <div className={styles.stepLine} />\n </div>\n );\n })}\n {/** 输出最终回答内容 */}\n <div\n className=\"ai-markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n return (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />\n </>\n )\n );\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n {/* 输入框 */}\n { inputShow && (\n <XAiSender\n value={content}\n loading={loading}\n footerTips={footerTips}\n clearBtnShow={clearBtnShow}\n onChange={handleChange}\n onSubmit={handleSend}\n onStop={handleStop}\n onClear={confirmClear}\n />\n ) }\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useRef","useState","useMemo","Tooltip","Flex","Bubble","Prompts","Attachments","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","arrowUp","arrowDown","thinkIcon","groupIcon","arrowDownBlue","useChatbotContext","useStyles","GlobalStyle","XAiSender","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","ActionHeader","_ref","_last$extra","_ref$execute","execute","_ref$thinks","thinks","styles","_useState","_useState2","_slicedToArray","expanded","setExpanded","_useState3","_useState4","executeExpanded","setExecuteExpanded","length","last","name","icon","extra","className","actionHeaderWrapper","children","actionTitle","onClick","v","src","alt","actionHeaderIcon","flex1","w","actionHeaderDetail","actionDetailTitle","pl","actionDetailContent","style","whiteSpace","executeHiddenWrapper","h","executeWrapper","executeTitle","executeHeaderIcon","executeContent","map","action","_action$extra","_action$extra2","_action$extra3","thinkIcon2","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","concat","uniqueId","defaultActions","key","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_ref2","_ref2$navbarShow","navbarShow","navbar","_ref2$renderNavbar","renderNavbar","_ref2$clearBtnShow","clearBtnShow","_ref2$inputShow","inputShow","_ref2$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_ref2$text","text","_ref2$footerTips","footerTips","_ref2$empty","empty","_ref2$emptyStateImage","emptyStateImage","_ref2$emptyStateText","emptyStateText","_ref2$messageActions","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","messageTop","enableUpload","uploadRequest","_useState5","_useState6","content","setContent","_useState7","_useState8","files","setFiles","lastMessageId","isScriptScrolling","chatId","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref3","data","_ref3$lastMessage","lastMessage","flex","gap","index","_action$render","title","cursor","render","call","MessageFooter","_ref4","_ref4$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","maxWidth","classNames","user","suggestion","visibility","variant","handleSend","obj","handleChange","str","handleStop","NavBar","subtitle","confirmClear","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","messageList","items","msg","_ref5","role","status","type","_ref5$execute","_ref5$thinks","_ref5$extra","noFooter","stepContent","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","htmlString","item","html2","stepHtmlString","stepLine","vertical","onItemClick","info","description","footer","_msg$content3","msgFiles","wrap","justify","f","FileCard","uid","fileId","fileName","url","fileUrl","size","fileSize","failed","value","onChangeFiles","onChange","onSubmit"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Tooltip,\n GetProp,\n Flex,\n} from 'antd';\nimport {\n Bubble,\n Prompts,\n Attachments,\n} from '@ant-design/x';\nimport {\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport type { Attachment } from '@ant-design/x/es/attachments';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport thinkIcon from '@/assets/think.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowDownBlue from '@/assets/arrow-down-blue.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\nimport XAiSender from '../XAiSender';\nimport type { SendContent } from '@/types';\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n execute: any[];\n thinks: string;\n}\n\n// ActionHeader 组件\nexport const ActionHeader: React.FC<ActionHeaderProps> = ({ execute = [], thinks = '' }) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(true);\n const [executeExpanded, setExecuteExpanded] = useState(false);\n\n // 关键修复:只要有思考内容或执行过程就显示,不要同时要求两者都有\n if (!thinks && (!execute || execute.length === 0)) return null;\n\n const last = execute[execute.length - 1] || {};\n const { name } = last;\n const icon = last?.icon || last?.extra?.icon;\n\n return (\n <div className={styles.actionHeaderWrapper}>\n {!expanded && (\n <div className={styles.actionTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />\n <span className={styles.flex1}>运行过程</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n )}\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={thinkIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n\n {thinks && (\n <div className={styles.actionDetailContent} style={{ whiteSpace: 'pre-line' }}>\n {thinks}\n </div>\n )}\n\n {execute && execute.length > 0 && (\n <>\n {!executeExpanded && (\n <div className={styles.executeHiddenWrapper} onClick={() => setExecuteExpanded((v) => !v)}>\n {icon && <img src={icon} alt=\"icon\" className={styles.h(15)} />}\n <span className={styles.flex1}>{name}</span>\n <img alt=\"工具icon\" src={arrowDownBlue} className={styles.w('16px')} />\n </div>\n )}\n {executeExpanded && (\n <div className={styles.executeWrapper}>\n <div className={styles.executeTitle} onClick={() => setExecuteExpanded((v) => !v)}>\n <img src={groupIcon} alt=\"icon\" className={styles.executeHeaderIcon} />\n <span className={styles.flex1}>隐藏运行详情</span>\n <img alt=\"展开详情icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n <div className={styles.executeContent}>\n {execute.map((action: any, idx: number) => {\n const thinkIcon2 = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n {thinkIcon2 && <img src={thinkIcon2} alt=\"icon\" className={styles.actionHeaderIcon} />}\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n )}\n </div>\n );\n};\n\n// 默认消息功能区\nexport const defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n const styles = useStyles();\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n inputShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n empty = null,\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n // 消息顶部\n messageTop,\n enableUpload,\n uploadRequest,\n } = mergedProps as XAiChatbotProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [content, setContent] = useState<string>(text); // 输入框文本\n const [files, setFiles] = useState<Attachment[]>([]);\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n {action.render?.(index, data)}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // 触发发送\n const handleSend = (obj: SendContent) => {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.(obj);\n setContent(''); // 发送后清空输入框内容\n setFiles([]); // 发送后清空文件\n scrollToBottom();\n };\n\n // 输出内容\n const handleChange = (str: string) => {\n setContent(str);\n };\n\n // 停止生成\n const handleStop = () => {\n onStop?.();\n };\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n };\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n empty || (\n <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n className={styles.messageList}\n items={messages.map((msg: any) => {\n const { id, role, status, type, execute = [], thinks = '', extra = { noFooter: false }, stepContent } = msg as Messages;\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => messageTop\n || (\n <ActionHeader\n execute={execute}\n thinks={thinks}\n />\n )),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"ai-markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n {/* 输出阶段性回答内容 */}\n {stepContent?.length && stepContent.map((item) => {\n // 输出html字符串\n const html2 = md.render(item.content || '');\n // 生成React节点\n const stepHtmlString = reactHtmlParser(html2);\n return (\n <div\n key={item.id}\n className=\"ai-markdown-body step-content\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n <div>\n {stepHtmlString}\n </div>\n <div className={styles.stepLine} />\n </div>\n );\n })}\n {/** 输出最终回答内容 */}\n <div\n className=\"ai-markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id);\n if (info.data.description) {\n onSend?.({ text: info.data.description as string });\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n const msgFiles = msg.content?.files || [];\n if (role === MessageRole.user && msgFiles.length) {\n return (\n <Flex gap={8} wrap justify=\"flex-end\" style={{ maxWidth: 600 }}>\n {msgFiles.map((f: any) => (\n <Attachments.FileCard\n key={f.fileId}\n item={{\n uid: f.fileId,\n name: f.fileName,\n url: f.fileUrl,\n size: f.fileSize,\n }}\n />\n ))}\n </Flex>\n );\n }\n if (role === MessageRole.assistant && status !== MessageStatus.failed) {\n return <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />;\n }\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n {/* 输入框 */}\n { inputShow && (\n <XAiSender\n value={content}\n loading={loading}\n footerTips={footerTips}\n clearBtnShow={clearBtnShow}\n enableUpload={enableUpload}\n files={files}\n onChangeFiles={setFiles}\n uploadRequest={uploadRequest}\n onChange={handleChange}\n onSubmit={handleSend}\n onStop={handleStop}\n onClear={confirmClear}\n />\n ) }\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ export var useStyles = withBasicStyles(function () {
14
14
  avatar: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ", ";\n "])), borderGray),
15
15
  title: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-weight: 600;\n font-size: 16px;\n color: ", ";\n "])), darkGray),
16
16
  subtitle: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: ", ";\n margin-top: 2px;\n "])), lightGray),
17
- messageContainer: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n flex: 1;\n overflow-y: auto;\n padding: 16px 0;\n // background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n\n &::-webkit-scrollbar {\n display: none;\n }\n "]))),
17
+ messageContainer: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n flex: 1;\n overflow-y: auto;\n padding: 16px 0;\n // background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n .ant-attachment-list-card-type-preview {\n width: 52px;\n height: 52px;\n }\n .ant-attachment .ant-attachment-list-upload-btn {\n width: 52px;\n height: 52px;\n font-size: 24px;\n }\n .ant-attachment-list-card-type-overview {\n padding: 9px;\n line-height: 1;\n }\n .ant-attachment-list-card-type-overview .ant-attachment-list-card-icon {\n display: flex;\n padding-top: 0px;\n }\n .ant-attachment-list-card .ant-attachment-list-card-name {\n margin-bottom: 4px;\n }\n .ant-attachment-list-card-motion-leave-active {\n display: none;\n }\n .ant-progress-inner {\n width: 44px!important;\n height: 44px!important;\n }\n .ant-progress-text {\n font-size: 12px;\n }\n "]))),
18
18
  messageList: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n padding: 0 16px;\n /* \u9690\u85CF webkit \u6D4F\u89C8\u5668\u7684\u6EDA\u52A8\u6761 */\n &::-webkit-scrollbar {\n display: none;\n }\n \n /* \u9690\u85CF Firefox \u7684\u6EDA\u52A8\u6761 */\n scrollbar-width: none;\n \n /* \u9690\u85CF IE \u7684\u6EDA\u52A8\u6761 */\n -ms-overflow-style: none;\n "]))),
19
19
  emptyWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n user-select: none;\n "]))),
20
20
  emptyImg: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n "]))),
@@ -1 +1 @@
1
- {"version":3,"names":["React","css","globalCss","Global","withBasicStyles","primaryBlue","lightBlue","darkGray","lightGray","borderGray","jsx","_jsx","useStyles","wrapper","_templateObject","_taggedTemplateLiteral","navbar","_templateObject2","userAvatar","_templateObject3","avatar","_templateObject4","title","_templateObject5","subtitle","_templateObject6","messageContainer","_templateObject7","messageList","_templateObject8","emptyWrapper","_templateObject9","emptyImg","_templateObject10","message","_templateObject11","messageRight","_templateObject12","quickReplies","_templateObject13","replyItem","_templateObject14","highlight","_templateObject15","stepLine","_templateObject16","inputBar","_templateObject17","input","_templateObject18","actionDetailContent","_templateObject19","actionHeaderWrapper","_templateObject20","actionHeaderIcon","_templateObject21","actionHeaderDetail","_templateObject22","actionDetailTitle","_templateObject23","executeHeaderIcon","_templateObject24","actionTitle","_templateObject25","actionHeaderDetailItem","_templateObject26","actionHeaderCost","_templateObject27","executeHiddenWrapper","_templateObject28","executeTitle","_templateObject29","executeContent","_templateObject30","executeWrapper","_templateObject31","GlobalStyle","styles","_templateObject32"],"sources":["../../../../src/components/XAiChatbot/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles, primaryBlue, lightBlue, darkGray, lightGray, borderGray } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n wrapper: css`\n display: flex;\n flex-direction: column;\n // max-height: 812px;\n min-height: 300px;\n max-width: 800px;\n width: 100%;\n height: 100%;\n min-width: 375px;\n // background-color: #fff;\n // border: 1px solid rgba(80,96,122,.15);\n border-radius: 12px;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n `,\n\n navbar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px;\n border-bottom: 1px solid ${borderGray};\n // background-color: #fff;\n `,\n\n userAvatar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n `,\n\n avatar: css`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ${borderGray};\n `,\n\n title: css`\n font-weight: 600;\n font-size: 16px;\n color: ${darkGray};\n `,\n\n subtitle: css`\n font-size: 12px;\n color: ${lightGray};\n margin-top: 2px;\n `,\n\n messageContainer: css`\n flex: 1;\n overflow-y: auto;\n padding: 16px 0;\n // background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n\n &::-webkit-scrollbar {\n display: none;\n }\n `,\n\n messageList: css`\n padding: 0 16px;\n /* 隐藏 webkit 浏览器的滚动条 */\n &::-webkit-scrollbar {\n display: none;\n }\n \n /* 隐藏 Firefox 的滚动条 */\n scrollbar-width: none;\n \n /* 隐藏 IE 的滚动条 */\n -ms-overflow-style: none;\n `,\n\n emptyWrapper: css`\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n user-select: none;\n `,\n\n emptyImg: css`\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n `,\n\n message: css`\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ${lightBlue};\n color: ${darkGray};\n font-size: 14px;\n line-height: 1.4;\n word-break: break-word;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n `,\n\n messageRight: css`\n align-self: flex-end;\n background-color: ${primaryBlue};\n color: white;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n `,\n\n quickReplies: css`\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n overflow-x: auto;\n `,\n\n replyItem: css`\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ${primaryBlue};\n border-radius: 20px;\n background-color: #fff;\n color: ${primaryBlue};\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ${primaryBlue};\n color: #fff;\n }\n `,\n\n highlight: css`\n background-color: ${primaryBlue};\n color: white;\n border-color: ${primaryBlue};\n `,\n\n stepLine: css`\n border-top: 1px dashed #C3CFFB;\n width: 100%;\n margin: 16px 0;\n `,\n\n inputBar: css`\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n `,\n\n input: css`\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ${borderGray};\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ${primaryBlue};\n box-shadow: 0 0 3px ${primaryBlue};\n }\n `,\n actionDetailContent: css`\n border-left: 1px solid #C1C3CD;\n padding-right: 16px;\n padding-left: 11px;\n margin-bottom: 12px;\n margin-left: 25px;\n font-weight: 400;\n font-size: 14px;\n color: #767985;\n line-height: 20px;\n display: inline-block;\n white-space: 'pre-line';\n `,\n actionHeaderWrapper: css`\n margin-bottom: 12px;\n `,\n actionHeaderIcon: css`\n height: 14px;\n margin-right: 5px;\n `,\n actionHeaderDetail: css`\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n `,\n actionDetailTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n `,\n executeHeaderIcon: css`\n height: 12px;\n padding-right: 10px !important;\n `,\n actionTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n border-radius: 8px;\n min-width: 200px;\n `,\n actionHeaderDetailItem: css`\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n `,\n actionHeaderCost: css`\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n `,\n executeHiddenWrapper: css`\n background: #FFFFFF;\n border-radius: 8px;\n margin: 12px;\n display: flex;\n align-items: center;\n gap: 8px;\n height: 40px;\n box-sizing: border-box;\n padding: 0px 16px;\n font-size: 14px;\n margin-bottom: 12px;\n color: #3961F2;\n `,\n executeTitle: css`\n display: flex;\n align-items: center;\n padding: 6px 16px;\n height: 40px;\n box-sizing: border-box;\n cursor: pointer;\n `,\n executeContent: css`\n border-top: 1px solid rgba(0,0,0,0.08);\n padding-top: 10px;\n `,\n executeWrapper: css`\n background: #FFFFFF;\n border-radius: 8px;\n padding-bottom: 1px;\n margin: 12px;\n `,\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* 你想覆盖的其他样式 */\n }\n\n .ant-sender-content {\n textarea {\n word-break: break-all;\n }\n }\n\n .ant-avatar {\n background-color: transparent;\n }\n\n .ant-sender-actions-list {\n margin-left: -40px;\n }\n\n .ant-sender {\n box-shadow: none !important;\n }\n\n .ant-prompts-item {\n padding-block: 8px !important;\n }\n\n /* 用户消息气泡背景色 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* 助手消息气泡背景色 */\n .ant-bubble .assistant-content {\n background-color: transparent;\n min-height: 0;\n padding: 0;\n }\n `}\n />\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","css","globalCss","Global","withBasicStyles","primaryBlue","lightBlue","darkGray","lightGray","borderGray","jsx","_jsx","useStyles","wrapper","_templateObject","_taggedTemplateLiteral","navbar","_templateObject2","userAvatar","_templateObject3","avatar","_templateObject4","title","_templateObject5","subtitle","_templateObject6","messageContainer","_templateObject7","messageList","_templateObject8","emptyWrapper","_templateObject9","emptyImg","_templateObject10","message","_templateObject11","messageRight","_templateObject12","quickReplies","_templateObject13","replyItem","_templateObject14","highlight","_templateObject15","stepLine","_templateObject16","inputBar","_templateObject17","input","_templateObject18","actionDetailContent","_templateObject19","actionHeaderWrapper","_templateObject20","actionHeaderIcon","_templateObject21","actionHeaderDetail","_templateObject22","actionDetailTitle","_templateObject23","executeHeaderIcon","_templateObject24","actionTitle","_templateObject25","actionHeaderDetailItem","_templateObject26","actionHeaderCost","_templateObject27","executeHiddenWrapper","_templateObject28","executeTitle","_templateObject29","executeContent","_templateObject30","executeWrapper","_templateObject31","GlobalStyle","styles","_templateObject32"],"sources":["../../../../src/components/XAiChatbot/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles, primaryBlue, lightBlue, darkGray, lightGray, borderGray } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n wrapper: css`\n display: flex;\n flex-direction: column;\n // max-height: 812px;\n min-height: 300px;\n max-width: 800px;\n width: 100%;\n height: 100%;\n min-width: 375px;\n // background-color: #fff;\n // border: 1px solid rgba(80,96,122,.15);\n border-radius: 12px;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n `,\n\n navbar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px;\n border-bottom: 1px solid ${borderGray};\n // background-color: #fff;\n `,\n\n userAvatar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n `,\n\n avatar: css`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ${borderGray};\n `,\n\n title: css`\n font-weight: 600;\n font-size: 16px;\n color: ${darkGray};\n `,\n\n subtitle: css`\n font-size: 12px;\n color: ${lightGray};\n margin-top: 2px;\n `,\n\n messageContainer: css`\n flex: 1;\n overflow-y: auto;\n padding: 16px 0;\n // background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n .ant-attachment-list-card-type-preview {\n width: 52px;\n height: 52px;\n }\n .ant-attachment .ant-attachment-list-upload-btn {\n width: 52px;\n height: 52px;\n font-size: 24px;\n }\n .ant-attachment-list-card-type-overview {\n padding: 9px;\n line-height: 1;\n }\n .ant-attachment-list-card-type-overview .ant-attachment-list-card-icon {\n display: flex;\n padding-top: 0px;\n }\n .ant-attachment-list-card .ant-attachment-list-card-name {\n margin-bottom: 4px;\n }\n .ant-attachment-list-card-motion-leave-active {\n display: none;\n }\n .ant-progress-inner {\n width: 44px!important;\n height: 44px!important;\n }\n .ant-progress-text {\n font-size: 12px;\n }\n `,\n\n messageList: css`\n padding: 0 16px;\n /* 隐藏 webkit 浏览器的滚动条 */\n &::-webkit-scrollbar {\n display: none;\n }\n \n /* 隐藏 Firefox 的滚动条 */\n scrollbar-width: none;\n \n /* 隐藏 IE 的滚动条 */\n -ms-overflow-style: none;\n `,\n\n emptyWrapper: css`\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n user-select: none;\n `,\n\n emptyImg: css`\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n `,\n\n message: css`\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ${lightBlue};\n color: ${darkGray};\n font-size: 14px;\n line-height: 1.4;\n word-break: break-word;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n `,\n\n messageRight: css`\n align-self: flex-end;\n background-color: ${primaryBlue};\n color: white;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n `,\n\n quickReplies: css`\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n overflow-x: auto;\n `,\n\n replyItem: css`\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ${primaryBlue};\n border-radius: 20px;\n background-color: #fff;\n color: ${primaryBlue};\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ${primaryBlue};\n color: #fff;\n }\n `,\n\n highlight: css`\n background-color: ${primaryBlue};\n color: white;\n border-color: ${primaryBlue};\n `,\n\n stepLine: css`\n border-top: 1px dashed #C3CFFB;\n width: 100%;\n margin: 16px 0;\n `,\n\n inputBar: css`\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n `,\n\n input: css`\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ${borderGray};\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ${primaryBlue};\n box-shadow: 0 0 3px ${primaryBlue};\n }\n `,\n actionDetailContent: css`\n border-left: 1px solid #C1C3CD;\n padding-right: 16px;\n padding-left: 11px;\n margin-bottom: 12px;\n margin-left: 25px;\n font-weight: 400;\n font-size: 14px;\n color: #767985;\n line-height: 20px;\n display: inline-block;\n white-space: 'pre-line';\n `,\n actionHeaderWrapper: css`\n margin-bottom: 12px;\n `,\n actionHeaderIcon: css`\n height: 14px;\n margin-right: 5px;\n `,\n actionHeaderDetail: css`\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n `,\n actionDetailTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n `,\n executeHeaderIcon: css`\n height: 12px;\n padding-right: 10px !important;\n `,\n actionTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n border-radius: 8px;\n min-width: 200px;\n `,\n actionHeaderDetailItem: css`\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n `,\n actionHeaderCost: css`\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n `,\n executeHiddenWrapper: css`\n background: #FFFFFF;\n border-radius: 8px;\n margin: 12px;\n display: flex;\n align-items: center;\n gap: 8px;\n height: 40px;\n box-sizing: border-box;\n padding: 0px 16px;\n font-size: 14px;\n margin-bottom: 12px;\n color: #3961F2;\n `,\n executeTitle: css`\n display: flex;\n align-items: center;\n padding: 6px 16px;\n height: 40px;\n box-sizing: border-box;\n cursor: pointer;\n `,\n executeContent: css`\n border-top: 1px solid rgba(0,0,0,0.08);\n padding-top: 10px;\n `,\n executeWrapper: css`\n background: #FFFFFF;\n border-radius: 8px;\n padding-bottom: 1px;\n margin: 12px;\n `,\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* 你想覆盖的其他样式 */\n }\n\n .ant-sender-content {\n textarea {\n word-break: break-all;\n }\n }\n\n .ant-avatar {\n background-color: transparent;\n }\n\n .ant-sender-actions-list {\n margin-left: -40px;\n }\n\n .ant-sender {\n box-shadow: none !important;\n }\n\n .ant-prompts-item {\n padding-block: 8px !important;\n }\n\n /* 用户消息气泡背景色 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* 助手消息气泡背景色 */\n .ant-bubble .assistant-content {\n background-color: transparent;\n min-height: 0;\n padding: 0;\n }\n `}\n />\n);\n"],"mappings":"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"}
@@ -48,7 +48,9 @@ export var 单聊天窗口实例 = {
48
48
  var handleSendMessage = function handleSendMessage() {
49
49
  var _providerRef$current;
50
50
  if ((_providerRef$current = providerRef.current) !== null && _providerRef$current !== void 0 && _providerRef$current.chat) {
51
- providerRef.current.chat('你好,AI!');
51
+ providerRef.current.chat({
52
+ text: '你好,AI!'
53
+ });
52
54
  } else {
53
55
  console.log('XAiProvider ref 未准备好或 chat 方法不存在');
54
56
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Button","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","onError","providerError","onMessage","data","navbarShow","navbar","subtitle","avatar","url","token","appNo","providerId","多容器示例","width","携带历史记录示例","overflow","flex","chatProps","clearBtnShow"],"sources":["../../../../src/components/XAiProvider/XAiProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAiProvider from './index';\nimport XAiChatbot from '../XAiChatbot';\nimport XAiConversations from '../XAiConversations';\n\nconst meta: Meta<typeof XAiProvider> = {\n title: 'AI组件/XAiProvider AI容器',\n component: XAiProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: { \n summary: 'XAiProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n }`\n },\n category: '配置选项'\n }\n }\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat('你好,AI!');\n } else {\n console.log('XAiProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '800px', height: '600px' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIl0sImV4cCI6MTc2NDY3MTc2MSwianRpIjoiRl9Zb0JBXzhIN01XempDZUxQenEzNTBXRnNrIiwiY2xpZW50X2lkIjoiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIn0.mtGBQfwNtIkhcOumsOvzMj2BdYUxAPwZ9GcvNLuCNGVzFkqkLkfy_LALjYR2B-RaNj11_Cx7DcewtmLceG31KfnCiFY24BD_CbwoahdFh40SYRTFnjDf8XQI22E63h5NxTuldPx0itYLUPaUO6NAubnRON40eQPGZKygM0i72ULsQQAyRpJLYAaTjUxyPIW3JmMzQmYiRx641JeAYAup4-ZNw-Fqmd-8_xK3kN-a832xM-M_eqXgn8yMttn0uFv95lxPdJ1_-mp2zx8N4TBCYVkHo3u_PjM65S3_p4u1dFGXBDAsxtVMgmVGeUvubTLFuDM153rz9MZ7aOuu_c8K7w',\n config: {\n appNo: 'PGlA63A1Gt9oZpxa6YCWMciH',\n },\n providerId: 'demo-provider',\n },\n};\n\n\n// 多个 Provider 示例\nexport const 多容器示例: Story = {\n render: (args) => (\n <div style={{ display: 'flex', gap: '20px' }}>\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-1\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 1',\n subtitle: '第一个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-2\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 2',\n subtitle: '第二个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n url: 'https://api.example.com/ai',\n token: 'your-token-here',\n },\n};\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录示例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n return (\n <div style={{ width: '1080px', height: '600px', overflow: 'hidden' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiConversations />\n <div style={{ flex: 1, display: 'flex', justifyContent: 'center' }}>\n <XAiChatbot\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </div>\n </XAiProvider>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsicmN4anBibU44VVgxVVRRbTU0b0ZNTEtwIl0sImV4cCI6MTc2NDkzNjIzNywianRpIjoiTTU3ZjVhWHU0MVJENTN6dFJlU2pXaUZTTXJzIiwiY2xpZW50X2lkIjoicmN4anBibU44VVgxVVRRbTU0b0ZNTEtwIn0.Qnfq9ndj-Wd3Z-XX5fTPL2QyzVPWb3QQ8mmWVD5LfcKsEb9KQ8qwA1DBuC_6bhqT2CrWEHr9VbrwhES5a2Hh63hqtQYaAnZ4hqigutkKiR_wB-vrnhfrnupiXrrO0oYRCCLAvIsZS0KCqq2U3MGBVGPqciofUbjCrROgSXXDpNmosJKR8HBAmM8dWElCSuTGm3J0T3f0nb_4AYq10ssl8Pfy7b7HnDNIccDj-IuBKfqKrQR0Uk6CkOcgc1tUVZdcvqGzZos7ms7yPsfrq9lJ4-mx8Z-OyCsDrXJU-VpUCLZmLGWfWPKAR3FDc3KnyCZAAWkzVwjLZG9vBmzsOW6Unw',\n config: {\n appNo: 'rcxjpbmN8UX1UTQm54oFMLKp',\n chatProps: {\n clearBtnShow: false\n }\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
1
+ {"version":3,"names":["React","Button","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","onError","providerError","onMessage","data","navbarShow","navbar","subtitle","avatar","url","token","appNo","providerId","多容器示例","width","携带历史记录示例","overflow","flex","chatProps","clearBtnShow"],"sources":["../../../../src/components/XAiProvider/XAiProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAiProvider from './index';\nimport XAiChatbot from '../XAiChatbot';\nimport XAiConversations from '../XAiConversations';\n\nconst meta: Meta<typeof XAiProvider> = {\n title: 'AI组件/XAiProvider AI容器',\n component: XAiProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: {\n summary: 'XAiProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n }`,\n },\n category: '配置选项',\n },\n },\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: '你好,AI!' });\n } else {\n console.log('XAiProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '800px', height: '600px' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIl0sImV4cCI6MTc2NDY3MTc2MSwianRpIjoiRl9Zb0JBXzhIN01XempDZUxQenEzNTBXRnNrIiwiY2xpZW50X2lkIjoiZ2JWemZPVjhTa1oxdGRMT3BYNWZyVXpMIn0.mtGBQfwNtIkhcOumsOvzMj2BdYUxAPwZ9GcvNLuCNGVzFkqkLkfy_LALjYR2B-RaNj11_Cx7DcewtmLceG31KfnCiFY24BD_CbwoahdFh40SYRTFnjDf8XQI22E63h5NxTuldPx0itYLUPaUO6NAubnRON40eQPGZKygM0i72ULsQQAyRpJLYAaTjUxyPIW3JmMzQmYiRx641JeAYAup4-ZNw-Fqmd-8_xK3kN-a832xM-M_eqXgn8yMttn0uFv95lxPdJ1_-mp2zx8N4TBCYVkHo3u_PjM65S3_p4u1dFGXBDAsxtVMgmVGeUvubTLFuDM153rz9MZ7aOuu_c8K7w',\n config: {\n appNo: 'PGlA63A1Gt9oZpxa6YCWMciH',\n },\n providerId: 'demo-provider',\n },\n};\n\n// 多个 Provider 示例\nexport const 多容器示例: Story = {\n render: (args) => (\n <div style={{ display: 'flex', gap: '20px' }}>\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-1\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 1',\n subtitle: '第一个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-2\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 2',\n subtitle: '第二个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n url: 'https://api.example.com/ai',\n token: 'your-token-here',\n },\n};\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录示例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n return (\n <div style={{ width: '1080px', height: '600px', overflow: 'hidden' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiConversations />\n <div style={{ flex: 1, display: 'flex', justifyContent: 'center' }}>\n <XAiChatbot\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </div>\n </XAiProvider>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsicmN4anBibU44VVgxVVRRbTU0b0ZNTEtwIl0sImV4cCI6MTc2NDkzNjIzNywianRpIjoiTTU3ZjVhWHU0MVJENTN6dFJlU2pXaUZTTXJzIiwiY2xpZW50X2lkIjoicmN4anBibU44VVgxVVRRbTU0b0ZNTEtwIn0.Qnfq9ndj-Wd3Z-XX5fTPL2QyzVPWb3QQ8mmWVD5LfcKsEb9KQ8qwA1DBuC_6bhqT2CrWEHr9VbrwhES5a2Hh63hqtQYaAnZ4hqigutkKiR_wB-vrnhfrnupiXrrO0oYRCCLAvIsZS0KCqq2U3MGBVGPqciofUbjCrROgSXXDpNmosJKR8HBAmM8dWElCSuTGm3J0T3f0nb_4AYq10ssl8Pfy7b7HnDNIccDj-IuBKfqKrQR0Uk6CkOcgc1tUVZdcvqGzZos7ms7yPsfrq9lJ4-mx8Z-OyCsDrXJU-VpUCLZmLGWfWPKAR3FDc3KnyCZAAWkzVwjLZG9vBmzsOW6Unw',\n config: {\n appNo: 'rcxjpbmN8UX1UTQm54oFMLKp',\n chatProps: {\n clearBtnShow: false,\n },\n },\n providerId: 'demo-provider',\n },\n};\n"],"mappings":"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"}
@@ -124,7 +124,7 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
124
124
  }, []);
125
125
 
126
126
  // 发送消息
127
- var handleSendMessage = function handleSendMessage(_type, content) {
127
+ var handleSendMessage = function handleSendMessage(content) {
128
128
  chat(content);
129
129
  };
130
130
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useImperativeHandle","useState","useRef","useEffect","message","Divider","Modal","Input","ConfigProvider","copy","XProvider","ExclamationCircleFilled","LikeFilled","LikeOutlined","XAiContext","useAgentGenerator","MOBILE_MAX_WIDTH","API_SUCCESS_CODE","userIcon","primaryBlue","DislikeFeedback","addFeedback","defaultActions","jsx","_jsx","jsxs","_jsxs","confirm","XAiProvider","_ref","ref","_config$chatProps","_config$session","_config$chatProps2","_ref$url","url","window","location","origin","token","config","_ref$providerId","providerId","onSuccess","onError","onMessage","children","_ref2","chatProps","_ref2$textSpeed","textSpeed","_useAgentGenerator","appInfo","chat","stopChat","reChat","createNewChat","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","setCurrentSessionDetail","setMessages","_ref3","appName","icon","getAppInfo","getMessages","getSessions","_useState","_useState2","_slicedToArray","isNarrow","setIsNarrow","divRef","div","current","resizeObserver","ResizeObserver","entries","_iterator","_createForOfIteratorHelper","_step","s","n","done","entry","value","width","contentRect","err","e","f","observe","initialWidth","offsetWidth","disconnect","handleSendMessage","_type","content","handleCreateNewMessage","handleActions","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","index","actionData","_ref5","id","_content$text","text","idx","_actionData$isLike","_ref6","appNo","isLike","_actionData$raw","_yield$addFeedback","result","wrap","_callee$","_context","prev","next","t0","abrupt","success","findIndex","item","length","filter","type","warning","requestId","raw","sent","code","map","_objectSpread","error","stop","_x","_x2","apply","arguments","handleSuggestMessageClick","_item","m","handleActiveChange","key","handleDeleteSession","sessionId","handleUpdateSession","title","menuConfig","conversation","items","label","danger","onClick","menuInfo","domEvent","stopPropagation","inputValue","defaultValue","autoFocus","style","onChange","target","okText","cancelText","okButtonProps","background","borderColor","color","onOk","trim","Promise","reject","onCancel","okType","ToolTip","messageData","finalResult","think","find","actionName","_ref7","extra","cost","tokenCount","display","alignItems","fontSize","flex","paddingRight","undefined","clearBtnShow","session","showSessionList","theme","colorPrimary","appTheme","Provider","avatar","src","alt","userAvatar","emptyStateImage","emptyStateText","footerTips","sessionTotal","total","activeKey","inputShow","messageTooltip","messageActions","concat","_toConsumableArray","tooltip","render","i","msg","_i","_msg$raw","activeColor","onSubmit","_ref8","_callee2","formData","_yield$addFeedback2","_callee2$","_context2","_x3","onSend","onClear","onNewChat","onStop","menu","onActiveChange","onSuggestMessageClick","onMessagesActionsCallback","isInProvider","height","position"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle, useState, useRef, useEffect } from 'react';\nimport { message, Divider, Modal, Input, ConfigProvider } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport type { ConversationsProps } from '@ant-design/x';\nimport { ExclamationCircleFilled, LikeFilled, LikeOutlined } from '@ant-design/icons';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport { MOBILE_MAX_WIDTH, API_SUCCESS_CODE } from '@/constants';\nimport userIcon from '@/assets/user.png';\nimport { primaryBlue } from '@/styles/common';\nimport DislikeFeedback from '../DislikeFeedback';\nimport { addFeedback } from '@/services/api';\nimport { defaultActions } from '../XAiChatbot';\n\nconst { confirm } = Modal;\n\nconst XAiProvider = forwardRef<XAiProviderHandle, XAiProviderProps>(({\n url = window.location.origin,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n onMessage,\n children,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n\n const { textSpeed = 55 } = config?.chatProps || {};\n\n const {\n appInfo,\n chat,\n stopChat,\n reChat,\n createNewChat,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n setCurrentSessionDetail,\n setMessages,\n } = useAgentGenerator({ url, token, config, onError, onSuccess, onMessage, textSpeed });\n\n const { appName, icon } = appInfo || {};\n\n useImperativeHandle(ref, () => ({\n chat,\n stopChat,\n reChat,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSessionDetail,\n }), [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSessionDetail]);\n\n const [isNarrow, setIsNarrow] = useState<boolean>(false);\n const divRef = useRef<HTMLDivElement>(null);\n\n // 监听容器宽度变化\n useEffect(() => {\n const div = divRef.current;\n if (!div) return;\n\n // 创建监听器\n const resizeObserver = new ResizeObserver((entries) => {\n // eslint-disable-next-line no-restricted-syntax\n for (const entry of entries) {\n const { width } = entry.contentRect;\n setIsNarrow(width <= MOBILE_MAX_WIDTH);\n }\n });\n\n // 开始监听\n resizeObserver.observe(div);\n\n // 初始化检查\n const initialWidth = div.offsetWidth;\n setIsNarrow(initialWidth <= MOBILE_MAX_WIDTH);\n\n // 清理函数\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n // 发送消息\n const handleSendMessage = (_type: string, content: string) => {\n chat(content);\n };\n\n // 清空消息\n const handleCreateNewMessage = () => {\n createNewChat();\n };\n\n // 工具栏按钮点击\n const handleActions = async (index: number, actionData: any) => {\n const { content, id } = actionData || {};\n const { text = '' } = content;\n switch (index) {\n case 0:\n reChat();\n break;\n case 1:\n copy(text);\n message.success('复制成功');\n break;\n case 2: {\n const idx = messages.findIndex((item) => item.id === id);\n if (idx >= 0) {\n // 删除该条消息及建议类消息\n if (messages.length - idx <= 2) {\n setMessages((prev) => prev.filter((item) => item.id !== id && item.type !== 'SuggestionMessage'));\n } else {\n // 非最新消息 只删除该条消息\n setMessages((prev) => prev.filter((item) => item.id !== id));\n }\n message.success('删除成功');\n }\n break;\n }\n case 3: {\n const { appNo } = config || {};\n const isLike = actionData.isLike ?? 0;\n if (isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (appNo) {\n const { result } = await addFeedback({\n url,\n token,\n appNo,\n requestId: actionData.raw?.requestId,\n isLike: 1,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('感谢您的反馈');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === id) {\n return {\n ...item,\n isLike: 1,\n };\n }\n return item;\n });\n });\n } else {\n message.error('反馈失败,请稍后再试');\n }\n }\n break;\n }\n }\n };\n\n // 建议消息点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev: any[]) => prev.filter((m: any) => m.id !== id));\n };\n\n // 切换会话\n const handleActiveChange = (key: string) => {\n setCurrentSessionDetail(key);\n };\n\n // 删除会话\n const handleDeleteSession = (sessionId: string) => {\n deleteSession(sessionId);\n };\n\n // 修改会话内容\n const handleUpdateSession = (sessionId: string, title: string) => {\n updateSession(sessionId, title);\n };\n\n // 会话操作菜单\n const menuConfig: ConversationsProps['menu'] = (conversation) => ({\n items: [\n {\n label: '重命名',\n key: 'edit',\n },\n {\n label: '删除',\n key: 'delete',\n danger: true,\n },\n ],\n onClick: (menuInfo) => {\n menuInfo.domEvent.stopPropagation();\n const { key } = menuInfo;\n switch (key) {\n case 'edit': {\n let inputValue = conversation.label as string || '';\n confirm({\n title: '编辑对话名称',\n icon: null,\n content: (\n <Input\n defaultValue={inputValue}\n autoFocus\n style={{ width: '100%' }}\n onChange={(e) => {\n inputValue = e.target.value;\n }}\n />\n ),\n okText: '确认',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#000', borderColor: '#000', color: '#fff' },\n },\n onOk: () => {\n if (!inputValue.trim()) {\n message.error('对话名称不能为空');\n return Promise.reject();\n }\n handleUpdateSession(conversation.key, inputValue);\n },\n onCancel: () => {\n // 静默处理\n },\n });\n break;\n }\n case 'delete':\n confirm({\n title: '确认删除?',\n icon: <ExclamationCircleFilled />,\n content: '该对话内容将被删除无法恢复。',\n okText: '确认删除',\n okType: 'danger',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#ff4d4f', borderColor: '#ff4d4f', color: '#fff' },\n },\n onOk() {\n handleDeleteSession(conversation.key);\n },\n onCancel() {\n //\n },\n });\n break;\n }\n },\n });\n\n const ToolTip = (messageData: any) => {\n const finalResult = (messageData?.think || []).find((item: any) => item.actionName === 'FINISHED');\n if (!finalResult) return null;\n const { cost, token: tokenCount } = finalResult.extra || {};\n if (!cost && !token) return null;\n return (\n <div style={{ display: 'flex', alignItems: 'center', fontSize: '12px', color: '#949494', flex: 1, paddingRight: '40px' }}>\n { (cost !== undefined && cost !== null) && <div>{cost}s</div> }\n { tokenCount && <Divider type=\"vertical\" /> }\n { tokenCount && <div>{ tokenCount } tokens</div> }\n </div>\n );\n };\n // 是否展示清空按钮\n const clearBtnShow = typeof config?.chatProps?.clearBtnShow !== 'undefined'\n ? config.chatProps.clearBtnShow\n : !config?.session?.showSessionList;\n\n return (\n <ConfigProvider theme={{\n token: {\n colorPrimary: appInfo?.appTheme || primaryBlue,\n },\n }}\n >\n <XProvider>\n <XAiContext.Provider value={{\n avatar: <img src={icon} alt=\"智能体头像\" />,\n userAvatar: <img src={userIcon} alt=\"用户头像\" />,\n emptyStateImage: icon,\n emptyStateText: appName,\n footerTips: '内容由AI生成,无法确保真实准确,仅供参考',\n providerId,\n sessionList,\n sessionTotal: sessionPagination.total,\n token,\n messages,\n loading,\n error: null,\n activeKey: currentSessionId,\n clearBtnShow,\n inputShow: config?.chatProps?.inputShow || true,\n isNarrow,\n messageTooltip: ToolTip,\n messageActions: [...defaultActions, {\n key: 'like',\n tooltip: '赞',\n render: (i, msg) => {\n const isLike = msg.isLike === 1;\n if (isLike) {\n return (\n <LikeFilled style={{ color: appInfo?.appTheme || primaryBlue }} />\n );\n }\n return <LikeOutlined />;\n },\n }, {\n key: 'dislike',\n tooltip: '踩',\n render: (_i, msg) => {\n const requestId = msg.raw?.requestId;\n return (\n <DislikeFeedback\n msg={msg}\n activeColor={appInfo?.appTheme || primaryBlue}\n onSubmit={async (formData) => {\n const { result } = await addFeedback({\n ...formData,\n requestId,\n isLike: -1,\n url,\n appNo: config?.appNo,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('已收到您的反馈,我们会努力做的更好');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === msg.id) {\n return {\n ...item,\n isLike: -1,\n };\n }\n return item;\n });\n });\n return true;\n }\n message.error('反馈失败,请稍后再试');\n return false;\n }}\n />\n );\n },\n }],\n onSend: handleSendMessage,\n onClear: handleCreateNewMessage,\n onNewChat: handleCreateNewMessage,\n onStop: stopChat,\n menu: menuConfig,\n onActiveChange: handleActiveChange,\n onSuggestMessageClick: handleSuggestMessageClick,\n onMessagesActionsCallback: handleActions,\n isInProvider: true,\n }}\n >\n <div\n ref={divRef}\n style={{\n display: 'flex',\n height: '100%',\n position: 'relative',\n }}\n >\n {children}\n </div>\n </XAiContext.Provider>\n </XProvider>\n </ConfigProvider>\n );\n});\n\nexport default XAiProvider;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","forwardRef","useImperativeHandle","useState","useRef","useEffect","message","Divider","Modal","Input","ConfigProvider","copy","XProvider","ExclamationCircleFilled","LikeFilled","LikeOutlined","XAiContext","useAgentGenerator","MOBILE_MAX_WIDTH","API_SUCCESS_CODE","userIcon","primaryBlue","DislikeFeedback","addFeedback","defaultActions","jsx","_jsx","jsxs","_jsxs","confirm","XAiProvider","_ref","ref","_config$chatProps","_config$session","_config$chatProps2","_ref$url","url","window","location","origin","token","config","_ref$providerId","providerId","onSuccess","onError","onMessage","children","_ref2","chatProps","_ref2$textSpeed","textSpeed","_useAgentGenerator","appInfo","chat","stopChat","reChat","createNewChat","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","setCurrentSessionDetail","setMessages","_ref3","appName","icon","getAppInfo","getMessages","getSessions","_useState","_useState2","_slicedToArray","isNarrow","setIsNarrow","divRef","div","current","resizeObserver","ResizeObserver","entries","_iterator","_createForOfIteratorHelper","_step","s","n","done","entry","value","width","contentRect","err","e","f","observe","initialWidth","offsetWidth","disconnect","handleSendMessage","content","handleCreateNewMessage","handleActions","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","index","actionData","_ref5","id","_content$text","text","idx","_actionData$isLike","_ref6","appNo","isLike","_actionData$raw","_yield$addFeedback","result","wrap","_callee$","_context","prev","next","t0","abrupt","success","findIndex","item","length","filter","type","warning","requestId","raw","sent","code","map","_objectSpread","error","stop","_x","_x2","apply","arguments","handleSuggestMessageClick","_item","m","handleActiveChange","key","handleDeleteSession","sessionId","handleUpdateSession","title","menuConfig","conversation","items","label","danger","onClick","menuInfo","domEvent","stopPropagation","inputValue","defaultValue","autoFocus","style","onChange","target","okText","cancelText","okButtonProps","background","borderColor","color","onOk","trim","Promise","reject","onCancel","okType","ToolTip","messageData","finalResult","think","find","actionName","_ref7","extra","cost","tokenCount","display","alignItems","fontSize","flex","paddingRight","undefined","clearBtnShow","session","showSessionList","theme","colorPrimary","appTheme","Provider","avatar","src","alt","userAvatar","emptyStateImage","emptyStateText","footerTips","sessionTotal","total","activeKey","inputShow","messageTooltip","messageActions","concat","_toConsumableArray","tooltip","render","i","msg","_i","_msg$raw","activeColor","onSubmit","_ref8","_callee2","formData","_yield$addFeedback2","_callee2$","_context2","_x3","onSend","onClear","onNewChat","onStop","menu","onActiveChange","onSuggestMessageClick","onMessagesActionsCallback","isInProvider","height","position"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle, useState, useRef, useEffect } from 'react';\nimport { message, Divider, Modal, Input, ConfigProvider } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport type { ConversationsProps } from '@ant-design/x';\nimport { ExclamationCircleFilled, LikeFilled, LikeOutlined } from '@ant-design/icons';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport { MOBILE_MAX_WIDTH, API_SUCCESS_CODE } from '@/constants';\nimport userIcon from '@/assets/user.png';\nimport { primaryBlue } from '@/styles/common';\nimport DislikeFeedback from '../DislikeFeedback';\nimport { addFeedback } from '@/services/api';\nimport { defaultActions } from '../XAiChatbot';\nimport type { SendContent } from '@/types';\n\nconst { confirm } = Modal;\n\nconst XAiProvider = forwardRef<XAiProviderHandle, XAiProviderProps>(({\n url = window.location.origin,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n onMessage,\n children,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n\n const { textSpeed = 55 } = config?.chatProps || {};\n\n const {\n appInfo,\n chat,\n stopChat,\n reChat,\n createNewChat,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n setCurrentSessionDetail,\n setMessages,\n } = useAgentGenerator({ url, token, config, onError, onSuccess, onMessage, textSpeed });\n\n const { appName, icon } = appInfo || {};\n\n useImperativeHandle(ref, () => ({\n chat,\n stopChat,\n reChat,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSessionDetail,\n }), [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSessionDetail]);\n\n const [isNarrow, setIsNarrow] = useState<boolean>(false);\n const divRef = useRef<HTMLDivElement>(null);\n\n // 监听容器宽度变化\n useEffect(() => {\n const div = divRef.current;\n if (!div) return;\n\n // 创建监听器\n const resizeObserver = new ResizeObserver((entries) => {\n // eslint-disable-next-line no-restricted-syntax\n for (const entry of entries) {\n const { width } = entry.contentRect;\n setIsNarrow(width <= MOBILE_MAX_WIDTH);\n }\n });\n\n // 开始监听\n resizeObserver.observe(div);\n\n // 初始化检查\n const initialWidth = div.offsetWidth;\n setIsNarrow(initialWidth <= MOBILE_MAX_WIDTH);\n\n // 清理函数\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n // 发送消息\n const handleSendMessage = (content: SendContent) => {\n chat(content);\n };\n\n // 清空消息\n const handleCreateNewMessage = () => {\n createNewChat();\n };\n\n // 工具栏按钮点击\n const handleActions = async (index: number, actionData: any) => {\n const { content, id } = actionData || {};\n const { text = '' } = content;\n switch (index) {\n case 0:\n reChat();\n break;\n case 1:\n copy(text);\n message.success('复制成功');\n break;\n case 2: {\n const idx = messages.findIndex((item) => item.id === id);\n if (idx >= 0) {\n // 删除该条消息及建议类消息\n if (messages.length - idx <= 2) {\n setMessages((prev) => prev.filter((item) => item.id !== id && item.type !== 'SuggestionMessage'));\n } else {\n // 非最新消息 只删除该条消息\n setMessages((prev) => prev.filter((item) => item.id !== id));\n }\n message.success('删除成功');\n }\n break;\n }\n case 3: {\n const { appNo } = config || {};\n const isLike = actionData.isLike ?? 0;\n if (isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (appNo) {\n const { result } = await addFeedback({\n url,\n token,\n appNo,\n requestId: actionData.raw?.requestId,\n isLike: 1,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('感谢您的反馈');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === id) {\n return {\n ...item,\n isLike: 1,\n };\n }\n return item;\n });\n });\n } else {\n message.error('反馈失败,请稍后再试');\n }\n }\n break;\n }\n }\n };\n\n // 建议消息点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev: any[]) => prev.filter((m: any) => m.id !== id));\n };\n\n // 切换会话\n const handleActiveChange = (key: string) => {\n setCurrentSessionDetail(key);\n };\n\n // 删除会话\n const handleDeleteSession = (sessionId: string) => {\n deleteSession(sessionId);\n };\n\n // 修改会话内容\n const handleUpdateSession = (sessionId: string, title: string) => {\n updateSession(sessionId, title);\n };\n\n // 会话操作菜单\n const menuConfig: ConversationsProps['menu'] = (conversation) => ({\n items: [\n {\n label: '重命名',\n key: 'edit',\n },\n {\n label: '删除',\n key: 'delete',\n danger: true,\n },\n ],\n onClick: (menuInfo) => {\n menuInfo.domEvent.stopPropagation();\n const { key } = menuInfo;\n switch (key) {\n case 'edit': {\n let inputValue = conversation.label as string || '';\n confirm({\n title: '编辑对话名称',\n icon: null,\n content: (\n <Input\n defaultValue={inputValue}\n autoFocus\n style={{ width: '100%' }}\n onChange={(e) => {\n inputValue = e.target.value;\n }}\n />\n ),\n okText: '确认',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#000', borderColor: '#000', color: '#fff' },\n },\n onOk: () => {\n if (!inputValue.trim()) {\n message.error('对话名称不能为空');\n return Promise.reject();\n }\n handleUpdateSession(conversation.key, inputValue);\n },\n onCancel: () => {\n // 静默处理\n },\n });\n break;\n }\n case 'delete':\n confirm({\n title: '确认删除?',\n icon: <ExclamationCircleFilled />,\n content: '该对话内容将被删除无法恢复。',\n okText: '确认删除',\n okType: 'danger',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#ff4d4f', borderColor: '#ff4d4f', color: '#fff' },\n },\n onOk() {\n handleDeleteSession(conversation.key);\n },\n onCancel() {\n //\n },\n });\n break;\n }\n },\n });\n\n const ToolTip = (messageData: any) => {\n const finalResult = (messageData?.think || []).find((item: any) => item.actionName === 'FINISHED');\n if (!finalResult) return null;\n const { cost, token: tokenCount } = finalResult.extra || {};\n if (!cost && !token) return null;\n return (\n <div style={{ display: 'flex', alignItems: 'center', fontSize: '12px', color: '#949494', flex: 1, paddingRight: '40px' }}>\n { (cost !== undefined && cost !== null) && <div>{cost}s</div> }\n { tokenCount && <Divider type=\"vertical\" /> }\n { tokenCount && <div>{ tokenCount } tokens</div> }\n </div>\n );\n };\n // 是否展示清空按钮\n const clearBtnShow = typeof config?.chatProps?.clearBtnShow !== 'undefined'\n ? config.chatProps.clearBtnShow\n : !config?.session?.showSessionList;\n\n return (\n <ConfigProvider theme={{\n token: {\n colorPrimary: appInfo?.appTheme || primaryBlue,\n },\n }}\n >\n <XProvider>\n <XAiContext.Provider value={{\n avatar: <img src={icon} alt=\"智能体头像\" />,\n userAvatar: <img src={userIcon} alt=\"用户头像\" />,\n emptyStateImage: icon,\n emptyStateText: appName,\n footerTips: '内容由AI生成,无法确保真实准确,仅供参考',\n providerId,\n sessionList,\n sessionTotal: sessionPagination.total,\n token,\n messages,\n loading,\n error: null,\n activeKey: currentSessionId,\n clearBtnShow,\n inputShow: config?.chatProps?.inputShow || true,\n isNarrow,\n messageTooltip: ToolTip,\n messageActions: [...defaultActions, {\n key: 'like',\n tooltip: '赞',\n render: (i, msg) => {\n const isLike = msg.isLike === 1;\n if (isLike) {\n return (\n <LikeFilled style={{ color: appInfo?.appTheme || primaryBlue }} />\n );\n }\n return <LikeOutlined />;\n },\n }, {\n key: 'dislike',\n tooltip: '踩',\n render: (_i, msg) => {\n const requestId = msg.raw?.requestId;\n return (\n <DislikeFeedback\n msg={msg}\n activeColor={appInfo?.appTheme || primaryBlue}\n onSubmit={async (formData) => {\n const { result } = await addFeedback({\n ...formData,\n requestId,\n isLike: -1,\n url,\n appNo: config?.appNo,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('已收到您的反馈,我们会努力做的更好');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === msg.id) {\n return {\n ...item,\n isLike: -1,\n };\n }\n return item;\n });\n });\n return true;\n }\n message.error('反馈失败,请稍后再试');\n return false;\n }}\n />\n );\n },\n }],\n onSend: handleSendMessage,\n onClear: handleCreateNewMessage,\n onNewChat: handleCreateNewMessage,\n onStop: stopChat,\n menu: menuConfig,\n onActiveChange: handleActiveChange,\n onSuggestMessageClick: handleSuggestMessageClick,\n onMessagesActionsCallback: handleActions,\n isInProvider: true,\n }}\n >\n <div\n ref={divRef}\n style={{\n display: 'flex',\n height: '100%',\n position: 'relative',\n }}\n >\n {children}\n </div>\n </XAiContext.Provider>\n </XProvider>\n </ConfigProvider>\n );\n});\n\nexport default XAiProvider;\n"],"mappings":"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"}
@@ -38,11 +38,12 @@ var BasicUsageStory = function BasicUsageStory() {
38
38
  };
39
39
 
40
40
  // 模拟快捷短语点击
41
- var handleSendMessage = function handleSendMessage(type, text) {
41
+ var handleSendMessage = function handleSendMessage(obj) {
42
42
  setLoading(true);
43
- console.info(type, text);
43
+ console.info(obj);
44
44
  setTimeout(function () {
45
45
  setContent('');
46
+ setFiles([]);
46
47
  setLoading(false);
47
48
  }, 2000);
48
49
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","files","setFiles","_useState3","_useState4","content","setContent","_useState5","_useState6","loading","setLoading","handleClear","console","info","handleChange","text","handleSendMessage","type","setTimeout","style","width","border","padding","children","value","enableUpload","onChangeFiles","uploadRequest","_ref","file","onProgress","onSuccess","percent","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render","args"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport type { Attachment } from '@ant-design/x/es/attachments';\nimport XAiSender from '.';\n\nconst meta: Meta<typeof XAiSender> = {\n title: 'AI组件/XAiSender 输入框',\n component: XAiSender,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [files, setFiles] = useState<Attachment[]>([]);\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.info('clear');\n };\n\n // 模拟输入\n const handleChange = (text: string) => {\n setContent(text);\n };\n\n // 模拟快捷短语点击\n const handleSendMessage = (type: string, text: any) => {\n setLoading(true);\n console.info(type, text);\n setTimeout(() => {\n setContent('');\n setLoading(false);\n }, 2000);\n };\n\n return (\n <div style={{ width: 440, border: '1px solid #eee', padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\n enableUpload\n files={files}\n onChangeFiles={setFiles}\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n onClear={handleClear}\n onChange={handleChange}\n onSubmit={handleSendMessage}\n onStop={handleClear}\n footerTips=\"内容由AI生成,无法确保真实准确,仅供参考\"\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","files","setFiles","_useState3","_useState4","content","setContent","_useState5","_useState6","loading","setLoading","handleClear","console","info","handleChange","text","handleSendMessage","obj","setTimeout","style","width","border","padding","children","value","enableUpload","onChangeFiles","uploadRequest","_ref","file","onProgress","onSuccess","percent","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render","args"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport type { Attachment } from '@ant-design/x/es/attachments';\nimport XAiSender from '.';\n\nconst meta: Meta<typeof XAiSender> = {\n title: 'AI组件/XAiSender 输入框',\n component: XAiSender,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [files, setFiles] = useState<Attachment[]>([]);\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.info('clear');\n };\n\n // 模拟输入\n const handleChange = (text: string) => {\n setContent(text);\n };\n\n // 模拟快捷短语点击\n const handleSendMessage = (obj: any) => {\n setLoading(true);\n console.info(obj);\n setTimeout(() => {\n setContent('');\n setFiles([]);\n setLoading(false);\n }, 2000);\n };\n\n return (\n <div style={{ width: 440, border: '1px solid #eee', padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\n enableUpload\n files={files}\n onChangeFiles={setFiles}\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n onClear={handleClear}\n onChange={handleChange}\n onSubmit={handleSendMessage}\n onStop={handleClear}\n footerTips=\"内容由AI生成,无法确保真实准确,仅供参考\"\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};\n"],"mappings":"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"}