@ai-group/chat-sdk 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +14 -5
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/index.js +21 -102
- package/dist/cjs/components/XAiChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAiChatbot/styles.d.ts +2 -14
- package/dist/cjs/components/XAiChatbot/styles.js +18 -162
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/styles.d.ts +2 -0
- package/dist/cjs/components/XAiProvider/demo.styles.d.ts +2 -0
- package/dist/cjs/components/XAiProvider/index.js +2 -1
- package/dist/cjs/components/XAiProvider/index.js.map +2 -2
- package/dist/cjs/components/XAiSender/XAiSender.stories.d.ts +6 -0
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +86 -0
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +7 -0
- package/dist/cjs/components/XAiSender/index.d.ts +4 -0
- package/dist/cjs/components/XAiSender/index.js +168 -0
- package/dist/cjs/components/XAiSender/index.js.map +7 -0
- package/dist/cjs/components/XAiSender/styles.d.ts +47 -0
- package/dist/cjs/components/XAiSender/styles.js +157 -0
- package/dist/cjs/components/XAiSender/styles.js.map +7 -0
- package/dist/cjs/constants/index.d.ts +1 -1
- package/dist/cjs/constants/index.js +1 -1
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/hooks/useAgentGenerator.js.map +1 -1
- package/dist/cjs/styles/common.d.ts +9 -0
- package/dist/cjs/styles/common.js +30 -0
- package/dist/cjs/styles/common.js.map +2 -2
- package/dist/cjs/types/XAiChatbot.d.ts +5 -17
- package/dist/cjs/types/XAiChatbot.js.map +1 -1
- package/dist/cjs/types/XAiProvider.d.ts +6 -0
- package/dist/cjs/types/XAiProvider.js.map +2 -2
- package/dist/cjs/types/XAiSender.d.ts +13 -0
- package/dist/cjs/types/XAiSender.js +18 -0
- package/dist/cjs/types/XAiSender.js.map +7 -0
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +2 -0
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +17 -6
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -1
- package/dist/esm/components/XAiChatbot/index.js +37 -177
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.d.ts +2 -14
- package/dist/esm/components/XAiChatbot/styles.js +12 -32
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.d.ts +2 -0
- package/dist/esm/components/XAiProvider/demo.styles.d.ts +2 -0
- package/dist/esm/components/XAiProvider/index.js +2 -1
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.d.ts +6 -0
- package/dist/esm/components/XAiSender/XAiSender.stories.js +66 -0
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -0
- package/dist/esm/components/XAiSender/index.d.ts +4 -0
- package/dist/esm/components/XAiSender/index.js +211 -0
- package/dist/esm/components/XAiSender/index.js.map +1 -0
- package/dist/esm/components/XAiSender/styles.d.ts +47 -0
- package/dist/esm/components/XAiSender/styles.js +21 -0
- package/dist/esm/components/XAiSender/styles.js.map +1 -0
- package/dist/esm/constants/index.d.ts +1 -1
- package/dist/esm/constants/index.js +1 -1
- package/dist/esm/constants/index.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.js +1 -1
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/styles/common.d.ts +9 -0
- package/dist/esm/styles/common.js +9 -2
- package/dist/esm/styles/common.js.map +1 -1
- package/dist/esm/types/XAiChatbot.d.ts +5 -17
- package/dist/esm/types/XAiChatbot.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +6 -0
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/types/XAiSender.d.ts +13 -0
- package/dist/esm/types/XAiSender.js +2 -0
- package/dist/esm/types/XAiSender.js.map +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.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","useRef","useState","useMemo","Button","Space","Spin","Tooltip","Popover","Bubble","Sender","Prompts","ArrowUpOutlined","ClearOutlined","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","groupIcon","arrowUp","arrowDown","useChatbotContext","useStyles","GlobalStyle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","defaultActions","key","icon","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$clearBtn","clearBtnShow","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","_useState","_useState2","_slicedToArray","disabled","_setDisabled","_useState3","_useState4","content","setContent","_useState5","_useState6","mode","_setMode","_useState7","_useState8","fileUploading","setFileUploading","_useState9","_useState10","clearPopoverVisible","setClearPopoverVisible","styles","lastMessageId","isScriptScrolling","chatId","concat","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref","data","_ref$lastMessage","lastMessage","className","flex","gap","children","map","action","index","title","cursor","onClick","MessageFooter","_ref2","_ref2$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","style","maxWidth","classNames","user","suggestion","visibility","variant","ActionHeader","_ref3","_first$extra","_ref3$thinks","thinks","renderActionHeader","_useState11","_useState12","expanded","setExpanded","length","onToggle","v","first","name","extra","actionHeaderWrapper","actionHeaderItem","src","alt","actionHeaderIcon","actionHeaderText","w","actionHeaderDetail","actionDetailTitle","flex1","pl","_action$extra","_action$extra2","_action$extra3","thinkIcon","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","uniqueId","handleSend","trim","NavBar","subtitle","fileInputRef","handleStopGenerate","handleFileSelect","handleClear","cancelClear","confirmClear","clearConfirmContent","p","mb","mt","popoverFooter","size","type","danger","uploadButton","flexCenterGap2","iconZengjiaDisabled","iconZengjiaNormal","_fileInputRef$current","click","ref","onChange","display","accept","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","items","msg","_ref4","role","status","_ref4$thinks","_ref4$extra","noFooter","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","render","htmlString","_msg$content3","bytes","vertical","onItemClick","info","description","footer","failed","chatFooter","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","value","sendWrapper","placeholder","actions","_","_info$components","components","SendButton","LoadingButton","iconHuihuarenqun","divider","stopButton","sendButton","onSubmit","onCancel"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Button,\n Space,\n Spin,\n Tooltip,\n Popover,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Sender,\n Prompts,\n} from '@ant-design/x';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n thinks: any[];\n renderActionHeader?: (params: { thinks: any[]; expanded: boolean; onToggle: () => void }) => React.ReactNode;\n}\n\n// 默认消息功能区\nconst defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [disabled, _setDisabled] = useState<boolean>(false); // 是否禁止输入\n const [content, setContent] = useState<string>(text); // 输入框文本\n const [mode, _setMode] = useState<string>(''); // todo 模式\n const [fileUploading, setFileUploading] = useState(false); // 文件上传进度条\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // ActionHeader 组件\n const ActionHeader: React.FC<ActionHeaderProps> = ({ thinks = [], renderActionHeader }) => {\n const [expanded, setExpanded] = useState(false);\n if (!thinks || thinks.length === 0) return null;\n if (renderActionHeader) {\n return renderActionHeader({ thinks, expanded, onToggle: () => setExpanded((v) => !v) });\n }\n // 默认渲染\n const first = thinks[0];\n const { name } = first;\n const icon = first?.icon || first?.extra?.icon;\n return (\n <div className={styles.actionHeaderWrapper}>\n { !expanded && (\n <div\n className={styles.actionHeaderItem}\n onClick={() => setExpanded((v) => !v)}\n >\n { icon && <img src={icon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span className={styles.actionHeaderText}>{name}</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n ) }\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={groupIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n {thinks.map((action, idx) => {\n const thinkIcon = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n { thinkIcon && <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n };\n\n // 触发发送\n const handleSend = () => {\n if (content.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.('text', content);\n setContent(''); // 发送后清空输入框内容\n scrollToBottom();\n }\n };\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 停止生成\n const handleStopGenerate = () => {\n onStop?.();\n };\n\n // 选择文件\n const handleFileSelect = () => {};\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n setContent('');\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 mode === 'single_agent_skill_mode' ? '工作流模式不支持上传文件' : '支持图片、文档等上传'\n }\n >\n {fileUploading\n ? (\n <Spin size=\"small\" />\n )\n : (\n <i\n className={\n mode === 'single_agent_skill_mode'\n ? styles.iconZengjiaDisabled\n : styles.iconZengjiaNormal\n }\n onClick={() => {\n if (mode !== 'single_agent_skill_mode' && fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n )}\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n style={{ display: 'none' }}\n accept=\"*/*\"\n disabled={fileUploading || mode === 'single_agent_skill_mode'}\n />\n </Tooltip>\n </div>\n );\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n items={messages.map((msg: any) => {\n const { id, role, status, type, thinks = [], extra = { noFooter: false } } = msg as Messages;\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => <ActionHeader thinks={thinks} />),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 图片类型\n if (type === 'ImageMessage') {\n return (\n <div style={{ minWidth: 0, maxWidth: 600 }}>\n <img src={msg.content?.bytes} alt=\"\" style={{ maxWidth: 680 }} />\n </div>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n return (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />\n </>\n )\n );\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n { clearBtnShow && <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n style={{ border: '1px solid #E4E7EC', borderRadius: '50%', height: '35px', width: '35px' }}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(16)} />\n </div>\n </Popover> }\n {/* 普通文本输入 */}\n <Sender\n value={content}\n // submitType=\"shiftEnter\"\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n actions={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Space size=\"small\">\n <div className={styles.w(20)} />\n\n {mode !== 'single_agent_skill_mode' && uploadButton}\n {mode === 'meta_agent_mode' && (\n <div\n className={styles.flexCenterGap2}\n style={{ visibility: 'hidden' }}\n >\n <i className={styles.iconHuihuarenqun} />\n </div>\n )}\n\n <div className={styles.divider} />\n\n {loading\n ? (\n <LoadingButton onClick={handleStopGenerate} 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 );\n }}\n onChange={(v) => {\n setContent(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n handleStopGenerate();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","useMemo","Tooltip","Bubble","Prompts","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","groupIcon","arrowUp","arrowDown","useChatbotContext","useStyles","GlobalStyle","XAiSender","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","defaultActions","key","icon","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$clearBtn","clearBtnShow","_mergedProps$inputSho","inputShow","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$empty","empty","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","_useState","_useState2","_slicedToArray","content","setContent","styles","lastMessageId","isScriptScrolling","chatId","concat","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref","data","_ref$lastMessage","lastMessage","className","flex","gap","children","map","action","index","title","cursor","onClick","MessageFooter","_ref2","_ref2$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","style","maxWidth","classNames","user","suggestion","visibility","variant","ActionHeader","_ref3","_first$extra","_ref3$thinks","thinks","renderActionHeader","_useState3","_useState4","expanded","setExpanded","length","onToggle","v","first","name","extra","actionHeaderWrapper","actionHeaderItem","src","alt","actionHeaderIcon","actionHeaderText","w","actionHeaderDetail","actionDetailTitle","flex1","pl","_action$extra","_action$extra2","_action$extra3","thinkIcon","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","uniqueId","handleSend","type","trim","handleChange","handleStop","NavBar","subtitle","confirmClear","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","items","msg","_ref4","role","status","_ref4$thinks","_ref4$extra","noFooter","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","render","htmlString","_msg$content3","bytes","vertical","onItemClick","info","description","footer","failed","value","onChange","onSubmit"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Button,\n Spin,\n Tooltip,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Prompts,\n} from '@ant-design/x';\nimport {\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\nimport XAiSender from '../XAiSender';\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n thinks: any[];\n renderActionHeader?: (params: { thinks: any[]; expanded: boolean; onToggle: () => void }) => React.ReactNode;\n}\n\n// 默认消息功能区\nconst defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n inputShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n empty = null,\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [content, setContent] = useState<string>(text); // 输入框文本\n const styles = useStyles();\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // ActionHeader 组件\n const ActionHeader: React.FC<ActionHeaderProps> = ({ thinks = [], renderActionHeader }) => {\n const [expanded, setExpanded] = useState(false);\n if (!thinks || thinks.length === 0) return null;\n if (renderActionHeader) {\n return renderActionHeader({ thinks, expanded, onToggle: () => setExpanded((v) => !v) });\n }\n // 默认渲染\n const first = thinks[0];\n const { name } = first;\n const icon = first?.icon || first?.extra?.icon;\n return (\n <div className={styles.actionHeaderWrapper}>\n { !expanded && (\n <div\n className={styles.actionHeaderItem}\n onClick={() => setExpanded((v) => !v)}\n >\n { icon && <img src={icon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span className={styles.actionHeaderText}>{name}</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n ) }\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={groupIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n {thinks.map((action, idx) => {\n const thinkIcon = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n { thinkIcon && <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n };\n\n // 触发发送\n const handleSend = (type: string, content: string) => {\n if (content.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.(type, content);\n setContent(''); // 发送后清空输入框内容\n scrollToBottom();\n }\n };\n\n // 输出内容\n const handleChange = (content: string) => {\n setContent(content);\n }\n\n // 停止生成\n const handleStop = () => {\n onStop?.();\n }\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n };\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n empty ? empty : <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n items={messages.map((msg: any) => {\n const { id, role, status, type, thinks = [], extra = { noFooter: false } } = msg as Messages;\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => <ActionHeader thinks={thinks} />),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 图片类型\n if (type === 'ImageMessage') {\n return (\n <div style={{ minWidth: 0, maxWidth: 600 }}>\n <img src={msg.content?.bytes} alt=\"\" style={{ maxWidth: 680 }} />\n </div>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n return (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />\n </>\n )\n );\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n {/* 输入框 */}\n { inputShow && <XAiSender\n value={content}\n loading={loading}\n footerTips={footerTips}\n clearBtnShow={clearBtnShow}\n onChange={handleChange}\n onSubmit={handleSend}\n onStop={handleStop}\n onClear={confirmClear}\n /> }\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
|
|
@@ -16,20 +16,6 @@ export declare const useStyles: () => {
|
|
|
16
16
|
highlight: string;
|
|
17
17
|
inputBar: string;
|
|
18
18
|
input: string;
|
|
19
|
-
sendWrapper: string;
|
|
20
|
-
stopButton: string;
|
|
21
|
-
sendButton: string;
|
|
22
|
-
uploadBtn: string;
|
|
23
|
-
clearBtn: string;
|
|
24
|
-
chatFooter: string;
|
|
25
|
-
footerTips: string;
|
|
26
|
-
flexCenterGap2: string;
|
|
27
|
-
iconHuihuarenqun: string;
|
|
28
|
-
popoverFooter: string;
|
|
29
|
-
divider: string;
|
|
30
|
-
flexCenterGap4: string;
|
|
31
|
-
iconZengjiaDisabled: string;
|
|
32
|
-
iconZengjiaNormal: string;
|
|
33
19
|
actionHeaderWrapper: string;
|
|
34
20
|
actionHeaderItem: string;
|
|
35
21
|
actionHeaderIcon: string;
|
|
@@ -69,5 +55,7 @@ export declare const useStyles: () => {
|
|
|
69
55
|
overflow: (type: string) => string;
|
|
70
56
|
position: (type: string) => string;
|
|
71
57
|
zIndex: (index: number) => string;
|
|
58
|
+
flexCenterGap2: string;
|
|
59
|
+
flexCenterGap4: string;
|
|
72
60
|
};
|
|
73
61
|
export declare const GlobalStyle: React.FC;
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
2
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25
|
|
2
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25;
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { css } from '@emotion/css';
|
|
5
5
|
import { css as globalCss, Global } from '@emotion/react';
|
|
6
|
-
import { withBasicStyles } from "../../styles/common";
|
|
6
|
+
import { withBasicStyles, primaryBlue, lightBlue, darkGray, lightGray, borderGray } from "../../styles/common";
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
-
var primaryBlue = '#0078FF'; // 主蓝色
|
|
9
|
-
var lightBlue = '#E6F0FF'; // 浅蓝色气泡背景
|
|
10
|
-
var darkGray = '#333'; // 深灰色文本
|
|
11
|
-
var lightGray = '#888'; // 浅灰文本
|
|
12
|
-
var borderGray = '#ddd'; // 边框灰色
|
|
13
|
-
|
|
14
8
|
export var useStyles = withBasicStyles(function () {
|
|
15
9
|
return {
|
|
16
10
|
// 静态样式
|
|
@@ -21,7 +15,7 @@ export var useStyles = withBasicStyles(function () {
|
|
|
21
15
|
title: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-weight: 600;\n font-size: 16px;\n color: ", ";\n "])), darkGray),
|
|
22
16
|
subtitle: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: ", ";\n margin-top: 2px;\n "])), lightGray),
|
|
23
17
|
messageContainer: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n // background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n "]))),
|
|
24
|
-
emptyWrapper: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n
|
|
18
|
+
emptyWrapper: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n user-select: none;\n "]))),
|
|
25
19
|
emptyImg: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n "]))),
|
|
26
20
|
message: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ", ";\n color: ", ";\n font-size: 14px;\n line-height: 1.4;\n word-break: break-word;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n "])), lightBlue, darkGray),
|
|
27
21
|
messageRight: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n align-self: flex-end;\n background-color: ", ";\n color: white;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n "])), primaryBlue),
|
|
@@ -30,33 +24,19 @@ export var useStyles = withBasicStyles(function () {
|
|
|
30
24
|
highlight: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n background-color: ", ";\n color: white;\n border-color: ", ";\n "])), primaryBlue, primaryBlue),
|
|
31
25
|
inputBar: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ", ";\n background-color: #fff;\n "])), borderGray),
|
|
32
26
|
input: css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ", ";\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ", ";\n box-shadow: 0 0 3px ", ";\n }\n "])), borderGray, primaryBlue, primaryBlue),
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
iconHuihuarenqun: css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 16px;\n font-weight: 300;\n padding: 3px;\n border-radius: 6px;\n color: #181B25;\n cursor: pointer;\n &:hover {\n background: #E1E4EA;\n color: #7F56D9;\n }\n "]))),
|
|
42
|
-
popoverFooter: css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n justify-content: end;\n "]))),
|
|
43
|
-
divider: css(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral(["\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n "]))),
|
|
44
|
-
flexCenterGap4: css(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 4px;\n color: #7F56D9;\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n "]))),
|
|
45
|
-
iconZengjiaDisabled: css(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n "]))),
|
|
46
|
-
iconZengjiaNormal: css(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral(["\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #98A2B3;\n cursor: pointer;\n &:hover {\n color: #7F56D9;\n }\n "]))),
|
|
47
|
-
actionHeaderWrapper: css(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral(["\n margin-bottom: 12px;\n "]))),
|
|
48
|
-
actionHeaderItem: css(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n height: 40px;\n box-sizing: border-box;\n padding: 10px 16px;\n margin-bottom: 8px;\n background: #f7fafd;\n cursor: pointer;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.03);\n "]))),
|
|
49
|
-
actionHeaderIcon: css(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral(["\n height: 14px;\n "]))),
|
|
50
|
-
actionHeaderText: css(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 14px;\n color: #3961F2;\n margin-left: 10px;\n margin-right: 6px;\n "]))),
|
|
51
|
-
actionHeaderDetail: css(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral(["\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n "]))),
|
|
52
|
-
actionDetailTitle: css(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n "]))),
|
|
53
|
-
actionHeaderDetailItem: css(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n "]))),
|
|
54
|
-
actionHeaderCost: css(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral(["\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n "])))
|
|
27
|
+
actionHeaderWrapper: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n margin-bottom: 12px;\n "]))),
|
|
28
|
+
actionHeaderItem: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n height: 40px;\n box-sizing: border-box;\n padding: 10px 16px;\n margin-bottom: 8px;\n background: #f7fafd;\n cursor: pointer;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.03);\n "]))),
|
|
29
|
+
actionHeaderIcon: css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n height: 14px;\n "]))),
|
|
30
|
+
actionHeaderText: css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 14px;\n color: #3961F2;\n margin-left: 10px;\n margin-right: 6px;\n "]))),
|
|
31
|
+
actionHeaderDetail: css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n "]))),
|
|
32
|
+
actionDetailTitle: css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n "]))),
|
|
33
|
+
actionHeaderDetailItem: css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n "]))),
|
|
34
|
+
actionHeaderCost: css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n "])))
|
|
55
35
|
};
|
|
56
36
|
});
|
|
57
37
|
export var GlobalStyle = function GlobalStyle() {
|
|
58
38
|
return /*#__PURE__*/_jsx(Global, {
|
|
59
|
-
styles: globalCss(
|
|
39
|
+
styles: globalCss(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral(["\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* \u4F60\u60F3\u8986\u76D6\u7684\u5176\u4ED6\u6837\u5F0F */\n }\n\n .ant-sender-content {\n textarea {\n word-break: break-all;\n }\n }\n\n .ant-avatar {\n background-color: transparent;\n }\n\n .ant-sender-actions-list {\n margin-left: -40px;\n }\n\n .ant-sender {\n box-shadow: none !important;\n }\n\n .ant-prompts-item {\n padding-block: 8px !important;\n }\n\n /* \u7528\u6237\u6D88\u606F\u6C14\u6CE1\u80CC\u666F\u8272 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* \u52A9\u624B\u6D88\u606F\u6C14\u6CE1\u80CC\u666F\u8272 */\n .ant-bubble .assistant-content {\n background-color: #F3F5FA;\n }\n "])))
|
|
60
40
|
});
|
|
61
41
|
};
|
|
62
42
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","css","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","useStyles","wrapper","_templateObject","_taggedTemplateLiteral","navbar","_templateObject2","userAvatar","_templateObject3","avatar","_templateObject4","title","_templateObject5","subtitle","_templateObject6","messageContainer","_templateObject7","emptyWrapper","_templateObject8","emptyImg","_templateObject9","message","_templateObject10","messageRight","_templateObject11","quickReplies","_templateObject12","replyItem","_templateObject13","highlight","_templateObject14","inputBar","_templateObject15","input","_templateObject16","sendWrapper","_templateObject17","stopButton","_templateObject18","sendButton","_templateObject19","uploadBtn","_templateObject20","clearBtn","_templateObject21","chatFooter","_templateObject22","footerTips","_templateObject23","flexCenterGap2","_templateObject24","iconHuihuarenqun","_templateObject25","popoverFooter","_templateObject26","divider","_templateObject27","flexCenterGap4","_templateObject28","iconZengjiaDisabled","_templateObject29","iconZengjiaNormal","_templateObject30","actionHeaderWrapper","_templateObject31","actionHeaderItem","_templateObject32","actionHeaderIcon","_templateObject33","actionHeaderText","_templateObject34","actionHeaderDetail","_templateObject35","actionDetailTitle","_templateObject36","actionHeaderDetailItem","_templateObject37","actionHeaderCost","_templateObject38","GlobalStyle","styles","_templateObject39"],"sources":["../../../../src/components/XAiChatbot/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n wrapper: css`\n display: flex;\n flex-direction: column;\n // max-height: 812px;\n min-height: 300px;\n max-width: 800px;\n width: 100%;\n height: 100%;\n min-width: 375px;\n // background-color: #fff;\n // border: 1px solid rgba(80,96,122,.15);\n border-radius: 12px;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n `,\n\n navbar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px;\n border-bottom: 1px solid ${borderGray};\n // background-color: #fff;\n `,\n\n userAvatar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n `,\n\n avatar: css`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ${borderGray};\n `,\n\n title: css`\n font-weight: 600;\n font-size: 16px;\n color: ${darkGray};\n `,\n\n subtitle: css`\n font-size: 12px;\n color: ${lightGray};\n margin-top: 2px;\n `,\n\n messageContainer: css`\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n // background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n `,\n\n emptyWrapper: css`\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n userSelect: none;\n `,\n\n emptyImg: css`\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n `,\n\n message: css`\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ${lightBlue};\n color: ${darkGray};\n font-size: 14px;\n line-height: 1.4;\n word-break: break-word;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n `,\n\n messageRight: css`\n align-self: flex-end;\n background-color: ${primaryBlue};\n color: white;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n `,\n\n quickReplies: css`\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n overflow-x: auto;\n `,\n\n replyItem: css`\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ${primaryBlue};\n border-radius: 20px;\n background-color: #fff;\n color: ${primaryBlue};\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ${primaryBlue};\n color: #fff;\n }\n `,\n\n highlight: css`\n background-color: ${primaryBlue};\n color: white;\n border-color: ${primaryBlue};\n `,\n\n inputBar: css`\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n `,\n\n input: css`\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ${borderGray};\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ${primaryBlue};\n box-shadow: 0 0 3px ${primaryBlue};\n }\n `,\n\n sendWrapper: css`\n flex: 1;\n border-radius: 26px;\n `,\n\n stopButton: css`\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n `,\n\n sendButton: css`\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #000000;\n border: none;\n border-radius: 20px;\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n &:hover {\n background-color: #005ecb;\n }\n &:disabled {\n background-color: ${lightBlue};\n cursor: not-allowed;\n }\n `,\n\n uploadBtn: css`\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ${primaryBlue};\n color: white;\n font-weight: 700;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n cursor: pointer;\n border: none;\n user-select: none;\n &:hover {\n background-color: #005ecb;\n }\n `,\n\n clearBtn: css`\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius: 12px;\n width: 45px;\n height: 45px;\n box-sizing: border-box;\n `,\n\n chatFooter: css`\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n `,\n\n footerTips: css`\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n padding-bottom: 5px;\n color: rgba(0,0,0,0.4);\n `,\n\n flexCenterGap2: css`\n display: flex;\n align-items: center;\n gap: 8px;\n `,\n\n iconHuihuarenqun: css`\n font-family: \"iconfont\";\n font-size: 16px;\n font-weight: 300;\n padding: 3px;\n border-radius: 6px;\n color: #181B25;\n cursor: pointer;\n &:hover {\n background: #E1E4EA;\n color: #7F56D9;\n }\n `,\n\n popoverFooter: css`\n display: flex;\n gap: 8px;\n justify-content: end;\n `,\n\n divider: css`\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n `,\n\n flexCenterGap4: css`\n display: flex;\n align-items: center;\n gap: 4px;\n color: #7F56D9;\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n `,\n\n iconZengjiaDisabled: css`\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #D0D5DD;\n cursor: not-allowed;\n `,\n\n iconZengjiaNormal: css`\n font-family: \"iconfont\";\n font-size: 25px;\n font-weight: 300;\n color: #98A2B3;\n cursor: pointer;\n &:hover {\n color: #7F56D9;\n }\n `,\n actionHeaderWrapper: css`\n margin-bottom: 12px;\n `,\n actionHeaderItem: css`\n display: flex;\n align-items: center;\n height: 40px;\n box-sizing: border-box;\n padding: 10px 16px;\n margin-bottom: 8px;\n background: #f7fafd;\n cursor: pointer;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.03);\n `,\n actionHeaderIcon: css`\n height: 14px;\n `,\n actionHeaderText: css`\n font-weight: 400;\n font-size: 14px;\n color: #3961F2;\n margin-left: 10px;\n margin-right: 6px;\n `,\n actionHeaderDetail: css`\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n `,\n actionDetailTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n `,\n actionHeaderDetailItem: css`\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n `,\n actionHeaderCost: css`\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n `,\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* 你想覆盖的其他样式 */\n }\n\n .ant-sender-content {\n textarea {\n word-break: break-all;\n }\n }\n\n .ant-avatar {\n background-color: transparent;\n }\n\n .ant-sender-actions-list {\n margin-left: -40px;\n }\n\n .ant-sender {\n box-shadow: none !important;\n }\n\n .ant-prompts-item {\n padding-block: 8px !important;\n }\n\n /* 用户消息气泡背景色 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* 助手消息气泡背景色 */\n .ant-bubble .assistant-content {\n background-color: #F3F5FA;\n }\n `}\n />\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","css","globalCss","Global","withBasicStyles","primaryBlue","lightBlue","darkGray","lightGray","borderGray","jsx","_jsx","useStyles","wrapper","_templateObject","_taggedTemplateLiteral","navbar","_templateObject2","userAvatar","_templateObject3","avatar","_templateObject4","title","_templateObject5","subtitle","_templateObject6","messageContainer","_templateObject7","emptyWrapper","_templateObject8","emptyImg","_templateObject9","message","_templateObject10","messageRight","_templateObject11","quickReplies","_templateObject12","replyItem","_templateObject13","highlight","_templateObject14","inputBar","_templateObject15","input","_templateObject16","actionHeaderWrapper","_templateObject17","actionHeaderItem","_templateObject18","actionHeaderIcon","_templateObject19","actionHeaderText","_templateObject20","actionHeaderDetail","_templateObject21","actionDetailTitle","_templateObject22","actionHeaderDetailItem","_templateObject23","actionHeaderCost","_templateObject24","GlobalStyle","styles","_templateObject25"],"sources":["../../../../src/components/XAiChatbot/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles, primaryBlue, lightBlue, darkGray, lightGray, borderGray } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n wrapper: css`\n display: flex;\n flex-direction: column;\n // max-height: 812px;\n min-height: 300px;\n max-width: 800px;\n width: 100%;\n height: 100%;\n min-width: 375px;\n // background-color: #fff;\n // border: 1px solid rgba(80,96,122,.15);\n border-radius: 12px;\n overflow: hidden;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,\n Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n `,\n\n navbar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 16px;\n border-bottom: 1px solid ${borderGray};\n // background-color: #fff;\n `,\n\n userAvatar: css`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n width: 32px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n `,\n\n avatar: css`\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n margin-right: 12px;\n border: 1px solid ${borderGray};\n `,\n\n title: css`\n font-weight: 600;\n font-size: 16px;\n color: ${darkGray};\n `,\n\n subtitle: css`\n font-size: 12px;\n color: ${lightGray};\n margin-top: 2px;\n `,\n\n messageContainer: css`\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n // background-color: #fff;\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-height: 0;\n position: relative;\n `,\n\n emptyWrapper: css`\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: '#222';\n user-select: none;\n `,\n\n emptyImg: css`\n width: 60px;\n height: 60px;\n border-radius: 8px;\n margin-bottom: 16px;\n `,\n\n message: css`\n max-width: 70%;\n padding: 10px 14px;\n border-radius: 20px;\n background-color: ${lightBlue};\n color: ${darkGray};\n font-size: 14px;\n line-height: 1.4;\n word-break: break-word;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n `,\n\n messageRight: css`\n align-self: flex-end;\n background-color: ${primaryBlue};\n color: white;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 20px;\n border-top-right-radius: 20px;\n `,\n\n quickReplies: css`\n display: flex;\n gap: 8px;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n overflow-x: auto;\n `,\n\n replyItem: css`\n padding: 6px 12px;\n font-size: 13px;\n border: 1px solid ${primaryBlue};\n border-radius: 20px;\n background-color: #fff;\n color: ${primaryBlue};\n cursor: pointer;\n white-space: nowrap;\n user-select: none;\n transition: all 0.2s ease;\n \n &:hover {\n background-color: ${primaryBlue};\n color: #fff;\n }\n `,\n\n highlight: css`\n background-color: ${primaryBlue};\n color: white;\n border-color: ${primaryBlue};\n `,\n\n inputBar: css`\n display: flex;\n align-items: center;\n padding: 10px 16px;\n border-top: 1px solid ${borderGray};\n background-color: #fff;\n `,\n\n input: css`\n flex: 1;\n padding: 8px 12px;\n border: 1px solid ${borderGray};\n border-radius: 20px;\n font-size: 14px;\n outline: none;\n \n &:focus {\n border-color: ${primaryBlue};\n box-shadow: 0 0 3px ${primaryBlue};\n }\n `,\n actionHeaderWrapper: css`\n margin-bottom: 12px;\n `,\n actionHeaderItem: css`\n display: flex;\n align-items: center;\n height: 40px;\n box-sizing: border-box;\n padding: 10px 16px;\n margin-bottom: 8px;\n background: #f7fafd;\n cursor: pointer;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.03);\n `,\n actionHeaderIcon: css`\n height: 14px;\n `,\n actionHeaderText: css`\n font-weight: 400;\n font-size: 14px;\n color: #3961F2;\n margin-left: 10px;\n margin-right: 6px;\n `,\n actionHeaderDetail: css`\n background: #F3F5FA;\n border-radius: 8px;\n overflow: hidden;\n `,\n actionDetailTitle: css`\n display: flex;\n align-items: center;\n padding: 0 16px;\n box-sizing: border-box;\n background: #EDEFF5;\n height: 32px;\n margin-bottom: 12px;\n cursor: pointer;\n `,\n actionHeaderDetailItem: css`\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n padding: 0 16px;\n margin-bottom: 12px;\n color: #949494;\n `,\n actionHeaderCost: css`\n margin-left: auto;\n color: #888;\n font-size: 12px;\n min-width: 32px;\n text-align: right;\n `,\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-bubble-footer {\n display: flex;\n align-items: center;\n min-width: 0,\n max-width: 600,\n /* 你想覆盖的其他样式 */\n }\n\n .ant-sender-content {\n textarea {\n word-break: break-all;\n }\n }\n\n .ant-avatar {\n background-color: transparent;\n }\n\n .ant-sender-actions-list {\n margin-left: -40px;\n }\n\n .ant-sender {\n box-shadow: none !important;\n }\n\n .ant-prompts-item {\n padding-block: 8px !important;\n }\n\n /* 用户消息气泡背景色 */\n .ant-bubble .user-content {\n background-color: #D8E0FD;\n }\n\n /* 助手消息气泡背景色 */\n .ant-bubble .assistant-content {\n background-color: #F3F5FA;\n }\n `}\n />\n);\n"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
13
13
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
14
|
var confirm = Modal.confirm;
|
|
15
15
|
var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
16
|
-
var _config$chatProps, _config$session;
|
|
16
|
+
var _config$chatProps, _config$session, _config$chatProps2;
|
|
17
17
|
var url = _ref.url,
|
|
18
18
|
token = _ref.token,
|
|
19
19
|
config = _ref.config,
|
|
@@ -317,6 +317,7 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
317
317
|
error: null,
|
|
318
318
|
activeKey: currentSessionId,
|
|
319
319
|
clearBtnShow: clearBtnShow,
|
|
320
|
+
inputShow: (config === null || config === void 0 || (_config$chatProps2 = config.chatProps) === null || _config$chatProps2 === void 0 ? void 0 : _config$chatProps2.inputShow) || true,
|
|
320
321
|
isNarrow: isNarrow,
|
|
321
322
|
messageTooltip: ToolTip,
|
|
322
323
|
onSend: handleSendMessage,
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"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","_config$chatProps2","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","inputShow","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\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 inputShow: config?.chatProps?.inputShow || true,\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":";;AAAA,SAASA,UAAU,EAAEC,mBAAmB,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,SAAS,QAAQ,OAAO;AACpF,SAASC,OAAO,EAAEC,OAAO,EAAEC,KAAK,EAAEC,KAAK,QAAQ,MAAM;AACrD,OAAOC,IAAI,MAAM,mBAAmB;AACpC,SAASC,SAAS,QAAQ,eAAe;AAEzC,SAASC,uBAAuB,QAAQ,mBAAmB;AAC3D,SAASC,UAAU;AAEnB,OAAOC,iBAAiB;AACxB,SAASC,gBAAgB;AACzB,OAAOC,QAAQ;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEzC,IAAQC,OAAO,GAAKb,KAAK,CAAjBa,OAAO;AAEf,IAAMC,WAAW,gBAAGrB,UAAU,CAAsC,UAAAsB,IAAA,EASjEC,GAAG,EAAK;EAAA,IAAAC,iBAAA,EAAAC,eAAA,EAAAC,kBAAA;EAAA,IARTC,GAAG,GAAAL,IAAA,CAAHK,GAAG;IACHC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,MAAM,GAAAP,IAAA,CAANO,MAAM;IAAAC,eAAA,GAAAR,IAAA,CACNS,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,WAAW,GAAAA,eAAA;IACxBE,SAAS,GAAAV,IAAA,CAATU,SAAS;IACTC,OAAO,GAAAX,IAAA,CAAPW,OAAO;IACPC,SAAS,GAAAZ,IAAA,CAATY,SAAS;IACTC,QAAQ,GAAAb,IAAA,CAARa,QAAQ;EAER;EACA,IAAAC,kBAAA,GAeIvB,iBAAiB,CAAC;MAAEc,GAAG,EAAHA,GAAG;MAAEC,KAAK,EAALA,KAAK;MAAEC,MAAM,EAANA,MAAM;MAAEI,OAAO,EAAPA,OAAO;MAAED,SAAS,EAATA,SAAS;MAAEE,SAAS,EAATA;IAAU,CAAC,CAAC;IAd1EG,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,uBAAuB,GAAAb,kBAAA,CAAvBa,uBAAuB;IACvBC,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;EAErBpD,mBAAmB,CAACsB,GAAG,EAAE;IAAA,OAAO;MAC9Be,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,uBAAuB,EAAvBA;IACF,CAAC;EAAA,CAAC,EAAE,CAACZ,OAAO,EAAEU,QAAQ,EAAET,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAAEU,WAAW,EAAED,uBAAuB,CAAC,CAAC;EAEtF,IAAAQ,SAAA,GAAgCvD,QAAQ,CAAU,KAAK,CAAC;IAAAwD,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAjDG,QAAQ,GAAAF,UAAA;IAAEG,WAAW,GAAAH,UAAA;EAC5B,IAAMI,MAAM,GAAG3D,MAAM,CAAiB,IAAI,CAAC;;EAE3C;EACAC,SAAS,CAAC,YAAM;IACd,IAAM2D,GAAG,GAAGD,MAAM,CAACE,OAAO;IAC1B,IAAI,CAACD,GAAG,EAAE;;IAEV;IACA,IAAME,cAAc,GAAG,IAAIC,cAAc,CAAC,UAACC,OAAO,EAAK;MAAA,IAAAC,SAAA,GAAAC,0BAAA,CACjCF,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,IAAMC,KAAK,GAAGF,KAAK,CAACG,WAAW,CAACD,KAAK;UACrCf,WAAW,CAACe,KAAK,IAAI9D,gBAAgB,CAAC;QACxC;MAAC,SAAAgE,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,IAAIpE,gBAAgB,CAAC;;IAE7C;IACA,OAAO,YAAM;MACXmD,cAAc,CAACmB,UAAU,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,KAAa,EAAEC,OAAe,EAAK;IAC5DjD,IAAI,CAACiD,OAAO,CAAC;EACf,CAAC;;EAED;EACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAS;IACnC/C,aAAa,CAAC,CAAC;EACjB,CAAC;;EAED;EACA,IAAMgD,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAa,EAAEC,UAAe,EAAK;IACxD,IAAAC,KAAA,GAAwBD,UAAU,IAAI,CAAC,CAAC;MAAhCJ,OAAO,GAAAK,KAAA,CAAPL,OAAO;MAAEM,EAAE,GAAAD,KAAA,CAAFC,EAAE;IACnB,IAAAC,aAAA,GAAsBP,OAAO,CAArBQ,IAAI;MAAJA,IAAI,GAAAD,aAAA,cAAG,EAAE,GAAAA,aAAA;IACjB,QAAQJ,KAAK;MACX,KAAK,CAAC;QACJlD,MAAM,CAAC,CAAC;QACR;MACF,KAAK,CAAC;QACJ/B,IAAI,CAACsF,IAAI,CAAC;QACV1F,OAAO,CAAC2F,OAAO,CAAC,MAAM,CAAC;QACvB;MACF,KAAK,CAAC;QAAE;UACN,IAAMC,GAAG,GAAGlD,QAAQ,CAACmD,SAAS,CAAC,UAACC,IAAI;YAAA,OAAKA,IAAI,CAACN,EAAE,KAAKA,EAAE;UAAA,EAAC;UACxD,IAAII,GAAG,IAAI,CAAC,EAAE;YACZ;YACA,IAAIlD,QAAQ,CAACqD,MAAM,GAAGH,GAAG,IAAI,CAAC,EAAE;cAC9B/C,WAAW,CAAC,UAACmD,IAAI;gBAAA,OAAKA,IAAI,CAACC,MAAM,CAAC,UAACH,IAAI;kBAAA,OAAKA,IAAI,CAACN,EAAE,KAAKA,EAAE,IAAIM,IAAI,CAACI,IAAI,KAAK,mBAAmB;gBAAA,EAAC;cAAA,EAAC;YACnG,CAAC,MAAM;cACL;cACArD,WAAW,CAAC,UAACmD,IAAI;gBAAA,OAAKA,IAAI,CAACC,MAAM,CAAC,UAACH,IAAI;kBAAA,OAAKA,IAAI,CAACN,EAAE,KAAKA,EAAE;gBAAA,EAAC;cAAA,EAAC;YAC9D;YACAxF,OAAO,CAAC2F,OAAO,CAAC,MAAM,CAAC;UACzB;UACA;QACF;IACF;EACF,CAAC;;EAED;EACA,IAAMQ,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,KAAU,EAAEZ,EAAU,EAAK;IAC5D3C,WAAW,CAAC,UAACmD,IAAW;MAAA,OAAKA,IAAI,CAACC,MAAM,CAAC,UAACI,CAAM;QAAA,OAAKA,CAAC,CAACb,EAAE,KAAKA,EAAE;MAAA,EAAC;IAAA,EAAC;EACpE,CAAC;;EAED;EACA,IAAMc,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,GAAW,EAAK;IAC1C3D,uBAAuB,CAAC2D,GAAG,CAAC;EAC9B,CAAC;;EAED;EACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,SAAiB,EAAK;IACjDpE,aAAa,CAACoE,SAAS,CAAC;EAC1B,CAAC;;EAED;EACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAID,SAAiB,EAAEE,KAAa,EAAK;IAChErE,aAAa,CAACmE,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;cACnDhG,OAAO,CAAC;gBACN4F,KAAK,EAAE,QAAQ;gBACf3D,IAAI,EAAE,IAAI;gBACVkC,OAAO,eACLtE,IAAA,CAACT,KAAK;kBACJmH,YAAY,EAAED,UAAW;kBACzBE,SAAS;kBACTC,KAAK,EAAE;oBAAEjD,KAAK,EAAE;kBAAO,CAAE;kBACzBkD,QAAQ,EAAE,SAAAA,SAAA/C,CAAC,EAAI;oBACb2C,UAAU,GAAG3C,CAAC,CAACgD,MAAM,CAACpD,KAAK;kBAC7B;gBAAE,CACH,CACF;gBACDqD,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;oBACtBlI,OAAO,CAACmI,KAAK,CAAC,UAAU,CAAC;oBACzB,OAAOC,OAAO,CAACC,MAAM,CAAC,CAAC;kBACzB;kBACA3B,mBAAmB,CAACG,YAAY,CAACN,GAAG,EAAEc,UAAU,CAAC;gBACnD,CAAC;gBACDiB,QAAQ,EAAE,SAAAA,SAAA,EAAM;kBACd;gBAAA;cAEJ,CAAC,CAAC;cACF;YACF;UACA,KAAK,QAAQ;YACXvH,OAAO,CAAC;cACN4F,KAAK,EAAE,OAAO;cACd3D,IAAI,eAAEpC,IAAA,CAACN,uBAAuB,IAAE,CAAC;cACjC4E,OAAO,EAAE,gBAAgB;cACzByC,MAAM,EAAE,MAAM;cACdY,MAAM,EAAE,QAAQ;cAChBX,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;cACD+B,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,UAAC9C,IAAS;MAAA,OAAKA,IAAI,CAAC+C,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,CAAjBvH,KAAK;IACnB,IAAI,CAACyH,IAAI,IAAI,CAACzH,KAAK,EAAE,OAAO,IAAI;IAChC,oBACET,KAAA;MAAK0G,KAAK,EAAE;QAAE0B,OAAO,EAAE,MAAM;QAAEC,UAAU,EAAE,QAAQ;QAAEC,QAAQ,EAAE,MAAM;QAAEpB,KAAK,EAAE,SAAS;QAAEqB,IAAI,EAAE,CAAC;QAAEC,YAAY,EAAE;MAAO,CAAE;MAAAxH,QAAA,GACpHkH,IAAI,KAAKO,SAAS,IAAIP,IAAI,KAAK,IAAI,iBAAKlI,KAAA;QAAAgB,QAAA,GAAMkH,IAAI,EAAC,GAAC;MAAA,CAAK,CAAC,EAC3DC,UAAU,iBAAIrI,IAAA,CAACX,OAAO;QAACiG,IAAI,EAAC;MAAU,CAAE,CAAC,EACzC+C,UAAU,iBAAInI,KAAA;QAAAgB,QAAA,GAAOmH,UAAU,EAAE,SAAO;MAAA,CAAK,CAAC;IAAA,CAC7C,CAAC;EAEV,CAAC;EACD;EACA,IAAMO,YAAY,GAAG,QAAOhI,MAAM,aAANA,MAAM,gBAAAL,iBAAA,GAANK,MAAM,CAAEiI,SAAS,cAAAtI,iBAAA,uBAAjBA,iBAAA,CAAmBqI,YAAY,MAAK,WAAW,GACvEhI,MAAM,CAACiI,SAAS,CAACD,YAAY,GAC7B,EAAChI,MAAM,aAANA,MAAM,gBAAAJ,eAAA,GAANI,MAAM,CAAEkI,OAAO,cAAAtI,eAAA,eAAfA,eAAA,CAAiBuI,eAAe;EAGrC,oBACE/I,IAAA,CAACP,SAAS;IAAAyB,QAAA,eACRlB,IAAA,CAACL,UAAU,CAACqJ,QAAQ;MAACtF,KAAK,EAAE;QAC1BuF,MAAM,eAAEjJ,IAAA;UAAKkJ,GAAG,EAAE9G,IAAK;UAAC+G,GAAG,EAAC;QAAO,CAAE,CAAC;QACtCC,UAAU,eAAEpJ,IAAA;UAAKkJ,GAAG,EAAEpJ,QAAS;UAACqJ,GAAG,EAAC;QAAM,CAAE,CAAC;QAC7CE,eAAe,EAAEjH,IAAI;QACrBkH,cAAc,EAAEnH,OAAO;QACvBoH,UAAU,EAAE,uBAAuB;QACnCzI,UAAU,EAAVA,UAAU;QACVe,WAAW,EAAXA,WAAW;QACX2H,YAAY,EAAE5H,iBAAiB,CAAC6H,KAAK;QACrC9I,KAAK,EAALA,KAAK;QACLmB,QAAQ,EAARA,QAAQ;QACRC,OAAO,EAAPA,OAAO;QACPwF,KAAK,EAAE,IAAI;QACXmC,SAAS,EAAE/H,gBAAgB;QAC3BiH,YAAY,EAAZA,YAAY;QACZe,SAAS,EAAE,CAAA/I,MAAM,aAANA,MAAM,gBAAAH,kBAAA,GAANG,MAAM,CAAEiI,SAAS,cAAApI,kBAAA,uBAAjBA,kBAAA,CAAmBkJ,SAAS,KAAI,IAAI;QAC/ChH,QAAQ,EAARA,QAAQ;QACRiH,cAAc,EAAEhC,OAAO;QACvBiC,MAAM,EAAEzF,iBAAiB;QACzB0F,OAAO,EAAEvF,sBAAsB;QAC/BwF,SAAS,EAAExF,sBAAsB;QACjCyF,MAAM,EAAE1I,QAAQ;QAChB2I,IAAI,EAAEjE,UAAU;QAChBkE,cAAc,EAAExE,kBAAkB;QAClCyE,qBAAqB,EAAE5E,yBAAyB;QAChD6E,yBAAyB,EAAE5F,aAAa;QACxC6F,YAAY,EAAE;MAChB,CAAE;MAAAnJ,QAAA,eAEAlB,IAAA;QACEM,GAAG,EAAEuC,MAAO;QACZ+D,KAAK,EAAE;UACP0B,OAAO,EAAE,MAAM;UACfgC,MAAM,EAAE,MAAM;UACdC,QAAQ,EAAE;QACZ,CAAE;QAAArJ,QAAA,EACCA;MAAQ,CACN;IAAC,CACa;EAAC,CACb,CAAC;AAEhB,CAAC,CAAC;AAEF,eAAed,WAAW"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import XAiSender from '.';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
var meta = {
|
|
6
|
+
title: 'AI组件/XAiSender 输入框',
|
|
7
|
+
component: XAiSender,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'centered'
|
|
10
|
+
},
|
|
11
|
+
tags: ['autodocs'],
|
|
12
|
+
argTypes: {}
|
|
13
|
+
};
|
|
14
|
+
export default meta;
|
|
15
|
+
// 基础用法
|
|
16
|
+
var BasicUsageStory = function BasicUsageStory(args) {
|
|
17
|
+
var _useState = useState(''),
|
|
18
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
19
|
+
content = _useState2[0],
|
|
20
|
+
setContent = _useState2[1];
|
|
21
|
+
var _useState3 = useState(false),
|
|
22
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
23
|
+
loading = _useState4[0],
|
|
24
|
+
setLoading = _useState4[1];
|
|
25
|
+
|
|
26
|
+
// 模拟清空数据
|
|
27
|
+
var handleClear = function handleClear() {
|
|
28
|
+
console.log('clear');
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
// 模拟输入
|
|
32
|
+
var handleChange = function handleChange(content) {
|
|
33
|
+
setContent(content);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// 模拟快捷短语点击
|
|
37
|
+
var handleSendMessage = function handleSendMessage(type, content) {
|
|
38
|
+
setLoading(true);
|
|
39
|
+
console.log(type, content);
|
|
40
|
+
setTimeout(function () {
|
|
41
|
+
setContent('');
|
|
42
|
+
setLoading(false);
|
|
43
|
+
}, 2000);
|
|
44
|
+
};
|
|
45
|
+
return /*#__PURE__*/_jsx("div", {
|
|
46
|
+
style: {
|
|
47
|
+
width: 440,
|
|
48
|
+
border: '1px solid #eee',
|
|
49
|
+
padding: 20
|
|
50
|
+
},
|
|
51
|
+
children: /*#__PURE__*/_jsx(XAiSender, {
|
|
52
|
+
loading: loading,
|
|
53
|
+
value: content,
|
|
54
|
+
onClear: handleClear,
|
|
55
|
+
onChange: handleChange,
|
|
56
|
+
onSubmit: handleSendMessage,
|
|
57
|
+
onStop: handleClear,
|
|
58
|
+
footerTips: "\u5185\u5BB9\u7531AI\u751F\u6210\uFF0C\u65E0\u6CD5\u786E\u4FDD\u771F\u5B9E\u51C6\u786E\uFF0C\u4EC5\u4F9B\u53C2\u8003"
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
export var 基础用法 = {
|
|
63
|
+
render: BasicUsageStory,
|
|
64
|
+
args: {}
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=XAiSender.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","args","_useState","_useState2","_slicedToArray","content","setContent","_useState3","_useState4","loading","setLoading","handleClear","console","log","handleChange","handleSendMessage","type","setTimeout","style","width","border","padding","children","value","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport XAiSender from '.';\n\nconst meta: Meta<typeof XAiSender> = {\n title: 'AI组件/XAiSender 输入框',\n component: XAiSender,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = (args: any) => {\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.log('clear');\n };\n\n // 模拟输入\n const handleChange = (content: string) => {\n setContent(content);\n }\n\n // 模拟快捷短语点击\n const handleSendMessage = (type: string, content: any) => {\n setLoading(true);\n console.log(type, content);\n setTimeout(() => {\n setContent('');\n setLoading(false);\n }, 2000);\n };\n\n\n return (\n <div style={{ width: 440, border: '1px solid #eee', padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\n onClear={handleClear}\n onChange={handleChange}\n onSubmit={handleSendMessage}\n onStop={handleClear}\n footerTips='内容由AI生成,无法确保真实准确,仅供参考'\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,OAAOC,SAAS,MAAM,GAAG;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1B,IAAMC,IAA4B,GAAG;EACnCC,KAAK,EAAE,oBAAoB;EAC3BC,SAAS,EAAEL,SAAS;EACpBM,UAAU,EAAE;IACVC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,eAAeN,IAAI;AAGnB;AACA,IAAMO,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,IAAS,EAAK;EACrC,IAAAC,SAAA,GAA8Bb,QAAQ,CAAC,EAAE,CAAC;IAAAc,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAnCG,OAAO,GAAAF,UAAA;IAAEG,UAAU,GAAAH,UAAA;EAC1B,IAAAI,UAAA,GAA8BlB,QAAQ,CAAC,KAAK,CAAC;IAAAmB,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAAtCE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;;EAE1B;EACA,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxBC,OAAO,CAACC,GAAG,CAAC,OAAO,CAAC;EACtB,CAAC;;EAED;EACA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIT,OAAe,EAAK;IACxCC,UAAU,CAACD,OAAO,CAAC;EACrB,CAAC;;EAED;EACA,IAAMU,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,IAAY,EAAEX,OAAY,EAAK;IACxDK,UAAU,CAAC,IAAI,CAAC;IAChBE,OAAO,CAACC,GAAG,CAACG,IAAI,EAAEX,OAAO,CAAC;IAC1BY,UAAU,CAAC,YAAM;MACfX,UAAU,CAAC,EAAE,CAAC;MACdI,UAAU,CAAC,KAAK,CAAC;IACnB,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;EAGD,oBACElB,IAAA;IAAK0B,KAAK,EAAE;MAAEC,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE,gBAAgB;MAAEC,OAAO,EAAE;IAAG,CAAE;IAAAC,QAAA,eAChE9B,IAAA,CAACF,SAAS;MACRmB,OAAO,EAAEA,OAAQ;MACjBc,KAAK,EAAElB,OAAQ;MACfmB,OAAO,EAAEb,WAAY;MACrBc,QAAQ,EAAEX,YAAa;MACvBY,QAAQ,EAAEX,iBAAkB;MAC5BY,MAAM,EAAEhB,WAAY;MACpBiB,UAAU,EAAC;IAAuB,CACnC;EAAC,CACC,CAAC;AAEV,CAAC;AAED,OAAO,IAAMC,IAAW,GAAG;EACzBC,MAAM,EAAE9B,eAAe;EACvBC,IAAI,EAAE,CAAC;AACT,CAAC"}
|