@ai-group/chat-sdk 3.7.5 → 3.8.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -0
- package/dist/cjs/components/DislikeFeedback.js.map +2 -2
- package/dist/cjs/components/FileGallery/index.js +2 -1
- package/dist/cjs/components/FileGallery/index.js.map +3 -3
- package/dist/cjs/components/FolderTree/DirectoryTree.js.map +2 -2
- package/dist/cjs/components/Sources/components/CarouselCard.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/index.js +307 -59
- package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAdkChatbot/styles.d.ts +4 -0
- package/dist/cjs/components/XAdkChatbot/styles.js +59 -2
- package/dist/cjs/components/XAdkChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/utils.d.ts +14 -0
- package/dist/cjs/components/XAdkChatbot/utils.js +79 -0
- package/dist/cjs/components/XAdkChatbot/utils.js.map +7 -0
- package/dist/cjs/components/XAdkProvider/compound/DislikeFeedBack.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Messages.d.ts +7 -1
- package/dist/cjs/components/XAdkProvider/compound/Messages.js +12 -0
- package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +2 -0
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/index.js +3 -0
- package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
- package/dist/cjs/components/XAdkSender/InputTags.js.map +2 -2
- package/dist/cjs/components/XAdkSender/index.js +53 -5
- package/dist/cjs/components/XAdkSender/index.js.map +3 -3
- package/dist/cjs/components/XAdkThoughtChain/index.js +27 -28
- package/dist/cjs/components/XAdkThoughtChain/index.js.map +2 -2
- package/dist/cjs/components/XAdkThoughtChain/styles.d.ts +3 -1
- package/dist/cjs/components/XAdkThoughtChain/styles.js +66 -39
- package/dist/cjs/components/XAdkThoughtChain/styles.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +2 -1
- package/dist/cjs/components/XAiConversations/index.js.map +3 -3
- package/dist/cjs/components/XAiProvider/index.js.map +2 -2
- package/dist/cjs/components/XAiSender/index.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.d.ts +6 -1
- package/dist/cjs/hooks/useADKChat.js +15 -1
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/hooks/useADKMessageQueue.d.ts +24 -0
- package/dist/cjs/hooks/useADKMessageQueue.js +107 -0
- package/dist/cjs/hooks/useADKMessageQueue.js.map +7 -0
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/react/index.d.ts +2 -0
- package/dist/cjs/react/index.js +3 -0
- package/dist/cjs/react/index.js.map +2 -2
- package/dist/cjs/types/XAdkChatbot.d.ts +49 -0
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/cjs/types/XAdkProvider.d.ts +7 -0
- package/dist/cjs/types/XAdkProvider.js.map +2 -2
- package/dist/cjs/types/XAdkSender.d.ts +8 -1
- package/dist/cjs/types/XAdkSender.js.map +1 -1
- package/dist/cjs/types/XAdkThoughtChain.d.ts +2 -0
- package/dist/cjs/types/XAdkThoughtChain.js.map +1 -1
- package/dist/cjs/types/antdx.d.ts +6 -3
- package/dist/cjs/types/antdx.js.map +1 -1
- package/dist/esm/components/DislikeFeedback.js.map +1 -1
- package/dist/esm/components/FileGallery/index.js +2 -1
- package/dist/esm/components/FileGallery/index.js.map +1 -1
- package/dist/esm/components/FolderTree/DirectoryTree.js.map +1 -1
- package/dist/esm/components/Sources/components/CarouselCard.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.js +277 -25
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/styles.d.ts +4 -0
- package/dist/esm/components/XAdkChatbot/styles.js +30 -26
- package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/utils.d.ts +14 -0
- package/dist/esm/components/XAdkChatbot/utils.js +66 -0
- package/dist/esm/components/XAdkChatbot/utils.js.map +1 -0
- package/dist/esm/components/XAdkProvider/compound/DislikeFeedBack.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Messages.d.ts +7 -1
- package/dist/esm/components/XAdkProvider/compound/Messages.js +16 -2
- package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +2 -0
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -1
- package/dist/esm/components/XAdkProvider/index.js +4 -2
- package/dist/esm/components/XAdkProvider/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/InputTags.js.map +1 -1
- package/dist/esm/components/XAdkSender/index.js +80 -16
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAdkThoughtChain/index.js +52 -78
- package/dist/esm/components/XAdkThoughtChain/index.js.map +1 -1
- package/dist/esm/components/XAdkThoughtChain/styles.d.ts +3 -1
- package/dist/esm/components/XAdkThoughtChain/styles.js +29 -27
- package/dist/esm/components/XAdkThoughtChain/styles.js.map +1 -1
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +2 -1
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/components/XAiSender/index.js.map +1 -1
- package/dist/esm/hooks/useADKChat.d.ts +6 -1
- package/dist/esm/hooks/useADKChat.js +18 -1
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/hooks/useADKMessageQueue.d.ts +24 -0
- package/dist/esm/hooks/useADKMessageQueue.js +159 -0
- package/dist/esm/hooks/useADKMessageQueue.js.map +1 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/react/index.d.ts +2 -0
- package/dist/esm/react/index.js +1 -0
- package/dist/esm/react/index.js.map +1 -1
- package/dist/esm/types/XAdkChatbot.d.ts +49 -0
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +7 -0
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAdkSender.d.ts +8 -1
- package/dist/esm/types/XAdkSender.js.map +1 -1
- package/dist/esm/types/XAdkThoughtChain.d.ts +2 -0
- package/dist/esm/types/XAdkThoughtChain.js.map +1 -1
- package/dist/esm/types/antdx.d.ts +6 -3
- package/dist/esm/types/antdx.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -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","setCurrentSession","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 '@/types/antdx';\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 setCurrentSession,\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 setCurrentSession,\n }), [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSession]);\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 setCurrentSession(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":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,mBAAmB,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,SAAS,QAAQ,OAAO;AAC3F,SAASC,OAAO,EAAEC,OAAO,EAAEC,KAAK,EAAEC,KAAK,EAAEC,cAAc,QAAQ,MAAM;AACrE,OAAOC,IAAI,MAAM,mBAAmB;AACpC,SAASC,SAAS,QAAQ,eAAe;AAEzC,SAASC,uBAAuB,EAAEC,UAAU,EAAEC,YAAY,QAAQ,mBAAmB;AACrF,SAASC,UAAU;AAEnB,OAAOC,iBAAiB;AACxB,SAASC,gBAAgB,EAAEC,gBAAgB;AAC3C,OAAOC,QAAQ;AACf,SAASC,WAAW;AACpB,OAAOC,eAAe;AACtB,SAASC,WAAW;AACpB,SAASC,cAAc;AAAwB,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAG/C,IAAQC,OAAO,GAAKrB,KAAK,CAAjBqB,OAAO;AAEf,IAAMC,WAAW,gBAAG7B,UAAU,CAAsC,UAAA8B,IAAA,EASjEC,GAAG,EAAK;EAAA,IAAAC,iBAAA,EAAAC,eAAA,EAAAC,kBAAA;EAAA,IAAAC,QAAA,GAAAL,IAAA,CARTM,GAAG;IAAHA,GAAG,GAAAD,QAAA,cAAGE,MAAM,CAACC,QAAQ,CAACC,MAAM,GAAAJ,QAAA;IAC5BK,KAAK,GAAAV,IAAA,CAALU,KAAK;IACLC,MAAM,GAAAX,IAAA,CAANW,MAAM;IAAAC,eAAA,GAAAZ,IAAA,CACNa,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,WAAW,GAAAA,eAAA;IACxBE,SAAS,GAAAd,IAAA,CAATc,SAAS;IACTC,OAAO,GAAAf,IAAA,CAAPe,OAAO;IACPC,SAAS,GAAAhB,IAAA,CAATgB,SAAS;IACTC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;EAER;;EAEA,IAAAC,KAAA,GAA2B,CAAAP,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEQ,SAAS,KAAI,CAAC,CAAC;IAAAC,eAAA,GAAAF,KAAA,CAA1CG,SAAS;IAATA,SAAS,GAAAD,eAAA,cAAG,EAAE,GAAAA,eAAA;EAEtB,IAAAE,kBAAA,GAeIpC,iBAAiB,CAAC;MAAEoB,GAAG,EAAHA,GAAG;MAAEI,KAAK,EAALA,KAAK;MAAEC,MAAM,EAANA,MAAM;MAAEI,OAAO,EAAPA,OAAO;MAAED,SAAS,EAATA,SAAS;MAAEE,SAAS,EAATA,SAAS;MAAEK,SAAS,EAATA;IAAU,CAAC,CAAC;IAdrFE,OAAO,GAAAD,kBAAA,CAAPC,OAAO;IACPC,IAAI,GAAAF,kBAAA,CAAJE,IAAI;IACJC,QAAQ,GAAAH,kBAAA,CAARG,QAAQ;IACRC,MAAM,GAAAJ,kBAAA,CAANI,MAAM;IACNC,aAAa,GAAAL,kBAAA,CAAbK,aAAa;IACbC,aAAa,GAAAN,kBAAA,CAAbM,aAAa;IACbC,aAAa,GAAAP,kBAAA,CAAbO,aAAa;IACbC,gBAAgB,GAAAR,kBAAA,CAAhBQ,gBAAgB;IAChBC,iBAAiB,GAAAT,kBAAA,CAAjBS,iBAAiB;IACjBC,WAAW,GAAAV,kBAAA,CAAXU,WAAW;IACXC,QAAQ,GAAAX,kBAAA,CAARW,QAAQ;IACRC,OAAO,GAAAZ,kBAAA,CAAPY,OAAO;IACPC,iBAAiB,GAAAb,kBAAA,CAAjBa,iBAAiB;IACjBC,WAAW,GAAAd,kBAAA,CAAXc,WAAW;EAGb,IAAAC,KAAA,GAA0Bd,OAAO,IAAI,CAAC,CAAC;IAA/Be,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAEC,IAAI,GAAAF,KAAA,CAAJE,IAAI;EAErBpE,mBAAmB,CAAC8B,GAAG,EAAE;IAAA,OAAO;MAC9BuB,IAAI,EAAJA,IAAI;MACJC,QAAQ,EAARA,QAAQ;MACRC,MAAM,EAANA,MAAM;MACNc,UAAU,EAAE,SAAAA,WAAA;QAAA,OAAMjB,OAAO;MAAA;MACzBkB,WAAW,EAAE,SAAAA,YAAA;QAAA,OAAMR,QAAQ;MAAA;MAC3BS,WAAW,EAAE,SAAAA,YAAA;QAAA,OAAMV,WAAW;MAAA;MAC9BI,WAAW,EAAXA,WAAW;MACXD,iBAAiB,EAAjBA;IACF,CAAC;EAAA,CAAC,EAAE,CAACZ,OAAO,EAAEU,QAAQ,EAAET,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAAEU,WAAW,EAAED,iBAAiB,CAAC,CAAC;EAEhF,IAAAQ,SAAA,GAAgCvE,QAAQ,CAAU,KAAK,CAAC;IAAAwE,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAjDG,QAAQ,GAAAF,UAAA;IAAEG,WAAW,GAAAH,UAAA;EAC5B,IAAMI,MAAM,GAAG3E,MAAM,CAAiB,IAAI,CAAC;;EAE3C;EACAC,SAAS,CAAC,YAAM;IACd,IAAM2E,GAAG,GAAGD,MAAM,CAACE,OAAO;IAC1B,IAAI,CAACD,GAAG,EAAE;;IAEV;IACA,IAAME,cAAc,GAAG,IAAIC,cAAc,CAAC,UAACC,OAAO,EAAK;MACrD;MAAA,IAAAC,SAAA,GAAAC,0BAAA,CACoBF,OAAO;QAAAG,KAAA;MAAA;QAA3B,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA6B;UAAA,IAAlBC,KAAK,GAAAJ,KAAA,CAAAK,KAAA;UACd,IAAQC,KAAK,GAAKF,KAAK,CAACG,WAAW,CAA3BD,KAAK;UACbf,WAAW,CAACe,KAAK,IAAI3E,gBAAgB,CAAC;QACxC;MAAC,SAAA6E,GAAA;QAAAV,SAAA,CAAAW,CAAA,CAAAD,GAAA;MAAA;QAAAV,SAAA,CAAAY,CAAA;MAAA;IACH,CAAC,CAAC;;IAEF;IACAf,cAAc,CAACgB,OAAO,CAAClB,GAAG,CAAC;;IAE3B;IACA,IAAMmB,YAAY,GAAGnB,GAAG,CAACoB,WAAW;IACpCtB,WAAW,CAACqB,YAAY,IAAIjF,gBAAgB,CAAC;;IAE7C;IACA,OAAO,YAAM;MACXgE,cAAc,CAACmB,UAAU,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,OAAoB,EAAK;IAClDhD,IAAI,CAACgD,OAAO,CAAC;EACf,CAAC;;EAED;EACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAS;IACnC9C,aAAa,CAAC,CAAC;EACjB,CAAC;;EAED;EACA,IAAM+C,aAAa;IAAA,IAAAC,KAAA,GAAAC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QAAOC,KAAa,EAAEC,UAAe;MAAA,IAAAC,KAAA,EAAAV,OAAA,EAAAW,EAAA,EAAAC,aAAA,EAAAC,IAAA,EAAAC,GAAA,EAAAC,kBAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,eAAA,EAAAC,kBAAA,EAAAC,MAAA;MAAA,OAAAhB,mBAAA,GAAAiB,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAhB,KAAA,GACjCD,UAAU,IAAI,CAAC,CAAC,EAAhCT,OAAO,GAAAU,KAAA,CAAPV,OAAO,EAAEW,EAAE,GAAAD,KAAA,CAAFC,EAAE;YAAAC,aAAA,GACGZ,OAAO,CAArBa,IAAI,EAAJA,IAAI,GAAAD,aAAA,cAAG,EAAE,GAAAA,aAAA;YAAAY,QAAA,CAAAG,EAAA,GACTnB,KAAK;YAAAgB,QAAA,CAAAE,IAAA,GAAAF,QAAA,CAAAG,EAAA,KACN,CAAC,OAAAH,QAAA,CAAAG,EAAA,KAGD,CAAC,OAAAH,QAAA,CAAAG,EAAA,KAID,CAAC,QAAAH,QAAA,CAAAG,EAAA,KAcD,CAAC;YAAA;UAAA;YApBJzE,MAAM,CAAC,CAAC;YAAC,OAAAsE,QAAA,CAAAI,MAAA;UAAA;YAGTxH,IAAI,CAACyG,IAAI,CAAC;YACV9G,OAAO,CAAC8H,OAAO,CAAC,MAAM,CAAC;YAAC,OAAAL,QAAA,CAAAI,MAAA;UAAA;YAGlBd,GAAG,GAAGrD,QAAQ,CAACqE,SAAS,CAAC,UAACC,IAAI;cAAA,OAAKA,IAAI,CAACpB,EAAE,KAAKA,EAAE;YAAA,EAAC;YACxD,IAAIG,GAAG,IAAI,CAAC,EAAE;cACZ;cACA,IAAIrD,QAAQ,CAACuE,MAAM,GAAGlB,GAAG,IAAI,CAAC,EAAE;gBAC9BlD,WAAW,CAAC,UAAC6D,IAAI;kBAAA,OAAKA,IAAI,CAACQ,MAAM,CAAC,UAACF,IAAI;oBAAA,OAAKA,IAAI,CAACpB,EAAE,KAAKA,EAAE,IAAIoB,IAAI,CAACG,IAAI,KAAK,mBAAmB;kBAAA,EAAC;gBAAA,EAAC;cACnG,CAAC,MAAM;gBACL;gBACAtE,WAAW,CAAC,UAAC6D,IAAI;kBAAA,OAAKA,IAAI,CAACQ,MAAM,CAAC,UAACF,IAAI;oBAAA,OAAKA,IAAI,CAACpB,EAAE,KAAKA,EAAE;kBAAA,EAAC;gBAAA,EAAC;cAC9D;cACA5G,OAAO,CAAC8H,OAAO,CAAC,MAAM,CAAC;YACzB;YAAC,OAAAL,QAAA,CAAAI,MAAA;UAAA;YAAAZ,KAAA,GAIiB7E,MAAM,IAAI,CAAC,CAAC,EAAtB8E,KAAK,GAAAD,KAAA,CAALC,KAAK;YACPC,MAAM,IAAAH,kBAAA,GAAGN,UAAU,CAACS,MAAM,cAAAH,kBAAA,cAAAA,kBAAA,GAAI,CAAC;YAAA,MACjCG,MAAM,KAAK,CAAC;cAAAM,QAAA,CAAAE,IAAA;cAAA;YAAA;YACd3H,OAAO,CAACoI,OAAO,CAAC,gBAAgB,CAAC;YAAC,OAAAX,QAAA,CAAAI,MAAA;UAAA;YAAA,KAGhCX,KAAK;cAAAO,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACkB1G,WAAW,CAAC;cACnCc,GAAG,EAAHA,GAAG;cACHI,KAAK,EAALA,KAAK;cACL+E,KAAK,EAALA,KAAK;cACLmB,SAAS,GAAAjB,eAAA,GAAEV,UAAU,CAAC4B,GAAG,cAAAlB,eAAA,uBAAdA,eAAA,CAAgBiB,SAAS;cACpClB,MAAM,EAAE;YACV,CAAC,CAAC;UAAA;YAAAE,kBAAA,GAAAI,QAAA,CAAAc,IAAA;YANMjB,MAAM,GAAAD,kBAAA,CAANC,MAAM;YAOd,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEkB,IAAI,MAAK3H,gBAAgB,EAAE;cACrCb,OAAO,CAAC8H,OAAO,CAAC,QAAQ,CAAC;cACzBjE,WAAW,CAAC,UAAC6D,IAAI,EAAK;gBACpB,OAAOA,IAAI,CAACe,GAAG,CAAC,UAACT,IAAI,EAAK;kBACxB,IAAIA,IAAI,CAACpB,EAAE,KAAKA,EAAE,EAAE;oBAClB,OAAA8B,aAAA,CAAAA,aAAA,KACKV,IAAI;sBACPb,MAAM,EAAE;oBAAC;kBAEb;kBACA,OAAOa,IAAI;gBACb,CAAC,CAAC;cACJ,CAAC,CAAC;YACJ,CAAC,MAAM;cACLhI,OAAO,CAAC2I,KAAK,CAAC,YAAY,CAAC;YAC7B;UAAC;YAAA,OAAAlB,QAAA,CAAAI,MAAA;UAAA;UAAA;YAAA,OAAAJ,QAAA,CAAAmB,IAAA;QAAA;MAAA,GAAApC,OAAA;IAAA,CAKR;IAAA,gBA5DKL,aAAaA,CAAA0C,EAAA,EAAAC,GAAA;MAAA,OAAA1C,KAAA,CAAA2C,KAAA,OAAAC,SAAA;IAAA;EAAA,GA4DlB;;EAED;EACA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,KAAU,EAAEtC,EAAU,EAAK;IAC5D/C,WAAW,CAAC,UAAC6D,IAAW;MAAA,OAAKA,IAAI,CAACQ,MAAM,CAAC,UAACiB,CAAM;QAAA,OAAKA,CAAC,CAACvC,EAAE,KAAKA,EAAE;MAAA,EAAC;IAAA,EAAC;EACpE,CAAC;;EAED;EACA,IAAMwC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,GAAW,EAAK;IAC1CzF,iBAAiB,CAACyF,GAAG,CAAC;EACxB,CAAC;;EAED;EACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,SAAiB,EAAK;IACjDlG,aAAa,CAACkG,SAAS,CAAC;EAC1B,CAAC;;EAED;EACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAID,SAAiB,EAAEE,KAAa,EAAK;IAChEnG,aAAa,CAACiG,SAAS,EAAEE,KAAK,CAAC;EACjC,CAAC;;EAED;EACA,IAAMC,UAAsC,GAAG,SAAzCA,UAAsCA,CAAIC,YAAY;IAAA,OAAM;MAChEC,KAAK,EAAE,CACL;QACEC,KAAK,EAAE,KAAK;QACZR,GAAG,EAAE;MACP,CAAC,EACD;QACEQ,KAAK,EAAE,IAAI;QACXR,GAAG,EAAE,QAAQ;QACbS,MAAM,EAAE;MACV,CAAC,CACF;MACDC,OAAO,EAAE,SAAAA,QAACC,QAAQ,EAAK;QACrBA,QAAQ,CAACC,QAAQ,CAACC,eAAe,CAAC,CAAC;QACnC,IAAQb,GAAG,GAAKW,QAAQ,CAAhBX,GAAG;QACX,QAAQA,GAAG;UACT,KAAK,MAAM;YAAE;cACX,IAAIc,UAAU,GAAGR,YAAY,CAACE,KAAK,IAAc,EAAE;cACnDtI,OAAO,CAAC;gBACNkI,KAAK,EAAE,QAAQ;gBACfzF,IAAI,EAAE,IAAI;gBACViC,OAAO,eACL7E,IAAA,CAACjB,KAAK;kBACJiK,YAAY,EAAED,UAAW;kBACzBE,SAAS;kBACTC,KAAK,EAAE;oBAAE/E,KAAK,EAAE;kBAAO,CAAE;kBACzBgF,QAAQ,EAAE,SAAAA,SAAC7E,CAAC,EAAK;oBACfyE,UAAU,GAAGzE,CAAC,CAAC8E,MAAM,CAAClF,KAAK;kBAC7B;gBAAE,CACH,CACF;gBACDmF,MAAM,EAAE,IAAI;gBACZC,UAAU,EAAE,IAAI;gBAChBC,aAAa,EAAE;kBACbL,KAAK,EAAE;oBAAEM,UAAU,EAAE,MAAM;oBAAEC,WAAW,EAAE,MAAM;oBAAEC,KAAK,EAAE;kBAAO;gBAClE,CAAC;gBACDC,IAAI,EAAE,SAAAA,KAAA,EAAM;kBACV,IAAI,CAACZ,UAAU,CAACa,IAAI,CAAC,CAAC,EAAE;oBACtBhL,OAAO,CAAC2I,KAAK,CAAC,UAAU,CAAC;oBACzB,OAAOsC,OAAO,CAACC,MAAM,CAAC,CAAC;kBACzB;kBACA1B,mBAAmB,CAACG,YAAY,CAACN,GAAG,EAAEc,UAAU,CAAC;gBACnD,CAAC;gBACDgB,QAAQ,EAAE,SAAAA,SAAA,EAAM;kBACd;gBAAA;cAEJ,CAAC,CAAC;cACF;YACF;UACA,KAAK,QAAQ;YACX5J,OAAO,CAAC;cACNkI,KAAK,EAAE,OAAO;cACdzF,IAAI,eAAE5C,IAAA,CAACb,uBAAuB,IAAE,CAAC;cACjC0F,OAAO,EAAE,gBAAgB;cACzBwE,MAAM,EAAE,MAAM;cACdW,MAAM,EAAE,QAAQ;cAChBV,UAAU,EAAE,IAAI;cAChBC,aAAa,EAAE;gBACbL,KAAK,EAAE;kBAAEM,UAAU,EAAE,SAAS;kBAAEC,WAAW,EAAE,SAAS;kBAAEC,KAAK,EAAE;gBAAO;cACxE,CAAC;cACDC,IAAI,WAAAA,KAAA,EAAG;gBACLzB,mBAAmB,CAACK,YAAY,CAACN,GAAG,CAAC;cACvC,CAAC;cACD8B,QAAQ,WAAAA,SAAA,EAAG;gBACT;cAAA;YAEJ,CAAC,CAAC;YACF;QACJ;MACF;IACF,CAAC;EAAA,CAAC;EAEF,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAIC,WAAgB,EAAK;IACpC,IAAMC,WAAW,GAAG,CAAC,CAAAD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEE,KAAK,KAAI,EAAE,EAAEC,IAAI,CAAC,UAACzD,IAAS;MAAA,OAAKA,IAAI,CAAC0D,UAAU,KAAK,UAAU;IAAA,EAAC;IAClG,IAAI,CAACH,WAAW,EAAE,OAAO,IAAI;IAC7B,IAAAI,KAAA,GAAoCJ,WAAW,CAACK,KAAK,IAAI,CAAC,CAAC;MAAnDC,IAAI,GAAAF,KAAA,CAAJE,IAAI;MAASC,UAAU,GAAAH,KAAA,CAAjBxJ,KAAK;IACnB,IAAI,CAAC0J,IAAI,IAAI,CAAC1J,KAAK,EAAE,OAAO,IAAI;IAChC,oBACEb,KAAA;MAAKgJ,KAAK,EAAE;QAAEyB,OAAO,EAAE,MAAM;QAAEC,UAAU,EAAE,QAAQ;QAAEC,QAAQ,EAAE,MAAM;QAAEnB,KAAK,EAAE,SAAS;QAAEoB,IAAI,EAAE,CAAC;QAAEC,YAAY,EAAE;MAAO,CAAE;MAAAzJ,QAAA,GACpHmJ,IAAI,KAAKO,SAAS,IAAIP,IAAI,KAAK,IAAI,iBAAKvK,KAAA;QAAAoB,QAAA,GAAMmJ,IAAI,EAAC,GAAC;MAAA,CAAK,CAAC,EAC3DC,UAAU,iBAAI1K,IAAA,CAACnB,OAAO;QAACkI,IAAI,EAAC;MAAU,CAAE,CAAC,EACzC2D,UAAU,iBAAIxK,KAAA;QAAAoB,QAAA,GAAOoJ,UAAU,EAAE,SAAO;MAAA,CAAK,CAAC;IAAA,CAC7C,CAAC;EAEV,CAAC;EACD;EACA,IAAMO,YAAY,GAAG,QAAOjK,MAAM,aAANA,MAAM,gBAAAT,iBAAA,GAANS,MAAM,CAAEQ,SAAS,cAAAjB,iBAAA,uBAAjBA,iBAAA,CAAmB0K,YAAY,MAAK,WAAW,GACvEjK,MAAM,CAACQ,SAAS,CAACyJ,YAAY,GAC7B,EAACjK,MAAM,aAANA,MAAM,gBAAAR,eAAA,GAANQ,MAAM,CAAEkK,OAAO,cAAA1K,eAAA,eAAfA,eAAA,CAAiB2K,eAAe;EAErC,oBACEnL,IAAA,CAAChB,cAAc;IAACoM,KAAK,EAAE;MACrBrK,KAAK,EAAE;QACLsK,YAAY,EAAE,CAAAzJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0J,QAAQ,KAAI3L;MACrC;IACF,CAAE;IAAA2B,QAAA,eAEAtB,IAAA,CAACd,SAAS;MAAAoC,QAAA,eACRtB,IAAA,CAACV,UAAU,CAACiM,QAAQ;QAACrH,KAAK,EAAE;UAC1BsH,MAAM,eAAExL,IAAA;YAAKyL,GAAG,EAAE7I,IAAK;YAAC8I,GAAG,EAAC;UAAO,CAAE,CAAC;UACtCC,UAAU,eAAE3L,IAAA;YAAKyL,GAAG,EAAE/L,QAAS;YAACgM,GAAG,EAAC;UAAM,CAAE,CAAC;UAC7CE,eAAe,EAAEhJ,IAAI;UACrBiJ,cAAc,EAAElJ,OAAO;UACvBmJ,UAAU,EAAE,uBAAuB;UACnC5K,UAAU,EAAVA,UAAU;UACVmB,WAAW,EAAXA,WAAW;UACX0J,YAAY,EAAE3J,iBAAiB,CAAC4J,KAAK;UACrCjL,KAAK,EAALA,KAAK;UACLuB,QAAQ,EAARA,QAAQ;UACRC,OAAO,EAAPA,OAAO;UACPgF,KAAK,EAAE,IAAI;UACX0E,SAAS,EAAE9J,gBAAgB;UAC3B8I,YAAY,EAAZA,YAAY;UACZiB,SAAS,EAAE,CAAAlL,MAAM,aAANA,MAAM,gBAAAP,kBAAA,GAANO,MAAM,CAAEQ,SAAS,cAAAf,kBAAA,uBAAjBA,kBAAA,CAAmByL,SAAS,KAAI,IAAI;UAC/C/I,QAAQ,EAARA,QAAQ;UACRgJ,cAAc,EAAElC,OAAO;UACvBmC,cAAc,KAAAC,MAAA,CAAAC,kBAAA,CAAMxM,cAAc,IAAE;YAClCmI,GAAG,EAAE,MAAM;YACXsE,OAAO,EAAE,GAAG;YACZC,MAAM,EAAE,SAAAA,OAACC,CAAC,EAAEC,GAAG,EAAK;cAClB,IAAM3G,MAAM,GAAG2G,GAAG,CAAC3G,MAAM,KAAK,CAAC;cAC/B,IAAIA,MAAM,EAAE;gBACV,oBACE/F,IAAA,CAACZ,UAAU;kBAAC8J,KAAK,EAAE;oBAAEQ,KAAK,EAAE,CAAA9H,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0J,QAAQ,KAAI3L;kBAAY;gBAAE,CAAE,CAAC;cAEtE;cACA,oBAAOK,IAAA,CAACX,YAAY,IAAE,CAAC;YACzB;UACF,CAAC,EAAE;YACD4I,GAAG,EAAE,SAAS;YACdsE,OAAO,EAAE,GAAG;YACZC,MAAM,EAAE,SAAAA,OAACG,EAAE,EAAED,GAAG,EAAK;cAAA,IAAAE,QAAA;cACnB,IAAM3F,SAAS,IAAA2F,QAAA,GAAGF,GAAG,CAACxF,GAAG,cAAA0F,QAAA,uBAAPA,QAAA,CAAS3F,SAAS;cACpC,oBACEjH,IAAA,CAACJ,eAAe;gBACd8M,GAAG,EAAEA,GAAI;gBACTG,WAAW,EAAE,CAAAjL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0J,QAAQ,KAAI3L,WAAY;gBAC9CmN,QAAQ;kBAAA,IAAAC,KAAA,GAAA9H,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAE,SAAA6H,SAAOC,QAAQ;oBAAA,IAAAC,mBAAA,EAAAhH,MAAA;oBAAA,OAAAhB,mBAAA,GAAAiB,IAAA,UAAAgH,UAAAC,SAAA;sBAAA,kBAAAA,SAAA,CAAA9G,IAAA,GAAA8G,SAAA,CAAA7G,IAAA;wBAAA;0BAAA6G,SAAA,CAAA7G,IAAA;0BAAA,OACE1G,WAAW,CAAAyH,aAAA,CAAAA,aAAA,KAC/B2F,QAAQ;4BACXhG,SAAS,EAATA,SAAS;4BACTlB,MAAM,EAAE,CAAC,CAAC;4BACVpF,GAAG,EAAHA,GAAG;4BACHmF,KAAK,EAAE9E,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE8E,KAAK;4BACpB/E,KAAK,EAALA;0BAAK,EACN,CAAC;wBAAA;0BAAAmM,mBAAA,GAAAE,SAAA,CAAAjG,IAAA;0BAPMjB,MAAM,GAAAgH,mBAAA,CAANhH,MAAM;0BAAA,MAQV,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEkB,IAAI,MAAK3H,gBAAgB;4BAAA2N,SAAA,CAAA7G,IAAA;4BAAA;0BAAA;0BACnC3H,OAAO,CAAC8H,OAAO,CAAC,mBAAmB,CAAC;0BACpCjE,WAAW,CAAC,UAAC6D,IAAI,EAAK;4BACpB,OAAOA,IAAI,CAACe,GAAG,CAAC,UAACT,IAAI,EAAK;8BACxB,IAAIA,IAAI,CAACpB,EAAE,KAAKkH,GAAG,CAAClH,EAAE,EAAE;gCACtB,OAAA8B,aAAA,CAAAA,aAAA,KACKV,IAAI;kCACPb,MAAM,EAAE,CAAC;gCAAC;8BAEd;8BACA,OAAOa,IAAI;4BACb,CAAC,CAAC;0BACJ,CAAC,CAAC;0BAAC,OAAAwG,SAAA,CAAA3G,MAAA,WACI,IAAI;wBAAA;0BAEb7H,OAAO,CAAC2I,KAAK,CAAC,YAAY,CAAC;0BAAC,OAAA6F,SAAA,CAAA3G,MAAA,WACrB,KAAK;wBAAA;wBAAA;0BAAA,OAAA2G,SAAA,CAAA5F,IAAA;sBAAA;oBAAA,GAAAwF,QAAA;kBAAA,CACb;kBAAA,iBAAAK,GAAA;oBAAA,OAAAN,KAAA,CAAApF,KAAA,OAAAC,SAAA;kBAAA;gBAAA;cAAC,CACH,CAAC;YAEN;UACF,CAAC,EAAC;UACF0F,MAAM,EAAE1I,iBAAiB;UACzB2I,OAAO,EAAEzI,sBAAsB;UAC/B0I,SAAS,EAAE1I,sBAAsB;UACjC2I,MAAM,EAAE3L,QAAQ;UAChB4L,IAAI,EAAEpF,UAAU;UAChBqF,cAAc,EAAE3F,kBAAkB;UAClC4F,qBAAqB,EAAE/F,yBAAyB;UAChDgG,yBAAyB,EAAE9I,aAAa;UACxC+I,YAAY,EAAE;QAChB,CAAE;QAAAxM,QAAA,eAEAtB,IAAA;UACEM,GAAG,EAAE+C,MAAO;UACZ6F,KAAK,EAAE;YACLyB,OAAO,EAAE,MAAM;YACfoD,MAAM,EAAE,MAAM;YACdC,QAAQ,EAAE;UACZ,CAAE;UAAA1M,QAAA,EAEDA;QAAQ,CACN;MAAC,CACa;IAAC,CACb;EAAC,CACE,CAAC;AAErB,CAAC,CAAC;AAEF,eAAelB,WAAW"}
|
|
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","setCurrentSession","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 '@/types/antdx';\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 setCurrentSession,\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 setCurrentSession,\n }), [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSession]);\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 setCurrentSession(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: { key: string; domEvent: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> }) => {\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: React.ChangeEvent<HTMLInputElement>) => {\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 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","Attachments","Sender","Button","Popover","Space","Flex","Tooltip","ArrowUpOutlined","ClearOutlined","PlusCircleOutlined","clsx","useChatbotContext","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","_ref","footerTips","clearBtnShow","value","onChange","onClear","onStop","onSubmit","files","enableUpload","onChangeFiles","uploadRequest","_ref$loading","loading","propLoading","disabled","resetProps","_objectWithoutProperties","_excluded","senderRef","attachmentsRef","_useState","_useState2","_slicedToArray","clearPopoverVisible","setClearPopoverVisible","styles","handleSend","trim","text","fileInputRef","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","color","variant","shape","icon","style","fontSize","current","_fileInputRef$current","click","ref","multiple","e","fileList","target","length","i","_attachmentsRef$curre","file","upload","display","accept","chatFooter","flex","gap","_objectSpread","sendWrapper","placeholder","header","Header","closable","forceRender","open","content","padding","customRequest","items","_ref2","getDropContainer","_senderRef$current","nativeElement","suffix","footer","_","info","_info$components","components","SendButton","LoadingButton","justify","trigger","onOpenChange","clearBtn","alignItems","divider","stopButton","sendButton","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Attachments,\n Sender,\n} from '@ant-design/x';\nimport {\n Button,\n GetRef,\n Popover,\n Space,\n Flex,\n Tooltip,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n PlusCircleOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport type { AttachmentsRef } from '@/types/antdx';\nimport {\n XAiSenderProps,\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n const {\n footerTips,\n clearBtnShow,\n value,\n onChange,\n onClear,\n onStop,\n onSubmit,\n files,\n enableUpload,\n onChangeFiles,\n uploadRequest,\n loading: propLoading = false,\n disabled,\n ...resetProps\n } = mergedProps as XAiSenderProps;\n const senderRef = useRef<GetRef<typeof Sender>>(null);\n const attachmentsRef = useRef<AttachmentsRef>(null);\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n\n // 触发发送\n const handleSend = () => {\n if (value && value.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.({\n text: value,\n files: files || [],\n });\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title=\"支持图片、文档等上传\"\n >\n <Button\n color=\"default\"\n variant=\"text\"\n shape=\"circle\"\n size=\"small\"\n icon={<PlusCircleOutlined style={{ fontSize: 20, color: '#949494' }} />}\n onClick={() => {\n if (fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n <input\n type=\"file\"\n ref={fileInputRef}\n multiple\n onChange={(e) => {\n const fileList = e.target.files || [];\n if (!fileList.length) return;\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n attachmentsRef.current?.upload(file);\n }\n e.target.value = '';\n }}\n style={{ display: 'none' }}\n accept=\"*/*\"\n />\n </Tooltip>\n </div>\n );\n\n return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 普通文本输入 */}\n <Sender\n {...resetProps}\n value={value}\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n ref={senderRef}\n header={enableUpload && (\n <Sender.Header\n closable={false}\n forceRender\n open={!!files?.length}\n styles={{\n content: { padding: 0 },\n }}\n >\n <Attachments\n ref={attachmentsRef}\n customRequest={uploadRequest}\n multiple\n items={files}\n // imageProps={{\n // preview: {\n // mask: true,\n // },\n // }}\n onChange={({ fileList }) => {\n onChangeFiles?.(fileList);\n }}\n getDropContainer={() => senderRef.current?.nativeElement}\n />\n </Sender.Header>\n )}\n suffix={false}\n footer={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Flex justify=\"space-between\">\n <div>\n {/* 清空按钮 */}\n {clearBtnShow && (\n <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(12)} />\n </div>\n </Popover>\n )}\n </div>\n <Space size=\"small\" style={{ display: 'flex', alignItems: 'center'}}>\n {enableUpload && (\n <>\n {uploadButton}\n <div className={styles.divider} />\n </>\n )}\n {loading\n ? (\n <LoadingButton onClick={() => onStop?.()} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n </Flex>\n );\n }}\n onChange={(v) => {\n onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Attachments","Sender","Button","Popover","Space","Flex","Tooltip","ArrowUpOutlined","ClearOutlined","PlusCircleOutlined","clsx","useChatbotContext","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","_ref","footerTips","clearBtnShow","value","onChange","onClear","onStop","onSubmit","files","enableUpload","onChangeFiles","uploadRequest","_ref$loading","loading","propLoading","disabled","resetProps","_objectWithoutProperties","_excluded","senderRef","attachmentsRef","_useState","_useState2","_slicedToArray","clearPopoverVisible","setClearPopoverVisible","styles","handleSend","trim","text","fileInputRef","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","color","variant","shape","icon","style","fontSize","current","_fileInputRef$current","click","ref","multiple","e","fileList","target","length","i","_attachmentsRef$curre","file","upload","display","accept","chatFooter","flex","gap","_objectSpread","sendWrapper","placeholder","header","Header","closable","forceRender","open","content","padding","customRequest","items","_ref2","getDropContainer","_senderRef$current","nativeElement","suffix","footer","_","info","_info$components","components","SendButton","LoadingButton","justify","trigger","onOpenChange","clearBtn","alignItems","divider","stopButton","sendButton","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Attachments,\n Sender,\n} from '@ant-design/x';\nimport {\n Button,\n GetRef,\n Popover,\n Space,\n Flex,\n Tooltip,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n PlusCircleOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport type { AttachmentsRef } from '@/types/antdx';\nimport {\n XAiSenderProps,\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n const {\n footerTips,\n clearBtnShow,\n value,\n onChange,\n onClear,\n onStop,\n onSubmit,\n files,\n enableUpload,\n onChangeFiles,\n uploadRequest,\n loading: propLoading = false,\n disabled,\n ...resetProps\n } = mergedProps as XAiSenderProps;\n const senderRef = useRef<GetRef<typeof Sender>>(null);\n const attachmentsRef = useRef<AttachmentsRef>(null);\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n\n // 触发发送\n const handleSend = () => {\n if (value && value.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.({\n text: value,\n files: files || [],\n });\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title=\"支持图片、文档等上传\"\n >\n <Button\n color=\"default\"\n variant=\"text\"\n shape=\"circle\"\n size=\"small\"\n icon={<PlusCircleOutlined style={{ fontSize: 20, color: '#949494' }} />}\n onClick={() => {\n if (fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n <input\n type=\"file\"\n ref={fileInputRef}\n multiple\n onChange={(e) => {\n const fileList = e.target.files || [];\n if (!fileList.length) return;\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n attachmentsRef.current?.upload(file);\n }\n e.target.value = '';\n }}\n style={{ display: 'none' }}\n accept=\"*/*\"\n />\n </Tooltip>\n </div>\n );\n\n return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 普通文本输入 */}\n <Sender\n {...resetProps}\n value={value}\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n ref={senderRef}\n header={enableUpload && (\n <Sender.Header\n closable={false}\n forceRender\n open={!!files?.length}\n styles={{\n content: { padding: 0 },\n }}\n >\n <Attachments\n ref={attachmentsRef}\n customRequest={uploadRequest}\n multiple\n items={files}\n // imageProps={{\n // preview: {\n // mask: true,\n // },\n // }}\n onChange={({ fileList }: { fileList: any[] }) => {\n onChangeFiles?.(fileList);\n }}\n getDropContainer={() => senderRef.current?.nativeElement}\n />\n </Sender.Header>\n )}\n suffix={false}\n footer={(_: React.ReactNode, info: { components: { SendButton: React.ComponentType<any>; LoadingButton: React.ComponentType<any> } }) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Flex justify=\"space-between\">\n <div>\n {/* 清空按钮 */}\n {clearBtnShow && (\n <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(12)} />\n </div>\n </Popover>\n )}\n </div>\n <Space size=\"small\" style={{ display: 'flex', alignItems: 'center'}}>\n {enableUpload && (\n <>\n {uploadButton}\n <div className={styles.divider} />\n </>\n )}\n {loading\n ? (\n <LoadingButton onClick={() => onStop?.()} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n </Flex>\n );\n }}\n onChange={(v: string) => {\n onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;\n"],"mappings":"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"}
|
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
import { DebugOptions, FunctionCall, SendContent, SessionData, Event, IMessage, Part } from "../types";
|
|
3
3
|
import { type ChatConfig } from "../services/api";
|
|
4
4
|
declare function useADKChat({ url, token, config, type: _type, enabled, // ← 新增: 是否启用 Hook
|
|
5
|
-
strategies, onError, onMessage, onSuccess, onStream, }: DebugOptions): {
|
|
5
|
+
strategies, onError, onMessage, onSuccess, onStream, onInterrupt, }: DebugOptions): {
|
|
6
6
|
appInfo: ChatConfig | null;
|
|
7
7
|
startChat: ({ text, files, functionResponse, }: SendContent) => Promise<void>;
|
|
8
|
+
queueChat: (content: SendContent, preview?: string) => void;
|
|
9
|
+
queuedMessages: import("./useADKMessageQueue").ADKQueuedMessage<SendContent>[];
|
|
10
|
+
removeQueuedMessage: (id: string) => void;
|
|
11
|
+
sendQueuedMessageNow: (id: string) => Promise<void>;
|
|
12
|
+
queueInterrupting: boolean;
|
|
8
13
|
reChat: () => Promise<void>;
|
|
9
14
|
stopChat: () => void;
|
|
10
15
|
clearChat: () => void;
|
|
@@ -12,6 +12,7 @@ import { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from "../constants";
|
|
|
12
12
|
import { SuccessCode, ErrorCode } from "../types";
|
|
13
13
|
import { fetchAppConfig, fetchSessionList, fetchSessionDetail, closeSession, updateSessionTitle, addFeedback } from "../services/api";
|
|
14
14
|
import { safeJsonParse } from "../utils";
|
|
15
|
+
import { useADKMessageQueue } from "./useADKMessageQueue";
|
|
15
16
|
var combineTextParts = function combineTextParts(parts) {
|
|
16
17
|
var result = [];
|
|
17
18
|
var combinedTextPart;
|
|
@@ -343,7 +344,8 @@ function useADKChat(_ref2) {
|
|
|
343
344
|
onError = _ref2.onError,
|
|
344
345
|
onMessage = _ref2.onMessage,
|
|
345
346
|
onSuccess = _ref2.onSuccess,
|
|
346
|
-
onStream = _ref2.onStream
|
|
347
|
+
onStream = _ref2.onStream,
|
|
348
|
+
onInterrupt = _ref2.onInterrupt;
|
|
347
349
|
var _useState = useState(false),
|
|
348
350
|
_useState2 = _slicedToArray(_useState, 2),
|
|
349
351
|
loading = _useState2[0],
|
|
@@ -1126,6 +1128,13 @@ function useADKChat(_ref2) {
|
|
|
1126
1128
|
setLoading(false);
|
|
1127
1129
|
textMsgRef.current = null;
|
|
1128
1130
|
}, [setLoading]);
|
|
1131
|
+
var messageQueue = useADKMessageQueue({
|
|
1132
|
+
sessionId: currentSessionId,
|
|
1133
|
+
loading: loading,
|
|
1134
|
+
send: startChat,
|
|
1135
|
+
stop: stopChat,
|
|
1136
|
+
interrupt: onInterrupt
|
|
1137
|
+
});
|
|
1129
1138
|
|
|
1130
1139
|
// 清除/重置会话
|
|
1131
1140
|
var clearChat = function clearChat() {
|
|
@@ -1670,6 +1679,14 @@ function useADKChat(_ref2) {
|
|
|
1670
1679
|
return {
|
|
1671
1680
|
appInfo: appInfo,
|
|
1672
1681
|
startChat: startChat,
|
|
1682
|
+
queueChat: function queueChat(content) {
|
|
1683
|
+
var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : content.text || "";
|
|
1684
|
+
return messageQueue.sendOrQueue(content, preview);
|
|
1685
|
+
},
|
|
1686
|
+
queuedMessages: messageQueue.queuedMessages,
|
|
1687
|
+
removeQueuedMessage: messageQueue.removeQueuedMessage,
|
|
1688
|
+
sendQueuedMessageNow: messageQueue.sendQueuedMessageNow,
|
|
1689
|
+
queueInterrupting: messageQueue.interrupting,
|
|
1673
1690
|
reChat: reChat,
|
|
1674
1691
|
stopChat: stopChat,
|
|
1675
1692
|
clearChat: clearChat,
|