@ant-design/agentic-ui 2.29.59 → 2.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Bubble/List/index.d.ts +11 -0
- package/dist/Bubble/List/index.js +13 -1
- package/dist/Bubble/MessagesContent/EXCEPTION.js +11 -2
- package/dist/Bubble/MessagesContent/MarkdownPreview.js +34 -4
- package/dist/Bubble/MessagesContent/index.js +39 -10
- package/dist/Bubble/MessagesContent/style.js +55 -22
- package/dist/Bubble/UserBubble.js +3 -1
- package/dist/Bubble/type.d.ts +11 -0
- package/dist/Hooks/useLanguage.d.ts +1 -0
- package/dist/I18n/locales.d.ts +1 -0
- package/dist/I18n/locales.js +5 -3
- package/dist/MarkdownEditor/BaseMarkdownEditor.js +37 -5
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiTaskBlock.d.ts +4 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiTaskBlock.js +74 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiToolUseBarBlock.d.ts +4 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiToolUseBarBlock.js +114 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/agenticUiEmbedUtils.d.ts +20 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/agenticUiEmbedUtils.js +169 -0
- package/dist/MarkdownEditor/editor/elements/Table/EditableTable.d.ts +11 -0
- package/dist/MarkdownEditor/editor/elements/Table/EditableTable.js +207 -0
- package/dist/MarkdownEditor/editor/elements/Table/Table.js +10 -276
- package/dist/MarkdownEditor/editor/elements/Table/TableCellIndex/index.js +7 -227
- package/dist/MarkdownEditor/editor/elements/Table/TableCellIndexSpacer/index.js +20 -229
- package/dist/MarkdownEditor/editor/elements/Table/commands/tableCommands.d.ts +9 -0
- package/dist/MarkdownEditor/editor/elements/Table/commands/tableCommands.js +242 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/editableTableWidth.d.ts +20 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/editableTableWidth.js +60 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableColWidths.d.ts +6 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableColWidths.js +20 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableContentWidth.d.ts +10 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableContentWidth.js +103 -0
- package/dist/MarkdownEditor/editor/elements/index.js +7 -0
- package/dist/MarkdownEditor/editor/parser/parse/parseCode.js +33 -2
- package/dist/MarkdownEditor/editor/parser/parserSlateNodeToMarkdown.js +3 -0
- package/dist/MarkdownEditor/editor/plugins/handlePaste.js +4 -1
- package/dist/MarkdownEditor/plugin.d.ts +15 -0
- package/dist/MarkdownEditor/style.js +258 -326
- package/dist/MarkdownEditor/types.d.ts +14 -0
- package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.js +1 -1
- package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileIcon.js +2 -2
- package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileListItem.js +11 -8
- package/dist/MarkdownInputField/AttachmentButton/index.js +7 -2
- package/dist/MarkdownInputField/AttachmentButton/types.d.ts +5 -1
- package/dist/MarkdownInputField/AttachmentButton/utils.d.ts +7 -0
- package/dist/MarkdownInputField/AttachmentButton/utils.js +9 -1
- package/dist/MarkdownInputField/FileMapView/FileMapViewItem.js +10 -5
- package/dist/MarkdownInputField/FileUploadManager/index.d.ts +9 -0
- package/dist/MarkdownInputField/FileUploadManager/index.js +20 -4
- package/dist/MarkdownInputField/MarkdownInputField.js +5 -3
- package/dist/MarkdownInputField/SendActions/index.d.ts +9 -0
- package/dist/MarkdownInputField/SendActions/index.js +3 -2
- package/dist/MarkdownInputField/hooks/useMarkdownInputFieldRefs.js +10 -3
- package/dist/MarkdownInputField/utils/renderHelpers.d.ts +8 -1
- package/dist/MarkdownInputField/utils/renderHelpers.js +5 -1
- package/dist/MarkdownRenderer/AnimationText.d.ts +19 -0
- package/dist/MarkdownRenderer/AnimationText.js +226 -0
- package/dist/MarkdownRenderer/CharacterQueue.d.ts +36 -0
- package/dist/MarkdownRenderer/CharacterQueue.js +188 -0
- package/dist/MarkdownRenderer/MarkdownRenderer.d.ts +13 -0
- package/dist/MarkdownRenderer/MarkdownRenderer.js +362 -0
- package/dist/MarkdownRenderer/index.d.ts +11 -0
- package/dist/MarkdownRenderer/index.js +9 -0
- package/dist/MarkdownRenderer/renderers/AgenticUiTaskBlockRenderer.d.ts +6 -0
- package/dist/MarkdownRenderer/renderers/AgenticUiTaskBlockRenderer.js +66 -0
- package/dist/MarkdownRenderer/renderers/AgenticUiToolUseBarBlockRenderer.d.ts +6 -0
- package/dist/MarkdownRenderer/renderers/AgenticUiToolUseBarBlockRenderer.js +134 -0
- package/dist/MarkdownRenderer/renderers/ChartRenderer.d.ts +12 -0
- package/dist/MarkdownRenderer/renderers/ChartRenderer.js +395 -0
- package/dist/MarkdownRenderer/renderers/CodeRenderer.d.ts +7 -0
- package/dist/MarkdownRenderer/renderers/CodeRenderer.js +218 -0
- package/dist/MarkdownRenderer/renderers/MermaidRenderer.d.ts +7 -0
- package/dist/MarkdownRenderer/renderers/MermaidRenderer.js +43 -0
- package/dist/MarkdownRenderer/renderers/SchemaRenderer.d.ts +15 -0
- package/dist/MarkdownRenderer/renderers/SchemaRenderer.js +115 -0
- package/dist/MarkdownRenderer/renderers/index.d.ts +4 -0
- package/dist/MarkdownRenderer/renderers/index.js +4 -0
- package/dist/MarkdownRenderer/style.d.ts +16 -0
- package/dist/MarkdownRenderer/style.js +47 -0
- package/dist/MarkdownRenderer/types.d.ts +74 -0
- package/dist/MarkdownRenderer/types.js +1 -0
- package/dist/MarkdownRenderer/useMarkdownToReact.d.ts +23 -0
- package/dist/MarkdownRenderer/useMarkdownToReact.js +1241 -0
- package/dist/MarkdownRenderer/useStreaming.d.ts +29 -0
- package/dist/MarkdownRenderer/useStreaming.js +399 -0
- package/dist/Plugins/chart/AreaChart/index.js +4 -2
- package/dist/Plugins/chart/ChartRender.js +1 -0
- package/dist/Plugins/chart/LineChart/index.js +4 -2
- package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundary.d.ts +8 -0
- package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundary.js +31 -6
- package/dist/Plugins/chart/index.js +3 -1
- package/dist/Plugins/mermaid/style.js +0 -3
- package/dist/TaskList/TaskList.js +3 -12
- package/dist/TaskList/components/TaskListItem.js +3 -12
- package/dist/ThoughtChainList/ThoughtChainListItem.js +2 -4
- package/dist/ThoughtChainList/index.js +4 -21
- package/dist/ToolUseBarThink/index.js +20 -59
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/package.json +2 -1
|
@@ -169,6 +169,17 @@ export type BubbleListProps = {
|
|
|
169
169
|
onAvatarClick?: BubbleProps['onAvatarClick'];
|
|
170
170
|
onDoubleClick?: BubbleProps['onDoubleClick'];
|
|
171
171
|
markdownRenderConfig?: BubbleProps['markdownRenderConfig'];
|
|
172
|
+
/**
|
|
173
|
+
* 渲染模式快捷设置
|
|
174
|
+
* - 'slate': 使用 Slate 编辑器渲染(默认)
|
|
175
|
+
* - 'markdown': 使用轻量 MarkdownRenderer(无 Slate 实例,性能更优)
|
|
176
|
+
* 等效于 markdownRenderConfig={{ renderMode }}
|
|
177
|
+
*/
|
|
178
|
+
renderMode?: 'slate' | 'markdown';
|
|
179
|
+
/**
|
|
180
|
+
* 与 `renderMode` 等价,兼容协议字段 `renderType=markdown`
|
|
181
|
+
*/
|
|
182
|
+
renderType?: 'slate' | 'markdown';
|
|
172
183
|
docListProps?: BubbleProps['docListProps'];
|
|
173
184
|
/**
|
|
174
185
|
* 动态控制复制按钮的显隐
|
|
@@ -121,7 +121,19 @@ import { useStyle } from "./style";
|
|
|
121
121
|
* - 支持滚动和触摸事件
|
|
122
122
|
* - 提供消息复制功能
|
|
123
123
|
*/ export var BubbleList = function BubbleList(props) {
|
|
124
|
-
var bubbleListRef = props.bubbleListRef, bubbleRenderConfig = props.bubbleRenderConfig, className = props.className, legacyLoading = props.loading, isLoading = props.isLoading, styles = props.styles, classNames = props.classNames,
|
|
124
|
+
var bubbleListRef = props.bubbleListRef, bubbleRenderConfig = props.bubbleRenderConfig, className = props.className, legacyLoading = props.loading, isLoading = props.isLoading, styles = props.styles, classNames = props.classNames, markdownRenderConfigProp = props.markdownRenderConfig, renderMode = props.renderMode, renderType = props.renderType, userMeta = props.userMeta, assistantMeta = props.assistantMeta, _props_bubbleList = props.bubbleList, bubbleList = _props_bubbleList === void 0 ? [] : _props_bubbleList, style = props.style, onScroll = props.onScroll, onWheel = props.onWheel, onTouchMove = props.onTouchMove;
|
|
125
|
+
// 合并 renderMode / renderType 快捷属性到 markdownRenderConfig
|
|
126
|
+
var markdownRenderConfig = useMemo(function() {
|
|
127
|
+
var _ref, _ref1;
|
|
128
|
+
var mode = (_ref = (_ref1 = renderMode !== null && renderMode !== void 0 ? renderMode : renderType) !== null && _ref1 !== void 0 ? _ref1 : markdownRenderConfigProp === null || markdownRenderConfigProp === void 0 ? void 0 : markdownRenderConfigProp.renderMode) !== null && _ref !== void 0 ? _ref : markdownRenderConfigProp === null || markdownRenderConfigProp === void 0 ? void 0 : markdownRenderConfigProp.renderType;
|
|
129
|
+
return mode ? _object_spread_props(_object_spread({}, markdownRenderConfigProp), {
|
|
130
|
+
renderMode: mode
|
|
131
|
+
}) : markdownRenderConfigProp;
|
|
132
|
+
}, [
|
|
133
|
+
markdownRenderConfigProp,
|
|
134
|
+
renderMode,
|
|
135
|
+
renderType
|
|
136
|
+
]);
|
|
125
137
|
// 兼容旧属性
|
|
126
138
|
var loading = isLoading !== null && isLoading !== void 0 ? isLoading : legacyLoading;
|
|
127
139
|
var getPrefixCls = useContext(ConfigProvider.ConfigContext).getPrefixCls;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { theme } from "antd";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import { AnswerAlert } from "../../AnswerAlert";
|
|
4
|
+
import { useLocale } from "../../I18n";
|
|
3
5
|
/**
|
|
4
6
|
* EXCEPTION 组件 - 异常消息组件
|
|
5
7
|
*
|
|
@@ -33,7 +35,9 @@ import React from "react";
|
|
|
33
35
|
*/ export var EXCEPTION = function EXCEPTION(param) {
|
|
34
36
|
var extra = param.extra, content = param.content;
|
|
35
37
|
var token = theme.useToken().token;
|
|
36
|
-
|
|
38
|
+
var locale = useLocale();
|
|
39
|
+
var messageText = String(content !== null && content !== void 0 ? content : '').trim();
|
|
40
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, messageText ? /*#__PURE__*/ React.createElement("div", {
|
|
37
41
|
style: {
|
|
38
42
|
color: token.colorError,
|
|
39
43
|
lineHeight: '24px',
|
|
@@ -41,5 +45,10 @@ import React from "react";
|
|
|
41
45
|
wordBreak: 'break-all',
|
|
42
46
|
textWrap: 'wrap'
|
|
43
47
|
}
|
|
44
|
-
}, content),
|
|
48
|
+
}, content) : /*#__PURE__*/ React.createElement(AnswerAlert, {
|
|
49
|
+
message: (locale === null || locale === void 0 ? void 0 : locale['chat.message.generateFailed']) || '生成回答失败,请重试',
|
|
50
|
+
type: "error",
|
|
51
|
+
showIcon: true,
|
|
52
|
+
closable: true
|
|
53
|
+
}), extra);
|
|
45
54
|
};
|
|
@@ -55,6 +55,7 @@ import React, { useContext, useEffect, useMemo } from "react";
|
|
|
55
55
|
import { ErrorBoundary } from "react-error-boundary";
|
|
56
56
|
import { MarkdownEditor, parserMdToSchema } from "../..";
|
|
57
57
|
import { useLocale } from "../../I18n";
|
|
58
|
+
import { MarkdownRenderer } from "../../MarkdownRenderer";
|
|
58
59
|
import { BubbleConfigContext } from "../BubbleConfigProvide";
|
|
59
60
|
import { MessagesContext } from "./BubbleContext";
|
|
60
61
|
/**
|
|
@@ -93,7 +94,8 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
93
94
|
* />
|
|
94
95
|
* ```
|
|
95
96
|
*/ export var MarkdownPreview = function MarkdownPreview(props) {
|
|
96
|
-
var
|
|
97
|
+
var _ref, _ref1;
|
|
98
|
+
var _props_markdownRenderConfig, _props_markdownRenderConfig1, _props_originData, _props_originData1;
|
|
97
99
|
var content = props.content, extra = props.extra, typing = props.typing, htmlRef = props.htmlRef, fncProps = props.fncProps, docListNode = props.docListNode, beforeContent = props.beforeContent, afterContent = props.afterContent;
|
|
98
100
|
var MarkdownEditorRef = React.useRef(undefined);
|
|
99
101
|
var hidePadding = (useContext(MessagesContext) || {}).hidePadding;
|
|
@@ -102,6 +104,7 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
102
104
|
var standalone = config === null || config === void 0 ? void 0 : config.standalone;
|
|
103
105
|
var extraShowOnHover = config === null || config === void 0 ? void 0 : config.extraShowOnHover;
|
|
104
106
|
var token = theme.useToken().token;
|
|
107
|
+
var renderMode = (_ref = (_ref1 = (_props_markdownRenderConfig = props.markdownRenderConfig) === null || _props_markdownRenderConfig === void 0 ? void 0 : _props_markdownRenderConfig.renderMode) !== null && _ref1 !== void 0 ? _ref1 : (_props_markdownRenderConfig1 = props.markdownRenderConfig) === null || _props_markdownRenderConfig1 === void 0 ? void 0 : _props_markdownRenderConfig1.renderType) !== null && _ref !== void 0 ? _ref : 'slate';
|
|
105
108
|
var isPaddingHidden = useMemo(function() {
|
|
106
109
|
return !!extra;
|
|
107
110
|
}, [
|
|
@@ -110,14 +113,35 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
110
113
|
]);
|
|
111
114
|
useEffect(function() {
|
|
112
115
|
var _MarkdownEditorRef_current;
|
|
116
|
+
if (renderMode !== 'slate') return;
|
|
113
117
|
var schema = parserMdToSchema(content).schema;
|
|
114
118
|
(_MarkdownEditorRef_current = MarkdownEditorRef.current) === null || _MarkdownEditorRef_current === void 0 ? void 0 : _MarkdownEditorRef_current.store.updateNodeList(schema);
|
|
115
119
|
}, [
|
|
116
|
-
content
|
|
120
|
+
content,
|
|
121
|
+
renderMode
|
|
117
122
|
]);
|
|
118
123
|
var markdown = useMemo(function() {
|
|
119
124
|
var _ref;
|
|
120
125
|
var _content_includes, _htmlRef_current, _htmlRef_current1, _props_markdownRenderConfig, _props_originData, _props_originData1, _props_originData2, _props_markdownRenderConfig1, _props_markdownRenderConfig2, _props_markdownRenderConfig3;
|
|
126
|
+
// MarkdownRenderer 渲染路径——轻量,不创建 Slate 实例
|
|
127
|
+
if (renderMode === 'markdown') {
|
|
128
|
+
var _props_originData3, _props_markdownRenderConfig4, _props_markdownRenderConfig5, _props_markdownRenderConfig6, _props_markdownRenderConfig7;
|
|
129
|
+
return /*#__PURE__*/ React.createElement(MarkdownRenderer, {
|
|
130
|
+
content: content,
|
|
131
|
+
streaming: typing,
|
|
132
|
+
isFinished: (_props_originData3 = props.originData) === null || _props_originData3 === void 0 ? void 0 : _props_originData3.isFinished,
|
|
133
|
+
plugins: (_props_markdownRenderConfig4 = props.markdownRenderConfig) === null || _props_markdownRenderConfig4 === void 0 ? void 0 : _props_markdownRenderConfig4.plugins,
|
|
134
|
+
fncProps: fncProps,
|
|
135
|
+
style: _object_spread({
|
|
136
|
+
maxWidth: standalone ? '100%' : undefined,
|
|
137
|
+
padding: isPaddingHidden ? 0 : undefined,
|
|
138
|
+
margin: isPaddingHidden ? 0 : undefined
|
|
139
|
+
}, ((_props_markdownRenderConfig5 = props.markdownRenderConfig) === null || _props_markdownRenderConfig5 === void 0 ? void 0 : _props_markdownRenderConfig5.style) || {}),
|
|
140
|
+
codeProps: (_props_markdownRenderConfig6 = props.markdownRenderConfig) === null || _props_markdownRenderConfig6 === void 0 ? void 0 : _props_markdownRenderConfig6.codeProps,
|
|
141
|
+
apaasify: (_props_markdownRenderConfig7 = props.markdownRenderConfig) === null || _props_markdownRenderConfig7 === void 0 ? void 0 : _props_markdownRenderConfig7.apaasify
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
// Slate 渲染路径——保持向后兼容
|
|
121
145
|
var minWidth = (content === null || content === void 0 ? void 0 : (_content_includes = content.includes) === null || _content_includes === void 0 ? void 0 : _content_includes.call(content, 'chartType')) ? standalone ? Math.max(((htmlRef === null || htmlRef === void 0 ? void 0 : (_htmlRef_current = htmlRef.current) === null || _htmlRef_current === void 0 ? void 0 : _htmlRef_current.clientWidth) || 600) - 23, 500) : Math.min(((htmlRef === null || htmlRef === void 0 ? void 0 : (_htmlRef_current1 = htmlRef.current) === null || _htmlRef_current1 === void 0 ? void 0 : _htmlRef_current1.clientWidth) || 600) - 128, 500) : undefined;
|
|
122
146
|
return /*#__PURE__*/ React.createElement(MarkdownEditor, _object_spread_props(_object_spread({}, props.markdownRenderConfig || {}), {
|
|
123
147
|
fncProps: fncProps,
|
|
@@ -154,8 +178,13 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
154
178
|
hidePadding,
|
|
155
179
|
typing,
|
|
156
180
|
(_props_originData = props.originData) === null || _props_originData === void 0 ? void 0 : _props_originData.isLast,
|
|
181
|
+
(_props_originData1 = props.originData) === null || _props_originData1 === void 0 ? void 0 : _props_originData1.isFinished,
|
|
157
182
|
isPaddingHidden,
|
|
158
|
-
content
|
|
183
|
+
content,
|
|
184
|
+
renderMode,
|
|
185
|
+
props.markdownRenderConfig,
|
|
186
|
+
fncProps,
|
|
187
|
+
standalone
|
|
159
188
|
]);
|
|
160
189
|
var errorDom = /*#__PURE__*/ React.createElement("div", {
|
|
161
190
|
style: {
|
|
@@ -182,7 +211,8 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
182
211
|
}, beforeContent, markdown, docListNode, afterContent), extra);
|
|
183
212
|
}
|
|
184
213
|
// extraShowOnHover 开启时,无 extra 直接返回内容,避免 hover 出现空浮层
|
|
185
|
-
|
|
214
|
+
// 生成中(typing)时不使用 Popover,避免 hover 展示 extra
|
|
215
|
+
if (!extra || typing) {
|
|
186
216
|
return /*#__PURE__*/ React.createElement("div", {
|
|
187
217
|
style: {
|
|
188
218
|
display: 'flex',
|
|
@@ -274,6 +274,12 @@ import { EXCEPTION } from "./EXCEPTION";
|
|
|
274
274
|
import { MarkdownPreview } from "./MarkdownPreview";
|
|
275
275
|
import { useMessagesContentStyle } from "./style";
|
|
276
276
|
export var LOADING_FLAT = '...';
|
|
277
|
+
var THINKING_FALLBACK_TEXT = '思考中...';
|
|
278
|
+
var THINKING_DOT_INDICES = [
|
|
279
|
+
0,
|
|
280
|
+
1,
|
|
281
|
+
2
|
|
282
|
+
];
|
|
277
283
|
/**
|
|
278
284
|
* BubbleMessageDisplay 组件 - 聊天气泡消息显示组件
|
|
279
285
|
*
|
|
@@ -364,14 +370,30 @@ export var LOADING_FLAT = '...';
|
|
|
364
370
|
contentAfterDom
|
|
365
371
|
]);
|
|
366
372
|
var messageContent = useMemo(function() {
|
|
367
|
-
var _props_originData, _props_bubbleRenderConfig, _props_bubbleRenderConfig1, _props_bubbleRenderConfig2, _props_bubbleRenderConfig3, _props_bubbleRenderConfig_extraRender, _props_bubbleRenderConfig4, _props_originData_extra_tags_includes, _props_originData_extra_tags, _props_originData_extra, _props_originData1, _props_originData2, _props_originData_extra1, _props_originData3, _props_originData_extra2, _props_originData4, _props_originData5, _props_originData_extra3, _props_originData6, _props_docListProps, _props_originData7, _props_markdownRenderConfig, _props_originData8, _props_originData9, _props_originData10;
|
|
373
|
+
var _props_originData, _props_bubbleRenderConfig, _props_bubbleRenderConfig1, _props_bubbleRenderConfig2, _props_bubbleRenderConfig3, _props_bubbleRenderConfig_extraRender, _props_bubbleRenderConfig4, _props_originData_extra_tags_includes, _props_originData_extra_tags, _props_originData_extra, _props_originData1, _props_originData2, _props_originData_extra1, _props_originData3, _props_originData_extra2, _props_originData4, _props_originData5, _props_originData_extra3, _props_originData6, _props_docListProps, _props_originData7, _props_markdownRenderConfig, _props_originData8, _props_originData_extra4, _props_originData9, _props_originData10, _props_originData11;
|
|
368
374
|
if (content === LOADING_FLAT || !((_props_originData = props.originData) === null || _props_originData === void 0 ? void 0 : _props_originData.isFinished) && !content) {
|
|
369
375
|
var _context_thoughtChain;
|
|
370
376
|
if ((context === null || context === void 0 ? void 0 : (_context_thoughtChain = context.thoughtChain) === null || _context_thoughtChain === void 0 ? void 0 : _context_thoughtChain.alwaysRender) !== true) {
|
|
377
|
+
var _props_classNames, _props_styles;
|
|
371
378
|
return wrapSSR(/*#__PURE__*/ React.createElement("div", {
|
|
372
379
|
className: classNames('agent-item-default-content', "".concat(baseChatCls, "-messages-content-loading"), (context === null || context === void 0 ? void 0 : context.compact) ? "".concat(baseChatCls, "-messages-content-loading-compact") : "".concat(baseChatCls, "-messages-content-loading-default"), hashId),
|
|
373
|
-
"data-testid": "message-content"
|
|
374
|
-
|
|
380
|
+
"data-testid": "message-content",
|
|
381
|
+
role: "status",
|
|
382
|
+
"aria-live": "polite",
|
|
383
|
+
"aria-atomic": "true",
|
|
384
|
+
"aria-label": (locale === null || locale === void 0 ? void 0 : locale['chat.message.thinking']) || THINKING_FALLBACK_TEXT
|
|
385
|
+
}, /*#__PURE__*/ React.createElement("span", {
|
|
386
|
+
className: classNames("".concat(baseChatCls, "-messages-content-loading-dots"), (_props_classNames = props.classNames) === null || _props_classNames === void 0 ? void 0 : _props_classNames.bubbleLoadingIconClassName),
|
|
387
|
+
style: (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.bubbleLoadingIconStyle,
|
|
388
|
+
"data-testid": "message-thinking-dots",
|
|
389
|
+
"aria-hidden": "true"
|
|
390
|
+
}, THINKING_DOT_INDICES.map(function(dotIndex) {
|
|
391
|
+
return /*#__PURE__*/ React.createElement("span", {
|
|
392
|
+
key: dotIndex,
|
|
393
|
+
className: "".concat(baseChatCls, "-messages-content-loading-dot"),
|
|
394
|
+
"data-testid": "message-thinking-dot"
|
|
395
|
+
});
|
|
396
|
+
}))));
|
|
375
397
|
}
|
|
376
398
|
return null;
|
|
377
399
|
}
|
|
@@ -509,8 +531,15 @@ export var LOADING_FLAT = '...';
|
|
|
509
531
|
} : undefined
|
|
510
532
|
});
|
|
511
533
|
var extra = (props === null || props === void 0 ? void 0 : (_props_bubbleRenderConfig2 = props.bubbleRenderConfig) === null || _props_bubbleRenderConfig2 === void 0 ? void 0 : _props_bubbleRenderConfig2.extraRender) !== false && (props === null || props === void 0 ? void 0 : (_props_bubbleRenderConfig3 = props.bubbleRenderConfig) === null || _props_bubbleRenderConfig3 === void 0 ? void 0 : _props_bubbleRenderConfig3.extraRender) ? props === null || props === void 0 ? void 0 : (_props_bubbleRenderConfig4 = props.bubbleRenderConfig) === null || _props_bubbleRenderConfig4 === void 0 ? void 0 : (_props_bubbleRenderConfig_extraRender = _props_bubbleRenderConfig4.extraRender) === null || _props_bubbleRenderConfig_extraRender === void 0 ? void 0 : _props_bubbleRenderConfig_extraRender.call(_props_bubbleRenderConfig4, props, defaultExtra) : defaultExtra;
|
|
512
|
-
if (
|
|
513
|
-
|
|
534
|
+
if (/*#__PURE__*/ React.isValidElement(content)) {
|
|
535
|
+
return wrapSSR(/*#__PURE__*/ React.createElement("div", {
|
|
536
|
+
className: classNames('agent-item-default-content', "".concat(baseChatCls, "-messages-content-message"), hashId),
|
|
537
|
+
"data-testid": "message-box-content",
|
|
538
|
+
onDoubleClick: props.onDoubleClick
|
|
539
|
+
}, beforeContent, content, afterContent, extra));
|
|
540
|
+
}
|
|
541
|
+
if (content === '...' || props.placement !== 'left' || (props === null || props === void 0 ? void 0 : (_props_originData1 = props.originData) === null || _props_originData1 === void 0 ? void 0 : (_props_originData_extra = _props_originData1.extra) === null || _props_originData_extra === void 0 ? void 0 : (_props_originData_extra_tags = _props_originData_extra.tags) === null || _props_originData_extra_tags === void 0 ? void 0 : (_props_originData_extra_tags_includes = _props_originData_extra_tags.includes) === null || _props_originData_extra_tags_includes === void 0 ? void 0 : _props_originData_extra_tags_includes.call(_props_originData_extra_tags, 'REJECT_TO_ANSWER')) || ((_props_originData2 = props.originData) === null || _props_originData2 === void 0 ? void 0 : _props_originData2.role) === 'bot') {
|
|
542
|
+
var _props_originData12, _props_originData13;
|
|
514
543
|
return wrapSSR(/*#__PURE__*/ React.createElement("div", {
|
|
515
544
|
className: classNames('agent-item-default-content', "".concat(baseChatCls, "-messages-content-message"), hashId),
|
|
516
545
|
"data-testid": "message-box-content",
|
|
@@ -521,14 +550,14 @@ export var LOADING_FLAT = '...';
|
|
|
521
550
|
placement: props.placement,
|
|
522
551
|
markdownRenderConfig: props.markdownRenderConfig,
|
|
523
552
|
isFinished: true,
|
|
524
|
-
style: ((
|
|
553
|
+
style: ((_props_originData12 = props.originData) === null || _props_originData12 === void 0 ? void 0 : _props_originData12.role) === 'bot' ? {} : {
|
|
525
554
|
color: '#343A45'
|
|
526
555
|
} // 使用类名方式需要传递className,这里保留style以兼容现有API
|
|
527
556
|
,
|
|
528
557
|
extra: extra,
|
|
529
558
|
typing: false,
|
|
530
559
|
originData: props.originData,
|
|
531
|
-
content: (
|
|
560
|
+
content: (_props_originData13 = props.originData) === null || _props_originData13 === void 0 ? void 0 : _props_originData13.content
|
|
532
561
|
})));
|
|
533
562
|
}
|
|
534
563
|
// answerStatus= 'EXCEPTION'时 一定是异常情况
|
|
@@ -547,7 +576,7 @@ export var LOADING_FLAT = '...';
|
|
|
547
576
|
var _item_output_chunks, _item_output;
|
|
548
577
|
return ((item === null || item === void 0 ? void 0 : (_item_output = item.output) === null || _item_output === void 0 ? void 0 : (_item_output_chunks = _item_output.chunks) === null || _item_output_chunks === void 0 ? void 0 : _item_output_chunks.length) || 0) > 0;
|
|
549
578
|
})) && ((_props_docListProps = props.docListProps) === null || _props_docListProps === void 0 ? void 0 : _props_docListProps.enable) !== false) {
|
|
550
|
-
var _props_docListProps1,
|
|
579
|
+
var _props_docListProps1, _props_originData_extra5, _props_originData14;
|
|
551
580
|
docInfoDom = /*#__PURE__*/ React.createElement(DocInfoList, _object_spread_props(_object_spread({
|
|
552
581
|
options: docInfoList.map(function(item) {
|
|
553
582
|
var _item_output;
|
|
@@ -556,7 +585,7 @@ export var LOADING_FLAT = '...';
|
|
|
556
585
|
return item;
|
|
557
586
|
})
|
|
558
587
|
}, props.docListProps), {
|
|
559
|
-
reference_url_info_list: ((_props_docListProps1 = props.docListProps) === null || _props_docListProps1 === void 0 ? void 0 : _props_docListProps1.reference_url_info_list) || ((
|
|
588
|
+
reference_url_info_list: ((_props_docListProps1 = props.docListProps) === null || _props_docListProps1 === void 0 ? void 0 : _props_docListProps1.reference_url_info_list) || ((_props_originData14 = props.originData) === null || _props_originData14 === void 0 ? void 0 : (_props_originData_extra5 = _props_originData14.extra) === null || _props_originData_extra5 === void 0 ? void 0 : _props_originData_extra5.reference_url_info_list) || []
|
|
560
589
|
}));
|
|
561
590
|
}
|
|
562
591
|
return wrapSSR(/*#__PURE__*/ React.createElement(MarkdownPreview, {
|
|
@@ -635,7 +664,7 @@ export var LOADING_FLAT = '...';
|
|
|
635
664
|
docListNode: docInfoDom,
|
|
636
665
|
extra: isExtraNull ? null : extra,
|
|
637
666
|
htmlRef: props.bubbleListRef,
|
|
638
|
-
content: ((_props_originData8 = props.originData) === null || _props_originData8 === void 0 ? void 0 : _props_originData8.isFinished) ? (
|
|
667
|
+
content: ((_props_originData8 = props.originData) === null || _props_originData8 === void 0 ? void 0 : _props_originData8.isFinished) && (props === null || props === void 0 ? void 0 : (_props_originData9 = props.originData) === null || _props_originData9 === void 0 ? void 0 : (_props_originData_extra4 = _props_originData9.extra) === null || _props_originData_extra4 === void 0 ? void 0 : _props_originData_extra4.answerStatus) === 'EXCEPTION' ? ((_props_originData10 = props.originData) === null || _props_originData10 === void 0 ? void 0 : _props_originData10.content) || (locale === null || locale === void 0 ? void 0 : locale['chat.message.generateFailed']) || '生成回答失败,请重试' : ((_props_originData11 = props.originData) === null || _props_originData11 === void 0 ? void 0 : _props_originData11.content) || '',
|
|
639
668
|
originData: props.originData
|
|
640
669
|
}));
|
|
641
670
|
}, [
|
|
@@ -51,35 +51,59 @@ function _object_spread_props(target, source) {
|
|
|
51
51
|
return target;
|
|
52
52
|
}
|
|
53
53
|
import { useEditorStyleRegister } from "../../Hooks/useStyle";
|
|
54
|
+
var THINKING_DOT_SIZE = 4;
|
|
55
|
+
var THINKING_DOT_GAP = 4;
|
|
56
|
+
var THINKING_DOT_ANIMATION = 'agenticBubbleThinkingDotPulse';
|
|
57
|
+
var THINKING_DOT_ANIMATION_DURATION = '1.2s';
|
|
58
|
+
var THINKING_LOADING_PADDING = {
|
|
59
|
+
paddingLeft: 'var(--padding-5x)',
|
|
60
|
+
paddingRight: 'var(--padding-5x)',
|
|
61
|
+
paddingTop: 'var(--padding-1x)',
|
|
62
|
+
paddingBottom: 'var(--padding-2x)'
|
|
63
|
+
};
|
|
54
64
|
var genStyle = function genStyle(token) {
|
|
55
|
-
var _obj;
|
|
56
|
-
return
|
|
57
|
-
_define_property(
|
|
65
|
+
var _obj, _obj1;
|
|
66
|
+
return _obj1 = {}, // 加载状态容器(compact模式)
|
|
67
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-loading"), _object_spread_props(_object_spread({
|
|
58
68
|
lineHeight: '24px',
|
|
59
69
|
display: 'flex',
|
|
60
70
|
alignItems: 'center',
|
|
61
|
-
gap: 'var(--padding-2x)'
|
|
62
|
-
|
|
63
|
-
'
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
'
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}),
|
|
70
|
-
|
|
71
|
+
gap: 'var(--padding-2x)'
|
|
72
|
+
}, THINKING_LOADING_PADDING), (_obj = {
|
|
73
|
+
color: 'rgb(102, 111, 141)'
|
|
74
|
+
}, _define_property(_obj, "&-dots", {
|
|
75
|
+
display: 'inline-flex',
|
|
76
|
+
alignItems: 'center',
|
|
77
|
+
gap: THINKING_DOT_GAP,
|
|
78
|
+
lineHeight: 1
|
|
79
|
+
}), _define_property(_obj, "&-dot", {
|
|
80
|
+
width: THINKING_DOT_SIZE,
|
|
81
|
+
height: THINKING_DOT_SIZE,
|
|
82
|
+
borderRadius: '50%',
|
|
83
|
+
backgroundColor: 'currentColor',
|
|
84
|
+
opacity: 0.35,
|
|
85
|
+
animationName: THINKING_DOT_ANIMATION,
|
|
86
|
+
animationDuration: THINKING_DOT_ANIMATION_DURATION,
|
|
87
|
+
animationTimingFunction: 'ease-in-out',
|
|
88
|
+
animationIterationCount: 'infinite'
|
|
89
|
+
}), _define_property(_obj, "&-dot:nth-of-type(2)", {
|
|
90
|
+
animationDelay: '0.2s'
|
|
91
|
+
}), _define_property(_obj, "&-dot:nth-of-type(3)", {
|
|
92
|
+
animationDelay: '0.4s'
|
|
93
|
+
}), _define_property(_obj, '&-compact', _object_spread({}, THINKING_LOADING_PADDING)), _define_property(_obj, '&-default', _object_spread({}, THINKING_LOADING_PADDING)), _obj))), // 消息内容容器
|
|
94
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-message"), {
|
|
71
95
|
lineHeight: '24px'
|
|
72
96
|
}), // 用户消息文本颜色
|
|
73
|
-
_define_property(
|
|
97
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-user-text"), {
|
|
74
98
|
color: '#343A45'
|
|
75
99
|
}), // Popover 标题容器
|
|
76
|
-
_define_property(
|
|
100
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-popover-title"), {
|
|
77
101
|
display: 'flex',
|
|
78
102
|
justifyContent: 'space-between',
|
|
79
103
|
alignItems: 'center',
|
|
80
104
|
fontSize: '1em'
|
|
81
105
|
}), // Popover 内容容器
|
|
82
|
-
_define_property(
|
|
106
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-popover-content"), {
|
|
83
107
|
width: 400,
|
|
84
108
|
display: 'flex',
|
|
85
109
|
maxHeight: 400,
|
|
@@ -87,17 +111,17 @@ var genStyle = function genStyle(token) {
|
|
|
87
111
|
flexDirection: 'column',
|
|
88
112
|
gap: 'var(--padding-3x)'
|
|
89
113
|
}), // MarkdownEditor 容器样式
|
|
90
|
-
_define_property(
|
|
114
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-markdown-editor"), {
|
|
91
115
|
padding: 0,
|
|
92
116
|
width: '100%'
|
|
93
117
|
}), // 重新生成按钮容器
|
|
94
|
-
_define_property(
|
|
118
|
+
_define_property(_obj1, "div[data-messages-content-retry]", {
|
|
95
119
|
gap: 4,
|
|
96
120
|
display: 'flex',
|
|
97
121
|
cursor: 'pointer',
|
|
98
122
|
alignItems: 'center'
|
|
99
123
|
}), // 文档标签容器
|
|
100
|
-
_define_property(
|
|
124
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-doc-tag"), {
|
|
101
125
|
borderRadius: 'var(--padding-5x)',
|
|
102
126
|
opacity: 1,
|
|
103
127
|
display: 'flex',
|
|
@@ -110,16 +134,25 @@ var genStyle = function genStyle(token) {
|
|
|
110
134
|
cursor: 'pointer',
|
|
111
135
|
zIndex: 1
|
|
112
136
|
}), // 文档标签图标
|
|
113
|
-
_define_property(
|
|
137
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-doc-tag-icon"), {
|
|
114
138
|
width: 24
|
|
115
139
|
}), // 文档名称文本
|
|
116
|
-
_define_property(
|
|
140
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-doc-name"), {
|
|
117
141
|
overflow: 'hidden',
|
|
118
142
|
textOverflow: 'ellipsis',
|
|
119
143
|
WebkitBoxOrient: 'vertical',
|
|
120
144
|
WebkitLineClamp: 2,
|
|
121
145
|
display: '-webkit-box'
|
|
122
|
-
}),
|
|
146
|
+
}), _define_property(_obj1, "@keyframes ".concat(THINKING_DOT_ANIMATION), {
|
|
147
|
+
'0%, 80%, 100%': {
|
|
148
|
+
transform: 'scale(0.6)',
|
|
149
|
+
opacity: 0.35
|
|
150
|
+
},
|
|
151
|
+
'40%': {
|
|
152
|
+
transform: 'scale(1)',
|
|
153
|
+
opacity: 1
|
|
154
|
+
}
|
|
155
|
+
}), _obj1;
|
|
123
156
|
};
|
|
124
157
|
export function useMessagesContentStyle(componentCls) {
|
|
125
158
|
return useEditorStyleRegister('BubbleMessageDisplay', function(token) {
|
|
@@ -175,12 +175,14 @@ var getContentStyle = function getContentStyle(standalone, customStyle) {
|
|
|
175
175
|
var contentContainerStyle = getContentContainerStyle();
|
|
176
176
|
var fileViewStyle = getFileViewStyle(standalone, styles === null || styles === void 0 ? void 0 : styles.bubbleListItemExtraStyle);
|
|
177
177
|
var contentStyle = getContentStyle(standalone, styles === null || styles === void 0 ? void 0 : styles.bubbleListItemContentStyle);
|
|
178
|
+
// 用户气泡默认 hover 展示复制等操作,父级可透传覆盖
|
|
179
|
+
var effectiveExtraShowOnHover = extraShowOnHover !== null && extraShowOnHover !== void 0 ? extraShowOnHover : true;
|
|
178
180
|
var _obj;
|
|
179
181
|
var itemDom = wrapSSR(/*#__PURE__*/ React.createElement(BubbleConfigContext.Provider, {
|
|
180
182
|
value: {
|
|
181
183
|
compact: compact,
|
|
182
184
|
standalone: !!standalone,
|
|
183
|
-
extraShowOnHover:
|
|
185
|
+
extraShowOnHover: effectiveExtraShowOnHover,
|
|
184
186
|
bubble: props
|
|
185
187
|
}
|
|
186
188
|
}, /*#__PURE__*/ React.createElement(Flex, {
|
package/dist/Bubble/type.d.ts
CHANGED
|
@@ -297,6 +297,17 @@ export interface BubbleProps<T = Record<string, any>> extends BubbleItemStylePro
|
|
|
297
297
|
* Markdown 渲染配置
|
|
298
298
|
*/
|
|
299
299
|
markdownRenderConfig?: MarkdownEditorProps;
|
|
300
|
+
/**
|
|
301
|
+
* 渲染模式快捷设置
|
|
302
|
+
* - 'slate': 使用 Slate 编辑器渲染(默认)
|
|
303
|
+
* - 'markdown': 使用轻量 MarkdownRenderer(无 Slate 实例,性能更优)
|
|
304
|
+
* 等效于 markdownRenderConfig={{ renderMode }}
|
|
305
|
+
*/
|
|
306
|
+
renderMode?: 'slate' | 'markdown';
|
|
307
|
+
/**
|
|
308
|
+
* 与 `renderMode` 等价,兼容部分协议字段(如 `renderType=markdown`)
|
|
309
|
+
*/
|
|
310
|
+
renderType?: 'slate' | 'markdown';
|
|
300
311
|
/**
|
|
301
312
|
* 自定义配置
|
|
302
313
|
*/
|
|
@@ -406,6 +406,7 @@ export declare function useLanguage(): {
|
|
|
406
406
|
'comment.jumpTo': string;
|
|
407
407
|
'chart.renderFailed': string;
|
|
408
408
|
'chart.renderFailedSubTitle': string;
|
|
409
|
+
'chart.retry': string;
|
|
409
410
|
'chart.legend.show': string;
|
|
410
411
|
'chart.legend.hide': string;
|
|
411
412
|
'chart.legend.prevPage': string;
|
package/dist/I18n/locales.d.ts
CHANGED
|
@@ -368,6 +368,7 @@ export declare const cnLabels: {
|
|
|
368
368
|
'comment.jumpTo': string;
|
|
369
369
|
'chart.renderFailed': string;
|
|
370
370
|
'chart.renderFailedSubTitle': string;
|
|
371
|
+
'chart.retry': string;
|
|
371
372
|
'chart.legend.show': string;
|
|
372
373
|
'chart.legend.hide': string;
|
|
373
374
|
'chart.legend.prevPage': string;
|
package/dist/I18n/locales.js
CHANGED
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
'workspace.file.linkCopied': '已复制链接',
|
|
213
213
|
'workspace.file.copyFailed': '复制失败',
|
|
214
214
|
// MarkdownInputField 组件相关
|
|
215
|
-
'markdownInput.fileSizeExceeded': '
|
|
215
|
+
'markdownInput.fileSizeExceeded': '超过 ${maxSize} KB',
|
|
216
216
|
'markdownInput.maxFileCountExceeded': '最多只能上传 ${maxFileCount} 个文件',
|
|
217
217
|
'markdownInput.minFileCountRequired': '至少需要上传 ${minFileCount} 个文件',
|
|
218
218
|
// 文档信息相关
|
|
@@ -335,7 +335,7 @@
|
|
|
335
335
|
'input.selectFile': '选择文件',
|
|
336
336
|
'input.openGallery': '打开相册',
|
|
337
337
|
'input.openFile': '打开文件',
|
|
338
|
-
'input.supportedFormatMessage': '
|
|
338
|
+
'input.supportedFormatMessage': '每个文件不超过 ${maxSize},支持 ${extensions}等格式。',
|
|
339
339
|
'input.sendButtonTooltip.send': '按 Enter 键发送',
|
|
340
340
|
'input.sendButtonTooltip.newline': '按 Shift+Enter 键换行',
|
|
341
341
|
'input.sendButtonTooltip.send.mod': '按 Cmd/Ctrl+Enter 键发送',
|
|
@@ -393,6 +393,7 @@
|
|
|
393
393
|
// 图表错误相关
|
|
394
394
|
'chart.renderFailed': '图表渲染失败',
|
|
395
395
|
'chart.renderFailedSubTitle': '图表组件遇到了一个错误,请稍后重试',
|
|
396
|
+
'chart.retry': '重新渲染',
|
|
396
397
|
// DonutChart 图例相关
|
|
397
398
|
'chart.legend.show': '显示',
|
|
398
399
|
'chart.legend.hide': '隐藏',
|
|
@@ -633,7 +634,7 @@
|
|
|
633
634
|
'workspace.file.linkCopied': 'Link copied',
|
|
634
635
|
'workspace.file.copyFailed': 'Copy failed',
|
|
635
636
|
// MarkdownInputField component related
|
|
636
|
-
'markdownInput.fileSizeExceeded': '
|
|
637
|
+
'markdownInput.fileSizeExceeded': 'Exceeds ${maxSize} KB',
|
|
637
638
|
'markdownInput.maxFileCountExceeded': 'Maximum ${maxFileCount} files allowed',
|
|
638
639
|
'markdownInput.minFileCountRequired': 'At least ${minFileCount} files required',
|
|
639
640
|
// Document info related
|
|
@@ -814,6 +815,7 @@
|
|
|
814
815
|
// Chart error related
|
|
815
816
|
'chart.renderFailed': 'Chart Rendering Failed',
|
|
816
817
|
'chart.renderFailedSubTitle': 'The chart component encountered an error, please try again later',
|
|
818
|
+
'chart.retry': 'Retry',
|
|
817
819
|
// DonutChart legend related
|
|
818
820
|
'chart.legend.show': 'Show',
|
|
819
821
|
'chart.legend.hide': 'Hide',
|
|
@@ -156,6 +156,7 @@ import { createEditor } from "slate";
|
|
|
156
156
|
import { withHistory } from "slate-history";
|
|
157
157
|
import { withReact } from "slate-react";
|
|
158
158
|
import { I18nContext, I18nProvide } from "../I18n";
|
|
159
|
+
import { MarkdownRenderer } from "../MarkdownRenderer";
|
|
159
160
|
import { CommentList } from "./editor/components/CommentList";
|
|
160
161
|
import { SlateMarkdownEditor } from "./editor/Editor";
|
|
161
162
|
import { parserMdToSchema } from "./editor/parser/parserMdToSchema";
|
|
@@ -248,11 +249,11 @@ var I18nBoundary = function I18nBoundary(param) {
|
|
|
248
249
|
* - 支持键盘事件处理
|
|
249
250
|
* - 提供Markdown解析和渲染
|
|
250
251
|
*/ export var BaseMarkdownEditor = function BaseMarkdownEditor(props) {
|
|
251
|
-
var _props_typewriter, _props_readonly;
|
|
252
|
+
var _ref, _props_typewriter, _props_readonly;
|
|
252
253
|
var _props_jinja, _effectiveJinja_templatePanel, _props_floatBar, _props_floatBar1, _props_textAreaProps;
|
|
253
254
|
var initValue = props.initValue, width = props.width, _props_toolBar = props.toolBar, toolBar = _props_toolBar === void 0 ? {} : _props_toolBar, editorRef = props.editorRef, _props_toc = props.toc, toc = _props_toc === void 0 ? false : _props_toc, readonly = props.readonly, lazy = props.lazy, style = props.style, _props_contentStyle = props.contentStyle, contentStyle = _props_contentStyle === void 0 ? {
|
|
254
255
|
height: '100%'
|
|
255
|
-
} : _props_contentStyle, editorStyle = props.editorStyle, height = props.height, children = props.children, rest = _object_without_properties(props, [
|
|
256
|
+
} : _props_contentStyle, editorStyle = props.editorStyle, height = props.height, children = props.children, renderMode = props.renderMode, renderType = props.renderType, rest = _object_without_properties(props, [
|
|
256
257
|
"initValue",
|
|
257
258
|
"width",
|
|
258
259
|
"toolBar",
|
|
@@ -264,8 +265,11 @@ var I18nBoundary = function I18nBoundary(param) {
|
|
|
264
265
|
"contentStyle",
|
|
265
266
|
"editorStyle",
|
|
266
267
|
"height",
|
|
267
|
-
"children"
|
|
268
|
+
"children",
|
|
269
|
+
"renderMode",
|
|
270
|
+
"renderType"
|
|
268
271
|
]);
|
|
272
|
+
var effectiveRenderMode = (_ref = renderMode !== null && renderMode !== void 0 ? renderMode : renderType) !== null && _ref !== void 0 ? _ref : 'slate';
|
|
269
273
|
// 是否挂载
|
|
270
274
|
var _useState = _sliced_to_array(useState(false), 2), editorMountStatus = _useState[0], setMountedStatus = _useState[1];
|
|
271
275
|
var _useState1 = _sliced_to_array(useState(false), 2), isEditorFocused = _useState1[0], setIsEditorFocused = _useState1[1];
|
|
@@ -412,7 +416,35 @@ var I18nBoundary = function I18nBoundary(param) {
|
|
|
412
416
|
var jinjaTemplatePanelEnabled = jinjaEnabled && effectiveJinja !== undefined && effectiveJinja !== null && effectiveJinja.templatePanel !== false && (_type_of(effectiveJinja.templatePanel) !== 'object' || ((_effectiveJinja_templatePanel = effectiveJinja.templatePanel) === null || _effectiveJinja_templatePanel === void 0 ? void 0 : _effectiveJinja_templatePanel.enable) !== false);
|
|
413
417
|
var _useState7 = _sliced_to_array(useState(false), 2), openJinjaTemplate = _useState7[0], setOpenJinjaTemplate = _useState7[1];
|
|
414
418
|
var _useState8 = _sliced_to_array(useState(null), 2), jinjaAnchorPath = _useState8[0], setJinjaAnchorPath = _useState8[1];
|
|
415
|
-
|
|
419
|
+
if (readonly && effectiveRenderMode === 'markdown') {
|
|
420
|
+
var _props_typewriter1;
|
|
421
|
+
var _obj;
|
|
422
|
+
return wrapSSR(/*#__PURE__*/ React.createElement(I18nBoundary, null, /*#__PURE__*/ React.createElement(PluginContext.Provider, {
|
|
423
|
+
value: props.plugins || []
|
|
424
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
425
|
+
id: props.id ? String(props.id) || undefined : undefined,
|
|
426
|
+
className: classNames(baseClassName, 'markdown-editor', hashId, props.className, (_obj = {}, _define_property(_obj, "".concat(baseClassName, "-readonly"), true), _define_property(_obj, "".concat(baseClassName, "-report"), props.reportMode), _define_property(_obj, "".concat(baseClassName, "-slide"), props.slideMode), _obj)),
|
|
427
|
+
style: _object_spread({
|
|
428
|
+
width: width || '100%',
|
|
429
|
+
height: height || 'auto'
|
|
430
|
+
}, style),
|
|
431
|
+
ref: markdownContainerRef
|
|
432
|
+
}, /*#__PURE__*/ React.createElement(MarkdownRenderer, {
|
|
433
|
+
content: initValue || '',
|
|
434
|
+
streaming: (_props_typewriter1 = props.typewriter) !== null && _props_typewriter1 !== void 0 ? _props_typewriter1 : false,
|
|
435
|
+
plugins: props.plugins,
|
|
436
|
+
remarkPlugins: props.markdownToHtmlOptions,
|
|
437
|
+
codeProps: props.codeProps,
|
|
438
|
+
apaasify: props.apaasify,
|
|
439
|
+
style: _object_spread({
|
|
440
|
+
height: '100%'
|
|
441
|
+
}, contentStyle),
|
|
442
|
+
prefixCls: baseClassName,
|
|
443
|
+
fncProps: props.fncProps,
|
|
444
|
+
linkConfig: props.linkConfig
|
|
445
|
+
}), children))));
|
|
446
|
+
}
|
|
447
|
+
var _obj1;
|
|
416
448
|
return wrapSSR(/*#__PURE__*/ React.createElement(I18nBoundary, null, /*#__PURE__*/ React.createElement(PluginContext.Provider, {
|
|
417
449
|
value: props.plugins || []
|
|
418
450
|
}, /*#__PURE__*/ React.createElement(EditorStoreContext.Provider, {
|
|
@@ -445,7 +477,7 @@ var I18nBoundary = function I18nBoundary(param) {
|
|
|
445
477
|
}
|
|
446
478
|
}, /*#__PURE__*/ React.createElement("div", {
|
|
447
479
|
id: props.id ? String(props.id) || undefined : undefined,
|
|
448
|
-
className: classNames(baseClassName, 'markdown-editor', hashId, props.className, (
|
|
480
|
+
className: classNames(baseClassName, 'markdown-editor', hashId, props.className, (_obj1 = {}, _define_property(_obj1, "".concat(baseClassName, "-readonly"), readonly), _define_property(_obj1, "".concat(baseClassName, "-edit"), !readonly), _define_property(_obj1, "".concat(baseClassName, "-report"), props.reportMode), _define_property(_obj1, "".concat(baseClassName, "-slide"), props.slideMode), _obj1)),
|
|
449
481
|
style: _object_spread({
|
|
450
482
|
width: width || '100%',
|
|
451
483
|
height: height || 'auto'
|