@lexical/rich-text 0.6.0 → 0.6.2
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 +9 -6
- package/LexicalRichText.js.flow +2 -0
- package/LexicalRichText.prod.js +5 -4
- package/index.d.ts +1 -1
- package/package.json +5 -5
package/LexicalRichText.dev.js
CHANGED
|
@@ -126,7 +126,7 @@ class QuoteNode extends lexical.ElementNode {
|
|
|
126
126
|
|
|
127
127
|
}
|
|
128
128
|
function $createQuoteNode() {
|
|
129
|
-
return new QuoteNode();
|
|
129
|
+
return lexical.$applyNodeReplacement(new QuoteNode());
|
|
130
130
|
}
|
|
131
131
|
function $isQuoteNode(node) {
|
|
132
132
|
return node instanceof QuoteNode;
|
|
@@ -298,7 +298,7 @@ function convertBlockquoteElement() {
|
|
|
298
298
|
}
|
|
299
299
|
|
|
300
300
|
function $createHeadingNode(headingTag) {
|
|
301
|
-
return new HeadingNode(headingTag);
|
|
301
|
+
return lexical.$applyNodeReplacement(new HeadingNode(headingTag));
|
|
302
302
|
}
|
|
303
303
|
function $isHeadingNode(node) {
|
|
304
304
|
return node instanceof HeadingNode;
|
|
@@ -348,10 +348,13 @@ function eventFiles(event) {
|
|
|
348
348
|
}
|
|
349
349
|
|
|
350
350
|
if (dataTransfer === null) {
|
|
351
|
-
return [false, []];
|
|
351
|
+
return [false, [], false];
|
|
352
352
|
}
|
|
353
353
|
|
|
354
|
-
|
|
354
|
+
const types = dataTransfer.types;
|
|
355
|
+
const hasFiles = types.includes('Files');
|
|
356
|
+
const hasContent = types.includes('text/html') || types.includes('text/plain');
|
|
357
|
+
return [hasFiles, Array.from(dataTransfer.files), hasContent];
|
|
355
358
|
}
|
|
356
359
|
|
|
357
360
|
function handleIndentAndOutdent(insertTab, indentOrOutdent) {
|
|
@@ -780,9 +783,9 @@ function registerRichText(editor) {
|
|
|
780
783
|
onCutForRichText(event, editor);
|
|
781
784
|
return true;
|
|
782
785
|
}, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.PASTE_COMMAND, event => {
|
|
783
|
-
const [, files] = eventFiles(event);
|
|
786
|
+
const [, files, hasTextContent] = eventFiles(event);
|
|
784
787
|
|
|
785
|
-
if (files
|
|
788
|
+
if (files.length > 0 && !hasTextContent) {
|
|
786
789
|
editor.dispatchCommand(DRAG_DROP_PASTE, files);
|
|
787
790
|
return true;
|
|
788
791
|
}
|
package/LexicalRichText.js.flow
CHANGED
|
@@ -14,9 +14,11 @@ import type {
|
|
|
14
14
|
NodeKey,
|
|
15
15
|
ParagraphNode,
|
|
16
16
|
LexicalEditor,
|
|
17
|
+
LexicalCommand,
|
|
17
18
|
} from 'lexical';
|
|
18
19
|
import {ElementNode} from 'lexical';
|
|
19
20
|
|
|
21
|
+
declare export var DRAG_DROP_PASTE: LexicalCommand<Array<File>>;
|
|
20
22
|
declare export class QuoteNode extends ElementNode {
|
|
21
23
|
static getType(): string;
|
|
22
24
|
static clone(node: QuoteNode): QuoteNode;
|
package/LexicalRichText.prod.js
CHANGED
|
@@ -7,12 +7,13 @@
|
|
|
7
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
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
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}
|
|
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 k.$applyNodeReplacement(new w)}
|
|
11
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
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)}
|
|
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 k.$applyNodeReplacement(new z(c))}
|
|
14
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())}))}
|
|
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())}))}
|
|
16
|
+
function F(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]}
|
|
16
17
|
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
18
|
exports.$isQuoteNode=function(c){return c instanceof w};exports.DRAG_DROP_PASTE=v;exports.HeadingNode=z;exports.QuoteNode=w;exports.eventFiles=F;
|
|
18
19
|
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),
|
|
@@ -27,4 +28,4 @@ b.preventDefault();return c.dispatchCommand(k.DELETE_CHARACTER_COMMAND,!1)},k.CO
|
|
|
27
28
|
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
29
|
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
30
|
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=>{
|
|
31
|
+
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=>{const [,d,e]=F(b);if(0<d.length&&!e)return c.dispatchCommand(v,d),!0;const f=k.$getSelection();return k.$isRangeSelection(f)||k.DEPRECATED_$isGridSelection(f)?(D(b,c),!0):!1},k.COMMAND_PRIORITY_EDITOR))}
|
package/index.d.ts
CHANGED
|
@@ -53,5 +53,5 @@ export declare class HeadingNode extends ElementNode {
|
|
|
53
53
|
}
|
|
54
54
|
export declare function $createHeadingNode(headingTag: HeadingTagType): HeadingNode;
|
|
55
55
|
export declare function $isHeadingNode(node: LexicalNode | null | undefined): node is HeadingNode;
|
|
56
|
-
export declare function eventFiles(event: DragEvent | PasteCommandType): [boolean, Array<File
|
|
56
|
+
export declare function eventFiles(event: DragEvent | PasteCommandType): [boolean, Array<File>, boolean];
|
|
57
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.6.
|
|
10
|
+
"version": "0.6.2",
|
|
11
11
|
"main": "LexicalRichText.js",
|
|
12
12
|
"peerDependencies": {
|
|
13
|
-
"lexical": "0.6.
|
|
14
|
-
"@lexical/selection": "0.6.
|
|
15
|
-
"@lexical/clipboard": "0.6.
|
|
16
|
-
"@lexical/utils": "0.6.
|
|
13
|
+
"lexical": "0.6.2",
|
|
14
|
+
"@lexical/selection": "0.6.2",
|
|
15
|
+
"@lexical/clipboard": "0.6.2",
|
|
16
|
+
"@lexical/utils": "0.6.2"
|
|
17
17
|
},
|
|
18
18
|
"repository": {
|
|
19
19
|
"type": "git",
|