@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.
- package/LexicalText.dev.js +24 -20
- package/LexicalText.dev.mjs +24 -20
- package/LexicalText.js +2 -0
- package/LexicalText.mjs +2 -0
- package/LexicalText.node.mjs +2 -0
- package/LexicalText.prod.js +9 -6
- package/LexicalText.prod.mjs +3 -1
- package/package.json +2 -2
package/LexicalText.dev.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
|
|
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
|
-
|
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
|
|
package/LexicalText.dev.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 { $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
|
-
|
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;
|
package/LexicalText.node.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
|
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;
|
package/LexicalText.prod.js
CHANGED
@@ -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
|
-
|
8
|
-
|
9
|
-
exports.$
|
10
|
-
exports
|
11
|
-
|
12
|
-
|
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]}
|
package/LexicalText.prod.mjs
CHANGED
@@ -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
|
-
|
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.
|
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.
|
40
|
+
"lexical": "0.15.0"
|
41
41
|
}
|
42
42
|
}
|