@lobehub/editor 4.27.3 → 4.27.4
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/es/headless.js
CHANGED
|
@@ -2580,7 +2580,7 @@ function handleReplaceForApplyDelay(oldNode, newNode, modifyBlockNodes, diffNode
|
|
|
2580
2580
|
}
|
|
2581
2581
|
const before = $createDiffContentNode("before");
|
|
2582
2582
|
const after = $createDiffContentNode("after");
|
|
2583
|
-
oldNode.getChildren().forEach((child) => before.append(
|
|
2583
|
+
oldNode.getChildren().forEach((child) => before.append(child));
|
|
2584
2584
|
newNode.getChildren().forEach((child) => after.append($cloneNode(child, editor)));
|
|
2585
2585
|
const diffNode = $createDiffNode("modify");
|
|
2586
2586
|
diffNode.append(before, after);
|
|
@@ -2594,10 +2594,19 @@ function handleReplaceForApplyDelay(oldNode, newNode, modifyBlockNodes, diffNode
|
|
|
2594
2594
|
oldNode.replace(newNode, false);
|
|
2595
2595
|
return;
|
|
2596
2596
|
}
|
|
2597
|
+
if ($isListItemNode(oldNode) && $isListItemNode(newNode)) {
|
|
2598
|
+
const before = $createParagraphNode();
|
|
2599
|
+
const after = $createParagraphNode();
|
|
2600
|
+
oldNode.getChildren().forEach((child) => before.append(child));
|
|
2601
|
+
newNode.getChildren().forEach((child) => after.append(child));
|
|
2602
|
+
oldNode.clear();
|
|
2603
|
+
oldNode.append($createDiffNode("listItemModify").append(before, after));
|
|
2604
|
+
return;
|
|
2605
|
+
}
|
|
2597
2606
|
if (oldNode === oldBlock) {
|
|
2598
2607
|
const diffNode = $createDiffNode("modify");
|
|
2599
|
-
diffNode.append($cloneNode(oldBlock, editor), newNode);
|
|
2600
2608
|
oldNode.replace(diffNode, false);
|
|
2609
|
+
diffNode.append($createDiffContentNode("before").append(oldBlock), $createDiffContentNode("after").append(newNode));
|
|
2601
2610
|
} else {
|
|
2602
2611
|
if (!modifyBlockNodes.has(oldBlock.getKey())) {
|
|
2603
2612
|
modifyBlockNodes.add(oldBlock.getKey());
|
|
@@ -2829,7 +2838,8 @@ function handleRemove(editor, key, delay) {
|
|
|
2829
2838
|
case "modify": {
|
|
2830
2839
|
const children = originDiffNode.getChildren();
|
|
2831
2840
|
const newDiff = $createDiffNode("remove");
|
|
2832
|
-
|
|
2841
|
+
const before = children[0];
|
|
2842
|
+
newDiff.append(...$isDiffContentNode(before) ? before.getChildren() : [before]);
|
|
2833
2843
|
originDiffNode.replace(newDiff, false);
|
|
2834
2844
|
return;
|
|
2835
2845
|
}
|
|
@@ -2944,6 +2954,11 @@ function handleInsert(editor, payload, dataSource) {
|
|
|
2944
2954
|
const originDiffNode = $closest(referenceNode, (node) => node.getType() === DiffNode.getType());
|
|
2945
2955
|
if (originDiffNode) referenceNode = originDiffNode;
|
|
2946
2956
|
newNodes.map((node) => {
|
|
2957
|
+
if ($isListItemNode(node)) {
|
|
2958
|
+
const diffNode = $createDiffNode("listItemAdd");
|
|
2959
|
+
node.getChildren().forEach((child) => diffNode.append(child));
|
|
2960
|
+
return node.append(diffNode);
|
|
2961
|
+
}
|
|
2947
2962
|
const diffNode = $createDiffNode("add");
|
|
2948
2963
|
diffNode.append(node);
|
|
2949
2964
|
return diffNode;
|
|
@@ -3117,7 +3132,7 @@ function doAction(editor, node, action) {
|
|
|
3117
3132
|
});
|
|
3118
3133
|
node.getParentOrThrow().selectEnd();
|
|
3119
3134
|
node.remove();
|
|
3120
|
-
} else if (action === 0) node.remove();
|
|
3135
|
+
} else if (action === 0) node.getParentOrThrow().remove();
|
|
3121
3136
|
}
|
|
3122
3137
|
}
|
|
3123
3138
|
function registerLiteXMLDiffCommand(editor) {
|
|
@@ -4920,6 +4935,7 @@ const LitexmlPlugin = class extends KernelPlugin {
|
|
|
4920
4935
|
else nodeToXML(after, lines, indent);
|
|
4921
4936
|
break;
|
|
4922
4937
|
}
|
|
4938
|
+
case "listItemAdd":
|
|
4923
4939
|
case "add":
|
|
4924
4940
|
diffNode.getChildren().forEach((child) => nodeToXML(child, lines, indent));
|
|
4925
4941
|
break;
|
|
@@ -4971,6 +4987,7 @@ const LitexmlPlugin = class extends KernelPlugin {
|
|
|
4971
4987
|
else ctx.processChild(ctx, after);
|
|
4972
4988
|
break;
|
|
4973
4989
|
}
|
|
4990
|
+
case "listItemAdd":
|
|
4974
4991
|
case "add":
|
|
4975
4992
|
diffNode.getChildren().forEach((child) => ctx.processChild(ctx, child));
|
|
4976
4993
|
break;
|
|
@@ -10022,7 +10039,8 @@ const ListPlugin = class extends KernelPlugin {
|
|
|
10022
10039
|
if ($isRootNode(node.getParent())) return 0;
|
|
10023
10040
|
const parent = node.getParent();
|
|
10024
10041
|
if (!parent) return 0;
|
|
10025
|
-
|
|
10042
|
+
const parentList = $getNearestNodeOfType(parent, ListNode);
|
|
10043
|
+
return parentList ? getLevel(parentList) + 1 : 0;
|
|
10026
10044
|
};
|
|
10027
10045
|
markdownService.registerMarkdownWriter(ListItemNode.getType(), (ctx, node) => {
|
|
10028
10046
|
const parent = node.getParent();
|
|
@@ -130,7 +130,8 @@ const ListPlugin = class extends KernelPlugin {
|
|
|
130
130
|
if ($isRootNode(node.getParent())) return 0;
|
|
131
131
|
const parent = node.getParent();
|
|
132
132
|
if (!parent) return 0;
|
|
133
|
-
|
|
133
|
+
const parentList = $getNearestNodeOfType(parent, ListNode);
|
|
134
|
+
return parentList ? getLevel(parentList) + 1 : 0;
|
|
134
135
|
};
|
|
135
136
|
markdownService.registerMarkdownWriter(ListItemNode.getType(), (ctx, node) => {
|
|
136
137
|
const parent = node.getParent();
|
|
@@ -125,7 +125,7 @@ function doAction(editor, node, action) {
|
|
|
125
125
|
});
|
|
126
126
|
node.getParentOrThrow().selectEnd();
|
|
127
127
|
node.remove();
|
|
128
|
-
} else if (action === 0) node.remove();
|
|
128
|
+
} else if (action === 0) node.getParentOrThrow().remove();
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
function registerLiteXMLDiffCommand(editor) {
|
|
@@ -96,7 +96,7 @@ function handleReplaceForApplyDelay(oldNode, newNode, modifyBlockNodes, diffNode
|
|
|
96
96
|
}
|
|
97
97
|
const before = $createDiffContentNode("before");
|
|
98
98
|
const after = $createDiffContentNode("after");
|
|
99
|
-
oldNode.getChildren().forEach((child) => before.append(
|
|
99
|
+
oldNode.getChildren().forEach((child) => before.append(child));
|
|
100
100
|
newNode.getChildren().forEach((child) => after.append($cloneNode(child, editor)));
|
|
101
101
|
const diffNode = $createDiffNode("modify");
|
|
102
102
|
diffNode.append(before, after);
|
|
@@ -110,10 +110,19 @@ function handleReplaceForApplyDelay(oldNode, newNode, modifyBlockNodes, diffNode
|
|
|
110
110
|
oldNode.replace(newNode, false);
|
|
111
111
|
return;
|
|
112
112
|
}
|
|
113
|
+
if ($isListItemNode(oldNode) && $isListItemNode(newNode)) {
|
|
114
|
+
const before = $createParagraphNode();
|
|
115
|
+
const after = $createParagraphNode();
|
|
116
|
+
oldNode.getChildren().forEach((child) => before.append(child));
|
|
117
|
+
newNode.getChildren().forEach((child) => after.append(child));
|
|
118
|
+
oldNode.clear();
|
|
119
|
+
oldNode.append($createDiffNode("listItemModify").append(before, after));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
113
122
|
if (oldNode === oldBlock) {
|
|
114
123
|
const diffNode = $createDiffNode("modify");
|
|
115
|
-
diffNode.append($cloneNode(oldBlock, editor), newNode);
|
|
116
124
|
oldNode.replace(diffNode, false);
|
|
125
|
+
diffNode.append($createDiffContentNode("before").append(oldBlock), $createDiffContentNode("after").append(newNode));
|
|
117
126
|
} else {
|
|
118
127
|
if (!modifyBlockNodes.has(oldBlock.getKey())) {
|
|
119
128
|
modifyBlockNodes.add(oldBlock.getKey());
|
|
@@ -345,7 +354,8 @@ function handleRemove(editor, key, delay) {
|
|
|
345
354
|
case "modify": {
|
|
346
355
|
const children = originDiffNode.getChildren();
|
|
347
356
|
const newDiff = $createDiffNode("remove");
|
|
348
|
-
|
|
357
|
+
const before = children[0];
|
|
358
|
+
newDiff.append(...$isDiffContentNode(before) ? before.getChildren() : [before]);
|
|
349
359
|
originDiffNode.replace(newDiff, false);
|
|
350
360
|
return;
|
|
351
361
|
}
|
|
@@ -461,6 +471,11 @@ function handleInsert(editor, payload, dataSource) {
|
|
|
461
471
|
const originDiffNode = $closest(referenceNode, (node) => node.getType() === DiffNode.getType());
|
|
462
472
|
if (originDiffNode) referenceNode = originDiffNode;
|
|
463
473
|
newNodes.map((node) => {
|
|
474
|
+
if ($isListItemNode(node)) {
|
|
475
|
+
const diffNode = $createDiffNode("listItemAdd");
|
|
476
|
+
node.getChildren().forEach((child) => diffNode.append(child));
|
|
477
|
+
return node.append(diffNode);
|
|
478
|
+
}
|
|
464
479
|
const diffNode = $createDiffNode("add");
|
|
465
480
|
diffNode.append(node);
|
|
466
481
|
return diffNode;
|
|
@@ -86,6 +86,7 @@ const LitexmlPlugin = class extends KernelPlugin {
|
|
|
86
86
|
else nodeToXML(after, lines, indent);
|
|
87
87
|
break;
|
|
88
88
|
}
|
|
89
|
+
case "listItemAdd":
|
|
89
90
|
case "add":
|
|
90
91
|
diffNode.getChildren().forEach((child) => nodeToXML(child, lines, indent));
|
|
91
92
|
break;
|
|
@@ -137,6 +138,7 @@ const LitexmlPlugin = class extends KernelPlugin {
|
|
|
137
138
|
else ctx.processChild(ctx, after);
|
|
138
139
|
break;
|
|
139
140
|
}
|
|
141
|
+
case "listItemAdd":
|
|
140
142
|
case "add":
|
|
141
143
|
diffNode.getChildren().forEach((child) => ctx.processChild(ctx, child));
|
|
142
144
|
break;
|
package/package.json
CHANGED