@ant-design/agentic-ui 2.29.7 → 2.29.8
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/ChatLayout/components/FooterBackgroundLottie/index.js +1 -1
- package/dist/MarkdownEditor/BaseMarkdownEditor.js +1 -1
- package/dist/MarkdownEditor/editor/elements/Blockquote/ReadonlyBlockquote.d.ts +33 -0
- package/dist/MarkdownEditor/editor/elements/Blockquote/ReadonlyBlockquote.js +69 -0
- package/dist/MarkdownEditor/editor/elements/Break/ReadonlyBreak.d.ts +30 -0
- package/dist/MarkdownEditor/editor/elements/Break/ReadonlyBreak.js +88 -0
- package/dist/MarkdownEditor/editor/elements/Card/ReadonlyCard.d.ts +34 -0
- package/dist/MarkdownEditor/editor/elements/Card/ReadonlyCard.js +96 -0
- package/dist/MarkdownEditor/editor/elements/Code/ReadonlyCode.d.ts +33 -0
- package/dist/MarkdownEditor/editor/elements/Code/ReadonlyCode.js +145 -0
- package/dist/MarkdownEditor/editor/elements/FootnoteDefinition/ReadonlyFootnoteDefinition.d.ts +34 -0
- package/dist/MarkdownEditor/editor/elements/FootnoteDefinition/ReadonlyFootnoteDefinition.js +125 -0
- package/dist/MarkdownEditor/editor/elements/FootnoteReference/ReadonlyFootnoteReference.d.ts +34 -0
- package/dist/MarkdownEditor/editor/elements/FootnoteReference/ReadonlyFootnoteReference.js +101 -0
- package/dist/MarkdownEditor/editor/elements/Head/ReadonlyHead.d.ts +35 -0
- package/dist/MarkdownEditor/editor/elements/Head/ReadonlyHead.js +111 -0
- package/dist/MarkdownEditor/editor/elements/Head/index.d.ts +3 -0
- package/dist/MarkdownEditor/editor/elements/Head/index.js +3 -1
- package/dist/MarkdownEditor/editor/elements/Hr/ReadonlyHr.d.ts +30 -0
- package/dist/MarkdownEditor/editor/elements/Hr/ReadonlyHr.js +95 -0
- package/dist/MarkdownEditor/editor/elements/Image/ReadonlyEditorImage.d.ts +35 -0
- package/dist/MarkdownEditor/editor/elements/Image/ReadonlyEditorImage.js +426 -0
- package/dist/MarkdownEditor/editor/elements/Image/index.js +38 -50
- package/dist/MarkdownEditor/editor/elements/InlineKatex/ReadonlyInlineKatex.d.ts +32 -0
- package/dist/MarkdownEditor/editor/elements/InlineKatex/ReadonlyInlineKatex.js +100 -0
- package/dist/MarkdownEditor/editor/elements/Katex/ReadonlyKatex.d.ts +32 -0
- package/dist/MarkdownEditor/editor/elements/Katex/ReadonlyKatex.js +110 -0
- package/dist/MarkdownEditor/editor/elements/LinkCard/ReadonlyLinkCard.d.ts +40 -0
- package/dist/MarkdownEditor/editor/elements/LinkCard/ReadonlyLinkCard.js +215 -0
- package/dist/MarkdownEditor/editor/elements/List/List.js +27 -12
- package/dist/MarkdownEditor/editor/elements/List/ReadonlyList.d.ts +33 -0
- package/dist/MarkdownEditor/editor/elements/List/ReadonlyList.js +93 -0
- package/dist/MarkdownEditor/editor/elements/List/ReadonlyListItem.d.ts +35 -0
- package/dist/MarkdownEditor/editor/elements/List/ReadonlyListItem.js +138 -0
- package/dist/MarkdownEditor/editor/elements/Media/ReadonlyMedia.d.ts +36 -0
- package/dist/MarkdownEditor/editor/elements/Media/ReadonlyMedia.js +600 -0
- package/dist/MarkdownEditor/editor/elements/Mermaid/ReadonlyMermaid.d.ts +32 -0
- package/dist/MarkdownEditor/editor/elements/Mermaid/ReadonlyMermaid.js +101 -0
- package/dist/MarkdownEditor/editor/elements/Paragraph/ReadonlyParagraph.d.ts +35 -0
- package/dist/MarkdownEditor/editor/elements/Paragraph/ReadonlyParagraph.js +109 -0
- package/dist/MarkdownEditor/editor/elements/Paragraph/index.js +2 -1
- package/dist/MarkdownEditor/editor/elements/Schema/ReadonlySchema.d.ts +33 -0
- package/dist/MarkdownEditor/editor/elements/Schema/ReadonlySchema.js +163 -0
- package/dist/MarkdownEditor/editor/elements/index.d.ts +20 -1
- package/dist/MarkdownEditor/editor/elements/index.js +65 -29
- package/dist/MarkdownEditor/editor/parser/parse/parseBlockElements.js +18 -10
- package/dist/MarkdownEditor/editor/parser/parserSlateNodeToMarkdown.js +64 -21
- package/dist/MarkdownEditor/editor/plugins/elements.js +60 -6
- package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/backspace.js +97 -39
- package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/tab.d.ts +14 -0
- package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/tab.js +117 -90
- package/dist/MarkdownEditor/editor/plugins/index.d.ts +8 -0
- package/dist/MarkdownEditor/editor/plugins/index.js +8 -0
- package/dist/MarkdownEditor/editor/plugins/insertParsedHtmlNodes.d.ts +12 -6
- package/dist/MarkdownEditor/editor/plugins/insertParsedHtmlNodes.js +67 -42
- package/dist/MarkdownEditor/editor/plugins/utils.d.ts +31 -0
- package/dist/MarkdownEditor/editor/plugins/utils.js +75 -0
- package/dist/MarkdownEditor/editor/plugins/withCardPlugin.d.ts +15 -0
- package/dist/MarkdownEditor/editor/plugins/withCardPlugin.js +329 -0
- package/dist/MarkdownEditor/editor/plugins/withCodeTagPlugin.d.ts +11 -0
- package/dist/MarkdownEditor/editor/plugins/withCodeTagPlugin.js +299 -0
- package/dist/MarkdownEditor/editor/plugins/withInlineNodes.d.ts +12 -0
- package/dist/MarkdownEditor/editor/plugins/withInlineNodes.js +17 -0
- package/dist/MarkdownEditor/editor/plugins/withLinkAndMediaPlugin.d.ts +11 -0
- package/dist/MarkdownEditor/editor/plugins/withLinkAndMediaPlugin.js +70 -0
- package/dist/MarkdownEditor/editor/plugins/withListsPlugin.d.ts +23 -0
- package/dist/MarkdownEditor/editor/plugins/withListsPlugin.js +204 -0
- package/dist/MarkdownEditor/editor/plugins/withMarkdown.d.ts +9 -12
- package/dist/MarkdownEditor/editor/plugins/withMarkdown.js +17 -764
- package/dist/MarkdownEditor/editor/plugins/withSchemaPlugin.d.ts +11 -0
- package/dist/MarkdownEditor/editor/plugins/withSchemaPlugin.js +55 -0
- package/dist/MarkdownEditor/editor/plugins/withVoidNodes.d.ts +12 -0
- package/dist/MarkdownEditor/editor/plugins/withVoidNodes.js +17 -0
- package/dist/MarkdownEditor/editor/store.js +1 -1
- package/dist/MarkdownEditor/editor/utils/docx/module.js +41 -8
- package/dist/MarkdownEditor/editor/utils/editorCommands.d.ts +97 -0
- package/dist/MarkdownEditor/editor/utils/editorCommands.js +966 -0
- package/dist/MarkdownEditor/editor/utils/editorUtils.js +2 -2
- package/dist/MarkdownEditor/editor/utils/keyboard.js +15 -391
- package/dist/MarkdownEditor/el.d.ts +12 -5
- package/dist/MarkdownInputField/MarkdownInputField.js +10 -23
- package/dist/MarkdownInputField/style.js +9 -4
- package/package.json +8 -8
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { RenderElementProps } from 'slate-react';
|
|
3
|
+
/**
|
|
4
|
+
* ReadonlyKatex 组件 - 只读数学公式块预览组件
|
|
5
|
+
*
|
|
6
|
+
* 专门针对 readonly 模式优化的数学公式块组件。
|
|
7
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
8
|
+
*
|
|
9
|
+
* @component
|
|
10
|
+
* @description 只读数学公式块预览组件,用于预览模式下的数学公式块渲染
|
|
11
|
+
* @param {RenderElementProps} props - 组件属性
|
|
12
|
+
* @param {any} props.element - 数学公式块节点元素
|
|
13
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
14
|
+
* @param {Object} props.attributes - 元素属性
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <ReadonlyKatex
|
|
19
|
+
* element={katexNode}
|
|
20
|
+
* attributes={attributes}
|
|
21
|
+
* >
|
|
22
|
+
* 公式内容
|
|
23
|
+
* </ReadonlyKatex>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @returns {React.ReactElement} 渲染的只读数学公式块组件
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* - 使用 React.memo 优化性能
|
|
30
|
+
* - 保持预览模式的视觉效果
|
|
31
|
+
*/
|
|
32
|
+
export declare const ReadonlyKatex: React.FC<RenderElementProps>;
|
|
@@ -0,0 +1,110 @@
|
|
|
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
|
+
function ownKeys(object, enumerableOnly) {
|
|
30
|
+
var keys = Object.keys(object);
|
|
31
|
+
if (Object.getOwnPropertySymbols) {
|
|
32
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
33
|
+
if (enumerableOnly) {
|
|
34
|
+
symbols = symbols.filter(function(sym) {
|
|
35
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
keys.push.apply(keys, symbols);
|
|
39
|
+
}
|
|
40
|
+
return keys;
|
|
41
|
+
}
|
|
42
|
+
function _object_spread_props(target, source) {
|
|
43
|
+
source = source != null ? source : {};
|
|
44
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
45
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
46
|
+
} else {
|
|
47
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
48
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return target;
|
|
52
|
+
}
|
|
53
|
+
import React from "react";
|
|
54
|
+
import { debugInfo } from "../../../../Utils/debugUtils";
|
|
55
|
+
/**
|
|
56
|
+
* ReadonlyKatex 组件 - 只读数学公式块预览组件
|
|
57
|
+
*
|
|
58
|
+
* 专门针对 readonly 模式优化的数学公式块组件。
|
|
59
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
60
|
+
*
|
|
61
|
+
* @component
|
|
62
|
+
* @description 只读数学公式块预览组件,用于预览模式下的数学公式块渲染
|
|
63
|
+
* @param {RenderElementProps} props - 组件属性
|
|
64
|
+
* @param {any} props.element - 数学公式块节点元素
|
|
65
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
66
|
+
* @param {Object} props.attributes - 元素属性
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```tsx
|
|
70
|
+
* <ReadonlyKatex
|
|
71
|
+
* element={katexNode}
|
|
72
|
+
* attributes={attributes}
|
|
73
|
+
* >
|
|
74
|
+
* 公式内容
|
|
75
|
+
* </ReadonlyKatex>
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @returns {React.ReactElement} 渲染的只读数学公式块组件
|
|
79
|
+
*
|
|
80
|
+
* @remarks
|
|
81
|
+
* - 使用 React.memo 优化性能
|
|
82
|
+
* - 保持预览模式的视觉效果
|
|
83
|
+
*/ export var ReadonlyKatex = /*#__PURE__*/ React.memo(function(param) {
|
|
84
|
+
var attributes = param.attributes, children = param.children, element = param.element;
|
|
85
|
+
var _element_value;
|
|
86
|
+
debugInfo('ReadonlyKatex - 渲染只读数学公式块', {
|
|
87
|
+
valueLength: element === null || element === void 0 ? void 0 : (_element_value = element.value) === null || _element_value === void 0 ? void 0 : _element_value.length
|
|
88
|
+
});
|
|
89
|
+
return /*#__PURE__*/ React.createElement("pre", _object_spread_props(_object_spread({}, attributes), {
|
|
90
|
+
style: {
|
|
91
|
+
background: 'rgb(242, 241, 241)',
|
|
92
|
+
color: 'rgb(27, 27, 27)',
|
|
93
|
+
padding: '1em',
|
|
94
|
+
borderRadius: '0.5em',
|
|
95
|
+
margin: '1em 0',
|
|
96
|
+
fontSize: '0.8em',
|
|
97
|
+
fontFamily: 'monospace',
|
|
98
|
+
lineHeight: '1.5',
|
|
99
|
+
overflowX: 'auto',
|
|
100
|
+
whiteSpace: 'pre-wrap',
|
|
101
|
+
wordBreak: 'break-all',
|
|
102
|
+
wordWrap: 'break-word'
|
|
103
|
+
}
|
|
104
|
+
}), /*#__PURE__*/ React.createElement("code", null, element.value), /*#__PURE__*/ React.createElement("div", {
|
|
105
|
+
style: {
|
|
106
|
+
display: 'none'
|
|
107
|
+
}
|
|
108
|
+
}, children));
|
|
109
|
+
});
|
|
110
|
+
ReadonlyKatex.displayName = 'ReadonlyKatex';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ElementProps, LinkCardNode } from '../../../el';
|
|
3
|
+
/**
|
|
4
|
+
* ReadonlyLinkCard 组件 - 只读链接卡片预览组件
|
|
5
|
+
*
|
|
6
|
+
* 专门针对 readonly 模式优化的链接卡片组件,移除了拖拽功能。
|
|
7
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
8
|
+
*
|
|
9
|
+
* @component
|
|
10
|
+
* @description 只读链接卡片预览组件,用于预览模式下的链接卡片渲染
|
|
11
|
+
* @param {ElementProps<LinkCardNode>} props - 组件属性
|
|
12
|
+
* @param {LinkCardNode} props.element - 链接卡片节点元素
|
|
13
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
14
|
+
* @param {Object} props.attributes - 元素属性
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <ReadonlyLinkCard
|
|
19
|
+
* element={linkCardNode}
|
|
20
|
+
* attributes={attributes}
|
|
21
|
+
* >
|
|
22
|
+
* 内容
|
|
23
|
+
* </ReadonlyLinkCard>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @returns {React.ReactElement} 渲染的只读链接卡片组件
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* - 移除拖拽手柄(DragHandle)
|
|
30
|
+
* - 移除拖拽相关事件处理
|
|
31
|
+
* - 使用 React.memo 优化性能
|
|
32
|
+
* - 保持预览模式的视觉效果
|
|
33
|
+
*/
|
|
34
|
+
export declare const ReadonlyLinkCard: React.FC<ElementProps<LinkCardNode<{
|
|
35
|
+
url: string;
|
|
36
|
+
collaborators: {
|
|
37
|
+
[key: string]: number;
|
|
38
|
+
}[];
|
|
39
|
+
updateTime: string;
|
|
40
|
+
}>>>;
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
function _array_like_to_array(arr, len) {
|
|
2
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
+
return arr2;
|
|
5
|
+
}
|
|
6
|
+
function _array_with_holes(arr) {
|
|
7
|
+
if (Array.isArray(arr)) return arr;
|
|
8
|
+
}
|
|
9
|
+
function _iterable_to_array_limit(arr, i) {
|
|
10
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
11
|
+
if (_i == null) return;
|
|
12
|
+
var _arr = [];
|
|
13
|
+
var _n = true;
|
|
14
|
+
var _d = false;
|
|
15
|
+
var _s, _e;
|
|
16
|
+
try {
|
|
17
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
18
|
+
_arr.push(_s.value);
|
|
19
|
+
if (i && _arr.length === i) break;
|
|
20
|
+
}
|
|
21
|
+
} catch (err) {
|
|
22
|
+
_d = true;
|
|
23
|
+
_e = err;
|
|
24
|
+
} finally{
|
|
25
|
+
try {
|
|
26
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
27
|
+
} finally{
|
|
28
|
+
if (_d) throw _e;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return _arr;
|
|
32
|
+
}
|
|
33
|
+
function _non_iterable_rest() {
|
|
34
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
35
|
+
}
|
|
36
|
+
function _sliced_to_array(arr, i) {
|
|
37
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
38
|
+
}
|
|
39
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
40
|
+
if (!o) return;
|
|
41
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
42
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
43
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
44
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
45
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
46
|
+
}
|
|
47
|
+
import { ConfigProvider, Skeleton } from "antd";
|
|
48
|
+
import classNames from "classnames";
|
|
49
|
+
import React, { useContext, useEffect, useState } from "react";
|
|
50
|
+
import { debugInfo } from "../../../../Utils/debugUtils";
|
|
51
|
+
import { AvatarList } from "../../components/ContributorAvatar";
|
|
52
|
+
import { useStyle } from "./style";
|
|
53
|
+
/**
|
|
54
|
+
* ReadonlyLinkCard 组件 - 只读链接卡片预览组件
|
|
55
|
+
*
|
|
56
|
+
* 专门针对 readonly 模式优化的链接卡片组件,移除了拖拽功能。
|
|
57
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
58
|
+
*
|
|
59
|
+
* @component
|
|
60
|
+
* @description 只读链接卡片预览组件,用于预览模式下的链接卡片渲染
|
|
61
|
+
* @param {ElementProps<LinkCardNode>} props - 组件属性
|
|
62
|
+
* @param {LinkCardNode} props.element - 链接卡片节点元素
|
|
63
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
64
|
+
* @param {Object} props.attributes - 元素属性
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```tsx
|
|
68
|
+
* <ReadonlyLinkCard
|
|
69
|
+
* element={linkCardNode}
|
|
70
|
+
* attributes={attributes}
|
|
71
|
+
* >
|
|
72
|
+
* 内容
|
|
73
|
+
* </ReadonlyLinkCard>
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* @returns {React.ReactElement} 渲染的只读链接卡片组件
|
|
77
|
+
*
|
|
78
|
+
* @remarks
|
|
79
|
+
* - 移除拖拽手柄(DragHandle)
|
|
80
|
+
* - 移除拖拽相关事件处理
|
|
81
|
+
* - 使用 React.memo 优化性能
|
|
82
|
+
* - 保持预览模式的视觉效果
|
|
83
|
+
*/ export var ReadonlyLinkCard = /*#__PURE__*/ React.memo(function(param) {
|
|
84
|
+
var element = param.element, attributes = param.attributes, children = param.children;
|
|
85
|
+
var _element_url, _element_otherProps, _element_otherProps_collaborators, _element_otherProps1, _element_otherProps2;
|
|
86
|
+
debugInfo('ReadonlyLinkCard - 渲染只读链接卡片', {
|
|
87
|
+
url: element === null || element === void 0 ? void 0 : (_element_url = element.url) === null || _element_url === void 0 ? void 0 : _element_url.substring(0, 100),
|
|
88
|
+
title: element === null || element === void 0 ? void 0 : element.title,
|
|
89
|
+
name: element === null || element === void 0 ? void 0 : element.name,
|
|
90
|
+
finished: element === null || element === void 0 ? void 0 : element.finished
|
|
91
|
+
});
|
|
92
|
+
var context = useContext(ConfigProvider.ConfigContext);
|
|
93
|
+
var baseCls = context === null || context === void 0 ? void 0 : context.getPrefixCls('agentic-md-editor-link-card');
|
|
94
|
+
var _useStyle = useStyle(baseCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
|
|
95
|
+
var _useState = _sliced_to_array(useState(false), 2), showAsText = _useState[0], setShowAsText = _useState[1];
|
|
96
|
+
// 如果 finished 为 false,设置 5 秒超时,超时后显示为文本
|
|
97
|
+
useEffect(function() {
|
|
98
|
+
if (element.finished === false) {
|
|
99
|
+
debugInfo('ReadonlyLinkCard - 设置超时显示文本');
|
|
100
|
+
setShowAsText(false);
|
|
101
|
+
var timer = setTimeout(function() {
|
|
102
|
+
debugInfo('ReadonlyLinkCard - 超时,显示为文本');
|
|
103
|
+
setShowAsText(true);
|
|
104
|
+
}, 5000);
|
|
105
|
+
return function() {
|
|
106
|
+
clearTimeout(timer);
|
|
107
|
+
};
|
|
108
|
+
} else {
|
|
109
|
+
setShowAsText(false);
|
|
110
|
+
}
|
|
111
|
+
}, [
|
|
112
|
+
element.finished
|
|
113
|
+
]);
|
|
114
|
+
// 如果是不完整状态
|
|
115
|
+
if (element.finished === false) {
|
|
116
|
+
// 如果 5 秒后仍未完成,显示为文本
|
|
117
|
+
if (showAsText) {
|
|
118
|
+
debugInfo('ReadonlyLinkCard - 显示为文本');
|
|
119
|
+
return /*#__PURE__*/ React.createElement("div", attributes, /*#__PURE__*/ React.createElement("div", {
|
|
120
|
+
style: {
|
|
121
|
+
padding: '8px 12px',
|
|
122
|
+
border: '1px solid #d9d9d9',
|
|
123
|
+
borderRadius: '4px',
|
|
124
|
+
color: 'rgba(0, 0, 0, 0.65)',
|
|
125
|
+
wordBreak: 'break-all'
|
|
126
|
+
}
|
|
127
|
+
}, element.url || element.title || element.name || '链接卡片'), children);
|
|
128
|
+
}
|
|
129
|
+
// 5 秒内显示加载骨架屏
|
|
130
|
+
debugInfo('ReadonlyLinkCard - 显示加载骨架屏');
|
|
131
|
+
return /*#__PURE__*/ React.createElement("div", attributes, /*#__PURE__*/ React.createElement(Skeleton, {
|
|
132
|
+
active: true,
|
|
133
|
+
paragraph: {
|
|
134
|
+
rows: 2
|
|
135
|
+
}
|
|
136
|
+
}), children);
|
|
137
|
+
}
|
|
138
|
+
debugInfo('ReadonlyLinkCard - 渲染完整链接卡片');
|
|
139
|
+
return wrapSSR(/*#__PURE__*/ React.createElement("div", attributes, /*#__PURE__*/ React.createElement("div", {
|
|
140
|
+
className: classNames(baseCls, hashId),
|
|
141
|
+
"data-be": "link-card",
|
|
142
|
+
draggable: false,
|
|
143
|
+
style: {
|
|
144
|
+
display: 'flex'
|
|
145
|
+
}
|
|
146
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
147
|
+
style: {
|
|
148
|
+
display: 'flex',
|
|
149
|
+
height: '100%',
|
|
150
|
+
minWidth: '0',
|
|
151
|
+
fontSize: 60,
|
|
152
|
+
minHeight: '100px',
|
|
153
|
+
lineHeight: '100px'
|
|
154
|
+
}
|
|
155
|
+
}, children.at(0)), /*#__PURE__*/ React.createElement("div", {
|
|
156
|
+
style: {
|
|
157
|
+
flex: 1
|
|
158
|
+
},
|
|
159
|
+
onClick: function() {
|
|
160
|
+
if (typeof window === 'undefined') return;
|
|
161
|
+
window.open(element === null || element === void 0 ? void 0 : element.url);
|
|
162
|
+
},
|
|
163
|
+
className: classNames("".concat(baseCls, "-container"), hashId)
|
|
164
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
165
|
+
className: classNames("".concat(baseCls, "-container-content"), hashId),
|
|
166
|
+
contentEditable: false
|
|
167
|
+
}, element.icon ? /*#__PURE__*/ React.createElement("img", {
|
|
168
|
+
className: classNames("".concat(baseCls, "-container-content-icon"), hashId),
|
|
169
|
+
src: element.icon,
|
|
170
|
+
width: 56
|
|
171
|
+
}) : null, /*#__PURE__*/ React.createElement("div", {
|
|
172
|
+
style: {
|
|
173
|
+
flex: 1,
|
|
174
|
+
minWidth: 0
|
|
175
|
+
}
|
|
176
|
+
}, /*#__PURE__*/ React.createElement("a", {
|
|
177
|
+
href: element === null || element === void 0 ? void 0 : element.url,
|
|
178
|
+
className: classNames("".concat(baseCls, "-container-content-title"), hashId),
|
|
179
|
+
onClick: function(e) {
|
|
180
|
+
e.stopPropagation();
|
|
181
|
+
e.preventDefault();
|
|
182
|
+
if (typeof window === 'undefined') return;
|
|
183
|
+
window.open(element === null || element === void 0 ? void 0 : element.url);
|
|
184
|
+
},
|
|
185
|
+
download: element.title || element.name || 'no title'
|
|
186
|
+
}, element.title || element.name || 'no title'), /*#__PURE__*/ React.createElement("div", {
|
|
187
|
+
className: classNames("".concat(baseCls, "-container-content-description"), hashId)
|
|
188
|
+
}, element.description ? element.description : element === null || element === void 0 ? void 0 : element.url), /*#__PURE__*/ React.createElement("div", {
|
|
189
|
+
className: classNames("".concat(baseCls, "-container-content-collaborators"), hashId)
|
|
190
|
+
}, ((_element_otherProps = element.otherProps) === null || _element_otherProps === void 0 ? void 0 : _element_otherProps.collaborators) ? /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement(AvatarList, {
|
|
191
|
+
displayList: ((_element_otherProps1 = element.otherProps) === null || _element_otherProps1 === void 0 ? void 0 : (_element_otherProps_collaborators = _element_otherProps1.collaborators) === null || _element_otherProps_collaborators === void 0 ? void 0 : _element_otherProps_collaborators.map(function(item) {
|
|
192
|
+
var _Object_keys, _Object_values;
|
|
193
|
+
return {
|
|
194
|
+
name: (_Object_keys = Object.keys(item)) === null || _Object_keys === void 0 ? void 0 : _Object_keys.at(0),
|
|
195
|
+
collaboratorNumber: ((_Object_values = Object.values(item)) === null || _Object_values === void 0 ? void 0 : _Object_values.at(0)) || 0
|
|
196
|
+
};
|
|
197
|
+
}).slice(0, 5)) || []
|
|
198
|
+
})) : /*#__PURE__*/ React.createElement("div", null), ((_element_otherProps2 = element.otherProps) === null || _element_otherProps2 === void 0 ? void 0 : _element_otherProps2.updateTime) ? /*#__PURE__*/ React.createElement("div", {
|
|
199
|
+
className: classNames("".concat(baseCls, "-container-content-updateTime"), hashId),
|
|
200
|
+
style: {
|
|
201
|
+
color: 'rgba(0,0,0,0.45)',
|
|
202
|
+
fontSize: 12
|
|
203
|
+
}
|
|
204
|
+
}, element.otherProps.updateTime) : null)))), /*#__PURE__*/ React.createElement("div", {
|
|
205
|
+
style: {
|
|
206
|
+
display: 'flex',
|
|
207
|
+
height: '100%',
|
|
208
|
+
minWidth: '4px',
|
|
209
|
+
minHeight: '100px',
|
|
210
|
+
fontSize: 60,
|
|
211
|
+
lineHeight: '100px'
|
|
212
|
+
}
|
|
213
|
+
}, children.at(-1)))));
|
|
214
|
+
});
|
|
215
|
+
ReadonlyLinkCard.displayName = 'ReadonlyLinkCard';
|
|
@@ -75,10 +75,17 @@ export var ListContext = /*#__PURE__*/ React.createContext(null);
|
|
|
75
75
|
*/ export var List = function(param) {
|
|
76
76
|
var element = param.element, attributes = param.attributes, children = param.children;
|
|
77
77
|
var _element_children;
|
|
78
|
+
// 支持新的列表类型和向后兼容
|
|
79
|
+
// 新格式:numbered-list 或 bulleted-list
|
|
80
|
+
// 旧格式:list 类型,通过 order 属性判断
|
|
81
|
+
var isOrdered = element.type === 'numbered-list' || element.type === 'list' && element.order === true;
|
|
82
|
+
// 获取 task 属性(支持旧格式和新格式)
|
|
83
|
+
var task = element.task;
|
|
78
84
|
debugInfo('List - 渲染列表', {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
85
|
+
type: element.type,
|
|
86
|
+
isOrdered: isOrdered,
|
|
87
|
+
task: task,
|
|
88
|
+
start: isOrdered ? element.start : undefined,
|
|
82
89
|
childrenCount: (_element_children = element.children) === null || _element_children === void 0 ? void 0 : _element_children.length
|
|
83
90
|
});
|
|
84
91
|
var _useEditorStore = useEditorStore(), store = _useEditorStore.store, markdownContainerRef = _useEditorStore.markdownContainerRef;
|
|
@@ -86,12 +93,16 @@ export var ListContext = /*#__PURE__*/ React.createContext(null);
|
|
|
86
93
|
var baseCls = context.getPrefixCls('agentic-md-editor-list');
|
|
87
94
|
var _useStyle = useStyle(baseCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
|
|
88
95
|
var listContent = React.useMemo(function() {
|
|
89
|
-
|
|
96
|
+
// 支持新的列表类型和向后兼容
|
|
97
|
+
var isOrdered = element.type === 'numbered-list' || element.type === 'list' && element.order === true;
|
|
98
|
+
var task = element.task;
|
|
99
|
+
var start = isOrdered ? element.start : undefined;
|
|
100
|
+
var tag = isOrdered ? 'ol' : 'ul';
|
|
90
101
|
debugInfo('List - useMemo 渲染', {
|
|
91
102
|
tag: tag,
|
|
92
|
-
|
|
93
|
-
start:
|
|
94
|
-
task:
|
|
103
|
+
type: element.type,
|
|
104
|
+
start: start,
|
|
105
|
+
task: task
|
|
95
106
|
});
|
|
96
107
|
return wrapSSR(/*#__PURE__*/ React.createElement(ListContext.Provider, {
|
|
97
108
|
value: {
|
|
@@ -105,13 +116,17 @@ export var ListContext = /*#__PURE__*/ React.createContext(null);
|
|
|
105
116
|
debugInfo('List - 拖拽开始');
|
|
106
117
|
store.dragStart(e, markdownContainerRef.current);
|
|
107
118
|
}
|
|
108
|
-
}), /*#__PURE__*/ createElement(tag,
|
|
109
|
-
className: classNames(baseCls, hashId,
|
|
110
|
-
|
|
111
|
-
|
|
119
|
+
}), /*#__PURE__*/ createElement(tag, _object_spread({
|
|
120
|
+
className: classNames(baseCls, hashId, isOrdered ? 'ol' : 'ul')
|
|
121
|
+
}, start !== undefined && {
|
|
122
|
+
start: start
|
|
123
|
+
}, task && {
|
|
124
|
+
'data-task': 'true'
|
|
125
|
+
}), children))));
|
|
112
126
|
}, [
|
|
113
|
-
element.
|
|
127
|
+
element.type,
|
|
114
128
|
element.order,
|
|
129
|
+
element.task,
|
|
115
130
|
element.start,
|
|
116
131
|
element.children,
|
|
117
132
|
baseCls,
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ElementProps, ListNode } from '../../../el';
|
|
3
|
+
/**
|
|
4
|
+
* ReadonlyList 组件 - 只读列表预览组件
|
|
5
|
+
*
|
|
6
|
+
* 专门针对 readonly 模式优化的列表组件,移除了拖拽功能等编辑相关功能。
|
|
7
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
8
|
+
*
|
|
9
|
+
* @component
|
|
10
|
+
* @description 只读列表预览组件,用于预览模式下的列表渲染
|
|
11
|
+
* @param {ElementProps<ListNode>} props - 组件属性
|
|
12
|
+
* @param {ListNode} props.element - 列表节点元素
|
|
13
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
14
|
+
* @param {Object} props.attributes - 元素属性
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <ReadonlyList
|
|
19
|
+
* element={listNode}
|
|
20
|
+
* attributes={attributes}
|
|
21
|
+
* >
|
|
22
|
+
* 列表项内容
|
|
23
|
+
* </ReadonlyList>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @returns {React.ReactElement} 渲染的只读列表组件
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* - 移除拖拽相关事件处理
|
|
30
|
+
* - 使用 React.memo 优化性能
|
|
31
|
+
* - 保持预览模式的视觉效果
|
|
32
|
+
*/
|
|
33
|
+
export declare const ReadonlyList: React.FC<ElementProps<ListNode>>;
|
|
@@ -0,0 +1,93 @@
|
|
|
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 { ConfigProvider } from "antd";
|
|
30
|
+
import classNames from "classnames";
|
|
31
|
+
import React, { createElement, useContext } from "react";
|
|
32
|
+
import { debugInfo } from "../../../../Utils/debugUtils";
|
|
33
|
+
import { useStyle } from "./style";
|
|
34
|
+
/**
|
|
35
|
+
* ReadonlyList 组件 - 只读列表预览组件
|
|
36
|
+
*
|
|
37
|
+
* 专门针对 readonly 模式优化的列表组件,移除了拖拽功能等编辑相关功能。
|
|
38
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
39
|
+
*
|
|
40
|
+
* @component
|
|
41
|
+
* @description 只读列表预览组件,用于预览模式下的列表渲染
|
|
42
|
+
* @param {ElementProps<ListNode>} props - 组件属性
|
|
43
|
+
* @param {ListNode} props.element - 列表节点元素
|
|
44
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
45
|
+
* @param {Object} props.attributes - 元素属性
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* <ReadonlyList
|
|
50
|
+
* element={listNode}
|
|
51
|
+
* attributes={attributes}
|
|
52
|
+
* >
|
|
53
|
+
* 列表项内容
|
|
54
|
+
* </ReadonlyList>
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @returns {React.ReactElement} 渲染的只读列表组件
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* - 移除拖拽相关事件处理
|
|
61
|
+
* - 使用 React.memo 优化性能
|
|
62
|
+
* - 保持预览模式的视觉效果
|
|
63
|
+
*/ export var ReadonlyList = /*#__PURE__*/ React.memo(function(param) {
|
|
64
|
+
var element = param.element, attributes = param.attributes, children = param.children;
|
|
65
|
+
var _element_children;
|
|
66
|
+
var isOrdered = element.type === 'numbered-list';
|
|
67
|
+
var isBulleted = element.type === 'bulleted-list';
|
|
68
|
+
debugInfo('ReadonlyList - 渲染只读列表', {
|
|
69
|
+
type: element.type,
|
|
70
|
+
isOrdered: isOrdered,
|
|
71
|
+
task: isBulleted ? element.task : undefined,
|
|
72
|
+
start: isOrdered ? element.start : undefined,
|
|
73
|
+
childrenCount: (_element_children = element.children) === null || _element_children === void 0 ? void 0 : _element_children.length
|
|
74
|
+
});
|
|
75
|
+
var context = useContext(ConfigProvider.ConfigContext);
|
|
76
|
+
var baseCls = context.getPrefixCls('agentic-md-editor-list');
|
|
77
|
+
var _useStyle = useStyle(baseCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
|
|
78
|
+
var tag = isOrdered ? 'ol' : 'ul';
|
|
79
|
+
debugInfo('ReadonlyList - 渲染', {
|
|
80
|
+
tag: tag,
|
|
81
|
+
type: element.type,
|
|
82
|
+
start: isOrdered ? element.start : undefined,
|
|
83
|
+
task: isBulleted ? element.task : undefined
|
|
84
|
+
});
|
|
85
|
+
return wrapSSR(/*#__PURE__*/ React.createElement("div", _object_spread({
|
|
86
|
+
className: classNames("".concat(baseCls, "-container"), hashId, 'relative'),
|
|
87
|
+
"data-be": 'list'
|
|
88
|
+
}, attributes), /*#__PURE__*/ createElement(tag, _define_property({
|
|
89
|
+
className: classNames(baseCls, hashId, isOrdered ? 'ol' : 'ul'),
|
|
90
|
+
start: isOrdered ? element.start : undefined
|
|
91
|
+
}, 'data-task', isBulleted && element.task ? 'true' : undefined), children)));
|
|
92
|
+
});
|
|
93
|
+
ReadonlyList.displayName = 'ReadonlyList';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ElementProps, ListItemNode } from '../../../el';
|
|
3
|
+
/**
|
|
4
|
+
* ReadonlyListItem 组件 - 只读列表项预览组件
|
|
5
|
+
*
|
|
6
|
+
* 专门针对 readonly 模式优化的列表项组件,移除了编辑相关功能。
|
|
7
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
8
|
+
*
|
|
9
|
+
* @component
|
|
10
|
+
* @description 只读列表项预览组件,用于预览模式下的列表项渲染
|
|
11
|
+
* @param {ElementProps<ListItemNode>} props - 组件属性
|
|
12
|
+
* @param {ListItemNode} props.element - 列表项节点元素
|
|
13
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
14
|
+
* @param {Object} props.attributes - 元素属性
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <ReadonlyListItem
|
|
19
|
+
* element={listItemNode}
|
|
20
|
+
* attributes={attributes}
|
|
21
|
+
* >
|
|
22
|
+
* 列表项内容
|
|
23
|
+
* </ReadonlyListItem>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @returns {React.ReactElement} 渲染的只读列表项组件
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* - 移除拖拽相关事件处理
|
|
30
|
+
* - 任务列表的复选框在预览模式下只读
|
|
31
|
+
* - 移除提及用户编辑功能
|
|
32
|
+
* - 使用 React.memo 优化性能
|
|
33
|
+
* - 保持预览模式的视觉效果
|
|
34
|
+
*/
|
|
35
|
+
export declare const ReadonlyListItem: React.FC<ElementProps<ListItemNode>>;
|