@ant-design/agentic-ui 2.27.5 → 2.27.7
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/Bubble.js +7 -1
- package/dist/Components/effects/EffectPlayer.js +4 -5
- package/dist/History/components/HistoryItem.js +13 -30
- package/dist/History/components/LoadMoreComponent.js +3 -5
- package/dist/History/components/NewChatComponent.js +6 -10
- package/dist/History/menu.js +6 -12
- package/dist/MarkdownEditor/editor/Editor.js +5 -11
- package/dist/MarkdownEditor/editor/components/MediaErrorLink.d.ts +16 -0
- package/dist/MarkdownEditor/editor/components/MediaErrorLink.js +90 -0
- package/dist/MarkdownEditor/editor/elements/{Blockquote.d.ts → Blockquote/index.d.ts} +1 -1
- package/dist/MarkdownEditor/editor/elements/{Blockquote.js → Blockquote/index.js} +1 -1
- package/dist/MarkdownEditor/editor/elements/{FootnoteDefinition.d.ts → FootnoteDefinition/index.d.ts} +1 -1
- package/dist/MarkdownEditor/editor/elements/{FootnoteDefinition.js → FootnoteDefinition/index.js} +2 -2
- package/dist/MarkdownEditor/editor/elements/{FootnoteReference.d.ts → FootnoteReference/index.d.ts} +1 -1
- package/dist/MarkdownEditor/editor/elements/{FootnoteReference.js → FootnoteReference/index.js} +3 -3
- package/dist/MarkdownEditor/editor/elements/{Head.d.ts → Head/index.d.ts} +1 -1
- package/dist/MarkdownEditor/editor/elements/{Head.js → Head/index.js} +4 -4
- package/dist/MarkdownEditor/editor/elements/Image/index.d.ts +11 -10
- package/dist/MarkdownEditor/editor/elements/Image/index.js +55 -148
- package/dist/MarkdownEditor/editor/elements/{Media.d.ts → Media/index.d.ts} +1 -1
- package/dist/MarkdownEditor/editor/elements/{Media.js → Media/index.js} +36 -107
- package/dist/MarkdownEditor/editor/elements/Mermaid/index.d.ts +3 -0
- package/dist/MarkdownEditor/editor/elements/{Mermaid.js → Mermaid/index.js} +13 -28
- package/dist/MarkdownEditor/editor/elements/Mermaid/style.d.ts +10 -0
- package/dist/MarkdownEditor/editor/elements/Mermaid/style.js +144 -0
- package/dist/MarkdownEditor/editor/elements/{Paragraph.d.ts → Paragraph/index.d.ts} +1 -1
- package/dist/MarkdownEditor/editor/elements/{Paragraph.js → Paragraph/index.js} +4 -4
- package/dist/MarkdownEditor/editor/elements/{Schema.js → Schema/index.js} +3 -3
- package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.js +8 -13
- package/dist/MarkdownInputField/MarkdownInputField.js +4 -7
- package/dist/Plugins/code/components/AceEditor.js +5 -14
- package/dist/Plugins/mermaid/Mermaid.d.ts +0 -7
- package/dist/Plugins/mermaid/Mermaid.js +4 -501
- package/dist/Plugins/mermaid/MermaidFallback.d.ts +5 -0
- package/dist/Plugins/mermaid/MermaidFallback.js +21 -0
- package/dist/Plugins/mermaid/MermaidRendererImpl.d.ts +9 -0
- package/dist/Plugins/mermaid/MermaidRendererImpl.js +39 -0
- package/dist/Plugins/mermaid/style.d.ts +10 -0
- package/dist/Plugins/mermaid/style.js +219 -0
- package/dist/Plugins/mermaid/types.d.ts +1 -0
- package/dist/Plugins/mermaid/types.js +1 -0
- package/dist/Plugins/mermaid/useMermaidRender.d.ts +8 -0
- package/dist/Plugins/mermaid/useMermaidRender.js +303 -0
- package/dist/Plugins/mermaid/utils.d.ts +14 -0
- package/dist/Plugins/mermaid/utils.js +223 -0
- package/dist/TaskList/index.js +4 -8
- package/dist/ToolUseBar/BarItem/Content.js +5 -6
- package/dist/ToolUseBar/BarItem/index.js +6 -14
- package/dist/ToolUseBar/index.js +6 -13
- package/dist/ToolUseBarThink/index.js +6 -11
- package/dist/Utils/debugUtils.d.ts +9 -0
- package/dist/Utils/debugUtils.js +42 -0
- package/dist/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/MarkdownEditor/editor/elements/Mermaid.d.ts +0 -3
- /package/dist/MarkdownEditor/editor/elements/{Break.d.ts → Break/index.d.ts} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{Break.js → Break/index.js} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{Code.d.ts → Code/index.d.ts} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{Code.js → Code/index.js} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{ErrorBoundary.d.ts → ErrorBoundary/index.d.ts} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{ErrorBoundary.js → ErrorBoundary/index.js} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{Hr.d.ts → Hr/index.d.ts} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{Hr.js → Hr/index.js} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{InlineKatex.d.ts → InlineKatex/index.d.ts} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{InlineKatex.js → InlineKatex/index.js} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{Katex.d.ts → Katex/index.d.ts} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{Katex.js → Katex/index.js} +0 -0
- /package/dist/MarkdownEditor/editor/elements/{Schema.d.ts → Schema/index.d.ts} +0 -0
package/dist/Bubble/Bubble.js
CHANGED
|
@@ -52,6 +52,7 @@ function _object_spread_props(target, source) {
|
|
|
52
52
|
}
|
|
53
53
|
import { memo } from "react";
|
|
54
54
|
import React from "react";
|
|
55
|
+
import { debugInfo } from "../Utils/debugUtils";
|
|
55
56
|
import { AIBubble } from "./AIBubble";
|
|
56
57
|
import { useSchemaEditorBridge } from "./schema-editor";
|
|
57
58
|
import { UserBubble } from "./UserBubble";
|
|
@@ -104,11 +105,12 @@ import { UserBubble } from "./UserBubble";
|
|
|
104
105
|
*/ export var Bubble = /*#__PURE__*/ memo(function(props) {
|
|
105
106
|
var originData = props.originData;
|
|
106
107
|
/** 判断是否有可编辑的字符串内容 */ var hasEditableContent = !!(originData === null || originData === void 0 ? void 0 : originData.originContent) || typeof (originData === null || originData === void 0 ? void 0 : originData.content) === 'string';
|
|
107
|
-
/** 获取初始内容:优先 originContent,回退到字符串 content */ var initialContent = hasEditableContent ? (originData === null || originData === void 0 ? void 0 : originData.
|
|
108
|
+
/** 获取初始内容:优先 originContent,回退到字符串 content */ var initialContent = hasEditableContent ? (originData === null || originData === void 0 ? void 0 : originData.content) || (originData === null || originData === void 0 ? void 0 : originData.originContent) : '';
|
|
108
109
|
/**
|
|
109
110
|
* Schema Editor Bridge Hook
|
|
110
111
|
* @description 开发环境自动启用,生产环境返回原始内容
|
|
111
112
|
*/ var content = useSchemaEditorBridge(props.id, initialContent).content;
|
|
113
|
+
debugInfo('useSchemaEditorBridge', content);
|
|
112
114
|
/** 根据角色自动选择组件 */ var isUserMessage = props.placement === undefined ? (originData === null || originData === void 0 ? void 0 : originData.role) === 'user' : props.placement === 'right';
|
|
113
115
|
/** 构建传递给子组件的 props */ var bubbleProps = _object_spread_props(_object_spread({}, props), {
|
|
114
116
|
placement: props.placement || (isUserMessage ? 'right' : 'left'),
|
|
@@ -116,6 +118,10 @@ import { UserBubble } from "./UserBubble";
|
|
|
116
118
|
content: content
|
|
117
119
|
}) : undefined
|
|
118
120
|
});
|
|
121
|
+
debugInfo('bubbleProps', {
|
|
122
|
+
isUserMessage: isUserMessage,
|
|
123
|
+
bubbleProps: bubbleProps
|
|
124
|
+
});
|
|
119
125
|
// 根据角色分发到对应的子组件
|
|
120
126
|
if (isUserMessage) {
|
|
121
127
|
return /*#__PURE__*/ React.createElement(UserBubble, _object_spread_props(_object_spread({}, bubbleProps), {
|
|
@@ -124,8 +124,9 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
124
124
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
125
125
|
}
|
|
126
126
|
import { Player } from "@galacean/effects";
|
|
127
|
-
import React, {
|
|
127
|
+
import React, { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
128
128
|
import { useLatest } from "react-use";
|
|
129
|
+
import { useRefFunction } from "../../Hooks/useRefFunction";
|
|
129
130
|
function EffectPlayer(_param) {
|
|
130
131
|
var sceneUrl = _param.sceneUrl, downgradeImage = _param.downgradeImage, _param_autoplay = _param.autoplay, autoplay = _param_autoplay === void 0 ? true : _param_autoplay, _param_size = _param.// TODO: 添加禁止循环播放功能
|
|
131
132
|
// loop = true,
|
|
@@ -149,11 +150,9 @@ function EffectPlayer(_param) {
|
|
|
149
150
|
// ==================== Downgrade Image ====================
|
|
150
151
|
var downgradeImageRef = useLatest(downgradeImage);
|
|
151
152
|
var _useState = _sliced_to_array(useState(), 2), fallbackImage = _useState[0], setFallbackImage = _useState[1];
|
|
152
|
-
var onError =
|
|
153
|
+
var onError = useRefFunction(function() {
|
|
153
154
|
setFallbackImage(downgradeImageRef.current);
|
|
154
|
-
}
|
|
155
|
-
downgradeImageRef
|
|
156
|
-
]);
|
|
155
|
+
});
|
|
157
156
|
// ==================== Create Player ====================
|
|
158
157
|
useLayoutEffect(function() {
|
|
159
158
|
// create player
|
|
@@ -199,6 +199,7 @@ function _ts_generator(thisArg, body) {
|
|
|
199
199
|
import { CloseCircleFill, FileCheckFill, WarningFill } from "@sofa-design/icons";
|
|
200
200
|
import { Checkbox, ConfigProvider, Divider, Tooltip } from "antd";
|
|
201
201
|
import React, { useContext } from "react";
|
|
202
|
+
import { useRefFunction } from "../../Hooks/useRefFunction";
|
|
202
203
|
import { I18nContext } from "../../I18n";
|
|
203
204
|
import { useStyle } from "../style";
|
|
204
205
|
import { TaskStatusData } from "../types/HistoryData";
|
|
@@ -310,27 +311,21 @@ var getMaskStyle = function(isOverflow) {
|
|
|
310
311
|
selectedIds,
|
|
311
312
|
item.sessionId
|
|
312
313
|
]);
|
|
313
|
-
var handleClick =
|
|
314
|
+
var handleClick = useRefFunction(function(e) {
|
|
314
315
|
e.stopPropagation();
|
|
315
316
|
e.preventDefault();
|
|
316
317
|
onClick(item.sessionId, item);
|
|
317
|
-
}
|
|
318
|
-
onClick,
|
|
319
|
-
item
|
|
320
|
-
]);
|
|
318
|
+
});
|
|
321
319
|
/**
|
|
322
320
|
* 处理复选框状态变化事件
|
|
323
321
|
* @param e - 复选框变化事件对象
|
|
324
|
-
*/ var handleCheckboxChange =
|
|
322
|
+
*/ var handleCheckboxChange = useRefFunction(function(e) {
|
|
325
323
|
e.stopPropagation();
|
|
326
324
|
onSelectionChange(item.sessionId, e.target.checked);
|
|
327
|
-
}
|
|
328
|
-
onSelectionChange,
|
|
329
|
-
item.sessionId
|
|
330
|
-
]);
|
|
325
|
+
});
|
|
331
326
|
/**
|
|
332
327
|
* 处理删除历史记录项事件
|
|
333
|
-
*/ var handleDelete =
|
|
328
|
+
*/ var handleDelete = useRefFunction(/*#__PURE__*/ _async_to_generator(function() {
|
|
334
329
|
return _ts_generator(this, function(_state) {
|
|
335
330
|
switch(_state.label){
|
|
336
331
|
case 0:
|
|
@@ -351,10 +346,7 @@ var getMaskStyle = function(isOverflow) {
|
|
|
351
346
|
];
|
|
352
347
|
}
|
|
353
348
|
});
|
|
354
|
-
})
|
|
355
|
-
onDeleteItem,
|
|
356
|
-
item.sessionId
|
|
357
|
-
]);
|
|
349
|
+
}));
|
|
358
350
|
/**
|
|
359
351
|
* 渲染单行模式的历史记录项
|
|
360
352
|
* @returns 历史记录项组件
|
|
@@ -496,27 +488,21 @@ HistoryItemSingle.displayName = 'HistoryItemSingle';
|
|
|
496
488
|
/**
|
|
497
489
|
* 处理点击事件
|
|
498
490
|
* @param e - 鼠标点击事件对象
|
|
499
|
-
*/ var handleClick =
|
|
491
|
+
*/ var handleClick = useRefFunction(function(e) {
|
|
500
492
|
e.stopPropagation();
|
|
501
493
|
e.preventDefault();
|
|
502
494
|
onClick(item.sessionId, item);
|
|
503
|
-
}
|
|
504
|
-
onClick,
|
|
505
|
-
item
|
|
506
|
-
]);
|
|
495
|
+
});
|
|
507
496
|
/**
|
|
508
497
|
* 处理复选框状态变化事件
|
|
509
498
|
* @param e - 复选框变化事件对象
|
|
510
|
-
*/ var handleCheckboxChange =
|
|
499
|
+
*/ var handleCheckboxChange = useRefFunction(function(e) {
|
|
511
500
|
e.stopPropagation();
|
|
512
501
|
onSelectionChange(item.sessionId, e.target.checked);
|
|
513
|
-
}
|
|
514
|
-
onSelectionChange,
|
|
515
|
-
item.sessionId
|
|
516
|
-
]);
|
|
502
|
+
});
|
|
517
503
|
/**
|
|
518
504
|
* 处理删除事件
|
|
519
|
-
*/ var handleDelete =
|
|
505
|
+
*/ var handleDelete = useRefFunction(/*#__PURE__*/ _async_to_generator(function() {
|
|
520
506
|
return _ts_generator(this, function(_state) {
|
|
521
507
|
switch(_state.label){
|
|
522
508
|
case 0:
|
|
@@ -537,10 +523,7 @@ HistoryItemSingle.displayName = 'HistoryItemSingle';
|
|
|
537
523
|
];
|
|
538
524
|
}
|
|
539
525
|
});
|
|
540
|
-
})
|
|
541
|
-
onDeleteItem,
|
|
542
|
-
item.sessionId
|
|
543
|
-
]);
|
|
526
|
+
}));
|
|
544
527
|
/**
|
|
545
528
|
* 渲染多行模式的历史记录项
|
|
546
529
|
* @returns 历史记录项组件
|
|
@@ -197,7 +197,7 @@ function _ts_generator(thisArg, body) {
|
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
import { EllipsisOutlined, LoadingOutlined } from "@ant-design/icons";
|
|
200
|
-
import React, {
|
|
200
|
+
import React, { useContext, useState } from "react";
|
|
201
201
|
import { useRefFunction } from "../../Hooks/useRefFunction";
|
|
202
202
|
import { I18nContext } from "../../I18n";
|
|
203
203
|
/**
|
|
@@ -298,14 +298,12 @@ export var HistoryLoadMore = function(param) {
|
|
|
298
298
|
}
|
|
299
299
|
});
|
|
300
300
|
}));
|
|
301
|
-
var handleKeyDown =
|
|
301
|
+
var handleKeyDown = useRefFunction(function(event) {
|
|
302
302
|
if (event.key === 'Enter' || event.key === ' ') {
|
|
303
303
|
event.preventDefault();
|
|
304
304
|
onClickFn();
|
|
305
305
|
}
|
|
306
|
-
}
|
|
307
|
-
onClickFn
|
|
308
|
-
]);
|
|
306
|
+
});
|
|
309
307
|
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("div", {
|
|
310
308
|
className: "".concat(className),
|
|
311
309
|
tabIndex: 0,
|
|
@@ -170,7 +170,8 @@ function _ts_generator(thisArg, body) {
|
|
|
170
170
|
}
|
|
171
171
|
import { AiAgentManagement } from "@sofa-design/icons";
|
|
172
172
|
import { ConfigProvider } from "antd";
|
|
173
|
-
import React, {
|
|
173
|
+
import React, { useContext, useState } from "react";
|
|
174
|
+
import { useRefFunction } from "../../Hooks/useRefFunction";
|
|
174
175
|
import { I18nContext } from "../../I18n";
|
|
175
176
|
import { useNewChatStyle } from "./NewChatComponent.style";
|
|
176
177
|
/**
|
|
@@ -208,7 +209,7 @@ import { useNewChatStyle } from "./NewChatComponent.style";
|
|
|
208
209
|
var _useNewChatStyle = useNewChatStyle(menuPrefixCls), wrapSSR = _useNewChatStyle.wrapSSR, hashId = _useNewChatStyle.hashId;
|
|
209
210
|
var locale = useContext(I18nContext).locale;
|
|
210
211
|
var _useState = _sliced_to_array(useState(false), 2), loading = _useState[0], setLoading = _useState[1];
|
|
211
|
-
var handleClick =
|
|
212
|
+
var handleClick = useRefFunction(/*#__PURE__*/ _async_to_generator(function() {
|
|
212
213
|
return _ts_generator(this, function(_state) {
|
|
213
214
|
switch(_state.label){
|
|
214
215
|
case 0:
|
|
@@ -245,18 +246,13 @@ import { useNewChatStyle } from "./NewChatComponent.style";
|
|
|
245
246
|
];
|
|
246
247
|
}
|
|
247
248
|
});
|
|
248
|
-
})
|
|
249
|
-
|
|
250
|
-
onNewChat
|
|
251
|
-
]);
|
|
252
|
-
var handleKeyDown = useCallback(function(event) {
|
|
249
|
+
}));
|
|
250
|
+
var handleKeyDown = useRefFunction(function(event) {
|
|
253
251
|
if (event.key === 'Enter' || event.key === ' ') {
|
|
254
252
|
event.preventDefault();
|
|
255
253
|
handleClick();
|
|
256
254
|
}
|
|
257
|
-
}
|
|
258
|
-
handleClick
|
|
259
|
-
]);
|
|
255
|
+
});
|
|
260
256
|
return wrapSSR(/*#__PURE__*/ React.createElement("div", {
|
|
261
257
|
role: "button",
|
|
262
258
|
tabIndex: 0,
|
package/dist/History/menu.js
CHANGED
|
@@ -55,24 +55,20 @@ function _object_without_properties_loose(source, excluded) {
|
|
|
55
55
|
}
|
|
56
56
|
import { ConfigProvider, Spin } from "antd";
|
|
57
57
|
import classNames from "classnames";
|
|
58
|
-
import React, {
|
|
58
|
+
import React, { useContext } from "react";
|
|
59
|
+
import { useRefFunction } from "../Hooks/useRefFunction";
|
|
59
60
|
import { useStyle } from "./style";
|
|
60
61
|
// 菜单项组件
|
|
61
62
|
var MenuItem = function(param) {
|
|
62
63
|
var item = param.item, isSelected = param.isSelected, _param_inlineIndent = param.inlineIndent, inlineIndent = _param_inlineIndent === void 0 ? 0 : _param_inlineIndent, onSelect = param.onSelect, _param_level = param.level, level = _param_level === void 0 ? 0 : _param_level, prefixCls = param.prefixCls, hashId = param.hashId, currentSelectedKey = param.currentSelectedKey, customClassNames = param.classNames;
|
|
63
64
|
var baseClass = "".concat(prefixCls, "-item");
|
|
64
|
-
var handleClick =
|
|
65
|
+
var handleClick = useRefFunction(function() {
|
|
65
66
|
if (!item.disabled) {
|
|
66
67
|
var _item_onClick;
|
|
67
68
|
onSelect(item.key);
|
|
68
69
|
(_item_onClick = item.onClick) === null || _item_onClick === void 0 ? void 0 : _item_onClick.call(item);
|
|
69
70
|
}
|
|
70
|
-
}
|
|
71
|
-
item.disabled,
|
|
72
|
-
item.key,
|
|
73
|
-
item.onClick,
|
|
74
|
-
onSelect
|
|
75
|
-
]);
|
|
71
|
+
});
|
|
76
72
|
// 如果是分组且有子项,并且嵌套层级小于2
|
|
77
73
|
if (item.type === 'group' && item.children && level < 2) {
|
|
78
74
|
return /*#__PURE__*/ React.createElement("div", {
|
|
@@ -134,13 +130,11 @@ var MenuItem = function(param) {
|
|
|
134
130
|
var currentSelectedKey = selectedKeys && selectedKeys[0];
|
|
135
131
|
// 直接使用传入的 items,支持最多双层嵌套
|
|
136
132
|
var dataSource = items || [];
|
|
137
|
-
var handleSelect =
|
|
133
|
+
var handleSelect = useRefFunction(function(key) {
|
|
138
134
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect({
|
|
139
135
|
key: key
|
|
140
136
|
});
|
|
141
|
-
}
|
|
142
|
-
onSelect
|
|
143
|
-
]);
|
|
137
|
+
});
|
|
144
138
|
// 直接传递用户自定义的 classNames
|
|
145
139
|
return wrapSSR(/*#__PURE__*/ React.createElement("div", _object_spread({
|
|
146
140
|
className: classNames(prefixCls, hashId, className),
|
|
@@ -234,7 +234,7 @@ function _ts_generator(thisArg, body) {
|
|
|
234
234
|
}
|
|
235
235
|
import { useDebounceFn } from "@ant-design/pro-components";
|
|
236
236
|
import classNames from "classnames";
|
|
237
|
-
import React, {
|
|
237
|
+
import React, { useContext, useEffect, useMemo, useRef } from "react";
|
|
238
238
|
import { ErrorBoundary } from "react-error-boundary";
|
|
239
239
|
import { Editor, Node, Range, Transforms } from "slate";
|
|
240
240
|
import { Editable, ReactEditor, Slate } from "slate-react";
|
|
@@ -327,7 +327,7 @@ var defaultAllowedTypes = [
|
|
|
327
327
|
// 用于标记是否已在当前渲染周期重置过索引
|
|
328
328
|
var hasResetIndexRef = useRef(false);
|
|
329
329
|
// 计算懒加载元素总数的函数
|
|
330
|
-
var countLazyElements =
|
|
330
|
+
var countLazyElements = useRefFunction(function(nodes) {
|
|
331
331
|
var count = 0;
|
|
332
332
|
var traverse = function(nodeList) {
|
|
333
333
|
nodeList.forEach(function(node) {
|
|
@@ -343,7 +343,7 @@ var defaultAllowedTypes = [
|
|
|
343
343
|
};
|
|
344
344
|
traverse(nodes);
|
|
345
345
|
return count;
|
|
346
|
-
}
|
|
346
|
+
});
|
|
347
347
|
var changedMark = useRef(false);
|
|
348
348
|
var value = useRef([
|
|
349
349
|
EditorUtils.p
|
|
@@ -969,7 +969,7 @@ var defaultAllowedTypes = [
|
|
|
969
969
|
}
|
|
970
970
|
}
|
|
971
971
|
};
|
|
972
|
-
var elementRenderElement =
|
|
972
|
+
var elementRenderElement = useRefFunction(function(eleProps) {
|
|
973
973
|
var _props_lazy;
|
|
974
974
|
// 在每个渲染周期的第一次调用时重置索引
|
|
975
975
|
if (!hasResetIndexRef.current) {
|
|
@@ -1045,13 +1045,7 @@ var defaultAllowedTypes = [
|
|
|
1045
1045
|
}, renderedDom);
|
|
1046
1046
|
}
|
|
1047
1047
|
return renderedDom;
|
|
1048
|
-
}
|
|
1049
|
-
props.eleItemRender,
|
|
1050
|
-
props.lazy,
|
|
1051
|
-
plugins,
|
|
1052
|
-
readonly,
|
|
1053
|
-
countLazyElements
|
|
1054
|
-
]);
|
|
1048
|
+
});
|
|
1055
1049
|
var renderMarkdownLeaf = useRefFunction(function(leafComponentProps) {
|
|
1056
1050
|
var defaultDom = /*#__PURE__*/ React.createElement(MLeaf, _object_spread_props(_object_spread({}, leafComponentProps), {
|
|
1057
1051
|
fncProps: props.fncProps,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 媒体加载失败时的错误链接组件属性
|
|
4
|
+
*/
|
|
5
|
+
interface MediaErrorLinkProps {
|
|
6
|
+
/** 链接地址 */
|
|
7
|
+
url: string | undefined;
|
|
8
|
+
/** 备用链接地址 */
|
|
9
|
+
fallbackUrl?: string | undefined;
|
|
10
|
+
/** 显示文本 */
|
|
11
|
+
displayText: string;
|
|
12
|
+
/** 可选的样式覆盖 */
|
|
13
|
+
style?: React.CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
export declare const MediaErrorLink: React.MemoExoticComponent<({ url, fallbackUrl, displayText, style, }: MediaErrorLinkProps) => React.JSX.Element>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
function _object_spread(target) {
|
|
15
|
+
for(var i = 1; i < arguments.length; i++){
|
|
16
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
17
|
+
var ownKeys = Object.keys(source);
|
|
18
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
19
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
20
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
ownKeys.forEach(function(key) {
|
|
24
|
+
_define_property(target, key, source[key]);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return target;
|
|
28
|
+
}
|
|
29
|
+
import { ExclamationCircleOutlined } from "@ant-design/icons";
|
|
30
|
+
import { SquareArrowUpRight } from "@sofa-design/icons";
|
|
31
|
+
import React from "react";
|
|
32
|
+
import { useEditorStore } from "../store";
|
|
33
|
+
/**
|
|
34
|
+
* 媒体加载失败时的错误链接组件
|
|
35
|
+
*
|
|
36
|
+
* 当图片、视频或音频加载失败时,显示一个可点击的链接
|
|
37
|
+
* 支持自定义链接点击行为和打开方式
|
|
38
|
+
*
|
|
39
|
+
* @param props - 组件属性
|
|
40
|
+
* @returns 错误链接元素
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```tsx
|
|
44
|
+
* <MediaErrorLink
|
|
45
|
+
* url="https://example.com/image.jpg"
|
|
46
|
+
* displayText="图片链接"
|
|
47
|
+
* />
|
|
48
|
+
* ```
|
|
49
|
+
*/ var MediaErrorLinkComponent = function(param) {
|
|
50
|
+
var url = param.url, fallbackUrl = param.fallbackUrl, displayText = param.displayText, style = param.style;
|
|
51
|
+
var editorProps = useEditorStore().editorProps;
|
|
52
|
+
var handleClick = function(e) {
|
|
53
|
+
var _editorProps_linkConfig, _editorProps_linkConfig1;
|
|
54
|
+
var finalUrl = url || fallbackUrl;
|
|
55
|
+
if (!finalUrl) return;
|
|
56
|
+
e.stopPropagation();
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
if ((_editorProps_linkConfig = editorProps.linkConfig) === null || _editorProps_linkConfig === void 0 ? void 0 : _editorProps_linkConfig.onClick) {
|
|
59
|
+
if (editorProps.linkConfig.onClick(finalUrl) === false) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if ((editorProps === null || editorProps === void 0 ? void 0 : (_editorProps_linkConfig1 = editorProps.linkConfig) === null || _editorProps_linkConfig1 === void 0 ? void 0 : _editorProps_linkConfig1.openInNewTab) !== false) {
|
|
64
|
+
window.open(finalUrl, '_blank');
|
|
65
|
+
} else {
|
|
66
|
+
window.open(finalUrl, '_self');
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
return /*#__PURE__*/ React.createElement("span", {
|
|
70
|
+
onClick: handleClick,
|
|
71
|
+
style: _object_spread({
|
|
72
|
+
color: '#1890ff',
|
|
73
|
+
textDecoration: 'underline',
|
|
74
|
+
wordBreak: 'break-all',
|
|
75
|
+
display: 'inline-flex',
|
|
76
|
+
alignItems: 'center',
|
|
77
|
+
gap: '8px',
|
|
78
|
+
maxWidth: '100%',
|
|
79
|
+
padding: '8px 12px',
|
|
80
|
+
border: '1px dashed #d9d9d9',
|
|
81
|
+
borderRadius: '6px',
|
|
82
|
+
backgroundColor: '#fafafa'
|
|
83
|
+
}, style)
|
|
84
|
+
}, /*#__PURE__*/ React.createElement(ExclamationCircleOutlined, {
|
|
85
|
+
style: {
|
|
86
|
+
color: '#faad14'
|
|
87
|
+
}
|
|
88
|
+
}), displayText, /*#__PURE__*/ React.createElement(SquareArrowUpRight, null));
|
|
89
|
+
};
|
|
90
|
+
export var MediaErrorLink = /*#__PURE__*/ React.memo(MediaErrorLinkComponent);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ElementProps, FootnoteDefinitionNode } from '
|
|
2
|
+
import { ElementProps, FootnoteDefinitionNode } from '../../../el';
|
|
3
3
|
export declare const FootnoteDefinition: (props: ElementProps<FootnoteDefinitionNode>) => React.JSX.Element;
|
package/dist/MarkdownEditor/editor/elements/{FootnoteDefinition.js → FootnoteDefinition/index.js}
RENAMED
|
@@ -53,8 +53,8 @@ function _object_spread_props(target, source) {
|
|
|
53
53
|
import { ExportOutlined } from "@ant-design/icons";
|
|
54
54
|
import React, { useMemo } from "react";
|
|
55
55
|
import { Node } from "slate";
|
|
56
|
-
import { useEditorStore } from "
|
|
57
|
-
import { DragHandle } from "
|
|
56
|
+
import { useEditorStore } from "../../store";
|
|
57
|
+
import { DragHandle } from "../../tools/DragHandle";
|
|
58
58
|
export var FootnoteDefinition = function(props) {
|
|
59
59
|
var _useEditorStore = useEditorStore(), store = _useEditorStore.store, readonly = _useEditorStore.readonly, markdownContainerRef = _useEditorStore.markdownContainerRef;
|
|
60
60
|
var element = props.element;
|
package/dist/MarkdownEditor/editor/elements/{FootnoteReference.js → FootnoteReference/index.js}
RENAMED
|
@@ -98,9 +98,9 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
98
98
|
}
|
|
99
99
|
import React from "react";
|
|
100
100
|
import { Node } from "slate";
|
|
101
|
-
import { useSelStatus } from "
|
|
102
|
-
import { useEditorStore } from "
|
|
103
|
-
import { DragHandle } from "
|
|
101
|
+
import { useSelStatus } from "../../../hooks/editor";
|
|
102
|
+
import { useEditorStore } from "../../store";
|
|
103
|
+
import { DragHandle } from "../../tools/DragHandle";
|
|
104
104
|
export var FootnoteReference = function(props) {
|
|
105
105
|
var _useEditorStore = useEditorStore(), store = _useEditorStore.store, markdownContainerRef = _useEditorStore.markdownContainerRef;
|
|
106
106
|
var _useSelStatus = _sliced_to_array(useSelStatus(props.element), 1), selected = _useSelStatus[0];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ElementProps, HeadNode } from '
|
|
2
|
+
import { ElementProps, HeadNode } from '../../../el';
|
|
3
3
|
export declare function Head({ element, attributes, children, }: ElementProps<HeadNode>): React.DOMElement<{
|
|
4
4
|
id: string;
|
|
5
5
|
"data-be": string;
|
|
@@ -99,10 +99,10 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
99
99
|
import classNames from "classnames";
|
|
100
100
|
import React, { createElement } from "react";
|
|
101
101
|
import { Node } from "slate";
|
|
102
|
-
import { useSelStatus } from "
|
|
103
|
-
import { useEditorStore } from "
|
|
104
|
-
import { DragHandle } from "
|
|
105
|
-
import { slugify } from "
|
|
102
|
+
import { useSelStatus } from "../../../hooks/editor";
|
|
103
|
+
import { useEditorStore } from "../../store";
|
|
104
|
+
import { DragHandle } from "../../tools/DragHandle";
|
|
105
|
+
import { slugify } from "../../utils/dom";
|
|
106
106
|
export function Head(param) {
|
|
107
107
|
var element = param.element, attributes = param.attributes, children = param.children;
|
|
108
108
|
var _useEditorStore = useEditorStore(), _useEditorStore_store = _useEditorStore.store, store = _useEditorStore_store === void 0 ? {} : _useEditorStore_store, markdownContainerRef = _useEditorStore.markdownContainerRef;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { ImageProps } from 'antd';
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { ElementProps, MediaNode } from '../../../el';
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
4
|
+
* 只读模式下的图片组件,带有错误处理功能
|
|
6
5
|
* 如果图片加载失败,将显示可点击的链接
|
|
7
6
|
*
|
|
8
7
|
* @component
|
|
9
|
-
* @param props -
|
|
10
|
-
* @param props.src - 图片的源地址
|
|
8
|
+
* @param props - 图片属性
|
|
11
9
|
* @returns 返回一个图片组件,如果加载失败则返回一个链接
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```tsx
|
|
15
|
-
* <ImageAndError src="https://example.com/image.jpg" alt="示例图片" />
|
|
16
|
-
* ```
|
|
17
10
|
*/
|
|
18
|
-
|
|
11
|
+
interface ReadonlyImageProps {
|
|
12
|
+
src?: string;
|
|
13
|
+
alt?: string;
|
|
14
|
+
width?: number | string;
|
|
15
|
+
height?: number | string;
|
|
16
|
+
crossOrigin?: 'anonymous' | 'use-credentials' | '';
|
|
17
|
+
}
|
|
18
|
+
export declare const ReadonlyImage: React.FC<ReadonlyImageProps>;
|
|
19
19
|
/**
|
|
20
20
|
* 修复图片大小的问题
|
|
21
21
|
* @param props
|
|
@@ -34,3 +34,4 @@ export declare const ResizeImage: ({ onResizeStart, onResizeStop, selected, defa
|
|
|
34
34
|
selected?: boolean | undefined;
|
|
35
35
|
}) => React.JSX.Element;
|
|
36
36
|
export declare function EditorImage({ element, attributes, children, }: ElementProps<MediaNode>): React.JSX.Element;
|
|
37
|
+
export {};
|