@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
|
@@ -369,7 +369,7 @@ export var EditorUtils = /*#__PURE__*/ function() {
|
|
|
369
369
|
if (nodeEntries.length > 0) {
|
|
370
370
|
var _nodeEntries_ = _sliced_to_array(nodeEntries[0], 2), selectNodes = _nodeEntries_[0], selectPath = _nodeEntries_[1];
|
|
371
371
|
// 处理列表转段落的特殊情况
|
|
372
|
-
if (selectNodes.type === 'list') {
|
|
372
|
+
if (selectNodes.type === 'list' || selectNodes.type === 'bulleted-list' || selectNodes.type === 'numbered-list') {
|
|
373
373
|
Transforms.removeNodes(editor, {
|
|
374
374
|
at: selectPath,
|
|
375
375
|
voids: true
|
|
@@ -417,7 +417,7 @@ export var EditorUtils = /*#__PURE__*/ function() {
|
|
|
417
417
|
item.children.forEach(function(child) {
|
|
418
418
|
if (child.type === 'paragraph') {
|
|
419
419
|
paragraphNodes.push(child);
|
|
420
|
-
} else if (child.type === 'list') {
|
|
420
|
+
} else if (child.type === 'list' || child.type === 'bulleted-list' || child.type === 'numbered-list') {
|
|
421
421
|
var _paragraphNodes;
|
|
422
422
|
// 递归处理嵌套列表
|
|
423
423
|
var nestedParagraphs = EditorUtils.listToParagraph(editor, child);
|
|
@@ -219,11 +219,12 @@ function _ts_generator(thisArg, body) {
|
|
|
219
219
|
import { message } from "antd";
|
|
220
220
|
import copy from "copy-to-clipboard";
|
|
221
221
|
import isHotkey from "is-hotkey";
|
|
222
|
-
import {
|
|
223
|
-
import { Editor, Element, Node, Path, Range,
|
|
222
|
+
import { useEffect, useMemo } from "react";
|
|
223
|
+
import { Editor, Element, Node, Path, Range, Transforms } from "slate";
|
|
224
224
|
import { ReactEditor } from "slate-react";
|
|
225
|
+
import { useRefFunction } from "../../../Hooks/useRefFunction";
|
|
225
226
|
import { useSubject } from "../../hooks/subscribe";
|
|
226
|
-
import {
|
|
227
|
+
import { convertToParagraph, createList, decreaseHeadingLevel, increaseHeadingLevel, insertCodeBlock, insertHorizontalLine, insertTable as insertTableCommand, setHeading, toggleQuote } from "./editorCommands";
|
|
227
228
|
import { EditorUtils } from "./editorUtils";
|
|
228
229
|
export var KeyboardTask = /*#__PURE__*/ function() {
|
|
229
230
|
"use strict";
|
|
@@ -525,23 +526,11 @@ export var KeyboardTask = /*#__PURE__*/ function() {
|
|
|
525
526
|
* @param level 标题级别(1-3)或4(表示普通段落)
|
|
526
527
|
*/ key: "head",
|
|
527
528
|
value: function head(level) {
|
|
528
|
-
var _node_;
|
|
529
|
-
var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
|
|
530
529
|
if (level === 4) {
|
|
531
530
|
this.paragraph();
|
|
532
531
|
return;
|
|
533
532
|
}
|
|
534
|
-
|
|
535
|
-
'paragraph',
|
|
536
|
-
'head'
|
|
537
|
-
].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type) && EditorUtils.isTop(this.editor, node[1])) {
|
|
538
|
-
Transforms.setNodes(this.editor, {
|
|
539
|
-
type: 'head',
|
|
540
|
-
level: level
|
|
541
|
-
}, {
|
|
542
|
-
at: node[1]
|
|
543
|
-
});
|
|
544
|
-
}
|
|
533
|
+
setHeading(this.editor, level);
|
|
545
534
|
}
|
|
546
535
|
},
|
|
547
536
|
{
|
|
@@ -551,17 +540,7 @@ export var KeyboardTask = /*#__PURE__*/ function() {
|
|
|
551
540
|
* 如果当前节点是标题类型,将其转换为普通段落
|
|
552
541
|
*/ key: "paragraph",
|
|
553
542
|
value: function paragraph() {
|
|
554
|
-
|
|
555
|
-
var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
|
|
556
|
-
if (node && [
|
|
557
|
-
'head'
|
|
558
|
-
].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type)) {
|
|
559
|
-
Transforms.setNodes(this.editor, {
|
|
560
|
-
type: 'paragraph'
|
|
561
|
-
}, {
|
|
562
|
-
at: node[1]
|
|
563
|
-
});
|
|
564
|
-
}
|
|
543
|
+
convertToParagraph(this.editor);
|
|
565
544
|
}
|
|
566
545
|
},
|
|
567
546
|
{
|
|
@@ -573,34 +552,7 @@ export var KeyboardTask = /*#__PURE__*/ function() {
|
|
|
573
552
|
* 或将其他级别标题升级一级(数字变小)
|
|
574
553
|
*/ key: "increaseHead",
|
|
575
554
|
value: function increaseHead() {
|
|
576
|
-
|
|
577
|
-
var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
|
|
578
|
-
if (node && [
|
|
579
|
-
'paragraph',
|
|
580
|
-
'head'
|
|
581
|
-
].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type) && EditorUtils.isTop(this.editor, node[1])) {
|
|
582
|
-
var _node_1;
|
|
583
|
-
if ((node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type) === 'paragraph') {
|
|
584
|
-
Transforms.setNodes(this.editor, {
|
|
585
|
-
type: 'head',
|
|
586
|
-
level: 4
|
|
587
|
-
}, {
|
|
588
|
-
at: node[1]
|
|
589
|
-
});
|
|
590
|
-
} else if (node[0].level === 1) {
|
|
591
|
-
Transforms.setNodes(this.editor, {
|
|
592
|
-
type: 'paragraph'
|
|
593
|
-
}, {
|
|
594
|
-
at: node[1]
|
|
595
|
-
});
|
|
596
|
-
} else {
|
|
597
|
-
Transforms.setNodes(this.editor, {
|
|
598
|
-
level: node[0].level - 1
|
|
599
|
-
}, {
|
|
600
|
-
at: node[1]
|
|
601
|
-
});
|
|
602
|
-
}
|
|
603
|
-
}
|
|
555
|
+
increaseHeadingLevel(this.editor);
|
|
604
556
|
}
|
|
605
557
|
},
|
|
606
558
|
{
|
|
@@ -612,34 +564,7 @@ export var KeyboardTask = /*#__PURE__*/ function() {
|
|
|
612
564
|
* 或将其他级别标题降级一级(数字变大)
|
|
613
565
|
*/ key: "decreaseHead",
|
|
614
566
|
value: function decreaseHead() {
|
|
615
|
-
|
|
616
|
-
var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
|
|
617
|
-
if (node && [
|
|
618
|
-
'paragraph',
|
|
619
|
-
'head'
|
|
620
|
-
].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type) && EditorUtils.isTop(this.editor, node[1])) {
|
|
621
|
-
var _node_1;
|
|
622
|
-
if ((node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type) === 'paragraph') {
|
|
623
|
-
Transforms.setNodes(this.editor, {
|
|
624
|
-
type: 'head',
|
|
625
|
-
level: 1
|
|
626
|
-
}, {
|
|
627
|
-
at: node[1]
|
|
628
|
-
});
|
|
629
|
-
} else if (node[0].level === 4) {
|
|
630
|
-
Transforms.setNodes(this.editor, {
|
|
631
|
-
type: 'paragraph'
|
|
632
|
-
}, {
|
|
633
|
-
at: node[1]
|
|
634
|
-
});
|
|
635
|
-
} else {
|
|
636
|
-
Transforms.setNodes(this.editor, {
|
|
637
|
-
level: node[0].level + 1
|
|
638
|
-
}, {
|
|
639
|
-
at: node[1]
|
|
640
|
-
});
|
|
641
|
-
}
|
|
642
|
-
}
|
|
567
|
+
decreaseHeadingLevel(this.editor);
|
|
643
568
|
}
|
|
644
569
|
},
|
|
645
570
|
{
|
|
@@ -651,29 +576,8 @@ export var KeyboardTask = /*#__PURE__*/ function() {
|
|
|
651
576
|
* 如果当前节点是标题,先将其转换为普通段落。
|
|
652
577
|
*/ key: "insertQuote",
|
|
653
578
|
value: function insertQuote() {
|
|
654
|
-
var _node_, _node_1;
|
|
655
579
|
var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
|
|
656
|
-
|
|
657
|
-
'paragraph',
|
|
658
|
-
'head'
|
|
659
|
-
].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type)) return;
|
|
660
|
-
if (Node.parent(this.editor, node[1]).type === 'blockquote') {
|
|
661
|
-
Transforms.unwrapNodes(this.editor, {
|
|
662
|
-
at: Path.parent(node[1])
|
|
663
|
-
});
|
|
664
|
-
return;
|
|
665
|
-
}
|
|
666
|
-
if ((node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type) === 'head') {
|
|
667
|
-
Transforms.setNodes(this.editor, {
|
|
668
|
-
type: 'paragraph'
|
|
669
|
-
}, {
|
|
670
|
-
at: node[1]
|
|
671
|
-
});
|
|
672
|
-
}
|
|
673
|
-
Transforms.wrapNodes(this.editor, {
|
|
674
|
-
type: 'blockquote',
|
|
675
|
-
children: []
|
|
676
|
-
});
|
|
580
|
+
toggleQuote(this.editor, node);
|
|
677
581
|
}
|
|
678
582
|
},
|
|
679
583
|
{
|
|
@@ -685,38 +589,8 @@ export var KeyboardTask = /*#__PURE__*/ function() {
|
|
|
685
589
|
* 决定在何处插入表格及如何处理现有内容。
|
|
686
590
|
*/ key: "insertTable",
|
|
687
591
|
value: function insertTable() {
|
|
688
|
-
var _node_, _node_1;
|
|
689
592
|
var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
|
|
690
|
-
|
|
691
|
-
'paragraph',
|
|
692
|
-
'head'
|
|
693
|
-
].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type)) {
|
|
694
|
-
var _node_2, _node_3;
|
|
695
|
-
var path = (node === null || node === void 0 ? void 0 : (_node_2 = node[0]) === null || _node_2 === void 0 ? void 0 : _node_2.type) === 'paragraph' && !Node.string(node[0]) ? node[1] : Path.next(node[1]);
|
|
696
|
-
// 使用原生表格编辑器插入表格
|
|
697
|
-
NativeTableEditor.insertTable(this.editor, {
|
|
698
|
-
rows: 3,
|
|
699
|
-
cols: 3,
|
|
700
|
-
at: path
|
|
701
|
-
});
|
|
702
|
-
if ((node === null || node === void 0 ? void 0 : (_node_3 = node[0]) === null || _node_3 === void 0 ? void 0 : _node_3.type) === 'paragraph' && !Node.string(node[0])) {
|
|
703
|
-
Transforms.delete(this.editor, {
|
|
704
|
-
at: Path.next(path)
|
|
705
|
-
});
|
|
706
|
-
}
|
|
707
|
-
Transforms.select(this.editor, Editor.start(this.editor, path));
|
|
708
|
-
}
|
|
709
|
-
if (node && [
|
|
710
|
-
'column-cell'
|
|
711
|
-
].includes(node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type)) {
|
|
712
|
-
NativeTableEditor.insertTable(this.editor, {
|
|
713
|
-
rows: 3,
|
|
714
|
-
cols: 3,
|
|
715
|
-
at: _to_consumable_array(node[1]).concat([
|
|
716
|
-
0
|
|
717
|
-
])
|
|
718
|
-
});
|
|
719
|
-
}
|
|
593
|
+
insertTableCommand(this.editor, node);
|
|
720
594
|
}
|
|
721
595
|
},
|
|
722
596
|
{
|
|
@@ -735,29 +609,7 @@ export var KeyboardTask = /*#__PURE__*/ function() {
|
|
|
735
609
|
*/ key: "insertCode",
|
|
736
610
|
value: function insertCode(type) {
|
|
737
611
|
var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
|
|
738
|
-
|
|
739
|
-
'paragraph',
|
|
740
|
-
'head'
|
|
741
|
-
].includes(node[0].type)) {
|
|
742
|
-
var path = node[0].type === 'paragraph' && !Node.string(node[0]) ? node[1] : Path.next(node[1]);
|
|
743
|
-
var lang = '';
|
|
744
|
-
if (type === 'mermaid') {
|
|
745
|
-
lang = 'mermaid';
|
|
746
|
-
}
|
|
747
|
-
Transforms.insertNodes(this.editor, {
|
|
748
|
-
type: 'code',
|
|
749
|
-
language: lang ? lang : undefined,
|
|
750
|
-
children: [
|
|
751
|
-
{
|
|
752
|
-
text: "flowchart TD\n Start --> Stop"
|
|
753
|
-
}
|
|
754
|
-
],
|
|
755
|
-
render: type === 'html' ? true : undefined
|
|
756
|
-
}, {
|
|
757
|
-
at: path
|
|
758
|
-
});
|
|
759
|
-
Transforms.select(this.editor, Editor.end(this.editor, path));
|
|
760
|
-
}
|
|
612
|
+
insertCodeBlock(this.editor, type, node);
|
|
761
613
|
}
|
|
762
614
|
},
|
|
763
615
|
{
|
|
@@ -768,40 +620,8 @@ export var KeyboardTask = /*#__PURE__*/ function() {
|
|
|
768
620
|
* 如果分割线后没有内容,则自动插入一个空段落并将光标定位到该段落。
|
|
769
621
|
*/ key: "horizontalLine",
|
|
770
622
|
value: function horizontalLine() {
|
|
771
|
-
var _node_;
|
|
772
623
|
var _this_curNodes = _sliced_to_array(this.curNodes, 1), node = _this_curNodes[0];
|
|
773
|
-
|
|
774
|
-
'paragraph',
|
|
775
|
-
'head'
|
|
776
|
-
].includes(node === null || node === void 0 ? void 0 : (_node_ = node[0]) === null || _node_ === void 0 ? void 0 : _node_.type)) {
|
|
777
|
-
var _node_1;
|
|
778
|
-
var path = (node === null || node === void 0 ? void 0 : (_node_1 = node[0]) === null || _node_1 === void 0 ? void 0 : _node_1.type) === 'paragraph' && !Node.string(node[0]) ? node[1] : Path.next(node[1]);
|
|
779
|
-
Transforms.insertNodes(this.editor, {
|
|
780
|
-
type: 'hr',
|
|
781
|
-
children: [
|
|
782
|
-
{
|
|
783
|
-
text: ''
|
|
784
|
-
}
|
|
785
|
-
]
|
|
786
|
-
}, {
|
|
787
|
-
at: path
|
|
788
|
-
});
|
|
789
|
-
if (Editor.hasPath(this.editor, Path.next(path))) {
|
|
790
|
-
Transforms.select(this.editor, Editor.start(this.editor, Path.next(path)));
|
|
791
|
-
} else {
|
|
792
|
-
Transforms.insertNodes(this.editor, {
|
|
793
|
-
type: 'paragraph',
|
|
794
|
-
children: [
|
|
795
|
-
{
|
|
796
|
-
text: ''
|
|
797
|
-
}
|
|
798
|
-
]
|
|
799
|
-
}, {
|
|
800
|
-
at: Path.next(path),
|
|
801
|
-
select: true
|
|
802
|
-
});
|
|
803
|
-
}
|
|
804
|
-
}
|
|
624
|
+
insertHorizontalLine(this.editor, node);
|
|
805
625
|
}
|
|
806
626
|
},
|
|
807
627
|
{
|
|
@@ -814,203 +634,7 @@ export var KeyboardTask = /*#__PURE__*/ function() {
|
|
|
814
634
|
* @param mode 列表类型 'ordered'(有序列表), 'unordered'(无序列表), 'task'(任务列表)
|
|
815
635
|
*/ key: "list",
|
|
816
636
|
value: function list(mode) {
|
|
817
|
-
|
|
818
|
-
if (curNode && [
|
|
819
|
-
'paragraph',
|
|
820
|
-
'head'
|
|
821
|
-
].includes(curNode[0].type)) {
|
|
822
|
-
var parent = Editor.parent(this.editor, curNode[1]);
|
|
823
|
-
if (parent[0].type === 'list-item' && !Path.hasPrevious(curNode[1])) {
|
|
824
|
-
Transforms.setNodes(this.editor, {
|
|
825
|
-
order: mode === 'ordered',
|
|
826
|
-
task: mode === 'task'
|
|
827
|
-
}, {
|
|
828
|
-
at: Path.parent(parent[1])
|
|
829
|
-
});
|
|
830
|
-
var listItems = Array.from(Editor.nodes(this.editor, {
|
|
831
|
-
match: function(n) {
|
|
832
|
-
return n.type === 'list-item';
|
|
833
|
-
},
|
|
834
|
-
at: Path.parent(parent[1]),
|
|
835
|
-
reverse: true,
|
|
836
|
-
mode: 'lowest'
|
|
837
|
-
}));
|
|
838
|
-
Transforms.setNodes(this.editor, {
|
|
839
|
-
start: undefined
|
|
840
|
-
}, {
|
|
841
|
-
at: Path.parent(parent[1])
|
|
842
|
-
});
|
|
843
|
-
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
844
|
-
try {
|
|
845
|
-
for(var _iterator = listItems[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
846
|
-
var l = _step.value;
|
|
847
|
-
Transforms.setNodes(this.editor, {
|
|
848
|
-
checked: mode === 'task' ? l[0].checked || false : undefined
|
|
849
|
-
}, {
|
|
850
|
-
at: l[1]
|
|
851
|
-
});
|
|
852
|
-
}
|
|
853
|
-
} catch (err) {
|
|
854
|
-
_didIteratorError = true;
|
|
855
|
-
_iteratorError = err;
|
|
856
|
-
} finally{
|
|
857
|
-
try {
|
|
858
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
859
|
-
_iterator.return();
|
|
860
|
-
}
|
|
861
|
-
} finally{
|
|
862
|
-
if (_didIteratorError) {
|
|
863
|
-
throw _iteratorError;
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
}
|
|
867
|
-
} else {
|
|
868
|
-
var childrenList = [];
|
|
869
|
-
var selection = this.editor.selection;
|
|
870
|
-
if (!selection || Range.isCollapsed(selection)) {
|
|
871
|
-
// 如果没有选区或选区已折叠,使用当前节点
|
|
872
|
-
var textNodes = curNode[0].type === 'paragraph' ? curNode[0].children : [
|
|
873
|
-
{
|
|
874
|
-
text: Node.string(curNode[0])
|
|
875
|
-
}
|
|
876
|
-
];
|
|
877
|
-
var item = {
|
|
878
|
-
type: 'list-item',
|
|
879
|
-
checked: mode === 'task' ? false : undefined,
|
|
880
|
-
children: [
|
|
881
|
-
{
|
|
882
|
-
type: 'paragraph',
|
|
883
|
-
children: textNodes
|
|
884
|
-
}
|
|
885
|
-
]
|
|
886
|
-
};
|
|
887
|
-
childrenList.push(item);
|
|
888
|
-
// 删除原节点
|
|
889
|
-
Transforms.delete(this.editor, {
|
|
890
|
-
at: curNode[1]
|
|
891
|
-
});
|
|
892
|
-
} else {
|
|
893
|
-
// 有选区时,获取选区内的所有节点
|
|
894
|
-
var selectedNodes = Array.from(Editor.nodes(this.editor, {
|
|
895
|
-
at: selection,
|
|
896
|
-
match: function(n) {
|
|
897
|
-
return Element.isElement(n) && [
|
|
898
|
-
'paragraph',
|
|
899
|
-
'head'
|
|
900
|
-
].includes(n.type);
|
|
901
|
-
}
|
|
902
|
-
}));
|
|
903
|
-
if (selectedNodes.length === 0) {
|
|
904
|
-
// 如果没有选中块级元素,尝试选中文本节点
|
|
905
|
-
var textNodes1 = Array.from(Editor.nodes(this.editor, {
|
|
906
|
-
at: selection,
|
|
907
|
-
match: function(n) {
|
|
908
|
-
return Text.isText(n);
|
|
909
|
-
}
|
|
910
|
-
}));
|
|
911
|
-
if (textNodes1.length > 0) {
|
|
912
|
-
// 获取文本节点的父节点
|
|
913
|
-
var parentPath = Path.parent(textNodes1[0][1]);
|
|
914
|
-
var _Editor_node = _sliced_to_array(Editor.node(this.editor, parentPath), 1), parentNode = _Editor_node[0];
|
|
915
|
-
if (Element.isElement(parentNode) && [
|
|
916
|
-
'paragraph',
|
|
917
|
-
'head'
|
|
918
|
-
].includes(parentNode.type)) {
|
|
919
|
-
selectedNodes.push([
|
|
920
|
-
parentNode,
|
|
921
|
-
parentPath
|
|
922
|
-
]);
|
|
923
|
-
}
|
|
924
|
-
}
|
|
925
|
-
}
|
|
926
|
-
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
927
|
-
try {
|
|
928
|
-
// 处理选中的节点
|
|
929
|
-
for(var _iterator1 = selectedNodes[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
930
|
-
var _step_value = _sliced_to_array(_step1.value, 2), node = _step_value[0], path = _step_value[1];
|
|
931
|
-
// 检查节点是否完全被选中
|
|
932
|
-
var nodeRange = Editor.range(this.editor, path);
|
|
933
|
-
var isFullySelected = Range.equals(selection, nodeRange) || Range.includes(selection, nodeRange) && Range.includes(nodeRange, selection);
|
|
934
|
-
if (isFullySelected) {
|
|
935
|
-
// 完全选中的节点,直接删除并转换为列表项
|
|
936
|
-
var textNodes2 = node.type === 'paragraph' ? node.children : [
|
|
937
|
-
{
|
|
938
|
-
text: Node.string(node)
|
|
939
|
-
}
|
|
940
|
-
];
|
|
941
|
-
var item1 = {
|
|
942
|
-
type: 'list-item',
|
|
943
|
-
checked: mode === 'task' ? false : undefined,
|
|
944
|
-
children: [
|
|
945
|
-
{
|
|
946
|
-
type: 'paragraph',
|
|
947
|
-
children: textNodes2
|
|
948
|
-
}
|
|
949
|
-
]
|
|
950
|
-
};
|
|
951
|
-
childrenList.push(item1);
|
|
952
|
-
Transforms.delete(this.editor, {
|
|
953
|
-
at: path
|
|
954
|
-
});
|
|
955
|
-
} else {
|
|
956
|
-
// 部分选中的节点,使用选区内容创建列表项
|
|
957
|
-
var selectedText = Editor.string(this.editor, selection);
|
|
958
|
-
if (selectedText.trim()) {
|
|
959
|
-
var item2 = {
|
|
960
|
-
type: 'list-item',
|
|
961
|
-
checked: mode === 'task' ? false : undefined,
|
|
962
|
-
children: [
|
|
963
|
-
{
|
|
964
|
-
type: 'paragraph',
|
|
965
|
-
children: [
|
|
966
|
-
{
|
|
967
|
-
text: selectedText
|
|
968
|
-
}
|
|
969
|
-
]
|
|
970
|
-
}
|
|
971
|
-
]
|
|
972
|
-
};
|
|
973
|
-
childrenList.push(item2);
|
|
974
|
-
// 删除选中的内容
|
|
975
|
-
Transforms.delete(this.editor, {
|
|
976
|
-
at: selection
|
|
977
|
-
});
|
|
978
|
-
}
|
|
979
|
-
}
|
|
980
|
-
}
|
|
981
|
-
} catch (err) {
|
|
982
|
-
_didIteratorError1 = true;
|
|
983
|
-
_iteratorError1 = err;
|
|
984
|
-
} finally{
|
|
985
|
-
try {
|
|
986
|
-
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
987
|
-
_iterator1.return();
|
|
988
|
-
}
|
|
989
|
-
} finally{
|
|
990
|
-
if (_didIteratorError1) {
|
|
991
|
-
throw _iteratorError1;
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
}
|
|
995
|
-
}
|
|
996
|
-
Transforms.insertNodes(this.editor, {
|
|
997
|
-
type: 'list',
|
|
998
|
-
order: mode === 'ordered',
|
|
999
|
-
task: mode === 'task',
|
|
1000
|
-
children: childrenList
|
|
1001
|
-
}, {
|
|
1002
|
-
at: this.editor.selection || curNode[1],
|
|
1003
|
-
select: true
|
|
1004
|
-
});
|
|
1005
|
-
}
|
|
1006
|
-
} else if (curNode && curNode[0].type === 'list-item') {
|
|
1007
|
-
Transforms.setNodes(this.editor, {
|
|
1008
|
-
order: mode === 'ordered',
|
|
1009
|
-
task: mode === 'task'
|
|
1010
|
-
}, {
|
|
1011
|
-
at: curNode[1]
|
|
1012
|
-
});
|
|
1013
|
-
}
|
|
637
|
+
createList(this.editor, mode);
|
|
1014
638
|
}
|
|
1015
639
|
},
|
|
1016
640
|
{
|
|
@@ -1248,7 +872,7 @@ export var useSystemKeyboard = function(keyTask$, store, props, markdownContaine
|
|
|
1248
872
|
(_task = task)[key].apply(_task, _to_consumable_array(args || []));
|
|
1249
873
|
});
|
|
1250
874
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1251
|
-
var keydown =
|
|
875
|
+
var keydown = useRefFunction(function(e) {
|
|
1252
876
|
if (!store) return;
|
|
1253
877
|
if (isHotkey('mod+c', e) || isHotkey('mod+x', e)) {
|
|
1254
878
|
var _node_, _node_1, _node_2;
|
|
@@ -1339,7 +963,7 @@ export var useSystemKeyboard = function(keyTask$, store, props, markdownContaine
|
|
|
1339
963
|
}
|
|
1340
964
|
}
|
|
1341
965
|
}
|
|
1342
|
-
}
|
|
966
|
+
});
|
|
1343
967
|
useEffect(function() {
|
|
1344
968
|
var _markdownContainerRef_current;
|
|
1345
969
|
if (props.readonly) return;
|
|
@@ -73,17 +73,24 @@ export type BlockQuoteNode<T = Record<string, any>> = {
|
|
|
73
73
|
type: 'blockquote';
|
|
74
74
|
children: (BlockQuoteNode | ParagraphNode)[];
|
|
75
75
|
};
|
|
76
|
-
export type
|
|
76
|
+
export type BulletedListNode<T = Record<string, any>> = {
|
|
77
77
|
contextProps?: T;
|
|
78
78
|
otherProps?: T;
|
|
79
|
-
type: 'list';
|
|
79
|
+
type: 'bulleted-list';
|
|
80
80
|
children: ListItemNode[];
|
|
81
|
-
order?: boolean;
|
|
82
|
-
start?: number;
|
|
83
81
|
task?: boolean;
|
|
84
82
|
finished?: boolean;
|
|
85
83
|
h?: number;
|
|
86
84
|
};
|
|
85
|
+
export type NumberedListNode<T = Record<string, any>> = {
|
|
86
|
+
contextProps?: T;
|
|
87
|
+
otherProps?: T;
|
|
88
|
+
type: 'numbered-list';
|
|
89
|
+
children: ListItemNode[];
|
|
90
|
+
start?: number;
|
|
91
|
+
h?: number;
|
|
92
|
+
};
|
|
93
|
+
export type ListNode<T = Record<string, any>> = BulletedListNode<T> | NumberedListNode<T>;
|
|
87
94
|
export type ChartTypeConfig<T = Record<string, any>> = {
|
|
88
95
|
contextProps?: T;
|
|
89
96
|
otherProps?: T;
|
|
@@ -202,7 +209,7 @@ export type SchemaNode<T = Record<string, any>> = {
|
|
|
202
209
|
};
|
|
203
210
|
export type Elements<T = Record<string, any>> = CodeNode<T> | FootnoteDefinitionNode<T> | SchemaNode<{
|
|
204
211
|
valueType: string;
|
|
205
|
-
} & T> | ParagraphNode<T> | BlockQuoteNode<T> | ListNode<T> | ListItemNode<T> | HeadNode<T> | HrNode<T> | MediaNode<T> | BreakNode<T> | ChartNode<T> | AttachNode<T> | LinkCardNode<T> | CardNode | CardBeforeNode | CardAfterNode | TableCustomElement;
|
|
212
|
+
} & T> | ParagraphNode<T> | BlockQuoteNode<T> | BulletedListNode<T> | NumberedListNode<T> | ListNode<T> | ListItemNode<T> | HeadNode<T> | HrNode<T> | MediaNode<T> | BreakNode<T> | ChartNode<T> | AttachNode<T> | LinkCardNode<T> | CardNode | CardBeforeNode | CardAfterNode | TableCustomElement;
|
|
206
213
|
export type CustomLeaf<T = Record<string, any>> = {
|
|
207
214
|
contextProps?: T;
|
|
208
215
|
otherProps?: T;
|
|
@@ -134,7 +134,7 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
134
134
|
}
|
|
135
135
|
import { ConfigProvider } from "antd";
|
|
136
136
|
import classNames from "classnames";
|
|
137
|
-
import React, { memo, useContext,
|
|
137
|
+
import React, { memo, useContext, useState } from "react";
|
|
138
138
|
import { BaseMarkdownEditor } from "../MarkdownEditor";
|
|
139
139
|
import { BorderBeamAnimation } from "./BorderBeamAnimation";
|
|
140
140
|
import { useFileUploadManager } from "./FileUploadManager";
|
|
@@ -202,7 +202,7 @@ import { useVoiceInputManager } from "./VoiceInputManager";
|
|
|
202
202
|
"isShowTopOperatingArea"
|
|
203
203
|
]);
|
|
204
204
|
var _ref;
|
|
205
|
-
var
|
|
205
|
+
var _props_skillMode, _props_enlargeable, _props_refinePrompt, _props_enlargeable1, _props_enlargeable2;
|
|
206
206
|
var getPrefixCls = useContext(ConfigProvider.ConfigContext).getPrefixCls;
|
|
207
207
|
var baseCls = getPrefixCls('agentic-md-input-field');
|
|
208
208
|
var _useStyle = useStyle(baseCls, props.disableHoverAnimation), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
|
|
@@ -325,21 +325,6 @@ import { useVoiceInputManager } from "./VoiceInputManager";
|
|
|
325
325
|
baseCls: baseCls,
|
|
326
326
|
hashId: hashId
|
|
327
327
|
});
|
|
328
|
-
// 计算编辑器容器的 maxHeight(用于内部样式)
|
|
329
|
-
var editorMaxHeight = useMemo(function() {
|
|
330
|
-
var _props_maxHeight;
|
|
331
|
-
var _props_style, _props_attachment;
|
|
332
|
-
if (isEnlarged) return 'none';
|
|
333
|
-
var maxHeightValue = (_props_maxHeight = props.maxHeight) !== null && _props_maxHeight !== void 0 ? _props_maxHeight : (_props_style = props.style) === null || _props_style === void 0 ? void 0 : _props_style.maxHeight;
|
|
334
|
-
var base = typeof maxHeightValue === 'number' ? maxHeightValue : maxHeightValue ? parseFloat(String(maxHeightValue)) || 400 : 400;
|
|
335
|
-
var extra = ((_props_attachment = props.attachment) === null || _props_attachment === void 0 ? void 0 : _props_attachment.enable) ? 90 : 0;
|
|
336
|
-
return "min(".concat(base + extra, "px)");
|
|
337
|
-
}, [
|
|
338
|
-
isEnlarged,
|
|
339
|
-
props.maxHeight,
|
|
340
|
-
(_props_style = props.style) === null || _props_style === void 0 ? void 0 : _props_style.maxHeight,
|
|
341
|
-
(_props_attachment = props.attachment) === null || _props_attachment === void 0 ? void 0 : _props_attachment.enable
|
|
342
|
-
]);
|
|
343
328
|
var _obj, _obj1;
|
|
344
329
|
return wrapSSR(/*#__PURE__*/ React.createElement(React.Fragment, null, isShowTopOperatingArea && /*#__PURE__*/ React.createElement("div", {
|
|
345
330
|
className: classNames("".concat(baseCls, "-top-area"), hashId)
|
|
@@ -356,7 +341,7 @@ import { useVoiceInputManager } from "./VoiceInputManager";
|
|
|
356
341
|
}, tagInputProps)
|
|
357
342
|
}, /*#__PURE__*/ React.createElement("div", {
|
|
358
343
|
ref: inputRef,
|
|
359
|
-
className: classNames(baseCls, hashId, props.className, (_obj = {}, _define_property(_obj, "".concat(baseCls, "-disabled"), props.disabled), _define_property(_obj, "".concat(baseCls, "-typing"), false), _define_property(_obj, "".concat(baseCls, "-loading"), isLoading), _define_property(_obj, "".concat(baseCls, "-is-multi-row"), isMultiRowLayout), _define_property(_obj, "".concat(baseCls, "-enlarged"), isEnlarged), _define_property(_obj, "".concat(baseCls, "-focused"), isFocused), _define_property(_obj, "".concat(baseCls, "-has-tools-wrapper"), !!props.toolsRender), _obj)),
|
|
344
|
+
className: classNames(baseCls, hashId, props.className, (_obj = {}, _define_property(_obj, "".concat(baseCls, "-disabled"), props.disabled), _define_property(_obj, "".concat(baseCls, "-skill-mode"), (_props_skillMode = props.skillMode) === null || _props_skillMode === void 0 ? void 0 : _props_skillMode.open), _define_property(_obj, "".concat(baseCls, "-typing"), false), _define_property(_obj, "".concat(baseCls, "-loading"), isLoading), _define_property(_obj, "".concat(baseCls, "-is-multi-row"), isMultiRowLayout), _define_property(_obj, "".concat(baseCls, "-enlarged"), isEnlarged), _define_property(_obj, "".concat(baseCls, "-focused"), isFocused), _define_property(_obj, "".concat(baseCls, "-has-tools-wrapper"), !!props.toolsRender), _obj)),
|
|
360
345
|
style: _object_spread_props(_object_spread({}, props.style, enlargedStyle), {
|
|
361
346
|
height: isEnlarged ? "".concat((_ref = (_props_enlargeable = props.enlargeable) === null || _props_enlargeable === void 0 ? void 0 : _props_enlargeable.height) !== null && _ref !== void 0 ? _ref : 980, "px") : "min(".concat(collapsedHeightPx, "px,100%)"),
|
|
362
347
|
borderRadius: borderRadius || 12,
|
|
@@ -384,9 +369,9 @@ import { useVoiceInputManager } from "./VoiceInputManager";
|
|
|
384
369
|
borderRadius: !!props.toolsRender ? 0 : 'inherit',
|
|
385
370
|
borderTopLeftRadius: 'inherit',
|
|
386
371
|
borderTopRightRadius: 'inherit',
|
|
387
|
-
maxHeight: editorMaxHeight,
|
|
388
372
|
height: isEnlarged ? '100%' : 'auto',
|
|
389
|
-
flex: 1
|
|
373
|
+
flex: 1,
|
|
374
|
+
minHeight: 0
|
|
390
375
|
},
|
|
391
376
|
className: classNames("".concat(baseCls, "-editor"), hashId, (_obj1 = {}, _define_property(_obj1, "".concat(baseCls, "-editor-hover"), isHover), _define_property(_obj1, "".concat(baseCls, "-editor-disabled"), props.disabled), _obj1))
|
|
392
377
|
}, /*#__PURE__*/ React.createElement(SkillModeBar, {
|
|
@@ -399,9 +384,9 @@ import { useVoiceInputManager } from "./VoiceInputManager";
|
|
|
399
384
|
leafRender: props.leafRender,
|
|
400
385
|
style: {
|
|
401
386
|
width: '100%',
|
|
387
|
+
minHeight: 0,
|
|
402
388
|
flex: 1,
|
|
403
|
-
padding: 0
|
|
404
|
-
paddingRight: computedRightPadding
|
|
389
|
+
padding: 0
|
|
405
390
|
},
|
|
406
391
|
toolBar: {
|
|
407
392
|
enable: false
|
|
@@ -411,7 +396,9 @@ import { useVoiceInputManager } from "./VoiceInputManager";
|
|
|
411
396
|
},
|
|
412
397
|
readonly: isLoading,
|
|
413
398
|
contentStyle: {
|
|
414
|
-
|
|
399
|
+
alignItems: 'flex-start',
|
|
400
|
+
padding: 'var(--padding-3x)',
|
|
401
|
+
paddingRight: computedRightPadding || 'var(--padding-3x)'
|
|
415
402
|
},
|
|
416
403
|
textAreaProps: {
|
|
417
404
|
enable: true,
|