@stll/folio-core 0.14.1 → 0.15.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 +2 -2
- package/dist/ai-edits/blockRange.d.ts +3 -17
- package/dist/ai-edits/clean-text.d.ts +0 -1
- package/dist/ai-edits/headless.d.ts +23 -19
- package/dist/ai-edits/read.d.ts +8 -5
- package/dist/ai-edits/scoped-reading.d.ts +0 -1
- package/dist/ai-edits/snapshot.d.ts +1 -7
- package/dist/ai-edits/table-cell-mutations.d.ts +4 -31
- package/dist/ai-edits/table-row-column-mutations.d.ts +9 -39
- package/dist/ai-edits/table-targets.d.ts +0 -1
- package/dist/ai-edits/types.d.ts +32 -17
- package/dist/ai-suggestions/apply.d.ts +0 -1
- package/dist/ai-suggestions/conflict.d.ts +0 -1
- package/dist/ai-suggestions/text-positions.d.ts +2 -2
- package/dist/ai-suggestions/types.d.ts +27 -13
- package/dist/compat/eigenpal.d.ts +2 -1
- package/dist/compat/eigenpal.js +2 -1
- package/dist/content-controls/errors.d.ts +0 -1
- package/dist/content-controls/findContentControls.d.ts +6 -4
- package/dist/content-controls/mutateContentControls.d.ts +0 -1
- package/dist/controller/activeEditorStory.d.ts +1 -6
- package/dist/controller/collaborationModules.d.ts +0 -1
- package/dist/controller/contentControlWidgetController.d.ts +0 -1
- package/dist/controller/folioEditor.d.ts +2 -2
- package/dist/controller/folioEditorEvents.d.ts +5 -3
- package/dist/controller/fontReadiness.d.ts +0 -1
- package/dist/controller/headerFooterEditorManager.d.ts +1 -5
- package/dist/controller/hiddenEditorApi.d.ts +35 -18
- package/dist/controller/hiddenEditorManager.d.ts +5 -3
- package/dist/controller/latestRequestGate.d.ts +3 -1
- package/dist/controller/layoutPipeline.d.ts +1 -1
- package/dist/controller/layoutScheduler.d.ts +8 -5
- package/dist/controller/layoutSession.d.ts +0 -1
- package/dist/controller/noteEditorManager.d.ts +0 -1
- package/dist/document-operations.d.ts +5 -12
- package/dist/document-stories.d.ts +0 -1
- package/dist/docx/blockContentParser.d.ts +0 -1
- package/dist/docx/blockContentParser.js +1 -0
- package/dist/docx/bookmarkParser.d.ts +5 -3
- package/dist/docx/bookmarkPlacement.d.ts +0 -1
- package/dist/docx/commentParser.d.ts +0 -1
- package/dist/docx/commentRangeIntegrity.d.ts +0 -1
- package/dist/docx/commentReferenceNormalization.d.ts +1 -9
- package/dist/docx/commentReplyMarkers.d.ts +0 -1
- package/dist/docx/compatibility.d.ts +0 -1
- package/dist/docx/conformance.d.ts +0 -1
- package/dist/docx/corePropertiesParser.d.ts +0 -1
- package/dist/docx/documentParser.d.ts +0 -1
- package/dist/docx/documentParser.js +3 -1
- package/dist/docx/drawingUtils.d.ts +23 -2
- package/dist/docx/drawingUtils.js +23 -1
- package/dist/docx/encryption/agileDecryption.d.ts +0 -1
- package/dist/docx/encryption/cryptoBytes.js +4 -1
- package/dist/docx/encryption/openEncryptedDocx.d.ts +5 -2
- package/dist/docx/ensureParaIds.d.ts +7 -3
- package/dist/docx/fieldParser.d.ts +23 -11
- package/dist/docx/fontTableParser.d.ts +0 -1
- package/dist/docx/footnoteParser.d.ts +26 -13
- package/dist/docx/footnoteParser.js +4 -2
- package/dist/docx/groupDrawingParser.d.ts +0 -1
- package/dist/docx/headerFooterParser.d.ts +9 -5
- package/dist/docx/headerFooterRefParser.d.ts +0 -1
- package/dist/docx/headerFooterReferenceNormalization.d.ts +1 -6
- package/dist/docx/headerFooterVerbatim.d.ts +2 -2
- package/dist/docx/hyperlinkParser.d.ts +0 -1
- package/dist/docx/hyperlinkParser.js +1 -9
- package/dist/docx/imageParser.d.ts +0 -1
- package/dist/docx/imageParser.js +15 -7
- package/dist/docx/mathToMathml.d.ts +0 -1
- package/dist/docx/metadataPrivacy.d.ts +1 -3
- package/dist/docx/modelValidation.d.ts +0 -1
- package/dist/docx/newImage.d.ts +11 -0
- package/dist/docx/newImage.js +11 -0
- package/dist/docx/normalizeBaseDirection.d.ts +0 -1
- package/dist/docx/notePropertiesParser.d.ts +0 -1
- package/dist/docx/numberingParser.d.ts +10 -6
- package/dist/docx/numberingParser.js +4 -2
- package/dist/docx/numberingReferenceNormalization.d.ts +1 -9
- package/dist/docx/paragraphParser.d.ts +0 -1
- package/dist/docx/paragraphParser.js +27 -14
- package/dist/docx/paragraphTextBoxEnrichment.d.ts +0 -1
- package/dist/docx/paragraphTextBoxEnrichment.js +2 -1
- package/dist/docx/paragraphTraversal.d.ts +1 -8
- package/dist/docx/parser.d.ts +15 -8
- package/dist/docx/parser.js +12 -1
- package/dist/docx/parserEnums.d.ts +2 -2
- package/dist/docx/parserEnums.js +3 -2
- package/dist/docx/relsParser.d.ts +1 -0
- package/dist/docx/renderedPageBreakNormalization.d.ts +12 -0
- package/dist/docx/renderedPageBreakNormalization.js +59 -0
- package/dist/docx/replyToComment.d.ts +2 -2
- package/dist/docx/rezip.d.ts +6 -7
- package/dist/docx/rezip.js +136 -102
- package/dist/docx/runConsolidator.d.ts +0 -1
- package/dist/docx/runParser.d.ts +0 -1
- package/dist/docx/runParser.js +9 -12
- package/dist/docx/sdtProperties.d.ts +0 -1
- package/dist/docx/sdtPropertiesPatch.d.ts +0 -1
- package/dist/docx/sectionParser.d.ts +0 -1
- package/dist/docx/selectiveSave.d.ts +5 -3
- package/dist/docx/selectiveSave.js +2 -2
- package/dist/docx/selectiveSaveFlags.d.ts +4 -2
- package/dist/docx/selectiveXmlPatch.js +20 -8
- package/dist/docx/serializer/blockSdtSerializer.d.ts +0 -1
- package/dist/docx/serializer/blockSdtSerializer.js +2 -1
- package/dist/docx/serializer/borderSerializer.d.ts +0 -1
- package/dist/docx/serializer/commentSerializer.d.ts +0 -1
- package/dist/docx/serializer/commentSerializer.js +11 -37
- package/dist/docx/serializer/documentSerializer.d.ts +0 -1
- package/dist/docx/serializer/documentSerializer.js +1 -1
- package/dist/docx/serializer/fontTableSerializer.d.ts +0 -1
- package/dist/docx/serializer/headerFooterSerializer.d.ts +0 -1
- package/dist/docx/serializer/headerFooterSerializer.js +1 -1
- package/dist/docx/serializer/noteSerializer.d.ts +0 -1
- package/dist/docx/serializer/noteSerializer.js +1 -1
- package/dist/docx/serializer/numberingSerializer.d.ts +0 -1
- package/dist/docx/serializer/paragraphSerializer.d.ts +0 -1
- package/dist/docx/serializer/paragraphSerializer.js +10 -23
- package/dist/docx/serializer/runSerializer.d.ts +0 -1
- package/dist/docx/serializer/runSerializer.js +37 -22
- package/dist/docx/serializer/sectionPropertiesSerializer.d.ts +0 -1
- package/dist/docx/serializer/sectionPropertiesSerializer.js +5 -4
- package/dist/docx/serializer/settingsSerializer.d.ts +0 -1
- package/dist/docx/serializer/stylesSerializer.d.ts +0 -1
- package/dist/docx/serializer/tableSerializer.d.ts +0 -1
- package/dist/docx/serializer/tableSerializer.js +2 -0
- package/dist/docx/serializer/themeSerializer.d.ts +0 -1
- package/dist/docx/serializer/xmlUtils.js +10 -1
- package/dist/docx/server/applyDocxXmlPatchProposal.d.ts +3 -10
- package/dist/docx/server/docxToMarkdown.d.ts +0 -1
- package/dist/docx/server/evaluateDocxXmlPatchProposal.d.ts +3 -9
- package/dist/docx/server/inspectDocxPackage.d.ts +3 -8
- package/dist/docx/server/validateDocxConformance.d.ts +0 -1
- package/dist/docx/settingsParser.d.ts +2 -2
- package/dist/docx/shapeParser.d.ts +0 -1
- package/dist/docx/shapeParser.js +11 -10
- package/dist/docx/streamingXmlParser.d.ts +16 -0
- package/dist/docx/streamingXmlParser.js +248 -0
- package/dist/docx/styleParser.d.ts +0 -1
- package/dist/docx/styleParser.js +6 -4
- package/dist/docx/tableParser.d.ts +1 -2
- package/dist/docx/tableParser.js +3 -6
- package/dist/docx/textBoxParser.d.ts +1 -2
- package/dist/docx/textBoxParser.js +4 -1
- package/dist/docx/textWhitespace.d.ts +4 -0
- package/dist/docx/textWhitespace.js +4 -0
- package/dist/docx/themeParser.d.ts +0 -1
- package/dist/docx/trackedMoveRangeNormalization.d.ts +1 -8
- package/dist/docx/unzip.d.ts +6 -3
- package/dist/docx/unzip.js +96 -40
- package/dist/docx/vmlImageParser.d.ts +0 -1
- package/dist/docx/vmlImageParser.js +3 -1
- package/dist/docx/watermarkParser.d.ts +0 -1
- package/dist/docx/xmlParser.d.ts +21 -8
- package/dist/docx/xmlParser.js +126 -43
- package/dist/fields/bookmarkPages.d.ts +0 -1
- package/dist/fields/bookmarkText.d.ts +0 -1
- package/dist/fields/evaluateField.d.ts +5 -3
- package/dist/fields/fieldContext.d.ts +11 -5
- package/dist/fields/resolveFieldValues.d.ts +4 -3
- package/dist/fields/sectionPageCounts.d.ts +0 -1
- package/dist/fields/seqValues.d.ts +0 -1
- package/dist/fonts/embeddedFontTable.d.ts +5 -2
- package/dist/fonts/embeddedFonts.d.ts +15 -7
- package/dist/index.d.ts +3 -1
- package/dist/index.js +2 -1
- package/dist/layout-bridge/cellSelectionHighlight.d.ts +0 -1
- package/dist/layout-bridge/convert/footnoteLayout.d.ts +5 -3
- package/dist/layout-bridge/convert/headerFooterLayout.d.ts +2 -2
- package/dist/layout-bridge/convert/paragraphFrames.d.ts +0 -1
- package/dist/layout-bridge/convert/templatePreviewFlow.d.ts +8 -8
- package/dist/layout-bridge/convert/toFlowBlocks.d.ts +25 -13
- package/dist/layout-bridge/convert/wrapEditorViewAsSurface.d.ts +3 -2
- package/dist/layout-bridge/dom/findHfPmSpans.d.ts +2 -1
- package/dist/layout-bridge/dom/noteStoryDom.d.ts +0 -1
- package/dist/layout-bridge/engine/clickToPosition.d.ts +5 -3
- package/dist/layout-bridge/engine/hitTest.d.ts +40 -19
- package/dist/layout-bridge/engine/selectionRects.d.ts +16 -8
- package/dist/layout-bridge/engine/tableWidthUtils.d.ts +0 -1
- package/dist/layout-bridge/headerFooterLayout.d.ts +0 -1
- package/dist/layout-bridge/sectionColumns.d.ts +0 -1
- package/dist/layout-bridge/tableInsertHover.d.ts +8 -4
- package/dist/layout-engine/headerFooterRefs.d.ts +0 -1
- package/dist/layout-engine/index.d.ts +0 -1
- package/dist/layout-engine/justificationCompatibility.d.ts +0 -1
- package/dist/layout-engine/keep-together.d.ts +7 -4
- package/dist/layout-engine/layoutInstrumentation.d.ts +0 -1
- package/dist/layout-engine/lineFlow.d.ts +0 -1
- package/dist/layout-engine/measure/cache.d.ts +0 -1
- package/dist/layout-engine/measure/effectiveLineBreakPolicy.d.ts +6 -7
- package/dist/layout-engine/measure/floatingTablePosition.d.ts +0 -1
- package/dist/layout-engine/measure/floatingZones.d.ts +14 -6
- package/dist/layout-engine/measure/font-metrics.worker.d.ts +0 -1
- package/dist/layout-engine/measure/lineBreakProvider.d.ts +20 -9
- package/dist/layout-engine/measure/lineBreaks.d.ts +0 -1
- package/dist/layout-engine/measure/listMarkerWidth.d.ts +0 -1
- package/dist/layout-engine/measure/measureBlocks.d.ts +1 -0
- package/dist/layout-engine/measure/measureContainer.d.ts +0 -1
- package/dist/layout-engine/measure/measureHelpers.d.ts +0 -1
- package/dist/layout-engine/measure/measureParagraph.d.ts +3 -2
- package/dist/layout-engine/measure/measureParagraph.js +23 -3
- package/dist/layout-engine/measure/measureProvider.d.ts +0 -1
- package/dist/layout-engine/measure/measureTypes.d.ts +4 -2
- package/dist/layout-engine/measure/measureWorker.d.ts +0 -1
- package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +0 -1
- package/dist/layout-engine/measure/tableCellFloating.d.ts +0 -1
- package/dist/layout-engine/measure/tableCellFlow.d.ts +0 -1
- package/dist/layout-engine/measure/tableCellGrid.d.ts +0 -1
- package/dist/layout-engine/measure/textBoxParagraphLayout.d.ts +0 -1
- package/dist/layout-engine/measure/textMeasurementPolicy.d.ts +0 -1
- package/dist/layout-engine/paginator.d.ts +66 -33
- package/dist/layout-engine/paragraphFragmentRange.d.ts +0 -1
- package/dist/layout-engine/paragraphFrame.d.ts +0 -1
- package/dist/layout-engine/paragraphSequence.d.ts +0 -1
- package/dist/layout-engine/paragraphSpacing.d.ts +1 -5
- package/dist/layout-engine/pmPageIndex.d.ts +0 -1
- package/dist/layout-engine/renderedBreakReconciliation.d.ts +2 -17
- package/dist/layout-engine/section-breaks.d.ts +34 -17
- package/dist/layout-engine/tableRowBreak.d.ts +4 -3
- package/dist/layout-engine/textBoxFlow.d.ts +0 -1
- package/dist/layout-engine/textBoxGroup.d.ts +0 -1
- package/dist/layout-engine/types.d.ts +382 -189
- package/dist/layout-painter/anchoredImagePosition.d.ts +0 -1
- package/dist/layout-painter/borderStroke.d.ts +0 -1
- package/dist/layout-painter/imageLayout.d.ts +14 -7
- package/dist/layout-painter/index.d.ts +9 -5
- package/dist/layout-painter/registry/modules/image.d.ts +0 -1
- package/dist/layout-painter/registry/modules/paragraph.d.ts +0 -1
- package/dist/layout-painter/registry/modules/table.d.ts +0 -1
- package/dist/layout-painter/registry/modules/textBox.d.ts +0 -1
- package/dist/layout-painter/registry/modules.d.ts +0 -1
- package/dist/layout-painter/registry/registry.d.ts +0 -1
- package/dist/layout-painter/registry/types.d.ts +0 -1
- package/dist/layout-painter/renderFragment.d.ts +2 -2
- package/dist/layout-painter/renderImage.d.ts +0 -1
- package/dist/layout-painter/renderPage.d.ts +71 -42
- package/dist/layout-painter/renderParagraph.d.ts +28 -14
- package/dist/layout-painter/renderParagraph.js +6 -2
- package/dist/layout-painter/renderTable.d.ts +0 -1
- package/dist/layout-painter/renderTextBox.d.ts +0 -1
- package/dist/layout-painter/renderUtils.d.ts +17 -9
- package/dist/layout-painter/renderWatermark.d.ts +2 -2
- package/dist/layout-painter/sdtBoundary.d.ts +0 -1
- package/dist/managers/AutoSaveManager.d.ts +22 -11
- package/dist/managers/ClipboardManager.d.ts +0 -1
- package/dist/managers/ContextMenuManager.d.ts +5 -8
- package/dist/managers/DocumentLoaderManager.d.ts +12 -6
- package/dist/managers/EditorModeManager.d.ts +3 -2
- package/dist/managers/ErrorManager.d.ts +0 -1
- package/dist/managers/FindReplaceManager.d.ts +0 -1
- package/dist/managers/HistoryManager.d.ts +19 -9
- package/dist/managers/TableSelectionManager.d.ts +0 -1
- package/dist/managers/editorShortcuts.d.ts +4 -6
- package/dist/markdown/annotations.d.ts +0 -1
- package/dist/markdown/fromMarkdown.d.ts +0 -1
- package/dist/markdown/fromMarkdown.js +55 -5
- package/dist/markdown/images.d.ts +0 -1
- package/dist/markdown/index.d.ts +0 -1
- package/dist/markdown/internals.d.ts +0 -1
- package/dist/markdown/renderBlock.d.ts +0 -1
- package/dist/markdown/renderParagraph.d.ts +0 -1
- package/dist/markdown/renderRuns.d.ts +0 -1
- package/dist/markdown/renderTable.d.ts +0 -1
- package/dist/markdown/trailers.d.ts +0 -1
- package/dist/markdown/types.d.ts +39 -18
- package/dist/model.d.ts +3 -5
- package/dist/model.js +2 -2
- package/dist/paged-layout/incrementalMeasure.d.ts +1 -10
- package/dist/paged-layout/pageText.d.ts +1 -1
- package/dist/paged-layout/paragraphFlash.d.ts +0 -1
- package/dist/paged-layout/paragraphFlashTypes.d.ts +5 -2
- package/dist/paged-layout/rangeProjection.d.ts +10 -5
- package/dist/paged-layout/scrollNavigation.d.ts +0 -1
- package/dist/paged-layout/scrollPageInfo.d.ts +12 -13
- package/dist/paged-layout/scrollToPmPosition.d.ts +0 -1
- package/dist/paged-layout/sectionBlockWidths.d.ts +2 -11
- package/dist/paged-layout/sectionGeometry.d.ts +0 -1
- package/dist/paged-layout/selectionViewportRect.d.ts +0 -1
- package/dist/paged-layout/transactionDirtyRange.d.ts +0 -1
- package/dist/paged-layout/zoomScrollAnchor.d.ts +2 -12
- package/dist/prosemirror/attrs/index.d.ts +2 -2
- package/dist/prosemirror/attrs/index.js +5 -0
- package/dist/prosemirror/autospacingBase.d.ts +0 -1
- package/dist/prosemirror/cellDragSelection.d.ts +6 -4
- package/dist/prosemirror/commands/comments.d.ts +6 -4
- package/dist/prosemirror/commands/contentControls.d.ts +5 -3
- package/dist/prosemirror/commands/contentControlsBlockFill.d.ts +1 -1
- package/dist/prosemirror/commands/formatPainter.d.ts +0 -1
- package/dist/prosemirror/commands/formatting.d.ts +1 -1
- package/dist/prosemirror/commands/hyperlink.d.ts +4 -9
- package/dist/prosemirror/commands/image.d.ts +0 -1
- package/dist/prosemirror/commands/pageBreak.d.ts +0 -1
- package/dist/prosemirror/commands/paragraph.d.ts +0 -1
- package/dist/prosemirror/commands/pastePlainText.d.ts +0 -1
- package/dist/prosemirror/commands/propertyChangeScope.d.ts +0 -1
- package/dist/prosemirror/commands/sectionBreak.d.ts +0 -1
- package/dist/prosemirror/commands/table.d.ts +0 -1
- package/dist/prosemirror/commands/tableCellMergeResolution.d.ts +0 -1
- package/dist/prosemirror/commentIdAllocator.d.ts +2 -2
- package/dist/prosemirror/commentOps.d.ts +0 -1
- package/dist/prosemirror/conversion/effectiveTableCellFormatting.d.ts +1 -10
- package/dist/prosemirror/conversion/fromProseDoc.d.ts +0 -1
- package/dist/prosemirror/conversion/fromProseDoc.js +7 -4
- package/dist/prosemirror/conversion/runShadingMark.d.ts +0 -1
- package/dist/prosemirror/conversion/sdtAttrs.d.ts +0 -1
- package/dist/prosemirror/conversion/toProseDoc.d.ts +3 -2
- package/dist/prosemirror/conversion/toProseDoc.js +16 -2
- package/dist/prosemirror/extensions/ExtensionManager.d.ts +0 -1
- package/dist/prosemirror/extensions/StarterKit.d.ts +7 -4
- package/dist/prosemirror/extensions/core/DocExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/core/HistoryExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/core/ParagraphExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/core/TextExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/create.d.ts +0 -1
- package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/BidiShortcutExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/DropCursorExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/GapCursorExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/ImageDragExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/ImagePasteExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/ListExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +7 -4
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/SelectionTrackerExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/features/bidiShortcutController.d.ts +3 -1
- package/dist/prosemirror/extensions/marks/AllCapsExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/BoldExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/CharacterStyleExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/CommentExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/FontFamilyExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/FontFamilyExtension.js +1 -0
- package/dist/prosemirror/extensions/marks/FontSizeExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/FootnoteRefExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/HiddenTextExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/HighlightExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/HyperlinkExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/ItalicExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/LanguageExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/RtlExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/RunShadingExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/SmallCapsExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/StrikeExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/SubscriptExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/SuperscriptExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/TextColorExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/TextEffectExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/TextEffectsExtensions.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/UnderlineExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/markUtils.d.ts +0 -1
- package/dist/prosemirror/extensions/marks/markUtils.js +4 -1
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/HardBreakExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/ImageExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/ImageExtension.js +2 -0
- package/dist/prosemirror/extensions/nodes/MathExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/PageBreakExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/RenderedPageBreakExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/ShapeExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/ShapeExtension.js +2 -0
- package/dist/prosemirror/extensions/nodes/TabExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +4 -3
- package/dist/prosemirror/extensions/nodes/TextBoxAnchorExtension.d.ts +0 -1
- package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +53 -27
- package/dist/prosemirror/extensions/types.d.ts +0 -1
- package/dist/prosemirror/findReplaceSelection.d.ts +5 -3
- package/dist/prosemirror/imageCommit.d.ts +0 -1
- package/dist/prosemirror/index.d.ts +4 -0
- package/dist/prosemirror/insertOperations.d.ts +0 -1
- package/dist/prosemirror/paraText.d.ts +0 -1
- package/dist/prosemirror/plugins/aiCitationDecorations.d.ts +2 -2
- package/dist/prosemirror/plugins/aiSuggestionDecorations.d.ts +0 -1
- package/dist/prosemirror/plugins/anonymizationDecorations.d.ts +9 -7
- package/dist/prosemirror/plugins/autocompleteSuggestion.d.ts +2 -2
- package/dist/prosemirror/plugins/contentControlWidgets.d.ts +4 -7
- package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +3 -8
- package/dist/prosemirror/plugins/documentStyles.d.ts +0 -1
- package/dist/prosemirror/plugins/pmTextScan.d.ts +2 -2
- package/dist/prosemirror/plugins/revisionIds.d.ts +0 -1
- package/dist/prosemirror/plugins/selectionTracker.d.ts +23 -12
- package/dist/prosemirror/plugins/suggestionMode.d.ts +0 -1
- package/dist/prosemirror/plugins/templateDirectives.d.ts +10 -8
- package/dist/prosemirror/plugins/templatePreviewValues.d.ts +10 -5
- package/dist/prosemirror/plugins/templateSlashMenu.d.ts +2 -2
- package/dist/prosemirror/queries.d.ts +0 -1
- package/dist/prosemirror/schema/index.d.ts +0 -1
- package/dist/prosemirror/schema/marks.d.ts +8 -5
- package/dist/prosemirror/schema/nodes.d.ts +340 -163
- package/dist/prosemirror/selectionState.d.ts +13 -7
- package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +0 -1
- package/dist/prosemirror/styles/styleResolver.d.ts +3 -2
- package/dist/prosemirror/tableCellMergeRevision.d.ts +0 -1
- package/dist/prosemirror/tableResize.d.ts +0 -1
- package/dist/prosemirror/textBoxAnchorAttrs.d.ts +0 -1
- package/dist/prosemirror/utils/extractTrackedChanges.d.ts +8 -5
- package/dist/prosemirror/utils/findParagraphByParaId.d.ts +0 -1
- package/dist/prosemirror/utils/tabCalculator.d.ts +18 -7
- package/dist/prosemirror/utils/visualLineNavigation.d.ts +0 -1
- package/dist/prosemirror/validation.d.ts +0 -1
- package/dist/redline.d.ts +16 -8
- package/dist/render-dom/BodySelectionOverlay.d.ts +1 -9
- package/dist/render-dom/HeaderFooterSelectionOverlay.d.ts +0 -1
- package/dist/render-dom/RemoteSelectionOverlay.d.ts +1 -8
- package/dist/render-dom/resolveSidebarItemPositions.d.ts +1 -9
- package/dist/style-engine/styleEngine.d.ts +21 -11
- package/dist/style-sets/extract.d.ts +4 -3
- package/dist/style-sets/stellaStyle.d.ts +0 -1
- package/dist/style-sets/types.d.ts +0 -1
- package/dist/symbols.d.ts +6 -2
- package/dist/types/block-id.d.ts +3 -6
- package/dist/types/document.d.ts +0 -3
- package/dist/types/documentEnumValues.d.ts +2 -1
- package/dist/types/documentEnumValues.js +6 -1
- package/dist/utils/clipboard.d.ts +17 -8
- package/dist/utils/colorResolver.d.ts +9 -5
- package/dist/utils/createDocument.d.ts +19 -10
- package/dist/utils/documentLoaderBehavior.d.ts +1 -5
- package/dist/utils/docxInput.js +1 -0
- package/dist/utils/findReplace.d.ts +0 -1
- package/dist/utils/fontFamilyMerge.d.ts +0 -1
- package/dist/utils/fontResolver.d.ts +10 -4
- package/dist/utils/formatToStyle.d.ts +0 -1
- package/dist/utils/headerFooter.d.ts +8 -16
- package/dist/utils/headingCollector.d.ts +7 -4
- package/dist/utils/mergeDocumentContent.d.ts +28 -0
- package/dist/utils/mergeDocumentContent.js +145 -0
- package/dist/utils/paragraphFormattingMerge.d.ts +0 -1
- package/dist/utils/replaceText.d.ts +0 -1
- package/dist/utils/rotationBoundingBox.d.ts +0 -1
- package/dist/utils/tableOperations.d.ts +0 -1
- package/dist/utils/textFormattingMerge.d.ts +0 -1
- package/dist/version-comparison.d.ts +12 -6
- package/dist/watermark/index.d.ts +0 -1
- package/package.json +3 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { serializeBlockSdt } from "./blockSdtSerializer.js";
|
|
2
1
|
import { serializeTable } from "./tableSerializer.js";
|
|
3
2
|
import { resetAutoIdCounter } from "./runSerializer.js";
|
|
4
3
|
import { serializeSectionProperties } from "./sectionPropertiesSerializer.js";
|
|
5
4
|
import { serializeParagraph } from "./paragraphSerializer.js";
|
|
5
|
+
import { serializeBlockSdt } from "./blockSdtSerializer.js";
|
|
6
6
|
//#region src/docx/serializer/documentSerializer.ts
|
|
7
7
|
/**
|
|
8
8
|
* Standard OOXML namespaces for document.xml
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { canReplayHeaderFooterVerbatim, getHeaderFooterVerbatimXml } from "../headerFooterVerbatim.js";
|
|
2
2
|
import { escapeXml } from "./xmlUtils.js";
|
|
3
|
-
import { serializeBlockSdt } from "./blockSdtSerializer.js";
|
|
4
3
|
import { serializeTable } from "./tableSerializer.js";
|
|
5
4
|
import { serializeParagraph } from "./paragraphSerializer.js";
|
|
5
|
+
import { serializeBlockSdt } from "./blockSdtSerializer.js";
|
|
6
6
|
//#region src/docx/serializer/headerFooterSerializer.ts
|
|
7
7
|
const NAMESPACES = {
|
|
8
8
|
wpc: "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { serializeBlockSdt } from "./blockSdtSerializer.js";
|
|
2
1
|
import { serializeTable } from "./tableSerializer.js";
|
|
3
2
|
import { serializeParagraph } from "./paragraphSerializer.js";
|
|
3
|
+
import { serializeBlockSdt } from "./blockSdtSerializer.js";
|
|
4
4
|
//#region src/docx/serializer/noteSerializer.ts
|
|
5
5
|
const NAMESPACES = {
|
|
6
6
|
wpc: "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas",
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { document_d_exports } from "../../types/document.js";
|
|
2
|
-
|
|
3
2
|
//#region src/docx/serializer/paragraphSerializer.d.ts
|
|
4
3
|
declare function serializeParagraphFormatting(formatting: document_d_exports.ParagraphFormatting | undefined, propertyChanges?: document_d_exports.ParagraphPropertyChange[], pPrMark?: document_d_exports.ParagraphMarkChange): string;
|
|
5
4
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { numPrEqual } from "../numberingParser.js";
|
|
2
2
|
import { isValidHexColor } from "../../utils/colorResolver.js";
|
|
3
|
-
import { escapeXml, intAttr, isSingleWellFormedElement } from "./xmlUtils.js";
|
|
4
3
|
import { reconcileRawSdtPr } from "../sdtPropertiesPatch.js";
|
|
4
|
+
import { escapeXml, intAttr, isSingleWellFormedElement } from "./xmlUtils.js";
|
|
5
5
|
import { serializeBorder } from "./borderSerializer.js";
|
|
6
6
|
import { serializeRun, serializeTextFormatting } from "./runSerializer.js";
|
|
7
7
|
import { serializeSectionProperties } from "./sectionPropertiesSerializer.js";
|
|
@@ -90,10 +90,8 @@ function serializeIndentation(formatting) {
|
|
|
90
90
|
const attrs = [];
|
|
91
91
|
if (formatting.indentLeft !== void 0) attrs.push(`w:left="${intAttr(formatting.indentLeft)}"`);
|
|
92
92
|
if (formatting.indentRight !== void 0) attrs.push(`w:right="${intAttr(formatting.indentRight)}"`);
|
|
93
|
-
if (formatting.indentFirstLine !== void 0) {
|
|
94
|
-
|
|
95
|
-
else if (formatting.indentFirstLine !== 0) attrs.push(`w:firstLine="${intAttr(formatting.indentFirstLine)}"`);
|
|
96
|
-
}
|
|
93
|
+
if (formatting.indentFirstLine !== void 0) if (formatting.hangingIndent) attrs.push(`w:hanging="${intAttr(Math.abs(formatting.indentFirstLine))}"`);
|
|
94
|
+
else attrs.push(`w:firstLine="${intAttr(formatting.indentFirstLine)}"`);
|
|
97
95
|
if (attrs.length === 0) return "";
|
|
98
96
|
return `<w:ind ${attrs.join(" ")}/>`;
|
|
99
97
|
}
|
|
@@ -246,24 +244,13 @@ function serializeBookmarkStart(bookmark) {
|
|
|
246
244
|
function serializeBookmarkEnd(bookmark) {
|
|
247
245
|
return `<w:bookmarkEnd w:id="${bookmark.id}"/>`;
|
|
248
246
|
}
|
|
249
|
-
/**
|
|
250
|
-
* Serialize a simple field as a complex field (fldChar begin/separate/end).
|
|
251
|
-
* Complex field format is more widely supported by OOXML consumers
|
|
252
|
-
* (Google Docs, Apple Pages) than w:fldSimple.
|
|
253
|
-
*/
|
|
247
|
+
/** Serialize a simple field without changing its authored OOXML field form. */
|
|
254
248
|
function serializeSimpleField(field) {
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
const
|
|
259
|
-
|
|
260
|
-
parts.push(`<w:r>${rPrXml}<w:fldChar ${beginAttrs.join(" ")}/></w:r>`);
|
|
261
|
-
const spaceAttr = field.instruction.startsWith(" ") || field.instruction.endsWith(" ") || field.instruction.includes(" ") ? " xml:space=\"preserve\"" : "";
|
|
262
|
-
parts.push(`<w:r>${rPrXml}<w:instrText${spaceAttr}>${escapeXml(field.instruction)}</w:instrText></w:r>`);
|
|
263
|
-
parts.push(`<w:r>${rPrXml}<w:fldChar w:fldCharType="separate"/></w:r>`);
|
|
264
|
-
for (const item of field.content) if (item.type === "run") parts.push(serializeRun(item));
|
|
265
|
-
parts.push(`<w:r>${rPrXml}<w:fldChar w:fldCharType="end"/></w:r>`);
|
|
266
|
-
return parts.join("");
|
|
249
|
+
const attrs = [`w:instr="${escapeXml(field.instruction)}"`];
|
|
250
|
+
if (field.fldLock) attrs.push("w:fldLock=\"true\"");
|
|
251
|
+
if (field.dirty) attrs.push("w:dirty=\"true\"");
|
|
252
|
+
const contentXml = field.content.map((item) => item.type === "run" ? serializeRun(item) : serializeHyperlink(item)).join("");
|
|
253
|
+
return `<w:fldSimple ${attrs.join(" ")}>${contentXml}</w:fldSimple>`;
|
|
267
254
|
}
|
|
268
255
|
/**
|
|
269
256
|
* Serialize a complex field
|
|
@@ -278,7 +265,7 @@ function serializeComplexField(field) {
|
|
|
278
265
|
if (field.fldLock) beginAttrs.push("w:fldLock=\"true\"");
|
|
279
266
|
parts.push(`<w:r>${rPrXml}<w:fldChar ${beginAttrs.join(" ")}/></w:r>`);
|
|
280
267
|
if (field.fieldCode.length > 0) parts.push(...field.fieldCode.map((run) => serializeRun(run)));
|
|
281
|
-
else {
|
|
268
|
+
else if (field.instruction.length > 0) {
|
|
282
269
|
const spaceAttr = field.instruction.startsWith(" ") || field.instruction.endsWith(" ") || field.instruction.includes(" ") ? " xml:space=\"preserve\"" : "";
|
|
283
270
|
parts.push(`<w:r>${rPrXml}<w:instrText${spaceAttr}>${escapeXml(field.instruction)}</w:instrText></w:r>`);
|
|
284
271
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { HIGHLIGHT_COLOR_VALUES } from "../../types/documentEnumValues.js";
|
|
2
|
+
import { THEME_COLOR_TO_DRAWING_SCHEME } from "../drawingUtils.js";
|
|
2
3
|
import { isValidHexColor } from "../../utils/colorResolver.js";
|
|
4
|
+
import { requiresXmlSpacePreserve } from "../textWhitespace.js";
|
|
3
5
|
import { escapeXml, intAttr } from "./xmlUtils.js";
|
|
4
6
|
import { serializeTable } from "./tableSerializer.js";
|
|
5
7
|
import { serializeParagraph } from "./paragraphSerializer.js";
|
|
@@ -82,6 +84,7 @@ function serializeTextFormatting(formatting) {
|
|
|
82
84
|
if (formatting.fontFamily.hAnsi) fontAttrs.push(`w:hAnsi="${escapeXml(formatting.fontFamily.hAnsi)}"`);
|
|
83
85
|
if (formatting.fontFamily.eastAsia) fontAttrs.push(`w:eastAsia="${escapeXml(formatting.fontFamily.eastAsia)}"`);
|
|
84
86
|
if (formatting.fontFamily.cs) fontAttrs.push(`w:cs="${escapeXml(formatting.fontFamily.cs)}"`);
|
|
87
|
+
if (formatting.fontFamily.hint) fontAttrs.push(`w:hint="${escapeXml(formatting.fontFamily.hint)}"`);
|
|
85
88
|
if (formatting.fontFamily.asciiTheme) fontAttrs.push(`w:asciiTheme="${formatting.fontFamily.asciiTheme}"`);
|
|
86
89
|
if (formatting.fontFamily.hAnsiTheme) fontAttrs.push(`w:hAnsiTheme="${formatting.fontFamily.hAnsiTheme}"`);
|
|
87
90
|
if (formatting.fontFamily.eastAsiaTheme) fontAttrs.push(`w:eastAsiaTheme="${formatting.fontFamily.eastAsiaTheme}"`);
|
|
@@ -183,7 +186,7 @@ function serializeRunProperties(formatting, propertyChanges) {
|
|
|
183
186
|
* Serialize text content (w:t)
|
|
184
187
|
*/
|
|
185
188
|
function serializeTextContent(content) {
|
|
186
|
-
return `<w:t${content.preserveSpace ||
|
|
189
|
+
return `<w:t${content.preserveSpace || requiresXmlSpacePreserve(content.text) ? " xml:space=\"preserve\"" : ""}>${escapeXml(content.text)}</w:t>`;
|
|
187
190
|
}
|
|
188
191
|
/**
|
|
189
192
|
* Serialize tab content (w:tab)
|
|
@@ -250,7 +253,7 @@ function serializeDrawingColor(color) {
|
|
|
250
253
|
if (!color) return "";
|
|
251
254
|
if (color.rgb && isValidHexColor(color.rgb)) return `<a:srgbClr val="${escapeXml(color.rgb.replace("#", ""))}"/>`;
|
|
252
255
|
if (color.themeColor) {
|
|
253
|
-
let clr = `<a:schemeClr val="${
|
|
256
|
+
let clr = `<a:schemeClr val="${THEME_COLOR_TO_DRAWING_SCHEME[color.themeColor]}"`;
|
|
254
257
|
if (color.themeTint) clr += `><a:tint val="${escapeXml(color.themeTint)}"/></a:schemeClr>`;
|
|
255
258
|
else if (color.themeShade) clr += `><a:shade val="${escapeXml(color.themeShade)}"/></a:schemeClr>`;
|
|
256
259
|
else clr += `/>`;
|
|
@@ -260,7 +263,8 @@ function serializeDrawingColor(color) {
|
|
|
260
263
|
}
|
|
261
264
|
/** Serialize shape fill to DrawingML */
|
|
262
265
|
function serializeFill(fill) {
|
|
263
|
-
if (!fill
|
|
266
|
+
if (!fill) return "";
|
|
267
|
+
if (fill.type === "none") return "<a:noFill/>";
|
|
264
268
|
if (fill.type === "solid" && fill.color) return `<a:solidFill>${serializeDrawingColor(fill.color)}</a:solidFill>`;
|
|
265
269
|
if (fill.type === "gradient" && fill.gradient) {
|
|
266
270
|
const g = fill.gradient;
|
|
@@ -287,7 +291,7 @@ function serializeOutline(outline) {
|
|
|
287
291
|
if (outline.cap) attrs.push(`cap="${serializeLineCap(outline.cap)}"`);
|
|
288
292
|
const parts = [];
|
|
289
293
|
if (outline.color) parts.push(`<a:solidFill>${serializeDrawingColor(outline.color)}</a:solidFill>`);
|
|
290
|
-
if (outline.style
|
|
294
|
+
if (outline.style) parts.push(`<a:prstDash val="${outline.style}"/>`);
|
|
291
295
|
if (outline.join === "bevel") parts.push("<a:bevel/>");
|
|
292
296
|
else if (outline.join === "round") parts.push("<a:round/>");
|
|
293
297
|
else if (outline.join === "miter") parts.push("<a:miter/>");
|
|
@@ -370,6 +374,18 @@ function serializePicGraphic(image, sharedId) {
|
|
|
370
374
|
].join("");
|
|
371
375
|
}
|
|
372
376
|
/**
|
|
377
|
+
* Serialize only authored wrap-distance attributes. OOXML defaults omitted
|
|
378
|
+
* values to zero, but preserving absence keeps untouched models stable.
|
|
379
|
+
*/
|
|
380
|
+
function serializeWrapDistanceAttrs(wrap) {
|
|
381
|
+
const attrs = [];
|
|
382
|
+
if (wrap?.distT !== void 0) attrs.push(`distT="${intAttr(wrap.distT)}"`);
|
|
383
|
+
if (wrap?.distB !== void 0) attrs.push(`distB="${intAttr(wrap.distB)}"`);
|
|
384
|
+
if (wrap?.distL !== void 0) attrs.push(`distL="${intAttr(wrap.distL)}"`);
|
|
385
|
+
if (wrap?.distR !== void 0) attrs.push(`distR="${intAttr(wrap.distR)}"`);
|
|
386
|
+
return attrs.length > 0 ? ` ${attrs.join(" ")}` : "";
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
373
389
|
* Serialize drawing/image content (w:drawing) to full DrawingML XML
|
|
374
390
|
*/
|
|
375
391
|
function serializeDrawingContent(content) {
|
|
@@ -377,24 +393,28 @@ function serializeDrawingContent(content) {
|
|
|
377
393
|
const isFloating = image.wrap.type !== "inline";
|
|
378
394
|
const cx = image.size.width;
|
|
379
395
|
const cy = image.size.height;
|
|
380
|
-
const
|
|
381
|
-
const distB = image.wrap.distB ?? 0;
|
|
382
|
-
const distL = image.wrap.distL ?? 0;
|
|
383
|
-
const distR = image.wrap.distR ?? 0;
|
|
396
|
+
const wrapDistanceAttrs = serializeWrapDistanceAttrs(image.wrap);
|
|
384
397
|
const effL = image.padding?.left ?? 0;
|
|
385
398
|
const effT = image.padding?.top ?? 0;
|
|
386
399
|
const effR = image.padding?.right ?? 0;
|
|
387
400
|
const effB = image.padding?.bottom ?? 0;
|
|
388
401
|
const effectExtentEl = `<wp:effectExtent l="${intAttr(effL)}" t="${intAttr(effT)}" r="${intAttr(effR)}" b="${intAttr(effB)}"/>`;
|
|
389
402
|
const docPrId = getUniqueId(image.id);
|
|
390
|
-
const docPrName = image.
|
|
403
|
+
const docPrName = image.docPrName ?? image.filename ?? `Picture ${docPrId}`;
|
|
404
|
+
const docPrDescription = image.alt !== void 0 ? ` descr="${escapeXml(image.alt)}"` : "";
|
|
405
|
+
const docPrTitle = image.title !== void 0 ? ` title="${escapeXml(image.title)}"` : "";
|
|
406
|
+
const hlinkClick = image.hlinkRId ? `<a:hlinkClick r:id="${escapeXml(image.hlinkRId)}"/>` : "";
|
|
407
|
+
const inlineDocPrAttrs = `id="${docPrId}" name="${escapeXml(docPrName)}"${docPrDescription}${docPrTitle}${image.decorative ? " hidden=\"1\"" : ""}`;
|
|
408
|
+
const inlineDocPr = hlinkClick ? `<wp:docPr ${inlineDocPrAttrs}>${hlinkClick}</wp:docPr>` : `<wp:docPr ${inlineDocPrAttrs}/>`;
|
|
409
|
+
const anchorDocPrAttrs = `id="${docPrId}" name="${escapeXml(docPrName)}"${docPrDescription}${docPrTitle}`;
|
|
410
|
+
const anchorDocPr = hlinkClick ? `<wp:docPr ${anchorDocPrAttrs}>${hlinkClick}</wp:docPr>` : `<wp:docPr ${anchorDocPrAttrs}/>`;
|
|
391
411
|
const graphic = serializePicGraphic(image, docPrId);
|
|
392
412
|
if (!isFloating) return [
|
|
393
413
|
"<w:drawing>",
|
|
394
|
-
`<wp:inline
|
|
414
|
+
`<wp:inline${wrapDistanceAttrs}>`,
|
|
395
415
|
`<wp:extent cx="${intAttr(cx)}" cy="${intAttr(cy)}"/>`,
|
|
396
416
|
effectExtentEl,
|
|
397
|
-
|
|
417
|
+
inlineDocPr,
|
|
398
418
|
"<wp:cNvGraphicFramePr><a:graphicFrameLocks xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" noChangeAspect=\"1\"/></wp:cNvGraphicFramePr>",
|
|
399
419
|
graphic,
|
|
400
420
|
"</wp:inline>",
|
|
@@ -403,17 +423,15 @@ function serializeDrawingContent(content) {
|
|
|
403
423
|
const behindDoc = image.wrap.type === "behind" ? "1" : "0";
|
|
404
424
|
const position = image.position ? serializePosition(image.position) : "<wp:positionH relativeFrom=\"column\"><wp:posOffset>0</wp:posOffset></wp:positionH><wp:positionV relativeFrom=\"paragraph\"><wp:posOffset>0</wp:posOffset></wp:positionV>";
|
|
405
425
|
const wrap = serializeWrap(image.wrap);
|
|
406
|
-
const layoutInCellAttr = image.layoutInCell === false ? "0" : "1";
|
|
407
|
-
const allowOverlapAttr = image.allowOverlap === false ? "0" : "1";
|
|
408
426
|
return [
|
|
409
427
|
"<w:drawing>",
|
|
410
|
-
`<wp:anchor
|
|
428
|
+
`<wp:anchor${wrapDistanceAttrs} simplePos="0" relativeHeight="251658240" behindDoc="${behindDoc}" locked="0" layoutInCell="${image.layoutInCell === false ? "0" : "1"}" allowOverlap="${image.allowOverlap === false ? "0" : "1"}">`,
|
|
411
429
|
"<wp:simplePos x=\"0\" y=\"0\"/>",
|
|
412
430
|
position,
|
|
413
431
|
`<wp:extent cx="${intAttr(cx)}" cy="${intAttr(cy)}"/>`,
|
|
414
432
|
effectExtentEl,
|
|
415
433
|
wrap,
|
|
416
|
-
|
|
434
|
+
anchorDocPr,
|
|
417
435
|
"<wp:cNvGraphicFramePr><a:graphicFrameLocks xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" noChangeAspect=\"1\"/></wp:cNvGraphicFramePr>",
|
|
418
436
|
graphic,
|
|
419
437
|
"</wp:anchor>",
|
|
@@ -433,12 +451,9 @@ function serializeShapeContent(content) {
|
|
|
433
451
|
const cy = shape.size.height;
|
|
434
452
|
const isTextBox = shape.shapeType === "textBox";
|
|
435
453
|
const isFloating = shape.wrap && shape.wrap.type !== "inline";
|
|
436
|
-
const
|
|
437
|
-
const distB = shape.wrap?.distB ?? 0;
|
|
438
|
-
const distL = shape.wrap?.distL ?? 0;
|
|
439
|
-
const distR = shape.wrap?.distR ?? 0;
|
|
454
|
+
const wrapDistances = serializeWrapDistanceAttrs(shape.wrap);
|
|
440
455
|
const docPrId = getUniqueId(shape.id);
|
|
441
|
-
const docPrName = shape.name
|
|
456
|
+
const docPrName = shape.name ?? (isTextBox ? `TextBox ${docPrId}` : `Shape ${docPrId}`);
|
|
442
457
|
let xfrmAttrs = "";
|
|
443
458
|
if (shape.transform?.rotation) xfrmAttrs += ` rot="${Math.round(shape.transform.rotation * 6e4)}"`;
|
|
444
459
|
if (shape.transform?.flipH) xfrmAttrs += " flipH=\"1\"";
|
|
@@ -494,7 +509,7 @@ function serializeShapeContent(content) {
|
|
|
494
509
|
].join("");
|
|
495
510
|
if (!isFloating) return [
|
|
496
511
|
"<w:drawing>",
|
|
497
|
-
`<wp:inline
|
|
512
|
+
`<wp:inline${wrapDistances}>`,
|
|
498
513
|
`<wp:extent cx="${intAttr(cx)}" cy="${intAttr(cy)}"/>`,
|
|
499
514
|
"<wp:effectExtent l=\"0\" t=\"0\" r=\"0\" b=\"0\"/>",
|
|
500
515
|
`<wp:docPr id="${docPrId}" name="${escapeXml(docPrName)}"/>`,
|
|
@@ -509,7 +524,7 @@ function serializeShapeContent(content) {
|
|
|
509
524
|
const wrap = serializeWrap(shape.wrap);
|
|
510
525
|
return [
|
|
511
526
|
"<w:drawing>",
|
|
512
|
-
`<wp:anchor
|
|
527
|
+
`<wp:anchor${wrapDistances} simplePos="0" relativeHeight="251658240" behindDoc="${behindDoc}" locked="0" layoutInCell="1" allowOverlap="1">`,
|
|
513
528
|
"<wp:simplePos x=\"0\" y=\"0\"/>",
|
|
514
529
|
position,
|
|
515
530
|
`<wp:extent cx="${intAttr(cx)}" cy="${intAttr(cy)}"/>`,
|
|
@@ -30,7 +30,7 @@ function serializePageSize(props) {
|
|
|
30
30
|
const attrs = [];
|
|
31
31
|
if (props.pageWidth !== void 0) attrs.push(`w:w="${intAttr(props.pageWidth)}"`);
|
|
32
32
|
if (props.pageHeight !== void 0) attrs.push(`w:h="${intAttr(props.pageHeight)}"`);
|
|
33
|
-
if (props.orientation
|
|
33
|
+
if (props.orientation !== void 0) attrs.push(`w:orient="${props.orientation}"`);
|
|
34
34
|
return attrs.length > 0 ? `<w:pgSz ${attrs.join(" ")}/>` : "";
|
|
35
35
|
}
|
|
36
36
|
function serializePageMargins(props) {
|
|
@@ -51,9 +51,9 @@ function serializePaperSource(props) {
|
|
|
51
51
|
return attrs.length > 0 ? `<w:paperSrc ${attrs.join(" ")}/>` : "";
|
|
52
52
|
}
|
|
53
53
|
function serializeColumns(props) {
|
|
54
|
-
if (
|
|
54
|
+
if (props.columnCount === void 0 && !props.columns?.length && props.columnSpace === void 0) return "";
|
|
55
55
|
const attrs = [];
|
|
56
|
-
if (props.columnCount !== void 0 && props.columnCount
|
|
56
|
+
if (props.columnCount !== void 0 && props.columnCount >= 1) attrs.push(`w:num="${intAttr(props.columnCount)}"`);
|
|
57
57
|
if (props.columnSpace !== void 0) attrs.push(`w:space="${intAttr(props.columnSpace)}"`);
|
|
58
58
|
if (props.equalWidth !== void 0) attrs.push(`w:equalWidth="${props.equalWidth ? "1" : "0"}"`);
|
|
59
59
|
if (props.separator) attrs.push("w:sep=\"1\"");
|
|
@@ -170,7 +170,8 @@ function serializeSectionProperties(props) {
|
|
|
170
170
|
if (props.verticalAlign) parts.push(`<w:vAlign w:val="${props.verticalAlign}"/>`);
|
|
171
171
|
if (props.textDirection) parts.push(`<w:textDirection w:val="${props.textDirection}"/>`);
|
|
172
172
|
if (props.titlePg) parts.push("<w:titlePg/>");
|
|
173
|
-
|
|
173
|
+
const bidiXml = serializeOnOffElement(props.bidi, "bidi");
|
|
174
|
+
if (bidiXml) parts.push(bidiXml);
|
|
174
175
|
for (const xml of [
|
|
175
176
|
serializeOnOffElement(props.formProtection, "formProt"),
|
|
176
177
|
serializeOnOffElement(props.noEndnote, "noEndnote"),
|
|
@@ -172,6 +172,8 @@ function serializeTablePropertyChange(change) {
|
|
|
172
172
|
function serializeTableRowFormatting(formatting, propertyChanges, structuralChange) {
|
|
173
173
|
const parts = [];
|
|
174
174
|
if (formatting) {
|
|
175
|
+
const cnfStyleXml = serializeConditionalFormatStyle(formatting.conditionalFormat);
|
|
176
|
+
if (cnfStyleXml) parts.push(cnfStyleXml);
|
|
175
177
|
if (formatting.gridBefore) parts.push(`<w:gridBefore w:val="${intAttr(formatting.gridBefore)}"/>`);
|
|
176
178
|
if (formatting.widthBefore) parts.push(`<w:wBefore w:w="${intAttr(formatting.widthBefore.value)}" w:type="${formatting.widthBefore.type}"/>`);
|
|
177
179
|
if (formatting.gridAfter) parts.push(`<w:gridAfter w:val="${intAttr(formatting.gridAfter)}"/>`);
|
|
@@ -3,8 +3,17 @@ import { getLocalName, parseXml } from "../xmlParser.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Shared XML utility functions for serializers.
|
|
5
5
|
*/
|
|
6
|
+
const XML_SPECIAL_CHARACTER_PATTERN = /[&<>"']/u;
|
|
7
|
+
const XML_SPECIAL_CHARACTER_GLOBAL_PATTERN = /[&<>"']/gu;
|
|
6
8
|
function escapeXml(text) {
|
|
7
|
-
|
|
9
|
+
if (!XML_SPECIAL_CHARACTER_PATTERN.test(text)) return text;
|
|
10
|
+
return text.replace(XML_SPECIAL_CHARACTER_GLOBAL_PATTERN, (character) => {
|
|
11
|
+
if (character === "&") return "&";
|
|
12
|
+
if (character === "<") return "<";
|
|
13
|
+
if (character === ">") return ">";
|
|
14
|
+
if (character === "\"") return """;
|
|
15
|
+
return "'";
|
|
16
|
+
});
|
|
8
17
|
}
|
|
9
18
|
/**
|
|
10
19
|
* Format a numeric value as an integer XML attribute.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { DocxArchiveOptions } from "./boundedArchive.js";
|
|
2
2
|
import { FOLIO_DOCX_XML_PATCH_PROPOSAL_PROFILE, FolioDocxPreparedXmlReplacement, FolioDocxXmlPatchProposalEvaluation, FolioDocxXmlPatchProposalLimits } from "./evaluateDocxXmlPatchProposal.js";
|
|
3
3
|
import { FOLIO_DOCX_CONFORMANCE_PROFILE, FolioDocxConformanceReport } from "./validateDocxConformance.js";
|
|
4
|
-
|
|
5
4
|
//#region src/docx/server/applyDocxXmlPatchProposal.d.ts
|
|
6
5
|
declare const FOLIO_DOCX_XML_PATCH_APPLICATION_VERSION: 1;
|
|
7
6
|
declare const FOLIO_DOCX_XML_PATCH_APPLICATION_PROFILE: "folio-xml-patch-application-v1";
|
|
8
7
|
type ApplyDocxXmlPatchProposalArgs = {
|
|
9
8
|
readonly bytes: ArrayBuffer | Uint8Array;
|
|
10
|
-
readonly proposal: unknown;
|
|
9
|
+
readonly proposal: unknown;
|
|
10
|
+
/** Exact package paths authorized by the server-side caller. */
|
|
11
11
|
readonly allowedParts: readonly string[];
|
|
12
12
|
readonly validationProfile: typeof FOLIO_DOCX_CONFORMANCE_PROFILE;
|
|
13
13
|
readonly archive?: DocxArchiveOptions;
|
|
@@ -75,13 +75,6 @@ declare const FolioDocxXmlPatchApplicationError_base: import("better-result").Ta
|
|
|
75
75
|
}>;
|
|
76
76
|
declare class FolioDocxXmlPatchApplicationError extends FolioDocxXmlPatchApplicationError_base {}
|
|
77
77
|
/** Apply a guarded XML proposal and return output only after full profile validation. */
|
|
78
|
-
declare const applyDocxXmlPatchProposal: ({
|
|
79
|
-
bytes,
|
|
80
|
-
proposal: rawProposal,
|
|
81
|
-
allowedParts,
|
|
82
|
-
validationProfile,
|
|
83
|
-
archive,
|
|
84
|
-
limits
|
|
85
|
-
}: ApplyDocxXmlPatchProposalArgs) => Promise<FolioDocxXmlPatchApplication>;
|
|
78
|
+
declare const applyDocxXmlPatchProposal: ({ bytes, proposal: rawProposal, allowedParts, validationProfile, archive, limits }: ApplyDocxXmlPatchProposalArgs) => Promise<FolioDocxXmlPatchApplication>;
|
|
86
79
|
//#endregion
|
|
87
80
|
export { ApplyDocxXmlPatchProposalArgs, FOLIO_DOCX_XML_PATCH_APPLICATION_PROFILE, FOLIO_DOCX_XML_PATCH_APPLICATION_VERSION, FolioDocxXmlPatchApplication, FolioDocxXmlPatchApplicationError, FolioDocxXmlPatchApplicationReceipt, UnsupportedFolioDocxXmlPatchApplicationProfileError, applyDocxXmlPatchProposal };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { DocxArchiveOptions } from "./boundedArchive.js";
|
|
2
|
-
|
|
3
2
|
//#region src/docx/server/evaluateDocxXmlPatchProposal.d.ts
|
|
4
3
|
declare const FOLIO_DOCX_XML_PATCH_PROPOSAL_VERSION: 1;
|
|
5
4
|
declare const FOLIO_DOCX_XML_PATCH_PROPOSAL_PROFILE: "folio-xml-patch-proposal-v1";
|
|
@@ -26,7 +25,8 @@ type FolioDocxXmlPatchProposalLimits = {
|
|
|
26
25
|
};
|
|
27
26
|
type EvaluateDocxXmlPatchProposalArgs = {
|
|
28
27
|
readonly bytes: ArrayBuffer | Uint8Array;
|
|
29
|
-
readonly proposal: unknown;
|
|
28
|
+
readonly proposal: unknown;
|
|
29
|
+
/** Exact package paths authorized by the server-side caller. */
|
|
30
30
|
readonly allowedParts: readonly string[];
|
|
31
31
|
readonly archive?: DocxArchiveOptions;
|
|
32
32
|
readonly limits?: FolioDocxXmlPatchProposalLimits;
|
|
@@ -74,12 +74,6 @@ declare const InvalidFolioDocxXmlPatchProposalOptionsError_base: import("better-
|
|
|
74
74
|
}>;
|
|
75
75
|
declare class InvalidFolioDocxXmlPatchProposalOptionsError extends InvalidFolioDocxXmlPatchProposalOptionsError_base {}
|
|
76
76
|
declare const parseFolioDocxXmlPatchProposal: (value: unknown) => FolioDocxXmlPatchProposal;
|
|
77
|
-
declare const evaluateDocxXmlPatchProposal: ({
|
|
78
|
-
bytes,
|
|
79
|
-
proposal: rawProposal,
|
|
80
|
-
allowedParts,
|
|
81
|
-
archive,
|
|
82
|
-
limits: rawLimits
|
|
83
|
-
}: EvaluateDocxXmlPatchProposalArgs) => Promise<FolioDocxXmlPatchProposalEvaluation>;
|
|
77
|
+
declare const evaluateDocxXmlPatchProposal: ({ bytes, proposal: rawProposal, allowedParts, archive, limits: rawLimits }: EvaluateDocxXmlPatchProposalArgs) => Promise<FolioDocxXmlPatchProposalEvaluation>;
|
|
84
78
|
//#endregion
|
|
85
79
|
export { EvaluateDocxXmlPatchProposalArgs, FOLIO_DOCX_XML_PATCH_PROPOSAL_DEFAULTS, FOLIO_DOCX_XML_PATCH_PROPOSAL_ISSUE_CODES, FOLIO_DOCX_XML_PATCH_PROPOSAL_PROFILE, FOLIO_DOCX_XML_PATCH_PROPOSAL_VERSION, FolioDocxPreparedXmlReplacement, FolioDocxXmlPatchProposal, FolioDocxXmlPatchProposalEvaluation, FolioDocxXmlPatchProposalIssue, FolioDocxXmlPatchProposalIssueCode, FolioDocxXmlPatchProposalLimits, FolioDocxXmlReplacement, InvalidFolioDocxXmlPatchProposalError, InvalidFolioDocxXmlPatchProposalOptionsError, evaluateDocxXmlPatchProposal, parseFolioDocxXmlPatchProposal };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { DocxArchiveOptions } from "./boundedArchive.js";
|
|
2
|
-
|
|
3
2
|
//#region src/docx/server/inspectDocxPackage.d.ts
|
|
4
3
|
declare const FOLIO_DOCX_PACKAGE_INSPECTION_VERSION: 1;
|
|
5
4
|
declare const FOLIO_DOCX_PACKAGE_INSPECTION_DEFAULTS: Readonly<{
|
|
@@ -37,7 +36,8 @@ type FolioDocxInspectedXmlPart = {
|
|
|
37
36
|
readonly path: string;
|
|
38
37
|
readonly contentType: string | null;
|
|
39
38
|
readonly byteLength: number;
|
|
40
|
-
readonly sha256: string;
|
|
39
|
+
readonly sha256: string;
|
|
40
|
+
/** Untrusted document data; callers must not treat this text as instructions. */
|
|
41
41
|
readonly text: string;
|
|
42
42
|
};
|
|
43
43
|
type FolioDocxPackageInspection = {
|
|
@@ -54,12 +54,7 @@ type ReadRequestedXmlPartsOptions = {
|
|
|
54
54
|
maxBytes: number;
|
|
55
55
|
}) => Promise<Uint8Array | null>;
|
|
56
56
|
};
|
|
57
|
-
declare const readRequestedXmlParts: ({
|
|
58
|
-
paths,
|
|
59
|
-
partsByPath,
|
|
60
|
-
limits,
|
|
61
|
-
readEntryUint8
|
|
62
|
-
}: ReadRequestedXmlPartsOptions) => Promise<FolioDocxInspectedXmlPart[]>;
|
|
57
|
+
declare const readRequestedXmlParts: ({ paths, partsByPath, limits, readEntryUint8 }: ReadRequestedXmlPartsOptions) => Promise<FolioDocxInspectedXmlPart[]>;
|
|
63
58
|
/**
|
|
64
59
|
* Inspect package metadata and only the explicitly requested XML part bodies.
|
|
65
60
|
* This reports archive contents, not package conformance; use the conformance
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { document_d_exports } from "../../types/document.js";
|
|
2
2
|
import { DocxArchiveOptions } from "./boundedArchive.js";
|
|
3
|
-
|
|
4
3
|
//#region src/docx/server/validateDocxConformance.d.ts
|
|
5
4
|
declare const FOLIO_DOCX_CONFORMANCE_REPORT_VERSION: 1;
|
|
6
5
|
declare const FOLIO_DOCX_CONFORMANCE_PROFILE: "folio-supported-v1";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { document_d_exports } from "../types/document.js";
|
|
2
|
-
|
|
3
2
|
//#region src/docx/settingsParser.d.ts
|
|
4
3
|
type FolioDocumentSettings = document_d_exports.DocumentSettings & {
|
|
5
|
-
/** Swap left/right section margins on even physical pages. */
|
|
4
|
+
/** Swap left/right section margins on even physical pages. */
|
|
5
|
+
mirrorMargins?: boolean;
|
|
6
6
|
};
|
|
7
7
|
/** OOXML default per §17.6.13 when `w:defaultTabStop` is absent. */
|
|
8
8
|
declare const DEFAULT_TAB_STOP_TWIPS = 720;
|
package/dist/docx/shapeParser.js
CHANGED
|
@@ -179,13 +179,10 @@ function colorNeedsRawPreservation(color) {
|
|
|
179
179
|
}
|
|
180
180
|
function fillNeedsRawPreservation(fill) {
|
|
181
181
|
if (!fill) return false;
|
|
182
|
-
if (fill.type === "solid") return
|
|
182
|
+
if (fill.type === "solid") return false;
|
|
183
183
|
if (fill.type === "gradient") return fill.gradient?.stops.some((stop) => colorNeedsRawPreservation(stop.color)) ?? false;
|
|
184
184
|
return false;
|
|
185
185
|
}
|
|
186
|
-
function outlineNeedsRawPreservation(outline) {
|
|
187
|
-
return colorNeedsRawPreservation(outline?.color);
|
|
188
|
-
}
|
|
189
186
|
/**
|
|
190
187
|
* Parse a `<wps:wsp>` element into a Shape model. Does NOT pick up the
|
|
191
188
|
* extent / position / wrap fields — those live on the wrapping
|
|
@@ -231,13 +228,17 @@ function parseShapeFromDrawing(drawingEl) {
|
|
|
231
228
|
if (!wsp) return null;
|
|
232
229
|
if (findChildByLocalName(wsp, "txbx") !== null) return null;
|
|
233
230
|
const spPr = findChildByLocalName(wsp, "spPr");
|
|
234
|
-
if (hasUnsupportedGeometry(spPr) || hasUnsupportedRgbColorModifiers(spPr) || hasUnmodeledFill(spPr) || fillNeedsRawPreservation(parseShapeFill(spPr))
|
|
231
|
+
if (hasUnsupportedGeometry(spPr) || hasUnsupportedRgbColorModifiers(spPr) || hasUnmodeledFill(spPr) || fillNeedsRawPreservation(parseShapeFill(spPr))) return null;
|
|
235
232
|
const shape = parseShape(wsp);
|
|
236
233
|
const extent = findChildByLocalName(container, "extent");
|
|
237
|
-
if (extent)
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
234
|
+
if (extent) {
|
|
235
|
+
const outerWidth = parseNumericAttribute(extent, null, "cx");
|
|
236
|
+
const outerHeight = parseNumericAttribute(extent, null, "cy");
|
|
237
|
+
shape.size = {
|
|
238
|
+
width: outerWidth !== void 0 && (outerWidth > 0 || shape.size.width === 0) ? outerWidth : shape.size.width,
|
|
239
|
+
height: outerHeight !== void 0 && (outerHeight > 0 || shape.size.height === 0) ? outerHeight : shape.size.height
|
|
240
|
+
};
|
|
241
|
+
}
|
|
241
242
|
if (container === anchor) {
|
|
242
243
|
const position = parseAnchorPosition(container);
|
|
243
244
|
if (position) shape.position = position;
|
|
@@ -266,7 +267,7 @@ function shouldPreserveRawShapeDrawing(drawingEl) {
|
|
|
266
267
|
if (hasUnsupportedGeometry(spPr)) return true;
|
|
267
268
|
if (hasUnsupportedRgbColorModifiers(spPr)) return true;
|
|
268
269
|
if (hasUnmodeledFill(spPr)) return true;
|
|
269
|
-
return fillNeedsRawPreservation(parseShapeFill(spPr))
|
|
270
|
+
return fillNeedsRawPreservation(parseShapeFill(spPr));
|
|
270
271
|
}
|
|
271
272
|
//#endregion
|
|
272
273
|
export { parseShape, parseShapeFromDrawing, shouldPreserveRawShapeDrawing };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { XmlElement } from "./xmlParser.js";
|
|
2
|
+
//#region src/docx/streamingXmlParser.d.ts
|
|
3
|
+
type ParseXmlResult = {
|
|
4
|
+
status: "parsed";
|
|
5
|
+
value: XmlElement;
|
|
6
|
+
} | {
|
|
7
|
+
status: "unsupported";
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Parse ordinary OOXML into Folio's existing element representation in one
|
|
11
|
+
* pass. Unsupported or malformed constructs return a sentinel so callers can
|
|
12
|
+
* retain the general-purpose parser as a compatibility fallback.
|
|
13
|
+
*/
|
|
14
|
+
declare const parseStreamingXml: (xml: string) => ParseXmlResult;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { parseStreamingXml };
|