@lexical/text 0.14.4 → 0.15.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.
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
+ *
6
7
  */
8
+
7
9
  'use strict';
8
10
 
9
11
  var lexical = require('lexical');
@@ -179,6 +181,7 @@ function $findTextIntersectionFromCharacters(root, targetCharacters) {
179
181
  * LICENSE file in the root directory of this source tree.
180
182
  *
181
183
  */
184
+
182
185
  /**
183
186
  * Returns a tuple that can be rested (...) into mergeRegister to clean up
184
187
  * node transforms listeners that transforms text into another node, eg. a HashtagNode.
@@ -202,7 +205,7 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
202
205
  const isTargetNode = node => {
203
206
  return node instanceof targetNode;
204
207
  };
205
- const replaceWithSimpleText = node => {
208
+ const $replaceWithSimpleText = node => {
206
209
  const textNode = lexical.$createTextNode(node.getTextContent());
207
210
  textNode.setFormat(node.getFormat());
208
211
  node.replace(textNode);
@@ -210,11 +213,11 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
210
213
  const getMode = node => {
211
214
  return node.getLatest().__mode;
212
215
  };
213
- const textNodeTransform = node => {
216
+ const $textNodeTransform = node => {
214
217
  if (!node.isSimpleText()) {
215
218
  return;
216
219
  }
217
- const prevSibling = node.getPreviousSibling();
220
+ let prevSibling = node.getPreviousSibling();
218
221
  let text = node.getTextContent();
219
222
  let currentNode = node;
220
223
  let match;
@@ -224,7 +227,7 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
224
227
  const prevMatch = getMatch(combinedText);
225
228
  if (isTargetNode(prevSibling)) {
226
229
  if (prevMatch === null || getMode(prevSibling) !== 0) {
227
- replaceWithSimpleText(prevSibling);
230
+ $replaceWithSimpleText(prevSibling);
228
231
  return;
229
232
  } else {
230
233
  const diff = prevMatch.end - previousText.length;
@@ -246,7 +249,7 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
246
249
  return;
247
250
  }
248
251
  }
249
-
252
+ let prevMatchLengthToSkip = 0;
250
253
  // eslint-disable-next-line no-constant-condition
251
254
  while (true) {
252
255
  match = getMatch(text);
@@ -259,7 +262,7 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
259
262
  const nextMatch = getMatch(nextText);
260
263
  if (nextMatch === null) {
261
264
  if (isTargetNode(nextSibling)) {
262
- replaceWithSimpleText(nextSibling);
265
+ $replaceWithSimpleText(nextSibling);
263
266
  } else {
264
267
  nextSibling.markDirty();
265
268
  }
@@ -268,23 +271,22 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
268
271
  return;
269
272
  }
270
273
  }
271
- } else {
272
- const nextMatch = getMatch(nextText);
273
- if (nextMatch !== null && nextMatch.start === 0) {
274
- return;
275
- }
276
274
  }
277
275
  if (match === null) {
278
276
  return;
279
277
  }
280
278
  if (match.start === 0 && lexical.$isTextNode(prevSibling) && prevSibling.isTextEntity()) {
279
+ prevMatchLengthToSkip += match.end;
281
280
  continue;
282
281
  }
283
282
  let nodeToReplace;
284
283
  if (match.start === 0) {
285
284
  [nodeToReplace, currentNode] = currentNode.splitText(match.end);
286
285
  } else {
287
- [, nodeToReplace, currentNode] = currentNode.splitText(match.start, match.end);
286
+ [, nodeToReplace, currentNode] = currentNode.splitText(match.start + prevMatchLengthToSkip, match.end + prevMatchLengthToSkip);
287
+ }
288
+ if (!(nodeToReplace !== undefined)) {
289
+ throw Error(`${'nodeToReplace'} should not be undefined. You may want to check splitOffsets passed to the splitText.`);
288
290
  }
289
291
  const replacementNode = createNode(nodeToReplace);
290
292
  replacementNode.setFormat(nodeToReplace.getFormat());
@@ -292,13 +294,15 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
292
294
  if (currentNode == null) {
293
295
  return;
294
296
  }
297
+ prevMatchLengthToSkip = 0;
298
+ prevSibling = replacementNode;
295
299
  }
296
300
  };
297
- const reverseNodeTransform = node => {
301
+ const $reverseNodeTransform = node => {
298
302
  const text = node.getTextContent();
299
303
  const match = getMatch(text);
300
304
  if (match === null || match.start !== 0) {
301
- replaceWithSimpleText(node);
305
+ $replaceWithSimpleText(node);
302
306
  return;
303
307
  }
304
308
  if (text.length > match.end) {
@@ -308,21 +312,21 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
308
312
  }
309
313
  const prevSibling = node.getPreviousSibling();
310
314
  if (lexical.$isTextNode(prevSibling) && prevSibling.isTextEntity()) {
311
- replaceWithSimpleText(prevSibling);
312
- replaceWithSimpleText(node);
315
+ $replaceWithSimpleText(prevSibling);
316
+ $replaceWithSimpleText(node);
313
317
  }
314
318
  const nextSibling = node.getNextSibling();
315
319
  if (lexical.$isTextNode(nextSibling) && nextSibling.isTextEntity()) {
316
- replaceWithSimpleText(nextSibling);
320
+ $replaceWithSimpleText(nextSibling);
317
321
 
318
322
  // This may have already been converted in the previous block
319
323
  if (isTargetNode(node)) {
320
- replaceWithSimpleText(node);
324
+ $replaceWithSimpleText(node);
321
325
  }
322
326
  }
323
327
  };
324
- const removePlainTextTransform = editor.registerNodeTransform(lexical.TextNode, textNodeTransform);
325
- const removeReverseNodeTransform = editor.registerNodeTransform(targetNode, reverseNodeTransform);
328
+ const removePlainTextTransform = editor.registerNodeTransform(lexical.TextNode, $textNodeTransform);
329
+ const removeReverseNodeTransform = editor.registerNodeTransform(targetNode, $reverseNodeTransform);
326
330
  return [removePlainTextTransform, removeReverseNodeTransform];
327
331
  }
328
332
 
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
+ *
6
7
  */
8
+
7
9
  import { $getRoot, $isDecoratorNode, $isElementNode, $isParagraphNode, $isTextNode, TextNode, $createTextNode } from 'lexical';
8
10
 
9
11
  /**
@@ -177,6 +179,7 @@ function $findTextIntersectionFromCharacters(root, targetCharacters) {
177
179
  * LICENSE file in the root directory of this source tree.
178
180
  *
179
181
  */
182
+
180
183
  /**
181
184
  * Returns a tuple that can be rested (...) into mergeRegister to clean up
182
185
  * node transforms listeners that transforms text into another node, eg. a HashtagNode.
@@ -200,7 +203,7 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
200
203
  const isTargetNode = node => {
201
204
  return node instanceof targetNode;
202
205
  };
203
- const replaceWithSimpleText = node => {
206
+ const $replaceWithSimpleText = node => {
204
207
  const textNode = $createTextNode(node.getTextContent());
205
208
  textNode.setFormat(node.getFormat());
206
209
  node.replace(textNode);
@@ -208,11 +211,11 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
208
211
  const getMode = node => {
209
212
  return node.getLatest().__mode;
210
213
  };
211
- const textNodeTransform = node => {
214
+ const $textNodeTransform = node => {
212
215
  if (!node.isSimpleText()) {
213
216
  return;
214
217
  }
215
- const prevSibling = node.getPreviousSibling();
218
+ let prevSibling = node.getPreviousSibling();
216
219
  let text = node.getTextContent();
217
220
  let currentNode = node;
218
221
  let match;
@@ -222,7 +225,7 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
222
225
  const prevMatch = getMatch(combinedText);
223
226
  if (isTargetNode(prevSibling)) {
224
227
  if (prevMatch === null || getMode(prevSibling) !== 0) {
225
- replaceWithSimpleText(prevSibling);
228
+ $replaceWithSimpleText(prevSibling);
226
229
  return;
227
230
  } else {
228
231
  const diff = prevMatch.end - previousText.length;
@@ -244,7 +247,7 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
244
247
  return;
245
248
  }
246
249
  }
247
-
250
+ let prevMatchLengthToSkip = 0;
248
251
  // eslint-disable-next-line no-constant-condition
249
252
  while (true) {
250
253
  match = getMatch(text);
@@ -257,7 +260,7 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
257
260
  const nextMatch = getMatch(nextText);
258
261
  if (nextMatch === null) {
259
262
  if (isTargetNode(nextSibling)) {
260
- replaceWithSimpleText(nextSibling);
263
+ $replaceWithSimpleText(nextSibling);
261
264
  } else {
262
265
  nextSibling.markDirty();
263
266
  }
@@ -266,23 +269,22 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
266
269
  return;
267
270
  }
268
271
  }
269
- } else {
270
- const nextMatch = getMatch(nextText);
271
- if (nextMatch !== null && nextMatch.start === 0) {
272
- return;
273
- }
274
272
  }
275
273
  if (match === null) {
276
274
  return;
277
275
  }
278
276
  if (match.start === 0 && $isTextNode(prevSibling) && prevSibling.isTextEntity()) {
277
+ prevMatchLengthToSkip += match.end;
279
278
  continue;
280
279
  }
281
280
  let nodeToReplace;
282
281
  if (match.start === 0) {
283
282
  [nodeToReplace, currentNode] = currentNode.splitText(match.end);
284
283
  } else {
285
- [, nodeToReplace, currentNode] = currentNode.splitText(match.start, match.end);
284
+ [, nodeToReplace, currentNode] = currentNode.splitText(match.start + prevMatchLengthToSkip, match.end + prevMatchLengthToSkip);
285
+ }
286
+ if (!(nodeToReplace !== undefined)) {
287
+ throw Error(`${'nodeToReplace'} should not be undefined. You may want to check splitOffsets passed to the splitText.`);
286
288
  }
287
289
  const replacementNode = createNode(nodeToReplace);
288
290
  replacementNode.setFormat(nodeToReplace.getFormat());
@@ -290,13 +292,15 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
290
292
  if (currentNode == null) {
291
293
  return;
292
294
  }
295
+ prevMatchLengthToSkip = 0;
296
+ prevSibling = replacementNode;
293
297
  }
294
298
  };
295
- const reverseNodeTransform = node => {
299
+ const $reverseNodeTransform = node => {
296
300
  const text = node.getTextContent();
297
301
  const match = getMatch(text);
298
302
  if (match === null || match.start !== 0) {
299
- replaceWithSimpleText(node);
303
+ $replaceWithSimpleText(node);
300
304
  return;
301
305
  }
302
306
  if (text.length > match.end) {
@@ -306,21 +310,21 @@ function registerLexicalTextEntity(editor, getMatch, targetNode, createNode) {
306
310
  }
307
311
  const prevSibling = node.getPreviousSibling();
308
312
  if ($isTextNode(prevSibling) && prevSibling.isTextEntity()) {
309
- replaceWithSimpleText(prevSibling);
310
- replaceWithSimpleText(node);
313
+ $replaceWithSimpleText(prevSibling);
314
+ $replaceWithSimpleText(node);
311
315
  }
312
316
  const nextSibling = node.getNextSibling();
313
317
  if ($isTextNode(nextSibling) && nextSibling.isTextEntity()) {
314
- replaceWithSimpleText(nextSibling);
318
+ $replaceWithSimpleText(nextSibling);
315
319
 
316
320
  // This may have already been converted in the previous block
317
321
  if (isTargetNode(node)) {
318
- replaceWithSimpleText(node);
322
+ $replaceWithSimpleText(node);
319
323
  }
320
324
  }
321
325
  };
322
- const removePlainTextTransform = editor.registerNodeTransform(TextNode, textNodeTransform);
323
- const removeReverseNodeTransform = editor.registerNodeTransform(targetNode, reverseNodeTransform);
326
+ const removePlainTextTransform = editor.registerNodeTransform(TextNode, $textNodeTransform);
327
+ const removeReverseNodeTransform = editor.registerNodeTransform(targetNode, $reverseNodeTransform);
324
328
  return [removePlainTextTransform, removeReverseNodeTransform];
325
329
  }
326
330
 
package/LexicalText.js CHANGED
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
+ *
6
7
  */
8
+
7
9
  'use strict'
8
10
  const LexicalText = process.env.NODE_ENV === 'development' ? require('./LexicalText.dev.js') : require('./LexicalText.prod.js');
9
11
  module.exports = LexicalText;
package/LexicalText.mjs CHANGED
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
+ *
6
7
  */
8
+
7
9
  import * as modDev from './LexicalText.dev.mjs';
8
10
  import * as modProd from './LexicalText.prod.mjs';
9
11
  const mod = process.env.NODE_ENV === 'development' ? modDev : modProd;
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
+ *
6
7
  */
8
+
7
9
  const mod = await (process.env.NODE_ENV === 'development' ? import('./LexicalText.dev.mjs') : import('./LexicalText.prod.mjs'));
8
10
  export const $canShowPlaceholder = mod.$canShowPlaceholder;
9
11
  export const $canShowPlaceholderCurry = mod.$canShowPlaceholderCurry;
@@ -3,10 +3,13 @@
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
+ *
6
7
  */
7
- 'use strict';var g=require("lexical");function r(){return g.$getRoot().getTextContent()}function t(c,h=!0){if(c)return!1;c=r();h&&(c=c.trim());return""===c}function u(c){if(!t(c,!1))return!1;c=g.$getRoot().getChildren();let h=c.length;if(1<h)return!1;for(let e=0;e<h;e++){var b=c[e];if(g.$isDecoratorNode(b))return!1;if(g.$isElementNode(b)){if(!g.$isParagraphNode(b)||0!==b.__indent)return!1;b=b.getChildren();let n=b.length;for(let q=0;q<n;q++)if(!g.$isTextNode(b[e]))return!1}}return!0}
8
- exports.$canShowPlaceholder=u;exports.$canShowPlaceholderCurry=function(c){return()=>u(c)};exports.$findTextIntersectionFromCharacters=function(c,h){var b=c.getFirstChild();c=0;a:for(;null!==b;){if(g.$isElementNode(b)){var e=b.getFirstChild();if(null!==e){b=e;continue}}else if(g.$isTextNode(b)){e=b.getTextContentSize();if(c+e>h)return{node:b,offset:h-c};c+=e}e=b.getNextSibling();if(null!==e)b=e;else{for(b=b.getParent();null!==b;){e=b.getNextSibling();if(null!==e){b=e;continue a}b=b.getParent()}break}}return null};
9
- exports.$isRootTextContentEmpty=t;exports.$isRootTextContentEmptyCurry=function(c,h){return()=>t(c,h)};exports.$rootTextContent=r;
10
- exports.registerLexicalTextEntity=function(c,h,b,e){let n=a=>{const d=g.$createTextNode(a.getTextContent());d.setFormat(a.getFormat());a.replace(d)},q=c.registerNodeTransform(g.TextNode,a=>{if(a.isSimpleText()){var d=a.getPreviousSibling(),l=a.getTextContent(),m=a;if(g.$isTextNode(d)){var k=d.getTextContent(),f=h(k+l);if(d instanceof b){if(null===f||0!==d.getLatest().__mode){n(d);return}f=f.end-k.length;if(0<f){m=l.slice(0,f);m=k+m;d.select();d.setTextContent(m);f===l.length?a.remove():(d=l.slice(f),
11
- a.setTextContent(d));return}}else if(null===f||f.start<k.length)return}for(;;){a=h(l);l=f=null===a?"":l.slice(a.end);if(""===f){if(k=m.getNextSibling(),g.$isTextNode(k))if(f=m.getTextContent()+k.getTextContent(),f=h(f),null===f){k instanceof b?n(k):k.markDirty();break}else if(0!==f.start)break}else if(k=h(f),null!==k&&0===k.start)break;if(null===a)break;if(0===a.start&&g.$isTextNode(d)&&d.isTextEntity())continue;let p;0===a.start?[p,m]=m.splitText(a.end):[,p,m]=m.splitText(a.start,a.end);a=e(p);a.setFormat(p.getFormat());
12
- p.replace(a);if(null==m)break}}});c=c.registerNodeTransform(b,a=>{var d=a.getTextContent();const l=h(d);null===l||0!==l.start?n(a):d.length>l.end?a.splitText(l.end):(d=a.getPreviousSibling(),g.$isTextNode(d)&&d.isTextEntity()&&(n(d),n(a)),d=a.getNextSibling(),g.$isTextNode(d)&&d.isTextEntity()&&(n(d),a instanceof b&&n(a)))});return[q,c]}
8
+
9
+ 'use strict';var g=require("lexical");function r(){return g.$getRoot().getTextContent()}function u(b,e=!0){if(b)return!1;b=r();e&&(b=b.trim());return""===b}function v(b){if(!u(b,!1))return!1;b=g.$getRoot().getChildren();let e=b.length;if(1<e)return!1;for(let f=0;f<e;f++){var a=b[f];if(g.$isDecoratorNode(a))return!1;if(g.$isElementNode(a)){if(!g.$isParagraphNode(a)||0!==a.__indent)return!1;a=a.getChildren();let n=a.length;for(let t=0;t<n;t++)if(!g.$isTextNode(a[f]))return!1}}return!0}var w;
10
+ function x(b){let e=new URLSearchParams;e.append("code",b);for(let a=1;a<arguments.length;a++)e.append("v",arguments[a]);throw Error(`Minified Lexical error #${b}; visit https://lexical.dev/docs/error?${e} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}w=x&&x.__esModule&&Object.prototype.hasOwnProperty.call(x,"default")?x["default"]:x;exports.$canShowPlaceholder=v;exports.$canShowPlaceholderCurry=function(b){return()=>v(b)};
11
+ exports.$findTextIntersectionFromCharacters=function(b,e){var a=b.getFirstChild();b=0;a:for(;null!==a;){if(g.$isElementNode(a)){var f=a.getFirstChild();if(null!==f){a=f;continue}}else if(g.$isTextNode(a)){f=a.getTextContentSize();if(b+f>e)return{node:a,offset:e-b};b+=f}f=a.getNextSibling();if(null!==f)a=f;else{for(a=a.getParent();null!==a;){f=a.getNextSibling();if(null!==f){a=f;continue a}a=a.getParent()}break}}return null};exports.$isRootTextContentEmpty=u;
12
+ exports.$isRootTextContentEmptyCurry=function(b,e){return()=>u(b,e)};exports.$rootTextContent=r;
13
+ exports.registerLexicalTextEntity=function(b,e,a,f){let n=d=>{const c=g.$createTextNode(d.getTextContent());c.setFormat(d.getFormat());d.replace(c)},t=b.registerNodeTransform(g.TextNode,d=>{if(d.isSimpleText()){var c=d.getPreviousSibling(),k=d.getTextContent(),m=d;if(g.$isTextNode(c)){var l=c.getTextContent();var h=e(l+k);if(c instanceof a){if(null===h||0!==c.getLatest().__mode){n(c);return}h=h.end-l.length;if(0<h){m=k.slice(0,h);m=l+m;c.select();c.setTextContent(m);h===k.length?d.remove():(k=k.slice(h),
14
+ d.setTextContent(k));return}}else if(null===h||h.start<l.length)return}for(d=0;;){l=e(k);var p=null===l?"":k.slice(l.end);k=p;if(""===p&&(h=m.getNextSibling(),g.$isTextNode(h)))if(p=m.getTextContent()+h.getTextContent(),p=e(p),null===p){h instanceof a?n(h):h.markDirty();break}else if(0!==p.start)break;if(null===l)break;if(0===l.start&&g.$isTextNode(c)&&c.isTextEntity()){d+=l.end;continue}let q;0===l.start?[q,m]=m.splitText(l.end):[,q,m]=m.splitText(l.start+d,l.end+d);void 0===q&&w(165,"nodeToReplace");
15
+ c=f(q);c.setFormat(q.getFormat());q.replace(c);if(null==m)break;d=0}}});b=b.registerNodeTransform(a,d=>{var c=d.getTextContent();const k=e(c);null===k||0!==k.start?n(d):c.length>k.end?d.splitText(k.end):(c=d.getPreviousSibling(),g.$isTextNode(c)&&c.isTextEntity()&&(n(c),n(d)),c=d.getNextSibling(),g.$isTextNode(c)&&c.isTextEntity()&&(n(c),d instanceof a&&n(d)))});return[t,b]}
@@ -3,5 +3,7 @@
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
+ *
6
7
  */
7
- import{$getRoot as t,$isDecoratorNode as e,$isElementNode as n,$isParagraphNode as r,$isTextNode as i,TextNode as o,$createTextNode as l}from"lexical";function s(){return t().getTextContent()}function u(t,e=!0){if(t)return!1;let n=s();return e&&(n=n.trim()),""===n}function f(t,e){return()=>u(t,e)}function c(o){if(!u(o,!1))return!1;const l=t().getChildren(),s=l.length;if(s>1)return!1;for(let t=0;t<s;t++){const o=l[t];if(e(o))return!1;if(n(o)){if(!r(o))return!1;if(0!==o.__indent)return!1;const e=o.getChildren(),n=e.length;for(let r=0;r<n;r++){const n=e[t];if(!i(n))return!1}}}return!0}function g(t){return()=>c(t)}function x(t,e){let r=t.getFirstChild(),o=0;t:for(;null!==r;){if(n(r)){const t=r.getFirstChild();if(null!==t){r=t;continue}}else if(i(r)){const t=r.getTextContentSize();if(o+t>e)return{node:r,offset:e-o};o+=t}const t=r.getNextSibling();if(null!==t){r=t;continue}let l=r.getParent();for(;null!==l;){const t=l.getNextSibling();if(null!==t){r=t;continue t}l=l.getParent()}break}return null}function a(t,e,n,r){const s=t=>t instanceof n,u=t=>{const e=l(t.getTextContent());e.setFormat(t.getFormat()),t.replace(e)};return[t.registerNodeTransform(o,(t=>{if(!t.isSimpleText())return;const n=t.getPreviousSibling();let o,l=t.getTextContent(),f=t;if(i(n)){const r=n.getTextContent(),i=e(r+l);if(s(n)){if(null===i||0!==(t=>t.getLatest().__mode)(n))return void u(n);{const e=i.end-r.length;if(e>0){const i=r+l.slice(0,e);if(n.select(),n.setTextContent(i),e===l.length)t.remove();else{const n=l.slice(e);t.setTextContent(n)}return}}}else if(null===i||i.start<r.length)return}for(;;){o=e(l);let t,c=null===o?"":l.slice(o.end);if(l=c,""===c){const t=f.getNextSibling();if(i(t)){c=f.getTextContent()+t.getTextContent();const n=e(c);if(null===n)return void(s(t)?u(t):t.markDirty());if(0!==n.start)return}}else{const t=e(c);if(null!==t&&0===t.start)return}if(null===o)return;if(0===o.start&&i(n)&&n.isTextEntity())continue;0===o.start?[t,f]=f.splitText(o.end):[,t,f]=f.splitText(o.start,o.end);const g=r(t);if(g.setFormat(t.getFormat()),t.replace(g),null==f)return}})),t.registerNodeTransform(n,(t=>{const n=t.getTextContent(),r=e(n);if(null===r||0!==r.start)return void u(t);if(n.length>r.end)return void t.splitText(r.end);const o=t.getPreviousSibling();i(o)&&o.isTextEntity()&&(u(o),u(t));const l=t.getNextSibling();i(l)&&l.isTextEntity()&&(u(l),s(t)&&u(t))}))]}export{c as $canShowPlaceholder,g as $canShowPlaceholderCurry,x as $findTextIntersectionFromCharacters,u as $isRootTextContentEmpty,f as $isRootTextContentEmptyCurry,s as $rootTextContent,a as registerLexicalTextEntity};
8
+
9
+ import{$getRoot as t,$isDecoratorNode as e,$isElementNode as n,$isParagraphNode as r,$isTextNode as i,TextNode as o,$createTextNode as l}from"lexical";function s(){return t().getTextContent()}function u(t,e=!0){if(t)return!1;let n=s();return e&&(n=n.trim()),""===n}function f(t,e){return()=>u(t,e)}function c(o){if(!u(o,!1))return!1;const l=t().getChildren(),s=l.length;if(s>1)return!1;for(let t=0;t<s;t++){const o=l[t];if(e(o))return!1;if(n(o)){if(!r(o))return!1;if(0!==o.__indent)return!1;const e=o.getChildren(),n=e.length;for(let r=0;r<n;r++){const n=e[t];if(!i(n))return!1}}}return!0}function g(t){return()=>c(t)}function a(t,e){let r=t.getFirstChild(),o=0;t:for(;null!==r;){if(n(r)){const t=r.getFirstChild();if(null!==t){r=t;continue}}else if(i(r)){const t=r.getTextContentSize();if(o+t>e)return{node:r,offset:e-o};o+=t}const t=r.getNextSibling();if(null!==t){r=t;continue}let l=r.getParent();for(;null!==l;){const t=l.getNextSibling();if(null!==t){r=t;continue t}l=l.getParent()}break}return null}function d(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var x=d((function(t){const e=new URLSearchParams;e.append("code",t);for(let t=1;t<arguments.length;t++)e.append("v",arguments[t]);throw Error(`Minified Lexical error #${t}; visit https://lexical.dev/docs/error?${e} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function T(t,e,n,r){const s=t=>t instanceof n,u=t=>{const e=l(t.getTextContent());e.setFormat(t.getFormat()),t.replace(e)};return[t.registerNodeTransform(o,(t=>{if(!t.isSimpleText())return;let n,o=t.getPreviousSibling(),l=t.getTextContent(),f=t;if(i(o)){const n=o.getTextContent(),r=e(n+l);if(s(o)){if(null===r||0!==(t=>t.getLatest().__mode)(o))return void u(o);{const e=r.end-n.length;if(e>0){const r=n+l.slice(0,e);if(o.select(),o.setTextContent(r),e===l.length)t.remove();else{const n=l.slice(e);t.setTextContent(n)}return}}}else if(null===r||r.start<n.length)return}let c=0;for(;;){n=e(l);let t,g=null===n?"":l.slice(n.end);if(l=g,""===g){const t=f.getNextSibling();if(i(t)){g=f.getTextContent()+t.getTextContent();const n=e(g);if(null===n)return void(s(t)?u(t):t.markDirty());if(0!==n.start)return}}if(null===n)return;if(0===n.start&&i(o)&&o.isTextEntity()){c+=n.end;continue}0===n.start?[t,f]=f.splitText(n.end):[,t,f]=f.splitText(n.start+c,n.end+c),void 0===t&&x(165,"nodeToReplace");const a=r(t);if(a.setFormat(t.getFormat()),t.replace(a),null==f)return;c=0,o=a}})),t.registerNodeTransform(n,(t=>{const n=t.getTextContent(),r=e(n);if(null===r||0!==r.start)return void u(t);if(n.length>r.end)return void t.splitText(r.end);const o=t.getPreviousSibling();i(o)&&o.isTextEntity()&&(u(o),u(t));const l=t.getNextSibling();i(l)&&l.isTextEntity()&&(u(l),s(t)&&u(t))}))]}export{c as $canShowPlaceholder,g as $canShowPlaceholderCurry,a as $findTextIntersectionFromCharacters,u as $isRootTextContentEmpty,f as $isRootTextContentEmptyCurry,s as $rootTextContent,T as registerLexicalTextEntity};
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "text"
10
10
  ],
11
11
  "license": "MIT",
12
- "version": "0.14.4",
12
+ "version": "0.15.0",
13
13
  "main": "LexicalText.js",
14
14
  "types": "index.d.ts",
15
15
  "repository": {
@@ -37,6 +37,6 @@
37
37
  }
38
38
  },
39
39
  "dependencies": {
40
- "lexical": "0.14.4"
40
+ "lexical": "0.15.0"
41
41
  }
42
42
  }