@lexical/rich-text 0.5.1-next.1 → 0.6.0
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/LexicalRichText.dev.js +104 -3
- package/LexicalRichText.prod.js +24 -22
- package/index.d.ts +3 -1
- package/package.json +5 -5
package/LexicalRichText.dev.js
CHANGED
|
@@ -11,6 +11,25 @@ var selection = require('@lexical/selection');
|
|
|
11
11
|
var utils = require('@lexical/utils');
|
|
12
12
|
var lexical = require('lexical');
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
16
|
+
*
|
|
17
|
+
* This source code is licensed under the MIT license found in the
|
|
18
|
+
* LICENSE file in the root directory of this source tree.
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
function caretFromPoint(x, y) {
|
|
22
|
+
if (typeof document.caretRangeFromPoint !== 'undefined') {
|
|
23
|
+
return document.caretRangeFromPoint(x, y); // @ts-ignore
|
|
24
|
+
} else if (document.caretPositionFromPoint !== 'undefined') {
|
|
25
|
+
// @ts-ignore FF - no types
|
|
26
|
+
return document.caretPositionFromPoint(x, y);
|
|
27
|
+
} else {
|
|
28
|
+
// Gracefully handle IE
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
14
33
|
/**
|
|
15
34
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
16
35
|
*
|
|
@@ -38,6 +57,7 @@ const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !w
|
|
|
38
57
|
// export const canUseTextInputEvent: boolean = CAN_USE_DOM && 'TextEvent' in window && !documentMode;
|
|
39
58
|
|
|
40
59
|
/** @module @lexical/rich-text */
|
|
60
|
+
const DRAG_DROP_PASTE = lexical.createCommand('DRAG_DROP_PASTE_FILE');
|
|
41
61
|
|
|
42
62
|
/** @noInheritDoc */
|
|
43
63
|
class QuoteNode extends lexical.ElementNode {
|
|
@@ -313,6 +333,25 @@ async function onCutForRichText(event, editor) {
|
|
|
313
333
|
selection.getNodes().forEach(node => node.remove());
|
|
314
334
|
}
|
|
315
335
|
});
|
|
336
|
+
} // Clipboard may contain files that we aren't allowed to read. While the event is arguably useless,
|
|
337
|
+
// in certain ocassions, we want to know whether it was a file transfer, as opposed to text. We
|
|
338
|
+
// control this with the first boolean flag.
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
function eventFiles(event) {
|
|
342
|
+
let dataTransfer = null;
|
|
343
|
+
|
|
344
|
+
if (event instanceof DragEvent) {
|
|
345
|
+
dataTransfer = event.dataTransfer;
|
|
346
|
+
} else if (event instanceof ClipboardEvent) {
|
|
347
|
+
dataTransfer = event.clipboardData;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (dataTransfer === null) {
|
|
351
|
+
return [false, []];
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
return [dataTransfer.types.includes('Files'), Array.from(dataTransfer.files)];
|
|
316
355
|
}
|
|
317
356
|
|
|
318
357
|
function handleIndentAndOutdent(insertTab, indentOrOutdent) {
|
|
@@ -664,18 +703,71 @@ function registerRichText(editor) {
|
|
|
664
703
|
editor.blur();
|
|
665
704
|
return true;
|
|
666
705
|
}, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.DROP_COMMAND, event => {
|
|
706
|
+
const [, files] = eventFiles(event);
|
|
707
|
+
|
|
708
|
+
if (files.length > 0) {
|
|
709
|
+
const x = event.clientX;
|
|
710
|
+
const y = event.clientY;
|
|
711
|
+
const eventRange = caretFromPoint(x, y);
|
|
712
|
+
|
|
713
|
+
if (eventRange !== null) {
|
|
714
|
+
const {
|
|
715
|
+
startOffset,
|
|
716
|
+
endOffset,
|
|
717
|
+
startContainer,
|
|
718
|
+
endContainer
|
|
719
|
+
} = eventRange;
|
|
720
|
+
const startNode = lexical.$getNearestNodeFromDOMNode(startContainer);
|
|
721
|
+
const endNode = lexical.$getNearestNodeFromDOMNode(endContainer);
|
|
722
|
+
|
|
723
|
+
if (startNode !== null && endNode !== null) {
|
|
724
|
+
const selection = lexical.$createRangeSelection();
|
|
725
|
+
|
|
726
|
+
if (lexical.$isTextNode(startNode)) {
|
|
727
|
+
selection.anchor.set(startNode.getKey(), startOffset, 'text');
|
|
728
|
+
} else {
|
|
729
|
+
selection.anchor.set(startNode.getParentOrThrow().getKey(), startNode.getIndexWithinParent() + 1, 'element');
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
if (lexical.$isTextNode(endNode)) {
|
|
733
|
+
selection.focus.set(endNode.getKey(), endOffset, 'text');
|
|
734
|
+
} else {
|
|
735
|
+
selection.focus.set(endNode.getParentOrThrow().getKey(), endNode.getIndexWithinParent() + 1, 'element');
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
const normalizedSelection = lexical.$normalizeSelection__EXPERIMENTAL(selection);
|
|
739
|
+
lexical.$setSelection(normalizedSelection);
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
editor.dispatchCommand(DRAG_DROP_PASTE, files);
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
event.preventDefault();
|
|
746
|
+
return true;
|
|
747
|
+
}
|
|
748
|
+
|
|
667
749
|
const selection = lexical.$getSelection();
|
|
668
750
|
|
|
669
|
-
if (
|
|
751
|
+
if (lexical.$isRangeSelection(selection)) {
|
|
752
|
+
return true;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
return false;
|
|
756
|
+
}, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.DRAGSTART_COMMAND, event => {
|
|
757
|
+
const [isFileTransfer] = eventFiles(event);
|
|
758
|
+
const selection = lexical.$getSelection();
|
|
759
|
+
|
|
760
|
+
if (isFileTransfer && !lexical.$isRangeSelection(selection)) {
|
|
670
761
|
return false;
|
|
671
762
|
}
|
|
672
763
|
|
|
673
764
|
event.preventDefault();
|
|
674
765
|
return true;
|
|
675
|
-
}, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.
|
|
766
|
+
}, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.DRAGOVER_COMMAND, event => {
|
|
767
|
+
const [isFileTransfer] = eventFiles(event);
|
|
676
768
|
const selection = lexical.$getSelection();
|
|
677
769
|
|
|
678
|
-
if (!lexical.$isRangeSelection(selection)) {
|
|
770
|
+
if (isFileTransfer && !lexical.$isRangeSelection(selection)) {
|
|
679
771
|
return false;
|
|
680
772
|
}
|
|
681
773
|
|
|
@@ -688,6 +780,13 @@ function registerRichText(editor) {
|
|
|
688
780
|
onCutForRichText(event, editor);
|
|
689
781
|
return true;
|
|
690
782
|
}, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.PASTE_COMMAND, event => {
|
|
783
|
+
const [, files] = eventFiles(event);
|
|
784
|
+
|
|
785
|
+
if (files !== null && files.length > 0) {
|
|
786
|
+
editor.dispatchCommand(DRAG_DROP_PASTE, files);
|
|
787
|
+
return true;
|
|
788
|
+
}
|
|
789
|
+
|
|
691
790
|
const selection = lexical.$getSelection();
|
|
692
791
|
|
|
693
792
|
if (lexical.$isRangeSelection(selection) || lexical.DEPRECATED_$isGridSelection(selection)) {
|
|
@@ -704,6 +803,8 @@ exports.$createHeadingNode = $createHeadingNode;
|
|
|
704
803
|
exports.$createQuoteNode = $createQuoteNode;
|
|
705
804
|
exports.$isHeadingNode = $isHeadingNode;
|
|
706
805
|
exports.$isQuoteNode = $isQuoteNode;
|
|
806
|
+
exports.DRAG_DROP_PASTE = DRAG_DROP_PASTE;
|
|
707
807
|
exports.HeadingNode = HeadingNode;
|
|
708
808
|
exports.QuoteNode = QuoteNode;
|
|
809
|
+
exports.eventFiles = eventFiles;
|
|
709
810
|
exports.registerRichText = registerRichText;
|
package/LexicalRichText.prod.js
CHANGED
|
@@ -4,25 +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
|
-
'use strict';var a=require("@lexical/clipboard"),
|
|
8
|
-
let
|
|
9
|
-
class
|
|
10
|
-
|
|
11
|
-
class
|
|
12
|
-
priority:0}),h6:()=>({conversion:
|
|
13
|
-
return c}collapseAtStart(){let c=
|
|
14
|
-
function
|
|
15
|
-
async function
|
|
16
|
-
function
|
|
17
|
-
exports.$isQuoteNode=function(c){return c instanceof
|
|
18
|
-
exports.registerRichText=function(c){return
|
|
19
|
-
c.registerCommand(
|
|
20
|
-
(b=b.data)&&d.insertText(b)}return!0},
|
|
21
|
-
d=d.getNodes();for(const e of d)
|
|
22
|
-
()=>{
|
|
23
|
-
!
|
|
24
|
-
!0)?(e=b.shiftKey,b.preventDefault(),
|
|
25
|
-
b=>{if(
|
|
26
|
-
b.preventDefault();return c.dispatchCommand(
|
|
27
|
-
b.preventDefault();return c.dispatchCommand(b.shiftKey?
|
|
28
|
-
if(
|
|
7
|
+
'use strict';var a=require("@lexical/clipboard"),g=require("@lexical/selection"),h=require("@lexical/utils"),k=require("lexical");let l="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,q=l&&"documentMode"in document?document.documentMode:null;l&&/Mac|iPod|iPhone|iPad/.test(navigator.platform);l&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);
|
|
8
|
+
let r=l&&"InputEvent"in window&&!q?"getTargetRanges"in new window.InputEvent("input"):!1,t=l&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),u=l&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,v=k.createCommand("DRAG_DROP_PASTE_FILE");
|
|
9
|
+
class w extends k.ElementNode{static getType(){return"quote"}static clone(c){return new w(c.__key)}constructor(c){super(c)}createDOM(c){let b=document.createElement("blockquote");h.addClassNamesToElement(b,c.theme.quote);return b}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:x,priority:0})}}static importJSON(c){let b=y();b.setFormat(c.format);b.setIndent(c.indent);b.setDirection(c.direction);return b}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(){let c=
|
|
10
|
+
k.$createParagraphNode(),b=this.getDirection();c.setDirection(b);this.insertAfter(c);return c}collapseAtStart(){let c=k.$createParagraphNode();this.getChildren().forEach(b=>c.append(b));this.replace(c);return!0}}function y(){return new w}
|
|
11
|
+
class z extends k.ElementNode{static getType(){return"heading"}static clone(c){return new z(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&&h.addClassNamesToElement(d,c[b]);return d}updateDOM(){return!1}static importDOM(){return{h1:()=>({conversion:A,priority:0}),h2:()=>({conversion:A,priority:0}),h3:()=>({conversion:A,priority:0}),h4:()=>({conversion:A,priority:0}),h5:()=>({conversion:A,
|
|
12
|
+
priority:0}),h6:()=>({conversion:A,priority:0}),p:c=>{c=c.firstChild;return null!==c&&B(c)?{conversion:()=>({node:null}),priority:3}:null},span:c=>B(c)?{conversion:()=>({node:C("h1")}),priority:3}:null}}static importJSON(c){let b=C(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(){let c=k.$createParagraphNode(),b=this.getDirection();c.setDirection(b);this.insertAfter(c);
|
|
13
|
+
return c}collapseAtStart(){let c=k.$createParagraphNode();this.getChildren().forEach(b=>c.append(b));this.replace(c);return!0}extractWithChild(){return!0}}function B(c){return"span"===c.nodeName.toLowerCase()?"26pt"===c.style.fontSize:!1}function A(c){c=c.nodeName.toLowerCase();let b=null;if("h1"===c||"h2"===c||"h3"===c||"h4"===c||"h5"===c||"h6"===c)b=C(c);return{node:b}}function x(){return{node:y()}}function C(c){return new z(c)}
|
|
14
|
+
function D(c,b){c.preventDefault();b.update(()=>{let d=k.$getSelection(),e=c instanceof InputEvent||c instanceof KeyboardEvent?null:c.clipboardData;null!=e&&(k.$isRangeSelection(d)||k.DEPRECATED_$isGridSelection(d))&&a.$insertDataTransferForRichText(e,d,b)},{tag:"paste"})}
|
|
15
|
+
async function E(c,b){null!=b.getEditorState().read(()=>k.$getSelection())&&(await a.copyToClipboard__EXPERIMENTAL(b,c instanceof ClipboardEvent?c:null),b.update(()=>{let d=k.$getSelection();k.$isRangeSelection(d)?d.removeText():k.$isNodeSelection(d)&&d.getNodes().forEach(e=>e.remove())}))}function F(c){let b=null;c instanceof DragEvent?b=c.dataTransfer:c instanceof ClipboardEvent&&(b=c.clipboardData);return null===b?[!1,[]]:[b.types.includes("Files"),Array.from(b.files)]}
|
|
16
|
+
function G(c,b){var d=k.$getSelection();if(k.$isRangeSelection(d)){var e=new Set;d=d.getNodes();for(let m=0;m<d.length;m++){let n=d[m];var f=n.getKey();e.has(f)||(e.add(f),f=h.$getNearestBlockElementAncestorOrThrow(n),f.canInsertTab()?c(n):f.canIndent()&&b(f))}}}function H(c){c=k.$getNearestNodeFromDOMNode(c);return k.$isDecoratorNode(c)}exports.$createHeadingNode=C;exports.$createQuoteNode=y;exports.$isHeadingNode=function(c){return c instanceof z};
|
|
17
|
+
exports.$isQuoteNode=function(c){return c instanceof w};exports.DRAG_DROP_PASTE=v;exports.HeadingNode=z;exports.QuoteNode=w;exports.eventFiles=F;
|
|
18
|
+
exports.registerRichText=function(c){return h.mergeRegister(c.registerCommand(k.CLICK_COMMAND,()=>{const b=k.$getSelection();return k.$isNodeSelection(b)?(b.clear(),!0):!1},0),c.registerCommand(k.DELETE_CHARACTER_COMMAND,b=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.deleteCharacter(b);return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.DELETE_WORD_COMMAND,b=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.deleteWord(b);return!0},k.COMMAND_PRIORITY_EDITOR),
|
|
19
|
+
c.registerCommand(k.DELETE_LINE_COMMAND,b=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.deleteLine(b);return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.CONTROLLED_TEXT_INSERTION_COMMAND,b=>{const d=k.$getSelection();if("string"===typeof b)k.$isRangeSelection(d)?d.insertText(b):k.DEPRECATED_$isGridSelection(d);else{if(!k.$isRangeSelection(d)&&!k.DEPRECATED_$isGridSelection(d))return!1;const e=b.dataTransfer;null!=e?a.$insertDataTransferForRichText(e,d,c):k.$isRangeSelection(d)&&
|
|
20
|
+
(b=b.data)&&d.insertText(b)}return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.REMOVE_TEXT_COMMAND,()=>{const b=k.$getSelection();if(!k.$isRangeSelection(b))return!1;b.removeText();return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.FORMAT_TEXT_COMMAND,b=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.formatText(b);return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.FORMAT_ELEMENT_COMMAND,b=>{var d=k.$getSelection();if(!k.$isRangeSelection(d)&&!k.$isNodeSelection(d))return!1;
|
|
21
|
+
d=d.getNodes();for(const e of d)h.$getNearestBlockElementAncestorOrThrow(e).setFormat(b);return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.INSERT_LINE_BREAK_COMMAND,b=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;d.insertLineBreak(b);return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.INSERT_PARAGRAPH_COMMAND,()=>{const b=k.$getSelection();if(!k.$isRangeSelection(b))return!1;b.insertParagraph();return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.INDENT_CONTENT_COMMAND,
|
|
22
|
+
()=>{G(()=>{c.dispatchCommand(k.CONTROLLED_TEXT_INSERTION_COMMAND,"\t")},b=>{const d=b.getIndent();10!==d&&b.setIndent(d+1)});return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.OUTDENT_CONTENT_COMMAND,()=>{G(b=>{k.$isTextNode(b)&&(b=b.getTextContent(),"\t"===b[b.length-1]&&c.dispatchCommand(k.DELETE_CHARACTER_COMMAND,!0))},b=>{const d=b.getIndent();0!==d&&b.setIndent(d-1)});return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.KEY_ARROW_UP_COMMAND,b=>{const d=k.$getSelection();return k.$isNodeSelection(d)&&
|
|
23
|
+
!H(b.target)&&(b=d.getNodes(),0<b.length)?(b[0].selectPrevious(),!0):!1},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.KEY_ARROW_DOWN_COMMAND,()=>{var b=k.$getSelection();return k.$isNodeSelection(b)&&(b=b.getNodes(),0<b.length)?(b[0].selectNext(0,0),!0):!1},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.KEY_ARROW_LEFT_COMMAND,b=>{const d=k.$getSelection();if(k.$isNodeSelection(d)){var e=d.getNodes();if(0<e.length)return b.preventDefault(),e[0].selectPrevious(),!0}return k.$isRangeSelection(d)?g.$shouldOverrideDefaultCharacterSelection(d,
|
|
24
|
+
!0)?(e=b.shiftKey,b.preventDefault(),g.$moveCharacter(d,e,!0),!0):!1:!1},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.KEY_ARROW_RIGHT_COMMAND,b=>{const d=k.$getSelection();if(k.$isNodeSelection(d)&&!H(b.target)){var e=d.getNodes();if(0<e.length)return b.preventDefault(),e[0].selectNext(0,0),!0}if(!k.$isRangeSelection(d))return!1;e=b.shiftKey;return g.$shouldOverrideDefaultCharacterSelection(d,!1)?(b.preventDefault(),g.$moveCharacter(d,e,!1),!0):!1},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.KEY_BACKSPACE_COMMAND,
|
|
25
|
+
b=>{if(H(b.target))return!1;const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;b.preventDefault();({anchor:b}=d);const e=b.getNode();return d.isCollapsed()&&0===b.offset&&!k.$isRootNode(e)&&0<h.$getNearestBlockElementAncestorOrThrow(e).getIndent()?c.dispatchCommand(k.OUTDENT_CONTENT_COMMAND,void 0):c.dispatchCommand(k.DELETE_CHARACTER_COMMAND,!0)},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.KEY_DELETE_COMMAND,b=>{if(H(b.target))return!1;const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;
|
|
26
|
+
b.preventDefault();return c.dispatchCommand(k.DELETE_CHARACTER_COMMAND,!1)},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.KEY_ENTER_COMMAND,b=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;if(null!==b){if((u||t)&&r)return!1;b.preventDefault();if(b.shiftKey)return c.dispatchCommand(k.INSERT_LINE_BREAK_COMMAND,!1)}return c.dispatchCommand(k.INSERT_PARAGRAPH_COMMAND,void 0)},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.KEY_TAB_COMMAND,b=>{const d=k.$getSelection();if(!k.$isRangeSelection(d))return!1;
|
|
27
|
+
b.preventDefault();return c.dispatchCommand(b.shiftKey?k.OUTDENT_CONTENT_COMMAND:k.INDENT_CONTENT_COMMAND,void 0)},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.KEY_ESCAPE_COMMAND,()=>{const b=k.$getSelection();if(!k.$isRangeSelection(b))return!1;c.blur();return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.DROP_COMMAND,b=>{const [,d]=F(b);if(0<d.length){var e=b.clientX;var f=b.clientY;e="undefined"!==typeof document.caretRangeFromPoint?document.caretRangeFromPoint(e,f):"undefined"!==document.caretPositionFromPoint?
|
|
28
|
+
document.caretPositionFromPoint(e,f):null;if(null!==e){const {startOffset:m,endOffset:n,startContainer:I,endContainer:J}=e;e=k.$getNearestNodeFromDOMNode(I);f=k.$getNearestNodeFromDOMNode(J);if(null!==e&&null!==f){const p=k.$createRangeSelection();k.$isTextNode(e)?p.anchor.set(e.getKey(),m,"text"):p.anchor.set(e.getParentOrThrow().getKey(),e.getIndexWithinParent()+1,"element");k.$isTextNode(f)?p.focus.set(f.getKey(),n,"text"):p.focus.set(f.getParentOrThrow().getKey(),f.getIndexWithinParent()+1,"element");
|
|
29
|
+
e=k.$normalizeSelection__EXPERIMENTAL(p);k.$setSelection(e)}c.dispatchCommand(v,d)}b.preventDefault();return!0}b=k.$getSelection();return k.$isRangeSelection(b)?!0:!1},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.DRAGSTART_COMMAND,b=>{const [d]=F(b),e=k.$getSelection();if(d&&!k.$isRangeSelection(e))return!1;b.preventDefault();return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.DRAGOVER_COMMAND,b=>{const [d]=F(b),e=k.$getSelection();if(d&&!k.$isRangeSelection(e))return!1;b.preventDefault();
|
|
30
|
+
return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.COPY_COMMAND,b=>{a.copyToClipboard__EXPERIMENTAL(c,b instanceof ClipboardEvent?b:null);return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.CUT_COMMAND,b=>{E(b,c);return!0},k.COMMAND_PRIORITY_EDITOR),c.registerCommand(k.PASTE_COMMAND,b=>{var [,d]=F(b);if(null!==d&&0<d.length)return c.dispatchCommand(v,d),!0;d=k.$getSelection();return k.$isRangeSelection(d)||k.DEPRECATED_$isGridSelection(d)?(D(b,c),!0):!1},k.COMMAND_PRIORITY_EDITOR))}
|
package/index.d.ts
CHANGED
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
-
import type { DOMConversionMap, EditorConfig, LexicalEditor, LexicalNode, NodeKey, ParagraphNode, SerializedElementNode, Spread } from 'lexical';
|
|
9
|
+
import type { DOMConversionMap, EditorConfig, LexicalCommand, LexicalEditor, LexicalNode, NodeKey, ParagraphNode, PasteCommandType, SerializedElementNode, Spread } from 'lexical';
|
|
10
10
|
import { ElementNode } from 'lexical';
|
|
11
11
|
export declare type SerializedHeadingNode = Spread<{
|
|
12
12
|
tag: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
13
13
|
type: 'heading';
|
|
14
14
|
version: 1;
|
|
15
15
|
}, SerializedElementNode>;
|
|
16
|
+
export declare const DRAG_DROP_PASTE: LexicalCommand<Array<File>>;
|
|
16
17
|
export declare type SerializedQuoteNode = Spread<{
|
|
17
18
|
type: 'quote';
|
|
18
19
|
version: 1;
|
|
@@ -52,4 +53,5 @@ export declare class HeadingNode extends ElementNode {
|
|
|
52
53
|
}
|
|
53
54
|
export declare function $createHeadingNode(headingTag: HeadingTagType): HeadingNode;
|
|
54
55
|
export declare function $isHeadingNode(node: LexicalNode | null | undefined): node is HeadingNode;
|
|
56
|
+
export declare function eventFiles(event: DragEvent | PasteCommandType): [boolean, Array<File>];
|
|
55
57
|
export declare function registerRichText(editor: LexicalEditor): () => void;
|
package/package.json
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"rich-text"
|
|
8
8
|
],
|
|
9
9
|
"license": "MIT",
|
|
10
|
-
"version": "0.
|
|
10
|
+
"version": "0.6.0",
|
|
11
11
|
"main": "LexicalRichText.js",
|
|
12
12
|
"peerDependencies": {
|
|
13
|
-
"lexical": "0.
|
|
14
|
-
"@lexical/selection": "0.
|
|
15
|
-
"@lexical/clipboard": "0.
|
|
16
|
-
"@lexical/utils": "0.
|
|
13
|
+
"lexical": "0.6.0",
|
|
14
|
+
"@lexical/selection": "0.6.0",
|
|
15
|
+
"@lexical/clipboard": "0.6.0",
|
|
16
|
+
"@lexical/utils": "0.6.0"
|
|
17
17
|
},
|
|
18
18
|
"repository": {
|
|
19
19
|
"type": "git",
|