@ai-group/chat-sdk 2.1.1 → 2.1.4
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/XAdkChatbot/components/FunctionCallRender/index.d.ts +2 -2
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +3 -4
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/index.js +66 -99
- package/dist/cjs/components/XAdkChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.d.ts +6 -0
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.js +119 -0
- package/dist/cjs/components/XAdkSender/XAdkSender.stories.js.map +7 -0
- package/dist/cjs/components/XAdkSender/index.d.ts +4 -0
- package/dist/cjs/components/XAdkSender/index.js +430 -0
- package/dist/cjs/components/XAdkSender/index.js.map +7 -0
- package/dist/cjs/components/XAdkSender/styles.d.ts +56 -0
- package/dist/cjs/components/XAdkSender/styles.js +340 -0
- package/dist/cjs/components/XAdkSender/styles.js.map +7 -0
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +5 -5
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +2 -2
- package/dist/cjs/components/XAdkWebProvider/index.js +12 -6
- package/dist/cjs/components/XAdkWebProvider/index.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +1 -1
- package/dist/cjs/components/XAiConversations/index.js.map +2 -2
- package/dist/cjs/components/XAiConversations/styles.d.ts +1 -0
- package/dist/cjs/components/XAiConversations/styles.js +3 -0
- package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +1 -1
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +2 -2
- package/dist/cjs/components/XAiSender/index.js +17 -35
- package/dist/cjs/components/XAiSender/index.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.d.ts +7 -16
- package/dist/cjs/hooks/useADKChat.js +115 -32
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/hooks/useAgentGenerator.js +1 -1
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/services/api.d.ts +5 -5
- package/dist/cjs/services/api.js +6 -9
- package/dist/cjs/services/api.js.map +2 -2
- package/dist/cjs/types/XAdkChatbot.d.ts +21 -3
- package/dist/cjs/types/XAdkChatbot.js.map +1 -1
- package/dist/cjs/types/XAdkProvider.d.ts +35 -9
- package/dist/cjs/types/XAdkProvider.js.map +1 -1
- package/dist/cjs/types/XAdkSender.d.ts +49 -0
- package/dist/cjs/types/XAdkSender.js +18 -0
- package/dist/cjs/types/XAdkSender.js.map +7 -0
- package/dist/cjs/types/XAiProvider.d.ts +1 -28
- package/dist/cjs/types/XAiProvider.js.map +2 -2
- package/dist/cjs/types/XAiSender.d.ts +2 -0
- package/dist/cjs/types/XAiSender.js.map +1 -1
- package/dist/cjs/types/common.d.ts +6 -0
- package/dist/cjs/types/common.js +18 -0
- package/dist/cjs/types/common.js.map +7 -0
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/index.js +5 -1
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/chat.d.ts +1 -1
- package/dist/cjs/utils/umdEntry.d.ts +9 -9
- package/dist/cjs/utils/umdEntry.js +1 -0
- package/dist/cjs/utils/umdEntry.js.map +2 -2
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +2 -2
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +3 -3
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/index.js +80 -126
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkSender/XAdkSender.stories.d.ts +6 -0
- package/dist/esm/components/XAdkSender/XAdkSender.stories.js +126 -0
- package/dist/esm/components/XAdkSender/XAdkSender.stories.js.map +1 -0
- package/dist/esm/components/XAdkSender/index.d.ts +4 -0
- package/dist/esm/components/XAdkSender/index.js +589 -0
- package/dist/esm/components/XAdkSender/index.js.map +1 -0
- package/dist/esm/components/XAdkSender/styles.d.ts +56 -0
- package/dist/esm/components/XAdkSender/styles.js +50 -0
- package/dist/esm/components/XAdkSender/styles.js.map +1 -0
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +10 -11
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -1
- package/dist/esm/components/XAdkWebProvider/index.js +25 -10
- package/dist/esm/components/XAdkWebProvider/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +1 -0
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.d.ts +1 -0
- package/dist/esm/components/XAiConversations/styles.js +15 -14
- package/dist/esm/components/XAiConversations/styles.js.map +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.js +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -1
- package/dist/esm/components/XAiSender/index.js +16 -22
- package/dist/esm/components/XAiSender/index.js.map +1 -1
- package/dist/esm/hooks/useADKChat.d.ts +7 -16
- package/dist/esm/hooks/useADKChat.js +212 -88
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.js +1 -1
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/services/api.d.ts +5 -5
- package/dist/esm/services/api.js +8 -11
- package/dist/esm/services/api.js.map +1 -1
- package/dist/esm/types/XAdkChatbot.d.ts +21 -3
- package/dist/esm/types/XAdkChatbot.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +35 -9
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAdkSender.d.ts +49 -0
- package/dist/esm/types/XAdkSender.js +2 -0
- package/dist/esm/types/XAdkSender.js.map +1 -0
- package/dist/esm/types/XAiProvider.d.ts +1 -28
- package/dist/esm/types/XAiProvider.js +0 -7
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/types/XAiSender.d.ts +2 -0
- package/dist/esm/types/XAiSender.js.map +1 -1
- package/dist/esm/types/common.d.ts +6 -0
- package/dist/esm/types/common.js +2 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/chat.d.ts +1 -1
- package/dist/esm/utils/chat.js +4 -4
- package/dist/esm/utils/chat.js.map +1 -1
- package/dist/esm/utils/umdEntry.d.ts +9 -9
- package/dist/esm/utils/umdEntry.js +1 -1
- 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","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","
|
|
1
|
+
{"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","conversationsWrapper","_templateObject3","capWrapper","_templateObject4","capShape","_templateObject5","capIcon","_templateObject6","addChatBtn","_templateObject7","tipTitle","_templateObject8","fWrapper","_templateObject9","nWrapper","_templateObject10","mask","_templateObject11","fheaderWrapper","_templateObject12","scrollList","_templateObject13","slideIn","_templateObject14","slideOut","_templateObject15","GlobalStyle","styles","_templateObject16"],"sources":["../../../../src/components/XAiConversations/styles.tsx"],"sourcesContent":["import React from 'react';\nimport { css, keyframes } from '@emotion/css';\nimport { css as globalCss, Global } from '@emotion/react';\nimport { withBasicStyles } from '@/styles/common';\n\nconst primaryBlue = '#0078FF'; // 主蓝色\nconst lightBlue = '#E6F0FF'; // 浅蓝色气泡背景\nconst darkGray = '#333'; // 深灰色文本\nconst lightGray = '#888'; // 浅灰文本\nconst borderGray = '#ddd'; // 边框灰色\n\nconst slideInRight = keyframes`\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n`;\n\nconst slideOutRight = keyframes`\n from { transform: translateX(0); opacity: 1; }\n to { transform: translateX(-100%); opacity: 0; }\n`;\n\nexport const useStyles = withBasicStyles(() => ({\n // 静态样式\n conversationsWrapper: css`\n overflow: hidden;\n `,\n\n capWrapper: css`\n padding: 12px 16px;\n display: flex;\n align-items: center;\n `,\n\n capShape: css`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 40px;\n margin-left: 16px;\n background: #FFFFFF;\n box-shadow: 0px 4px 16px 0px rgba(127,135,166,0.08);\n border-radius: 24px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n transition: box-shadow 0.2s, border-color 0.2s;\n cursor: pointer;\n /* &:hover {\n box-shadow: 0px 4px 24px 0px rgba(127,135,166,0.16);\n border-color: ${primaryBlue};\n } */\n `,\n\n capIcon: css`\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n\n img {\n width: 17px;\n }\n\n &:hover {\n background: #F2F2F2;\n border-radius: 50%;\n }\n `,\n\n addChatBtn: css`\n width: 256px;\n height: 40px;\n margin: 17px auto 24px;\n background: #FFFFFF;\n border-radius: 20px;\n border: 1px solid #E7E7E7;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #343434;\n\n &:hover {\n color: #3961F2;\n }\n\n &:active {\n color: #0A3BEE;\n }\n `,\n\n tipTitle: css`\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n `,\n\n fWrapper: css`\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n position: relative;\n `,\n\n nWrapper: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 280px;\n height: 100%;\n z-index: 1000;\n transition: left 0.3s ease;\n background: #F8FBFF;\n padding: 16px 0 13px;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n `,\n\n mask: css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.15);\n z-index: 999;\n cursor: pointer;\n `,\n\n fheaderWrapper: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n `,\n\n scrollList: css`\n max-height: calc(100vh - 120px); /* 120px为头部高度,可根据实际调整 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* 隐藏滚动条(Chrome, Edge, Safari) */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* 隐藏滚动条(Firefox) */\n scrollbar-width: none;\n\n /* 隐藏滚动条(IE/Edge) */\n -ms-overflow-style: none;\n `,\n\n slideIn: css`\n animation: ${slideInRight} 0.3s forwards;\n `,\n slideOut: css`\n animation: ${slideOutRight} 0.3s forwards;\n `,\n\n}));\n\nexport const GlobalStyle: React.FC = () => (\n <Global\n styles={globalCss`\n .ant-conversations .ant-conversations-item-active {\n background: rgba(57,97,242,0.08);\n }\n\n .ant-conversations .ant-conversations-item-active .ant-conversations-label {\n color: #3961F2;\n }\n `}\n />\n);\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,SAAS,QAAQ,cAAc;AAC7C,SAASD,GAAG,IAAIE,SAAS,EAAEC,MAAM,QAAQ,gBAAgB;AACzD,SAASC,eAAe;AAA0B,SAAAC,GAAA,IAAAC,IAAA;AAElD,IAAMC,WAAW,GAAG,SAAS,CAAC,CAAC;AAC/B,IAAMC,SAAS,GAAG,SAAS,CAAC,CAAG;AAC/B,IAAMC,QAAQ,GAAG,MAAM,CAAC,CAAQ;AAChC,IAAMC,SAAS,GAAG,MAAM,CAAC,CAAO;AAChC,IAAMC,UAAU,GAAG,MAAM,CAAC,CAAM;;AAEhC,IAAMC,YAAY,GAAGX,SAAS,CAAAY,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gHAG7B;AAED,IAAMC,aAAa,GAAGd,SAAS,CAAAe,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,gHAG9B;AAED,OAAO,IAAMG,SAAS,GAAGb,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAc,oBAAoB,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,mCAExB;IAEDM,UAAU,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAP,sBAAA,mFAId;IAEDQ,QAAQ,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,+fAgBOP,WAAW,CAE9B;IAEDiB,OAAO,EAAExB,GAAG,CAAAyB,gBAAA,KAAAA,gBAAA,GAAAX,sBAAA,0QAgBX;IAEDY,UAAU,EAAE1B,GAAG,CAAA2B,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,sZAqBd;IAEDc,QAAQ,EAAE5B,GAAG,CAAA6B,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,gFAIZ;IAEDgB,QAAQ,EAAE9B,GAAG,CAAA+B,gBAAA,KAAAA,gBAAA,GAAAjB,sBAAA,6JAOZ;IAEDkB,QAAQ,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAAnB,sBAAA,+PAWZ;IAEDoB,IAAI,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAArB,sBAAA,sLASR;IAEDsB,cAAc,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAvB,sBAAA,4HAKlB;IAEDwB,UAAU,EAAEtC,GAAG,CAAAuC,iBAAA,KAAAA,iBAAA,GAAAzB,sBAAA,+jBAkBd;IAED0B,OAAO,EAAExC,GAAG,CAAAyC,iBAAA,KAAAA,iBAAA,GAAA3B,sBAAA,iDACGF,YAAY,CAC1B;IACD8B,QAAQ,EAAE1C,GAAG,CAAA2C,iBAAA,KAAAA,iBAAA,GAAA7B,sBAAA,iDACEC,aAAa;EAG9B,CAAC;AAAA,CAAC,CAAC;AAEH,OAAO,IAAM6B,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA;EAAA,oBAChCtC,IAAA,CAACH,MAAM;IACL0C,MAAM,EAAE3C,SAAS,CAAA4C,iBAAA,KAAAA,iBAAA,GAAAhC,sBAAA;EAQf,CACH,CAAC;AAAA,CACH"}
|
|
@@ -39,8 +39,8 @@ var BasicUsageStory = function BasicUsageStory() {
|
|
|
39
39
|
|
|
40
40
|
// 模拟快捷短语点击
|
|
41
41
|
var handleSendMessage = function handleSendMessage(obj) {
|
|
42
|
+
console.log(obj);
|
|
42
43
|
setLoading(true);
|
|
43
|
-
console.info(obj);
|
|
44
44
|
setTimeout(function () {
|
|
45
45
|
setContent('');
|
|
46
46
|
setFiles([]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","files","setFiles","_useState3","_useState4","content","setContent","_useState5","_useState6","loading","setLoading","handleClear","console","info","handleChange","text","handleSendMessage","obj","setTimeout","style","width","border","padding","children","value","enableUpload","onChangeFiles","uploadRequest","_ref","file","onProgress","onSuccess","percent","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render","args"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport type { Attachment } from '@ant-design/x/es/attachments';\nimport XAiSender from '.';\n\nconst meta: Meta<typeof XAiSender> = {\n title: 'AI组件/XAiSender 输入框',\n component: XAiSender,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [files, setFiles] = useState<Attachment[]>([]);\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.info('clear');\n };\n\n // 模拟输入\n const handleChange = (text: string) => {\n setContent(text);\n };\n\n // 模拟快捷短语点击\n const handleSendMessage = (obj: any) => {\n
|
|
1
|
+
{"version":3,"names":["React","useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","files","setFiles","_useState3","_useState4","content","setContent","_useState5","_useState6","loading","setLoading","handleClear","console","info","handleChange","text","handleSendMessage","obj","log","setTimeout","style","width","border","padding","children","value","enableUpload","onChangeFiles","uploadRequest","_ref","file","onProgress","onSuccess","percent","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render","args"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport type { Attachment } from '@ant-design/x/es/attachments';\nimport XAiSender from '.';\n\nconst meta: Meta<typeof XAiSender> = {\n title: 'AI组件/XAiSender 输入框',\n component: XAiSender,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [files, setFiles] = useState<Attachment[]>([]);\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.info('clear');\n };\n\n // 模拟输入\n const handleChange = (text: string) => {\n setContent(text);\n };\n\n // 模拟快捷短语点击\n const handleSendMessage = (obj: any) => {\n console.log(obj);\n setLoading(true);\n setTimeout(() => {\n setContent('');\n setFiles([]);\n setLoading(false);\n }, 2000);\n };\n\n return (\n <div style={{ width: 440, border: '1px solid #eee', padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\n enableUpload\n files={files}\n onChangeFiles={setFiles}\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n onClear={handleClear}\n onChange={handleChange}\n onSubmit={handleSendMessage}\n onStop={handleClear}\n footerTips=\"内容由AI生成,无法确保真实准确,仅供参考\"\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};\n"],"mappings":"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"}
|
|
@@ -2,10 +2,9 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
4
|
var _excluded = ["footerTips", "clearBtnShow", "value", "onChange", "onClear", "onStop", "onSubmit", "files", "enableUpload", "onChangeFiles", "uploadRequest", "loading", "disabled"];
|
|
5
|
-
// 文件: components/XAiSender/index.tsx
|
|
6
5
|
import React, { useRef, useState } from 'react';
|
|
7
6
|
import { Attachments, Sender } from '@ant-design/x';
|
|
8
|
-
import { Button,
|
|
7
|
+
import { Button, Popover, Space, Tooltip } from 'antd';
|
|
9
8
|
import { ArrowUpOutlined, ClearOutlined, PlusCircleOutlined } from '@ant-design/icons';
|
|
10
9
|
import clsx from 'clsx';
|
|
11
10
|
import { useChatbotContext } from "../../hooks/useProviderContext";
|
|
@@ -43,23 +42,14 @@ var XAiSender = function XAiSender(props) {
|
|
|
43
42
|
clearPopoverVisible = _useState2[0],
|
|
44
43
|
setClearPopoverVisible = _useState2[1]; // 气泡卡片显隐藏
|
|
45
44
|
var styles = useStyles();
|
|
46
|
-
var uploading = files === null || files === void 0 ? void 0 : files.some(function (file) {
|
|
47
|
-
return file.status === 'uploading';
|
|
48
|
-
});
|
|
49
45
|
|
|
50
46
|
// 触发发送
|
|
51
47
|
var handleSend = function handleSend() {
|
|
52
|
-
if (
|
|
53
|
-
message.warning('文件正在上传中');
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
var hasText = value && value.trim();
|
|
57
|
-
var hasFiles = files === null || files === void 0 ? void 0 : files.length;
|
|
58
|
-
if (hasText || hasFiles) {
|
|
48
|
+
if (value && value.trim()) {
|
|
59
49
|
// 直接使用合并后的 onSend,自动处理 Provider 和独立模式
|
|
60
50
|
onSubmit === null || onSubmit === void 0 || onSubmit({
|
|
61
51
|
text: value,
|
|
62
|
-
files: files
|
|
52
|
+
files: files || []
|
|
63
53
|
});
|
|
64
54
|
}
|
|
65
55
|
};
|
|
@@ -177,7 +167,7 @@ var XAiSender = function XAiSender(props) {
|
|
|
177
167
|
value: value,
|
|
178
168
|
className: styles.sendWrapper,
|
|
179
169
|
placeholder: "\u7EE7\u7EED\u5BF9\u8BDD...",
|
|
180
|
-
disabled: disabled
|
|
170
|
+
disabled: disabled,
|
|
181
171
|
loading: loading,
|
|
182
172
|
ref: senderRef,
|
|
183
173
|
header: enableUpload && /*#__PURE__*/_jsx(Sender.Header, {
|
|
@@ -193,12 +183,13 @@ var XAiSender = function XAiSender(props) {
|
|
|
193
183
|
ref: attachmentsRef,
|
|
194
184
|
customRequest: uploadRequest,
|
|
195
185
|
multiple: true,
|
|
196
|
-
items: files
|
|
197
|
-
imageProps
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}
|
|
186
|
+
items: files
|
|
187
|
+
// imageProps={{
|
|
188
|
+
// preview: {
|
|
189
|
+
// mask: true,
|
|
190
|
+
// },
|
|
191
|
+
// }}
|
|
192
|
+
,
|
|
202
193
|
onChange: function onChange(_ref2) {
|
|
203
194
|
var fileList = _ref2.fileList;
|
|
204
195
|
onChangeFiles === null || onChangeFiles === void 0 || onChangeFiles(fileList);
|
|
@@ -209,12 +200,15 @@ var XAiSender = function XAiSender(props) {
|
|
|
209
200
|
}
|
|
210
201
|
})
|
|
211
202
|
}),
|
|
212
|
-
|
|
213
|
-
var _info$components = info
|
|
203
|
+
suffix: function suffix(_, info) {
|
|
204
|
+
var _info$components = info.components,
|
|
214
205
|
SendButton = _info$components.SendButton,
|
|
215
206
|
LoadingButton = _info$components.LoadingButton;
|
|
216
207
|
return /*#__PURE__*/_jsxs(Space, {
|
|
217
208
|
size: "small",
|
|
209
|
+
style: {
|
|
210
|
+
paddingBottom: '5px'
|
|
211
|
+
},
|
|
218
212
|
children: [enableUpload && /*#__PURE__*/_jsxs(_Fragment, {
|
|
219
213
|
children: [uploadButton, /*#__PURE__*/_jsx("div", {
|
|
220
214
|
className: styles.divider
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","Attachments","Sender","Button","message","Popover","Space","Tooltip","ArrowUpOutlined","ClearOutlined","PlusCircleOutlined","clsx","useChatbotContext","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","_ref","footerTips","clearBtnShow","value","onChange","onClear","onStop","onSubmit","files","enableUpload","onChangeFiles","uploadRequest","_ref$loading","loading","propLoading","disabled","resetProps","_objectWithoutProperties","_excluded","senderRef","attachmentsRef","_useState","_useState2","_slicedToArray","clearPopoverVisible","setClearPopoverVisible","styles","uploading","some","file","status","handleSend","warning","hasText","trim","hasFiles","length","text","fileInputRef","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","color","variant","shape","icon","style","fontSize","current","_fileInputRef$current","click","ref","multiple","e","fileList","target","i","_attachmentsRef$curre","upload","display","accept","chatFooter","flex","gap","content","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","_objectSpread","sendWrapper","placeholder","header","Header","closable","forceRender","padding","customRequest","items","imageProps","preview","mask","_ref2","getDropContainer","_senderRef$current","nativeElement","footer","_origNode","info","_info$components","components","SendButton","LoadingButton","divider","stopButton","sendButton","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["// 文件: components/XAiSender/index.tsx\nimport React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Attachments,\n Sender,\n type AttachmentsProps\n} from '@ant-design/x';\nimport {\n Button,\n GetRef,\n message,\n Popover,\n Space,\n Tooltip,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n PlusCircleOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport { AttachmentsRef } from '@ant-design/x/es/attachments';\nimport {\n XAiSenderProps,\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n const {\n footerTips,\n clearBtnShow,\n value,\n onChange,\n onClear,\n onStop,\n onSubmit,\n files,\n enableUpload,\n onChangeFiles,\n uploadRequest,\n loading: propLoading = false,\n disabled,\n ...resetProps\n } = mergedProps as XAiSenderProps;\n const senderRef = useRef<GetRef<typeof Sender>>(null);\n const attachmentsRef = useRef<AttachmentsRef>(null);\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n const uploading = files?.some((file) => file.status === 'uploading');\n\n // 触发发送\n const handleSend = () => {\n if (uploading) {\n message.warning('文件正在上传中');\n return;\n }\n const hasText = value && value.trim();\n const hasFiles = files?.length;\n if (hasText || hasFiles) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.({\n text: value,\n files,\n });\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title=\"支持图片、文档等上传\"\n >\n <Button\n color=\"default\"\n variant=\"text\"\n shape=\"circle\"\n size=\"small\"\n icon={<PlusCircleOutlined style={{ fontSize: 20, color: '#949494' }} />}\n onClick={() => {\n if (fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n <input\n type=\"file\"\n ref={fileInputRef}\n multiple\n onChange={(e) => {\n const fileList = e.target.files || [];\n if (!fileList.length) return;\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n attachmentsRef.current?.upload(file);\n }\n e.target.value = '';\n }}\n style={{ display: 'none' }}\n accept=\"*/*\"\n />\n </Tooltip>\n </div>\n );\n\n return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n {clearBtnShow && (\n <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n style={{ border: '1px solid #E4E7EC', borderRadius: '50%', height: '35px', width: '35px' }}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(16)} />\n </div>\n </Popover>\n )}\n {/* 普通文本输入 */}\n <Sender\n {...resetProps}\n value={value}\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled || uploading}\n loading={loading}\n ref={senderRef}\n header={enableUpload && (\n <Sender.Header\n closable={false}\n forceRender\n open={!!files?.length}\n styles={{\n content: { padding: 0 },\n }}\n >\n <Attachments\n {...({\n ref: attachmentsRef,\n customRequest: uploadRequest,\n multiple: true,\n items: files,\n imageProps: {\n preview: { mask: true }\n },\n onChange: ({ fileList }) => {\n onChangeFiles?.(fileList);\n },\n getDropContainer: () => senderRef.current?.nativeElement,\n } as AttachmentsProps)}\n />\n </Sender.Header>\n )}\n footer={(_origNode, info) => {\n const { SendButton, LoadingButton } = info?.components;\n return (\n <Space size=\"small\">\n {enableUpload && (\n <>\n {uploadButton}\n <div className={styles.divider} />\n </>\n )}\n {loading\n ? (\n <LoadingButton\n onClick={() => onStop?.()}\n className={styles.stopButton}\n />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n );\n }}\n onChange={(v) => {\n onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Attachments","Sender","Button","Popover","Space","Tooltip","ArrowUpOutlined","ClearOutlined","PlusCircleOutlined","clsx","useChatbotContext","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","_ref","footerTips","clearBtnShow","value","onChange","onClear","onStop","onSubmit","files","enableUpload","onChangeFiles","uploadRequest","_ref$loading","loading","propLoading","disabled","resetProps","_objectWithoutProperties","_excluded","senderRef","attachmentsRef","_useState","_useState2","_slicedToArray","clearPopoverVisible","setClearPopoverVisible","styles","handleSend","trim","text","fileInputRef","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","color","variant","shape","icon","style","fontSize","current","_fileInputRef$current","click","ref","multiple","e","fileList","target","length","i","_attachmentsRef$curre","file","upload","display","accept","chatFooter","flex","gap","content","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","_objectSpread","sendWrapper","placeholder","header","Header","closable","forceRender","padding","customRequest","items","_ref2","getDropContainer","_senderRef$current","nativeElement","suffix","_","info","_info$components","components","SendButton","LoadingButton","paddingBottom","divider","stopButton","sendButton","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Attachments,\n Sender,\n} from '@ant-design/x';\nimport {\n Button,\n GetRef,\n Popover,\n Space,\n Tooltip,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n PlusCircleOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport { AttachmentsRef } from '@ant-design/x/es/attachments';\nimport {\n XAiSenderProps,\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n const {\n footerTips,\n clearBtnShow,\n value,\n onChange,\n onClear,\n onStop,\n onSubmit,\n files,\n enableUpload,\n onChangeFiles,\n uploadRequest,\n loading: propLoading = false,\n disabled,\n ...resetProps\n } = mergedProps as XAiSenderProps;\n const senderRef = useRef<GetRef<typeof Sender>>(null);\n const attachmentsRef = useRef<AttachmentsRef>(null);\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n\n // 触发发送\n const handleSend = () => {\n if (value && value.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.({\n text: value,\n files: files || [],\n });\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title=\"支持图片、文档等上传\"\n >\n <Button\n color=\"default\"\n variant=\"text\"\n shape=\"circle\"\n size=\"small\"\n icon={<PlusCircleOutlined style={{ fontSize: 20, color: '#949494' }} />}\n onClick={() => {\n if (fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n <input\n type=\"file\"\n ref={fileInputRef}\n multiple\n onChange={(e) => {\n const fileList = e.target.files || [];\n if (!fileList.length) return;\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n attachmentsRef.current?.upload(file);\n }\n e.target.value = '';\n }}\n style={{ display: 'none' }}\n accept=\"*/*\"\n />\n </Tooltip>\n </div>\n );\n\n return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n {clearBtnShow && (\n <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n style={{ border: '1px solid #E4E7EC', borderRadius: '50%', height: '35px', width: '35px' }}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(16)} />\n </div>\n </Popover>\n )}\n {/* 普通文本输入 */}\n <Sender\n {...resetProps}\n value={value}\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n ref={senderRef}\n header={enableUpload && (\n <Sender.Header\n closable={false}\n forceRender\n open={!!files?.length}\n styles={{\n content: { padding: 0 },\n }}\n >\n <Attachments\n ref={attachmentsRef}\n customRequest={uploadRequest}\n multiple\n items={files}\n // imageProps={{\n // preview: {\n // mask: true,\n // },\n // }}\n onChange={({ fileList }) => {\n onChangeFiles?.(fileList);\n }}\n getDropContainer={() => senderRef.current?.nativeElement}\n />\n </Sender.Header>\n )}\n suffix={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Space size=\"small\" style={{ paddingBottom: '5px' }}>\n {enableUpload && (\n <>\n {uploadButton}\n <div className={styles.divider} />\n </>\n )}\n {loading\n ? (\n <LoadingButton onClick={() => onStop?.()} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n );\n }}\n onChange={(v) => {\n onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;\n"],"mappings":"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"}
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
3
|
-
import type { Event, IMessage, Part } from "../types";
|
|
4
|
-
import { type Error, type Success, type SessionData } from "../types";
|
|
2
|
+
import { DebugOptions, FunctionCall, SendContent, SessionData, Event, IMessage, Part } from "../types";
|
|
5
3
|
import { type ChatConfig } from "../services/api";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
token: string;
|
|
11
|
-
type?: 'agentDebug' | 'appDebug';
|
|
12
|
-
onError?: (error: Error) => void;
|
|
13
|
-
onSuccess?: (data: Success) => void;
|
|
14
|
-
onMessage?: (content: string, data: Messages) => void;
|
|
15
|
-
}
|
|
16
|
-
declare function useADKChat({ url, token, config, type, onError, onMessage, onSuccess, }: DebugOptions): {
|
|
17
|
-
appInfo: ChatConfig;
|
|
18
|
-
startChat: (text: string) => Promise<void>;
|
|
4
|
+
declare function useADKChat({ url, token, config, type, onError, onMessage, onSuccess, onStream, }: DebugOptions): {
|
|
5
|
+
appInfo: ChatConfig | null;
|
|
6
|
+
startChat: ({ text, files, functionResponse }: SendContent) => Promise<void>;
|
|
7
|
+
reChat: () => void;
|
|
19
8
|
stopChat: () => void;
|
|
20
9
|
clearChat: () => void;
|
|
21
10
|
suggestChat: (text: string) => void;
|
|
11
|
+
confirmFnCall: (fnCall: FunctionCall, confirmed: boolean) => void;
|
|
12
|
+
initialized: boolean;
|
|
22
13
|
currentSessionId: string;
|
|
23
14
|
sessionList: SessionData[];
|
|
24
15
|
prologue: string;
|