@portabletext/editor 1.54.5 → 1.55.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/lib/_chunks-cjs/selector.get-text-before.cjs +2 -0
- package/lib/_chunks-cjs/selector.get-text-before.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.is-selecting-entire-blocks.cjs +93 -104
- package/lib/_chunks-cjs/selector.is-selecting-entire-blocks.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.is-selection-expanded.cjs +18 -6
- package/lib/_chunks-cjs/selector.is-selection-expanded.cjs.map +1 -1
- package/lib/_chunks-es/selector.get-text-before.js +2 -0
- package/lib/_chunks-es/selector.get-text-before.js.map +1 -1
- package/lib/_chunks-es/selector.is-selecting-entire-blocks.js +93 -104
- package/lib/_chunks-es/selector.is-selecting-entire-blocks.js.map +1 -1
- package/lib/_chunks-es/selector.is-selection-expanded.js +19 -7
- package/lib/_chunks-es/selector.is-selection-expanded.js.map +1 -1
- package/lib/behaviors/index.d.cts +1 -0
- package/lib/behaviors/index.d.ts +1 -0
- package/lib/index.cjs +129 -57
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +3 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +131 -59
- package/lib/index.js.map +1 -1
- package/lib/plugins/index.cjs +1 -0
- package/lib/plugins/index.cjs.map +1 -1
- package/lib/plugins/index.d.cts +1 -0
- package/lib/plugins/index.d.ts +1 -0
- package/lib/plugins/index.js +1 -0
- package/lib/plugins/index.js.map +1 -1
- package/lib/selectors/index.cjs +15 -57
- package/lib/selectors/index.cjs.map +1 -1
- package/lib/selectors/index.d.cts +8 -0
- package/lib/selectors/index.d.ts +8 -0
- package/lib/selectors/index.js +18 -60
- package/lib/selectors/index.js.map +1 -1
- package/lib/utils/index.d.cts +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/behaviors/behavior.abstract.delete.ts +2 -8
- package/src/behaviors/behavior.abstract.split.ts +4 -3
- package/src/converters/converter.portable-text.ts +2 -8
- package/src/converters/converter.text-html.ts +2 -8
- package/src/converters/converter.text-plain.ts +2 -8
- package/src/editor/components/render-text-block.tsx +9 -0
- package/src/editor/create-slate-editor.tsx +14 -3
- package/src/editor/editor-selector.ts +1 -0
- package/src/editor/editor-snapshot.ts +2 -0
- package/src/editor/plugins/slate-plugin.update-value.ts +5 -0
- package/src/internal-utils/build-index-maps.test.ts +232 -0
- package/src/internal-utils/build-index-maps.ts +97 -0
- package/src/internal-utils/create-test-snapshot.ts +17 -9
- package/src/internal-utils/mark-state.ts +1 -0
- package/src/operations/behavior.operation.decorator.add.ts +1 -0
- package/src/selectors/index.ts +1 -0
- package/src/selectors/selector.get-anchor-block.ts +3 -4
- package/src/selectors/selector.get-focus-block.ts +3 -3
- package/src/selectors/selector.get-list-state.ts +34 -96
- package/src/selectors/selector.get-next-block.ts +7 -16
- package/src/selectors/selector.get-previous-block.ts +7 -13
- package/src/selectors/selector.get-selected-blocks.ts +13 -1
- package/src/selectors/selector.get-selected-slice.ts +3 -5
- package/src/selectors/selector.get-selected-spans.ts +14 -3
- package/src/selectors/selector.get-selected-text-blocks.ts +13 -1
- package/src/selectors/selector.get-selected-value.ts +47 -0
- package/src/selectors/selector.get-selection-text.ts +3 -3
- package/src/selectors/selector.get-trimmed-selection.ts +13 -1
- package/src/selectors/selector.is-point-after-selection.ts +58 -38
- package/src/selectors/selector.is-point-before-selection.ts +58 -38
- package/src/types/editor.ts +2 -0
|
@@ -4,6 +4,7 @@ const getBlockTextBefore = (snapshot) => {
|
|
|
4
4
|
if (!snapshot.context.selection)
|
|
5
5
|
return "";
|
|
6
6
|
const startPoint = selectionPoint.getSelectionStartPoint(snapshot.context.selection), block = selector_isSelectionExpanded.getFocusBlock({
|
|
7
|
+
...snapshot,
|
|
7
8
|
context: {
|
|
8
9
|
...snapshot.context,
|
|
9
10
|
selection: {
|
|
@@ -19,6 +20,7 @@ const getBlockTextBefore = (snapshot) => {
|
|
|
19
20
|
block
|
|
20
21
|
});
|
|
21
22
|
return selector_isSelectionExpanded.getSelectionText({
|
|
23
|
+
...snapshot,
|
|
22
24
|
context: {
|
|
23
25
|
...snapshot.context,
|
|
24
26
|
selection: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selector.get-text-before.cjs","sources":["../../src/selectors/selector.get-text-before.ts"],"sourcesContent":["import type {EditorSelector} from '../editor/editor-selector'\nimport {getSelectionStartPoint} from '../utils'\nimport {getBlockStartPoint} from '../utils/util.get-block-start-point'\nimport {getFocusBlock} from './selector.get-focus-block'\nimport {getSelectionText} from './selector.get-selection-text'\n\n/**\n * @public\n */\nexport const getBlockTextBefore: EditorSelector<string> = (snapshot) => {\n if (!snapshot.context.selection) {\n return ''\n }\n\n const startPoint = getSelectionStartPoint(snapshot.context.selection)\n const block = getFocusBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: startPoint,\n focus: startPoint,\n },\n },\n })\n\n if (!block) {\n return ''\n }\n\n const startOfBlock = getBlockStartPoint({\n context: snapshot.context,\n block,\n })\n\n return getSelectionText({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: startOfBlock,\n focus: startPoint,\n },\n },\n })\n}\n"],"names":["getBlockTextBefore","snapshot","context","selection","startPoint","getSelectionStartPoint","block","getFocusBlock","anchor","focus","startOfBlock","getBlockStartPoint","getSelectionText"],"mappings":";;AASO,MAAMA,qBAA8CC,CAAAA,aAAa;AACtE,MAAI,CAACA,SAASC,QAAQC;AACpB,WAAO;AAGT,QAAMC,aAAaC,eAAAA,uBAAuBJ,SAASC,QAAQC,SAAS,GAC9DG,QAAQC,2CAAc;AAAA,
|
|
1
|
+
{"version":3,"file":"selector.get-text-before.cjs","sources":["../../src/selectors/selector.get-text-before.ts"],"sourcesContent":["import type {EditorSelector} from '../editor/editor-selector'\nimport {getSelectionStartPoint} from '../utils'\nimport {getBlockStartPoint} from '../utils/util.get-block-start-point'\nimport {getFocusBlock} from './selector.get-focus-block'\nimport {getSelectionText} from './selector.get-selection-text'\n\n/**\n * @public\n */\nexport const getBlockTextBefore: EditorSelector<string> = (snapshot) => {\n if (!snapshot.context.selection) {\n return ''\n }\n\n const startPoint = getSelectionStartPoint(snapshot.context.selection)\n const block = getFocusBlock({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: startPoint,\n focus: startPoint,\n },\n },\n })\n\n if (!block) {\n return ''\n }\n\n const startOfBlock = getBlockStartPoint({\n context: snapshot.context,\n block,\n })\n\n return getSelectionText({\n ...snapshot,\n context: {\n ...snapshot.context,\n selection: {\n anchor: startOfBlock,\n focus: startPoint,\n },\n },\n })\n}\n"],"names":["getBlockTextBefore","snapshot","context","selection","startPoint","getSelectionStartPoint","block","getFocusBlock","anchor","focus","startOfBlock","getBlockStartPoint","getSelectionText"],"mappings":";;AASO,MAAMA,qBAA8CC,CAAAA,aAAa;AACtE,MAAI,CAACA,SAASC,QAAQC;AACpB,WAAO;AAGT,QAAMC,aAAaC,eAAAA,uBAAuBJ,SAASC,QAAQC,SAAS,GAC9DG,QAAQC,2CAAc;AAAA,IAC1B,GAAGN;AAAAA,IACHC,SAAS;AAAA,MACP,GAAGD,SAASC;AAAAA,MACZC,WAAW;AAAA,QACTK,QAAQJ;AAAAA,QACRK,OAAOL;AAAAA,MAAAA;AAAAA,IACT;AAAA,EACF,CACD;AAED,MAAI,CAACE;AACH,WAAO;AAGT,QAAMI,eAAeC,eAAAA,mBAAmB;AAAA,IACtCT,SAASD,SAASC;AAAAA,IAClBI;AAAAA,EAAAA,CACD;AAED,SAAOM,8CAAiB;AAAA,IACtB,GAAGX;AAAAA,IACHC,SAAS;AAAA,MACP,GAAGD,SAASC;AAAAA,MACZC,WAAW;AAAA,QACTK,QAAQE;AAAAA,QACRD,OAAOL;AAAAA,MAAAA;AAAAA,IACT;AAAA,EACF,CACD;AACH;;"}
|
|
@@ -6,7 +6,11 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
6
6
|
const selectedBlocks = [], startPoint = selectionPoint.getSelectionStartPoint(snapshot.context.selection), endPoint = selectionPoint.getSelectionEndPoint(snapshot.context.selection), startKey = selectionPoint.getBlockKeyFromSelectionPoint(startPoint), endKey = selectionPoint.getBlockKeyFromSelectionPoint(endPoint);
|
|
7
7
|
if (!startKey || !endKey)
|
|
8
8
|
return selectedBlocks;
|
|
9
|
-
|
|
9
|
+
const startBlockIndex = snapshot.blockIndexMap.get(startKey), endBlockIndex = snapshot.blockIndexMap.get(endKey);
|
|
10
|
+
if (startBlockIndex === void 0 || endBlockIndex === void 0)
|
|
11
|
+
return selectedBlocks;
|
|
12
|
+
const slicedValue = snapshot.context.value.slice(startBlockIndex, endBlockIndex + 1);
|
|
13
|
+
for (const block of slicedValue) {
|
|
10
14
|
if (block._key === startKey) {
|
|
11
15
|
if (selectedBlocks.push({
|
|
12
16
|
node: block,
|
|
@@ -43,12 +47,15 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
43
47
|
const selectedSpans = [], startPoint = selector_isSelectionExpanded.getSelectionStartPoint(snapshot), endPoint = getSelectionEndPoint(snapshot);
|
|
44
48
|
if (!startPoint || !endPoint)
|
|
45
49
|
return selectedSpans;
|
|
46
|
-
const startBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(startPoint), endBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(endPoint);
|
|
50
|
+
const startBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(startPoint), endBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(endPoint), startSpanKey = selectionPoint.getChildKeyFromSelectionPoint(startPoint), endSpanKey = selectionPoint.getChildKeyFromSelectionPoint(endPoint);
|
|
47
51
|
if (!startBlockKey || !endBlockKey)
|
|
48
52
|
return selectedSpans;
|
|
49
|
-
const
|
|
53
|
+
const startBlockIndex = snapshot.blockIndexMap.get(startBlockKey), endBlockIndex = snapshot.blockIndexMap.get(endBlockKey);
|
|
54
|
+
if (startBlockIndex === void 0 || endBlockIndex === void 0)
|
|
55
|
+
return selectedSpans;
|
|
56
|
+
const slicedValue = snapshot.context.value.slice(startBlockIndex, endBlockIndex + 1);
|
|
50
57
|
let startBlockFound = !1;
|
|
51
|
-
for (const block of
|
|
58
|
+
for (const block of slicedValue)
|
|
52
59
|
if (block._key === startBlockKey && (startBlockFound = !0), !!selectionPoint.isTextBlock(snapshot.context, block)) {
|
|
53
60
|
if (block._key === startBlockKey) {
|
|
54
61
|
for (const child of block.children)
|
|
@@ -192,6 +199,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
192
199
|
context: snapshot.context,
|
|
193
200
|
block: focusTextBlock
|
|
194
201
|
}), textDirectlyBefore = selector_isSelectionExpanded.getSelectionText({
|
|
202
|
+
...snapshot,
|
|
195
203
|
context: {
|
|
196
204
|
...snapshot.context,
|
|
197
205
|
selection: {
|
|
@@ -206,6 +214,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
206
214
|
context: snapshot.context,
|
|
207
215
|
block: focusTextBlock
|
|
208
216
|
}), textDirectlyAfter = selector_isSelectionExpanded.getSelectionText({
|
|
217
|
+
...snapshot,
|
|
209
218
|
context: {
|
|
210
219
|
...snapshot.context,
|
|
211
220
|
selection: {
|
|
@@ -280,10 +289,38 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
280
289
|
_key: node._key
|
|
281
290
|
}]
|
|
282
291
|
} : void 0;
|
|
292
|
+
}, getSelectionEndBlock = (snapshot) => {
|
|
293
|
+
const endPoint = selectionPoint.getSelectionEndPoint(snapshot.context.selection);
|
|
294
|
+
if (endPoint)
|
|
295
|
+
return selector_isSelectionExpanded.getFocusBlock({
|
|
296
|
+
...snapshot,
|
|
297
|
+
context: {
|
|
298
|
+
...snapshot.context,
|
|
299
|
+
selection: {
|
|
300
|
+
anchor: endPoint,
|
|
301
|
+
focus: endPoint
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
}, getNextBlock = (snapshot) => {
|
|
306
|
+
const selectionEndBlock = getSelectionEndBlock(snapshot);
|
|
307
|
+
if (!selectionEndBlock)
|
|
308
|
+
return;
|
|
309
|
+
const index = snapshot.blockIndexMap.get(selectionEndBlock.node._key);
|
|
310
|
+
if (index === void 0 || index === snapshot.context.value.length - 1)
|
|
311
|
+
return;
|
|
312
|
+
const nextBlock = snapshot.context.value.at(index + 1);
|
|
313
|
+
return nextBlock ? {
|
|
314
|
+
node: nextBlock,
|
|
315
|
+
path: [{
|
|
316
|
+
_key: nextBlock._key
|
|
317
|
+
}]
|
|
318
|
+
} : void 0;
|
|
283
319
|
}, getSelectionStartBlock = (snapshot) => {
|
|
284
320
|
const startPoint = selectionPoint.getSelectionStartPoint(snapshot.context.selection);
|
|
285
321
|
if (startPoint)
|
|
286
322
|
return selector_isSelectionExpanded.getFocusBlock({
|
|
323
|
+
...snapshot,
|
|
287
324
|
context: {
|
|
288
325
|
...snapshot.context,
|
|
289
326
|
selection: {
|
|
@@ -293,67 +330,30 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
293
330
|
}
|
|
294
331
|
});
|
|
295
332
|
}, getPreviousBlock = (snapshot) => {
|
|
296
|
-
let previousBlock;
|
|
297
333
|
const selectionStartBlock = getSelectionStartBlock(snapshot);
|
|
298
334
|
if (!selectionStartBlock)
|
|
299
335
|
return;
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
if (block._key === selectionStartBlock.node._key) {
|
|
303
|
-
foundSelectionStartBlock = !0;
|
|
304
|
-
break;
|
|
305
|
-
}
|
|
306
|
-
previousBlock = {
|
|
307
|
-
node: block,
|
|
308
|
-
path: [{
|
|
309
|
-
_key: block._key
|
|
310
|
-
}]
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
if (foundSelectionStartBlock && previousBlock)
|
|
314
|
-
return previousBlock;
|
|
315
|
-
}, getSelectionEndBlock = (snapshot) => {
|
|
316
|
-
const endPoint = selectionPoint.getSelectionEndPoint(snapshot.context.selection);
|
|
317
|
-
if (endPoint)
|
|
318
|
-
return selector_isSelectionExpanded.getFocusBlock({
|
|
319
|
-
context: {
|
|
320
|
-
...snapshot.context,
|
|
321
|
-
selection: {
|
|
322
|
-
anchor: endPoint,
|
|
323
|
-
focus: endPoint
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
});
|
|
327
|
-
}, getNextBlock = (snapshot) => {
|
|
328
|
-
let nextBlock;
|
|
329
|
-
const selectionEndBlock = getSelectionEndBlock(snapshot);
|
|
330
|
-
if (!selectionEndBlock)
|
|
336
|
+
const index = snapshot.blockIndexMap.get(selectionStartBlock.node._key);
|
|
337
|
+
if (index === void 0 || index === 0)
|
|
331
338
|
return;
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
nextBlock = {
|
|
340
|
-
node: block,
|
|
341
|
-
path: [{
|
|
342
|
-
_key: block._key
|
|
343
|
-
}]
|
|
344
|
-
};
|
|
345
|
-
break;
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
if (foundSelectionEndBlock && nextBlock)
|
|
349
|
-
return nextBlock;
|
|
339
|
+
const previousBlock = snapshot.context.value.at(index - 1);
|
|
340
|
+
return previousBlock ? {
|
|
341
|
+
node: previousBlock,
|
|
342
|
+
path: [{
|
|
343
|
+
_key: previousBlock._key
|
|
344
|
+
}]
|
|
345
|
+
} : void 0;
|
|
350
346
|
}, getSelectedTextBlocks = (snapshot) => {
|
|
351
347
|
if (!snapshot.context.selection)
|
|
352
348
|
return [];
|
|
353
349
|
const selectedTextBlocks = [], startPoint = selectionPoint.getSelectionStartPoint(snapshot.context.selection), endPoint = selectionPoint.getSelectionEndPoint(snapshot.context.selection), startBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(startPoint), endBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(endPoint);
|
|
354
350
|
if (!startBlockKey || !endBlockKey)
|
|
355
351
|
return selectedTextBlocks;
|
|
356
|
-
|
|
352
|
+
const startBlockIndex = snapshot.blockIndexMap.get(startBlockKey), endBlockIndex = snapshot.blockIndexMap.get(endBlockKey);
|
|
353
|
+
if (startBlockIndex === void 0 || endBlockIndex === void 0)
|
|
354
|
+
return selectedTextBlocks;
|
|
355
|
+
const slicedValue = snapshot.context.value.slice(startBlockIndex, endBlockIndex + 1);
|
|
356
|
+
for (const block of slicedValue) {
|
|
357
357
|
if (block._key === startBlockKey) {
|
|
358
358
|
if (selectionPoint.isTextBlock(snapshot.context, block) && selectedTextBlocks.push({
|
|
359
359
|
node: block,
|
|
@@ -387,8 +387,12 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
387
387
|
const startPoint = selectionPoint.getSelectionStartPoint(snapshot.context.selection), endPoint = selectionPoint.getSelectionEndPoint(snapshot.context.selection), startBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(startPoint), startChildKey = selectionPoint.getChildKeyFromSelectionPoint(startPoint), endBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(endPoint), endChildKey = selectionPoint.getChildKeyFromSelectionPoint(endPoint);
|
|
388
388
|
if (!startBlockKey || !endBlockKey)
|
|
389
389
|
return snapshot.context.selection;
|
|
390
|
+
const startBlockIndex = snapshot.blockIndexMap.get(startBlockKey), endBlockIndex = snapshot.blockIndexMap.get(endBlockKey);
|
|
391
|
+
if (startBlockIndex === void 0 || endBlockIndex === void 0)
|
|
392
|
+
return snapshot.context.selection;
|
|
393
|
+
const slicedValue = snapshot.context.value.slice(startBlockIndex, endBlockIndex + 1);
|
|
390
394
|
let startBlockFound = !1, adjustedStartPoint, trimStartPoint = !1, adjustedEndPoint, trimEndPoint = !1, previousPotentialEndpoint;
|
|
391
|
-
for (const block of
|
|
395
|
+
for (const block of slicedValue)
|
|
392
396
|
if (!(block._key === startBlockKey && (startBlockFound = !0, selectionPoint.isTextBlock(snapshot.context, block) && util_isEqualSelectionPoints.isEmptyTextBlock(snapshot.context, block))) && startBlockFound && selectionPoint.isTextBlock(snapshot.context, block)) {
|
|
393
397
|
if (block._key === endBlockKey && util_isEqualSelectionPoints.isEmptyTextBlock(snapshot.context, block))
|
|
394
398
|
break;
|
|
@@ -455,6 +459,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
455
459
|
}
|
|
456
460
|
})) {
|
|
457
461
|
const focusTextBlock = selector_isSelectionExpanded.getFocusTextBlock({
|
|
462
|
+
...snapshot,
|
|
458
463
|
context: {
|
|
459
464
|
...snapshot.context,
|
|
460
465
|
selection: trimmedSelection
|
|
@@ -512,32 +517,24 @@ function isPointAfterSelection(point) {
|
|
|
512
517
|
const endPoint = selectionPoint.getSelectionEndPoint(snapshot.context.selection), endBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(endPoint), endChildKey = selectionPoint.getChildKeyFromSelectionPoint(endPoint), pointBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(point), pointChildKey = selectionPoint.getChildKeyFromSelectionPoint(point);
|
|
513
518
|
if (!pointBlockKey || !endBlockKey)
|
|
514
519
|
return !1;
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
after = point.offset > endPoint.offset;
|
|
531
|
-
break;
|
|
532
|
-
}
|
|
533
|
-
if (child._key === pointChildKey)
|
|
534
|
-
break;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
if (block._key === pointBlockKey)
|
|
520
|
+
const pointBlockIndex = snapshot.blockIndexMap.get(pointBlockKey), endBlockIndex = snapshot.blockIndexMap.get(endBlockKey);
|
|
521
|
+
if (pointBlockIndex === void 0 || endBlockIndex === void 0)
|
|
522
|
+
return !1;
|
|
523
|
+
if (pointBlockIndex > endBlockIndex)
|
|
524
|
+
return !0;
|
|
525
|
+
if (pointBlockIndex < endBlockIndex)
|
|
526
|
+
return !1;
|
|
527
|
+
const pointBlock = snapshot.context.value.at(pointBlockIndex);
|
|
528
|
+
if (!pointBlock || !selectionPoint.isTextBlock(snapshot.context, pointBlock))
|
|
529
|
+
return !1;
|
|
530
|
+
let pointChildIndex, endChildIndex, childIndex = -1;
|
|
531
|
+
for (const child of pointBlock.children) {
|
|
532
|
+
if (childIndex++, child._key === pointChildKey && child._key === endChildKey)
|
|
533
|
+
return point.offset > endPoint.offset;
|
|
534
|
+
if (child._key === pointChildKey && (pointChildIndex = childIndex), child._key === endChildKey && (endChildIndex = childIndex), pointChildIndex !== void 0 && endChildIndex !== void 0)
|
|
538
535
|
break;
|
|
539
536
|
}
|
|
540
|
-
return
|
|
537
|
+
return pointChildIndex === void 0 || endChildIndex === void 0 ? !1 : pointChildIndex > endChildIndex;
|
|
541
538
|
};
|
|
542
539
|
}
|
|
543
540
|
function isPointBeforeSelection(point) {
|
|
@@ -547,32 +544,24 @@ function isPointBeforeSelection(point) {
|
|
|
547
544
|
const startPoint = selectionPoint.getSelectionStartPoint(snapshot.context.selection), startBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(startPoint), startChildKey = selectionPoint.getChildKeyFromSelectionPoint(startPoint), pointBlockKey = selectionPoint.getBlockKeyFromSelectionPoint(point), pointChildKey = selectionPoint.getChildKeyFromSelectionPoint(point);
|
|
548
545
|
if (!pointBlockKey || !startBlockKey)
|
|
549
546
|
return !1;
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
before = point.offset < startPoint.offset;
|
|
566
|
-
break;
|
|
567
|
-
}
|
|
568
|
-
if (child._key === startChildKey)
|
|
569
|
-
break;
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
if (block._key === startBlockKey)
|
|
547
|
+
const startBlockIndex = snapshot.blockIndexMap.get(startBlockKey), pointBlockIndex = snapshot.blockIndexMap.get(pointBlockKey);
|
|
548
|
+
if (startBlockIndex === void 0 || pointBlockIndex === void 0)
|
|
549
|
+
return !1;
|
|
550
|
+
if (pointBlockIndex < startBlockIndex)
|
|
551
|
+
return !0;
|
|
552
|
+
if (pointBlockIndex > startBlockIndex)
|
|
553
|
+
return !1;
|
|
554
|
+
const pointBlock = snapshot.context.value.at(pointBlockIndex);
|
|
555
|
+
if (!pointBlock || !selectionPoint.isTextBlock(snapshot.context, pointBlock))
|
|
556
|
+
return !1;
|
|
557
|
+
let pointChildIndex, startChildIndex, childIndex = -1;
|
|
558
|
+
for (const child of pointBlock.children) {
|
|
559
|
+
if (childIndex++, child._key === pointChildKey && child._key === startChildKey)
|
|
560
|
+
return point.offset < startPoint.offset;
|
|
561
|
+
if (child._key === pointChildKey && (pointChildIndex = childIndex), child._key === startChildKey && (startChildIndex = childIndex), pointChildIndex !== void 0 && startChildIndex !== void 0)
|
|
573
562
|
break;
|
|
574
563
|
}
|
|
575
|
-
return
|
|
564
|
+
return pointChildIndex === void 0 || startChildIndex === void 0 ? !1 : pointChildIndex < startChildIndex;
|
|
576
565
|
};
|
|
577
566
|
}
|
|
578
567
|
function isOverlappingSelection(selection) {
|