@lexical/utils 0.4.1 → 0.5.1-next.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.
@@ -12,7 +12,8 @@ var lexical = require('lexical');
12
12
  function addClassNamesToElement(element, ...classNames) {
13
13
  classNames.forEach(className => {
14
14
  if (typeof className === 'string') {
15
- element.classList.add(...className.split(' '));
15
+ const classesToAdd = className.split(' ').filter(n => n !== '');
16
+ element.classList.add(...classesToAdd);
16
17
  }
17
18
  });
18
19
  }
@@ -316,13 +317,13 @@ function $restoreEditorState(editor, editorState) {
316
317
  const selection = editorState._selection;
317
318
  lexical.$setSelection(selection === null ? null : selection.clone());
318
319
  }
319
- function $insertBlockNode(node) {
320
+ function $insertNodeToNearestRoot(node) {
320
321
  const selection = lexical.$getSelection();
321
322
 
322
323
  if (lexical.$isRangeSelection(selection)) {
323
324
  const focusNode = selection.focus.getNode();
324
325
  focusNode.getTopLevelElementOrThrow().insertAfter(node);
325
- } else if (lexical.$isNodeSelection(selection) || lexical.$isGridSelection(selection)) {
326
+ } else if (lexical.$isNodeSelection(selection) || lexical.DEPRECATED_$isGridSelection(selection)) {
326
327
  const nodes = selection.getNodes();
327
328
  nodes[nodes.length - 1].getTopLevelElementOrThrow().insertAfter(node);
328
329
  } else {
@@ -335,13 +336,20 @@ function $insertBlockNode(node) {
335
336
  paragraphNode.select();
336
337
  return node.getLatest();
337
338
  }
339
+ function $wrapNodeInElement(node, createElementNode) {
340
+ const elementNode = createElementNode();
341
+ node.replace(elementNode);
342
+ elementNode.append(node);
343
+ return elementNode;
344
+ }
338
345
 
339
346
  exports.$dfs = $dfs;
340
347
  exports.$findMatchingParent = $findMatchingParent;
341
348
  exports.$getNearestBlockElementAncestorOrThrow = $getNearestBlockElementAncestorOrThrow;
342
349
  exports.$getNearestNodeOfType = $getNearestNodeOfType;
343
- exports.$insertBlockNode = $insertBlockNode;
350
+ exports.$insertNodeToNearestRoot = $insertNodeToNearestRoot;
344
351
  exports.$restoreEditorState = $restoreEditorState;
352
+ exports.$wrapNodeInElement = $wrapNodeInElement;
345
353
  exports.addClassNamesToElement = addClassNamesToElement;
346
354
  exports.mergeRegister = mergeRegister;
347
355
  exports.registerNestedElementResolver = registerNestedElementResolver;
@@ -64,4 +64,9 @@ declare export function $restoreEditorState(
64
64
  editorState: EditorState,
65
65
  ): void;
66
66
 
67
- declare export function $insertBlockNode<T: LexicalNode>(node: T): T;
67
+ declare export function $insertNodeToNearestRoot<T: LexicalNode>(node: T): T;
68
+
69
+ declare export function $wrapNodeInElement(
70
+ node: LexicalNode,
71
+ createElementNode: () => ElementNode,
72
+ ): ElementNode;
@@ -5,12 +5,12 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  'use strict';var l=require("lexical");function n(a){throw Error(`Minified Lexical error #${a}; visit https://lexical.dev/docs/error?code=${a} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}function p(a,b){for(;a!==l.$getRoot()&&null!=a;){if(b(a))return a;a=a.getParent()}return null}
8
- function q(a,b,e,f,d){var c=e._nodes.get(a.__type);void 0===c&&n(5);for(var h in a){var k=a[h];if(null!=k&&"object"===typeof k&&(k=k.editorState,null!=k)){var g=l.createEditor({namespace:k.namespace});g._nodes=e._nodes;g._parentEditor=e._parentEditor;g._pendingEditorState=r(g,k);a[h]=g}}c=c.klass;h=a.__key;a.__key=void 0;c=c.clone(a);a.__key=h;h=c.__key;d._nodeMap.set(h,c);c.__parent=f;if(l.$isElementNode(c)){f=a.__children;for(k=0;k<f.length;k++)g=b.get(f[k]),void 0!==g&&(g=q(g,b,e,h,d).__key,c.__children.push(g));
8
+ function q(a,b,d,f,e){var c=d._nodes.get(a.__type);void 0===c&&n(5);for(var h in a){var k=a[h];if(null!=k&&"object"===typeof k&&(k=k.editorState,null!=k)){var g=l.createEditor({namespace:k.namespace});g._nodes=d._nodes;g._parentEditor=d._parentEditor;g._pendingEditorState=r(g,k);a[h]=g}}c=c.klass;h=a.__key;a.__key=void 0;c=c.clone(a);a.__key=h;h=c.__key;e._nodeMap.set(h,c);c.__parent=f;if(l.$isElementNode(c)){f=a.__children;for(k=0;k<f.length;k++)g=b.get(f[k]),void 0!==g&&(g=q(g,b,d,h,e).__key,c.__children.push(g));
9
9
  c.__indent=a.__indent;c.__format=a.__format;c.__dir=a.__dir}else l.$isTextNode(c)&&(c.__format=a.__format,c.__style=a.__style,c.__mode=a.__mode,c.__detail=a.__detail);return c}
10
- function t(a,b){let e=b._editorState.constructor,f=new Map,d=new e(f),c=new Map(a._nodeMap),h=c.get("root");a=b._updating;try{b._updating=!1,b.update(()=>{let k=b._dirtyElements,g=b._dirtyLeaves,m=b._dirtyType;b._dirtyElements=new Map;b._dirtyLeaves=new Set;b._dirtyType=0;try{q(h,c,b,null,d)}finally{b._dirtyElements=k,b._dirtyLeaves=g,b._dirtyType=m}})}finally{b._updating=a}d._readOnly=!0;return d}function r(a,b){b="string"===typeof b?JSON.parse(b):b;return t(b,a)}
11
- exports.$dfs=function(a,b){let e=[];a=(a||l.$getRoot()).getLatest();b=b||(l.$isElementNode(a)?a.getLastDescendant():a);for(var f=a,d=0;null!==(f=f.getParent());)d++;for(f=d;null!==a&&!a.is(b);)if(e.push({depth:f,node:a}),l.$isElementNode(a)&&0<a.getChildrenSize())a=a.getFirstChild(),f++;else for(d=null;null===d&&null!==a;)d=a.getNextSibling(),null===d?(a=a.getParent(),f--):a=d;null!==a&&a.is(b)&&e.push({depth:f,node:a});return e};exports.$findMatchingParent=p;
10
+ function t(a,b){let d=b._editorState.constructor,f=new Map,e=new d(f),c=new Map(a._nodeMap),h=c.get("root");a=b._updating;try{b._updating=!1,b.update(()=>{let k=b._dirtyElements,g=b._dirtyLeaves,m=b._dirtyType;b._dirtyElements=new Map;b._dirtyLeaves=new Set;b._dirtyType=0;try{q(h,c,b,null,e)}finally{b._dirtyElements=k,b._dirtyLeaves=g,b._dirtyType=m}})}finally{b._updating=a}e._readOnly=!0;return e}function r(a,b){b="string"===typeof b?JSON.parse(b):b;return t(b,a)}
11
+ exports.$dfs=function(a,b){let d=[];a=(a||l.$getRoot()).getLatest();b=b||(l.$isElementNode(a)?a.getLastDescendant():a);for(var f=a,e=0;null!==(f=f.getParent());)e++;for(f=e;null!==a&&!a.is(b);)if(d.push({depth:f,node:a}),l.$isElementNode(a)&&0<a.getChildrenSize())a=a.getFirstChild(),f++;else for(e=null;null===e&&null!==a;)e=a.getNextSibling(),null===e?(a=a.getParent(),f--):a=e;null!==a&&a.is(b)&&d.push({depth:f,node:a});return d};exports.$findMatchingParent=p;
12
12
  exports.$getNearestBlockElementAncestorOrThrow=function(a){a=p(a,b=>l.$isElementNode(b)&&!b.isInline());l.$isElementNode(a)||n(4);return a};exports.$getNearestNodeOfType=function(a,b){for(;null!=a;){if(a instanceof b)return a;a=a.getParent()}return null};
13
- exports.$insertBlockNode=function(a){var b=l.$getSelection();l.$isRangeSelection(b)?b.focus.getNode().getTopLevelElementOrThrow().insertAfter(a):l.$isNodeSelection(b)||l.$isGridSelection(b)?(b=b.getNodes(),b[b.length-1].getTopLevelElementOrThrow().insertAfter(a)):l.$getRoot().append(a);b=l.$createParagraphNode();a.insertAfter(b);b.select();return a.getLatest()};
14
- exports.$restoreEditorState=function(a,b){let e=new Map(b._nodeMap),f=a._pendingEditorState;f&&(f._nodeMap=e);a._dirtyType=2;a=b._selection;l.$setSelection(null===a?null:a.clone())};exports.addClassNamesToElement=function(a,...b){b.forEach(e=>{"string"===typeof e&&a.classList.add(...e.split(" "))})};exports.mergeRegister=function(...a){return()=>{a.forEach(b=>b())}};
15
- exports.registerNestedElementResolver=function(a,b,e,f){return a.registerNodeTransform(b,d=>{a:{var c=d.getChildren();for(var h=0;h<c.length;h++)if(c[h]instanceof b){c=null;break a}for(c=d;null!==c;)if(h=c,c=c.getParent(),c instanceof b){c={child:h,parent:c};break a}c=null}if(null!==c){const {child:k,parent:g}=c;if(k.is(d)){f(g,d);d=k.getNextSiblings();c=d.length;g.insertAfter(k);if(0!==c){h=e(g);k.insertAfter(h);for(let m=0;m<c;m++)h.append(d[m])}g.canBeEmpty()||0!==g.getChildrenSize()||g.remove()}}})};
16
- exports.removeClassNamesFromElement=function(a,...b){b.forEach(e=>{"string"===typeof e&&a.classList.remove(...e.split(" "))})};exports.unstable_convertLegacyJSONEditorState=r
13
+ exports.$insertNodeToNearestRoot=function(a){var b=l.$getSelection();l.$isRangeSelection(b)?b.focus.getNode().getTopLevelElementOrThrow().insertAfter(a):l.$isNodeSelection(b)||l.DEPRECATED_$isGridSelection(b)?(b=b.getNodes(),b[b.length-1].getTopLevelElementOrThrow().insertAfter(a)):l.$getRoot().append(a);b=l.$createParagraphNode();a.insertAfter(b);b.select();return a.getLatest()};
14
+ exports.$restoreEditorState=function(a,b){let d=new Map(b._nodeMap),f=a._pendingEditorState;f&&(f._nodeMap=d);a._dirtyType=2;a=b._selection;l.$setSelection(null===a?null:a.clone())};exports.$wrapNodeInElement=function(a,b){b=b();a.replace(b);b.append(a);return b};exports.addClassNamesToElement=function(a,...b){b.forEach(d=>{"string"===typeof d&&(d=d.split(" ").filter(f=>""!==f),a.classList.add(...d))})};exports.mergeRegister=function(...a){return()=>{a.forEach(b=>b())}};
15
+ exports.registerNestedElementResolver=function(a,b,d,f){return a.registerNodeTransform(b,e=>{a:{var c=e.getChildren();for(var h=0;h<c.length;h++)if(c[h]instanceof b){c=null;break a}for(c=e;null!==c;)if(h=c,c=c.getParent(),c instanceof b){c={child:h,parent:c};break a}c=null}if(null!==c){const {child:k,parent:g}=c;if(k.is(e)){f(g,e);e=k.getNextSiblings();c=e.length;g.insertAfter(k);if(0!==c){h=d(g);k.insertAfter(h);for(let m=0;m<c;m++)h.append(e[m])}g.canBeEmpty()||0!==g.getChildrenSize()||g.remove()}}})};
16
+ exports.removeClassNamesFromElement=function(a,...b){b.forEach(d=>{"string"===typeof d&&a.classList.remove(...d.split(" "))})};exports.unstable_convertLegacyJSONEditorState=r
package/index.d.ts CHANGED
@@ -24,5 +24,6 @@ export declare function mergeRegister(...func: Array<Func>): () => void;
24
24
  export declare function registerNestedElementResolver<N extends ElementNode>(editor: LexicalEditor, targetNode: Klass<N>, cloneNode: (from: N) => N, handleOverlap: (from: N, to: N) => void): () => void;
25
25
  export declare function unstable_convertLegacyJSONEditorState(editor: LexicalEditor, maybeStringifiedEditorState: string): EditorState;
26
26
  export declare function $restoreEditorState(editor: LexicalEditor, editorState: EditorState): void;
27
- export declare function $insertBlockNode<T extends LexicalNode>(node: T): T;
27
+ export declare function $insertNodeToNearestRoot<T extends LexicalNode>(node: T): T;
28
+ export declare function $wrapNodeInElement(node: LexicalNode, createElementNode: () => ElementNode): ElementNode;
28
29
  export {};
package/package.json CHANGED
@@ -8,14 +8,14 @@
8
8
  "utils"
9
9
  ],
10
10
  "license": "MIT",
11
- "version": "0.4.1",
11
+ "version": "0.5.1-next.0",
12
12
  "main": "LexicalUtils.js",
13
13
  "peerDependencies": {
14
- "lexical": "0.4.1"
14
+ "lexical": "0.5.1-next.0"
15
15
  },
16
16
  "dependencies": {
17
- "@lexical/list": "0.4.1",
18
- "@lexical/table": "0.4.1"
17
+ "@lexical/list": "0.5.1-next.0",
18
+ "@lexical/table": "0.5.1-next.0"
19
19
  },
20
20
  "repository": {
21
21
  "type": "git",