@ai-group/chat-sdk 2.1.1 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/cjs/components/XAdkChatbot/index.js +61 -98
  2. package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
  3. package/dist/cjs/components/XAdkSender/XAdkSender.stories.d.ts +6 -0
  4. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js +93 -0
  5. package/dist/cjs/components/XAdkSender/XAdkSender.stories.js.map +7 -0
  6. package/dist/cjs/components/XAdkSender/index.d.ts +4 -0
  7. package/dist/cjs/components/XAdkSender/index.js +444 -0
  8. package/dist/cjs/components/XAdkSender/index.js.map +7 -0
  9. package/dist/cjs/components/XAdkSender/styles.d.ts +56 -0
  10. package/dist/cjs/components/XAdkSender/styles.js +340 -0
  11. package/dist/cjs/components/XAdkSender/styles.js.map +7 -0
  12. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +1 -1
  13. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -1
  14. package/dist/cjs/components/XAdkWebProvider/index.js +6 -3
  15. package/dist/cjs/components/XAdkWebProvider/index.js.map +2 -2
  16. package/dist/cjs/components/XAiConversations/index.js +1 -1
  17. package/dist/cjs/components/XAiConversations/index.js.map +2 -2
  18. package/dist/cjs/components/XAiConversations/styles.d.ts +1 -0
  19. package/dist/cjs/components/XAiConversations/styles.js +3 -0
  20. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  21. package/dist/cjs/components/XAiSender/index.js +17 -35
  22. package/dist/cjs/components/XAiSender/index.js.map +2 -2
  23. package/dist/cjs/hooks/useADKChat.d.ts +2 -2
  24. package/dist/cjs/hooks/useADKChat.js +10 -6
  25. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  26. package/dist/cjs/types/XAdkChatbot.d.ts +6 -1
  27. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  28. package/dist/cjs/types/XAdkProvider.d.ts +1 -0
  29. package/dist/cjs/types/XAdkProvider.js.map +1 -1
  30. package/dist/cjs/types/XAdkSender.d.ts +38 -0
  31. package/dist/cjs/types/XAdkSender.js +18 -0
  32. package/dist/cjs/types/XAdkSender.js.map +7 -0
  33. package/dist/esm/components/XAdkChatbot/index.js +74 -125
  34. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  35. package/dist/esm/components/XAdkSender/XAdkSender.stories.d.ts +6 -0
  36. package/dist/esm/components/XAdkSender/XAdkSender.stories.js +77 -0
  37. package/dist/esm/components/XAdkSender/XAdkSender.stories.js.map +1 -0
  38. package/dist/esm/components/XAdkSender/index.d.ts +4 -0
  39. package/dist/esm/components/XAdkSender/index.js +611 -0
  40. package/dist/esm/components/XAdkSender/index.js.map +1 -0
  41. package/dist/esm/components/XAdkSender/styles.d.ts +56 -0
  42. package/dist/esm/components/XAdkSender/styles.js +50 -0
  43. package/dist/esm/components/XAdkSender/styles.js.map +1 -0
  44. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +1 -1
  45. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -1
  46. package/dist/esm/components/XAdkWebProvider/index.js +26 -19
  47. package/dist/esm/components/XAdkWebProvider/index.js.map +1 -1
  48. package/dist/esm/components/XAiConversations/index.js +1 -0
  49. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  50. package/dist/esm/components/XAiConversations/styles.d.ts +1 -0
  51. package/dist/esm/components/XAiConversations/styles.js +15 -14
  52. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  53. package/dist/esm/components/XAiSender/index.js +16 -22
  54. package/dist/esm/components/XAiSender/index.js.map +1 -1
  55. package/dist/esm/hooks/useADKChat.d.ts +2 -2
  56. package/dist/esm/hooks/useADKChat.js +38 -30
  57. package/dist/esm/hooks/useADKChat.js.map +1 -1
  58. package/dist/esm/types/XAdkChatbot.d.ts +6 -1
  59. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  60. package/dist/esm/types/XAdkProvider.d.ts +1 -0
  61. package/dist/esm/types/XAdkProvider.js.map +1 -1
  62. package/dist/esm/types/XAdkSender.d.ts +38 -0
  63. package/dist/esm/types/XAdkSender.js +2 -0
  64. package/dist/esm/types/XAdkSender.js.map +1 -0
  65. package/dist/umd/chat-sdk.min.js +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useRef","useCallback","Popconfirm","message","Progress","Tooltip","Input","Modal","ClearOutlined","LoadingOutlined","ArrowUpOutlined","PaperClipOutlined","CloseOutlined","useStyles","jsx","_jsx","jsxs","_jsxs","FILE_ICONS","XAdkSender","_ref","_ref$clearBtnShow","clearBtnShow","_ref$allowUpload","allowUpload","_ref$loading","loading","_ref$uploadProps","uploadProps","onClear","onChange","onSubmit","onStop","onFilesChange","_ref$maxFileSize","maxFileSize","_ref$allowedFileTypes","allowedFileTypes","_ref$maxFiles","maxFiles","styles","_useState","_useState2","_slicedToArray","value","setValue","_useState3","_useState4","files","setFiles","_useState5","_useState6","isDragOver","setIsDragOver","containerRef","fileInputRef","uploadRef","generateId","Date","now","toString","Math","random","substr","getFileIcon","fileType","default","formatFileSize","bytes","toFixed","checkFileType","file","length","some","type","includes","mainType","split","startsWith","checkFileSize","maxSize","size","validateFile","valid","concat","getFileExtension","filename","ext","pop","toLowerCase","handleFileSelect","selectedFiles","fileArray","Array","from","validFiles","forEach","validation","push","id","uid","name","progress","status","response","error","prev","_toConsumableArray","uploadFiles","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileList","_iterator","_step","_loop","wrap","_callee$","_context2","next","_createForOfIteratorHelper","localFile","rcFile","options","_loop$","_context","map","f","_objectSpread","customRequest","Object","assign","action","data","headers","withCredentials","method","onProgress","event","percent","onSuccess","onError","errorMessage","Error","_typeof","defaultRequest","simulateUpload","stop","s","n","done","delegateYield","t1","e","finish","_x","apply","arguments","_ref3","_callee2","uploadFilesList","_callee2$","_context3","interval","setInterval","clearInterval","setTimeout","mockResponse","code","fileId","floor","tempUrl","fileName","_x2","handleRemoveFile","filter","triggerFileSelect","current","click","handleDragOver","preventDefault","stopPropagation","handleDragLeave","handleDrop","dataTransfer","handleSubmit","trim","warning","successFiles","uploadingFiles","confirm","title","content","okText","cancelText","onOk","formattedFiles","formatFilesForServer","text","onCancel","info","_file$response","responseData","url","mimeType","handleInputChange","newValue","target","handleKeyDown","key","shiftKey","renderFileList","className","fileListArea","children","fileCard","fileIcon","fileInfo","substring","uploadProgress","showInfo","strokeColor","fileSize","fileRemoveBtn","onClick","disabled","style","fontSize","containerClass","container","uploading","ref","onDragOver","undefined","onDragLeave","onDrop","multiple","accept","join","display","mainArea","senderWrap","onConfirm","placement","iconButton","clearButton","inputAndButtons","textAreaWrapper","TextArea","textArea","onKeyDown","placeholder","autoSize","minRows","maxRows","border","boxShadow","outline","padding","buttonGroup","uploadButton","sendButton","tip"],"sources":["../../../../src/components/XAdkSender/index.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport {\n Popconfirm, \n message, \n Progress,\n Tooltip,\n Input,\n Modal,\n Upload,\n type UploadProps\n} from 'antd';\nimport type { RcFile } from 'antd/es/upload';\nimport { \n ClearOutlined, \n LoadingOutlined, \n ArrowUpOutlined,\n PaperClipOutlined,\n CloseOutlined,\n} from '@ant-design/icons';\nimport { XAdkSenderProps, ServerFile, LocalFile } from '../../types/XAdkSender';\nimport { useStyles } from './styles';\n\n// 文件类型图标映射\nconst FILE_ICONS: Record<string, React.ReactNode> = {\n // ... 保持不变\n};\n\nconst XAdkSender: React.FC<XAdkSenderProps> = ({ \n clearBtnShow = true,\n allowUpload = false,\n loading = false,\n uploadProps = {},\n onClear,\n onChange,\n onSubmit,\n onStop,\n onFilesChange,\n maxFileSize = 10,\n allowedFileTypes = ['image/*', 'application/pdf', 'text/plain'],\n maxFiles = 5\n}) => {\n const styles = useStyles();\n const [value, setValue] = useState<string>('');\n const [files, setFiles] = useState<LocalFile[]>([]);\n const [isDragOver, setIsDragOver] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const uploadRef = useRef<any>(null);\n \n // 生成唯一ID\n const generateId = () => {\n return Date.now().toString(36) + Math.random().toString(36).substr(2);\n };\n \n // 获取文件图标\n const getFileIcon = (fileType: string) => {\n return FILE_ICONS[fileType] || FILE_ICONS.default;\n };\n \n // 格式化文件大小\n const formatFileSize = (bytes: number): string => {\n if (bytes < 1024) return bytes + ' Bytes';\n if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + ' KB';\n return (bytes / (1024 * 1024)).toFixed(1) + ' MB';\n };\n \n // 检查文件类型\n const checkFileType = (file: File): boolean => {\n if (!allowedFileTypes.length) return true;\n \n return allowedFileTypes.some(type => {\n if (type.includes('/*')) {\n const mainType = type.split('/')[0];\n return file.type.startsWith(mainType);\n }\n return file.type === type;\n });\n };\n \n // 检查文件大小\n const checkFileSize = (file: File): boolean => {\n const maxSize = maxFileSize * 1024 * 1024;\n return file.size <= maxSize;\n };\n \n // 验证文件\n const validateFile = (file: File): { valid: boolean; message?: string } => {\n if (files.length >= maxFiles) {\n return { valid: false, message: `最多只能上传 ${maxFiles} 个文件` };\n }\n \n if (!checkFileSize(file)) {\n return { valid: false, message: `文件大小不能超过 ${maxFileSize}MB` };\n }\n \n if (!checkFileType(file)) {\n return { valid: false, message: '不支持的文件类型' };\n }\n \n return { valid: true };\n };\n\n // 获取文件扩展名\n const getFileExtension = (filename: string): string => {\n const ext = filename.split('.').pop();\n return ext ? ext.toLowerCase() : '';\n };\n\n // 处理文件选择\n const handleFileSelect = useCallback((selectedFiles: File[]) => {\n const fileArray = Array.from(selectedFiles);\n const validFiles: LocalFile[] = [];\n \n fileArray.forEach(file => {\n const validation = validateFile(file);\n if (validation.valid) {\n validFiles.push({\n id: generateId(),\n uid: generateId(),\n name: file.name,\n size: file.size,\n type: file.type,\n file,\n progress: 0,\n status: 'pending',\n response: null\n });\n } else {\n message.error(validation.message);\n }\n });\n \n if (validFiles.length > 0) {\n setFiles(prev => [...prev, ...validFiles]);\n uploadFiles(validFiles);\n }\n }, [files.length, maxFiles, maxFileSize, allowedFileTypes]);\n\n // 上传文件\n const uploadFiles = async (fileList: LocalFile[]) => {\n for (const localFile of fileList) {\n // 开始上传\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, status: 'uploading' } : f\n ));\n \n try {\n // 如果外部提供了 customRequest,使用它\n if (uploadProps.customRequest) {\n // 构建 UploadRequestOption\n const rcFile: RcFile = Object.assign(localFile.file, {\n uid: localFile.uid,\n }) as RcFile;\n const options = {\n action: uploadProps.action,\n file: rcFile,\n filename: 'file',\n data: uploadProps.data,\n headers: uploadProps.headers,\n withCredentials: uploadProps.withCredentials,\n method: 'POST' as const,\n onProgress: (event: any) => {\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, progress: event.percent || 0 } : f\n ));\n },\n onSuccess: (response: any, file: any) => {\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { \n ...f, \n status: 'success', \n progress: 100,\n response \n } : f\n ));\n },\n onError: (error: ProgressEvent<EventTarget>) => {\n // 提取错误信息\n let errorMessage = '上传失败';\n if (error instanceof Error) {\n errorMessage = error.message;\n } else if (error && typeof error === 'object' && 'status' in error) {\n errorMessage = `HTTP ${error.status}`;\n }\n \n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, status: 'error' } : f\n ));\n message.error(`${localFile.name} 上传失败: ${errorMessage}`);\n }\n } as any;\n \n // 调用外部传入的 customRequest\n uploadProps.customRequest(options, {\n defaultRequest: () => {\n // 默认的上传逻辑\n simulateUpload([localFile]);\n }\n });\n } else {\n // 使用默认的上传逻辑\n simulateUpload([localFile]);\n }\n } catch (error) {\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, status: 'error' } : f\n ));\n message.error(`${localFile.name} 上传失败`);\n }\n }\n };\n\n // 模拟上传过程\n const simulateUpload = async (uploadFilesList: LocalFile[]) => {\n uploadFilesList.forEach(localFile => {\n let progress = 0;\n const interval = setInterval(() => {\n progress += 10;\n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { ...f, progress } : f\n ));\n \n if (progress >= 100) {\n clearInterval(interval);\n setTimeout(() => {\n // 模拟服务器响应\n const mockResponse = {\n code: 200,\n data: {\n fileId: Math.floor(Math.random() * 1000) + 1,\n tempUrl: `https://example.com/uploads/${localFile.name}`,\n fileName: localFile.name,\n fileType: getFileExtension(localFile.name)\n }\n };\n \n setFiles(prev => prev.map(f => \n f.id === localFile.id ? { \n ...f, \n status: 'success', \n progress: 100,\n response: mockResponse\n } : f\n ));\n }, 300);\n }\n }, 100);\n });\n };\n \n // 删除文件\n const handleRemoveFile = (id: string) => {\n setFiles(prev => prev.filter(file => file.id !== id));\n };\n \n // 触发文件选择\n const triggerFileSelect = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n \n // 处理拖拽事件\n const handleDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(true);\n }\n }, [allowUpload]);\n \n const handleDragLeave = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(false);\n }\n }, [allowUpload]);\n \n const handleDrop = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n \n if (allowUpload && e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n handleFileSelect(Array.from(e.dataTransfer.files));\n }\n }, [allowUpload, handleFileSelect]);\n \n // 处理提交\n const handleSubmit = () => {\n if (!value.trim() && files.length === 0) {\n message.warning('请输入消息或选择文件');\n return;\n }\n\n const successFiles = files.filter(file => file.status === 'success');\n const uploadingFiles = files.filter(file => file.status === 'uploading');\n \n if (uploadingFiles.length > 0) {\n Modal.confirm({\n title: '文件上传中',\n content: `还有 ${uploadingFiles.length} 个文件正在上传,是否继续发送?`,\n okText: '发送已完成的',\n cancelText: '等待全部完成',\n onOk: () => {\n const formattedFiles = formatFilesForServer(successFiles);\n if (onSubmit) {\n onSubmit({ \n text: value, \n files: formattedFiles \n });\n }\n \n setValue('');\n setFiles(prev => prev.filter(f => f.status !== 'success'));\n },\n onCancel: () => {\n message.info('请等待文件上传完成后再发送');\n },\n });\n } else {\n const formattedFiles = formatFilesForServer(successFiles);\n \n if (onSubmit) {\n onSubmit({ \n text: value, \n files: formattedFiles \n });\n }\n \n setValue('');\n setFiles(prev => prev.filter(f => f.status !== 'success'));\n }\n };\n\n // 格式化文件列表为服务端格式\n const formatFilesForServer = (fileList: LocalFile[]): ServerFile[] => {\n return fileList\n .filter(file => file.status === 'success' && file.response?.data)\n .map(file => {\n const responseData = file.response.data;\n \n return {\n fileName: file.name,\n fileId: responseData.fileId || responseData.id || 0,\n tempUrl: responseData.tempUrl || responseData.url || '',\n type: responseData.fileType || getFileExtension(file.name),\n mimeType: file.type\n };\n });\n };\n \n // 处理输入框变化\n const handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value;\n setValue(newValue);\n onChange?.(newValue);\n };\n \n // 处理回车键\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSubmit();\n }\n };\n \n // 渲染文件列表\n const renderFileList = () => {\n if (files.length === 0) return null;\n \n return (\n <div className={styles.fileListArea}>\n <div className={styles.fileList}>\n {files.map(file => (\n <div key={file.id} className={styles.fileCard}>\n <div className={styles.fileIcon}>\n {getFileIcon(file.type)}\n </div>\n <div className={styles.fileInfo}>\n <div className={styles.fileName}>\n <Tooltip title={file.name}>\n {file.name.length > 15 ? `${file.name.substring(0, 15)}...` : file.name}\n </Tooltip>\n </div>\n \n {file.status === 'uploading' ? (\n <div className={styles.uploadProgress}>\n <Progress \n percent={file.progress} \n size=\"small\" \n showInfo={false}\n strokeColor=\"#1890ff\"\n />\n </div>\n ) : (\n <div className={styles.fileSize}>\n {formatFileSize(file.size)}\n </div>\n )}\n </div>\n <button\n className={styles.fileRemoveBtn}\n onClick={() => handleRemoveFile(file.id)}\n disabled={file.status === 'uploading'}\n aria-label=\"删除文件\"\n >\n <CloseOutlined style={{ fontSize: 8 }} />\n </button>\n </div>\n ))}\n </div>\n </div>\n );\n };\n \n const containerClass = `${styles.container} ${isDragOver ? 'drag-over' : ''}`;\n const uploading = files.some(f => f.status === 'uploading');\n \n return (\n <div \n ref={containerRef}\n className={containerClass}\n onDragOver={allowUpload ? handleDragOver : undefined}\n onDragLeave={allowUpload ? handleDragLeave : undefined}\n onDrop={allowUpload ? handleDrop : undefined}\n >\n {allowUpload && files.length > 0 && renderFileList()}\n \n {/* 隐藏的原生 file input */}\n {allowUpload && (\n <input\n ref={fileInputRef}\n type=\"file\"\n multiple\n accept={allowedFileTypes.join(',')}\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) {\n handleFileSelect(Array.from(e.target.files));\n e.target.value = '';\n }\n }}\n />\n )}\n \n <div className={styles.mainArea}>\n <div className={styles.senderWrap}>\n {clearBtnShow && (\n <Popconfirm\n title=\"确定要清空聊天记录吗?\"\n onConfirm={onClear}\n placement=\"top\"\n okText=\"确定\"\n cancelText=\"取消\"\n disabled={uploading || loading}\n >\n <button\n className={`${styles.iconButton} ${styles.clearButton}`}\n disabled={uploading || loading}\n aria-label=\"清空聊天记录\"\n >\n <ClearOutlined />\n </button>\n </Popconfirm>\n )}\n \n <div className={styles.inputAndButtons}>\n <div className={styles.textAreaWrapper}>\n <Input.TextArea\n className={styles.textArea}\n value={value}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n placeholder=\"请输入消息...\"\n disabled={uploading || loading}\n autoSize={{ minRows: 1, maxRows: 4 }}\n style={{\n border: 'none',\n boxShadow: 'none',\n outline: 'none',\n padding: 0,\n }}\n />\n </div>\n \n <div className={styles.buttonGroup}>\n {allowUpload && (\n <Tooltip title=\"上传文件\">\n <button\n className={`${styles.iconButton} ${styles.uploadButton}`}\n onClick={triggerFileSelect}\n disabled={uploading || loading}\n aria-label=\"上传文件\"\n >\n <PaperClipOutlined />\n </button>\n </Tooltip>\n )}\n \n <Tooltip title={loading ? \"停止生成\" : \"发送消息\"}>\n <button\n className={`${styles.iconButton} ${styles.sendButton} ${loading ? 'stop' : ''}`}\n onClick={loading ? onStop : handleSubmit}\n disabled={uploading}\n aria-label={loading ? \"停止生成\" : \"发送消息\"}\n >\n {loading ? <LoadingOutlined /> : <ArrowUpOutlined />}\n </button>\n </Tooltip>\n </div>\n </div>\n </div>\n \n <div className={styles.tip}>\n 内容由AI生成,无法确保真实准确,仅供参考\n </div>\n </div>\n </div>\n );\n};\n\nexport default XAdkSender;\n"],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ export declare const useStyles: () => {
2
+ container: string;
3
+ fileListArea: string;
4
+ fileList: string;
5
+ fileCard: string;
6
+ fileSize: string;
7
+ uploadProgress: string;
8
+ fileIcon: string;
9
+ fileInfo: string;
10
+ fileName: string;
11
+ fileRemoveBtn: string;
12
+ mainArea: string;
13
+ senderWrap: string;
14
+ inputAndButtons: string;
15
+ textAreaWrapper: string;
16
+ textArea: string;
17
+ buttonGroup: string;
18
+ iconButton: string;
19
+ clearButton: string;
20
+ uploadButton: string;
21
+ sendButton: string;
22
+ tip: string;
23
+ } & {
24
+ w: (width: string | number) => string;
25
+ h: (height: string | number) => string;
26
+ p: (padding: string) => string;
27
+ pb: (padding: string | number) => string;
28
+ pt: (padding: string | number) => string;
29
+ pl: (padding: string | number) => string;
30
+ pr: (padding: string | number) => string;
31
+ m: (margin: string) => string;
32
+ mb: (margin: string | number) => string;
33
+ mt: (margin: string | number) => string;
34
+ ml: (margin: string | number) => string;
35
+ mr: (margin: string | number) => string;
36
+ text: (size: string | number) => string;
37
+ weight: (size: number) => string;
38
+ textColor: (c: string) => string;
39
+ bg: (c: string) => string;
40
+ rs: (radius: string | number) => string;
41
+ gap: (g: string | number) => string;
42
+ flex: string;
43
+ flexCenter: string;
44
+ flexBetween: string;
45
+ flexColumn: string;
46
+ flex1: string;
47
+ cursor: (type: string) => string;
48
+ border: (color: string, width?: string) => string;
49
+ boxShadow: (shadow: string) => string;
50
+ transition: (property?: string, duration?: string) => string;
51
+ overflow: (type: string) => string;
52
+ position: (type: string) => string;
53
+ zIndex: (index: number) => string;
54
+ flexCenterGap2: string;
55
+ flexCenterGap4: string;
56
+ };
@@ -0,0 +1,50 @@
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;
3
+ import { css } from '@emotion/css';
4
+ import { withBasicStyles } from "../../styles/common";
5
+ export var useStyles = withBasicStyles(function () {
6
+ return {
7
+ // 容器样式 - 最外层边框
8
+ container: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: #fff;\n position: relative;\n overflow: hidden;\n padding: 10px 15px;\n overflow: visible;\n border: 2px solid transparent;\n transition: all 0.3s ease;\n \n &.drag-over {\n border: 2px dashed #000;\n background: rgba(0, 0, 0, 0.02);\n }\n "]))),
9
+ // 文件列表区域
10
+ fileListArea: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding: 12px 16px 0 16px;\n max-height: 150px;\n overflow-y: auto;\n \n &::-webkit-scrollbar {\n width: 4px;\n }\n \n &::-webkit-scrollbar-track {\n background: #f5f5f5;\n border-radius: 2px;\n }\n \n &::-webkit-scrollbar-thumb {\n background: #d9d9d9;\n border-radius: 2px;\n }\n \n &::-webkit-scrollbar-thumb:hover {\n background: #bfbfbf;\n }\n "]))),
11
+ // 文件列表
12
+ fileList: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 12px;\n "]))),
13
+ // 文件卡片
14
+ fileCard: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n align-items: center;\n padding: 8px 12px;\n height: 64px;\n box-sizing: border-box;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n min-width: 0;\n flex: 0 0 auto;\n max-width: 200px;\n \n &:hover {\n background: #f5f5f5;\n }\n "]))),
15
+ fileSize: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-size: 11px;\n color: #8c8c8c;\n line-height: 1.4;\n height: 16px;\n display: flex;\n align-items: center;\n "]))),
16
+ // 进度条容器
17
+ uploadProgress: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n height: 16px;\n display: flex;\n align-items: center;\n \n .ant-progress {\n width: 100%;\n margin: 0;\n }\n \n .ant-progress-inner {\n height: 4px !important;\n }\n \n .ant-progress-bg {\n height: 4px !important;\n }\n "]))),
18
+ // 文件图标
19
+ fileIcon: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-size: 18px;\n color: #1890ff;\n margin-right: 10px;\n flex-shrink: 0;\n "]))),
20
+ // 文件信息
21
+ fileInfo: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n flex: 1;\n min-width: 0;\n overflow: hidden;\n "]))),
22
+ // 文件名
23
+ fileName: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n font-size: 12px;\n font-weight: 500;\n color: #262626;\n margin-bottom: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 1.4;\n "]))),
24
+ // 文件删除按钮 - 黑底白字
25
+ fileRemoveBtn: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n position: absolute;\n top: -4px;\n right: -4px;\n width: 16px;\n height: 16px;\n min-width: 16px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.75);\n color: #fff;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 1;\n padding: 0;\n font-size: 8px;\n transition: all 0.2s ease;\n \n &:hover {\n background: rgba(0, 0, 0, 0.9);\n transform: scale(1.1);\n }\n \n &:active {\n transform: scale(0.95);\n }\n "]))),
26
+ // 主内容区域
27
+ mainArea: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n //\n "]))),
28
+ // 发送区域
29
+ senderWrap: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 12px;\n background: var(--yb-input-bg-color);\n border: .5px solid var(--widget-line, rgba(0, 0, 0, .08));\n border-radius: 20px;\n box-sizing: border-box;\n caret-color: var(--yb-input-caret-color);\n flex: auto;\n font-size: 14px;\n gap: 6px;\n line-height: 22px;\n padding: 7px 12px 7px 7px;\n position: relative;\n transition-duration: .2s;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, box-shadow;\n transition-timing-function: linear;\n box-shadow: 0 6px 30px 0 rgba(0,0,0,.08);\n "]))),
30
+ // 输入框和按钮容器
31
+ inputAndButtons: css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n flex: 1;\n display: flex;\n align-items: flex-end;\n gap: 8px;\n "]))),
32
+ // 文本输入框容器
33
+ textAreaWrapper: css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral(["\n flex: 1;\n display: flex;\n align-items: center;\n background: #fff;\n padding: 0 16px;\n min-height: 44px;\n \n /* \u79FB\u9664\u6240\u6709\u84DD\u8272\u6548\u679C */\n &:focus-within {\n border-color: #d9d9d9;\n box-shadow: none;\n }\n \n .ant-input:disabled {\n background: transparent !important;\n }\n \n &::placeholder {\n color: #bfbfbf;\n }\n "]))),
34
+ // 文本输入框
35
+ textArea: css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["\n flex: 1;\n border: none;\n background: transparent;\n font-size: 14px;\n line-height: 1.5;\n padding: 12px 0;\n outline: none;\n color: #262626;\n "]))),
36
+ // 按钮组
37
+ buttonGroup: css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n align-items: center;\n height: 44px;\n "]))),
38
+ // 按钮统一样式
39
+ iconButton: css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral(["\n width: 36px;\n height: 36px;\n min-width: 36px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n \n &:hover {\n transform: translateY(-1px);\n }\n \n &:active {\n transform: translateY(0);\n }\n "]))),
40
+ // 清空按钮
41
+ clearButton: css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral(["\n border: 1px solid #f0f0f0;\n background: #fff;\n color: #8c8c8c;\n \n &:hover {\n border-color: #d9d9d9;\n color: #262626;\n background: #fafafa;\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n "]))),
42
+ // 上传按钮
43
+ uploadButton: css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral(["\n border: 1px solid #f0f0f0;\n background: #fff;\n \n &:hover {\n //\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n border-color: #f0f0f0;\n background: #fafafa;\n }\n "]))),
44
+ // 发送按钮
45
+ sendButton: css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral(["\n background: #000;\n border: none;\n color: #fff;\n \n &:hover:not(:disabled) {\n background: #333; /* \u60AC\u505C\u72B6\u6001 */\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: #cccccc;\n color: #fff;\n }\n \n &.stop {\n //\n \n &:hover:not(:disabled) {\n //\n }\n \n &:disabled {\n background: #cccccc; /* \u7981\u7528\u72B6\u6001\u4E5F\u4FDD\u6301\u6DE1\u7070\u8272 */\n }\n }\n "]))),
46
+ // 底部提示
47
+ tip: css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["\n margin: 12px 0;\n text-align: center;\n font-size: 12px;\n color: #8c8c8c;\n "])))
48
+ };
49
+ });
50
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["css","withBasicStyles","useStyles","container","_templateObject","_taggedTemplateLiteral","fileListArea","_templateObject2","fileList","_templateObject3","fileCard","_templateObject4","fileSize","_templateObject5","uploadProgress","_templateObject6","fileIcon","_templateObject7","fileInfo","_templateObject8","fileName","_templateObject9","fileRemoveBtn","_templateObject10","mainArea","_templateObject11","senderWrap","_templateObject12","inputAndButtons","_templateObject13","textAreaWrapper","_templateObject14","textArea","_templateObject15","buttonGroup","_templateObject16","iconButton","_templateObject17","clearButton","_templateObject18","uploadButton","_templateObject19","sendButton","_templateObject20","tip","_templateObject21"],"sources":["../../../../src/components/XAdkSender/styles.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { withBasicStyles } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n // 容器样式 - 最外层边框\n container: css`\n background: #fff;\n position: relative;\n overflow: hidden;\n padding: 10px 15px;\n overflow: visible;\n border: 2px solid transparent;\n transition: all 0.3s ease;\n \n &.drag-over {\n border: 2px dashed #000;\n background: rgba(0, 0, 0, 0.02);\n }\n `,\n \n // 文件列表区域\n fileListArea: css`\n padding: 12px 16px 0 16px;\n max-height: 150px;\n overflow-y: auto;\n \n &::-webkit-scrollbar {\n width: 4px;\n }\n \n &::-webkit-scrollbar-track {\n background: #f5f5f5;\n border-radius: 2px;\n }\n \n &::-webkit-scrollbar-thumb {\n background: #d9d9d9;\n border-radius: 2px;\n }\n \n &::-webkit-scrollbar-thumb:hover {\n background: #bfbfbf;\n }\n `,\n \n // 文件列表\n fileList: css`\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 12px;\n `,\n \n // 文件卡片\n fileCard: css`\n position: relative;\n display: flex;\n align-items: center;\n padding: 8px 12px;\n height: 64px;\n box-sizing: border-box;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n min-width: 0;\n flex: 0 0 auto;\n max-width: 200px;\n \n &:hover {\n background: #f5f5f5;\n }\n `,\n\n fileSize: css`\n font-size: 11px;\n color: #8c8c8c;\n line-height: 1.4;\n height: 16px;\n display: flex;\n align-items: center;\n `,\n\n // 进度条容器\n uploadProgress: css`\n height: 16px;\n display: flex;\n align-items: center;\n \n .ant-progress {\n width: 100%;\n margin: 0;\n }\n \n .ant-progress-inner {\n height: 4px !important;\n }\n \n .ant-progress-bg {\n height: 4px !important;\n }\n `,\n \n // 文件图标\n fileIcon: css`\n font-size: 18px;\n color: #1890ff;\n margin-right: 10px;\n flex-shrink: 0;\n `,\n \n // 文件信息\n fileInfo: css`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n `,\n \n // 文件名\n fileName: css`\n font-size: 12px;\n font-weight: 500;\n color: #262626;\n margin-bottom: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 1.4;\n `,\n \n // 文件删除按钮 - 黑底白字\n fileRemoveBtn: css`\n position: absolute;\n top: -4px;\n right: -4px;\n width: 16px;\n height: 16px;\n min-width: 16px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.75);\n color: #fff;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 1;\n padding: 0;\n font-size: 8px;\n transition: all 0.2s ease;\n \n &:hover {\n background: rgba(0, 0, 0, 0.9);\n transform: scale(1.1);\n }\n \n &:active {\n transform: scale(0.95);\n }\n `,\n \n // 主内容区域\n mainArea: css`\n //\n `,\n \n // 发送区域\n senderWrap: css`\n display: flex;\n align-items: center;\n gap: 12px;\n background: var(--yb-input-bg-color);\n border: .5px solid var(--widget-line, rgba(0, 0, 0, .08));\n border-radius: 20px;\n box-sizing: border-box;\n caret-color: var(--yb-input-caret-color);\n flex: auto;\n font-size: 14px;\n gap: 6px;\n line-height: 22px;\n padding: 7px 12px 7px 7px;\n position: relative;\n transition-duration: .2s;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, box-shadow;\n transition-timing-function: linear;\n box-shadow: 0 6px 30px 0 rgba(0,0,0,.08);\n `,\n \n // 输入框和按钮容器\n inputAndButtons: css`\n flex: 1;\n display: flex;\n align-items: flex-end;\n gap: 8px;\n `,\n \n // 文本输入框容器\n textAreaWrapper: css`\n flex: 1;\n display: flex;\n align-items: center;\n background: #fff;\n padding: 0 16px;\n min-height: 44px;\n \n /* 移除所有蓝色效果 */\n &:focus-within {\n border-color: #d9d9d9;\n box-shadow: none;\n }\n \n .ant-input:disabled {\n background: transparent !important;\n }\n \n &::placeholder {\n color: #bfbfbf;\n }\n `,\n\n // 文本输入框\n textArea: css`\n flex: 1;\n border: none;\n background: transparent;\n font-size: 14px;\n line-height: 1.5;\n padding: 12px 0;\n outline: none;\n color: #262626;\n `,\n \n // 按钮组\n buttonGroup: css`\n display: flex;\n gap: 8px;\n align-items: center;\n height: 44px;\n `,\n \n // 按钮统一样式\n iconButton: css`\n width: 36px;\n height: 36px;\n min-width: 36px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n \n &:hover {\n transform: translateY(-1px);\n }\n \n &:active {\n transform: translateY(0);\n }\n `,\n \n // 清空按钮\n clearButton: css`\n border: 1px solid #f0f0f0;\n background: #fff;\n color: #8c8c8c;\n \n &:hover {\n border-color: #d9d9d9;\n color: #262626;\n background: #fafafa;\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `,\n \n // 上传按钮\n uploadButton: css`\n border: 1px solid #f0f0f0;\n background: #fff;\n \n &:hover {\n //\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n border-color: #f0f0f0;\n background: #fafafa;\n }\n `,\n \n // 发送按钮\n sendButton: css`\n background: #000;\n border: none;\n color: #fff;\n \n &:hover:not(:disabled) {\n background: #333; /* 悬停状态 */\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: #cccccc;\n color: #fff;\n }\n \n &.stop {\n //\n \n &:hover:not(:disabled) {\n //\n }\n \n &:disabled {\n background: #cccccc; /* 禁用状态也保持淡灰色 */\n }\n }\n `,\n \n // 底部提示\n tip: css`\n margin: 12px 0;\n text-align: center;\n font-size: 12px;\n color: #8c8c8c;\n `\n}));"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe;AAExB,OAAO,IAAMC,SAAS,GAAGD,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAE,SAAS,EAAEH,GAAG,CAAAI,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gTAab;IAED;IACAC,YAAY,EAAEN,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,obAsBhB;IAED;IACAG,QAAQ,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,+FAKZ;IAED;IACAK,QAAQ,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,qWAiBZ;IAEDO,QAAQ,EAAEZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAR,sBAAA,+IAOZ;IAED;IACAS,cAAc,EAAEd,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,gSAiBlB;IAED;IACAW,QAAQ,EAAEhB,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAZ,sBAAA,qGAKZ;IAED;IACAa,QAAQ,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAd,sBAAA,oEAIZ;IAED;IACAe,QAAQ,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAhB,sBAAA,6MASZ;IAED;IACAiB,aAAa,EAAEtB,GAAG,CAAAuB,iBAAA,KAAAA,iBAAA,GAAAlB,sBAAA,4jBA4BjB;IAED;IACAmB,QAAQ,EAAExB,GAAG,CAAAyB,iBAAA,KAAAA,iBAAA,GAAApB,sBAAA,oBAEZ;IAED;IACAqB,UAAU,EAAE1B,GAAG,CAAA2B,iBAAA,KAAAA,iBAAA,GAAAtB,sBAAA,2oBAmBd;IAED;IACAuB,eAAe,EAAE5B,GAAG,CAAA6B,iBAAA,KAAAA,iBAAA,GAAAxB,sBAAA,yFAKnB;IAED;IACAyB,eAAe,EAAE9B,GAAG,CAAA+B,iBAAA,KAAAA,iBAAA,GAAA1B,sBAAA,+aAqBnB;IAED;IACA2B,QAAQ,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAA5B,sBAAA,uLASZ;IAED;IACA6B,WAAW,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAA9B,sBAAA,4FAKf;IAED;IACA+B,UAAU,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAhC,sBAAA,0UAiBd;IAED;IACAiC,WAAW,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAlC,sBAAA,qRAef;IAED;IACAmC,YAAY,EAAExC,GAAG,CAAAyC,iBAAA,KAAAA,iBAAA,GAAApC,sBAAA,mPAchB;IAED;IACAqC,UAAU,EAAE1C,GAAG,CAAA2C,iBAAA,KAAAA,iBAAA,GAAAtC,sBAAA,mhBA2Bd;IAED;IACAuC,GAAG,EAAE5C,GAAG,CAAA6C,iBAAA,KAAAA,iBAAA,GAAAxC,sBAAA;EAMV,CAAC;AAAA,CAAC,CAAC"}
@@ -136,7 +136,7 @@ export var 携带历史记录实例 = {
136
136
  },
137
137
  args: {
138
138
  url: 'https://m-poc-dev.zaxline.com',
139
- token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIl0sImV4cCI6MTc2NzYxMjA1OCwianRpIjoibWljUkJubXk1cUNqb0hYRFkzYlRQb3RKb3FjIiwiY2xpZW50X2lkIjoiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIn0.Ds-B4wr8WkDebX7jbN3gooGzGKENhsXKm8unPjP0Pb4eb-1xF_ZVH8jHVSzAwM3Wr37IShSak-hS6vnVz8QP0NqFGDEZf6EaIvGAmaJo32ESiYCiOfLgHc7ctai9yraAgQYOEXvNzdanKz9OWBDEdCCRAO7DL89Y7xIIwTqAEGkNESD6WVrjDBF_8EcS8dJlGkpeQRLatJsXfpefGy64mxN0nkbolV_tMKtLm8RvJsUfcG7gAbEAWW_hssrZe-CaYpaSgiJSsztEGoYm0gBNKx1tDwd76vVmj9yIXW7GL8EZtDWr9a7DbifVUGg08qSimoqlaI3Mk1iVSFdNdn6Ymw',
139
+ token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIl0sImV4cCI6MTc2NzcwNDA3MSwianRpIjoiVTBxcHJOdFRsNWtkamdzdGJRcy1LRnRUblRFIiwiY2xpZW50X2lkIjoiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIn0.ghuyC_rAMGb-Eiaymvr7ucCTcr1iE-2zfYFVQCPmkhHPHvlzgPmbaiA5_KlOyp_edVED4huDF6wNsjSZ62D7tVp_KrA47EtC-pY87-69PXmb7JbES0mmwX_4zE2kiQ8F5jMs9naWpRotHoZjPBneU1lxZNR2J_vFsH4Ta9_iLJcjOKurUZE1QbhxgkKjcCb2v5pNXe2iwUWTUuwp81B0Wn_JNSwYkUken0mnYu1jXl88rNqMCS56sQ9z32flGg5wRh8Wuo06mYvtmel_cQrmm0PrVAANCoZDahh0TO8W1Oaw1QsdaBX7f1KAi-GaNvmegcNFkwjtCFsGJ3KRBp6HYQ',
140
140
  config: {
141
141
  appNo: 'aNGnfWKZDQeMYy3wCVHW9V5L',
142
142
  session: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Button","XAdkWebProvider","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","onError","providerError","onMessage","data","url","token","appNo","providerId","携带历史记录实例","_providerRef$current2","width","session","showSessionList"],"sources":["../../../../src/components/XAdkWebProvider/XAdkWebProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAdkWebProvider from './index';\nimport XAiChatbot from '../XAiChatbot';\n\nconst meta: Meta<typeof XAdkWebProvider> = {\n title: 'AI组件/XAdkWebProvider AI容器',\n component: XAdkWebProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: {\n summary: 'XAdkWebProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n }`,\n },\n category: '配置选项',\n },\n },\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: '你好,AI!' });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '350px', height: '600px' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n </XAdkWebProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIl0sImV4cCI6MTc2NzUzNjE2NSwianRpIjoicnktX0RIQnVFbE9tQW1rZWtLNjBnNzREaGk0IiwiY2xpZW50X2lkIjoiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIn0.UnedO15cSkYyE6u6ZQATLXSYIYb0GylP7RjeJYHDTVwGPuYKOHENgYMbXkL_FOe_V8681eZ5uXpR5k31HsziIjp_GtZdUqLv5O_bEzZ5gKMPmy9uXpr56M-IiB2c6GZRbJF-DI1b4J9QJcvwlIvQG-I2ug50cGmlZ4YHhRrjHnU6Z8j8iJoF4CLUgzG5R0UasIlonfI1uVUXX1lqD4iomZ7UDWodPLi2QpjlCkUq2kaJbjRSZAPHpugff4ZKzAl47nO2deBOBbmDkzPnKmibCwJ5rZVtYIYvWLq8iX0qgkhXEkEn20DB717WPGi779qB8vxOx4rGlwuegRAz_05_qg',\n config: {\n appNo: 'aNGnfWKZDQeMYy3wCVHW9V5L',\n },\n providerId: 'demo-provider',\n },\n};\n\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: '你好,AI!' });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ height: '600px', width: '100vw' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n />\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIl0sImV4cCI6MTc2NzYxMjA1OCwianRpIjoibWljUkJubXk1cUNqb0hYRFkzYlRQb3RKb3FjIiwiY2xpZW50X2lkIjoiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIn0.Ds-B4wr8WkDebX7jbN3gooGzGKENhsXKm8unPjP0Pb4eb-1xF_ZVH8jHVSzAwM3Wr37IShSak-hS6vnVz8QP0NqFGDEZf6EaIvGAmaJo32ESiYCiOfLgHc7ctai9yraAgQYOEXvNzdanKz9OWBDEdCCRAO7DL89Y7xIIwTqAEGkNESD6WVrjDBF_8EcS8dJlGkpeQRLatJsXfpefGy64mxN0nkbolV_tMKtLm8RvJsUfcG7gAbEAWW_hssrZe-CaYpaSgiJSsztEGoYm0gBNKx1tDwd76vVmj9yIXW7GL8EZtDWr9a7DbifVUGg08qSimoqlaI3Mk1iVSFdNdn6Ymw',\n config: {\n appNo: 'aNGnfWKZDQeMYy3wCVHW9V5L',\n session: {\n showSessionList: true,\n }\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
1
+ {"version":3,"names":["React","Button","XAdkWebProvider","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","onError","providerError","onMessage","data","url","token","appNo","providerId","携带历史记录实例","_providerRef$current2","width","session","showSessionList"],"sources":["../../../../src/components/XAdkWebProvider/XAdkWebProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAdkWebProvider from './index';\nimport XAiChatbot from '../XAiChatbot';\n\nconst meta: Meta<typeof XAdkWebProvider> = {\n title: 'AI组件/XAdkWebProvider AI容器',\n component: XAdkWebProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: {\n summary: 'XAdkWebProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n }`,\n },\n category: '配置选项',\n },\n },\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: '你好,AI!' });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '350px', height: '600px' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n </XAdkWebProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIl0sImV4cCI6MTc2NzUzNjE2NSwianRpIjoicnktX0RIQnVFbE9tQW1rZWtLNjBnNzREaGk0IiwiY2xpZW50X2lkIjoiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIn0.UnedO15cSkYyE6u6ZQATLXSYIYb0GylP7RjeJYHDTVwGPuYKOHENgYMbXkL_FOe_V8681eZ5uXpR5k31HsziIjp_GtZdUqLv5O_bEzZ5gKMPmy9uXpr56M-IiB2c6GZRbJF-DI1b4J9QJcvwlIvQG-I2ug50cGmlZ4YHhRrjHnU6Z8j8iJoF4CLUgzG5R0UasIlonfI1uVUXX1lqD4iomZ7UDWodPLi2QpjlCkUq2kaJbjRSZAPHpugff4ZKzAl47nO2deBOBbmDkzPnKmibCwJ5rZVtYIYvWLq8iX0qgkhXEkEn20DB717WPGi779qB8vxOx4rGlwuegRAz_05_qg',\n config: {\n appNo: 'aNGnfWKZDQeMYy3wCVHW9V5L',\n },\n providerId: 'demo-provider',\n },\n};\n\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: '你好,AI!' });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ height: '600px', width: '100vw' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n />\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIl0sImV4cCI6MTc2NzcwNDA3MSwianRpIjoiVTBxcHJOdFRsNWtkamdzdGJRcy1LRnRUblRFIiwiY2xpZW50X2lkIjoiYU5HbmZXS1pEUWVNWXkzd0NWSFc5VjVMIn0.ghuyC_rAMGb-Eiaymvr7ucCTcr1iE-2zfYFVQCPmkhHPHvlzgPmbaiA5_KlOyp_edVED4huDF6wNsjSZ62D7tVp_KrA47EtC-pY87-69PXmb7JbES0mmwX_4zE2kiQ8F5jMs9naWpRotHoZjPBneU1lxZNR2J_vFsH4Ta9_iLJcjOKurUZE1QbhxgkKjcCb2v5pNXe2iwUWTUuwp81B0Wn_JNSwYkUken0mnYu1jXl88rNqMCS56sQ9z32flGg5wRh8Wuo06mYvtmel_cQrmm0PrVAANCoZDahh0TO8W1Oaw1QsdaBX7f1KAi-GaNvmegcNFkwjtCFsGJ3KRBp6HYQ',\n config: {\n appNo: 'aNGnfWKZDQeMYy3wCVHW9V5L',\n session: {\n showSessionList: true,\n }\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
@@ -47,6 +47,7 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
47
47
  suggestions = _useADKChat.suggestions,
48
48
  sessionList = _useADKChat.sessionList,
49
49
  currentSessionId = _useADKChat.currentSessionId,
50
+ initialized = _useADKChat.initialized,
50
51
  setMessages = _useADKChat.setMessages,
51
52
  startChat = _useADKChat.startChat,
52
53
  stopChat = _useADKChat.stopChat,
@@ -81,7 +82,7 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
81
82
  }, [appInfo, messages, stopChat, setMessages, setCurrentSessionDetail]);
82
83
  var _useState = useState(false),
83
84
  _useState2 = _slicedToArray(_useState, 2),
84
- isNarrow = _useState2[0],
85
+ _isNarrow = _useState2[0],
85
86
  setIsNarrow = _useState2[1];
86
87
  var divRef = useRef(null);
87
88
 
@@ -123,32 +124,34 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
123
124
 
124
125
  // 发送消息
125
126
  var handleSendMessage = /*#__PURE__*/function () {
126
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(text) {
127
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref3) {
128
+ var _ref3$text, text;
127
129
  return _regeneratorRuntime().wrap(function _callee$(_context) {
128
130
  while (1) switch (_context.prev = _context.next) {
129
131
  case 0:
130
- _context.next = 2;
132
+ _ref3$text = _ref3.text, text = _ref3$text === void 0 ? '' : _ref3$text;
133
+ _context.next = 3;
131
134
  return startChat(text);
132
- case 2:
135
+ case 3:
133
136
  case "end":
134
137
  return _context.stop();
135
138
  }
136
139
  }, _callee);
137
140
  }));
138
141
  return function handleSendMessage(_x) {
139
- return _ref3.apply(this, arguments);
142
+ return _ref4.apply(this, arguments);
140
143
  };
141
144
  }();
142
145
 
143
146
  // 处理添加反馈
144
147
  var handleAddFeedback = /*#__PURE__*/function () {
145
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {
148
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {
146
149
  var _data$raw$isLike, _data$raw;
147
- var _ref5, appNo, isLike, _yield$addFeedback, result;
150
+ var _ref6, appNo, isLike, _yield$addFeedback, result;
148
151
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
149
152
  while (1) switch (_context2.prev = _context2.next) {
150
153
  case 0:
151
- _ref5 = config || {}, appNo = _ref5.appNo;
154
+ _ref6 = config || {}, appNo = _ref6.appNo;
152
155
  isLike = (_data$raw$isLike = data === null || data === void 0 || (_data$raw = data.raw) === null || _data$raw === void 0 ? void 0 : _data$raw.isLike) !== null && _data$raw$isLike !== void 0 ? _data$raw$isLike : 0;
153
156
  if (!(isLike !== 0)) {
154
157
  _context2.next = 5;
@@ -196,16 +199,16 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
196
199
  }, _callee2);
197
200
  }));
198
201
  return function handleAddFeedback(_x2) {
199
- return _ref4.apply(this, arguments);
202
+ return _ref5.apply(this, arguments);
200
203
  };
201
204
  }();
202
- var renderFooter = function renderFooter(_ref6) {
203
- var _ref6$message = _ref6.message,
204
- msg = _ref6$message === void 0 ? {} : _ref6$message,
205
- _ref6$isLastBotMsg = _ref6.isLastBotMsg,
206
- isLastBotMsg = _ref6$isLastBotMsg === void 0 ? false : _ref6$isLastBotMsg,
207
- _ref6$isLastMsg = _ref6.isLastMsg,
208
- isLastMsg = _ref6$isLastMsg === void 0 ? false : _ref6$isLastMsg;
205
+ var renderFooter = function renderFooter(_ref7) {
206
+ var _ref7$message = _ref7.message,
207
+ msg = _ref7$message === void 0 ? {} : _ref7$message,
208
+ _ref7$isLastBotMsg = _ref7.isLastBotMsg,
209
+ isLastBotMsg = _ref7$isLastBotMsg === void 0 ? false : _ref7$isLastBotMsg,
210
+ _ref7$isLastMsg = _ref7.isLastMsg,
211
+ isLastMsg = _ref7$isLastMsg === void 0 ? false : _ref7$isLastMsg;
209
212
  if (isLastBotMsg) {
210
213
  var _msg$raw;
211
214
  return /*#__PURE__*/_jsxs(Flex, {
@@ -226,7 +229,9 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
226
229
  var lastMsg = messages.findLast(function (v) {
227
230
  return v.role === 'user' && v.text;
228
231
  });
229
- handleSendMessage((lastMsg === null || lastMsg === void 0 ? void 0 : lastMsg.text) || '');
232
+ handleSendMessage({
233
+ text: (lastMsg === null || lastMsg === void 0 ? void 0 : lastMsg.text) || ''
234
+ });
230
235
  }
231
236
  })
232
237
  }), /*#__PURE__*/_jsx(Tooltip, {
@@ -248,7 +253,7 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
248
253
  msg: msg,
249
254
  activeColor: (appInfo === null || appInfo === void 0 ? void 0 : appInfo.appTheme) || primaryBlue,
250
255
  onSubmit: ( /*#__PURE__*/function () {
251
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(formData) {
256
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(formData) {
252
257
  var _yield$addFeedback2, result;
253
258
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
254
259
  while (1) switch (_context3.prev = _context3.next) {
@@ -290,7 +295,7 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
290
295
  }, _callee3);
291
296
  }));
292
297
  return function (_x3) {
293
- return _ref7.apply(this, arguments);
298
+ return _ref8.apply(this, arguments);
294
299
  };
295
300
  }())
296
301
  })
@@ -429,6 +434,8 @@ var XAdkWebProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
429
434
  children: /*#__PURE__*/_jsx("div", {
430
435
  className: styles.content,
431
436
  children: /*#__PURE__*/_jsx(XAdkChatbot, {
437
+ allowUpload: config === null || config === void 0 ? void 0 : config.allowUpload,
438
+ initialized: initialized,
432
439
  prologue: prologue,
433
440
  suggestions: suggestions,
434
441
  loading: loading,
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useImperativeHandle","useState","useRef","useEffect","message","Flex","Tooltip","Button","Modal","Input","ConfigProvider","copy","XProvider","ExclamationCircleFilled","ReloadOutlined","CopyOutlined","LikeFilled","LikeOutlined","MOBILE_MAX_WIDTH","API_SUCCESS_CODE","XAdkChatbot","DislikeFeedback","useADKChat","addFeedback","primaryBlue","XAiConversations","useStyles","jsx","_jsx","jsxs","_jsxs","confirm","XAdkWebProvider","_ref","ref","_config$chatProps","_config$session","_config$session2","_ref$url","url","window","location","origin","token","config","_ref$providerId","providerId","onSuccess","onError","styles","_useADKChat","appInfo","loading","messages","prologue","suggestions","sessionList","currentSessionId","setMessages","startChat","stopChat","clearChat","suggestChat","deleteSession","updateSession","setCurrentSessionDetail","_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","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","text","wrap","_callee$","_context","prev","next","stop","_x","apply","arguments","handleAddFeedback","_ref4","_callee2","data","_data$raw$isLike","_data$raw","_ref5","appNo","isLike","_yield$addFeedback","result","_callee2$","_context2","raw","warning","abrupt","requestId","invocationId","sent","code","success","map","item","id","_objectSpread","error","_x2","renderFooter","_ref6","_ref6$message","msg","_ref6$isLastBotMsg","isLastBotMsg","_ref6$isLastMsg","isLastMsg","_msg$raw","gap","style","padding","children","title","type","size","color","onClick","lastMsg","findLast","v","role","activeColor","appTheme","onSubmit","_ref7","_callee3","formData","_yield$addFeedback2","_callee3$","_context3","_x3","msgs","filter","join","isOk","handleUpdateSession","sessionId","menuConfig","conversation","items","label","key","danger","menuInfo","domEvent","stopPropagation","inputValue","content","defaultValue","autoFocus","onChange","target","okText","cancelText","okButtonProps","background","borderColor","onOk","trim","Promise","reject","onCancel","okType","clearBtnShow","chatProps","session","showSessionList","className","providerWrapper","onActiveChange","onNewChat","activeKey","menu","chatbotWrapper","footer","onStop","onClear","onSuggest"],"sources":["../../../../src/components/XAdkWebProvider/index.tsx"],"sourcesContent":["import { forwardRef, useImperativeHandle, useState, useRef, useEffect } from 'react';\nimport { message, Flex, Tooltip, Button, Modal, Input, ConfigProvider } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport type { ConversationsProps } from '@ant-design/x';\nimport { ExclamationCircleFilled, ReloadOutlined, CopyOutlined, LikeFilled, LikeOutlined } from '@ant-design/icons';\nimport { XAdkProviderProps, XAdkProviderHandle } from '@/types/XAdkProvider';\nimport { MOBILE_MAX_WIDTH, API_SUCCESS_CODE } from '@/constants';\nimport type { IMessage } from '@/types';\nimport XAdkChatbot from '../XAdkChatbot';\nimport DislikeFeedback from '../DislikeFeedback';\nimport useADKChat from '@/hooks/useADKChat';\nimport { addFeedback } from '@/services/api';\nimport { primaryBlue } from '@/styles/common';\nimport XAiConversations from '../XAiConversations';\nimport { useStyles } from './styles';\n\nconst { confirm } = Modal;\n\nconst XAdkWebProvider = forwardRef<XAdkProviderHandle, XAdkProviderProps>(({\n url = window.location.origin,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n const styles = useStyles();\n // const { textSpeed = 55 } = config?.chatProps || {};\n\n const {\n appInfo,\n loading,\n messages,\n prologue,\n suggestions,\n sessionList,\n currentSessionId,\n setMessages,\n startChat,\n stopChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n setCurrentSessionDetail,\n } = useADKChat({ url, config, token, onSuccess, onError });\n\n const { appName, icon } = appInfo || {};\n\n useImperativeHandle(ref, () => ({\n startChat,\n stopChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSessionDetail,\n }), [appInfo, messages, stopChat, setMessages, setCurrentSessionDetail]);\n\n const [isNarrow, setIsNarrow] = useState<boolean>(false);\n const divRef = useRef<HTMLDivElement>(null);\n\n // 监听容器宽度变化\n useEffect(() => {\n const div = divRef.current;\n if (!div) return;\n\n // 创建监听器\n const resizeObserver = new ResizeObserver((entries) => {\n // eslint-disable-next-line no-restricted-syntax\n for (const entry of entries) {\n const { width } = entry.contentRect;\n setIsNarrow(width <= MOBILE_MAX_WIDTH);\n }\n });\n\n // 开始监听\n resizeObserver.observe(div);\n\n // 初始化检查\n const initialWidth = div.offsetWidth;\n setIsNarrow(initialWidth <= MOBILE_MAX_WIDTH);\n\n // 清理函数\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n // 发送消息\n const handleSendMessage = async (text: string) => {\n await startChat(text);\n };\n\n // 处理添加反馈\n const handleAddFeedback = async (data: any) => {\n const { appNo } = config || {};\n const isLike = data?.raw?.isLike ?? 0;\n if (isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (appNo) {\n const { result } = await addFeedback({\n url,\n token,\n appNo,\n requestId: data.invocationId,\n isLike: 1,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('感谢您的反馈');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === data.id) {\n return {\n ...item,\n raw: {\n ...item.raw,\n isLike: 1, \n }\n };\n }\n return item;\n });\n });\n } else {\n message.error('反馈失败,请稍后再试');\n }\n }\n };\n\n\n const renderFooter = ({ message: msg = {} as IMessage, isLastBotMsg = false, isLastMsg = false}) => {\n if (isLastBotMsg) {\n return (\n <Flex gap={4} style={{ padding: '8px 0' }}>\n {isLastMsg && (\n <Tooltip title=\"重新生成\">\n <Button\n type=\"text\"\n size=\"small\"\n style={{ color: '#949494' }}\n icon={<ReloadOutlined />}\n onClick={() => {\n const lastMsg = messages.findLast((v) => {\n return v.role === 'user' && v.text;\n });\n handleSendMessage(lastMsg?.text || '');\n }}\n />\n </Tooltip>\n )}\n <Tooltip title=\"赞\">\n <Button\n type=\"text\"\n size=\"small\"\n style={{ color: '#949494' }}\n icon={msg.raw?.isLike === 1 ? <LikeFilled /> : <LikeOutlined />}\n onClick={() => handleAddFeedback(msg)}\n />\n </Tooltip>\n <Tooltip title=\"踩\">\n <DislikeFeedback\n msg={msg}\n activeColor={appInfo?.appTheme || primaryBlue}\n onSubmit={async (formData) => {\n const { result } = await addFeedback({\n ...formData,\n requestId: msg.invocationId,\n isLike: -1,\n url,\n appNo: config?.appNo,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('已收到您的反馈,我们会努力做的更好');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === msg.id) {\n return {\n ...item,\n isLike: -1,\n };\n }\n return item;\n });\n });\n return true;\n }\n message.error('反馈失败,请稍后再试');\n return false;\n }}\n />\n </Tooltip>\n <Tooltip title=\"复制\">\n <Button\n type=\"text\"\n size=\"small\"\n style={{ color: '#949494' }}\n icon={<CopyOutlined />}\n onClick={() => {\n const msgs = messages.filter((v) => {\n return v.role === 'bot'\n && v.invocationId === msg.invocationId\n && v.text;\n });\n const text = msgs.map((v) => {\n return v.text;\n }).join('\\n');\n const isOk = copy(text);\n if (isOk) {\n message.success('复制成功');\n }\n }}\n />\n </Tooltip>\n </Flex>\n );\n }\n return null;\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 deleteSession(conversation.key);\n },\n onCancel() {\n //\n },\n });\n break;\n }\n },\n });\n\n // 是否展示清空按钮\n const clearBtnShow = typeof config?.chatProps?.clearBtnShow !== 'undefined'\n ? config.chatProps.clearBtnShow\n : !config?.session?.showSessionList;\n\n return (\n <ConfigProvider>\n <XProvider>\n <div\n ref={divRef}\n className={styles.providerWrapper}\n > \n {config?.session?.showSessionList && (\n <XAiConversations\n isNarrow={false}\n sessionList={sessionList}\n onActiveChange={(key) => setCurrentSessionDetail(key)}\n onNewChat={clearChat}\n activeKey={currentSessionId}\n menu={menuConfig}\n />\n )}\n <div className={styles.chatbotWrapper}>\n <div className={styles.content}>\n <XAdkChatbot\n prologue={prologue}\n suggestions={suggestions}\n loading={loading}\n messages={messages}\n footer={renderFooter}\n onSubmit={handleSendMessage}\n onStop={stopChat}\n onClear={clearChat}\n onSuggest={suggestChat}\n clearBtnShow={clearBtnShow}\n />\n </div>\n </div>\n </div>\n </XProvider>\n </ConfigProvider>\n );\n});\n\nexport default XAdkWebProvider;\n"],"mappings":"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"}
1
+ {"version":3,"names":["forwardRef","useImperativeHandle","useState","useRef","useEffect","message","Flex","Tooltip","Button","Modal","Input","ConfigProvider","copy","XProvider","ExclamationCircleFilled","ReloadOutlined","CopyOutlined","LikeFilled","LikeOutlined","MOBILE_MAX_WIDTH","API_SUCCESS_CODE","XAdkChatbot","DislikeFeedback","useADKChat","addFeedback","primaryBlue","XAiConversations","useStyles","jsx","_jsx","jsxs","_jsxs","confirm","XAdkWebProvider","_ref","ref","_config$chatProps","_config$session","_config$session2","_ref$url","url","window","location","origin","token","config","_ref$providerId","providerId","onSuccess","onError","styles","_useADKChat","appInfo","loading","messages","prologue","suggestions","sessionList","currentSessionId","initialized","setMessages","startChat","stopChat","clearChat","suggestChat","deleteSession","updateSession","setCurrentSessionDetail","_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","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref3","_ref3$text","text","wrap","_callee$","_context","prev","next","stop","_x","apply","arguments","handleAddFeedback","_ref5","_callee2","data","_data$raw$isLike","_data$raw","_ref6","appNo","isLike","_yield$addFeedback","result","_callee2$","_context2","raw","warning","abrupt","requestId","invocationId","sent","code","success","map","item","id","_objectSpread","error","_x2","renderFooter","_ref7","_ref7$message","msg","_ref7$isLastBotMsg","isLastBotMsg","_ref7$isLastMsg","isLastMsg","_msg$raw","gap","style","padding","children","title","type","size","color","onClick","lastMsg","findLast","v","role","activeColor","appTheme","onSubmit","_ref8","_callee3","formData","_yield$addFeedback2","_callee3$","_context3","_x3","msgs","filter","join","isOk","handleUpdateSession","sessionId","menuConfig","conversation","items","label","key","danger","menuInfo","domEvent","stopPropagation","inputValue","content","defaultValue","autoFocus","onChange","target","okText","cancelText","okButtonProps","background","borderColor","onOk","trim","Promise","reject","onCancel","okType","clearBtnShow","chatProps","session","showSessionList","className","providerWrapper","isNarrow","onActiveChange","onNewChat","activeKey","menu","chatbotWrapper","allowUpload","footer","onStop","onClear","onSuggest"],"sources":["../../../../src/components/XAdkWebProvider/index.tsx"],"sourcesContent":["import { forwardRef, useImperativeHandle, useState, useRef, useEffect } from 'react';\nimport { message, Flex, Tooltip, Button, Modal, Input, ConfigProvider } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport type { ConversationsProps } from '@ant-design/x';\nimport { ExclamationCircleFilled, ReloadOutlined, CopyOutlined, LikeFilled, LikeOutlined } from '@ant-design/icons';\nimport { XAdkProviderProps, XAdkProviderHandle } from '@/types/XAdkProvider';\nimport { MOBILE_MAX_WIDTH, API_SUCCESS_CODE } from '@/constants';\nimport type { IMessage, SendContent } from '@/types';\nimport XAdkChatbot from '../XAdkChatbot';\nimport DislikeFeedback from '../DislikeFeedback';\nimport useADKChat from '@/hooks/useADKChat';\nimport { addFeedback } from '@/services/api';\nimport { primaryBlue } from '@/styles/common';\nimport XAiConversations from '../XAiConversations';\nimport { useStyles } from './styles';\n\nconst { confirm } = Modal;\n\nconst XAdkWebProvider = forwardRef<XAdkProviderHandle, XAdkProviderProps>(({\n url = window.location.origin,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n const styles = useStyles();\n // const { textSpeed = 55 } = config?.chatProps || {};\n\n const {\n appInfo,\n loading,\n messages,\n prologue,\n suggestions,\n sessionList,\n currentSessionId,\n initialized,\n setMessages,\n startChat,\n stopChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n setCurrentSessionDetail,\n } = useADKChat({ url, config, token, onSuccess, onError });\n\n const { appName, icon } = appInfo || {};\n\n useImperativeHandle(ref, () => ({\n startChat,\n stopChat,\n clearChat,\n suggestChat,\n deleteSession,\n updateSession,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSessionDetail,\n }), [appInfo, messages, stopChat, setMessages, setCurrentSessionDetail]);\n\n const [_isNarrow, setIsNarrow] = useState<boolean>(false);\n const divRef = useRef<HTMLDivElement>(null);\n\n // 监听容器宽度变化\n useEffect(() => {\n const div = divRef.current;\n if (!div) return;\n\n // 创建监听器\n const resizeObserver = new ResizeObserver((entries) => {\n // eslint-disable-next-line no-restricted-syntax\n for (const entry of entries) {\n const { width } = entry.contentRect;\n setIsNarrow(width <= MOBILE_MAX_WIDTH);\n }\n });\n\n // 开始监听\n resizeObserver.observe(div);\n\n // 初始化检查\n const initialWidth = div.offsetWidth;\n setIsNarrow(initialWidth <= MOBILE_MAX_WIDTH);\n\n // 清理函数\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n // 发送消息\n const handleSendMessage = async ({ text = '' }: SendContent) => {\n await startChat(text);\n };\n\n // 处理添加反馈\n const handleAddFeedback = async (data: any) => {\n const { appNo } = config || {};\n const isLike = data?.raw?.isLike ?? 0;\n if (isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (appNo) {\n const { result } = await addFeedback({\n url,\n token,\n appNo,\n requestId: data.invocationId,\n isLike: 1,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('感谢您的反馈');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === data.id) {\n return {\n ...item,\n raw: {\n ...item.raw,\n isLike: 1, \n }\n };\n }\n return item;\n });\n });\n } else {\n message.error('反馈失败,请稍后再试');\n }\n }\n };\n\n\n const renderFooter = ({ message: msg = {} as IMessage, isLastBotMsg = false, isLastMsg = false}) => {\n if (isLastBotMsg) {\n return (\n <Flex gap={4} style={{ padding: '8px 0' }}>\n {isLastMsg && (\n <Tooltip title=\"重新生成\">\n <Button\n type=\"text\"\n size=\"small\"\n style={{ color: '#949494' }}\n icon={<ReloadOutlined />}\n onClick={() => {\n const lastMsg = messages.findLast((v) => {\n return v.role === 'user' && v.text;\n });\n handleSendMessage({ text: lastMsg?.text || '' });\n }}\n />\n </Tooltip>\n )}\n <Tooltip title=\"赞\">\n <Button\n type=\"text\"\n size=\"small\"\n style={{ color: '#949494' }}\n icon={msg.raw?.isLike === 1 ? <LikeFilled /> : <LikeOutlined />}\n onClick={() => handleAddFeedback(msg)}\n />\n </Tooltip>\n <Tooltip title=\"踩\">\n <DislikeFeedback\n msg={msg}\n activeColor={appInfo?.appTheme || primaryBlue}\n onSubmit={async (formData) => {\n const { result } = await addFeedback({\n ...formData,\n requestId: msg.invocationId,\n isLike: -1,\n url,\n appNo: config?.appNo,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('已收到您的反馈,我们会努力做的更好');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === msg.id) {\n return {\n ...item,\n isLike: -1,\n };\n }\n return item;\n });\n });\n return true;\n }\n message.error('反馈失败,请稍后再试');\n return false;\n }}\n />\n </Tooltip>\n <Tooltip title=\"复制\">\n <Button\n type=\"text\"\n size=\"small\"\n style={{ color: '#949494' }}\n icon={<CopyOutlined />}\n onClick={() => {\n const msgs = messages.filter((v) => {\n return v.role === 'bot'\n && v.invocationId === msg.invocationId\n && v.text;\n });\n const text = msgs.map((v) => {\n return v.text;\n }).join('\\n');\n const isOk = copy(text);\n if (isOk) {\n message.success('复制成功');\n }\n }}\n />\n </Tooltip>\n </Flex>\n );\n }\n return null;\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 deleteSession(conversation.key);\n },\n onCancel() {\n //\n },\n });\n break;\n }\n },\n });\n\n // 是否展示清空按钮\n const clearBtnShow = typeof config?.chatProps?.clearBtnShow !== 'undefined'\n ? config.chatProps.clearBtnShow\n : !config?.session?.showSessionList;\n\n return (\n <ConfigProvider>\n <XProvider>\n <div\n ref={divRef}\n className={styles.providerWrapper}\n > \n {config?.session?.showSessionList && (\n <XAiConversations\n isNarrow={false}\n sessionList={sessionList}\n onActiveChange={(key) => setCurrentSessionDetail(key)}\n onNewChat={clearChat}\n activeKey={currentSessionId}\n menu={menuConfig}\n />\n )}\n <div className={styles.chatbotWrapper}>\n <div className={styles.content}>\n <XAdkChatbot\n allowUpload={config?.allowUpload}\n initialized={initialized}\n prologue={prologue}\n suggestions={suggestions}\n loading={loading}\n messages={messages}\n footer={renderFooter}\n onSubmit={handleSendMessage}\n onStop={stopChat}\n onClear={clearChat}\n onSuggest={suggestChat}\n clearBtnShow={clearBtnShow}\n />\n </div>\n </div>\n </div>\n </XProvider>\n </ConfigProvider>\n );\n});\n\nexport default XAdkWebProvider;\n"],"mappings":"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"}
@@ -53,6 +53,7 @@ var XAiConversations = function XAiConversations(props) {
53
53
  }, 300);
54
54
  };
55
55
  return /*#__PURE__*/_jsxs("div", {
56
+ className: styles.conversationsWrapper,
56
57
  children: [/*#__PURE__*/_jsx(GlobalStyle, {}), (!listVisible || isNarrow) && /*#__PURE__*/_jsxs("div", {
57
58
  className: styles.capWrapper,
58
59
  children: [/*#__PURE__*/_jsx("img", {