Socket
Socket
Sign inDemoInstall

@lexical/helpers

Package Overview
Dependencies
Maintainers
2
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lexical/helpers - npm Package Compare versions

Comparing version 0.1.9 to 0.1.10

222

LexicalEventHelpers.dev.js

@@ -10,6 +10,2 @@ /**

var lexical = require('lexical');
var list = require('@lexical/list');
var CodeNode = require('lexical/CodeNode');
var HeadingNode = require('lexical/HeadingNode');
var LinkNode = require('lexical/LinkNode');

@@ -113,2 +109,8 @@ /**

function $cloneContents(selection) {
if (!lexical.$isRangeSelection(selection)) {
{
throw Error(`TODO`);
}
}
const anchor = selection.anchor;

@@ -260,166 +262,2 @@ const focus = selection.focus;

const isCodeElement = div => {
return div.style.fontFamily.match('monospace') !== null;
};
const DOM_NODE_NAME_TO_LEXICAL_NODE = {
'#text': domNode => ({
node: lexical.$createTextNode(domNode.textContent)
}),
a: domNode => {
let node;
if (domNode instanceof HTMLAnchorElement) {
node = LinkNode.$createLinkNode(domNode.href);
} else {
node = lexical.$createTextNode(domNode.textContent);
}
return {
node
};
},
b: domNode => {
// $FlowFixMe[incompatible-type] domNode is a <b> since we matched it by nodeName
const b = domNode; // Google Docs wraps all copied HTML in a <b> with font-weight normal
const hasNormalFontWeight = b.style.fontWeight === 'normal';
return {
forChild: lexicalNode => {
if (lexical.$isTextNode(lexicalNode) && !hasNormalFontWeight) {
lexicalNode.toggleFormat('bold');
}
},
node: null
};
},
br: () => ({
node: lexical.$createLineBreakNode()
}),
div: domNode => {
// $FlowFixMe[incompatible-type] domNode is a <div> since we matched it by nodeName
const div = domNode;
return {
after: childLexicalNodes => {
const domParent = domNode.parentNode;
if (domParent != null && domNode !== domParent.lastChild) {
childLexicalNodes.push(lexical.$createLineBreakNode());
}
return childLexicalNodes;
},
node: isCodeElement(div) ? CodeNode.$createCodeNode() : null
};
},
em: domNode => {
return {
forChild: lexicalNode => {
if (lexical.$isTextNode(lexicalNode)) {
lexicalNode.toggleFormat('italic');
}
},
node: null
};
},
h1: () => ({
node: HeadingNode.$createHeadingNode('h1')
}),
h2: () => ({
node: HeadingNode.$createHeadingNode('h2')
}),
h3: () => ({
node: HeadingNode.$createHeadingNode('h3')
}),
h4: () => ({
node: HeadingNode.$createHeadingNode('h4')
}),
h5: () => ({
node: HeadingNode.$createHeadingNode('h5')
}),
i: domNode => {
return {
forChild: lexicalNode => {
if (lexical.$isTextNode(lexicalNode)) {
lexicalNode.toggleFormat('italic');
}
},
node: null
};
},
li: () => ({
node: list.$createListItemNode()
}),
ol: () => ({
node: list.$createListNode('ol')
}),
p: () => ({
node: lexical.$createParagraphNode()
}),
pre: domNode => ({
node: CodeNode.$createCodeNode()
}),
span: domNode => {
// $FlowFixMe[incompatible-type] domNode is a <span> since we matched it by nodeName
const span = domNode; // Google Docs uses span tags + font-weight for bold text
const hasBoldFontWeight = span.style.fontWeight === '700';
return {
forChild: lexicalNode => {
if (lexical.$isTextNode(lexicalNode) && hasBoldFontWeight) {
lexicalNode.toggleFormat('bold');
}
},
node: null
};
},
strong: domNode => {
return {
forChild: lexicalNode => {
if (lexical.$isTextNode(lexicalNode)) {
lexicalNode.toggleFormat('bold');
}
},
node: null
};
},
table: domNode => {
// $FlowFixMe[incompatible-type] domNode is a <table> since we matched it by nodeName
const table = domNode;
const isGitHubCodeTable = table.classList.contains('js-file-line-container');
return {
node: isGitHubCodeTable ? CodeNode.$createCodeNode() : null
};
},
td: domNode => {
// $FlowFixMe[incompatible-type] domNode is a <table> since we matched it by nodeName
const cell = domNode;
const isGitHubCodeCell = cell.classList.contains('js-file-line');
return {
after: childLexicalNodes => {
if (isGitHubCodeCell && cell.parentNode && cell.parentNode.nextSibling) {
// Append newline between code lines
childLexicalNodes.push(lexical.$createLineBreakNode());
}
return childLexicalNodes;
},
node: null
};
},
u: domNode => {
return {
forChild: lexicalNode => {
if (lexical.$isTextNode(lexicalNode)) {
lexicalNode.toggleFormat('underline');
}
},
node: null
};
},
ul: () => ({
node: list.$createListNode('ul')
})
};
function $generateNodes(nodeRange) {

@@ -446,8 +284,30 @@ const {

function $createNodesFromDOM(node, conversionMap, editor, forChildMap = new Map()) {
function getConversionFunction(domNode, editor) {
const {
nodeName
} = domNode;
const cachedConversions = editor._htmlConversions.get(nodeName.toLowerCase());
let currentConversion = null;
if (cachedConversions !== undefined) {
cachedConversions.forEach(cachedConversion => {
const domConversion = cachedConversion(domNode);
if (domConversion !== null) {
if (currentConversion === null || currentConversion.priority < domConversion.priority) {
currentConversion = domConversion;
}
}
});
}
return currentConversion !== null ? currentConversion.conversion : null;
}
function $createNodesFromDOM(node, editor, forChildMap = new Map()) {
let lexicalNodes = [];
let currentLexicalNode = null;
const nodeName = node.nodeName.toLowerCase();
const customHtmlTransforms = editor._config.htmlTransforms || {};
const transformFunction = customHtmlTransforms[nodeName] || conversionMap[nodeName];
const transformFunction = getConversionFunction(node, editor);
const transformOutput = transformFunction ? transformFunction(node) : null;

@@ -470,3 +330,3 @@ let postTransform = null;

if (transformOutput.forChild != null) {
forChildMap.set(nodeName, transformOutput.forChild);
forChildMap.set(node.nodeName, transformOutput.forChild);
}

@@ -481,3 +341,3 @@ } // If the DOM node doesn't have a transformer, we don't know what

for (let i = 0; i < children.length; i++) {
childLexicalNodes.push(...$createNodesFromDOM(children[i], conversionMap, editor, forChildMap));
childLexicalNodes.push(...$createNodesFromDOM(children[i], editor, forChildMap));
}

@@ -504,3 +364,3 @@

function $generateNodesFromDOM(dom, conversionMap, editor) {
function $generateNodesFromDOM(dom, editor) {
let lexicalNodes = [];

@@ -511,3 +371,3 @@ const elements = dom.body ? Array.from(dom.body.childNodes) : [];

for (let i = 0; i < elementsLength; i++) {
const lexicalNode = $createNodesFromDOM(elements[i], conversionMap, editor);
const lexicalNode = $createNodesFromDOM(elements[i], editor);

@@ -547,3 +407,3 @@ if (lexicalNode !== null) {

const dom = parser.parseFromString(htmlString, textHtmlMimeType);
const nodes = $generateNodesFromDOM(dom, DOM_NODE_NAME_TO_LEXICAL_NODE, editor); // Wrap text and inline nodes in paragraph nodes so we have all blocks at the top-level
const nodes = $generateNodesFromDOM(dom, editor); // Wrap text and inline nodes in paragraph nodes so we have all blocks at the top-level

@@ -594,3 +454,3 @@ const topLevelBlocks = [];

if (clipboardData != null && selection !== null) {
if (clipboardData != null && lexical.$isRangeSelection(selection)) {
$insertDataTransferForPlainText(clipboardData, selection);

@@ -606,3 +466,3 @@ }

if (clipboardData != null && selection !== null) {
if (clipboardData != null && lexical.$isRangeSelection(selection)) {
$insertDataTransferForRichText(clipboardData, selection, editor);

@@ -617,3 +477,3 @@ }

if (selection !== null) {
if (lexical.$isRangeSelection(selection)) {
selection.removeText();

@@ -628,3 +488,3 @@ }

if (selection !== null) {
if (lexical.$isRangeSelection(selection)) {
selection.removeText();

@@ -631,0 +491,0 @@ }

31

LexicalEventHelpers.prod.js

@@ -7,19 +7,14 @@ /**

*/
var f=require("lexical"),w=require("@lexical/list"),y=require("lexical/CodeNode"),z=require("lexical/HeadingNode"),A=require("lexical/LinkNode");
function B(a){a=a.getLatest();const b=a.constructor.clone(a);b.__parent=a.__parent;f.$isElementNode(a)&&f.$isElementNode(b)?(b.__children=Array.from(a.__children),b.__format=a.__format,b.__indent=a.__indent,b.__dir=a.__dir):f.$isTextNode(a)&&f.$isTextNode(b)?(b.__format=a.__format,b.__style=a.__style,b.__mode=a.__mode,b.__detail=a.__detail):f.$isDecoratorNode(a)&&f.$isDecoratorNode(b)&&(b.__state=a.__state);return b}
function C(a,b,c,d,g){for(var e=b;null!==a;){for(b=a.getParent();null!==b&&b.excludeFromCopy();)b=b.getParent();if(null===b)break;if(!f.$isElementNode(a)||!a.excludeFromCopy()){const k=a.getKey();let h=g.get(k);const l=void 0===h;l&&(h=B(a),g.set(k,h));!f.$isTextNode(h)||h.isSegmented()||h.isToken()?f.$isElementNode(h)&&(h.__children=h.__children.slice(c?e:0,c?void 0:e+1)):h.__text=h.__text.slice(c?e:0,c?void 0:e);if(f.$isRootNode(b)){l&&d.push(k);break}}e=g.get(b.getKey());e=f.$isElementNode(e)?
e.__children.indexOf(a.getKey()):a.getIndexWithinParent();a=b}}function D(a,b,c){const d=a.getParent();let g=c;null!==d&&(b&&0===c?(g=a.getIndexWithinParent(),a=d):b||c!==a.getChildrenSize()||(g=a.getIndexWithinParent()+1,a=d));return a.getChildAtIndex(b?g-1:g)}
const E={"#text":a=>({node:f.$createTextNode(a.textContent)}),a:a=>({node:a instanceof HTMLAnchorElement?A.$createLinkNode(a.href):f.$createTextNode(a.textContent)}),b:a=>{const b="normal"===a.style.fontWeight;return{forChild:c=>{f.$isTextNode(c)&&!b&&c.toggleFormat("bold")},node:null}},br:()=>({node:f.$createLineBreakNode()}),div:a=>({after:b=>{const c=a.parentNode;null!=c&&a!==c.lastChild&&b.push(f.$createLineBreakNode());return b},node:null!==a.style.fontFamily.match("monospace")?y.$createCodeNode():
null}),em:()=>({forChild:a=>{f.$isTextNode(a)&&a.toggleFormat("italic")},node:null}),h1:()=>({node:z.$createHeadingNode("h1")}),h2:()=>({node:z.$createHeadingNode("h2")}),h3:()=>({node:z.$createHeadingNode("h3")}),h4:()=>({node:z.$createHeadingNode("h4")}),h5:()=>({node:z.$createHeadingNode("h5")}),i:()=>({forChild:a=>{f.$isTextNode(a)&&a.toggleFormat("italic")},node:null}),li:()=>({node:w.$createListItemNode()}),ol:()=>({node:w.$createListNode("ol")}),p:()=>({node:f.$createParagraphNode()}),pre:()=>
({node:y.$createCodeNode()}),span:a=>{const b="700"===a.style.fontWeight;return{forChild:c=>{f.$isTextNode(c)&&b&&c.toggleFormat("bold")},node:null}},strong:()=>({forChild:a=>{f.$isTextNode(a)&&a.toggleFormat("bold")},node:null}),table:a=>({node:a.classList.contains("js-file-line-container")?y.$createCodeNode():null}),td:a=>{const b=a.classList.contains("js-file-line");return{after:c=>{b&&a.parentNode&&a.parentNode.nextSibling&&c.push(f.$createLineBreakNode());return c},node:null}},u:()=>({forChild:a=>
{f.$isTextNode(a)&&a.toggleFormat("underline")},node:null}),ul:()=>({node:w.$createListNode("ul")})};
function F(a,b,c,d=new Map){let g=[],e=null;var k=a.nodeName.toLowerCase(),h=(c._config.htmlTransforms||{})[k]||b[k],l=h?h(a):null;h=null;if(null!==l){h=l.after;e=l.node;if(null!==e){g.push(e);const n=Array.from(d.values());for(let m=0;m<n.length;m++)n[m](e)}null!=l.forChild&&d.set(k,l.forChild)}a=a.childNodes;k=[];for(l=0;l<a.length;l++)k.push(...F(a[l],b,c,d));null!=h&&(k=h(k));null==e?g=g.concat(k):f.$isElementNode(e)&&e.append(...k);return g}
function G(a,b,c){var d=a.getData("application/x-lexical-editor");if(d){var g=c._config.namespace;try{const l=JSON.parse(d);if(l.namespace===g){const {range:n,nodeMap:m}=l.state;var e=new Map(m);d=[];for(g=0;g<n.length;g++){var k=e.get(n[g]);if(void 0!==k){var h=f.$createNodeFromParse(k,e);d.push(h)}}b.insertNodes(d);return}}catch(l){}}if(e=a.getData("text/html")){e=(new DOMParser).parseFromString(e,"text/html");a=[];e=e.body?Array.from(e.body.childNodes):[];k=e.length;for(h=0;h<k;h++)d=F(e[h],E,
c),null!==d&&(a=a.concat(d));c=a;a=[];e=null;for(k=0;k<c.length;k++)h=c[k],!f.$isElementNode(h)||h.isInline()?(null===e&&(e=f.$createParagraphNode(),a.push(e)),null!==e&&e.append(h)):(a.push(h),e=null);b.insertNodes(a)}else H(a,b)}function H(a,b){a=a.getData("text/plain");null!=a&&b.insertRawText(a)}
function I(a,b){a.preventDefault();b.update(()=>{const c=a.clipboardData,d=f.$getSelection();if(null!==d&&null!=c){var g=window.getSelection();if(!g.isCollapsed){var e=g.getRangeAt(0);e&&(g=document.createElement("div"),e=e.cloneContents(),g.appendChild(e),c.setData("text/html",g.innerHTML));c.setData("text/plain",d.getTextContent())}}})}
function J(a,b){a.preventDefault();b.update(()=>{const c=a.clipboardData;var d=f.$getSelection();if(null!==d&&null!=c){var g=window.getSelection();if(!g.isCollapsed){var e=g.getRangeAt(0);e&&(g=document.createElement("div"),e=e.cloneContents(),g.appendChild(e),c.setData("text/html",g.innerHTML));c.setData("text/plain",d.getTextContent());g=b._config.namespace;e=c.setData;var k=JSON,h=k.stringify;{var l=d.anchor,n=d.focus;var m=l.getCharacterOffset();const x=n.getCharacterOffset();var p=l.getNode(),
t=n.getNode(),q=p.getParentOrThrow();if(p===t&&f.$isTextNode(p)&&(q.canBeEmpty()||1<q.getChildrenSize()))d=B(p),p=x>m,d.__text=d.__text.slice(p?m:x,p?x:m),m=d.getKey(),m={nodeMap:[[m,d]],range:[m]};else if(d=d.getNodes(),0===d.length)m={nodeMap:[],range:[]};else{p=d.length;t=d[0];q=t.getParent();if(null!==q&&(!q.canBeEmpty()||f.$isRootNode(q))){var u=q.__children;if(u.length===p){var r=!0;for(var v=0;v<u.length;v++)if(u[v]!==d[v].__key){r=!1;break}r&&(p++,d.push(q))}}q=d[p-1];l=l.isBefore(n);n=new Map;
u=[];C(t,l?m:x,!0,u,n);for(t=0;t<p;t++)if(r=d[t],v=r.getKey(),!(n.has(v)||f.$isElementNode(r)&&r.excludeFromCopy())){const K=B(r);f.$isRootNode(r.getParent())&&u.push(r.getKey());n.set(v,K)}C(q,l?x:m,!1,u,n);m={nodeMap:Array.from(n.entries()),range:u}}}e.call(c,"application/x-lexical-editor",h.call(k,{namespace:g,state:m}))}}})}exports.$createNodesFromDOM=F;exports.$insertDataTransferForPlainText=H;exports.$insertDataTransferForRichText=G;
exports.$shouldOverrideDefaultCharacterSelection=function(a,b){var c=a.focus;a=c.offset;"element"===c.type?(c=c.getNode(),b=D(c,b,a)):(c=c.getNode(),b&&0===a||!b&&a===c.getTextContentSize()?(a=b?c.getPreviousSibling():c.getNextSibling(),b=null===a?D(c.getParentOrThrow(),b,c.getIndexWithinParent()+(b?0:1)):a):b=null);return f.$isDecoratorNode(b)&&!b.isIsolated()};exports.onCopyForPlainText=I;exports.onCopyForRichText=J;
exports.onCutForPlainText=function(a,b){I(a,b);b.update(()=>{const c=f.$getSelection();null!==c&&c.removeText()})};exports.onCutForRichText=function(a,b){J(a,b);b.update(()=>{const c=f.$getSelection();null!==c&&c.removeText()})};exports.onPasteForPlainText=function(a,b){a.preventDefault();b.update(()=>{const c=f.$getSelection(),d=a.clipboardData;null!=d&&null!==c&&H(d,c)})};
exports.onPasteForRichText=function(a,b){a.preventDefault();b.update(()=>{const c=f.$getSelection(),d=a.clipboardData;null!=d&&null!==c&&G(d,c,b)})};
var g=require("lexical");function x(a){a=a.getLatest();const b=a.constructor.clone(a);b.__parent=a.__parent;g.$isElementNode(a)&&g.$isElementNode(b)?(b.__children=Array.from(a.__children),b.__format=a.__format,b.__indent=a.__indent,b.__dir=a.__dir):g.$isTextNode(a)&&g.$isTextNode(b)?(b.__format=a.__format,b.__style=a.__style,b.__mode=a.__mode,b.__detail=a.__detail):g.$isDecoratorNode(a)&&g.$isDecoratorNode(b)&&(b.__state=a.__state);return b}
function y(a,b,c,d,f){for(var e=b;null!==a;){for(b=a.getParent();null!==b&&b.excludeFromCopy();)b=b.getParent();if(null===b)break;if(!g.$isElementNode(a)||!a.excludeFromCopy()){const k=a.getKey();let h=f.get(k);const l=void 0===h;l&&(h=x(a),f.set(k,h));!g.$isTextNode(h)||h.isSegmented()||h.isToken()?g.$isElementNode(h)&&(h.__children=h.__children.slice(c?e:0,c?void 0:e+1)):h.__text=h.__text.slice(c?e:0,c?void 0:e);if(g.$isRootNode(b)){l&&d.push(k);break}}e=f.get(b.getKey());e=g.$isElementNode(e)?
e.__children.indexOf(a.getKey()):a.getIndexWithinParent();a=b}}function z(a,b,c){const d=a.getParent();let f=c;null!==d&&(b&&0===c?(f=a.getIndexWithinParent(),a=d):b||c!==a.getChildrenSize()||(f=a.getIndexWithinParent()+1,a=d));return a.getChildAtIndex(b?f-1:f)}function A(a,b){const {nodeName:c}=a;b=b._htmlConversions.get(c.toLowerCase());let d=null;void 0!==b&&b.forEach(f=>{f=f(a);null!==f&&(null===d||d.priority<f.priority)&&(d=f)});return null!==d?d.conversion:null}
function B(a,b,c=new Map){let d=[],f=null;var e=A(a,b),k=e?e(a):null;e=null;if(null!==k){e=k.after;f=k.node;if(null!==f){d.push(f);var h=Array.from(c.values());for(let l=0;l<h.length;l++)h[l](f)}null!=k.forChild&&c.set(a.nodeName,k.forChild)}a=a.childNodes;k=[];for(h=0;h<a.length;h++)k.push(...B(a[h],b,c));null!=e&&(k=e(k));null==f?d=d.concat(k):g.$isElementNode(f)&&f.append(...k);return d}
function C(a,b,c){var d=a.getData("application/x-lexical-editor");if(d){var f=c._config.namespace;try{const l=JSON.parse(d);if(l.namespace===f){const {range:n,nodeMap:m}=l.state;var e=new Map(m);d=[];for(f=0;f<n.length;f++){var k=e.get(n[f]);if(void 0!==k){var h=g.$createNodeFromParse(k,e);d.push(h)}}b.insertNodes(d);return}}catch(l){}}if(e=a.getData("text/html")){e=(new DOMParser).parseFromString(e,"text/html");a=[];e=e.body?Array.from(e.body.childNodes):[];k=e.length;for(h=0;h<k;h++)d=B(e[h],c),
null!==d&&(a=a.concat(d));c=a;a=[];e=null;for(k=0;k<c.length;k++)h=c[k],!g.$isElementNode(h)||h.isInline()?(null===e&&(e=g.$createParagraphNode(),a.push(e)),null!==e&&e.append(h)):(a.push(h),e=null);b.insertNodes(a)}else D(a,b)}function D(a,b){a=a.getData("text/plain");null!=a&&b.insertRawText(a)}
function E(a,b){a.preventDefault();b.update(()=>{const c=a.clipboardData,d=g.$getSelection();if(null!==d&&null!=c){var f=window.getSelection();if(!f.isCollapsed){var e=f.getRangeAt(0);e&&(f=document.createElement("div"),e=e.cloneContents(),f.appendChild(e),c.setData("text/html",f.innerHTML));c.setData("text/plain",d.getTextContent())}}})}
function F(a,b){a.preventDefault();b.update(()=>{const c=a.clipboardData;var d=g.$getSelection();if(null!==d&&null!=c){var f=window.getSelection();if(!f.isCollapsed){var e=f.getRangeAt(0);e&&(f=document.createElement("div"),e=e.cloneContents(),f.appendChild(e),c.setData("text/html",f.innerHTML));c.setData("text/plain",d.getTextContent());f=b._config.namespace;e=c.setData;var k=JSON,h=k.stringify;{if(!g.$isRangeSelection(d))throw Error("Minified Lexical error #68; see codes.json for the full message or use the non-minified dev environment for full errors and additional helpful warnings.");
var l=d.anchor,n=d.focus;var m=l.getCharacterOffset();const w=n.getCharacterOffset();var p=l.getNode(),t=n.getNode(),q=p.getParentOrThrow();if(p===t&&g.$isTextNode(p)&&(q.canBeEmpty()||1<q.getChildrenSize()))d=x(p),p=w>m,d.__text=d.__text.slice(p?m:w,p?w:m),m=d.getKey(),m={nodeMap:[[m,d]],range:[m]};else if(d=d.getNodes(),0===d.length)m={nodeMap:[],range:[]};else{p=d.length;t=d[0];q=t.getParent();if(null!==q&&(!q.canBeEmpty()||g.$isRootNode(q))){var u=q.__children;if(u.length===p){var r=!0;for(var v=
0;v<u.length;v++)if(u[v]!==d[v].__key){r=!1;break}r&&(p++,d.push(q))}}q=d[p-1];l=l.isBefore(n);n=new Map;u=[];y(t,l?m:w,!0,u,n);for(t=0;t<p;t++)if(r=d[t],v=r.getKey(),!(n.has(v)||g.$isElementNode(r)&&r.excludeFromCopy())){const G=x(r);g.$isRootNode(r.getParent())&&u.push(r.getKey());n.set(v,G)}y(q,l?w:m,!1,u,n);m={nodeMap:Array.from(n.entries()),range:u}}}e.call(c,"application/x-lexical-editor",h.call(k,{namespace:f,state:m}))}}})}exports.$createNodesFromDOM=B;
exports.$insertDataTransferForPlainText=D;exports.$insertDataTransferForRichText=C;exports.$shouldOverrideDefaultCharacterSelection=function(a,b){var c=a.focus;a=c.offset;"element"===c.type?(c=c.getNode(),b=z(c,b,a)):(c=c.getNode(),b&&0===a||!b&&a===c.getTextContentSize()?(a=b?c.getPreviousSibling():c.getNextSibling(),b=null===a?z(c.getParentOrThrow(),b,c.getIndexWithinParent()+(b?0:1)):a):b=null);return g.$isDecoratorNode(b)&&!b.isIsolated()};exports.onCopyForPlainText=E;
exports.onCopyForRichText=F;exports.onCutForPlainText=function(a,b){E(a,b);b.update(()=>{const c=g.$getSelection();g.$isRangeSelection(c)&&c.removeText()})};exports.onCutForRichText=function(a,b){F(a,b);b.update(()=>{const c=g.$getSelection();g.$isRangeSelection(c)&&c.removeText()})};exports.onPasteForPlainText=function(a,b){a.preventDefault();b.update(()=>{const c=g.$getSelection(),d=a.clipboardData;null!=d&&g.$isRangeSelection(c)&&D(d,c)})};
exports.onPasteForRichText=function(a,b){a.preventDefault();b.update(()=>{const c=g.$getSelection(),d=a.clipboardData;null!=d&&g.$isRangeSelection(c)&&C(d,c,b)})};

@@ -109,2 +109,8 @@ /**

function $cloneContents(selection) {
if (!lexical.$isRangeSelection(selection)) {
{
throw Error(`TODO`);
}
}
const anchor = selection.anchor;

@@ -111,0 +117,0 @@ const focus = selection.focus;

@@ -7,15 +7,15 @@ /**

*/
var l=require("lexical");const r=new Map;function v(a){a=a.getLatest();const c=a.constructor.clone(a);c.__parent=a.__parent;l.$isElementNode(a)&&l.$isElementNode(c)?(c.__children=Array.from(a.__children),c.__format=a.__format,c.__indent=a.__indent,c.__dir=a.__dir):l.$isTextNode(a)&&l.$isTextNode(c)?(c.__format=a.__format,c.__style=a.__style,c.__mode=a.__mode,c.__detail=a.__detail):l.$isDecoratorNode(a)&&l.$isDecoratorNode(c)&&(c.__state=a.__state);return c}
function w(a,c,b,g,k){for(var e=c;null!==a;){for(c=a.getParent();null!==c&&c.excludeFromCopy();)c=c.getParent();if(null===c)break;if(!l.$isElementNode(a)||!a.excludeFromCopy()){const d=a.getKey();let f=k.get(d);const h=void 0===f;h&&(f=v(a),k.set(d,f));!l.$isTextNode(f)||f.isSegmented()||f.isToken()?l.$isElementNode(f)&&(f.__children=f.__children.slice(b?e:0,b?void 0:e+1)):f.__text=f.__text.slice(b?e:0,b?void 0:e);if(l.$isRootNode(c)){h&&g.push(d);break}}e=k.get(c.getKey());e=l.$isElementNode(e)?
e.__children.indexOf(a.getKey()):a.getIndexWithinParent();a=c}}function x(a){return r.get(a)||null}function y(a,c){var b=x(a.getStyle());c=b?{...b,...c}:c;b="";for(g in c)g&&(b+=`${g}: ${c[g]};`);var g=b;a.setStyle(g);r.set(g,c)}function z(a,c,b,g){a.modify(c?"extend":"move",b,g)}function A(a){a=a.anchor.getNode();return"rtl"===(l.$isRootNode(a)?a:a.getParentOrThrow()).getDirection()}
function B(a){for(;null!==a&&!l.$isRootNode(a);){const c=a.getLatest(),b=a.getParent();0===c.__children.length&&a.remove();a=b}}
exports.$cloneContents=function(a){var c=a.anchor,b=a.focus,g=c.getCharacterOffset();const k=b.getCharacterOffset();var e=c.getNode(),d=b.getNode(),f=e.getParentOrThrow();if(e===d&&l.$isTextNode(e)&&(f.canBeEmpty()||1<f.getChildrenSize()))return a=v(e),e=k>g,a.__text=a.__text.slice(e?g:k,e?k:g),g=a.getKey(),{nodeMap:[[g,a]],range:[g]};a=a.getNodes();if(0===a.length)return{nodeMap:[],range:[]};e=a.length;d=a[0];f=d.getParent();if(null!==f&&(!f.canBeEmpty()||l.$isRootNode(f))){var h=f.__children;if(h.length===
e){var m=!0;for(var n=0;n<h.length;n++)if(h[n]!==a[n].__key){m=!1;break}m&&(e++,a.push(f))}}f=a[e-1];c=c.isBefore(b);b=new Map;h=[];w(d,c?g:k,!0,h,b);for(d=0;d<e;d++)if(m=a[d],n=m.getKey(),!(b.has(n)||l.$isElementNode(m)&&m.excludeFromCopy())){const t=v(m);l.$isRootNode(m.getParent())&&h.push(m.getKey());b.set(n,t)}w(f,c?k:g,!1,h,b);return{nodeMap:Array.from(b.entries()),range:h}};
exports.$getSelectionStyleValueForProperty=function(a,c,b=""){let g=null;const k=a.getNodes();var e=a.anchor,d=a.focus,f=a.isBackward();a=f?d.offset:e.offset;e=f?d.getNode():e.getNode();for(d=0;d<k.length;d++){var h=k[d];if((0===d||0!==a||!h.is(e))&&l.$isTextNode(h)){f=c;var m=b;h=h.getStyle();h=x(h);f=null!==h?h[f]||m:m;if(null===g)g=f;else if(g!==f){g="";break}}}return null===g?b:g};exports.$isAtNodeEnd=function(a){return"text"===a.type?a.offset===a.getNode().getTextContentSize():a.offset===a.getNode().getChildrenSize()};
exports.$isParentElementRTL=A;exports.$moveCaretSelection=z;exports.$moveCharacter=function(a,c,b){const g=A(a);z(a,c,b?!g:g,"character")};
exports.$patchStyleText=function(a,c){var b=a.getNodes();const g=b.length-1;let k=b[0],e=b[g];if(!a.isCollapsed()){var d=a.anchor,f=a.focus;a=k.getTextContent().length;var h=f.offset,m=d.offset;d=(f=d.isBefore(f))?m:h;f=f?h:m;if(d===k.getTextContentSize()){const n=k.getNextSibling();l.$isTextNode(n)&&(d=m=0,k=n)}if(k.is(e))l.$isTextNode(k)&&(d=m>h?h:m,f=m>h?m:h,d!==f&&(0===d&&f===a?(y(k,c),k.select(d,f)):(b=k.splitText(d,f),b=0===d?b[0]:b[1],y(b,c),b.select(0,f-d))));else for(l.$isTextNode(k)&&(0!==
d&&([,k]=k.splitText(d)),y(k,c)),l.$isTextNode(e)&&(a=e.getTextContent().length,f!==a&&([e]=e.splitText(f)),0!==f&&y(e,c)),a=1;a<g;a++)h=b[a],m=h.getKey(),l.$isTextNode(h)&&m!==k.getKey()&&m!==e.getKey()&&!h.isToken()&&y(h,c)}};
exports.$selectAll=function(a){const c=a.anchor;a=a.focus;var b=c.getNode().getTopLevelElementOrThrow().getParentOrThrow();let g=b.getFirstDescendant();b=b.getLastDescendant();let k="element",e="element",d=0;l.$isTextNode(g)?k="text":l.$isElementNode(g)||null===g||(g=g.getParentOrThrow());l.$isTextNode(b)?(e="text",d=b.getTextContentSize()):l.$isElementNode(b)||null===b||(b=b.getParentOrThrow(),d=b.getChildrenSize());g&&b&&(c.set(g.getKey(),0,k),a.set(b.getKey(),d,e))};
exports.$wrapLeafNodesInElements=function(a,c,b){const g=a.getNodes(),k=g.length;if(0===k){a=a.anchor;a="text"===a.type?a.getNode().getParentOrThrow():a.getNode();var e=a.getChildren();let p=c();e.forEach(u=>p.append(u));b&&(p=b.append(p));a.replace(p)}else{var d=g[0],f=new Map;e=[];for(d=l.$isElementNode(d)?d:d.getParentOrThrow();null!==d;){var h=d.getPreviousSibling();if(null!==h){d=h;break}d=d.getParentOrThrow();if(l.$isRootNode(d))break}h=new Set;for(var m=0;m<k;m++){var n=g[m];l.$isElementNode(n)&&
0===n.getChildrenSize()&&h.add(n.getKey())}var t=new Set;for(m=0;m<k;m++){var q=g[m];n=q.getParent();if(null!==n&&l.$isLeafNode(q)&&!t.has(q.getKey())){if(q=n.getKey(),void 0===f.get(q)){const p=c();e.push(p);f.set(q,p);n.getChildren().forEach(u=>{p.append(u);t.add(u.getKey())});B(n)}}else h.has(q.getKey())&&(e.push(c()),q.remove())}if(b)for(c=0;c<e.length;c++)b.append(e[c]);if(l.$isRootNode(d))if(c=d.getFirstChild(),l.$isElementNode(c)&&(d=c),null===c)if(b)d.append(b);else for(b=0;b<e.length;b++)d.append(e[b]);
var k=require("lexical");const r=new Map;function v(a){a=a.getLatest();const c=a.constructor.clone(a);c.__parent=a.__parent;k.$isElementNode(a)&&k.$isElementNode(c)?(c.__children=Array.from(a.__children),c.__format=a.__format,c.__indent=a.__indent,c.__dir=a.__dir):k.$isTextNode(a)&&k.$isTextNode(c)?(c.__format=a.__format,c.__style=a.__style,c.__mode=a.__mode,c.__detail=a.__detail):k.$isDecoratorNode(a)&&k.$isDecoratorNode(c)&&(c.__state=a.__state);return c}
function w(a,c,b,g,l){for(var e=c;null!==a;){for(c=a.getParent();null!==c&&c.excludeFromCopy();)c=c.getParent();if(null===c)break;if(!k.$isElementNode(a)||!a.excludeFromCopy()){const d=a.getKey();let f=l.get(d);const h=void 0===f;h&&(f=v(a),l.set(d,f));!k.$isTextNode(f)||f.isSegmented()||f.isToken()?k.$isElementNode(f)&&(f.__children=f.__children.slice(b?e:0,b?void 0:e+1)):f.__text=f.__text.slice(b?e:0,b?void 0:e);if(k.$isRootNode(c)){h&&g.push(d);break}}e=l.get(c.getKey());e=k.$isElementNode(e)?
e.__children.indexOf(a.getKey()):a.getIndexWithinParent();a=c}}function x(a){return r.get(a)||null}function y(a,c){var b=x(a.getStyle());c=b?{...b,...c}:c;b="";for(g in c)g&&(b+=`${g}: ${c[g]};`);var g=b;a.setStyle(g);r.set(g,c)}function z(a,c,b,g){a.modify(c?"extend":"move",b,g)}function A(a){a=a.anchor.getNode();return"rtl"===(k.$isRootNode(a)?a:a.getParentOrThrow()).getDirection()}
function B(a){for(;null!==a&&!k.$isRootNode(a);){const c=a.getLatest(),b=a.getParent();0===c.__children.length&&a.remove();a=b}}
exports.$cloneContents=function(a){if(!k.$isRangeSelection(a))throw Error("Minified Lexical error #68; see codes.json for the full message or use the non-minified dev environment for full errors and additional helpful warnings.");var c=a.anchor,b=a.focus,g=c.getCharacterOffset();const l=b.getCharacterOffset();var e=c.getNode(),d=b.getNode(),f=e.getParentOrThrow();if(e===d&&k.$isTextNode(e)&&(f.canBeEmpty()||1<f.getChildrenSize()))return a=v(e),e=l>g,a.__text=a.__text.slice(e?g:l,e?l:g),g=a.getKey(),
{nodeMap:[[g,a]],range:[g]};a=a.getNodes();if(0===a.length)return{nodeMap:[],range:[]};e=a.length;d=a[0];f=d.getParent();if(null!==f&&(!f.canBeEmpty()||k.$isRootNode(f))){var h=f.__children;if(h.length===e){var m=!0;for(var n=0;n<h.length;n++)if(h[n]!==a[n].__key){m=!1;break}m&&(e++,a.push(f))}}f=a[e-1];c=c.isBefore(b);b=new Map;h=[];w(d,c?g:l,!0,h,b);for(d=0;d<e;d++)if(m=a[d],n=m.getKey(),!(b.has(n)||k.$isElementNode(m)&&m.excludeFromCopy())){const t=v(m);k.$isRootNode(m.getParent())&&h.push(m.getKey());
b.set(n,t)}w(f,c?l:g,!1,h,b);return{nodeMap:Array.from(b.entries()),range:h}};exports.$getSelectionStyleValueForProperty=function(a,c,b=""){let g=null;const l=a.getNodes();var e=a.anchor,d=a.focus,f=a.isBackward();a=f?d.offset:e.offset;e=f?d.getNode():e.getNode();for(d=0;d<l.length;d++){var h=l[d];if((0===d||0!==a||!h.is(e))&&k.$isTextNode(h)){f=c;var m=b;h=h.getStyle();h=x(h);f=null!==h?h[f]||m:m;if(null===g)g=f;else if(g!==f){g="";break}}}return null===g?b:g};
exports.$isAtNodeEnd=function(a){return"text"===a.type?a.offset===a.getNode().getTextContentSize():a.offset===a.getNode().getChildrenSize()};exports.$isParentElementRTL=A;exports.$moveCaretSelection=z;exports.$moveCharacter=function(a,c,b){const g=A(a);z(a,c,b?!g:g,"character")};
exports.$patchStyleText=function(a,c){var b=a.getNodes();const g=b.length-1;let l=b[0],e=b[g];if(!a.isCollapsed()){var d=a.anchor,f=a.focus;a=l.getTextContent().length;var h=f.offset,m=d.offset;d=(f=d.isBefore(f))?m:h;f=f?h:m;if(d===l.getTextContentSize()){const n=l.getNextSibling();k.$isTextNode(n)&&(d=m=0,l=n)}if(l.is(e))k.$isTextNode(l)&&(d=m>h?h:m,f=m>h?m:h,d!==f&&(0===d&&f===a?(y(l,c),l.select(d,f)):(b=l.splitText(d,f),b=0===d?b[0]:b[1],y(b,c),b.select(0,f-d))));else for(k.$isTextNode(l)&&(0!==
d&&([,l]=l.splitText(d)),y(l,c)),k.$isTextNode(e)&&(a=e.getTextContent().length,f!==a&&([e]=e.splitText(f)),0!==f&&y(e,c)),a=1;a<g;a++)h=b[a],m=h.getKey(),k.$isTextNode(h)&&m!==l.getKey()&&m!==e.getKey()&&!h.isToken()&&y(h,c)}};
exports.$selectAll=function(a){const c=a.anchor;a=a.focus;var b=c.getNode().getTopLevelElementOrThrow().getParentOrThrow();let g=b.getFirstDescendant();b=b.getLastDescendant();let l="element",e="element",d=0;k.$isTextNode(g)?l="text":k.$isElementNode(g)||null===g||(g=g.getParentOrThrow());k.$isTextNode(b)?(e="text",d=b.getTextContentSize()):k.$isElementNode(b)||null===b||(b=b.getParentOrThrow(),d=b.getChildrenSize());g&&b&&(c.set(g.getKey(),0,l),a.set(b.getKey(),d,e))};
exports.$wrapLeafNodesInElements=function(a,c,b){const g=a.getNodes(),l=g.length;if(0===l){a=a.anchor;a="text"===a.type?a.getNode().getParentOrThrow():a.getNode();var e=a.getChildren();let p=c();e.forEach(u=>p.append(u));b&&(p=b.append(p));a.replace(p)}else{var d=g[0],f=new Map;e=[];for(d=k.$isElementNode(d)?d:d.getParentOrThrow();null!==d;){var h=d.getPreviousSibling();if(null!==h){d=h;break}d=d.getParentOrThrow();if(k.$isRootNode(d))break}h=new Set;for(var m=0;m<l;m++){var n=g[m];k.$isElementNode(n)&&
0===n.getChildrenSize()&&h.add(n.getKey())}var t=new Set;for(m=0;m<l;m++){var q=g[m];n=q.getParent();if(null!==n&&k.$isLeafNode(q)&&!t.has(q.getKey())){if(q=n.getKey(),void 0===f.get(q)){const p=c();e.push(p);f.set(q,p);n.getChildren().forEach(u=>{p.append(u);t.add(u.getKey())});B(n)}}else h.has(q.getKey())&&(e.push(c()),q.remove())}if(b)for(c=0;c<e.length;c++)b.append(e[c]);if(k.$isRootNode(d))if(c=d.getFirstChild(),k.$isElementNode(c)&&(d=c),null===c)if(b)d.append(b);else for(b=0;b<e.length;b++)d.append(e[b]);
else if(b)c.insertBefore(b);else for(b=0;b<e.length;b++)c.insertBefore(e[b]);else if(b)d.insertAfter(b);else for(b=e.length-1;0<=b;b--)d.insertAfter(e[b]);a.dirty=!0}};exports.getStyleObjectFromCSS=x;

@@ -16,7 +16,7 @@ {

"license": "MIT",
"version": "0.1.9",
"version": "0.1.10",
"peerDependencies": {
"lexical": "0.1.9",
"@lexical/list": "0.1.9",
"@lexical/table": "0.1.9"
"lexical": "0.1.10",
"@lexical/list": "0.1.10",
"@lexical/table": "0.1.10"
},

@@ -23,0 +23,0 @@ "repository": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc