@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,348 @@
|
|
|
1
|
+
import { cloneWithXmlnsDeclarations, collectXmlnsDeclarations, elementToXml, findChild, findChildren, findDeep, getAttribute, getLocalName, getTextContent } from "./xmlParser.js";
|
|
2
|
+
//#region src/docx/watermarkParser.ts
|
|
3
|
+
const VML_TEXT_WATERMARK_SHAPETYPE = "#_x0000_t136";
|
|
4
|
+
/**
|
|
5
|
+
* Word's own UI emits picture watermarks with a shape id beginning
|
|
6
|
+
* `WordPictureWatermark`. A logo image dropped into a header from the
|
|
7
|
+
* ribbon gets a plain auto-id like `_x0000_s1025`, so this prefix is
|
|
8
|
+
* the cleanest signal to separate real picture watermarks from
|
|
9
|
+
* ordinary header imagery.
|
|
10
|
+
*/
|
|
11
|
+
const VML_PICTURE_WATERMARK_ID_PREFIX = "WordPictureWatermark";
|
|
12
|
+
/**
|
|
13
|
+
* Whether a VML `<v:shape>` is a watermark rather than ordinary inline
|
|
14
|
+
* imagery. Text watermarks use the WordArt shapetype; picture watermarks
|
|
15
|
+
* carry a `WordPictureWatermark…` id. The VML image parser uses this to
|
|
16
|
+
* leave watermark shapes to this module, so a header watermark is not also
|
|
17
|
+
* rendered as an inline picture.
|
|
18
|
+
*/
|
|
19
|
+
function isWatermarkShape(shape) {
|
|
20
|
+
if ((getAttribute(shape, null, "type") ?? "") === VML_TEXT_WATERMARK_SHAPETYPE) return true;
|
|
21
|
+
return (getAttribute(shape, null, "id") ?? "").startsWith(VML_PICTURE_WATERMARK_ID_PREFIX);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Walk a parsed `<w:hdr>` element and return the watermark it carries,
|
|
25
|
+
* or `undefined` when none is present. Scans every candidate shape /
|
|
26
|
+
* anchor in the header so a non-watermark shape (e.g. a logo image)
|
|
27
|
+
* earlier in document order does not shadow the real watermark.
|
|
28
|
+
*
|
|
29
|
+
* Returns the modeled `Watermark`, the verbatim XML of the hosting
|
|
30
|
+
* paragraph (so the serializer can replay it byte-exact), and a
|
|
31
|
+
* reference to that paragraph so the regular body parser can skip it.
|
|
32
|
+
*/
|
|
33
|
+
function parseWatermark(header) {
|
|
34
|
+
const headerXmlns = collectXmlnsDeclarations(header);
|
|
35
|
+
for (const shape of collectVmlShapesWithContent(header)) {
|
|
36
|
+
const watermark = readVmlWatermark(shape);
|
|
37
|
+
if (watermark) {
|
|
38
|
+
const hosting = findEnclosingParagraph(header, shape);
|
|
39
|
+
if (hosting) return {
|
|
40
|
+
watermark,
|
|
41
|
+
rawParagraphXml: elementToXml(cloneWithXmlnsDeclarations(hosting, headerXmlns)),
|
|
42
|
+
hostingParagraph: hosting,
|
|
43
|
+
blockIndex: blockIndexOf(header, hosting)
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
for (const anchor of collectDrawingMlBehindContentAnchors(header)) {
|
|
48
|
+
const watermark = readDrawingMlTextWatermark(anchor);
|
|
49
|
+
if (watermark) {
|
|
50
|
+
const hosting = findEnclosingParagraph(header, anchor);
|
|
51
|
+
if (hosting) return {
|
|
52
|
+
watermark,
|
|
53
|
+
rawParagraphXml: elementToXml(cloneWithXmlnsDeclarations(hosting, headerXmlns)),
|
|
54
|
+
hostingParagraph: hosting,
|
|
55
|
+
blockIndex: blockIndexOf(header, hosting)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Index of `target` among block-level children of `header` (only
|
|
62
|
+
* `w:p` and `w:tbl` count as blocks). Since the hosting paragraph
|
|
63
|
+
* is filtered out of `content` after parse, this is the index the
|
|
64
|
+
* serializer needs to splice the watermark XML back into so the
|
|
65
|
+
* header rounds-trips with the same flow as the source.
|
|
66
|
+
*/
|
|
67
|
+
function blockIndexOf(header, target) {
|
|
68
|
+
let blockIdx = 0;
|
|
69
|
+
for (const child of header.elements ?? []) {
|
|
70
|
+
if (child === target) return blockIdx;
|
|
71
|
+
if (child.type !== "element") continue;
|
|
72
|
+
const local = getLocalName(child.name ?? "");
|
|
73
|
+
if (local === "p" || local === "tbl") blockIdx++;
|
|
74
|
+
}
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Walk back from a watermark shape / anchor to its enclosing `<w:p>`
|
|
79
|
+
* inside the header. Word always wraps a watermark in its own
|
|
80
|
+
* paragraph; capturing the paragraph (not the shape) means the
|
|
81
|
+
* replayed XML is a self-contained body block the header serializer
|
|
82
|
+
* can splice in without further wrapping.
|
|
83
|
+
*
|
|
84
|
+
* If the paragraph mixes the watermark with other meaningful content
|
|
85
|
+
* (text runs, additional shapes), we refuse to detach — surgically
|
|
86
|
+
* extracting the watermark shape from such a paragraph is out of
|
|
87
|
+
* scope here, and silently dropping the rest on `setDocumentWatermark`
|
|
88
|
+
* would lose data. The caller treats the watermark as unrecoverable
|
|
89
|
+
* in that case; the original paragraph stays in `content` and
|
|
90
|
+
* round-trips through the regular block parser.
|
|
91
|
+
*/
|
|
92
|
+
function findEnclosingParagraph(header, target) {
|
|
93
|
+
for (const child of header.elements ?? []) {
|
|
94
|
+
if (child.type !== "element" || !child.name) continue;
|
|
95
|
+
if (getLocalName(child.name) !== "p") continue;
|
|
96
|
+
if (containsElement(child, target) && isWatermarkOnlyParagraph(child)) return child;
|
|
97
|
+
}
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* A "watermark-only" paragraph carries one shape plus only
|
|
102
|
+
* WordprocessingML wrappers/formatting around it. Field runs,
|
|
103
|
+
* bookmarks, tabs, breaks, text, and sibling shapes are authored
|
|
104
|
+
* content; those paragraphs stay in the regular header content path
|
|
105
|
+
* so clearing a watermark cannot drop unrelated header data.
|
|
106
|
+
*/
|
|
107
|
+
function isWatermarkOnlyParagraph(paragraph) {
|
|
108
|
+
const counts = countParagraphShapeAndBodyContent(paragraph);
|
|
109
|
+
if (counts.bodyContentCount > 0) return false;
|
|
110
|
+
return counts.shapeCount <= 1;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Count non-shape WordprocessingML content inside a paragraph while
|
|
114
|
+
* ignoring pure formatting wrappers. The shape containers themselves
|
|
115
|
+
* (`w:pict` / `w:drawing`) are counted as shapes, but their descendants
|
|
116
|
+
* are skipped so the watermark's own text (`a:t`, etc.) is not treated
|
|
117
|
+
* as body content.
|
|
118
|
+
*/
|
|
119
|
+
function countParagraphShapeAndBodyContent(paragraph) {
|
|
120
|
+
let shapeCount = 0;
|
|
121
|
+
let bodyContentCount = 0;
|
|
122
|
+
const walkParagraph = (root, insidePropertyContainer) => {
|
|
123
|
+
for (const child of root.elements ?? []) {
|
|
124
|
+
if (child.type !== "element") continue;
|
|
125
|
+
const local = getLocalName(child.name ?? "");
|
|
126
|
+
if (local === "pict" || local === "drawing") {
|
|
127
|
+
shapeCount++;
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
const childInsidePropertyContainer = insidePropertyContainer || isWordprocessingPropertyContainer(local);
|
|
131
|
+
if (!childInsidePropertyContainer && !isWatermarkParagraphWrapper(local)) bodyContentCount++;
|
|
132
|
+
walkParagraph(child, childInsidePropertyContainer);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
walkParagraph(paragraph, false);
|
|
136
|
+
return {
|
|
137
|
+
shapeCount,
|
|
138
|
+
bodyContentCount
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
function isWordprocessingPropertyContainer(localName) {
|
|
142
|
+
return localName.endsWith("Pr");
|
|
143
|
+
}
|
|
144
|
+
function isWatermarkParagraphWrapper(localName) {
|
|
145
|
+
return localName === "r";
|
|
146
|
+
}
|
|
147
|
+
function containsElement(root, target) {
|
|
148
|
+
if (root === target) return true;
|
|
149
|
+
for (const child of root.elements ?? []) {
|
|
150
|
+
if (child.type !== "element") continue;
|
|
151
|
+
if (containsElement(child, target)) return true;
|
|
152
|
+
}
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
function collectVmlShapesWithContent(header) {
|
|
156
|
+
const out = [];
|
|
157
|
+
for (const pict of collectByLocalName(header, "pict")) for (const shape of findChildren(pict, "v", "shape")) if (findChild(shape, "v", "textpath") || findChild(shape, "v", "imagedata")) out.push(shape);
|
|
158
|
+
return out;
|
|
159
|
+
}
|
|
160
|
+
function readVmlWatermark(shape) {
|
|
161
|
+
const textpath = findChild(shape, "v", "textpath");
|
|
162
|
+
if (textpath) return readVmlTextWatermark(shape, textpath);
|
|
163
|
+
const imagedata = findChild(shape, "v", "imagedata");
|
|
164
|
+
if (imagedata) return readVmlPictureWatermark(shape, imagedata);
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
function readVmlTextWatermark(shape, textpath) {
|
|
168
|
+
const text = getAttribute(textpath, null, "string") ?? "";
|
|
169
|
+
if (text.length === 0) return null;
|
|
170
|
+
const shapeStyle = getAttribute(shape, null, "style") ?? "";
|
|
171
|
+
if ((getAttribute(shape, null, "type") ?? "") !== VML_TEXT_WATERMARK_SHAPETYPE) return null;
|
|
172
|
+
const font = parseInlineStyle(getAttribute(textpath, null, "style") ?? "", "font-family");
|
|
173
|
+
const color = readVmlFillColor(shape);
|
|
174
|
+
const rotation = parseInlineStyleNumber(shapeStyle, "rotation");
|
|
175
|
+
const opacity = readVmlFillOpacity(shape);
|
|
176
|
+
const watermark = {
|
|
177
|
+
kind: "text",
|
|
178
|
+
text
|
|
179
|
+
};
|
|
180
|
+
if (font !== void 0) watermark.font = stripQuotes(font);
|
|
181
|
+
if (color !== void 0) watermark.color = color;
|
|
182
|
+
if (opacity !== void 0) watermark.opacity = opacity;
|
|
183
|
+
if (rotation !== void 0) watermark.diagonal = rotation === 315 || rotation === -45;
|
|
184
|
+
return watermark;
|
|
185
|
+
}
|
|
186
|
+
function readVmlPictureWatermark(shape, imagedata) {
|
|
187
|
+
if (!(getAttribute(shape, null, "id") ?? "").startsWith(VML_PICTURE_WATERMARK_ID_PREFIX)) return null;
|
|
188
|
+
const imageRId = getAttribute(imagedata, "r", "id") ?? getAttribute(imagedata, null, "id");
|
|
189
|
+
if (!imageRId) return null;
|
|
190
|
+
const watermark = {
|
|
191
|
+
kind: "picture",
|
|
192
|
+
imageRId
|
|
193
|
+
};
|
|
194
|
+
const scale = readVmlPictureWatermarkScale(shape);
|
|
195
|
+
if (scale !== void 0) watermark.scale = scale;
|
|
196
|
+
const { widthPt, heightPt } = readVmlPictureWatermarkDimensions(shape);
|
|
197
|
+
if (widthPt !== void 0) watermark.widthPt = widthPt;
|
|
198
|
+
if (heightPt !== void 0) watermark.heightPt = heightPt;
|
|
199
|
+
if (!readVmlPictureWatermarkHasWashout(imagedata)) watermark.washout = false;
|
|
200
|
+
return watermark;
|
|
201
|
+
}
|
|
202
|
+
const PICTURE_WATERMARK_DEFAULT_WIDTH_PT = 415;
|
|
203
|
+
const PICTURE_WATERMARK_DEFAULT_HEIGHT_PT = 207;
|
|
204
|
+
const PICTURE_WATERMARK_SCALE_EPSILON = .01;
|
|
205
|
+
const PICTURE_WATERMARK_WASHOUT_GAIN = "19661f";
|
|
206
|
+
const PICTURE_WATERMARK_WASHOUT_BLACKLEVEL = "22938f";
|
|
207
|
+
function readVmlPictureWatermarkScale(shape) {
|
|
208
|
+
const shapeStyle = getAttribute(shape, null, "style") ?? "";
|
|
209
|
+
const widthPt = parseInlineStyleLengthPt(shapeStyle, "width");
|
|
210
|
+
const heightPt = parseInlineStyleLengthPt(shapeStyle, "height");
|
|
211
|
+
if (widthPt === void 0 && heightPt === void 0) return;
|
|
212
|
+
const widthScale = widthPt !== void 0 ? widthPt / PICTURE_WATERMARK_DEFAULT_WIDTH_PT : void 0;
|
|
213
|
+
const heightScale = heightPt !== void 0 ? heightPt / PICTURE_WATERMARK_DEFAULT_HEIGHT_PT : void 0;
|
|
214
|
+
if (widthScale !== void 0 && heightScale !== void 0) {
|
|
215
|
+
if (Math.abs(widthScale - heightScale) > PICTURE_WATERMARK_SCALE_EPSILON) return;
|
|
216
|
+
return widthScale;
|
|
217
|
+
}
|
|
218
|
+
return widthScale ?? heightScale;
|
|
219
|
+
}
|
|
220
|
+
function readVmlPictureWatermarkDimensions(shape) {
|
|
221
|
+
const shapeStyle = getAttribute(shape, null, "style") ?? "";
|
|
222
|
+
return {
|
|
223
|
+
widthPt: parseInlineStyleLengthPt(shapeStyle, "width"),
|
|
224
|
+
heightPt: parseInlineStyleLengthPt(shapeStyle, "height")
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
function readVmlPictureWatermarkHasWashout(imagedata) {
|
|
228
|
+
return getAttribute(imagedata, null, "gain") === PICTURE_WATERMARK_WASHOUT_GAIN && getAttribute(imagedata, null, "blacklevel") === PICTURE_WATERMARK_WASHOUT_BLACKLEVEL;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Read the watermark's opacity from the shape's `<v:fill>` child. Word
|
|
232
|
+
* accepts two boolean encodings: the decimal form (`opacity=".5"`) and
|
|
233
|
+
* the fixed-point form (`opacity="32768f"`, where 65536 = fully
|
|
234
|
+
* opaque). Returns `undefined` for any malformed value so the caller
|
|
235
|
+
* falls back to the renderer's silver default.
|
|
236
|
+
*/
|
|
237
|
+
function readVmlFillOpacity(shape) {
|
|
238
|
+
const fill = findChild(shape, "v", "fill");
|
|
239
|
+
if (!fill) return;
|
|
240
|
+
const raw = getAttribute(fill, null, "opacity");
|
|
241
|
+
if (!raw) return;
|
|
242
|
+
if (raw.endsWith("f")) {
|
|
243
|
+
const fixed = Number.parseFloat(raw.slice(0, -1));
|
|
244
|
+
if (!Number.isFinite(fixed)) return;
|
|
245
|
+
return Math.max(0, Math.min(1, fixed / 65536));
|
|
246
|
+
}
|
|
247
|
+
const decimal = Number.parseFloat(raw);
|
|
248
|
+
if (!Number.isFinite(decimal)) return;
|
|
249
|
+
return Math.max(0, Math.min(1, decimal));
|
|
250
|
+
}
|
|
251
|
+
function readVmlFillColor(shape) {
|
|
252
|
+
const raw = getAttribute(shape, null, "fillcolor");
|
|
253
|
+
if (!raw) return;
|
|
254
|
+
const stripped = raw.startsWith("#") ? raw.slice(1) : raw;
|
|
255
|
+
return stripped.toLowerCase() === "auto" ? "auto" : stripped.toUpperCase();
|
|
256
|
+
}
|
|
257
|
+
function collectDrawingMlBehindContentAnchors(header) {
|
|
258
|
+
const out = [];
|
|
259
|
+
for (const drawing of collectByLocalName(header, "drawing")) {
|
|
260
|
+
const anchor = findDeep(drawing, "wp", "anchor");
|
|
261
|
+
if (!anchor) continue;
|
|
262
|
+
const behindDoc = getAttribute(anchor, null, "behindDoc");
|
|
263
|
+
if (behindDoc === "1" || behindDoc === "true") out.push(anchor);
|
|
264
|
+
}
|
|
265
|
+
return out;
|
|
266
|
+
}
|
|
267
|
+
function readDrawingMlTextWatermark(anchor) {
|
|
268
|
+
const text = readDrawingMlTextBody(anchor);
|
|
269
|
+
if (!text) return;
|
|
270
|
+
const font = readDrawingMlFontFamily(anchor);
|
|
271
|
+
const watermark = {
|
|
272
|
+
kind: "text",
|
|
273
|
+
text
|
|
274
|
+
};
|
|
275
|
+
if (font !== void 0) watermark.font = font;
|
|
276
|
+
return watermark;
|
|
277
|
+
}
|
|
278
|
+
function readDrawingMlTextBody(anchor) {
|
|
279
|
+
const txBody = findDeep(anchor, "a", "txBody");
|
|
280
|
+
if (!txBody) return null;
|
|
281
|
+
const parts = [];
|
|
282
|
+
for (const p of findChildren(txBody, "a", "p")) for (const r of findChildren(p, "a", "r")) {
|
|
283
|
+
const t = findChild(r, "a", "t");
|
|
284
|
+
if (t) parts.push(getTextContent(t));
|
|
285
|
+
}
|
|
286
|
+
const joined = parts.join("");
|
|
287
|
+
return joined.length > 0 ? joined : null;
|
|
288
|
+
}
|
|
289
|
+
function readDrawingMlFontFamily(anchor) {
|
|
290
|
+
const latin = findDeep(anchor, "a", "latin");
|
|
291
|
+
if (!latin) return;
|
|
292
|
+
return getAttribute(latin, null, "typeface") ?? void 0;
|
|
293
|
+
}
|
|
294
|
+
function collectByLocalName(root, localName) {
|
|
295
|
+
const out = [];
|
|
296
|
+
walk(root, (el) => {
|
|
297
|
+
if (getLocalName(el.name ?? "") === localName) out.push(el);
|
|
298
|
+
});
|
|
299
|
+
return out;
|
|
300
|
+
}
|
|
301
|
+
function walk(root, visit) {
|
|
302
|
+
for (const child of root.elements ?? []) {
|
|
303
|
+
if (child.type !== "element") continue;
|
|
304
|
+
visit(child);
|
|
305
|
+
walk(child, visit);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
function parseInlineStyle(style, key) {
|
|
309
|
+
const lowerKey = key.toLowerCase();
|
|
310
|
+
for (const part of style.split(";")) {
|
|
311
|
+
const colonIdx = part.indexOf(":");
|
|
312
|
+
if (colonIdx === -1) continue;
|
|
313
|
+
if (part.slice(0, colonIdx).trim().toLowerCase() === lowerKey) return part.slice(colonIdx + 1).trim();
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
function parseInlineStyleNumber(style, key) {
|
|
317
|
+
const raw = parseInlineStyle(style, key);
|
|
318
|
+
if (raw === void 0) return;
|
|
319
|
+
const num = Number.parseFloat(raw);
|
|
320
|
+
return Number.isFinite(num) ? num : void 0;
|
|
321
|
+
}
|
|
322
|
+
const CSS_LENGTH_RE = /^(?<amount>[+-]?(?:\d+|\d*\.\d+))(?<unit>pt|in|cm|mm|px)?$/iu;
|
|
323
|
+
function parseInlineStyleLengthPt(style, key) {
|
|
324
|
+
const raw = parseInlineStyle(style, key);
|
|
325
|
+
if (raw === void 0) return;
|
|
326
|
+
const match = CSS_LENGTH_RE.exec(raw.trim());
|
|
327
|
+
const amountText = match?.groups?.["amount"];
|
|
328
|
+
if (amountText === void 0) return;
|
|
329
|
+
const amount = Number.parseFloat(amountText);
|
|
330
|
+
if (!Number.isFinite(amount) || amount <= 0) return;
|
|
331
|
+
const unit = match?.groups?.["unit"]?.toLowerCase() ?? "pt";
|
|
332
|
+
if (unit === "pt") return amount;
|
|
333
|
+
if (unit === "in") return amount * 72;
|
|
334
|
+
if (unit === "cm") return amount * 72 / 2.54;
|
|
335
|
+
if (unit === "mm") return amount * 72 / 25.4;
|
|
336
|
+
if (unit === "px") return amount * .75;
|
|
337
|
+
}
|
|
338
|
+
function stripQuotes(value) {
|
|
339
|
+
let primary = value;
|
|
340
|
+
const commaIdx = primary.indexOf(",");
|
|
341
|
+
if (commaIdx !== -1) primary = primary.slice(0, commaIdx).trim();
|
|
342
|
+
const matchedDouble = primary.startsWith("\"") && primary.endsWith("\"");
|
|
343
|
+
const matchedSingle = primary.startsWith("'") && primary.endsWith("'");
|
|
344
|
+
if (primary.length >= 2 && (matchedDouble || matchedSingle)) return primary.slice(1, -1);
|
|
345
|
+
return primary;
|
|
346
|
+
}
|
|
347
|
+
//#endregion
|
|
348
|
+
export { isWatermarkShape, parseWatermark };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region src/docx/wrapTypes.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Wrap-type predicates shared across the layout pipeline.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors eigenpal docx-editor `wrapTypes` so that the new textBoxFlow
|
|
6
|
+
* predicates (eigenpal #474) and the existing image classifiers agree on
|
|
7
|
+
* which OOXML wrap variants are floating, which paint over body text, and
|
|
8
|
+
* which wrap around it.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* `true` for any wrap type that takes the object out of inline flow.
|
|
12
|
+
* Includes `topAndBottom` and the wrapNone variants (`behind`/`inFront`):
|
|
13
|
+
* those are anchored at absolute coordinates even though they don't shrink
|
|
14
|
+
* line widths.
|
|
15
|
+
*/
|
|
16
|
+
declare function isFloatingWrapType(wrapType: string | undefined): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* `true` for `behind` and `inFront` — wrapNone variants that don't shrink
|
|
19
|
+
* line widths; text paints over or under the object.
|
|
20
|
+
*/
|
|
21
|
+
declare function isWrapNone(wrapType: string | undefined): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* `true` for wrap types that actually divert lines around the object
|
|
24
|
+
* (`square` / `tight` / `through`). Excludes `topAndBottom` (block flow)
|
|
25
|
+
* and the wrapNone variants.
|
|
26
|
+
*/
|
|
27
|
+
declare function wrapsAroundText(wrapType: string | undefined): boolean;
|
|
28
|
+
//#endregion
|
|
29
|
+
export { isFloatingWrapType, isWrapNone, wrapsAroundText };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
//#region src/docx/wrapTypes.ts
|
|
2
|
+
/**
|
|
3
|
+
* Wrap-type predicates shared across the layout pipeline.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors eigenpal docx-editor `wrapTypes` so that the new textBoxFlow
|
|
6
|
+
* predicates (eigenpal #474) and the existing image classifiers agree on
|
|
7
|
+
* which OOXML wrap variants are floating, which paint over body text, and
|
|
8
|
+
* which wrap around it.
|
|
9
|
+
*/
|
|
10
|
+
const FLOATING_WRAP_TYPES = /* @__PURE__ */ new Set([
|
|
11
|
+
"square",
|
|
12
|
+
"tight",
|
|
13
|
+
"through",
|
|
14
|
+
"topAndBottom",
|
|
15
|
+
"behind",
|
|
16
|
+
"inFront"
|
|
17
|
+
]);
|
|
18
|
+
const TEXT_WRAPPING_TYPES = /* @__PURE__ */ new Set([
|
|
19
|
+
"square",
|
|
20
|
+
"tight",
|
|
21
|
+
"through"
|
|
22
|
+
]);
|
|
23
|
+
/**
|
|
24
|
+
* `true` for any wrap type that takes the object out of inline flow.
|
|
25
|
+
* Includes `topAndBottom` and the wrapNone variants (`behind`/`inFront`):
|
|
26
|
+
* those are anchored at absolute coordinates even though they don't shrink
|
|
27
|
+
* line widths.
|
|
28
|
+
*/
|
|
29
|
+
function isFloatingWrapType(wrapType) {
|
|
30
|
+
return wrapType !== void 0 && FLOATING_WRAP_TYPES.has(wrapType);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* `true` for `behind` and `inFront` — wrapNone variants that don't shrink
|
|
34
|
+
* line widths; text paints over or under the object.
|
|
35
|
+
*/
|
|
36
|
+
function isWrapNone(wrapType) {
|
|
37
|
+
return wrapType === "behind" || wrapType === "inFront";
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* `true` for wrap types that actually divert lines around the object
|
|
41
|
+
* (`square` / `tight` / `through`). Excludes `topAndBottom` (block flow)
|
|
42
|
+
* and the wrapNone variants.
|
|
43
|
+
*/
|
|
44
|
+
function wrapsAroundText(wrapType) {
|
|
45
|
+
return wrapType !== void 0 && TEXT_WRAPPING_TYPES.has(wrapType);
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { isFloatingWrapType, isWrapNone, wrapsAroundText };
|