@stll/folio-core 0.58.5 → 0.59.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/dist/ai-edits/apply.d.ts +11 -12
- package/dist/ai-edits/apply.js +179 -168
- package/dist/ai-edits/headless.d.ts +15 -13
- package/dist/ai-edits/headless.js +40 -13
- package/dist/ai-edits/index.d.ts +3 -3
- package/dist/ai-edits/newListNumbering.d.ts +3 -9
- package/dist/ai-edits/newListNumbering.js +36 -41
- package/dist/ai-edits/referenceClassification.d.ts +22 -0
- package/dist/ai-edits/referenceClassification.js +21 -0
- package/dist/ai-edits/snapshot.js +39 -40
- package/dist/ai-edits/types.d.ts +24 -32
- package/dist/compare/column-alignment.d.ts +4 -4
- package/dist/compare/compare.d.ts +3 -7
- package/dist/compare/compare.js +25 -27
- package/dist/compare/content-alignment.d.ts +9 -9
- package/dist/compare/content-types.d.ts +23 -10
- package/dist/compare/content-types.js +14 -0
- package/dist/compare/content.d.ts +16 -17
- package/dist/compare/content.js +30 -7
- package/dist/compare/formatting.d.ts +3 -3
- package/dist/compare/import-style-closure.d.ts +22 -0
- package/dist/compare/import-style-closure.js +33 -0
- package/dist/compare/inserted-resource-snapshot.d.ts +15 -0
- package/dist/compare/inserted-resource-snapshot.js +63 -0
- package/dist/compare/plan.js +20 -13
- package/dist/compare/scenario.js +12 -2
- package/dist/compare/style-resources.d.ts +8 -2
- package/dist/compare/style-resources.js +63 -14
- package/dist/compare/verification.d.ts +15 -3
- package/dist/compare/verification.js +47 -8
- package/dist/compat/eigenpal.d.ts +4 -4
- package/dist/controller/canonicalListRendering.js +13 -22
- package/dist/controller/canonicalPublicOperations.js +1 -1
- package/dist/controller/canonicalStructure.js +45 -21
- package/dist/document-operations.d.ts +4 -9
- package/dist/document-operations.js +45 -41
- package/dist/docx/attributeRemainder.d.ts +1 -1
- package/dist/docx/index.d.ts +1 -1
- package/dist/docx/listMarkerComputation.js +9 -14
- package/dist/docx/listTemplate.d.ts +22 -0
- package/dist/docx/listTemplate.js +40 -0
- package/dist/docx/numberingParser.js +2 -2
- package/dist/docx/numberingReferenceNormalization.js +3 -3
- package/dist/docx/paragraphParser.js +3 -4
- package/dist/docx/rezip.js +2 -2
- package/dist/docx/server/materializeYjsDocx.js +2 -2
- package/dist/docx/server/migrateYjsAttrSchema.js +5 -5
- package/dist/generated/text_shaper.js +8 -4
- package/dist/generated/text_shaper_bg.wasm +0 -0
- package/dist/index.d.ts +4 -4
- package/dist/internal/paragraphFormattingSerialization.d.ts +1 -8
- package/dist/internal/paragraphFormattingSerialization.js +6 -20
- package/dist/layout-bridge/convert/flowConversionShared.d.ts +1 -1
- package/dist/layout-bridge/convert/listMarkers.d.ts +1 -2
- package/dist/layout-bridge/convert/listMarkers.js +3 -11
- package/dist/layout-bridge/convert/paragraphAttrs.d.ts +1 -1
- package/dist/layout-bridge/convert/paragraphAttrs.js +8 -4
- package/dist/layout-bridge/convert/toFlowBlocks.d.ts +2 -1
- package/dist/layout-bridge/convert/toFlowBlocks.js +2 -1
- package/dist/markdown/renderParagraph.js +29 -3
- package/dist/prosemirror/commands/comments.js +5 -32
- package/dist/prosemirror/commands/paragraphBookmarkJoin.d.ts +7 -1
- package/dist/prosemirror/commands/paragraphBookmarkJoin.js +35 -1
- package/dist/prosemirror/commands/propertyChangeScope.js +6 -0
- package/dist/prosemirror/commands/resolveParagraphProperties.js +10 -5
- package/dist/prosemirror/conversion/fromProseDoc.js +23 -9
- package/dist/prosemirror/conversion/toProseDoc.js +31 -7
- package/dist/prosemirror/extensions/core/ParagraphExtension.js +29 -14
- package/dist/prosemirror/extensions/features/ListExtension.js +51 -21
- package/dist/prosemirror/listInstanceReferences.js +21 -15
- package/dist/prosemirror/listLabels.d.ts +4 -3
- package/dist/prosemirror/listLabels.js +18 -51
- package/dist/prosemirror/listMarker.d.ts +2 -19
- package/dist/prosemirror/listMarker.js +28 -57
- package/dist/prosemirror/listNumbering.js +16 -6
- package/dist/prosemirror/listRendering.d.ts +4 -3
- package/dist/prosemirror/listRendering.js +22 -3
- package/dist/prosemirror/listRenderingAttrs.d.ts +2 -1
- package/dist/prosemirror/listRenderingAttrs.js +6 -11
- package/dist/prosemirror/numberedRefFields.js +9 -5
- package/dist/prosemirror/numberingAttr.d.ts +19 -1
- package/dist/prosemirror/numberingAttr.js +16 -2
- package/dist/prosemirror/paragraphIndentation.js +5 -2
- package/dist/prosemirror/paragraphMarkJoin.js +17 -3
- package/dist/prosemirror/paragraphPropertyCarry.js +5 -6
- package/dist/prosemirror/plugins/transactionInvariants.js +6 -2
- package/dist/prosemirror/schema/nodes.d.ts +2 -1
- package/dist/prosemirror/selectionState.js +5 -1
- package/dist/prosemirror/storyListNumbering.js +11 -12
- package/dist/prosemirror/styles/paragraphStyleCascade.js +2 -6
- package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +11 -4
- package/dist/prosemirror/styles/resolvedStyleAttrs.js +28 -18
- package/dist/prosemirror/yjsDocumentMetadata.d.ts +9 -3
- package/dist/prosemirror/yjsDocumentMetadata.js +42 -10
- package/dist/redline.d.ts +17 -1
- package/dist/redline.js +118 -57
- package/dist/server.d.ts +3 -3
- package/dist/server.js +2 -2
- package/dist/version-comparison.d.ts +1 -2
- package/dist/version-comparison.js +1 -2
- package/package.json +4 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DERIVED_PART_ROOT_ATTRIBUTES, attributeRemainder } from "./attributeRemainder.js";
|
|
2
2
|
import { CAPTURE, dispatchChildrenWithContext, sequencePositions } from "./containerChildren.js";
|
|
3
|
-
import { isNumberingReference } from "./numberingReference.js";
|
|
3
|
+
import { isNumberingReference as isNumberingReference$1 } from "./numberingReference.js";
|
|
4
4
|
import { formatOoxmlCounter, padDecimal } from "./ooxmlCounterFormatter.js";
|
|
5
5
|
import { parseParagraphProperties } from "./paragraphProperties.js";
|
|
6
6
|
import { LevelSuffixSchema, NumberFormatSchema, ParagraphAlignmentSchema, narrowEnum } from "./parserEnums.js";
|
|
@@ -459,7 +459,7 @@ function createNumberingMap(definitions) {
|
|
|
459
459
|
*/
|
|
460
460
|
function computeListRendering(numPr, numbering) {
|
|
461
461
|
const { numId, ilvl = 0 } = numPr;
|
|
462
|
-
if (!isNumberingReference(numId)) return null;
|
|
462
|
+
if (!isNumberingReference$1(numId)) return null;
|
|
463
463
|
const level = numbering.getLevel(numId, ilvl);
|
|
464
464
|
if (!level) return null;
|
|
465
465
|
const levelNumFmts = [];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NO_PARAGRAPH_NUMBERING as NO_PARAGRAPH_NUMBERING$1, paragraphNumberingReferenceId
|
|
1
|
+
import { NO_PARAGRAPH_NUMBERING as NO_PARAGRAPH_NUMBERING$1, paragraphNumberingReferenceId } from "./numberingReference.js";
|
|
2
2
|
import { visitDocxParagraphs } from "./paragraphTraversal.js";
|
|
3
3
|
import { PARSE_WARNING_CODES } from "@stll/docx-core/model";
|
|
4
4
|
//#region src/docx/numberingReferenceNormalization.ts
|
|
@@ -40,7 +40,7 @@ const normalizeNumberingReferences = ({ documentBody, numbering, headers, footer
|
|
|
40
40
|
endnotes
|
|
41
41
|
}, (paragraph) => {
|
|
42
42
|
const formatting = paragraph.formatting;
|
|
43
|
-
const numId = paragraphNumberingReferenceId
|
|
43
|
+
const numId = paragraphNumberingReferenceId(formatting?.numPr);
|
|
44
44
|
if (!formatting || numId === void 0 || resolvesNumbering(numId, numbering)) return;
|
|
45
45
|
formatting.numPr = NO_PARAGRAPH_NUMBERING$1;
|
|
46
46
|
delete formatting.numPrFromStyle;
|
|
@@ -53,7 +53,7 @@ const normalizeStyleNumberingReferences = ({ styles, numbering }) => {
|
|
|
53
53
|
const unnumberedStyleIds = [];
|
|
54
54
|
for (const style of styles) {
|
|
55
55
|
const pPr = style.pPr;
|
|
56
|
-
const numId = paragraphNumberingReferenceId
|
|
56
|
+
const numId = paragraphNumberingReferenceId(pPr?.numPr);
|
|
57
57
|
if (!pPr || numId === void 0 || resolvesNumbering(numId, numbering)) continue;
|
|
58
58
|
pPr.numPr = NO_PARAGRAPH_NUMBERING$1;
|
|
59
59
|
unnumberedStyleIds.push(style.styleId);
|
|
@@ -12,7 +12,7 @@ import { inlineWrapperOf } from "./inlineWrapperParser.js";
|
|
|
12
12
|
import { preserveLinkedSdt } from "./linkedSdtPreservation.js";
|
|
13
13
|
import { parseMarkupRangeMarker, parseMoveBookmarkMarker } from "./markupRangeMarker.js";
|
|
14
14
|
import { counterFormatOf, markerAlignmentForLevel, markerFormattingFromLevel, numberingLevelHasMarkerSlot } from "./numberingParser.js";
|
|
15
|
-
import { mergeParagraphNumbering as mergeParagraphNumbering$1, paragraphNumberingReferenceId
|
|
15
|
+
import { mergeParagraphNumbering as mergeParagraphNumbering$1, paragraphNumberingReferenceId, resolveParagraphNumbering as resolveParagraphNumbering$1 } from "./numberingReference.js";
|
|
16
16
|
import { paraIdAttribute, textIdAttribute } from "./paraIdAttribute.js";
|
|
17
17
|
import { paraIdInRange } from "./paraIdRangeNormalization.js";
|
|
18
18
|
import { EMPTY_MARK_PROPERTIES_ATTRIBUTE, restoreEmptyMarkProperties } from "./paragraphMarkPropertyPresence.js";
|
|
@@ -1253,7 +1253,6 @@ function parseParagraph(node, styles, theme, numbering, rels = null, media = nul
|
|
|
1253
1253
|
let effectiveNumPr = directNumPr;
|
|
1254
1254
|
if (paragraphFormatting && numPrFromStyle) {
|
|
1255
1255
|
effectiveNumPr = mergeParagraphNumbering$1(styleNumPr, directNumPr);
|
|
1256
|
-
if (effectiveNumPr !== void 0) paragraphFormatting.numPr = effectiveNumPr;
|
|
1257
1256
|
paragraphFormatting.numPrFromStyle = styleNumPr;
|
|
1258
1257
|
}
|
|
1259
1258
|
const resolvedNumbering = resolveParagraphNumbering$1(effectiveNumPr);
|
|
@@ -1444,7 +1443,7 @@ function isEmptyParagraph(paragraph) {
|
|
|
1444
1443
|
* @returns true if paragraph has numbering properties
|
|
1445
1444
|
*/
|
|
1446
1445
|
function isListItem(paragraph) {
|
|
1447
|
-
return paragraphNumberingReferenceId$1(paragraph.formatting?.numPr) !== void 0;
|
|
1446
|
+
return paragraphNumberingReferenceId(mergeParagraphNumbering$1(paragraph.formatting?.numPrFromStyle, paragraph.formatting?.numPr)) !== void 0;
|
|
1448
1447
|
}
|
|
1449
1448
|
/**
|
|
1450
1449
|
* Get the list level of a paragraph (0-8)
|
|
@@ -1453,7 +1452,7 @@ function isListItem(paragraph) {
|
|
|
1453
1452
|
* @returns List level or undefined if not a list item
|
|
1454
1453
|
*/
|
|
1455
1454
|
function getListLevel(paragraph) {
|
|
1456
|
-
const resolved = resolveParagraphNumbering$1(paragraph.formatting?.numPr);
|
|
1455
|
+
const resolved = resolveParagraphNumbering$1(mergeParagraphNumbering$1(paragraph.formatting?.numPrFromStyle, paragraph.formatting?.numPr));
|
|
1457
1456
|
return resolved.kind === "reference" ? resolved.ilvl : void 0;
|
|
1458
1457
|
}
|
|
1459
1458
|
/**
|
package/dist/docx/rezip.js
CHANGED
|
@@ -16,7 +16,7 @@ import { assertValidFolioDocumentModel } from "./modelValidation.js";
|
|
|
16
16
|
import { isNewDataUrlDrawing } from "./newImage.js";
|
|
17
17
|
import { missingNoteReferenceStyles, noteReferenceNeeds } from "./noteReferenceStyles.js";
|
|
18
18
|
import { parseNumbering } from "./numberingParser.js";
|
|
19
|
-
import { paragraphNumberingReferenceId
|
|
19
|
+
import { paragraphNumberingReferenceId } from "./numberingReference.js";
|
|
20
20
|
import { isUnsafePackagePath, reconcilePackageReferences, removeUnsafeEntries } from "./packageParts.js";
|
|
21
21
|
import { normalizeParaIdRangeInXmlParts } from "./paraIdRangeNormalization.js";
|
|
22
22
|
import { cloneDocumentWithParagraphPropertySources, cloneParagraphWithPropertySource, copyDocumentParagraphPropertySourceContract } from "./paragraphPropertySource.js";
|
|
@@ -2462,7 +2462,7 @@ const overrideXml = (partName, contentType) => `<Override PartName="${partName}"
|
|
|
2462
2462
|
const assertStyleNumberingReferences = (doc) => {
|
|
2463
2463
|
const referenced = /* @__PURE__ */ new Set();
|
|
2464
2464
|
for (const style of doc.package.styles?.styles ?? []) {
|
|
2465
|
-
const numId = paragraphNumberingReferenceId
|
|
2465
|
+
const numId = paragraphNumberingReferenceId(style.pPr?.numPr);
|
|
2466
2466
|
if (numId !== void 0) referenced.add(numId);
|
|
2467
2467
|
}
|
|
2468
2468
|
if (referenced.size === 0) return;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { fromProseDoc } from "../../prosemirror/conversion/fromProseDoc.js";
|
|
2
2
|
import { schema } from "../../prosemirror/schema/index.js";
|
|
3
|
-
import { FolioYjsNoteReferenceSchemaError, applyAttrSchemaMigrations, readYjsAttrSchemaVersion, readYjsParagraphSourceContract, withParagraphSourceContract } from "../../prosemirror/yjsDocumentMetadata.js";
|
|
3
|
+
import { FolioYjsNoteReferenceSchemaError, FolioYjsNumberingSourceSchemaError, applyAttrSchemaMigrations, readYjsAttrSchemaVersion, readYjsParagraphSourceContract, withParagraphSourceContract } from "../../prosemirror/yjsDocumentMetadata.js";
|
|
4
4
|
import { ParagraphPropertySourceValidationError } from "../paragraphPropertySource.js";
|
|
5
5
|
import { parseDocx } from "../parser.js";
|
|
6
6
|
import { repackDocx } from "../rezip.js";
|
|
@@ -57,7 +57,7 @@ const readProseMirrorDocument = (yjsUpdate) => {
|
|
|
57
57
|
},
|
|
58
58
|
catch: (cause) => {
|
|
59
59
|
if (cause instanceof FolioYjsDocxMaterializationError) return cause;
|
|
60
|
-
if (cause instanceof FolioYjsNoteReferenceSchemaError) return new FolioYjsDocxMaterializationError({
|
|
60
|
+
if (cause instanceof FolioYjsNoteReferenceSchemaError || cause instanceof FolioYjsNumberingSourceSchemaError) return new FolioYjsDocxMaterializationError({
|
|
61
61
|
code: "stale_attr_schema",
|
|
62
62
|
message: cause.message,
|
|
63
63
|
cause
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FolioYjsNoteReferenceSchemaError, applyAttrSchemaMigrations, readYjsAttrSchemaVersion } from "../../prosemirror/yjsDocumentMetadata.js";
|
|
1
|
+
import { FolioYjsNoteReferenceSchemaError, FolioYjsNumberingSourceSchemaError, applyAttrSchemaMigrations, readYjsAttrSchemaVersion } from "../../prosemirror/yjsDocumentMetadata.js";
|
|
2
2
|
import { FOLIO_YJS_PROSEMIRROR_FRAGMENT_NAME } from "./materializeYjsDocx.js";
|
|
3
3
|
import { Result, TaggedError } from "better-result";
|
|
4
4
|
import * as Y from "yjs";
|
|
@@ -77,19 +77,19 @@ const migrateFolioYjsSnapshot = (update) => {
|
|
|
77
77
|
catch: (cause) => new FolioYjsSnapshotMigrationError({
|
|
78
78
|
cause,
|
|
79
79
|
code: "unsupported_version",
|
|
80
|
-
message: cause instanceof FolioYjsNoteReferenceSchemaError ? cause.message : "Cannot migrate the collaboration attribute schema."
|
|
80
|
+
message: cause instanceof FolioYjsNoteReferenceSchemaError || cause instanceof FolioYjsNumberingSourceSchemaError ? cause.message : "Cannot migrate the collaboration attribute schema."
|
|
81
81
|
})
|
|
82
82
|
});
|
|
83
83
|
if (migratedAttrs.isErr()) {
|
|
84
84
|
ydoc.destroy();
|
|
85
85
|
return Result.err(migratedAttrs.error);
|
|
86
86
|
}
|
|
87
|
-
if (fromVersion ===
|
|
87
|
+
if (fromVersion === 13) {
|
|
88
88
|
ydoc.destroy();
|
|
89
89
|
return Result.ok({
|
|
90
90
|
fromVersion,
|
|
91
91
|
paragraphsRewritten: 0,
|
|
92
|
-
toVersion:
|
|
92
|
+
toVersion: 13,
|
|
93
93
|
update
|
|
94
94
|
});
|
|
95
95
|
}
|
|
@@ -99,7 +99,7 @@ const migrateFolioYjsSnapshot = (update) => {
|
|
|
99
99
|
return Result.ok({
|
|
100
100
|
fromVersion,
|
|
101
101
|
paragraphsRewritten,
|
|
102
|
-
toVersion:
|
|
102
|
+
toVersion: 13,
|
|
103
103
|
update: migrated
|
|
104
104
|
});
|
|
105
105
|
};
|
|
@@ -81,7 +81,7 @@ export function shapeRun(font, face_index, text, right_to_left, script, language
|
|
|
81
81
|
function __wbg_get_imports() {
|
|
82
82
|
const import0 = {
|
|
83
83
|
__proto__: null,
|
|
84
|
-
|
|
84
|
+
__wbg___wbindgen_string_get_0380ccaa2f57f0d9: function(arg0, arg1) {
|
|
85
85
|
const obj = getObject(arg1);
|
|
86
86
|
const ret = typeof(obj) === 'string' ? obj : undefined;
|
|
87
87
|
var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
@@ -89,10 +89,10 @@ function __wbg_get_imports() {
|
|
|
89
89
|
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
90
90
|
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
91
91
|
},
|
|
92
|
-
|
|
92
|
+
__wbg___wbindgen_throw_41e9ee4f547fc59a: function(arg0, arg1) {
|
|
93
93
|
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
94
94
|
},
|
|
95
|
-
|
|
95
|
+
__wbindgen_generic_0000000000000001: function(arg0, arg1) {
|
|
96
96
|
// Cast intrinsic for `Ref(String) -> Externref`.
|
|
97
97
|
const ret = getStringFromWasm0(arg0, arg1);
|
|
98
98
|
return addHeapObject(ret);
|
|
@@ -268,11 +268,15 @@ function __wbg_finalize_init(instance, module) {
|
|
|
268
268
|
|
|
269
269
|
async function __wbg_load(module, imports) {
|
|
270
270
|
if (typeof Response === 'function' && module instanceof Response) {
|
|
271
|
+
if (!module.ok) {
|
|
272
|
+
throw new Error(`failed to fetch Wasm: ${module.status} ${module.statusText} fetching '${module.url}'`);
|
|
273
|
+
}
|
|
274
|
+
|
|
271
275
|
if (typeof WebAssembly.instantiateStreaming === 'function') {
|
|
272
276
|
try {
|
|
273
277
|
return await WebAssembly.instantiateStreaming(module, imports);
|
|
274
278
|
} catch (e) {
|
|
275
|
-
const validResponse =
|
|
279
|
+
const validResponse = expectedResponseType(module.type);
|
|
276
280
|
|
|
277
281
|
if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {
|
|
278
282
|
console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
|
|
Binary file
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { document_d_exports } from "./types/document.js";
|
|
2
|
-
import { FolioContentBlock, FolioContentContainerPathEntry, FolioContentFormatRange, FolioContentIdStability, FolioContentInlineBooleanProperty, FolioContentInlineComparisonResult, FolioContentInlineFormatting, FolioContentInlineFormattingPatch, FolioContentLineSpacingRule, FolioContentParagraphAlignment, FolioContentParagraphKind, FolioContentParagraphSpacing, FolioContentRun, FolioContentSnapshot, FolioContentTableLocation } from "./compare/content-types.js";
|
|
3
|
-
import { FolioAIBlock, FolioAIBlockAnchor, FolioAIBlockKind, FolioAIBlockPreviewRun, FolioAIBlockStructuralBoundary, FolioAIBlockTableLocation, FolioAIComment, FolioAIEditAppliedOperation, FolioAIEditApplyMode, FolioAIEditApplyResult, FolioAIEditNormalization, FolioAIEditNormalizationCode, FolioAIEditOperation, FolioAIEditPrecondition, FolioAIEditReviewMeta, FolioAIEditSeverity, FolioAIEditSkipReason, FolioAIEditSkippedOperation, FolioAIEditSnapshot, FolioAIInlineBooleanProperty, FolioAIInlineFormatting, FolioAIInlineFormattingPatch, FolioAIParagraphSpacing, FolioAISignatureParty } from "./ai-edits/types.js";
|
|
2
|
+
import { FolioContentBlock, FolioContentContainerPathEntry, FolioContentFormatRange, FolioContentIdStability, FolioContentInlineBooleanProperty, FolioContentInlineComparisonResult, FolioContentInlineFormatting, FolioContentInlineFormattingPatch, FolioContentLineSpacingRule, FolioContentParagraphAlignment, FolioContentParagraphKind, FolioContentParagraphSpacing, FolioContentRun, FolioContentSnapshot, FolioContentStatedNumbering, FolioContentTableLocation } from "./compare/content-types.js";
|
|
3
|
+
import { FolioAIBlock, FolioAIBlockAnchor, FolioAIBlockKind, FolioAIBlockPreviewRun, FolioAIBlockStructuralBoundary, FolioAIBlockTableLocation, FolioAIComment, FolioAIDiagnosticBlock, FolioAIEditAppliedOperation, FolioAIEditApplyMode, FolioAIEditApplyResult, FolioAIEditNormalization, FolioAIEditNormalizationCode, FolioAIEditOperation, FolioAIEditPrecondition, FolioAIEditReviewMeta, FolioAIEditSeverity, FolioAIEditSkipReason, FolioAIEditSkippedOperation, FolioAIEditSnapshot, FolioAIInlineBooleanProperty, FolioAIInlineFormatting, FolioAIInlineFormattingPatch, FolioAIParagraphBlock, FolioAIParagraphSpacing, FolioAISignatureParty } from "./ai-edits/types.js";
|
|
4
4
|
import { WORD_DIFF_GRANULARITIES, WordDiffGranularity, WordDiffNormalization, WordDiffOptions, WordDiffSegment, diffWordSegments } from "./ai-edits/word-diff.js";
|
|
5
|
-
import { FolioAIEditApplyOutcome, FolioRevisionStamp, FolioWordDiffOptions, applyFolioAIEditOperations } from "./ai-edits/apply.js";
|
|
5
|
+
import { FolioAIEditApplyOutcome, FolioRevisionStamp, FolioUndefinedReferencePolicy, FolioWordDiffOptions, applyFolioAIEditOperations } from "./ai-edits/apply.js";
|
|
6
6
|
import { ApplyFolioDocumentOperationsOptions, FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, FOLIO_LINE_SPACING_RULE_VALUES, FOLIO_PARAGRAPH_ALIGNMENT_VALUES, FolioDocumentOperation, FolioDocumentOperationAffectedTarget, FolioDocumentOperationBatch, FolioDocumentOperationCapabilities, FolioDocumentOperationIssue, FolioDocumentOperationMode, FolioDocumentOperationPrecondition, FolioDocumentOperationReceipt, FolioDocumentOperationRecovery, FolioDocumentOperationResult, FolioDocumentOperationResultBase, FolioDocumentOperationStatus, FolioDocumentOperationStory, FolioDocumentOperationType, FolioDocumentOperationUndoFailureReason, FolioDocumentOperationUndoHandle, FolioDocumentOperationUndoResult, InvalidFolioDocumentOperationBatchError, UnsupportedFolioDocumentOperationVersionError, applyFolioDocumentOperations, assertSupportedFolioDocumentOperationVersion, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, isFolioDocumentOperationModeSupported, isSupportedFolioDocumentOperationVersion, parseFolioDocumentOperationBatch } from "./document-operations.js";
|
|
7
7
|
import { createFolioAIEditSnapshot, hashFolioAIBlockText, isFolioAIContentBlock, normalizeFolioAIBlockText } from "./ai-edits/snapshot.js";
|
|
8
8
|
import { DeriveBlockIdInput, FolioBlockId, currentFolioBlockId, deriveBlockId, getFolioParaIdFromBlockId, isFolioBlockId, isSequentialFolioBlockId } from "./types/block-id.js";
|
|
@@ -43,4 +43,4 @@ import { FOLIO_YJS_ATTR_SCHEMA_VERSION, FolioYjsAttrSchemaVersion, FolioYjsAttrS
|
|
|
43
43
|
import { DOCX_CONFORMANCE_CLASSES } from "@stll/docx-core/model";
|
|
44
44
|
type Document = document_d_exports.Document;
|
|
45
45
|
type DocxConformanceClass = document_d_exports.DocxConformanceClass;
|
|
46
|
-
export { type AIBarStatus, type AIChatMode, type AICitation, type AICitationRange, type AICitationSource, type AIGenerateInput, type AISuggestion, type AISuggestionApplyMode, type AISuggestionPreset, type AISuggestionSeverity, type AISuggestionStatus, type AcceptAutocompleteResult, type AnonymizationMatch, type AnonymizationTerm, type ApplyFolioDocumentOperationsOptions, type ApplyResult, type AutocompleteSuggestionPluginOptions, type AutocompleteSuggestionState, type AutocompleteSuggestionStatus, type AutocompleteTriggerCheck, type AutocompleteTriggerOptions, type AutocompleteTriggerSkipReason, type BlockRect, COMPARE_REVISION_FORMATS, COMPARE_UNSUPPORTED_REASONS, COMPARE_VERIFICATION_CAUSES, COMPARE_VERIFICATION_INVARIANTS, type CompareChange, type CompareChangeLocation, type CompareCompatibility, type CompareContentOptions, CompareDocxApplyError, type CompareDocxError, CompareDocxFinalParagraphMarkError, CompareDocxOperationLimitError, type CompareDocxOptions, CompareDocxParseError, CompareDocxRoundTripError, CompareDocxSerializeError, type CompareFolioRequirement, type CompareResult, type CompareRevisionFormat, type CompareUnsupportedPart, type CompareUnsupportedReason, type CompareVerification, type CompareVerificationCause, type CompareVerificationFailure, type CompareVerificationInvariant, type CreateEmptyDocumentOptions, DEFAULT_AI_SUGGESTION_PRESETS, DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, DEFAULT_OUTLINE_DEPTH, DOCUMENT_PRESET_VERSION, DOCUMENT_STYLE_SET_VERSION, DOCX_CONFORMANCE_CLASSES, DRAWING_SAFETY_CLASSES, type DeriveBlockIdInput, type DirectiveKind, type DirectiveRange, type Document, type DocumentPreset, type DocumentPropertiesOptions, type DocumentStyleCatalog, type DocumentStyleCatalogEntry, type DocumentStyleSet, type DocxCompatibility, type DocxCompatibilityContext, type DocxCompatibilityIssue, type DocxCompatibilityLocation, type DocxCompatibilityPart, type DocxConformanceClass, type DocxDrawingClassification, type DrawingSafetyClass, type EmbeddedFont, type EmbeddedFontParts, type ExtractDocumentStyleSetOptions, FOLIO_CONTENT_COMPARISON_LIMITS, FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, FOLIO_LINE_SPACING_RULE_VALUES, FOLIO_PARAGRAPH_ALIGNMENT_VALUES, FOLIO_YJS_ATTR_SCHEMA_VERSION, type FinalParagraphMarkRevision, type FolioAIBlock, type FolioAIBlockAnchor, type FolioAIBlockKind, type FolioAIBlockPreviewRun, type FolioAIBlockStructuralBoundary, type FolioAIBlockTableLocation, type FolioAIComment, type FolioAIEditAppliedOperation, type FolioAIEditApplyMode, type FolioAIEditApplyOutcome, type FolioAIEditApplyResult, type FolioAIEditNormalization, type FolioAIEditNormalizationCode, type FolioAIEditOperation, type FolioAIEditPrecondition, type FolioAIEditReviewMeta, type FolioAIEditSeverity, type FolioAIEditSkipReason, type FolioAIEditSkippedOperation, type FolioAIEditSnapshot, type FolioAIInlineBooleanProperty, type FolioAIInlineFormatting, type FolioAIInlineFormattingPatch, type FolioAIParagraphSpacing, type FolioAISignatureParty, type FolioBlockId, type FolioContentBlock, type FolioContentBlockProperty, type FolioContentComparison, type FolioContentComparisonError, type FolioContentComparisonEvent, type FolioContentComparisonLimit, FolioContentComparisonLimitError, type FolioContentContainerPathEntry, type FolioContentFormatRange, type FolioContentFormattingChange, type FolioContentIdStability, type FolioContentInlineBooleanProperty, type FolioContentInlineComparisonResult, type FolioContentInlineFormatting, type FolioContentInlineFormattingPatch, FolioContentInlinePresentationProjectionError, type FolioContentLineSpacingRule, type FolioContentParagraphAlignment, type FolioContentParagraphFormattingPatch, type FolioContentParagraphKind, type FolioContentParagraphSpacing, type FolioContentRun, type FolioContentSnapshot, type FolioContentStructuralChange, type FolioContentTableLocation, type FolioContentTextSegment, type FolioDocumentOperation, type FolioDocumentOperationAffectedTarget, type FolioDocumentOperationBatch, type FolioDocumentOperationCapabilities, type FolioDocumentOperationIssue, type FolioDocumentOperationMode, type FolioDocumentOperationPrecondition, type FolioDocumentOperationReceipt, type FolioDocumentOperationRecovery, type FolioDocumentOperationResult, type FolioDocumentOperationResultBase, type FolioDocumentOperationStatus, type FolioDocumentOperationStory, type FolioDocumentOperationType, type FolioDocumentOperationUndoFailureReason, type FolioDocumentOperationUndoHandle, type FolioDocumentOperationUndoResult, type FolioDocxCompatibilityHost, type FolioDocxCompatibilityProfile, type FolioRevisionStamp, type FolioWordDiffOptions, type FolioYjsAttrSchemaVersion, FolioYjsAttrSchemaVersionError, type ImageMeta, type ImageRef, type InspectDocxCompatibilityOptions, InvalidCompareDocxOptionsError, InvalidFolioContentComparisonError, InvalidFolioDocumentOperationBatchError, MAX_COMPARE_OPERATIONS, type MarkdownOptions, type MarkdownResult, type OutlineDepth, type PositionalText, type ResolvedAnchor, STELLA_STYLE_SET_NAME, type TemplatePreviewHiddenRange, type TemplatePreviewSpan, type TemplatePreviewValue, type TemplatePreviewValues, type TemplateSlashMenuKeyAction, type TemplateSlashMenuState, UnsupportedFolioDocumentOperationVersionError, WORD_DIFF_GRANULARITIES, type WordDiffGranularity, type WordDiffNormalization, type WordDiffOptions, type WordDiffSegment, acceptAutocompleteSuggestion, acceptAutocompleteWord, anonymizationDecorationsKey, appendAutocompleteToken, applyFolioAIEditOperations, applyFolioDocumentOperations, applySuggestions, assertSupportedFolioDocumentOperationVersion, autocompleteSuggestionKey, autocompleteSuggestionPlugin, buildEmbeddedFontFamilyMap, buildPositionalText, clearAutocompleteSuggestion, clearTemplateSlashMenu, compareContent, compareDocx, consumeTemplateSlashQuery, createAICitationDecorationsPlugin, createDocx, createEmptyDocument, createFolioAIEditSnapshot, createStellaStyleDocumentPreset, createStellaStyleSet, currentFolioBlockId, deriveBlockId, diffWordSegments, extractDocumentStyleSet, extractDocumentStyleSetFromDocx, extractEmbeddedFonts, filterHeadingsByDepth, finishAutocompleteSuggestion, fromMarkdown, getAnonymizationMatches, getAutocompleteSuggestion, getEmbeddedFontFaces, getFolioCaretViewportRect, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, getFolioParaIdFromBlockId, getFolioSelectionViewportRect, getGoogleFontsEnabled, getTemplateDirectives, getTemplateSlashMenu, hashFolioAIBlockText, inspectDocumentStyles, inspectDocumentStylesFromDocx, inspectDocxCompatibility, isFolioAIContentBlock, isFolioBlockId, isFolioDocumentOperationModeSupported, isSequentialFolioBlockId, isSuggestionStale, isSupportedFolioDocumentOperationVersion, mergeDocumentContent, normalizeFolioAIBlockText, parseFolioDocumentOperationBatch, resetTemplateSlashQuery, resolveSuggestionAnchor, scanDirectives, scopeEmbeddedFontFamily, scrollFolioPositionIntoView, setAICitationsMeta, setAISuggestionsMeta, setActiveCitationMeta, setAnonymizationTermsMeta, setEmbeddedFontFamilyMap, setFocusedSuggestionMeta, setGoogleFontsEnabled, setTemplatePreviewValues, shouldTriggerAutocomplete, startAutocompleteSuggestion, templateSlashMenuKey, toMarkdown, toMarkdownResult };
|
|
46
|
+
export { type AIBarStatus, type AIChatMode, type AICitation, type AICitationRange, type AICitationSource, type AIGenerateInput, type AISuggestion, type AISuggestionApplyMode, type AISuggestionPreset, type AISuggestionSeverity, type AISuggestionStatus, type AcceptAutocompleteResult, type AnonymizationMatch, type AnonymizationTerm, type ApplyFolioDocumentOperationsOptions, type ApplyResult, type AutocompleteSuggestionPluginOptions, type AutocompleteSuggestionState, type AutocompleteSuggestionStatus, type AutocompleteTriggerCheck, type AutocompleteTriggerOptions, type AutocompleteTriggerSkipReason, type BlockRect, COMPARE_REVISION_FORMATS, COMPARE_UNSUPPORTED_REASONS, COMPARE_VERIFICATION_CAUSES, COMPARE_VERIFICATION_INVARIANTS, type CompareChange, type CompareChangeLocation, type CompareCompatibility, type CompareContentOptions, CompareDocxApplyError, type CompareDocxError, CompareDocxFinalParagraphMarkError, CompareDocxOperationLimitError, type CompareDocxOptions, CompareDocxParseError, CompareDocxRoundTripError, CompareDocxSerializeError, type CompareFolioRequirement, type CompareResult, type CompareRevisionFormat, type CompareUnsupportedPart, type CompareUnsupportedReason, type CompareVerification, type CompareVerificationCause, type CompareVerificationFailure, type CompareVerificationInvariant, type CreateEmptyDocumentOptions, DEFAULT_AI_SUGGESTION_PRESETS, DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, DEFAULT_OUTLINE_DEPTH, DOCUMENT_PRESET_VERSION, DOCUMENT_STYLE_SET_VERSION, DOCX_CONFORMANCE_CLASSES, DRAWING_SAFETY_CLASSES, type DeriveBlockIdInput, type DirectiveKind, type DirectiveRange, type Document, type DocumentPreset, type DocumentPropertiesOptions, type DocumentStyleCatalog, type DocumentStyleCatalogEntry, type DocumentStyleSet, type DocxCompatibility, type DocxCompatibilityContext, type DocxCompatibilityIssue, type DocxCompatibilityLocation, type DocxCompatibilityPart, type DocxConformanceClass, type DocxDrawingClassification, type DrawingSafetyClass, type EmbeddedFont, type EmbeddedFontParts, type ExtractDocumentStyleSetOptions, FOLIO_CONTENT_COMPARISON_LIMITS, FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, FOLIO_LINE_SPACING_RULE_VALUES, FOLIO_PARAGRAPH_ALIGNMENT_VALUES, FOLIO_YJS_ATTR_SCHEMA_VERSION, type FinalParagraphMarkRevision, type FolioAIBlock, type FolioAIBlockAnchor, type FolioAIBlockKind, type FolioAIBlockPreviewRun, type FolioAIBlockStructuralBoundary, type FolioAIBlockTableLocation, type FolioAIComment, type FolioAIDiagnosticBlock, type FolioAIEditAppliedOperation, type FolioAIEditApplyMode, type FolioAIEditApplyOutcome, type FolioAIEditApplyResult, type FolioAIEditNormalization, type FolioAIEditNormalizationCode, type FolioAIEditOperation, type FolioAIEditPrecondition, type FolioAIEditReviewMeta, type FolioAIEditSeverity, type FolioAIEditSkipReason, type FolioAIEditSkippedOperation, type FolioAIEditSnapshot, type FolioAIInlineBooleanProperty, type FolioAIInlineFormatting, type FolioAIInlineFormattingPatch, type FolioAIParagraphBlock, type FolioAIParagraphSpacing, type FolioAISignatureParty, type FolioBlockId, type FolioContentBlock, type FolioContentBlockProperty, type FolioContentComparison, type FolioContentComparisonError, type FolioContentComparisonEvent, type FolioContentComparisonLimit, FolioContentComparisonLimitError, type FolioContentContainerPathEntry, type FolioContentFormatRange, type FolioContentFormattingChange, type FolioContentIdStability, type FolioContentInlineBooleanProperty, type FolioContentInlineComparisonResult, type FolioContentInlineFormatting, type FolioContentInlineFormattingPatch, FolioContentInlinePresentationProjectionError, type FolioContentLineSpacingRule, type FolioContentParagraphAlignment, type FolioContentParagraphFormattingPatch, type FolioContentParagraphKind, type FolioContentParagraphSpacing, type FolioContentRun, type FolioContentSnapshot, type FolioContentStatedNumbering, type FolioContentStructuralChange, type FolioContentTableLocation, type FolioContentTextSegment, type FolioDocumentOperation, type FolioDocumentOperationAffectedTarget, type FolioDocumentOperationBatch, type FolioDocumentOperationCapabilities, type FolioDocumentOperationIssue, type FolioDocumentOperationMode, type FolioDocumentOperationPrecondition, type FolioDocumentOperationReceipt, type FolioDocumentOperationRecovery, type FolioDocumentOperationResult, type FolioDocumentOperationResultBase, type FolioDocumentOperationStatus, type FolioDocumentOperationStory, type FolioDocumentOperationType, type FolioDocumentOperationUndoFailureReason, type FolioDocumentOperationUndoHandle, type FolioDocumentOperationUndoResult, type FolioDocxCompatibilityHost, type FolioDocxCompatibilityProfile, type FolioRevisionStamp, type FolioUndefinedReferencePolicy, type FolioWordDiffOptions, type FolioYjsAttrSchemaVersion, FolioYjsAttrSchemaVersionError, type ImageMeta, type ImageRef, type InspectDocxCompatibilityOptions, InvalidCompareDocxOptionsError, InvalidFolioContentComparisonError, InvalidFolioDocumentOperationBatchError, MAX_COMPARE_OPERATIONS, type MarkdownOptions, type MarkdownResult, type OutlineDepth, type PositionalText, type ResolvedAnchor, STELLA_STYLE_SET_NAME, type TemplatePreviewHiddenRange, type TemplatePreviewSpan, type TemplatePreviewValue, type TemplatePreviewValues, type TemplateSlashMenuKeyAction, type TemplateSlashMenuState, UnsupportedFolioDocumentOperationVersionError, WORD_DIFF_GRANULARITIES, type WordDiffGranularity, type WordDiffNormalization, type WordDiffOptions, type WordDiffSegment, acceptAutocompleteSuggestion, acceptAutocompleteWord, anonymizationDecorationsKey, appendAutocompleteToken, applyFolioAIEditOperations, applyFolioDocumentOperations, applySuggestions, assertSupportedFolioDocumentOperationVersion, autocompleteSuggestionKey, autocompleteSuggestionPlugin, buildEmbeddedFontFamilyMap, buildPositionalText, clearAutocompleteSuggestion, clearTemplateSlashMenu, compareContent, compareDocx, consumeTemplateSlashQuery, createAICitationDecorationsPlugin, createDocx, createEmptyDocument, createFolioAIEditSnapshot, createStellaStyleDocumentPreset, createStellaStyleSet, currentFolioBlockId, deriveBlockId, diffWordSegments, extractDocumentStyleSet, extractDocumentStyleSetFromDocx, extractEmbeddedFonts, filterHeadingsByDepth, finishAutocompleteSuggestion, fromMarkdown, getAnonymizationMatches, getAutocompleteSuggestion, getEmbeddedFontFaces, getFolioCaretViewportRect, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, getFolioParaIdFromBlockId, getFolioSelectionViewportRect, getGoogleFontsEnabled, getTemplateDirectives, getTemplateSlashMenu, hashFolioAIBlockText, inspectDocumentStyles, inspectDocumentStylesFromDocx, inspectDocxCompatibility, isFolioAIContentBlock, isFolioBlockId, isFolioDocumentOperationModeSupported, isSequentialFolioBlockId, isSuggestionStale, isSupportedFolioDocumentOperationVersion, mergeDocumentContent, normalizeFolioAIBlockText, parseFolioDocumentOperationBatch, resetTemplateSlashQuery, resolveSuggestionAnchor, scanDirectives, scopeEmbeddedFontFamily, scrollFolioPositionIntoView, setAICitationsMeta, setAISuggestionsMeta, setActiveCitationMeta, setAnonymizationTermsMeta, setEmbeddedFontFamilyMap, setFocusedSuggestionMeta, setGoogleFontsEnabled, setTemplatePreviewValues, shouldTriggerAutocomplete, startAutocompleteSuggestion, templateSlashMenuKey, toMarkdown, toMarkdownResult };
|
|
@@ -3,14 +3,7 @@ import { ParagraphNumberingOverride } from "@stll/docx-core/model";
|
|
|
3
3
|
//#region src/internal/paragraphFormattingSerialization.d.ts
|
|
4
4
|
type ClassifiedParagraphFormattingField = "alignment" | "bidi" | "kinsoku" | "overflowPunctuation" | "spaceBefore" | "spaceAfter" | "lineSpacing" | "lineSpacingRule" | "snapToGrid" | "beforeAutospacing" | "afterAutospacing" | "spacingExplicit" | "spacingPreservedAttributes" | "indentLeft" | "indentRight" | "indentFirstLine" | "hangingIndent" | "indentPreservedAttributes" | "borders" | "shading" | "tabs" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "contextualSpacing" | "numPr" | "numPrFromStyle" | "numberingChangeXml" | "numberingInsertionXml" | "outlineLevel" | "styleId" | "frame" | "suppressLineNumbers" | "suppressAutoHyphens" | "runProperties" | "runInWithNext" | "preserved";
|
|
5
5
|
type ExhaustiveParagraphFormatting = document_d_exports.ExhaustiveFields<document_d_exports.ParagraphFormatting, ClassifiedParagraphFormattingField>;
|
|
6
|
-
/**
|
|
7
|
-
* Whether resolved numbering still belongs to the paragraph's style tier.
|
|
8
|
-
*
|
|
9
|
-
* Effective equality, not stated: the resolved field carries the level the
|
|
10
|
-
* cascade supplied even where the style stated none, and a paragraph whose
|
|
11
|
-
* numbering came wholly from its style must still not emit a direct
|
|
12
|
-
* `<w:numPr>`.
|
|
13
|
-
*/
|
|
6
|
+
/** Only an absent paragraph override leaves numbering wholly to its style. */
|
|
14
7
|
declare const isStyleSourcedParagraphNumbering: (numPr: ParagraphNumberingOverride | null | undefined, numPrFromStyle: ParagraphNumberingOverride | null | undefined) => boolean;
|
|
15
8
|
/** Exact fallback-emission instructions for the modeled part of `w:pPr`. */
|
|
16
9
|
type ModeledParagraphFormattingEmission = Readonly<{
|
|
@@ -6,18 +6,11 @@ import { TRANSITIONAL_NAME_BY_STRICT_NAME } from "../docx/strictNames.gen.js";
|
|
|
6
6
|
import { createCapturedXmlSanitizer } from "../docx/verbatimCapture.js";
|
|
7
7
|
import { NAMESPACES, OOXML_NAMESPACE_SCOPE } from "../docx/xmlParser.js";
|
|
8
8
|
import { escapeXmlAttribute, serializeOnOffElement } from "@stll/docx-core";
|
|
9
|
-
import {
|
|
9
|
+
import { outlineLevelStatedValue, paragraphNumberingSlots } from "@stll/docx-core/model";
|
|
10
10
|
import { serializeSequenceChildren } from "@stll/docx-core/schema";
|
|
11
11
|
//#region src/internal/paragraphFormattingSerialization.ts
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
*
|
|
15
|
-
* Effective equality, not stated: the resolved field carries the level the
|
|
16
|
-
* cascade supplied even where the style stated none, and a paragraph whose
|
|
17
|
-
* numbering came wholly from its style must still not emit a direct
|
|
18
|
-
* `<w:numPr>`.
|
|
19
|
-
*/
|
|
20
|
-
const isStyleSourcedParagraphNumbering = (numPr, numPrFromStyle) => numPr != null && numPrFromStyle != null && sameEffectiveParagraphNumbering(numPr, numPrFromStyle);
|
|
12
|
+
/** Only an absent paragraph override leaves numbering wholly to its style. */
|
|
13
|
+
const isStyleSourcedParagraphNumbering = (numPr, numPrFromStyle) => numPr == null && numPrFromStyle != null;
|
|
21
14
|
const serializeParagraphBorders = (borders) => {
|
|
22
15
|
if (!borders) return "";
|
|
23
16
|
const { top, left, bottom, right, between, bar } = borders;
|
|
@@ -150,7 +143,7 @@ const paragraphMarkPropertiesInner = (runProperties, runInWithNext) => {
|
|
|
150
143
|
*/
|
|
151
144
|
const modelParagraphFormattingEmission = (input) => {
|
|
152
145
|
if (!input) return {};
|
|
153
|
-
const { alignment, bidi, kinsoku, overflowPunctuation, spaceBefore, spaceAfter, lineSpacing, lineSpacingRule, snapToGrid, beforeAutospacing, afterAutospacing, spacingExplicit, spacingPreservedAttributes, indentLeft, indentRight, indentFirstLine, hangingIndent, indentPreservedAttributes, borders, shading, tabs, keepNext, keepLines, widowControl, pageBreakBefore, contextualSpacing, numPr,
|
|
146
|
+
const { alignment, bidi, kinsoku, overflowPunctuation, spaceBefore, spaceAfter, lineSpacing, lineSpacingRule, snapToGrid, beforeAutospacing, afterAutospacing, spacingExplicit, spacingPreservedAttributes, indentLeft, indentRight, indentFirstLine, hangingIndent, indentPreservedAttributes, borders, shading, tabs, keepNext, keepLines, widowControl, pageBreakBefore, contextualSpacing, numPr, numberingChangeXml, numberingInsertionXml, outlineLevel, styleId, frame, suppressLineNumbers, suppressAutoHyphens, runProperties, runInWithNext, preserved } = input;
|
|
154
147
|
modelSpacingProvenance(spacingExplicit);
|
|
155
148
|
const propertiesXml = serializeSequenceChildren({
|
|
156
149
|
container: "paragraph-properties",
|
|
@@ -162,15 +155,8 @@ const modelParagraphFormattingEmission = (input) => {
|
|
|
162
155
|
["pageBreakBefore", serializeOnOffElement(pageBreakBefore, "pageBreakBefore")],
|
|
163
156
|
["framePr", serializeFrameProperties(frame)],
|
|
164
157
|
["widowControl", serializeOnOffElement(widowControl, "widowControl")],
|
|
165
|
-
["numPr",
|
|
166
|
-
numPr
|
|
167
|
-
numberingChangeXml,
|
|
168
|
-
numberingInsertionXml
|
|
169
|
-
}) : serializeNumbering({
|
|
170
|
-
numPr: numPr?.kind === "reference" && numPrFromStyle?.kind === "reference" && numPr.numId === numPrFromStyle.numId ? {
|
|
171
|
-
kind: "levelOnly",
|
|
172
|
-
ilvl: paragraphNumberingLevel(mergeParagraphNumbering(numPrFromStyle, numPr)) ?? 0
|
|
173
|
-
} : numPr,
|
|
158
|
+
["numPr", serializeNumbering({
|
|
159
|
+
numPr,
|
|
174
160
|
numberingChangeXml,
|
|
175
161
|
numberingInsertionXml
|
|
176
162
|
})],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { document_d_exports } from "../../types/document.js";
|
|
2
2
|
import { RunStyleResolver } from "../../prosemirror/runStyleFormatting.js";
|
|
3
|
+
import { ListCounterStreams } from "../../prosemirror/listMarker.js";
|
|
3
4
|
import { ParagraphAttrs, ParagraphBlock, TableBlock } from "../../layout-engine/types.js";
|
|
4
5
|
import { FontAlternates } from "../../fonts/fontAlternates.js";
|
|
5
|
-
import { ListCounterStreams } from "../../prosemirror/listMarker.js";
|
|
6
6
|
import { Node } from "prosemirror-model";
|
|
7
7
|
//#region src/layout-bridge/convert/flowConversionShared.d.ts
|
|
8
8
|
/**
|
|
@@ -2,7 +2,6 @@ import { document_d_exports } from "../../types/document.js";
|
|
|
2
2
|
import { ParagraphAttrs, ParagraphPropertyChangeAttrs } from "../../prosemirror/schema/nodes.js";
|
|
3
3
|
import { ParagraphAttrs as ParagraphAttrs$1 } from "../../layout-engine/types.js";
|
|
4
4
|
import { FontAlternates } from "../../fonts/fontAlternates.js";
|
|
5
|
-
import { ListCounterState } from "../../prosemirror/listMarker.js";
|
|
6
5
|
//#region src/layout-bridge/convert/listMarkers.d.ts
|
|
7
6
|
declare function applyMarkerAllCaps(marker: string | null, allCaps: boolean | undefined): string | null;
|
|
8
7
|
/**
|
|
@@ -23,6 +22,6 @@ declare function isChangedNumberingChange(currentNumPr: NonNullable<ParagraphAtt
|
|
|
23
22
|
};
|
|
24
23
|
declare function applyDeletedListMarkerAttrs(attrs: ParagraphAttrs$1, change: ListPropertyChange & {
|
|
25
24
|
previousFormatting: ListPropertyFormatting;
|
|
26
|
-
},
|
|
25
|
+
}, theme: document_d_exports.Theme | null | undefined, fontAlternates: FontAlternates | undefined, paragraphMarkFormatting: () => document_d_exports.TextFormatting | undefined): void;
|
|
27
26
|
//#endregion
|
|
28
27
|
export { ListPropertyChange, ListPropertyFormatting, applyDeletedListMarkerAttrs, applyMarkerAllCaps, isAddedNumberingChange, isChangedNumberingChange, isRemovedNumberingChange, toListMarkerRevision };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { bulletMarkerFontName, convertBulletToUnicode } from "../../docx/bulletMarkers.js";
|
|
2
2
|
import { isListNumPr } from "../../layout-engine/types.js";
|
|
3
|
-
import { advanceListMarker } from "../../prosemirror/listMarker.js";
|
|
4
3
|
import { listMarkerFormattingFor } from "./textFormattingConversion.js";
|
|
5
4
|
import { sameStatedParagraphNumbering } from "@stll/docx-core/model";
|
|
6
5
|
//#region src/layout-bridge/convert/listMarkers.ts
|
|
@@ -12,9 +11,6 @@ function applyMarkerAllCaps(marker, allCaps) {
|
|
|
12
11
|
if (marker === null || !allCaps) return marker;
|
|
13
12
|
return marker.toLocaleUpperCase();
|
|
14
13
|
}
|
|
15
|
-
function computeListMarker(pmAttrs, state) {
|
|
16
|
-
return advanceListMarker(pmAttrs, state);
|
|
17
|
-
}
|
|
18
14
|
function toListMarkerRevision(kind, info) {
|
|
19
15
|
const revision = { kind };
|
|
20
16
|
if (typeof info?.author === "string") revision.author = info.author;
|
|
@@ -72,18 +68,14 @@ function toPreviousListAttrs(previousFormatting) {
|
|
|
72
68
|
if (listMarkerSecondSlotOffsetTwips !== void 0) attrs.listMarkerSecondSlotOffsetTwips = listMarkerSecondSlotOffsetTwips;
|
|
73
69
|
return attrs;
|
|
74
70
|
}
|
|
75
|
-
function resolveDeletedListMarker(previousListAttrs
|
|
76
|
-
if (listCounterState && previousListAttrs.numPr) {
|
|
77
|
-
const marker = computeListMarker(previousListAttrs, listCounterState);
|
|
78
|
-
if (marker) return marker;
|
|
79
|
-
}
|
|
71
|
+
function resolveDeletedListMarker(previousListAttrs) {
|
|
80
72
|
if (previousListAttrs.listMarker) return previousListAttrs.listIsBullet ? convertBulletToUnicode(previousListAttrs.listMarker, bulletMarkerFontName(previousListAttrs.listMarkerFormatting)) : previousListAttrs.listMarker;
|
|
81
73
|
if (previousListAttrs.listIsBullet) return "•";
|
|
82
74
|
return null;
|
|
83
75
|
}
|
|
84
|
-
function applyDeletedListMarkerAttrs(attrs, change,
|
|
76
|
+
function applyDeletedListMarkerAttrs(attrs, change, theme, fontAlternates, paragraphMarkFormatting) {
|
|
85
77
|
const previousListAttrs = toPreviousListAttrs(change.previousFormatting);
|
|
86
|
-
const marker = resolveDeletedListMarker(previousListAttrs
|
|
78
|
+
const marker = resolveDeletedListMarker(previousListAttrs);
|
|
87
79
|
if (!marker) return;
|
|
88
80
|
attrs.listMarker = marker;
|
|
89
81
|
attrs.listMarkerRevision = toListMarkerRevision("del", change.info);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { document_d_exports } from "../../types/document.js";
|
|
2
2
|
import { ParagraphAttrs } from "../../prosemirror/schema/nodes.js";
|
|
3
|
+
import { ListCounterStreams } from "../../prosemirror/listMarker.js";
|
|
3
4
|
import { ParagraphAttrs as ParagraphAttrs$1 } from "../../layout-engine/types.js";
|
|
4
5
|
import { FontAlternates } from "../../fonts/fontAlternates.js";
|
|
5
|
-
import { ListCounterStreams } from "../../prosemirror/listMarker.js";
|
|
6
6
|
//#region src/layout-bridge/convert/paragraphAttrs.d.ts
|
|
7
7
|
type ConvertParagraphAttrsOptions = {
|
|
8
8
|
theme: document_d_exports.Theme | null | undefined;
|
|
@@ -2,6 +2,7 @@ import { bulletMarkerFontName, convertBulletToUnicode } from "../../docx/bulletM
|
|
|
2
2
|
import { getFontAlternate } from "../../fonts/fontAlternates.js";
|
|
3
3
|
import { autospacingMatchesBase } from "../../prosemirror/autospacingBase.js";
|
|
4
4
|
import { advanceVisibleListMarker } from "../../prosemirror/listMarker.js";
|
|
5
|
+
import { effectiveParagraphNumberingReference, paragraphNumberingSourcesFromBoundary } from "../../prosemirror/numberingAttr.js";
|
|
5
6
|
import { directionIsRtl, directionToBidi } from "../../prosemirror/paragraphDirection.js";
|
|
6
7
|
import { mergeParagraphTabStops } from "../../utils/paragraphFormattingMerge.js";
|
|
7
8
|
import { AUTO_PARAGRAPH_SPACING_PX } from "../../utils/units.js";
|
|
@@ -9,7 +10,6 @@ import { convertBorderSpecToLayout } from "./flowBorders.js";
|
|
|
9
10
|
import { twipsToPixels } from "./flowConversionShared.js";
|
|
10
11
|
import { applyDeletedListMarkerAttrs, applyMarkerAllCaps, isAddedNumberingChange, isChangedNumberingChange, isRemovedNumberingChange, toListMarkerRevision } from "./listMarkers.js";
|
|
11
12
|
import { listMarkerFormattingFor, resolveWesternThemeFont } from "./textFormattingConversion.js";
|
|
12
|
-
import { paragraphNumberingLevel, paragraphNumberingReferenceId } from "@stll/docx-core/model";
|
|
13
13
|
//#region src/layout-bridge/convert/paragraphAttrs.ts
|
|
14
14
|
/**
|
|
15
15
|
* Converts ProseMirror paragraph attributes to layout ParagraphAttrs:
|
|
@@ -88,8 +88,12 @@ function convertParagraphAttrs(pmAttrs, { theme, fontAlternates, listCounterStre
|
|
|
88
88
|
let indentLeft = typeof pmAttrs.indentLeft === "number" ? pmAttrs.indentLeft : void 0;
|
|
89
89
|
let indentFirstLine = typeof pmAttrs.indentFirstLine === "number" ? pmAttrs.indentFirstLine : void 0;
|
|
90
90
|
let hangingIndent = pmAttrs.hangingIndent;
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
const numbering = effectiveParagraphNumberingReference(paragraphNumberingSourcesFromBoundary({
|
|
92
|
+
numPr: pmAttrs.numPr,
|
|
93
|
+
numPrFromStyle: pmAttrs.numPrFromStyle
|
|
94
|
+
}));
|
|
95
|
+
if (numbering !== void 0 && indentLeft === void 0 && indentFirstLine === void 0) {
|
|
96
|
+
indentLeft = ((numbering.ilvl ?? 0) + 1) * 720;
|
|
93
97
|
if (indentFirstLine === void 0) {
|
|
94
98
|
indentFirstLine = -360;
|
|
95
99
|
hangingIndent = true;
|
|
@@ -177,7 +181,7 @@ function convertParagraphAttrs(pmAttrs, { theme, fontAlternates, listCounterStre
|
|
|
177
181
|
if (!pmAttrs.numPr) {
|
|
178
182
|
const numberingRemovedChange = propertyChanges.find(isRemovedNumberingChange);
|
|
179
183
|
if (numberingRemovedChange) {
|
|
180
|
-
applyDeletedListMarkerAttrs(attrs, numberingRemovedChange,
|
|
184
|
+
applyDeletedListMarkerAttrs(attrs, numberingRemovedChange, theme, fontAlternates, paragraphMarkFormatting);
|
|
181
185
|
if (resolvedMarker !== null) {
|
|
182
186
|
attrs.listMarker = resolvedMarker;
|
|
183
187
|
attrs.listMarkerRevision = toListMarkerRevision("del", numberingRemovedChange.info);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { resolveListTemplate } from "../../docx/listTemplate.js";
|
|
2
|
+
import { formatCounter } from "../../prosemirror/listMarker.js";
|
|
1
3
|
import { FlowBlock } from "../../layout-engine/types.js";
|
|
2
|
-
import { formatCounter, resolveListTemplate } from "../../prosemirror/listMarker.js";
|
|
3
4
|
import { ToFlowBlocksOptions, resetBlockIdCounter } from "./flowConversionShared.js";
|
|
4
5
|
import { collectNoteRefs } from "./noteReferences.js";
|
|
5
6
|
import { convertBorderSpecToLayout } from "./flowBorders.js";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { resolveDocumentGridLinePitch } from "../../docx/documentGrid.js";
|
|
2
|
+
import { resolveListTemplate } from "../../docx/listTemplate.js";
|
|
2
3
|
import { buildPageBreakRunDescendantIndex } from "../../internal/pageBreakRunDescendantIndex.js";
|
|
3
4
|
import { getPageNumbering } from "../../paged-layout/sectionGeometry.js";
|
|
4
5
|
import { expectBlockSdtAttrs, expectHardBreakAttrs, expectParagraphAttrs, expectTextBoxAttrs } from "../../prosemirror/attrs/index.js";
|
|
5
|
-
import { cloneListCounterState, formatCounter
|
|
6
|
+
import { cloneListCounterState, formatCounter } from "../../prosemirror/listMarker.js";
|
|
6
7
|
import { resolveNumberedRefFields } from "../../prosemirror/numberedRefFields.js";
|
|
7
8
|
import { expectTextBoxAnchorAttrs } from "../../prosemirror/textBoxAnchorAttrs.js";
|
|
8
9
|
import { assertValidProseMirrorDocument } from "../../prosemirror/validation.js";
|
|
@@ -40,7 +40,33 @@ function renderParagraphBlock(ctx, pkg, para) {
|
|
|
40
40
|
let list = para.listRendering;
|
|
41
41
|
if (numPr?.kind === "none" || pkg?.numbering !== void 0 && numPr === void 0) list = void 0;
|
|
42
42
|
else if (pkg?.numbering !== void 0 && numPr?.kind === "reference") list = resolveCachedListRendering(para.listRendering, resolveListRenderingDefinition(numPr, getCachedNumberingMap(pkg.numbering))) ?? void 0;
|
|
43
|
-
const
|
|
43
|
+
const counterAttrs = listLabelAttrsFromRendering(list, {
|
|
44
|
+
numPr: para.formatting?.numPr,
|
|
45
|
+
numPrFromStyle
|
|
46
|
+
});
|
|
47
|
+
if (para.pPrMark) counterAttrs.pPrMark = para.pPrMark;
|
|
48
|
+
let originalList;
|
|
49
|
+
if (para.propertyChanges) counterAttrs._propertyChanges = para.propertyChanges.map(({ previousFormatting, ...change }) => {
|
|
50
|
+
if (!previousFormatting) return change;
|
|
51
|
+
const previousInherited = ctx.paragraphNumbering(previousFormatting.styleId) ?? previousFormatting.numPrFromStyle;
|
|
52
|
+
const previousNumbering = mergeParagraphNumbering(previousInherited, previousFormatting.numPr);
|
|
53
|
+
const previousRendering = pkg?.numbering !== void 0 && previousNumbering?.kind === "reference" ? resolveListRenderingDefinition(previousNumbering, getCachedNumberingMap(pkg.numbering)).rendering ?? void 0 : void 0;
|
|
54
|
+
originalList ??= previousRendering;
|
|
55
|
+
const previousAttrs = listLabelAttrsFromRendering(previousRendering, {
|
|
56
|
+
numPr: previousFormatting.numPr,
|
|
57
|
+
numPrFromStyle: previousInherited
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
...change,
|
|
61
|
+
previousFormatting: {
|
|
62
|
+
...previousFormatting,
|
|
63
|
+
...previousAttrs,
|
|
64
|
+
...previousAttrs.numPr === void 0 ? { numPr: null } : { numPr: previousAttrs.numPr },
|
|
65
|
+
...previousAttrs.numPrFromStyle === void 0 ? { numPrFromStyle: null } : { numPrFromStyle: previousAttrs.numPrFromStyle }
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
const label = ctx.nextListLabel(counterAttrs);
|
|
44
70
|
const inline = renderParagraphInline(ctx, pkg, para.content, para.paraId);
|
|
45
71
|
const styleId = para.formatting?.styleId;
|
|
46
72
|
const headingLevel = markdownHeadingLevel(ctx, para);
|
|
@@ -57,7 +83,8 @@ function renderParagraphBlock(ctx, pkg, para) {
|
|
|
57
83
|
type: "paragraph"
|
|
58
84
|
};
|
|
59
85
|
}
|
|
60
|
-
|
|
86
|
+
const visibleList = list ?? originalList;
|
|
87
|
+
if (visibleList && label !== void 0) return renderListItem(ctx, visibleList, label, inline);
|
|
61
88
|
ctx.listIndentWidths = [];
|
|
62
89
|
if (isQuoteStyle(styleId, ctx.builtInStyles)) return {
|
|
63
90
|
markdown: inline.split("\n").map((line) => `> ${line}`).join("\n"),
|
|
@@ -75,7 +102,6 @@ function markdownHeadingLevel(ctx, para) {
|
|
|
75
102
|
styleId: para.formatting?.styleId
|
|
76
103
|
}, ctx.builtInStyles);
|
|
77
104
|
}
|
|
78
|
-
const UNNUMBERED = Object.freeze({});
|
|
79
105
|
/**
|
|
80
106
|
* A plain paragraph whose visible text begins with markdown block syntax (e.g.
|
|
81
107
|
* `# Not a heading`, `- value`, `1. value`, `> quote`) would be reclassified as
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sameStatedParagraphNumbering as sameStatedParagraphNumbering$1 } from "../../docx/numberingReference.js";
|
|
2
|
-
import {
|
|
2
|
+
import { markParagraphPropertySourceTransfers } from "../../docx/paragraphPropertySource.js";
|
|
3
3
|
import { RevisionResolutionStep } from "../../internal/revisionResolutionStep.js";
|
|
4
4
|
import { finalRevisionParagraphRanges } from "../../internal/revisionResolutionTracking.js";
|
|
5
5
|
import { deleteTextBoxesAnchoredAt, droppedTextBoxAnchorIds, moveTextBoxesPastNextParagraph } from "../anchoredTextBoxes.js";
|
|
@@ -16,19 +16,18 @@ import { joinAtParagraphMark } from "../paragraphMarkJoin.js";
|
|
|
16
16
|
import { getDocumentNumbering } from "../plugins/documentNumbering.js";
|
|
17
17
|
import { getDocumentStyleResolver } from "../plugins/documentStyleState.js";
|
|
18
18
|
import { resolvedPreservedXmlAttrs } from "../preservedXmlReview.js";
|
|
19
|
-
import {
|
|
19
|
+
import { setParagraphAttrsWithRebasedRunFormatting } from "../rebaseParagraphRunFormatting.js";
|
|
20
20
|
import { rejoinRunsAt } from "../rejoinRunCarriers.js";
|
|
21
21
|
import { getFolioNodeRevisionCarriers, nodePropertyRevisionSites } from "../revisionCarriers.js";
|
|
22
22
|
import { RUN_FORMATTING_MARK_NAMES } from "../runFormattingMarkNames.js";
|
|
23
23
|
import { reconstructRejectedRunFormattingMarks, restoreHistoricalRunFormatting } from "../runPropertyChangeResolution.js";
|
|
24
|
-
import {
|
|
24
|
+
import { paragraphRunStyleContextAt } from "../runStyleFormatting.js";
|
|
25
25
|
import { getTableCellMergeChange } from "../tableCellMergeRevision.js";
|
|
26
26
|
import { isTableCellRetainedInReviewView } from "../tableCellRevisionVisibility.js";
|
|
27
27
|
import { markRowEmptiedInBatch, reconcileTableGridAfterColumnRemoval, removeRowsWithoutCellsAfterBatch, removeTableRow } from "../tableGridMutation.js";
|
|
28
28
|
import { runInCellPending, runParagraphIntoTable } from "../tableRunIn.js";
|
|
29
29
|
import { retainedTrackedRevisionMark, trackedRevisionPathOf } from "../trackedRevisionPath.js";
|
|
30
30
|
import { holdsNoContent } from "../zeroWidthAnchors.js";
|
|
31
|
-
import { inlineBookmarksForParagraphJoin } from "./paragraphBookmarkJoin.js";
|
|
32
31
|
import { hasSerializableParagraphPropertyChange, paragraphPropertiesSnapshot } from "./propertyChangeScope.js";
|
|
33
32
|
import { resolveNodePropertyChangeAttrs } from "./resolveNodePropertyChangeAttrs.js";
|
|
34
33
|
import { resolveParagraphChangeAttrs } from "./resolveParagraphProperties.js";
|
|
@@ -338,8 +337,7 @@ function resolveChange(from, to, mode, revisionIds) {
|
|
|
338
337
|
continue;
|
|
339
338
|
}
|
|
340
339
|
if (moveTextBoxesPastNextParagraph(tr, mappedPos)) markStructuralChange(tr);
|
|
341
|
-
|
|
342
|
-
let nextPos = joinPos;
|
|
340
|
+
let nextPos = mappedPos + paragraph.nodeSize;
|
|
343
341
|
const boundaries = [];
|
|
344
342
|
while (nextPos < tr.doc.content.size) {
|
|
345
343
|
const boundary = tr.doc.nodeAt(nextPos);
|
|
@@ -375,32 +373,7 @@ function resolveChange(from, to, mode, revisionIds) {
|
|
|
375
373
|
continue;
|
|
376
374
|
}
|
|
377
375
|
try {
|
|
378
|
-
|
|
379
|
-
const leftToken = getProseParagraphPropertySourceToken(paragraph);
|
|
380
|
-
const rightToken = getProseParagraphPropertySourceToken(nextNode);
|
|
381
|
-
const inlineBookmarks = inlineBookmarksForParagraphJoin({
|
|
382
|
-
first: paragraph,
|
|
383
|
-
boundaries,
|
|
384
|
-
second: nextNode
|
|
385
|
-
});
|
|
386
|
-
if (!inlineBookmarks) continue;
|
|
387
|
-
tr.replaceWith(joinPos - 1, nextPos + 1, inlineBookmarks);
|
|
388
|
-
tr.setNodeMarkup(mappedPos, void 0, nextNode.attrs);
|
|
389
|
-
markParagraphPropertySourceTransfers(tr, [{
|
|
390
|
-
displacedToken: typeof leftToken === "string" ? leftToken : null,
|
|
391
|
-
selectedToken: typeof rightToken === "string" ? rightToken : null
|
|
392
|
-
}]);
|
|
393
|
-
if (styleResolver && paragraph.content.size > 0) rebaseParagraphRuns({
|
|
394
|
-
previousContext: paragraphRunStyleContext(paragraph, styleResolver),
|
|
395
|
-
paragraphPosition: mappedPos,
|
|
396
|
-
range: {
|
|
397
|
-
from: 0,
|
|
398
|
-
to: paragraph.content.size
|
|
399
|
-
},
|
|
400
|
-
styleResolver,
|
|
401
|
-
tr
|
|
402
|
-
});
|
|
403
|
-
} else joinAtParagraphMark({
|
|
376
|
+
joinAtParagraphMark({
|
|
404
377
|
tr,
|
|
405
378
|
paragraphPos: mappedPos,
|
|
406
379
|
paragraph,
|
|
@@ -9,5 +9,11 @@ type InlineBookmarksForParagraphJoinOptions = {
|
|
|
9
9
|
declare const inlineBookmarksOf: (boundaries: readonly Node[]) => Node[] | null;
|
|
10
10
|
/** Inline boundaries that can replace the paragraph break without replacing either paragraph's content. */
|
|
11
11
|
declare const inlineBookmarksForParagraphJoin: ({ first, boundaries, second }: InlineBookmarksForParagraphJoinOptions) => Node[] | null;
|
|
12
|
+
/** Paragraph siblings separated only by typed bookmark boundaries. */
|
|
13
|
+
declare const paragraphJoinAfter: (doc: Node, position: number) => {
|
|
14
|
+
next: Node;
|
|
15
|
+
nextPosition: number;
|
|
16
|
+
inlineBookmarks: Node[];
|
|
17
|
+
} | null;
|
|
12
18
|
//#endregion
|
|
13
|
-
export { inlineBookmarksForParagraphJoin, inlineBookmarksOf };
|
|
19
|
+
export { inlineBookmarksForParagraphJoin, inlineBookmarksOf, paragraphJoinAfter };
|