@portabletext/editor 1.33.5 → 1.34.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/behavior.core.cjs +14 -8
- package/lib/_chunks-cjs/behavior.core.cjs.map +1 -1
- package/lib/_chunks-cjs/behavior.markdown.cjs +20 -12
- package/lib/_chunks-cjs/behavior.markdown.cjs.map +1 -1
- package/lib/_chunks-cjs/plugin.event-listener.cjs +95 -70
- package/lib/_chunks-cjs/plugin.event-listener.cjs.map +1 -1
- package/lib/_chunks-cjs/util.block-offsets-to-selection.cjs +103 -46
- package/lib/_chunks-cjs/util.block-offsets-to-selection.cjs.map +1 -1
- package/lib/_chunks-es/behavior.core.js +14 -8
- package/lib/_chunks-es/behavior.core.js.map +1 -1
- package/lib/_chunks-es/behavior.markdown.js +20 -12
- package/lib/_chunks-es/behavior.markdown.js.map +1 -1
- package/lib/_chunks-es/plugin.event-listener.js +101 -75
- package/lib/_chunks-es/plugin.event-listener.js.map +1 -1
- package/lib/_chunks-es/util.block-offsets-to-selection.js +102 -46
- package/lib/_chunks-es/util.block-offsets-to-selection.js.map +1 -1
- package/lib/behaviors/index.d.cts +5 -34
- package/lib/behaviors/index.d.ts +5 -34
- package/lib/index.d.cts +300 -1460
- package/lib/index.d.ts +300 -1460
- package/lib/plugins/index.cjs +60 -43
- package/lib/plugins/index.cjs.map +1 -1
- package/lib/plugins/index.d.cts +300 -1460
- package/lib/plugins/index.d.ts +300 -1460
- package/lib/plugins/index.js +63 -45
- package/lib/plugins/index.js.map +1 -1
- package/lib/selectors/index.d.cts +12 -0
- package/lib/selectors/index.d.ts +12 -0
- package/lib/utils/index.cjs +23 -1
- package/lib/utils/index.cjs.map +1 -1
- package/lib/utils/index.d.cts +11 -0
- package/lib/utils/index.d.ts +11 -0
- package/lib/utils/index.js +25 -2
- package/lib/utils/index.js.map +1 -1
- package/package.json +6 -6
- package/src/behavior-actions/behavior.action.block.set.ts +48 -5
- package/src/behavior-actions/behavior.action.block.unset.ts +77 -3
- package/src/behavior-actions/behavior.action.decorator.add.ts +30 -8
- package/src/behavior-actions/behavior.actions.ts +1 -18
- package/src/behaviors/behavior.core.lists.ts +18 -14
- package/src/behaviors/behavior.markdown-emphasis.ts +82 -41
- package/src/behaviors/behavior.markdown.ts +14 -12
- package/src/behaviors/behavior.types.ts +2 -14
- package/src/converters/converter.portable-text.deserialize.test.ts +3 -2
- package/src/internal-utils/parse-blocks.test.ts +455 -0
- package/src/internal-utils/parse-blocks.ts +202 -87
- package/src/utils/index.ts +1 -0
- package/src/utils/util.child-selection-point-to-block-offset.ts +55 -0
- package/src/behavior-actions/behavior.action.text-block.set.ts +0 -25
- package/src/behavior-actions/behavior.action.text-block.unset.ts +0 -17
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isPortableTextTextBlock, isPortableTextSpan } from "@sanity/types";
|
|
2
1
|
import { blockOffsetToSpanSelectionPoint } from "./util.slice-blocks.js";
|
|
3
2
|
function isTypedObject(object) {
|
|
4
3
|
return isRecord(object) && typeof object._type == "string";
|
|
@@ -11,56 +10,74 @@ function parseBlock({
|
|
|
11
10
|
block,
|
|
12
11
|
options
|
|
13
12
|
}) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
13
|
+
return parseTextBlock({
|
|
14
|
+
block,
|
|
15
|
+
context,
|
|
16
|
+
options
|
|
17
|
+
}) ?? parseBlockObject({
|
|
18
|
+
blockObject: block,
|
|
19
|
+
context,
|
|
20
|
+
options
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function parseBlockObject({
|
|
24
|
+
blockObject,
|
|
25
|
+
context,
|
|
26
|
+
options
|
|
27
|
+
}) {
|
|
28
|
+
if (isTypedObject(blockObject) && !(blockObject._type === context.schema.block.name || blockObject._type === "block" || !context.schema.blockObjects.some(({
|
|
29
|
+
name
|
|
30
|
+
}) => name === blockObject._type)))
|
|
24
31
|
return {
|
|
25
|
-
|
|
26
|
-
_key: options.refreshKeys ? context.keyGenerator() : typeof
|
|
27
|
-
children: [{
|
|
28
|
-
_key: context.keyGenerator(),
|
|
29
|
-
_type: context.schema.span.name,
|
|
30
|
-
text: "",
|
|
31
|
-
marks: []
|
|
32
|
-
}],
|
|
33
|
-
markDefs: [],
|
|
34
|
-
style: context.schema.styles[0].value
|
|
32
|
+
...blockObject,
|
|
33
|
+
_key: options.refreshKeys ? context.keyGenerator() : typeof blockObject._key == "string" ? blockObject._key : context.keyGenerator()
|
|
35
34
|
};
|
|
36
|
-
|
|
35
|
+
}
|
|
36
|
+
function isTextBlock(schema, block) {
|
|
37
|
+
return parseTextBlock({
|
|
38
|
+
block,
|
|
39
|
+
context: {
|
|
40
|
+
schema,
|
|
41
|
+
keyGenerator: () => ""
|
|
42
|
+
},
|
|
43
|
+
options: {
|
|
44
|
+
refreshKeys: !1
|
|
45
|
+
}
|
|
46
|
+
}) !== void 0;
|
|
47
|
+
}
|
|
48
|
+
function parseTextBlock({
|
|
49
|
+
block,
|
|
50
|
+
context,
|
|
51
|
+
options
|
|
52
|
+
}) {
|
|
53
|
+
if (!isTypedObject(block) || block._type !== context.schema.block.name)
|
|
54
|
+
return;
|
|
55
|
+
const _key = options.refreshKeys ? context.keyGenerator() : typeof block._key == "string" ? block._key : context.keyGenerator(), unparsedMarkDefs = Array.isArray(block.markDefs) ? block.markDefs : [], markDefKeyMap = /* @__PURE__ */ new Map(), markDefs = unparsedMarkDefs.flatMap((markDef) => {
|
|
56
|
+
if (!isTypedObject(markDef))
|
|
57
|
+
return [];
|
|
58
|
+
if (typeof markDef._key != "string")
|
|
59
|
+
return [];
|
|
37
60
|
if (context.schema.annotations.some((annotation) => annotation.name === markDef._type)) {
|
|
38
|
-
const
|
|
39
|
-
return markDefKeyMap.set(markDef._key,
|
|
61
|
+
const _key2 = options.refreshKeys ? context.keyGenerator() : markDef._key;
|
|
62
|
+
return markDefKeyMap.set(markDef._key, _key2), [{
|
|
40
63
|
...markDef,
|
|
41
|
-
_key
|
|
64
|
+
_key: _key2
|
|
42
65
|
}];
|
|
43
66
|
}
|
|
44
67
|
return [];
|
|
45
|
-
}), children = block.children.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return [{
|
|
57
|
-
...child,
|
|
58
|
-
_key: options.refreshKeys ? context.keyGenerator() : child._key,
|
|
59
|
-
marks
|
|
60
|
-
}];
|
|
61
|
-
}), parsedBlock = {
|
|
68
|
+
}), children = (Array.isArray(block.children) ? block.children : []).map((child) => parseSpan({
|
|
69
|
+
span: child,
|
|
70
|
+
context,
|
|
71
|
+
markDefKeyMap,
|
|
72
|
+
options
|
|
73
|
+
}) ?? parseInlineObject({
|
|
74
|
+
inlineObject: child,
|
|
75
|
+
context,
|
|
76
|
+
options
|
|
77
|
+
})).filter((child) => child !== void 0), parsedBlock = {
|
|
78
|
+
// Spread the entire block to allow custom properties on it
|
|
62
79
|
...block,
|
|
63
|
-
_key
|
|
80
|
+
_key,
|
|
64
81
|
children: children.length > 0 ? children : [{
|
|
65
82
|
_key: context.keyGenerator(),
|
|
66
83
|
_type: context.schema.span.name,
|
|
@@ -69,11 +86,49 @@ function parseBlock({
|
|
|
69
86
|
}],
|
|
70
87
|
markDefs
|
|
71
88
|
};
|
|
72
|
-
if (!context.schema.styles.find((style) => style.value === block.style)) {
|
|
73
|
-
const defaultStyle = context.schema.styles
|
|
89
|
+
if (typeof parsedBlock.style != "string" || !context.schema.styles.find((style) => style.value === block.style)) {
|
|
90
|
+
const defaultStyle = context.schema.styles.at(0)?.value;
|
|
74
91
|
defaultStyle !== void 0 ? parsedBlock.style = defaultStyle : delete parsedBlock.style;
|
|
75
92
|
}
|
|
76
|
-
return context.schema.lists.find((list) => list.value === block.listItem)
|
|
93
|
+
return (typeof parsedBlock.listItem != "string" || !context.schema.lists.find((list) => list.value === block.listItem)) && delete parsedBlock.listItem, typeof parsedBlock.level != "number" && delete parsedBlock.level, parsedBlock;
|
|
94
|
+
}
|
|
95
|
+
function parseSpan({
|
|
96
|
+
span,
|
|
97
|
+
context,
|
|
98
|
+
markDefKeyMap,
|
|
99
|
+
options
|
|
100
|
+
}) {
|
|
101
|
+
if (!isTypedObject(span) || span._type !== context.schema.span.name || span._type !== "span")
|
|
102
|
+
return;
|
|
103
|
+
const marks = (Array.isArray(span.marks) ? span.marks : []).flatMap((mark) => {
|
|
104
|
+
if (typeof mark != "string")
|
|
105
|
+
return [];
|
|
106
|
+
const markDefKey = markDefKeyMap.get(mark);
|
|
107
|
+
return markDefKey !== void 0 ? [markDefKey] : context.schema.decorators.some((decorator) => decorator.value === mark) ? [mark] : [];
|
|
108
|
+
});
|
|
109
|
+
return {
|
|
110
|
+
// Spread the entire span to allow custom properties on it
|
|
111
|
+
...span,
|
|
112
|
+
_type: "span",
|
|
113
|
+
_key: options.refreshKeys ? context.keyGenerator() : typeof span._key == "string" ? span._key : context.keyGenerator(),
|
|
114
|
+
text: typeof span.text == "string" ? span.text : "",
|
|
115
|
+
marks
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function parseInlineObject({
|
|
119
|
+
inlineObject,
|
|
120
|
+
context,
|
|
121
|
+
options
|
|
122
|
+
}) {
|
|
123
|
+
if (isTypedObject(inlineObject) && !(inlineObject._type === context.schema.span.name || inlineObject._type === "span" || // Respect the schema definition and don't parse inline objects that are not defined
|
|
124
|
+
!context.schema.inlineObjects.some(({
|
|
125
|
+
name
|
|
126
|
+
}) => name === inlineObject._type)))
|
|
127
|
+
return {
|
|
128
|
+
// Spread the entire inline object to allow custom properties on it
|
|
129
|
+
...inlineObject,
|
|
130
|
+
_key: options.refreshKeys ? context.keyGenerator() : typeof inlineObject._key == "string" ? inlineObject._key : context.keyGenerator()
|
|
131
|
+
};
|
|
77
132
|
}
|
|
78
133
|
function blockOffsetsToSelection({
|
|
79
134
|
value,
|
|
@@ -97,6 +152,7 @@ function blockOffsetsToSelection({
|
|
|
97
152
|
}
|
|
98
153
|
export {
|
|
99
154
|
blockOffsetsToSelection,
|
|
155
|
+
isTextBlock,
|
|
100
156
|
parseBlock
|
|
101
157
|
};
|
|
102
158
|
//# sourceMappingURL=util.block-offsets-to-selection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.block-offsets-to-selection.js","sources":["../../src/internal-utils/asserters.ts","../../src/internal-utils/parse-blocks.ts","../../src/utils/util.block-offsets-to-selection.ts"],"sourcesContent":["import type {TypedObject} from '@sanity/types'\n\nexport function isTypedObject(object: unknown): object is TypedObject {\n return isRecord(object) && typeof object._type === 'string'\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && (typeof value === 'object' || typeof value === 'function')\n}\n","import {\n isPortableTextSpan,\n isPortableTextTextBlock,\n type PortableTextBlock,\n} from '@sanity/types'\nimport type {EditorContext} from '../editor/editor-snapshot'\nimport {isTypedObject} from './asserters'\n\nexport function parseBlock({\n context,\n block,\n options,\n}: {\n context: Pick<EditorContext, 'keyGenerator' | 'schema'>\n block: unknown\n options: {\n refreshKeys: boolean\n }\n}): PortableTextBlock | undefined {\n if (!isTypedObject(block)) {\n return undefined\n }\n\n if (\n block._type !== context.schema.block.name &&\n !context.schema.blockObjects.some(\n (blockObject) => blockObject.name === block._type,\n )\n ) {\n return undefined\n }\n\n if (block._type !== context.schema.block.name) {\n const _key = options.refreshKeys\n ? context.keyGenerator()\n : typeof block._key === 'string'\n ? block._key\n : context.keyGenerator()\n return {\n ...block,\n _key,\n }\n }\n\n if (!isPortableTextTextBlock(block)) {\n return {\n _type: context.schema.block.name,\n _key: options.refreshKeys\n ? context.keyGenerator()\n : typeof block._key === 'string'\n ? block._key\n : context.keyGenerator(),\n children: [\n {\n _key: context.keyGenerator(),\n _type: context.schema.span.name,\n text: '',\n marks: [],\n },\n ],\n markDefs: [],\n style: context.schema.styles[0].value,\n }\n }\n\n const markDefKeyMap = new Map<string, string>()\n const markDefs = (block.markDefs ?? []).flatMap((markDef) => {\n if (\n context.schema.annotations.some(\n (annotation) => annotation.name === markDef._type,\n )\n ) {\n const _key = options.refreshKeys ? context.keyGenerator() : markDef._key\n markDefKeyMap.set(markDef._key, _key)\n\n return [\n {\n ...markDef,\n _key,\n },\n ]\n }\n\n return []\n })\n\n const children = block.children.flatMap((child) => {\n if (!isTypedObject(child)) {\n return []\n }\n\n if (\n child._type !== context.schema.span.name &&\n !context.schema.inlineObjects.some(\n (inlineObject) => inlineObject.name === child._type,\n )\n ) {\n return []\n }\n\n if (!isPortableTextSpan(child)) {\n return [\n {\n ...child,\n _key: options.refreshKeys ? context.keyGenerator() : child._key,\n },\n ]\n }\n\n const marks = (child.marks ?? []).flatMap((mark) => {\n if (markDefKeyMap.has(mark)) {\n return [markDefKeyMap.get(mark)]\n }\n\n if (\n context.schema.decorators.some((decorator) => decorator.value === mark)\n ) {\n return [mark]\n }\n\n return []\n })\n\n return [\n {\n ...child,\n _key: options.refreshKeys ? context.keyGenerator() : child._key,\n marks,\n },\n ]\n })\n\n const parsedBlock = {\n ...block,\n _key: options.refreshKeys ? context.keyGenerator() : block._key,\n children:\n children.length > 0\n ? children\n : [\n {\n _key: context.keyGenerator(),\n _type: context.schema.span.name,\n text: '',\n marks: [],\n },\n ],\n markDefs,\n }\n\n if (!context.schema.styles.find((style) => style.value === block.style)) {\n const defaultStyle = context.schema.styles[0].value\n\n if (defaultStyle !== undefined) {\n parsedBlock.style = defaultStyle\n } else {\n delete parsedBlock.style\n }\n }\n\n if (!context.schema.lists.find((list) => list.value === block.listItem)) {\n delete parsedBlock.listItem\n delete parsedBlock.level\n }\n\n return parsedBlock\n}\n","import type {PortableTextBlock} from '@sanity/types'\nimport type {BlockOffset} from '../behaviors'\nimport type {EditorSelection} from '../selectors'\nimport {blockOffsetToSpanSelectionPoint} from './util.block-offset'\n\n/**\n * @public\n */\nexport function blockOffsetsToSelection({\n value,\n offsets,\n backward,\n}: {\n value: Array<PortableTextBlock>\n offsets: {anchor: BlockOffset; focus: BlockOffset}\n backward?: boolean\n}): EditorSelection {\n const anchor = blockOffsetToSpanSelectionPoint({\n value,\n blockOffset: offsets.anchor,\n direction: backward ? 'backward' : 'forward',\n })\n const focus = blockOffsetToSpanSelectionPoint({\n value,\n blockOffset: offsets.focus,\n direction: backward ? 'forward' : 'backward',\n })\n\n if (!anchor || !focus) {\n return null\n }\n\n return {\n anchor,\n focus,\n backward,\n }\n}\n"],"names":["isTypedObject","object","isRecord","_type","value","parseBlock","context","block","options","schema","name","blockObjects","some","blockObject","_key","refreshKeys","keyGenerator","isPortableTextTextBlock","children","span","text","marks","markDefs","style","styles","markDefKeyMap","Map","flatMap","markDef","annotations","annotation","set","child","inlineObjects","inlineObject","isPortableTextSpan","mark","has","get","decorators","decorator","parsedBlock","length","find","defaultStyle","undefined","lists","list","listItem","level","blockOffsetsToSelection","offsets","backward","anchor","blockOffsetToSpanSelectionPoint","blockOffset","direction","focus"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.block-offsets-to-selection.js","sources":["../../src/internal-utils/asserters.ts","../../src/internal-utils/parse-blocks.ts","../../src/utils/util.block-offsets-to-selection.ts"],"sourcesContent":["import type {TypedObject} from '@sanity/types'\n\nexport function isTypedObject(object: unknown): object is TypedObject {\n return isRecord(object) && typeof object._type === 'string'\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && (typeof value === 'object' || typeof value === 'function')\n}\n","import type {\n PortableTextBlock,\n PortableTextObject,\n PortableTextSpan,\n PortableTextTextBlock,\n} from '@sanity/types'\nimport type {EditorSchema} from '../editor/define-schema'\nimport type {EditorContext} from '../editor/editor-snapshot'\nimport {isTypedObject} from './asserters'\n\nexport function parseBlock({\n context,\n block,\n options,\n}: {\n context: Pick<EditorContext, 'keyGenerator' | 'schema'>\n block: unknown\n options: {\n refreshKeys: boolean\n }\n}): PortableTextBlock | undefined {\n return (\n parseTextBlock({block, context, options}) ??\n parseBlockObject({blockObject: block, context, options})\n )\n}\n\nfunction parseBlockObject({\n blockObject,\n context,\n options,\n}: {\n blockObject: unknown\n context: Pick<EditorContext, 'keyGenerator' | 'schema'>\n options: {refreshKeys: boolean}\n}): PortableTextObject | undefined {\n if (!isTypedObject(blockObject)) {\n return undefined\n }\n\n if (\n blockObject._type === context.schema.block.name ||\n blockObject._type === 'block' ||\n !context.schema.blockObjects.some(({name}) => name === blockObject._type)\n ) {\n return undefined\n }\n\n return {\n ...blockObject,\n _key: options.refreshKeys\n ? context.keyGenerator()\n : typeof blockObject._key === 'string'\n ? blockObject._key\n : context.keyGenerator(),\n }\n}\n\nexport function isTextBlock(\n schema: EditorSchema,\n block: unknown,\n): block is PortableTextTextBlock {\n return (\n parseTextBlock({\n block,\n context: {schema, keyGenerator: () => ''},\n options: {refreshKeys: false},\n }) !== undefined\n )\n}\n\nfunction parseTextBlock({\n block,\n context,\n options,\n}: {\n block: unknown\n context: Pick<EditorContext, 'keyGenerator' | 'schema'>\n options: {refreshKeys: boolean}\n}): PortableTextTextBlock | undefined {\n if (!isTypedObject(block)) {\n return undefined\n }\n\n if (block._type !== context.schema.block.name) {\n return undefined\n }\n\n const _key = options.refreshKeys\n ? context.keyGenerator()\n : typeof block._key === 'string'\n ? block._key\n : context.keyGenerator()\n\n const unparsedMarkDefs: Array<unknown> = Array.isArray(block.markDefs)\n ? block.markDefs\n : []\n const markDefKeyMap = new Map<string, string>()\n const markDefs = unparsedMarkDefs.flatMap((markDef) => {\n if (!isTypedObject(markDef)) {\n return []\n }\n\n if (typeof markDef._key !== 'string') {\n return []\n }\n\n if (\n context.schema.annotations.some(\n (annotation) => annotation.name === markDef._type,\n )\n ) {\n const _key = options.refreshKeys ? context.keyGenerator() : markDef._key\n markDefKeyMap.set(markDef._key, _key)\n\n return [\n {\n ...markDef,\n _key,\n },\n ]\n }\n\n return []\n })\n\n const unparsedChildren: Array<unknown> = Array.isArray(block.children)\n ? block.children\n : []\n\n const children = unparsedChildren\n .map(\n (child) =>\n parseSpan({span: child, context, markDefKeyMap, options}) ??\n parseInlineObject({inlineObject: child, context, options}),\n )\n .filter((child) => child !== undefined)\n\n const parsedBlock: PortableTextTextBlock = {\n // Spread the entire block to allow custom properties on it\n ...block,\n _key,\n children:\n children.length > 0\n ? children\n : [\n {\n _key: context.keyGenerator(),\n _type: context.schema.span.name,\n text: '',\n marks: [],\n },\n ],\n markDefs,\n }\n\n /**\n * Reset text block .style if it's somehow set to an invalid type\n */\n if (\n typeof parsedBlock.style !== 'string' ||\n !context.schema.styles.find((style) => style.value === block.style)\n ) {\n const defaultStyle = context.schema.styles.at(0)?.value\n\n if (defaultStyle !== undefined) {\n parsedBlock.style = defaultStyle\n } else {\n delete parsedBlock.style\n }\n }\n\n /**\n * Reset text block .listItem if it's somehow set to an invalid type\n */\n if (\n typeof parsedBlock.listItem !== 'string' ||\n !context.schema.lists.find((list) => list.value === block.listItem)\n ) {\n delete parsedBlock.listItem\n }\n\n /**\n * Reset text block .level if it's somehow set to an invalid type\n */\n if (typeof parsedBlock.level !== 'number') {\n delete parsedBlock.level\n }\n\n return parsedBlock\n}\n\nexport function parseSpan({\n span,\n context,\n markDefKeyMap,\n options,\n}: {\n span: unknown\n context: Pick<EditorContext, 'keyGenerator' | 'schema'>\n markDefKeyMap: Map<string, string>\n options: {refreshKeys: boolean}\n}): PortableTextSpan | undefined {\n if (!isTypedObject(span)) {\n return undefined\n }\n\n // In reality, the span schema name is always 'span', but we only the check here anyway\n if (span._type !== context.schema.span.name || span._type !== 'span') {\n return undefined\n }\n\n const unparsedMarks: Array<unknown> = Array.isArray(span.marks)\n ? span.marks\n : []\n const marks = unparsedMarks.flatMap((mark) => {\n if (typeof mark !== 'string') {\n return []\n }\n\n const markDefKey = markDefKeyMap.get(mark)\n\n if (markDefKey !== undefined) {\n return [markDefKey]\n }\n\n if (\n context.schema.decorators.some((decorator) => decorator.value === mark)\n ) {\n return [mark]\n }\n\n return []\n })\n\n return {\n // Spread the entire span to allow custom properties on it\n ...span,\n _type: 'span',\n _key: options.refreshKeys\n ? context.keyGenerator()\n : typeof span._key === 'string'\n ? span._key\n : context.keyGenerator(),\n text: typeof span.text === 'string' ? span.text : '',\n marks,\n }\n}\n\nfunction parseInlineObject({\n inlineObject,\n context,\n options,\n}: {\n inlineObject: unknown\n context: Pick<EditorContext, 'keyGenerator' | 'schema'>\n options: {refreshKeys: boolean}\n}): PortableTextObject | undefined {\n if (!isTypedObject(inlineObject)) {\n return undefined\n }\n\n if (\n inlineObject._type === context.schema.span.name ||\n inlineObject._type === 'span' ||\n // Respect the schema definition and don't parse inline objects that are not defined\n !context.schema.inlineObjects.some(({name}) => name === inlineObject._type)\n ) {\n return undefined\n }\n\n return {\n // Spread the entire inline object to allow custom properties on it\n ...inlineObject,\n _key: options.refreshKeys\n ? context.keyGenerator()\n : typeof inlineObject._key === 'string'\n ? inlineObject._key\n : context.keyGenerator(),\n }\n}\n","import type {PortableTextBlock} from '@sanity/types'\nimport type {BlockOffset} from '../behaviors'\nimport type {EditorSelection} from '../selectors'\nimport {blockOffsetToSpanSelectionPoint} from './util.block-offset'\n\n/**\n * @public\n */\nexport function blockOffsetsToSelection({\n value,\n offsets,\n backward,\n}: {\n value: Array<PortableTextBlock>\n offsets: {anchor: BlockOffset; focus: BlockOffset}\n backward?: boolean\n}): EditorSelection {\n const anchor = blockOffsetToSpanSelectionPoint({\n value,\n blockOffset: offsets.anchor,\n direction: backward ? 'backward' : 'forward',\n })\n const focus = blockOffsetToSpanSelectionPoint({\n value,\n blockOffset: offsets.focus,\n direction: backward ? 'forward' : 'backward',\n })\n\n if (!anchor || !focus) {\n return null\n }\n\n return {\n anchor,\n focus,\n backward,\n }\n}\n"],"names":["isTypedObject","object","isRecord","_type","value","parseBlock","context","block","options","parseTextBlock","parseBlockObject","blockObject","schema","name","blockObjects","some","_key","refreshKeys","keyGenerator","isTextBlock","undefined","unparsedMarkDefs","Array","isArray","markDefs","markDefKeyMap","Map","flatMap","markDef","annotations","annotation","set","children","map","child","parseSpan","span","parseInlineObject","inlineObject","filter","parsedBlock","length","text","marks","style","styles","find","defaultStyle","at","listItem","lists","list","level","mark","markDefKey","get","decorators","decorator","inlineObjects","blockOffsetsToSelection","offsets","backward","anchor","blockOffsetToSpanSelectionPoint","blockOffset","direction","focus"],"mappings":"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"}
|
|
@@ -198,8 +198,6 @@ export declare const coreBehaviors: Behavior_2<
|
|
|
198
198
|
| 'style.add'
|
|
199
199
|
| 'style.remove'
|
|
200
200
|
| 'style.toggle'
|
|
201
|
-
| 'text block.set'
|
|
202
|
-
| 'text block.unset'
|
|
203
201
|
| 'key.down'
|
|
204
202
|
| 'key.up'
|
|
205
203
|
| 'paste'
|
|
@@ -254,8 +252,6 @@ export declare const coreBehaviors: Behavior_2<
|
|
|
254
252
|
| 'style.add'
|
|
255
253
|
| 'style.remove'
|
|
256
254
|
| 'style.toggle'
|
|
257
|
-
| 'text block.set'
|
|
258
|
-
| 'text block.unset'
|
|
259
255
|
| 'key.down'
|
|
260
256
|
| 'key.up'
|
|
261
257
|
| 'paste'
|
|
@@ -315,8 +311,6 @@ export declare function createCodeEditorBehaviors(
|
|
|
315
311
|
| 'style.add'
|
|
316
312
|
| 'style.remove'
|
|
317
313
|
| 'style.toggle'
|
|
318
|
-
| 'text block.set'
|
|
319
|
-
| 'text block.unset'
|
|
320
314
|
| 'key.down'
|
|
321
315
|
| 'key.up'
|
|
322
316
|
| 'paste'
|
|
@@ -371,8 +365,6 @@ export declare function createCodeEditorBehaviors(
|
|
|
371
365
|
| 'style.add'
|
|
372
366
|
| 'style.remove'
|
|
373
367
|
| 'style.toggle'
|
|
374
|
-
| 'text block.set'
|
|
375
|
-
| 'text block.unset'
|
|
376
368
|
| 'key.down'
|
|
377
369
|
| 'key.up'
|
|
378
370
|
| 'paste'
|
|
@@ -432,8 +424,6 @@ export declare function createEmojiPickerBehaviors<TEmojiMatch>(
|
|
|
432
424
|
| 'style.add'
|
|
433
425
|
| 'style.remove'
|
|
434
426
|
| 'style.toggle'
|
|
435
|
-
| 'text block.set'
|
|
436
|
-
| 'text block.unset'
|
|
437
427
|
| 'key.down'
|
|
438
428
|
| 'key.up'
|
|
439
429
|
| 'paste'
|
|
@@ -488,8 +478,6 @@ export declare function createEmojiPickerBehaviors<TEmojiMatch>(
|
|
|
488
478
|
| 'style.add'
|
|
489
479
|
| 'style.remove'
|
|
490
480
|
| 'style.toggle'
|
|
491
|
-
| 'text block.set'
|
|
492
|
-
| 'text block.unset'
|
|
493
481
|
| 'key.down'
|
|
494
482
|
| 'key.up'
|
|
495
483
|
| 'paste'
|
|
@@ -549,8 +537,6 @@ export declare function createLinkBehaviors(
|
|
|
549
537
|
| 'style.add'
|
|
550
538
|
| 'style.remove'
|
|
551
539
|
| 'style.toggle'
|
|
552
|
-
| 'text block.set'
|
|
553
|
-
| 'text block.unset'
|
|
554
540
|
| 'key.down'
|
|
555
541
|
| 'key.up'
|
|
556
542
|
| 'paste'
|
|
@@ -605,8 +591,6 @@ export declare function createLinkBehaviors(
|
|
|
605
591
|
| 'style.add'
|
|
606
592
|
| 'style.remove'
|
|
607
593
|
| 'style.toggle'
|
|
608
|
-
| 'text block.set'
|
|
609
|
-
| 'text block.unset'
|
|
610
594
|
| 'key.down'
|
|
611
595
|
| 'key.up'
|
|
612
596
|
| 'paste'
|
|
@@ -708,8 +692,6 @@ export declare function createMarkdownBehaviors(
|
|
|
708
692
|
| 'style.add'
|
|
709
693
|
| 'style.remove'
|
|
710
694
|
| 'style.toggle'
|
|
711
|
-
| 'text block.set'
|
|
712
|
-
| 'text block.unset'
|
|
713
695
|
| 'key.down'
|
|
714
696
|
| 'key.up'
|
|
715
697
|
| 'paste'
|
|
@@ -764,8 +746,6 @@ export declare function createMarkdownBehaviors(
|
|
|
764
746
|
| 'style.add'
|
|
765
747
|
| 'style.remove'
|
|
766
748
|
| 'style.toggle'
|
|
767
|
-
| 'text block.set'
|
|
768
|
-
| 'text block.unset'
|
|
769
749
|
| 'key.down'
|
|
770
750
|
| 'key.up'
|
|
771
751
|
| 'paste'
|
|
@@ -1023,7 +1003,7 @@ export declare type SyntheticBehaviorEvent =
|
|
|
1023
1003
|
| {
|
|
1024
1004
|
type: 'block.set'
|
|
1025
1005
|
at: [KeyedSegment]
|
|
1026
|
-
|
|
1006
|
+
props: Record<string, unknown>
|
|
1027
1007
|
}
|
|
1028
1008
|
| {
|
|
1029
1009
|
type: 'block.unset'
|
|
@@ -1042,7 +1022,10 @@ export declare type SyntheticBehaviorEvent =
|
|
|
1042
1022
|
| {
|
|
1043
1023
|
type: 'decorator.add'
|
|
1044
1024
|
decorator: string
|
|
1045
|
-
|
|
1025
|
+
offsets?: {
|
|
1026
|
+
anchor: BlockOffset
|
|
1027
|
+
focus: BlockOffset
|
|
1028
|
+
}
|
|
1046
1029
|
}
|
|
1047
1030
|
| {
|
|
1048
1031
|
type: 'decorator.remove'
|
|
@@ -1186,18 +1169,6 @@ export declare type SyntheticBehaviorEvent =
|
|
|
1186
1169
|
type: 'style.toggle'
|
|
1187
1170
|
style: string
|
|
1188
1171
|
}
|
|
1189
|
-
| {
|
|
1190
|
-
type: 'text block.set'
|
|
1191
|
-
at: [KeyedSegment]
|
|
1192
|
-
level?: number
|
|
1193
|
-
listItem?: string
|
|
1194
|
-
style?: string
|
|
1195
|
-
}
|
|
1196
|
-
| {
|
|
1197
|
-
type: 'text block.unset'
|
|
1198
|
-
at: [KeyedSegment]
|
|
1199
|
-
props: Array<'level' | 'listItem' | 'style'>
|
|
1200
|
-
}
|
|
1201
1172
|
| (PickFromUnion<
|
|
1202
1173
|
ConverterEvent,
|
|
1203
1174
|
'type',
|
package/lib/behaviors/index.d.ts
CHANGED
|
@@ -198,8 +198,6 @@ export declare const coreBehaviors: Behavior_2<
|
|
|
198
198
|
| 'style.add'
|
|
199
199
|
| 'style.remove'
|
|
200
200
|
| 'style.toggle'
|
|
201
|
-
| 'text block.set'
|
|
202
|
-
| 'text block.unset'
|
|
203
201
|
| 'key.down'
|
|
204
202
|
| 'key.up'
|
|
205
203
|
| 'paste'
|
|
@@ -254,8 +252,6 @@ export declare const coreBehaviors: Behavior_2<
|
|
|
254
252
|
| 'style.add'
|
|
255
253
|
| 'style.remove'
|
|
256
254
|
| 'style.toggle'
|
|
257
|
-
| 'text block.set'
|
|
258
|
-
| 'text block.unset'
|
|
259
255
|
| 'key.down'
|
|
260
256
|
| 'key.up'
|
|
261
257
|
| 'paste'
|
|
@@ -315,8 +311,6 @@ export declare function createCodeEditorBehaviors(
|
|
|
315
311
|
| 'style.add'
|
|
316
312
|
| 'style.remove'
|
|
317
313
|
| 'style.toggle'
|
|
318
|
-
| 'text block.set'
|
|
319
|
-
| 'text block.unset'
|
|
320
314
|
| 'key.down'
|
|
321
315
|
| 'key.up'
|
|
322
316
|
| 'paste'
|
|
@@ -371,8 +365,6 @@ export declare function createCodeEditorBehaviors(
|
|
|
371
365
|
| 'style.add'
|
|
372
366
|
| 'style.remove'
|
|
373
367
|
| 'style.toggle'
|
|
374
|
-
| 'text block.set'
|
|
375
|
-
| 'text block.unset'
|
|
376
368
|
| 'key.down'
|
|
377
369
|
| 'key.up'
|
|
378
370
|
| 'paste'
|
|
@@ -432,8 +424,6 @@ export declare function createEmojiPickerBehaviors<TEmojiMatch>(
|
|
|
432
424
|
| 'style.add'
|
|
433
425
|
| 'style.remove'
|
|
434
426
|
| 'style.toggle'
|
|
435
|
-
| 'text block.set'
|
|
436
|
-
| 'text block.unset'
|
|
437
427
|
| 'key.down'
|
|
438
428
|
| 'key.up'
|
|
439
429
|
| 'paste'
|
|
@@ -488,8 +478,6 @@ export declare function createEmojiPickerBehaviors<TEmojiMatch>(
|
|
|
488
478
|
| 'style.add'
|
|
489
479
|
| 'style.remove'
|
|
490
480
|
| 'style.toggle'
|
|
491
|
-
| 'text block.set'
|
|
492
|
-
| 'text block.unset'
|
|
493
481
|
| 'key.down'
|
|
494
482
|
| 'key.up'
|
|
495
483
|
| 'paste'
|
|
@@ -549,8 +537,6 @@ export declare function createLinkBehaviors(
|
|
|
549
537
|
| 'style.add'
|
|
550
538
|
| 'style.remove'
|
|
551
539
|
| 'style.toggle'
|
|
552
|
-
| 'text block.set'
|
|
553
|
-
| 'text block.unset'
|
|
554
540
|
| 'key.down'
|
|
555
541
|
| 'key.up'
|
|
556
542
|
| 'paste'
|
|
@@ -605,8 +591,6 @@ export declare function createLinkBehaviors(
|
|
|
605
591
|
| 'style.add'
|
|
606
592
|
| 'style.remove'
|
|
607
593
|
| 'style.toggle'
|
|
608
|
-
| 'text block.set'
|
|
609
|
-
| 'text block.unset'
|
|
610
594
|
| 'key.down'
|
|
611
595
|
| 'key.up'
|
|
612
596
|
| 'paste'
|
|
@@ -708,8 +692,6 @@ export declare function createMarkdownBehaviors(
|
|
|
708
692
|
| 'style.add'
|
|
709
693
|
| 'style.remove'
|
|
710
694
|
| 'style.toggle'
|
|
711
|
-
| 'text block.set'
|
|
712
|
-
| 'text block.unset'
|
|
713
695
|
| 'key.down'
|
|
714
696
|
| 'key.up'
|
|
715
697
|
| 'paste'
|
|
@@ -764,8 +746,6 @@ export declare function createMarkdownBehaviors(
|
|
|
764
746
|
| 'style.add'
|
|
765
747
|
| 'style.remove'
|
|
766
748
|
| 'style.toggle'
|
|
767
|
-
| 'text block.set'
|
|
768
|
-
| 'text block.unset'
|
|
769
749
|
| 'key.down'
|
|
770
750
|
| 'key.up'
|
|
771
751
|
| 'paste'
|
|
@@ -1023,7 +1003,7 @@ export declare type SyntheticBehaviorEvent =
|
|
|
1023
1003
|
| {
|
|
1024
1004
|
type: 'block.set'
|
|
1025
1005
|
at: [KeyedSegment]
|
|
1026
|
-
|
|
1006
|
+
props: Record<string, unknown>
|
|
1027
1007
|
}
|
|
1028
1008
|
| {
|
|
1029
1009
|
type: 'block.unset'
|
|
@@ -1042,7 +1022,10 @@ export declare type SyntheticBehaviorEvent =
|
|
|
1042
1022
|
| {
|
|
1043
1023
|
type: 'decorator.add'
|
|
1044
1024
|
decorator: string
|
|
1045
|
-
|
|
1025
|
+
offsets?: {
|
|
1026
|
+
anchor: BlockOffset
|
|
1027
|
+
focus: BlockOffset
|
|
1028
|
+
}
|
|
1046
1029
|
}
|
|
1047
1030
|
| {
|
|
1048
1031
|
type: 'decorator.remove'
|
|
@@ -1186,18 +1169,6 @@ export declare type SyntheticBehaviorEvent =
|
|
|
1186
1169
|
type: 'style.toggle'
|
|
1187
1170
|
style: string
|
|
1188
1171
|
}
|
|
1189
|
-
| {
|
|
1190
|
-
type: 'text block.set'
|
|
1191
|
-
at: [KeyedSegment]
|
|
1192
|
-
level?: number
|
|
1193
|
-
listItem?: string
|
|
1194
|
-
style?: string
|
|
1195
|
-
}
|
|
1196
|
-
| {
|
|
1197
|
-
type: 'text block.unset'
|
|
1198
|
-
at: [KeyedSegment]
|
|
1199
|
-
props: Array<'level' | 'listItem' | 'style'>
|
|
1200
|
-
}
|
|
1201
1172
|
| (PickFromUnion<
|
|
1202
1173
|
ConverterEvent,
|
|
1203
1174
|
'type',
|