@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,101 @@
|
|
|
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 { ConfigProvider } from "antd";
|
|
54
|
+
import classNames from "classnames";
|
|
55
|
+
import React, { useContext } from "react";
|
|
56
|
+
import { debugInfo } from "../../../../Utils/debugUtils";
|
|
57
|
+
import { useStyle } from "./style";
|
|
58
|
+
/**
|
|
59
|
+
* ReadonlyMermaid 组件 - 只读 Mermaid 图表预览组件
|
|
60
|
+
*
|
|
61
|
+
* 专门针对 readonly 模式优化的 Mermaid 图表组件。
|
|
62
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
63
|
+
*
|
|
64
|
+
* @component
|
|
65
|
+
* @description 只读 Mermaid 图表预览组件,用于预览模式下的 Mermaid 图表渲染
|
|
66
|
+
* @param {RenderElementProps} props - 组件属性
|
|
67
|
+
* @param {any} props.element - Mermaid 图表节点元素
|
|
68
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
69
|
+
* @param {Object} props.attributes - 元素属性
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```tsx
|
|
73
|
+
* <ReadonlyMermaid
|
|
74
|
+
* element={mermaidNode}
|
|
75
|
+
* attributes={attributes}
|
|
76
|
+
* >
|
|
77
|
+
* 图表内容
|
|
78
|
+
* </ReadonlyMermaid>
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @returns {React.ReactElement} 渲染的只读 Mermaid 图表组件
|
|
82
|
+
*
|
|
83
|
+
* @remarks
|
|
84
|
+
* - 使用 React.memo 优化性能
|
|
85
|
+
* - 保持预览模式的视觉效果
|
|
86
|
+
*/ export var ReadonlyMermaid = /*#__PURE__*/ React.memo(function(param) {
|
|
87
|
+
var attributes = param.attributes, children = param.children, element = param.element;
|
|
88
|
+
var _element_otherProps, _element_value, _element_otherProps1;
|
|
89
|
+
debugInfo('ReadonlyMermaid - 渲染只读 Mermaid 图表', {
|
|
90
|
+
hasError: (element === null || element === void 0 ? void 0 : (_element_otherProps = element.otherProps) === null || _element_otherProps === void 0 ? void 0 : _element_otherProps.error) === true,
|
|
91
|
+
valueLength: element === null || element === void 0 ? void 0 : (_element_value = element.value) === null || _element_value === void 0 ? void 0 : _element_value.length
|
|
92
|
+
});
|
|
93
|
+
var context = useContext(ConfigProvider.ConfigContext);
|
|
94
|
+
var baseCls = context === null || context === void 0 ? void 0 : context.getPrefixCls('agentic-md-editor-mermaid');
|
|
95
|
+
var _useStyle = useStyle(baseCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
|
|
96
|
+
var hasError = (element === null || element === void 0 ? void 0 : (_element_otherProps1 = element.otherProps) === null || _element_otherProps1 === void 0 ? void 0 : _element_otherProps1.error) === true;
|
|
97
|
+
return wrapSSR(/*#__PURE__*/ React.createElement("pre", _object_spread_props(_object_spread({}, attributes), {
|
|
98
|
+
className: classNames(baseCls, hashId, _define_property({}, "".concat(baseCls, "-error"), hasError))
|
|
99
|
+
}), /*#__PURE__*/ React.createElement("code", null, children)));
|
|
100
|
+
});
|
|
101
|
+
ReadonlyMermaid.displayName = 'ReadonlyMermaid';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ElementProps, ParagraphNode } from '../../../el';
|
|
3
|
+
/**
|
|
4
|
+
* ReadonlyParagraph 组件 - 只读段落预览组件
|
|
5
|
+
*
|
|
6
|
+
* 专门针对 readonly 模式优化的段落组件,移除了拖拽手柄、占位符逻辑等编辑相关功能。
|
|
7
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
8
|
+
*
|
|
9
|
+
* @component
|
|
10
|
+
* @description 只读段落预览组件,用于预览模式下的段落渲染
|
|
11
|
+
* @param {ElementProps<ParagraphNode>} props - 组件属性
|
|
12
|
+
* @param {ParagraphNode} props.element - 段落节点元素
|
|
13
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
14
|
+
* @param {Object} props.attributes - 元素属性
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <ReadonlyParagraph
|
|
19
|
+
* element={paragraphNode}
|
|
20
|
+
* attributes={attributes}
|
|
21
|
+
* >
|
|
22
|
+
* 段落内容
|
|
23
|
+
* </ReadonlyParagraph>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @returns {React.ReactElement} 渲染的只读段落组件
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* - 移除拖拽手柄(DragHandle)
|
|
30
|
+
* - 移除占位符逻辑
|
|
31
|
+
* - 移除拖拽相关事件处理
|
|
32
|
+
* - 使用 React.memo 优化性能
|
|
33
|
+
* - 保持预览模式的视觉效果
|
|
34
|
+
*/
|
|
35
|
+
export declare const ReadonlyParagraph: React.FC<ElementProps<ParagraphNode>>;
|
|
@@ -0,0 +1,109 @@
|
|
|
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 classNames from "classnames";
|
|
54
|
+
import React from "react";
|
|
55
|
+
import { Node } from "slate";
|
|
56
|
+
import { debugInfo } from "../../../../Utils/debugUtils";
|
|
57
|
+
/**
|
|
58
|
+
* ReadonlyParagraph 组件 - 只读段落预览组件
|
|
59
|
+
*
|
|
60
|
+
* 专门针对 readonly 模式优化的段落组件,移除了拖拽手柄、占位符逻辑等编辑相关功能。
|
|
61
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
62
|
+
*
|
|
63
|
+
* @component
|
|
64
|
+
* @description 只读段落预览组件,用于预览模式下的段落渲染
|
|
65
|
+
* @param {ElementProps<ParagraphNode>} props - 组件属性
|
|
66
|
+
* @param {ParagraphNode} props.element - 段落节点元素
|
|
67
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
68
|
+
* @param {Object} props.attributes - 元素属性
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```tsx
|
|
72
|
+
* <ReadonlyParagraph
|
|
73
|
+
* element={paragraphNode}
|
|
74
|
+
* attributes={attributes}
|
|
75
|
+
* >
|
|
76
|
+
* 段落内容
|
|
77
|
+
* </ReadonlyParagraph>
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @returns {React.ReactElement} 渲染的只读段落组件
|
|
81
|
+
*
|
|
82
|
+
* @remarks
|
|
83
|
+
* - 移除拖拽手柄(DragHandle)
|
|
84
|
+
* - 移除占位符逻辑
|
|
85
|
+
* - 移除拖拽相关事件处理
|
|
86
|
+
* - 使用 React.memo 优化性能
|
|
87
|
+
* - 保持预览模式的视觉效果
|
|
88
|
+
*/ export var ReadonlyParagraph = /*#__PURE__*/ React.memo(function(props) {
|
|
89
|
+
var _props_children;
|
|
90
|
+
debugInfo('ReadonlyParagraph - 渲染只读段落', {
|
|
91
|
+
align: props.element.align,
|
|
92
|
+
children: props.element.children
|
|
93
|
+
});
|
|
94
|
+
var str = Node.string(props.element).trim();
|
|
95
|
+
debugInfo('ReadonlyParagraph - useMemo 渲染', {
|
|
96
|
+
strLength: str.length,
|
|
97
|
+
align: props.element.align
|
|
98
|
+
});
|
|
99
|
+
return /*#__PURE__*/ React.createElement("div", _object_spread_props(_object_spread({}, props.attributes), {
|
|
100
|
+
"data-be": 'paragraph',
|
|
101
|
+
className: classNames({}),
|
|
102
|
+
"data-align": props.element.align,
|
|
103
|
+
style: {
|
|
104
|
+
display: !!str || !!((_props_children = props.children) === null || _props_children === void 0 ? void 0 : _props_children.at(0).type) ? undefined : 'none',
|
|
105
|
+
textAlign: props.element.align
|
|
106
|
+
}
|
|
107
|
+
}), props.children);
|
|
108
|
+
});
|
|
109
|
+
ReadonlyParagraph.displayName = 'ReadonlyParagraph';
|
|
@@ -145,7 +145,8 @@ export var Paragraph = function(props) {
|
|
|
145
145
|
},
|
|
146
146
|
"data-empty": isEmpty,
|
|
147
147
|
style: {
|
|
148
|
-
display: !!str || !!((_props_children = props.children) === null || _props_children === void 0 ? void 0 : _props_children.at(0).type) ? undefined : 'none'
|
|
148
|
+
display: !!str || !!((_props_children = props.children) === null || _props_children === void 0 ? void 0 : _props_children.at(0).type) ? undefined : 'none',
|
|
149
|
+
textAlign: props.element.align
|
|
149
150
|
}
|
|
150
151
|
}), /*#__PURE__*/ React.createElement(DragHandle, null), props.children);
|
|
151
152
|
}, [
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { RenderElementProps } from 'slate-react';
|
|
3
|
+
/**
|
|
4
|
+
* ReadonlySchema 组件 - 只读模式渲染组件
|
|
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
|
+
* <ReadonlySchema
|
|
19
|
+
* element={schemaNode}
|
|
20
|
+
* attributes={attributes}
|
|
21
|
+
* >
|
|
22
|
+
* 模式内容
|
|
23
|
+
* </ReadonlySchema>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @returns {React.ReactElement} 渲染的只读模式组件
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* - 移除编辑相关功能
|
|
30
|
+
* - 使用 React.memo 优化性能
|
|
31
|
+
* - 保持预览模式的视觉效果
|
|
32
|
+
*/
|
|
33
|
+
export declare const ReadonlySchema: React.FC<RenderElementProps>;
|
|
@@ -0,0 +1,163 @@
|
|
|
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
|
+
function _type_of(obj) {
|
|
54
|
+
"@swc/helpers - typeof";
|
|
55
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
56
|
+
}
|
|
57
|
+
import React, { useContext } from "react";
|
|
58
|
+
import { BubbleConfigContext } from "../../../../Bubble/BubbleConfigProvide";
|
|
59
|
+
import { SchemaRenderer } from "../../../../Schema";
|
|
60
|
+
import { debugInfo } from "../../../../Utils/debugUtils";
|
|
61
|
+
import { useEditorStore } from "../../store";
|
|
62
|
+
/**
|
|
63
|
+
* ReadonlySchema 组件 - 只读模式渲染组件
|
|
64
|
+
*
|
|
65
|
+
* 专门针对 readonly 模式优化的模式组件,移除了编辑相关功能。
|
|
66
|
+
* 简化渲染逻辑,提升预览模式性能。
|
|
67
|
+
*
|
|
68
|
+
* @component
|
|
69
|
+
* @description 只读模式预览组件,用于预览模式下的模式渲染
|
|
70
|
+
* @param {RenderElementProps} props - 组件属性
|
|
71
|
+
* @param {any} props.element - 模式节点元素
|
|
72
|
+
* @param {React.ReactNode} props.children - 子组件内容
|
|
73
|
+
* @param {Object} props.attributes - 元素属性
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```tsx
|
|
77
|
+
* <ReadonlySchema
|
|
78
|
+
* element={schemaNode}
|
|
79
|
+
* attributes={attributes}
|
|
80
|
+
* >
|
|
81
|
+
* 模式内容
|
|
82
|
+
* </ReadonlySchema>
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* @returns {React.ReactElement} 渲染的只读模式组件
|
|
86
|
+
*
|
|
87
|
+
* @remarks
|
|
88
|
+
* - 移除编辑相关功能
|
|
89
|
+
* - 使用 React.memo 优化性能
|
|
90
|
+
* - 保持预览模式的视觉效果
|
|
91
|
+
*/ export var ReadonlySchema = /*#__PURE__*/ React.memo(function(props) {
|
|
92
|
+
debugInfo('ReadonlySchema - 渲染只读 Schema', {
|
|
93
|
+
language: props.element.language,
|
|
94
|
+
valueType: _type_of(props.element.value),
|
|
95
|
+
hasApaasify: !!props.element.apaasify
|
|
96
|
+
});
|
|
97
|
+
var node = props.element;
|
|
98
|
+
var editorProps = useEditorStore().editorProps;
|
|
99
|
+
var apaasify = (editorProps === null || editorProps === void 0 ? void 0 : editorProps.apaasify) || (editorProps === null || editorProps === void 0 ? void 0 : editorProps.apassify);
|
|
100
|
+
var bubble = (useContext(BubbleConfigContext) || {}).bubble;
|
|
101
|
+
if ((apaasify === null || apaasify === void 0 ? void 0 : apaasify.enable) && apaasify.render) {
|
|
102
|
+
debugInfo('ReadonlySchema - 使用自定义 apaasify 渲染');
|
|
103
|
+
var renderedContent = apaasify.render(props, bubble === null || bubble === void 0 ? void 0 : bubble.originData);
|
|
104
|
+
return /*#__PURE__*/ React.createElement("div", _object_spread_props(_object_spread({}, node.attributes), {
|
|
105
|
+
"data-testid": "schema-container",
|
|
106
|
+
contentEditable: false,
|
|
107
|
+
style: {
|
|
108
|
+
display: 'flex',
|
|
109
|
+
flexDirection: 'column',
|
|
110
|
+
userSelect: 'text',
|
|
111
|
+
WebkitUserSelect: 'text'
|
|
112
|
+
}
|
|
113
|
+
}), renderedContent, /*#__PURE__*/ React.createElement("div", {
|
|
114
|
+
"data-testid": "schema-hidden-json",
|
|
115
|
+
style: {
|
|
116
|
+
height: 1,
|
|
117
|
+
opacity: 0,
|
|
118
|
+
userSelect: 'none',
|
|
119
|
+
pointerEvents: 'none',
|
|
120
|
+
overflow: 'hidden'
|
|
121
|
+
}
|
|
122
|
+
}, JSON.stringify(props.element.value, null, 2)));
|
|
123
|
+
}
|
|
124
|
+
if (node.language === 'agentar-card') {
|
|
125
|
+
var _props_element_value;
|
|
126
|
+
debugInfo('ReadonlySchema - 使用 AgentAR 卡片渲染');
|
|
127
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
128
|
+
"data-testid": "agentar-card-container",
|
|
129
|
+
style: {
|
|
130
|
+
padding: '0.5em'
|
|
131
|
+
},
|
|
132
|
+
"data-agentar-card": true
|
|
133
|
+
}, /*#__PURE__*/ React.createElement(SchemaRenderer, {
|
|
134
|
+
schema: props.element.value,
|
|
135
|
+
values: ((_props_element_value = props.element.value) === null || _props_element_value === void 0 ? void 0 : _props_element_value.initialValues) || {},
|
|
136
|
+
useDefaultValues: false,
|
|
137
|
+
debug: false,
|
|
138
|
+
fallbackContent: null
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
debugInfo('ReadonlySchema - 使用默认 JSON 渲染');
|
|
142
|
+
return /*#__PURE__*/ React.createElement("pre", _object_spread_props(_object_spread({}, props.attributes), {
|
|
143
|
+
style: {
|
|
144
|
+
background: 'rgb(242, 241, 241)',
|
|
145
|
+
color: 'rgb(27, 27, 27)',
|
|
146
|
+
padding: '1em',
|
|
147
|
+
borderRadius: '0.5em',
|
|
148
|
+
margin: '1em 0',
|
|
149
|
+
fontSize: '0.8em',
|
|
150
|
+
fontFamily: 'monospace',
|
|
151
|
+
lineHeight: '1.5',
|
|
152
|
+
overflowX: 'auto',
|
|
153
|
+
whiteSpace: 'pre-wrap',
|
|
154
|
+
wordBreak: 'break-all',
|
|
155
|
+
wordWrap: 'break-word'
|
|
156
|
+
}
|
|
157
|
+
}), /*#__PURE__*/ React.createElement("code", null, JSON.stringify(props.element.value, null, 2)), /*#__PURE__*/ React.createElement("div", {
|
|
158
|
+
style: {
|
|
159
|
+
display: 'none'
|
|
160
|
+
}
|
|
161
|
+
}, props.children));
|
|
162
|
+
});
|
|
163
|
+
ReadonlySchema.displayName = 'ReadonlySchema';
|
|
@@ -2,17 +2,36 @@ import React from 'react';
|
|
|
2
2
|
import { RenderElementProps, RenderLeafProps } from 'slate-react';
|
|
3
3
|
import { MarkdownEditorProps } from '../../types';
|
|
4
4
|
import { Blockquote } from './Blockquote';
|
|
5
|
+
import { ReadonlyBlockquote } from './Blockquote/ReadonlyBlockquote';
|
|
5
6
|
import { Break } from './Break';
|
|
7
|
+
import { ReadonlyBreak } from './Break/ReadonlyBreak';
|
|
8
|
+
import { ReadonlyCard } from './Card/ReadonlyCard';
|
|
6
9
|
import { Code } from './Code';
|
|
10
|
+
import { ReadonlyCode } from './Code/ReadonlyCode';
|
|
11
|
+
import { ReadonlyFootnoteDefinition } from './FootnoteDefinition/ReadonlyFootnoteDefinition';
|
|
12
|
+
import { ReadonlyFootnoteReference } from './FootnoteReference/ReadonlyFootnoteReference';
|
|
7
13
|
import { Head } from './Head';
|
|
14
|
+
import { ReadonlyHead } from './Head/ReadonlyHead';
|
|
8
15
|
import { Hr } from './Hr';
|
|
16
|
+
import { ReadonlyHr } from './Hr/ReadonlyHr';
|
|
17
|
+
import { ReadonlyEditorImage } from './Image/ReadonlyEditorImage';
|
|
9
18
|
import { InlineKatex } from './InlineKatex';
|
|
19
|
+
import { ReadonlyInlineKatex } from './InlineKatex/ReadonlyInlineKatex';
|
|
10
20
|
import { Katex } from './Katex';
|
|
21
|
+
import { ReadonlyKatex } from './Katex/ReadonlyKatex';
|
|
22
|
+
import { ReadonlyLinkCard } from './LinkCard/ReadonlyLinkCard';
|
|
11
23
|
import { List, ListItem } from './List';
|
|
24
|
+
import { ReadonlyList } from './List/ReadonlyList';
|
|
25
|
+
import { ReadonlyListItem } from './List/ReadonlyListItem';
|
|
12
26
|
import { Media } from './Media';
|
|
27
|
+
import { ReadonlyMedia } from './Media/ReadonlyMedia';
|
|
13
28
|
import { Mermaid } from './Mermaid';
|
|
29
|
+
import { ReadonlyMermaid } from './Mermaid/ReadonlyMermaid';
|
|
14
30
|
import { Paragraph } from './Paragraph';
|
|
31
|
+
import { ReadonlyParagraph } from './Paragraph/ReadonlyParagraph';
|
|
15
32
|
import { Schema } from './Schema';
|
|
33
|
+
import { ReadonlySchema } from './Schema/ReadonlySchema';
|
|
34
|
+
import { ReadonlyTableComponent } from './Table/ReadonlyTableComponent';
|
|
16
35
|
/**
|
|
17
36
|
* 性能优化说明:
|
|
18
37
|
*
|
|
@@ -36,4 +55,4 @@ export declare const MLeaf: React.MemoExoticComponent<(props: RenderLeafProps &
|
|
|
36
55
|
tagInputProps: MarkdownEditorProps['tagInputProps'];
|
|
37
56
|
linkConfig: MarkdownEditorProps['linkConfig'];
|
|
38
57
|
}) => React.JSX.Element>;
|
|
39
|
-
export { Blockquote, Break, Code, Head, Hr, InlineKatex, Katex, List, ListItem, Media, Mermaid, Paragraph, Schema, };
|
|
58
|
+
export { Blockquote, Break, Code, Head, Hr, InlineKatex, Katex, List, ListItem, Media, Mermaid, Paragraph, ReadonlyBlockquote, ReadonlyBreak, ReadonlyCard, ReadonlyCode, ReadonlyEditorImage, ReadonlyFootnoteDefinition, ReadonlyFootnoteReference, ReadonlyHead, ReadonlyHr, ReadonlyInlineKatex, ReadonlyKatex, ReadonlyLinkCard, ReadonlyList, ReadonlyListItem, ReadonlyMedia, ReadonlyMermaid, ReadonlyParagraph, ReadonlySchema, ReadonlyTableComponent, Schema, };
|