@lexical/rich-text 0.6.5 → 0.7.1

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.
@@ -126,11 +126,11 @@ class QuoteNode extends lexical.ElementNode {
126
126
  } // Mutation
127
127
 
128
128
 
129
- insertNewAfter() {
129
+ insertNewAfter(_, restoreSelection) {
130
130
  const newBlock = lexical.$createParagraphNode();
131
131
  const direction = this.getDirection();
132
132
  newBlock.setDirection(direction);
133
- this.insertAfter(newBlock);
133
+ this.insertAfter(newBlock, restoreSelection);
134
134
  return newBlock;
135
135
  }
136
136
 
@@ -265,12 +265,12 @@ class HeadingNode extends lexical.ElementNode {
265
265
  } // Mutation
266
266
 
267
267
 
268
- insertNewAfter(selection) {
268
+ insertNewAfter(selection, restoreSelection = true) {
269
269
  const anchorOffet = selection ? selection.anchor.offset : 0;
270
270
  const newElement = anchorOffet > 0 && anchorOffet < this.getTextContentSize() ? $createHeadingNode(this.getTag()) : lexical.$createParagraphNode();
271
271
  const direction = this.getDirection();
272
272
  newElement.setDirection(direction);
273
- this.insertAfter(newElement);
273
+ this.insertAfter(newElement, restoreSelection);
274
274
  return newElement;
275
275
  }
276
276
 
@@ -403,11 +403,16 @@ function handleIndentAndOutdent(insertTab, indentOrOutdent) {
403
403
  }
404
404
  }
405
405
 
406
- function isTargetWithinDecorator(target) {
406
+ function $isTargetWithinDecorator(target) {
407
407
  const node = lexical.$getNearestNodeFromDOMNode(target);
408
408
  return lexical.$isDecoratorNode(node);
409
409
  }
410
410
 
411
+ function $isSelectionAtEndOfRoot(selection) {
412
+ const focus = selection.focus;
413
+ return focus.key === 'root' && focus.offset === lexical.$getRoot().getChildrenSize();
414
+ }
415
+
411
416
  function registerRichText(editor) {
412
417
  const removeListener = utils.mergeRegister(editor.registerCommand(lexical.CLICK_COMMAND, payload => {
413
418
  const selection = lexical.$getSelection();
@@ -556,7 +561,7 @@ function registerRichText(editor) {
556
561
  }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_ARROW_UP_COMMAND, event => {
557
562
  const selection = lexical.$getSelection();
558
563
 
559
- if (lexical.$isNodeSelection(selection) && !isTargetWithinDecorator(event.target)) {
564
+ if (lexical.$isNodeSelection(selection) && !$isTargetWithinDecorator(event.target)) {
560
565
  // If selection is on a node, let's try and move selection
561
566
  // back to being a range selection.
562
567
  const nodes = selection.getNodes();
@@ -565,6 +570,18 @@ function registerRichText(editor) {
565
570
  nodes[0].selectPrevious();
566
571
  return true;
567
572
  }
573
+ } else if (lexical.$isRangeSelection(selection)) {
574
+ const possibleNode = lexical.$getAdjacentNode(selection.focus, true);
575
+
576
+ if (lexical.$isDecoratorNode(possibleNode) && !possibleNode.isIsolated()) {
577
+ possibleNode.selectPrevious();
578
+ event.preventDefault();
579
+ return true;
580
+ } else if (lexical.$isElementNode(possibleNode) && !possibleNode.isInline() && !possibleNode.canBeEmpty()) {
581
+ possibleNode.select();
582
+ event.preventDefault();
583
+ return true;
584
+ }
568
585
  }
569
586
 
570
587
  return false;
@@ -580,6 +597,19 @@ function registerRichText(editor) {
580
597
  nodes[0].selectNext(0, 0);
581
598
  return true;
582
599
  }
600
+ } else if (lexical.$isRangeSelection(selection)) {
601
+ if ($isSelectionAtEndOfRoot(selection)) {
602
+ event.preventDefault();
603
+ return true;
604
+ }
605
+
606
+ const possibleNode = lexical.$getAdjacentNode(selection.focus, false);
607
+
608
+ if (lexical.$isDecoratorNode(possibleNode) && !possibleNode.isIsolated()) {
609
+ possibleNode.selectNext();
610
+ event.preventDefault();
611
+ return true;
612
+ }
583
613
  }
584
614
 
585
615
  return false;
@@ -613,7 +643,7 @@ function registerRichText(editor) {
613
643
  }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_ARROW_RIGHT_COMMAND, event => {
614
644
  const selection$1 = lexical.$getSelection();
615
645
 
616
- if (lexical.$isNodeSelection(selection$1) && !isTargetWithinDecorator(event.target)) {
646
+ if (lexical.$isNodeSelection(selection$1) && !$isTargetWithinDecorator(event.target)) {
617
647
  // If selection is on a node, let's try and move selection
618
648
  // back to being a range selection.
619
649
  const nodes = selection$1.getNodes();
@@ -639,7 +669,7 @@ function registerRichText(editor) {
639
669
 
640
670
  return false;
641
671
  }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_BACKSPACE_COMMAND, event => {
642
- if (isTargetWithinDecorator(event.target)) {
672
+ if ($isTargetWithinDecorator(event.target)) {
643
673
  return false;
644
674
  }
645
675
 
@@ -665,7 +695,7 @@ function registerRichText(editor) {
665
695
 
666
696
  return editor.dispatchCommand(lexical.DELETE_CHARACTER_COMMAND, true);
667
697
  }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_DELETE_COMMAND, event => {
668
- if (isTargetWithinDecorator(event.target)) {
698
+ if ($isTargetWithinDecorator(event.target)) {
669
699
  return false;
670
700
  }
671
701
 
@@ -704,15 +734,6 @@ function registerRichText(editor) {
704
734
  }
705
735
 
706
736
  return editor.dispatchCommand(lexical.INSERT_PARAGRAPH_COMMAND, undefined);
707
- }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_TAB_COMMAND, event => {
708
- const selection = lexical.$getSelection();
709
-
710
- if (!lexical.$isRangeSelection(selection)) {
711
- return false;
712
- }
713
-
714
- event.preventDefault();
715
- return editor.dispatchCommand(event.shiftKey ? lexical.OUTDENT_CONTENT_COMMAND : lexical.INDENT_CONTENT_COMMAND, undefined);
716
737
  }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_ESCAPE_COMMAND, () => {
717
738
  const selection = lexical.$getSelection();
718
739
 
@@ -4,28 +4,29 @@
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
- 'use strict';var c=require("@lexical/clipboard"),g=require("@lexical/selection"),k=require("@lexical/utils"),l=require("lexical");function m(b,a){return"undefined"!==typeof document.caretRangeFromPoint?(b=document.caretRangeFromPoint(b,a),null===b?null:{node:b.startContainer,offset:b.startOffset}):"undefined"!==document.caretPositionFromPoint?(b=document.caretPositionFromPoint(b,a),null===b?null:{node:b.offsetNode,offset:b.offset}):null}
7
+ 'use strict';var a=require("@lexical/clipboard"),g=require("@lexical/selection"),k=require("@lexical/utils"),l=require("lexical");function m(c,b){return"undefined"!==typeof document.caretRangeFromPoint?(c=document.caretRangeFromPoint(c,b),null===c?null:{node:c.startContainer,offset:c.startOffset}):"undefined"!==document.caretPositionFromPoint?(c=document.caretPositionFromPoint(c,b),null===c?null:{node:c.offsetNode,offset:c.offset}):null}
8
8
  let p="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,q=p&&"documentMode"in document?document.documentMode:null;p&&/Mac|iPod|iPhone|iPad/.test(navigator.platform);p&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);let r=p&&"InputEvent"in window&&!q?"getTargetRanges"in new window.InputEvent("input"):!1,t=p&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),u=p&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream;
9
9
  p&&/^(?=.*Chrome).*/i.test(navigator.userAgent);let w=l.createCommand("DRAG_DROP_PASTE_FILE");
10
- class x extends l.ElementNode{static getType(){return"quote"}static clone(b){return new x(b.__key)}constructor(b){super(b)}createDOM(b){let a=document.createElement("blockquote");k.addClassNamesToElement(a,b.theme.quote);return a}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:y,priority:0})}}static importJSON(b){let a=z();a.setFormat(b.format);a.setIndent(b.indent);a.setDirection(b.direction);return a}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(){let b=
11
- l.$createParagraphNode(),a=this.getDirection();b.setDirection(a);this.insertAfter(b);return b}collapseAtStart(){let b=l.$createParagraphNode();this.getChildren().forEach(a=>b.append(a));this.replace(b);return!0}}function z(){return l.$applyNodeReplacement(new x)}
12
- class A extends l.ElementNode{static getType(){return"heading"}static clone(b){return new A(b.__tag,b.__key)}constructor(b,a){super(a);this.__tag=b}getTag(){return this.__tag}createDOM(b){let a=this.__tag,d=document.createElement(a);b=b.theme.heading;void 0!==b&&k.addClassNamesToElement(d,b[a]);return d}updateDOM(){return!1}static importDOM(){return{h1:()=>({conversion:B,priority:0}),h2:()=>({conversion:B,priority:0}),h3:()=>({conversion:B,priority:0}),h4:()=>({conversion:B,priority:0}),h5:()=>({conversion:B,
13
- priority:0}),h6:()=>({conversion:B,priority:0}),p:b=>{b=b.firstChild;return null!==b&&D(b)?{conversion:()=>({node:null}),priority:3}:null},span:b=>D(b)?{conversion:()=>({node:E("h1")}),priority:3}:null}}static importJSON(b){let a=E(b.tag);a.setFormat(b.format);a.setIndent(b.indent);a.setDirection(b.direction);return a}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:"heading",version:1}}insertNewAfter(b){b=b?b.anchor.offset:0;b=0<b&&b<this.getTextContentSize()?E(this.getTag()):l.$createParagraphNode();
14
- let a=this.getDirection();b.setDirection(a);this.insertAfter(b);return b}collapseAtStart(){let b=this.isEmpty()?l.$createParagraphNode():E(this.getTag());this.getChildren().forEach(a=>b.append(a));this.replace(b);return!0}extractWithChild(){return!0}}function D(b){return"span"===b.nodeName.toLowerCase()?"26pt"===b.style.fontSize:!1}function B(b){b=b.nodeName.toLowerCase();let a=null;if("h1"===b||"h2"===b||"h3"===b||"h4"===b||"h5"===b||"h6"===b)a=E(b);return{node:a}}function y(){return{node:z()}}
15
- function E(b){return l.$applyNodeReplacement(new A(b))}function F(b,a){b.preventDefault();a.update(()=>{let d=l.$getSelection(),e=b instanceof InputEvent||b instanceof KeyboardEvent?null:b.clipboardData;null!=e&&(l.$isRangeSelection(d)||l.DEPRECATED_$isGridSelection(d))&&c.$insertDataTransferForRichText(e,d,a)},{tag:"paste"})}
16
- async function G(b,a){await c.copyToClipboard__EXPERIMENTAL(a,b instanceof ClipboardEvent?b:null);a.update(()=>{let d=l.$getSelection();l.$isRangeSelection(d)?d.removeText():l.$isNodeSelection(d)&&d.getNodes().forEach(e=>e.remove())})}function H(b){let a=null;b instanceof DragEvent?a=b.dataTransfer:b instanceof ClipboardEvent&&(a=b.clipboardData);if(null===a)return[!1,[],!1];var d=a.types;b=d.includes("Files");d=d.includes("text/html")||d.includes("text/plain");return[b,Array.from(a.files),d]}
17
- function I(b,a){var d=l.$getSelection();if(l.$isRangeSelection(d)){var e=new Set;d=d.getNodes();for(let f=0;f<d.length;f++){let n=d[f],v=n.getKey();if(e.has(v))continue;let h=k.$getNearestBlockElementAncestorOrThrow(n),C=h.getKey();h.canInsertTab()?(b(n),e.add(v)):h.canIndent()&&!e.has(C)&&(e.add(C),a(h))}}}function J(b){b=l.$getNearestNodeFromDOMNode(b);return l.$isDecoratorNode(b)}exports.$createHeadingNode=E;exports.$createQuoteNode=z;exports.$isHeadingNode=function(b){return b instanceof A};
18
- exports.$isQuoteNode=function(b){return b instanceof x};exports.DRAG_DROP_PASTE=w;exports.HeadingNode=A;exports.QuoteNode=x;exports.eventFiles=H;
19
- exports.registerRichText=function(b){return k.mergeRegister(b.registerCommand(l.CLICK_COMMAND,()=>{const a=l.$getSelection();return l.$isNodeSelection(a)?(a.clear(),!0):!1},0),b.registerCommand(l.DELETE_CHARACTER_COMMAND,a=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.deleteCharacter(a);return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.DELETE_WORD_COMMAND,a=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.deleteWord(a);return!0},l.COMMAND_PRIORITY_EDITOR),
20
- b.registerCommand(l.DELETE_LINE_COMMAND,a=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.deleteLine(a);return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.CONTROLLED_TEXT_INSERTION_COMMAND,a=>{const d=l.$getSelection();if("string"===typeof a)l.$isRangeSelection(d)?d.insertText(a):l.DEPRECATED_$isGridSelection(d);else{if(!l.$isRangeSelection(d)&&!l.DEPRECATED_$isGridSelection(d))return!1;const e=a.dataTransfer;null!=e?c.$insertDataTransferForRichText(e,d,b):l.$isRangeSelection(d)&&
21
- (a=a.data)&&d.insertText(a)}return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.REMOVE_TEXT_COMMAND,()=>{const a=l.$getSelection();if(!l.$isRangeSelection(a))return!1;a.removeText();return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.FORMAT_TEXT_COMMAND,a=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.formatText(a);return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.FORMAT_ELEMENT_COMMAND,a=>{var d=l.$getSelection();if(!l.$isRangeSelection(d)&&!l.$isNodeSelection(d))return!1;
22
- d=d.getNodes();for(const e of d)k.$getNearestBlockElementAncestorOrThrow(e).setFormat(a);return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.INSERT_LINE_BREAK_COMMAND,a=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.insertLineBreak(a);return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.INSERT_PARAGRAPH_COMMAND,()=>{const a=l.$getSelection();if(!l.$isRangeSelection(a))return!1;a.insertParagraph();return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.INDENT_CONTENT_COMMAND,
23
- ()=>{I(()=>{b.dispatchCommand(l.CONTROLLED_TEXT_INSERTION_COMMAND,"\t")},a=>{const d=a.getIndent();10!==d&&a.setIndent(d+1)});return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.OUTDENT_CONTENT_COMMAND,()=>{I(a=>{l.$isTextNode(a)&&(a=a.getTextContent(),"\t"===a[a.length-1]&&b.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!0))},a=>{const d=a.getIndent();0!==d&&a.setIndent(d-1)});return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.KEY_ARROW_UP_COMMAND,a=>{const d=l.$getSelection();return l.$isNodeSelection(d)&&
24
- !J(a.target)&&(a=d.getNodes(),0<a.length)?(a[0].selectPrevious(),!0):!1},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.KEY_ARROW_DOWN_COMMAND,()=>{var a=l.$getSelection();return l.$isNodeSelection(a)&&(a=a.getNodes(),0<a.length)?(a[0].selectNext(0,0),!0):!1},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.KEY_ARROW_LEFT_COMMAND,a=>{const d=l.$getSelection();if(l.$isNodeSelection(d)){var e=d.getNodes();if(0<e.length)return a.preventDefault(),e[0].selectPrevious(),!0}return l.$isRangeSelection(d)?g.$shouldOverrideDefaultCharacterSelection(d,
25
- !0)?(e=a.shiftKey,a.preventDefault(),g.$moveCharacter(d,e,!0),!0):!1:!1},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.KEY_ARROW_RIGHT_COMMAND,a=>{const d=l.$getSelection();if(l.$isNodeSelection(d)&&!J(a.target)){var e=d.getNodes();if(0<e.length)return a.preventDefault(),e[0].selectNext(0,0),!0}if(!l.$isRangeSelection(d))return!1;e=a.shiftKey;return g.$shouldOverrideDefaultCharacterSelection(d,!1)?(a.preventDefault(),g.$moveCharacter(d,e,!1),!0):!1},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.KEY_BACKSPACE_COMMAND,
26
- a=>{if(J(a.target))return!1;const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;a.preventDefault();({anchor:a}=d);const e=a.getNode();return d.isCollapsed()&&0===a.offset&&!l.$isRootNode(e)&&0<k.$getNearestBlockElementAncestorOrThrow(e).getIndent()?b.dispatchCommand(l.OUTDENT_CONTENT_COMMAND,void 0):b.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!0)},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.KEY_DELETE_COMMAND,a=>{if(J(a.target))return!1;const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;
27
- a.preventDefault();return b.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!1)},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.KEY_ENTER_COMMAND,a=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;if(null!==a){if((u||t)&&r)return!1;a.preventDefault();if(a.shiftKey)return b.dispatchCommand(l.INSERT_LINE_BREAK_COMMAND,!1)}return b.dispatchCommand(l.INSERT_PARAGRAPH_COMMAND,void 0)},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.KEY_TAB_COMMAND,a=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;
28
- a.preventDefault();return b.dispatchCommand(a.shiftKey?l.OUTDENT_CONTENT_COMMAND:l.INDENT_CONTENT_COMMAND,void 0)},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.KEY_ESCAPE_COMMAND,()=>{const a=l.$getSelection();if(!l.$isRangeSelection(a))return!1;b.blur();return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.DROP_COMMAND,a=>{const [,d]=H(a);if(0<d.length){var e=m(a.clientX,a.clientY);if(null!==e){const {offset:n,node:v}=e;var f=l.$getNearestNodeFromDOMNode(v);if(null!==f){e=l.$createRangeSelection();
29
- if(l.$isTextNode(f))e.anchor.set(f.getKey(),n,"text"),e.focus.set(f.getKey(),n,"text");else{const h=f.getParentOrThrow().getKey();f=f.getIndexWithinParent()+1;e.anchor.set(h,f,"element");e.focus.set(h,f,"element")}e=l.$normalizeSelection__EXPERIMENTAL(e);l.$setSelection(e)}b.dispatchCommand(w,d)}a.preventDefault();return!0}a=l.$getSelection();return l.$isRangeSelection(a)?!0:!1},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.DRAGSTART_COMMAND,a=>{[a]=H(a);const d=l.$getSelection();return a&&!l.$isRangeSelection(d)?
30
- !1:!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.DRAGOVER_COMMAND,a=>{var [d]=H(a);const e=l.$getSelection();if(d&&!l.$isRangeSelection(e))return!1;d=m(a.clientX,a.clientY);null!==d&&(d=l.$getNearestNodeFromDOMNode(d.node),l.$isDecoratorNode(d)&&a.preventDefault());return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.COPY_COMMAND,a=>{c.copyToClipboard__EXPERIMENTAL(b,a instanceof ClipboardEvent?a:null);return!0},l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.CUT_COMMAND,a=>{G(a,b);return!0},
31
- l.COMMAND_PRIORITY_EDITOR),b.registerCommand(l.PASTE_COMMAND,a=>{const [,d,e]=H(a);if(0<d.length&&!e)return b.dispatchCommand(w,d),!0;const f=l.$getSelection();return l.$isRangeSelection(f)||l.DEPRECATED_$isGridSelection(f)?(F(a,b),!0):!1},l.COMMAND_PRIORITY_EDITOR))}
10
+ class x extends l.ElementNode{static getType(){return"quote"}static clone(c){return new x(c.__key)}constructor(c){super(c)}createDOM(c){let b=document.createElement("blockquote");k.addClassNamesToElement(b,c.theme.quote);return b}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:y,priority:0})}}static importJSON(c){let b=z();b.setFormat(c.format);b.setIndent(c.indent);b.setDirection(c.direction);return b}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(c,
11
+ b){c=l.$createParagraphNode();let d=this.getDirection();c.setDirection(d);this.insertAfter(c,b);return c}collapseAtStart(){let c=l.$createParagraphNode();this.getChildren().forEach(b=>c.append(b));this.replace(c);return!0}}function z(){return l.$applyNodeReplacement(new x)}
12
+ class A extends l.ElementNode{static getType(){return"heading"}static clone(c){return new A(c.__tag,c.__key)}constructor(c,b){super(b);this.__tag=c}getTag(){return this.__tag}createDOM(c){let b=this.__tag,d=document.createElement(b);c=c.theme.heading;void 0!==c&&k.addClassNamesToElement(d,c[b]);return d}updateDOM(){return!1}static importDOM(){return{h1:()=>({conversion:B,priority:0}),h2:()=>({conversion:B,priority:0}),h3:()=>({conversion:B,priority:0}),h4:()=>({conversion:B,priority:0}),h5:()=>({conversion:B,
13
+ priority:0}),h6:()=>({conversion:B,priority:0}),p:c=>{c=c.firstChild;return null!==c&&D(c)?{conversion:()=>({node:null}),priority:3}:null},span:c=>D(c)?{conversion:()=>({node:E("h1")}),priority:3}:null}}static importJSON(c){let b=E(c.tag);b.setFormat(c.format);b.setIndent(c.indent);b.setDirection(c.direction);return b}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:"heading",version:1}}insertNewAfter(c,b=!0){c=c?c.anchor.offset:0;c=0<c&&c<this.getTextContentSize()?E(this.getTag()):
14
+ l.$createParagraphNode();let d=this.getDirection();c.setDirection(d);this.insertAfter(c,b);return c}collapseAtStart(){let c=this.isEmpty()?l.$createParagraphNode():E(this.getTag());this.getChildren().forEach(b=>c.append(b));this.replace(c);return!0}extractWithChild(){return!0}}function D(c){return"span"===c.nodeName.toLowerCase()?"26pt"===c.style.fontSize:!1}function B(c){c=c.nodeName.toLowerCase();let b=null;if("h1"===c||"h2"===c||"h3"===c||"h4"===c||"h5"===c||"h6"===c)b=E(c);return{node:b}}
15
+ function y(){return{node:z()}}function E(c){return l.$applyNodeReplacement(new A(c))}function F(c,b){c.preventDefault();b.update(()=>{let d=l.$getSelection(),e=c instanceof InputEvent||c instanceof KeyboardEvent?null:c.clipboardData;null!=e&&(l.$isRangeSelection(d)||l.DEPRECATED_$isGridSelection(d))&&a.$insertDataTransferForRichText(e,d,b)},{tag:"paste"})}
16
+ async function G(c,b){await a.copyToClipboard__EXPERIMENTAL(b,c instanceof ClipboardEvent?c:null);b.update(()=>{let d=l.$getSelection();l.$isRangeSelection(d)?d.removeText():l.$isNodeSelection(d)&&d.getNodes().forEach(e=>e.remove())})}function H(c){let b=null;c instanceof DragEvent?b=c.dataTransfer:c instanceof ClipboardEvent&&(b=c.clipboardData);if(null===b)return[!1,[],!1];var d=b.types;c=d.includes("Files");d=d.includes("text/html")||d.includes("text/plain");return[c,Array.from(b.files),d]}
17
+ function I(c,b){var d=l.$getSelection();if(l.$isRangeSelection(d)){var e=new Set;d=d.getNodes();for(let f=0;f<d.length;f++){let n=d[f],v=n.getKey();if(e.has(v))continue;let h=k.$getNearestBlockElementAncestorOrThrow(n),C=h.getKey();h.canInsertTab()?(c(n),e.add(v)):h.canIndent()&&!e.has(C)&&(e.add(C),b(h))}}}function J(c){c=l.$getNearestNodeFromDOMNode(c);return l.$isDecoratorNode(c)}exports.$createHeadingNode=E;exports.$createQuoteNode=z;exports.$isHeadingNode=function(c){return c instanceof A};
18
+ exports.$isQuoteNode=function(c){return c instanceof x};exports.DRAG_DROP_PASTE=w;exports.HeadingNode=A;exports.QuoteNode=x;exports.eventFiles=H;
19
+ exports.registerRichText=function(c){return k.mergeRegister(c.registerCommand(l.CLICK_COMMAND,()=>{const b=l.$getSelection();return l.$isNodeSelection(b)?(b.clear(),!0):!1},0),c.registerCommand(l.DELETE_CHARACTER_COMMAND,b=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.deleteCharacter(b);return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.DELETE_WORD_COMMAND,b=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.deleteWord(b);return!0},l.COMMAND_PRIORITY_EDITOR),
20
+ c.registerCommand(l.DELETE_LINE_COMMAND,b=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.deleteLine(b);return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.CONTROLLED_TEXT_INSERTION_COMMAND,b=>{const d=l.$getSelection();if("string"===typeof b)l.$isRangeSelection(d)?d.insertText(b):l.DEPRECATED_$isGridSelection(d);else{if(!l.$isRangeSelection(d)&&!l.DEPRECATED_$isGridSelection(d))return!1;const e=b.dataTransfer;null!=e?a.$insertDataTransferForRichText(e,d,c):l.$isRangeSelection(d)&&
21
+ (b=b.data)&&d.insertText(b)}return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.REMOVE_TEXT_COMMAND,()=>{const b=l.$getSelection();if(!l.$isRangeSelection(b))return!1;b.removeText();return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.FORMAT_TEXT_COMMAND,b=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.formatText(b);return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.FORMAT_ELEMENT_COMMAND,b=>{var d=l.$getSelection();if(!l.$isRangeSelection(d)&&!l.$isNodeSelection(d))return!1;
22
+ d=d.getNodes();for(const e of d)k.$getNearestBlockElementAncestorOrThrow(e).setFormat(b);return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.INSERT_LINE_BREAK_COMMAND,b=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.insertLineBreak(b);return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.INSERT_PARAGRAPH_COMMAND,()=>{const b=l.$getSelection();if(!l.$isRangeSelection(b))return!1;b.insertParagraph();return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.INDENT_CONTENT_COMMAND,
23
+ ()=>{I(()=>{c.dispatchCommand(l.CONTROLLED_TEXT_INSERTION_COMMAND,"\t")},b=>{const d=b.getIndent();10!==d&&b.setIndent(d+1)});return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.OUTDENT_CONTENT_COMMAND,()=>{I(b=>{l.$isTextNode(b)&&(b=b.getTextContent(),"\t"===b[b.length-1]&&c.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!0))},b=>{const d=b.getIndent();0!==d&&b.setIndent(d-1)});return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.KEY_ARROW_UP_COMMAND,b=>{var d=l.$getSelection();if(l.$isNodeSelection(d)&&
24
+ !J(b.target)){if(b=d.getNodes(),0<b.length)return b[0].selectPrevious(),!0}else if(l.$isRangeSelection(d)){d=l.$getAdjacentNode(d.focus,!0);if(l.$isDecoratorNode(d)&&!d.isIsolated())return d.selectPrevious(),b.preventDefault(),!0;if(l.$isElementNode(d)&&!d.isInline()&&!d.canBeEmpty())return d.select(),b.preventDefault(),!0}return!1},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.KEY_ARROW_DOWN_COMMAND,b=>{var d=l.$getSelection();if(l.$isNodeSelection(d)){if(b=d.getNodes(),0<b.length)return b[0].selectNext(0,
25
+ 0),!0}else if(l.$isRangeSelection(d)){let e=d.focus;if("root"===e.key&&e.offset===l.$getRoot().getChildrenSize())return b.preventDefault(),!0;d=l.$getAdjacentNode(d.focus,!1);if(l.$isDecoratorNode(d)&&!d.isIsolated())return d.selectNext(),b.preventDefault(),!0}return!1},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.KEY_ARROW_LEFT_COMMAND,b=>{const d=l.$getSelection();if(l.$isNodeSelection(d)){var e=d.getNodes();if(0<e.length)return b.preventDefault(),e[0].selectPrevious(),!0}return l.$isRangeSelection(d)?
26
+ g.$shouldOverrideDefaultCharacterSelection(d,!0)?(e=b.shiftKey,b.preventDefault(),g.$moveCharacter(d,e,!0),!0):!1:!1},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.KEY_ARROW_RIGHT_COMMAND,b=>{const d=l.$getSelection();if(l.$isNodeSelection(d)&&!J(b.target)){var e=d.getNodes();if(0<e.length)return b.preventDefault(),e[0].selectNext(0,0),!0}if(!l.$isRangeSelection(d))return!1;e=b.shiftKey;return g.$shouldOverrideDefaultCharacterSelection(d,!1)?(b.preventDefault(),g.$moveCharacter(d,e,!1),!0):!1},l.COMMAND_PRIORITY_EDITOR),
27
+ c.registerCommand(l.KEY_BACKSPACE_COMMAND,b=>{if(J(b.target))return!1;const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;b.preventDefault();({anchor:b}=d);const e=b.getNode();return d.isCollapsed()&&0===b.offset&&!l.$isRootNode(e)&&0<k.$getNearestBlockElementAncestorOrThrow(e).getIndent()?c.dispatchCommand(l.OUTDENT_CONTENT_COMMAND,void 0):c.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!0)},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.KEY_DELETE_COMMAND,b=>{if(J(b.target))return!1;const d=
28
+ l.$getSelection();if(!l.$isRangeSelection(d))return!1;b.preventDefault();return c.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!1)},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.KEY_ENTER_COMMAND,b=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;if(null!==b){if((u||t)&&r)return!1;b.preventDefault();if(b.shiftKey)return c.dispatchCommand(l.INSERT_LINE_BREAK_COMMAND,!1)}return c.dispatchCommand(l.INSERT_PARAGRAPH_COMMAND,void 0)},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.KEY_ESCAPE_COMMAND,
29
+ ()=>{const b=l.$getSelection();if(!l.$isRangeSelection(b))return!1;c.blur();return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.DROP_COMMAND,b=>{const [,d]=H(b);if(0<d.length){var e=m(b.clientX,b.clientY);if(null!==e){const {offset:n,node:v}=e;var f=l.$getNearestNodeFromDOMNode(v);if(null!==f){e=l.$createRangeSelection();if(l.$isTextNode(f))e.anchor.set(f.getKey(),n,"text"),e.focus.set(f.getKey(),n,"text");else{const h=f.getParentOrThrow().getKey();f=f.getIndexWithinParent()+1;e.anchor.set(h,
30
+ f,"element");e.focus.set(h,f,"element")}e=l.$normalizeSelection__EXPERIMENTAL(e);l.$setSelection(e)}c.dispatchCommand(w,d)}b.preventDefault();return!0}b=l.$getSelection();return l.$isRangeSelection(b)?!0:!1},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.DRAGSTART_COMMAND,b=>{[b]=H(b);const d=l.$getSelection();return b&&!l.$isRangeSelection(d)?!1:!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.DRAGOVER_COMMAND,b=>{var [d]=H(b);const e=l.$getSelection();if(d&&!l.$isRangeSelection(e))return!1;d=
31
+ m(b.clientX,b.clientY);null!==d&&(d=l.$getNearestNodeFromDOMNode(d.node),l.$isDecoratorNode(d)&&b.preventDefault());return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.COPY_COMMAND,b=>{a.copyToClipboard__EXPERIMENTAL(c,b instanceof ClipboardEvent?b:null);return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.CUT_COMMAND,b=>{G(b,c);return!0},l.COMMAND_PRIORITY_EDITOR),c.registerCommand(l.PASTE_COMMAND,b=>{const [,d,e]=H(b);if(0<d.length&&!e)return c.dispatchCommand(w,d),!0;const f=l.$getSelection();
32
+ return l.$isRangeSelection(f)||l.DEPRECATED_$isGridSelection(f)?(F(b,c),!0):!1},l.COMMAND_PRIORITY_EDITOR))}
package/index.d.ts CHANGED
@@ -28,7 +28,7 @@ export declare class QuoteNode extends ElementNode {
28
28
  static importDOM(): DOMConversionMap | null;
29
29
  static importJSON(serializedNode: SerializedQuoteNode): QuoteNode;
30
30
  exportJSON(): SerializedElementNode;
31
- insertNewAfter(): ParagraphNode;
31
+ insertNewAfter(_: RangeSelection, restoreSelection?: boolean): ParagraphNode;
32
32
  collapseAtStart(): true;
33
33
  }
34
34
  export declare function $createQuoteNode(): QuoteNode;
@@ -47,7 +47,7 @@ export declare class HeadingNode extends ElementNode {
47
47
  static importDOM(): DOMConversionMap | null;
48
48
  static importJSON(serializedNode: SerializedHeadingNode): HeadingNode;
49
49
  exportJSON(): SerializedHeadingNode;
50
- insertNewAfter(selection?: RangeSelection): ParagraphNode | HeadingNode;
50
+ insertNewAfter(selection?: RangeSelection, restoreSelection?: boolean): ParagraphNode | HeadingNode;
51
51
  collapseAtStart(): true;
52
52
  extractWithChild(): boolean;
53
53
  }
package/package.json CHANGED
@@ -7,13 +7,13 @@
7
7
  "rich-text"
8
8
  ],
9
9
  "license": "MIT",
10
- "version": "0.6.5",
10
+ "version": "0.7.1",
11
11
  "main": "LexicalRichText.js",
12
12
  "peerDependencies": {
13
- "lexical": "0.6.5",
14
- "@lexical/selection": "0.6.5",
15
- "@lexical/clipboard": "0.6.5",
16
- "@lexical/utils": "0.6.5"
13
+ "lexical": "0.7.1",
14
+ "@lexical/selection": "0.7.1",
15
+ "@lexical/clipboard": "0.7.1",
16
+ "@lexical/utils": "0.7.1"
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",