@lexical/list 0.1.9 → 0.1.12
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/LexicalList.dev.js +126 -65
- package/LexicalList.prod.js +24 -23
- package/package.json +2 -2
package/LexicalList.dev.js
CHANGED
|
@@ -84,28 +84,6 @@ function $getTopListNode(listItem) {
|
|
|
84
84
|
|
|
85
85
|
return list$1;
|
|
86
86
|
}
|
|
87
|
-
function $isLastItemInList(listItem) {
|
|
88
|
-
let isLast = true;
|
|
89
|
-
const firstChild = listItem.getFirstChild();
|
|
90
|
-
|
|
91
|
-
if (list.$isListNode(firstChild)) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
let parent = listItem;
|
|
96
|
-
|
|
97
|
-
while (parent !== null) {
|
|
98
|
-
if (list.$isListItemNode(parent)) {
|
|
99
|
-
if (parent.getNextSiblings().length > 0) {
|
|
100
|
-
isLast = false;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
parent = parent.getParent();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return isLast;
|
|
108
|
-
} // This should probably be $getAllChildrenOfType
|
|
109
87
|
|
|
110
88
|
function $getAllListItems(node) {
|
|
111
89
|
let listItemNodes = []; //$FlowFixMe - the result of this will always be an array of ListItemNodes.
|
|
@@ -154,6 +132,27 @@ function getUniqueListItemNodes(nodeList) {
|
|
|
154
132
|
|
|
155
133
|
return Array.from(keys);
|
|
156
134
|
}
|
|
135
|
+
function $removeHighestEmptyListParent(sublist) {
|
|
136
|
+
// Nodes may be repeatedly indented, to create deeply nested lists that each
|
|
137
|
+
// contain just one bullet.
|
|
138
|
+
// Our goal is to remove these (empty) deeply nested lists. The easiest
|
|
139
|
+
// way to do that is crawl back up the tree until we find a node that has siblings
|
|
140
|
+
// (e.g. is actually part of the list contents) and delete that, or delete
|
|
141
|
+
// the root of the list (if no list nodes have siblings.)
|
|
142
|
+
let emptyListPtr = sublist;
|
|
143
|
+
|
|
144
|
+
while (emptyListPtr.getNextSibling() == null && emptyListPtr.getPreviousSibling() == null) {
|
|
145
|
+
const parent = emptyListPtr.getParent();
|
|
146
|
+
|
|
147
|
+
if (parent == null || !(list.$isListItemNode(emptyListPtr) || list.$isListNode(emptyListPtr))) {
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
emptyListPtr = parent;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
emptyListPtr.remove();
|
|
155
|
+
}
|
|
157
156
|
|
|
158
157
|
/**
|
|
159
158
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
@@ -167,7 +166,7 @@ function insertList(editor, listType) {
|
|
|
167
166
|
editor.update(() => {
|
|
168
167
|
const selection = lexical.$getSelection();
|
|
169
168
|
|
|
170
|
-
if (selection
|
|
169
|
+
if (lexical.$isRangeSelection(selection)) {
|
|
171
170
|
const nodes = selection.getNodes();
|
|
172
171
|
const anchor = selection.anchor;
|
|
173
172
|
const anchorNode = anchor.getNode();
|
|
@@ -268,7 +267,7 @@ function removeList(editor) {
|
|
|
268
267
|
editor.update(() => {
|
|
269
268
|
const selection = lexical.$getSelection();
|
|
270
269
|
|
|
271
|
-
if (selection
|
|
270
|
+
if (lexical.$isRangeSelection(selection)) {
|
|
272
271
|
const listNodes = new Set();
|
|
273
272
|
const nodes = selection.getNodes();
|
|
274
273
|
const anchorNode = selection.anchor.getNode();
|
|
@@ -433,7 +432,7 @@ function $handleOutdent(listItemNodes) {
|
|
|
433
432
|
function maybeIndentOrOutdent(direction) {
|
|
434
433
|
const selection = lexical.$getSelection();
|
|
435
434
|
|
|
436
|
-
if (selection
|
|
435
|
+
if (!lexical.$isRangeSelection(selection)) {
|
|
437
436
|
return false;
|
|
438
437
|
}
|
|
439
438
|
|
|
@@ -475,6 +474,64 @@ function indentList() {
|
|
|
475
474
|
function outdentList() {
|
|
476
475
|
return maybeIndentOrOutdent('outdent');
|
|
477
476
|
}
|
|
477
|
+
function $handleListInsertParagraph() {
|
|
478
|
+
const selection = lexical.$getSelection();
|
|
479
|
+
|
|
480
|
+
if (!lexical.$isRangeSelection(selection) || !selection.isCollapsed()) {
|
|
481
|
+
return false;
|
|
482
|
+
} // Only run this code on empty list items
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
const anchor = selection.anchor.getNode();
|
|
486
|
+
|
|
487
|
+
if (!list.$isListItemNode(anchor) || anchor.getTextContent() !== '') {
|
|
488
|
+
return false;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
const topListNode = $getTopListNode(anchor);
|
|
492
|
+
const parent = anchor.getParent();
|
|
493
|
+
|
|
494
|
+
if (!list.$isListNode(parent)) {
|
|
495
|
+
throw Error(`A ListItemNode must have a ListNode for a parent.`);
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
const grandparent = parent.getParent();
|
|
499
|
+
let replacementNode;
|
|
500
|
+
|
|
501
|
+
if (lexical.$isRootNode(grandparent)) {
|
|
502
|
+
replacementNode = lexical.$createParagraphNode();
|
|
503
|
+
topListNode.insertAfter(replacementNode);
|
|
504
|
+
} else if (list.$isListItemNode(grandparent)) {
|
|
505
|
+
replacementNode = list.$createListItemNode();
|
|
506
|
+
grandparent.insertAfter(replacementNode);
|
|
507
|
+
} else {
|
|
508
|
+
return false;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
replacementNode.select();
|
|
512
|
+
const nextSiblings = anchor.getNextSiblings();
|
|
513
|
+
|
|
514
|
+
if (nextSiblings.length > 0) {
|
|
515
|
+
const newList = list.$createListNode(parent.getTag());
|
|
516
|
+
|
|
517
|
+
if (lexical.$isParagraphNode(replacementNode)) {
|
|
518
|
+
replacementNode.insertAfter(newList);
|
|
519
|
+
} else {
|
|
520
|
+
const newListItem = list.$createListItemNode();
|
|
521
|
+
newListItem.append(newList);
|
|
522
|
+
replacementNode.insertAfter(newListItem);
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
nextSiblings.forEach(sibling => {
|
|
526
|
+
sibling.remove();
|
|
527
|
+
newList.append(sibling);
|
|
528
|
+
});
|
|
529
|
+
} // Don't leave hanging nested empty lists
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
$removeHighestEmptyListParent(anchor);
|
|
533
|
+
return true;
|
|
534
|
+
}
|
|
478
535
|
|
|
479
536
|
/**
|
|
480
537
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
@@ -531,6 +588,15 @@ class ListItemNode extends lexical.ElementNode {
|
|
|
531
588
|
dom.value = getListItemValue(this);
|
|
532
589
|
$setListItemThemeClassNames(dom, config.theme, this);
|
|
533
590
|
return false;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
static convertDOM() {
|
|
594
|
+
return {
|
|
595
|
+
li: node => ({
|
|
596
|
+
conversion: convertListItemElement,
|
|
597
|
+
priority: 0
|
|
598
|
+
})
|
|
599
|
+
};
|
|
534
600
|
} // Mutation
|
|
535
601
|
|
|
536
602
|
|
|
@@ -634,46 +700,8 @@ class ListItemNode extends lexical.ElementNode {
|
|
|
634
700
|
}
|
|
635
701
|
|
|
636
702
|
insertNewAfter() {
|
|
637
|
-
const
|
|
638
|
-
|
|
639
|
-
const list$1 = $getTopListNode(this);
|
|
640
|
-
const isLast = $isLastItemInList(this);
|
|
641
|
-
let newElement;
|
|
642
|
-
|
|
643
|
-
if (lexical.$isElementNode(list$1) && this.getTextContent() === '' && (prevSibling === null || nextSibling === null) && isLast) {
|
|
644
|
-
if (nextSibling === null) {
|
|
645
|
-
newElement = lexical.$createParagraphNode();
|
|
646
|
-
list$1.insertAfter(newElement);
|
|
647
|
-
} else {
|
|
648
|
-
newElement = lexical.$createParagraphNode();
|
|
649
|
-
list$1.insertBefore(newElement);
|
|
650
|
-
} // The naive approach would be to remove this list item and then the list, if it's empty.
|
|
651
|
-
// However, nodes may be repeatedly indented, to create deeply nested lists that each
|
|
652
|
-
// contain just one bullet.
|
|
653
|
-
// Our goal is to remove these (now-empty) deeply nested lists. The easiest way to do that
|
|
654
|
-
// is crawl back up the tree until we find a node that has siblings (e.g. is actually part
|
|
655
|
-
// of the list contents) and delete that, or delete the root of the list (if no list nodes
|
|
656
|
-
// have siblings.)
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
let emptyListPtr = this;
|
|
660
|
-
|
|
661
|
-
while (emptyListPtr.getNextSibling() == null && emptyListPtr.getPreviousSibling() == null) {
|
|
662
|
-
const parent = emptyListPtr.getParent();
|
|
663
|
-
|
|
664
|
-
if (parent == null || !($isListItemNode(emptyListPtr) || list.$isListNode(emptyListPtr))) {
|
|
665
|
-
break;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
emptyListPtr = parent;
|
|
669
|
-
}
|
|
670
|
-
|
|
671
|
-
emptyListPtr.remove();
|
|
672
|
-
} else {
|
|
673
|
-
newElement = $createListItemNode();
|
|
674
|
-
this.insertAfter(newElement);
|
|
675
|
-
}
|
|
676
|
-
|
|
703
|
+
const newElement = $createListItemNode();
|
|
704
|
+
this.insertAfter(newElement);
|
|
677
705
|
return newElement;
|
|
678
706
|
}
|
|
679
707
|
|
|
@@ -831,6 +859,12 @@ function $setListItemThemeClassNames(dom, editorThemeClasses, node) {
|
|
|
831
859
|
}
|
|
832
860
|
}
|
|
833
861
|
|
|
862
|
+
function convertListItemElement(domNode) {
|
|
863
|
+
return {
|
|
864
|
+
node: $createListItemNode()
|
|
865
|
+
};
|
|
866
|
+
}
|
|
867
|
+
|
|
834
868
|
function $createListItemNode() {
|
|
835
869
|
return new ListItemNode();
|
|
836
870
|
}
|
|
@@ -887,6 +921,19 @@ class ListNode extends lexical.ElementNode {
|
|
|
887
921
|
return false;
|
|
888
922
|
}
|
|
889
923
|
|
|
924
|
+
static convertDOM() {
|
|
925
|
+
return {
|
|
926
|
+
ol: node => ({
|
|
927
|
+
conversion: convertListNode,
|
|
928
|
+
priority: 0
|
|
929
|
+
}),
|
|
930
|
+
ul: node => ({
|
|
931
|
+
conversion: convertListNode,
|
|
932
|
+
priority: 0
|
|
933
|
+
})
|
|
934
|
+
};
|
|
935
|
+
}
|
|
936
|
+
|
|
890
937
|
canBeEmpty() {
|
|
891
938
|
return false;
|
|
892
939
|
}
|
|
@@ -970,6 +1017,19 @@ function setListThemeClassNames(dom, editorThemeClasses, node) {
|
|
|
970
1017
|
}
|
|
971
1018
|
}
|
|
972
1019
|
|
|
1020
|
+
function convertListNode(domNode) {
|
|
1021
|
+
const nodeName = domNode.nodeName.toLowerCase();
|
|
1022
|
+
let node = null;
|
|
1023
|
+
|
|
1024
|
+
if (nodeName === 'ol' || nodeName === 'ul') {
|
|
1025
|
+
node = $createListNode(nodeName);
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
return {
|
|
1029
|
+
node
|
|
1030
|
+
};
|
|
1031
|
+
}
|
|
1032
|
+
|
|
973
1033
|
function $createListNode(tag, start = 1) {
|
|
974
1034
|
return new ListNode(tag, start);
|
|
975
1035
|
}
|
|
@@ -979,6 +1039,7 @@ function $isListNode(node) {
|
|
|
979
1039
|
|
|
980
1040
|
exports.$createListItemNode = $createListItemNode;
|
|
981
1041
|
exports.$createListNode = $createListNode;
|
|
1042
|
+
exports.$handleListInsertParagraph = $handleListInsertParagraph;
|
|
982
1043
|
exports.$isListItemNode = $isListItemNode;
|
|
983
1044
|
exports.$isListNode = $isListNode;
|
|
984
1045
|
exports.ListItemNode = ListItemNode;
|
package/LexicalList.prod.js
CHANGED
|
@@ -4,26 +4,27 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
var f=require("@lexical/list"),
|
|
8
|
-
function t(
|
|
9
|
-
function
|
|
10
|
-
function
|
|
11
|
-
d.getChildren().forEach(g=>g.markDirty()));else if(f.$isListNode(
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
function
|
|
16
|
-
class
|
|
17
|
-
this.getParentOrThrow();if(f.$isListNode(a)){var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
function
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
7
|
+
var f=require("@lexical/list"),k=require("lexical");function n(b){throw Error(`Minified Lexical error #${b}; see codes.json for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}function p(b,a){for(;null!=b&&!(b instanceof a);)b=b.getParent();return b}function q(b){b=b.getParent();f.$isListNode(b)||n(2);let a=b;for(;null!==a;)a=a.getParent(),f.$isListNode(a)&&(b=a);return b}
|
|
8
|
+
function t(b){let a=[];b=b.getChildren().filter(f.$isListItemNode);for(let c=0;c<b.length;c++){const d=b[c],e=d.getFirstChild();f.$isListNode(e)?a=a.concat(t(e)):a.push(d)}return a}function u(b){return f.$isListItemNode(b)&&f.$isListNode(b.getFirstChild())}function v(b){for(;null==b.getNextSibling()&&null==b.getPreviousSibling();){const a=b.getParent();if(null==a||!f.$isListItemNode(b)&&!f.$isListNode(b))break;b=a}b.remove()}
|
|
9
|
+
function w(b,a){if(f.$isListNode(b))return b;const c=b.getPreviousSibling(),d=b.getNextSibling(),e=f.$createListItemNode();if(f.$isListNode(c)&&a===c.getTag())return e.append(b),c.append(e),f.$isListNode(d)&&a===d.getTag()&&(c.append(...d.getChildren()),d.remove()),c;if(f.$isListNode(d)&&a===d.getTag())return e.append(b),d.getFirstChildOrThrow().insertBefore(e),d;a=f.$createListNode(a);a.append(e);b.replace(a);e.append(b);return a}
|
|
10
|
+
function x(b){b.forEach(a=>{if(!u(a)){var c=a.getParent(),d=a.getNextSibling(),e=a.getPreviousSibling();if(u(d)&&u(e))e=e.getFirstChild(),f.$isListNode(e)&&(e.append(a),a=d.getFirstChild(),f.$isListNode(a)&&(d=a.getChildren(),e.append(...d),a.remove()),e.getChildren().forEach(g=>g.markDirty()));else if(u(d))d=d.getFirstChild(),f.$isListNode(d)&&(e=d.getFirstChild(),null!==e&&e.insertBefore(a),d.getChildren().forEach(g=>g.markDirty()));else if(u(e))d=e.getFirstChild(),f.$isListNode(d)&&(d.append(a),
|
|
11
|
+
d.getChildren().forEach(g=>g.markDirty()));else if(f.$isListNode(c)){const g=f.$createListItemNode(),h=f.$createListNode(c.getTag());g.append(h);h.append(a);e?e.insertAfter(g):d?d.insertBefore(g):c.append(g)}f.$isListNode(c)&&c.getChildren().forEach(g=>g.markDirty())}})}
|
|
12
|
+
function y(b){b.forEach(a=>{if(!u(a)){var c=a.getParent(),d=c?c.getParent():void 0,e=d?d.getParent():void 0;if(f.$isListNode(e)&&f.$isListItemNode(d)&&f.$isListNode(c)){var g=c?c.getFirstChild():void 0,h=c?c.getLastChild():void 0;if(a.is(g))d.insertBefore(a),c.isEmpty()&&d.remove();else if(a.is(h))d.insertAfter(a),c.isEmpty()&&d.remove();else{var l=c.getTag();g=f.$createListItemNode();const m=f.$createListNode(l);g.append(m);a.getPreviousSiblings().forEach(r=>m.append(r));h=f.$createListItemNode();
|
|
13
|
+
l=f.$createListNode(l);h.append(l);l.append(...a.getNextSiblings());d.insertBefore(g);d.insertAfter(h);d.replace(a)}c.getChildren().forEach(m=>m.markDirty());e.getChildren().forEach(m=>m.markDirty())}}})}
|
|
14
|
+
function z(b){var a=k.$getSelection();if(!k.$isRangeSelection(a))return!1;var c=a.getNodes(),d=[];0===c.length&&c.push(a.anchor.getNode());if(1===c.length){a:{for(c=c[0];null!==c;){if(f.$isListItemNode(c))break a;c=c.getParent()}c=null}null!==c&&(d=[c])}else{d=new Set;for(a=0;a<c.length;a++){const e=c[a];f.$isListItemNode(e)&&d.add(e)}d=Array.from(d)}return 0<d.length?("indent"===b?x(d):y(d),!0):!1}function A(b,...a){a.forEach(c=>{null!=c&&"string"===typeof c&&b.classList.add(...c.split(" "))})}
|
|
15
|
+
function B(b,...a){a.forEach(c=>{b.classList.remove(...c.split(" "))})}
|
|
16
|
+
class C extends k.ElementNode{static getType(){return"listitem"}static clone(b){return new C(b.__key)}constructor(b){super(b)}createDOM(b){const a=document.createElement("li");a.value=D(this);E(a,b.theme,this);return a}updateDOM(b,a,c){a.value=D(this);E(a,c.theme,this);return!1}static convertDOM(){return{li:()=>({conversion:F,priority:0})}}append(...b){for(let a=0;a<b.length;a++){const c=b[a];if(k.$isElementNode(c)&&this.canMergeWith(c)){const d=c.getChildren();this.append(...d);c.remove()}else super.append(c)}return this}replace(b){if(G(b))return super.replace(b);
|
|
17
|
+
const a=this.getParentOrThrow();if(f.$isListNode(a)){var c=a.__children;const e=c.length;var d=c.indexOf(this.__key);if(0===d)a.insertBefore(b);else if(d===e-1)a.insertAfter(b);else{c=f.$createListNode(a.__tag);const g=a.getChildren();for(d+=1;d<e;d++)c.append(g[d]);a.insertAfter(b);b.insertAfter(c)}this.remove();1===e&&a.remove()}return b}insertAfter(b){var a=this.getNextSiblings();if(G(b))return a.forEach(d=>d.markDirty()),super.insertAfter(b);var c=this.getParentOrThrow();f.$isListNode(c)||n(1);
|
|
18
|
+
if(f.$isListNode(b)&&b.getTag()===c.getTag()){a=b;b=b.getChildren();for(c=b.length-1;0<=c;c--)a=b[c],this.insertAfter(a);return a}c.insertAfter(b);if(0!==a.length){const d=f.$createListNode(c.getTag());a.forEach(e=>d.append(e));b.insertAfter(d)}return b}insertNewAfter(){const b=H();this.insertAfter(b);return b}collapseAtStart(b){const a=k.$createParagraphNode();this.getChildren().forEach(g=>a.append(g));var c=this.getParentOrThrow(),d=c.getParentOrThrow();const e=G(d);1===c.getChildrenSize()?e?(c.remove(),
|
|
19
|
+
d.select()):(c.replace(a),c=b.anchor,b=b.focus,d=a.getKey(),"element"===c.type&&c.getNode().is(this)&&c.set(d,c.offset,"element"),"element"===b.type&&b.getNode().is(this)&&b.set(d,b.offset,"element")):(c.insertBefore(a),this.remove());return!0}getIndent(){let b=this.getParentOrThrow().getParentOrThrow(),a=0;for(;G(b);)b=b.getParentOrThrow().getParentOrThrow(),a++;return a}setIndent(b){let a=this.getIndent();for(;a!==b;)a<b?(x([this]),a++):(y([this]),a--);return this}insertBefore(b){const a=this.getNextSiblings();
|
|
20
|
+
G(b)&&a.forEach(c=>c.markDirty());return super.insertBefore(b)}canInsertAfter(b){return G(b)}canReplaceWith(b){return G(b)}canMergeWith(b){return k.$isParagraphNode(b)||G(b)}}function D(b){var a=b.getParent();let c=1;null!=a&&(f.$isListNode(a)?c=a.__start:n(47));b=b.getPreviousSiblings();for(a=0;a<b.length;a++){const d=b[a];G(d)&&!f.$isListNode(d.getFirstChild())&&c++}return c}
|
|
21
|
+
function E(b,a,c){const d=[],e=[],g=(a=a.list)?a.listitem:void 0;if(a&&a.nested)var h=a.nested.listitem;void 0!==g&&(a=g.split(" "),d.push(...a));void 0!==h&&(h=h.split(" "),c.getChildren().some(l=>f.$isListNode(l))?d.push(...h):e.push(...h));0<d.length&&A(b,...d);0<e.length&&B(b,...e)}function F(){return{node:H()}}function H(){return new C}function G(b){return b instanceof C}
|
|
22
|
+
class I extends k.ElementNode{static getType(){return"list"}static clone(b){return new I(b.__tag,b.__start,b.__key)}constructor(b,a,c){super(c);this.__tag=b;this.__start=a}getTag(){return this.__tag}createDOM(b){const a=document.createElement(this.__tag);1!==this.__start&&a.setAttribute("start",String(this.__start));J(a,b.theme,this);return a}updateDOM(b,a,c){if(b.__tag!==this.__tag)return!0;J(a,c.theme,this);return!1}static convertDOM(){return{ol:()=>({conversion:K,priority:0}),ul:()=>({conversion:K,
|
|
23
|
+
priority:0})}}canBeEmpty(){return!1}append(...b){for(let c=0;c<b.length;c++){var a=b[c];if(f.$isListItemNode(a))super.append(a);else{const d=f.$createListItemNode();L(a)?d.append(a):(a=k.$createTextNode(a.getTextContent()),d.append(a));super.append(d)}}return this}}
|
|
24
|
+
function J(b,a,c){const d=[],e=[];a=a.list;if(void 0!==a){a:{var g=1;for(var h=c.getParent();null!=h;){if(f.$isListItemNode(h)){h=h.getParent();if(f.$isListNode(h)){g++;h=h.getParent();continue}n(2)}break a}}h=g%5;const l=a[c.__tag+(0===h?5:h)],m=a[c.__tag];let r;a=a.nested;void 0!==a&&a.list&&(r=a.list);void 0!==m&&d.push(m);if(void 0!==l)for(a=l.split(" "),d.push(...a),a=1;6>a;a++)a!==h&&e.push(c.__tag+a);void 0!==r&&(c=r.split(" "),1<g?d.push(...c):e.push(...c))}0<d.length&&A(b,...d);0<e.length&&
|
|
25
|
+
B(b,...e)}function K(b){b=b.nodeName.toLowerCase();let a=null;if("ol"===b||"ul"===b)a=M(b);return{node:a}}function M(b,a=1){return new I(b,a)}function L(b){return b instanceof I}exports.$createListItemNode=H;exports.$createListNode=M;
|
|
26
|
+
exports.$handleListInsertParagraph=function(){var b=k.$getSelection();if(!k.$isRangeSelection(b)||!b.isCollapsed())return!1;b=b.anchor.getNode();if(!f.$isListItemNode(b)||""!==b.getTextContent())return!1;var a=q(b),c=b.getParent();f.$isListNode(c)||n(2);const d=c.getParent();let e;if(k.$isRootNode(d))e=k.$createParagraphNode(),a.insertAfter(e);else if(f.$isListItemNode(d))e=f.$createListItemNode(),d.insertAfter(e);else return!1;e.select();a=b.getNextSiblings();if(0<a.length){const g=f.$createListNode(c.getTag());
|
|
27
|
+
k.$isParagraphNode(e)?e.insertAfter(g):(c=f.$createListItemNode(),c.append(g),e.insertAfter(c));a.forEach(h=>{h.remove();g.append(h)})}v(b);return!0};exports.$isListItemNode=G;exports.$isListNode=L;exports.ListItemNode=C;exports.ListNode=I;exports.indentList=function(){return z("indent")};
|
|
28
|
+
exports.insertList=function(b,a){b.update(()=>{var c=k.$getSelection();if(k.$isRangeSelection(c)){var d=c.getNodes();c=c.anchor.getNode();var e=c.getParent();if(0===d.length)d=f.$createListNode(a),k.$isRootNode(e)?(c.replace(d),c=f.$createListItemNode(),d.append(c)):f.$isListItemNode(c)&&(c=c.getParentOrThrow(),d.append(...c.getChildren()),c.replace(d));else for(c=new Set,e=0;e<d.length;e++){var g=d[e];if(k.$isElementNode(g)&&g.isEmpty()&&!c.has(g.getKey()))w(g,a);else if(k.$isLeafNode(g))for(g=g.getParent();null!=
|
|
29
|
+
g;){const l=g.getKey();if(f.$isListNode(g)){if(!c.has(l)){var h=f.$createListNode(a);h.append(...g.getChildren());g.replace(h);c.add(l)}break}else{h=g.getParent();if(k.$isRootNode(h)&&!c.has(l)){c.add(l);w(g,a);break}g=h}}}}})};exports.outdentList=function(){return z("outdent")};
|
|
30
|
+
exports.removeList=function(b){b.update(()=>{var a=k.$getSelection();if(k.$isRangeSelection(a)){const d=new Set,e=a.getNodes();a=a.anchor.getNode();if(0===e.length&&f.$isListItemNode(a))d.add(q(a));else for(a=0;a<e.length;a++){var c=e[a];k.$isLeafNode(c)&&(c=p(c,f.ListItemNode),null!=c&&d.add(q(c)))}d.forEach(g=>{let h=g;t(g).forEach(l=>{if(null!=l){const m=k.$createParagraphNode();m.append(...l.getChildren());h.insertAfter(m);h=m;l.remove()}});g.remove()})}})};
|
package/package.json
CHANGED