@stll/folio-core 0.46.0 → 0.47.1
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 +17 -1
- package/dist/ai-edits/apply.js +31 -27
- package/dist/ai-edits/headless.d.ts +9 -2
- package/dist/ai-edits/headless.js +5 -3
- package/dist/ai-edits/read.d.ts +1 -0
- package/dist/ai-edits/read.js +1 -0
- package/dist/ai-edits/snapshot.js +32 -27
- package/dist/ai-edits/table-cell-mutations.js +15 -7
- package/dist/ai-edits/table-geometry.js +21 -18
- package/dist/ai-edits/table-template.js +2 -2
- package/dist/compare/compare.js +2 -1
- package/dist/compare/content-alignment.js +192 -46
- package/dist/compare/content-types.d.ts +8 -2
- package/dist/compare/content.js +2 -11
- package/dist/compare/plan.js +7 -4
- package/dist/compare/section-boundary-properties.js +1 -2
- package/dist/content-controls/checkboxDisplay.d.ts +8 -2
- package/dist/content-controls/checkboxDisplay.js +11 -5
- package/dist/content-controls/mutateContentControls.js +41 -42
- package/dist/controller/layoutPipeline.js +8 -3
- package/dist/display-list/build/buildDisplayList.js +7 -7
- package/dist/display-list/build/imagePrimitives.d.ts +4 -4
- package/dist/display-list/build/imagePrimitives.js +38 -20
- package/dist/display-list/build/pageBorderPrimitives.js +2 -1
- package/dist/display-list/build/paragraphPrimitives.js +93 -13
- package/dist/display-list/build/previewPrimitives.d.ts +10 -0
- package/dist/display-list/build/previewPrimitives.js +89 -0
- package/dist/display-list/build/strokes.d.ts +177 -8
- package/dist/display-list/build/strokes.js +167 -47
- package/dist/display-list/build/tablePrimitives.js +4 -2
- package/dist/display-list/build/textBoxPrimitives.js +6 -4
- package/dist/display-list/build/textDecorations.d.ts +15 -1
- package/dist/display-list/build/textDecorations.js +15 -1
- package/dist/display-list/dom/renderDisplayListToDom.js +1 -19
- package/dist/display-list/primitives.d.ts +13 -2
- package/dist/display-list/primitives.js +36 -1
- package/dist/document-operations.d.ts +9 -2
- package/dist/document-operations.js +5 -3
- package/dist/docx/attributeRemainder.d.ts +34 -1
- package/dist/docx/attributeRemainder.js +49 -3
- package/dist/docx/blockContentParser.d.ts +2 -0
- package/dist/docx/blockContentParser.js +39 -67
- package/dist/docx/blockPlainText.js +3 -1
- package/dist/docx/borderParser.js +26 -11
- package/dist/docx/builtInStyles.d.ts +8 -16
- package/dist/docx/builtInStyles.js +54 -17
- package/dist/docx/commentAnchorIndex.js +1 -1
- package/dist/docx/commentParser.js +3 -3
- package/dist/docx/commentRangeIntegrity.js +1 -1
- package/dist/docx/commentRangeJoin.js +1 -1
- package/dist/docx/commentReferenceNormalization.js +3 -2
- package/dist/docx/commentReplyMarkers.js +1 -1
- package/dist/docx/compatibility.js +56 -42
- package/dist/docx/containerChildren.d.ts +110 -13
- package/dist/docx/containerChildren.gen.d.ts +16 -1
- package/dist/docx/containerChildren.gen.js +18 -1
- package/dist/docx/containerChildren.js +63 -13
- package/dist/docx/diagramPreview.d.ts +14 -2
- package/dist/docx/diagramPreview.js +81 -169
- package/dist/docx/documentParser.js +4 -1
- package/dist/docx/drawingAnchor.d.ts +87 -0
- package/dist/docx/drawingAnchor.js +201 -0
- package/dist/docx/drawingUtils.d.ts +43 -38
- package/dist/docx/drawingUtils.js +205 -118
- package/dist/docx/fontTableParser.js +102 -41
- package/dist/docx/footnoteParser.js +10 -6
- package/dist/docx/groupDrawingParser.js +4 -3
- package/dist/docx/headerFooterReferenceNormalization.js +1 -1
- package/dist/docx/hyperlinkParser.d.ts +45 -7
- package/dist/docx/hyperlinkParser.js +126 -57
- package/dist/docx/imageParser.js +127 -107
- package/dist/docx/index.d.ts +2 -1
- package/dist/docx/index.js +2 -1
- package/dist/docx/inlineContentRemovals.d.ts +28 -0
- package/dist/docx/inlineContentRemovals.js +46 -0
- package/dist/docx/inlineWrapperContent.d.ts +84 -3
- package/dist/docx/inlineWrapperContent.js +85 -4
- package/dist/docx/inlineWrapperParser.d.ts +11 -0
- package/dist/docx/inlineWrapperParser.js +60 -0
- package/dist/docx/nonVisualDrawingProps.d.ts +5 -13
- package/dist/docx/normalizeBaseDirection.js +4 -2
- package/dist/docx/numberingParser.d.ts +25 -2
- package/dist/docx/numberingParser.js +264 -361
- package/dist/docx/numberingReference.d.ts +9 -16
- package/dist/docx/numberingReference.js +17 -16
- package/dist/docx/numberingReferenceNormalization.js +7 -7
- package/dist/docx/ooxmlCounterFormatter.d.ts +1 -1
- package/dist/docx/ooxmlCounterFormatter.js +4 -1
- package/dist/docx/paraIdAttribute.d.ts +91 -1
- package/dist/docx/paraIdAttribute.js +79 -1
- package/dist/docx/paragraphParser.d.ts +9 -24
- package/dist/docx/paragraphParser.js +212 -396
- package/dist/docx/paragraphProperties.d.ts +23 -0
- package/dist/docx/paragraphProperties.js +279 -0
- package/dist/docx/paragraphPropertySource.js +2 -0
- package/dist/docx/paragraphTextBoxEnrichment.d.ts +2 -1
- package/dist/docx/paragraphTextBoxEnrichment.js +14 -7
- package/dist/docx/paragraphTraversal.d.ts +14 -10
- package/dist/docx/paragraphTraversal.js +47 -49
- package/dist/docx/parseWarningMessage.js +3 -0
- package/dist/docx/parserEnums.d.ts +6 -8
- package/dist/docx/parserEnums.js +4 -6
- package/dist/docx/preservedRunContent.js +16 -6
- package/dist/docx/previewBudget.d.ts +44 -23
- package/dist/docx/previewBudget.js +61 -30
- package/dist/docx/propertyElementAttributes.d.ts +178 -0
- package/dist/docx/propertyElementAttributes.js +114 -0
- package/dist/docx/renderedPageBreakNormalization.js +2 -2
- package/dist/docx/rezip.d.ts +28 -2
- package/dist/docx/rezip.js +78 -9
- package/dist/docx/runConsolidator.d.ts +42 -2
- package/dist/docx/runConsolidator.js +60 -6
- package/dist/docx/runParser.d.ts +54 -18
- package/dist/docx/runParser.js +379 -295
- package/dist/docx/runPayload.d.ts +5 -0
- package/dist/docx/runPayload.js +4 -0
- package/dist/docx/sdtProperties.d.ts +39 -5
- package/dist/docx/sdtProperties.js +205 -84
- package/dist/docx/sdtPropertiesPatch.d.ts +5 -9
- package/dist/docx/sdtPropertiesPatch.js +68 -112
- package/dist/docx/sectionParser.d.ts +1 -2
- package/dist/docx/sectionParser.js +236 -240
- package/dist/docx/selectiveSave.js +3 -2
- package/dist/docx/selectiveXmlPatch.d.ts +21 -2
- package/dist/docx/selectiveXmlPatch.js +195 -99
- package/dist/docx/serializer/blockSdtSerializer.js +2 -96
- package/dist/docx/serializer/borderSerializer.d.ts +5 -5
- package/dist/docx/serializer/borderSerializer.js +10 -8
- package/dist/docx/serializer/documentSerializer.js +3 -0
- package/dist/docx/serializer/fontTableSerializer.js +31 -3
- package/dist/docx/serializer/headerFooterSerializer.js +3 -0
- package/dist/docx/serializer/markupRangeAttributes.d.ts +9 -1
- package/dist/docx/serializer/markupRangeAttributes.js +9 -1
- package/dist/docx/serializer/noteSerializer.js +3 -0
- package/dist/docx/serializer/numberingSerializer.d.ts +1 -6
- package/dist/docx/serializer/numberingSerializer.js +81 -79
- package/dist/docx/serializer/paragraphSerializer.d.ts +1 -9
- package/dist/docx/serializer/paragraphSerializer.js +88 -188
- package/dist/docx/serializer/runSerializer.d.ts +1 -5
- package/dist/docx/serializer/runSerializer.js +109 -59
- package/dist/docx/serializer/sdtPropertiesSerializer.d.ts +26 -0
- package/dist/docx/serializer/sdtPropertiesSerializer.js +111 -0
- package/dist/docx/serializer/sectionPropertiesSerializer.js +34 -45
- package/dist/docx/serializer/settingsSerializer.js +6 -4
- package/dist/docx/serializer/stylesSerializer.js +8 -11
- package/dist/docx/serializer/tableSerializer.js +268 -100
- package/dist/docx/serializer/textFormattingSerializer.d.ts +28 -4
- package/dist/docx/serializer/textFormattingSerializer.js +111 -101
- package/dist/docx/serializer/xmlUtils.d.ts +1 -1
- package/dist/docx/serializer/xmlUtils.js +1 -1
- package/dist/docx/server/createBilingualDocument.js +18 -16
- package/dist/docx/server/migrateYjsAttrSchema.js +3 -3
- package/dist/docx/settingsParser.js +7 -4
- package/dist/docx/shadingParser.d.ts +2 -1
- package/dist/docx/shadingParser.js +43 -7
- package/dist/docx/shapeParser.js +8 -3
- package/dist/docx/strictNames.d.ts +11 -0
- package/dist/docx/strictNames.gen.d.ts +45 -0
- package/dist/docx/strictNames.gen.js +50 -0
- package/dist/docx/strictNames.js +43 -0
- package/dist/docx/strictValueEncodings.gen.js +133 -131
- package/dist/docx/styleParser.js +17 -349
- package/dist/docx/tableParser.d.ts +10 -1
- package/dist/docx/tableParser.js +505 -181
- package/dist/docx/textBoxParser.d.ts +3 -1
- package/dist/docx/textBoxParser.js +18 -8
- package/dist/docx/themeColorAttribute.d.ts +13 -0
- package/dist/docx/themeColorAttribute.js +24 -0
- package/dist/docx/trackedMoveRangeNormalization.js +2 -1
- package/dist/docx/vmlImageParser.d.ts +13 -4
- package/dist/docx/vmlImageParser.js +74 -31
- package/dist/docx/vmlPreview.js +2 -2
- package/dist/docx/wrapPolygon.d.ts +30 -0
- package/dist/docx/wrapPolygon.js +70 -0
- package/dist/docx/xmlParser.d.ts +14 -1
- package/dist/docx/xmlParser.js +18 -2
- package/dist/fonts/embeddedFonts.js +3 -3
- package/dist/headless-layout.js +2 -0
- package/dist/i18n/messages/catalogs.gen.d.ts +68 -0
- package/dist/i18n/messages/catalogs.gen.js +102 -34
- package/dist/i18n/messages/messages.gen.d.ts +4 -0
- package/dist/internal/headlessRevisionResolution.js +9 -0
- package/dist/internal/pageBreakRunSourceDescendantIndex.js +3 -1
- package/dist/internal/paragraphFormattingSerialization.d.ts +20 -9
- package/dist/internal/paragraphFormattingSerialization.js +118 -83
- package/dist/layout-bridge/convert/footnoteLayout.d.ts +1 -0
- package/dist/layout-bridge/convert/footnoteLayout.js +1 -0
- package/dist/layout-bridge/convert/headerFooterLayout.d.ts +1 -0
- package/dist/layout-bridge/convert/headerFooterLayout.js +2 -0
- package/dist/layout-bridge/convert/toFlowBlocks.d.ts +17 -12
- package/dist/layout-bridge/convert/toFlowBlocks.js +177 -101
- package/dist/layout-engine/index.d.ts +2 -2
- package/dist/layout-engine/index.js +53 -17
- package/dist/layout-engine/measure/measureBlocks.d.ts +3 -0
- package/dist/layout-engine/measure/measureBlocks.js +6 -10
- package/dist/layout-engine/measure/tableCellGrid.js +2 -1
- package/dist/layout-engine/measure/tableFragmentBorderGeometry.js +2 -1
- package/dist/layout-engine/measure/tableInlinePlacement.js +2 -5
- package/dist/layout-engine/paragraphSequence.js +3 -2
- package/dist/layout-engine/renderedBreakReconciliation.js +2 -1
- package/dist/layout-engine/section-breaks.d.ts +49 -2
- package/dist/layout-engine/section-breaks.js +55 -4
- package/dist/layout-engine/types.d.ts +47 -17
- package/dist/layout-engine/types.js +16 -1
- package/dist/layout-painter/borderStroke.d.ts +18 -4
- package/dist/layout-painter/renderPage.js +6 -4
- package/dist/layout-painter/renderParagraph.d.ts +2 -1
- package/dist/layout-painter/renderParagraph.js +13 -26
- package/dist/layout-painter/renderTable.d.ts +4 -1
- package/dist/layout-painter/renderTable.js +22 -22
- package/dist/layout-painter/renderTextBox.js +5 -3
- package/dist/markdown/renderBlock.js +3 -1
- package/dist/markdown/renderRuns.js +7 -2
- package/dist/markdown/renderTable.js +2 -1
- package/dist/model.d.ts +3 -3
- package/dist/model.js +2 -2
- package/dist/paged-layout/sectionBlockWidths.d.ts +3 -0
- package/dist/paged-layout/sectionBlockWidths.js +26 -4
- package/dist/prosemirror/attrs/index.d.ts +22 -4
- package/dist/prosemirror/attrs/index.js +498 -60
- package/dist/prosemirror/bookmarkBoundaryAttrs.d.ts +9 -1
- package/dist/prosemirror/bookmarkBoundaryAttrs.js +22 -3
- package/dist/prosemirror/commands/comments.js +68 -53
- package/dist/prosemirror/commands/contentControls.js +24 -19
- package/dist/prosemirror/commands/image.d.ts +1 -1
- package/dist/prosemirror/commands/image.js +4 -1
- package/dist/prosemirror/commands/paragraph.d.ts +2 -1
- package/dist/prosemirror/commands/propertyChangeScope.d.ts +12 -4
- package/dist/prosemirror/commands/propertyChangeScope.js +22 -4
- package/dist/prosemirror/commands/sectionBreak.d.ts +33 -1
- package/dist/prosemirror/commands/sectionBreak.js +187 -11
- package/dist/prosemirror/conversion/fromProseDoc.d.ts +18 -2
- package/dist/prosemirror/conversion/fromProseDoc.js +330 -183
- package/dist/prosemirror/conversion/index.d.ts +2 -2
- package/dist/prosemirror/conversion/preservedSinkCarriers.d.ts +39 -0
- package/dist/prosemirror/conversion/preservedSinkCarriers.js +19 -0
- package/dist/prosemirror/conversion/runShadingMark.js +14 -1
- package/dist/prosemirror/conversion/sdtAttrs.d.ts +10 -1
- package/dist/prosemirror/conversion/sdtAttrs.js +19 -5
- package/dist/prosemirror/conversion/toProseDoc.js +371 -141
- package/dist/prosemirror/emptyRangeAnchor.d.ts +53 -0
- package/dist/prosemirror/emptyRangeAnchor.js +158 -0
- package/dist/prosemirror/extensions/StarterKit.js +8 -2
- package/dist/prosemirror/extensions/core/DocExtension.js +1 -1
- package/dist/prosemirror/extensions/core/ParagraphExtension.js +19 -15
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +3 -2
- package/dist/prosemirror/extensions/features/ListExtension.js +43 -24
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +4 -3
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +3 -3
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +5 -5
- package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +3 -1
- package/dist/prosemirror/extensions/features/pasteCleanup.js +56 -2
- package/dist/prosemirror/extensions/features/pastedHeadingStyles.js +5 -4
- package/dist/prosemirror/extensions/markRegistry.d.ts +26 -2
- package/dist/prosemirror/extensions/markRegistry.js +73 -10
- package/dist/prosemirror/extensions/marks/InlineWrapperExtension.js +17 -3
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.d.ts +26 -0
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.js +134 -0
- package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +2 -1
- package/dist/prosemirror/extensions/marks/UnderlineExtension.js +12 -18
- package/dist/prosemirror/extensions/marks/markUtils.js +2 -1
- package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.d.ts +29 -0
- package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.js +46 -0
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +4 -3
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +18 -13
- package/dist/prosemirror/extensions/nodes/BookmarkBoundaryExtension.js +28 -53
- package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.js +10 -0
- package/dist/prosemirror/extensions/nodes/ImageExtension.js +8 -1
- package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.d.ts +11 -0
- package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.js +43 -0
- package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.d.ts +13 -0
- package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.js +65 -0
- package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +3 -1
- package/dist/prosemirror/extensions/nodes/SdtExtension.js +22 -16
- package/dist/prosemirror/extensions/nodes/ShapeExtension.js +4 -0
- package/dist/prosemirror/extensions/nodes/TableExtension.js +141 -123
- package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +4 -0
- package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.d.ts +23 -0
- package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.js +57 -0
- package/dist/prosemirror/extensions/types.d.ts +12 -3
- package/dist/prosemirror/index.d.ts +4 -2
- package/dist/prosemirror/index.js +2 -1
- package/dist/prosemirror/inlineWrapperStack.js +20 -3
- package/dist/prosemirror/listMarker.d.ts +2 -2
- package/dist/prosemirror/listMarker.js +7 -8
- package/dist/prosemirror/listRenderingAttrs.js +11 -1
- package/dist/prosemirror/listState.d.ts +62 -0
- package/dist/prosemirror/listState.js +49 -0
- package/dist/prosemirror/moveRangeBoundaryAttrs.d.ts +13 -0
- package/dist/prosemirror/moveRangeBoundaryAttrs.js +114 -0
- package/dist/prosemirror/numberedRefFields.js +4 -4
- package/dist/prosemirror/numberingAttr.d.ts +55 -0
- package/dist/prosemirror/numberingAttr.js +74 -0
- package/dist/prosemirror/outlineLevelAttr.d.ts +29 -0
- package/dist/prosemirror/outlineLevelAttr.js +42 -0
- package/dist/prosemirror/paragraphFormattingProvenance.d.ts +9 -0
- package/dist/prosemirror/paragraphFormattingProvenance.js +4 -1
- package/dist/prosemirror/plugins/selectionTracker.d.ts +3 -6
- package/dist/prosemirror/plugins/selectionTracker.js +3 -10
- package/dist/prosemirror/rangeAnchorAttrs.d.ts +14 -0
- package/dist/prosemirror/rangeAnchorAttrs.js +101 -0
- package/dist/prosemirror/replacedAnnotations.d.ts +1 -1
- package/dist/prosemirror/replacedAnnotations.js +24 -6
- package/dist/prosemirror/revisionCarriers.d.ts +86 -2
- package/dist/prosemirror/revisionCarriers.js +86 -60
- package/dist/prosemirror/runFormattingInlineCarriers.d.ts +2 -0
- package/dist/prosemirror/runFormattingInlineCarriers.js +2 -0
- package/dist/prosemirror/runIdentity.d.ts +28 -0
- package/dist/prosemirror/runIdentity.js +36 -0
- package/dist/prosemirror/runStyleFormatting.js +1 -1
- package/dist/prosemirror/schema/index.d.ts +2 -2
- package/dist/prosemirror/schema/marks.d.ts +23 -4
- package/dist/prosemirror/schema/nodes.d.ts +220 -24
- package/dist/prosemirror/sectionCarrier.d.ts +37 -0
- package/dist/prosemirror/sectionCarrier.js +40 -0
- package/dist/prosemirror/selectionState.d.ts +3 -0
- package/dist/prosemirror/selectionState.js +4 -1
- package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +5 -4
- package/dist/prosemirror/styles/resolvedStyleAttrs.js +15 -13
- package/dist/prosemirror/tableResize.js +5 -6
- package/dist/prosemirror/trackedRunInlineAtoms.d.ts +2 -0
- package/dist/prosemirror/trackedRunInlineAtoms.js +2 -0
- package/dist/prosemirror/utils/extractTrackedChanges.d.ts +10 -11
- package/dist/prosemirror/utils/extractTrackedChanges.js +109 -92
- package/dist/prosemirror/validation.js +17 -6
- package/dist/prosemirror/yjsDocumentMetadata.d.ts +2 -2
- package/dist/prosemirror/yjsDocumentMetadata.js +428 -7
- package/dist/prosemirror/zeroWidthAnchors.js +4 -0
- package/dist/style-sets/extract.js +4 -4
- package/dist/style-sets/stellaStyle.js +36 -23
- package/dist/types/colors.d.ts +2 -2
- package/dist/types/content.d.ts +2 -2
- package/dist/types/documentEnumValues.d.ts +53 -26
- package/dist/types/documentEnumValues.js +72 -174
- package/dist/types/formatting.d.ts +2 -2
- package/dist/types/index.d.ts +9 -2
- package/dist/utils/borderCss.d.ts +246 -0
- package/dist/utils/borderCss.js +325 -0
- package/dist/utils/colorResolver.d.ts +4 -3
- package/dist/utils/colorResolver.js +45 -76
- package/dist/utils/createDocument.js +24 -6
- package/dist/utils/findReplace.js +52 -10
- package/dist/utils/formatToStyle.d.ts +84 -2
- package/dist/utils/formatToStyle.js +133 -52
- package/dist/utils/headingCollector.js +3 -2
- package/dist/utils/mergeDocumentContent.js +5 -3
- package/dist/utils/paragraphFormattingMerge.js +27 -6
- package/dist/utils/replaceText.js +1 -1
- package/dist/utils/tableOperations.d.ts +5 -3
- package/dist/utils/tableOperations.js +14 -1
- package/dist/utils/tablePlacement.d.ts +7 -0
- package/dist/utils/tablePlacement.js +14 -0
- package/dist/utils/textDirectionFlow.d.ts +15 -0
- package/dist/utils/textDirectionFlow.js +38 -0
- package/dist/utils/textFormattingMerge.js +16 -4
- package/package.json +10 -10
- package/dist/ai-edits/__fixtures__/paragraphs.d.ts +0 -17
- package/dist/ai-edits/__fixtures__/paragraphs.js +0 -33
- package/dist/compare/__fixtures__/body-sequence.d.ts +0 -119
- package/dist/compare/__fixtures__/body-sequence.js +0 -225
- package/dist/compare/__fixtures__/nested-table.d.ts +0 -16
- package/dist/compare/__fixtures__/nested-table.js +0 -50
- package/dist/compare/__fixtures__/numbered-list.d.ts +0 -34
- package/dist/compare/__fixtures__/numbered-list.js +0 -85
- package/dist/docx/bookmarkPlacement.d.ts +0 -9
- package/dist/docx/bookmarkPlacement.js +0 -52
- package/dist/fonts/embeddedFontTable.d.ts +0 -45
- package/dist/fonts/embeddedFontTable.js +0 -80
- package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.d.ts +0 -13
- package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.js +0 -39
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ParagraphAttrsPatch } from "../schema/nodes.js";
|
|
1
2
|
import { ResolvedParagraphStyle } from "./styleResolver.js";
|
|
2
3
|
import { NumberingMap } from "../../docx/numberingParser.js";
|
|
3
4
|
//#region src/prosemirror/styles/resolvedStyleAttrs.d.ts
|
|
@@ -11,7 +12,7 @@ type ResolvedStyleIdentity = {
|
|
|
11
12
|
* style's properties (e.g. a heading's spacing) never leak through. Returns
|
|
12
13
|
* a partial attrs object to merge over the paragraph's existing attrs.
|
|
13
14
|
*/
|
|
14
|
-
declare function paragraphAttrsFromResolvedStyle(resolved: ResolvedParagraphStyle, identity: ResolvedStyleIdentity):
|
|
15
|
+
declare function paragraphAttrsFromResolvedStyle(resolved: ResolvedParagraphStyle, identity: ResolvedStyleIdentity): ParagraphAttrsPatch;
|
|
15
16
|
/**
|
|
16
17
|
* The list attrs a style's `w:pPr/w:numPr` controls (numbering reference plus
|
|
17
18
|
* the baked marker-rendering attrs that `toProseDoc` normally derives from
|
|
@@ -30,18 +31,18 @@ declare function paragraphAttrsFromResolvedStyle(resolved: ResolvedParagraphStyl
|
|
|
30
31
|
* paragraph's inline LISTNUM fields, which the picker has no view of. A
|
|
31
32
|
* subsequent save + reload re-derives them from the document content.
|
|
32
33
|
*/
|
|
33
|
-
declare function listAttrsFromResolvedStyle(resolved: ResolvedParagraphStyle, numbering: NumberingMap | null | undefined):
|
|
34
|
+
declare function listAttrsFromResolvedStyle(resolved: ResolvedParagraphStyle, numbering: NumberingMap | null | undefined): ParagraphAttrsPatch | null;
|
|
34
35
|
/** Project one resolved numbering level into the complete editor attr group. */
|
|
35
36
|
declare function listAttrsFromNumbering(numPr: {
|
|
36
37
|
numId: number;
|
|
37
38
|
ilvl: number;
|
|
38
|
-
}, numbering: NumberingMap | null | undefined):
|
|
39
|
+
}, numbering: NumberingMap | null | undefined): ParagraphAttrsPatch;
|
|
39
40
|
/** Recompute every level-dependent attr when a paragraph changes list level. */
|
|
40
41
|
declare function listLevelAttrPatch(attrs: {
|
|
41
42
|
listImplicitChildLevelAdvances?: number | null;
|
|
42
43
|
}, numPr: {
|
|
43
44
|
numId: number;
|
|
44
45
|
ilvl: number;
|
|
45
|
-
}, numbering: NumberingMap | null | undefined):
|
|
46
|
+
}, numbering: NumberingMap | null | undefined): ParagraphAttrsPatch;
|
|
46
47
|
//#endregion
|
|
47
48
|
export { listAttrsFromNumbering, listAttrsFromResolvedStyle, listLevelAttrPatch, paragraphAttrsFromResolvedStyle };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { computeListRendering, numberingLevelHasMarkerSlot } from "../../docx/numberingParser.js";
|
|
2
|
-
import {
|
|
2
|
+
import { paragraphNumberingReference } from "../../docx/numberingReference.js";
|
|
3
3
|
import { tableOfContentsStyleLevel } from "../../utils/tableOfContentsStyle.js";
|
|
4
4
|
import { setAutospacingBaseValue } from "../autospacingBase.js";
|
|
5
5
|
import { CLEARED_LIST_RENDERING_ATTRS } from "../listMarker.js";
|
|
6
6
|
import { listRenderingAttrPatch } from "../listRenderingAttrs.js";
|
|
7
|
+
import { paragraphNumberingAttr } from "../numberingAttr.js";
|
|
7
8
|
import { styleResolvedParagraphFormatting } from "../paragraphFormattingProvenance.js";
|
|
8
9
|
//#region src/prosemirror/styles/resolvedStyleAttrs.ts
|
|
9
10
|
/**
|
|
@@ -77,22 +78,23 @@ function autospacingBaseFromResolvedParagraphFormatting(ppr) {
|
|
|
77
78
|
*/
|
|
78
79
|
function listAttrsFromResolvedStyle(resolved, numbering) {
|
|
79
80
|
const numPr = resolved.paragraphFormatting?.numPr;
|
|
80
|
-
if (
|
|
81
|
+
if (numPr?.kind !== "reference") return null;
|
|
82
|
+
const { numId, ilvl = 0 } = numPr;
|
|
81
83
|
const attrs = listAttrsFromNumbering({
|
|
82
|
-
numId
|
|
83
|
-
ilvl
|
|
84
|
+
numId,
|
|
85
|
+
ilvl
|
|
84
86
|
}, numbering);
|
|
85
|
-
const level = numbering?.getLevel(
|
|
86
|
-
attrs
|
|
87
|
-
numId
|
|
88
|
-
ilvl
|
|
89
|
-
};
|
|
87
|
+
const level = numbering?.getLevel(numId, ilvl);
|
|
88
|
+
attrs.numPrFromStyle = paragraphNumberingAttr(paragraphNumberingReference({
|
|
89
|
+
numId,
|
|
90
|
+
ilvl
|
|
91
|
+
}));
|
|
90
92
|
const ppr = resolved.paragraphFormatting;
|
|
91
93
|
if (level?.pPr) {
|
|
92
|
-
if (ppr?.indentLeft === void 0 && level.pPr.indentLeft !== void 0) attrs
|
|
94
|
+
if (ppr?.indentLeft === void 0 && level.pPr.indentLeft !== void 0) attrs.indentLeft = level.pPr.indentLeft;
|
|
93
95
|
if (!(ppr?.indentFirstLine !== void 0 || ppr?.hangingIndent !== void 0) && numberingLevelHasMarkerSlot(level)) {
|
|
94
|
-
if (level.pPr.indentFirstLine !== void 0) attrs
|
|
95
|
-
if (level.pPr.hangingIndent !== void 0) attrs
|
|
96
|
+
if (level.pPr.indentFirstLine !== void 0) attrs.indentFirstLine = level.pPr.indentFirstLine;
|
|
97
|
+
if (level.pPr.hangingIndent !== void 0) attrs.hangingIndent = level.pPr.hangingIndent;
|
|
96
98
|
}
|
|
97
99
|
}
|
|
98
100
|
return attrs;
|
|
@@ -106,7 +108,7 @@ function listAttrsFromNumbering(numPr, numbering) {
|
|
|
106
108
|
const rendering = numbering ? computeListRendering(targetNumPr, numbering) : null;
|
|
107
109
|
return {
|
|
108
110
|
...CLEARED_LIST_RENDERING_ATTRS,
|
|
109
|
-
numPr: targetNumPr,
|
|
111
|
+
numPr: paragraphNumberingAttr(paragraphNumberingReference(targetNumPr)),
|
|
110
112
|
...rendering && listRenderingAttrPatch(rendering)
|
|
111
113
|
};
|
|
112
114
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mergeTableCellAttrs } from "./attrs/index.js";
|
|
1
2
|
//#region src/prosemirror/tableResize.ts
|
|
2
3
|
/** 1px ≈ 15 twips at 96dpi (20 twips/pt × 72pt/in ÷ 96px/in). */
|
|
3
4
|
const TWIPS_PER_PIXEL = 15;
|
|
@@ -88,12 +89,11 @@ function commitColumnResize(view, opts) {
|
|
|
88
89
|
const colspan = cell.attrs["colspan"] || 1;
|
|
89
90
|
if (cellColIdx === colIdx || cellColIdx === colIdx + 1) {
|
|
90
91
|
const newWidth = cellColIdx === colIdx ? newLeft : newRight;
|
|
91
|
-
tr.setNodeMarkup(tr.mapping.map(cellOffset), void 0, {
|
|
92
|
-
...cell.attrs,
|
|
92
|
+
tr.setNodeMarkup(tr.mapping.map(cellOffset), void 0, mergeTableCellAttrs(cell, {
|
|
93
93
|
width: newWidth,
|
|
94
94
|
widthType: "dxa",
|
|
95
95
|
colwidth: null
|
|
96
|
-
});
|
|
96
|
+
}));
|
|
97
97
|
}
|
|
98
98
|
cellOffset += cell.nodeSize;
|
|
99
99
|
cellColIdx += colspan;
|
|
@@ -145,12 +145,11 @@ function commitRightEdgeResize(view, opts) {
|
|
|
145
145
|
let cellColIdx = 0;
|
|
146
146
|
row.forEach((cell) => {
|
|
147
147
|
const colspan = cell.attrs["colspan"] || 1;
|
|
148
|
-
if (cellColIdx === colIdx) tr.setNodeMarkup(tr.mapping.map(cellOffset), void 0, {
|
|
149
|
-
...cell.attrs,
|
|
148
|
+
if (cellColIdx === colIdx) tr.setNodeMarkup(tr.mapping.map(cellOffset), void 0, mergeTableCellAttrs(cell, {
|
|
150
149
|
width: newWidth,
|
|
151
150
|
widthType: "dxa",
|
|
152
151
|
colwidth: null
|
|
153
|
-
});
|
|
152
|
+
}));
|
|
154
153
|
cellOffset += cell.nodeSize;
|
|
155
154
|
cellColIdx += colspan;
|
|
156
155
|
});
|
|
@@ -16,8 +16,10 @@ declare const TRACKED_RUN_INLINE_ATOM_DISPOSITIONS: Readonly<{
|
|
|
16
16
|
readonly hardBreak: "carry";
|
|
17
17
|
readonly image: "carry";
|
|
18
18
|
readonly math: "carry";
|
|
19
|
+
readonly moveRangeBoundary: "transparent";
|
|
19
20
|
readonly pageBreakRun: "page-break-carrier";
|
|
20
21
|
readonly preservedXml: "carry";
|
|
22
|
+
readonly rangeAnchor: "transparent";
|
|
21
23
|
readonly renderedPageBreak: "transparent";
|
|
22
24
|
readonly shape: "carry";
|
|
23
25
|
readonly structuredField: "carry";
|
|
@@ -15,8 +15,10 @@ const TRACKED_RUN_INLINE_ATOM_DISPOSITIONS = Object.freeze({
|
|
|
15
15
|
hardBreak: "carry",
|
|
16
16
|
image: "carry",
|
|
17
17
|
math: "carry",
|
|
18
|
+
moveRangeBoundary: "transparent",
|
|
18
19
|
pageBreakRun: "page-break-carrier",
|
|
19
20
|
preservedXml: "carry",
|
|
21
|
+
rangeAnchor: "transparent",
|
|
20
22
|
renderedPageBreak: "transparent",
|
|
21
23
|
shape: "carry",
|
|
22
24
|
structuredField: "carry",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PropertyRevisionCarrier } from "../revisionCarriers.js";
|
|
1
2
|
import { EditorState } from "prosemirror-state";
|
|
2
3
|
//#region src/prosemirror/utils/extractTrackedChanges.d.ts
|
|
3
4
|
/**
|
|
@@ -20,18 +21,16 @@ type TrackedChangeEntry = {
|
|
|
20
21
|
* - `paragraphMarkInsertion` / `paragraphMarkDeletion` — Enter /
|
|
21
22
|
* Backspace produced a tracked paragraph break (`<w:pPr><w:rPr><w:ins/>` /
|
|
22
23
|
* `<w:del/>`).
|
|
23
|
-
* - `
|
|
24
|
-
*
|
|
25
|
-
* - `
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* - `tablePropertiesChanged` — table-level formatting
|
|
32
|
-
* (`<w:tblPrChange>`).
|
|
24
|
+
* - `rowInserted` / `rowDeleted` — table row authored / removed
|
|
25
|
+
* (`<w:trPr><w:ins/>` / `<w:del/>`).
|
|
26
|
+
* - `cellInserted` / `cellDeleted` / `cellMerged` — per-cell structural
|
|
27
|
+
* revisions (`<w:cellIns>` / `<w:cellDel>` / `<w:cellMerge>`).
|
|
28
|
+
* - {@link PropertyRevisionCarrier} — a tracked property revision carried on
|
|
29
|
+
* a node's attrs (`<w:pPrChange>`, `<w:sectPrChange>`, `<w:tblPrChange>`,
|
|
30
|
+
* `<w:tblPrExChange>`, `<w:trPrChange>`, `<w:tcPrChange>`). The set comes
|
|
31
|
+
* from the site table, not from a list kept here.
|
|
33
32
|
*/
|
|
34
|
-
type: "insertion" | "deletion" | "replacement" | "runPropertiesChanged" | "paragraphMarkInsertion" | "paragraphMarkDeletion" | "
|
|
33
|
+
type: "insertion" | "deletion" | "replacement" | "runPropertiesChanged" | "paragraphMarkInsertion" | "paragraphMarkDeletion" | "rowInserted" | "rowDeleted" | "cellInserted" | "cellDeleted" | "cellMerged" | "tableInserted" | "tableDeleted" | PropertyRevisionCarrier;
|
|
35
34
|
/**
|
|
36
35
|
* Affected text. For inline types this is the run's text; for
|
|
37
36
|
* structural types it's the surrounding paragraph / cell content
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { expectRunPropertyChangeMarkAttrs } from "../attrs/index.js";
|
|
2
|
+
import { nodePropertyRevisionSites, propertyRevisionMetadata, propertyRevisionRecords } from "../revisionCarriers.js";
|
|
2
3
|
import { getTableCellMergeChange } from "../tableCellMergeRevision.js";
|
|
3
4
|
//#region src/prosemirror/utils/extractTrackedChanges.ts
|
|
4
5
|
const EMPTY_RESULT = {
|
|
@@ -71,19 +72,6 @@ function extractTrackedChanges(state) {
|
|
|
71
72
|
to: pos + node.nodeSize,
|
|
72
73
|
revisionId: del.revisionId
|
|
73
74
|
});
|
|
74
|
-
const pPrChange = node.attrs["pPrChange"];
|
|
75
|
-
if (Array.isArray(pPrChange)) for (const entry of pPrChange) {
|
|
76
|
-
if (!entry?.info || typeof entry.info.id !== "number") continue;
|
|
77
|
-
raw.push({
|
|
78
|
-
type: "paragraphPropertiesChanged",
|
|
79
|
-
text: node.textContent || "",
|
|
80
|
-
author: entry.info.author || "",
|
|
81
|
-
date: entry.info.date ?? void 0,
|
|
82
|
-
from: pos,
|
|
83
|
-
to: pos + node.nodeSize,
|
|
84
|
-
revisionId: entry.info.id
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
75
|
}
|
|
88
76
|
if (node.type.name === "tableRow") {
|
|
89
77
|
const trIns = node.attrs["trIns"];
|
|
@@ -122,19 +110,6 @@ function extractTrackedChanges(state) {
|
|
|
122
110
|
entry
|
|
123
111
|
});
|
|
124
112
|
}
|
|
125
|
-
const trPrChange = node.attrs["trPrChange"];
|
|
126
|
-
if (Array.isArray(trPrChange)) for (const entry of trPrChange) {
|
|
127
|
-
if (!entry?.info || typeof entry.info.id !== "number") continue;
|
|
128
|
-
raw.push({
|
|
129
|
-
type: "rowPropertiesChanged",
|
|
130
|
-
text: node.textContent || "",
|
|
131
|
-
author: entry.info.author || "",
|
|
132
|
-
date: entry.info.date ?? void 0,
|
|
133
|
-
from: pos,
|
|
134
|
-
to: pos + node.nodeSize,
|
|
135
|
-
revisionId: entry.info.id
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
113
|
}
|
|
139
114
|
if (node.type.name === "tableCell" || node.type.name === "tableHeader") {
|
|
140
115
|
const cellMarker = node.attrs["cellMarker"];
|
|
@@ -168,34 +143,8 @@ function extractTrackedChanges(state) {
|
|
|
168
143
|
revisionId: change.info.id
|
|
169
144
|
});
|
|
170
145
|
}
|
|
171
|
-
const tcPrChange = node.attrs["tcPrChange"];
|
|
172
|
-
if (Array.isArray(tcPrChange)) for (const entry of tcPrChange) {
|
|
173
|
-
if (!entry?.info || typeof entry.info.id !== "number") continue;
|
|
174
|
-
raw.push({
|
|
175
|
-
type: "cellPropertiesChanged",
|
|
176
|
-
text: node.textContent || "",
|
|
177
|
-
author: entry.info.author || "",
|
|
178
|
-
date: entry.info.date ?? void 0,
|
|
179
|
-
from: pos,
|
|
180
|
-
to: pos + node.nodeSize,
|
|
181
|
-
revisionId: entry.info.id
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
146
|
}
|
|
185
147
|
if (node.type.name === "table") {
|
|
186
|
-
const tblPrChange = node.attrs["tblPrChange"];
|
|
187
|
-
if (Array.isArray(tblPrChange)) for (const entry of tblPrChange) {
|
|
188
|
-
if (!entry?.info || typeof entry.info.id !== "number") continue;
|
|
189
|
-
raw.push({
|
|
190
|
-
type: "tablePropertiesChanged",
|
|
191
|
-
text: "",
|
|
192
|
-
author: entry.info.author || "",
|
|
193
|
-
date: entry.info.date ?? void 0,
|
|
194
|
-
from: pos,
|
|
195
|
-
to: pos + node.nodeSize,
|
|
196
|
-
revisionId: entry.info.id
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
148
|
const firstRow = node.firstChild;
|
|
200
149
|
const firstIns = firstRow?.attrs["trIns"];
|
|
201
150
|
const firstDel = firstRow?.attrs["trDel"];
|
|
@@ -239,6 +188,19 @@ function extractTrackedChanges(state) {
|
|
|
239
188
|
}
|
|
240
189
|
}
|
|
241
190
|
}
|
|
191
|
+
for (const site of nodePropertyRevisionSites(node.type.name)) for (const record of propertyRevisionRecords(node, site)) {
|
|
192
|
+
const metadata = propertyRevisionMetadata(record.info);
|
|
193
|
+
if (!metadata) continue;
|
|
194
|
+
raw.push({
|
|
195
|
+
type: site.carrier,
|
|
196
|
+
text: node.textContent || "",
|
|
197
|
+
author: metadata.author,
|
|
198
|
+
date: metadata.date ?? void 0,
|
|
199
|
+
from: pos,
|
|
200
|
+
to: pos + node.nodeSize,
|
|
201
|
+
revisionId: metadata.id
|
|
202
|
+
});
|
|
203
|
+
}
|
|
242
204
|
if (!node.isInline) return;
|
|
243
205
|
let inlineText;
|
|
244
206
|
if (node.isText) inlineText = node.text || "";
|
|
@@ -293,39 +255,81 @@ function extractTrackedChanges(state) {
|
|
|
293
255
|
const rid = meta.revisions.values().next().value;
|
|
294
256
|
commentToRevision.set(cid, rid);
|
|
295
257
|
}
|
|
296
|
-
const
|
|
297
|
-
tableInserted:
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
rowDeleted:
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
258
|
+
const STRUCTURAL_COALESCING = {
|
|
259
|
+
tableInserted: {
|
|
260
|
+
type: "coalesce",
|
|
261
|
+
family: "insertion",
|
|
262
|
+
priority: 6
|
|
263
|
+
},
|
|
264
|
+
tableDeleted: {
|
|
265
|
+
type: "coalesce",
|
|
266
|
+
family: "deletion",
|
|
267
|
+
priority: 6
|
|
268
|
+
},
|
|
269
|
+
tablePropertiesChanged: {
|
|
270
|
+
type: "coalesce",
|
|
271
|
+
family: "properties",
|
|
272
|
+
priority: 5
|
|
273
|
+
},
|
|
274
|
+
tablePropertyExceptionsChanged: { type: "separate" },
|
|
275
|
+
rowInserted: {
|
|
276
|
+
type: "coalesce",
|
|
277
|
+
family: "insertion",
|
|
278
|
+
priority: 4
|
|
279
|
+
},
|
|
280
|
+
rowDeleted: {
|
|
281
|
+
type: "coalesce",
|
|
282
|
+
family: "deletion",
|
|
283
|
+
priority: 4
|
|
284
|
+
},
|
|
285
|
+
rowPropertiesChanged: {
|
|
286
|
+
type: "coalesce",
|
|
287
|
+
family: "properties",
|
|
288
|
+
priority: 4
|
|
289
|
+
},
|
|
290
|
+
cellInserted: {
|
|
291
|
+
type: "coalesce",
|
|
292
|
+
family: "insertion",
|
|
293
|
+
priority: 3
|
|
294
|
+
},
|
|
295
|
+
cellDeleted: {
|
|
296
|
+
type: "coalesce",
|
|
297
|
+
family: "deletion",
|
|
298
|
+
priority: 3
|
|
299
|
+
},
|
|
300
|
+
cellMerged: {
|
|
301
|
+
type: "coalesce",
|
|
302
|
+
family: "merge",
|
|
303
|
+
priority: 3
|
|
304
|
+
},
|
|
305
|
+
cellPropertiesChanged: {
|
|
306
|
+
type: "coalesce",
|
|
307
|
+
family: "properties",
|
|
308
|
+
priority: 3
|
|
309
|
+
},
|
|
310
|
+
paragraphMarkInsertion: {
|
|
311
|
+
type: "coalesce",
|
|
312
|
+
family: "insertion",
|
|
313
|
+
priority: 2
|
|
314
|
+
},
|
|
315
|
+
paragraphMarkDeletion: {
|
|
316
|
+
type: "coalesce",
|
|
317
|
+
family: "deletion",
|
|
318
|
+
priority: 2
|
|
319
|
+
},
|
|
320
|
+
paragraphPropertiesChanged: {
|
|
321
|
+
type: "coalesce",
|
|
322
|
+
family: "properties",
|
|
323
|
+
priority: 2
|
|
324
|
+
},
|
|
325
|
+
sectionPropertiesChanged: { type: "separate" },
|
|
326
|
+
runPropertiesChanged: {
|
|
327
|
+
type: "coalesce",
|
|
328
|
+
family: "properties",
|
|
329
|
+
priority: 1
|
|
330
|
+
}
|
|
327
331
|
};
|
|
328
|
-
const isStructuralType = (
|
|
332
|
+
const isStructuralType = (type) => type !== "insertion" && type !== "deletion" && type !== "replacement";
|
|
329
333
|
const slotByKey = /* @__PURE__ */ new Map();
|
|
330
334
|
const ordered = [];
|
|
331
335
|
const mergeIds = (survivor, dropped) => {
|
|
@@ -340,18 +344,31 @@ function extractTrackedChanges(state) {
|
|
|
340
344
|
ordered.push(entry);
|
|
341
345
|
continue;
|
|
342
346
|
}
|
|
343
|
-
const
|
|
347
|
+
const policy = STRUCTURAL_COALESCING[entry.type];
|
|
348
|
+
if (policy.type === "separate") {
|
|
349
|
+
ordered.push(entry);
|
|
350
|
+
continue;
|
|
351
|
+
}
|
|
352
|
+
const key = `${policy.family}|${entry.author}|${entry.date ?? ""}`;
|
|
344
353
|
const slot = slotByKey.get(key);
|
|
345
354
|
if (slot === void 0) {
|
|
346
|
-
slotByKey.set(key,
|
|
355
|
+
slotByKey.set(key, {
|
|
356
|
+
index: ordered.push(entry) - 1,
|
|
357
|
+
priority: policy.priority
|
|
358
|
+
});
|
|
347
359
|
continue;
|
|
348
360
|
}
|
|
349
|
-
const existing = ordered[slot];
|
|
350
|
-
if (
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
361
|
+
const existing = ordered[slot.index];
|
|
362
|
+
if (policy.priority > slot.priority) {
|
|
363
|
+
ordered[slot.index] = {
|
|
364
|
+
...entry,
|
|
365
|
+
coalescedRevisionIds: mergeIds(entry, existing)
|
|
366
|
+
};
|
|
367
|
+
slotByKey.set(key, {
|
|
368
|
+
index: slot.index,
|
|
369
|
+
priority: policy.priority
|
|
370
|
+
});
|
|
371
|
+
} else ordered[slot.index] = {
|
|
355
372
|
...existing,
|
|
356
373
|
coalescedRevisionIds: mergeIds(existing, entry)
|
|
357
374
|
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { readBlockSdtAttrs, readCharacterSpacingMarkAttrs, readCharacterStyleMarkAttrs, readCommentMarkAttrs, readEmphasisMarkAttrs, readFieldAttrs, readFontFamilyMarkAttrs, readFontSizeMarkAttrs, readFootnoteRefMarkAttrs, readHardBreakAttrs, readHighlightMarkAttrs, readHyperlinkMarkAttrs, readImageAttrs, readInlineWrapperMarkAttrs, readLanguageMarkAttrs, readMathAttrs, readPageBreakRunAttrs,
|
|
1
|
+
import { readBlockSdtAttrs, readCharacterSpacingMarkAttrs, readCharacterStyleMarkAttrs, readCommentMarkAttrs, readEmphasisMarkAttrs, readFieldAttrs, readFontFamilyMarkAttrs, readFontSizeMarkAttrs, readFootnoteRefMarkAttrs, readHardBreakAttrs, readHighlightMarkAttrs, readHyperlinkMarkAttrs, readImageAttrs, readInlineWrapperMarkAttrs, readLanguageMarkAttrs, readMathAttrs, readPageBreakRunAttrs, readParagraphAttrs, readPreservedBlockAttrs, readPreservedXmlAttrs, readRunFormattingOverrideMarkAttrs, readRunIdentityMarkAttrs, readRunPropertyChangeMarkAttrs, readRunShadingMarkAttrs, readSdtAttrs, readShapeAttrs, readStrikeMarkAttrs, readSymbolAttrs, readTabAttrs, readTableAttrs, readTableCellAttrs, readTableRowAttrs, readTextBoxAttrs, readTextColorMarkAttrs, readTextEffectMarkAttrs, readTrackedChangeMarkAttrs, readUnderlineMarkAttrs } from "./attrs/index.js";
|
|
2
2
|
import { readBookmarkBoundaryAttrs } from "./bookmarkBoundaryAttrs.js";
|
|
3
3
|
import { readCommentReferenceAttrs } from "./commentReferenceAttrs.js";
|
|
4
|
+
import { INLINE_WRAPPER_MARK_NAME } from "./extensions/marks/InlineWrapperExtension.js";
|
|
5
|
+
import { readMoveRangeBoundaryAttrs } from "./moveRangeBoundaryAttrs.js";
|
|
6
|
+
import { readRangeAnchorAttrs } from "./rangeAnchorAttrs.js";
|
|
4
7
|
import { readTextBoxAnchorAttrs } from "./textBoxAnchorAttrs.js";
|
|
5
8
|
//#region src/prosemirror/validation.ts
|
|
6
9
|
var ProseMirrorDocumentValidationError = class extends Error {
|
|
@@ -84,7 +87,7 @@ const validateBookmarkBoundaryStructure = (doc, issues) => {
|
|
|
84
87
|
path: bookmarkPath
|
|
85
88
|
});
|
|
86
89
|
}
|
|
87
|
-
if (node.type.name === "bookmarkBoundary") {
|
|
90
|
+
if (node.type.name === "bookmarkBoundary" || node.type.name === "blockBookmarkBoundary") {
|
|
88
91
|
const result = readBookmarkBoundaryAttrs(node);
|
|
89
92
|
if (result.ok) {
|
|
90
93
|
const attrs = result.value;
|
|
@@ -141,11 +144,18 @@ const validateNodeAttrs = (node, path, issues) => {
|
|
|
141
144
|
case "pageBreak":
|
|
142
145
|
case "renderedPageBreak": return;
|
|
143
146
|
case "bookmarkBoundary":
|
|
147
|
+
case "blockBookmarkBoundary":
|
|
144
148
|
appendAttrIssues(path, readBookmarkBoundaryAttrs(node), issues);
|
|
145
149
|
return;
|
|
146
150
|
case "commentReference":
|
|
147
151
|
appendAttrIssues(path, readCommentReferenceAttrs(node), issues);
|
|
148
152
|
return;
|
|
153
|
+
case "rangeAnchor":
|
|
154
|
+
appendAttrIssues(path, readRangeAnchorAttrs(node), issues);
|
|
155
|
+
return;
|
|
156
|
+
case "moveRangeBoundary":
|
|
157
|
+
appendAttrIssues(path, readMoveRangeBoundaryAttrs(node), issues);
|
|
158
|
+
return;
|
|
149
159
|
case "tab":
|
|
150
160
|
appendAttrIssues(path, readTabAttrs(node), issues);
|
|
151
161
|
return;
|
|
@@ -195,6 +205,7 @@ const validateNodeAttrs = (node, path, issues) => {
|
|
|
195
205
|
const hasStructuredHyperlink = node.content.content.some((child) => child.marks.some((mark) => mark.type.name === "hyperlink"));
|
|
196
206
|
const hasPageBreakCarrier = node.content.content.some((child) => child.type.name === "pageBreakRun");
|
|
197
207
|
const hasPreservedCapture = node.content.content.some((child) => child.type.name === "preservedXml");
|
|
208
|
+
const hasInlineWrapper = node.content.content.some((child) => child.marks.some((mark) => mark.type.name === INLINE_WRAPPER_MARK_NAME));
|
|
198
209
|
if (fieldAttrs.value.fieldKind === "complex" && !hasPageBreakCarrier) issues.push({
|
|
199
210
|
path: `${path}.content`,
|
|
200
211
|
message: "Complex fields cannot contain structured result children."
|
|
@@ -203,9 +214,9 @@ const validateNodeAttrs = (node, path, issues) => {
|
|
|
203
214
|
path: `${path}.content`,
|
|
204
215
|
message: "Complex field results cannot contain hyperlink content."
|
|
205
216
|
});
|
|
206
|
-
else if (!hasStructuredHyperlink && !hasPageBreakCarrier && !hasPreservedCapture) issues.push({
|
|
217
|
+
else if (!hasStructuredHyperlink && !hasPageBreakCarrier && !hasPreservedCapture && !hasInlineWrapper) issues.push({
|
|
207
218
|
path: `${path}.content`,
|
|
208
|
-
message: "Structured simple fields require hyperlink content."
|
|
219
|
+
message: "Structured simple fields require hyperlink, page-break, preserved or wrapper content."
|
|
209
220
|
});
|
|
210
221
|
node.forEach((child, _offset, index) => {
|
|
211
222
|
const childPath = `${path}.content[${index}]`;
|
|
@@ -316,8 +327,8 @@ const validateMarks = (marks, path, issues) => {
|
|
|
316
327
|
case "runPropertyChange":
|
|
317
328
|
appendAttrIssues(markPath, readRunPropertyChangeMarkAttrs(mark), issues);
|
|
318
329
|
continue;
|
|
319
|
-
case "
|
|
320
|
-
appendAttrIssues(markPath,
|
|
330
|
+
case "runIdentity":
|
|
331
|
+
appendAttrIssues(markPath, readRunIdentityMarkAttrs(mark), issues);
|
|
321
332
|
continue;
|
|
322
333
|
case "runFormattingOverride":
|
|
323
334
|
appendAttrIssues(markPath, readRunFormattingOverrideMarkAttrs(mark), issues);
|
|
@@ -8,14 +8,14 @@ import * as Y from "yjs";
|
|
|
8
8
|
*/
|
|
9
9
|
type AttrSchemaMigrationStep = (fragment: Y.XmlFragment) => number;
|
|
10
10
|
/** Every attr-schema version this build reads, oldest first, with no gaps. */
|
|
11
|
-
declare const FOLIO_YJS_ATTR_SCHEMA_VERSIONS: readonly [0, 1, 2, 3];
|
|
11
|
+
declare const FOLIO_YJS_ATTR_SCHEMA_VERSIONS: readonly [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
12
12
|
/** An attr-schema version this build can read. */
|
|
13
13
|
type FolioYjsAttrSchemaVersion = (typeof FOLIO_YJS_ATTR_SCHEMA_VERSIONS)[number];
|
|
14
14
|
/**
|
|
15
15
|
* The attr-schema version this build writes. Derived against the migration map
|
|
16
16
|
* so the constant and the map cannot disagree.
|
|
17
17
|
*/
|
|
18
|
-
declare const FOLIO_YJS_ATTR_SCHEMA_VERSION =
|
|
18
|
+
declare const FOLIO_YJS_ATTR_SCHEMA_VERSION = 11;
|
|
19
19
|
/**
|
|
20
20
|
* The steps that carry a snapshot written under `fromVersion` up to
|
|
21
21
|
* {@link FOLIO_YJS_ATTR_SCHEMA_VERSION}, in order. Empty when the snapshot is
|