@ai-group/chat-sdk 3.1.1 → 3.2.1
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/XAdkProvider/compound/DefaultLayout.js +2 -2
- package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Messages.js +79 -53
- package/dist/cjs/components/XAdkProvider/compound/Messages.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js +3 -3
- package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.d.ts +6 -0
- package/dist/cjs/components/XAdkProvider/context/ChatActionContext.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.d.ts +1 -0
- package/dist/cjs/components/XAdkProvider/context/ChatStateContext.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/context/SessionContext.d.ts +1 -1
- package/dist/cjs/components/XAdkProvider/context/SessionContext.js.map +1 -1
- package/dist/cjs/components/XAdkProvider/index.d.ts +2 -2
- package/dist/cjs/components/XAdkProvider/index.js +14 -8
- package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
- package/dist/cjs/components/XAdkSender/index.js +1 -1
- package/dist/cjs/components/XAdkSender/index.js.map +1 -1
- package/dist/cjs/components/XAiProvider/index.js +4 -4
- package/dist/cjs/components/XAiProvider/index.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.d.ts +2 -1
- package/dist/cjs/hooks/useADKChat.js +23 -6
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/hooks/useAgentGenerator.d.ts +1 -1
- package/dist/cjs/hooks/useAgentGenerator.js +3 -3
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/types/ChatHook.d.ts +7 -1
- package/dist/cjs/types/ChatHook.js.map +1 -1
- package/dist/cjs/types/XAdkProvider.d.ts +16 -1
- package/dist/cjs/types/XAdkProvider.js.map +1 -1
- package/dist/cjs/types/XAiProvider.d.ts +1 -1
- package/dist/cjs/types/XAiProvider.js.map +1 -1
- package/dist/cjs/utils/umdEntry.d.ts +38 -8
- package/dist/cjs/utils/umdEntry.js +57 -9
- package/dist/cjs/utils/umdEntry.js.map +2 -2
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +1 -2
- package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Messages.js +4 -2
- package/dist/esm/components/XAdkProvider/compound/Messages.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js +3 -3
- package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.d.ts +6 -0
- package/dist/esm/components/XAdkProvider/context/ChatActionContext.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.d.ts +1 -0
- package/dist/esm/components/XAdkProvider/context/ChatStateContext.js.map +1 -1
- package/dist/esm/components/XAdkProvider/context/SessionContext.d.ts +1 -1
- package/dist/esm/components/XAdkProvider/context/SessionContext.js.map +1 -1
- package/dist/esm/components/XAdkProvider/index.d.ts +2 -2
- package/dist/esm/components/XAdkProvider/index.js +12 -8
- package/dist/esm/components/XAdkProvider/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/index.js +1 -1
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/components/XAiProvider/index.js +4 -4
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/hooks/useADKChat.d.ts +2 -1
- package/dist/esm/hooks/useADKChat.js +35 -15
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.d.ts +1 -1
- package/dist/esm/hooks/useAgentGenerator.js +4 -4
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/types/ChatHook.d.ts +7 -1
- package/dist/esm/types/ChatHook.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +16 -1
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +1 -1
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/utils/umdEntry.d.ts +38 -8
- package/dist/esm/utils/umdEntry.js +90 -24
- package/dist/esm/utils/umdEntry.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","useState","useRef","useCallback","Popconfirm","message","Tooltip","Input","Modal","ClearOutlined","LoadingOutlined","ArrowUpOutlined","PaperClipOutlined","useStyles","FileGallery","getExt","jsx","_jsx","jsxs","_jsxs","XAdkSender","_ref","_ref$clearBtnShow","clearBtnShow","_ref$allowUpload","allowUpload","_ref$loading","loading","_ref$disabled","disabled","_ref$uploadRequest","uploadRequest","onClear","onChange","onSubmit","onStop","onFilesChange","onUploadSuccess","onUploadError","_ref$maxFileSize","maxFileSize","_ref$validators","validators","customValidators","_ref$allowedFileTypes","allowedFileTypes","_ref$maxFiles","maxFiles","suffix","header","prefix","footer","styles","_useState","_useState2","_slicedToArray","value","setValue","_useState3","_useState4","files","setFiles","_useState5","_useState6","isDragOver","setIsDragOver","containerRef","fileInputRef","generateId","Date","now","toString","Math","random","substr","checkFileType","file","length","ext","some","type","includes","endsWith","startsWith","split","slice","checkFileSize","maxSize","size","isDuplicateFile","f","name","builtInValidators","_file","_ref2","concat","_ref3","allValidators","_toConsumableArray","validateFile","_iterator","_createForOfIteratorHelper","_step","s","n","done","validator","error","valid","err","e","handleFileSelect","selectedFiles","fileArray","Array","from","validFiles","forEach","validation","push","id","uid","progress","status","response","prev","next","uploadFiles","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileList","_iterator2","_step2","_loop","wrap","_callee$","_context2","localFile","_loop$","_context","map","_objectSpread","onProgress","percent","onSuccess","onError","errorMessage","t0","console","Error","stop","delegateYield","t1","finish","_x","apply","arguments","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","data","responseData","fileName","fileId","tempUrl","url","fileType","fileSize","mimeType","raw","handleInputChange","newValue","target","handleKeyDown","key","shiftKey","renderFileList","style","display","flexWrap","gap","padding","children","removable","onRemove","containerClass","container","uploading","isDisabled","SendButton","props","className","iconButton","sendButton","onClick","UploadButton","uploadButton","ClearButton","onConfirm","placement","clearButton","actionsComponents","renderSlot","slot","oriNode","undefined","result","components","defaultSuffix","buttonGroup","ref","onDragOver","onDragLeave","onDrop","multiple","accept","join","mainArea","senderWrap","inputAndButtons","textAreaWrapper","TextArea","textArea","onKeyDown","placeholder","autoSize","minRows","maxRows","border","boxShadow","outline","tip"],"sources":["../../../../src/components/XAdkSender/index.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from \"react\";\nimport { Popconfirm, message, Tooltip, Input, Modal } from \"antd\";\nimport {\n ClearOutlined,\n LoadingOutlined,\n ArrowUpOutlined,\n PaperClipOutlined,\n} from \"@ant-design/icons\";\nimport {\n XAdkSenderProps,\n ServerFile,\n LocalFile,\n ActionsComponents,\n FileValidator,\n} from \"@/types\";\nimport { useStyles } from \"./styles\";\nimport FileGallery from \"../FileGallery\";\nimport { getExt } from \"@/utils/file\";\n\nconst XAdkSender: React.FC<XAdkSenderProps> = ({\n clearBtnShow = true,\n allowUpload = false,\n loading = false,\n disabled = false,\n uploadRequest = () => {},\n onClear,\n onChange,\n onSubmit,\n onStop,\n onFilesChange,\n onUploadSuccess,\n onUploadError,\n maxFileSize = 10,\n validators: customValidators = [],\n // allowedFileTypes = [\n // \"image/*\",\n // \"audio/*\",\n // \"video/*\",\n // \"application/pdf\",\n // \"text/plain\",\n // \".doc\",\n // \".docx\",\n // \".xls\",\n // \".xlsx\",\n // \".ppt\",\n // \".pptx\",\n // \"\",\n // ],\n allowedFileTypes = [],\n maxFiles = 5,\n suffix,\n header,\n prefix,\n footer,\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\n // 生成唯一ID\n const generateId = () => {\n return Date.now().toString(36) + Math.random().toString(36).substr(2);\n };\n\n // 检查文件类型\n const checkFileType = (file: File): boolean => {\n if (allowedFileTypes?.length > 0) {\n const ext = getExt(file);\n\n return allowedFileTypes.some((type) => {\n // 1️⃣ MIME 校验\n if (type.includes(\"/\")) {\n if (type.endsWith(\"/*\")) {\n return file.type.startsWith(type.split(\"/\")[0]);\n }\n return file.type === type;\n }\n\n if (type.startsWith(\".\")) {\n return ext === type.slice(1);\n }\n\n return false;\n });\n }\n return true;\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 isDuplicateFile = (file: File, files: LocalFile[]) => {\n return files.some((f) => f.name === file.name && f.size === file.size);\n };\n\n // 内置校验器集合\n const builtInValidators: FileValidator[] = [\n // 数量校验(修复批量 bug)\n (_file, { files }) => {\n if (files.length >= maxFiles) {\n return `最多只能上传 ${maxFiles} 个文件`;\n }\n return null;\n },\n\n // 大小校验\n (file) => {\n const maxSize = maxFileSize * 1024 * 1024;\n if (file.size > maxSize) {\n return `文件大小不能超过 ${maxFileSize}MB`;\n }\n return null;\n },\n\n // 类型校验\n (file) => {\n if (!checkFileType(file)) {\n return \"不支持的文件类型\";\n }\n return null;\n },\n\n // ⭐ 新增:去重校验\n (file, { files }) => {\n if (isDuplicateFile(file, files)) {\n return \"文件已存在\";\n }\n return null;\n },\n ];\n\n const allValidators = [...builtInValidators, ...customValidators];\n\n // 验证文件\n const validateFile = (file: File): { valid: boolean; message?: string } => {\n for (const validator of allValidators) {\n const error = validator(file, { files });\n if (error) {\n return { valid: false, message: error };\n }\n }\n return { valid: true };\n };\n\n // 处理文件选择\n const handleFileSelect = useCallback(\n (selectedFiles: File[]) => {\n const fileArray = Array.from(selectedFiles);\n\n if (files.length + fileArray.length > maxFiles) {\n message.error(`最多只能上传 ${maxFiles} 个文件`);\n return;\n }\n\n const validFiles: LocalFile[] = [];\n\n fileArray.forEach((file) => {\n const validation = validateFile(file);\n\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) => {\n const next = [...prev, ...validFiles];\n onFilesChange?.(next);\n return next;\n });\n uploadFiles(validFiles);\n }\n },\n [files, maxFiles, maxFileSize, allowedFileTypes],\n );\n\n // 上传文件\n const uploadFiles = async (fileList: LocalFile[]) => {\n for (const localFile of fileList) {\n // 开始上传\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id ? { ...f, status: \"uploading\" } : f,\n ),\n );\n\n try {\n await uploadRequest({\n file: localFile.file,\n onProgress: (e) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id ? { ...f, progress: e.percent } : f,\n ),\n );\n },\n onSuccess: (response) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id\n ? {\n ...f,\n status: \"success\",\n progress: 100,\n response,\n }\n : f,\n ),\n );\n\n onUploadSuccess?.({\n ...localFile,\n status: \"success\",\n response,\n });\n },\n onError: (error) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id\n ? {\n ...f,\n status: \"error\",\n errorMessage: error.message,\n }\n : f,\n ),\n );\n onUploadError?.(localFile, error);\n },\n });\n } catch (error) {\n console.error(\"上传处理错误:\", error);\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id\n ? {\n ...f,\n status: \"error\",\n errorMessage:\n error instanceof Error ? error.message : \"上传处理失败\",\n }\n : f,\n ),\n );\n message.error(`${localFile.name} 上传失败`);\n }\n }\n };\n\n // 删除文件\n const handleRemoveFile = (id: string) => {\n setFiles((prev) => {\n const next = prev.filter((file) => file.id !== id);\n\n onFilesChange?.(next);\n\n return next;\n });\n };\n\n // 触发文件选择\n const triggerFileSelect = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n // 处理拖拽事件\n const handleDragOver = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(true);\n }\n },\n [allowUpload],\n );\n\n const handleDragLeave = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(false);\n }\n },\n [allowUpload],\n );\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n\n if (\n allowUpload &&\n e.dataTransfer.files &&\n e.dataTransfer.files.length > 0\n ) {\n handleFileSelect(Array.from(e.dataTransfer.files));\n }\n },\n [allowUpload, handleFileSelect],\n );\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 || getExt(file),\n size: responseData.fileSize,\n mimeType: file.type,\n raw: {\n ...responseData,\n },\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 // 渲染文件列表 - 使用新的 FileGallery 组件\n const renderFileList = () => {\n if (files.length === 0) return null;\n\n return (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"8px\",\n padding: \"12px 0\",\n }}\n >\n {files.map((file) => (\n <FileGallery\n key={file.id}\n file={file}\n removable\n onRemove={handleRemoveFile}\n />\n ))}\n </div>\n );\n };\n\n const containerClass = `${styles.container} ${isDragOver ? \"drag-over\" : \"\"}`;\n const uploading = files.some((f) => f.status === \"uploading\");\n const isDisabled = disabled || uploading || loading;\n\n // 定义按钮组件\n const SendButton = (props: any) => (\n <Tooltip title={loading ? \"停止生成\" : \"发送消息\"}>\n <button\n className={`${styles.iconButton} ${styles.sendButton} ${loading ? \"stop\" : \"\"}`}\n onClick={loading ? onStop : handleSubmit}\n disabled={uploading || disabled}\n aria-label={loading ? \"停止生成\" : \"发送消息\"}\n {...props}\n >\n {loading ? <LoadingOutlined /> : <ArrowUpOutlined />}\n </button>\n </Tooltip>\n );\n\n const UploadButton = (props: any) => (\n <Tooltip title=\"上传文件\">\n <button\n className={`${styles.iconButton} ${styles.uploadButton}`}\n onClick={triggerFileSelect}\n disabled={isDisabled}\n aria-label=\"上传文件\"\n {...props}\n >\n <PaperClipOutlined />\n </button>\n </Tooltip>\n );\n\n const ClearButton = (props: any) => (\n <Popconfirm\n title=\"确定要清空聊天记录吗?\"\n onConfirm={onClear}\n placement=\"top\"\n okText=\"确定\"\n cancelText=\"取消\"\n disabled={isDisabled}\n >\n <button\n className={`${styles.iconButton} ${styles.clearButton}`}\n disabled={isDisabled}\n aria-label=\"清空聊天记录\"\n {...props}\n >\n <ClearOutlined />\n </button>\n </Popconfirm>\n );\n\n const actionsComponents: ActionsComponents = {\n SendButton,\n UploadButton,\n ClearButton,\n };\n\n // 渲染插槽内容\n const renderSlot = (\n slot:\n | React.ReactNode\n | false\n | ((\n oriNode: React.ReactNode,\n info: { components: ActionsComponents },\n ) => React.ReactNode | false)\n | undefined,\n oriNode: React.ReactNode,\n ): React.ReactNode | null => {\n if (slot === false) return null;\n if (slot === undefined) return oriNode;\n if (typeof slot === \"function\") {\n const result = slot(oriNode, { components: actionsComponents });\n return result === false ? null : result;\n }\n return slot;\n };\n\n // 默认的后缀内容(操作按钮组)\n const defaultSuffix = (\n <div className={styles.buttonGroup}>\n {allowUpload && <UploadButton />}\n <SendButton />\n </div>\n );\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 {/* 头部插槽 */}\n {renderSlot(header, false)}\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 {/* 清除按钮 */}\n {clearBtnShow && <ClearButton />}\n\n <div className={styles.inputAndButtons}>\n {/* 前缀插槽 */}\n {renderSlot(prefix, false)}\n\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={isDisabled}\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 {/* 后缀插槽(默认显示操作按钮) */}\n {renderSlot(suffix, defaultSuffix)}\n </div>\n </div>\n\n {/* 底部插槽(默认显示提示文字) */}\n {renderSlot(\n footer,\n <div className={styles.tip}>\n 内容由AI生成,无法确保真实准确,仅供参考\n </div>,\n )}\n </div>\n </div>\n );\n};\n\nexport default XAdkSender;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,QAAQ,OAAO;AAC5D,SAASC,UAAU,EAAEC,OAAO,EAAEC,OAAO,EAAEC,KAAK,EAAEC,KAAK,QAAQ,MAAM;AACjE,SACEC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,iBAAiB,QACZ,mBAAmB;AAQ1B,SAASC,SAAS;AAClB,OAAOC,WAAW;AAClB,SAASC,MAAM;AAAuB,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEtC,IAAMC,UAAqC,GAAG,SAAxCA,UAAqCA,CAAAC,IAAA,EAmCrC;EAAA,IAAAC,iBAAA,GAAAD,IAAA,CAlCJE,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,IAAI,GAAAA,iBAAA;IAAAE,gBAAA,GAAAH,IAAA,CACnBI,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,KAAK,GAAAA,gBAAA;IAAAE,YAAA,GAAAL,IAAA,CACnBM,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;IAAAE,aAAA,GAAAP,IAAA,CACfQ,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAAAE,kBAAA,GAAAT,IAAA,CAChBU,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,YAAM,CAAC,CAAC,GAAAA,kBAAA;IACxBE,OAAO,GAAAX,IAAA,CAAPW,OAAO;IACPC,QAAQ,GAAAZ,IAAA,CAARY,QAAQ;IACRC,QAAQ,GAAAb,IAAA,CAARa,QAAQ;IACRC,MAAM,GAAAd,IAAA,CAANc,MAAM;IACNC,aAAa,GAAAf,IAAA,CAAbe,aAAa;IACbC,eAAe,GAAAhB,IAAA,CAAfgB,eAAe;IACfC,aAAa,GAAAjB,IAAA,CAAbiB,aAAa;IAAAC,gBAAA,GAAAlB,IAAA,CACbmB,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,EAAE,GAAAA,gBAAA;IAAAE,eAAA,GAAApB,IAAA,CAChBqB,UAAU;IAAEC,gBAAgB,GAAAF,eAAA,cAAG,EAAE,GAAAA,eAAA;IAAAG,qBAAA,GAAAvB,IAAA,CAejCwB,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;IAAAE,aAAA,GAAAzB,IAAA,CACrB0B,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,CAAC,GAAAA,aAAA;IACZE,MAAM,GAAA3B,IAAA,CAAN2B,MAAM;IACNC,MAAM,GAAA5B,IAAA,CAAN4B,MAAM;IACNC,MAAM,GAAA7B,IAAA,CAAN6B,MAAM;IACNC,MAAM,GAAA9B,IAAA,CAAN8B,MAAM;EAEN,IAAMC,MAAM,GAAGvC,SAAS,CAAC,CAAC;EAC1B,IAAAwC,SAAA,GAA0BpD,QAAQ,CAAS,EAAE,CAAC;IAAAqD,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAvCG,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EACtB,IAAAI,UAAA,GAA0BzD,QAAQ,CAAc,EAAE,CAAC;IAAA0D,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAA5CE,KAAK,GAAAD,UAAA;IAAEE,QAAQ,GAAAF,UAAA;EACtB,IAAAG,UAAA,GAAoC7D,QAAQ,CAAC,KAAK,CAAC;IAAA8D,UAAA,GAAAR,cAAA,CAAAO,UAAA;IAA5CE,UAAU,GAAAD,UAAA;IAAEE,aAAa,GAAAF,UAAA;EAChC,IAAMG,YAAY,GAAGhE,MAAM,CAAiB,IAAI,CAAC;EACjD,IAAMiE,YAAY,GAAGjE,MAAM,CAAmB,IAAI,CAAC;;EAEnD;EACA,IAAMkE,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;IACvB,OAAOC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACF,QAAQ,CAAC,EAAE,CAAC,CAACG,MAAM,CAAC,CAAC,CAAC;EACvE,CAAC;;EAED;EACA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAU,EAAc;IAC7C,IAAI,CAAA/B,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEgC,MAAM,IAAG,CAAC,EAAE;MAChC,IAAMC,GAAG,GAAG/D,MAAM,CAAC6D,IAAI,CAAC;MAExB,OAAO/B,gBAAgB,CAACkC,IAAI,CAAC,UAACC,IAAI,EAAK;QACrC;QACA,IAAIA,IAAI,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;UACtB,IAAID,IAAI,CAACE,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvB,OAAON,IAAI,CAACI,IAAI,CAACG,UAAU,CAACH,IAAI,CAACI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;UACjD;UACA,OAAOR,IAAI,CAACI,IAAI,KAAKA,IAAI;QAC3B;QAEA,IAAIA,IAAI,CAACG,UAAU,CAAC,GAAG,CAAC,EAAE;UACxB,OAAOL,GAAG,KAAKE,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC;QAC9B;QAEA,OAAO,KAAK;MACd,CAAC,CAAC;IACJ;IACA,OAAO,IAAI;EACb,CAAC;;EAED;EACA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIV,IAAU,EAAc;IAC7C,IAAMW,OAAO,GAAG/C,WAAW,GAAG,IAAI,GAAG,IAAI;IACzC,OAAOoC,IAAI,CAACY,IAAI,IAAID,OAAO;EAC7B,CAAC;;EAED;EACA,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAIb,IAAU,EAAEhB,KAAkB,EAAK;IAC1D,OAAOA,KAAK,CAACmB,IAAI,CAAC,UAACW,CAAC;MAAA,OAAKA,CAAC,CAACC,IAAI,KAAKf,IAAI,CAACe,IAAI,IAAID,CAAC,CAACF,IAAI,KAAKZ,IAAI,CAACY,IAAI;IAAA,EAAC;EACxE,CAAC;;EAED;EACA,IAAMI,iBAAkC,GAAG;EACzC;EACA,UAACC,KAAK,EAAAC,KAAA,EAAgB;IAAA,IAAZlC,KAAK,GAAAkC,KAAA,CAALlC,KAAK;IACb,IAAIA,KAAK,CAACiB,MAAM,IAAI9B,QAAQ,EAAE;MAC5B,+CAAAgD,MAAA,CAAiBhD,QAAQ;IAC3B;IACA,OAAO,IAAI;EACb,CAAC;EAED;EACA,UAAC6B,IAAI,EAAK;IACR,IAAMW,OAAO,GAAG/C,WAAW,GAAG,IAAI,GAAG,IAAI;IACzC,IAAIoC,IAAI,CAACY,IAAI,GAAGD,OAAO,EAAE;MACvB,2DAAAQ,MAAA,CAAmBvD,WAAW;IAChC;IACA,OAAO,IAAI;EACb,CAAC;EAED;EACA,UAACoC,IAAI,EAAK;IACR,IAAI,CAACD,aAAa,CAACC,IAAI,CAAC,EAAE;MACxB,OAAO,UAAU;IACnB;IACA,OAAO,IAAI;EACb,CAAC;EAED;EACA,UAACA,IAAI,EAAAoB,KAAA,EAAgB;IAAA,IAAZpC,KAAK,GAAAoC,KAAA,CAALpC,KAAK;IACZ,IAAI6B,eAAe,CAACb,IAAI,EAAEhB,KAAK,CAAC,EAAE;MAChC,OAAO,OAAO;IAChB;IACA,OAAO,IAAI;EACb,CAAC,CACF;EAED,IAAMqC,aAAa,MAAAF,MAAA,CAAOH,iBAAiB,EAAAM,kBAAA,CAAKvD,gBAAgB,EAAC;;EAEjE;EACA,IAAMwD,YAAY,GAAG,SAAfA,YAAYA,CAAIvB,IAAU,EAA2C;IAAA,IAAAwB,SAAA,GAAAC,0BAAA,CACjDJ,aAAa;MAAAK,KAAA;IAAA;MAArC,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAAuC;QAAA,IAA5BC,SAAS,GAAAJ,KAAA,CAAA9C,KAAA;QAClB,IAAMmD,KAAK,GAAGD,SAAS,CAAC9B,IAAI,EAAE;UAAEhB,KAAK,EAALA;QAAM,CAAC,CAAC;QACxC,IAAI+C,KAAK,EAAE;UACT,OAAO;YAAEC,KAAK,EAAE,KAAK;YAAEvG,OAAO,EAAEsG;UAAM,CAAC;QACzC;MACF;IAAC,SAAAE,GAAA;MAAAT,SAAA,CAAAU,CAAA,CAAAD,GAAA;IAAA;MAAAT,SAAA,CAAAV,CAAA;IAAA;IACD,OAAO;MAAEkB,KAAK,EAAE;IAAK,CAAC;EACxB,CAAC;;EAED;EACA,IAAMG,gBAAgB,GAAG5G,WAAW,CAClC,UAAC6G,aAAqB,EAAK;IACzB,IAAMC,SAAS,GAAGC,KAAK,CAACC,IAAI,CAACH,aAAa,CAAC;IAE3C,IAAIpD,KAAK,CAACiB,MAAM,GAAGoC,SAAS,CAACpC,MAAM,GAAG9B,QAAQ,EAAE;MAC9C1C,OAAO,CAACsG,KAAK,yCAAAZ,MAAA,CAAWhD,QAAQ,wBAAM,CAAC;MACvC;IACF;IAEA,IAAMqE,UAAuB,GAAG,EAAE;IAElCH,SAAS,CAACI,OAAO,CAAC,UAACzC,IAAI,EAAK;MAC1B,IAAM0C,UAAU,GAAGnB,YAAY,CAACvB,IAAI,CAAC;MAErC,IAAI0C,UAAU,CAACV,KAAK,EAAE;QACpBQ,UAAU,CAACG,IAAI,CAAC;UACdC,EAAE,EAAEpD,UAAU,CAAC,CAAC;UAChBqD,GAAG,EAAErD,UAAU,CAAC,CAAC;UACjBuB,IAAI,EAAEf,IAAI,CAACe,IAAI;UACfH,IAAI,EAAEZ,IAAI,CAACY,IAAI;UACfR,IAAI,EAAEJ,IAAI,CAACI,IAAI;UACfJ,IAAI,EAAJA,IAAI;UACJ8C,QAAQ,EAAE,CAAC;UACXC,MAAM,EAAE,SAAS;UACjBC,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ,CAAC,MAAM;QACLvH,OAAO,CAACsG,KAAK,CAACW,UAAU,CAACjH,OAAO,CAAC;MACnC;IACF,CAAC,CAAC;IAEF,IAAI+G,UAAU,CAACvC,MAAM,GAAG,CAAC,EAAE;MACzBhB,QAAQ,CAAC,UAACgE,IAAI,EAAK;QACjB,IAAMC,IAAI,MAAA/B,MAAA,CAAAG,kBAAA,CAAO2B,IAAI,GAAKT,UAAU,CAAC;QACrChF,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG0F,IAAI,CAAC;QACrB,OAAOA,IAAI;MACb,CAAC,CAAC;MACFC,WAAW,CAACX,UAAU,CAAC;IACzB;EACF,CAAC,EACD,CAACxD,KAAK,EAAEb,QAAQ,EAAEP,WAAW,EAAEK,gBAAgB,CACjD,CAAC;;EAED;EACA,IAAMkF,WAAW;IAAA,IAAAC,KAAA,GAAAC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QAAOC,QAAqB;MAAA,IAAAC,UAAA,EAAAC,MAAA,EAAAC,KAAA;MAAA,OAAAN,mBAAA,GAAAO,IAAA,UAAAC,SAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAd,IAAA,GAAAc,SAAA,CAAAb,IAAA;UAAA;YAAAQ,UAAA,GAAAjC,0BAAA,CACtBgC,QAAQ;YAAAM,SAAA,CAAAd,IAAA;YAAAW,KAAA,gBAAAN,mBAAA,GAAAC,IAAA,UAAAK,MAAA;cAAA,IAAAI,SAAA;cAAA,OAAAV,mBAAA,GAAAO,IAAA,UAAAI,OAAAC,QAAA;gBAAA,kBAAAA,QAAA,CAAAjB,IAAA,GAAAiB,QAAA,CAAAhB,IAAA;kBAAA;oBAArBc,SAAS,GAAAL,MAAA,CAAA/E,KAAA;oBAClB;oBACAK,QAAQ,CAAC,UAACgE,IAAI;sBAAA,OACZA,IAAI,CAACkB,GAAG,CAAC,UAACrD,CAAC;wBAAA,OACTA,CAAC,CAAC8B,EAAE,KAAKoB,SAAS,CAACpB,EAAE,GAAAwB,aAAA,CAAAA,aAAA,KAAQtD,CAAC;0BAAEiC,MAAM,EAAE;wBAAW,KAAKjC,CAAC;sBAAA,CAC3D,CAAC;oBAAA,CACH,CAAC;oBAACoD,QAAA,CAAAjB,IAAA;oBAAAiB,QAAA,CAAAhB,IAAA;oBAAA,OAGM/F,aAAa,CAAC;sBAClB6C,IAAI,EAAEgE,SAAS,CAAChE,IAAI;sBACpBqE,UAAU,EAAE,SAAAA,WAACnC,CAAC,EAAK;wBACjBjD,QAAQ,CAAC,UAACgE,IAAI;0BAAA,OACZA,IAAI,CAACkB,GAAG,CAAC,UAACrD,CAAC;4BAAA,OACTA,CAAC,CAAC8B,EAAE,KAAKoB,SAAS,CAACpB,EAAE,GAAAwB,aAAA,CAAAA,aAAA,KAAQtD,CAAC;8BAAEgC,QAAQ,EAAEZ,CAAC,CAACoC;4BAAO,KAAKxD,CAAC;0BAAA,CAC3D,CAAC;wBAAA,CACH,CAAC;sBACH,CAAC;sBACDyD,SAAS,EAAE,SAAAA,UAACvB,QAAQ,EAAK;wBACvB/D,QAAQ,CAAC,UAACgE,IAAI;0BAAA,OACZA,IAAI,CAACkB,GAAG,CAAC,UAACrD,CAAC;4BAAA,OACTA,CAAC,CAAC8B,EAAE,KAAKoB,SAAS,CAACpB,EAAE,GAAAwB,aAAA,CAAAA,aAAA,KAEZtD,CAAC;8BACJiC,MAAM,EAAE,SAAS;8BACjBD,QAAQ,EAAE,GAAG;8BACbE,QAAQ,EAARA;4BAAQ,KAEVlC,CAAC;0BAAA,CACP,CAAC;wBAAA,CACH,CAAC;wBAEDrD,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAA2G,aAAA,CAAAA,aAAA,KACVJ,SAAS;0BACZjB,MAAM,EAAE,SAAS;0BACjBC,QAAQ,EAARA;wBAAQ,EACT,CAAC;sBACJ,CAAC;sBACDwB,OAAO,EAAE,SAAAA,QAACzC,KAAK,EAAK;wBAClB9C,QAAQ,CAAC,UAACgE,IAAI;0BAAA,OACZA,IAAI,CAACkB,GAAG,CAAC,UAACrD,CAAC;4BAAA,OACTA,CAAC,CAAC8B,EAAE,KAAKoB,SAAS,CAACpB,EAAE,GAAAwB,aAAA,CAAAA,aAAA,KAEZtD,CAAC;8BACJiC,MAAM,EAAE,OAAO;8BACf0B,YAAY,EAAE1C,KAAK,CAACtG;4BAAO,KAE7BqF,CAAC;0BAAA,CACP,CAAC;wBAAA,CACH,CAAC;wBACDpD,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAGsG,SAAS,EAAEjC,KAAK,CAAC;sBACnC;oBACF,CAAC,CAAC;kBAAA;oBAAAmC,QAAA,CAAAhB,IAAA;oBAAA;kBAAA;oBAAAgB,QAAA,CAAAjB,IAAA;oBAAAiB,QAAA,CAAAQ,EAAA,GAAAR,QAAA;oBAEFS,OAAO,CAAC5C,KAAK,CAAC,SAAS,EAAAmC,QAAA,CAAAQ,EAAO,CAAC;oBAC/BzF,QAAQ,CAAC,UAACgE,IAAI;sBAAA,OACZA,IAAI,CAACkB,GAAG,CAAC,UAACrD,CAAC;wBAAA,OACTA,CAAC,CAAC8B,EAAE,KAAKoB,SAAS,CAACpB,EAAE,GAAAwB,aAAA,CAAAA,aAAA,KAEZtD,CAAC;0BACJiC,MAAM,EAAE,OAAO;0BACf0B,YAAY,EACVP,QAAA,CAAAQ,EAAA,YAAiBE,KAAK,GAAGV,QAAA,CAAAQ,EAAA,CAAMjJ,OAAO,GAAG;wBAAQ,KAErDqF,CAAC;sBAAA,CACP,CAAC;oBAAA,CACH,CAAC;oBACDrF,OAAO,CAACsG,KAAK,IAAAZ,MAAA,CAAI6C,SAAS,CAACjD,IAAI,8BAAO,CAAC;kBAAC;kBAAA;oBAAA,OAAAmD,QAAA,CAAAW,IAAA;gBAAA;cAAA,GAAAjB,KAAA;YAAA;YAAAF,UAAA,CAAA/B,CAAA;UAAA;YAAA,KAAAgC,MAAA,GAAAD,UAAA,CAAA9B,CAAA,IAAAC,IAAA;cAAAkC,SAAA,CAAAb,IAAA;cAAA;YAAA;YAAA,OAAAa,SAAA,CAAAe,aAAA,CAAAlB,KAAA;UAAA;YAAAG,SAAA,CAAAb,IAAA;YAAA;UAAA;YAAAa,SAAA,CAAAb,IAAA;YAAA;UAAA;YAAAa,SAAA,CAAAd,IAAA;YAAAc,SAAA,CAAAgB,EAAA,GAAAhB,SAAA;YAAAL,UAAA,CAAAxB,CAAA,CAAA6B,SAAA,CAAAgB,EAAA;UAAA;YAAAhB,SAAA,CAAAd,IAAA;YAAAS,UAAA,CAAA5C,CAAA;YAAA,OAAAiD,SAAA,CAAAiB,MAAA;UAAA;UAAA;YAAA,OAAAjB,SAAA,CAAAc,IAAA;QAAA;MAAA,GAAArB,OAAA;IAAA,CAG7C;IAAA,gBAvEKL,WAAWA,CAAA8B,EAAA;MAAA,OAAA7B,KAAA,CAAA8B,KAAA,OAAAC,SAAA;IAAA;EAAA,GAuEhB;;EAED;EACA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIxC,EAAU,EAAK;IACvC3D,QAAQ,CAAC,UAACgE,IAAI,EAAK;MACjB,IAAMC,IAAI,GAAGD,IAAI,CAACoC,MAAM,CAAC,UAACrF,IAAI;QAAA,OAAKA,IAAI,CAAC4C,EAAE,KAAKA,EAAE;MAAA,EAAC;MAElDpF,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG0F,IAAI,CAAC;MAErB,OAAOA,IAAI;IACb,CAAC,CAAC;EACJ,CAAC;;EAED;EACA,IAAMoC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAS;IAC9B,IAAI/F,YAAY,CAACgG,OAAO,EAAE;MACxBhG,YAAY,CAACgG,OAAO,CAACC,KAAK,CAAC,CAAC;IAC9B;EACF,CAAC;;EAED;EACA,IAAMC,cAAc,GAAGlK,WAAW,CAChC,UAAC2G,CAAkB,EAAK;IACtBA,CAAC,CAACwD,cAAc,CAAC,CAAC;IAClBxD,CAAC,CAACyD,eAAe,CAAC,CAAC;IACnB,IAAI9I,WAAW,EAAE;MACfwC,aAAa,CAAC,IAAI,CAAC;IACrB;EACF,CAAC,EACD,CAACxC,WAAW,CACd,CAAC;EAED,IAAM+I,eAAe,GAAGrK,WAAW,CACjC,UAAC2G,CAAkB,EAAK;IACtBA,CAAC,CAACwD,cAAc,CAAC,CAAC;IAClBxD,CAAC,CAACyD,eAAe,CAAC,CAAC;IACnB,IAAI9I,WAAW,EAAE;MACfwC,aAAa,CAAC,KAAK,CAAC;IACtB;EACF,CAAC,EACD,CAACxC,WAAW,CACd,CAAC;EAED,IAAMgJ,UAAU,GAAGtK,WAAW,CAC5B,UAAC2G,CAAkB,EAAK;IACtBA,CAAC,CAACwD,cAAc,CAAC,CAAC;IAClBxD,CAAC,CAACyD,eAAe,CAAC,CAAC;IACnBtG,aAAa,CAAC,KAAK,CAAC;IAEpB,IACExC,WAAW,IACXqF,CAAC,CAAC4D,YAAY,CAAC9G,KAAK,IACpBkD,CAAC,CAAC4D,YAAY,CAAC9G,KAAK,CAACiB,MAAM,GAAG,CAAC,EAC/B;MACAkC,gBAAgB,CAACG,KAAK,CAACC,IAAI,CAACL,CAAC,CAAC4D,YAAY,CAAC9G,KAAK,CAAC,CAAC;IACpD;EACF,CAAC,EACD,CAACnC,WAAW,EAAEsF,gBAAgB,CAChC,CAAC;;EAED;EACA,IAAM4D,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACzB,IAAI,CAACnH,KAAK,CAACoH,IAAI,CAAC,CAAC,IAAIhH,KAAK,CAACiB,MAAM,KAAK,CAAC,EAAE;MACvCxE,OAAO,CAACwK,OAAO,CAAC,YAAY,CAAC;MAC7B;IACF;IAEA,IAAMC,YAAY,GAAGlH,KAAK,CAACqG,MAAM,CAAC,UAACrF,IAAI;MAAA,OAAKA,IAAI,CAAC+C,MAAM,KAAK,SAAS;IAAA,EAAC;IACtE,IAAMoD,cAAc,GAAGnH,KAAK,CAACqG,MAAM,CAAC,UAACrF,IAAI;MAAA,OAAKA,IAAI,CAAC+C,MAAM,KAAK,WAAW;IAAA,EAAC;IAE1E,IAAIoD,cAAc,CAAClG,MAAM,GAAG,CAAC,EAAE;MAC7BrE,KAAK,CAACwK,OAAO,CAAC;QACZC,KAAK,EAAE,OAAO;QACdC,OAAO,kBAAAnF,MAAA,CAAQgF,cAAc,CAAClG,MAAM,gGAAkB;QACtDsG,MAAM,EAAE,QAAQ;QAChBC,UAAU,EAAE,QAAQ;QACpBC,IAAI,EAAE,SAAAA,KAAA,EAAM;UACV,IAAMC,cAAc,GAAGC,oBAAoB,CAACT,YAAY,CAAC;UACzD,IAAI5I,QAAQ,EAAE;YACZA,QAAQ,CAAC;cACPsJ,IAAI,EAAEhI,KAAK;cACXI,KAAK,EAAE0H;YACT,CAAC,CAAC;UACJ;UAEA7H,QAAQ,CAAC,EAAE,CAAC;UACZI,QAAQ,CAAC,UAACgE,IAAI;YAAA,OAAKA,IAAI,CAACoC,MAAM,CAAC,UAACvE,CAAC;cAAA,OAAKA,CAAC,CAACiC,MAAM,KAAK,SAAS;YAAA,EAAC;UAAA,EAAC;QAChE,CAAC;QACD8D,QAAQ,EAAE,SAAAA,SAAA,EAAM;UACdpL,OAAO,CAACqL,IAAI,CAAC,eAAe,CAAC;QAC/B;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,IAAMJ,cAAc,GAAGC,oBAAoB,CAACT,YAAY,CAAC;MAEzD,IAAI5I,QAAQ,EAAE;QACZA,QAAQ,CAAC;UACPsJ,IAAI,EAAEhI,KAAK;UACXI,KAAK,EAAE0H;QACT,CAAC,CAAC;MACJ;MAEA7H,QAAQ,CAAC,EAAE,CAAC;MACZI,QAAQ,CAAC,UAACgE,IAAI;QAAA,OAAKA,IAAI,CAACoC,MAAM,CAAC,UAACvE,CAAC;UAAA,OAAKA,CAAC,CAACiC,MAAM,KAAK,SAAS;QAAA,EAAC;MAAA,EAAC;IAChE;EACF,CAAC;;EAED;EACA,IAAM4D,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIlD,QAAqB,EAAmB;IACpE,OAAOA,QAAQ,CACZ4B,MAAM,CAAC,UAACrF,IAAI;MAAA,IAAA+G,cAAA;MAAA,OAAK/G,IAAI,CAAC+C,MAAM,KAAK,SAAS,MAAAgE,cAAA,GAAI/G,IAAI,CAACgD,QAAQ,cAAA+D,cAAA,uBAAbA,cAAA,CAAeC,IAAI;IAAA,EAAC,CAClE7C,GAAG,CAAC,UAACnE,IAAI,EAAK;MACb,IAAMiH,YAAY,GAAGjH,IAAI,CAACgD,QAAQ,CAACgE,IAAI;MAEvC,OAAO;QACLE,QAAQ,EAAElH,IAAI,CAACe,IAAI;QACnBoG,MAAM,EAAEF,YAAY,CAACE,MAAM,IAAIF,YAAY,CAACrE,EAAE,IAAI,CAAC;QACnDwE,OAAO,EAAEH,YAAY,CAACG,OAAO,IAAIH,YAAY,CAACI,GAAG,IAAI,EAAE;QACvDjH,IAAI,EAAE6G,YAAY,CAACK,QAAQ,IAAInL,MAAM,CAAC6D,IAAI,CAAC;QAC3CY,IAAI,EAAEqG,YAAY,CAACM,QAAQ;QAC3BC,QAAQ,EAAExH,IAAI,CAACI,IAAI;QACnBqH,GAAG,EAAArD,aAAA,KACE6C,YAAY;MAEnB,CAAC;IACH,CAAC,CAAC;EACN,CAAC;;EAED;EACA,IAAMS,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIxF,CAAyC,EAAK;IACvE,IAAMyF,QAAQ,GAAGzF,CAAC,CAAC0F,MAAM,CAAChJ,KAAK;IAC/BC,QAAQ,CAAC8I,QAAQ,CAAC;IAClBtK,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAGsK,QAAQ,CAAC;EACtB,CAAC;;EAED;EACA,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAI3F,CAA2C,EAAK;IACrE,IAAIA,CAAC,CAAC4F,GAAG,KAAK,OAAO,IAAI,CAAC5F,CAAC,CAAC6F,QAAQ,EAAE;MACpC7F,CAAC,CAACwD,cAAc,CAAC,CAAC;MAClBK,YAAY,CAAC,CAAC;IAChB;EACF,CAAC;;EAED;EACA,IAAMiC,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IAC3B,IAAIhJ,KAAK,CAACiB,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;IAEnC,oBACE5D,IAAA;MACE4L,KAAK,EAAE;QACLC,OAAO,EAAE,MAAM;QACfC,QAAQ,EAAE,MAAM;QAChBC,GAAG,EAAE,KAAK;QACVC,OAAO,EAAE;MACX,CAAE;MAAAC,QAAA,EAEDtJ,KAAK,CAACmF,GAAG,CAAC,UAACnE,IAAI;QAAA,oBACd3D,IAAA,CAACH,WAAW;UAEV8D,IAAI,EAAEA,IAAK;UACXuI,SAAS;UACTC,QAAQ,EAAEpD;QAAiB,GAHtBpF,IAAI,CAAC4C,EAIX,CAAC;MAAA,CACH;IAAC,CACC,CAAC;EAEV,CAAC;EAED,IAAM6F,cAAc,MAAAtH,MAAA,CAAM3C,MAAM,CAACkK,SAAS,OAAAvH,MAAA,CAAI/B,UAAU,GAAG,WAAW,GAAG,EAAE,CAAE;EAC7E,IAAMuJ,SAAS,GAAG3J,KAAK,CAACmB,IAAI,CAAC,UAACW,CAAC;IAAA,OAAKA,CAAC,CAACiC,MAAM,KAAK,WAAW;EAAA,EAAC;EAC7D,IAAM6F,UAAU,GAAG3L,QAAQ,IAAI0L,SAAS,IAAI5L,OAAO;;EAEnD;EACA,IAAM8L,UAAU,GAAG,SAAbA,UAAUA,CAAIC,KAAU;IAAA,oBAC5BzM,IAAA,CAACX,OAAO;MAAC2K,KAAK,EAAEtJ,OAAO,GAAG,MAAM,GAAG,MAAO;MAAAuL,QAAA,eACxCjM,IAAA,WAAA+H,aAAA,CAAAA,aAAA;QACE2E,SAAS,KAAA5H,MAAA,CAAK3C,MAAM,CAACwK,UAAU,OAAA7H,MAAA,CAAI3C,MAAM,CAACyK,UAAU,OAAA9H,MAAA,CAAIpE,OAAO,GAAG,MAAM,GAAG,EAAE,CAAG;QAChFmM,OAAO,EAAEnM,OAAO,GAAGQ,MAAM,GAAGwI,YAAa;QACzC9I,QAAQ,EAAE0L,SAAS,IAAI1L,QAAS;QAChC,cAAYF,OAAO,GAAG,MAAM,GAAG;MAAO,GAClC+L,KAAK;QAAAR,QAAA,EAERvL,OAAO,gBAAGV,IAAA,CAACP,eAAe,IAAE,CAAC,gBAAGO,IAAA,CAACN,eAAe,IAAE;MAAC,EAC9C;IAAC,CACF,CAAC;EAAA,CACX;EAED,IAAMoN,YAAY,GAAG,SAAfA,YAAYA,CAAIL,KAAU;IAAA,oBAC9BzM,IAAA,CAACX,OAAO;MAAC2K,KAAK,EAAC,0BAAM;MAAAiC,QAAA,eACnBjM,IAAA,WAAA+H,aAAA,CAAAA,aAAA;QACE2E,SAAS,KAAA5H,MAAA,CAAK3C,MAAM,CAACwK,UAAU,OAAA7H,MAAA,CAAI3C,MAAM,CAAC4K,YAAY,CAAG;QACzDF,OAAO,EAAE5D,iBAAkB;QAC3BrI,QAAQ,EAAE2L,UAAW;QACrB,cAAW;MAAM,GACbE,KAAK;QAAAR,QAAA,eAETjM,IAAA,CAACL,iBAAiB,IAAE;MAAC,EACf;IAAC,CACF,CAAC;EAAA,CACX;EAED,IAAMqN,WAAW,GAAG,SAAdA,WAAWA,CAAIP,KAAU;IAAA,oBAC7BzM,IAAA,CAACb,UAAU;MACT6K,KAAK,EAAC,+DAAa;MACnBiD,SAAS,EAAElM,OAAQ;MACnBmM,SAAS,EAAC,KAAK;MACfhD,MAAM,EAAC,cAAI;MACXC,UAAU,EAAC,cAAI;MACfvJ,QAAQ,EAAE2L,UAAW;MAAAN,QAAA,eAErBjM,IAAA,WAAA+H,aAAA,CAAAA,aAAA;QACE2E,SAAS,KAAA5H,MAAA,CAAK3C,MAAM,CAACwK,UAAU,OAAA7H,MAAA,CAAI3C,MAAM,CAACgL,WAAW,CAAG;QACxDvM,QAAQ,EAAE2L,UAAW;QACrB,cAAW;MAAQ,GACfE,KAAK;QAAAR,QAAA,eAETjM,IAAA,CAACR,aAAa,IAAE;MAAC,EACX;IAAC,CACC,CAAC;EAAA,CACd;EAED,IAAM4N,iBAAoC,GAAG;IAC3CZ,UAAU,EAAVA,UAAU;IACVM,YAAY,EAAZA,YAAY;IACZE,WAAW,EAAXA;EACF,CAAC;;EAED;EACA,IAAMK,UAAU,GAAG,SAAbA,UAAUA,CACdC,IAOa,EACbC,OAAwB,EACG;IAC3B,IAAID,IAAI,KAAK,KAAK,EAAE,OAAO,IAAI;IAC/B,IAAIA,IAAI,KAAKE,SAAS,EAAE,OAAOD,OAAO;IACtC,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;MAC9B,IAAMG,MAAM,GAAGH,IAAI,CAACC,OAAO,EAAE;QAAEG,UAAU,EAAEN;MAAkB,CAAC,CAAC;MAC/D,OAAOK,MAAM,KAAK,KAAK,GAAG,IAAI,GAAGA,MAAM;IACzC;IACA,OAAOH,IAAI;EACb,CAAC;;EAED;EACA,IAAMK,aAAa,gBACjBzN,KAAA;IAAKwM,SAAS,EAAEvK,MAAM,CAACyL,WAAY;IAAA3B,QAAA,GAChCzL,WAAW,iBAAIR,IAAA,CAAC8M,YAAY,IAAE,CAAC,eAChC9M,IAAA,CAACwM,UAAU,IAAE,CAAC;EAAA,CACX,CACN;EAED,oBACEtM,KAAA;IACE2N,GAAG,EAAE5K,YAAa;IAClByJ,SAAS,EAAEN,cAAe;IAC1B0B,UAAU,EAAEtN,WAAW,GAAG4I,cAAc,GAAGoE,SAAU;IACrDO,WAAW,EAAEvN,WAAW,GAAG+I,eAAe,GAAGiE,SAAU;IACvDQ,MAAM,EAAExN,WAAW,GAAGgJ,UAAU,GAAGgE,SAAU;IAAAvB,QAAA,GAG5CoB,UAAU,CAACrL,MAAM,EAAE,KAAK,CAAC,EAEzBxB,WAAW,IAAImC,KAAK,CAACiB,MAAM,GAAG,CAAC,IAAI+H,cAAc,CAAC,CAAC,EAGnDnL,WAAW,iBACVR,IAAA;MACE6N,GAAG,EAAE3K,YAAa;MAClBa,IAAI,EAAC,MAAM;MACXkK,QAAQ;MACRC,MAAM,EAAEtM,gBAAgB,CAACuM,IAAI,CAAC,GAAG,CAAE;MACnCvC,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAO,CAAE;MAC3B7K,QAAQ,EAAE,SAAAA,SAAC6E,CAAC,EAAK;QACf,IAAIA,CAAC,CAAC0F,MAAM,CAAC5I,KAAK,EAAE;UAClBmD,gBAAgB,CAACG,KAAK,CAACC,IAAI,CAACL,CAAC,CAAC0F,MAAM,CAAC5I,KAAK,CAAC,CAAC;UAC5CkD,CAAC,CAAC0F,MAAM,CAAChJ,KAAK,GAAG,EAAE;QACrB;MACF;IAAE,CACH,CACF,eAEDrC,KAAA;MAAKwM,SAAS,EAAEvK,MAAM,CAACiM,QAAS;MAAAnC,QAAA,gBAC9B/L,KAAA;QAAKwM,SAAS,EAAEvK,MAAM,CAACkM,UAAW;QAAApC,QAAA,GAE/B3L,YAAY,iBAAIN,IAAA,CAACgN,WAAW,IAAE,CAAC,eAEhC9M,KAAA;UAAKwM,SAAS,EAAEvK,MAAM,CAACmM,eAAgB;UAAArC,QAAA,GAEpCoB,UAAU,CAACpL,MAAM,EAAE,KAAK,CAAC,eAE1BjC,IAAA;YAAK0M,SAAS,EAAEvK,MAAM,CAACoM,eAAgB;YAAAtC,QAAA,eACrCjM,IAAA,CAACV,KAAK,CAACkP,QAAQ;cACb9B,SAAS,EAAEvK,MAAM,CAACsM,QAAS;cAC3BlM,KAAK,EAAEA,KAAM;cACbvB,QAAQ,EAAEqK,iBAAkB;cAC5BqD,SAAS,EAAElD,aAAc;cACzBmD,WAAW,EAAC,mCAAU;cACtB/N,QAAQ,EAAE2L,UAAW;cACrBqC,QAAQ,EAAE;gBAAEC,OAAO,EAAE,CAAC;gBAAEC,OAAO,EAAE;cAAE,CAAE;cACrClD,KAAK,EAAE;gBACLmD,MAAM,EAAE,MAAM;gBACdC,SAAS,EAAE,MAAM;gBACjBC,OAAO,EAAE,MAAM;gBACfjD,OAAO,EAAE;cACX;YAAE,CACH;UAAC,CACC,CAAC,EAGLqB,UAAU,CAACtL,MAAM,EAAE4L,aAAa,CAAC;QAAA,CAC/B,CAAC;MAAA,CACH,CAAC,EAGLN,UAAU,CACTnL,MAAM,eACNlC,IAAA;QAAK0M,SAAS,EAAEvK,MAAM,CAAC+M,GAAI;QAAAjD,QAAA,EAAC;MAE5B,CAAK,CACP,CAAC;IAAA,CACE,CAAC;EAAA,CACH,CAAC;AAEV,CAAC;AAED,eAAe9L,UAAU"}
|
|
1
|
+
{"version":3,"names":["React","useState","useRef","useCallback","Popconfirm","message","Tooltip","Input","Modal","ClearOutlined","LoadingOutlined","ArrowUpOutlined","PaperClipOutlined","useStyles","FileGallery","getExt","jsx","_jsx","jsxs","_jsxs","XAdkSender","_ref","_ref$clearBtnShow","clearBtnShow","_ref$allowUpload","allowUpload","_ref$loading","loading","_ref$disabled","disabled","_ref$uploadRequest","uploadRequest","onClear","onChange","onSubmit","onStop","onFilesChange","onUploadSuccess","onUploadError","_ref$maxFileSize","maxFileSize","_ref$validators","validators","customValidators","_ref$allowedFileTypes","allowedFileTypes","_ref$maxFiles","maxFiles","Infinity","suffix","header","prefix","footer","styles","_useState","_useState2","_slicedToArray","value","setValue","_useState3","_useState4","files","setFiles","_useState5","_useState6","isDragOver","setIsDragOver","containerRef","fileInputRef","generateId","Date","now","toString","Math","random","substr","checkFileType","file","length","ext","some","type","includes","endsWith","startsWith","split","slice","checkFileSize","maxSize","size","isDuplicateFile","f","name","builtInValidators","_file","_ref2","concat","_ref3","allValidators","_toConsumableArray","validateFile","_iterator","_createForOfIteratorHelper","_step","s","n","done","validator","error","valid","err","e","handleFileSelect","selectedFiles","fileArray","Array","from","validFiles","forEach","validation","push","id","uid","progress","status","response","prev","next","uploadFiles","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fileList","_iterator2","_step2","_loop","wrap","_callee$","_context2","localFile","_loop$","_context","map","_objectSpread","onProgress","percent","onSuccess","onError","errorMessage","t0","console","Error","stop","delegateYield","t1","finish","_x","apply","arguments","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","data","responseData","fileName","fileId","tempUrl","url","fileType","fileSize","mimeType","raw","handleInputChange","newValue","target","handleKeyDown","key","shiftKey","renderFileList","style","display","flexWrap","gap","padding","children","removable","onRemove","containerClass","container","uploading","isDisabled","SendButton","props","className","iconButton","sendButton","onClick","UploadButton","uploadButton","ClearButton","onConfirm","placement","clearButton","actionsComponents","renderSlot","slot","oriNode","undefined","result","components","defaultSuffix","buttonGroup","ref","onDragOver","onDragLeave","onDrop","multiple","accept","join","mainArea","senderWrap","inputAndButtons","textAreaWrapper","TextArea","textArea","onKeyDown","placeholder","autoSize","minRows","maxRows","border","boxShadow","outline","tip"],"sources":["../../../../src/components/XAdkSender/index.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from \"react\";\nimport { Popconfirm, message, Tooltip, Input, Modal } from \"antd\";\nimport {\n ClearOutlined,\n LoadingOutlined,\n ArrowUpOutlined,\n PaperClipOutlined,\n} from \"@ant-design/icons\";\nimport {\n XAdkSenderProps,\n ServerFile,\n LocalFile,\n ActionsComponents,\n FileValidator,\n} from \"@/types\";\nimport { useStyles } from \"./styles\";\nimport FileGallery from \"../FileGallery\";\nimport { getExt } from \"@/utils/file\";\n\nconst XAdkSender: React.FC<XAdkSenderProps> = ({\n clearBtnShow = true,\n allowUpload = false,\n loading = false,\n disabled = false,\n uploadRequest = () => {},\n onClear,\n onChange,\n onSubmit,\n onStop,\n onFilesChange,\n onUploadSuccess,\n onUploadError,\n maxFileSize = 10,\n validators: customValidators = [],\n // allowedFileTypes = [\n // \"image/*\",\n // \"audio/*\",\n // \"video/*\",\n // \"application/pdf\",\n // \"text/plain\",\n // \".doc\",\n // \".docx\",\n // \".xls\",\n // \".xlsx\",\n // \".ppt\",\n // \".pptx\",\n // \"\",\n // ],\n allowedFileTypes = [],\n maxFiles = Infinity,\n suffix,\n header,\n prefix,\n footer,\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\n // 生成唯一ID\n const generateId = () => {\n return Date.now().toString(36) + Math.random().toString(36).substr(2);\n };\n\n // 检查文件类型\n const checkFileType = (file: File): boolean => {\n if (allowedFileTypes?.length > 0) {\n const ext = getExt(file);\n\n return allowedFileTypes.some((type) => {\n // 1️⃣ MIME 校验\n if (type.includes(\"/\")) {\n if (type.endsWith(\"/*\")) {\n return file.type.startsWith(type.split(\"/\")[0]);\n }\n return file.type === type;\n }\n\n if (type.startsWith(\".\")) {\n return ext === type.slice(1);\n }\n\n return false;\n });\n }\n return true;\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 isDuplicateFile = (file: File, files: LocalFile[]) => {\n return files.some((f) => f.name === file.name && f.size === file.size);\n };\n\n // 内置校验器集合\n const builtInValidators: FileValidator[] = [\n // 数量校验(修复批量 bug)\n (_file, { files }) => {\n if (files.length >= maxFiles) {\n return `最多只能上传 ${maxFiles} 个文件`;\n }\n return null;\n },\n\n // 大小校验\n (file) => {\n const maxSize = maxFileSize * 1024 * 1024;\n if (file.size > maxSize) {\n return `文件大小不能超过 ${maxFileSize}MB`;\n }\n return null;\n },\n\n // 类型校验\n (file) => {\n if (!checkFileType(file)) {\n return \"不支持的文件类型\";\n }\n return null;\n },\n\n // ⭐ 新增:去重校验\n (file, { files }) => {\n if (isDuplicateFile(file, files)) {\n return \"文件已存在\";\n }\n return null;\n },\n ];\n\n const allValidators = [...builtInValidators, ...customValidators];\n\n // 验证文件\n const validateFile = (file: File): { valid: boolean; message?: string } => {\n for (const validator of allValidators) {\n const error = validator(file, { files });\n if (error) {\n return { valid: false, message: error };\n }\n }\n return { valid: true };\n };\n\n // 处理文件选择\n const handleFileSelect = useCallback(\n (selectedFiles: File[]) => {\n const fileArray = Array.from(selectedFiles);\n\n if (files.length + fileArray.length > maxFiles) {\n message.error(`最多只能上传 ${maxFiles} 个文件`);\n return;\n }\n\n const validFiles: LocalFile[] = [];\n\n fileArray.forEach((file) => {\n const validation = validateFile(file);\n\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) => {\n const next = [...prev, ...validFiles];\n onFilesChange?.(next);\n return next;\n });\n uploadFiles(validFiles);\n }\n },\n [files, maxFiles, maxFileSize, allowedFileTypes],\n );\n\n // 上传文件\n const uploadFiles = async (fileList: LocalFile[]) => {\n for (const localFile of fileList) {\n // 开始上传\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id ? { ...f, status: \"uploading\" } : f,\n ),\n );\n\n try {\n await uploadRequest({\n file: localFile.file,\n onProgress: (e) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id ? { ...f, progress: e.percent } : f,\n ),\n );\n },\n onSuccess: (response) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id\n ? {\n ...f,\n status: \"success\",\n progress: 100,\n response,\n }\n : f,\n ),\n );\n\n onUploadSuccess?.({\n ...localFile,\n status: \"success\",\n response,\n });\n },\n onError: (error) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id\n ? {\n ...f,\n status: \"error\",\n errorMessage: error.message,\n }\n : f,\n ),\n );\n onUploadError?.(localFile, error);\n },\n });\n } catch (error) {\n console.error(\"上传处理错误:\", error);\n setFiles((prev) =>\n prev.map((f) =>\n f.id === localFile.id\n ? {\n ...f,\n status: \"error\",\n errorMessage:\n error instanceof Error ? error.message : \"上传处理失败\",\n }\n : f,\n ),\n );\n message.error(`${localFile.name} 上传失败`);\n }\n }\n };\n\n // 删除文件\n const handleRemoveFile = (id: string) => {\n setFiles((prev) => {\n const next = prev.filter((file) => file.id !== id);\n\n onFilesChange?.(next);\n\n return next;\n });\n };\n\n // 触发文件选择\n const triggerFileSelect = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n // 处理拖拽事件\n const handleDragOver = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(true);\n }\n },\n [allowUpload],\n );\n\n const handleDragLeave = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (allowUpload) {\n setIsDragOver(false);\n }\n },\n [allowUpload],\n );\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragOver(false);\n\n if (\n allowUpload &&\n e.dataTransfer.files &&\n e.dataTransfer.files.length > 0\n ) {\n handleFileSelect(Array.from(e.dataTransfer.files));\n }\n },\n [allowUpload, handleFileSelect],\n );\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 || getExt(file),\n size: responseData.fileSize,\n mimeType: file.type,\n raw: {\n ...responseData,\n },\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 // 渲染文件列表 - 使用新的 FileGallery 组件\n const renderFileList = () => {\n if (files.length === 0) return null;\n\n return (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"8px\",\n padding: \"12px 0\",\n }}\n >\n {files.map((file) => (\n <FileGallery\n key={file.id}\n file={file}\n removable\n onRemove={handleRemoveFile}\n />\n ))}\n </div>\n );\n };\n\n const containerClass = `${styles.container} ${isDragOver ? \"drag-over\" : \"\"}`;\n const uploading = files.some((f) => f.status === \"uploading\");\n const isDisabled = disabled || uploading || loading;\n\n // 定义按钮组件\n const SendButton = (props: any) => (\n <Tooltip title={loading ? \"停止生成\" : \"发送消息\"}>\n <button\n className={`${styles.iconButton} ${styles.sendButton} ${loading ? \"stop\" : \"\"}`}\n onClick={loading ? onStop : handleSubmit}\n disabled={uploading || disabled}\n aria-label={loading ? \"停止生成\" : \"发送消息\"}\n {...props}\n >\n {loading ? <LoadingOutlined /> : <ArrowUpOutlined />}\n </button>\n </Tooltip>\n );\n\n const UploadButton = (props: any) => (\n <Tooltip title=\"上传文件\">\n <button\n className={`${styles.iconButton} ${styles.uploadButton}`}\n onClick={triggerFileSelect}\n disabled={isDisabled}\n aria-label=\"上传文件\"\n {...props}\n >\n <PaperClipOutlined />\n </button>\n </Tooltip>\n );\n\n const ClearButton = (props: any) => (\n <Popconfirm\n title=\"确定要清空聊天记录吗?\"\n onConfirm={onClear}\n placement=\"top\"\n okText=\"确定\"\n cancelText=\"取消\"\n disabled={isDisabled}\n >\n <button\n className={`${styles.iconButton} ${styles.clearButton}`}\n disabled={isDisabled}\n aria-label=\"清空聊天记录\"\n {...props}\n >\n <ClearOutlined />\n </button>\n </Popconfirm>\n );\n\n const actionsComponents: ActionsComponents = {\n SendButton,\n UploadButton,\n ClearButton,\n };\n\n // 渲染插槽内容\n const renderSlot = (\n slot:\n | React.ReactNode\n | false\n | ((\n oriNode: React.ReactNode,\n info: { components: ActionsComponents },\n ) => React.ReactNode | false)\n | undefined,\n oriNode: React.ReactNode,\n ): React.ReactNode | null => {\n if (slot === false) return null;\n if (slot === undefined) return oriNode;\n if (typeof slot === \"function\") {\n const result = slot(oriNode, { components: actionsComponents });\n return result === false ? null : result;\n }\n return slot;\n };\n\n // 默认的后缀内容(操作按钮组)\n const defaultSuffix = (\n <div className={styles.buttonGroup}>\n {allowUpload && <UploadButton />}\n <SendButton />\n </div>\n );\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 {/* 头部插槽 */}\n {renderSlot(header, false)}\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 {/* 清除按钮 */}\n {clearBtnShow && <ClearButton />}\n\n <div className={styles.inputAndButtons}>\n {/* 前缀插槽 */}\n {renderSlot(prefix, false)}\n\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={isDisabled}\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 {/* 后缀插槽(默认显示操作按钮) */}\n {renderSlot(suffix, defaultSuffix)}\n </div>\n </div>\n\n {/* 底部插槽(默认显示提示文字) */}\n {renderSlot(\n footer,\n <div className={styles.tip}>\n 内容由AI生成,无法确保真实准确,仅供参考\n </div>,\n )}\n </div>\n </div>\n );\n};\n\nexport default XAdkSender;\n"],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
58
58
|
sessionList = _useAgentGenerator.sessionList,
|
|
59
59
|
messages = _useAgentGenerator.messages,
|
|
60
60
|
loading = _useAgentGenerator.loading,
|
|
61
|
-
|
|
61
|
+
setCurrentSession = _useAgentGenerator.setCurrentSession,
|
|
62
62
|
setMessages = _useAgentGenerator.setMessages;
|
|
63
63
|
var _ref3 = appInfo || {},
|
|
64
64
|
appName = _ref3.appName,
|
|
@@ -78,9 +78,9 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
78
78
|
return sessionList;
|
|
79
79
|
},
|
|
80
80
|
setMessages: setMessages,
|
|
81
|
-
|
|
81
|
+
setCurrentSession: setCurrentSession
|
|
82
82
|
};
|
|
83
|
-
}, [appInfo, messages, chat, stopChat, reChat, setMessages,
|
|
83
|
+
}, [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSession]);
|
|
84
84
|
var _useState = useState(false),
|
|
85
85
|
_useState2 = _slicedToArray(_useState, 2),
|
|
86
86
|
isNarrow = _useState2[0],
|
|
@@ -239,7 +239,7 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
239
239
|
|
|
240
240
|
// 切换会话
|
|
241
241
|
var handleActiveChange = function handleActiveChange(key) {
|
|
242
|
-
|
|
242
|
+
setCurrentSession(key);
|
|
243
243
|
};
|
|
244
244
|
|
|
245
245
|
// 删除会话
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useImperativeHandle","useState","useRef","useEffect","message","Divider","Modal","Input","ConfigProvider","copy","XProvider","ExclamationCircleFilled","LikeFilled","LikeOutlined","XAiContext","useAgentGenerator","MOBILE_MAX_WIDTH","API_SUCCESS_CODE","userIcon","primaryBlue","DislikeFeedback","addFeedback","defaultActions","jsx","_jsx","jsxs","_jsxs","confirm","XAiProvider","_ref","ref","_config$chatProps","_config$session","_config$chatProps2","_ref$url","url","window","location","origin","token","config","_ref$providerId","providerId","onSuccess","onError","onMessage","children","_ref2","chatProps","_ref2$textSpeed","textSpeed","_useAgentGenerator","appInfo","chat","stopChat","reChat","createNewChat","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","setCurrentSessionDetail","setMessages","_ref3","appName","icon","getAppInfo","getMessages","getSessions","_useState","_useState2","_slicedToArray","isNarrow","setIsNarrow","divRef","div","current","resizeObserver","ResizeObserver","entries","_iterator","_createForOfIteratorHelper","_step","s","n","done","entry","value","width","contentRect","err","e","f","observe","initialWidth","offsetWidth","disconnect","handleSendMessage","content","handleCreateNewMessage","handleActions","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","index","actionData","_ref5","id","_content$text","text","idx","_actionData$isLike","_ref6","appNo","isLike","_actionData$raw","_yield$addFeedback","result","wrap","_callee$","_context","prev","next","t0","abrupt","success","findIndex","item","length","filter","type","warning","requestId","raw","sent","code","map","_objectSpread","error","stop","_x","_x2","apply","arguments","handleSuggestMessageClick","_item","m","handleActiveChange","key","handleDeleteSession","sessionId","handleUpdateSession","title","menuConfig","conversation","items","label","danger","onClick","menuInfo","domEvent","stopPropagation","inputValue","defaultValue","autoFocus","style","onChange","target","okText","cancelText","okButtonProps","background","borderColor","color","onOk","trim","Promise","reject","onCancel","okType","ToolTip","messageData","finalResult","think","find","actionName","_ref7","extra","cost","tokenCount","display","alignItems","fontSize","flex","paddingRight","undefined","clearBtnShow","session","showSessionList","theme","colorPrimary","appTheme","Provider","avatar","src","alt","userAvatar","emptyStateImage","emptyStateText","footerTips","sessionTotal","total","activeKey","inputShow","messageTooltip","messageActions","concat","_toConsumableArray","tooltip","render","i","msg","_i","_msg$raw","activeColor","onSubmit","_ref8","_callee2","formData","_yield$addFeedback2","_callee2$","_context2","_x3","onSend","onClear","onNewChat","onStop","menu","onActiveChange","onSuggestMessageClick","onMessagesActionsCallback","isInProvider","height","position"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle, useState, useRef, useEffect } from 'react';\nimport { message, Divider, Modal, Input, ConfigProvider } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport type { ConversationsProps } from '@ant-design/x';\nimport { ExclamationCircleFilled, LikeFilled, LikeOutlined } from '@ant-design/icons';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport { MOBILE_MAX_WIDTH, API_SUCCESS_CODE } from '@/constants';\nimport userIcon from '@/assets/user.png';\nimport { primaryBlue } from '@/styles/common';\nimport DislikeFeedback from '../DislikeFeedback';\nimport { addFeedback } from '@/services/api';\nimport { defaultActions } from '../XAiChatbot';\nimport type { SendContent } from '@/types';\n\nconst { confirm } = Modal;\n\nconst XAiProvider = forwardRef<XAiProviderHandle, XAiProviderProps>(({\n url = window.location.origin,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n onMessage,\n children,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n\n const { textSpeed = 55 } = config?.chatProps || {};\n\n const {\n appInfo,\n chat,\n stopChat,\n reChat,\n createNewChat,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n setCurrentSessionDetail,\n setMessages,\n } = useAgentGenerator({ url, token, config, onError, onSuccess, onMessage, textSpeed });\n\n const { appName, icon } = appInfo || {};\n\n useImperativeHandle(ref, () => ({\n chat,\n stopChat,\n reChat,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSessionDetail,\n }), [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSessionDetail]);\n\n const [isNarrow, setIsNarrow] = useState<boolean>(false);\n const divRef = useRef<HTMLDivElement>(null);\n\n // 监听容器宽度变化\n useEffect(() => {\n const div = divRef.current;\n if (!div) return;\n\n // 创建监听器\n const resizeObserver = new ResizeObserver((entries) => {\n // eslint-disable-next-line no-restricted-syntax\n for (const entry of entries) {\n const { width } = entry.contentRect;\n setIsNarrow(width <= MOBILE_MAX_WIDTH);\n }\n });\n\n // 开始监听\n resizeObserver.observe(div);\n\n // 初始化检查\n const initialWidth = div.offsetWidth;\n setIsNarrow(initialWidth <= MOBILE_MAX_WIDTH);\n\n // 清理函数\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n // 发送消息\n const handleSendMessage = (content: SendContent) => {\n chat(content);\n };\n\n // 清空消息\n const handleCreateNewMessage = () => {\n createNewChat();\n };\n\n // 工具栏按钮点击\n const handleActions = async (index: number, actionData: any) => {\n const { content, id } = actionData || {};\n const { text = '' } = content;\n switch (index) {\n case 0:\n reChat();\n break;\n case 1:\n copy(text);\n message.success('复制成功');\n break;\n case 2: {\n const idx = messages.findIndex((item) => item.id === id);\n if (idx >= 0) {\n // 删除该条消息及建议类消息\n if (messages.length - idx <= 2) {\n setMessages((prev) => prev.filter((item) => item.id !== id && item.type !== 'SuggestionMessage'));\n } else {\n // 非最新消息 只删除该条消息\n setMessages((prev) => prev.filter((item) => item.id !== id));\n }\n message.success('删除成功');\n }\n break;\n }\n case 3: {\n const { appNo } = config || {};\n const isLike = actionData.isLike ?? 0;\n if (isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (appNo) {\n const { result } = await addFeedback({\n url,\n token,\n appNo,\n requestId: actionData.raw?.requestId,\n isLike: 1,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('感谢您的反馈');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === id) {\n return {\n ...item,\n isLike: 1,\n };\n }\n return item;\n });\n });\n } else {\n message.error('反馈失败,请稍后再试');\n }\n }\n break;\n }\n }\n };\n\n // 建议消息点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev: any[]) => prev.filter((m: any) => m.id !== id));\n };\n\n // 切换会话\n const handleActiveChange = (key: string) => {\n setCurrentSessionDetail(key);\n };\n\n // 删除会话\n const handleDeleteSession = (sessionId: string) => {\n deleteSession(sessionId);\n };\n\n // 修改会话内容\n const handleUpdateSession = (sessionId: string, title: string) => {\n updateSession(sessionId, title);\n };\n\n // 会话操作菜单\n const menuConfig: ConversationsProps['menu'] = (conversation) => ({\n items: [\n {\n label: '重命名',\n key: 'edit',\n },\n {\n label: '删除',\n key: 'delete',\n danger: true,\n },\n ],\n onClick: (menuInfo) => {\n menuInfo.domEvent.stopPropagation();\n const { key } = menuInfo;\n switch (key) {\n case 'edit': {\n let inputValue = conversation.label as string || '';\n confirm({\n title: '编辑对话名称',\n icon: null,\n content: (\n <Input\n defaultValue={inputValue}\n autoFocus\n style={{ width: '100%' }}\n onChange={(e) => {\n inputValue = e.target.value;\n }}\n />\n ),\n okText: '确认',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#000', borderColor: '#000', color: '#fff' },\n },\n onOk: () => {\n if (!inputValue.trim()) {\n message.error('对话名称不能为空');\n return Promise.reject();\n }\n handleUpdateSession(conversation.key, inputValue);\n },\n onCancel: () => {\n // 静默处理\n },\n });\n break;\n }\n case 'delete':\n confirm({\n title: '确认删除?',\n icon: <ExclamationCircleFilled />,\n content: '该对话内容将被删除无法恢复。',\n okText: '确认删除',\n okType: 'danger',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#ff4d4f', borderColor: '#ff4d4f', color: '#fff' },\n },\n onOk() {\n handleDeleteSession(conversation.key);\n },\n onCancel() {\n //\n },\n });\n break;\n }\n },\n });\n\n const ToolTip = (messageData: any) => {\n const finalResult = (messageData?.think || []).find((item: any) => item.actionName === 'FINISHED');\n if (!finalResult) return null;\n const { cost, token: tokenCount } = finalResult.extra || {};\n if (!cost && !token) return null;\n return (\n <div style={{ display: 'flex', alignItems: 'center', fontSize: '12px', color: '#949494', flex: 1, paddingRight: '40px' }}>\n { (cost !== undefined && cost !== null) && <div>{cost}s</div> }\n { tokenCount && <Divider type=\"vertical\" /> }\n { tokenCount && <div>{ tokenCount } tokens</div> }\n </div>\n );\n };\n // 是否展示清空按钮\n const clearBtnShow = typeof config?.chatProps?.clearBtnShow !== 'undefined'\n ? config.chatProps.clearBtnShow\n : !config?.session?.showSessionList;\n\n return (\n <ConfigProvider theme={{\n token: {\n colorPrimary: appInfo?.appTheme || primaryBlue,\n },\n }}\n >\n <XProvider>\n <XAiContext.Provider value={{\n avatar: <img src={icon} alt=\"智能体头像\" />,\n userAvatar: <img src={userIcon} alt=\"用户头像\" />,\n emptyStateImage: icon,\n emptyStateText: appName,\n footerTips: '内容由AI生成,无法确保真实准确,仅供参考',\n providerId,\n sessionList,\n sessionTotal: sessionPagination.total,\n token,\n messages,\n loading,\n error: null,\n activeKey: currentSessionId,\n clearBtnShow,\n inputShow: config?.chatProps?.inputShow || true,\n isNarrow,\n messageTooltip: ToolTip,\n messageActions: [...defaultActions, {\n key: 'like',\n tooltip: '赞',\n render: (i, msg) => {\n const isLike = msg.isLike === 1;\n if (isLike) {\n return (\n <LikeFilled style={{ color: appInfo?.appTheme || primaryBlue }} />\n );\n }\n return <LikeOutlined />;\n },\n }, {\n key: 'dislike',\n tooltip: '踩',\n render: (_i, msg) => {\n const requestId = msg.raw?.requestId;\n return (\n <DislikeFeedback\n msg={msg}\n activeColor={appInfo?.appTheme || primaryBlue}\n onSubmit={async (formData) => {\n const { result } = await addFeedback({\n ...formData,\n requestId,\n isLike: -1,\n url,\n appNo: config?.appNo,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('已收到您的反馈,我们会努力做的更好');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === msg.id) {\n return {\n ...item,\n isLike: -1,\n };\n }\n return item;\n });\n });\n return true;\n }\n message.error('反馈失败,请稍后再试');\n return false;\n }}\n />\n );\n },\n }],\n onSend: handleSendMessage,\n onClear: handleCreateNewMessage,\n onNewChat: handleCreateNewMessage,\n onStop: stopChat,\n menu: menuConfig,\n onActiveChange: handleActiveChange,\n onSuggestMessageClick: handleSuggestMessageClick,\n onMessagesActionsCallback: handleActions,\n isInProvider: true,\n }}\n >\n <div\n ref={divRef}\n style={{\n display: 'flex',\n height: '100%',\n position: 'relative',\n }}\n >\n {children}\n </div>\n </XAiContext.Provider>\n </XProvider>\n </ConfigProvider>\n );\n});\n\nexport default XAiProvider;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,mBAAmB,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,SAAS,QAAQ,OAAO;AAC3F,SAASC,OAAO,EAAEC,OAAO,EAAEC,KAAK,EAAEC,KAAK,EAAEC,cAAc,QAAQ,MAAM;AACrE,OAAOC,IAAI,MAAM,mBAAmB;AACpC,SAASC,SAAS,QAAQ,eAAe;AAEzC,SAASC,uBAAuB,EAAEC,UAAU,EAAEC,YAAY,QAAQ,mBAAmB;AACrF,SAASC,UAAU;AAEnB,OAAOC,iBAAiB;AACxB,SAASC,gBAAgB,EAAEC,gBAAgB;AAC3C,OAAOC,QAAQ;AACf,SAASC,WAAW;AACpB,OAAOC,eAAe;AACtB,SAASC,WAAW;AACpB,SAASC,cAAc;AAAwB,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAG/C,IAAQC,OAAO,GAAKrB,KAAK,CAAjBqB,OAAO;AAEf,IAAMC,WAAW,gBAAG7B,UAAU,CAAsC,UAAA8B,IAAA,EASjEC,GAAG,EAAK;EAAA,IAAAC,iBAAA,EAAAC,eAAA,EAAAC,kBAAA;EAAA,IAAAC,QAAA,GAAAL,IAAA,CARTM,GAAG;IAAHA,GAAG,GAAAD,QAAA,cAAGE,MAAM,CAACC,QAAQ,CAACC,MAAM,GAAAJ,QAAA;IAC5BK,KAAK,GAAAV,IAAA,CAALU,KAAK;IACLC,MAAM,GAAAX,IAAA,CAANW,MAAM;IAAAC,eAAA,GAAAZ,IAAA,CACNa,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,WAAW,GAAAA,eAAA;IACxBE,SAAS,GAAAd,IAAA,CAATc,SAAS;IACTC,OAAO,GAAAf,IAAA,CAAPe,OAAO;IACPC,SAAS,GAAAhB,IAAA,CAATgB,SAAS;IACTC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;EAER;;EAEA,IAAAC,KAAA,GAA2B,CAAAP,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEQ,SAAS,KAAI,CAAC,CAAC;IAAAC,eAAA,GAAAF,KAAA,CAA1CG,SAAS;IAATA,SAAS,GAAAD,eAAA,cAAG,EAAE,GAAAA,eAAA;EAEtB,IAAAE,kBAAA,GAeIpC,iBAAiB,CAAC;MAAEoB,GAAG,EAAHA,GAAG;MAAEI,KAAK,EAALA,KAAK;MAAEC,MAAM,EAANA,MAAM;MAAEI,OAAO,EAAPA,OAAO;MAAED,SAAS,EAATA,SAAS;MAAEE,SAAS,EAATA,SAAS;MAAEK,SAAS,EAATA;IAAU,CAAC,CAAC;IAdrFE,OAAO,GAAAD,kBAAA,CAAPC,OAAO;IACPC,IAAI,GAAAF,kBAAA,CAAJE,IAAI;IACJC,QAAQ,GAAAH,kBAAA,CAARG,QAAQ;IACRC,MAAM,GAAAJ,kBAAA,CAANI,MAAM;IACNC,aAAa,GAAAL,kBAAA,CAAbK,aAAa;IACbC,aAAa,GAAAN,kBAAA,CAAbM,aAAa;IACbC,aAAa,GAAAP,kBAAA,CAAbO,aAAa;IACbC,gBAAgB,GAAAR,kBAAA,CAAhBQ,gBAAgB;IAChBC,iBAAiB,GAAAT,kBAAA,CAAjBS,iBAAiB;IACjBC,WAAW,GAAAV,kBAAA,CAAXU,WAAW;IACXC,QAAQ,GAAAX,kBAAA,CAARW,QAAQ;IACRC,OAAO,GAAAZ,kBAAA,CAAPY,OAAO;IACPC,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;EAErBpE,mBAAmB,CAAC8B,GAAG,EAAE;IAAA,OAAO;MAC9BuB,IAAI,EAAJA,IAAI;MACJC,QAAQ,EAARA,QAAQ;MACRC,MAAM,EAANA,MAAM;MACNc,UAAU,EAAE,SAAAA,WAAA;QAAA,OAAMjB,OAAO;MAAA;MACzBkB,WAAW,EAAE,SAAAA,YAAA;QAAA,OAAMR,QAAQ;MAAA;MAC3BS,WAAW,EAAE,SAAAA,YAAA;QAAA,OAAMV,WAAW;MAAA;MAC9BI,WAAW,EAAXA,WAAW;MACXD,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,GAAgCvE,QAAQ,CAAU,KAAK,CAAC;IAAAwE,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAjDG,QAAQ,GAAAF,UAAA;IAAEG,WAAW,GAAAH,UAAA;EAC5B,IAAMI,MAAM,GAAG3E,MAAM,CAAiB,IAAI,CAAC;;EAE3C;EACAC,SAAS,CAAC,YAAM;IACd,IAAM2E,GAAG,GAAGD,MAAM,CAACE,OAAO;IAC1B,IAAI,CAACD,GAAG,EAAE;;IAEV;IACA,IAAME,cAAc,GAAG,IAAIC,cAAc,CAAC,UAACC,OAAO,EAAK;MACrD;MAAA,IAAAC,SAAA,GAAAC,0BAAA,CACoBF,OAAO;QAAAG,KAAA;MAAA;QAA3B,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA6B;UAAA,IAAlBC,KAAK,GAAAJ,KAAA,CAAAK,KAAA;UACd,IAAQC,KAAK,GAAKF,KAAK,CAACG,WAAW,CAA3BD,KAAK;UACbf,WAAW,CAACe,KAAK,IAAI3E,gBAAgB,CAAC;QACxC;MAAC,SAAA6E,GAAA;QAAAV,SAAA,CAAAW,CAAA,CAAAD,GAAA;MAAA;QAAAV,SAAA,CAAAY,CAAA;MAAA;IACH,CAAC,CAAC;;IAEF;IACAf,cAAc,CAACgB,OAAO,CAAClB,GAAG,CAAC;;IAE3B;IACA,IAAMmB,YAAY,GAAGnB,GAAG,CAACoB,WAAW;IACpCtB,WAAW,CAACqB,YAAY,IAAIjF,gBAAgB,CAAC;;IAE7C;IACA,OAAO,YAAM;MACXgE,cAAc,CAACmB,UAAU,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,OAAoB,EAAK;IAClDhD,IAAI,CAACgD,OAAO,CAAC;EACf,CAAC;;EAED;EACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAS;IACnC9C,aAAa,CAAC,CAAC;EACjB,CAAC;;EAED;EACA,IAAM+C,aAAa;IAAA,IAAAC,KAAA,GAAAC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QAAOC,KAAa,EAAEC,UAAe;MAAA,IAAAC,KAAA,EAAAV,OAAA,EAAAW,EAAA,EAAAC,aAAA,EAAAC,IAAA,EAAAC,GAAA,EAAAC,kBAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,eAAA,EAAAC,kBAAA,EAAAC,MAAA;MAAA,OAAAhB,mBAAA,GAAAiB,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAhB,KAAA,GACjCD,UAAU,IAAI,CAAC,CAAC,EAAhCT,OAAO,GAAAU,KAAA,CAAPV,OAAO,EAAEW,EAAE,GAAAD,KAAA,CAAFC,EAAE;YAAAC,aAAA,GACGZ,OAAO,CAArBa,IAAI,EAAJA,IAAI,GAAAD,aAAA,cAAG,EAAE,GAAAA,aAAA;YAAAY,QAAA,CAAAG,EAAA,GACTnB,KAAK;YAAAgB,QAAA,CAAAE,IAAA,GAAAF,QAAA,CAAAG,EAAA,KACN,CAAC,OAAAH,QAAA,CAAAG,EAAA,KAGD,CAAC,OAAAH,QAAA,CAAAG,EAAA,KAID,CAAC,QAAAH,QAAA,CAAAG,EAAA,KAcD,CAAC;YAAA;UAAA;YApBJzE,MAAM,CAAC,CAAC;YAAC,OAAAsE,QAAA,CAAAI,MAAA;UAAA;YAGTxH,IAAI,CAACyG,IAAI,CAAC;YACV9G,OAAO,CAAC8H,OAAO,CAAC,MAAM,CAAC;YAAC,OAAAL,QAAA,CAAAI,MAAA;UAAA;YAGlBd,GAAG,GAAGrD,QAAQ,CAACqE,SAAS,CAAC,UAACC,IAAI;cAAA,OAAKA,IAAI,CAACpB,EAAE,KAAKA,EAAE;YAAA,EAAC;YACxD,IAAIG,GAAG,IAAI,CAAC,EAAE;cACZ;cACA,IAAIrD,QAAQ,CAACuE,MAAM,GAAGlB,GAAG,IAAI,CAAC,EAAE;gBAC9BlD,WAAW,CAAC,UAAC6D,IAAI;kBAAA,OAAKA,IAAI,CAACQ,MAAM,CAAC,UAACF,IAAI;oBAAA,OAAKA,IAAI,CAACpB,EAAE,KAAKA,EAAE,IAAIoB,IAAI,CAACG,IAAI,KAAK,mBAAmB;kBAAA,EAAC;gBAAA,EAAC;cACnG,CAAC,MAAM;gBACL;gBACAtE,WAAW,CAAC,UAAC6D,IAAI;kBAAA,OAAKA,IAAI,CAACQ,MAAM,CAAC,UAACF,IAAI;oBAAA,OAAKA,IAAI,CAACpB,EAAE,KAAKA,EAAE;kBAAA,EAAC;gBAAA,EAAC;cAC9D;cACA5G,OAAO,CAAC8H,OAAO,CAAC,MAAM,CAAC;YACzB;YAAC,OAAAL,QAAA,CAAAI,MAAA;UAAA;YAAAZ,KAAA,GAIiB7E,MAAM,IAAI,CAAC,CAAC,EAAtB8E,KAAK,GAAAD,KAAA,CAALC,KAAK;YACPC,MAAM,IAAAH,kBAAA,GAAGN,UAAU,CAACS,MAAM,cAAAH,kBAAA,cAAAA,kBAAA,GAAI,CAAC;YAAA,MACjCG,MAAM,KAAK,CAAC;cAAAM,QAAA,CAAAE,IAAA;cAAA;YAAA;YACd3H,OAAO,CAACoI,OAAO,CAAC,gBAAgB,CAAC;YAAC,OAAAX,QAAA,CAAAI,MAAA;UAAA;YAAA,KAGhCX,KAAK;cAAAO,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACkB1G,WAAW,CAAC;cACnCc,GAAG,EAAHA,GAAG;cACHI,KAAK,EAALA,KAAK;cACL+E,KAAK,EAALA,KAAK;cACLmB,SAAS,GAAAjB,eAAA,GAAEV,UAAU,CAAC4B,GAAG,cAAAlB,eAAA,uBAAdA,eAAA,CAAgBiB,SAAS;cACpClB,MAAM,EAAE;YACV,CAAC,CAAC;UAAA;YAAAE,kBAAA,GAAAI,QAAA,CAAAc,IAAA;YANMjB,MAAM,GAAAD,kBAAA,CAANC,MAAM;YAOd,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEkB,IAAI,MAAK3H,gBAAgB,EAAE;cACrCb,OAAO,CAAC8H,OAAO,CAAC,QAAQ,CAAC;cACzBjE,WAAW,CAAC,UAAC6D,IAAI,EAAK;gBACpB,OAAOA,IAAI,CAACe,GAAG,CAAC,UAACT,IAAI,EAAK;kBACxB,IAAIA,IAAI,CAACpB,EAAE,KAAKA,EAAE,EAAE;oBAClB,OAAA8B,aAAA,CAAAA,aAAA,KACKV,IAAI;sBACPb,MAAM,EAAE;oBAAC;kBAEb;kBACA,OAAOa,IAAI;gBACb,CAAC,CAAC;cACJ,CAAC,CAAC;YACJ,CAAC,MAAM;cACLhI,OAAO,CAAC2I,KAAK,CAAC,YAAY,CAAC;YAC7B;UAAC;YAAA,OAAAlB,QAAA,CAAAI,MAAA;UAAA;UAAA;YAAA,OAAAJ,QAAA,CAAAmB,IAAA;QAAA;MAAA,GAAApC,OAAA;IAAA,CAKR;IAAA,gBA5DKL,aAAaA,CAAA0C,EAAA,EAAAC,GAAA;MAAA,OAAA1C,KAAA,CAAA2C,KAAA,OAAAC,SAAA;IAAA;EAAA,GA4DlB;;EAED;EACA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,KAAU,EAAEtC,EAAU,EAAK;IAC5D/C,WAAW,CAAC,UAAC6D,IAAW;MAAA,OAAKA,IAAI,CAACQ,MAAM,CAAC,UAACiB,CAAM;QAAA,OAAKA,CAAC,CAACvC,EAAE,KAAKA,EAAE;MAAA,EAAC;IAAA,EAAC;EACpE,CAAC;;EAED;EACA,IAAMwC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,GAAW,EAAK;IAC1CzF,uBAAuB,CAACyF,GAAG,CAAC;EAC9B,CAAC;;EAED;EACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,SAAiB,EAAK;IACjDlG,aAAa,CAACkG,SAAS,CAAC;EAC1B,CAAC;;EAED;EACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAID,SAAiB,EAAEE,KAAa,EAAK;IAChEnG,aAAa,CAACiG,SAAS,EAAEE,KAAK,CAAC;EACjC,CAAC;;EAED;EACA,IAAMC,UAAsC,GAAG,SAAzCA,UAAsCA,CAAIC,YAAY;IAAA,OAAM;MAChEC,KAAK,EAAE,CACL;QACEC,KAAK,EAAE,KAAK;QACZR,GAAG,EAAE;MACP,CAAC,EACD;QACEQ,KAAK,EAAE,IAAI;QACXR,GAAG,EAAE,QAAQ;QACbS,MAAM,EAAE;MACV,CAAC,CACF;MACDC,OAAO,EAAE,SAAAA,QAACC,QAAQ,EAAK;QACrBA,QAAQ,CAACC,QAAQ,CAACC,eAAe,CAAC,CAAC;QACnC,IAAQb,GAAG,GAAKW,QAAQ,CAAhBX,GAAG;QACX,QAAQA,GAAG;UACT,KAAK,MAAM;YAAE;cACX,IAAIc,UAAU,GAAGR,YAAY,CAACE,KAAK,IAAc,EAAE;cACnDtI,OAAO,CAAC;gBACNkI,KAAK,EAAE,QAAQ;gBACfzF,IAAI,EAAE,IAAI;gBACViC,OAAO,eACL7E,IAAA,CAACjB,KAAK;kBACJiK,YAAY,EAAED,UAAW;kBACzBE,SAAS;kBACTC,KAAK,EAAE;oBAAE/E,KAAK,EAAE;kBAAO,CAAE;kBACzBgF,QAAQ,EAAE,SAAAA,SAAC7E,CAAC,EAAK;oBACfyE,UAAU,GAAGzE,CAAC,CAAC8E,MAAM,CAAClF,KAAK;kBAC7B;gBAAE,CACH,CACF;gBACDmF,MAAM,EAAE,IAAI;gBACZC,UAAU,EAAE,IAAI;gBAChBC,aAAa,EAAE;kBACbL,KAAK,EAAE;oBAAEM,UAAU,EAAE,MAAM;oBAAEC,WAAW,EAAE,MAAM;oBAAEC,KAAK,EAAE;kBAAO;gBAClE,CAAC;gBACDC,IAAI,EAAE,SAAAA,KAAA,EAAM;kBACV,IAAI,CAACZ,UAAU,CAACa,IAAI,CAAC,CAAC,EAAE;oBACtBhL,OAAO,CAAC2I,KAAK,CAAC,UAAU,CAAC;oBACzB,OAAOsC,OAAO,CAACC,MAAM,CAAC,CAAC;kBACzB;kBACA1B,mBAAmB,CAACG,YAAY,CAACN,GAAG,EAAEc,UAAU,CAAC;gBACnD,CAAC;gBACDgB,QAAQ,EAAE,SAAAA,SAAA,EAAM;kBACd;gBAAA;cAEJ,CAAC,CAAC;cACF;YACF;UACA,KAAK,QAAQ;YACX5J,OAAO,CAAC;cACNkI,KAAK,EAAE,OAAO;cACdzF,IAAI,eAAE5C,IAAA,CAACb,uBAAuB,IAAE,CAAC;cACjC0F,OAAO,EAAE,gBAAgB;cACzBwE,MAAM,EAAE,MAAM;cACdW,MAAM,EAAE,QAAQ;cAChBV,UAAU,EAAE,IAAI;cAChBC,aAAa,EAAE;gBACbL,KAAK,EAAE;kBAAEM,UAAU,EAAE,SAAS;kBAAEC,WAAW,EAAE,SAAS;kBAAEC,KAAK,EAAE;gBAAO;cACxE,CAAC;cACDC,IAAI,WAAAA,KAAA,EAAG;gBACLzB,mBAAmB,CAACK,YAAY,CAACN,GAAG,CAAC;cACvC,CAAC;cACD8B,QAAQ,WAAAA,SAAA,EAAG;gBACT;cAAA;YAEJ,CAAC,CAAC;YACF;QACJ;MACF;IACF,CAAC;EAAA,CAAC;EAEF,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAIC,WAAgB,EAAK;IACpC,IAAMC,WAAW,GAAG,CAAC,CAAAD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEE,KAAK,KAAI,EAAE,EAAEC,IAAI,CAAC,UAACzD,IAAS;MAAA,OAAKA,IAAI,CAAC0D,UAAU,KAAK,UAAU;IAAA,EAAC;IAClG,IAAI,CAACH,WAAW,EAAE,OAAO,IAAI;IAC7B,IAAAI,KAAA,GAAoCJ,WAAW,CAACK,KAAK,IAAI,CAAC,CAAC;MAAnDC,IAAI,GAAAF,KAAA,CAAJE,IAAI;MAASC,UAAU,GAAAH,KAAA,CAAjBxJ,KAAK;IACnB,IAAI,CAAC0J,IAAI,IAAI,CAAC1J,KAAK,EAAE,OAAO,IAAI;IAChC,oBACEb,KAAA;MAAKgJ,KAAK,EAAE;QAAEyB,OAAO,EAAE,MAAM;QAAEC,UAAU,EAAE,QAAQ;QAAEC,QAAQ,EAAE,MAAM;QAAEnB,KAAK,EAAE,SAAS;QAAEoB,IAAI,EAAE,CAAC;QAAEC,YAAY,EAAE;MAAO,CAAE;MAAAzJ,QAAA,GACpHmJ,IAAI,KAAKO,SAAS,IAAIP,IAAI,KAAK,IAAI,iBAAKvK,KAAA;QAAAoB,QAAA,GAAMmJ,IAAI,EAAC,GAAC;MAAA,CAAK,CAAC,EAC3DC,UAAU,iBAAI1K,IAAA,CAACnB,OAAO;QAACkI,IAAI,EAAC;MAAU,CAAE,CAAC,EACzC2D,UAAU,iBAAIxK,KAAA;QAAAoB,QAAA,GAAOoJ,UAAU,EAAE,SAAO;MAAA,CAAK,CAAC;IAAA,CAC7C,CAAC;EAEV,CAAC;EACD;EACA,IAAMO,YAAY,GAAG,QAAOjK,MAAM,aAANA,MAAM,gBAAAT,iBAAA,GAANS,MAAM,CAAEQ,SAAS,cAAAjB,iBAAA,uBAAjBA,iBAAA,CAAmB0K,YAAY,MAAK,WAAW,GACvEjK,MAAM,CAACQ,SAAS,CAACyJ,YAAY,GAC7B,EAACjK,MAAM,aAANA,MAAM,gBAAAR,eAAA,GAANQ,MAAM,CAAEkK,OAAO,cAAA1K,eAAA,eAAfA,eAAA,CAAiB2K,eAAe;EAErC,oBACEnL,IAAA,CAAChB,cAAc;IAACoM,KAAK,EAAE;MACrBrK,KAAK,EAAE;QACLsK,YAAY,EAAE,CAAAzJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0J,QAAQ,KAAI3L;MACrC;IACF,CAAE;IAAA2B,QAAA,eAEAtB,IAAA,CAACd,SAAS;MAAAoC,QAAA,eACRtB,IAAA,CAACV,UAAU,CAACiM,QAAQ;QAACrH,KAAK,EAAE;UAC1BsH,MAAM,eAAExL,IAAA;YAAKyL,GAAG,EAAE7I,IAAK;YAAC8I,GAAG,EAAC;UAAO,CAAE,CAAC;UACtCC,UAAU,eAAE3L,IAAA;YAAKyL,GAAG,EAAE/L,QAAS;YAACgM,GAAG,EAAC;UAAM,CAAE,CAAC;UAC7CE,eAAe,EAAEhJ,IAAI;UACrBiJ,cAAc,EAAElJ,OAAO;UACvBmJ,UAAU,EAAE,uBAAuB;UACnC5K,UAAU,EAAVA,UAAU;UACVmB,WAAW,EAAXA,WAAW;UACX0J,YAAY,EAAE3J,iBAAiB,CAAC4J,KAAK;UACrCjL,KAAK,EAALA,KAAK;UACLuB,QAAQ,EAARA,QAAQ;UACRC,OAAO,EAAPA,OAAO;UACPgF,KAAK,EAAE,IAAI;UACX0E,SAAS,EAAE9J,gBAAgB;UAC3B8I,YAAY,EAAZA,YAAY;UACZiB,SAAS,EAAE,CAAAlL,MAAM,aAANA,MAAM,gBAAAP,kBAAA,GAANO,MAAM,CAAEQ,SAAS,cAAAf,kBAAA,uBAAjBA,kBAAA,CAAmByL,SAAS,KAAI,IAAI;UAC/C/I,QAAQ,EAARA,QAAQ;UACRgJ,cAAc,EAAElC,OAAO;UACvBmC,cAAc,KAAAC,MAAA,CAAAC,kBAAA,CAAMxM,cAAc,IAAE;YAClCmI,GAAG,EAAE,MAAM;YACXsE,OAAO,EAAE,GAAG;YACZC,MAAM,EAAE,SAAAA,OAACC,CAAC,EAAEC,GAAG,EAAK;cAClB,IAAM3G,MAAM,GAAG2G,GAAG,CAAC3G,MAAM,KAAK,CAAC;cAC/B,IAAIA,MAAM,EAAE;gBACV,oBACE/F,IAAA,CAACZ,UAAU;kBAAC8J,KAAK,EAAE;oBAAEQ,KAAK,EAAE,CAAA9H,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0J,QAAQ,KAAI3L;kBAAY;gBAAE,CAAE,CAAC;cAEtE;cACA,oBAAOK,IAAA,CAACX,YAAY,IAAE,CAAC;YACzB;UACF,CAAC,EAAE;YACD4I,GAAG,EAAE,SAAS;YACdsE,OAAO,EAAE,GAAG;YACZC,MAAM,EAAE,SAAAA,OAACG,EAAE,EAAED,GAAG,EAAK;cAAA,IAAAE,QAAA;cACnB,IAAM3F,SAAS,IAAA2F,QAAA,GAAGF,GAAG,CAACxF,GAAG,cAAA0F,QAAA,uBAAPA,QAAA,CAAS3F,SAAS;cACpC,oBACEjH,IAAA,CAACJ,eAAe;gBACd8M,GAAG,EAAEA,GAAI;gBACTG,WAAW,EAAE,CAAAjL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0J,QAAQ,KAAI3L,WAAY;gBAC9CmN,QAAQ;kBAAA,IAAAC,KAAA,GAAA9H,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAE,SAAA6H,SAAOC,QAAQ;oBAAA,IAAAC,mBAAA,EAAAhH,MAAA;oBAAA,OAAAhB,mBAAA,GAAAiB,IAAA,UAAAgH,UAAAC,SAAA;sBAAA,kBAAAA,SAAA,CAAA9G,IAAA,GAAA8G,SAAA,CAAA7G,IAAA;wBAAA;0BAAA6G,SAAA,CAAA7G,IAAA;0BAAA,OACE1G,WAAW,CAAAyH,aAAA,CAAAA,aAAA,KAC/B2F,QAAQ;4BACXhG,SAAS,EAATA,SAAS;4BACTlB,MAAM,EAAE,CAAC,CAAC;4BACVpF,GAAG,EAAHA,GAAG;4BACHmF,KAAK,EAAE9E,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE8E,KAAK;4BACpB/E,KAAK,EAALA;0BAAK,EACN,CAAC;wBAAA;0BAAAmM,mBAAA,GAAAE,SAAA,CAAAjG,IAAA;0BAPMjB,MAAM,GAAAgH,mBAAA,CAANhH,MAAM;0BAAA,MAQV,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEkB,IAAI,MAAK3H,gBAAgB;4BAAA2N,SAAA,CAAA7G,IAAA;4BAAA;0BAAA;0BACnC3H,OAAO,CAAC8H,OAAO,CAAC,mBAAmB,CAAC;0BACpCjE,WAAW,CAAC,UAAC6D,IAAI,EAAK;4BACpB,OAAOA,IAAI,CAACe,GAAG,CAAC,UAACT,IAAI,EAAK;8BACxB,IAAIA,IAAI,CAACpB,EAAE,KAAKkH,GAAG,CAAClH,EAAE,EAAE;gCACtB,OAAA8B,aAAA,CAAAA,aAAA,KACKV,IAAI;kCACPb,MAAM,EAAE,CAAC;gCAAC;8BAEd;8BACA,OAAOa,IAAI;4BACb,CAAC,CAAC;0BACJ,CAAC,CAAC;0BAAC,OAAAwG,SAAA,CAAA3G,MAAA,WACI,IAAI;wBAAA;0BAEb7H,OAAO,CAAC2I,KAAK,CAAC,YAAY,CAAC;0BAAC,OAAA6F,SAAA,CAAA3G,MAAA,WACrB,KAAK;wBAAA;wBAAA;0BAAA,OAAA2G,SAAA,CAAA5F,IAAA;sBAAA;oBAAA,GAAAwF,QAAA;kBAAA,CACb;kBAAA,iBAAAK,GAAA;oBAAA,OAAAN,KAAA,CAAApF,KAAA,OAAAC,SAAA;kBAAA;gBAAA;cAAC,CACH,CAAC;YAEN;UACF,CAAC,EAAC;UACF0F,MAAM,EAAE1I,iBAAiB;UACzB2I,OAAO,EAAEzI,sBAAsB;UAC/B0I,SAAS,EAAE1I,sBAAsB;UACjC2I,MAAM,EAAE3L,QAAQ;UAChB4L,IAAI,EAAEpF,UAAU;UAChBqF,cAAc,EAAE3F,kBAAkB;UAClC4F,qBAAqB,EAAE/F,yBAAyB;UAChDgG,yBAAyB,EAAE9I,aAAa;UACxC+I,YAAY,EAAE;QAChB,CAAE;QAAAxM,QAAA,eAEAtB,IAAA;UACEM,GAAG,EAAE+C,MAAO;UACZ6F,KAAK,EAAE;YACLyB,OAAO,EAAE,MAAM;YACfoD,MAAM,EAAE,MAAM;YACdC,QAAQ,EAAE;UACZ,CAAE;UAAA1M,QAAA,EAEDA;QAAQ,CACN;MAAC,CACa;IAAC,CACb;EAAC,CACE,CAAC;AAErB,CAAC,CAAC;AAEF,eAAelB,WAAW"}
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useImperativeHandle","useState","useRef","useEffect","message","Divider","Modal","Input","ConfigProvider","copy","XProvider","ExclamationCircleFilled","LikeFilled","LikeOutlined","XAiContext","useAgentGenerator","MOBILE_MAX_WIDTH","API_SUCCESS_CODE","userIcon","primaryBlue","DislikeFeedback","addFeedback","defaultActions","jsx","_jsx","jsxs","_jsxs","confirm","XAiProvider","_ref","ref","_config$chatProps","_config$session","_config$chatProps2","_ref$url","url","window","location","origin","token","config","_ref$providerId","providerId","onSuccess","onError","onMessage","children","_ref2","chatProps","_ref2$textSpeed","textSpeed","_useAgentGenerator","appInfo","chat","stopChat","reChat","createNewChat","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","setCurrentSession","setMessages","_ref3","appName","icon","getAppInfo","getMessages","getSessions","_useState","_useState2","_slicedToArray","isNarrow","setIsNarrow","divRef","div","current","resizeObserver","ResizeObserver","entries","_iterator","_createForOfIteratorHelper","_step","s","n","done","entry","value","width","contentRect","err","e","f","observe","initialWidth","offsetWidth","disconnect","handleSendMessage","content","handleCreateNewMessage","handleActions","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","index","actionData","_ref5","id","_content$text","text","idx","_actionData$isLike","_ref6","appNo","isLike","_actionData$raw","_yield$addFeedback","result","wrap","_callee$","_context","prev","next","t0","abrupt","success","findIndex","item","length","filter","type","warning","requestId","raw","sent","code","map","_objectSpread","error","stop","_x","_x2","apply","arguments","handleSuggestMessageClick","_item","m","handleActiveChange","key","handleDeleteSession","sessionId","handleUpdateSession","title","menuConfig","conversation","items","label","danger","onClick","menuInfo","domEvent","stopPropagation","inputValue","defaultValue","autoFocus","style","onChange","target","okText","cancelText","okButtonProps","background","borderColor","color","onOk","trim","Promise","reject","onCancel","okType","ToolTip","messageData","finalResult","think","find","actionName","_ref7","extra","cost","tokenCount","display","alignItems","fontSize","flex","paddingRight","undefined","clearBtnShow","session","showSessionList","theme","colorPrimary","appTheme","Provider","avatar","src","alt","userAvatar","emptyStateImage","emptyStateText","footerTips","sessionTotal","total","activeKey","inputShow","messageTooltip","messageActions","concat","_toConsumableArray","tooltip","render","i","msg","_i","_msg$raw","activeColor","onSubmit","_ref8","_callee2","formData","_yield$addFeedback2","_callee2$","_context2","_x3","onSend","onClear","onNewChat","onStop","menu","onActiveChange","onSuggestMessageClick","onMessagesActionsCallback","isInProvider","height","position"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle, useState, useRef, useEffect } from 'react';\nimport { message, Divider, Modal, Input, ConfigProvider } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport type { ConversationsProps } from '@ant-design/x';\nimport { ExclamationCircleFilled, LikeFilled, LikeOutlined } from '@ant-design/icons';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport { MOBILE_MAX_WIDTH, API_SUCCESS_CODE } from '@/constants';\nimport userIcon from '@/assets/user.png';\nimport { primaryBlue } from '@/styles/common';\nimport DislikeFeedback from '../DislikeFeedback';\nimport { addFeedback } from '@/services/api';\nimport { defaultActions } from '../XAiChatbot';\nimport type { SendContent } from '@/types';\n\nconst { confirm } = Modal;\n\nconst XAiProvider = forwardRef<XAiProviderHandle, XAiProviderProps>(({\n url = window.location.origin,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n onMessage,\n children,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n\n const { textSpeed = 55 } = config?.chatProps || {};\n\n const {\n appInfo,\n chat,\n stopChat,\n reChat,\n createNewChat,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n setCurrentSession,\n setMessages,\n } = useAgentGenerator({ url, token, config, onError, onSuccess, onMessage, textSpeed });\n\n const { appName, icon } = appInfo || {};\n\n useImperativeHandle(ref, () => ({\n chat,\n stopChat,\n reChat,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSession,\n }), [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSession]);\n\n const [isNarrow, setIsNarrow] = useState<boolean>(false);\n const divRef = useRef<HTMLDivElement>(null);\n\n // 监听容器宽度变化\n useEffect(() => {\n const div = divRef.current;\n if (!div) return;\n\n // 创建监听器\n const resizeObserver = new ResizeObserver((entries) => {\n // eslint-disable-next-line no-restricted-syntax\n for (const entry of entries) {\n const { width } = entry.contentRect;\n setIsNarrow(width <= MOBILE_MAX_WIDTH);\n }\n });\n\n // 开始监听\n resizeObserver.observe(div);\n\n // 初始化检查\n const initialWidth = div.offsetWidth;\n setIsNarrow(initialWidth <= MOBILE_MAX_WIDTH);\n\n // 清理函数\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n // 发送消息\n const handleSendMessage = (content: SendContent) => {\n chat(content);\n };\n\n // 清空消息\n const handleCreateNewMessage = () => {\n createNewChat();\n };\n\n // 工具栏按钮点击\n const handleActions = async (index: number, actionData: any) => {\n const { content, id } = actionData || {};\n const { text = '' } = content;\n switch (index) {\n case 0:\n reChat();\n break;\n case 1:\n copy(text);\n message.success('复制成功');\n break;\n case 2: {\n const idx = messages.findIndex((item) => item.id === id);\n if (idx >= 0) {\n // 删除该条消息及建议类消息\n if (messages.length - idx <= 2) {\n setMessages((prev) => prev.filter((item) => item.id !== id && item.type !== 'SuggestionMessage'));\n } else {\n // 非最新消息 只删除该条消息\n setMessages((prev) => prev.filter((item) => item.id !== id));\n }\n message.success('删除成功');\n }\n break;\n }\n case 3: {\n const { appNo } = config || {};\n const isLike = actionData.isLike ?? 0;\n if (isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (appNo) {\n const { result } = await addFeedback({\n url,\n token,\n appNo,\n requestId: actionData.raw?.requestId,\n isLike: 1,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('感谢您的反馈');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === id) {\n return {\n ...item,\n isLike: 1,\n };\n }\n return item;\n });\n });\n } else {\n message.error('反馈失败,请稍后再试');\n }\n }\n break;\n }\n }\n };\n\n // 建议消息点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev: any[]) => prev.filter((m: any) => m.id !== id));\n };\n\n // 切换会话\n const handleActiveChange = (key: string) => {\n setCurrentSession(key);\n };\n\n // 删除会话\n const handleDeleteSession = (sessionId: string) => {\n deleteSession(sessionId);\n };\n\n // 修改会话内容\n const handleUpdateSession = (sessionId: string, title: string) => {\n updateSession(sessionId, title);\n };\n\n // 会话操作菜单\n const menuConfig: ConversationsProps['menu'] = (conversation) => ({\n items: [\n {\n label: '重命名',\n key: 'edit',\n },\n {\n label: '删除',\n key: 'delete',\n danger: true,\n },\n ],\n onClick: (menuInfo) => {\n menuInfo.domEvent.stopPropagation();\n const { key } = menuInfo;\n switch (key) {\n case 'edit': {\n let inputValue = conversation.label as string || '';\n confirm({\n title: '编辑对话名称',\n icon: null,\n content: (\n <Input\n defaultValue={inputValue}\n autoFocus\n style={{ width: '100%' }}\n onChange={(e) => {\n inputValue = e.target.value;\n }}\n />\n ),\n okText: '确认',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#000', borderColor: '#000', color: '#fff' },\n },\n onOk: () => {\n if (!inputValue.trim()) {\n message.error('对话名称不能为空');\n return Promise.reject();\n }\n handleUpdateSession(conversation.key, inputValue);\n },\n onCancel: () => {\n // 静默处理\n },\n });\n break;\n }\n case 'delete':\n confirm({\n title: '确认删除?',\n icon: <ExclamationCircleFilled />,\n content: '该对话内容将被删除无法恢复。',\n okText: '确认删除',\n okType: 'danger',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#ff4d4f', borderColor: '#ff4d4f', color: '#fff' },\n },\n onOk() {\n handleDeleteSession(conversation.key);\n },\n onCancel() {\n //\n },\n });\n break;\n }\n },\n });\n\n const ToolTip = (messageData: any) => {\n const finalResult = (messageData?.think || []).find((item: any) => item.actionName === 'FINISHED');\n if (!finalResult) return null;\n const { cost, token: tokenCount } = finalResult.extra || {};\n if (!cost && !token) return null;\n return (\n <div style={{ display: 'flex', alignItems: 'center', fontSize: '12px', color: '#949494', flex: 1, paddingRight: '40px' }}>\n { (cost !== undefined && cost !== null) && <div>{cost}s</div> }\n { tokenCount && <Divider type=\"vertical\" /> }\n { tokenCount && <div>{ tokenCount } tokens</div> }\n </div>\n );\n };\n // 是否展示清空按钮\n const clearBtnShow = typeof config?.chatProps?.clearBtnShow !== 'undefined'\n ? config.chatProps.clearBtnShow\n : !config?.session?.showSessionList;\n\n return (\n <ConfigProvider theme={{\n token: {\n colorPrimary: appInfo?.appTheme || primaryBlue,\n },\n }}\n >\n <XProvider>\n <XAiContext.Provider value={{\n avatar: <img src={icon} alt=\"智能体头像\" />,\n userAvatar: <img src={userIcon} alt=\"用户头像\" />,\n emptyStateImage: icon,\n emptyStateText: appName,\n footerTips: '内容由AI生成,无法确保真实准确,仅供参考',\n providerId,\n sessionList,\n sessionTotal: sessionPagination.total,\n token,\n messages,\n loading,\n error: null,\n activeKey: currentSessionId,\n clearBtnShow,\n inputShow: config?.chatProps?.inputShow || true,\n isNarrow,\n messageTooltip: ToolTip,\n messageActions: [...defaultActions, {\n key: 'like',\n tooltip: '赞',\n render: (i, msg) => {\n const isLike = msg.isLike === 1;\n if (isLike) {\n return (\n <LikeFilled style={{ color: appInfo?.appTheme || primaryBlue }} />\n );\n }\n return <LikeOutlined />;\n },\n }, {\n key: 'dislike',\n tooltip: '踩',\n render: (_i, msg) => {\n const requestId = msg.raw?.requestId;\n return (\n <DislikeFeedback\n msg={msg}\n activeColor={appInfo?.appTheme || primaryBlue}\n onSubmit={async (formData) => {\n const { result } = await addFeedback({\n ...formData,\n requestId,\n isLike: -1,\n url,\n appNo: config?.appNo,\n token,\n });\n if (result?.code === API_SUCCESS_CODE) {\n message.success('已收到您的反馈,我们会努力做的更好');\n setMessages((prev) => {\n return prev.map((item) => {\n if (item.id === msg.id) {\n return {\n ...item,\n isLike: -1,\n };\n }\n return item;\n });\n });\n return true;\n }\n message.error('反馈失败,请稍后再试');\n return false;\n }}\n />\n );\n },\n }],\n onSend: handleSendMessage,\n onClear: handleCreateNewMessage,\n onNewChat: handleCreateNewMessage,\n onStop: stopChat,\n menu: menuConfig,\n onActiveChange: handleActiveChange,\n onSuggestMessageClick: handleSuggestMessageClick,\n onMessagesActionsCallback: handleActions,\n isInProvider: true,\n }}\n >\n <div\n ref={divRef}\n style={{\n display: 'flex',\n height: '100%',\n position: 'relative',\n }}\n >\n {children}\n </div>\n </XAiContext.Provider>\n </XProvider>\n </ConfigProvider>\n );\n});\n\nexport default XAiProvider;\n"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ onError, onMessage, onSuccess, onStream, }: DebugOptions): {
|
|
|
27
27
|
deleteSession: (sessionId: string) => Promise<void>;
|
|
28
28
|
updateSession: (sessionId: string, title: string) => Promise<void>;
|
|
29
29
|
setSuggestedQuestions: import("react").Dispatch<import("react").SetStateAction<string[]>>;
|
|
30
|
-
|
|
30
|
+
setCurrentSession: (sessionId: string) => Promise<void>;
|
|
31
31
|
setMessages: import("react").Dispatch<import("react").SetStateAction<IMessage[]>>;
|
|
32
32
|
storeEvents: (part: Part | null, event: any) => void;
|
|
33
33
|
storeMessage: (part: Part | null, event: Event, role: "user" | "bot") => void;
|
|
@@ -35,5 +35,6 @@ onError, onMessage, onSuccess, onStream, }: DebugOptions): {
|
|
|
35
35
|
feedbackTags?: string;
|
|
36
36
|
feedbackDescription?: string;
|
|
37
37
|
}) => Promise<boolean>;
|
|
38
|
+
setStateDelta: (delta: Record<string, any> | undefined) => void;
|
|
38
39
|
};
|
|
39
40
|
export default useADKChat;
|
|
@@ -109,6 +109,8 @@ function useADKChat(_ref) {
|
|
|
109
109
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
110
110
|
messages = _useState18[0],
|
|
111
111
|
setMessages = _useState18[1];
|
|
112
|
+
// 用户自定义业务参数 (stateDelta),每次发送请求时携带
|
|
113
|
+
var stateDeltaRef = useRef(undefined);
|
|
112
114
|
var mergedMessages = useMemo(function () {
|
|
113
115
|
var fnResMap = {};
|
|
114
116
|
messages.forEach(function (msg) {
|
|
@@ -350,6 +352,13 @@ function useADKChat(_ref) {
|
|
|
350
352
|
case 0:
|
|
351
353
|
if (response.ok && response.headers.get("content-type") === EventStreamContentType) {
|
|
352
354
|
// everything's good
|
|
355
|
+
} else if (response.status === 401 || response.status === 403) {
|
|
356
|
+
setLoading(false);
|
|
357
|
+
onError === null || onError === void 0 || onError({
|
|
358
|
+
code: ErrorCode.API_ERROR,
|
|
359
|
+
message: response.status === 401 ? "认证失败,token 无效或已过期" : "无权限访问该资源"
|
|
360
|
+
});
|
|
361
|
+
resolve();
|
|
353
362
|
} else if (response.status >= 400 && response.status < 500 && response.status !== 429) {
|
|
354
363
|
resolve();
|
|
355
364
|
} else {
|
|
@@ -485,7 +494,7 @@ function useADKChat(_ref) {
|
|
|
485
494
|
return temp;
|
|
486
495
|
});
|
|
487
496
|
_context2.next = 9;
|
|
488
|
-
return sendMessageRequest({
|
|
497
|
+
return sendMessageRequest(_objectSpread({
|
|
489
498
|
stream: true,
|
|
490
499
|
sessionId: currentSessionId,
|
|
491
500
|
content: {
|
|
@@ -506,7 +515,9 @@ function useADKChat(_ref) {
|
|
|
506
515
|
mimeType: file.mimeType || ((_file$response9 = file.response) === null || _file$response9 === void 0 ? void 0 : _file$response9.mimeType)
|
|
507
516
|
};
|
|
508
517
|
})
|
|
509
|
-
}
|
|
518
|
+
}, stateDeltaRef.current !== undefined && {
|
|
519
|
+
stateDelta: stateDeltaRef.current
|
|
520
|
+
}));
|
|
510
521
|
case 9:
|
|
511
522
|
// 获取聊天记录
|
|
512
523
|
initAppConversations();
|
|
@@ -545,7 +556,7 @@ function useADKChat(_ref) {
|
|
|
545
556
|
text = _lastUserMessage$text === void 0 ? "" : _lastUserMessage$text,
|
|
546
557
|
_lastUserMessage$file = lastUserMessage.fileData,
|
|
547
558
|
fileData = _lastUserMessage$file === void 0 ? [] : _lastUserMessage$file;
|
|
548
|
-
sendMessageRequest({
|
|
559
|
+
sendMessageRequest(_objectSpread({
|
|
549
560
|
stream: true,
|
|
550
561
|
sessionId: currentSessionId,
|
|
551
562
|
content: {
|
|
@@ -561,7 +572,9 @@ function useADKChat(_ref) {
|
|
|
561
572
|
mimeType: file.mimeType
|
|
562
573
|
};
|
|
563
574
|
})
|
|
564
|
-
}
|
|
575
|
+
}, stateDeltaRef.current !== undefined && {
|
|
576
|
+
stateDelta: stateDeltaRef.current
|
|
577
|
+
}));
|
|
565
578
|
}
|
|
566
579
|
return newMessages;
|
|
567
580
|
});
|
|
@@ -720,7 +733,7 @@ function useADKChat(_ref) {
|
|
|
720
733
|
};
|
|
721
734
|
|
|
722
735
|
// 设置当前会话详情
|
|
723
|
-
var
|
|
736
|
+
var setCurrentSession = /*#__PURE__*/function () {
|
|
724
737
|
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(sessionId) {
|
|
725
738
|
var _yield$fetchSessionDe, data, result, _appInfo$onboardingIn3, _appInfo$onboardingIn4;
|
|
726
739
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
@@ -768,7 +781,7 @@ function useADKChat(_ref) {
|
|
|
768
781
|
}
|
|
769
782
|
}, _callee3);
|
|
770
783
|
}));
|
|
771
|
-
return function
|
|
784
|
+
return function setCurrentSession(_x2) {
|
|
772
785
|
return _ref5.apply(this, arguments);
|
|
773
786
|
};
|
|
774
787
|
}();
|
|
@@ -827,7 +840,7 @@ function useADKChat(_ref) {
|
|
|
827
840
|
});
|
|
828
841
|
_data$ = data === null || data === void 0 ? void 0 : data[0], sessionId = _data$.sessionId;
|
|
829
842
|
if (showFirstSession) {
|
|
830
|
-
|
|
843
|
+
setCurrentSession(sessionId);
|
|
831
844
|
} else {
|
|
832
845
|
fetchDetail && setPrologue((appInfo === null || appInfo === void 0 || (_appInfo$onboardingIn5 = appInfo.onboardingInfo) === null || _appInfo$onboardingIn5 === void 0 ? void 0 : _appInfo$onboardingIn5.prologue) || "");
|
|
833
846
|
fetchDetail && setSuggestedQuestions((appInfo === null || appInfo === void 0 || (_appInfo$onboardingIn6 = appInfo.onboardingInfo) === null || _appInfo$onboardingIn6 === void 0 ? void 0 : _appInfo$onboardingIn6.suggested_questions) || []);
|
|
@@ -853,20 +866,24 @@ function useADKChat(_ref) {
|
|
|
853
866
|
setPrologue("");
|
|
854
867
|
setSuggestedQuestions([]);
|
|
855
868
|
}
|
|
856
|
-
_context4.next =
|
|
869
|
+
_context4.next = 16;
|
|
857
870
|
break;
|
|
858
871
|
case 13:
|
|
859
872
|
_context4.prev = 13;
|
|
860
873
|
_context4.t0 = _context4["catch"](1);
|
|
861
|
-
|
|
862
|
-
|
|
874
|
+
onError === null || onError === void 0 || onError({
|
|
875
|
+
code: ErrorCode.API_ERROR,
|
|
876
|
+
message: "获取会话列表失败"
|
|
877
|
+
});
|
|
878
|
+
case 16:
|
|
879
|
+
_context4.prev = 16;
|
|
863
880
|
setLoading(false);
|
|
864
|
-
return _context4.finish(
|
|
865
|
-
case
|
|
881
|
+
return _context4.finish(16);
|
|
882
|
+
case 19:
|
|
866
883
|
case "end":
|
|
867
884
|
return _context4.stop();
|
|
868
885
|
}
|
|
869
|
-
}, _callee4, null, [[1, 13,
|
|
886
|
+
}, _callee4, null, [[1, 13, 16, 19]]);
|
|
870
887
|
}));
|
|
871
888
|
return function initAppConversations() {
|
|
872
889
|
return _ref6.apply(this, arguments);
|
|
@@ -1097,11 +1114,14 @@ function useADKChat(_ref) {
|
|
|
1097
1114
|
deleteSession: deleteSession,
|
|
1098
1115
|
updateSession: updateSession,
|
|
1099
1116
|
setSuggestedQuestions: setSuggestedQuestions,
|
|
1100
|
-
|
|
1117
|
+
setCurrentSession: setCurrentSession,
|
|
1101
1118
|
setMessages: setMessages,
|
|
1102
1119
|
storeEvents: storeEvents,
|
|
1103
1120
|
storeMessage: storeMessage,
|
|
1104
|
-
likeMessage: likeMessage
|
|
1121
|
+
likeMessage: likeMessage,
|
|
1122
|
+
setStateDelta: function setStateDelta(delta) {
|
|
1123
|
+
stateDeltaRef.current = delta;
|
|
1124
|
+
}
|
|
1105
1125
|
};
|
|
1106
1126
|
}
|
|
1107
1127
|
export default useADKChat;
|