@lexical/rich-text 0.35.1-nightly.20250924.0 → 0.36.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 +17 -2
- package/LexicalRichText.dev.mjs +19 -5
- package/LexicalRichText.js.flow +13 -0
- package/LexicalRichText.mjs +1 -0
- package/LexicalRichText.node.mjs +1 -0
- package/LexicalRichText.prod.js +1 -1
- package/LexicalRichText.prod.mjs +1 -1
- package/index.d.ts +5 -0
- package/package.json +6 -5
package/LexicalRichText.dev.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
11
11
|
var clipboard = require('@lexical/clipboard');
|
|
12
|
+
var dragon = require('@lexical/dragon');
|
|
12
13
|
var selection = require('@lexical/selection');
|
|
13
14
|
var utils = require('@lexical/utils');
|
|
14
15
|
var lexical = require('lexical');
|
|
@@ -67,6 +68,7 @@ const CAN_USE_DOM = typeof window !== 'undefined' && typeof window.document !==
|
|
|
67
68
|
*/
|
|
68
69
|
|
|
69
70
|
const documentMode = CAN_USE_DOM && 'documentMode' in document ? document.documentMode : null;
|
|
71
|
+
const IS_APPLE = CAN_USE_DOM && /Mac|iPod|iPhone|iPad/.test(navigator.platform);
|
|
70
72
|
const CAN_USE_BEFORE_INPUT = CAN_USE_DOM && 'InputEvent' in window && !documentMode ? 'getTargetRanges' in new window.InputEvent('input') : false;
|
|
71
73
|
const IS_SAFARI = CAN_USE_DOM && /Version\/[\d.]+.*Safari/.test(navigator.userAgent);
|
|
72
74
|
const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
@@ -74,7 +76,7 @@ const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !w
|
|
|
74
76
|
// Keep these in case we need to use them in the future.
|
|
75
77
|
// export const IS_WINDOWS: boolean = CAN_USE_DOM && /Win/.test(navigator.platform);
|
|
76
78
|
const IS_CHROME = CAN_USE_DOM && /^(?=.*Chrome).*/i.test(navigator.userAgent);
|
|
77
|
-
const IS_APPLE_WEBKIT = CAN_USE_DOM && /AppleWebKit\/[\d.]+/.test(navigator.userAgent) && !IS_CHROME;
|
|
79
|
+
const IS_APPLE_WEBKIT = CAN_USE_DOM && /AppleWebKit\/[\d.]+/.test(navigator.userAgent) && IS_APPLE && !IS_CHROME;
|
|
78
80
|
|
|
79
81
|
/**
|
|
80
82
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
@@ -166,7 +168,7 @@ function $isQuoteNode(node) {
|
|
|
166
168
|
/** @noInheritDoc */
|
|
167
169
|
class HeadingNode extends lexical.ElementNode {
|
|
168
170
|
/** @internal */
|
|
169
|
-
|
|
171
|
+
__tag;
|
|
170
172
|
static getType() {
|
|
171
173
|
return 'heading';
|
|
172
174
|
}
|
|
@@ -826,6 +828,18 @@ function registerRichText(editor) {
|
|
|
826
828
|
return removeListener;
|
|
827
829
|
}
|
|
828
830
|
|
|
831
|
+
/**
|
|
832
|
+
* An extension to register \@lexical/rich-text behavior and nodes
|
|
833
|
+
* ({@link HeadingNode}, {@link QuoteNode})
|
|
834
|
+
*/
|
|
835
|
+
const RichTextExtension = lexical.defineExtension({
|
|
836
|
+
conflictsWith: ['@lexical/plain-text'],
|
|
837
|
+
dependencies: [dragon.DragonExtension],
|
|
838
|
+
name: '@lexical/rich-text',
|
|
839
|
+
nodes: [HeadingNode, QuoteNode],
|
|
840
|
+
register: registerRichText
|
|
841
|
+
});
|
|
842
|
+
|
|
829
843
|
exports.$createHeadingNode = $createHeadingNode;
|
|
830
844
|
exports.$createQuoteNode = $createQuoteNode;
|
|
831
845
|
exports.$isHeadingNode = $isHeadingNode;
|
|
@@ -833,5 +847,6 @@ exports.$isQuoteNode = $isQuoteNode;
|
|
|
833
847
|
exports.DRAG_DROP_PASTE = DRAG_DROP_PASTE;
|
|
834
848
|
exports.HeadingNode = HeadingNode;
|
|
835
849
|
exports.QuoteNode = QuoteNode;
|
|
850
|
+
exports.RichTextExtension = RichTextExtension;
|
|
836
851
|
exports.eventFiles = eventFiles;
|
|
837
852
|
exports.registerRichText = registerRichText;
|
package/LexicalRichText.dev.mjs
CHANGED
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { $insertDataTransferForRichText, copyToClipboard } from '@lexical/clipboard';
|
|
10
|
+
import { DragonExtension } from '@lexical/dragon';
|
|
10
11
|
import { $isParentRTL, $shouldOverrideDefaultCharacterSelection, $moveCharacter } from '@lexical/selection';
|
|
11
|
-
import {
|
|
12
|
-
import { createCommand,
|
|
12
|
+
import { mergeRegister, $findMatchingParent, objectKlassEquals, addClassNamesToElement, isHTMLElement, $getNearestBlockElementAncestorOrThrow } from '@lexical/utils';
|
|
13
|
+
import { createCommand, defineExtension, CLICK_COMMAND, $getSelection, $isNodeSelection, COMMAND_PRIORITY_EDITOR, DELETE_CHARACTER_COMMAND, $isRangeSelection, DELETE_WORD_COMMAND, DELETE_LINE_COMMAND, CONTROLLED_TEXT_INSERTION_COMMAND, REMOVE_TEXT_COMMAND, FORMAT_TEXT_COMMAND, FORMAT_ELEMENT_COMMAND, $isElementNode, INSERT_LINE_BREAK_COMMAND, INSERT_PARAGRAPH_COMMAND, INSERT_TAB_COMMAND, $insertNodes, $createTabNode, INDENT_CONTENT_COMMAND, OUTDENT_CONTENT_COMMAND, KEY_ARROW_UP_COMMAND, $getAdjacentNode, $isDecoratorNode, KEY_ARROW_DOWN_COMMAND, KEY_ARROW_LEFT_COMMAND, KEY_ARROW_RIGHT_COMMAND, KEY_BACKSPACE_COMMAND, KEY_DELETE_COMMAND, KEY_ENTER_COMMAND, KEY_ESCAPE_COMMAND, DROP_COMMAND, $getNearestNodeFromDOMNode, $createRangeSelection, $isTextNode, $normalizeSelection__EXPERIMENTAL, $setSelection, DRAGSTART_COMMAND, DRAGOVER_COMMAND, SELECT_ALL_COMMAND, $selectAll, COPY_COMMAND, CUT_COMMAND, PASTE_COMMAND, isDOMNode, isSelectionCapturedInDecoratorInput, KEY_SPACE_COMMAND, KEY_TAB_COMMAND, ElementNode, $createParagraphNode, $getRoot, $isRootNode, PASTE_TAG, setNodeIndentFromDOM, $applyNodeReplacement } from 'lexical';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
@@ -65,6 +66,7 @@ const CAN_USE_DOM = typeof window !== 'undefined' && typeof window.document !==
|
|
|
65
66
|
*/
|
|
66
67
|
|
|
67
68
|
const documentMode = CAN_USE_DOM && 'documentMode' in document ? document.documentMode : null;
|
|
69
|
+
const IS_APPLE = CAN_USE_DOM && /Mac|iPod|iPhone|iPad/.test(navigator.platform);
|
|
68
70
|
const CAN_USE_BEFORE_INPUT = CAN_USE_DOM && 'InputEvent' in window && !documentMode ? 'getTargetRanges' in new window.InputEvent('input') : false;
|
|
69
71
|
const IS_SAFARI = CAN_USE_DOM && /Version\/[\d.]+.*Safari/.test(navigator.userAgent);
|
|
70
72
|
const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
@@ -72,7 +74,7 @@ const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !w
|
|
|
72
74
|
// Keep these in case we need to use them in the future.
|
|
73
75
|
// export const IS_WINDOWS: boolean = CAN_USE_DOM && /Win/.test(navigator.platform);
|
|
74
76
|
const IS_CHROME = CAN_USE_DOM && /^(?=.*Chrome).*/i.test(navigator.userAgent);
|
|
75
|
-
const IS_APPLE_WEBKIT = CAN_USE_DOM && /AppleWebKit\/[\d.]+/.test(navigator.userAgent) && !IS_CHROME;
|
|
77
|
+
const IS_APPLE_WEBKIT = CAN_USE_DOM && /AppleWebKit\/[\d.]+/.test(navigator.userAgent) && IS_APPLE && !IS_CHROME;
|
|
76
78
|
|
|
77
79
|
/**
|
|
78
80
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
@@ -164,7 +166,7 @@ function $isQuoteNode(node) {
|
|
|
164
166
|
/** @noInheritDoc */
|
|
165
167
|
class HeadingNode extends ElementNode {
|
|
166
168
|
/** @internal */
|
|
167
|
-
|
|
169
|
+
__tag;
|
|
168
170
|
static getType() {
|
|
169
171
|
return 'heading';
|
|
170
172
|
}
|
|
@@ -824,4 +826,16 @@ function registerRichText(editor) {
|
|
|
824
826
|
return removeListener;
|
|
825
827
|
}
|
|
826
828
|
|
|
827
|
-
|
|
829
|
+
/**
|
|
830
|
+
* An extension to register \@lexical/rich-text behavior and nodes
|
|
831
|
+
* ({@link HeadingNode}, {@link QuoteNode})
|
|
832
|
+
*/
|
|
833
|
+
const RichTextExtension = defineExtension({
|
|
834
|
+
conflictsWith: ['@lexical/plain-text'],
|
|
835
|
+
dependencies: [DragonExtension],
|
|
836
|
+
name: '@lexical/rich-text',
|
|
837
|
+
nodes: [HeadingNode, QuoteNode],
|
|
838
|
+
register: registerRichText
|
|
839
|
+
});
|
|
840
|
+
|
|
841
|
+
export { $createHeadingNode, $createQuoteNode, $isHeadingNode, $isQuoteNode, DRAG_DROP_PASTE, HeadingNode, QuoteNode, RichTextExtension, eventFiles, registerRichText };
|
package/LexicalRichText.js.flow
CHANGED
|
@@ -16,6 +16,9 @@ import type {
|
|
|
16
16
|
LexicalEditor,
|
|
17
17
|
LexicalCommand,
|
|
18
18
|
RangeSelection,
|
|
19
|
+
LexicalExtension,
|
|
20
|
+
ExtensionConfigBase,
|
|
21
|
+
SerializedElementNode,
|
|
19
22
|
} from 'lexical';
|
|
20
23
|
import {ElementNode} from 'lexical';
|
|
21
24
|
|
|
@@ -57,3 +60,13 @@ declare export function $isHeadingNode(
|
|
|
57
60
|
node: ?LexicalNode,
|
|
58
61
|
): node is HeadingNode;
|
|
59
62
|
declare export function registerRichText(editor: LexicalEditor): () => void;
|
|
63
|
+
|
|
64
|
+
export type SerializedQuoteNode = SerializedElementNode;
|
|
65
|
+
export type SerializedHeadingNode = {
|
|
66
|
+
...SerializedElementNode,
|
|
67
|
+
tag: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6',
|
|
68
|
+
...
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
declare export var RichTextExtension: LexicalExtension<ExtensionConfigBase, "@lexical/rich-text", void, void>;
|
package/LexicalRichText.mjs
CHANGED
|
@@ -16,5 +16,6 @@ export const $isQuoteNode = mod.$isQuoteNode;
|
|
|
16
16
|
export const DRAG_DROP_PASTE = mod.DRAG_DROP_PASTE;
|
|
17
17
|
export const HeadingNode = mod.HeadingNode;
|
|
18
18
|
export const QuoteNode = mod.QuoteNode;
|
|
19
|
+
export const RichTextExtension = mod.RichTextExtension;
|
|
19
20
|
export const eventFiles = mod.eventFiles;
|
|
20
21
|
export const registerRichText = mod.registerRichText;
|
package/LexicalRichText.node.mjs
CHANGED
|
@@ -14,5 +14,6 @@ export const $isQuoteNode = mod.$isQuoteNode;
|
|
|
14
14
|
export const DRAG_DROP_PASTE = mod.DRAG_DROP_PASTE;
|
|
15
15
|
export const HeadingNode = mod.HeadingNode;
|
|
16
16
|
export const QuoteNode = mod.QuoteNode;
|
|
17
|
+
export const RichTextExtension = mod.RichTextExtension;
|
|
17
18
|
export const eventFiles = mod.eventFiles;
|
|
18
19
|
export const registerRichText = mod.registerRichText;
|
package/LexicalRichText.prod.js
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
"use strict";var e=require("@lexical/clipboard"),t=require("@lexical/selection"),n=require("@lexical/utils"),r=require("lexical");function o(e,t){if(void 0!==document.caretRangeFromPoint){const n=document.caretRangeFromPoint(e,t);return null===n?null:{node:n.startContainer,offset:n.startOffset}}if("undefined"!==document.caretPositionFromPoint){const n=document.caretPositionFromPoint(e,t);return null===n?null:{node:n.offsetNode,offset:n.offset}}return null}const i="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,s=i&&"documentMode"in document?document.documentMode:null,a=!(!i||!("InputEvent"in window)||s)&&"getTargetRanges"in new window.InputEvent("input"),c=i&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),l=i&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,u=i&&/^(?=.*Chrome).*/i.test(navigator.userAgent),d=i&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!u,g=r.createCommand("DRAG_DROP_PASTE_FILE");class O extends r.ElementNode{static getType(){return"quote"}static clone(e){return new O(e.__key)}createDOM(e){const t=document.createElement("blockquote");return n.addClassNamesToElement(t,e.theme.quote),t}updateDOM(e,t){return!1}static importDOM(){return{blockquote:e=>({conversion:M,priority:0})}}exportDOM(e){const{element:t}=super.exportDOM(e);if(n.isHTMLElement(t)){this.isEmpty()&&t.append(document.createElement("br"));const e=this.getFormatType();e&&(t.style.textAlign=e);const n=this.getDirection();n&&(t.dir=n)}return{element:t}}static importJSON(e){return R().updateFromJSON(e)}insertNewAfter(e,t){const n=r.$createParagraphNode(),o=this.getDirection();return n.setDirection(o),this.insertAfter(n,t),n}collapseAtStart(){const e=r.$createParagraphNode();return this.getChildren().forEach((t=>e.append(t))),this.replace(e),!0}canMergeWhenEmpty(){return!0}}function R(){return r.$applyNodeReplacement(new O)}class N extends r.ElementNode{static getType(){return"heading"}static clone(e){return new N(e.__tag,e.__key)}constructor(e,t){super(t),this.__tag=e}getTag(){return this.__tag}setTag(e){const t=this.getWritable();return this.__tag=e,t}createDOM(e){const t=this.__tag,r=document.createElement(t),o=e.theme.heading;if(void 0!==o){const e=o[t];n.addClassNamesToElement(r,e)}return r}updateDOM(e,t,n){return e.__tag!==this.__tag}static importDOM(){return{h1:e=>({conversion:m,priority:0}),h2:e=>({conversion:m,priority:0}),h3:e=>({conversion:m,priority:0}),h4:e=>({conversion:m,priority:0}),h5:e=>({conversion:m,priority:0}),h6:e=>({conversion:m,priority:0}),p:e=>{const t=e.firstChild;return null!==t&&D(t)?{conversion:()=>({node:null}),priority:3}:null},span:e=>D(e)?{conversion:e=>({node:_("h1")}),priority:3}:null}}exportDOM(e){const{element:t}=super.exportDOM(e);if(n.isHTMLElement(t)){this.isEmpty()&&t.append(document.createElement("br"));const e=this.getFormatType();e&&(t.style.textAlign=e);const n=this.getDirection();n&&(t.dir=n)}return{element:t}}static importJSON(e){return _(e.tag).updateFromJSON(e)}updateFromJSON(e){return super.updateFromJSON(e).setTag(e.tag)}exportJSON(){return{...super.exportJSON(),tag:this.getTag()}}insertNewAfter(e,t=!0){const n=e?e.anchor.offset:0,o=this.getLastDescendant(),i=!o||e&&e.anchor.key===o.getKey()&&n===o.getTextContentSize()||!e?r.$createParagraphNode():_(this.getTag()),s=this.getDirection();if(i.setDirection(s),this.insertAfter(i,t),0===n&&!this.isEmpty()&&e){const e=r.$createParagraphNode();e.select(),this.replace(e,!0)}return i}collapseAtStart(){const e=this.isEmpty()?r.$createParagraphNode():_(this.getTag());return this.getChildren().forEach((t=>e.append(t))),this.replace(e),!0}extractWithChild(){return!0}}function D(e){return"span"===e.nodeName.toLowerCase()&&"26pt"===e.style.fontSize}function m(e){const t=e.nodeName.toLowerCase();let n=null;return"h1"!==t&&"h2"!==t&&"h3"!==t&&"h4"!==t&&"h5"!==t&&"h6"!==t||(n=_(t),null!==e.style&&(r.setNodeIndentFromDOM(e,n),n.setFormat(e.style.textAlign))),{node:n}}function M(e){const t=R();return null!==e.style&&(t.setFormat(e.style.textAlign),r.setNodeIndentFromDOM(e,t)),{node:t}}function _(e="h1"){return r.$applyNodeReplacement(new N(e))}function T(e){let t=null;if(n.objectKlassEquals(e,DragEvent)?t=e.dataTransfer:n.objectKlassEquals(e,ClipboardEvent)&&(t=e.clipboardData),null===t)return[!1,[],!1];const r=t.types,o=r.includes("Files"),i=r.includes("text/html")||r.includes("text/plain");return[o,Array.from(t.files),i]}function C(e){const t=r.$getSelection();if(!r.$isRangeSelection(t))return!1;const o=new Set,i=t.getNodes();for(let t=0;t<i.length;t++){const s=i[t],a=s.getKey();if(o.has(a))continue;const c=n.$findMatchingParent(s,(e=>r.$isElementNode(e)&&!e.isInline()));if(null===c)continue;const l=c.getKey();c.canIndent()&&!o.has(l)&&(o.add(l),e(c))}return o.size>0}function f(e){const t=r.$getNearestNodeFromDOMNode(e);return r.$isDecoratorNode(t)}function E(e){for(const t of["lowercase","uppercase","capitalize"])e.hasFormat(t)&&e.toggleFormat(t)}exports.$createHeadingNode=_,exports.$createQuoteNode=R,exports.$isHeadingNode=function(e){return e instanceof N},exports.$isQuoteNode=function(e){return e instanceof O},exports.DRAG_DROP_PASTE=g,exports.HeadingNode=N,exports.QuoteNode=O,exports.eventFiles=T,exports.registerRichText=function(i){const s=n.mergeRegister(i.registerCommand(r.CLICK_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isNodeSelection(t)&&(t.clear(),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DELETE_CHARACTER_COMMAND,(e=>{const t=r.$getSelection();return r.$isRangeSelection(t)?(t.deleteCharacter(e),!0):!!r.$isNodeSelection(t)&&(t.deleteNodes(),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DELETE_WORD_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.deleteWord(e),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DELETE_LINE_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.deleteLine(e),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.CONTROLLED_TEXT_INSERTION_COMMAND,(t=>{const n=r.$getSelection();if("string"==typeof t)null!==n&&n.insertText(t);else{if(null===n)return!1;const o=t.dataTransfer;if(null!=o)e.$insertDataTransferForRichText(o,n,i);else if(r.$isRangeSelection(n)){const e=t.data;return e&&n.insertText(e),!0}}return!0}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.REMOVE_TEXT_COMMAND,(()=>{const e=r.$getSelection();return!!r.$isRangeSelection(e)&&(e.removeText(),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.FORMAT_TEXT_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.formatText(e),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.FORMAT_ELEMENT_COMMAND,(e=>{const t=r.$getSelection();if(!r.$isRangeSelection(t)&&!r.$isNodeSelection(t))return!1;const o=t.getNodes();for(const t of o){const o=n.$findMatchingParent(t,(e=>r.$isElementNode(e)&&!e.isInline()));null!==o&&o.setFormat(e)}return!0}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.INSERT_LINE_BREAK_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.insertLineBreak(e),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.INSERT_PARAGRAPH_COMMAND,(()=>{const e=r.$getSelection();return!!r.$isRangeSelection(e)&&(e.insertParagraph(),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.INSERT_TAB_COMMAND,(()=>(r.$insertNodes([r.$createTabNode()]),!0)),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.INDENT_CONTENT_COMMAND,(()=>C((e=>{const t=e.getIndent();e.setIndent(t+1)}))),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.OUTDENT_CONTENT_COMMAND,(()=>C((e=>{const t=e.getIndent();t>0&&e.setIndent(Math.max(0,t-1))}))),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_ARROW_UP_COMMAND,(e=>{const t=r.$getSelection();if(r.$isNodeSelection(t)){const e=t.getNodes();if(e.length>0)return e[0].selectPrevious(),!0}else if(r.$isRangeSelection(t)){const n=r.$getAdjacentNode(t.focus,!0);if(!e.shiftKey&&r.$isDecoratorNode(n)&&!n.isIsolated()&&!n.isInline())return n.selectPrevious(),e.preventDefault(),!0}return!1}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_ARROW_DOWN_COMMAND,(e=>{const t=r.$getSelection();if(r.$isNodeSelection(t)){const e=t.getNodes();if(e.length>0)return e[0].selectNext(0,0),!0}else if(r.$isRangeSelection(t)){if(function(e){const t=e.focus;return"root"===t.key&&t.offset===r.$getRoot().getChildrenSize()}(t))return e.preventDefault(),!0;const n=r.$getAdjacentNode(t.focus,!1);if(!e.shiftKey&&r.$isDecoratorNode(n)&&!n.isIsolated()&&!n.isInline())return n.selectNext(),e.preventDefault(),!0}return!1}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_ARROW_LEFT_COMMAND,(e=>{const n=r.$getSelection();if(r.$isNodeSelection(n)){const r=n.getNodes();if(r.length>0)return e.preventDefault(),t.$isParentRTL(r[0])?r[0].selectNext(0,0):r[0].selectPrevious(),!0}if(!r.$isRangeSelection(n))return!1;if(t.$shouldOverrideDefaultCharacterSelection(n,!0)){const r=e.shiftKey;return e.preventDefault(),t.$moveCharacter(n,r,!0),!0}return!1}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_ARROW_RIGHT_COMMAND,(e=>{const n=r.$getSelection();if(r.$isNodeSelection(n)){const r=n.getNodes();if(r.length>0)return e.preventDefault(),t.$isParentRTL(r[0])?r[0].selectPrevious():r[0].selectNext(0,0),!0}if(!r.$isRangeSelection(n))return!1;const o=e.shiftKey;return!!t.$shouldOverrideDefaultCharacterSelection(n,!1)&&(e.preventDefault(),t.$moveCharacter(n,o,!1),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_BACKSPACE_COMMAND,(e=>{if(f(e.target))return!1;const t=r.$getSelection();if(r.$isRangeSelection(t)){if(function(e){if(!e.isCollapsed())return!1;const{anchor:t}=e;if(0!==t.offset)return!1;const o=t.getNode();if(r.$isRootNode(o))return!1;const i=n.$getNearestBlockElementAncestorOrThrow(o);return i.getIndent()>0&&(i.is(o)||o.is(i.getFirstDescendant()))}(t))return e.preventDefault(),i.dispatchCommand(r.OUTDENT_CONTENT_COMMAND,void 0);if(l&&"ko-KR"===navigator.language)return!1}else if(!r.$isNodeSelection(t))return!1;return e.preventDefault(),i.dispatchCommand(r.DELETE_CHARACTER_COMMAND,!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_DELETE_COMMAND,(e=>{if(f(e.target))return!1;const t=r.$getSelection();return!(!r.$isRangeSelection(t)&&!r.$isNodeSelection(t))&&(e.preventDefault(),i.dispatchCommand(r.DELETE_CHARACTER_COMMAND,!1))}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_ENTER_COMMAND,(e=>{const t=r.$getSelection();if(!r.$isRangeSelection(t))return!1;if(E(t),null!==e){if((l||c||d)&&a)return!1;if(e.preventDefault(),e.shiftKey)return i.dispatchCommand(r.INSERT_LINE_BREAK_COMMAND,!1)}return i.dispatchCommand(r.INSERT_PARAGRAPH_COMMAND,void 0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_ESCAPE_COMMAND,(()=>{const e=r.$getSelection();return!!r.$isRangeSelection(e)&&(i.blur(),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DROP_COMMAND,(e=>{const[,t]=T(e);if(t.length>0){const n=o(e.clientX,e.clientY);if(null!==n){const{offset:e,node:o}=n,s=r.$getNearestNodeFromDOMNode(o);if(null!==s){const t=r.$createRangeSelection();if(r.$isTextNode(s))t.anchor.set(s.getKey(),e,"text"),t.focus.set(s.getKey(),e,"text");else{const e=s.getParentOrThrow().getKey(),n=s.getIndexWithinParent()+1;t.anchor.set(e,n,"element"),t.focus.set(e,n,"element")}const n=r.$normalizeSelection__EXPERIMENTAL(t);r.$setSelection(n)}i.dispatchCommand(g,t)}return e.preventDefault(),!0}const n=r.$getSelection();return!!r.$isRangeSelection(n)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DRAGSTART_COMMAND,(e=>{const[t]=T(e),n=r.$getSelection();return!(t&&!r.$isRangeSelection(n))}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DRAGOVER_COMMAND,(e=>{const[t]=T(e),n=r.$getSelection();if(t&&!r.$isRangeSelection(n))return!1;const i=o(e.clientX,e.clientY);if(null!==i){const t=r.$getNearestNodeFromDOMNode(i.node);r.$isDecoratorNode(t)&&e.preventDefault()}return!0}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.SELECT_ALL_COMMAND,(()=>(r.$selectAll(),!0)),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.COPY_COMMAND,(t=>(e.copyToClipboard(i,n.objectKlassEquals(t,ClipboardEvent)?t:null),!0)),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.CUT_COMMAND,(t=>(async function(t,o){await e.copyToClipboard(o,n.objectKlassEquals(t,ClipboardEvent)?t:null),o.update((()=>{const e=r.$getSelection();r.$isRangeSelection(e)?e.removeText():r.$isNodeSelection(e)&&e.getNodes().forEach((e=>e.remove()))}))}(t,i),!0)),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.PASTE_COMMAND,(t=>{const[,o,s]=T(t);if(o.length>0&&!s)return i.dispatchCommand(g,o),!0;if(r.isDOMNode(t.target)&&r.isSelectionCapturedInDecoratorInput(t.target))return!1;return null!==r.$getSelection()&&(function(t,o){t.preventDefault(),o.update((()=>{const i=r.$getSelection(),s=n.objectKlassEquals(t,InputEvent)||n.objectKlassEquals(t,KeyboardEvent)?null:t.clipboardData;null!=s&&null!==i&&e.$insertDataTransferForRichText(s,i,o)}),{tag:r.PASTE_TAG})}(t,i),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_SPACE_COMMAND,(e=>{const t=r.$getSelection();return r.$isRangeSelection(t)&&E(t),!1}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_TAB_COMMAND,(e=>{const t=r.$getSelection();return r.$isRangeSelection(t)&&E(t),!1}),r.COMMAND_PRIORITY_EDITOR));return s};
|
|
9
|
+
"use strict";var e=require("@lexical/clipboard"),t=require("@lexical/dragon"),n=require("@lexical/selection"),r=require("@lexical/utils"),o=require("lexical");function i(e,t){if(void 0!==document.caretRangeFromPoint){const n=document.caretRangeFromPoint(e,t);return null===n?null:{node:n.startContainer,offset:n.startOffset}}if("undefined"!==document.caretPositionFromPoint){const n=document.caretPositionFromPoint(e,t);return null===n?null:{node:n.offsetNode,offset:n.offset}}return null}const s="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,a=s&&"documentMode"in document?document.documentMode:null,c=s&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),l=!(!s||!("InputEvent"in window)||a)&&"getTargetRanges"in new window.InputEvent("input"),u=s&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),d=s&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,g=s&&/^(?=.*Chrome).*/i.test(navigator.userAgent),O=s&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&c&&!g,R=o.createCommand("DRAG_DROP_PASTE_FILE");class N extends o.ElementNode{static getType(){return"quote"}static clone(e){return new N(e.__key)}createDOM(e){const t=document.createElement("blockquote");return r.addClassNamesToElement(t,e.theme.quote),t}updateDOM(e,t){return!1}static importDOM(){return{blockquote:e=>({conversion:T,priority:0})}}exportDOM(e){const{element:t}=super.exportDOM(e);if(r.isHTMLElement(t)){this.isEmpty()&&t.append(document.createElement("br"));const e=this.getFormatType();e&&(t.style.textAlign=e);const n=this.getDirection();n&&(t.dir=n)}return{element:t}}static importJSON(e){return D().updateFromJSON(e)}insertNewAfter(e,t){const n=o.$createParagraphNode(),r=this.getDirection();return n.setDirection(r),this.insertAfter(n,t),n}collapseAtStart(){const e=o.$createParagraphNode();return this.getChildren().forEach((t=>e.append(t))),this.replace(e),!0}canMergeWhenEmpty(){return!0}}function D(){return o.$applyNodeReplacement(new N)}class m extends o.ElementNode{__tag;static getType(){return"heading"}static clone(e){return new m(e.__tag,e.__key)}constructor(e,t){super(t),this.__tag=e}getTag(){return this.__tag}setTag(e){const t=this.getWritable();return this.__tag=e,t}createDOM(e){const t=this.__tag,n=document.createElement(t),o=e.theme.heading;if(void 0!==o){const e=o[t];r.addClassNamesToElement(n,e)}return n}updateDOM(e,t,n){return e.__tag!==this.__tag}static importDOM(){return{h1:e=>({conversion:_,priority:0}),h2:e=>({conversion:_,priority:0}),h3:e=>({conversion:_,priority:0}),h4:e=>({conversion:_,priority:0}),h5:e=>({conversion:_,priority:0}),h6:e=>({conversion:_,priority:0}),p:e=>{const t=e.firstChild;return null!==t&&M(t)?{conversion:()=>({node:null}),priority:3}:null},span:e=>M(e)?{conversion:e=>({node:f("h1")}),priority:3}:null}}exportDOM(e){const{element:t}=super.exportDOM(e);if(r.isHTMLElement(t)){this.isEmpty()&&t.append(document.createElement("br"));const e=this.getFormatType();e&&(t.style.textAlign=e);const n=this.getDirection();n&&(t.dir=n)}return{element:t}}static importJSON(e){return f(e.tag).updateFromJSON(e)}updateFromJSON(e){return super.updateFromJSON(e).setTag(e.tag)}exportJSON(){return{...super.exportJSON(),tag:this.getTag()}}insertNewAfter(e,t=!0){const n=e?e.anchor.offset:0,r=this.getLastDescendant(),i=!r||e&&e.anchor.key===r.getKey()&&n===r.getTextContentSize()||!e?o.$createParagraphNode():f(this.getTag()),s=this.getDirection();if(i.setDirection(s),this.insertAfter(i,t),0===n&&!this.isEmpty()&&e){const e=o.$createParagraphNode();e.select(),this.replace(e,!0)}return i}collapseAtStart(){const e=this.isEmpty()?o.$createParagraphNode():f(this.getTag());return this.getChildren().forEach((t=>e.append(t))),this.replace(e),!0}extractWithChild(){return!0}}function M(e){return"span"===e.nodeName.toLowerCase()&&"26pt"===e.style.fontSize}function _(e){const t=e.nodeName.toLowerCase();let n=null;return"h1"!==t&&"h2"!==t&&"h3"!==t&&"h4"!==t&&"h5"!==t&&"h6"!==t||(n=f(t),null!==e.style&&(o.setNodeIndentFromDOM(e,n),n.setFormat(e.style.textAlign))),{node:n}}function T(e){const t=D();return null!==e.style&&(t.setFormat(e.style.textAlign),o.setNodeIndentFromDOM(e,t)),{node:t}}function f(e="h1"){return o.$applyNodeReplacement(new m(e))}function C(e){let t=null;if(r.objectKlassEquals(e,DragEvent)?t=e.dataTransfer:r.objectKlassEquals(e,ClipboardEvent)&&(t=e.clipboardData),null===t)return[!1,[],!1];const n=t.types,o=n.includes("Files"),i=n.includes("text/html")||n.includes("text/plain");return[o,Array.from(t.files),i]}function E(e){const t=o.$getSelection();if(!o.$isRangeSelection(t))return!1;const n=new Set,i=t.getNodes();for(let t=0;t<i.length;t++){const s=i[t],a=s.getKey();if(n.has(a))continue;const c=r.$findMatchingParent(s,(e=>o.$isElementNode(e)&&!e.isInline()));if(null===c)continue;const l=c.getKey();c.canIndent()&&!n.has(l)&&(n.add(l),e(c))}return n.size>0}function p(e){const t=o.$getNearestNodeFromDOMNode(e);return o.$isDecoratorNode(t)}function I(e){for(const t of["lowercase","uppercase","capitalize"])e.hasFormat(t)&&e.toggleFormat(t)}function A(t){const s=r.mergeRegister(t.registerCommand(o.CLICK_COMMAND,(e=>{const t=o.$getSelection();return!!o.$isNodeSelection(t)&&(t.clear(),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.DELETE_CHARACTER_COMMAND,(e=>{const t=o.$getSelection();return o.$isRangeSelection(t)?(t.deleteCharacter(e),!0):!!o.$isNodeSelection(t)&&(t.deleteNodes(),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.DELETE_WORD_COMMAND,(e=>{const t=o.$getSelection();return!!o.$isRangeSelection(t)&&(t.deleteWord(e),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.DELETE_LINE_COMMAND,(e=>{const t=o.$getSelection();return!!o.$isRangeSelection(t)&&(t.deleteLine(e),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.CONTROLLED_TEXT_INSERTION_COMMAND,(n=>{const r=o.$getSelection();if("string"==typeof n)null!==r&&r.insertText(n);else{if(null===r)return!1;const i=n.dataTransfer;if(null!=i)e.$insertDataTransferForRichText(i,r,t);else if(o.$isRangeSelection(r)){const e=n.data;return e&&r.insertText(e),!0}}return!0}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.REMOVE_TEXT_COMMAND,(()=>{const e=o.$getSelection();return!!o.$isRangeSelection(e)&&(e.removeText(),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.FORMAT_TEXT_COMMAND,(e=>{const t=o.$getSelection();return!!o.$isRangeSelection(t)&&(t.formatText(e),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.FORMAT_ELEMENT_COMMAND,(e=>{const t=o.$getSelection();if(!o.$isRangeSelection(t)&&!o.$isNodeSelection(t))return!1;const n=t.getNodes();for(const t of n){const n=r.$findMatchingParent(t,(e=>o.$isElementNode(e)&&!e.isInline()));null!==n&&n.setFormat(e)}return!0}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.INSERT_LINE_BREAK_COMMAND,(e=>{const t=o.$getSelection();return!!o.$isRangeSelection(t)&&(t.insertLineBreak(e),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.INSERT_PARAGRAPH_COMMAND,(()=>{const e=o.$getSelection();return!!o.$isRangeSelection(e)&&(e.insertParagraph(),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.INSERT_TAB_COMMAND,(()=>(o.$insertNodes([o.$createTabNode()]),!0)),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.INDENT_CONTENT_COMMAND,(()=>E((e=>{const t=e.getIndent();e.setIndent(t+1)}))),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.OUTDENT_CONTENT_COMMAND,(()=>E((e=>{const t=e.getIndent();t>0&&e.setIndent(Math.max(0,t-1))}))),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_ARROW_UP_COMMAND,(e=>{const t=o.$getSelection();if(o.$isNodeSelection(t)){const e=t.getNodes();if(e.length>0)return e[0].selectPrevious(),!0}else if(o.$isRangeSelection(t)){const n=o.$getAdjacentNode(t.focus,!0);if(!e.shiftKey&&o.$isDecoratorNode(n)&&!n.isIsolated()&&!n.isInline())return n.selectPrevious(),e.preventDefault(),!0}return!1}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_ARROW_DOWN_COMMAND,(e=>{const t=o.$getSelection();if(o.$isNodeSelection(t)){const e=t.getNodes();if(e.length>0)return e[0].selectNext(0,0),!0}else if(o.$isRangeSelection(t)){if(function(e){const t=e.focus;return"root"===t.key&&t.offset===o.$getRoot().getChildrenSize()}(t))return e.preventDefault(),!0;const n=o.$getAdjacentNode(t.focus,!1);if(!e.shiftKey&&o.$isDecoratorNode(n)&&!n.isIsolated()&&!n.isInline())return n.selectNext(),e.preventDefault(),!0}return!1}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_ARROW_LEFT_COMMAND,(e=>{const t=o.$getSelection();if(o.$isNodeSelection(t)){const r=t.getNodes();if(r.length>0)return e.preventDefault(),n.$isParentRTL(r[0])?r[0].selectNext(0,0):r[0].selectPrevious(),!0}if(!o.$isRangeSelection(t))return!1;if(n.$shouldOverrideDefaultCharacterSelection(t,!0)){const r=e.shiftKey;return e.preventDefault(),n.$moveCharacter(t,r,!0),!0}return!1}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_ARROW_RIGHT_COMMAND,(e=>{const t=o.$getSelection();if(o.$isNodeSelection(t)){const r=t.getNodes();if(r.length>0)return e.preventDefault(),n.$isParentRTL(r[0])?r[0].selectPrevious():r[0].selectNext(0,0),!0}if(!o.$isRangeSelection(t))return!1;const r=e.shiftKey;return!!n.$shouldOverrideDefaultCharacterSelection(t,!1)&&(e.preventDefault(),n.$moveCharacter(t,r,!1),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_BACKSPACE_COMMAND,(e=>{if(p(e.target))return!1;const n=o.$getSelection();if(o.$isRangeSelection(n)){if(function(e){if(!e.isCollapsed())return!1;const{anchor:t}=e;if(0!==t.offset)return!1;const n=t.getNode();if(o.$isRootNode(n))return!1;const i=r.$getNearestBlockElementAncestorOrThrow(n);return i.getIndent()>0&&(i.is(n)||n.is(i.getFirstDescendant()))}(n))return e.preventDefault(),t.dispatchCommand(o.OUTDENT_CONTENT_COMMAND,void 0);if(d&&"ko-KR"===navigator.language)return!1}else if(!o.$isNodeSelection(n))return!1;return e.preventDefault(),t.dispatchCommand(o.DELETE_CHARACTER_COMMAND,!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_DELETE_COMMAND,(e=>{if(p(e.target))return!1;const n=o.$getSelection();return!(!o.$isRangeSelection(n)&&!o.$isNodeSelection(n))&&(e.preventDefault(),t.dispatchCommand(o.DELETE_CHARACTER_COMMAND,!1))}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_ENTER_COMMAND,(e=>{const n=o.$getSelection();if(!o.$isRangeSelection(n))return!1;if(I(n),null!==e){if((d||u||O)&&l)return!1;if(e.preventDefault(),e.shiftKey)return t.dispatchCommand(o.INSERT_LINE_BREAK_COMMAND,!1)}return t.dispatchCommand(o.INSERT_PARAGRAPH_COMMAND,void 0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_ESCAPE_COMMAND,(()=>{const e=o.$getSelection();return!!o.$isRangeSelection(e)&&(t.blur(),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.DROP_COMMAND,(e=>{const[,n]=C(e);if(n.length>0){const r=i(e.clientX,e.clientY);if(null!==r){const{offset:e,node:i}=r,s=o.$getNearestNodeFromDOMNode(i);if(null!==s){const t=o.$createRangeSelection();if(o.$isTextNode(s))t.anchor.set(s.getKey(),e,"text"),t.focus.set(s.getKey(),e,"text");else{const e=s.getParentOrThrow().getKey(),n=s.getIndexWithinParent()+1;t.anchor.set(e,n,"element"),t.focus.set(e,n,"element")}const n=o.$normalizeSelection__EXPERIMENTAL(t);o.$setSelection(n)}t.dispatchCommand(R,n)}return e.preventDefault(),!0}const r=o.$getSelection();return!!o.$isRangeSelection(r)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.DRAGSTART_COMMAND,(e=>{const[t]=C(e),n=o.$getSelection();return!(t&&!o.$isRangeSelection(n))}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.DRAGOVER_COMMAND,(e=>{const[t]=C(e),n=o.$getSelection();if(t&&!o.$isRangeSelection(n))return!1;const r=i(e.clientX,e.clientY);if(null!==r){const t=o.$getNearestNodeFromDOMNode(r.node);o.$isDecoratorNode(t)&&e.preventDefault()}return!0}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.SELECT_ALL_COMMAND,(()=>(o.$selectAll(),!0)),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.COPY_COMMAND,(n=>(e.copyToClipboard(t,r.objectKlassEquals(n,ClipboardEvent)?n:null),!0)),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.CUT_COMMAND,(n=>(async function(t,n){await e.copyToClipboard(n,r.objectKlassEquals(t,ClipboardEvent)?t:null),n.update((()=>{const e=o.$getSelection();o.$isRangeSelection(e)?e.removeText():o.$isNodeSelection(e)&&e.getNodes().forEach((e=>e.remove()))}))}(n,t),!0)),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.PASTE_COMMAND,(n=>{const[,i,s]=C(n);if(i.length>0&&!s)return t.dispatchCommand(R,i),!0;if(o.isDOMNode(n.target)&&o.isSelectionCapturedInDecoratorInput(n.target))return!1;return null!==o.$getSelection()&&(function(t,n){t.preventDefault(),n.update((()=>{const i=o.$getSelection(),s=r.objectKlassEquals(t,InputEvent)||r.objectKlassEquals(t,KeyboardEvent)?null:t.clipboardData;null!=s&&null!==i&&e.$insertDataTransferForRichText(s,i,n)}),{tag:o.PASTE_TAG})}(n,t),!0)}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_SPACE_COMMAND,(e=>{const t=o.$getSelection();return o.$isRangeSelection(t)&&I(t),!1}),o.COMMAND_PRIORITY_EDITOR),t.registerCommand(o.KEY_TAB_COMMAND,(e=>{const t=o.$getSelection();return o.$isRangeSelection(t)&&I(t),!1}),o.COMMAND_PRIORITY_EDITOR));return s}const h=o.defineExtension({conflictsWith:["@lexical/plain-text"],dependencies:[t.DragonExtension],name:"@lexical/rich-text",nodes:[m,N],register:A});exports.$createHeadingNode=f,exports.$createQuoteNode=D,exports.$isHeadingNode=function(e){return e instanceof m},exports.$isQuoteNode=function(e){return e instanceof N},exports.DRAG_DROP_PASTE=R,exports.HeadingNode=m,exports.QuoteNode=N,exports.RichTextExtension=h,exports.eventFiles=C,exports.registerRichText=A;
|
package/LexicalRichText.prod.mjs
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import{$insertDataTransferForRichText as t,copyToClipboard as e}from"@lexical/clipboard";import{$isParentRTL as n,$shouldOverrideDefaultCharacterSelection as r,$moveCharacter as o}from"@lexical/selection";import{addClassNamesToElement as i,isHTMLElement as s,objectKlassEquals as a,mergeRegister as c,$findMatchingParent as u,$getNearestBlockElementAncestorOrThrow as l}from"@lexical/utils";import{createCommand as d,ElementNode as m,$createParagraphNode as f,$applyNodeReplacement as g,setNodeIndentFromDOM as p,CLICK_COMMAND as h,$getSelection as C,$isNodeSelection as v,COMMAND_PRIORITY_EDITOR as y,DELETE_CHARACTER_COMMAND as D,$isRangeSelection as x,DELETE_WORD_COMMAND as N,DELETE_LINE_COMMAND as w,CONTROLLED_TEXT_INSERTION_COMMAND as E,REMOVE_TEXT_COMMAND as O,FORMAT_TEXT_COMMAND as T,FORMAT_ELEMENT_COMMAND as _,$isElementNode as A,INSERT_LINE_BREAK_COMMAND as F,INSERT_PARAGRAPH_COMMAND as P,INSERT_TAB_COMMAND as S,$insertNodes as I,$createTabNode as M,INDENT_CONTENT_COMMAND as b,OUTDENT_CONTENT_COMMAND as K,KEY_ARROW_UP_COMMAND as k,$getAdjacentNode as J,$isDecoratorNode as L,KEY_ARROW_DOWN_COMMAND as R,KEY_ARROW_LEFT_COMMAND as W,KEY_ARROW_RIGHT_COMMAND as z,KEY_BACKSPACE_COMMAND as q,KEY_DELETE_COMMAND as X,KEY_ENTER_COMMAND as Y,KEY_ESCAPE_COMMAND as B,DROP_COMMAND as G,$getNearestNodeFromDOMNode as V,$createRangeSelection as j,$isTextNode as H,$normalizeSelection__EXPERIMENTAL as Q,$setSelection as U,DRAGSTART_COMMAND as Z,DRAGOVER_COMMAND as $,SELECT_ALL_COMMAND as tt,$selectAll as et,COPY_COMMAND as nt,CUT_COMMAND as rt,PASTE_COMMAND as ot,isDOMNode as it,isSelectionCapturedInDecoratorInput as st,KEY_SPACE_COMMAND as at,KEY_TAB_COMMAND as ct,PASTE_TAG as ut,$getRoot as lt,$isRootNode as dt}from"lexical";function mt(t,e){if(void 0!==document.caretRangeFromPoint){const n=document.caretRangeFromPoint(t,e);return null===n?null:{node:n.startContainer,offset:n.startOffset}}if("undefined"!==document.caretPositionFromPoint){const n=document.caretPositionFromPoint(t,e);return null===n?null:{node:n.offsetNode,offset:n.offset}}return null}const ft="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,gt=ft&&"documentMode"in document?document.documentMode:null,pt=!(!ft||!("InputEvent"in window)||gt)&&"getTargetRanges"in new window.InputEvent("input"),ht=ft&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),Ct=ft&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,vt=ft&&/^(?=.*Chrome).*/i.test(navigator.userAgent),yt=ft&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!vt,Dt=d("DRAG_DROP_PASTE_FILE");class xt extends m{static getType(){return"quote"}static clone(t){return new xt(t.__key)}createDOM(t){const e=document.createElement("blockquote");return i(e,t.theme.quote),e}updateDOM(t,e){return!1}static importDOM(){return{blockquote:t=>({conversion:_t,priority:0})}}exportDOM(t){const{element:e}=super.exportDOM(t);if(s(e)){this.isEmpty()&&e.append(document.createElement("br"));const t=this.getFormatType();t&&(e.style.textAlign=t);const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){return Nt().updateFromJSON(t)}insertNewAfter(t,e){const n=f(),r=this.getDirection();return n.setDirection(r),this.insertAfter(n,e),n}collapseAtStart(){const t=f();return this.getChildren().forEach((e=>t.append(e))),this.replace(t),!0}canMergeWhenEmpty(){return!0}}function Nt(){return g(new xt)}function wt(t){return t instanceof xt}class Et extends m{static getType(){return"heading"}static clone(t){return new Et(t.__tag,t.__key)}constructor(t,e){super(e),this.__tag=t}getTag(){return this.__tag}setTag(t){const e=this.getWritable();return this.__tag=t,e}createDOM(t){const e=this.__tag,n=document.createElement(e),r=t.theme.heading;if(void 0!==r){const t=r[e];i(n,t)}return n}updateDOM(t,e,n){return t.__tag!==this.__tag}static importDOM(){return{h1:t=>({conversion:Tt,priority:0}),h2:t=>({conversion:Tt,priority:0}),h3:t=>({conversion:Tt,priority:0}),h4:t=>({conversion:Tt,priority:0}),h5:t=>({conversion:Tt,priority:0}),h6:t=>({conversion:Tt,priority:0}),p:t=>{const e=t.firstChild;return null!==e&&Ot(e)?{conversion:()=>({node:null}),priority:3}:null},span:t=>Ot(t)?{conversion:t=>({node:At("h1")}),priority:3}:null}}exportDOM(t){const{element:e}=super.exportDOM(t);if(s(e)){this.isEmpty()&&e.append(document.createElement("br"));const t=this.getFormatType();t&&(e.style.textAlign=t);const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){return At(t.tag).updateFromJSON(t)}updateFromJSON(t){return super.updateFromJSON(t).setTag(t.tag)}exportJSON(){return{...super.exportJSON(),tag:this.getTag()}}insertNewAfter(t,e=!0){const n=t?t.anchor.offset:0,r=this.getLastDescendant(),o=!r||t&&t.anchor.key===r.getKey()&&n===r.getTextContentSize()||!t?f():At(this.getTag()),i=this.getDirection();if(o.setDirection(i),this.insertAfter(o,e),0===n&&!this.isEmpty()&&t){const t=f();t.select(),this.replace(t,!0)}return o}collapseAtStart(){const t=this.isEmpty()?f():At(this.getTag());return this.getChildren().forEach((e=>t.append(e))),this.replace(t),!0}extractWithChild(){return!0}}function Ot(t){return"span"===t.nodeName.toLowerCase()&&"26pt"===t.style.fontSize}function Tt(t){const e=t.nodeName.toLowerCase();let n=null;return"h1"!==e&&"h2"!==e&&"h3"!==e&&"h4"!==e&&"h5"!==e&&"h6"!==e||(n=At(e),null!==t.style&&(p(t,n),n.setFormat(t.style.textAlign))),{node:n}}function _t(t){const e=Nt();return null!==t.style&&(e.setFormat(t.style.textAlign),p(t,e)),{node:e}}function At(t="h1"){return g(new Et(t))}function Ft(t){return t instanceof Et}function Pt(t){let e=null;if(a(t,DragEvent)?e=t.dataTransfer:a(t,ClipboardEvent)&&(e=t.clipboardData),null===e)return[!1,[],!1];const n=e.types,r=n.includes("Files"),o=n.includes("text/html")||n.includes("text/plain");return[r,Array.from(e.files),o]}function St(t){const e=C();if(!x(e))return!1;const n=new Set,r=e.getNodes();for(let e=0;e<r.length;e++){const o=r[e],i=o.getKey();if(n.has(i))continue;const s=u(o,(t=>A(t)&&!t.isInline()));if(null===s)continue;const a=s.getKey();s.canIndent()&&!n.has(a)&&(n.add(a),t(s))}return n.size>0}function It(t){const e=V(t);return L(e)}function Mt(t){for(const e of["lowercase","uppercase","capitalize"])t.hasFormat(e)&&t.toggleFormat(e)}function bt(i){return c(i.registerCommand(h,(t=>{const e=C();return!!v(e)&&(e.clear(),!0)}),y),i.registerCommand(D,(t=>{const e=C();return x(e)?(e.deleteCharacter(t),!0):!!v(e)&&(e.deleteNodes(),!0)}),y),i.registerCommand(N,(t=>{const e=C();return!!x(e)&&(e.deleteWord(t),!0)}),y),i.registerCommand(w,(t=>{const e=C();return!!x(e)&&(e.deleteLine(t),!0)}),y),i.registerCommand(E,(e=>{const n=C();if("string"==typeof e)null!==n&&n.insertText(e);else{if(null===n)return!1;const r=e.dataTransfer;if(null!=r)t(r,n,i);else if(x(n)){const t=e.data;return t&&n.insertText(t),!0}}return!0}),y),i.registerCommand(O,(()=>{const t=C();return!!x(t)&&(t.removeText(),!0)}),y),i.registerCommand(T,(t=>{const e=C();return!!x(e)&&(e.formatText(t),!0)}),y),i.registerCommand(_,(t=>{const e=C();if(!x(e)&&!v(e))return!1;const n=e.getNodes();for(const e of n){const n=u(e,(t=>A(t)&&!t.isInline()));null!==n&&n.setFormat(t)}return!0}),y),i.registerCommand(F,(t=>{const e=C();return!!x(e)&&(e.insertLineBreak(t),!0)}),y),i.registerCommand(P,(()=>{const t=C();return!!x(t)&&(t.insertParagraph(),!0)}),y),i.registerCommand(S,(()=>(I([M()]),!0)),y),i.registerCommand(b,(()=>St((t=>{const e=t.getIndent();t.setIndent(e+1)}))),y),i.registerCommand(K,(()=>St((t=>{const e=t.getIndent();e>0&&t.setIndent(Math.max(0,e-1))}))),y),i.registerCommand(k,(t=>{const e=C();if(v(e)){const t=e.getNodes();if(t.length>0)return t[0].selectPrevious(),!0}else if(x(e)){const n=J(e.focus,!0);if(!t.shiftKey&&L(n)&&!n.isIsolated()&&!n.isInline())return n.selectPrevious(),t.preventDefault(),!0}return!1}),y),i.registerCommand(R,(t=>{const e=C();if(v(e)){const t=e.getNodes();if(t.length>0)return t[0].selectNext(0,0),!0}else if(x(e)){if(function(t){const e=t.focus;return"root"===e.key&&e.offset===lt().getChildrenSize()}(e))return t.preventDefault(),!0;const n=J(e.focus,!1);if(!t.shiftKey&&L(n)&&!n.isIsolated()&&!n.isInline())return n.selectNext(),t.preventDefault(),!0}return!1}),y),i.registerCommand(W,(t=>{const e=C();if(v(e)){const r=e.getNodes();if(r.length>0)return t.preventDefault(),n(r[0])?r[0].selectNext(0,0):r[0].selectPrevious(),!0}if(!x(e))return!1;if(r(e,!0)){const n=t.shiftKey;return t.preventDefault(),o(e,n,!0),!0}return!1}),y),i.registerCommand(z,(t=>{const e=C();if(v(e)){const r=e.getNodes();if(r.length>0)return t.preventDefault(),n(r[0])?r[0].selectPrevious():r[0].selectNext(0,0),!0}if(!x(e))return!1;const i=t.shiftKey;return!!r(e,!1)&&(t.preventDefault(),o(e,i,!1),!0)}),y),i.registerCommand(q,(t=>{if(It(t.target))return!1;const e=C();if(x(e)){if(function(t){if(!t.isCollapsed())return!1;const{anchor:e}=t;if(0!==e.offset)return!1;const n=e.getNode();if(dt(n))return!1;const r=l(n);return r.getIndent()>0&&(r.is(n)||n.is(r.getFirstDescendant()))}(e))return t.preventDefault(),i.dispatchCommand(K,void 0);if(Ct&&"ko-KR"===navigator.language)return!1}else if(!v(e))return!1;return t.preventDefault(),i.dispatchCommand(D,!0)}),y),i.registerCommand(X,(t=>{if(It(t.target))return!1;const e=C();return!(!x(e)&&!v(e))&&(t.preventDefault(),i.dispatchCommand(D,!1))}),y),i.registerCommand(Y,(t=>{const e=C();if(!x(e))return!1;if(Mt(e),null!==t){if((Ct||ht||yt)&&pt)return!1;if(t.preventDefault(),t.shiftKey)return i.dispatchCommand(F,!1)}return i.dispatchCommand(P,void 0)}),y),i.registerCommand(B,(()=>{const t=C();return!!x(t)&&(i.blur(),!0)}),y),i.registerCommand(G,(t=>{const[,e]=Pt(t);if(e.length>0){const n=mt(t.clientX,t.clientY);if(null!==n){const{offset:t,node:r}=n,o=V(r);if(null!==o){const e=j();if(H(o))e.anchor.set(o.getKey(),t,"text"),e.focus.set(o.getKey(),t,"text");else{const t=o.getParentOrThrow().getKey(),n=o.getIndexWithinParent()+1;e.anchor.set(t,n,"element"),e.focus.set(t,n,"element")}const n=Q(e);U(n)}i.dispatchCommand(Dt,e)}return t.preventDefault(),!0}const n=C();return!!x(n)}),y),i.registerCommand(Z,(t=>{const[e]=Pt(t),n=C();return!(e&&!x(n))}),y),i.registerCommand($,(t=>{const[e]=Pt(t),n=C();if(e&&!x(n))return!1;const r=mt(t.clientX,t.clientY);if(null!==r){const e=V(r.node);L(e)&&t.preventDefault()}return!0}),y),i.registerCommand(tt,(()=>(et(),!0)),y),i.registerCommand(nt,(t=>(e(i,a(t,ClipboardEvent)?t:null),!0)),y),i.registerCommand(rt,(t=>(async function(t,n){await e(n,a(t,ClipboardEvent)?t:null),n.update((()=>{const t=C();x(t)?t.removeText():v(t)&&t.getNodes().forEach((t=>t.remove()))}))}(t,i),!0)),y),i.registerCommand(ot,(e=>{const[,n,r]=Pt(e);if(n.length>0&&!r)return i.dispatchCommand(Dt,n),!0;if(it(e.target)&&st(e.target))return!1;return null!==C()&&(function(e,n){e.preventDefault(),n.update((()=>{const r=C(),o=a(e,InputEvent)||a(e,KeyboardEvent)?null:e.clipboardData;null!=o&&null!==r&&t(o,r,n)}),{tag:ut})}(e,i),!0)}),y),i.registerCommand(at,(t=>{const e=C();return x(e)&&Mt(e),!1}),y),i.registerCommand(ct,(t=>{const e=C();return x(e)&&Mt(e),!1}),y))}export{At as $createHeadingNode,Nt as $createQuoteNode,Ft as $isHeadingNode,wt as $isQuoteNode,Dt as DRAG_DROP_PASTE,Et as HeadingNode,xt as QuoteNode,Pt as eventFiles,bt as registerRichText};
|
|
9
|
+
import{$insertDataTransferForRichText as t,copyToClipboard as e}from"@lexical/clipboard";import{DragonExtension as n}from"@lexical/dragon";import{$isParentRTL as r,$shouldOverrideDefaultCharacterSelection as o,$moveCharacter as i}from"@lexical/selection";import{mergeRegister as s,$findMatchingParent as a,objectKlassEquals as c,addClassNamesToElement as u,isHTMLElement as l,$getNearestBlockElementAncestorOrThrow as d}from"@lexical/utils";import{createCommand as m,defineExtension as f,CLICK_COMMAND as g,$getSelection as p,$isNodeSelection as h,COMMAND_PRIORITY_EDITOR as C,DELETE_CHARACTER_COMMAND as v,$isRangeSelection as y,DELETE_WORD_COMMAND as x,DELETE_LINE_COMMAND as D,CONTROLLED_TEXT_INSERTION_COMMAND as N,REMOVE_TEXT_COMMAND as w,FORMAT_TEXT_COMMAND as E,FORMAT_ELEMENT_COMMAND as _,$isElementNode as O,INSERT_LINE_BREAK_COMMAND as P,INSERT_PARAGRAPH_COMMAND as T,INSERT_TAB_COMMAND as A,$insertNodes as F,$createTabNode as S,INDENT_CONTENT_COMMAND as I,OUTDENT_CONTENT_COMMAND as M,KEY_ARROW_UP_COMMAND as b,$getAdjacentNode as K,$isDecoratorNode as k,KEY_ARROW_DOWN_COMMAND as J,KEY_ARROW_LEFT_COMMAND as W,KEY_ARROW_RIGHT_COMMAND as L,KEY_BACKSPACE_COMMAND as R,KEY_DELETE_COMMAND as z,KEY_ENTER_COMMAND as q,KEY_ESCAPE_COMMAND as X,DROP_COMMAND as Y,$getNearestNodeFromDOMNode as B,$createRangeSelection as G,$isTextNode as V,$normalizeSelection__EXPERIMENTAL as j,$setSelection as H,DRAGSTART_COMMAND as Q,DRAGOVER_COMMAND as U,SELECT_ALL_COMMAND as Z,$selectAll as $,COPY_COMMAND as tt,CUT_COMMAND as et,PASTE_COMMAND as nt,isDOMNode as rt,isSelectionCapturedInDecoratorInput as ot,KEY_SPACE_COMMAND as it,KEY_TAB_COMMAND as st,ElementNode as at,$createParagraphNode as ct,$getRoot as ut,$isRootNode as lt,PASTE_TAG as dt,setNodeIndentFromDOM as mt,$applyNodeReplacement as ft}from"lexical";function gt(t,e){if(void 0!==document.caretRangeFromPoint){const n=document.caretRangeFromPoint(t,e);return null===n?null:{node:n.startContainer,offset:n.startOffset}}if("undefined"!==document.caretPositionFromPoint){const n=document.caretPositionFromPoint(t,e);return null===n?null:{node:n.offsetNode,offset:n.offset}}return null}const pt="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,ht=pt&&"documentMode"in document?document.documentMode:null,Ct=pt&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),vt=!(!pt||!("InputEvent"in window)||ht)&&"getTargetRanges"in new window.InputEvent("input"),yt=pt&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),xt=pt&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,Dt=pt&&/^(?=.*Chrome).*/i.test(navigator.userAgent),Nt=pt&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&Ct&&!Dt,wt=m("DRAG_DROP_PASTE_FILE");class Et extends at{static getType(){return"quote"}static clone(t){return new Et(t.__key)}createDOM(t){const e=document.createElement("blockquote");return u(e,t.theme.quote),e}updateDOM(t,e){return!1}static importDOM(){return{blockquote:t=>({conversion:Ft,priority:0})}}exportDOM(t){const{element:e}=super.exportDOM(t);if(l(e)){this.isEmpty()&&e.append(document.createElement("br"));const t=this.getFormatType();t&&(e.style.textAlign=t);const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){return _t().updateFromJSON(t)}insertNewAfter(t,e){const n=ct(),r=this.getDirection();return n.setDirection(r),this.insertAfter(n,e),n}collapseAtStart(){const t=ct();return this.getChildren().forEach((e=>t.append(e))),this.replace(t),!0}canMergeWhenEmpty(){return!0}}function _t(){return ft(new Et)}function Ot(t){return t instanceof Et}class Pt extends at{__tag;static getType(){return"heading"}static clone(t){return new Pt(t.__tag,t.__key)}constructor(t,e){super(e),this.__tag=t}getTag(){return this.__tag}setTag(t){const e=this.getWritable();return this.__tag=t,e}createDOM(t){const e=this.__tag,n=document.createElement(e),r=t.theme.heading;if(void 0!==r){const t=r[e];u(n,t)}return n}updateDOM(t,e,n){return t.__tag!==this.__tag}static importDOM(){return{h1:t=>({conversion:At,priority:0}),h2:t=>({conversion:At,priority:0}),h3:t=>({conversion:At,priority:0}),h4:t=>({conversion:At,priority:0}),h5:t=>({conversion:At,priority:0}),h6:t=>({conversion:At,priority:0}),p:t=>{const e=t.firstChild;return null!==e&&Tt(e)?{conversion:()=>({node:null}),priority:3}:null},span:t=>Tt(t)?{conversion:t=>({node:St("h1")}),priority:3}:null}}exportDOM(t){const{element:e}=super.exportDOM(t);if(l(e)){this.isEmpty()&&e.append(document.createElement("br"));const t=this.getFormatType();t&&(e.style.textAlign=t);const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){return St(t.tag).updateFromJSON(t)}updateFromJSON(t){return super.updateFromJSON(t).setTag(t.tag)}exportJSON(){return{...super.exportJSON(),tag:this.getTag()}}insertNewAfter(t,e=!0){const n=t?t.anchor.offset:0,r=this.getLastDescendant(),o=!r||t&&t.anchor.key===r.getKey()&&n===r.getTextContentSize()||!t?ct():St(this.getTag()),i=this.getDirection();if(o.setDirection(i),this.insertAfter(o,e),0===n&&!this.isEmpty()&&t){const t=ct();t.select(),this.replace(t,!0)}return o}collapseAtStart(){const t=this.isEmpty()?ct():St(this.getTag());return this.getChildren().forEach((e=>t.append(e))),this.replace(t),!0}extractWithChild(){return!0}}function Tt(t){return"span"===t.nodeName.toLowerCase()&&"26pt"===t.style.fontSize}function At(t){const e=t.nodeName.toLowerCase();let n=null;return"h1"!==e&&"h2"!==e&&"h3"!==e&&"h4"!==e&&"h5"!==e&&"h6"!==e||(n=St(e),null!==t.style&&(mt(t,n),n.setFormat(t.style.textAlign))),{node:n}}function Ft(t){const e=_t();return null!==t.style&&(e.setFormat(t.style.textAlign),mt(t,e)),{node:e}}function St(t="h1"){return ft(new Pt(t))}function It(t){return t instanceof Pt}function Mt(t){let e=null;if(c(t,DragEvent)?e=t.dataTransfer:c(t,ClipboardEvent)&&(e=t.clipboardData),null===e)return[!1,[],!1];const n=e.types,r=n.includes("Files"),o=n.includes("text/html")||n.includes("text/plain");return[r,Array.from(e.files),o]}function bt(t){const e=p();if(!y(e))return!1;const n=new Set,r=e.getNodes();for(let e=0;e<r.length;e++){const o=r[e],i=o.getKey();if(n.has(i))continue;const s=a(o,(t=>O(t)&&!t.isInline()));if(null===s)continue;const c=s.getKey();s.canIndent()&&!n.has(c)&&(n.add(c),t(s))}return n.size>0}function Kt(t){const e=B(t);return k(e)}function kt(t){for(const e of["lowercase","uppercase","capitalize"])t.hasFormat(e)&&t.toggleFormat(e)}function Jt(n){return s(n.registerCommand(g,(t=>{const e=p();return!!h(e)&&(e.clear(),!0)}),C),n.registerCommand(v,(t=>{const e=p();return y(e)?(e.deleteCharacter(t),!0):!!h(e)&&(e.deleteNodes(),!0)}),C),n.registerCommand(x,(t=>{const e=p();return!!y(e)&&(e.deleteWord(t),!0)}),C),n.registerCommand(D,(t=>{const e=p();return!!y(e)&&(e.deleteLine(t),!0)}),C),n.registerCommand(N,(e=>{const r=p();if("string"==typeof e)null!==r&&r.insertText(e);else{if(null===r)return!1;const o=e.dataTransfer;if(null!=o)t(o,r,n);else if(y(r)){const t=e.data;return t&&r.insertText(t),!0}}return!0}),C),n.registerCommand(w,(()=>{const t=p();return!!y(t)&&(t.removeText(),!0)}),C),n.registerCommand(E,(t=>{const e=p();return!!y(e)&&(e.formatText(t),!0)}),C),n.registerCommand(_,(t=>{const e=p();if(!y(e)&&!h(e))return!1;const n=e.getNodes();for(const e of n){const n=a(e,(t=>O(t)&&!t.isInline()));null!==n&&n.setFormat(t)}return!0}),C),n.registerCommand(P,(t=>{const e=p();return!!y(e)&&(e.insertLineBreak(t),!0)}),C),n.registerCommand(T,(()=>{const t=p();return!!y(t)&&(t.insertParagraph(),!0)}),C),n.registerCommand(A,(()=>(F([S()]),!0)),C),n.registerCommand(I,(()=>bt((t=>{const e=t.getIndent();t.setIndent(e+1)}))),C),n.registerCommand(M,(()=>bt((t=>{const e=t.getIndent();e>0&&t.setIndent(Math.max(0,e-1))}))),C),n.registerCommand(b,(t=>{const e=p();if(h(e)){const t=e.getNodes();if(t.length>0)return t[0].selectPrevious(),!0}else if(y(e)){const n=K(e.focus,!0);if(!t.shiftKey&&k(n)&&!n.isIsolated()&&!n.isInline())return n.selectPrevious(),t.preventDefault(),!0}return!1}),C),n.registerCommand(J,(t=>{const e=p();if(h(e)){const t=e.getNodes();if(t.length>0)return t[0].selectNext(0,0),!0}else if(y(e)){if(function(t){const e=t.focus;return"root"===e.key&&e.offset===ut().getChildrenSize()}(e))return t.preventDefault(),!0;const n=K(e.focus,!1);if(!t.shiftKey&&k(n)&&!n.isIsolated()&&!n.isInline())return n.selectNext(),t.preventDefault(),!0}return!1}),C),n.registerCommand(W,(t=>{const e=p();if(h(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),r(n[0])?n[0].selectNext(0,0):n[0].selectPrevious(),!0}if(!y(e))return!1;if(o(e,!0)){const n=t.shiftKey;return t.preventDefault(),i(e,n,!0),!0}return!1}),C),n.registerCommand(L,(t=>{const e=p();if(h(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),r(n[0])?n[0].selectPrevious():n[0].selectNext(0,0),!0}if(!y(e))return!1;const n=t.shiftKey;return!!o(e,!1)&&(t.preventDefault(),i(e,n,!1),!0)}),C),n.registerCommand(R,(t=>{if(Kt(t.target))return!1;const e=p();if(y(e)){if(function(t){if(!t.isCollapsed())return!1;const{anchor:e}=t;if(0!==e.offset)return!1;const n=e.getNode();if(lt(n))return!1;const r=d(n);return r.getIndent()>0&&(r.is(n)||n.is(r.getFirstDescendant()))}(e))return t.preventDefault(),n.dispatchCommand(M,void 0);if(xt&&"ko-KR"===navigator.language)return!1}else if(!h(e))return!1;return t.preventDefault(),n.dispatchCommand(v,!0)}),C),n.registerCommand(z,(t=>{if(Kt(t.target))return!1;const e=p();return!(!y(e)&&!h(e))&&(t.preventDefault(),n.dispatchCommand(v,!1))}),C),n.registerCommand(q,(t=>{const e=p();if(!y(e))return!1;if(kt(e),null!==t){if((xt||yt||Nt)&&vt)return!1;if(t.preventDefault(),t.shiftKey)return n.dispatchCommand(P,!1)}return n.dispatchCommand(T,void 0)}),C),n.registerCommand(X,(()=>{const t=p();return!!y(t)&&(n.blur(),!0)}),C),n.registerCommand(Y,(t=>{const[,e]=Mt(t);if(e.length>0){const r=gt(t.clientX,t.clientY);if(null!==r){const{offset:t,node:o}=r,i=B(o);if(null!==i){const e=G();if(V(i))e.anchor.set(i.getKey(),t,"text"),e.focus.set(i.getKey(),t,"text");else{const t=i.getParentOrThrow().getKey(),n=i.getIndexWithinParent()+1;e.anchor.set(t,n,"element"),e.focus.set(t,n,"element")}const n=j(e);H(n)}n.dispatchCommand(wt,e)}return t.preventDefault(),!0}const r=p();return!!y(r)}),C),n.registerCommand(Q,(t=>{const[e]=Mt(t),n=p();return!(e&&!y(n))}),C),n.registerCommand(U,(t=>{const[e]=Mt(t),n=p();if(e&&!y(n))return!1;const r=gt(t.clientX,t.clientY);if(null!==r){const e=B(r.node);k(e)&&t.preventDefault()}return!0}),C),n.registerCommand(Z,(()=>($(),!0)),C),n.registerCommand(tt,(t=>(e(n,c(t,ClipboardEvent)?t:null),!0)),C),n.registerCommand(et,(t=>(async function(t,n){await e(n,c(t,ClipboardEvent)?t:null),n.update((()=>{const t=p();y(t)?t.removeText():h(t)&&t.getNodes().forEach((t=>t.remove()))}))}(t,n),!0)),C),n.registerCommand(nt,(e=>{const[,r,o]=Mt(e);if(r.length>0&&!o)return n.dispatchCommand(wt,r),!0;if(rt(e.target)&&ot(e.target))return!1;return null!==p()&&(function(e,n){e.preventDefault(),n.update((()=>{const r=p(),o=c(e,InputEvent)||c(e,KeyboardEvent)?null:e.clipboardData;null!=o&&null!==r&&t(o,r,n)}),{tag:dt})}(e,n),!0)}),C),n.registerCommand(it,(t=>{const e=p();return y(e)&&kt(e),!1}),C),n.registerCommand(st,(t=>{const e=p();return y(e)&&kt(e),!1}),C))}const Wt=f({conflictsWith:["@lexical/plain-text"],dependencies:[n],name:"@lexical/rich-text",nodes:[Pt,Et],register:Jt});export{St as $createHeadingNode,_t as $createQuoteNode,It as $isHeadingNode,Ot as $isQuoteNode,wt as DRAG_DROP_PASTE,Pt as HeadingNode,Et as QuoteNode,Wt as RichTextExtension,Mt as eventFiles,Jt as registerRichText};
|
package/index.d.ts
CHANGED
|
@@ -52,3 +52,8 @@ export declare function $createHeadingNode(headingTag?: HeadingTagType): Heading
|
|
|
52
52
|
export declare function $isHeadingNode(node: LexicalNode | null | undefined): node is HeadingNode;
|
|
53
53
|
export declare function eventFiles(event: DragEvent | PasteCommandType): [boolean, Array<File>, boolean];
|
|
54
54
|
export declare function registerRichText(editor: LexicalEditor): () => void;
|
|
55
|
+
/**
|
|
56
|
+
* An extension to register \@lexical/rich-text behavior and nodes
|
|
57
|
+
* ({@link HeadingNode}, {@link QuoteNode})
|
|
58
|
+
*/
|
|
59
|
+
export declare const RichTextExtension: import("lexical").LexicalExtension<import("lexical").ExtensionConfigBase, "@lexical/rich-text", unknown, unknown>;
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"rich-text"
|
|
8
8
|
],
|
|
9
9
|
"license": "MIT",
|
|
10
|
-
"version": "0.
|
|
10
|
+
"version": "0.36.0",
|
|
11
11
|
"main": "LexicalRichText.js",
|
|
12
12
|
"types": "index.d.ts",
|
|
13
13
|
"repository": {
|
|
@@ -35,9 +35,10 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@lexical/clipboard": "0.
|
|
39
|
-
"@lexical/
|
|
40
|
-
"@lexical/
|
|
41
|
-
"lexical": "0.
|
|
38
|
+
"@lexical/clipboard": "0.36.0",
|
|
39
|
+
"@lexical/dragon": "0.36.0",
|
|
40
|
+
"@lexical/selection": "0.36.0",
|
|
41
|
+
"@lexical/utils": "0.36.0",
|
|
42
|
+
"lexical": "0.36.0"
|
|
42
43
|
}
|
|
43
44
|
}
|