@lexical/list 0.1.9 → 0.1.10
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 +44 -3
- package/LexicalList.prod.js +23 -23
- package/package.json +2 -2
package/LexicalList.dev.js
CHANGED
|
@@ -167,7 +167,7 @@ function insertList(editor, listType) {
|
|
|
167
167
|
editor.update(() => {
|
|
168
168
|
const selection = lexical.$getSelection();
|
|
169
169
|
|
|
170
|
-
if (selection
|
|
170
|
+
if (lexical.$isRangeSelection(selection)) {
|
|
171
171
|
const nodes = selection.getNodes();
|
|
172
172
|
const anchor = selection.anchor;
|
|
173
173
|
const anchorNode = anchor.getNode();
|
|
@@ -268,7 +268,7 @@ function removeList(editor) {
|
|
|
268
268
|
editor.update(() => {
|
|
269
269
|
const selection = lexical.$getSelection();
|
|
270
270
|
|
|
271
|
-
if (selection
|
|
271
|
+
if (lexical.$isRangeSelection(selection)) {
|
|
272
272
|
const listNodes = new Set();
|
|
273
273
|
const nodes = selection.getNodes();
|
|
274
274
|
const anchorNode = selection.anchor.getNode();
|
|
@@ -433,7 +433,7 @@ function $handleOutdent(listItemNodes) {
|
|
|
433
433
|
function maybeIndentOrOutdent(direction) {
|
|
434
434
|
const selection = lexical.$getSelection();
|
|
435
435
|
|
|
436
|
-
if (selection
|
|
436
|
+
if (!lexical.$isRangeSelection(selection)) {
|
|
437
437
|
return false;
|
|
438
438
|
}
|
|
439
439
|
|
|
@@ -531,6 +531,15 @@ class ListItemNode extends lexical.ElementNode {
|
|
|
531
531
|
dom.value = getListItemValue(this);
|
|
532
532
|
$setListItemThemeClassNames(dom, config.theme, this);
|
|
533
533
|
return false;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
static convertDOM() {
|
|
537
|
+
return {
|
|
538
|
+
li: node => ({
|
|
539
|
+
conversion: convertListItemElement,
|
|
540
|
+
priority: 0
|
|
541
|
+
})
|
|
542
|
+
};
|
|
534
543
|
} // Mutation
|
|
535
544
|
|
|
536
545
|
|
|
@@ -831,6 +840,12 @@ function $setListItemThemeClassNames(dom, editorThemeClasses, node) {
|
|
|
831
840
|
}
|
|
832
841
|
}
|
|
833
842
|
|
|
843
|
+
function convertListItemElement(domNode) {
|
|
844
|
+
return {
|
|
845
|
+
node: $createListItemNode()
|
|
846
|
+
};
|
|
847
|
+
}
|
|
848
|
+
|
|
834
849
|
function $createListItemNode() {
|
|
835
850
|
return new ListItemNode();
|
|
836
851
|
}
|
|
@@ -887,6 +902,19 @@ class ListNode extends lexical.ElementNode {
|
|
|
887
902
|
return false;
|
|
888
903
|
}
|
|
889
904
|
|
|
905
|
+
static convertDOM() {
|
|
906
|
+
return {
|
|
907
|
+
ol: node => ({
|
|
908
|
+
conversion: convertListNode,
|
|
909
|
+
priority: 0
|
|
910
|
+
}),
|
|
911
|
+
ul: node => ({
|
|
912
|
+
conversion: convertListNode,
|
|
913
|
+
priority: 0
|
|
914
|
+
})
|
|
915
|
+
};
|
|
916
|
+
}
|
|
917
|
+
|
|
890
918
|
canBeEmpty() {
|
|
891
919
|
return false;
|
|
892
920
|
}
|
|
@@ -970,6 +998,19 @@ function setListThemeClassNames(dom, editorThemeClasses, node) {
|
|
|
970
998
|
}
|
|
971
999
|
}
|
|
972
1000
|
|
|
1001
|
+
function convertListNode(domNode) {
|
|
1002
|
+
const nodeName = domNode.nodeName.toLowerCase();
|
|
1003
|
+
let node = null;
|
|
1004
|
+
|
|
1005
|
+
if (nodeName === 'ol' || nodeName === 'ul') {
|
|
1006
|
+
node = $createListNode(nodeName);
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
return {
|
|
1010
|
+
node
|
|
1011
|
+
};
|
|
1012
|
+
}
|
|
1013
|
+
|
|
973
1014
|
function $createListNode(tag, start = 1) {
|
|
974
1015
|
return new ListNode(tag, start);
|
|
975
1016
|
}
|
package/LexicalList.prod.js
CHANGED
|
@@ -4,26 +4,26 @@
|
|
|
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 v(
|
|
10
|
-
function w(
|
|
11
|
-
d.getChildren().forEach(g=>g.markDirty()));else if(f.$isListNode(
|
|
12
|
-
function x(
|
|
13
|
-
|
|
14
|
-
function y(
|
|
15
|
-
function A(
|
|
16
|
-
class B extends
|
|
17
|
-
this.getParentOrThrow();if(f.$isListNode(a)){var
|
|
18
|
-
|
|
19
|
-
""===this.getTextContent()&&(null===a||null===
|
|
20
|
-
|
|
21
|
-
this.getNextSiblings();
|
|
22
|
-
function D(
|
|
23
|
-
class
|
|
24
|
-
else{const d=f.$createListItemNode();
|
|
25
|
-
function
|
|
26
|
-
A(
|
|
27
|
-
exports.insertList=function(
|
|
28
|
-
g;){const
|
|
29
|
-
exports.removeList=function(
|
|
7
|
+
var f=require("@lexical/list"),k=require("lexical");function n(b,a){for(;null!=b&&!(b instanceof a);)b=b.getParent();return b}function p(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 r(b){b=b.getParent();f.$isListNode(b)||p(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())}
|
|
9
|
+
function v(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 w(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 x(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(q=>m.append(q));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 y(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?w(d):x(d),!0):!1}function z(b,...a){a.forEach(c=>{null!=c&&"string"===typeof c&&b.classList.add(...c.split(" "))})}
|
|
15
|
+
function A(b,...a){a.forEach(c=>{b.classList.remove(...c.split(" "))})}
|
|
16
|
+
class B extends k.ElementNode{static getType(){return"listitem"}static clone(b){return new B(b.__key)}constructor(b){super(b)}createDOM(b){const a=document.createElement("li");a.value=C(this);D(a,b.theme,this);return a}updateDOM(b,a,c){a.value=C(this);D(a,c.theme,this);return!1}static convertDOM(){return{li:()=>({conversion:E,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(F(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(F(b))return a.forEach(d=>d.markDirty()),super.insertAfter(b);var c=this.getParentOrThrow();f.$isListNode(c)||p(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(){var b=this.getNextSibling(),a=this.getPreviousSibling(),c=r(this);var d=!0;var e=this.getFirstChild();if(f.$isListNode(e))d=!1;else for(e=this;null!==e;)f.$isListItemNode(e)&&0<e.getNextSiblings().length&&(d=!1),e=e.getParent();if(k.$isElementNode(c)&&
|
|
19
|
+
""===this.getTextContent()&&(null===a||null===b)&&d){null===b?(b=k.$createParagraphNode(),c.insertAfter(b)):(b=k.$createParagraphNode(),c.insertBefore(b));for(c=this;null==c.getNextSibling()&&null==c.getPreviousSibling();){a=c.getParent();if(null==a||!F(c)&&!f.$isListNode(c))break;c=a}c.remove()}else b=G(),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=F(d);1===
|
|
20
|
+
c.getChildrenSize()?e?(c.remove(),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(;F(b);)b=b.getParentOrThrow().getParentOrThrow(),a++;return a}setIndent(b){let a=this.getIndent();for(;a!==b;)a<b?(w([this]),a++):(x([this]),a--);return this}insertBefore(b){const a=
|
|
21
|
+
this.getNextSiblings();F(b)&&a.forEach(c=>c.markDirty());return super.insertBefore(b)}canInsertAfter(b){return F(b)}canReplaceWith(b){return F(b)}canMergeWith(b){return k.$isParagraphNode(b)||F(b)}}function C(b){var a=b.getParent();let c=1;null!=a&&(f.$isListNode(a)?c=a.__start:p(47));b=b.getPreviousSiblings();for(a=0;a<b.length;a++){const d=b[a];F(d)&&!f.$isListNode(d.getFirstChild())&&c++}return c}
|
|
22
|
+
function D(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&&z(b,...d);0<e.length&&A(b,...e)}function E(){return{node:G()}}function G(){return new B}function F(b){return b instanceof B}
|
|
23
|
+
class H extends k.ElementNode{static getType(){return"list"}static clone(b){return new H(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));I(a,b.theme,this);return a}updateDOM(b,a,c){if(b.__tag!==this.__tag)return!0;I(a,c.theme,this);return!1}static convertDOM(){return{ol:()=>({conversion:J,priority:0}),ul:()=>({conversion:J,
|
|
24
|
+
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();K(a)?d.append(a):(a=k.$createTextNode(a.getTextContent()),d.append(a));super.append(d)}}return this}}
|
|
25
|
+
function I(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}p(2)}break a}}h=g%5;const l=a[c.__tag+(0===h?5:h)],m=a[c.__tag];let q;a=a.nested;void 0!==a&&a.list&&(q=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!==q&&(c=q.split(" "),1<g?d.push(...c):e.push(...c))}0<d.length&&z(b,...d);0<e.length&&
|
|
26
|
+
A(b,...e)}function J(b){b=b.nodeName.toLowerCase();let a=null;if("ol"===b||"ul"===b)a=L(b);return{node:a}}function L(b,a=1){return new H(b,a)}function K(b){return b instanceof H}exports.$createListItemNode=G;exports.$createListNode=L;exports.$isListItemNode=F;exports.$isListNode=K;exports.ListItemNode=B;exports.ListNode=H;exports.indentList=function(){return y("indent")};
|
|
27
|
+
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()))v(g,a);else if(k.$isLeafNode(g))for(g=g.getParent();null!=
|
|
28
|
+
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);v(g,a);break}g=h}}}}})};exports.outdentList=function(){return y("outdent")};
|
|
29
|
+
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(r(a));else for(a=0;a<e.length;a++){var c=e[a];k.$isLeafNode(c)&&(c=n(c,f.ListItemNode),null!=c&&d.add(r(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