@ai-group/chat-sdk 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/cjs/components/XAiChatbot/styles.js +2 -0
  2. package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
  3. package/dist/cjs/components/XAiConversations/index.js +4 -3
  4. package/dist/cjs/components/XAiConversations/index.js.map +2 -2
  5. package/dist/cjs/components/XAiConversations/styles.d.ts +2 -0
  6. package/dist/cjs/components/XAiConversations/styles.js +23 -0
  7. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  8. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +3 -3
  9. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
  10. package/dist/cjs/components/XAiProvider/index.d.ts +2 -2
  11. package/dist/cjs/components/XAiProvider/index.js +40 -11
  12. package/dist/cjs/components/XAiProvider/index.js.map +3 -3
  13. package/dist/cjs/constants/index.d.ts +1 -0
  14. package/dist/cjs/constants/index.js +3 -0
  15. package/dist/cjs/constants/index.js.map +2 -2
  16. package/dist/cjs/types/XAiConversations.d.ts +2 -0
  17. package/dist/cjs/types/XAiConversations.js.map +1 -1
  18. package/dist/cjs/utils/umdEntry.js +2 -2
  19. package/dist/cjs/utils/umdEntry.js.map +2 -2
  20. package/dist/esm/components/XAiChatbot/styles.js +2 -2
  21. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  22. package/dist/esm/components/XAiConversations/index.js +8 -3
  23. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  24. package/dist/esm/components/XAiConversations/styles.d.ts +2 -0
  25. package/dist/esm/components/XAiConversations/styles.js +9 -7
  26. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  27. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +14 -7
  28. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  29. package/dist/esm/components/XAiProvider/index.d.ts +2 -2
  30. package/dist/esm/components/XAiProvider/index.js +48 -2
  31. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  32. package/dist/esm/constants/index.d.ts +1 -0
  33. package/dist/esm/constants/index.js +3 -0
  34. package/dist/esm/constants/index.js.map +1 -1
  35. package/dist/esm/types/XAiConversations.d.ts +2 -0
  36. package/dist/esm/types/XAiConversations.js.map +1 -1
  37. package/dist/esm/utils/umdEntry.js +16 -2
  38. package/dist/esm/utils/umdEntry.js.map +1 -1
  39. package/dist/umd/chat-sdk.min.js +1 -1
  40. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useImperativeHandle","message","Divider","Modal","Input","copy","XProvider","ExclamationCircleFilled","XAiContext","useAgentGenerator","userIcon","jsx","_jsx","jsxs","_jsxs","confirm","XAiProvider","_ref","ref","_config$chatProps","_config$session","url","token","config","_ref$providerId","providerId","onSuccess","onError","onMessage","children","_useAgentGenerator","appInfo","chat","stopChat","reChat","createNewChat","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","setCurrentSessionDetail","setMessages","_ref2","appName","icon","getAppInfo","getMessages","getSessions","handleSendMessage","_type","content","handleCreateNewMessage","handleActions","index","actionData","_ref3","id","_content$text","text","success","idx","findIndex","item","length","prev","filter","type","handleSuggestMessageClick","_item","m","handleActiveChange","key","handleDeleteSession","sessionId","handleUpdateSession","title","menuConfig","conversation","items","label","danger","onClick","menuInfo","domEvent","stopPropagation","inputValue","defaultValue","autoFocus","style","width","onChange","e","target","value","okText","cancelText","okButtonProps","background","borderColor","color","onOk","trim","error","Promise","reject","onCancel","okType","ToolTip","messageData","finalResult","think","find","actionName","_ref4","extra","cost","tokenCount","display","alignItems","fontSize","flex","paddingRight","undefined","clearBtnShow","chatProps","session","showSessionList","Provider","avatar","src","alt","userAvatar","emptyStateImage","emptyStateText","footerTips","sessionTotal","total","activeKey","messageTooltip","onSend","onClear","onNewChat","onStop","menu","onActiveChange","onSuggestMessageClick","onMessagesActionsCallback","isInProvider","height"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle } from 'react';\nimport { message, Divider, Modal, Input } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport type { ConversationsProps } from '@ant-design/x';\nimport { DeleteOutlined, ExclamationCircleFilled } from '@ant-design/icons';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport userIcon from '@/assets/user.png';\n\nconst { confirm } = Modal;\n\nconst XAiProvider = forwardRef<XAiProviderHandle, XAiProviderProps>(({\n url,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n onMessage,\n children,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\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 });\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 // 发送消息\n const handleSendMessage = (_type: string, content: string) => {\n chat(content);\n };\n\n // 清空消息\n const handleCreateNewMessage = () => {\n createNewChat();\n };\n \n // 工具栏按钮点击\n const handleActions = (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 }\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 <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 messageTooltip: ToolTip,\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 style={{\n display: 'flex',\n height: '100%'\n }}>\n {children}\n </div>\n </XAiContext.Provider>\n </XProvider>\n );\n});\n\nexport default XAiProvider;\n"],"mappings":"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"}
1
+ {"version":3,"names":["forwardRef","useImperativeHandle","useState","useRef","useEffect","message","Divider","Modal","Input","copy","XProvider","ExclamationCircleFilled","XAiContext","useAgentGenerator","MOBILE_MAX_WIDTH","userIcon","jsx","_jsx","jsxs","_jsxs","confirm","XAiProvider","_ref","ref","_config$chatProps","_config$session","url","token","config","_ref$providerId","providerId","onSuccess","onError","onMessage","children","_useAgentGenerator","appInfo","chat","stopChat","reChat","createNewChat","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","setCurrentSessionDetail","setMessages","_ref2","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","index","actionData","_ref3","id","_content$text","text","success","idx","findIndex","item","length","prev","filter","type","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","error","Promise","reject","onCancel","okType","ToolTip","messageData","finalResult","think","find","actionName","_ref4","extra","cost","tokenCount","display","alignItems","fontSize","flex","paddingRight","undefined","clearBtnShow","chatProps","session","showSessionList","Provider","avatar","src","alt","userAvatar","emptyStateImage","emptyStateText","footerTips","sessionTotal","total","activeKey","messageTooltip","onSend","onClear","onNewChat","onStop","menu","onActiveChange","onSuggestMessageClick","onMessagesActionsCallback","isInProvider","height","position"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import { forwardRef, useImperativeHandle, useState, useRef, useEffect } from 'react';\nimport { message, Divider, Modal, Input } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport type { ConversationsProps } from '@ant-design/x';\nimport { ExclamationCircleFilled } from '@ant-design/icons';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport { MOBILE_MAX_WIDTH } from '@/constants';\nimport userIcon from '@/assets/user.png';\n\nconst { confirm } = Modal;\n\nconst XAiProvider = forwardRef<XAiProviderHandle, XAiProviderProps>(({\n url,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n onMessage,\n children,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\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 });\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 for (const entry of entries) {\n const width = entry.contentRect.width;\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 = (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 }\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 <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 isNarrow,\n messageTooltip: ToolTip,\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 {children}\n </div>\n </XAiContext.Provider>\n </XProvider>\n );\n});\n\nexport default XAiProvider;\n"],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export declare const SESSION_PAGE_SIZE = 50;
2
+ export declare const MOBILE_MAX_WIDTH = 600;
@@ -1,3 +1,6 @@
1
1
  // 会话分页数
2
2
  export var SESSION_PAGE_SIZE = 50;
3
+
4
+ // 移动端交互最大宽度
5
+ export var MOBILE_MAX_WIDTH = 600;
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SESSION_PAGE_SIZE"],"sources":["../../../src/constants/index.ts"],"sourcesContent":["// 会话分页数\nexport const SESSION_PAGE_SIZE = 50;"],"mappings":"AAAA;AACA,OAAO,IAAMA,iBAAiB,GAAG,EAAE"}
1
+ {"version":3,"names":["SESSION_PAGE_SIZE","MOBILE_MAX_WIDTH"],"sources":["../../../src/constants/index.ts"],"sourcesContent":["// 会话分页数\nexport const SESSION_PAGE_SIZE = 50;\n\n// 移动端交互最大宽度\nexport const MOBILE_MAX_WIDTH = 600;"],"mappings":"AAAA;AACA,OAAO,IAAMA,iBAAiB,GAAG,EAAE;;AAEnC;AACA,OAAO,IAAMC,gBAAgB,GAAG,GAAG"}
@@ -6,6 +6,8 @@ export interface sessionData extends Conversation {
6
6
  export interface XAiConversationsProps extends OmitItems {
7
7
  /** 配色 */
8
8
  color?: string;
9
+ /** 侧边栏展示形式,若为 true 则为抽屉式展示 */
10
+ isNarrow?: boolean;
9
11
  /** 会话列表,替换原来的 items 字段 */
10
12
  sessionList?: sessionData[];
11
13
  /** session总数,当设置该值时,会增加自动加载逻辑 */
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/types/XAiConversations.ts"],"sourcesContent":["import { type ConversationsProps, type Conversation } from '@ant-design/x';\n\ntype OmitItems = Omit<ConversationsProps, 'items'>;\n\nexport interface sessionData extends Conversation {\n meta?: any;\n}\n\nexport interface XAiConversationsProps extends OmitItems {\n /** 配色 */\n color?: string;\n /** 会话列表,替换原来的 items 字段 */\n sessionList?: sessionData[];\n /** session总数,当设置该值时,会增加自动加载逻辑 */\n sessionTotal?: number;\n /** 加载更多函数 */\n loadMoreSession?: () => void;\n /** 点击生成新对话回调 */\n onNewChat?: () => void;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/types/XAiConversations.ts"],"sourcesContent":["import { type ConversationsProps, type Conversation } from '@ant-design/x';\n\ntype OmitItems = Omit<ConversationsProps, 'items'>;\n\nexport interface sessionData extends Conversation {\n meta?: any;\n}\n\nexport interface XAiConversationsProps extends OmitItems {\n /** 配色 */\n color?: string;\n /** 侧边栏展示形式,若为 true 则为抽屉式展示 */\n isNarrow?: boolean;\n /** 会话列表,替换原来的 items 字段 */\n sessionList?: sessionData[];\n /** session总数,当设置该值时,会增加自动加载逻辑 */\n sessionTotal?: number;\n /** 加载更多函数 */\n loadMoreSession?: () => void;\n /** 点击生成新对话回调 */\n onNewChat?: () => void;\n}\n"],"mappings":""}
@@ -43,7 +43,14 @@ var XAiWebSDK = /*#__PURE__*/function () {
43
43
  children: /*#__PURE__*/_jsxs(XAiProvider, _objectSpread(_objectSpread({
44
44
  ref: this.providerRef
45
45
  }, this.props), {}, {
46
- children: [((_this$props$config = this.props.config) === null || _this$props$config === void 0 || (_this$props$config = _this$props$config.session) === null || _this$props$config === void 0 ? void 0 : _this$props$config.showSessionList) && /*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx(XAiChatbot, {})]
46
+ children: [((_this$props$config = this.props.config) === null || _this$props$config === void 0 || (_this$props$config = _this$props$config.session) === null || _this$props$config === void 0 ? void 0 : _this$props$config.showSessionList) && /*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx("div", {
47
+ style: {
48
+ display: 'flex',
49
+ justifyContent: 'center',
50
+ flex: 1
51
+ },
52
+ children: /*#__PURE__*/_jsx(XAiChatbot, {})
53
+ })]
47
54
  }))
48
55
  }));
49
56
  } else {
@@ -57,7 +64,14 @@ var XAiWebSDK = /*#__PURE__*/function () {
57
64
  children: /*#__PURE__*/_jsxs(XAiProvider, _objectSpread(_objectSpread({
58
65
  ref: this.providerRef
59
66
  }, this.props), {}, {
60
- children: [((_this$props$config2 = this.props.config) === null || _this$props$config2 === void 0 || (_this$props$config2 = _this$props$config2.session) === null || _this$props$config2 === void 0 ? void 0 : _this$props$config2.showSessionList) && /*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx(XAiChatbot, {})]
67
+ children: [((_this$props$config2 = this.props.config) === null || _this$props$config2 === void 0 || (_this$props$config2 = _this$props$config2.session) === null || _this$props$config2 === void 0 ? void 0 : _this$props$config2.showSessionList) && /*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx("div", {
68
+ style: {
69
+ display: 'flex',
70
+ justifyContent: 'center',
71
+ flex: 1
72
+ },
73
+ children: /*#__PURE__*/_jsx(XAiChatbot, {})
74
+ })]
61
75
  }))
62
76
  }), this.container);
63
77
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRef","ReactDOM","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","XAiWebSDK","container","props","_classCallCheck","_defineProperty","onError","onSuccess","onMessage","mount","_createClass","key","value","createRoot","_this$props$config","root","render","style","width","height","children","_objectSpread","ref","providerRef","config","session","showSessionList","_this$props$config2","unmount","getData","_this$providerRef$cur","_this$providerRef$cur2","_this$providerRef$cur3","appInfo","current","getAppInfo","messages","getMessages","sessions","getSessions","chat","text","_this$providerRef$cur4","stop","_this$providerRef$cur5","stopChat","reChat","_this$providerRef$cur6","initChatbot","_props$componentProps","componentProps","id","existingContainer","document","getElementById","createElement","_props$componentProps2","styleProps","_objectWithoutProperties","_excluded","Object","assign","parentNode","body","appendChild","create","window"],"sources":["../../../src/utils/umdEntry.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport { Messages } from '@/types/XAiMessage';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '@/components/XAiChatbot';\nimport XAiConversations from '@/components/XAiConversations';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n providerRef = createRef<XAiProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: Messages) => void;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <XAiChatbot />\n </XAiProvider>\n </div>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <XAiChatbot />\n </XAiProvider>\n </div>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()\n static initChatbot(props: XAiSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(props.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n // 兼容旧版本的静态方法\n static create(props: XAiSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n sessions: this.providerRef.current?.getSessions(),\n };\n }\n\n chat(text: string) {\n this.providerRef.current?.chat(text);\n }\n\n stop() {\n this.providerRef.current?.stopChat();\n }\n\n reChat() {\n this.providerRef.current?.reChat();\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,QAAQ,MAAM,kBAAkB;AAGvC,OAAOC,WAAW;AAClB,OAAOC,UAAU;AACjB,OAAOC,gBAAgB;AAAsC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,IAEvDC,SAAS;EAgBb,SAAAA,UAAYC,SAAsB,EAAEC,KAAkB,EAAE;IAAAC,eAAA,OAAAH,SAAA;IAAAI,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,mCAT1Cb,SAAS,CAAoB,CAAC;IAE5C;IAAAa,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAQE,IAAI,CAACH,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACG,OAAO,GAAGH,KAAK,CAACG,OAAO;IAC5B,IAAI,CAACC,SAAS,GAAGJ,KAAK,CAACI,SAAS;IAChC,IAAI,CAACC,SAAS,GAAGL,KAAK,CAACK,SAAS;IAChC,IAAI,CAACC,KAAK,CAAC,CAAC;EACd;EAACC,YAAA,CAAAT,SAAA;IAAAU,GAAA;IAAAC,KAAA,EAED,SAAAH,MAAA,EAAQ;MACN,IAAIhB,QAAQ,CAACoB,UAAU,EAAE;QAAA,IAAAC,kBAAA;QACvB,IAAI,CAACC,IAAI,GAAGtB,QAAQ,CAACoB,UAAU,CAAC,IAAI,CAACX,SAAS,CAAC;QAC/C,IAAI,CAACa,IAAI,CAACC,MAAM,eACdlB,IAAA;UAAKmB,KAAK,EAAE;YAAEC,KAAK,EAAE,MAAM;YAAEC,MAAM,EAAE;UAAO,CAAE;UAAAC,QAAA,eAC5CpB,KAAA,CAACN,WAAW,EAAA2B,aAAA,CAAAA,aAAA;YAACC,GAAG,EAAE,IAAI,CAACC;UAAY,GAAK,IAAI,CAACpB,KAAK;YAAAiB,QAAA,GAC5C,EAAAN,kBAAA,OAAI,CAACX,KAAK,CAACqB,MAAM,cAAAV,kBAAA,gBAAAA,kBAAA,GAAjBA,kBAAA,CAAmBW,OAAO,cAAAX,kBAAA,uBAA1BA,kBAAA,CAA4BY,eAAe,kBAAI5B,IAAA,CAACF,gBAAgB,IAAE,CAAC,eACrEE,IAAA,CAACH,UAAU,IAAE,CAAC;UAAA,EACL;QAAC,CACX,CACP,CAAC;MACH,CAAC,MAAM;QAAA,IAAAgC,mBAAA;QACL;QACAlC,QAAQ,CAACuB,MAAM,eACblB,IAAA;UAAKmB,KAAK,EAAE;YAAEC,KAAK,EAAE,MAAM;YAAEC,MAAM,EAAE;UAAO,CAAE;UAAAC,QAAA,eAC5CpB,KAAA,CAACN,WAAW,EAAA2B,aAAA,CAAAA,aAAA;YAACC,GAAG,EAAE,IAAI,CAACC;UAAY,GAAK,IAAI,CAACpB,KAAK;YAAAiB,QAAA,GAC5C,EAAAO,mBAAA,OAAI,CAACxB,KAAK,CAACqB,MAAM,cAAAG,mBAAA,gBAAAA,mBAAA,GAAjBA,mBAAA,CAAmBF,OAAO,cAAAE,mBAAA,uBAA1BA,mBAAA,CAA4BD,eAAe,kBAAI5B,IAAA,CAACF,gBAAgB,IAAE,CAAC,eACrEE,IAAA,CAACH,UAAU,IAAE,CAAC;UAAA,EACL;QAAC,CACX,CAAC,EACN,IAAI,CAACO,SACP,CAAC;MACH;IACF;EAAC;IAAAS,GAAA;IAAAC,KAAA,EAED,SAAAgB,QAAA,EAAU;MACR,IAAI,IAAI,CAACb,IAAI,IAAI,IAAI,CAACA,IAAI,CAACa,OAAO,EAAE;QAClC,IAAI,CAACb,IAAI,CAACa,OAAO,CAAC,CAAC;MACrB;IACF;;IAEA;EAAA;IAAAjB,GAAA;IAAAC,KAAA;IAuCA;IACA,SAAAiB,QAAA,EAAU;MAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;MACR,OAAO;QACLC,OAAO,GAAAH,qBAAA,GAAE,IAAI,CAACP,WAAW,CAACW,OAAO,cAAAJ,qBAAA,uBAAxBA,qBAAA,CAA0BK,UAAU,CAAC,CAAC;QAC/CC,QAAQ,GAAAL,sBAAA,GAAE,IAAI,CAACR,WAAW,CAACW,OAAO,cAAAH,sBAAA,uBAAxBA,sBAAA,CAA0BM,WAAW,CAAC,CAAC;QACjDC,QAAQ,GAAAN,sBAAA,GAAE,IAAI,CAACT,WAAW,CAACW,OAAO,cAAAF,sBAAA,uBAAxBA,sBAAA,CAA0BO,WAAW,CAAC;MAClD,CAAC;IACH;EAAC;IAAA5B,GAAA;IAAAC,KAAA,EAED,SAAA4B,KAAKC,IAAY,EAAE;MAAA,IAAAC,sBAAA;MACjB,CAAAA,sBAAA,OAAI,CAACnB,WAAW,CAACW,OAAO,cAAAQ,sBAAA,eAAxBA,sBAAA,CAA0BF,IAAI,CAACC,IAAI,CAAC;IACtC;EAAC;IAAA9B,GAAA;IAAAC,KAAA,EAED,SAAA+B,KAAA,EAAO;MAAA,IAAAC,sBAAA;MACL,CAAAA,sBAAA,OAAI,CAACrB,WAAW,CAACW,OAAO,cAAAU,sBAAA,eAAxBA,sBAAA,CAA0BC,QAAQ,CAAC,CAAC;IACtC;EAAC;IAAAlC,GAAA;IAAAC,KAAA,EAED,SAAAkC,OAAA,EAAS;MAAA,IAAAC,sBAAA;MACP,CAAAA,sBAAA,OAAI,CAACxB,WAAW,CAACW,OAAO,cAAAa,sBAAA,eAAxBA,sBAAA,CAA0BD,MAAM,CAAC,CAAC;IACpC;EAAC;IAAAnC,GAAA;IAAAC,KAAA,EAzDD,SAAAoC,YAAmB7C,KAAkB,EAAa;MAAA,IAAA8C,qBAAA;MAChD,IAAI/C,SAAsB;;MAE1B;MACA,KAAA+C,qBAAA,GAAI9C,KAAK,CAAC+C,cAAc,cAAAD,qBAAA,eAApBA,qBAAA,CAAsBE,EAAE,EAAE;QAC5B,IAAMC,iBAAiB,GAAGC,QAAQ,CAACC,cAAc,CAACnD,KAAK,CAAC+C,cAAc,CAACC,EAAE,CAAC;QAC1E,IAAIC,iBAAiB,EAAE;UACrBlD,SAAS,GAAGkD,iBAAiB;QAC/B,CAAC,MAAM;UACL;UACAlD,SAAS,GAAGmD,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;UACzCrD,SAAS,CAACiD,EAAE,GAAGhD,KAAK,CAAC+C,cAAc,CAACC,EAAE;QACxC;MACF,CAAC,MAAM;QACL;QACAjD,SAAS,GAAGmD,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;QACzCrD,SAAS,CAACiD,EAAE,GAAG,uBAAuB;MACxC;;MAEA;MACA,IAAIhD,KAAK,CAAC+C,cAAc,EAAE;QACxB,IAAAM,sBAAA,GAA8BrD,KAAK,CAAC+C,cAAc;UAA1CC,EAAE,GAAAK,sBAAA,CAAFL,EAAE;UAAKM,UAAU,GAAAC,wBAAA,CAAAF,sBAAA,EAAAG,SAAA;QACzBC,MAAM,CAACC,MAAM,CAAC3D,SAAS,CAACe,KAAK,EAAEwC,UAAU,CAAC;MAC5C;;MAEA;MACA,IAAI,CAACvD,SAAS,CAAC4D,UAAU,EAAE;QACzBT,QAAQ,CAACU,IAAI,CAACC,WAAW,CAAC9D,SAAS,CAAC;MACtC;MAEA,OAAO,IAAID,SAAS,CAACC,SAAS,EAAEC,KAAK,CAAC;IACxC;;IAEA;EAAA;IAAAQ,GAAA;IAAAC,KAAA,EACA,SAAAqD,OAAc9D,KAAkB,EAAa;MAC3C,OAAO,IAAI,CAAC6C,WAAW,CAAC7C,KAAK,CAAC;IAChC;EAAC;EAAA,OAAAF,SAAA;AAAA,KAwBH;AACA;AACAiE,MAAM,CAACjE,SAAS,GAAGA,SAAS;;AAE5B;AACA,eAAeA,SAAS"}
1
+ {"version":3,"names":["React","createRef","ReactDOM","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","XAiWebSDK","container","props","_classCallCheck","_defineProperty","onError","onSuccess","onMessage","mount","_createClass","key","value","createRoot","_this$props$config","root","render","style","width","height","children","_objectSpread","ref","providerRef","config","session","showSessionList","display","justifyContent","flex","_this$props$config2","unmount","getData","_this$providerRef$cur","_this$providerRef$cur2","_this$providerRef$cur3","appInfo","current","getAppInfo","messages","getMessages","sessions","getSessions","chat","text","_this$providerRef$cur4","stop","_this$providerRef$cur5","stopChat","reChat","_this$providerRef$cur6","initChatbot","_props$componentProps","componentProps","id","existingContainer","document","getElementById","createElement","_props$componentProps2","styleProps","_objectWithoutProperties","_excluded","Object","assign","parentNode","body","appendChild","create","window"],"sources":["../../../src/utils/umdEntry.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport { Messages } from '@/types/XAiMessage';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '@/components/XAiChatbot';\nimport XAiConversations from '@/components/XAiConversations';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n providerRef = createRef<XAiProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: Messages) => void;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <div style={{ display: 'flex', justifyContent: 'center', flex: 1 }}>\n <XAiChatbot />\n </div>\n </XAiProvider>\n </div>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <div style={{ display: 'flex', justifyContent: 'center', flex: 1 }}>\n <XAiChatbot />\n </div>\n </XAiProvider>\n </div>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()\n static initChatbot(props: XAiSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(props.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n // 兼容旧版本的静态方法\n static create(props: XAiSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n sessions: this.providerRef.current?.getSessions(),\n };\n }\n\n chat(text: string) {\n this.providerRef.current?.chat(text);\n }\n\n stop() {\n this.providerRef.current?.stopChat();\n }\n\n reChat() {\n this.providerRef.current?.reChat();\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],"mappings":"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"}