@ai-group/chat-sdk 0.6.0 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/arrow-down-blue.png +0 -0
- package/dist/cjs/assets/arrow-down.png +0 -0
- package/dist/cjs/assets/think.png +0 -0
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +126 -99
- package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/index.d.ts +3 -6
- package/dist/cjs/components/XAiChatbot/index.js +40 -32
- package/dist/cjs/components/XAiChatbot/index.js.map +3 -3
- package/dist/cjs/components/XAiChatbot/styles.d.ts +8 -2
- package/dist/cjs/components/XAiChatbot/styles.js +66 -21
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +1 -1
- package/dist/cjs/components/XAiConversations/index.js.map +1 -1
- package/dist/cjs/hooks/useAgentGenerator.js +8 -8
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/types/XAiChatbot.d.ts +2 -0
- package/dist/cjs/types/XAiChatbot.js.map +1 -1
- package/dist/cjs/types/XAiMessage.d.ts +3 -2
- package/dist/cjs/types/XAiMessage.js.map +2 -2
- package/dist/cjs/types/mdx.d.ts +5 -0
- package/dist/esm/assets/arrow-down-blue.png +0 -0
- package/dist/esm/assets/arrow-down.png +0 -0
- package/dist/esm/assets/think.png +0 -0
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +96 -99
- package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -1
- package/dist/esm/components/XAiChatbot/index.d.ts +3 -6
- package/dist/esm/components/XAiChatbot/index.js +166 -109
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.d.ts +8 -2
- package/dist/esm/components/XAiChatbot/styles.js +24 -18
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +1 -1
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.js +12 -12
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.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/XAiMessage.d.ts +3 -2
- package/dist/esm/types/XAiMessage.js.map +1 -1
- package/dist/esm/types/mdx.d.ts +5 -0
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
// 文件: components/XAiChatbot/index.tsx
|
|
3
3
|
|
|
4
|
-
import React, { useRef, useState, useMemo } from 'react';
|
|
4
|
+
import React, { useRef, useState, useMemo, memo } from 'react';
|
|
5
5
|
import { Tooltip } from 'antd';
|
|
6
6
|
import { Bubble, Prompts } from '@ant-design/x';
|
|
7
7
|
import { UserOutlined, RedoOutlined, CopyOutlined, DeleteOutlined } from '@ant-design/icons';
|
|
@@ -11,15 +11,18 @@ import reactHtmlParser from 'react-html-parser';
|
|
|
11
11
|
import MarkdownGlobalStyle from "../../styles/markdown";
|
|
12
12
|
import { MessageStatus, MessageRole } from "../../types/XAiMessage";
|
|
13
13
|
import emptyIcon from "../../assets/empty.png";
|
|
14
|
-
import groupIcon from "../../assets/group.png";
|
|
15
14
|
import arrowUp from "../../assets/arrow-up.png";
|
|
16
15
|
import arrowDown from "../../assets/arrow-down.png";
|
|
16
|
+
import thinkIcon from "../../assets/think.png";
|
|
17
|
+
import groupIcon from "../../assets/group.png";
|
|
18
|
+
import arrowDownBlue from "../../assets/arrow-down-blue.png";
|
|
17
19
|
import { useChatbotContext } from "../../hooks/useProviderContext";
|
|
18
20
|
import { useStyles, GlobalStyle } from "./styles";
|
|
19
21
|
import XAiSender from "../XAiSender";
|
|
20
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
22
23
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
25
|
+
var styles = useStyles();
|
|
23
26
|
var md = new MarkdownIt({
|
|
24
27
|
html: true,
|
|
25
28
|
linkify: true,
|
|
@@ -49,6 +52,138 @@ md.renderer.rules.link_open = function (tokens, idx, options, env, self) {
|
|
|
49
52
|
}
|
|
50
53
|
return defaultRender(tokens, idx, options, env, self);
|
|
51
54
|
};
|
|
55
|
+
// ActionHeader 组件
|
|
56
|
+
export var ActionHeader = /*#__PURE__*/memo(function (_ref) {
|
|
57
|
+
var _last$extra;
|
|
58
|
+
var _ref$execute = _ref.execute,
|
|
59
|
+
execute = _ref$execute === void 0 ? [] : _ref$execute,
|
|
60
|
+
_ref$thinks = _ref.thinks,
|
|
61
|
+
thinks = _ref$thinks === void 0 ? '' : _ref$thinks;
|
|
62
|
+
var styles = useStyles();
|
|
63
|
+
var _useState = useState(true),
|
|
64
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
65
|
+
expanded = _useState2[0],
|
|
66
|
+
setExpanded = _useState2[1];
|
|
67
|
+
var _useState3 = useState(false),
|
|
68
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
69
|
+
executeExpanded = _useState4[0],
|
|
70
|
+
setExecuteExpanded = _useState4[1];
|
|
71
|
+
if (!execute || execute.length === 0 || !thinks) return null;
|
|
72
|
+
var last = execute[execute.length - 1] || {};
|
|
73
|
+
var name = last.name;
|
|
74
|
+
var icon = (last === null || last === void 0 ? void 0 : last.icon) || (last === null || last === void 0 || (_last$extra = last.extra) === null || _last$extra === void 0 ? void 0 : _last$extra.icon);
|
|
75
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
76
|
+
className: styles.actionHeaderWrapper,
|
|
77
|
+
children: [!expanded && /*#__PURE__*/_jsxs("div", {
|
|
78
|
+
className: styles.actionTitle,
|
|
79
|
+
onClick: function onClick() {
|
|
80
|
+
return setExpanded(function (v) {
|
|
81
|
+
return !v;
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
children: [/*#__PURE__*/_jsx("img", {
|
|
85
|
+
src: thinkIcon,
|
|
86
|
+
alt: "icon",
|
|
87
|
+
className: styles.actionHeaderIcon
|
|
88
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
89
|
+
className: styles.flex1,
|
|
90
|
+
children: "\u8FD0\u884C\u8FC7\u7A0B"
|
|
91
|
+
}), /*#__PURE__*/_jsx("img", {
|
|
92
|
+
alt: "\u5C55\u5F00icon",
|
|
93
|
+
src: arrowDown,
|
|
94
|
+
className: styles.w('16px')
|
|
95
|
+
})]
|
|
96
|
+
}), expanded && /*#__PURE__*/_jsxs("div", {
|
|
97
|
+
className: styles.actionHeaderDetail,
|
|
98
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
99
|
+
className: styles.actionDetailTitle,
|
|
100
|
+
onClick: function onClick() {
|
|
101
|
+
return setExpanded(function (v) {
|
|
102
|
+
return !v;
|
|
103
|
+
});
|
|
104
|
+
},
|
|
105
|
+
children: [/*#__PURE__*/_jsx("img", {
|
|
106
|
+
src: thinkIcon,
|
|
107
|
+
alt: "",
|
|
108
|
+
className: clsx(styles.w(14))
|
|
109
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
110
|
+
className: clsx(styles.flex1, styles.pl(10)),
|
|
111
|
+
children: "\u9690\u85CF\u8FD0\u884C\u8FC7\u7A0B"
|
|
112
|
+
}), /*#__PURE__*/_jsx("img", {
|
|
113
|
+
alt: "\u6536\u8D77icon",
|
|
114
|
+
src: arrowUp,
|
|
115
|
+
className: styles.w('16px')
|
|
116
|
+
})]
|
|
117
|
+
}), thinks && /*#__PURE__*/_jsx("div", {
|
|
118
|
+
className: styles.actionDetailContent,
|
|
119
|
+
children: /*#__PURE__*/_jsx("span", {
|
|
120
|
+
children: thinks
|
|
121
|
+
})
|
|
122
|
+
}), !executeExpanded && /*#__PURE__*/_jsxs("div", {
|
|
123
|
+
className: styles.executeHiddenWrapper,
|
|
124
|
+
onClick: function onClick() {
|
|
125
|
+
return setExecuteExpanded(function (v) {
|
|
126
|
+
return !v;
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
children: [icon && /*#__PURE__*/_jsx("img", {
|
|
130
|
+
src: icon,
|
|
131
|
+
alt: "icon"
|
|
132
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
133
|
+
className: styles.flex1,
|
|
134
|
+
children: name
|
|
135
|
+
}), /*#__PURE__*/_jsx("img", {
|
|
136
|
+
alt: "\u5DE5\u5177icon",
|
|
137
|
+
src: arrowDownBlue,
|
|
138
|
+
className: styles.w('16px')
|
|
139
|
+
})]
|
|
140
|
+
}), executeExpanded && /*#__PURE__*/_jsxs("div", {
|
|
141
|
+
className: styles.executeWrapper,
|
|
142
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
143
|
+
className: styles.executeTitle,
|
|
144
|
+
onClick: function onClick() {
|
|
145
|
+
return setExecuteExpanded(function (v) {
|
|
146
|
+
return !v;
|
|
147
|
+
});
|
|
148
|
+
},
|
|
149
|
+
children: [/*#__PURE__*/_jsx("img", {
|
|
150
|
+
src: groupIcon,
|
|
151
|
+
alt: "icon",
|
|
152
|
+
className: styles.executeHeaderIcon
|
|
153
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
154
|
+
className: styles.flex1,
|
|
155
|
+
children: "\u9690\u85CF\u8FD0\u884C\u8BE6\u60C5"
|
|
156
|
+
}), /*#__PURE__*/_jsx("img", {
|
|
157
|
+
alt: "\u5C55\u5F00\u8BE6\u60C5icon",
|
|
158
|
+
src: arrowUp,
|
|
159
|
+
className: styles.w('16px')
|
|
160
|
+
})]
|
|
161
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
162
|
+
className: styles.executeContent,
|
|
163
|
+
children: execute.map(function (action, idx) {
|
|
164
|
+
var _action$extra, _action$extra2, _action$extra3;
|
|
165
|
+
var thinkIcon = (action === null || action === void 0 ? void 0 : action.expandIcon) || (action === null || action === void 0 || (_action$extra = action.extra) === null || _action$extra === void 0 ? void 0 : _action$extra.expandIcon) || (action === null || action === void 0 || (_action$extra2 = action.extra) === null || _action$extra2 === void 0 ? void 0 : _action$extra2.icon) || (action === null || action === void 0 ? void 0 : action.icon);
|
|
166
|
+
var thinkCost = (action === null || action === void 0 ? void 0 : action.cost) || (action === null || action === void 0 || (_action$extra3 = action.extra) === null || _action$extra3 === void 0 ? void 0 : _action$extra3.cost);
|
|
167
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
168
|
+
className: styles.actionHeaderDetailItem,
|
|
169
|
+
children: [thinkIcon && /*#__PURE__*/_jsx("img", {
|
|
170
|
+
src: thinkIcon,
|
|
171
|
+
alt: "icon",
|
|
172
|
+
className: styles.actionHeaderIcon
|
|
173
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
174
|
+
children: action === null || action === void 0 ? void 0 : action.name
|
|
175
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
176
|
+
className: styles.actionHeaderCost,
|
|
177
|
+
children: thinkCost ? "".concat(thinkCost, "s") : ''
|
|
178
|
+
})]
|
|
179
|
+
}, action.uniqueId || idx);
|
|
180
|
+
})
|
|
181
|
+
})]
|
|
182
|
+
})]
|
|
183
|
+
})]
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
|
|
52
187
|
// 默认消息功能区
|
|
53
188
|
var defaultActions = [{
|
|
54
189
|
key: 'redo',
|
|
@@ -99,16 +234,16 @@ var XAiChatbot = function XAiChatbot(props) {
|
|
|
99
234
|
onSend = mergedProps.onSend,
|
|
100
235
|
onClear = mergedProps.onClear,
|
|
101
236
|
onStop = mergedProps.onStop,
|
|
102
|
-
providerId = mergedProps.providerId
|
|
237
|
+
providerId = mergedProps.providerId,
|
|
238
|
+
messageTop = mergedProps.messageTop;
|
|
103
239
|
|
|
104
240
|
// 如果在 Provider 中,使用 Provider 的状态
|
|
105
241
|
var messages = mergedProps.messages || propMessages || [];
|
|
106
242
|
var loading = mergedProps.loading || propLoading;
|
|
107
|
-
var
|
|
108
|
-
|
|
109
|
-
content =
|
|
110
|
-
setContent =
|
|
111
|
-
var styles = useStyles();
|
|
243
|
+
var _useState5 = useState(text),
|
|
244
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
245
|
+
content = _useState6[0],
|
|
246
|
+
setContent = _useState6[1]; // 输入框文本
|
|
112
247
|
var lastMessageId = useRef('');
|
|
113
248
|
var isScriptScrolling = useRef(false);
|
|
114
249
|
var chatId = providerId ? "za-chatbot-container-".concat(providerId) : 'za-chatbot-container';
|
|
@@ -126,10 +261,10 @@ var XAiChatbot = function XAiChatbot(props) {
|
|
|
126
261
|
};
|
|
127
262
|
|
|
128
263
|
// 消息功能区组件
|
|
129
|
-
var FooterActions = function FooterActions(
|
|
130
|
-
var data =
|
|
131
|
-
|
|
132
|
-
lastMessage =
|
|
264
|
+
var FooterActions = function FooterActions(_ref2) {
|
|
265
|
+
var data = _ref2.data,
|
|
266
|
+
_ref2$lastMessage = _ref2.lastMessage,
|
|
267
|
+
lastMessage = _ref2$lastMessage === void 0 ? false : _ref2$lastMessage;
|
|
133
268
|
return /*#__PURE__*/_jsx("div", {
|
|
134
269
|
className: clsx(styles.flex, styles.gap(13)),
|
|
135
270
|
children: messageActions.map(function (action, index) {
|
|
@@ -149,10 +284,10 @@ var XAiChatbot = function XAiChatbot(props) {
|
|
|
149
284
|
};
|
|
150
285
|
|
|
151
286
|
// 消息底部区域
|
|
152
|
-
var MessageFooter = function MessageFooter(
|
|
153
|
-
var data =
|
|
154
|
-
|
|
155
|
-
lastMessage =
|
|
287
|
+
var MessageFooter = function MessageFooter(_ref3) {
|
|
288
|
+
var data = _ref3.data,
|
|
289
|
+
_ref3$lastMessage = _ref3.lastMessage,
|
|
290
|
+
lastMessage = _ref3$lastMessage === void 0 ? false : _ref3$lastMessage;
|
|
156
291
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
157
292
|
children: [messageTooltip === null || messageTooltip === void 0 ? void 0 : messageTooltip(data), /*#__PURE__*/_jsx(FooterActions, {
|
|
158
293
|
data: data,
|
|
@@ -204,96 +339,6 @@ var XAiChatbot = function XAiChatbot(props) {
|
|
|
204
339
|
}
|
|
205
340
|
};
|
|
206
341
|
|
|
207
|
-
// ActionHeader 组件
|
|
208
|
-
var ActionHeader = function ActionHeader(_ref3) {
|
|
209
|
-
var _first$extra;
|
|
210
|
-
var _ref3$thinks = _ref3.thinks,
|
|
211
|
-
thinks = _ref3$thinks === void 0 ? [] : _ref3$thinks,
|
|
212
|
-
renderActionHeader = _ref3.renderActionHeader;
|
|
213
|
-
var _useState3 = useState(false),
|
|
214
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
215
|
-
expanded = _useState4[0],
|
|
216
|
-
setExpanded = _useState4[1];
|
|
217
|
-
if (!thinks || thinks.length === 0) return null;
|
|
218
|
-
if (renderActionHeader) {
|
|
219
|
-
return renderActionHeader({
|
|
220
|
-
thinks: thinks,
|
|
221
|
-
expanded: expanded,
|
|
222
|
-
onToggle: function onToggle() {
|
|
223
|
-
return setExpanded(function (v) {
|
|
224
|
-
return !v;
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
// 默认渲染
|
|
230
|
-
var first = thinks[0];
|
|
231
|
-
var name = first.name;
|
|
232
|
-
var icon = (first === null || first === void 0 ? void 0 : first.icon) || (first === null || first === void 0 || (_first$extra = first.extra) === null || _first$extra === void 0 ? void 0 : _first$extra.icon);
|
|
233
|
-
return /*#__PURE__*/_jsxs("div", {
|
|
234
|
-
className: styles.actionHeaderWrapper,
|
|
235
|
-
children: [!expanded && /*#__PURE__*/_jsxs("div", {
|
|
236
|
-
className: styles.actionHeaderItem,
|
|
237
|
-
onClick: function onClick() {
|
|
238
|
-
return setExpanded(function (v) {
|
|
239
|
-
return !v;
|
|
240
|
-
});
|
|
241
|
-
},
|
|
242
|
-
children: [icon && /*#__PURE__*/_jsx("img", {
|
|
243
|
-
src: icon,
|
|
244
|
-
alt: "icon",
|
|
245
|
-
className: styles.actionHeaderIcon
|
|
246
|
-
}), /*#__PURE__*/_jsx("span", {
|
|
247
|
-
className: styles.actionHeaderText,
|
|
248
|
-
children: name
|
|
249
|
-
}), /*#__PURE__*/_jsx("img", {
|
|
250
|
-
alt: "\u5C55\u5F00icon",
|
|
251
|
-
src: arrowDown,
|
|
252
|
-
className: styles.w('16px')
|
|
253
|
-
})]
|
|
254
|
-
}), expanded && /*#__PURE__*/_jsxs("div", {
|
|
255
|
-
className: styles.actionHeaderDetail,
|
|
256
|
-
children: [/*#__PURE__*/_jsxs("div", {
|
|
257
|
-
className: styles.actionDetailTitle,
|
|
258
|
-
onClick: function onClick() {
|
|
259
|
-
return setExpanded(function (v) {
|
|
260
|
-
return !v;
|
|
261
|
-
});
|
|
262
|
-
},
|
|
263
|
-
children: [/*#__PURE__*/_jsx("img", {
|
|
264
|
-
src: groupIcon,
|
|
265
|
-
alt: "",
|
|
266
|
-
className: clsx(styles.w(14))
|
|
267
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
268
|
-
className: clsx(styles.flex1, styles.pl(10)),
|
|
269
|
-
children: "\u9690\u85CF\u8FD0\u884C\u8FC7\u7A0B"
|
|
270
|
-
}), /*#__PURE__*/_jsx("img", {
|
|
271
|
-
alt: "\u6536\u8D77icon",
|
|
272
|
-
src: arrowUp,
|
|
273
|
-
className: styles.w('16px')
|
|
274
|
-
})]
|
|
275
|
-
}), thinks.map(function (action, idx) {
|
|
276
|
-
var _action$extra, _action$extra2, _action$extra3;
|
|
277
|
-
var thinkIcon = (action === null || action === void 0 ? void 0 : action.expandIcon) || (action === null || action === void 0 || (_action$extra = action.extra) === null || _action$extra === void 0 ? void 0 : _action$extra.expandIcon) || (action === null || action === void 0 || (_action$extra2 = action.extra) === null || _action$extra2 === void 0 ? void 0 : _action$extra2.icon) || (action === null || action === void 0 ? void 0 : action.icon);
|
|
278
|
-
var thinkCost = (action === null || action === void 0 ? void 0 : action.cost) || (action === null || action === void 0 || (_action$extra3 = action.extra) === null || _action$extra3 === void 0 ? void 0 : _action$extra3.cost);
|
|
279
|
-
return /*#__PURE__*/_jsxs("div", {
|
|
280
|
-
className: styles.actionHeaderDetailItem,
|
|
281
|
-
children: [thinkIcon && /*#__PURE__*/_jsx("img", {
|
|
282
|
-
src: thinkIcon,
|
|
283
|
-
alt: "icon",
|
|
284
|
-
className: styles.actionHeaderIcon
|
|
285
|
-
}), /*#__PURE__*/_jsx("span", {
|
|
286
|
-
children: action === null || action === void 0 ? void 0 : action.name
|
|
287
|
-
}), /*#__PURE__*/_jsx("span", {
|
|
288
|
-
className: styles.actionHeaderCost,
|
|
289
|
-
children: thinkCost ? "".concat(thinkCost, "s") : ''
|
|
290
|
-
})]
|
|
291
|
-
}, action.uniqueId || idx);
|
|
292
|
-
})]
|
|
293
|
-
})]
|
|
294
|
-
});
|
|
295
|
-
};
|
|
296
|
-
|
|
297
342
|
// 触发发送
|
|
298
343
|
var handleSend = function handleSend(type, content) {
|
|
299
344
|
if (content.trim()) {
|
|
@@ -372,18 +417,29 @@ var XAiChatbot = function XAiChatbot(props) {
|
|
|
372
417
|
children: messages !== null && messages !== void 0 && messages.length ? /*#__PURE__*/_jsx(Bubble.List, {
|
|
373
418
|
id: chatId,
|
|
374
419
|
roles: rolesObject,
|
|
420
|
+
className: styles.messageList,
|
|
375
421
|
items: messages.map(function (msg) {
|
|
376
422
|
var _ref4 = msg,
|
|
377
423
|
id = _ref4.id,
|
|
378
424
|
role = _ref4.role,
|
|
379
425
|
status = _ref4.status,
|
|
380
426
|
type = _ref4.type,
|
|
427
|
+
_ref4$execute = _ref4.execute,
|
|
428
|
+
execute = _ref4$execute === void 0 ? [] : _ref4$execute,
|
|
381
429
|
_ref4$thinks = _ref4.thinks,
|
|
382
|
-
thinks = _ref4$thinks === void 0 ?
|
|
430
|
+
thinks = _ref4$thinks === void 0 ? '' : _ref4$thinks,
|
|
383
431
|
_ref4$extra = _ref4.extra,
|
|
384
432
|
extra = _ref4$extra === void 0 ? {
|
|
385
433
|
noFooter: false
|
|
386
434
|
} : _ref4$extra;
|
|
435
|
+
var _useState7 = useState(false),
|
|
436
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
437
|
+
expanded = _useState8[0],
|
|
438
|
+
setExpanded = _useState8[1];
|
|
439
|
+
var _useState9 = useState(false),
|
|
440
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
441
|
+
executeExpanded = _useState10[0],
|
|
442
|
+
setExecuteExpanded = _useState10[1];
|
|
387
443
|
// 最后一条 AI消息标识
|
|
388
444
|
if (role === MessageRole.assistant) {
|
|
389
445
|
lastMessageId.current = id;
|
|
@@ -394,7 +450,8 @@ var XAiChatbot = function XAiChatbot(props) {
|
|
|
394
450
|
role: role,
|
|
395
451
|
loading: status === MessageStatus.init,
|
|
396
452
|
header: function header() {
|
|
397
|
-
return /*#__PURE__*/_jsx(ActionHeader, {
|
|
453
|
+
return messageTop || /*#__PURE__*/_jsx(ActionHeader, {
|
|
454
|
+
execute: execute,
|
|
398
455
|
thinks: thinks
|
|
399
456
|
});
|
|
400
457
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","useMemo","Tooltip","Bubble","Prompts","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","groupIcon","arrowUp","arrowDown","useChatbotContext","useStyles","GlobalStyle","XAiSender","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","defaultActions","key","icon","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$clearBtn","clearBtnShow","_mergedProps$inputSho","inputShow","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$empty","empty","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","_useState","_useState2","_slicedToArray","content","setContent","styles","lastMessageId","isScriptScrolling","chatId","concat","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref","data","_ref$lastMessage","lastMessage","className","flex","gap","children","map","action","index","title","cursor","onClick","MessageFooter","_ref2","_ref2$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","style","maxWidth","classNames","user","suggestion","visibility","variant","ActionHeader","_ref3","_first$extra","_ref3$thinks","thinks","renderActionHeader","_useState3","_useState4","expanded","setExpanded","length","onToggle","v","first","name","extra","actionHeaderWrapper","actionHeaderItem","src","alt","actionHeaderIcon","actionHeaderText","w","actionHeaderDetail","actionDetailTitle","flex1","pl","_action$extra","_action$extra2","_action$extra3","thinkIcon","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","uniqueId","handleSend","type","trim","handleChange","handleStop","NavBar","subtitle","confirmClear","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","items","msg","_ref4","role","status","_ref4$thinks","_ref4$extra","noFooter","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","render","htmlString","_msg$content3","bytes","vertical","onItemClick","info","description","footer","failed","value","onChange","onSubmit"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport {\n Button,\n Spin,\n Tooltip,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Prompts,\n} from '@ant-design/x';\nimport {\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\nimport XAiSender from '../XAiSender';\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n thinks: any[];\n renderActionHeader?: (params: { thinks: any[]; expanded: boolean; onToggle: () => void }) => React.ReactNode;\n}\n\n// 默认消息功能区\nconst defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n inputShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n empty = null,\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [content, setContent] = useState<string>(text); // 输入框文本\n const styles = useStyles();\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // ActionHeader 组件\n const ActionHeader: React.FC<ActionHeaderProps> = ({ thinks = [], renderActionHeader }) => {\n const [expanded, setExpanded] = useState(false);\n if (!thinks || thinks.length === 0) return null;\n if (renderActionHeader) {\n return renderActionHeader({ thinks, expanded, onToggle: () => setExpanded((v) => !v) });\n }\n // 默认渲染\n const first = thinks[0];\n const { name } = first;\n const icon = first?.icon || first?.extra?.icon;\n return (\n <div className={styles.actionHeaderWrapper}>\n { !expanded && (\n <div\n className={styles.actionHeaderItem}\n onClick={() => setExpanded((v) => !v)}\n >\n { icon && <img src={icon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span className={styles.actionHeaderText}>{name}</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n ) }\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded((v) => !v)}>\n <img src={groupIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n {thinks.map((action, idx) => {\n const thinkIcon = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n { thinkIcon && <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} /> }\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n };\n\n // 触发发送\n const handleSend = (type: string, content: string) => {\n if (content.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.(type, content);\n setContent(''); // 发送后清空输入框内容\n scrollToBottom();\n }\n };\n\n // 输出内容\n const handleChange = (content: string) => {\n setContent(content);\n }\n\n // 停止生成\n const handleStop = () => {\n onStop?.();\n }\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n };\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n empty ? empty : <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n items={messages.map((msg: any) => {\n const { id, role, status, type, thinks = [], extra = { noFooter: false } } = msg as Messages;\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => <ActionHeader thinks={thinks} />),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 图片类型\n if (type === 'ImageMessage') {\n return (\n <div style={{ minWidth: 0, maxWidth: 600 }}>\n <img src={msg.content?.bytes} alt=\"\" style={{ maxWidth: 680 }} />\n </div>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n return (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />\n </>\n )\n );\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n {/* 输入框 */}\n { inputShow && <XAiSender\n value={content}\n loading={loading}\n footerTips={footerTips}\n clearBtnShow={clearBtnShow}\n onChange={handleChange}\n onSubmit={handleSend}\n onStop={handleStop}\n onClear={confirmClear}\n /> }\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","useMemo","memo","Tooltip","Bubble","Prompts","UserOutlined","RedoOutlined","CopyOutlined","DeleteOutlined","clsx","MarkdownIt","reactHtmlParser","MarkdownGlobalStyle","MessageStatus","MessageRole","emptyIcon","arrowUp","arrowDown","thinkIcon","groupIcon","arrowDownBlue","useChatbotContext","useStyles","GlobalStyle","XAiSender","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","styles","md","html","linkify","typographer","defaultRender","renderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","relIndex","ActionHeader","_ref","_last$extra","_ref$execute","execute","_ref$thinks","thinks","_useState","_useState2","_slicedToArray","expanded","setExpanded","_useState3","_useState4","executeExpanded","setExecuteExpanded","length","last","name","icon","extra","className","actionHeaderWrapper","children","actionTitle","onClick","v","src","alt","actionHeaderIcon","flex1","w","actionHeaderDetail","actionDetailTitle","pl","actionDetailContent","executeHiddenWrapper","executeWrapper","executeTitle","executeHeaderIcon","executeContent","map","action","_action$extra","_action$extra2","_action$extra3","expandIcon","thinkCost","cost","actionHeaderDetailItem","actionHeaderCost","concat","uniqueId","defaultActions","key","tooltip","XAiChatbot","props","_useChatbotContext","mergedProps","_mergedProps$navbarSh","navbarShow","navbar","_mergedProps$renderNa","renderNavbar","_mergedProps$clearBtn","clearBtnShow","_mergedProps$inputSho","inputShow","_mergedProps$loading","loading","propLoading","messageTooltip","avatar","userAvatar","propMessages","messages","_mergedProps$text","text","_mergedProps$footerTi","footerTips","_mergedProps$empty","empty","_mergedProps$emptySta","emptyStateImage","_mergedProps$emptySta2","emptyStateText","_mergedProps$messageA","messageActions","onMessagesActionsCallback","onSuggestMessageClick","onSend","onClear","onStop","providerId","messageTop","_useState5","_useState6","content","setContent","lastMessageId","isScriptScrolling","chatId","scrollToBottom","current","setTimeout","mainChatWrapper","document","getElementById","scrollTop","scrollHeight","FooterActions","_ref2","data","_ref2$lastMessage","lastMessage","flex","gap","index","title","cursor","MessageFooter","_ref3","_ref3$lastMessage","rolesObject","assistant","placement","bg","typing","step","interval","style","maxWidth","classNames","user","suggestion","visibility","variant","handleSend","type","trim","handleChange","handleStop","NavBar","subtitle","confirmClear","EmptyState","emptyWrapper","emptyImg","weight","textColor","id","wrapper","messageContainer","List","roles","messageList","items","msg","_ref4","role","status","_ref4$execute","_ref4$thinks","_ref4$extra","noFooter","_useState7","_useState8","_useState9","_useState10","bubbleContent","init","header","_msg$content2","_msg$content","minWidth","render","htmlString","_msg$content3","bytes","vertical","onItemClick","info","description","footer","failed","value","onChange","onSubmit"],"sources":["../../../../src/components/XAiChatbot/index.tsx"],"sourcesContent":["// 文件: components/XAiChatbot/index.tsx\n\nimport React, {\n useRef,\n useState,\n useMemo,\n memo,\n} from 'react';\nimport {\n Tooltip,\n GetProp,\n} from 'antd';\nimport {\n Bubble,\n Prompts,\n} from '@ant-design/x';\nimport {\n UserOutlined,\n RedoOutlined,\n CopyOutlined,\n DeleteOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport MarkdownIt from 'markdown-it';\nimport reactHtmlParser from 'react-html-parser';\nimport MarkdownGlobalStyle from '@/styles/markdown';\nimport {\n MessageStatus,\n MessageRole,\n Messages,\n} from '@/types/XAiMessage';\nimport {\n XAiChatbotProps,\n ActionItem,\n} from '@/types/XAiChatbot';\nimport emptyIcon from '@/assets/empty.png';\nimport arrowUp from '@/assets/arrow-up.png';\nimport arrowDown from '@/assets/arrow-down.png';\nimport thinkIcon from '@/assets/think.png';\nimport groupIcon from '@/assets/group.png';\nimport arrowDownBlue from '@/assets/arrow-down-blue.png';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles, GlobalStyle } from './styles';\nimport XAiSender from '../XAiSender';\n\nconst styles = useStyles();\n\nconst md = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n});\n\n// 自定义 link_open 渲染规则\nconst defaultRender = md.renderer.rules.link_open || ((tokens, idx, options, env, self) => {\n return self.renderToken(tokens, idx, options);\n});\n\n// a 标签打开规则\nmd.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n // 添加 target=\"_blank\"\n const aIndex = tokens[idx].attrIndex('target');\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', '_blank']);\n } else {\n tokens[idx].attrs![aIndex][1] = '_blank';\n }\n // 添加 rel=\"noopener noreferrer\"\n const relIndex = tokens[idx].attrIndex('rel');\n if (relIndex < 0) {\n tokens[idx].attrPush(['rel', 'noopener noreferrer']);\n } else {\n tokens[idx].attrs![relIndex][1] = 'noopener noreferrer';\n }\n return defaultRender(tokens, idx, options, env, self);\n};\n\nexport interface ActionHeaderProps {\n execute: any[];\n thinks: string,\n}\n\n// ActionHeader 组件\nexport const ActionHeader: React.FC<ActionHeaderProps> = memo(({ execute = [], thinks = '' }) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(true);\n const [executeExpanded, setExecuteExpanded] = useState(false);\n\n if (!execute || execute.length === 0 || !thinks) return null;\n\n const last = execute[execute.length - 1] || {};\n const { name } = last;\n const icon = last?.icon || last?.extra?.icon;\n\n return (\n <div className={styles.actionHeaderWrapper}>\n {!expanded && (\n <div className={styles.actionTitle} onClick={() => setExpanded(v => !v)}>\n <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />\n <span className={styles.flex1}>运行过程</span>\n <img alt=\"展开icon\" src={arrowDown} className={styles.w('16px')} />\n </div>\n )}\n {expanded && (\n <div className={styles.actionHeaderDetail}>\n <div className={styles.actionDetailTitle} onClick={() => setExpanded(v => !v)}>\n <img src={thinkIcon} alt=\"\" className={clsx(styles.w(14))} />\n <div className={clsx(styles.flex1, styles.pl(10))}>隐藏运行过程</div>\n <img alt=\"收起icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n {thinks && (\n <div className={styles.actionDetailContent}>\n <span>{thinks}</span>\n </div>\n )}\n {!executeExpanded && (\n <div className={styles.executeHiddenWrapper} onClick={() => setExecuteExpanded(v => !v)}>\n {icon && <img src={icon} alt=\"icon\" />}\n <span className={styles.flex1}>{name}</span>\n <img alt=\"工具icon\" src={arrowDownBlue} className={styles.w('16px')} />\n </div>\n )}\n {executeExpanded && (\n <div className={styles.executeWrapper}>\n <div className={styles.executeTitle} onClick={() => setExecuteExpanded(v => !v)}>\n <img src={groupIcon} alt=\"icon\" className={styles.executeHeaderIcon} />\n <span className={styles.flex1}>隐藏运行详情</span>\n <img alt=\"展开详情icon\" src={arrowUp} className={styles.w('16px')} />\n </div>\n <div className={styles.executeContent}>\n {execute.map((action: any, idx: number) => {\n const thinkIcon = action?.expandIcon || action?.extra?.expandIcon || action?.extra?.icon || action?.icon;\n const thinkCost = action?.cost || action?.extra?.cost;\n return (\n <div key={action.uniqueId || idx} className={styles.actionHeaderDetailItem}>\n {thinkIcon && <img src={thinkIcon} alt=\"icon\" className={styles.actionHeaderIcon} />}\n <span>{action?.name}</span>\n <span className={styles.actionHeaderCost}>{thinkCost ? `${thinkCost}s` : ''}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n});\n\n// 默认消息功能区\nconst defaultActions: ActionItem[] = [\n {\n key: 'redo',\n icon: <RedoOutlined />,\n tooltip: '重新生成',\n },\n {\n key: 'copy',\n icon: <CopyOutlined />,\n tooltip: '复制',\n },\n {\n key: 'delete',\n icon: <DeleteOutlined />,\n tooltip: '删除',\n },\n];\n\n\nconst XAiChatbot: React.FC<XAiChatbotProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n\n const {\n navbarShow = false,\n navbar,\n renderNavbar = null,\n clearBtnShow = true,\n inputShow = true,\n // renderMessageContent,\n // quickReplies = [],\n // quickRepliesVisible = true,\n // onQuickReplyClick,\n loading: propLoading = false,\n messageTooltip,\n avatar,\n userAvatar,\n messages: propMessages,\n text = '',\n footerTips = '',\n empty = null,\n emptyStateImage = emptyIcon,\n emptyStateText = '我的智能体',\n messageActions = defaultActions,\n onMessagesActionsCallback,\n // 点击帮助消息\n onSuggestMessageClick,\n onSend,\n onClear,\n onStop,\n providerId,\n // 消息顶部\n messageTop,\n } = mergedProps;\n\n // 如果在 Provider 中,使用 Provider 的状态\n const messages = mergedProps.messages || propMessages || [];\n const loading = mergedProps.loading || propLoading;\n\n const [content, setContent] = useState<string>(text); // 输入框文本\n const lastMessageId = useRef<string>('');\n const isScriptScrolling = useRef<boolean>(false);\n const chatId = providerId ? `za-chatbot-container-${providerId}` : 'za-chatbot-container';\n\n // 滚动到最底部\n const scrollToBottom = () => {\n isScriptScrolling.current = true;\n setTimeout(() => {\n const mainChatWrapper = document.getElementById(chatId);\n if (mainChatWrapper) {\n mainChatWrapper.scrollTop = mainChatWrapper?.scrollHeight;\n }\n isScriptScrolling.current = false;\n }, 0);\n };\n\n // 消息功能区组件\n const FooterActions: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <div className={clsx(styles.flex, styles.gap(13))}>\n {messageActions.map((action: ActionItem, index: number) => {\n if (!lastMessage && action.key === 'redo') return null;\n return (\n <Tooltip key={action.key} title={action.tooltip}>\n <span className={styles.cursor('pointer')} onClick={() => onMessagesActionsCallback?.(index, data)}>\n {action.icon}\n </span>\n </Tooltip>\n );\n })}\n </div>\n );\n\n // 消息底部区域\n const MessageFooter: React.FC<{ data: Messages; lastMessage: boolean }> = ({ data, lastMessage = false }) => (\n <>\n {messageTooltip?.(data)}\n <FooterActions data={data} lastMessage={lastMessage} />\n </>\n );\n\n // 聊天角色\n const rolesObject: GetProp<typeof Bubble.List, 'roles'> = {\n assistant: {\n placement: 'start',\n avatar: { icon: avatar || <UserOutlined className={clsx(styles.bg('#fde3cf'), styles.userAvatar)} /> },\n typing: { step: 5, interval: 20 },\n style: {\n maxWidth: 600,\n },\n classNames: {\n content: 'assistant-content',\n },\n },\n user: {\n placement: 'end',\n avatar: { icon: userAvatar || <UserOutlined className={clsx(styles.bg('#87d068'), styles.userAvatar)} /> },\n classNames: {\n content: 'user-content',\n },\n },\n suggestion: {\n placement: 'start',\n avatar: { icon: <UserOutlined />, style: { visibility: 'hidden' } },\n variant: 'borderless',\n },\n };\n\n // 触发发送\n const handleSend = (type: string, content: string) => {\n if (content.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSend?.(type, content);\n setContent(''); // 发送后清空输入框内容\n scrollToBottom();\n }\n };\n\n // 输出内容\n const handleChange = (content: string) => {\n setContent(content);\n }\n\n // 停止生成\n const handleStop = () => {\n onStop?.();\n }\n\n // 导航栏\n const NavBar: React.FC = () => {\n if (renderNavbar) {\n return renderNavbar();\n } if (navbar?.title) {\n return (\n <header className={styles.navbar}>\n {navbar.avatar && <img src={navbar.avatar} className={styles.avatar} alt=\"\" />}\n <div>\n <div className={styles.title}>{navbar.title}</div>\n <div className={styles.subtitle}>{navbar.subtitle}</div>\n </div>\n </header>\n );\n }\n return <></>;\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n };\n\n // 空状态\n const EmptyState = useMemo(() => () => (\n empty ? empty : <div className={styles.emptyWrapper}>\n <img src={emptyStateImage} alt=\"空状态图标\" className={styles.emptyImg} />\n <div className={clsx(styles.text(16), styles.weight(600), styles.textColor('#343434'))}>{emptyStateText}</div>\n </div>\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ), [emptyStateImage, emptyStateText]);\n\n return (\n <>\n <GlobalStyle />\n <MarkdownGlobalStyle />\n <div id=\"x-ai-chatbot\" className={styles.wrapper}>\n { navbarShow && <NavBar /> }\n {/** 消息容器 */}\n <div className={styles.messageContainer}>\n {/* 消息列表主体 */}\n {\n messages?.length\n ? (\n <Bubble.List\n id={chatId}\n roles={rolesObject}\n className={styles.messageList}\n items={messages.map((msg: any) => {\n const { id, role, status, type, execute = [], thinks = '', extra = { noFooter: false } } = msg as Messages;\n const [expanded, setExpanded] = useState(false);\n const [executeExpanded, setExecuteExpanded] = useState(false);\n // 最后一条 AI消息标识\n if (role === MessageRole.assistant) {\n lastMessageId.current = id;\n }\n // 会话内容\n const bubbleContent: any = {\n key: id,\n role,\n loading: status === MessageStatus.init,\n header: (() => messageTop || \n <ActionHeader\n execute={execute}\n thinks={thinks}\n />),\n content: (() => {\n // 文本消息\n if (type === 'TextMessage') {\n // 用户消息\n if (role === 'user') {\n return (\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {msg.content?.text}\n </div>\n );\n }\n // 输出html字符串\n const html = md.render(msg.content?.text || '');\n // 生成React节点\n const htmlString = reactHtmlParser(html);\n return (\n <>\n <div\n className=\"markdown-body\"\n style={{\n minWidth: 0,\n maxWidth: 600,\n }}\n >\n {htmlString}\n </div>\n </>\n );\n }\n // 图片类型\n if (type === 'ImageMessage') {\n return (\n <div style={{ minWidth: 0, maxWidth: 600 }}>\n <img src={msg.content?.bytes} alt=\"\" style={{ maxWidth: 680 }} />\n </div>\n );\n }\n // 提示类型\n if (type === 'SuggestionMessage') {\n return (\n <Prompts\n vertical\n items={msg.content as any}\n onItemClick={(info) => {\n onSuggestMessageClick?.(info.data, id, 'text');\n if (info.data.description) {\n onSend?.('text', info.data.description as string);\n }\n }}\n />\n );\n }\n // 其他类型...\n return null;\n })(),\n };\n\n if (!extra.noFooter) {\n bubbleContent.footer = (() => {\n return (\n role === MessageRole.assistant && status !== MessageStatus.failed && (\n <>\n <MessageFooter data={msg as Messages} lastMessage={lastMessageId.current === id} />\n </>\n )\n );\n });\n }\n\n return bubbleContent;\n })}\n />\n )\n : (\n <EmptyState />\n )\n }\n </div>\n {/* 输入框 */}\n { inputShow && <XAiSender\n value={content}\n loading={loading}\n footerTips={footerTips}\n clearBtnShow={clearBtnShow}\n onChange={handleChange}\n onSubmit={handleSend}\n onStop={handleStop}\n onClear={confirmClear}\n /> }\n </div>\n </>\n );\n};\n\nexport default XAiChatbot;\n"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare const useStyles: () => {
|
|
|
7
7
|
title: string;
|
|
8
8
|
subtitle: string;
|
|
9
9
|
messageContainer: string;
|
|
10
|
+
messageList: string;
|
|
10
11
|
emptyWrapper: string;
|
|
11
12
|
emptyImg: string;
|
|
12
13
|
message: string;
|
|
@@ -16,14 +17,19 @@ export declare const useStyles: () => {
|
|
|
16
17
|
highlight: string;
|
|
17
18
|
inputBar: string;
|
|
18
19
|
input: string;
|
|
20
|
+
actionDetailContent: string;
|
|
19
21
|
actionHeaderWrapper: string;
|
|
20
|
-
actionHeaderItem: string;
|
|
21
22
|
actionHeaderIcon: string;
|
|
22
|
-
actionHeaderText: string;
|
|
23
23
|
actionHeaderDetail: string;
|
|
24
24
|
actionDetailTitle: string;
|
|
25
|
+
executeHeaderIcon: string;
|
|
26
|
+
actionTitle: string;
|
|
25
27
|
actionHeaderDetailItem: string;
|
|
26
28
|
actionHeaderCost: string;
|
|
29
|
+
executeHiddenWrapper: string;
|
|
30
|
+
executeTitle: string;
|
|
31
|
+
executeContent: string;
|
|
32
|
+
executeWrapper: string;
|
|
27
33
|
} & {
|
|
28
34
|
w: (width: string | number) => string;
|
|
29
35
|
h: (height: string | number) => string;
|