@ai-group/chat-sdk 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/add-chat.svg +13 -0
- package/dist/cjs/assets/flash-open.svg +14 -0
- package/dist/cjs/assets/logo.png +0 -0
- package/dist/cjs/assets/svg/AddChatIcon.d.ts +3 -0
- package/dist/cjs/assets/svg/AddChatIcon.js +38 -0
- package/dist/cjs/assets/svg/AddChatIcon.js.map +7 -0
- package/dist/cjs/components/XAiChatbot/index.js +2 -1
- package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/styles.js +1 -1
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +61 -27
- package/dist/cjs/components/XAiConversations/index.js.map +3 -3
- package/dist/cjs/components/XAiConversations/styles.d.ts +45 -0
- package/dist/cjs/components/XAiConversations/styles.js +177 -0
- package/dist/cjs/components/XAiConversations/styles.js.map +7 -0
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +9 -6
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
- package/dist/cjs/components/XAiProvider/index.js +96 -12
- package/dist/cjs/components/XAiProvider/index.js.map +3 -3
- package/dist/cjs/constants/index.d.ts +1 -0
- package/dist/cjs/constants/index.js +30 -0
- package/dist/cjs/constants/index.js.map +7 -0
- package/dist/cjs/hooks/useAgentGenerator.d.ts +5 -2
- package/dist/cjs/hooks/useAgentGenerator.js +53 -50
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/services/api.d.ts +23 -0
- package/dist/cjs/services/api.js +35 -2
- package/dist/cjs/services/api.js.map +2 -2
- package/dist/cjs/types/XAiChatbot.d.ts +2 -0
- package/dist/cjs/types/XAiChatbot.js.map +1 -1
- package/dist/cjs/types/XAiConversations.d.ts +2 -0
- package/dist/cjs/types/XAiConversations.js.map +1 -1
- package/dist/cjs/types/XAiMessage.js.map +2 -2
- package/dist/cjs/types/XAiProvider.d.ts +20 -2
- package/dist/cjs/types/XAiProvider.js.map +2 -2
- package/dist/cjs/utils/umdEntry.d.ts +2 -1
- package/dist/cjs/utils/umdEntry.js +3 -2
- package/dist/cjs/utils/umdEntry.js.map +2 -2
- package/dist/esm/assets/add-chat.svg +13 -0
- package/dist/esm/assets/flash-open.svg +14 -0
- package/dist/esm/assets/logo.png +0 -0
- package/dist/esm/assets/svg/AddChatIcon.d.ts +3 -0
- package/dist/esm/assets/svg/AddChatIcon.js +40 -0
- package/dist/esm/assets/svg/AddChatIcon.js.map +1 -0
- package/dist/esm/components/XAiChatbot/index.js +3 -1
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.js +1 -1
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +129 -47
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.d.ts +45 -0
- package/dist/esm/components/XAiConversations/styles.js +36 -0
- package/dist/esm/components/XAiConversations/styles.js.map +1 -0
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js +26 -27
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
- package/dist/esm/components/XAiProvider/index.js +119 -14
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/constants/index.d.ts +1 -0
- package/dist/esm/constants/index.js +3 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/hooks/useAgentGenerator.d.ts +5 -2
- package/dist/esm/hooks/useAgentGenerator.js +124 -97
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/services/api.d.ts +23 -0
- package/dist/esm/services/api.js +73 -0
- package/dist/esm/services/api.js.map +1 -1
- package/dist/esm/types/XAiChatbot.d.ts +2 -0
- package/dist/esm/types/XAiChatbot.js.map +1 -1
- package/dist/esm/types/XAiConversations.d.ts +2 -0
- package/dist/esm/types/XAiConversations.js.map +1 -1
- package/dist/esm/types/XAiMessage.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +20 -2
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/utils/umdEntry.d.ts +2 -1
- package/dist/esm/utils/umdEntry.js +9 -8
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -1,68 +1,150 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
-
import React, { useState
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
4
|
import { Conversations } from '@ant-design/x';
|
|
5
5
|
import { RedoOutlined } from '@ant-design/icons';
|
|
6
|
-
import { Spin } from 'antd';
|
|
6
|
+
import { Spin, Divider } from 'antd';
|
|
7
7
|
import { useChatbotContext } from "../../hooks/useProviderContext";
|
|
8
|
+
import logo from "../../assets/logo.png";
|
|
9
|
+
import AddChatIcon from "../../assets/svg/AddChatIcon";
|
|
10
|
+
import flashOpen from "../../assets/flash-open.svg";
|
|
8
11
|
import InfiniteScroll from 'react-infinite-scroll-component';
|
|
12
|
+
import { SESSION_PAGE_SIZE } from "../../constants";
|
|
13
|
+
import clsx from 'clsx';
|
|
14
|
+
import { useStyles, GlobalStyle } from "./styles";
|
|
9
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
17
|
var XAiConversations = function XAiConversations(props) {
|
|
11
|
-
|
|
18
|
+
var styles = useStyles();
|
|
12
19
|
var _useChatbotContext = useChatbotContext(props),
|
|
13
20
|
mergedProps = _useChatbotContext.mergedProps;
|
|
14
|
-
var
|
|
15
|
-
sessionTotal = _mergedProps$sessionT === void 0 ? 0 : _mergedProps$sessionT,
|
|
16
|
-
sessionList = mergedProps.sessionList,
|
|
21
|
+
var sessionList = mergedProps.sessionList,
|
|
17
22
|
style = mergedProps.style,
|
|
18
23
|
onActiveChange = mergedProps.onActiveChange,
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
onNewChat = mergedProps.onNewChat,
|
|
25
|
+
loadMoreSessions = mergedProps.loadMoreSessions,
|
|
26
|
+
activeKey = mergedProps.activeKey,
|
|
27
|
+
menu = mergedProps.menu;
|
|
28
|
+
var _useState = useState(false),
|
|
21
29
|
_useState2 = _slicedToArray(_useState, 2),
|
|
22
|
-
|
|
23
|
-
|
|
30
|
+
listVisible = _useState2[0],
|
|
31
|
+
setListVisible = _useState2[1];
|
|
32
|
+
var _useState3 = useState(null),
|
|
33
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
34
|
+
animateDirection = _useState4[0],
|
|
35
|
+
setAnimateDirection = _useState4[1];
|
|
24
36
|
var handleSwitchTab = function handleSwitchTab(key) {
|
|
25
|
-
setActiveKey(key);
|
|
26
37
|
onActiveChange === null || onActiveChange === void 0 || onActiveChange(key);
|
|
27
38
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
var handleNewChat = function handleNewChat() {
|
|
40
|
+
onNewChat === null || onNewChat === void 0 || onNewChat();
|
|
41
|
+
};
|
|
42
|
+
var handleShowList = function handleShowList() {
|
|
43
|
+
setListVisible(true);
|
|
44
|
+
setAnimateDirection('in');
|
|
45
|
+
};
|
|
46
|
+
var handleCloseList = function handleCloseList() {
|
|
47
|
+
setAnimateDirection('out');
|
|
48
|
+
setTimeout(function () {
|
|
49
|
+
setListVisible(false);
|
|
50
|
+
setAnimateDirection(null);
|
|
51
|
+
}, 300);
|
|
52
|
+
};
|
|
53
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
54
|
+
children: [/*#__PURE__*/_jsx(GlobalStyle, {}), !listVisible && /*#__PURE__*/_jsxs("div", {
|
|
55
|
+
className: styles.capWrapper,
|
|
56
|
+
children: [/*#__PURE__*/_jsx("img", {
|
|
57
|
+
alt: "logo",
|
|
58
|
+
src: logo,
|
|
59
|
+
className: clsx(styles.w(32), styles.h(29))
|
|
60
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
61
|
+
className: styles.capShape,
|
|
62
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
63
|
+
className: styles.capIcon,
|
|
64
|
+
children: /*#__PURE__*/_jsx("img", {
|
|
65
|
+
src: flashOpen,
|
|
66
|
+
alt: "",
|
|
67
|
+
onClick: handleShowList
|
|
68
|
+
})
|
|
69
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
70
|
+
className: styles.capIcon,
|
|
71
|
+
children: /*#__PURE__*/_jsx(AddChatIcon, {
|
|
72
|
+
className: clsx(styles.w(17), styles.text('#343434')),
|
|
73
|
+
onClick: handleNewChat
|
|
74
|
+
})
|
|
75
|
+
})]
|
|
76
|
+
})]
|
|
77
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
50
78
|
style: {
|
|
51
|
-
|
|
79
|
+
display: listVisible ? 'block' : 'none'
|
|
52
80
|
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
81
|
+
className: clsx(styles.fWrapper, animateDirection === 'in' && styles.slideIn, animateDirection === 'out' && styles.slideOut),
|
|
82
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
83
|
+
className: styles.fheaderWrapper,
|
|
84
|
+
children: [/*#__PURE__*/_jsx("img", {
|
|
85
|
+
alt: "logo",
|
|
86
|
+
src: logo,
|
|
87
|
+
className: clsx(styles.w(32), styles.h(29))
|
|
88
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
89
|
+
className: styles.capIcon,
|
|
90
|
+
children: /*#__PURE__*/_jsx("img", {
|
|
91
|
+
src: flashOpen,
|
|
92
|
+
alt: "",
|
|
93
|
+
onClick: handleCloseList
|
|
94
|
+
})
|
|
95
|
+
})]
|
|
96
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
97
|
+
className: styles.addChatBtn,
|
|
98
|
+
onClick: handleNewChat,
|
|
99
|
+
children: [/*#__PURE__*/_jsx(AddChatIcon, {
|
|
100
|
+
className: clsx(styles.w(17), styles.mr(10))
|
|
101
|
+
}), "\u5F00\u542F\u65B0\u5BF9\u8BDD"]
|
|
102
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
103
|
+
className: styles.tipTitle,
|
|
104
|
+
children: "\u5386\u53F2\u5BF9\u8BDD"
|
|
105
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
106
|
+
className: styles.scrollList,
|
|
107
|
+
children: /*#__PURE__*/_jsx(InfiniteScroll, {
|
|
108
|
+
dataLength: sessionList.length,
|
|
109
|
+
next: loadMoreSessions,
|
|
110
|
+
hasMore: false,
|
|
111
|
+
loader: /*#__PURE__*/_jsx("div", {
|
|
112
|
+
style: {
|
|
113
|
+
textAlign: 'center'
|
|
114
|
+
},
|
|
115
|
+
children: /*#__PURE__*/_jsx(Spin, {
|
|
116
|
+
indicator: /*#__PURE__*/_jsx(RedoOutlined, {
|
|
117
|
+
spin: true
|
|
118
|
+
}),
|
|
119
|
+
size: "small"
|
|
120
|
+
})
|
|
121
|
+
}),
|
|
122
|
+
endMessage: sessionList.length === SESSION_PAGE_SIZE && /*#__PURE__*/_jsx(Divider, {
|
|
123
|
+
plain: true,
|
|
124
|
+
children: /*#__PURE__*/_jsx("span", {
|
|
125
|
+
className: styles.textColor('#949494'),
|
|
126
|
+
children: "\u53EA\u5C55\u793A\u524D 50 \u6761\u6570\u636E"
|
|
127
|
+
})
|
|
128
|
+
}),
|
|
129
|
+
style: {
|
|
130
|
+
overflow: 'hidden',
|
|
131
|
+
paddingBottom: '5px'
|
|
132
|
+
},
|
|
133
|
+
children: /*#__PURE__*/_jsx(Conversations, {
|
|
134
|
+
activeKey: activeKey,
|
|
135
|
+
onActiveChange: function onActiveChange(v) {
|
|
136
|
+
return handleSwitchTab(v);
|
|
137
|
+
},
|
|
138
|
+
items: sessionList,
|
|
139
|
+
menu: menu,
|
|
140
|
+
style: _objectSpread({
|
|
141
|
+
width: 256,
|
|
142
|
+
borderRadius: '6px'
|
|
143
|
+
}, style)
|
|
144
|
+
})
|
|
145
|
+
})
|
|
146
|
+
})]
|
|
147
|
+
})]
|
|
66
148
|
});
|
|
67
149
|
};
|
|
68
150
|
export default XAiConversations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","
|
|
1
|
+
{"version":3,"names":["React","useState","Conversations","RedoOutlined","Spin","Divider","useChatbotContext","logo","AddChatIcon","flashOpen","InfiniteScroll","SESSION_PAGE_SIZE","clsx","useStyles","GlobalStyle","jsx","_jsx","jsxs","_jsxs","XAiConversations","props","styles","_useChatbotContext","mergedProps","sessionList","style","onActiveChange","onNewChat","loadMoreSessions","activeKey","menu","_useState","_useState2","_slicedToArray","listVisible","setListVisible","_useState3","_useState4","animateDirection","setAnimateDirection","handleSwitchTab","key","handleNewChat","handleShowList","handleCloseList","setTimeout","children","className","capWrapper","alt","src","w","h","capShape","capIcon","onClick","text","display","fWrapper","slideIn","slideOut","fheaderWrapper","addChatBtn","mr","tipTitle","scrollList","dataLength","length","next","hasMore","loader","textAlign","indicator","spin","size","endMessage","plain","textColor","overflow","paddingBottom","v","items","_objectSpread","width","borderRadius"],"sources":["../../../../src/components/XAiConversations/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Conversations } from '@ant-design/x';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { Spin, Divider } from 'antd';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { type XAiConversationsProps } from '@/types/XAiConversations';\nimport logo from '@/assets/logo.png';\nimport AddChatIcon from '@/assets/svg/AddChatIcon';\nimport flashOpen from '@/assets/flash-open.svg';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { SESSION_PAGE_SIZE } from '@/constants';\nimport clsx from 'clsx';\nimport { useStyles, GlobalStyle } from './styles';\n\nconst XAiConversations: React.FC<XAiConversationsProps> = (props) => {\n const styles = useStyles();\n const { mergedProps } = useChatbotContext(props);\n const {\n sessionList,\n style,\n onActiveChange,\n onNewChat,\n loadMoreSessions,\n activeKey,\n menu,\n } = mergedProps;\n\n const [listVisible, setListVisible] = useState(false);\n const [animateDirection, setAnimateDirection] = useState<'in' | 'out' | null>(null);\n\n const handleSwitchTab = (key: string) => {\n onActiveChange?.(key);\n };\n\n const handleNewChat = () => {\n onNewChat?.();\n };\n\n const handleShowList = () => {\n setListVisible(true);\n setAnimateDirection('in');\n };\n\n const handleCloseList = () => {\n setAnimateDirection('out');\n setTimeout(() => {\n setListVisible(false);\n setAnimateDirection(null);\n }, 300);\n };\n\n return (\n <div>\n <GlobalStyle />\n {\n !listVisible && (\n <div className={styles.capWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))}/>\n <div className={styles.capShape}>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleShowList} />\n </div>\n <div className={styles.capIcon}>\n <AddChatIcon className={clsx(styles.w(17), styles.text('#343434'))} onClick={handleNewChat} />\n </div>\n </div>\n </div>\n )\n }\n\n <div\n style={{ display: listVisible ? 'block' : 'none' }}\n className={clsx(\n styles.fWrapper,\n animateDirection === 'in' && styles.slideIn,\n animateDirection === 'out' && styles.slideOut\n )}\n >\n {/* 固定头部 */}\n <div className={styles.fheaderWrapper}>\n <img alt=\"logo\" src={logo} className={clsx(styles.w(32), styles.h(29))}/>\n <div className={styles.capIcon}>\n <img src={flashOpen} alt=\"\" onClick={handleCloseList} />\n </div>\n </div>\n <div className={styles.addChatBtn} onClick={handleNewChat}>\n <AddChatIcon className={clsx(styles.w(17), styles.mr(10))} />\n 开启新对话\n </div>\n <div className={styles.tipTitle}>历史对话</div>\n\n {/* 滚动区域 */}\n <div className={styles.scrollList}>\n <InfiniteScroll\n dataLength={sessionList.length}\n next={loadMoreSessions}\n hasMore={false}\n loader={\n <div style={{ textAlign: 'center' }}>\n <Spin indicator={<RedoOutlined spin />} size=\"small\" />\n </div>\n }\n endMessage={sessionList.length === SESSION_PAGE_SIZE && <Divider plain><span className={styles.textColor('#949494')}>只展示前 50 条数据</span></Divider>}\n style={{ overflow: 'hidden', paddingBottom: '5px' }}\n >\n <Conversations\n activeKey={activeKey}\n onActiveChange={(v) => handleSwitchTab(v)}\n items={sessionList}\n menu={menu}\n style={{\n width: 256,\n borderRadius: '6px',\n ...style,\n }}\n />\n </InfiniteScroll>\n </div>\n </div>\n </div>\n );\n};\n\nexport default XAiConversations;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const useStyles: () => {
|
|
3
|
+
capWrapper: string;
|
|
4
|
+
capShape: string;
|
|
5
|
+
capIcon: string;
|
|
6
|
+
addChatBtn: string;
|
|
7
|
+
tipTitle: string;
|
|
8
|
+
fWrapper: string;
|
|
9
|
+
fheaderWrapper: string;
|
|
10
|
+
scrollList: string;
|
|
11
|
+
slideIn: string;
|
|
12
|
+
slideOut: string;
|
|
13
|
+
} & {
|
|
14
|
+
w: (width: string | number) => string;
|
|
15
|
+
h: (height: string | number) => string;
|
|
16
|
+
p: (padding: string) => string;
|
|
17
|
+
pb: (padding: string | number) => string;
|
|
18
|
+
pt: (padding: string | number) => string;
|
|
19
|
+
pl: (padding: string | number) => string;
|
|
20
|
+
pr: (padding: string | number) => string;
|
|
21
|
+
m: (margin: string) => string;
|
|
22
|
+
mb: (margin: string | number) => string;
|
|
23
|
+
mt: (margin: string | number) => string;
|
|
24
|
+
ml: (margin: string | number) => string;
|
|
25
|
+
mr: (margin: string | number) => string;
|
|
26
|
+
text: (size: string | number) => string;
|
|
27
|
+
weight: (size: number) => string;
|
|
28
|
+
textColor: (c: string) => string;
|
|
29
|
+
bg: (c: string) => string;
|
|
30
|
+
rs: (radius: string | number) => string;
|
|
31
|
+
gap: (g: string | number) => string;
|
|
32
|
+
flex: string;
|
|
33
|
+
flexCenter: string;
|
|
34
|
+
flexBetween: string;
|
|
35
|
+
flexColumn: string;
|
|
36
|
+
flex1: string;
|
|
37
|
+
cursor: (type: string) => string;
|
|
38
|
+
border: (color: string, width?: string) => string;
|
|
39
|
+
boxShadow: (shadow: string) => string;
|
|
40
|
+
transition: (property?: string, duration?: string) => string;
|
|
41
|
+
overflow: (type: string) => string;
|
|
42
|
+
position: (type: string) => string;
|
|
43
|
+
zIndex: (index: number) => string;
|
|
44
|
+
};
|
|
45
|
+
export declare const GlobalStyle: React.FC;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { css, keyframes } from '@emotion/css';
|
|
5
|
+
import { css as globalCss, Global } from '@emotion/react';
|
|
6
|
+
import { withBasicStyles } from "../../styles/common";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
var primaryBlue = '#0078FF'; // 主蓝色
|
|
9
|
+
var lightBlue = '#E6F0FF'; // 浅蓝色气泡背景
|
|
10
|
+
var darkGray = '#333'; // 深灰色文本
|
|
11
|
+
var lightGray = '#888'; // 浅灰文本
|
|
12
|
+
var borderGray = '#ddd'; // 边框灰色
|
|
13
|
+
|
|
14
|
+
var slideInRight = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n from { transform: translateX(-100%); opacity: 0; }\n to { transform: translateX(0); opacity: 1; }\n"])));
|
|
15
|
+
var slideOutRight = keyframes(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n from { transform: translateX(0); opacity: 1; }\n to { transform: translateX(-100%); opacity: 0; }\n"])));
|
|
16
|
+
export var useStyles = withBasicStyles(function () {
|
|
17
|
+
return {
|
|
18
|
+
// 静态样式
|
|
19
|
+
capWrapper: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: 12px 16px;\n display: flex;\n align-items: center;\n "]))),
|
|
20
|
+
capShape: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\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: ", ";\n } */\n "])), primaryBlue),
|
|
21
|
+
capIcon: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\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 "]))),
|
|
22
|
+
addChatBtn: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\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 "]))),
|
|
23
|
+
tipTitle: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-size: 12px;\n color: #949494;\n padding-left: 24px;\n "]))),
|
|
24
|
+
fWrapper: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n background: #F8FBFF;\n padding: 16px 0 13px;\n width: 280px;\n height: 100%;\n box-sizing: border-box;\n "]))),
|
|
25
|
+
fheaderWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 11px 0 16px;\n "]))),
|
|
26
|
+
scrollList: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n max-height: calc(100vh - 120px); /* 120px\u4E3A\u5934\u90E8\u9AD8\u5EA6\uFF0C\u53EF\u6839\u636E\u5B9E\u9645\u8C03\u6574 */\n padding-bottom: 15px;\n overflow-y: auto;\n\n /* \u9690\u85CF\u6EDA\u52A8\u6761\uFF08Chrome, Edge, Safari\uFF09 */\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n background: transparent;\n }\n\n /* \u9690\u85CF\u6EDA\u52A8\u6761\uFF08Firefox\uFF09 */\n scrollbar-width: none;\n\n /* \u9690\u85CF\u6EDA\u52A8\u6761\uFF08IE/Edge\uFF09 */\n -ms-overflow-style: none;\n "]))),
|
|
27
|
+
slideIn: css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n animation: ", " 0.3s forwards;\n "])), slideInRight),
|
|
28
|
+
slideOut: css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n animation: ", " 0.3s forwards;\n "])), slideOutRight)
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
export var GlobalStyle = function GlobalStyle() {
|
|
32
|
+
return /*#__PURE__*/_jsx(Global, {
|
|
33
|
+
styles: globalCss(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\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 "])))
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","css","keyframes","globalCss","Global","withBasicStyles","jsx","_jsx","primaryBlue","lightBlue","darkGray","lightGray","borderGray","slideInRight","_templateObject","_taggedTemplateLiteral","slideOutRight","_templateObject2","useStyles","capWrapper","_templateObject3","capShape","_templateObject4","capIcon","_templateObject5","addChatBtn","_templateObject6","tipTitle","_templateObject7","fWrapper","_templateObject8","fheaderWrapper","_templateObject9","scrollList","_templateObject10","slideIn","_templateObject11","slideOut","_templateObject12","GlobalStyle","styles","_templateObject13"],"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\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\n\nexport const useStyles = withBasicStyles(() => ({\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 `,\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);"],"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;;AAGhC,IAAMC,YAAY,GAAGX,SAAS,CAAAY,eAAA,KAAAA,eAAA,GAAAC,sBAAA,gHAG7B;AAED,IAAMC,aAAa,GAAGd,SAAS,CAAAe,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,gHAG9B;AAGD,OAAO,IAAMG,SAAS,GAAGb,eAAe,CAAC;EAAA,OAAO;IAC9C;IACAc,UAAU,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAL,sBAAA,mFAId;IAEDM,QAAQ,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAP,sBAAA,+fAgBOP,WAAW,CAE9B;IAEDe,OAAO,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAT,sBAAA,0QAgBX;IAEDU,UAAU,EAAExB,GAAG,CAAAyB,gBAAA,KAAAA,gBAAA,GAAAX,sBAAA,sZAqBd;IAEDY,QAAQ,EAAE1B,GAAG,CAAA2B,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,gFAIZ;IAEDc,QAAQ,EAAE5B,GAAG,CAAA6B,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,oIAMZ;IAEDgB,cAAc,EAAE9B,GAAG,CAAA+B,gBAAA,KAAAA,gBAAA,GAAAjB,sBAAA,4HAKlB;IAEDkB,UAAU,EAAEhC,GAAG,CAAAiC,iBAAA,KAAAA,iBAAA,GAAAnB,sBAAA,+jBAkBd;IAEDoB,OAAO,EAAElC,GAAG,CAAAmC,iBAAA,KAAAA,iBAAA,GAAArB,sBAAA,iDACGF,YAAY,CAC1B;IACDwB,QAAQ,EAAEpC,GAAG,CAAAqC,iBAAA,KAAAA,iBAAA,GAAAvB,sBAAA,iDACEC,aAAa;EAG9B,CAAC;AAAA,CAAC,CAAC;AAEH,OAAO,IAAMuB,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA;EAAA,oBAChChC,IAAA,CAACH,MAAM;IACLoC,MAAM,EAAErC,SAAS,CAAAsC,iBAAA,KAAAA,iBAAA,GAAA1B,sBAAA;EAQf,CACH,CAAC;AAAA,CACH"}
|
|
@@ -72,7 +72,7 @@ export var 单聊天窗口实例 = {
|
|
|
72
72
|
})
|
|
73
73
|
}), /*#__PURE__*/_jsx("div", {
|
|
74
74
|
style: {
|
|
75
|
-
|
|
75
|
+
maxWidth: '800px',
|
|
76
76
|
height: '600px'
|
|
77
77
|
},
|
|
78
78
|
children: /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({
|
|
@@ -194,40 +194,39 @@ export var 携带历史记录示例 = {
|
|
|
194
194
|
var providerRef = React.useRef(null);
|
|
195
195
|
return /*#__PURE__*/_jsx("div", {
|
|
196
196
|
style: {
|
|
197
|
-
|
|
197
|
+
width: '800px',
|
|
198
|
+
height: '600px',
|
|
199
|
+
overflow: 'hidden'
|
|
198
200
|
},
|
|
199
|
-
children: /*#__PURE__*/
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
201
|
+
children: /*#__PURE__*/_jsxs(XAiProvider, _objectSpread(_objectSpread({
|
|
202
|
+
ref: providerRef
|
|
203
|
+
}, args), {}, {
|
|
204
|
+
onError: function onError(providerError) {
|
|
205
|
+
return console.log(providerError);
|
|
203
206
|
},
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
},
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
title: 'Provider 聊天机器人',
|
|
216
|
-
subtitle: '由 Provider 管理消息',
|
|
217
|
-
avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg'
|
|
218
|
-
}
|
|
219
|
-
})]
|
|
220
|
-
}))
|
|
221
|
-
})
|
|
207
|
+
onMessage: function onMessage(data) {
|
|
208
|
+
return console.log(data);
|
|
209
|
+
},
|
|
210
|
+
children: [/*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx(XAiChatbot, {
|
|
211
|
+
navbar: {
|
|
212
|
+
title: 'Provider 聊天机器人',
|
|
213
|
+
subtitle: '由 Provider 管理消息',
|
|
214
|
+
avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg'
|
|
215
|
+
}
|
|
216
|
+
})]
|
|
217
|
+
}))
|
|
222
218
|
});
|
|
223
219
|
},
|
|
224
220
|
args: {
|
|
225
221
|
url: 'http://ai-platform.xline-dev.test.xinke.biz',
|
|
226
|
-
token: 'eyJhbGciOiJIUzUxMiJ9.
|
|
222
|
+
token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJiZGVmZjAyZS01N2VmLTQzMzItOGY5Zi1lNmMyZDdjM2RlYTEiLCJzdWIiOiLmnLHmmajkuq4iLCJpc3MiOiJodHRwczovL2NoYXQtZGV2LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTgwOTAxMDIsImV4cCI6MTc1ODA5NzMwMiwidHlwZSI6ImFjY2VzcyIsImNsaWVudF9pZCI6IkFwcDE5NjMxODcwMjEwMzc5Mjg0NDgiLCJzY29wZSI6ImFsbCIsInBsYXRmb3JtX3R5cGUiOiJNYWluU3RhdGlvbiJ9.NrnkXcGUZ098ElJmSH1DqCAxHAF05d9Rs15JiuprnW6Z4WK6m4DrDvZTxbNcYcfrtHvcc3nCBAYajz6x5M03QA',
|
|
227
223
|
config: {
|
|
228
|
-
appNo: '
|
|
224
|
+
appNo: 'App1963187021037928448',
|
|
229
225
|
pt: 'MainStation',
|
|
230
|
-
tc: 'ZABX'
|
|
226
|
+
tc: 'ZABX',
|
|
227
|
+
chatProps: {
|
|
228
|
+
clearBtnShow: false
|
|
229
|
+
}
|
|
231
230
|
},
|
|
232
231
|
providerId: 'demo-provider'
|
|
233
232
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Button","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","width","height","_objectSpread","ref","onError","providerError","onMessage","data","navbarShow","navbar","subtitle","avatar","url","token","appNo","pt","tc","providerId","多容器示例","携带历史记录示例"],"sources":["../../../../src/components/XAiProvider/XAiProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAiProvider from './index';\nimport XAiChatbot from '../XAiChatbot';\nimport XAiConversations from '../XAiConversations';\nimport useStyles from './demo.styles';\n\nconst meta: Meta<typeof XAiProvider> = {\n title: 'AI组件/XAiProvider AI容器',\n component: XAiProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: { \n summary: 'XAiProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n pt?: string; // 授权方式\n tc?: string; // 租户key\n }`\n },\n category: '配置选项'\n }\n }\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat('你好,AI!')\n } else {\n console.log('XAiProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'http://ai-platform.xline-dev.test.xinke.biz',\n token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI4ZjYxNjE2Yy05ZWZjLTQ5ZmMtOWFmYi00OWZiZDNhNGVmNzciLCJzdWIiOiLmnLHmmajkuq4iLCJpc3MiOiJodHRwczovL2NoYXQtZGV2LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTc5MjUwOTQsImV4cCI6MTc1NzkzMjI5NCwidHlwZSI6ImFjY2VzcyIsImNsaWVudF9pZCI6IkFwcDE5NTUyMzA4NTA4OTU2ODc2ODAiLCJzY29wZSI6ImFsbCIsInBsYXRmb3JtX3R5cGUiOiJNYWluU3RhdGlvbiJ9._lZMQ_V0Tzv54Cez-Wc9OQCpP1dt6k0HqOiGZ8DBd_f3HPa1mjF3wJP-0ToBLH8udMrFQmkjAOD3jzvTUqHSJA',\n config: {\n appNo: 'App1955230850895687680',\n pt: 'MainStation',\n tc: 'ZABX',\n },\n providerId: 'demo-provider',\n },\n};\n\n// export const 带历史记录聊天窗口: Story = {\n// render: (args) => {\n// function WithStyles(props: any) {\n// const styles = useStyles();\n// return (\n// <XAiProvider {...props}>\n// <div className={styles.wrapper}>\n// <div>\n// <XAiConversations />\n// </div>\n// <div>\n// <XAiChatbot />\n// </div>\n// </div>\n// </XAiProvider>\n// );\n// }\n// return <WithStyles {...args} />;\n// },\n// args: {\n// url: 'http://ai-platform.xline-dev.test.xinke.biz',\n// token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJjYWIxYjM3Ni03MmZjLTRkNWEtOTIzMC01N2U3NmZiMGI4NmQiLCJzdWIiOiJSZXgiLCJpc3MiOiJodHRwOi8vY2hhdC10ZXN0LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTQzMTc1OTAsImV4cCI6MTc1NDkyMjM5MCwidHlwZSI6InJlZnJlc2giLCJjbGllbnRfaWQiOiJBcHAxOTUwMDIwNTk0NDUyNjYwMjI0Iiwic2NvcGUiOiJhbGwiLCJwbGF0Zm9ybV90eXBlIjoiTWFpblN0YXRpb24ifQ.crZFQRycuHHA1iIIFJ5ak9kS1-04Eqro-QWWG8HZj6Dz7DkLWYuQBPCrUlCtavGu0XW5tqHZ5WW4tdST06FvEA',\n// config: {\n// appNo: 'App1952213101022154752',\n// pt: 'MainStation',\n// tc: 'ZABX',\n// },\n// providerId: 'demo-provider',\n// },\n// };\n\n// 多个 Provider 示例\nexport const 多容器示例: Story = {\n render: (args) => (\n <div style={{ display: 'flex', gap: '20px' }}>\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-1\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 1',\n subtitle: '第一个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-2\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 2',\n subtitle: '第二个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n url: 'https://api.example.com/ai',\n token: 'your-token-here',\n },\n};\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录示例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ width: '1000px', height: '600px' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiConversations />\n <XAiChatbot\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'http://ai-platform.xline-dev.test.xinke.biz',\n token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI4ODYwNWUwNi1mNjBkLTQzMTUtYWM0ZC04YzcyNWY0YmQ3NjkiLCJzdWIiOiLmnLHmmajkuq4iLCJpc3MiOiJodHRwczovL2NoYXQtZGV2LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTc5OTU5ODEsImV4cCI6MTc1ODAwMzE4MSwidHlwZSI6ImFjY2VzcyIsImNsaWVudF9pZCI6IkFwcDE5NTUyMzA4NTA4OTU2ODc2ODAiLCJzY29wZSI6ImFsbCIsInBsYXRmb3JtX3R5cGUiOiJNYWluU3RhdGlvbiJ9.9nmXvWt210UxfVjDJ-nGXhuD3OnNZDh90RdAQspu0EC5iKh-xdAwbFjZ7KWAyFSODDcqtHekYNSnOPaEGBEgEg',\n config: {\n appNo: 'App1955230850895687680',\n pt: 'MainStation',\n tc: 'ZABX',\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","Button","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","onError","providerError","onMessage","data","navbarShow","navbar","subtitle","avatar","url","token","appNo","pt","tc","providerId","多容器示例","width","携带历史记录示例","overflow","chatProps","clearBtnShow"],"sources":["../../../../src/components/XAiProvider/XAiProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAiProvider from './index';\nimport XAiChatbot from '../XAiChatbot';\nimport XAiConversations from '../XAiConversations';\n\nconst meta: Meta<typeof XAiProvider> = {\n title: 'AI组件/XAiProvider AI容器',\n component: XAiProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: { \n summary: 'XAiProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n pt?: string; // 授权方式\n tc?: string; // 租户key\n }`\n },\n category: '配置选项'\n }\n }\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat('你好,AI!');\n } else {\n console.log('XAiProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '800px', height: '600px' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'http://ai-platform.xline-dev.test.xinke.biz',\n token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI4ZjYxNjE2Yy05ZWZjLTQ5ZmMtOWFmYi00OWZiZDNhNGVmNzciLCJzdWIiOiLmnLHmmajkuq4iLCJpc3MiOiJodHRwczovL2NoYXQtZGV2LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTc5MjUwOTQsImV4cCI6MTc1NzkzMjI5NCwidHlwZSI6ImFjY2VzcyIsImNsaWVudF9pZCI6IkFwcDE5NTUyMzA4NTA4OTU2ODc2ODAiLCJzY29wZSI6ImFsbCIsInBsYXRmb3JtX3R5cGUiOiJNYWluU3RhdGlvbiJ9._lZMQ_V0Tzv54Cez-Wc9OQCpP1dt6k0HqOiGZ8DBd_f3HPa1mjF3wJP-0ToBLH8udMrFQmkjAOD3jzvTUqHSJA',\n config: {\n appNo: 'App1955230850895687680',\n pt: 'MainStation',\n tc: 'ZABX',\n },\n providerId: 'demo-provider',\n },\n};\n\n// export const 带历史记录聊天窗口: Story = {\n// render: (args) => {\n// function WithStyles(props: any) {\n// const styles = useStyles();\n// return (\n// <XAiProvider {...props}>\n// <div className={styles.wrapper}>\n// <div>\n// <XAiConversations />\n// </div>\n// <div>\n// <XAiChatbot />\n// </div>\n// </div>\n// </XAiProvider>\n// );\n// }\n// return <WithStyles {...args} />;\n// },\n// args: {\n// url: 'http://ai-platform.xline-dev.test.xinke.biz',\n// token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJjYWIxYjM3Ni03MmZjLTRkNWEtOTIzMC01N2U3NmZiMGI4NmQiLCJzdWIiOiJSZXgiLCJpc3MiOiJodHRwOi8vY2hhdC10ZXN0LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTQzMTc1OTAsImV4cCI6MTc1NDkyMjM5MCwidHlwZSI6InJlZnJlc2giLCJjbGllbnRfaWQiOiJBcHAxOTUwMDIwNTk0NDUyNjYwMjI0Iiwic2NvcGUiOiJhbGwiLCJwbGF0Zm9ybV90eXBlIjoiTWFpblN0YXRpb24ifQ.crZFQRycuHHA1iIIFJ5ak9kS1-04Eqro-QWWG8HZj6Dz7DkLWYuQBPCrUlCtavGu0XW5tqHZ5WW4tdST06FvEA',\n// config: {\n// appNo: 'App1952213101022154752',\n// pt: 'MainStation',\n// tc: 'ZABX',\n// },\n// providerId: 'demo-provider',\n// },\n// };\n\n// 多个 Provider 示例\nexport const 多容器示例: Story = {\n render: (args) => (\n <div style={{ display: 'flex', gap: '20px' }}>\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-1\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 1',\n subtitle: '第一个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n\n <div style={{ width: '400px', height: '600px' }}>\n <XAiProvider {...args} providerId=\"provider-2\">\n <XAiChatbot\n navbarShow\n navbar={{\n title: 'Provider 2',\n subtitle: '第二个聊天机器人',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n </div>\n ),\n args: {\n url: 'https://api.example.com/ai',\n token: 'your-token-here',\n },\n};\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录示例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n return (\n <div style={{ width: '800px', height: '600px', overflow: 'hidden' }}>\n <XAiProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onMessage={(data) => console.log(data)}\n >\n <XAiConversations />\n <XAiChatbot\n navbar={{\n title: 'Provider 聊天机器人',\n subtitle: '由 Provider 管理消息',\n avatar: 'https://gw.alipayobjects.com/zos/bmw-prod/b874caa9-4458-412a-9ac6-a61486180a62.svg',\n }}\n />\n </XAiProvider>\n </div>\n );\n },\n args: {\n url: 'http://ai-platform.xline-dev.test.xinke.biz',\n token: 'eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJiZGVmZjAyZS01N2VmLTQzMzItOGY5Zi1lNmMyZDdjM2RlYTEiLCJzdWIiOiLmnLHmmajkuq4iLCJpc3MiOiJodHRwczovL2NoYXQtZGV2LnpheGxpbmUuY29tIiwiYXVkIjoiTWFpblN0YXRpb24iLCJpYXQiOjE3NTgwOTAxMDIsImV4cCI6MTc1ODA5NzMwMiwidHlwZSI6ImFjY2VzcyIsImNsaWVudF9pZCI6IkFwcDE5NjMxODcwMjEwMzc5Mjg0NDgiLCJzY29wZSI6ImFsbCIsInBsYXRmb3JtX3R5cGUiOiJNYWluU3RhdGlvbiJ9.NrnkXcGUZ098ElJmSH1DqCAxHAF05d9Rs15JiuprnW6Z4WK6m4DrDvZTxbNcYcfrtHvcc3nCBAYajz6x5M03QA',\n config: {\n appNo: 'App1963187021037928448',\n pt: 'MainStation',\n tc: 'ZABX',\n chatProps: {\n clearBtnShow: false\n }\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
|