@portabletext/editor 1.54.4 → 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 +5 -5
- 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
package/lib/index.d.cts
CHANGED
|
@@ -3166,6 +3166,7 @@ export declare type EditorSnapshot = {
|
|
|
3166
3166
|
activeAnnotations: Array<string>
|
|
3167
3167
|
activeDecorators: Array<string>
|
|
3168
3168
|
}
|
|
3169
|
+
blockIndexMap: Map<string, number>
|
|
3169
3170
|
}
|
|
3170
3171
|
|
|
3171
3172
|
/**
|
|
@@ -4143,6 +4144,8 @@ declare interface PortableTextSlateEditor extends ReactEditor {
|
|
|
4143
4144
|
decoratedRanges: Array<DecoratedRange>
|
|
4144
4145
|
decoratorState: Record<string, boolean | undefined>
|
|
4145
4146
|
markState: MarkState | undefined
|
|
4147
|
+
blockIndexMap: Map<string, number>
|
|
4148
|
+
listIndexMap: Map<string, number>
|
|
4146
4149
|
/**
|
|
4147
4150
|
* Use hotkeys
|
|
4148
4151
|
*/
|
package/lib/index.d.ts
CHANGED
|
@@ -3166,6 +3166,7 @@ export declare type EditorSnapshot = {
|
|
|
3166
3166
|
activeAnnotations: Array<string>
|
|
3167
3167
|
activeDecorators: Array<string>
|
|
3168
3168
|
}
|
|
3169
|
+
blockIndexMap: Map<string, number>
|
|
3169
3170
|
}
|
|
3170
3171
|
|
|
3171
3172
|
/**
|
|
@@ -4143,6 +4144,8 @@ declare interface PortableTextSlateEditor extends ReactEditor {
|
|
|
4143
4144
|
decoratedRanges: Array<DecoratedRange>
|
|
4144
4145
|
decoratorState: Record<string, boolean | undefined>
|
|
4145
4146
|
markState: MarkState | undefined
|
|
4147
|
+
blockIndexMap: Map<string, number>
|
|
4148
|
+
listIndexMap: Map<string, number>
|
|
4146
4149
|
/**
|
|
4147
4150
|
* Use hotkeys
|
|
4148
4151
|
*/
|
package/lib/index.js
CHANGED
|
@@ -9,12 +9,12 @@ import { Element as Element$1, Text, Range, Editor, Node, Point, Transforms, Pat
|
|
|
9
9
|
import { useSelected, useSlateSelector, useSlateStatic, withReact, ReactEditor, Slate, useSlate, Editable } from "slate-react";
|
|
10
10
|
import debug$f from "debug";
|
|
11
11
|
import { DOMEditor, isDOMNode } from "slate-dom";
|
|
12
|
-
import { getBlockStartPoint, getBlockKeyFromSelectionPoint, isTextBlock, parseBlock,
|
|
12
|
+
import { getBlockStartPoint, getBlockKeyFromSelectionPoint, isTextBlock, parseBlock, parseAnnotation, blockOffsetToSpanSelectionPoint, parseInlineObject, isKeyedSegment, isSpan$1 as isSpan, isListBlock, isTypedObject, getSelectionStartPoint, getSelectionEndPoint, getTextBlockText, parseBlocks } from "./_chunks-es/selection-point.js";
|
|
13
13
|
import { getBlockEndPoint, isEmptyTextBlock, isEqualSelectionPoints } from "./_chunks-es/util.is-equal-selection-points.js";
|
|
14
14
|
import { isSelectionCollapsed, selectionPointToBlockOffset } from "./_chunks-es/util.selection-point-to-block-offset.js";
|
|
15
15
|
import isEqual from "lodash/isEqual.js";
|
|
16
16
|
import { isKeySegment, defineType, defineField } from "@sanity/types";
|
|
17
|
-
import { isSelectionCollapsed as isSelectionCollapsed$1, getFocusTextBlock, getFocusSpan as getFocusSpan$1, isSelectionExpanded, getFocusBlock as getFocusBlock$1, getFocusChild as getFocusChild$1 } from "./_chunks-es/selector.is-selection-expanded.js";
|
|
17
|
+
import { isSelectionCollapsed as isSelectionCollapsed$1, getFocusTextBlock, getFocusSpan as getFocusSpan$1, isSelectionExpanded, getFocusBlock as getFocusBlock$1, getSelectedValue, getFocusChild as getFocusChild$1 } from "./_chunks-es/selector.is-selection-expanded.js";
|
|
18
18
|
import { getFocusInlineObject, getSelectedBlocks, getSelectionStartBlock as getSelectionStartBlock$1, getSelectionEndBlock as getSelectionEndBlock$1, isOverlappingSelection, isSelectingEntireBlocks, getTrimmedSelection, getSelectedSpans, getCaretWordSelection, getFocusBlockObject, getPreviousBlock, getNextBlock, isAtTheEndOfBlock, isAtTheStartOfBlock, getFirstBlock as getFirstBlock$1, getLastBlock as getLastBlock$1, getFocusListBlock, isActiveAnnotation, isActiveDecorator, getSelectedTextBlocks, isActiveListItem, isActiveStyle, getActiveAnnotations as getActiveAnnotations$1 } from "./_chunks-es/selector.is-selecting-entire-blocks.js";
|
|
19
19
|
import getRandomValues from "get-random-values-esm";
|
|
20
20
|
import { defineBehavior, forward, raise, effect } from "./behaviors/index.js";
|
|
@@ -684,6 +684,7 @@ function getDragSelection({
|
|
|
684
684
|
}) {
|
|
685
685
|
let dragSelection = eventSelection;
|
|
686
686
|
if (getFocusInlineObject({
|
|
687
|
+
...snapshot,
|
|
687
688
|
context: {
|
|
688
689
|
...snapshot.context,
|
|
689
690
|
selection: eventSelection
|
|
@@ -696,11 +697,13 @@ function getDragSelection({
|
|
|
696
697
|
selection: eventSelection
|
|
697
698
|
}
|
|
698
699
|
}), draggedTextBlock = getFocusTextBlock({
|
|
700
|
+
...snapshot,
|
|
699
701
|
context: {
|
|
700
702
|
...snapshot.context,
|
|
701
703
|
selection: eventSelection
|
|
702
704
|
}
|
|
703
705
|
}), draggedSpan = getFocusSpan$1({
|
|
706
|
+
...snapshot,
|
|
704
707
|
context: {
|
|
705
708
|
...snapshot.context,
|
|
706
709
|
selection: eventSelection
|
|
@@ -785,6 +788,7 @@ function createCoreBlockElementBehaviorsConfig({
|
|
|
785
788
|
event
|
|
786
789
|
}) => {
|
|
787
790
|
const dropFocusBlock = getFocusBlock$1({
|
|
791
|
+
...snapshot,
|
|
788
792
|
context: {
|
|
789
793
|
...snapshot.context,
|
|
790
794
|
selection: event.position.selection
|
|
@@ -800,11 +804,13 @@ function createCoreBlockElementBehaviorsConfig({
|
|
|
800
804
|
snapshot
|
|
801
805
|
});
|
|
802
806
|
return getSelectedBlocks({
|
|
807
|
+
...snapshot,
|
|
803
808
|
context: {
|
|
804
809
|
...snapshot.context,
|
|
805
810
|
selection: dragSelection
|
|
806
811
|
}
|
|
807
812
|
}).some((draggedBlock) => draggedBlock.node._key === key) ? !1 : isSelectingEntireBlocks({
|
|
813
|
+
...snapshot,
|
|
808
814
|
context: {
|
|
809
815
|
...snapshot.context,
|
|
810
816
|
selection: dragSelection
|
|
@@ -936,7 +942,7 @@ function RenderTextBlock(props) {
|
|
|
936
942
|
key: props.element._key,
|
|
937
943
|
onSetDragPositionBlock: setDragPositionBlock
|
|
938
944
|
});
|
|
939
|
-
const legacySchema = useSelector(editorActor, (s) => s.context.getLegacySchema());
|
|
945
|
+
const legacySchema = useSelector(editorActor, (s) => s.context.getLegacySchema()), listIndex = useSlateSelector((editor_0) => editor_0.listIndexMap.get(props.textBlock._key));
|
|
940
946
|
let children = props.children;
|
|
941
947
|
const legacyBlockSchemaType = legacySchema.block;
|
|
942
948
|
if (props.renderStyle && props.textBlock.style) {
|
|
@@ -976,6 +982,8 @@ function RenderTextBlock(props) {
|
|
|
976
982
|
"data-level": props.textBlock.level
|
|
977
983
|
} : {}, ...props.textBlock.style !== void 0 ? {
|
|
978
984
|
"data-style": props.textBlock.style
|
|
985
|
+
} : {}, ...listIndex !== void 0 ? {
|
|
986
|
+
"data-list-index": listIndex
|
|
979
987
|
} : {}, children: [
|
|
980
988
|
dragPositionBlock === "start" ? /* @__PURE__ */ jsx(DropIndicator, {}) : null,
|
|
981
989
|
/* @__PURE__ */ jsx("div", { ref: blockRef, children: props.renderBlock ? props.renderBlock({
|
|
@@ -1110,21 +1118,14 @@ const converterJson = {
|
|
|
1110
1118
|
snapshot,
|
|
1111
1119
|
event
|
|
1112
1120
|
}) => {
|
|
1113
|
-
|
|
1114
|
-
if (!selection)
|
|
1121
|
+
if (!snapshot.context.selection)
|
|
1115
1122
|
return {
|
|
1116
1123
|
type: "serialization.failure",
|
|
1117
1124
|
mimeType: "application/x-portable-text",
|
|
1118
1125
|
originEvent: event.originEvent,
|
|
1119
1126
|
reason: "No selection"
|
|
1120
1127
|
};
|
|
1121
|
-
const blocks =
|
|
1122
|
-
context: {
|
|
1123
|
-
selection,
|
|
1124
|
-
schema: snapshot.context.schema
|
|
1125
|
-
},
|
|
1126
|
-
blocks: snapshot.context.value
|
|
1127
|
-
});
|
|
1128
|
+
const blocks = getSelectedValue(snapshot);
|
|
1128
1129
|
return blocks.length === 0 ? {
|
|
1129
1130
|
type: "serialization.failure",
|
|
1130
1131
|
mimeType: "application/x-portable-text",
|
|
@@ -1177,21 +1178,14 @@ function createConverterTextHtml(legacySchema) {
|
|
|
1177
1178
|
snapshot,
|
|
1178
1179
|
event
|
|
1179
1180
|
}) => {
|
|
1180
|
-
|
|
1181
|
-
if (!selection)
|
|
1181
|
+
if (!snapshot.context.selection)
|
|
1182
1182
|
return {
|
|
1183
1183
|
type: "serialization.failure",
|
|
1184
1184
|
mimeType: "text/html",
|
|
1185
1185
|
originEvent: event.originEvent,
|
|
1186
1186
|
reason: "No selection"
|
|
1187
1187
|
};
|
|
1188
|
-
const blocks =
|
|
1189
|
-
context: {
|
|
1190
|
-
selection,
|
|
1191
|
-
schema: snapshot.context.schema
|
|
1192
|
-
},
|
|
1193
|
-
blocks: snapshot.context.value
|
|
1194
|
-
}), html = toHTML(blocks, {
|
|
1188
|
+
const blocks = getSelectedValue(snapshot), html = toHTML(blocks, {
|
|
1195
1189
|
onMissingComponent: !1,
|
|
1196
1190
|
components: {
|
|
1197
1191
|
unknownType: ({
|
|
@@ -1247,27 +1241,18 @@ function createConverterTextPlain(legacySchema) {
|
|
|
1247
1241
|
serialize: ({
|
|
1248
1242
|
snapshot,
|
|
1249
1243
|
event
|
|
1250
|
-
}) => {
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
type: "serialization.success",
|
|
1254
|
-
data: sliceBlocks({
|
|
1255
|
-
context: {
|
|
1256
|
-
selection,
|
|
1257
|
-
schema: snapshot.context.schema
|
|
1258
|
-
},
|
|
1259
|
-
blocks: snapshot.context.value
|
|
1260
|
-
}).map((block) => isTextBlock(snapshot.context, block) ? block.children.map((child) => child._type === snapshot.context.schema.span.name ? child.text : event.originEvent === "drag.dragstart" ? `[${snapshot.context.schema.inlineObjects.find((inlineObjectType) => inlineObjectType.name === child._type)?.title ?? "Object"}]` : "").join("") : event.originEvent === "drag.dragstart" ? `[${snapshot.context.schema.blockObjects.find((blockObjectType) => blockObjectType.name === block._type)?.title ?? "Object"}]` : "").filter((block) => block !== "").join(`
|
|
1244
|
+
}) => snapshot.context.selection ? {
|
|
1245
|
+
type: "serialization.success",
|
|
1246
|
+
data: getSelectedValue(snapshot).map((block) => isTextBlock(snapshot.context, block) ? block.children.map((child) => child._type === snapshot.context.schema.span.name ? child.text : event.originEvent === "drag.dragstart" ? `[${snapshot.context.schema.inlineObjects.find((inlineObjectType) => inlineObjectType.name === child._type)?.title ?? "Object"}]` : "").join("") : event.originEvent === "drag.dragstart" ? `[${snapshot.context.schema.blockObjects.find((blockObjectType) => blockObjectType.name === block._type)?.title ?? "Object"}]` : "").filter((block) => block !== "").join(`
|
|
1261
1247
|
|
|
1262
1248
|
`),
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
};
|
|
1249
|
+
mimeType: "text/plain",
|
|
1250
|
+
originEvent: event.originEvent
|
|
1251
|
+
} : {
|
|
1252
|
+
type: "serialization.failure",
|
|
1253
|
+
mimeType: "text/plain",
|
|
1254
|
+
originEvent: event.originEvent,
|
|
1255
|
+
reason: "No selection"
|
|
1271
1256
|
},
|
|
1272
1257
|
deserialize: ({
|
|
1273
1258
|
snapshot,
|
|
@@ -1320,6 +1305,63 @@ function compileType(rawType) {
|
|
|
1320
1305
|
types: [rawType]
|
|
1321
1306
|
}).get(rawType.name);
|
|
1322
1307
|
}
|
|
1308
|
+
function buildIndexMaps(context, value) {
|
|
1309
|
+
const blockIndexMap = /* @__PURE__ */ new Map(), listIndexMap = /* @__PURE__ */ new Map(), levelIndexMap = /* @__PURE__ */ new Map();
|
|
1310
|
+
let previousListItem;
|
|
1311
|
+
for (let blockIndex = 0; blockIndex < value.length; blockIndex++) {
|
|
1312
|
+
const block = value.at(blockIndex);
|
|
1313
|
+
if (block !== void 0) {
|
|
1314
|
+
if (blockIndexMap.set(block._key, blockIndex), !isTextBlock(context, block)) {
|
|
1315
|
+
levelIndexMap.clear(), previousListItem = void 0;
|
|
1316
|
+
continue;
|
|
1317
|
+
}
|
|
1318
|
+
if (block.listItem === void 0 || block.level === void 0) {
|
|
1319
|
+
levelIndexMap.clear(), previousListItem = void 0;
|
|
1320
|
+
continue;
|
|
1321
|
+
}
|
|
1322
|
+
if (!previousListItem) {
|
|
1323
|
+
previousListItem = {
|
|
1324
|
+
listItem: block.listItem,
|
|
1325
|
+
level: block.level
|
|
1326
|
+
}, levelIndexMap.set(block.level, 1), listIndexMap.set(block._key, 1);
|
|
1327
|
+
continue;
|
|
1328
|
+
}
|
|
1329
|
+
if (previousListItem.listItem !== block.listItem) {
|
|
1330
|
+
levelIndexMap.clear(), previousListItem = {
|
|
1331
|
+
listItem: block.listItem,
|
|
1332
|
+
level: block.level
|
|
1333
|
+
}, levelIndexMap.set(block.level, 1), listIndexMap.set(block._key, 1);
|
|
1334
|
+
continue;
|
|
1335
|
+
}
|
|
1336
|
+
if (previousListItem.level === block.level) {
|
|
1337
|
+
const levelCounter = levelIndexMap.get(block.level) ?? 0;
|
|
1338
|
+
levelIndexMap.set(block.level, levelCounter + 1), previousListItem = {
|
|
1339
|
+
listItem: block.listItem,
|
|
1340
|
+
level: block.level
|
|
1341
|
+
}, listIndexMap.set(block._key, levelCounter + 1);
|
|
1342
|
+
continue;
|
|
1343
|
+
}
|
|
1344
|
+
if (previousListItem.level < block.level) {
|
|
1345
|
+
levelIndexMap.set(block.level, 1), previousListItem = {
|
|
1346
|
+
listItem: block.listItem,
|
|
1347
|
+
level: block.level
|
|
1348
|
+
}, listIndexMap.set(block._key, 1);
|
|
1349
|
+
continue;
|
|
1350
|
+
}
|
|
1351
|
+
if (previousListItem.level > block.level) {
|
|
1352
|
+
const levelCounter = levelIndexMap.get(block.level) ?? 0;
|
|
1353
|
+
levelIndexMap.set(block.level, levelCounter + 1), previousListItem = {
|
|
1354
|
+
listItem: block.listItem,
|
|
1355
|
+
level: block.level
|
|
1356
|
+
}, listIndexMap.set(block._key, levelCounter + 1);
|
|
1357
|
+
}
|
|
1358
|
+
}
|
|
1359
|
+
}
|
|
1360
|
+
return {
|
|
1361
|
+
blockIndexMap,
|
|
1362
|
+
listIndexMap
|
|
1363
|
+
};
|
|
1364
|
+
}
|
|
1323
1365
|
function createPlaceholderBlock(context) {
|
|
1324
1366
|
return {
|
|
1325
1367
|
_type: context.schema.block.name,
|
|
@@ -1473,6 +1515,7 @@ function getEditorSnapshot({
|
|
|
1473
1515
|
slateEditorInstance
|
|
1474
1516
|
}) {
|
|
1475
1517
|
return {
|
|
1518
|
+
blockIndexMap: slateEditorInstance.blockIndexMap,
|
|
1476
1519
|
context: {
|
|
1477
1520
|
converters: [...editorActorSnapshot.context.converters],
|
|
1478
1521
|
keyGenerator: editorActorSnapshot.context.keyGenerator,
|
|
@@ -3175,6 +3218,11 @@ const addAnnotationOperationImplementation = ({
|
|
|
3175
3218
|
},
|
|
3176
3219
|
backward: editorSelection?.backward
|
|
3177
3220
|
}), trimmedSelection = getTrimmedSelection({
|
|
3221
|
+
blockIndexMap: editor.blockIndexMap,
|
|
3222
|
+
beta: {
|
|
3223
|
+
activeAnnotations: [],
|
|
3224
|
+
activeDecorators: []
|
|
3225
|
+
},
|
|
3178
3226
|
context: {
|
|
3179
3227
|
converters: [],
|
|
3180
3228
|
keyGenerator: context.keyGenerator,
|
|
@@ -4786,6 +4834,7 @@ function getMarkState({
|
|
|
4786
4834
|
editor,
|
|
4787
4835
|
range: editor.selection
|
|
4788
4836
|
}) : null, selectedSpans = getSelectedSpans({
|
|
4837
|
+
blockIndexMap: editor.blockIndexMap,
|
|
4789
4838
|
context: {
|
|
4790
4839
|
value: editor.value,
|
|
4791
4840
|
selection,
|
|
@@ -5184,7 +5233,12 @@ function pluginUpdateValue(context, editor) {
|
|
|
5184
5233
|
apply2(operation);
|
|
5185
5234
|
return;
|
|
5186
5235
|
}
|
|
5187
|
-
editor.value = applyOperationToPortableText(context, editor.value, operation)
|
|
5236
|
+
editor.value = applyOperationToPortableText(context, editor.value, operation);
|
|
5237
|
+
const {
|
|
5238
|
+
blockIndexMap,
|
|
5239
|
+
listIndexMap
|
|
5240
|
+
} = buildIndexMaps(context, editor.value);
|
|
5241
|
+
editor.blockIndexMap = blockIndexMap, editor.listIndexMap = listIndexMap, apply2(operation);
|
|
5188
5242
|
}, editor;
|
|
5189
5243
|
}
|
|
5190
5244
|
const withPlugins = (editor, options) => {
|
|
@@ -5215,7 +5269,14 @@ function createSlateEditor(config) {
|
|
|
5215
5269
|
relayActor: config.relayActor,
|
|
5216
5270
|
subscriptions: config.subscriptions
|
|
5217
5271
|
});
|
|
5218
|
-
KEY_TO_VALUE_ELEMENT.set(instance, {}), KEY_TO_SLATE_ELEMENT.set(instance, {}), instance.decoratedRanges = [], instance.decoratorState = {}, instance.markState = void 0
|
|
5272
|
+
KEY_TO_VALUE_ELEMENT.set(instance, {}), KEY_TO_SLATE_ELEMENT.set(instance, {}), instance.decoratedRanges = [], instance.decoratorState = {}, instance.markState = void 0;
|
|
5273
|
+
const placeholderBlock = createPlaceholderBlock(config.editorActor.getSnapshot().context);
|
|
5274
|
+
instance.value = [placeholderBlock];
|
|
5275
|
+
const {
|
|
5276
|
+
blockIndexMap,
|
|
5277
|
+
listIndexMap
|
|
5278
|
+
} = buildIndexMaps(config.editorActor.getSnapshot().context, instance.value);
|
|
5279
|
+
instance.blockIndexMap = blockIndexMap, instance.listIndexMap = listIndexMap;
|
|
5219
5280
|
const initialValue = toSlateValue(instance.value, {
|
|
5220
5281
|
schemaTypes: config.editorActor.getSnapshot().context.schema
|
|
5221
5282
|
});
|
|
@@ -5488,11 +5549,13 @@ const arrowDownOnLonelyBlockObject = defineBehavior({
|
|
|
5488
5549
|
if (snapshot.context.readOnly || snapshot.context.selection && !isSelectionCollapsed$1(snapshot))
|
|
5489
5550
|
return !1;
|
|
5490
5551
|
const focusBlockObject = getFocusBlockObject({
|
|
5552
|
+
...snapshot,
|
|
5491
5553
|
context: {
|
|
5492
5554
|
...snapshot.context,
|
|
5493
5555
|
selection: event.position.selection
|
|
5494
5556
|
}
|
|
5495
5557
|
}), previousBlock = getPreviousBlock({
|
|
5558
|
+
...snapshot,
|
|
5496
5559
|
context: {
|
|
5497
5560
|
...snapshot.context,
|
|
5498
5561
|
selection: event.position.selection
|
|
@@ -5523,11 +5586,13 @@ const arrowDownOnLonelyBlockObject = defineBehavior({
|
|
|
5523
5586
|
if (snapshot.context.readOnly || snapshot.context.selection && !isSelectionCollapsed$1(snapshot))
|
|
5524
5587
|
return !1;
|
|
5525
5588
|
const focusBlockObject = getFocusBlockObject({
|
|
5589
|
+
...snapshot,
|
|
5526
5590
|
context: {
|
|
5527
5591
|
...snapshot.context,
|
|
5528
5592
|
selection: event.position.selection
|
|
5529
5593
|
}
|
|
5530
5594
|
}), nextBlock = getNextBlock({
|
|
5595
|
+
...snapshot,
|
|
5531
5596
|
context: {
|
|
5532
5597
|
...snapshot.context,
|
|
5533
5598
|
selection: event.position.selection
|
|
@@ -5694,6 +5759,7 @@ const coreDndBehaviors = [
|
|
|
5694
5759
|
snapshot,
|
|
5695
5760
|
eventSelection: event.position.selection
|
|
5696
5761
|
}), selectingEntireBlocks = isSelectingEntireBlocks({
|
|
5762
|
+
...snapshot,
|
|
5697
5763
|
context: {
|
|
5698
5764
|
...snapshot.context,
|
|
5699
5765
|
selection: dragSelection
|
|
@@ -5882,11 +5948,13 @@ const coreDndBehaviors = [
|
|
|
5882
5948
|
selection: dragSelection
|
|
5883
5949
|
}
|
|
5884
5950
|
}) : !1, draggingEntireBlocks = isSelectingEntireBlocks({
|
|
5951
|
+
...snapshot,
|
|
5885
5952
|
context: {
|
|
5886
5953
|
...snapshot.context,
|
|
5887
5954
|
selection: dragSelection
|
|
5888
5955
|
}
|
|
5889
5956
|
}), draggedBlocks = getSelectedBlocks({
|
|
5957
|
+
...snapshot,
|
|
5890
5958
|
context: {
|
|
5891
5959
|
...snapshot.context,
|
|
5892
5960
|
selection: dragSelection
|
|
@@ -6206,6 +6274,7 @@ const coreDndBehaviors = [
|
|
|
6206
6274
|
event
|
|
6207
6275
|
}) => {
|
|
6208
6276
|
const blockKey = event.at[0]._key, markDefKey = event.at[2]._key, block = getFocusTextBlock({
|
|
6277
|
+
...snapshot,
|
|
6209
6278
|
context: {
|
|
6210
6279
|
...snapshot.context,
|
|
6211
6280
|
selection: {
|
|
@@ -6365,6 +6434,7 @@ const coreDndBehaviors = [
|
|
|
6365
6434
|
event
|
|
6366
6435
|
}) => {
|
|
6367
6436
|
const focusChild = getFocusChild$1({
|
|
6437
|
+
...snapshot,
|
|
6368
6438
|
context: {
|
|
6369
6439
|
...snapshot.context,
|
|
6370
6440
|
selection: {
|
|
@@ -6422,11 +6492,9 @@ const coreDndBehaviors = [
|
|
|
6422
6492
|
if (!selection)
|
|
6423
6493
|
return !1;
|
|
6424
6494
|
const trimmedSelection = getTrimmedSelection({
|
|
6495
|
+
...snapshot,
|
|
6425
6496
|
context: {
|
|
6426
|
-
|
|
6427
|
-
schema: snapshot.context.schema,
|
|
6428
|
-
keyGenerator: snapshot.context.keyGenerator,
|
|
6429
|
-
readOnly: !1,
|
|
6497
|
+
...snapshot.context,
|
|
6430
6498
|
value: snapshot.context.value,
|
|
6431
6499
|
selection
|
|
6432
6500
|
}
|
|
@@ -6636,6 +6704,7 @@ const coreDndBehaviors = [
|
|
|
6636
6704
|
event
|
|
6637
6705
|
}) => {
|
|
6638
6706
|
const previousBlock = getPreviousBlock({
|
|
6707
|
+
...snapshot,
|
|
6639
6708
|
context: {
|
|
6640
6709
|
...snapshot.context,
|
|
6641
6710
|
selection: {
|
|
@@ -6670,6 +6739,7 @@ const coreDndBehaviors = [
|
|
|
6670
6739
|
event
|
|
6671
6740
|
}) => {
|
|
6672
6741
|
const nextBlock = getNextBlock({
|
|
6742
|
+
...snapshot,
|
|
6673
6743
|
context: {
|
|
6674
6744
|
...snapshot.context,
|
|
6675
6745
|
selection: {
|
|
@@ -6833,12 +6903,13 @@ const coreDndBehaviors = [
|
|
|
6833
6903
|
anchor: selectionStartPoint,
|
|
6834
6904
|
focus: blockEndPoint
|
|
6835
6905
|
}, newTextBlock = parseBlock({
|
|
6836
|
-
block:
|
|
6906
|
+
block: getSelectedValue({
|
|
6907
|
+
...snapshot,
|
|
6837
6908
|
context: {
|
|
6838
6909
|
...snapshot.context,
|
|
6839
|
-
selection: newTextBlockSelection
|
|
6840
|
-
|
|
6841
|
-
|
|
6910
|
+
selection: newTextBlockSelection,
|
|
6911
|
+
value: [focusTextBlock.node]
|
|
6912
|
+
}
|
|
6842
6913
|
}).at(0),
|
|
6843
6914
|
context: snapshot.context,
|
|
6844
6915
|
options: {
|
|
@@ -7442,16 +7513,17 @@ function createEditorSnapshot({
|
|
|
7442
7513
|
schema,
|
|
7443
7514
|
editor,
|
|
7444
7515
|
range: editor.selection
|
|
7445
|
-
}) : null
|
|
7516
|
+
}) : null, context = {
|
|
7517
|
+
converters,
|
|
7518
|
+
keyGenerator,
|
|
7519
|
+
readOnly,
|
|
7520
|
+
schema,
|
|
7521
|
+
selection,
|
|
7522
|
+
value: editor.value
|
|
7523
|
+
};
|
|
7446
7524
|
return {
|
|
7447
|
-
|
|
7448
|
-
|
|
7449
|
-
keyGenerator,
|
|
7450
|
-
readOnly,
|
|
7451
|
-
schema,
|
|
7452
|
-
selection,
|
|
7453
|
-
value: editor.value
|
|
7454
|
-
},
|
|
7525
|
+
blockIndexMap: editor.blockIndexMap,
|
|
7526
|
+
context,
|
|
7455
7527
|
beta: {
|
|
7456
7528
|
activeAnnotations: getActiveAnnotations({
|
|
7457
7529
|
markState: editor.markState,
|