@stll/folio-core 0.0.1-placeholder.0 → 0.1.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/LICENSE +202 -0
- package/NOTICE.md +29 -0
- package/README.md +41 -0
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/ai-edits/apply.d.ts +35 -0
- package/dist/ai-edits/apply.js +683 -0
- package/dist/ai-edits/clean-text.d.ts +28 -0
- package/dist/ai-edits/clean-text.js +23 -0
- package/dist/ai-edits/headless.d.ts +225 -0
- package/dist/ai-edits/headless.js +513 -0
- package/dist/ai-edits/index.d.ts +6 -0
- package/dist/ai-edits/index.js +5 -0
- package/dist/ai-edits/inline-emphasis.d.ts +38 -0
- package/dist/ai-edits/inline-emphasis.js +78 -0
- package/dist/ai-edits/snapshot.d.ts +9 -0
- package/dist/ai-edits/snapshot.js +195 -0
- package/dist/ai-edits/types.d.ts +156 -0
- package/dist/ai-edits/types.js +0 -0
- package/dist/ai-edits/word-diff.d.ts +20 -0
- package/dist/ai-edits/word-diff.js +77 -0
- package/dist/ai-suggestions/apply.d.ts +17 -0
- package/dist/ai-suggestions/apply.js +64 -0
- package/dist/ai-suggestions/conflict.d.ts +22 -0
- package/dist/ai-suggestions/conflict.js +67 -0
- package/dist/ai-suggestions/text-positions.d.ts +21 -0
- package/dist/ai-suggestions/text-positions.js +48 -0
- package/dist/ai-suggestions/types.d.ts +199 -0
- package/dist/ai-suggestions/types.js +59 -0
- package/dist/content-controls/errors.d.ts +52 -0
- package/dist/content-controls/errors.js +36 -0
- package/dist/content-controls/findContentControls.d.ts +55 -0
- package/dist/content-controls/findContentControls.js +75 -0
- package/dist/content-controls/index.d.ts +4 -0
- package/dist/content-controls/index.js +4 -0
- package/dist/content-controls/mutateContentControls.d.ts +51 -0
- package/dist/content-controls/mutateContentControls.js +377 -0
- package/dist/controller/folioEditor.d.ts +21 -0
- package/dist/controller/folioEditor.js +29 -0
- package/dist/controller/folioEditorEvents.d.ts +23 -0
- package/dist/controller/folioEditorEvents.js +24 -0
- package/dist/controller/hiddenEditorApi.d.ts +35 -0
- package/dist/controller/hiddenEditorApi.js +112 -0
- package/dist/controller/hiddenEditorManager.d.ts +93 -0
- package/dist/controller/hiddenEditorManager.js +308 -0
- package/dist/controller/layoutPipeline.d.ts +63 -0
- package/dist/controller/layoutPipeline.js +406 -0
- package/dist/controller/layoutScheduler.d.ts +41 -0
- package/dist/controller/layoutScheduler.js +59 -0
- package/dist/controller/layoutSession.d.ts +24 -0
- package/dist/controller/layoutSession.js +13 -0
- package/dist/docx/blockContentParser.d.ts +13 -0
- package/dist/docx/blockContentParser.js +289 -0
- package/dist/docx/bookmarkParser.d.ts +178 -0
- package/dist/docx/bookmarkParser.js +246 -0
- package/dist/docx/bookmarkPlacement.d.ts +10 -0
- package/dist/docx/bookmarkPlacement.js +50 -0
- package/dist/docx/bulletMarkers.d.ts +4 -0
- package/dist/docx/bulletMarkers.js +42 -0
- package/dist/docx/commentParser.d.ts +34 -0
- package/dist/docx/commentParser.js +127 -0
- package/dist/docx/commentReferenceNormalization.d.ts +25 -0
- package/dist/docx/commentReferenceNormalization.js +97 -0
- package/dist/docx/commentReplyMarkers.d.ts +20 -0
- package/dist/docx/commentReplyMarkers.js +123 -0
- package/dist/docx/compatibility.d.ts +12 -0
- package/dist/docx/compatibility.js +77 -0
- package/dist/docx/documentParser.d.ts +65 -0
- package/dist/docx/documentParser.js +209 -0
- package/dist/docx/drawingUtils.d.ts +56 -0
- package/dist/docx/drawingUtils.js +305 -0
- package/dist/docx/fieldParser.d.ts +228 -0
- package/dist/docx/fieldParser.js +559 -0
- package/dist/docx/footnoteParser.d.ts +109 -0
- package/dist/docx/footnoteParser.js +270 -0
- package/dist/docx/headerFooterParser.d.ts +119 -0
- package/dist/docx/headerFooterParser.js +266 -0
- package/dist/docx/headerFooterRefParser.d.ts +22 -0
- package/dist/docx/headerFooterRefParser.js +52 -0
- package/dist/docx/headerFooterReferenceNormalization.d.ts +19 -0
- package/dist/docx/headerFooterReferenceNormalization.js +64 -0
- package/dist/docx/hyperlinkParser.d.ts +108 -0
- package/dist/docx/hyperlinkParser.js +230 -0
- package/dist/docx/imageParser.d.ts +93 -0
- package/dist/docx/imageParser.js +522 -0
- package/dist/docx/mathToMathml.d.ts +15 -0
- package/dist/docx/mathToMathml.js +357 -0
- package/dist/docx/modelValidation.d.ts +13 -0
- package/dist/docx/modelValidation.js +21 -0
- package/dist/docx/normalizeBaseDirection.d.ts +12 -0
- package/dist/docx/normalizeBaseDirection.js +81 -0
- package/dist/docx/notePropertiesParser.d.ts +16 -0
- package/dist/docx/notePropertiesParser.js +99 -0
- package/dist/docx/numberingParser.d.ts +86 -0
- package/dist/docx/numberingParser.js +735 -0
- package/dist/docx/numberingReferenceNormalization.d.ts +25 -0
- package/dist/docx/numberingReferenceNormalization.js +22 -0
- package/dist/docx/paragraphParser.d.ts +86 -0
- package/dist/docx/paragraphParser.js +1132 -0
- package/dist/docx/paragraphTraversal.d.ts +19 -0
- package/dist/docx/paragraphTraversal.js +76 -0
- package/dist/docx/parser.d.ts +67 -0
- package/dist/docx/parser.js +391 -0
- package/dist/docx/parserEnums.d.ts +45 -0
- package/dist/docx/parserEnums.js +70 -0
- package/dist/docx/relsParser.d.ts +160 -0
- package/dist/docx/relsParser.js +235 -0
- package/dist/docx/replyToComment.d.ts +29 -0
- package/dist/docx/replyToComment.js +73 -0
- package/dist/docx/rezip.d.ts +166 -0
- package/dist/docx/rezip.js +1194 -0
- package/dist/docx/runConsolidator.d.ts +57 -0
- package/dist/docx/runConsolidator.js +224 -0
- package/dist/docx/runParser.d.ts +78 -0
- package/dist/docx/runParser.js +661 -0
- package/dist/docx/sdtProperties.d.ts +15 -0
- package/dist/docx/sdtProperties.js +290 -0
- package/dist/docx/sdtPropertiesPatch.d.ts +16 -0
- package/dist/docx/sdtPropertiesPatch.js +144 -0
- package/dist/docx/sectionParser.d.ts +95 -0
- package/dist/docx/sectionParser.js +534 -0
- package/dist/docx/selectiveSave.d.ts +25 -0
- package/dist/docx/selectiveSave.js +247 -0
- package/dist/docx/selectiveSaveFlags.d.ts +33 -0
- package/dist/docx/selectiveSaveFlags.js +11 -0
- package/dist/docx/selectiveSaveTripwire.d.ts +33 -0
- package/dist/docx/selectiveSaveTripwire.js +79 -0
- package/dist/docx/selectiveXmlPatch.d.ts +103 -0
- package/dist/docx/selectiveXmlPatch.js +493 -0
- package/dist/docx/serializer/blockSdtSerializer.d.ts +6 -0
- package/dist/docx/serializer/blockSdtSerializer.js +88 -0
- package/dist/docx/serializer/borderSerializer.d.ts +25 -0
- package/dist/docx/serializer/borderSerializer.js +44 -0
- package/dist/docx/serializer/commentSerializer.d.ts +31 -0
- package/dist/docx/serializer/commentSerializer.js +184 -0
- package/dist/docx/serializer/documentSerializer.d.ts +65 -0
- package/dist/docx/serializer/documentSerializer.js +199 -0
- package/dist/docx/serializer/headerFooterSerializer.d.ts +12 -0
- package/dist/docx/serializer/headerFooterSerializer.js +84 -0
- package/dist/docx/serializer/noteSerializer.d.ts +19 -0
- package/dist/docx/serializer/noteSerializer.js +70 -0
- package/dist/docx/serializer/numberingSerializer.d.ts +12 -0
- package/dist/docx/serializer/numberingSerializer.js +93 -0
- package/dist/docx/serializer/paragraphSerializer.d.ts +48 -0
- package/dist/docx/serializer/paragraphSerializer.js +559 -0
- package/dist/docx/serializer/runSerializer.d.ts +56 -0
- package/dist/docx/serializer/runSerializer.js +621 -0
- package/dist/docx/serializer/sectionPropertiesSerializer.d.ts +6 -0
- package/dist/docx/serializer/sectionPropertiesSerializer.js +187 -0
- package/dist/docx/serializer/tableSerializer.d.ts +79 -0
- package/dist/docx/serializer/tableSerializer.js +422 -0
- package/dist/docx/serializer/xmlUtils.d.ts +20 -0
- package/dist/docx/serializer/xmlUtils.js +25 -0
- package/dist/docx/settingsParser.d.ts +8 -0
- package/dist/docx/settingsParser.js +36 -0
- package/dist/docx/shapeParser.d.ts +20 -0
- package/dist/docx/shapeParser.js +272 -0
- package/dist/docx/styleParser.d.ts +50 -0
- package/dist/docx/styleParser.js +905 -0
- package/dist/docx/tableParser.d.ts +202 -0
- package/dist/docx/tableParser.js +811 -0
- package/dist/docx/textBoxParser.d.ts +117 -0
- package/dist/docx/textBoxParser.js +262 -0
- package/dist/docx/themeParser.d.ts +77 -0
- package/dist/docx/themeParser.js +330 -0
- package/dist/docx/trackedMoveRangeNormalization.d.ts +22 -0
- package/dist/docx/trackedMoveRangeNormalization.js +100 -0
- package/dist/docx/unzip.d.ts +118 -0
- package/dist/docx/unzip.js +383 -0
- package/dist/docx/vmlImageParser.d.ts +16 -0
- package/dist/docx/vmlImageParser.js +100 -0
- package/dist/docx/watermarkParser.d.ts +45 -0
- package/dist/docx/watermarkParser.js +348 -0
- package/dist/docx/wrapTypes.d.ts +29 -0
- package/dist/docx/wrapTypes.js +48 -0
- package/dist/docx/xmlParser.d.ts +297 -0
- package/dist/docx/xmlParser.js +527 -0
- package/dist/fields/bookmarkPages.d.ts +13 -0
- package/dist/fields/bookmarkPages.js +66 -0
- package/dist/fields/bookmarkText.d.ts +16 -0
- package/dist/fields/bookmarkText.js +61 -0
- package/dist/fields/evaluateField.d.ts +23 -0
- package/dist/fields/evaluateField.js +77 -0
- package/dist/fields/fieldContext.d.ts +21 -0
- package/dist/fields/fieldContext.js +0 -0
- package/dist/fields/resolveFieldValues.d.ts +44 -0
- package/dist/fields/resolveFieldValues.js +204 -0
- package/dist/fields/sectionPageCounts.d.ts +11 -0
- package/dist/fields/sectionPageCounts.js +16 -0
- package/dist/fields/seqValues.d.ts +14 -0
- package/dist/fields/seqValues.js +36 -0
- package/dist/fonts/embeddedFontTable.d.ts +42 -0
- package/dist/fonts/embeddedFontTable.js +80 -0
- package/dist/fonts/embeddedFonts.d.ts +46 -0
- package/dist/fonts/embeddedFonts.js +112 -0
- package/dist/fonts/fontDeobfuscation.d.ts +30 -0
- package/dist/fonts/fontDeobfuscation.js +57 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +23 -0
- package/dist/layout-bridge/convert/footnoteLayout.d.ts +57 -0
- package/dist/layout-bridge/convert/footnoteLayout.js +316 -0
- package/dist/layout-bridge/convert/headerFooterLayout.d.ts +74 -0
- package/dist/layout-bridge/convert/headerFooterLayout.js +432 -0
- package/dist/layout-bridge/convert/templatePreviewFlow.d.ts +36 -0
- package/dist/layout-bridge/convert/templatePreviewFlow.js +176 -0
- package/dist/layout-bridge/convert/toFlowBlocks.d.ts +65 -0
- package/dist/layout-bridge/convert/toFlowBlocks.js +1309 -0
- package/dist/layout-bridge/convert/wrapEditorViewAsSurface.d.ts +17 -0
- package/dist/layout-bridge/convert/wrapEditorViewAsSurface.js +36 -0
- package/dist/layout-bridge/dom/clickToPositionDom.d.ts +66 -0
- package/dist/layout-bridge/dom/clickToPositionDom.js +304 -0
- package/dist/layout-bridge/dom/findBodyPmSpans.d.ts +7 -0
- package/dist/layout-bridge/dom/findBodyPmSpans.js +17 -0
- package/dist/layout-bridge/dom/findHfPmSpans.d.ts +62 -0
- package/dist/layout-bridge/dom/findHfPmSpans.js +197 -0
- package/dist/layout-bridge/engine/clickToPosition.d.ts +66 -0
- package/dist/layout-bridge/engine/clickToPosition.js +403 -0
- package/dist/layout-bridge/engine/hitTest.d.ts +135 -0
- package/dist/layout-bridge/engine/hitTest.js +375 -0
- package/dist/layout-bridge/engine/measuring/index.d.ts +10 -0
- package/dist/layout-bridge/engine/measuring/index.js +9 -0
- package/dist/layout-bridge/engine/selectionRects.d.ts +59 -0
- package/dist/layout-bridge/engine/selectionRects.js +485 -0
- package/dist/layout-bridge/engine/tableWidthUtils.d.ts +7 -0
- package/dist/layout-bridge/engine/tableWidthUtils.js +25 -0
- package/dist/layout-engine/index.d.ts +44 -0
- package/dist/layout-engine/index.js +691 -0
- package/dist/layout-engine/keep-together.d.ts +43 -0
- package/dist/layout-engine/keep-together.js +98 -0
- package/dist/layout-engine/layoutInstrumentation.d.ts +50 -0
- package/dist/layout-engine/layoutInstrumentation.js +43 -0
- package/dist/layout-engine/lineFlow.d.ts +8 -0
- package/dist/layout-engine/lineFlow.js +17 -0
- package/dist/layout-engine/measure/cache.d.ts +93 -0
- package/dist/layout-engine/measure/cache.js +245 -0
- package/dist/layout-engine/measure/clampFloatingWrapMargins.d.ts +20 -0
- package/dist/layout-engine/measure/clampFloatingWrapMargins.js +29 -0
- package/dist/layout-engine/measure/featureFlags.d.ts +44 -0
- package/dist/layout-engine/measure/featureFlags.js +19 -0
- package/dist/layout-engine/measure/floatingZones.d.ts +89 -0
- package/dist/layout-engine/measure/floatingZones.js +152 -0
- package/dist/layout-engine/measure/font-metrics.worker.d.ts +17 -0
- package/dist/layout-engine/measure/font-metrics.worker.js +104 -0
- package/dist/layout-engine/measure/index.d.ts +9 -0
- package/dist/layout-engine/measure/index.js +8 -0
- package/dist/layout-engine/measure/listMarkerWidth.d.ts +40 -0
- package/dist/layout-engine/measure/listMarkerWidth.js +76 -0
- package/dist/layout-engine/measure/measureBlocks.d.ts +25 -0
- package/dist/layout-engine/measure/measureBlocks.js +450 -0
- package/dist/layout-engine/measure/measureContainer.d.ts +24 -0
- package/dist/layout-engine/measure/measureContainer.js +280 -0
- package/dist/layout-engine/measure/measureHelpers.d.ts +82 -0
- package/dist/layout-engine/measure/measureHelpers.js +156 -0
- package/dist/layout-engine/measure/measureParagraph.d.ts +61 -0
- package/dist/layout-engine/measure/measureParagraph.js +724 -0
- package/dist/layout-engine/measure/measureProvider.d.ts +23 -0
- package/dist/layout-engine/measure/measureProvider.js +35 -0
- package/dist/layout-engine/measure/measureTypes.d.ts +61 -0
- package/dist/layout-engine/measure/measureTypes.js +0 -0
- package/dist/layout-engine/measure/measureWorker.d.ts +54 -0
- package/dist/layout-engine/measure/measureWorker.js +249 -0
- package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +88 -0
- package/dist/layout-engine/measure/measureWorkerProtocol.js +20 -0
- package/dist/layout-engine/measure/tableCellFloating.d.ts +26 -0
- package/dist/layout-engine/measure/tableCellFloating.js +99 -0
- package/dist/layout-engine/paginator.d.ts +84 -0
- package/dist/layout-engine/paginator.js +348 -0
- package/dist/layout-engine/paragraphFragmentRange.d.ts +9 -0
- package/dist/layout-engine/paragraphFragmentRange.js +40 -0
- package/dist/layout-engine/section-breaks.d.ts +78 -0
- package/dist/layout-engine/section-breaks.js +182 -0
- package/dist/layout-engine/tableRowBreak.d.ts +23 -0
- package/dist/layout-engine/tableRowBreak.js +147 -0
- package/dist/layout-engine/textBoxFlow.d.ts +50 -0
- package/dist/layout-engine/textBoxFlow.js +160 -0
- package/dist/layout-engine/types.d.ts +1031 -0
- package/dist/layout-engine/types.js +100 -0
- package/dist/layout-painter/documentColors.d.ts +4 -0
- package/dist/layout-painter/documentColors.js +40 -0
- package/dist/layout-painter/index.d.ts +110 -0
- package/dist/layout-painter/index.js +182 -0
- package/dist/layout-painter/registry/modules/image.d.ts +6 -0
- package/dist/layout-painter/registry/modules/image.js +17 -0
- package/dist/layout-painter/registry/modules/paragraph.d.ts +6 -0
- package/dist/layout-painter/registry/modules/paragraph.js +18 -0
- package/dist/layout-painter/registry/modules/table.d.ts +6 -0
- package/dist/layout-painter/registry/modules/table.js +16 -0
- package/dist/layout-painter/registry/modules/textBox.d.ts +6 -0
- package/dist/layout-painter/registry/modules/textBox.js +13 -0
- package/dist/layout-painter/registry/modules.d.ts +6 -0
- package/dist/layout-painter/registry/modules.js +26 -0
- package/dist/layout-painter/registry/registry.d.ts +24 -0
- package/dist/layout-painter/registry/registry.js +53 -0
- package/dist/layout-painter/registry/types.d.ts +61 -0
- package/dist/layout-painter/registry/types.js +0 -0
- package/dist/layout-painter/renderFragment.d.ts +32 -0
- package/dist/layout-painter/renderFragment.js +114 -0
- package/dist/layout-painter/renderImage.d.ts +88 -0
- package/dist/layout-painter/renderImage.js +130 -0
- package/dist/layout-painter/renderPage.d.ts +264 -0
- package/dist/layout-painter/renderPage.js +1795 -0
- package/dist/layout-painter/renderParagraph.d.ts +93 -0
- package/dist/layout-painter/renderParagraph.js +1300 -0
- package/dist/layout-painter/renderTable.d.ts +36 -0
- package/dist/layout-painter/renderTable.js +432 -0
- package/dist/layout-painter/renderTextBox.d.ts +22 -0
- package/dist/layout-painter/renderTextBox.js +67 -0
- package/dist/layout-painter/renderUtils.d.ts +42 -0
- package/dist/layout-painter/renderUtils.js +30 -0
- package/dist/layout-painter/renderWatermark.d.ts +16 -0
- package/dist/layout-painter/renderWatermark.js +61 -0
- package/dist/layout-painter/sdtBoundary.d.ts +6 -0
- package/dist/layout-painter/sdtBoundary.js +28 -0
- package/dist/managers/ContextMenuManager.d.ts +28 -0
- package/dist/managers/ContextMenuManager.js +48 -0
- package/dist/managers/DocumentLoaderManager.d.ts +47 -0
- package/dist/managers/DocumentLoaderManager.js +69 -0
- package/dist/managers/EditorModeManager.d.ts +28 -0
- package/dist/managers/EditorModeManager.js +50 -0
- package/dist/managers/ErrorManager.d.ts +26 -0
- package/dist/managers/ErrorManager.js +85 -0
- package/dist/managers/FindReplaceManager.d.ts +54 -0
- package/dist/managers/FindReplaceManager.js +104 -0
- package/dist/managers/HistoryManager.d.ts +92 -0
- package/dist/managers/HistoryManager.js +193 -0
- package/dist/managers/Subscribable.d.ts +34 -0
- package/dist/managers/Subscribable.js +46 -0
- package/dist/managers/TableSelectionManager.d.ts +74 -0
- package/dist/managers/TableSelectionManager.js +225 -0
- package/dist/managers/editorShortcuts.d.ts +42 -0
- package/dist/managers/editorShortcuts.js +60 -0
- package/dist/managers/types.d.ts +41 -0
- package/dist/managers/types.js +0 -0
- package/dist/markdown/annotations.d.ts +14 -0
- package/dist/markdown/annotations.js +42 -0
- package/dist/markdown/escape.d.ts +36 -0
- package/dist/markdown/escape.js +59 -0
- package/dist/markdown/fromMarkdown.d.ts +11 -0
- package/dist/markdown/fromMarkdown.js +223 -0
- package/dist/markdown/headings.d.ts +13 -0
- package/dist/markdown/headings.js +20 -0
- package/dist/markdown/images.d.ts +13 -0
- package/dist/markdown/images.js +63 -0
- package/dist/markdown/index.d.ts +18 -0
- package/dist/markdown/index.js +33 -0
- package/dist/markdown/internals.d.ts +15 -0
- package/dist/markdown/internals.js +35 -0
- package/dist/markdown/renderBlock.d.ts +7 -0
- package/dist/markdown/renderBlock.js +68 -0
- package/dist/markdown/renderParagraph.d.ts +11 -0
- package/dist/markdown/renderParagraph.js +64 -0
- package/dist/markdown/renderRuns.d.ts +11 -0
- package/dist/markdown/renderRuns.js +265 -0
- package/dist/markdown/renderTable.d.ts +8 -0
- package/dist/markdown/renderTable.js +229 -0
- package/dist/markdown/trailers.d.ts +13 -0
- package/dist/markdown/trailers.js +54 -0
- package/dist/markdown/types.d.ts +118 -0
- package/dist/markdown/types.js +0 -0
- package/dist/model.d.ts +13 -0
- package/dist/model.js +4 -0
- package/dist/paged-layout/LayoutSelectionGate.d.ts +80 -0
- package/dist/paged-layout/LayoutSelectionGate.js +131 -0
- package/dist/paged-layout/headerFooterMargins.d.ts +73 -0
- package/dist/paged-layout/headerFooterMargins.js +120 -0
- package/dist/paged-layout/hiddenEditorScroll.d.ts +4 -0
- package/dist/paged-layout/hiddenEditorScroll.js +4 -0
- package/dist/paged-layout/incrementalMeasure.d.ts +33 -0
- package/dist/paged-layout/incrementalMeasure.js +56 -0
- package/dist/paged-layout/rangeProjection.d.ts +51 -0
- package/dist/paged-layout/rangeProjection.js +153 -0
- package/dist/paged-layout/readOnlyEditAttempt.d.ts +5 -0
- package/dist/paged-layout/readOnlyEditAttempt.js +22 -0
- package/dist/paged-layout/scrollNavigation.d.ts +23 -0
- package/dist/paged-layout/scrollNavigation.js +31 -0
- package/dist/paged-layout/scrollPageInfo.d.ts +41 -0
- package/dist/paged-layout/scrollPageInfo.js +34 -0
- package/dist/paged-layout/scrollToPmPosition.d.ts +17 -0
- package/dist/paged-layout/scrollToPmPosition.js +95 -0
- package/dist/paged-layout/sectionBlockWidths.d.ts +35 -0
- package/dist/paged-layout/sectionBlockWidths.js +52 -0
- package/dist/paged-layout/sectionGeometry.d.ts +21 -0
- package/dist/paged-layout/sectionGeometry.js +36 -0
- package/dist/paged-layout/selectionViewportRect.d.ts +29 -0
- package/dist/paged-layout/selectionViewportRect.js +55 -0
- package/dist/paged-layout/tableColumnResize.d.ts +19 -0
- package/dist/paged-layout/tableColumnResize.js +28 -0
- package/dist/paged-layout/tableInsertButtonGeometry.d.ts +15 -0
- package/dist/paged-layout/tableInsertButtonGeometry.js +15 -0
- package/dist/paged-layout/transactionDirtyRange.d.ts +7 -0
- package/dist/paged-layout/transactionDirtyRange.js +27 -0
- package/dist/paged-layout/zoomScrollAnchor.d.ts +40 -0
- package/dist/paged-layout/zoomScrollAnchor.js +25 -0
- package/dist/prosemirror/attrs/index.d.ts +80 -0
- package/dist/prosemirror/attrs/index.js +1218 -0
- package/dist/prosemirror/autospacingBase.d.ts +11 -0
- package/dist/prosemirror/autospacingBase.js +16 -0
- package/dist/prosemirror/commands/comments.d.ts +93 -0
- package/dist/prosemirror/commands/comments.js +435 -0
- package/dist/prosemirror/commands/contentControls.d.ts +45 -0
- package/dist/prosemirror/commands/contentControls.js +294 -0
- package/dist/prosemirror/commands/contentControlsBlockFill.d.ts +15 -0
- package/dist/prosemirror/commands/contentControlsBlockFill.js +19 -0
- package/dist/prosemirror/commands/formatPainter.d.ts +31 -0
- package/dist/prosemirror/commands/formatPainter.js +130 -0
- package/dist/prosemirror/commands/formatting.d.ts +32 -0
- package/dist/prosemirror/commands/formatting.js +45 -0
- package/dist/prosemirror/commands/hyperlink.d.ts +31 -0
- package/dist/prosemirror/commands/hyperlink.js +79 -0
- package/dist/prosemirror/commands/image.d.ts +59 -0
- package/dist/prosemirror/commands/image.js +219 -0
- package/dist/prosemirror/commands/index.d.ts +13 -0
- package/dist/prosemirror/commands/index.js +13 -0
- package/dist/prosemirror/commands/pageBreak.d.ts +10 -0
- package/dist/prosemirror/commands/pageBreak.js +47 -0
- package/dist/prosemirror/commands/paragraph.d.ts +39 -0
- package/dist/prosemirror/commands/paragraph.js +64 -0
- package/dist/prosemirror/commands/pastePlainText.d.ts +39 -0
- package/dist/prosemirror/commands/pastePlainText.js +67 -0
- package/dist/prosemirror/commands/table.d.ts +83 -0
- package/dist/prosemirror/commands/table.js +105 -0
- package/dist/prosemirror/conversion/fromProseDoc.d.ts +27 -0
- package/dist/prosemirror/conversion/fromProseDoc.js +1550 -0
- package/dist/prosemirror/conversion/index.d.ts +4 -0
- package/dist/prosemirror/conversion/index.js +4 -0
- package/dist/prosemirror/conversion/runShadingMark.d.ts +16 -0
- package/dist/prosemirror/conversion/runShadingMark.js +39 -0
- package/dist/prosemirror/conversion/toProseDoc.d.ts +39 -0
- package/dist/prosemirror/conversion/toProseDoc.js +1404 -0
- package/dist/prosemirror/extensions/ExtensionManager.d.ts +43 -0
- package/dist/prosemirror/extensions/ExtensionManager.js +86 -0
- package/dist/prosemirror/extensions/StarterKit.d.ts +16 -0
- package/dist/prosemirror/extensions/StarterKit.js +132 -0
- package/dist/prosemirror/extensions/core/DocExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/core/DocExtension.js +12 -0
- package/dist/prosemirror/extensions/core/HistoryExtension.d.ts +13 -0
- package/dist/prosemirror/extensions/core/HistoryExtension.js +28 -0
- package/dist/prosemirror/extensions/core/ParagraphExtension.d.ts +25 -0
- package/dist/prosemirror/extensions/core/ParagraphExtension.js +619 -0
- package/dist/prosemirror/extensions/core/TextExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/core/TextExtension.js +12 -0
- package/dist/prosemirror/extensions/create.d.ts +17 -0
- package/dist/prosemirror/extensions/create.js +129 -0
- package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.d.ts +23 -0
- package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.js +106 -0
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.d.ts +8 -0
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +172 -0
- package/dist/prosemirror/extensions/features/BidiShortcutExtension.d.ts +16 -0
- package/dist/prosemirror/extensions/features/BidiShortcutExtension.js +38 -0
- package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.d.ts +16 -0
- package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.js +21 -0
- package/dist/prosemirror/extensions/features/DropCursorExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/features/DropCursorExtension.js +20 -0
- package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.d.ts +8 -0
- package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +44 -0
- package/dist/prosemirror/extensions/features/GapCursorExtension.d.ts +19 -0
- package/dist/prosemirror/extensions/features/GapCursorExtension.js +24 -0
- package/dist/prosemirror/extensions/features/ImageDragExtension.d.ts +15 -0
- package/dist/prosemirror/extensions/features/ImageDragExtension.js +66 -0
- package/dist/prosemirror/extensions/features/ImagePasteExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/features/ImagePasteExtension.js +91 -0
- package/dist/prosemirror/extensions/features/ListExtension.d.ts +14 -0
- package/dist/prosemirror/extensions/features/ListExtension.js +340 -0
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +60 -0
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +35 -0
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +188 -0
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +20 -0
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +34 -0
- package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.d.ts +20 -0
- package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.js +145 -0
- package/dist/prosemirror/extensions/features/SelectionTrackerExtension.d.ts +10 -0
- package/dist/prosemirror/extensions/features/SelectionTrackerExtension.js +17 -0
- package/dist/prosemirror/extensions/features/bidiShortcutController.d.ts +31 -0
- package/dist/prosemirror/extensions/features/bidiShortcutController.js +27 -0
- package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +31 -0
- package/dist/prosemirror/extensions/features/pasteCleanup.js +159 -0
- package/dist/prosemirror/extensions/marks/AllCapsExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/AllCapsExtension.js +24 -0
- package/dist/prosemirror/extensions/marks/BoldExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/BoldExtension.js +41 -0
- package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.d.ts +14 -0
- package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.js +64 -0
- package/dist/prosemirror/extensions/marks/CharacterStyleExtension.d.ts +23 -0
- package/dist/prosemirror/extensions/marks/CharacterStyleExtension.js +47 -0
- package/dist/prosemirror/extensions/marks/CommentExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/marks/CommentExtension.js +38 -0
- package/dist/prosemirror/extensions/marks/FontFamilyExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/FontFamilyExtension.js +55 -0
- package/dist/prosemirror/extensions/marks/FontSizeExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/FontSizeExtension.js +47 -0
- package/dist/prosemirror/extensions/marks/FootnoteRefExtension.d.ts +11 -0
- package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +92 -0
- package/dist/prosemirror/extensions/marks/HiddenTextExtension.d.ts +23 -0
- package/dist/prosemirror/extensions/marks/HiddenTextExtension.js +35 -0
- package/dist/prosemirror/extensions/marks/HighlightExtension.d.ts +10 -0
- package/dist/prosemirror/extensions/marks/HighlightExtension.js +115 -0
- package/dist/prosemirror/extensions/marks/HyperlinkExtension.d.ts +13 -0
- package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +146 -0
- package/dist/prosemirror/extensions/marks/ItalicExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/ItalicExtension.js +34 -0
- package/dist/prosemirror/extensions/marks/RtlExtension.d.ts +6 -0
- package/dist/prosemirror/extensions/marks/RtlExtension.js +21 -0
- package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.d.ts +11 -0
- package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.js +75 -0
- package/dist/prosemirror/extensions/marks/RunShadingExtension.d.ts +6 -0
- package/dist/prosemirror/extensions/marks/RunShadingExtension.js +38 -0
- package/dist/prosemirror/extensions/marks/SmallCapsExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/SmallCapsExtension.js +24 -0
- package/dist/prosemirror/extensions/marks/StrikeExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/StrikeExtension.js +33 -0
- package/dist/prosemirror/extensions/marks/SubscriptExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/SubscriptExtension.js +25 -0
- package/dist/prosemirror/extensions/marks/SuperscriptExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +25 -0
- package/dist/prosemirror/extensions/marks/TextColorExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/TextColorExtension.js +50 -0
- package/dist/prosemirror/extensions/marks/TextEffectExtension.d.ts +6 -0
- package/dist/prosemirror/extensions/marks/TextEffectExtension.js +35 -0
- package/dist/prosemirror/extensions/marks/TextEffectsExtensions.d.ts +31 -0
- package/dist/prosemirror/extensions/marks/TextEffectsExtensions.js +134 -0
- package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +22 -0
- package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +113 -0
- package/dist/prosemirror/extensions/marks/UnderlineExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/marks/UnderlineExtension.js +60 -0
- package/dist/prosemirror/extensions/marks/markUtils.d.ts +34 -0
- package/dist/prosemirror/extensions/marks/markUtils.js +233 -0
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +22 -0
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +122 -0
- package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/nodes/FieldExtension.js +87 -0
- package/dist/prosemirror/extensions/nodes/HardBreakExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/HardBreakExtension.js +38 -0
- package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.js +18 -0
- package/dist/prosemirror/extensions/nodes/ImageExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/ImageExtension.js +132 -0
- package/dist/prosemirror/extensions/nodes/MathExtension.d.ts +13 -0
- package/dist/prosemirror/extensions/nodes/MathExtension.js +56 -0
- package/dist/prosemirror/extensions/nodes/PageBreakExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/PageBreakExtension.js +20 -0
- package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +12 -0
- package/dist/prosemirror/extensions/nodes/SdtExtension.js +107 -0
- package/dist/prosemirror/extensions/nodes/ShapeExtension.d.ts +30 -0
- package/dist/prosemirror/extensions/nodes/ShapeExtension.js +502 -0
- package/dist/prosemirror/extensions/nodes/TabExtension.d.ts +9 -0
- package/dist/prosemirror/extensions/nodes/TabExtension.js +27 -0
- package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +34 -0
- package/dist/prosemirror/extensions/nodes/TableExtension.js +1972 -0
- package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +34 -0
- package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +150 -0
- package/dist/prosemirror/extensions/types.d.ts +101 -0
- package/dist/prosemirror/extensions/types.js +10 -0
- package/dist/prosemirror/findReplaceSelection.d.ts +23 -0
- package/dist/prosemirror/findReplaceSelection.js +86 -0
- package/dist/prosemirror/index.d.ts +25 -0
- package/dist/prosemirror/index.js +23 -0
- package/dist/prosemirror/insertOperations.d.ts +12 -0
- package/dist/prosemirror/insertOperations.js +19 -0
- package/dist/prosemirror/paragraphDirection.d.ts +42 -0
- package/dist/prosemirror/paragraphDirection.js +33 -0
- package/dist/prosemirror/plugins/aiCitationDecorations.d.ts +40 -0
- package/dist/prosemirror/plugins/aiCitationDecorations.js +90 -0
- package/dist/prosemirror/plugins/aiSuggestionDecorations.d.ts +42 -0
- package/dist/prosemirror/plugins/aiSuggestionDecorations.js +135 -0
- package/dist/prosemirror/plugins/anonymizationDecorations.d.ts +60 -0
- package/dist/prosemirror/plugins/anonymizationDecorations.js +120 -0
- package/dist/prosemirror/plugins/autocompleteSuggestion.d.ts +123 -0
- package/dist/prosemirror/plugins/autocompleteSuggestion.js +283 -0
- package/dist/prosemirror/plugins/contentControlWidgets.d.ts +56 -0
- package/dist/prosemirror/plugins/contentControlWidgets.js +192 -0
- package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +37 -0
- package/dist/prosemirror/plugins/createDocScanPlugin.js +55 -0
- package/dist/prosemirror/plugins/documentStyles.d.ts +18 -0
- package/dist/prosemirror/plugins/documentStyles.js +46 -0
- package/dist/prosemirror/plugins/index.d.ts +3 -0
- package/dist/prosemirror/plugins/index.js +3 -0
- package/dist/prosemirror/plugins/pmTextScan.d.ts +19 -0
- package/dist/prosemirror/plugins/pmTextScan.js +39 -0
- package/dist/prosemirror/plugins/selectionTracker.d.ts +43 -0
- package/dist/prosemirror/plugins/selectionTracker.js +179 -0
- package/dist/prosemirror/plugins/suggestionMode.d.ts +70 -0
- package/dist/prosemirror/plugins/suggestionMode.js +489 -0
- package/dist/prosemirror/plugins/templateDirectives.d.ts +25 -0
- package/dist/prosemirror/plugins/templateDirectives.js +67 -0
- package/dist/prosemirror/plugins/templatePreviewValues.d.ts +49 -0
- package/dist/prosemirror/plugins/templatePreviewValues.js +117 -0
- package/dist/prosemirror/plugins/templateSlashMenu.d.ts +57 -0
- package/dist/prosemirror/plugins/templateSlashMenu.js +184 -0
- package/dist/prosemirror/schema/index.d.ts +15 -0
- package/dist/prosemirror/schema/index.js +20 -0
- package/dist/prosemirror/schema/marks.d.ts +118 -0
- package/dist/prosemirror/schema/marks.js +0 -0
- package/dist/prosemirror/schema/nodes.d.ts +389 -0
- package/dist/prosemirror/schema/nodes.js +0 -0
- package/dist/prosemirror/selectionState.d.ts +23 -0
- package/dist/prosemirror/selectionState.js +111 -0
- package/dist/prosemirror/styles/index.d.ts +2 -0
- package/dist/prosemirror/styles/index.js +2 -0
- package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +32 -0
- package/dist/prosemirror/styles/resolvedStyleAttrs.js +108 -0
- package/dist/prosemirror/styles/styleResolver.d.ts +94 -0
- package/dist/prosemirror/styles/styleResolver.js +200 -0
- package/dist/prosemirror/utils/findParagraphByParaId.d.ts +26 -0
- package/dist/prosemirror/utils/findParagraphByParaId.js +37 -0
- package/dist/prosemirror/utils/tabCalculator.d.ts +110 -0
- package/dist/prosemirror/utils/tabCalculator.js +137 -0
- package/dist/prosemirror/validation.d.ts +20 -0
- package/dist/prosemirror/validation.js +177 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.js +6 -0
- package/dist/style-engine/index.d.ts +3 -0
- package/dist/style-engine/index.js +2 -0
- package/dist/style-engine/styleEngine.d.ts +67 -0
- package/dist/style-engine/styleEngine.js +70 -0
- package/dist/types/block-id.d.ts +58 -0
- package/dist/types/block-id.js +61 -0
- package/dist/types/colors.d.ts +2 -0
- package/dist/types/colors.js +0 -0
- package/dist/types/content.d.ts +2 -0
- package/dist/types/content.js +0 -0
- package/dist/types/document.d.ts +7 -0
- package/dist/types/document.js +0 -0
- package/dist/types/documentEnumValues.d.ts +89 -0
- package/dist/types/documentEnumValues.js +693 -0
- package/dist/types/formatting.d.ts +2 -0
- package/dist/types/formatting.js +0 -0
- package/dist/types/index.d.ts +107 -0
- package/dist/types/index.js +0 -0
- package/dist/utils/authorColors.d.ts +16 -0
- package/dist/utils/authorColors.js +30 -0
- package/dist/utils/baseDirection.d.ts +23 -0
- package/dist/utils/baseDirection.js +34 -0
- package/dist/utils/clipboard.d.ts +126 -0
- package/dist/utils/clipboard.js +622 -0
- package/dist/utils/colorResolver.d.ts +158 -0
- package/dist/utils/colorResolver.js +557 -0
- package/dist/utils/createDocument.d.ts +50 -0
- package/dist/utils/createDocument.js +262 -0
- package/dist/utils/documentLoaderBehavior.d.ts +22 -0
- package/dist/utils/documentLoaderBehavior.js +14 -0
- package/dist/utils/docxInput.d.ts +22 -0
- package/dist/utils/docxInput.js +16 -0
- package/dist/utils/domGuards.d.ts +59 -0
- package/dist/utils/domGuards.js +82 -0
- package/dist/utils/fontFamilyMerge.d.ts +7 -0
- package/dist/utils/fontFamilyMerge.js +31 -0
- package/dist/utils/fontLoader.d.ts +50 -0
- package/dist/utils/fontLoader.js +177 -0
- package/dist/utils/fontResolver.d.ts +61 -0
- package/dist/utils/fontResolver.js +651 -0
- package/dist/utils/fontWeights.d.ts +4 -0
- package/dist/utils/fontWeights.js +4 -0
- package/dist/utils/formatToStyle.d.ts +103 -0
- package/dist/utils/formatToStyle.js +289 -0
- package/dist/utils/headerFooter.d.ts +74 -0
- package/dist/utils/headerFooter.js +257 -0
- package/dist/utils/headingCollector.d.ts +22 -0
- package/dist/utils/headingCollector.js +36 -0
- package/dist/utils/hexId.d.ts +33 -0
- package/dist/utils/hexId.js +37 -0
- package/dist/utils/imageValidation.d.ts +5 -0
- package/dist/utils/imageValidation.js +31 -0
- package/dist/utils/paragraphFormattingMerge.d.ts +14 -0
- package/dist/utils/paragraphFormattingMerge.js +68 -0
- package/dist/utils/replaceText.d.ts +17 -0
- package/dist/utils/replaceText.js +161 -0
- package/dist/utils/rotationBoundingBox.d.ts +12 -0
- package/dist/utils/rotationBoundingBox.js +36 -0
- package/dist/utils/scriptSegments.d.ts +36 -0
- package/dist/utils/scriptSegments.js +52 -0
- package/dist/utils/tableOperations.d.ts +87 -0
- package/dist/utils/tableOperations.js +259 -0
- package/dist/utils/textFormattingMerge.d.ts +6 -0
- package/dist/utils/textFormattingMerge.js +31 -0
- package/dist/utils/tiffConverter.d.ts +18 -0
- package/dist/utils/tiffConverter.js +83 -0
- package/dist/utils/units.d.ts +99 -0
- package/dist/utils/units.js +139 -0
- package/dist/utils/urlSecurity.d.ts +7 -0
- package/dist/utils/urlSecurity.js +65 -0
- package/dist/watermark/index.d.ts +39 -0
- package/dist/watermark/index.js +149 -0
- package/package.json +122 -2
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
//#region src/docx/commentReplyMarkers.ts
|
|
2
|
+
const surfacesFromDocument = (doc) => ({
|
|
3
|
+
body: doc.package.document.content,
|
|
4
|
+
comments: doc.package.document.comments ?? [],
|
|
5
|
+
...doc.package.headers !== void 0 ? { headers: doc.package.headers } : {},
|
|
6
|
+
...doc.package.footers !== void 0 ? { footers: doc.package.footers } : {},
|
|
7
|
+
...doc.package.footnotes !== void 0 ? { footnotes: doc.package.footnotes } : {},
|
|
8
|
+
...doc.package.endnotes !== void 0 ? { endnotes: doc.package.endnotes } : {}
|
|
9
|
+
});
|
|
10
|
+
const surfaceBlockGroups = (surfaces) => {
|
|
11
|
+
const groups = [surfaces.body ?? []];
|
|
12
|
+
for (const header of surfaces.headers?.values() ?? []) groups.push(header.content ?? []);
|
|
13
|
+
for (const footer of surfaces.footers?.values() ?? []) groups.push(footer.content ?? []);
|
|
14
|
+
for (const footnote of surfaces.footnotes ?? []) groups.push(footnote.content ?? []);
|
|
15
|
+
for (const endnote of surfaces.endnotes ?? []) groups.push(endnote.content ?? []);
|
|
16
|
+
return groups;
|
|
17
|
+
};
|
|
18
|
+
const eachParagraph = (blocks, visit) => {
|
|
19
|
+
for (const block of blocks ?? []) {
|
|
20
|
+
if (block.type === "paragraph") {
|
|
21
|
+
visit(block);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (block.type === "table") {
|
|
25
|
+
for (const row of block.rows ?? []) for (const cell of row.cells ?? []) eachParagraph(cell.content ?? [], visit);
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
eachParagraph(block.content ?? [], visit);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const scanAnchors = (surfaces) => {
|
|
32
|
+
const rangeIds = /* @__PURE__ */ new Set();
|
|
33
|
+
const anchoredIds = /* @__PURE__ */ new Set();
|
|
34
|
+
for (const group of surfaceBlockGroups(surfaces)) eachParagraph(group, (paragraph) => {
|
|
35
|
+
for (const item of paragraph.content ?? []) if (item.type === "commentRangeStart") {
|
|
36
|
+
rangeIds.add(item.id);
|
|
37
|
+
anchoredIds.add(item.id);
|
|
38
|
+
} else if (item.type === "commentReference") anchoredIds.add(item.id);
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
rangeIds,
|
|
42
|
+
anchoredIds
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
/** Replies whose parent is another comment (the threaded-discussion shape). */
|
|
46
|
+
const commentParentedReplies = (comments) => {
|
|
47
|
+
const commentIds = new Set(comments.map((comment) => comment.id));
|
|
48
|
+
return comments.filter((comment) => comment.parentId !== void 0 && commentIds.has(comment.parentId));
|
|
49
|
+
};
|
|
50
|
+
const injectIntoParagraph = (paragraph, replyIdsByParent, parentsWithRange) => {
|
|
51
|
+
const content = paragraph.content ?? [];
|
|
52
|
+
if (!content.some((item) => {
|
|
53
|
+
if (item.type === "commentRangeStart" || item.type === "commentRangeEnd") return replyIdsByParent.has(item.id);
|
|
54
|
+
return item.type === "commentReference" && !parentsWithRange.has(item.id) ? replyIdsByParent.has(item.id) : false;
|
|
55
|
+
})) return 0;
|
|
56
|
+
const next = [];
|
|
57
|
+
let injected = 0;
|
|
58
|
+
for (const item of content) {
|
|
59
|
+
next.push(item);
|
|
60
|
+
if (item.type === "commentRangeStart") for (const replyId of replyIdsByParent.get(item.id) ?? []) {
|
|
61
|
+
next.push({
|
|
62
|
+
type: "commentRangeStart",
|
|
63
|
+
id: replyId
|
|
64
|
+
});
|
|
65
|
+
injected += 1;
|
|
66
|
+
}
|
|
67
|
+
else if (item.type === "commentRangeEnd") for (const replyId of replyIdsByParent.get(item.id) ?? []) next.push({
|
|
68
|
+
type: "commentRangeEnd",
|
|
69
|
+
id: replyId
|
|
70
|
+
});
|
|
71
|
+
else if (item.type === "commentReference" && !parentsWithRange.has(item.id)) for (const replyId of replyIdsByParent.get(item.id) ?? []) {
|
|
72
|
+
next.push({
|
|
73
|
+
type: "commentReference",
|
|
74
|
+
id: replyId
|
|
75
|
+
});
|
|
76
|
+
injected += 1;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
paragraph.content = next;
|
|
80
|
+
return injected;
|
|
81
|
+
};
|
|
82
|
+
const synthesizeReplyRangeMarkers = (surfaces) => {
|
|
83
|
+
const replies = commentParentedReplies(surfaces.comments);
|
|
84
|
+
if (replies.length === 0) return 0;
|
|
85
|
+
const { rangeIds, anchoredIds } = scanAnchors(surfaces);
|
|
86
|
+
const replyIdsByParent = /* @__PURE__ */ new Map();
|
|
87
|
+
for (const reply of replies) {
|
|
88
|
+
if (anchoredIds.has(reply.id) || reply.parentId === void 0) continue;
|
|
89
|
+
const siblings = replyIdsByParent.get(reply.parentId) ?? [];
|
|
90
|
+
siblings.push(reply.id);
|
|
91
|
+
replyIdsByParent.set(reply.parentId, siblings);
|
|
92
|
+
}
|
|
93
|
+
if (replyIdsByParent.size === 0) return 0;
|
|
94
|
+
let injected = 0;
|
|
95
|
+
const visit = (paragraph) => {
|
|
96
|
+
injected += injectIntoParagraph(paragraph, replyIdsByParent, rangeIds);
|
|
97
|
+
};
|
|
98
|
+
for (const group of surfaceBlockGroups(surfaces)) eachParagraph(group, visit);
|
|
99
|
+
return injected;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Synthesize reply range markers into a document model in place, so every
|
|
103
|
+
* reply comment picks up its parent's anchor before `document.xml` is
|
|
104
|
+
* serialized. Idempotent and safe to call on both save paths. Returns the
|
|
105
|
+
* number of markers injected.
|
|
106
|
+
*/
|
|
107
|
+
const applyReplyThreadMarkers = (doc) => synthesizeReplyRangeMarkers(surfacesFromDocument(doc));
|
|
108
|
+
/**
|
|
109
|
+
* Whether the model holds a reply comment that has no anchor of its own yet —
|
|
110
|
+
* i.e. one that still needs {@link applyReplyThreadMarkers} to run. The
|
|
111
|
+
* selective-save path uses this to bail to a full repack, which is the path
|
|
112
|
+
* that owns marker synthesis (selective only patches individually-changed
|
|
113
|
+
* paragraphs, so it cannot add a reply's markers to the parent's paragraph).
|
|
114
|
+
*/
|
|
115
|
+
const hasUnsynthesizedReplyRanges = (doc) => {
|
|
116
|
+
const surfaces = surfacesFromDocument(doc);
|
|
117
|
+
const replies = commentParentedReplies(surfaces.comments);
|
|
118
|
+
if (replies.length === 0) return false;
|
|
119
|
+
const { anchoredIds } = scanAnchors(surfaces);
|
|
120
|
+
return replies.some((reply) => !anchoredIds.has(reply.id));
|
|
121
|
+
};
|
|
122
|
+
//#endregion
|
|
123
|
+
export { applyReplyThreadMarkers, hasUnsynthesizedReplyRanges };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { document_d_exports } from "../types/document.js";
|
|
2
|
+
|
|
3
|
+
//#region src/docx/compatibility.d.ts
|
|
4
|
+
type DocxCompatibilityReason = "opaqueDrawing";
|
|
5
|
+
type DocxCompatibility = {
|
|
6
|
+
canSafelyEdit: boolean;
|
|
7
|
+
reasons: DocxCompatibilityReason[];
|
|
8
|
+
unsupportedContentCount: number;
|
|
9
|
+
};
|
|
10
|
+
declare function inspectDocxCompatibility(doc: document_d_exports.Document): DocxCompatibility;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { DocxCompatibility, DocxCompatibilityReason, inspectDocxCompatibility };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
//#region src/docx/compatibility.ts
|
|
2
|
+
const COMPATIBLE_DOCX = {
|
|
3
|
+
canSafelyEdit: true,
|
|
4
|
+
reasons: [],
|
|
5
|
+
unsupportedContentCount: 0
|
|
6
|
+
};
|
|
7
|
+
function inspectDocxCompatibility(doc) {
|
|
8
|
+
const reasons = /* @__PURE__ */ new Set();
|
|
9
|
+
let unsupportedContentCount = 0;
|
|
10
|
+
const record = (reason) => {
|
|
11
|
+
reasons.add(reason);
|
|
12
|
+
unsupportedContentCount += 1;
|
|
13
|
+
};
|
|
14
|
+
inspectBlocks(doc.package.document.content, record);
|
|
15
|
+
for (const header of doc.package.headers?.values() ?? []) inspectHeaderFooter(header, record);
|
|
16
|
+
for (const footer of doc.package.footers?.values() ?? []) inspectHeaderFooter(footer, record);
|
|
17
|
+
for (const footnote of doc.package.footnotes ?? []) inspectBlocks(footnote.content, record);
|
|
18
|
+
for (const endnote of doc.package.endnotes ?? []) inspectBlocks(endnote.content, record);
|
|
19
|
+
if (unsupportedContentCount === 0) return COMPATIBLE_DOCX;
|
|
20
|
+
return {
|
|
21
|
+
canSafelyEdit: false,
|
|
22
|
+
reasons: Array.from(reasons),
|
|
23
|
+
unsupportedContentCount
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function inspectBlocks(blocks, record) {
|
|
27
|
+
for (const block of blocks) {
|
|
28
|
+
if (block.type === "paragraph") {
|
|
29
|
+
inspectParagraphContent(block.content, record);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (block.type === "table") {
|
|
33
|
+
for (const row of block.rows) for (const cell of row.cells) inspectBlocks(cell.content, record);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
inspectBlocks(block.content, record);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function inspectHeaderFooter(headerFooter, record) {
|
|
40
|
+
inspectBlocks(headerFooter.content, record);
|
|
41
|
+
}
|
|
42
|
+
function inspectParagraphContent(content, record) {
|
|
43
|
+
for (const item of content) {
|
|
44
|
+
if (item.type === "run") {
|
|
45
|
+
inspectRun(item, record);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (item.type === "hyperlink") {
|
|
49
|
+
inspectHyperlink(item, record);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (item.type === "inlineSdt") {
|
|
53
|
+
inspectParagraphContent(item.content, record);
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (item.type === "insertion" || item.type === "deletion" || item.type === "moveFrom" || item.type === "moveTo") {
|
|
57
|
+
inspectParagraphContent(item.content, record);
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (item.type === "simpleField") {
|
|
61
|
+
inspectParagraphContent(item.content, record);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (item.type === "complexField") {
|
|
65
|
+
for (const run of item.fieldCode) inspectRun(run, record);
|
|
66
|
+
for (const run of item.fieldResult) inspectRun(run, record);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function inspectHyperlink(hyperlink, record) {
|
|
71
|
+
for (const child of hyperlink.children) if (child.type === "run") inspectRun(child, record);
|
|
72
|
+
}
|
|
73
|
+
function inspectRun(run, record) {
|
|
74
|
+
for (const content of run.content) if (content.type === "drawing" && content.rawXml) record("opaqueDrawing");
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { inspectDocxCompatibility };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { document_d_exports } from "../types/document.js";
|
|
2
|
+
import { NumberingMap } from "./numberingParser.js";
|
|
3
|
+
import { StyleMap } from "./styleParser.js";
|
|
4
|
+
|
|
5
|
+
//#region src/docx/documentParser.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Extract template variables from text
|
|
8
|
+
*
|
|
9
|
+
* @param text - Text to search for variables
|
|
10
|
+
* @returns Array of unique variable names (without braces)
|
|
11
|
+
*/
|
|
12
|
+
declare function extractTemplateVariables(text: string): string[];
|
|
13
|
+
/**
|
|
14
|
+
* Extract all template variables from document content
|
|
15
|
+
*
|
|
16
|
+
* @param content - Array of paragraphs and tables
|
|
17
|
+
* @returns Array of unique variable names
|
|
18
|
+
*/
|
|
19
|
+
declare function extractAllTemplateVariables(content: document_d_exports.BlockContent[]): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Parse document.xml body content
|
|
22
|
+
*
|
|
23
|
+
* @param xml - Raw XML content of document.xml
|
|
24
|
+
* @param styles - Parsed style map
|
|
25
|
+
* @param theme - Parsed theme
|
|
26
|
+
* @param numbering - Parsed numbering definitions
|
|
27
|
+
* @param rels - Document relationships
|
|
28
|
+
* @param media - Media files
|
|
29
|
+
* @returns DocumentBody with content, sections, and template variables
|
|
30
|
+
*/
|
|
31
|
+
declare function parseDocumentBody(xml: string, 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): document_d_exports.DocumentBody;
|
|
32
|
+
/**
|
|
33
|
+
* Get all paragraphs from document body (flattened)
|
|
34
|
+
*/
|
|
35
|
+
declare function getAllParagraphs(body: document_d_exports.DocumentBody): document_d_exports.Paragraph[];
|
|
36
|
+
/**
|
|
37
|
+
* Get all tables from document body
|
|
38
|
+
*/
|
|
39
|
+
declare function getAllTables(body: document_d_exports.DocumentBody): document_d_exports.Table[];
|
|
40
|
+
/**
|
|
41
|
+
* Get plain text from entire document body
|
|
42
|
+
*/
|
|
43
|
+
declare function getDocumentText(body: document_d_exports.DocumentBody): string;
|
|
44
|
+
/**
|
|
45
|
+
* Count total paragraphs in document
|
|
46
|
+
*/
|
|
47
|
+
declare function getParagraphCount(body: document_d_exports.DocumentBody): number;
|
|
48
|
+
/**
|
|
49
|
+
* Count total words in document (approximate)
|
|
50
|
+
*/
|
|
51
|
+
declare function getWordCount(body: document_d_exports.DocumentBody): number;
|
|
52
|
+
/**
|
|
53
|
+
* Count total characters in document
|
|
54
|
+
*/
|
|
55
|
+
declare function getCharacterCount(body: document_d_exports.DocumentBody): number;
|
|
56
|
+
/**
|
|
57
|
+
* Get section count
|
|
58
|
+
*/
|
|
59
|
+
declare function getSectionCount(body: document_d_exports.DocumentBody): number;
|
|
60
|
+
/**
|
|
61
|
+
* Check if document has template variables
|
|
62
|
+
*/
|
|
63
|
+
declare function hasTemplateVariables(body: document_d_exports.DocumentBody): boolean;
|
|
64
|
+
//#endregion
|
|
65
|
+
export { extractAllTemplateVariables, extractTemplateVariables, getAllParagraphs, getAllTables, getCharacterCount, getDocumentText, getParagraphCount, getSectionCount, getWordCount, hasTemplateVariables, parseDocumentBody };
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { collectXmlnsDeclarations, findChild, parseXml } from "./xmlParser.js";
|
|
2
|
+
import { getDefaultSectionProperties, parseSectionProperties } from "./sectionParser.js";
|
|
3
|
+
import { getParagraphText } from "./paragraphParser.js";
|
|
4
|
+
import { parseBlockContent } from "./blockContentParser.js";
|
|
5
|
+
//#region src/docx/documentParser.ts
|
|
6
|
+
/**
|
|
7
|
+
* Regular expression to match template variables {{...}}
|
|
8
|
+
*/
|
|
9
|
+
const TEMPLATE_VARIABLE_REGEX = /\{(?<name>[a-zA-Z_][a-zA-Z0-9_\-.]*)\}/gu;
|
|
10
|
+
/**
|
|
11
|
+
* Extract template variables from text
|
|
12
|
+
*
|
|
13
|
+
* @param text - Text to search for variables
|
|
14
|
+
* @returns Array of unique variable names (without braces)
|
|
15
|
+
*/
|
|
16
|
+
function extractTemplateVariables(text) {
|
|
17
|
+
const variables = [];
|
|
18
|
+
let match;
|
|
19
|
+
TEMPLATE_VARIABLE_REGEX.lastIndex = 0;
|
|
20
|
+
while ((match = TEMPLATE_VARIABLE_REGEX.exec(text)) !== null) {
|
|
21
|
+
const varName = match.groups["name"].trim();
|
|
22
|
+
if (varName && !variables.includes(varName)) variables.push(varName);
|
|
23
|
+
}
|
|
24
|
+
return variables;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Extract all template variables from document content
|
|
28
|
+
*
|
|
29
|
+
* @param content - Array of paragraphs and tables
|
|
30
|
+
* @returns Array of unique variable names
|
|
31
|
+
*/
|
|
32
|
+
function extractAllTemplateVariables(content) {
|
|
33
|
+
const variables = [];
|
|
34
|
+
for (const block of content) if (block.type === "paragraph") {
|
|
35
|
+
const vars = extractTemplateVariables(getParagraphText(block));
|
|
36
|
+
for (const v of vars) if (!variables.includes(v)) variables.push(v);
|
|
37
|
+
} else if (block.type === "table") {
|
|
38
|
+
const tableVars = extractTableVariables(block);
|
|
39
|
+
for (const v of tableVars) if (!variables.includes(v)) variables.push(v);
|
|
40
|
+
}
|
|
41
|
+
return variables;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract template variables from a table
|
|
45
|
+
*/
|
|
46
|
+
function extractTableVariables(table) {
|
|
47
|
+
const variables = [];
|
|
48
|
+
for (const row of table.rows) for (const cell of row.cells) for (const cellContent of cell.content) if (cellContent.type === "paragraph") {
|
|
49
|
+
const vars = extractTemplateVariables(getParagraphText(cellContent));
|
|
50
|
+
for (const v of vars) if (!variables.includes(v)) variables.push(v);
|
|
51
|
+
} else {
|
|
52
|
+
const nestedVars = extractTableVariables(cellContent);
|
|
53
|
+
for (const v of nestedVars) if (!variables.includes(v)) variables.push(v);
|
|
54
|
+
}
|
|
55
|
+
return variables;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build sections from content based on section properties in paragraphs
|
|
59
|
+
*
|
|
60
|
+
* In OOXML, sections are delimited by:
|
|
61
|
+
* 1. w:pPr/w:sectPr within a paragraph (marks end of a section)
|
|
62
|
+
* 2. w:body/w:sectPr (final section properties)
|
|
63
|
+
*
|
|
64
|
+
* @param content - All block content
|
|
65
|
+
* @param finalSectPr - Final section properties from body
|
|
66
|
+
* @returns Array of sections
|
|
67
|
+
*/
|
|
68
|
+
function buildSections(content, finalSectPr) {
|
|
69
|
+
const sections = [];
|
|
70
|
+
let currentSectionContent = [];
|
|
71
|
+
for (const block of content) {
|
|
72
|
+
currentSectionContent.push(block);
|
|
73
|
+
if (block.type === "paragraph" && block.sectionProperties) {
|
|
74
|
+
sections.push({
|
|
75
|
+
properties: block.sectionProperties,
|
|
76
|
+
content: currentSectionContent
|
|
77
|
+
});
|
|
78
|
+
currentSectionContent = [];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (currentSectionContent.length > 0 || sections.length === 0) sections.push({
|
|
82
|
+
properties: finalSectPr ?? getDefaultSectionProperties(),
|
|
83
|
+
content: currentSectionContent
|
|
84
|
+
});
|
|
85
|
+
return sections;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Parse document.xml body content
|
|
89
|
+
*
|
|
90
|
+
* @param xml - Raw XML content of document.xml
|
|
91
|
+
* @param styles - Parsed style map
|
|
92
|
+
* @param theme - Parsed theme
|
|
93
|
+
* @param numbering - Parsed numbering definitions
|
|
94
|
+
* @param rels - Document relationships
|
|
95
|
+
* @param media - Media files
|
|
96
|
+
* @returns DocumentBody with content, sections, and template variables
|
|
97
|
+
*/
|
|
98
|
+
function parseDocumentBody(xml, styles = null, theme = null, numbering = null, rels = null, media = null) {
|
|
99
|
+
const result = { content: [] };
|
|
100
|
+
if (!xml) return result;
|
|
101
|
+
const documentEl = (parseXml(xml).elements ?? []).find((el) => el.type === "element" && (el.name === "w:document" || el.name?.endsWith(":document")));
|
|
102
|
+
if (!documentEl) return result;
|
|
103
|
+
const bodyEl = findChild(documentEl, "w", "body");
|
|
104
|
+
if (!bodyEl) return result;
|
|
105
|
+
result.content = parseBlockContent(bodyEl, styles, theme, numbering, rels, media, { rootXmlns: collectXmlnsDeclarations(documentEl) });
|
|
106
|
+
const finalSectPr = findChild(bodyEl, "w", "sectPr");
|
|
107
|
+
if (finalSectPr) result.finalSectionProperties = parseSectionProperties(finalSectPr);
|
|
108
|
+
result.sections = buildSections(result.content, result.finalSectionProperties);
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get all paragraphs from document body (flattened)
|
|
113
|
+
*/
|
|
114
|
+
function getAllParagraphs(body) {
|
|
115
|
+
const paragraphs = [];
|
|
116
|
+
for (const block of body.content) if (block.type === "paragraph") paragraphs.push(block);
|
|
117
|
+
else if (block.type === "table") paragraphs.push(...getTableParagraphs(block));
|
|
118
|
+
return paragraphs;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get all paragraphs from a table (recursively)
|
|
122
|
+
*/
|
|
123
|
+
function getTableParagraphs(table) {
|
|
124
|
+
const paragraphs = [];
|
|
125
|
+
for (const row of table.rows) for (const cell of row.cells) for (const content of cell.content) if (content.type === "paragraph") paragraphs.push(content);
|
|
126
|
+
else paragraphs.push(...getTableParagraphs(content));
|
|
127
|
+
return paragraphs;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get all tables from document body
|
|
131
|
+
*/
|
|
132
|
+
function getAllTables(body) {
|
|
133
|
+
const tables = [];
|
|
134
|
+
for (const block of body.content) if (block.type === "table") {
|
|
135
|
+
tables.push(block);
|
|
136
|
+
tables.push(...getNestedTables(block));
|
|
137
|
+
}
|
|
138
|
+
return tables;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get nested tables from a table (recursively)
|
|
142
|
+
*/
|
|
143
|
+
function getNestedTables(table) {
|
|
144
|
+
const tables = [];
|
|
145
|
+
for (const row of table.rows) for (const cell of row.cells) for (const content of cell.content) if (content.type === "table") {
|
|
146
|
+
tables.push(content);
|
|
147
|
+
tables.push(...getNestedTables(content));
|
|
148
|
+
}
|
|
149
|
+
return tables;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get plain text from entire document body
|
|
153
|
+
*/
|
|
154
|
+
function getDocumentText(body) {
|
|
155
|
+
const lines = [];
|
|
156
|
+
for (const block of body.content) if (block.type === "paragraph") lines.push(getParagraphText(block));
|
|
157
|
+
else if (block.type === "table") lines.push(getTableText(block));
|
|
158
|
+
return lines.join("\n");
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get plain text from a table
|
|
162
|
+
*/
|
|
163
|
+
function getTableText(table) {
|
|
164
|
+
const lines = [];
|
|
165
|
+
for (const row of table.rows) {
|
|
166
|
+
const rowTexts = [];
|
|
167
|
+
for (const cell of row.cells) {
|
|
168
|
+
const cellTexts = [];
|
|
169
|
+
for (const content of cell.content) if (content.type === "paragraph") cellTexts.push(getParagraphText(content));
|
|
170
|
+
else cellTexts.push(getTableText(content));
|
|
171
|
+
rowTexts.push(cellTexts.join("\n"));
|
|
172
|
+
}
|
|
173
|
+
lines.push(rowTexts.join(" "));
|
|
174
|
+
}
|
|
175
|
+
return lines.join("\n");
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Count total paragraphs in document
|
|
179
|
+
*/
|
|
180
|
+
function getParagraphCount(body) {
|
|
181
|
+
return getAllParagraphs(body).length;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Count total words in document (approximate)
|
|
185
|
+
*/
|
|
186
|
+
function getWordCount(body) {
|
|
187
|
+
const words = getDocumentText(body).trim().split(/\s+/u);
|
|
188
|
+
return words.length > 0 && words[0] !== "" ? words.length : 0;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Count total characters in document
|
|
192
|
+
*/
|
|
193
|
+
function getCharacterCount(body) {
|
|
194
|
+
return getDocumentText(body).length;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Get section count
|
|
198
|
+
*/
|
|
199
|
+
function getSectionCount(body) {
|
|
200
|
+
return body.sections?.length ?? 1;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Check if document has template variables
|
|
204
|
+
*/
|
|
205
|
+
function hasTemplateVariables(body) {
|
|
206
|
+
return extractAllTemplateVariables(body.content).length > 0;
|
|
207
|
+
}
|
|
208
|
+
//#endregion
|
|
209
|
+
export { extractAllTemplateVariables, extractTemplateVariables, getAllParagraphs, getAllTables, getCharacterCount, getDocumentText, getParagraphCount, getSectionCount, getWordCount, hasTemplateVariables, parseDocumentBody };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { document_d_exports } from "../types/document.js";
|
|
2
|
+
import { XmlElement } from "./xmlParser.js";
|
|
3
|
+
|
|
4
|
+
//#region src/docx/drawingUtils.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Parse a color value from a DrawingML element.
|
|
7
|
+
* Handles: a:srgbClr, a:schemeClr, a:sysClr, a:prstClr
|
|
8
|
+
* Applies shade/tint modifiers when present.
|
|
9
|
+
*/
|
|
10
|
+
declare function parseColorElement(element: XmlElement | null): document_d_exports.ColorValue | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Parse fill from shape properties (a:solidFill, a:noFill, a:gradFill).
|
|
13
|
+
*/
|
|
14
|
+
declare function parseFill(spPr: XmlElement | null): document_d_exports.ShapeFill | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Parse outline from shape properties (a:ln).
|
|
17
|
+
*/
|
|
18
|
+
declare function parseOutline(spPr: XmlElement | null): document_d_exports.ShapeOutline | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Parse horizontal position from wp:positionH element.
|
|
21
|
+
*/
|
|
22
|
+
declare function parsePositionH(posH: XmlElement | null): document_d_exports.ImagePosition["horizontal"] | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Parse vertical position from wp:positionV element.
|
|
25
|
+
*/
|
|
26
|
+
declare function parsePositionV(posV: XmlElement | null): document_d_exports.ImagePosition["vertical"] | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Parse position for anchored drawings (combines positionH + positionV).
|
|
29
|
+
*/
|
|
30
|
+
declare function parseAnchorPosition(anchor: XmlElement): document_d_exports.ImagePosition | undefined;
|
|
31
|
+
/** Known wrap element names */
|
|
32
|
+
declare const WRAP_ELEMENT_NAMES: string[];
|
|
33
|
+
/**
|
|
34
|
+
* Parse wrap settings from a wrap element.
|
|
35
|
+
*
|
|
36
|
+
* Distance attributes (distT/distB/distL/distR) can appear on both
|
|
37
|
+
* the anchor element and the wrap child. Wrap child values take priority;
|
|
38
|
+
* anchor-level values are used as fallbacks.
|
|
39
|
+
*/
|
|
40
|
+
declare function parseWrapElement(wrapEl: XmlElement | null, behindDoc: boolean, anchorDistances?: {
|
|
41
|
+
distT?: number;
|
|
42
|
+
distB?: number;
|
|
43
|
+
distL?: number;
|
|
44
|
+
distR?: number;
|
|
45
|
+
}): document_d_exports.ImageWrap;
|
|
46
|
+
/**
|
|
47
|
+
* Parse wrap from an anchor element (finds wrap child internally).
|
|
48
|
+
*/
|
|
49
|
+
declare function parseAnchorWrap(anchor: XmlElement): document_d_exports.ImageWrap | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Resolve a ColorValue to a CSS hex string using default theme colors.
|
|
52
|
+
* For use when no Theme object is available (e.g., shape/text box parsing).
|
|
53
|
+
*/
|
|
54
|
+
declare function resolveColorValueToHex(color: document_d_exports.ColorValue | undefined): string | undefined;
|
|
55
|
+
//#endregion
|
|
56
|
+
export { WRAP_ELEMENT_NAMES, parseAnchorPosition, parseAnchorWrap, parseColorElement, parseFill, parseOutline, parsePositionH, parsePositionV, parseWrapElement, resolveColorValueToHex };
|