@stll/folio-core 0.52.0 → 0.54.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/README.md +23 -0
- package/dist/ai-edits/apply.d.ts +26 -1
- package/dist/ai-edits/apply.js +1779 -141
- package/dist/ai-edits/batch-claims.d.ts +145 -0
- package/dist/ai-edits/batch-claims.js +275 -0
- package/dist/ai-edits/blockRange.js +9 -3
- package/dist/ai-edits/character-boundaries.d.ts +43 -0
- package/dist/ai-edits/character-boundaries.js +95 -0
- package/dist/ai-edits/clean-text.d.ts +33 -3
- package/dist/ai-edits/clean-text.js +52 -6
- package/dist/ai-edits/comment-lifecycle.d.ts +18 -0
- package/dist/ai-edits/comment-lifecycle.js +52 -0
- package/dist/ai-edits/headless.d.ts +91 -7
- package/dist/ai-edits/headless.js +520 -51
- package/dist/ai-edits/index.d.ts +2 -1
- package/dist/ai-edits/index.js +2 -1
- package/dist/ai-edits/minimal-replacement.d.ts +21 -6
- package/dist/ai-edits/minimal-replacement.js +134 -15
- package/dist/ai-edits/newListNumbering.d.ts +23 -0
- package/dist/ai-edits/newListNumbering.js +94 -0
- package/dist/ai-edits/note-references.d.ts +96 -0
- package/dist/ai-edits/note-references.js +139 -0
- package/dist/ai-edits/pending-suggestions.d.ts +79 -0
- package/dist/ai-edits/pending-suggestions.js +306 -0
- package/dist/ai-edits/read.d.ts +6 -4
- package/dist/ai-edits/read.js +113 -50
- package/dist/ai-edits/result-validation.d.ts +29 -0
- package/dist/ai-edits/result-validation.js +164 -0
- package/dist/ai-edits/revisionStretches.d.ts +17 -0
- package/dist/ai-edits/revisionStretches.js +80 -0
- package/dist/ai-edits/snapshot.d.ts +36 -3
- package/dist/ai-edits/snapshot.js +180 -25
- package/dist/ai-edits/table-cell-mutations.d.ts +4 -2
- package/dist/ai-edits/table-cell-mutations.js +6 -2
- package/dist/ai-edits/table-geometry.d.ts +1 -1
- package/dist/ai-edits/table-row-column-mutations.d.ts +44 -17
- package/dist/ai-edits/table-row-column-mutations.js +86 -34
- package/dist/ai-edits/types.d.ts +155 -16
- package/dist/compare/compare.d.ts +1 -1
- package/dist/compare/compare.js +65 -16
- package/dist/compare/content-alignment.d.ts +5 -1
- package/dist/compare/content-alignment.js +52 -34
- package/dist/compare/content-types.d.ts +7 -0
- package/dist/compare/content.d.ts +4 -1
- package/dist/compare/content.js +6 -1
- package/dist/compare/formatting.js +2 -1
- package/dist/compare/inline-atoms.d.ts +21 -4
- package/dist/compare/inline-atoms.js +138 -16
- package/dist/compare/inline-provenance.js +1 -1
- package/dist/compare/plan.js +10 -5
- package/dist/compare/scenario.js +14 -3
- package/dist/compare/section-boundary-properties.js +1 -1
- package/dist/compare/types.d.ts +4 -2
- package/dist/compare/types.js +2 -1
- package/dist/compare/verification.d.ts +1 -1
- package/dist/compare/verification.js +15 -3
- package/dist/controller/committedLayoutDiff.d.ts +25 -0
- package/dist/controller/committedLayoutDiff.js +71 -0
- package/dist/controller/contentControlWidgetController.d.ts +1 -1
- package/dist/controller/folioEditor.d.ts +1 -1
- package/dist/controller/fontReadiness.d.ts +70 -3
- package/dist/controller/fontReadiness.js +100 -10
- package/dist/controller/headerFooterEditorManager.js +6 -1
- package/dist/controller/layoutPipeline.d.ts +12 -10
- package/dist/controller/layoutPipeline.js +65 -11
- package/dist/controller/layoutRunOptions.d.ts +24 -0
- package/dist/controller/layoutRunOptions.js +17 -0
- package/dist/controller/layoutScheduler.d.ts +19 -14
- package/dist/controller/layoutScheduler.js +15 -12
- package/dist/controller/layoutSession.d.ts +26 -2
- package/dist/controller/layoutSession.js +1 -1
- package/dist/controller/noteEditorManager.js +8 -3
- package/dist/document-operations.d.ts +11 -2
- package/dist/document-operations.js +230 -21
- package/dist/docx/altChunk.d.ts +8 -0
- package/dist/docx/altChunk.js +17 -0
- package/dist/docx/archiveInflation.d.ts +127 -0
- package/dist/docx/archiveInflation.js +181 -0
- package/dist/docx/attributeRemainder.d.ts +1 -1
- package/dist/docx/blockContentParser.d.ts +64 -1
- package/dist/docx/blockContentParser.js +17 -4
- package/dist/docx/blockCustomXmlShell.d.ts +7 -0
- package/dist/docx/blockCustomXmlShell.js +14 -0
- package/dist/docx/blockPlainText.js +7 -0
- package/dist/docx/commentAnchorIndex.js +1 -1
- package/dist/docx/commentRangeIntegrity.js +8 -3
- package/dist/docx/commentReferenceNormalization.js +1 -1
- package/dist/docx/commentReplyMarkers.js +20 -1
- package/dist/docx/compatibility.d.ts +1 -1
- package/dist/docx/compatibility.js +34 -13
- package/dist/docx/containerChildren.gen.d.ts +1 -1
- package/dist/docx/containerChildren.gen.js +1 -0
- package/dist/docx/documentParser.js +12 -12
- package/dist/docx/drawingIdNormalization.d.ts +3 -1
- package/dist/docx/drawingIdNormalization.js +6 -1
- package/dist/docx/ensureParaIds.js +119 -97
- package/dist/docx/footnoteParser.js +8 -4
- package/dist/docx/headerFooterParser.js +3 -3
- package/dist/docx/headerFooterReferenceNormalization.d.ts +20 -1
- package/dist/docx/headerFooterReferenceNormalization.js +52 -27
- package/dist/docx/hyperlinkParser.d.ts +1 -1
- package/dist/docx/index.d.ts +1 -1
- package/dist/docx/listNumberingInstances.d.ts +59 -0
- package/dist/docx/listNumberingInstances.js +249 -0
- package/dist/docx/metadataPrivacy.js +24 -1
- package/dist/docx/normalizeBaseDirection.js +2 -1
- package/dist/docx/noteReferenceMark.d.ts +15 -0
- package/dist/docx/noteReferenceMark.js +48 -0
- package/dist/docx/opaqueCarrier.d.ts +7 -0
- package/dist/docx/opaqueCarrier.js +38 -0
- package/dist/docx/packageParts.js +4 -1
- package/dist/docx/paragraphParser.js +96 -27
- package/dist/docx/paragraphPropertySource.d.ts +4 -2
- package/dist/docx/paragraphPropertySource.js +10 -2
- package/dist/docx/paragraphTraversal.js +1 -0
- package/dist/docx/parseWarningMessage.js +4 -1
- package/dist/docx/parser.js +175 -22
- package/dist/docx/rezip.js +31 -7
- package/dist/docx/sdtProperties.js +1 -1
- package/dist/docx/sdtPropertiesPatch.js +3 -0
- package/dist/docx/selectiveSave.js +16 -9
- package/dist/docx/selectiveXmlPatch.d.ts +3 -1
- package/dist/docx/selectiveXmlPatch.js +186 -39
- package/dist/docx/serializer/blockCustomXmlSerializer.d.ts +5 -0
- package/dist/docx/serializer/blockCustomXmlSerializer.js +4 -0
- package/dist/docx/serializer/documentSerializer.js +2 -0
- package/dist/docx/serializer/headerFooterSerializer.js +2 -0
- package/dist/docx/serializer/noteSerializer.js +3 -1
- package/dist/docx/serializer/paragraphSerializer.js +33 -9
- package/dist/docx/serializer/tableSerializer.js +25 -38
- package/dist/docx/server/boundedArchive.d.ts +8 -13
- package/dist/docx/server/boundedArchive.js +70 -59
- package/dist/docx/server/createBilingualDocument.js +3 -3
- package/dist/docx/server/extractDocxText.d.ts +8 -2
- package/dist/docx/server/extractDocxText.js +2 -2
- package/dist/docx/server/validateDocxConformance.d.ts +1 -1
- package/dist/docx/server/validateDocxConformance.js +1 -0
- package/dist/docx/tableParser.d.ts +157 -1
- package/dist/docx/tableParser.js +89 -10
- package/dist/docx/textBoxParser.js +1 -1
- package/dist/docx/unzip.d.ts +20 -2
- package/dist/docx/unzip.js +136 -25
- package/dist/docx/wordprocessingPrefixes.d.ts +78 -0
- package/dist/docx/wordprocessingPrefixes.js +286 -0
- package/dist/fonts/embeddedFonts.js +1 -1
- package/dist/i18n/messages/catalogs.gen.d.ts +170 -34
- package/dist/i18n/messages/catalogs.gen.js +187 -51
- package/dist/i18n/messages/messages.gen.d.ts +10 -2
- package/dist/internal/compare/inline-presentation.d.ts +2 -1
- package/dist/internal/compare/inline-presentation.js +11 -10
- package/dist/internal/headlessRevisionResolutionGuard.d.ts +2 -8
- package/dist/internal/headlessRevisionResolutionGuard.js +2 -11
- package/dist/internal/indexedPositionMap.d.ts +11 -0
- package/dist/internal/indexedPositionMap.js +42 -0
- package/dist/internal/pageBreakRunSourceDescendantIndex.js +2 -1
- package/dist/internal/revisionResolutionEdits.d.ts +13 -0
- package/dist/internal/revisionResolutionEdits.js +19 -0
- package/dist/internal/revisionResolutionInline.d.ts +24 -0
- package/dist/internal/{headlessRevisionResolution.js → revisionResolutionInline.js} +61 -43
- package/dist/internal/revisionResolutionStep.d.ts +34 -0
- package/dist/internal/revisionResolutionStep.js +282 -0
- package/dist/internal/revisionResolutionTracking.d.ts +11 -0
- package/dist/internal/revisionResolutionTracking.js +124 -0
- package/dist/internal/wholeStoryRevisionResolution.d.ts +56 -0
- package/dist/internal/wholeStoryRevisionResolution.js +600 -0
- package/dist/layout-bridge/convert/markupViewFlow.d.ts +20 -0
- package/dist/layout-bridge/convert/markupViewFlow.js +123 -0
- package/dist/layout-bridge/convert/tableConversion.js +1 -1
- package/dist/layout-bridge/convert/toFlowBlocks.js +10 -1
- package/dist/layout-engine/layoutInstrumentation.d.ts +9 -1
- package/dist/layout-engine/layoutInstrumentation.js +4 -1
- package/dist/layout-engine/measure/cache.d.ts +18 -1
- package/dist/layout-engine/measure/cache.js +31 -1
- package/dist/layout-engine/measure/font-metrics.worker.js +3 -7
- package/dist/layout-engine/measure/measureContainer.js +7 -47
- package/dist/layout-engine/measure/measureHelpers.d.ts +6 -1
- package/dist/layout-engine/measure/measureHelpers.js +22 -2
- package/dist/layout-engine/measure/measureParagraph.js +2 -2
- package/dist/layout-engine/measure/measureWorker.js +2 -3
- package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +6 -7
- package/dist/layout-engine/measure/measureWorkerProtocol.js +1 -2
- package/dist/layout-engine/measure/paragraphMeasureShared.d.ts +12 -1
- package/dist/layout-engine/measure/paragraphMeasureShared.js +14 -1
- package/dist/layout-engine/types.d.ts +6 -0
- package/dist/layout-painter/renderPage.js +1 -0
- package/dist/layout-painter/renderParagraph.js +1 -1
- package/dist/managers/ContextMenuManager.js +5 -2
- package/dist/managers/types.d.ts +3 -0
- package/dist/markdown/escape.d.ts +2 -2
- package/dist/markdown/escape.js +4 -5
- package/dist/markdown/fromMarkdown.js +2 -1
- package/dist/markdown/internals.d.ts +11 -1
- package/dist/markdown/internals.js +24 -3
- package/dist/markdown/renderBlock.js +121 -25
- package/dist/markdown/renderParagraph.d.ts +13 -1
- package/dist/markdown/renderParagraph.js +85 -38
- package/dist/markdown/renderRuns.d.ts +10 -1
- package/dist/markdown/renderRuns.js +323 -69
- package/dist/markdown/renderTable.js +24 -12
- package/dist/markdown/trailers.js +2 -2
- package/dist/markdown/types.d.ts +29 -7
- package/dist/paged-layout/incrementalMeasure.d.ts +1 -2
- package/dist/paged-layout/incrementalMeasure.js +1 -9
- package/dist/paged-layout/transactionDirtyRange.d.ts +1 -3
- package/dist/paged-layout/transactionDirtyRange.js +29 -41
- package/dist/panel-layout.d.ts +83 -0
- package/dist/panel-layout.js +96 -0
- package/dist/prosemirror/anchoredTextBoxes.d.ts +37 -0
- package/dist/prosemirror/anchoredTextBoxes.js +156 -0
- package/dist/prosemirror/attrs/index.d.ts +6 -2
- package/dist/prosemirror/attrs/index.js +172 -1
- package/dist/prosemirror/clearRunColor.d.ts +6 -0
- package/dist/prosemirror/clearRunColor.js +46 -0
- package/dist/prosemirror/commands/comments.d.ts +7 -8
- package/dist/prosemirror/commands/comments.js +281 -212
- package/dist/prosemirror/commands/contentControls.d.ts +1 -1
- package/dist/prosemirror/commands/formatPainter.d.ts +1 -1
- package/dist/prosemirror/commands/formatPainter.js +1 -1
- package/dist/prosemirror/commands/formatting.d.ts +1 -1
- package/dist/prosemirror/commands/hyperlink.js +2 -1
- package/dist/prosemirror/commands/index.d.ts +2 -2
- package/dist/prosemirror/commands/index.js +2 -2
- package/dist/prosemirror/commands/paragraph.d.ts +7 -1
- package/dist/prosemirror/commands/paragraph.js +9 -1
- package/dist/prosemirror/commands/paragraphBookmarkJoin.d.ts +13 -0
- package/dist/prosemirror/commands/paragraphBookmarkJoin.js +22 -0
- package/dist/prosemirror/commands/pastePlainText.d.ts +1 -1
- package/dist/prosemirror/commands/propertyChangeScope.d.ts +3 -2
- package/dist/prosemirror/commands/propertyChangeScope.js +24 -3
- package/dist/prosemirror/commands/resolveAllTableChanges.d.ts +40 -0
- package/dist/prosemirror/commands/resolveAllTableChanges.js +620 -0
- package/dist/prosemirror/commands/resolveNodePropertyChangeAttrs.d.ts +15 -0
- package/dist/prosemirror/commands/resolveNodePropertyChangeAttrs.js +46 -0
- package/dist/prosemirror/commands/resolveParagraphProperties.d.ts +16 -0
- package/dist/prosemirror/commands/resolveParagraphProperties.js +73 -0
- package/dist/prosemirror/commands/sectionBreak.js +2 -1
- package/dist/prosemirror/commands/tableCellMergeResolution.d.ts +15 -2
- package/dist/prosemirror/commands/tableCellMergeResolution.js +23 -7
- package/dist/prosemirror/containerFinalParagraph.d.ts +11 -5
- package/dist/prosemirror/containerFinalParagraph.js +7 -6
- package/dist/prosemirror/contentControlRevisions.d.ts +1 -1
- package/dist/prosemirror/conversion/fromProseDoc.d.ts +2 -13
- package/dist/prosemirror/conversion/fromProseDoc.js +177 -605
- package/dist/prosemirror/conversion/toProseDoc.d.ts +4 -11
- package/dist/prosemirror/conversion/toProseDoc.js +70 -154
- package/dist/prosemirror/documentSchema.d.ts +8 -0
- package/dist/prosemirror/documentSchema.js +18 -0
- package/dist/prosemirror/emptyFieldResultRuns.d.ts +18 -0
- package/dist/prosemirror/emptyFieldResultRuns.js +33 -0
- package/dist/prosemirror/extensions/ExtensionManager.d.ts +1 -1
- package/dist/prosemirror/extensions/ExtensionManager.js +3 -1
- package/dist/prosemirror/extensions/StarterKit.js +5 -1
- package/dist/prosemirror/extensions/core/DocExtension.js +1 -1
- package/dist/prosemirror/extensions/core/ParagraphExtension.js +116 -63
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +4 -1
- package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +24 -3
- package/dist/prosemirror/extensions/features/JoinedRunStyleExtension.d.ts +20 -0
- package/dist/prosemirror/extensions/features/JoinedRunStyleExtension.js +43 -0
- package/dist/prosemirror/extensions/features/ListExtension.js +167 -128
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +19 -2
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +33 -20
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +31 -2
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +270 -99
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +3 -2
- package/dist/prosemirror/extensions/features/pasteCleanup.js +2 -1
- package/dist/prosemirror/extensions/features/pastedHeadingStyles.js +1 -1
- package/dist/prosemirror/extensions/features/pastedHtmlLists.d.ts +12 -0
- package/dist/prosemirror/extensions/features/pastedHtmlLists.js +124 -0
- package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +33 -11
- package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +8 -4
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.d.ts +21 -18
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.js +37 -17
- package/dist/prosemirror/extensions/marks/StrikeExtension.js +2 -2
- package/dist/prosemirror/extensions/marks/SubscriptExtension.js +2 -2
- package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +2 -2
- package/dist/prosemirror/extensions/marks/TextColorExtension.js +4 -3
- package/dist/prosemirror/extensions/marks/markUtils.d.ts +15 -8
- package/dist/prosemirror/extensions/marks/markUtils.js +25 -10
- package/dist/prosemirror/extensions/marks/noteReferenceDeletion.d.ts +12 -0
- package/dist/prosemirror/extensions/marks/noteReferenceDeletion.js +46 -0
- package/dist/prosemirror/extensions/nodes/BlockCustomXmlExtension.d.ts +6 -0
- package/dist/prosemirror/extensions/nodes/BlockCustomXmlExtension.js +52 -0
- package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.js +2 -2
- package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +3 -3
- package/dist/prosemirror/extensions/nodes/FieldExtension.js +50 -15
- package/dist/prosemirror/extensions/nodes/HardBreakExtension.js +5 -3
- package/dist/prosemirror/extensions/nodes/PreservedBlockExtension.js +4 -1
- package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +1 -1
- package/dist/prosemirror/extensions/nodes/TableExtension.js +121 -226
- package/dist/prosemirror/extensions/types.d.ts +11 -1
- package/dist/prosemirror/findReplaceSelection.js +1 -1
- package/dist/prosemirror/hyperlinkRemoval.d.ts +9 -0
- package/dist/prosemirror/hyperlinkRemoval.js +129 -0
- package/dist/prosemirror/index.d.ts +5 -3
- package/dist/prosemirror/index.js +5 -3
- package/dist/prosemirror/indexedNodeLookup.d.ts +17 -0
- package/dist/prosemirror/indexedNodeLookup.js +103 -0
- package/dist/prosemirror/listAutoformatMarkers.d.ts +19 -0
- package/dist/prosemirror/listAutoformatMarkers.js +98 -0
- package/dist/prosemirror/listInstanceReferences.d.ts +12 -0
- package/dist/prosemirror/listInstanceReferences.js +72 -0
- package/dist/prosemirror/listLabels.d.ts +24 -0
- package/dist/prosemirror/listLabels.js +111 -0
- package/dist/prosemirror/listNumbering.d.ts +92 -0
- package/dist/prosemirror/listNumbering.js +330 -0
- package/dist/prosemirror/listRendering.d.ts +27 -0
- package/dist/prosemirror/listRendering.js +27 -0
- package/dist/prosemirror/listRenderingAttrs.d.ts +11 -2
- package/dist/prosemirror/listRenderingAttrs.js +8 -1
- package/dist/prosemirror/markupViewNotes.d.ts +8 -0
- package/dist/prosemirror/markupViewNotes.js +49 -0
- package/dist/prosemirror/markupViewProjection.d.ts +97 -0
- package/dist/prosemirror/markupViewProjection.js +88 -0
- package/dist/prosemirror/noteReferenceReview.d.ts +77 -0
- package/dist/prosemirror/noteReferenceReview.js +332 -0
- package/dist/prosemirror/numberingAttr.d.ts +9 -1
- package/dist/prosemirror/numberingAttr.js +9 -1
- package/dist/prosemirror/outlineLevelAttr.js +1 -1
- package/dist/prosemirror/paragraphIndentation.d.ts +10 -1
- package/dist/prosemirror/paragraphIndentation.js +32 -7
- package/dist/prosemirror/paragraphMarkJoin.d.ts +21 -0
- package/dist/prosemirror/paragraphMarkJoin.js +26 -0
- package/dist/prosemirror/paragraphPropertyCarry.d.ts +64 -0
- package/dist/prosemirror/paragraphPropertyCarry.js +158 -0
- package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +1 -1
- package/dist/prosemirror/plugins/documentNumbering.d.ts +27 -1
- package/dist/prosemirror/plugins/documentNumbering.js +97 -11
- package/dist/prosemirror/plugins/documentStyleState.d.ts +26 -0
- package/dist/prosemirror/plugins/documentStyleState.js +32 -0
- package/dist/prosemirror/plugins/documentStyles.d.ts +3 -13
- package/dist/prosemirror/plugins/documentStyles.js +67 -17
- package/dist/prosemirror/plugins/index.d.ts +2 -1
- package/dist/prosemirror/plugins/index.js +2 -1
- package/dist/prosemirror/plugins/paragraphStyleResolution.d.ts +15 -0
- package/dist/prosemirror/plugins/paragraphStyleResolution.js +230 -0
- package/dist/prosemirror/plugins/suggestionMode.d.ts +27 -3
- package/dist/prosemirror/plugins/suggestionMode.js +490 -63
- package/dist/prosemirror/plugins/templateDirectives.d.ts +1 -1
- package/dist/prosemirror/plugins/transactionInvariants.d.ts +32 -0
- package/dist/prosemirror/plugins/transactionInvariants.js +86 -0
- package/dist/prosemirror/positionSweep.d.ts +24 -0
- package/dist/prosemirror/positionSweep.js +222 -0
- package/dist/prosemirror/rebaseParagraphRunFormatting.d.ts +23 -3
- package/dist/prosemirror/rebaseParagraphRunFormatting.js +39 -13
- package/dist/prosemirror/rebaseParagraphRuns.d.ts +36 -0
- package/dist/prosemirror/rebaseParagraphRuns.js +99 -0
- package/dist/prosemirror/rejoinRunCarriers.d.ts +1 -1
- package/dist/prosemirror/replacedAnnotations.d.ts +33 -1
- package/dist/prosemirror/replacedAnnotations.js +170 -1
- package/dist/prosemirror/runFormattingFromMarks.d.ts +18 -0
- package/dist/prosemirror/runFormattingFromMarks.js +567 -0
- package/dist/prosemirror/runFormattingInlineCarriers.d.ts +1 -1
- package/dist/prosemirror/runFormattingReconciliation.js +10 -9
- package/dist/prosemirror/schema/index.d.ts +2 -2
- package/dist/prosemirror/schema/index.js +3 -0
- package/dist/prosemirror/schema/nodes.d.ts +44 -11
- package/dist/prosemirror/sectionMarkEdits.d.ts +20 -0
- package/dist/prosemirror/sectionMarkEdits.js +59 -0
- package/dist/prosemirror/storyListNumbering.d.ts +17 -0
- package/dist/prosemirror/storyListNumbering.js +102 -0
- package/dist/prosemirror/styles/paragraphStyleCascade.d.ts +59 -0
- package/dist/prosemirror/styles/paragraphStyleCascade.js +145 -0
- package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +21 -2
- package/dist/prosemirror/styles/resolvedStyleAttrs.js +38 -1
- package/dist/prosemirror/styles/tableStyleRegions.d.ts +31 -0
- package/dist/prosemirror/styles/tableStyleRegions.js +55 -0
- package/dist/prosemirror/tableCellPaste.d.ts +74 -0
- package/dist/prosemirror/tableCellPaste.js +525 -0
- package/dist/prosemirror/tableGridMutation.d.ts +87 -2
- package/dist/prosemirror/tableGridMutation.js +255 -2
- package/dist/prosemirror/tableRunIn.d.ts +51 -0
- package/dist/prosemirror/tableRunIn.js +165 -0
- package/dist/prosemirror/textInput.js +11 -2
- package/dist/prosemirror/trackedRevisionPath.d.ts +17 -0
- package/dist/prosemirror/trackedRevisionPath.js +32 -0
- package/dist/prosemirror/validation.js +5 -1
- package/dist/redline.js +93 -9
- package/dist/render-dom/BodySelectionOverlay.d.ts +4 -1
- package/dist/render-dom/BodySelectionOverlay.js +3 -2
- package/dist/server.d.ts +2 -2
- package/dist/utils/findReplace.js +2 -2
- package/dist/utils/mergeDocumentContent.js +1 -1
- package/dist/utils/noteReferenceLabels.d.ts +36 -0
- package/dist/utils/noteReferenceLabels.js +32 -0
- package/dist/utils/replaceText.js +1 -1
- package/dist/version-comparison.d.ts +1 -0
- package/dist/version-comparison.js +1 -0
- package/package.json +6 -5
- package/dist/internal/headlessRevisionResolution.d.ts +0 -23
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { document_d_exports } from "../types/document.js";
|
|
2
2
|
import { NumberingMap } from "./numberingParser.js";
|
|
3
|
+
import { ParseContext } from "./parseContext.js";
|
|
3
4
|
import { XmlElement } from "./xmlParser.js";
|
|
5
|
+
import { OwnedElsewhere } from "./containerChildren.js";
|
|
4
6
|
import { PreviewLedger } from "./previewBudget.js";
|
|
5
7
|
import { StyleMap } from "./styleParser.js";
|
|
6
8
|
//#region src/docx/tableParser.d.ts
|
|
@@ -68,6 +70,8 @@ declare function parseTableProperties(tblPrElement: XmlElement | null): document
|
|
|
68
70
|
* {@link parseTablePropertyExceptionChanges}.
|
|
69
71
|
*/
|
|
70
72
|
declare function parseTablePropertyExceptions(tblPrExElement: XmlElement | null): document_d_exports.TablePropertyExceptionFormatting | undefined;
|
|
73
|
+
declare function isTableCellMergeRevisionValue(value: unknown): value is "continue" | "rest";
|
|
74
|
+
declare function isTableCellMergeRevisionContinuation(value: "continue" | "rest" | undefined): boolean;
|
|
71
75
|
/**
|
|
72
76
|
* Parse table row properties (w:trPr)
|
|
73
77
|
*
|
|
@@ -89,6 +93,20 @@ declare function parseConditionalFormatStyle(cnfElement: XmlElement | null): doc
|
|
|
89
93
|
* @returns Parsed cell formatting
|
|
90
94
|
*/
|
|
91
95
|
declare function parseTableCellProperties(tcPrElement: XmlElement | null): document_d_exports.TableCellFormatting | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Record a `CT_SdtRow` / `CT_SdtCell` on the rows or cells it wrapped.
|
|
98
|
+
*
|
|
99
|
+
* Both are transparent: what they hold is ordinary rows and cells, and the
|
|
100
|
+
* control adds properties and an end mark. folio keeps the children modelled
|
|
101
|
+
* and puts the control on each of them rather than modelling a wrapper
|
|
102
|
+
* between them, because a table's children are rows and a row's are cells,
|
|
103
|
+
* and neither has a node to spare for something that is not one.
|
|
104
|
+
*
|
|
105
|
+
* Outermost first, so a control inside a control — a bound row inside a
|
|
106
|
+
* repeating section — comes back nested the way it was written. The
|
|
107
|
+
* recursion reads the inner one first, so the outer prepends.
|
|
108
|
+
*/
|
|
109
|
+
type TablePreservedChild = NonNullable<document_d_exports.TablePreservedMarkup["children"]>[number];
|
|
92
110
|
/**
|
|
93
111
|
* Parse table cell content, including nested block controls.
|
|
94
112
|
*
|
|
@@ -105,6 +123,58 @@ type TableParseOptions = {
|
|
|
105
123
|
rootXmlns?: Record<string, string>;
|
|
106
124
|
/** The ledger of the package this table belongs to; a table read on its own has none. */
|
|
107
125
|
previews?: PreviewLedger;
|
|
126
|
+
context?: ParseContext | undefined;
|
|
127
|
+
};
|
|
128
|
+
/** What a table's rows, cells and blocks read: the ledger is settled where the walk enters. */
|
|
129
|
+
type TableScope = TableParseOptions & {
|
|
130
|
+
previews: PreviewLedger;
|
|
131
|
+
};
|
|
132
|
+
/** The parts and maps a table's content is read against. */
|
|
133
|
+
type TableParseResources = {
|
|
134
|
+
styles: StyleMap | null;
|
|
135
|
+
theme: document_d_exports.Theme | null;
|
|
136
|
+
numbering: NumberingMap | null;
|
|
137
|
+
rels: document_d_exports.RelationshipMap | null;
|
|
138
|
+
media: Map<string, document_d_exports.MediaFile> | null;
|
|
139
|
+
};
|
|
140
|
+
/** One cell's block sequence, or a block control's inside it, as it is read. */
|
|
141
|
+
type CellChildrenWalk = {
|
|
142
|
+
resources: TableParseResources;
|
|
143
|
+
options: TableScope;
|
|
144
|
+
modelled: document_d_exports.TableCellBlock[];
|
|
145
|
+
captured: document_d_exports.PreservedChild[];
|
|
146
|
+
};
|
|
147
|
+
declare const CELL_CONTENT_HANDLERS: {
|
|
148
|
+
readonly p: (child: XmlElement, { resources: { styles, theme, numbering, rels, media }, options, modelled }: CellChildrenWalk) => void;
|
|
149
|
+
readonly tbl: (child: XmlElement, { resources: { styles, theme, numbering, rels, media }, options, modelled }: CellChildrenWalk) => void;
|
|
150
|
+
readonly sdt: (child: XmlElement, { resources, options, modelled }: CellChildrenWalk) => "capture" | undefined;
|
|
151
|
+
readonly customXml: (child: XmlElement, { resources, options, modelled }: CellChildrenWalk) => void;
|
|
152
|
+
readonly bookmarkStart: (child: XmlElement, { modelled }: CellChildrenWalk) => void;
|
|
153
|
+
readonly bookmarkEnd: (child: XmlElement, { modelled }: CellChildrenWalk) => void;
|
|
154
|
+
readonly tcPr: OwnedElsewhere<"block-content", "tcPr">;
|
|
155
|
+
readonly sectPr: "capture";
|
|
156
|
+
readonly altChunk: "capture";
|
|
157
|
+
readonly commentRangeEnd: "capture";
|
|
158
|
+
readonly commentRangeStart: "capture";
|
|
159
|
+
readonly customXmlDelRangeEnd: "capture";
|
|
160
|
+
readonly customXmlDelRangeStart: "capture";
|
|
161
|
+
readonly customXmlInsRangeEnd: "capture";
|
|
162
|
+
readonly customXmlInsRangeStart: "capture";
|
|
163
|
+
readonly customXmlMoveFromRangeEnd: "capture";
|
|
164
|
+
readonly customXmlMoveFromRangeStart: "capture";
|
|
165
|
+
readonly customXmlMoveToRangeEnd: "capture";
|
|
166
|
+
readonly customXmlMoveToRangeStart: "capture";
|
|
167
|
+
readonly del: "capture";
|
|
168
|
+
readonly ins: "capture";
|
|
169
|
+
readonly moveFrom: "capture";
|
|
170
|
+
readonly moveFromRangeEnd: "capture";
|
|
171
|
+
readonly moveFromRangeStart: "capture";
|
|
172
|
+
readonly moveTo: "capture";
|
|
173
|
+
readonly moveToRangeEnd: "capture";
|
|
174
|
+
readonly moveToRangeStart: "capture";
|
|
175
|
+
readonly permEnd: "capture";
|
|
176
|
+
readonly permStart: "capture";
|
|
177
|
+
readonly proofErr: "capture";
|
|
108
178
|
};
|
|
109
179
|
/**
|
|
110
180
|
* Parse a table cell (w:tc)
|
|
@@ -118,6 +188,49 @@ type TableParseOptions = {
|
|
|
118
188
|
* @returns Parsed table cell
|
|
119
189
|
*/
|
|
120
190
|
declare function parseTableCell(tcElement: XmlElement, styles: StyleMap | null, theme: document_d_exports.Theme | null, numbering: NumberingMap | null, rels: document_d_exports.RelationshipMap | null, media: Map<string, document_d_exports.MediaFile> | null, options?: TableParseOptions): document_d_exports.TableCell;
|
|
191
|
+
/** One row's children, or a cell-level content control's, as they are read. */
|
|
192
|
+
type RowChildrenWalk = {
|
|
193
|
+
resources: TableParseResources;
|
|
194
|
+
options: TableScope;
|
|
195
|
+
row: document_d_exports.TableRow;
|
|
196
|
+
bookmarks: document_d_exports.PositionedBookmarkMarker[];
|
|
197
|
+
preservedChildren: TablePreservedChild[];
|
|
198
|
+
customXmlIdentity: {
|
|
199
|
+
next: number;
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
declare const ROW_CONTENT_HANDLERS: {
|
|
203
|
+
readonly commentRangeEnd: "capture";
|
|
204
|
+
readonly commentRangeStart: "capture";
|
|
205
|
+
readonly customXmlPr: "capture";
|
|
206
|
+
readonly customXmlDelRangeEnd: "capture";
|
|
207
|
+
readonly customXmlDelRangeStart: "capture";
|
|
208
|
+
readonly customXmlInsRangeEnd: "capture";
|
|
209
|
+
readonly customXmlInsRangeStart: "capture";
|
|
210
|
+
readonly customXmlMoveFromRangeEnd: "capture";
|
|
211
|
+
readonly customXmlMoveFromRangeStart: "capture";
|
|
212
|
+
readonly customXmlMoveToRangeEnd: "capture";
|
|
213
|
+
readonly customXmlMoveToRangeStart: "capture";
|
|
214
|
+
readonly del: "capture";
|
|
215
|
+
readonly ins: "capture";
|
|
216
|
+
readonly moveFrom: "capture";
|
|
217
|
+
readonly moveFromRangeEnd: "capture";
|
|
218
|
+
readonly moveFromRangeStart: "capture";
|
|
219
|
+
readonly moveTo: "capture";
|
|
220
|
+
readonly moveToRangeEnd: "capture";
|
|
221
|
+
readonly moveToRangeStart: "capture";
|
|
222
|
+
readonly permEnd: "capture";
|
|
223
|
+
readonly permStart: "capture";
|
|
224
|
+
readonly proofErr: "capture";
|
|
225
|
+
readonly tr: (child: XmlElement, { options }: RowChildrenWalk) => "capture";
|
|
226
|
+
readonly trPr: OwnedElsewhere<"row-content", "trPr">;
|
|
227
|
+
readonly tblPrEx: OwnedElsewhere<"row-content", "tblPrEx">;
|
|
228
|
+
readonly tc: (child: XmlElement, { resources: { styles, theme, numbering, rels, media }, options, row }: RowChildrenWalk) => void;
|
|
229
|
+
readonly sdt: (child: XmlElement, walk: RowChildrenWalk) => "capture" | undefined;
|
|
230
|
+
readonly customXml: (child: XmlElement, walk: RowChildrenWalk) => "capture" | undefined;
|
|
231
|
+
readonly bookmarkStart: (child: XmlElement, { row, bookmarks }: RowChildrenWalk) => void;
|
|
232
|
+
readonly bookmarkEnd: (child: XmlElement, { row, bookmarks }: RowChildrenWalk) => void;
|
|
233
|
+
};
|
|
121
234
|
/**
|
|
122
235
|
* Parse a table row (w:tr)
|
|
123
236
|
*
|
|
@@ -137,6 +250,49 @@ declare function parseTableRow(trElement: XmlElement, styles: StyleMap | null, t
|
|
|
137
250
|
* @returns Array of column widths in twips
|
|
138
251
|
*/
|
|
139
252
|
declare function parseTableGrid(tblGridElement: XmlElement | null): number[] | undefined;
|
|
253
|
+
/** One table's children, or a row-level content control's, as they are read. */
|
|
254
|
+
type TableChildrenWalk = {
|
|
255
|
+
resources: TableParseResources;
|
|
256
|
+
options: TableScope;
|
|
257
|
+
table: document_d_exports.Table;
|
|
258
|
+
rowsWithGridOffsets: Set<number>;
|
|
259
|
+
bookmarks: document_d_exports.PositionedBookmarkMarker[];
|
|
260
|
+
preservedChildren: TablePreservedChild[];
|
|
261
|
+
customXmlIdentity: {
|
|
262
|
+
next: number;
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
declare const TABLE_CONTENT_HANDLERS: {
|
|
266
|
+
readonly bookmarkStart: (child: XmlElement, { table, bookmarks }: TableChildrenWalk) => void;
|
|
267
|
+
readonly bookmarkEnd: (child: XmlElement, { table, bookmarks }: TableChildrenWalk) => void;
|
|
268
|
+
readonly commentRangeEnd: "capture";
|
|
269
|
+
readonly commentRangeStart: "capture";
|
|
270
|
+
readonly customXmlPr: "capture";
|
|
271
|
+
readonly customXmlDelRangeEnd: "capture";
|
|
272
|
+
readonly customXmlDelRangeStart: "capture";
|
|
273
|
+
readonly customXmlInsRangeEnd: "capture";
|
|
274
|
+
readonly customXmlInsRangeStart: "capture";
|
|
275
|
+
readonly customXmlMoveFromRangeEnd: "capture";
|
|
276
|
+
readonly customXmlMoveFromRangeStart: "capture";
|
|
277
|
+
readonly customXmlMoveToRangeEnd: "capture";
|
|
278
|
+
readonly customXmlMoveToRangeStart: "capture";
|
|
279
|
+
readonly del: "capture";
|
|
280
|
+
readonly ins: "capture";
|
|
281
|
+
readonly moveFrom: "capture";
|
|
282
|
+
readonly moveFromRangeEnd: "capture";
|
|
283
|
+
readonly moveFromRangeStart: "capture";
|
|
284
|
+
readonly moveTo: "capture";
|
|
285
|
+
readonly moveToRangeEnd: "capture";
|
|
286
|
+
readonly moveToRangeStart: "capture";
|
|
287
|
+
readonly permEnd: "capture";
|
|
288
|
+
readonly permStart: "capture";
|
|
289
|
+
readonly proofErr: "capture";
|
|
290
|
+
readonly tblPr: OwnedElsewhere<"table-content", "tblPr">;
|
|
291
|
+
readonly tblGrid: OwnedElsewhere<"table-content", "tblGrid">;
|
|
292
|
+
readonly tr: (child: XmlElement, { resources: { styles, theme, numbering, rels, media }, options, table, rowsWithGridOffsets }: TableChildrenWalk) => void;
|
|
293
|
+
readonly sdt: (child: XmlElement, walk: TableChildrenWalk) => "capture" | undefined;
|
|
294
|
+
readonly customXml: (child: XmlElement, walk: TableChildrenWalk) => "capture" | undefined;
|
|
295
|
+
};
|
|
140
296
|
/**
|
|
141
297
|
* Parse a table element (w:tbl)
|
|
142
298
|
*
|
|
@@ -215,4 +371,4 @@ declare function getHeaderRows(table: document_d_exports.Table): document_d_expo
|
|
|
215
371
|
*/
|
|
216
372
|
declare function isFloatingTable(table: document_d_exports.Table): boolean;
|
|
217
373
|
//#endregion
|
|
218
|
-
export { MAX_TABLE_COLUMNS, getHeaderRows, getTableColumnCount, getTableRowCount, getTableText, hasHeaderRow, isCellHorizontallyMerged, isCellMergeContinuation, isCellMergeStart, isFloatingTable, parseCellMargins, parseConditionalFormatStyle, parseFloatingTableProperties, parseTable, parseTableBorders, parseTableCell, parseTableCellProperties, parseTableGrid, parseTableLook, parseTableMeasurement, parseTableProperties, parseTablePropertyExceptions, parseTableRow, parseTableRowProperties };
|
|
374
|
+
export { CELL_CONTENT_HANDLERS, MAX_TABLE_COLUMNS, ROW_CONTENT_HANDLERS, TABLE_CONTENT_HANDLERS, getHeaderRows, getTableColumnCount, getTableRowCount, getTableText, hasHeaderRow, isCellHorizontallyMerged, isCellMergeContinuation, isCellMergeStart, isFloatingTable, isTableCellMergeRevisionContinuation, isTableCellMergeRevisionValue, parseCellMargins, parseConditionalFormatStyle, parseFloatingTableProperties, parseTable, parseTableBorders, parseTableCell, parseTableCellProperties, parseTableGrid, parseTableLook, parseTableMeasurement, parseTableProperties, parseTablePropertyExceptions, parseTableRow, parseTableRowProperties };
|
package/dist/docx/tableParser.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NO_MODELLED_ATTRIBUTES, attributeRemainder } from "./attributeRemainder.js";
|
|
2
|
+
import { blockCustomXmlShell } from "./blockCustomXmlShell.js";
|
|
2
3
|
import { parseBookmarkEnd, parseBookmarkStart } from "./bookmarkParser.js";
|
|
3
4
|
import { parseBorderSpec } from "./borderParser.js";
|
|
4
5
|
import { CAPTURE, dispatchChildrenWithContext, keptUnless, ownedElsewhere, sequencePositions, withPreservedChildren } from "./containerChildren.js";
|
|
@@ -14,6 +15,7 @@ import { parsePropertyChangeInfo, parseTrackedChangeInfo } from "./trackedChange
|
|
|
14
15
|
import { percentageSpelling, transitionalSlotEncoding } from "./transitionalSpelling.js";
|
|
15
16
|
import { captureVerbatimXml } from "./verbatimCapture.js";
|
|
16
17
|
import { WORDPROCESSINGML_NAMESPACE_URIS, cloneElement, findChild, findChildren, findWordprocessingChild, getAttribute, getAttributeByNamespaceUri, getLocalName, mergeXmlnsDeclarations, parseBooleanElement, parseNumericAttribute, parseOnOffAttribute, parseTableMeasurementValue, selectAlternateContentBranch } from "./xmlParser.js";
|
|
18
|
+
import { PARSE_WARNING_CODES } from "@stll/docx-core/model";
|
|
17
19
|
//#region src/docx/tableParser.ts
|
|
18
20
|
/**
|
|
19
21
|
* Sanity cap on `w:gridSpan` (and the derived table column count). Word's
|
|
@@ -556,6 +558,12 @@ function parseTableCellVerticalMergeRevisionValue(value) {
|
|
|
556
558
|
if (value === "cont") return "continue";
|
|
557
559
|
if (value === "rest") return "rest";
|
|
558
560
|
}
|
|
561
|
+
function isTableCellMergeRevisionValue(value) {
|
|
562
|
+
return value === "continue" || value === "rest";
|
|
563
|
+
}
|
|
564
|
+
function isTableCellMergeRevisionContinuation(value) {
|
|
565
|
+
return value === "continue";
|
|
566
|
+
}
|
|
559
567
|
const ROW_PROPERTY_HANDLERS = {
|
|
560
568
|
cnfStyle: (child, formatting) => {
|
|
561
569
|
const conditionalFormat = parseConditionalFormatStyle(child);
|
|
@@ -755,13 +763,35 @@ function parseTableCellProperties(tcPrElement) {
|
|
|
755
763
|
if (preserved) formatting.preserved = preserved;
|
|
756
764
|
return withSourceXml(formatting, tcPrElement);
|
|
757
765
|
}
|
|
766
|
+
const createCustomXmlWrapper = (element, identity) => ({
|
|
767
|
+
id: identity.next++,
|
|
768
|
+
...blockCustomXmlShell(element)
|
|
769
|
+
});
|
|
770
|
+
const recordCustomXmlWrapper = (wrapped, wrapper) => {
|
|
771
|
+
for (const item of wrapped) item.carrierStack = [{
|
|
772
|
+
type: "customXml",
|
|
773
|
+
wrapper
|
|
774
|
+
}, ...item.carrierStack ?? []];
|
|
775
|
+
};
|
|
758
776
|
const recordContentControl = (wrapped, carriers, sdtElement) => {
|
|
759
777
|
const properties = parseSdtProperties(findWordprocessingChild(sdtElement, "sdtPr"), findWordprocessingChild(sdtElement, "sdtEndPr"));
|
|
760
778
|
const siblings = captureSdtSiblingMarkers(sdtElement);
|
|
761
779
|
if (siblings.before.length > 0) properties.rawSdtChildrenBeforeContent = siblings.before;
|
|
762
780
|
if (siblings.after.length > 0) properties.rawSdtChildrenAfterContent = siblings.after;
|
|
763
|
-
for (const item of wrapped)
|
|
764
|
-
|
|
781
|
+
for (const item of wrapped) {
|
|
782
|
+
item.contentControls = [properties, ...item.contentControls ?? []];
|
|
783
|
+
item.carrierStack = [{
|
|
784
|
+
type: "sdt",
|
|
785
|
+
properties
|
|
786
|
+
}, ...item.carrierStack ?? []];
|
|
787
|
+
}
|
|
788
|
+
for (const item of carriers) {
|
|
789
|
+
item.contentControls = [properties, ...item.contentControls ?? []];
|
|
790
|
+
item.carrierStack = [{
|
|
791
|
+
type: "sdt",
|
|
792
|
+
properties
|
|
793
|
+
}, ...item.carrierStack ?? []];
|
|
794
|
+
}
|
|
765
795
|
};
|
|
766
796
|
/**
|
|
767
797
|
* Accumulate a table container's own `xmlns:*` onto the inherited in-scope set,
|
|
@@ -779,7 +809,7 @@ const findLastFlowBlock = (blocks) => {
|
|
|
779
809
|
for (let index = blocks.length - 1; index >= 0; index -= 1) {
|
|
780
810
|
const block = blocks[index];
|
|
781
811
|
if (block?.type === "paragraph" || block?.type === "table") return block;
|
|
782
|
-
if (block?.type === "blockSdt") {
|
|
812
|
+
if (block?.type === "blockSdt" || block?.type === "blockCustomXml") {
|
|
783
813
|
const nested = findLastFlowBlock(block.content);
|
|
784
814
|
if (nested) return nested;
|
|
785
815
|
}
|
|
@@ -825,6 +855,19 @@ const CELL_CONTENT_HANDLERS = {
|
|
|
825
855
|
})
|
|
826
856
|
});
|
|
827
857
|
},
|
|
858
|
+
customXml: (child, { resources, options, modelled }) => {
|
|
859
|
+
const customXml = {
|
|
860
|
+
type: "blockCustomXml",
|
|
861
|
+
...blockCustomXmlShell(child),
|
|
862
|
+
content: parseCellChildren({
|
|
863
|
+
element: child,
|
|
864
|
+
resources,
|
|
865
|
+
options: withContainerXmlns(options, child),
|
|
866
|
+
requireTrailingParagraph: false
|
|
867
|
+
})
|
|
868
|
+
};
|
|
869
|
+
modelled.push(customXml);
|
|
870
|
+
},
|
|
828
871
|
bookmarkStart: (child, { modelled }) => {
|
|
829
872
|
modelled.push(parseBookmarkStart(child));
|
|
830
873
|
},
|
|
@@ -836,7 +879,6 @@ const CELL_CONTENT_HANDLERS = {
|
|
|
836
879
|
altChunk: CAPTURE,
|
|
837
880
|
commentRangeEnd: CAPTURE,
|
|
838
881
|
commentRangeStart: CAPTURE,
|
|
839
|
-
customXml: CAPTURE,
|
|
840
882
|
customXmlDelRangeEnd: CAPTURE,
|
|
841
883
|
customXmlDelRangeStart: CAPTURE,
|
|
842
884
|
customXmlInsRangeEnd: CAPTURE,
|
|
@@ -959,6 +1001,21 @@ const ROW_CONTENT_HANDLERS = {
|
|
|
959
1001
|
}
|
|
960
1002
|
recordContentControl(wrapped, [...preservedChildren.slice(firstCaptured), ...bookmarks.slice(firstBookmark)], child);
|
|
961
1003
|
},
|
|
1004
|
+
customXml: (child, walk) => {
|
|
1005
|
+
const firstWrapped = walk.row.cells.length;
|
|
1006
|
+
const firstCaptured = walk.preservedChildren.length;
|
|
1007
|
+
const firstBookmark = walk.bookmarks.length;
|
|
1008
|
+
dispatchRowChildren(child, walk);
|
|
1009
|
+
if (walk.row.cells.length === firstWrapped) {
|
|
1010
|
+
walk.preservedChildren.splice(firstCaptured);
|
|
1011
|
+
walk.bookmarks.splice(firstBookmark);
|
|
1012
|
+
return CAPTURE;
|
|
1013
|
+
}
|
|
1014
|
+
const wrapper = createCustomXmlWrapper(child, walk.customXmlIdentity);
|
|
1015
|
+
recordCustomXmlWrapper(walk.row.cells.slice(firstWrapped), wrapper);
|
|
1016
|
+
recordCustomXmlWrapper(walk.preservedChildren.slice(firstCaptured), wrapper);
|
|
1017
|
+
recordCustomXmlWrapper(walk.bookmarks.slice(firstBookmark), wrapper);
|
|
1018
|
+
},
|
|
962
1019
|
bookmarkStart: (child, { row, bookmarks }) => {
|
|
963
1020
|
bookmarks.push({
|
|
964
1021
|
index: row.cells.length,
|
|
@@ -974,7 +1031,7 @@ const ROW_CONTENT_HANDLERS = {
|
|
|
974
1031
|
...ROW_CHILD_OWNERS,
|
|
975
1032
|
commentRangeEnd: CAPTURE,
|
|
976
1033
|
commentRangeStart: CAPTURE,
|
|
977
|
-
|
|
1034
|
+
customXmlPr: CAPTURE,
|
|
978
1035
|
customXmlDelRangeEnd: CAPTURE,
|
|
979
1036
|
customXmlDelRangeStart: CAPTURE,
|
|
980
1037
|
customXmlInsRangeEnd: CAPTURE,
|
|
@@ -994,7 +1051,13 @@ const ROW_CONTENT_HANDLERS = {
|
|
|
994
1051
|
permEnd: CAPTURE,
|
|
995
1052
|
permStart: CAPTURE,
|
|
996
1053
|
proofErr: CAPTURE,
|
|
997
|
-
tr:
|
|
1054
|
+
tr: (child, { options }) => {
|
|
1055
|
+
options.context?.warn({
|
|
1056
|
+
code: PARSE_WARNING_CODES.nestedRowOpaque,
|
|
1057
|
+
element: child.name ?? "w:tr"
|
|
1058
|
+
});
|
|
1059
|
+
return CAPTURE;
|
|
1060
|
+
}
|
|
998
1061
|
};
|
|
999
1062
|
/**
|
|
1000
1063
|
* One row's children, or a cell-level content control's.
|
|
@@ -1055,7 +1118,8 @@ function parseTableRow(trElement, styles, theme, numbering, rels, media, options
|
|
|
1055
1118
|
options: withContainerXmlns(options, trElement),
|
|
1056
1119
|
row,
|
|
1057
1120
|
bookmarks,
|
|
1058
|
-
preservedChildren
|
|
1121
|
+
preservedChildren,
|
|
1122
|
+
customXmlIdentity: { next: 0 }
|
|
1059
1123
|
});
|
|
1060
1124
|
if (preservedChildren.length > 0) row.preserved = { children: preservedChildren };
|
|
1061
1125
|
if (bookmarks.length > 0) row.bookmarks = bookmarks;
|
|
@@ -1167,6 +1231,21 @@ const TABLE_CONTENT_HANDLERS = {
|
|
|
1167
1231
|
}
|
|
1168
1232
|
recordContentControl(wrapped, [...preservedChildren.slice(firstCaptured), ...bookmarks.slice(firstBookmark)], child);
|
|
1169
1233
|
},
|
|
1234
|
+
customXml: (child, walk) => {
|
|
1235
|
+
const firstWrapped = walk.table.rows.length;
|
|
1236
|
+
const firstCaptured = walk.preservedChildren.length;
|
|
1237
|
+
const firstBookmark = walk.bookmarks.length;
|
|
1238
|
+
dispatchTableChildren(child, walk);
|
|
1239
|
+
if (walk.table.rows.length === firstWrapped) {
|
|
1240
|
+
walk.preservedChildren.splice(firstCaptured);
|
|
1241
|
+
walk.bookmarks.splice(firstBookmark);
|
|
1242
|
+
return CAPTURE;
|
|
1243
|
+
}
|
|
1244
|
+
const wrapper = createCustomXmlWrapper(child, walk.customXmlIdentity);
|
|
1245
|
+
recordCustomXmlWrapper(walk.table.rows.slice(firstWrapped), wrapper);
|
|
1246
|
+
recordCustomXmlWrapper(walk.preservedChildren.slice(firstCaptured), wrapper);
|
|
1247
|
+
recordCustomXmlWrapper(walk.bookmarks.slice(firstBookmark), wrapper);
|
|
1248
|
+
},
|
|
1170
1249
|
...TABLE_CHILD_OWNERS,
|
|
1171
1250
|
bookmarkStart: (child, { table, bookmarks }) => {
|
|
1172
1251
|
bookmarks.push({
|
|
@@ -1182,7 +1261,6 @@ const TABLE_CONTENT_HANDLERS = {
|
|
|
1182
1261
|
},
|
|
1183
1262
|
commentRangeEnd: CAPTURE,
|
|
1184
1263
|
commentRangeStart: CAPTURE,
|
|
1185
|
-
customXml: CAPTURE,
|
|
1186
1264
|
customXmlPr: CAPTURE,
|
|
1187
1265
|
customXmlDelRangeEnd: CAPTURE,
|
|
1188
1266
|
customXmlDelRangeStart: CAPTURE,
|
|
@@ -1269,7 +1347,8 @@ function parseTable(tblElement, styles, theme, numbering, rels, media, options)
|
|
|
1269
1347
|
table,
|
|
1270
1348
|
rowsWithGridOffsets,
|
|
1271
1349
|
bookmarks,
|
|
1272
|
-
preservedChildren
|
|
1350
|
+
preservedChildren,
|
|
1351
|
+
customXmlIdentity: { next: 0 }
|
|
1273
1352
|
});
|
|
1274
1353
|
if (table.rows.length === 0) return;
|
|
1275
1354
|
if (preservedChildren.length > 0) table.preserved = { children: preservedChildren };
|
|
@@ -1382,4 +1461,4 @@ function isFloatingTable(table) {
|
|
|
1382
1461
|
return table.formatting?.floating !== void 0;
|
|
1383
1462
|
}
|
|
1384
1463
|
//#endregion
|
|
1385
|
-
export { MAX_TABLE_COLUMNS, getHeaderRows, getTableColumnCount, getTableRowCount, getTableText, hasHeaderRow, isCellHorizontallyMerged, isCellMergeContinuation, isCellMergeStart, isFloatingTable, parseCellMargins, parseConditionalFormatStyle, parseFloatingTableProperties, parseTable, parseTableBorders, parseTableCell, parseTableCellProperties, parseTableGrid, parseTableLook, parseTableMeasurement, parseTableProperties, parseTablePropertyExceptions, parseTableRow, parseTableRowProperties };
|
|
1464
|
+
export { CELL_CONTENT_HANDLERS, MAX_TABLE_COLUMNS, ROW_CONTENT_HANDLERS, TABLE_CONTENT_HANDLERS, getHeaderRows, getTableColumnCount, getTableRowCount, getTableText, hasHeaderRow, isCellHorizontallyMerged, isCellMergeContinuation, isCellMergeStart, isFloatingTable, isTableCellMergeRevisionContinuation, isTableCellMergeRevisionValue, parseCellMargins, parseConditionalFormatStyle, parseFloatingTableProperties, parseTable, parseTableBorders, parseTableCell, parseTableCellProperties, parseTableGrid, parseTableLook, parseTableMeasurement, parseTableProperties, parseTablePropertyExceptions, parseTableRow, parseTableRowProperties };
|
|
@@ -300,7 +300,7 @@ const getTextBoxBlockText = (block) => {
|
|
|
300
300
|
return runTexts.join("");
|
|
301
301
|
}
|
|
302
302
|
if (block.type === "table") return block.rows.map((row) => row.cells.map((cell) => cell.content.map(getTextBoxBlockText).join("\n")).join(" ")).join("\n");
|
|
303
|
-
if (block.type !== "blockSdt") return "";
|
|
303
|
+
if (block.type !== "blockSdt" && block.type !== "blockCustomXml") return "";
|
|
304
304
|
return block.content.map(getTextBoxBlockText).join("\n");
|
|
305
305
|
};
|
|
306
306
|
/**
|
package/dist/docx/unzip.d.ts
CHANGED
|
@@ -25,6 +25,13 @@ type DocxUnzipLimits = {
|
|
|
25
25
|
* memory as bytes, not on what the parsed structure retains.
|
|
26
26
|
*/
|
|
27
27
|
maxTotalUncompressedBytes: number;
|
|
28
|
+
/**
|
|
29
|
+
* Inflated bytes allowed per compressed byte, for each markup or text entry
|
|
30
|
+
* and for the package as a whole. Binary entries are bounded by the byte
|
|
31
|
+
* limits and the package ratio only, and entries and packages under 4 MiB
|
|
32
|
+
* inflated are exempt.
|
|
33
|
+
*/
|
|
34
|
+
maxCompressionRatio: number;
|
|
28
35
|
/** Elements allowed in one XML part, counted before any tree is built. */
|
|
29
36
|
maxXmlElementsPerPart: number;
|
|
30
37
|
/** Attributes allowed in one XML part, counted before any tree is built. */
|
|
@@ -75,13 +82,24 @@ type RawDocxContent = {
|
|
|
75
82
|
/** True when the input was a password-protected CFB container. */
|
|
76
83
|
wasEncrypted: boolean;
|
|
77
84
|
};
|
|
85
|
+
/** How {@link unzipDocx} treats the parts it does not extract. */
|
|
86
|
+
type UnzipDocxBehavior = {
|
|
87
|
+
/**
|
|
88
|
+
* Inflate every part the unzip does not extract, within its declared size,
|
|
89
|
+
* so a later read of the returned package can trust that size. Callers
|
|
90
|
+
* that discard the package after reading the extracted parts can skip it.
|
|
91
|
+
* Defaults to `true`.
|
|
92
|
+
*/
|
|
93
|
+
verifyUnreadEntries?: boolean;
|
|
94
|
+
};
|
|
78
95
|
/**
|
|
79
96
|
* Extract all content from a DOCX file
|
|
80
97
|
*
|
|
81
98
|
* @param buffer - DOCX file as ArrayBuffer
|
|
82
99
|
* @returns Promise resolving to extracted content
|
|
83
100
|
*/
|
|
84
|
-
declare function unzipDocx(buffer: ArrayBuffer, options?: DocxUnzipOptions): Promise<RawDocxContent>;
|
|
101
|
+
declare function unzipDocx(buffer: ArrayBuffer, options?: DocxUnzipOptions, { verifyUnreadEntries }?: UnzipDocxBehavior): Promise<RawDocxContent>;
|
|
102
|
+
declare function getEntryUncompressedSize(file: JSZip.JSZipObject): number | null;
|
|
85
103
|
/**
|
|
86
104
|
* Get a list of all files in the DOCX
|
|
87
105
|
*
|
|
@@ -142,4 +160,4 @@ declare function getContentSummary(content: RawDocxContent): {
|
|
|
142
160
|
totalFiles: number;
|
|
143
161
|
};
|
|
144
162
|
//#endregion
|
|
145
|
-
export { DocxSecurityError, DocxUnzipLimits, DocxUnzipOptions, RawDocxContent, extractFile, getContentSummary, getFileList, getMediaMimeType, hasFile, mediaToDataUrl, unzipDocx };
|
|
163
|
+
export { DocxSecurityError, DocxUnzipLimits, DocxUnzipOptions, RawDocxContent, UnzipDocxBehavior, extractFile, getContentSummary, getEntryUncompressedSize, getFileList, getMediaMimeType, hasFile, mediaToDataUrl, unzipDocx };
|