@stll/folio-core 0.0.1-placeholder.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +66 -0
- package/dist/types/block-id.js +73 -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,11 @@
|
|
|
1
|
+
import { ParagraphAttrs } from "./schema/nodes.js";
|
|
2
|
+
|
|
3
|
+
//#region src/prosemirror/autospacingBase.d.ts
|
|
4
|
+
type AutospacingBase = NonNullable<ParagraphAttrs["_autospacingBase"]>;
|
|
5
|
+
type AutospacingSide = "before" | "after";
|
|
6
|
+
declare function normalizeAutospacingBaseValue(value: unknown): number | null;
|
|
7
|
+
declare function setAutospacingBaseValue(base: AutospacingBase, side: AutospacingSide, value: unknown): void;
|
|
8
|
+
declare function hasAutospacingBaseSide(base: ParagraphAttrs["_autospacingBase"] | null | undefined, side: AutospacingSide): boolean;
|
|
9
|
+
declare function autospacingMatchesBase(base: ParagraphAttrs["_autospacingBase"] | null | undefined, side: AutospacingSide, currentValue: unknown): boolean;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { autospacingMatchesBase, hasAutospacingBaseSide, normalizeAutospacingBaseValue, setAutospacingBaseValue };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/prosemirror/autospacingBase.ts
|
|
2
|
+
function normalizeAutospacingBaseValue(value) {
|
|
3
|
+
return typeof value === "number" ? value : null;
|
|
4
|
+
}
|
|
5
|
+
function setAutospacingBaseValue(base, side, value) {
|
|
6
|
+
base[side] = normalizeAutospacingBaseValue(value);
|
|
7
|
+
}
|
|
8
|
+
function hasAutospacingBaseSide(base, side) {
|
|
9
|
+
return base !== void 0 && base !== null && Object.hasOwn(base, side);
|
|
10
|
+
}
|
|
11
|
+
function autospacingMatchesBase(base, side, currentValue) {
|
|
12
|
+
if (!hasAutospacingBaseSide(base, side)) return false;
|
|
13
|
+
return normalizeAutospacingBaseValue(currentValue) === (base?.[side] ?? null);
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { autospacingMatchesBase, hasAutospacingBaseSide, normalizeAutospacingBaseValue, setAutospacingBaseValue };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Command, EditorState } from "prosemirror-state";
|
|
2
|
+
|
|
3
|
+
//#region src/prosemirror/commands/comments.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Add a comment mark to the current selection.
|
|
6
|
+
*/
|
|
7
|
+
declare function addCommentMark(commentId: number): Command;
|
|
8
|
+
/**
|
|
9
|
+
* Remove a comment mark by ID from the entire document.
|
|
10
|
+
*/
|
|
11
|
+
declare function removeCommentMark(commentId: number): Command;
|
|
12
|
+
type ParagraphBoundaryChange = {
|
|
13
|
+
from: number;
|
|
14
|
+
to: number;
|
|
15
|
+
type: "insertion" | "deletion";
|
|
16
|
+
author?: string;
|
|
17
|
+
date?: string;
|
|
18
|
+
revisionId?: number;
|
|
19
|
+
};
|
|
20
|
+
declare function findParagraphBoundaryChangeAtPosition(state: EditorState, pos: number): ParagraphBoundaryChange | null;
|
|
21
|
+
/**
|
|
22
|
+
* Accept a tracked change at the given range.
|
|
23
|
+
* - Insertion: remove mark, keep text
|
|
24
|
+
* - Deletion: remove mark AND text
|
|
25
|
+
*/
|
|
26
|
+
declare function acceptChange(from: number, to: number): Command;
|
|
27
|
+
/**
|
|
28
|
+
* Reject a tracked change at the given range.
|
|
29
|
+
* - Insertion: remove mark AND text
|
|
30
|
+
* - Deletion: remove mark, keep text
|
|
31
|
+
*/
|
|
32
|
+
declare function rejectChange(from: number, to: number): Command;
|
|
33
|
+
/**
|
|
34
|
+
* Accept all tracked changes in the document.
|
|
35
|
+
*/
|
|
36
|
+
declare function acceptAllChanges(): Command;
|
|
37
|
+
/**
|
|
38
|
+
* Reject all tracked changes in the document.
|
|
39
|
+
*/
|
|
40
|
+
declare function rejectAllChanges(): Command;
|
|
41
|
+
/**
|
|
42
|
+
* Find the document range covered by all insertion/deletion marks
|
|
43
|
+
* carrying any of the given AI-edit `revisionIds`. Returns null when
|
|
44
|
+
* none of those marks are present (already accepted/rejected, or
|
|
45
|
+
* never existed). A replace operation typically passes two ids (one
|
|
46
|
+
* for its deletion side, one for its insertion side); inserts and
|
|
47
|
+
* standalone deletions pass a single id.
|
|
48
|
+
*/
|
|
49
|
+
declare function findAIEditRevisionRange(state: EditorState, revisionIds: number | readonly number[]): {
|
|
50
|
+
from: number;
|
|
51
|
+
to: number;
|
|
52
|
+
} | null;
|
|
53
|
+
/**
|
|
54
|
+
* Accept the tracked-change marks belonging to an AI-edit operation.
|
|
55
|
+
* Pass a single revisionId for inserts/standalone deletions, or the
|
|
56
|
+
* full id list for a replace (one id per side). Returns false when
|
|
57
|
+
* none of the ids match anything in the doc.
|
|
58
|
+
*/
|
|
59
|
+
declare function acceptAIEditRevision(revisionIds: number | readonly number[]): Command;
|
|
60
|
+
/**
|
|
61
|
+
* Reject the tracked-change marks belonging to an AI-edit operation.
|
|
62
|
+
* See {@link acceptAIEditRevision} for the id semantics.
|
|
63
|
+
*/
|
|
64
|
+
declare function rejectAIEditRevision(revisionIds: number | readonly number[]): Command;
|
|
65
|
+
type ChangeRange = {
|
|
66
|
+
from: number;
|
|
67
|
+
to: number;
|
|
68
|
+
type: "insertion" | "deletion";
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Find the tracked change mark range at a given cursor position.
|
|
72
|
+
* If the cursor is inside a tracked change, returns the full extent
|
|
73
|
+
* of that mark (expanding to cover all adjacent nodes with the same
|
|
74
|
+
* revision ID). If from !== to (range selection), returns {from, to}.
|
|
75
|
+
*/
|
|
76
|
+
declare function findChangeAtPosition(state: EditorState, from: number, to: number): {
|
|
77
|
+
from: number;
|
|
78
|
+
to: number;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Find the next tracked change after the given position. Returns the full
|
|
82
|
+
* range of the change (including adjacent text nodes that share the same
|
|
83
|
+
* insertion/deletion mark instance), not just the first text node.
|
|
84
|
+
*/
|
|
85
|
+
declare function findNextChange(state: EditorState, startPos: number): ChangeRange | null;
|
|
86
|
+
/**
|
|
87
|
+
* Find the previous tracked change before the given position. Returns the
|
|
88
|
+
* full range of the change (including adjacent text nodes that share the
|
|
89
|
+
* same insertion/deletion mark instance), not just the last text node.
|
|
90
|
+
*/
|
|
91
|
+
declare function findPreviousChange(state: EditorState, startPos: number): ChangeRange | null;
|
|
92
|
+
//#endregion
|
|
93
|
+
export { ParagraphBoundaryChange, acceptAIEditRevision, acceptAllChanges, acceptChange, addCommentMark, findAIEditRevisionRange, findChangeAtPosition, findNextChange, findParagraphBoundaryChangeAtPosition, findPreviousChange, rejectAIEditRevision, rejectAllChanges, rejectChange, removeCommentMark };
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
//#region src/prosemirror/commands/comments.ts
|
|
2
|
+
/**
|
|
3
|
+
* Add a comment mark to the current selection.
|
|
4
|
+
*/
|
|
5
|
+
function addCommentMark(commentId) {
|
|
6
|
+
return (state, dispatch) => {
|
|
7
|
+
const { from, to, empty } = state.selection;
|
|
8
|
+
if (empty) return false;
|
|
9
|
+
const commentType = state.schema.marks["comment"];
|
|
10
|
+
if (!commentType) return false;
|
|
11
|
+
if (dispatch) dispatch(state.tr.addMark(from, to, commentType.create({ commentId })));
|
|
12
|
+
return true;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Remove a comment mark by ID from the entire document.
|
|
17
|
+
*/
|
|
18
|
+
function removeCommentMark(commentId) {
|
|
19
|
+
return (state, dispatch) => {
|
|
20
|
+
const commentType = state.schema.marks["comment"];
|
|
21
|
+
if (!commentType) return false;
|
|
22
|
+
if (dispatch) {
|
|
23
|
+
const tr = state.tr;
|
|
24
|
+
state.doc.descendants((node, pos) => {
|
|
25
|
+
if (node.isText) {
|
|
26
|
+
for (const mark of node.marks) if (mark.type === commentType && mark.attrs["commentId"] === commentId) tr.removeMark(pos, pos + node.nodeSize, mark);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
if (tr.steps.length > 0) dispatch(tr);
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Resolve a tracked change: accept or reject.
|
|
36
|
+
* - Accept: keep insertions (remove mark), delete deletions (remove text)
|
|
37
|
+
* - Reject: keep deletions (remove mark), delete insertions (remove text)
|
|
38
|
+
*
|
|
39
|
+
* Pass `revisionId` to scope the operation to one specific
|
|
40
|
+
* revision — otherwise overlapping marks for other revisions get
|
|
41
|
+
* processed too, silently consuming pending work. Without an id
|
|
42
|
+
* the operation matches every insertion/deletion mark in the
|
|
43
|
+
* range (the bulk accept-all/reject-all path).
|
|
44
|
+
*/
|
|
45
|
+
function resolveChange(from, to, mode, revisionIds) {
|
|
46
|
+
return (state, dispatch) => {
|
|
47
|
+
const insertionType = state.schema.marks["insertion"];
|
|
48
|
+
const deletionType = state.schema.marks["deletion"];
|
|
49
|
+
if (!insertionType && !deletionType) return false;
|
|
50
|
+
const keepType = mode === "accept" ? insertionType : deletionType;
|
|
51
|
+
const removeType = mode === "accept" ? deletionType : insertionType;
|
|
52
|
+
const revisionSet = revisionIds === void 0 ? null : new Set(revisionIds);
|
|
53
|
+
const matchesRevision = (mark) => revisionSet === null || typeof mark.attrs["revisionId"] === "number" && revisionSet.has(mark.attrs["revisionId"]);
|
|
54
|
+
if (dispatch) {
|
|
55
|
+
const tr = state.tr;
|
|
56
|
+
const deleteRanges = [];
|
|
57
|
+
const pPrMarkOps = [];
|
|
58
|
+
state.doc.nodesBetween(from, to, (node, pos) => {
|
|
59
|
+
if (node.type.name === "paragraph") {
|
|
60
|
+
const op = collectPPrMarkOp(node, pos, from, to, mode, revisionSet);
|
|
61
|
+
if (op) pPrMarkOps.push(op);
|
|
62
|
+
const propertyChanges = node.attrs["_propertyChanges"];
|
|
63
|
+
if (Array.isArray(propertyChanges) && propertyChanges.length > 0 && rangeCoversParagraphBoundary(from, to, pos, node)) {
|
|
64
|
+
const matches = propertyChanges.filter((c) => revisionSet === null || c.info && revisionSet.has(c.info.id));
|
|
65
|
+
if (matches.length > 0) {
|
|
66
|
+
const remaining = propertyChanges.filter((c) => revisionSet !== null && (!c.info || !revisionSet.has(c.info.id)));
|
|
67
|
+
const nextAttrs = {
|
|
68
|
+
...node.attrs,
|
|
69
|
+
_propertyChanges: remaining.length > 0 ? remaining : null
|
|
70
|
+
};
|
|
71
|
+
if (mode === "reject") {
|
|
72
|
+
for (const change of matches.toReversed()) if (change.previousFormatting) for (const [key, val] of Object.entries(change.previousFormatting)) nextAttrs[key] = val;
|
|
73
|
+
}
|
|
74
|
+
tr.setNodeMarkup(pos, void 0, nextAttrs);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
if (!node.isInline) return true;
|
|
80
|
+
const nodeEnd = pos + node.nodeSize;
|
|
81
|
+
const rangeFrom = Math.max(from, pos);
|
|
82
|
+
const rangeTo = Math.min(to, nodeEnd);
|
|
83
|
+
if (removeType && node.marks.some((m) => m.type === removeType && matchesRevision(m))) deleteRanges.push({
|
|
84
|
+
from: rangeFrom,
|
|
85
|
+
to: rangeTo
|
|
86
|
+
});
|
|
87
|
+
for (const mark of node.marks) if (keepType && mark.type === keepType && matchesRevision(mark)) tr.removeMark(rangeFrom, rangeTo, mark);
|
|
88
|
+
return true;
|
|
89
|
+
});
|
|
90
|
+
for (const range of deleteRanges.toReversed()) tr.delete(range.from, range.to);
|
|
91
|
+
pPrMarkOps.sort((a, b) => b.paragraphPos - a.paragraphPos);
|
|
92
|
+
for (const op of pPrMarkOps) {
|
|
93
|
+
const mappedPos = tr.mapping.map(op.paragraphPos);
|
|
94
|
+
const paragraph = tr.doc.nodeAt(mappedPos);
|
|
95
|
+
if (!paragraph || paragraph.type.name !== "paragraph") continue;
|
|
96
|
+
if (op.action === "clear") {
|
|
97
|
+
tr.setNodeAttribute(mappedPos, "pPrMark", null);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const joinPos = mappedPos + paragraph.nodeSize;
|
|
101
|
+
if (joinPos >= tr.doc.content.size) continue;
|
|
102
|
+
try {
|
|
103
|
+
tr.join(joinPos);
|
|
104
|
+
tr.setNodeAttribute(mappedPos, "pPrMark", null);
|
|
105
|
+
} catch {}
|
|
106
|
+
}
|
|
107
|
+
if (tr.steps.length > 0) dispatch(tr);
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function collectPPrMarkOp(node, pos, from, to, mode, revisionSet) {
|
|
113
|
+
if (!rangeCoversParagraphBoundary(from, to, pos, node)) return null;
|
|
114
|
+
const pPrMark = node.attrs["pPrMark"];
|
|
115
|
+
if (!isPPrMarkAttr(pPrMark)) return null;
|
|
116
|
+
if (revisionSet !== null && !revisionSet.has(pPrMark.info.id)) return null;
|
|
117
|
+
return {
|
|
118
|
+
paragraphPos: pos,
|
|
119
|
+
action: pPrMark.kind === "ins" === (mode === "accept") ? "clear" : "join"
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function rangeCoversParagraphBoundary(from, to, pos, node) {
|
|
123
|
+
const boundaryFrom = pos + node.nodeSize - 1;
|
|
124
|
+
const boundaryTo = pos + node.nodeSize;
|
|
125
|
+
return from <= boundaryFrom && to >= boundaryTo;
|
|
126
|
+
}
|
|
127
|
+
function isPPrMarkAttr(value) {
|
|
128
|
+
if (typeof value !== "object" || value === null) return false;
|
|
129
|
+
const kind = value.kind;
|
|
130
|
+
const info = value.info;
|
|
131
|
+
if (kind !== "ins" && kind !== "del") return false;
|
|
132
|
+
if (typeof info !== "object" || info === null) return false;
|
|
133
|
+
return typeof info.id === "number";
|
|
134
|
+
}
|
|
135
|
+
function readRevisionInfo(info) {
|
|
136
|
+
const revision = {};
|
|
137
|
+
if (typeof info?.author === "string") revision.author = info.author;
|
|
138
|
+
if (typeof info?.date === "string") revision.date = info.date;
|
|
139
|
+
if (typeof info?.id === "number") revision.revisionId = info.id;
|
|
140
|
+
return revision;
|
|
141
|
+
}
|
|
142
|
+
function getListPropertyChangeType(attrs, change) {
|
|
143
|
+
const previousFormatting = change.previousFormatting;
|
|
144
|
+
if (previousFormatting == null || !Object.hasOwn(previousFormatting, "numPr")) return null;
|
|
145
|
+
const currentNumPr = attrs["numPr"];
|
|
146
|
+
const previousNumPr = previousFormatting["numPr"];
|
|
147
|
+
if (previousNumPr == null && currentNumPr != null) return "insertion";
|
|
148
|
+
if (previousNumPr != null && currentNumPr == null) return "deletion";
|
|
149
|
+
if (!areNumPrValuesEqual(previousNumPr, currentNumPr)) return currentNumPr == null ? "deletion" : "insertion";
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
function areNumPrValuesEqual(left, right) {
|
|
153
|
+
if (left == null || right == null) return left == right;
|
|
154
|
+
if (!isObjectRecord(left) || !isObjectRecord(right)) return Object.is(left, right);
|
|
155
|
+
return left["numId"] === right["numId"] && left["ilvl"] === right["ilvl"];
|
|
156
|
+
}
|
|
157
|
+
function isObjectRecord(value) {
|
|
158
|
+
return typeof value === "object" && value !== null;
|
|
159
|
+
}
|
|
160
|
+
function toParagraphBoundaryChange(node, pos, type, info) {
|
|
161
|
+
return {
|
|
162
|
+
from: pos + node.nodeSize - 1,
|
|
163
|
+
to: pos + node.nodeSize,
|
|
164
|
+
type,
|
|
165
|
+
...readRevisionInfo(info)
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function findParagraphBoundaryChangeAtPosition(state, pos) {
|
|
169
|
+
const $pos = state.doc.resolve(pos);
|
|
170
|
+
const node = $pos.parent;
|
|
171
|
+
if (node.type.name !== "paragraph") return null;
|
|
172
|
+
const paragraphPos = $pos.before($pos.depth);
|
|
173
|
+
const pPrMark = node.attrs["pPrMark"];
|
|
174
|
+
if (isPPrMarkAttr(pPrMark)) return toParagraphBoundaryChange(node, paragraphPos, pPrMark.kind === "ins" ? "insertion" : "deletion", pPrMark.info);
|
|
175
|
+
const propertyChanges = node.attrs["_propertyChanges"];
|
|
176
|
+
if (!Array.isArray(propertyChanges)) return null;
|
|
177
|
+
for (const change of propertyChanges) {
|
|
178
|
+
const type = getListPropertyChangeType(node.attrs, change);
|
|
179
|
+
if (type) return toParagraphBoundaryChange(node, paragraphPos, type, change.info);
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Accept a tracked change at the given range.
|
|
185
|
+
* - Insertion: remove mark, keep text
|
|
186
|
+
* - Deletion: remove mark AND text
|
|
187
|
+
*/
|
|
188
|
+
function acceptChange(from, to) {
|
|
189
|
+
return resolveChange(from, to, "accept");
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Reject a tracked change at the given range.
|
|
193
|
+
* - Insertion: remove mark AND text
|
|
194
|
+
* - Deletion: remove mark, keep text
|
|
195
|
+
*/
|
|
196
|
+
function rejectChange(from, to) {
|
|
197
|
+
return resolveChange(from, to, "reject");
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Accept all tracked changes in the document.
|
|
201
|
+
*/
|
|
202
|
+
function acceptAllChanges() {
|
|
203
|
+
return (state, dispatch) => acceptChange(0, state.doc.content.size)(state, dispatch);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Reject all tracked changes in the document.
|
|
207
|
+
*/
|
|
208
|
+
function rejectAllChanges() {
|
|
209
|
+
return (state, dispatch) => rejectChange(0, state.doc.content.size)(state, dispatch);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Find the document range covered by all insertion/deletion marks
|
|
213
|
+
* carrying any of the given AI-edit `revisionIds`. Returns null when
|
|
214
|
+
* none of those marks are present (already accepted/rejected, or
|
|
215
|
+
* never existed). A replace operation typically passes two ids (one
|
|
216
|
+
* for its deletion side, one for its insertion side); inserts and
|
|
217
|
+
* standalone deletions pass a single id.
|
|
218
|
+
*/
|
|
219
|
+
function findAIEditRevisionRange(state, revisionIds) {
|
|
220
|
+
const insertionType = state.schema.marks["insertion"];
|
|
221
|
+
const deletionType = state.schema.marks["deletion"];
|
|
222
|
+
if (!insertionType && !deletionType) return null;
|
|
223
|
+
const idSet = new Set(typeof revisionIds === "number" ? [revisionIds] : revisionIds);
|
|
224
|
+
const range = {
|
|
225
|
+
from: null,
|
|
226
|
+
to: null
|
|
227
|
+
};
|
|
228
|
+
state.doc.descendants((node, pos) => {
|
|
229
|
+
if (!node.isInline) return;
|
|
230
|
+
for (const mark of node.marks) if ((mark.type === insertionType || mark.type === deletionType) && typeof mark.attrs["revisionId"] === "number" && idSet.has(mark.attrs["revisionId"])) {
|
|
231
|
+
const start = pos;
|
|
232
|
+
const end = pos + node.nodeSize;
|
|
233
|
+
if (range.from === null || start < range.from) range.from = start;
|
|
234
|
+
if (range.to === null || end > range.to) range.to = end;
|
|
235
|
+
break;
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
if (range.from === null || range.to === null) return null;
|
|
239
|
+
return {
|
|
240
|
+
from: range.from,
|
|
241
|
+
to: range.to
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Accept the tracked-change marks belonging to an AI-edit operation.
|
|
246
|
+
* Pass a single revisionId for inserts/standalone deletions, or the
|
|
247
|
+
* full id list for a replace (one id per side). Returns false when
|
|
248
|
+
* none of the ids match anything in the doc.
|
|
249
|
+
*/
|
|
250
|
+
function acceptAIEditRevision(revisionIds) {
|
|
251
|
+
return (state, dispatch) => {
|
|
252
|
+
const range = findAIEditRevisionRange(state, revisionIds);
|
|
253
|
+
if (!range) return false;
|
|
254
|
+
const ids = typeof revisionIds === "number" ? [revisionIds] : revisionIds;
|
|
255
|
+
return resolveChange(range.from, range.to, "accept", ids)(state, dispatch);
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Reject the tracked-change marks belonging to an AI-edit operation.
|
|
260
|
+
* See {@link acceptAIEditRevision} for the id semantics.
|
|
261
|
+
*/
|
|
262
|
+
function rejectAIEditRevision(revisionIds) {
|
|
263
|
+
return (state, dispatch) => {
|
|
264
|
+
const range = findAIEditRevisionRange(state, revisionIds);
|
|
265
|
+
if (!range) return false;
|
|
266
|
+
const ids = typeof revisionIds === "number" ? [revisionIds] : revisionIds;
|
|
267
|
+
return resolveChange(range.from, range.to, "reject", ids)(state, dispatch);
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Find the tracked change mark range at a given cursor position.
|
|
272
|
+
* If the cursor is inside a tracked change, returns the full extent
|
|
273
|
+
* of that mark (expanding to cover all adjacent nodes with the same
|
|
274
|
+
* revision ID). If from !== to (range selection), returns {from, to}.
|
|
275
|
+
*/
|
|
276
|
+
function findChangeAtPosition(state, from, to) {
|
|
277
|
+
if (from !== to) return {
|
|
278
|
+
from,
|
|
279
|
+
to
|
|
280
|
+
};
|
|
281
|
+
const insertionType = state.schema.marks["insertion"];
|
|
282
|
+
const deletionType = state.schema.marks["deletion"];
|
|
283
|
+
if (!insertionType && !deletionType) return {
|
|
284
|
+
from,
|
|
285
|
+
to
|
|
286
|
+
};
|
|
287
|
+
const $pos = state.doc.resolve(from);
|
|
288
|
+
const node = $pos.parent;
|
|
289
|
+
if (!node.isTextblock) return {
|
|
290
|
+
from,
|
|
291
|
+
to
|
|
292
|
+
};
|
|
293
|
+
let markStart = from;
|
|
294
|
+
let markEnd = from;
|
|
295
|
+
let foundMark;
|
|
296
|
+
node.forEach((child, offset) => {
|
|
297
|
+
const childStart = $pos.start() + offset;
|
|
298
|
+
const childEnd = childStart + child.nodeSize;
|
|
299
|
+
if (from >= childStart && from <= childEnd && child.isText) {
|
|
300
|
+
for (const mark of child.marks) if (mark.type === insertionType || mark.type === deletionType) {
|
|
301
|
+
foundMark = mark;
|
|
302
|
+
markStart = childStart;
|
|
303
|
+
markEnd = childEnd;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
if (foundMark === void 0) {
|
|
308
|
+
const paragraphChange = findParagraphBoundaryChangeAtPosition(state, from);
|
|
309
|
+
return paragraphChange ? {
|
|
310
|
+
from: paragraphChange.from,
|
|
311
|
+
to: paragraphChange.to
|
|
312
|
+
} : {
|
|
313
|
+
from,
|
|
314
|
+
to
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
const sameMark = foundMark;
|
|
318
|
+
const children = [];
|
|
319
|
+
node.forEach((child, offset) => {
|
|
320
|
+
if (!child.isText) return;
|
|
321
|
+
const childStart = $pos.start() + offset;
|
|
322
|
+
children.push({
|
|
323
|
+
childStart,
|
|
324
|
+
childEnd: childStart + child.nodeSize,
|
|
325
|
+
marks: child.marks
|
|
326
|
+
});
|
|
327
|
+
});
|
|
328
|
+
let extended = true;
|
|
329
|
+
while (extended) {
|
|
330
|
+
extended = false;
|
|
331
|
+
for (const child of children) {
|
|
332
|
+
if (!child.marks.some((m) => m.eq(sameMark))) continue;
|
|
333
|
+
if (child.childEnd === markStart) {
|
|
334
|
+
markStart = child.childStart;
|
|
335
|
+
extended = true;
|
|
336
|
+
}
|
|
337
|
+
if (child.childStart === markEnd) {
|
|
338
|
+
markEnd = child.childEnd;
|
|
339
|
+
extended = true;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
return {
|
|
344
|
+
from: markStart,
|
|
345
|
+
to: markEnd
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Walk outward from `[fromHint, toHint]` and return the full extent of the
|
|
350
|
+
* tracked-change span carrying `mark` (matched via `Mark.eq`, so attrs like
|
|
351
|
+
* `revisionId` distinguish adjacent changes). Used to keep the
|
|
352
|
+
* navigation/scroll helpers honest when a tracked-change span is split
|
|
353
|
+
* across multiple text nodes due to inline formatting (e.g., a bold word
|
|
354
|
+
* inside an insertion).
|
|
355
|
+
*/
|
|
356
|
+
function expandTrackedChangeRange(state, mark, fromHint, toHint) {
|
|
357
|
+
const carriesSameInlineMark = (node) => node?.isInline === true && node.marks.some((m) => m.eq(mark));
|
|
358
|
+
let from = fromHint;
|
|
359
|
+
let to = toHint;
|
|
360
|
+
let $from = state.doc.resolve(from);
|
|
361
|
+
let nodeBefore = $from.nodeBefore;
|
|
362
|
+
while (carriesSameInlineMark(nodeBefore)) {
|
|
363
|
+
from -= nodeBefore.nodeSize;
|
|
364
|
+
$from = state.doc.resolve(from);
|
|
365
|
+
nodeBefore = $from.nodeBefore;
|
|
366
|
+
}
|
|
367
|
+
let $to = state.doc.resolve(to);
|
|
368
|
+
let nodeAfter = $to.nodeAfter;
|
|
369
|
+
while (carriesSameInlineMark(nodeAfter)) {
|
|
370
|
+
to += nodeAfter.nodeSize;
|
|
371
|
+
$to = state.doc.resolve(to);
|
|
372
|
+
nodeAfter = $to.nodeAfter;
|
|
373
|
+
}
|
|
374
|
+
return {
|
|
375
|
+
from,
|
|
376
|
+
to
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Find the next tracked change after the given position. Returns the full
|
|
381
|
+
* range of the change (including adjacent text nodes that share the same
|
|
382
|
+
* insertion/deletion mark instance), not just the first text node.
|
|
383
|
+
*/
|
|
384
|
+
function findNextChange(state, startPos) {
|
|
385
|
+
const insertionType = state.schema.marks["insertion"];
|
|
386
|
+
const deletionType = state.schema.marks["deletion"];
|
|
387
|
+
if (!insertionType && !deletionType) return null;
|
|
388
|
+
const result = { value: null };
|
|
389
|
+
state.doc.descendants((node, pos) => {
|
|
390
|
+
if (result.value) return false;
|
|
391
|
+
if (!node.isInline) return;
|
|
392
|
+
if (pos + node.nodeSize <= startPos) return;
|
|
393
|
+
for (const mark of node.marks) if (mark.type === insertionType || mark.type === deletionType) {
|
|
394
|
+
const expanded = expandTrackedChangeRange(state, mark, pos, pos + node.nodeSize);
|
|
395
|
+
result.value = {
|
|
396
|
+
from: expanded.from,
|
|
397
|
+
to: expanded.to,
|
|
398
|
+
type: mark.type === insertionType ? "insertion" : "deletion"
|
|
399
|
+
};
|
|
400
|
+
return false;
|
|
401
|
+
}
|
|
402
|
+
});
|
|
403
|
+
if (result.value === null && startPos > 0) return findNextChange(state, 0);
|
|
404
|
+
return result.value;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Find the previous tracked change before the given position. Returns the
|
|
408
|
+
* full range of the change (including adjacent text nodes that share the
|
|
409
|
+
* same insertion/deletion mark instance), not just the last text node.
|
|
410
|
+
*/
|
|
411
|
+
function findPreviousChange(state, startPos) {
|
|
412
|
+
const insertionType = state.schema.marks["insertion"];
|
|
413
|
+
const deletionType = state.schema.marks["deletion"];
|
|
414
|
+
if (!insertionType && !deletionType) return null;
|
|
415
|
+
const result = { value: null };
|
|
416
|
+
let resultMark = null;
|
|
417
|
+
state.doc.descendants((node, pos) => {
|
|
418
|
+
if (!node.isInline) return;
|
|
419
|
+
if (pos >= startPos) return false;
|
|
420
|
+
if (result.value && resultMark && pos < result.value.to && node.marks.every((m) => m.type !== insertionType && m.type !== deletionType || m.eq(resultMark))) return;
|
|
421
|
+
for (const mark of node.marks) if (mark.type === insertionType || mark.type === deletionType) {
|
|
422
|
+
const expanded = expandTrackedChangeRange(state, mark, pos, pos + node.nodeSize);
|
|
423
|
+
result.value = {
|
|
424
|
+
from: expanded.from,
|
|
425
|
+
to: expanded.to,
|
|
426
|
+
type: mark.type === insertionType ? "insertion" : "deletion"
|
|
427
|
+
};
|
|
428
|
+
resultMark = mark;
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
if (result.value === null && startPos < state.doc.content.size) return findPreviousChange(state, state.doc.content.size);
|
|
432
|
+
return result.value;
|
|
433
|
+
}
|
|
434
|
+
//#endregion
|
|
435
|
+
export { acceptAIEditRevision, acceptAllChanges, acceptChange, addCommentMark, findAIEditRevisionRange, findChangeAtPosition, findNextChange, findParagraphBoundaryChangeAtPosition, findPreviousChange, rejectAIEditRevision, rejectAllChanges, rejectChange, removeCommentMark };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { document_d_exports } from "../../types/document.js";
|
|
2
|
+
import { ContentControlFilter } from "../../content-controls/findContentControls.js";
|
|
3
|
+
import { SetContentControlContentInput, SetContentControlValueInput } from "../../content-controls/mutateContentControls.js";
|
|
4
|
+
import { EditorState, Transaction } from "prosemirror-state";
|
|
5
|
+
import { Node } from "prosemirror-model";
|
|
6
|
+
|
|
7
|
+
//#region src/prosemirror/commands/contentControls.d.ts
|
|
8
|
+
type ForceOption = {
|
|
9
|
+
force?: boolean;
|
|
10
|
+
};
|
|
11
|
+
type BlockSdtPMMatch = {
|
|
12
|
+
node: Node; /** Absolute PM position of the blockSdt's open tag. */
|
|
13
|
+
pos: number; /** Outer→inner index path through doc children. */
|
|
14
|
+
path: number[];
|
|
15
|
+
};
|
|
16
|
+
/** All blockSdt nodes in `doc` matching `filter`. Outer→inner traversal. */
|
|
17
|
+
declare function findBlockSdtMatches(doc: Node, filter?: ContentControlFilter): BlockSdtPMMatch[];
|
|
18
|
+
/** First match or null — convenience for editor-ref callers. */
|
|
19
|
+
declare function findBlockSdtMatch(doc: Node, filter: ContentControlFilter): BlockSdtPMMatch | null;
|
|
20
|
+
/**
|
|
21
|
+
* Project a `blockSdt` PM node's attrs onto the full modeled `SdtProperties`
|
|
22
|
+
* shape so the editor-ref `getContentControls` and lock-error messages
|
|
23
|
+
* surface every field downstream tooling expects (lock, placeholder,
|
|
24
|
+
* dateFormat, listItems, checked, etc.). Raw XML payloads are not exposed —
|
|
25
|
+
* those are for serializer replay, not for callers.
|
|
26
|
+
*/
|
|
27
|
+
declare function blockSdtAttrsToSdtProperties(node: Node): document_d_exports.SdtProperties;
|
|
28
|
+
/**
|
|
29
|
+
* Replace a control's children with plain text (one paragraph) or
|
|
30
|
+
* pre-built PM blocks. Returns null when no match is present.
|
|
31
|
+
*/
|
|
32
|
+
declare function setContentControlContentTr(state: EditorState, filter: ContentControlFilter, input: SetContentControlContentInput, options?: ForceOption): Transaction | null;
|
|
33
|
+
/**
|
|
34
|
+
* Internal helper for the block-content fill variant. Lives in this module
|
|
35
|
+
* so callers reuse the same lock-check and `replaceWith` shape; the
|
|
36
|
+
* conversion-aware `setContentControlContentBlocksTr` in
|
|
37
|
+
* `./contentControlsBlockFill.ts` wraps it.
|
|
38
|
+
*/
|
|
39
|
+
declare function replaceBlockSdtChildrenForFill(state: EditorState, filter: ContentControlFilter, children: readonly Node[], options?: ForceOption): Transaction | null;
|
|
40
|
+
declare function setContentControlValueTr(state: EditorState, filter: ContentControlFilter, input: SetContentControlValueInput, options?: ForceOption): Transaction | null;
|
|
41
|
+
declare function removeContentControlTr(state: EditorState, filter: ContentControlFilter, options?: ForceOption & {
|
|
42
|
+
keepContent?: boolean;
|
|
43
|
+
}): Transaction | null;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { BlockSdtPMMatch, blockSdtAttrsToSdtProperties, findBlockSdtMatch, findBlockSdtMatches, removeContentControlTr, replaceBlockSdtChildrenForFill, setContentControlContentTr, setContentControlValueTr };
|