@portabletext/editor 1.55.6 → 1.55.7
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 +3 -3
- package/lib/_chunks-cjs/selector.get-text-before.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.is-selecting-entire-blocks.cjs +37 -37
- package/lib/_chunks-cjs/selector.is-selecting-entire-blocks.cjs.map +1 -1
- package/lib/_chunks-cjs/selector.is-selection-expanded.cjs +9 -9
- package/lib/_chunks-cjs/selector.is-selection-expanded.cjs.map +1 -1
- package/lib/_chunks-cjs/util.child-selection-point-to-block-offset.cjs +10 -10
- package/lib/_chunks-cjs/util.child-selection-point-to-block-offset.cjs.map +1 -1
- package/lib/_chunks-cjs/util.is-equal-selection-points.cjs +5 -5
- package/lib/_chunks-cjs/util.is-equal-selection-points.cjs.map +1 -1
- package/lib/_chunks-cjs/util.merge-text-blocks.cjs +3 -3
- package/lib/_chunks-cjs/util.merge-text-blocks.cjs.map +1 -1
- package/lib/_chunks-cjs/{selection-point.cjs → util.slice-blocks.cjs} +14 -14
- package/lib/_chunks-cjs/util.slice-blocks.cjs.map +1 -0
- package/lib/_chunks-cjs/util.slice-text-block.cjs +11 -11
- package/lib/_chunks-cjs/util.slice-text-block.cjs.map +1 -1
- package/lib/_chunks-es/selector.get-text-before.js +1 -1
- package/lib/_chunks-es/selector.is-selecting-entire-blocks.js +1 -1
- package/lib/_chunks-es/selector.is-selecting-entire-blocks.js.map +1 -1
- package/lib/_chunks-es/selector.is-selection-expanded.js +1 -1
- package/lib/_chunks-es/util.child-selection-point-to-block-offset.js +1 -1
- package/lib/_chunks-es/util.is-equal-selection-points.js +1 -1
- package/lib/_chunks-es/util.merge-text-blocks.js +1 -1
- package/lib/_chunks-es/{selection-point.js → util.slice-blocks.js} +14 -14
- package/lib/_chunks-es/util.slice-blocks.js.map +1 -0
- package/lib/_chunks-es/util.slice-text-block.js +1 -1
- package/lib/index.cjs +417 -194
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +6 -6
- package/lib/index.d.ts +6 -6
- package/lib/index.js +350 -127
- package/lib/index.js.map +1 -1
- package/lib/plugins/index.cjs +11 -11
- package/lib/plugins/index.cjs.map +1 -1
- package/lib/plugins/index.d.cts +2 -2
- package/lib/plugins/index.d.ts +2 -2
- package/lib/plugins/index.js +2 -2
- package/lib/selectors/index.cjs +7 -7
- package/lib/selectors/index.cjs.map +1 -1
- package/lib/selectors/index.js +1 -1
- package/lib/utils/index.cjs +11 -11
- package/lib/utils/index.cjs.map +1 -1
- package/lib/utils/index.d.cts +1 -1
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +2 -2
- package/package.json +13 -13
- package/src/behaviors/behavior.abstract.keyboard.ts +28 -3
- package/src/behaviors/behavior.core.block-objects.ts +5 -3
- package/src/behaviors/behavior.core.decorators.ts +5 -5
- package/src/behaviors/behavior.core.lists.ts +5 -3
- package/src/editor/relay-machine.ts +2 -2
- package/src/keyboard-shortcuts/default-keyboard-shortcuts.ts +207 -0
- package/src/keyboard-shortcuts/is-keyboard-shortcut.test.ts +93 -0
- package/src/keyboard-shortcuts/is-keyboard-shortcut.ts +28 -0
- package/src/keyboard-shortcuts/keyboard-shortcuts.ts +120 -0
- package/src/selection/selection-point.ts +1 -1
- package/src/selectors/selector.get-caret-word-selection.ts +3 -3
- package/src/types/editor.ts +1 -1
- package/src/utils/util.slice-blocks.ts +2 -1
- package/lib/_chunks-cjs/selection-point.cjs.map +0 -1
- package/lib/_chunks-es/selection-point.js.map +0 -1
- package/src/behaviors/behavior.emoji-picker.ts +0 -402
- package/src/internal-utils/key-is.ts +0 -11
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var util_sliceBlocks = require("./util.slice-blocks.cjs"), selector_isSelectionExpanded = require("./selector.is-selection-expanded.cjs");
|
|
3
3
|
const getBlockTextBefore = (snapshot) => {
|
|
4
4
|
if (!snapshot.context.selection)
|
|
5
5
|
return "";
|
|
6
|
-
const startPoint =
|
|
6
|
+
const startPoint = util_sliceBlocks.getSelectionStartPoint(snapshot.context.selection), block = selector_isSelectionExpanded.getFocusBlock({
|
|
7
7
|
...snapshot,
|
|
8
8
|
context: {
|
|
9
9
|
...snapshot.context,
|
|
@@ -15,7 +15,7 @@ const getBlockTextBefore = (snapshot) => {
|
|
|
15
15
|
});
|
|
16
16
|
if (!block)
|
|
17
17
|
return "";
|
|
18
|
-
const startOfBlock =
|
|
18
|
+
const startOfBlock = util_sliceBlocks.getBlockStartPoint({
|
|
19
19
|
context: snapshot.context,
|
|
20
20
|
block
|
|
21
21
|
});
|
|
@@ -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,
|
|
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,iBAAAA,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,iBAAAA,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;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var util_sliceBlocks = require("./util.slice-blocks.cjs"), selector_isSelectionExpanded = require("./selector.is-selection-expanded.cjs"), util_isEqualSelectionPoints = require("./util.is-equal-selection-points.cjs"), types = require("@sanity/types");
|
|
3
3
|
const getSelectedBlocks = (snapshot) => {
|
|
4
4
|
if (!snapshot.context.selection)
|
|
5
5
|
return [];
|
|
6
|
-
const selectedBlocks = [], startPoint =
|
|
6
|
+
const selectedBlocks = [], startPoint = util_sliceBlocks.getSelectionStartPoint(snapshot.context.selection), endPoint = util_sliceBlocks.getSelectionEndPoint(snapshot.context.selection), startKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(startPoint), endKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(endPoint);
|
|
7
7
|
if (!startKey || !endKey)
|
|
8
8
|
return selectedBlocks;
|
|
9
9
|
const startBlockIndex = snapshot.blockIndexMap.get(startKey), endBlockIndex = snapshot.blockIndexMap.get(endKey);
|
|
@@ -47,7 +47,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
47
47
|
const selectedSpans = [], startPoint = selector_isSelectionExpanded.getSelectionStartPoint(snapshot), endPoint = getSelectionEndPoint(snapshot);
|
|
48
48
|
if (!startPoint || !endPoint)
|
|
49
49
|
return selectedSpans;
|
|
50
|
-
const startBlockKey =
|
|
50
|
+
const startBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(startPoint), endBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(endPoint), startSpanKey = util_sliceBlocks.getChildKeyFromSelectionPoint(startPoint), endSpanKey = util_sliceBlocks.getChildKeyFromSelectionPoint(endPoint);
|
|
51
51
|
if (!startBlockKey || !endBlockKey)
|
|
52
52
|
return selectedSpans;
|
|
53
53
|
const startBlockIndex = snapshot.blockIndexMap.get(startBlockKey), endBlockIndex = snapshot.blockIndexMap.get(endBlockKey);
|
|
@@ -56,10 +56,10 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
56
56
|
const slicedValue = snapshot.context.value.slice(startBlockIndex, endBlockIndex + 1);
|
|
57
57
|
let startBlockFound = !1;
|
|
58
58
|
for (const block of slicedValue)
|
|
59
|
-
if (block._key === startBlockKey && (startBlockFound = !0), !!
|
|
59
|
+
if (block._key === startBlockKey && (startBlockFound = !0), !!util_sliceBlocks.isTextBlock(snapshot.context, block)) {
|
|
60
60
|
if (block._key === startBlockKey) {
|
|
61
61
|
for (const child of block.children)
|
|
62
|
-
if (
|
|
62
|
+
if (util_sliceBlocks.isSpan$1(snapshot.context, child)) {
|
|
63
63
|
if (startSpanKey && child._key === startSpanKey) {
|
|
64
64
|
if (startPoint.offset < child.text.length && selectedSpans.push({
|
|
65
65
|
node: child,
|
|
@@ -98,7 +98,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
98
98
|
}
|
|
99
99
|
if (block._key === endBlockKey) {
|
|
100
100
|
for (const child of block.children)
|
|
101
|
-
if (
|
|
101
|
+
if (util_sliceBlocks.isSpan$1(snapshot.context, child)) {
|
|
102
102
|
if (endSpanKey && child._key === endSpanKey) {
|
|
103
103
|
endPoint.offset > 0 && selectedSpans.push({
|
|
104
104
|
node: child,
|
|
@@ -123,7 +123,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
123
123
|
}
|
|
124
124
|
if (startBlockFound)
|
|
125
125
|
for (const child of block.children)
|
|
126
|
-
|
|
126
|
+
util_sliceBlocks.isSpan$1(snapshot.context, child) && selectedSpans.push({
|
|
127
127
|
node: child,
|
|
128
128
|
path: [{
|
|
129
129
|
_key: block._key
|
|
@@ -146,11 +146,11 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
146
146
|
return [];
|
|
147
147
|
}
|
|
148
148
|
const activeAnnotations = snapshot.beta.activeAnnotations;
|
|
149
|
-
return selectedBlocks.flatMap((block) =>
|
|
149
|
+
return selectedBlocks.flatMap((block) => util_sliceBlocks.isTextBlock(snapshot.context, block.node) ? block.node.markDefs ?? [] : []).filter((markDef) => activeAnnotations.includes(markDef._key));
|
|
150
150
|
}, getActiveListItem = (snapshot) => {
|
|
151
151
|
if (!snapshot.context.selection)
|
|
152
152
|
return;
|
|
153
|
-
const selectedTextBlocks = getSelectedBlocks(snapshot).map((block) => block.node).filter((block) =>
|
|
153
|
+
const selectedTextBlocks = getSelectedBlocks(snapshot).map((block) => block.node).filter((block) => util_sliceBlocks.isTextBlock(snapshot.context, block)), firstTextBlock = selectedTextBlocks.at(0);
|
|
154
154
|
if (!firstTextBlock)
|
|
155
155
|
return;
|
|
156
156
|
const firstListItem = firstTextBlock.listItem;
|
|
@@ -159,7 +159,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
159
159
|
}, getActiveStyle = (snapshot) => {
|
|
160
160
|
if (!snapshot.context.selection)
|
|
161
161
|
return;
|
|
162
|
-
const selectedTextBlocks = getSelectedBlocks(snapshot).map((block) => block.node).filter((block) =>
|
|
162
|
+
const selectedTextBlocks = getSelectedBlocks(snapshot).map((block) => block.node).filter((block) => util_sliceBlocks.isTextBlock(snapshot.context, block)), firstTextBlock = selectedTextBlocks.at(0);
|
|
163
163
|
if (!firstTextBlock)
|
|
164
164
|
return;
|
|
165
165
|
const firstStyle = firstTextBlock.style;
|
|
@@ -175,7 +175,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
175
175
|
endPointChildFound = !0;
|
|
176
176
|
continue;
|
|
177
177
|
}
|
|
178
|
-
if (!
|
|
178
|
+
if (!util_sliceBlocks.isSpan(snapshot.context, child) && endPointChildFound) {
|
|
179
179
|
inlineObject = {
|
|
180
180
|
node: child,
|
|
181
181
|
path: [...focusTextBlock.path, "children", {
|
|
@@ -189,13 +189,13 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
189
189
|
}, getCaretWordSelection = (snapshot) => {
|
|
190
190
|
if (!snapshot.context.selection || !selector_isSelectionExpanded.isSelectionCollapsed(snapshot))
|
|
191
191
|
return null;
|
|
192
|
-
const focusTextBlock = selector_isSelectionExpanded.getFocusTextBlock(snapshot), selectionStartPoint = selector_isSelectionExpanded.getSelectionStartPoint(snapshot), selectionStartOffset = selectionStartPoint ?
|
|
192
|
+
const focusTextBlock = selector_isSelectionExpanded.getFocusTextBlock(snapshot), selectionStartPoint = selector_isSelectionExpanded.getSelectionStartPoint(snapshot), selectionStartOffset = selectionStartPoint ? util_sliceBlocks.spanSelectionPointToBlockOffset({
|
|
193
193
|
context: snapshot.context,
|
|
194
194
|
selectionPoint: selectionStartPoint
|
|
195
195
|
}) : void 0;
|
|
196
196
|
if (!focusTextBlock || !selectionStartPoint || !selectionStartOffset)
|
|
197
197
|
return null;
|
|
198
|
-
const previousInlineObject = selector_isSelectionExpanded.getPreviousInlineObject(snapshot), blockStartPoint =
|
|
198
|
+
const previousInlineObject = selector_isSelectionExpanded.getPreviousInlineObject(snapshot), blockStartPoint = util_sliceBlocks.getBlockStartPoint({
|
|
199
199
|
context: snapshot.context,
|
|
200
200
|
block: focusTextBlock
|
|
201
201
|
}), textDirectlyBefore = selector_isSelectionExpanded.getSelectionText({
|
|
@@ -234,11 +234,11 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
234
234
|
} : selectionStartOffset, caretWordEndOffset = textDirectlyAfter ? {
|
|
235
235
|
...selectionStartOffset,
|
|
236
236
|
offset: selectionStartOffset.offset + textDirectlyAfter.length
|
|
237
|
-
} : selectionStartOffset, caretWordStartSelectionPoint =
|
|
237
|
+
} : selectionStartOffset, caretWordStartSelectionPoint = util_sliceBlocks.blockOffsetToSpanSelectionPoint({
|
|
238
238
|
context: snapshot.context,
|
|
239
239
|
blockOffset: caretWordStartOffset,
|
|
240
240
|
direction: "backward"
|
|
241
|
-
}), caretWordEndSelectionPoint =
|
|
241
|
+
}), caretWordEndSelectionPoint = util_sliceBlocks.blockOffsetToSpanSelectionPoint({
|
|
242
242
|
context: snapshot.context,
|
|
243
243
|
blockOffset: caretWordEndOffset,
|
|
244
244
|
direction: "forward"
|
|
@@ -265,7 +265,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
265
265
|
} : void 0;
|
|
266
266
|
}, getFocusBlockObject = (snapshot) => {
|
|
267
267
|
const focusBlock = selector_isSelectionExpanded.getFocusBlock(snapshot);
|
|
268
|
-
return focusBlock && !
|
|
268
|
+
return focusBlock && !util_sliceBlocks.isTextBlock(snapshot.context, focusBlock.node) ? {
|
|
269
269
|
node: focusBlock.node,
|
|
270
270
|
path: focusBlock.path
|
|
271
271
|
} : void 0;
|
|
@@ -277,7 +277,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
277
277
|
} : void 0;
|
|
278
278
|
}, getFocusListBlock = (snapshot) => {
|
|
279
279
|
const focusTextBlock = selector_isSelectionExpanded.getFocusTextBlock(snapshot);
|
|
280
|
-
return focusTextBlock &&
|
|
280
|
+
return focusTextBlock && util_sliceBlocks.isListBlock(snapshot.context, focusTextBlock.node) ? {
|
|
281
281
|
node: focusTextBlock.node,
|
|
282
282
|
path: focusTextBlock.path
|
|
283
283
|
} : void 0;
|
|
@@ -290,7 +290,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
290
290
|
}]
|
|
291
291
|
} : void 0;
|
|
292
292
|
}, getSelectionEndBlock = (snapshot) => {
|
|
293
|
-
const endPoint =
|
|
293
|
+
const endPoint = util_sliceBlocks.getSelectionEndPoint(snapshot.context.selection);
|
|
294
294
|
if (endPoint)
|
|
295
295
|
return selector_isSelectionExpanded.getFocusBlock({
|
|
296
296
|
...snapshot,
|
|
@@ -317,7 +317,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
317
317
|
}]
|
|
318
318
|
} : void 0;
|
|
319
319
|
}, getSelectionStartBlock = (snapshot) => {
|
|
320
|
-
const startPoint =
|
|
320
|
+
const startPoint = util_sliceBlocks.getSelectionStartPoint(snapshot.context.selection);
|
|
321
321
|
if (startPoint)
|
|
322
322
|
return selector_isSelectionExpanded.getFocusBlock({
|
|
323
323
|
...snapshot,
|
|
@@ -346,7 +346,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
346
346
|
}, getSelectedTextBlocks = (snapshot) => {
|
|
347
347
|
if (!snapshot.context.selection)
|
|
348
348
|
return [];
|
|
349
|
-
const selectedTextBlocks = [], startPoint =
|
|
349
|
+
const selectedTextBlocks = [], startPoint = util_sliceBlocks.getSelectionStartPoint(snapshot.context.selection), endPoint = util_sliceBlocks.getSelectionEndPoint(snapshot.context.selection), startBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(startPoint), endBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(endPoint);
|
|
350
350
|
if (!startBlockKey || !endBlockKey)
|
|
351
351
|
return selectedTextBlocks;
|
|
352
352
|
const startBlockIndex = snapshot.blockIndexMap.get(startBlockKey), endBlockIndex = snapshot.blockIndexMap.get(endBlockKey);
|
|
@@ -355,7 +355,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
355
355
|
const slicedValue = snapshot.context.value.slice(startBlockIndex, endBlockIndex + 1);
|
|
356
356
|
for (const block of slicedValue) {
|
|
357
357
|
if (block._key === startBlockKey) {
|
|
358
|
-
if (
|
|
358
|
+
if (util_sliceBlocks.isTextBlock(snapshot.context, block) && selectedTextBlocks.push({
|
|
359
359
|
node: block,
|
|
360
360
|
path: [{
|
|
361
361
|
_key: block._key
|
|
@@ -365,7 +365,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
365
365
|
continue;
|
|
366
366
|
}
|
|
367
367
|
if (block._key === endBlockKey) {
|
|
368
|
-
|
|
368
|
+
util_sliceBlocks.isTextBlock(snapshot.context, block) && selectedTextBlocks.push({
|
|
369
369
|
node: block,
|
|
370
370
|
path: [{
|
|
371
371
|
_key: block._key
|
|
@@ -373,7 +373,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
373
373
|
});
|
|
374
374
|
break;
|
|
375
375
|
}
|
|
376
|
-
selectedTextBlocks.length > 0 &&
|
|
376
|
+
selectedTextBlocks.length > 0 && util_sliceBlocks.isTextBlock(snapshot.context, block) && selectedTextBlocks.push({
|
|
377
377
|
node: block,
|
|
378
378
|
path: [{
|
|
379
379
|
_key: block._key
|
|
@@ -384,7 +384,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
384
384
|
}, getTrimmedSelection = (snapshot) => {
|
|
385
385
|
if (!snapshot.context.selection)
|
|
386
386
|
return snapshot.context.selection;
|
|
387
|
-
const startPoint =
|
|
387
|
+
const startPoint = util_sliceBlocks.getSelectionStartPoint(snapshot.context.selection), endPoint = util_sliceBlocks.getSelectionEndPoint(snapshot.context.selection), startBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(startPoint), startChildKey = util_sliceBlocks.getChildKeyFromSelectionPoint(startPoint), endBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(endPoint), endChildKey = util_sliceBlocks.getChildKeyFromSelectionPoint(endPoint);
|
|
388
388
|
if (!startBlockKey || !endBlockKey)
|
|
389
389
|
return snapshot.context.selection;
|
|
390
390
|
const startBlockIndex = snapshot.blockIndexMap.get(startBlockKey), endBlockIndex = snapshot.blockIndexMap.get(endBlockKey);
|
|
@@ -393,11 +393,11 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
393
393
|
const slicedValue = snapshot.context.value.slice(startBlockIndex, endBlockIndex + 1);
|
|
394
394
|
let startBlockFound = !1, adjustedStartPoint, trimStartPoint = !1, adjustedEndPoint, trimEndPoint = !1, previousPotentialEndpoint;
|
|
395
395
|
for (const block of slicedValue)
|
|
396
|
-
if (!(block._key === startBlockKey && (startBlockFound = !0,
|
|
396
|
+
if (!(block._key === startBlockKey && (startBlockFound = !0, util_sliceBlocks.isTextBlock(snapshot.context, block) && util_isEqualSelectionPoints.isEmptyTextBlock(snapshot.context, block))) && startBlockFound && util_sliceBlocks.isTextBlock(snapshot.context, block)) {
|
|
397
397
|
if (block._key === endBlockKey && util_isEqualSelectionPoints.isEmptyTextBlock(snapshot.context, block))
|
|
398
398
|
break;
|
|
399
399
|
for (const child of block.children) {
|
|
400
|
-
if (child._key === endChildKey && (!
|
|
400
|
+
if (child._key === endChildKey && (!util_sliceBlocks.isSpan$1(snapshot.context, child) || endPoint.offset === 0)) {
|
|
401
401
|
adjustedEndPoint = previousPotentialEndpoint ? {
|
|
402
402
|
path: [{
|
|
403
403
|
_key: previousPotentialEndpoint.blockKey
|
|
@@ -409,8 +409,8 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
409
409
|
break;
|
|
410
410
|
}
|
|
411
411
|
if (trimStartPoint) {
|
|
412
|
-
const lonelySpan =
|
|
413
|
-
(
|
|
412
|
+
const lonelySpan = util_sliceBlocks.isSpan$1(snapshot.context, child) && block.children.length === 1;
|
|
413
|
+
(util_sliceBlocks.isSpan$1(snapshot.context, child) && child.text.length > 0 || lonelySpan) && (adjustedStartPoint = {
|
|
414
414
|
path: [{
|
|
415
415
|
_key: block._key
|
|
416
416
|
}, "children", {
|
|
@@ -424,7 +424,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
424
424
|
continue;
|
|
425
425
|
}
|
|
426
426
|
if (child._key === startChildKey) {
|
|
427
|
-
if (!
|
|
427
|
+
if (!util_sliceBlocks.isSpan$1(snapshot.context, child)) {
|
|
428
428
|
trimStartPoint = !0;
|
|
429
429
|
continue;
|
|
430
430
|
}
|
|
@@ -436,7 +436,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
436
436
|
continue;
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
|
-
previousPotentialEndpoint =
|
|
439
|
+
previousPotentialEndpoint = util_sliceBlocks.isSpan$1(snapshot.context, child) && child.text.length > 0 ? {
|
|
440
440
|
blockKey: block._key,
|
|
441
441
|
span: child
|
|
442
442
|
} : previousPotentialEndpoint;
|
|
@@ -471,7 +471,7 @@ const getSelectedBlocks = (snapshot) => {
|
|
|
471
471
|
return trimmedSelection;
|
|
472
472
|
};
|
|
473
473
|
function isActiveAnnotation(annotation) {
|
|
474
|
-
return (snapshot) => getSelectedBlocks(snapshot).flatMap((block) =>
|
|
474
|
+
return (snapshot) => getSelectedBlocks(snapshot).flatMap((block) => util_sliceBlocks.isTextBlock(snapshot.context, block.node) ? block.node.markDefs ?? [] : []).filter((markDef) => markDef._type === annotation && snapshot.beta.activeAnnotations.includes(markDef._key)).length > 0;
|
|
475
475
|
}
|
|
476
476
|
function isActiveDecorator(decorator) {
|
|
477
477
|
return (snapshot) => {
|
|
@@ -503,7 +503,7 @@ function isAtTheStartOfBlock(block) {
|
|
|
503
503
|
return (snapshot) => {
|
|
504
504
|
if (!snapshot.context.selection || !selector_isSelectionExpanded.isSelectionCollapsed(snapshot))
|
|
505
505
|
return !1;
|
|
506
|
-
const blockStartPoint =
|
|
506
|
+
const blockStartPoint = util_sliceBlocks.getBlockStartPoint({
|
|
507
507
|
context: snapshot.context,
|
|
508
508
|
block
|
|
509
509
|
});
|
|
@@ -514,7 +514,7 @@ function isPointAfterSelection(point) {
|
|
|
514
514
|
return (snapshot) => {
|
|
515
515
|
if (!snapshot.context.selection)
|
|
516
516
|
return !1;
|
|
517
|
-
const endPoint =
|
|
517
|
+
const endPoint = util_sliceBlocks.getSelectionEndPoint(snapshot.context.selection), endBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(endPoint), endChildKey = util_sliceBlocks.getChildKeyFromSelectionPoint(endPoint), pointBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(point), pointChildKey = util_sliceBlocks.getChildKeyFromSelectionPoint(point);
|
|
518
518
|
if (!pointBlockKey || !endBlockKey)
|
|
519
519
|
return !1;
|
|
520
520
|
const pointBlockIndex = snapshot.blockIndexMap.get(pointBlockKey), endBlockIndex = snapshot.blockIndexMap.get(endBlockKey);
|
|
@@ -525,7 +525,7 @@ function isPointAfterSelection(point) {
|
|
|
525
525
|
if (pointBlockIndex < endBlockIndex)
|
|
526
526
|
return !1;
|
|
527
527
|
const pointBlock = snapshot.context.value.at(pointBlockIndex);
|
|
528
|
-
if (!pointBlock || !
|
|
528
|
+
if (!pointBlock || !util_sliceBlocks.isTextBlock(snapshot.context, pointBlock))
|
|
529
529
|
return !1;
|
|
530
530
|
let pointChildIndex, endChildIndex, childIndex = -1;
|
|
531
531
|
for (const child of pointBlock.children) {
|
|
@@ -541,7 +541,7 @@ function isPointBeforeSelection(point) {
|
|
|
541
541
|
return (snapshot) => {
|
|
542
542
|
if (!snapshot.context.selection)
|
|
543
543
|
return !1;
|
|
544
|
-
const startPoint =
|
|
544
|
+
const startPoint = util_sliceBlocks.getSelectionStartPoint(snapshot.context.selection), startBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(startPoint), startChildKey = util_sliceBlocks.getChildKeyFromSelectionPoint(startPoint), pointBlockKey = util_sliceBlocks.getBlockKeyFromSelectionPoint(point), pointChildKey = util_sliceBlocks.getChildKeyFromSelectionPoint(point);
|
|
545
545
|
if (!pointBlockKey || !startBlockKey)
|
|
546
546
|
return !1;
|
|
547
547
|
const startBlockIndex = snapshot.blockIndexMap.get(startBlockKey), pointBlockIndex = snapshot.blockIndexMap.get(pointBlockKey);
|
|
@@ -552,7 +552,7 @@ function isPointBeforeSelection(point) {
|
|
|
552
552
|
if (pointBlockIndex > startBlockIndex)
|
|
553
553
|
return !1;
|
|
554
554
|
const pointBlock = snapshot.context.value.at(pointBlockIndex);
|
|
555
|
-
if (!pointBlock || !
|
|
555
|
+
if (!pointBlock || !util_sliceBlocks.isTextBlock(snapshot.context, pointBlock))
|
|
556
556
|
return !1;
|
|
557
557
|
let pointChildIndex, startChildIndex, childIndex = -1;
|
|
558
558
|
for (const child of pointBlock.children) {
|
|
@@ -627,7 +627,7 @@ const isSelectingEntireBlocks = (snapshot) => {
|
|
|
627
627
|
const startPoint = snapshot.context.selection.backward ? snapshot.context.selection.focus : snapshot.context.selection.anchor, endPoint = snapshot.context.selection.backward ? snapshot.context.selection.anchor : snapshot.context.selection.focus, startBlock = getSelectionStartBlock(snapshot), endBlock = getSelectionEndBlock(snapshot);
|
|
628
628
|
if (!startBlock || !endBlock)
|
|
629
629
|
return !1;
|
|
630
|
-
const startBlockStartPoint =
|
|
630
|
+
const startBlockStartPoint = util_sliceBlocks.getBlockStartPoint({
|
|
631
631
|
context: snapshot.context,
|
|
632
632
|
block: startBlock
|
|
633
633
|
}), endBlockEndPoint = util_isEqualSelectionPoints.getBlockEndPoint({
|