@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,108 @@
|
|
|
1
|
+
import { computeListRendering } from "../../docx/numberingParser.js";
|
|
2
|
+
import { setAutospacingBaseValue } from "../autospacingBase.js";
|
|
3
|
+
//#region src/prosemirror/styles/resolvedStyleAttrs.ts
|
|
4
|
+
/**
|
|
5
|
+
* Shared helper for projecting a resolved paragraph style onto ProseMirror
|
|
6
|
+
* paragraph node attrs.
|
|
7
|
+
*
|
|
8
|
+
* Both `applyStyle` (toolbar style picker) and the Enter handler's
|
|
9
|
+
* next-style switch need to write the same set of style-controlled attrs.
|
|
10
|
+
* Keeping the projection in one place ensures the two paths stay in sync —
|
|
11
|
+
* a style applied via the picker and a style applied on Enter produce
|
|
12
|
+
* identical paragraph attrs.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The paragraph attrs a style definition controls. Applying a style resets
|
|
16
|
+
* every one of these to the style's value (or `null` to clear), so a prior
|
|
17
|
+
* style's properties (e.g. a heading's spacing) never leak through. Returns
|
|
18
|
+
* a partial attrs object to merge over the paragraph's existing attrs.
|
|
19
|
+
*/
|
|
20
|
+
function paragraphAttrsFromResolvedStyle(resolved) {
|
|
21
|
+
const ppr = resolved.paragraphFormatting;
|
|
22
|
+
const runFormatting = resolved.runFormatting;
|
|
23
|
+
const hasRunFormatting = !!runFormatting && Object.keys(runFormatting).length > 0;
|
|
24
|
+
return {
|
|
25
|
+
alignment: ppr?.alignment ?? null,
|
|
26
|
+
spaceBefore: ppr?.spaceBefore ?? null,
|
|
27
|
+
spaceAfter: ppr?.spaceAfter ?? null,
|
|
28
|
+
lineSpacing: ppr?.lineSpacing ?? null,
|
|
29
|
+
lineSpacingRule: ppr?.lineSpacingRule ?? null,
|
|
30
|
+
indentLeft: ppr?.indentLeft ?? null,
|
|
31
|
+
indentRight: ppr?.indentRight ?? null,
|
|
32
|
+
indentFirstLine: ppr?.indentFirstLine ?? null,
|
|
33
|
+
hangingIndent: ppr?.hangingIndent ?? null,
|
|
34
|
+
contextualSpacing: ppr?.contextualSpacing ?? null,
|
|
35
|
+
keepNext: ppr?.keepNext ?? null,
|
|
36
|
+
keepLines: ppr?.keepLines ?? null,
|
|
37
|
+
pageBreakBefore: ppr?.pageBreakBefore ?? null,
|
|
38
|
+
outlineLevel: ppr?.outlineLevel ?? null,
|
|
39
|
+
borders: ppr?.borders ?? null,
|
|
40
|
+
defaultTextFormatting: hasRunFormatting ? runFormatting : null,
|
|
41
|
+
_autospacingBase: autospacingBaseFromResolvedParagraphFormatting(ppr)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function autospacingBaseFromResolvedParagraphFormatting(ppr) {
|
|
45
|
+
const base = {};
|
|
46
|
+
if (ppr?.beforeAutospacing) setAutospacingBaseValue(base, "before", ppr.spaceBefore);
|
|
47
|
+
if (ppr?.afterAutospacing) setAutospacingBaseValue(base, "after", ppr.spaceAfter);
|
|
48
|
+
return Object.keys(base).length > 0 ? base : null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The list attrs a style's `w:pPr/w:numPr` controls (numbering reference plus
|
|
52
|
+
* the baked marker-rendering attrs that `toProseDoc` normally derives from
|
|
53
|
+
* `listRendering` at load time). Returns null when the style defines no
|
|
54
|
+
* numbering — applying such a style leaves any existing list attrs alone, so
|
|
55
|
+
* directly-applied (toolbar) lists survive a style switch the way they do in
|
|
56
|
+
* Word, where numbering is not cleared by applying an unnumbered style.
|
|
57
|
+
*
|
|
58
|
+
* When the style does define numbering, the full attr group is reset so a
|
|
59
|
+
* previous list's marker attrs never leak into the new one. Without the
|
|
60
|
+
* numbering definitions the marker template can't be resolved and the painter
|
|
61
|
+
* falls back to a plain decimal marker.
|
|
62
|
+
*
|
|
63
|
+
* The content-derived marker attrs (`listImplicitChildLevelAdvances`,
|
|
64
|
+
* `listMarkerSecondSlotOffsetTwips`) are nulled — they depend on the
|
|
65
|
+
* paragraph's inline LISTNUM fields, which the picker has no view of. A
|
|
66
|
+
* subsequent save + reload re-derives them from the document content.
|
|
67
|
+
*/
|
|
68
|
+
function listAttrsFromResolvedStyle(resolved, numbering) {
|
|
69
|
+
const numPr = resolved.paragraphFormatting?.numPr;
|
|
70
|
+
if (!numPr || numPr.numId === void 0 || numPr.numId === 0) return null;
|
|
71
|
+
const rendering = numbering ? computeListRendering(numPr, numbering) : null;
|
|
72
|
+
const level = numbering?.getLevel(numPr.numId, numPr.ilvl ?? 0);
|
|
73
|
+
const attrs = {
|
|
74
|
+
numPr: {
|
|
75
|
+
numId: numPr.numId,
|
|
76
|
+
ilvl: numPr.ilvl ?? 0
|
|
77
|
+
},
|
|
78
|
+
numPrFromStyle: {
|
|
79
|
+
numId: numPr.numId,
|
|
80
|
+
ilvl: numPr.ilvl ?? 0
|
|
81
|
+
},
|
|
82
|
+
listNumFmt: rendering?.numFmt ?? null,
|
|
83
|
+
listIsBullet: rendering?.isBullet ?? null,
|
|
84
|
+
listIsLegal: rendering?.isLegal ?? null,
|
|
85
|
+
listMarker: rendering?.marker ?? null,
|
|
86
|
+
listMarkerHidden: rendering?.markerHidden ?? null,
|
|
87
|
+
listMarkerFontFamily: rendering?.markerFontFamily ?? null,
|
|
88
|
+
listMarkerFontSize: rendering?.markerFontSize ?? null,
|
|
89
|
+
listMarkerSuffix: rendering?.markerSuffix ?? null,
|
|
90
|
+
listMarkerAllCaps: rendering?.markerAllCaps ?? null,
|
|
91
|
+
listImplicitChildLevelAdvances: null,
|
|
92
|
+
listMarkerSecondSlotOffsetTwips: null,
|
|
93
|
+
listLevelNumFmts: rendering?.levelNumFmts ?? null,
|
|
94
|
+
listAbstractNumId: rendering?.abstractNumId ?? null,
|
|
95
|
+
listStartOverride: rendering?.startOverride ?? null
|
|
96
|
+
};
|
|
97
|
+
const ppr = resolved.paragraphFormatting;
|
|
98
|
+
if (level?.pPr) {
|
|
99
|
+
if (ppr?.indentLeft === void 0 && level.pPr.indentLeft !== void 0) attrs["indentLeft"] = level.pPr.indentLeft;
|
|
100
|
+
if (!(ppr?.indentFirstLine !== void 0 || ppr?.hangingIndent !== void 0)) {
|
|
101
|
+
if (level.pPr.indentFirstLine !== void 0) attrs["indentFirstLine"] = level.pPr.indentFirstLine;
|
|
102
|
+
if (level.pPr.hangingIndent !== void 0) attrs["hangingIndent"] = level.pPr.hangingIndent;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return attrs;
|
|
106
|
+
}
|
|
107
|
+
//#endregion
|
|
108
|
+
export { listAttrsFromResolvedStyle, paragraphAttrsFromResolvedStyle };
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { document_d_exports } from "../../types/document.js";
|
|
2
|
+
|
|
3
|
+
//#region src/prosemirror/styles/styleResolver.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Resolved style properties ready for rendering
|
|
6
|
+
*/
|
|
7
|
+
type ResolvedParagraphStyle = {
|
|
8
|
+
/** Paragraph formatting (alignment, spacing, indentation, etc.) */paragraphFormatting?: document_d_exports.ParagraphFormatting; /** Default run formatting from the style */
|
|
9
|
+
runFormatting?: document_d_exports.TextFormatting;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* StyleResolver provides efficient access to resolved style properties
|
|
13
|
+
*/
|
|
14
|
+
declare class StyleResolver {
|
|
15
|
+
private readonly stylesById;
|
|
16
|
+
private readonly docDefaults;
|
|
17
|
+
private readonly defaultParagraphStyle;
|
|
18
|
+
private readonly defaultCharacterStyle;
|
|
19
|
+
private readonly defaultTableStyle;
|
|
20
|
+
constructor(styleDefinitions: document_d_exports.StyleDefinitions | undefined);
|
|
21
|
+
/**
|
|
22
|
+
* Get a style by ID
|
|
23
|
+
*/
|
|
24
|
+
getStyle(styleId: string): document_d_exports.Style | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Get all available paragraph styles (for toolbar dropdown)
|
|
27
|
+
*/
|
|
28
|
+
getParagraphStyles(): document_d_exports.Style[];
|
|
29
|
+
/**
|
|
30
|
+
* Resolve paragraph style properties, including docDefaults cascade
|
|
31
|
+
*
|
|
32
|
+
* @param styleId - The style ID to resolve (e.g., 'Heading1', 'Normal')
|
|
33
|
+
* @returns Resolved paragraph and run formatting
|
|
34
|
+
*/
|
|
35
|
+
resolveParagraphStyle(styleId: string | undefined | null): ResolvedParagraphStyle;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the style applied to the paragraph that follows one styled with
|
|
38
|
+
* `styleId` when the user presses Enter (OOXML `w:next`, §17.7.4.10).
|
|
39
|
+
*
|
|
40
|
+
* Returns null when the style has no `w:next`, when `next` points back at
|
|
41
|
+
* the same style (the common heading-stays-heading case is handled by the
|
|
42
|
+
* caller), when the style is unknown, when `next` is a dangling reference
|
|
43
|
+
* to a style that does not exist, or when the target is not a paragraph
|
|
44
|
+
* style (malformed DOCX may point `w:next` at a character or table style;
|
|
45
|
+
* writing such an ID into a paragraph's `styleId` would create an invalid
|
|
46
|
+
* reference).
|
|
47
|
+
*/
|
|
48
|
+
getNextStyleId(styleId: string | undefined | null): string | null;
|
|
49
|
+
/**
|
|
50
|
+
* Get all available table styles (for style gallery)
|
|
51
|
+
*/
|
|
52
|
+
getTableStyles(): document_d_exports.Style[];
|
|
53
|
+
/**
|
|
54
|
+
* Resolve run (character) style properties
|
|
55
|
+
*
|
|
56
|
+
* @param styleId - The character style ID to resolve
|
|
57
|
+
* @returns Resolved text formatting
|
|
58
|
+
*/
|
|
59
|
+
resolveRunStyle(styleId: string | undefined | null): document_d_exports.TextFormatting | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Get a character style's own properties WITHOUT docDefaults.
|
|
62
|
+
* Used when the caller already has docDefaults applied (e.g., from paragraph style resolution).
|
|
63
|
+
* This prevents docDefault fonts from incorrectly overriding paragraph style fonts.
|
|
64
|
+
*/
|
|
65
|
+
getRunStyleOwnProperties(styleId: string | undefined | null): document_d_exports.TextFormatting | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Get document defaults
|
|
68
|
+
*/
|
|
69
|
+
getDocDefaults(): document_d_exports.DocDefaults | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Get default paragraph style (usually "Normal")
|
|
72
|
+
*/
|
|
73
|
+
getDefaultParagraphStyle(): document_d_exports.Style | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Get default character style.
|
|
76
|
+
*/
|
|
77
|
+
getDefaultCharacterStyle(): document_d_exports.Style | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Get default table style.
|
|
80
|
+
*/
|
|
81
|
+
getDefaultTableStyle(): document_d_exports.Style | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Check if a style exists
|
|
84
|
+
*/
|
|
85
|
+
hasStyle(styleId: string): boolean;
|
|
86
|
+
private findDefaultStyle;
|
|
87
|
+
private mergeStyleIntoResult;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Create a style resolver from document's style definitions
|
|
91
|
+
*/
|
|
92
|
+
declare function createStyleResolver(styleDefinitions: document_d_exports.StyleDefinitions | undefined): StyleResolver;
|
|
93
|
+
//#endregion
|
|
94
|
+
export { ResolvedParagraphStyle, StyleResolver, createStyleResolver };
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { mergeTextFormatting } from "../../utils/textFormattingMerge.js";
|
|
2
|
+
import { mergeParagraphFormatting } from "../../utils/paragraphFormattingMerge.js";
|
|
3
|
+
//#region src/prosemirror/styles/styleResolver.ts
|
|
4
|
+
/**
|
|
5
|
+
* Word's default-template Normal style, used as a last-resort fallback for a
|
|
6
|
+
* bare document that ships neither a `Normal` style nor `w:docDefaults`: 8pt
|
|
7
|
+
* (160 twips) after spacing, 1.08x line spacing — the values Word writes into
|
|
8
|
+
* a freshly created document's Normal.
|
|
9
|
+
*
|
|
10
|
+
* It is NOT applied when the document provides `w:docDefaults`. Those are the
|
|
11
|
+
* authoritative paragraph defaults per ECMA-376 §17.7.5; an empty
|
|
12
|
+
* `w:pPrDefault` means zero spacing / single line, so synthesizing this style
|
|
13
|
+
* over it wrongly inflates style-less paragraphs (e.g. generated-document
|
|
14
|
+
* table cells whose author relied on the compact default). See
|
|
15
|
+
* eigenpal/docx-editor#909.
|
|
16
|
+
*/
|
|
17
|
+
const BUILTIN_NORMAL_STYLE = {
|
|
18
|
+
styleId: "Normal",
|
|
19
|
+
type: "paragraph",
|
|
20
|
+
name: "Normal",
|
|
21
|
+
default: true,
|
|
22
|
+
pPr: {
|
|
23
|
+
spaceAfter: 160,
|
|
24
|
+
lineSpacing: 259,
|
|
25
|
+
lineSpacingRule: "auto"
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* StyleResolver provides efficient access to resolved style properties
|
|
30
|
+
*/
|
|
31
|
+
var StyleResolver = class {
|
|
32
|
+
stylesById;
|
|
33
|
+
docDefaults;
|
|
34
|
+
defaultParagraphStyle;
|
|
35
|
+
defaultCharacterStyle;
|
|
36
|
+
defaultTableStyle;
|
|
37
|
+
constructor(styleDefinitions) {
|
|
38
|
+
this.stylesById = /* @__PURE__ */ new Map();
|
|
39
|
+
this.docDefaults = styleDefinitions?.docDefaults;
|
|
40
|
+
if (styleDefinitions?.styles) {
|
|
41
|
+
for (const style of styleDefinitions.styles) if (style.styleId) this.stylesById.set(style.styleId, style);
|
|
42
|
+
}
|
|
43
|
+
this.defaultParagraphStyle = this.findDefaultStyle("paragraph");
|
|
44
|
+
this.defaultCharacterStyle = this.findDefaultStyle("character");
|
|
45
|
+
this.defaultTableStyle = this.findDefaultStyle("table");
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get a style by ID
|
|
49
|
+
*/
|
|
50
|
+
getStyle(styleId) {
|
|
51
|
+
return this.stylesById.get(styleId);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get all available paragraph styles (for toolbar dropdown)
|
|
55
|
+
*/
|
|
56
|
+
getParagraphStyles() {
|
|
57
|
+
const styles = [];
|
|
58
|
+
for (const style of this.stylesById.values()) if (style.type === "paragraph" && !style.hidden && !style.semiHidden) styles.push(style);
|
|
59
|
+
return styles.toSorted((a, b) => {
|
|
60
|
+
const priorityA = a.uiPriority ?? 99;
|
|
61
|
+
const priorityB = b.uiPriority ?? 99;
|
|
62
|
+
if (priorityA !== priorityB) return priorityA - priorityB;
|
|
63
|
+
return (a.name ?? a.styleId).localeCompare(b.name ?? b.styleId);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Resolve paragraph style properties, including docDefaults cascade
|
|
68
|
+
*
|
|
69
|
+
* @param styleId - The style ID to resolve (e.g., 'Heading1', 'Normal')
|
|
70
|
+
* @returns Resolved paragraph and run formatting
|
|
71
|
+
*/
|
|
72
|
+
resolveParagraphStyle(styleId) {
|
|
73
|
+
const result = {};
|
|
74
|
+
if (this.docDefaults?.pPr) result.paragraphFormatting = { ...this.docDefaults.pPr };
|
|
75
|
+
if (this.docDefaults?.rPr) result.runFormatting = { ...this.docDefaults.rPr };
|
|
76
|
+
if (!styleId) {
|
|
77
|
+
if (this.defaultParagraphStyle) this.mergeStyleIntoResult(result, this.defaultParagraphStyle);
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
const style = this.stylesById.get(styleId);
|
|
81
|
+
if (!style) {
|
|
82
|
+
if (this.defaultParagraphStyle) this.mergeStyleIntoResult(result, this.defaultParagraphStyle);
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
this.mergeStyleIntoResult(result, style);
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Resolve the style applied to the paragraph that follows one styled with
|
|
90
|
+
* `styleId` when the user presses Enter (OOXML `w:next`, §17.7.4.10).
|
|
91
|
+
*
|
|
92
|
+
* Returns null when the style has no `w:next`, when `next` points back at
|
|
93
|
+
* the same style (the common heading-stays-heading case is handled by the
|
|
94
|
+
* caller), when the style is unknown, when `next` is a dangling reference
|
|
95
|
+
* to a style that does not exist, or when the target is not a paragraph
|
|
96
|
+
* style (malformed DOCX may point `w:next` at a character or table style;
|
|
97
|
+
* writing such an ID into a paragraph's `styleId` would create an invalid
|
|
98
|
+
* reference).
|
|
99
|
+
*/
|
|
100
|
+
getNextStyleId(styleId) {
|
|
101
|
+
if (!styleId) return null;
|
|
102
|
+
const next = this.stylesById.get(styleId)?.next;
|
|
103
|
+
if (!next || next === styleId) return null;
|
|
104
|
+
const target = this.stylesById.get(next);
|
|
105
|
+
if (!target || target.type !== "paragraph") return null;
|
|
106
|
+
return next;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get all available table styles (for style gallery)
|
|
110
|
+
*/
|
|
111
|
+
getTableStyles() {
|
|
112
|
+
const styles = [];
|
|
113
|
+
for (const style of this.stylesById.values()) if (style.type === "table" && !style.hidden && !style.semiHidden) styles.push(style);
|
|
114
|
+
return styles.toSorted((a, b) => {
|
|
115
|
+
const priorityA = a.uiPriority ?? 99;
|
|
116
|
+
const priorityB = b.uiPriority ?? 99;
|
|
117
|
+
if (priorityA !== priorityB) return priorityA - priorityB;
|
|
118
|
+
return (a.name ?? a.styleId).localeCompare(b.name ?? b.styleId);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Resolve run (character) style properties
|
|
123
|
+
*
|
|
124
|
+
* @param styleId - The character style ID to resolve
|
|
125
|
+
* @returns Resolved text formatting
|
|
126
|
+
*/
|
|
127
|
+
resolveRunStyle(styleId) {
|
|
128
|
+
let result = {};
|
|
129
|
+
if (this.docDefaults?.rPr) result = { ...this.docDefaults.rPr };
|
|
130
|
+
const defaultCharacterRpr = this.defaultCharacterStyle?.rPr;
|
|
131
|
+
if (defaultCharacterRpr) result = mergeTextFormatting(result, defaultCharacterRpr) ?? {};
|
|
132
|
+
const style = styleId ? this.stylesById.get(styleId) : void 0;
|
|
133
|
+
if (!style?.rPr) return Object.keys(result).length > 0 ? result : void 0;
|
|
134
|
+
const merged = mergeTextFormatting(result, style.rPr);
|
|
135
|
+
return merged && Object.keys(merged).length > 0 ? merged : void 0;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get a character style's own properties WITHOUT docDefaults.
|
|
139
|
+
* Used when the caller already has docDefaults applied (e.g., from paragraph style resolution).
|
|
140
|
+
* This prevents docDefault fonts from incorrectly overriding paragraph style fonts.
|
|
141
|
+
*/
|
|
142
|
+
getRunStyleOwnProperties(styleId) {
|
|
143
|
+
if (!styleId) return;
|
|
144
|
+
const style = this.stylesById.get(styleId);
|
|
145
|
+
if (!style?.rPr) return;
|
|
146
|
+
return Object.keys(style.rPr).length > 0 ? { ...style.rPr } : void 0;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get document defaults
|
|
150
|
+
*/
|
|
151
|
+
getDocDefaults() {
|
|
152
|
+
return this.docDefaults;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get default paragraph style (usually "Normal")
|
|
156
|
+
*/
|
|
157
|
+
getDefaultParagraphStyle() {
|
|
158
|
+
return this.defaultParagraphStyle;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get default character style.
|
|
162
|
+
*/
|
|
163
|
+
getDefaultCharacterStyle() {
|
|
164
|
+
return this.defaultCharacterStyle;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Get default table style.
|
|
168
|
+
*/
|
|
169
|
+
getDefaultTableStyle() {
|
|
170
|
+
return this.defaultTableStyle;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Check if a style exists
|
|
174
|
+
*/
|
|
175
|
+
hasStyle(styleId) {
|
|
176
|
+
return this.stylesById.has(styleId);
|
|
177
|
+
}
|
|
178
|
+
findDefaultStyle(type) {
|
|
179
|
+
for (const style of this.stylesById.values()) if (style.type === type && style.default) return style;
|
|
180
|
+
if (type === "paragraph") return this.stylesById.get("Normal") ?? (this.docDefaults ? void 0 : BUILTIN_NORMAL_STYLE);
|
|
181
|
+
}
|
|
182
|
+
mergeStyleIntoResult(result, style) {
|
|
183
|
+
if (style.pPr) {
|
|
184
|
+
const merged = mergeParagraphFormatting(result.paragraphFormatting, style.pPr);
|
|
185
|
+
if (merged !== void 0) result.paragraphFormatting = merged;
|
|
186
|
+
}
|
|
187
|
+
if (style.rPr) {
|
|
188
|
+
const merged = mergeTextFormatting(result.runFormatting, style.rPr);
|
|
189
|
+
if (merged !== void 0) result.runFormatting = merged;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Create a style resolver from document's style definitions
|
|
195
|
+
*/
|
|
196
|
+
function createStyleResolver(styleDefinitions) {
|
|
197
|
+
return new StyleResolver(styleDefinitions);
|
|
198
|
+
}
|
|
199
|
+
//#endregion
|
|
200
|
+
export { StyleResolver, createStyleResolver };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Node } from "prosemirror-model";
|
|
2
|
+
|
|
3
|
+
//#region src/prosemirror/utils/findParagraphByParaId.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* ProseMirror position range for the paragraph (or any textblock) whose
|
|
6
|
+
* `paraId` attribute equals `paraId`. Returns the inclusive `from` and
|
|
7
|
+
* exclusive `to` positions, plus the node, so callers can both target
|
|
8
|
+
* the paragraph (e.g. addMark over its text range) and inspect it.
|
|
9
|
+
*
|
|
10
|
+
* `from` is the position immediately before the textblock; `to` is
|
|
11
|
+
* `from + node.nodeSize`. The text content lives at `[from + 1, to - 1]`.
|
|
12
|
+
*
|
|
13
|
+
* Returns null if no textblock with that paraId exists.
|
|
14
|
+
*/
|
|
15
|
+
declare const findParagraphByParaId: (doc: Node, paraId: string) => {
|
|
16
|
+
node: Node;
|
|
17
|
+
from: number;
|
|
18
|
+
to: number;
|
|
19
|
+
} | null;
|
|
20
|
+
/**
|
|
21
|
+
* Sugar over {@link findParagraphByParaId} when callers only need the
|
|
22
|
+
* `from` position (e.g. to feed `scrollToPosition`).
|
|
23
|
+
*/
|
|
24
|
+
declare const findStartPosForParaId: (doc: Node, paraId: string) => number | null;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { findParagraphByParaId, findStartPosForParaId };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//#region src/prosemirror/utils/findParagraphByParaId.ts
|
|
2
|
+
/**
|
|
3
|
+
* ProseMirror position range for the paragraph (or any textblock) whose
|
|
4
|
+
* `paraId` attribute equals `paraId`. Returns the inclusive `from` and
|
|
5
|
+
* exclusive `to` positions, plus the node, so callers can both target
|
|
6
|
+
* the paragraph (e.g. addMark over its text range) and inspect it.
|
|
7
|
+
*
|
|
8
|
+
* `from` is the position immediately before the textblock; `to` is
|
|
9
|
+
* `from + node.nodeSize`. The text content lives at `[from + 1, to - 1]`.
|
|
10
|
+
*
|
|
11
|
+
* Returns null if no textblock with that paraId exists.
|
|
12
|
+
*/
|
|
13
|
+
const findParagraphByParaId = (doc, paraId) => {
|
|
14
|
+
if (!paraId || !paraId.trim()) return null;
|
|
15
|
+
let result = null;
|
|
16
|
+
doc.descendants((node, pos) => {
|
|
17
|
+
if (result !== null) return false;
|
|
18
|
+
const nodeParaId = node.attrs["paraId"];
|
|
19
|
+
if (node.isTextblock && nodeParaId === paraId) {
|
|
20
|
+
result = {
|
|
21
|
+
node,
|
|
22
|
+
from: pos,
|
|
23
|
+
to: pos + node.nodeSize
|
|
24
|
+
};
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
});
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Sugar over {@link findParagraphByParaId} when callers only need the
|
|
33
|
+
* `from` position (e.g. to feed `scrollToPosition`).
|
|
34
|
+
*/
|
|
35
|
+
const findStartPosForParaId = (doc, paraId) => findParagraphByParaId(doc, paraId)?.from ?? null;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { findParagraphByParaId, findStartPosForParaId };
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
//#region src/prosemirror/utils/tabCalculator.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Tab Width Calculator
|
|
4
|
+
*
|
|
5
|
+
* Computes tab widths based on position and tab stops.
|
|
6
|
+
* Follows OOXML tab stop semantics:
|
|
7
|
+
* - Default tab interval: 720 twips (0.5 inch, 48px at 96dpi)
|
|
8
|
+
* - Tab stops can be start (left), end (right), center, decimal, or bar
|
|
9
|
+
* - Explicit tab stops override default stops
|
|
10
|
+
*
|
|
11
|
+
* Based on ECMA-376 specification and clean-room understanding of tab layout.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Tab alignment types
|
|
15
|
+
*/
|
|
16
|
+
type TabAlignment = "start" | "end" | "center" | "decimal" | "bar" | "clear";
|
|
17
|
+
/**
|
|
18
|
+
* Tab leader (fill character) types
|
|
19
|
+
*/
|
|
20
|
+
type TabLeader = "none" | "dot" | "hyphen" | "underscore" | "middleDot" | "heavy";
|
|
21
|
+
/**
|
|
22
|
+
* Tab stop definition
|
|
23
|
+
*/
|
|
24
|
+
type TabStop = {
|
|
25
|
+
/** Tab alignment mode */val: TabAlignment; /** Position in twips from left margin */
|
|
26
|
+
pos: number; /** Optional leader character */
|
|
27
|
+
leader?: TabLeader;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Context for tab calculations
|
|
31
|
+
*/
|
|
32
|
+
type TabContext = {
|
|
33
|
+
/** Explicit tab stops from paragraph or style */explicitStops?: TabStop[]; /** Default tab interval in twips (default: 720 = 0.5 inch) */
|
|
34
|
+
defaultTabInterval?: number; /** Left indent in twips */
|
|
35
|
+
leftIndent?: number;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Result of tab width calculation
|
|
39
|
+
*/
|
|
40
|
+
type TabWidthResult = {
|
|
41
|
+
/** Width of the tab in pixels */width: number; /** Leader character to render (if any) */
|
|
42
|
+
leader?: TabLeader; /** Alignment that was applied */
|
|
43
|
+
alignment: TabAlignment | "default";
|
|
44
|
+
};
|
|
45
|
+
/** Default tab interval: 720 twips = 0.5 inch */
|
|
46
|
+
declare const DEFAULT_TAB_INTERVAL_TWIPS = 720;
|
|
47
|
+
/** Twips per inch */
|
|
48
|
+
declare const TWIPS_PER_INCH = 1440;
|
|
49
|
+
/** Pixels per inch (96 dpi standard for CSS) */
|
|
50
|
+
declare const PIXELS_PER_INCH = 96;
|
|
51
|
+
/**
|
|
52
|
+
* Convert twips to pixels
|
|
53
|
+
* @param twips - Value in twips (1/1440 inch)
|
|
54
|
+
* @returns Value in pixels (at 96 dpi)
|
|
55
|
+
*/
|
|
56
|
+
declare function twipsToPixels(twips: number): number;
|
|
57
|
+
/**
|
|
58
|
+
* Convert pixels to twips
|
|
59
|
+
* @param pixels - Value in pixels (at 96 dpi)
|
|
60
|
+
* @returns Value in twips (1/1440 inch)
|
|
61
|
+
*/
|
|
62
|
+
declare function pixelsToTwips(pixels: number): number;
|
|
63
|
+
/**
|
|
64
|
+
* Compute the list of effective tab stops for a paragraph
|
|
65
|
+
*
|
|
66
|
+
* Merges explicit stops with default stops at regular intervals.
|
|
67
|
+
* Filters out stops that fall before the left indent.
|
|
68
|
+
*
|
|
69
|
+
* @param context - Tab context with explicit stops and settings
|
|
70
|
+
* @returns Sorted array of tab stops in twips
|
|
71
|
+
*/
|
|
72
|
+
declare function computeTabStops(context: TabContext): TabStop[];
|
|
73
|
+
/**
|
|
74
|
+
* Pixel widths of the content after a tab, needed to position non-left stops.
|
|
75
|
+
*
|
|
76
|
+
* Caller measures its own runs (the painter and the layout measurer have
|
|
77
|
+
* different run models and measurement paths) and passes the result here, so
|
|
78
|
+
* this module owns the stop grid + alignment math without owning measurement.
|
|
79
|
+
*/
|
|
80
|
+
type TabFollowingContent = {
|
|
81
|
+
/** Total width of the runs after the tab. Used for `end` and `center` stops. */followingWidth?: number; /** Width of the content before the decimal separator. Used for `decimal` stops. */
|
|
82
|
+
decimalPrefixWidth?: number;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Calculate the width of a tab character.
|
|
86
|
+
*
|
|
87
|
+
* Finds the next tab stop after the current position and computes the width
|
|
88
|
+
* needed to reach it. For `end`/`center`/`decimal` stops the content after the
|
|
89
|
+
* tab is anchored against the stop, so the caller supplies its measured width
|
|
90
|
+
* via {@link TabFollowingContent}.
|
|
91
|
+
*
|
|
92
|
+
* @param currentXPx - Current horizontal position in pixels (from the content
|
|
93
|
+
* area's left edge — the same origin tab stop positions are measured from)
|
|
94
|
+
* @param context - Tab context with stops and settings
|
|
95
|
+
* @param following - Measured widths of the content after the tab
|
|
96
|
+
* @returns Tab width result with width in pixels
|
|
97
|
+
*/
|
|
98
|
+
declare function calculateTabWidth(currentXPx: number, context: TabContext, following?: TabFollowingContent): TabWidthResult;
|
|
99
|
+
/**
|
|
100
|
+
* Calculate tab width with simple default stops
|
|
101
|
+
*
|
|
102
|
+
* Simplified version for basic tab rendering without explicit stops.
|
|
103
|
+
* Uses the default 0.5 inch (48px) tab interval.
|
|
104
|
+
*
|
|
105
|
+
* @param currentXPx - Current horizontal position in pixels
|
|
106
|
+
* @returns Width of the tab in pixels
|
|
107
|
+
*/
|
|
108
|
+
declare function calculateSimpleTabWidth(currentXPx: number): number;
|
|
109
|
+
//#endregion
|
|
110
|
+
export { DEFAULT_TAB_INTERVAL_TWIPS, PIXELS_PER_INCH, TWIPS_PER_INCH, TabAlignment, TabContext, TabFollowingContent, TabLeader, TabStop, TabWidthResult, calculateSimpleTabWidth, calculateTabWidth, computeTabStops, pixelsToTwips, twipsToPixels };
|