@stll/folio-core 0.46.0 → 0.47.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/dist/ai-edits/apply.js +26 -24
- package/dist/ai-edits/headless.js +1 -1
- package/dist/ai-edits/read.d.ts +1 -0
- package/dist/ai-edits/read.js +1 -0
- package/dist/ai-edits/snapshot.js +32 -27
- package/dist/ai-edits/table-cell-mutations.js +15 -7
- package/dist/ai-edits/table-geometry.js +21 -18
- package/dist/ai-edits/table-template.js +2 -2
- package/dist/compare/content-alignment.js +108 -12
- package/dist/compare/content-types.d.ts +8 -2
- package/dist/compare/content.js +2 -11
- package/dist/compare/plan.js +7 -4
- package/dist/compare/section-boundary-properties.js +1 -2
- package/dist/content-controls/checkboxDisplay.d.ts +8 -2
- package/dist/content-controls/checkboxDisplay.js +11 -5
- package/dist/content-controls/mutateContentControls.js +41 -42
- package/dist/controller/layoutPipeline.js +8 -3
- package/dist/display-list/build/buildDisplayList.js +7 -7
- package/dist/display-list/build/imagePrimitives.d.ts +4 -4
- package/dist/display-list/build/imagePrimitives.js +38 -20
- package/dist/display-list/build/pageBorderPrimitives.js +2 -1
- package/dist/display-list/build/paragraphPrimitives.js +93 -13
- package/dist/display-list/build/previewPrimitives.d.ts +10 -0
- package/dist/display-list/build/previewPrimitives.js +89 -0
- package/dist/display-list/build/strokes.d.ts +177 -8
- package/dist/display-list/build/strokes.js +167 -47
- package/dist/display-list/build/tablePrimitives.js +4 -2
- package/dist/display-list/build/textBoxPrimitives.js +6 -4
- package/dist/display-list/build/textDecorations.d.ts +15 -1
- package/dist/display-list/build/textDecorations.js +15 -1
- package/dist/display-list/dom/renderDisplayListToDom.js +1 -19
- package/dist/display-list/primitives.d.ts +13 -2
- package/dist/display-list/primitives.js +36 -1
- package/dist/document-operations.js +2 -1
- package/dist/docx/attributeRemainder.d.ts +34 -1
- package/dist/docx/attributeRemainder.js +49 -3
- package/dist/docx/blockContentParser.d.ts +2 -0
- package/dist/docx/blockContentParser.js +39 -67
- package/dist/docx/blockPlainText.js +3 -1
- package/dist/docx/borderParser.js +26 -11
- package/dist/docx/builtInStyles.d.ts +8 -16
- package/dist/docx/builtInStyles.js +54 -17
- package/dist/docx/commentAnchorIndex.js +1 -1
- package/dist/docx/commentParser.js +3 -3
- package/dist/docx/commentRangeIntegrity.js +1 -1
- package/dist/docx/commentRangeJoin.js +1 -1
- package/dist/docx/commentReferenceNormalization.js +3 -2
- package/dist/docx/commentReplyMarkers.js +1 -1
- package/dist/docx/compatibility.js +56 -42
- package/dist/docx/containerChildren.d.ts +110 -13
- package/dist/docx/containerChildren.gen.d.ts +16 -1
- package/dist/docx/containerChildren.gen.js +18 -1
- package/dist/docx/containerChildren.js +63 -13
- package/dist/docx/diagramPreview.d.ts +14 -2
- package/dist/docx/diagramPreview.js +81 -169
- package/dist/docx/documentParser.js +4 -1
- package/dist/docx/drawingAnchor.d.ts +87 -0
- package/dist/docx/drawingAnchor.js +201 -0
- package/dist/docx/drawingUtils.d.ts +43 -38
- package/dist/docx/drawingUtils.js +205 -118
- package/dist/docx/fontTableParser.js +102 -41
- package/dist/docx/footnoteParser.js +10 -6
- package/dist/docx/groupDrawingParser.js +4 -3
- package/dist/docx/headerFooterReferenceNormalization.js +1 -1
- package/dist/docx/hyperlinkParser.d.ts +45 -7
- package/dist/docx/hyperlinkParser.js +126 -57
- package/dist/docx/imageParser.js +127 -107
- package/dist/docx/index.d.ts +2 -1
- package/dist/docx/index.js +2 -1
- package/dist/docx/inlineContentRemovals.d.ts +28 -0
- package/dist/docx/inlineContentRemovals.js +46 -0
- package/dist/docx/inlineWrapperContent.d.ts +84 -3
- package/dist/docx/inlineWrapperContent.js +85 -4
- package/dist/docx/inlineWrapperParser.d.ts +11 -0
- package/dist/docx/inlineWrapperParser.js +60 -0
- package/dist/docx/nonVisualDrawingProps.d.ts +5 -13
- package/dist/docx/normalizeBaseDirection.js +4 -2
- package/dist/docx/numberingParser.d.ts +25 -2
- package/dist/docx/numberingParser.js +264 -361
- package/dist/docx/numberingReference.d.ts +9 -16
- package/dist/docx/numberingReference.js +17 -16
- package/dist/docx/numberingReferenceNormalization.js +7 -7
- package/dist/docx/ooxmlCounterFormatter.d.ts +1 -1
- package/dist/docx/ooxmlCounterFormatter.js +4 -1
- package/dist/docx/paraIdAttribute.d.ts +91 -1
- package/dist/docx/paraIdAttribute.js +79 -1
- package/dist/docx/paragraphParser.d.ts +9 -24
- package/dist/docx/paragraphParser.js +212 -396
- package/dist/docx/paragraphProperties.d.ts +23 -0
- package/dist/docx/paragraphProperties.js +279 -0
- package/dist/docx/paragraphPropertySource.js +2 -0
- package/dist/docx/paragraphTextBoxEnrichment.d.ts +2 -1
- package/dist/docx/paragraphTextBoxEnrichment.js +14 -7
- package/dist/docx/paragraphTraversal.d.ts +14 -10
- package/dist/docx/paragraphTraversal.js +47 -49
- package/dist/docx/parseWarningMessage.js +3 -0
- package/dist/docx/parserEnums.d.ts +6 -8
- package/dist/docx/parserEnums.js +4 -6
- package/dist/docx/preservedRunContent.js +16 -6
- package/dist/docx/previewBudget.d.ts +44 -23
- package/dist/docx/previewBudget.js +61 -30
- package/dist/docx/propertyElementAttributes.d.ts +178 -0
- package/dist/docx/propertyElementAttributes.js +114 -0
- package/dist/docx/renderedPageBreakNormalization.js +2 -2
- package/dist/docx/rezip.d.ts +28 -2
- package/dist/docx/rezip.js +78 -9
- package/dist/docx/runConsolidator.d.ts +42 -2
- package/dist/docx/runConsolidator.js +60 -6
- package/dist/docx/runParser.d.ts +54 -18
- package/dist/docx/runParser.js +379 -295
- package/dist/docx/runPayload.d.ts +5 -0
- package/dist/docx/runPayload.js +4 -0
- package/dist/docx/sdtProperties.d.ts +39 -5
- package/dist/docx/sdtProperties.js +205 -84
- package/dist/docx/sdtPropertiesPatch.d.ts +5 -9
- package/dist/docx/sdtPropertiesPatch.js +68 -112
- package/dist/docx/sectionParser.d.ts +1 -2
- package/dist/docx/sectionParser.js +236 -240
- package/dist/docx/selectiveSave.js +3 -2
- package/dist/docx/selectiveXmlPatch.d.ts +21 -2
- package/dist/docx/selectiveXmlPatch.js +195 -99
- package/dist/docx/serializer/blockSdtSerializer.js +2 -96
- package/dist/docx/serializer/borderSerializer.d.ts +5 -5
- package/dist/docx/serializer/borderSerializer.js +10 -8
- package/dist/docx/serializer/documentSerializer.js +3 -0
- package/dist/docx/serializer/fontTableSerializer.js +31 -3
- package/dist/docx/serializer/headerFooterSerializer.js +3 -0
- package/dist/docx/serializer/markupRangeAttributes.d.ts +9 -1
- package/dist/docx/serializer/markupRangeAttributes.js +9 -1
- package/dist/docx/serializer/noteSerializer.js +3 -0
- package/dist/docx/serializer/numberingSerializer.d.ts +1 -6
- package/dist/docx/serializer/numberingSerializer.js +81 -79
- package/dist/docx/serializer/paragraphSerializer.d.ts +1 -9
- package/dist/docx/serializer/paragraphSerializer.js +88 -188
- package/dist/docx/serializer/runSerializer.d.ts +1 -5
- package/dist/docx/serializer/runSerializer.js +109 -59
- package/dist/docx/serializer/sdtPropertiesSerializer.d.ts +26 -0
- package/dist/docx/serializer/sdtPropertiesSerializer.js +111 -0
- package/dist/docx/serializer/sectionPropertiesSerializer.js +34 -45
- package/dist/docx/serializer/settingsSerializer.js +6 -4
- package/dist/docx/serializer/stylesSerializer.js +8 -11
- package/dist/docx/serializer/tableSerializer.js +268 -100
- package/dist/docx/serializer/textFormattingSerializer.d.ts +28 -4
- package/dist/docx/serializer/textFormattingSerializer.js +111 -101
- package/dist/docx/serializer/xmlUtils.d.ts +1 -1
- package/dist/docx/serializer/xmlUtils.js +1 -1
- package/dist/docx/server/createBilingualDocument.js +18 -16
- package/dist/docx/server/migrateYjsAttrSchema.js +3 -3
- package/dist/docx/settingsParser.js +7 -4
- package/dist/docx/shadingParser.d.ts +2 -1
- package/dist/docx/shadingParser.js +43 -7
- package/dist/docx/shapeParser.js +8 -3
- package/dist/docx/strictNames.d.ts +11 -0
- package/dist/docx/strictNames.gen.d.ts +45 -0
- package/dist/docx/strictNames.gen.js +50 -0
- package/dist/docx/strictNames.js +43 -0
- package/dist/docx/strictValueEncodings.gen.js +133 -131
- package/dist/docx/styleParser.js +17 -349
- package/dist/docx/tableParser.d.ts +10 -1
- package/dist/docx/tableParser.js +505 -181
- package/dist/docx/textBoxParser.d.ts +3 -1
- package/dist/docx/textBoxParser.js +18 -8
- package/dist/docx/themeColorAttribute.d.ts +13 -0
- package/dist/docx/themeColorAttribute.js +24 -0
- package/dist/docx/trackedMoveRangeNormalization.js +2 -1
- package/dist/docx/vmlImageParser.d.ts +13 -4
- package/dist/docx/vmlImageParser.js +74 -31
- package/dist/docx/vmlPreview.js +2 -2
- package/dist/docx/wrapPolygon.d.ts +30 -0
- package/dist/docx/wrapPolygon.js +70 -0
- package/dist/docx/xmlParser.d.ts +14 -1
- package/dist/docx/xmlParser.js +18 -2
- package/dist/fonts/embeddedFonts.js +3 -3
- package/dist/headless-layout.js +2 -0
- package/dist/i18n/messages/catalogs.gen.d.ts +68 -0
- package/dist/i18n/messages/catalogs.gen.js +102 -34
- package/dist/i18n/messages/messages.gen.d.ts +4 -0
- package/dist/internal/headlessRevisionResolution.js +9 -0
- package/dist/internal/pageBreakRunSourceDescendantIndex.js +3 -1
- package/dist/internal/paragraphFormattingSerialization.d.ts +20 -9
- package/dist/internal/paragraphFormattingSerialization.js +118 -83
- package/dist/layout-bridge/convert/footnoteLayout.d.ts +1 -0
- package/dist/layout-bridge/convert/footnoteLayout.js +1 -0
- package/dist/layout-bridge/convert/headerFooterLayout.d.ts +1 -0
- package/dist/layout-bridge/convert/headerFooterLayout.js +2 -0
- package/dist/layout-bridge/convert/toFlowBlocks.d.ts +17 -12
- package/dist/layout-bridge/convert/toFlowBlocks.js +177 -101
- package/dist/layout-engine/index.d.ts +2 -2
- package/dist/layout-engine/index.js +53 -17
- package/dist/layout-engine/measure/measureBlocks.d.ts +3 -0
- package/dist/layout-engine/measure/measureBlocks.js +6 -10
- package/dist/layout-engine/measure/tableCellGrid.js +2 -1
- package/dist/layout-engine/measure/tableFragmentBorderGeometry.js +2 -1
- package/dist/layout-engine/measure/tableInlinePlacement.js +2 -5
- package/dist/layout-engine/paragraphSequence.js +3 -2
- package/dist/layout-engine/renderedBreakReconciliation.js +2 -1
- package/dist/layout-engine/section-breaks.d.ts +49 -2
- package/dist/layout-engine/section-breaks.js +55 -4
- package/dist/layout-engine/types.d.ts +47 -17
- package/dist/layout-engine/types.js +16 -1
- package/dist/layout-painter/borderStroke.d.ts +18 -4
- package/dist/layout-painter/renderPage.js +6 -4
- package/dist/layout-painter/renderParagraph.d.ts +2 -1
- package/dist/layout-painter/renderParagraph.js +13 -26
- package/dist/layout-painter/renderTable.d.ts +4 -1
- package/dist/layout-painter/renderTable.js +22 -22
- package/dist/layout-painter/renderTextBox.js +5 -3
- package/dist/markdown/renderBlock.js +3 -1
- package/dist/markdown/renderRuns.js +7 -2
- package/dist/markdown/renderTable.js +2 -1
- package/dist/model.d.ts +3 -3
- package/dist/model.js +2 -2
- package/dist/paged-layout/sectionBlockWidths.d.ts +3 -0
- package/dist/paged-layout/sectionBlockWidths.js +26 -4
- package/dist/prosemirror/attrs/index.d.ts +22 -4
- package/dist/prosemirror/attrs/index.js +498 -60
- package/dist/prosemirror/bookmarkBoundaryAttrs.d.ts +9 -1
- package/dist/prosemirror/bookmarkBoundaryAttrs.js +22 -3
- package/dist/prosemirror/commands/comments.js +68 -53
- package/dist/prosemirror/commands/contentControls.js +24 -19
- package/dist/prosemirror/commands/image.d.ts +1 -1
- package/dist/prosemirror/commands/image.js +4 -1
- package/dist/prosemirror/commands/paragraph.d.ts +2 -1
- package/dist/prosemirror/commands/propertyChangeScope.d.ts +12 -4
- package/dist/prosemirror/commands/propertyChangeScope.js +22 -4
- package/dist/prosemirror/commands/sectionBreak.d.ts +33 -1
- package/dist/prosemirror/commands/sectionBreak.js +187 -11
- package/dist/prosemirror/conversion/fromProseDoc.d.ts +18 -2
- package/dist/prosemirror/conversion/fromProseDoc.js +330 -183
- package/dist/prosemirror/conversion/index.d.ts +2 -2
- package/dist/prosemirror/conversion/preservedSinkCarriers.d.ts +39 -0
- package/dist/prosemirror/conversion/preservedSinkCarriers.js +19 -0
- package/dist/prosemirror/conversion/runShadingMark.js +14 -1
- package/dist/prosemirror/conversion/sdtAttrs.d.ts +10 -1
- package/dist/prosemirror/conversion/sdtAttrs.js +19 -5
- package/dist/prosemirror/conversion/toProseDoc.js +371 -141
- package/dist/prosemirror/emptyRangeAnchor.d.ts +53 -0
- package/dist/prosemirror/emptyRangeAnchor.js +158 -0
- package/dist/prosemirror/extensions/StarterKit.js +8 -2
- package/dist/prosemirror/extensions/core/DocExtension.js +1 -1
- package/dist/prosemirror/extensions/core/ParagraphExtension.js +19 -15
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +3 -2
- package/dist/prosemirror/extensions/features/ListExtension.js +43 -24
- package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +4 -3
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +3 -3
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +5 -5
- package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +3 -1
- package/dist/prosemirror/extensions/features/pasteCleanup.js +56 -2
- package/dist/prosemirror/extensions/features/pastedHeadingStyles.js +5 -4
- package/dist/prosemirror/extensions/markRegistry.d.ts +26 -2
- package/dist/prosemirror/extensions/markRegistry.js +73 -10
- package/dist/prosemirror/extensions/marks/InlineWrapperExtension.js +17 -3
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.d.ts +26 -0
- package/dist/prosemirror/extensions/marks/RunIdentityExtension.js +134 -0
- package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +2 -1
- package/dist/prosemirror/extensions/marks/UnderlineExtension.js +12 -18
- package/dist/prosemirror/extensions/marks/markUtils.js +2 -1
- package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.d.ts +29 -0
- package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.js +46 -0
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +4 -3
- package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +18 -13
- package/dist/prosemirror/extensions/nodes/BookmarkBoundaryExtension.js +28 -53
- package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.js +10 -0
- package/dist/prosemirror/extensions/nodes/ImageExtension.js +8 -1
- package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.d.ts +11 -0
- package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.js +43 -0
- package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.d.ts +13 -0
- package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.js +65 -0
- package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +3 -1
- package/dist/prosemirror/extensions/nodes/SdtExtension.js +22 -16
- package/dist/prosemirror/extensions/nodes/ShapeExtension.js +4 -0
- package/dist/prosemirror/extensions/nodes/TableExtension.js +141 -123
- package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +4 -0
- package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.d.ts +23 -0
- package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.js +57 -0
- package/dist/prosemirror/extensions/types.d.ts +12 -3
- package/dist/prosemirror/index.d.ts +4 -2
- package/dist/prosemirror/index.js +2 -1
- package/dist/prosemirror/inlineWrapperStack.js +20 -3
- package/dist/prosemirror/listMarker.d.ts +2 -2
- package/dist/prosemirror/listMarker.js +7 -8
- package/dist/prosemirror/listRenderingAttrs.js +11 -1
- package/dist/prosemirror/listState.d.ts +62 -0
- package/dist/prosemirror/listState.js +49 -0
- package/dist/prosemirror/moveRangeBoundaryAttrs.d.ts +13 -0
- package/dist/prosemirror/moveRangeBoundaryAttrs.js +114 -0
- package/dist/prosemirror/numberedRefFields.js +4 -4
- package/dist/prosemirror/numberingAttr.d.ts +55 -0
- package/dist/prosemirror/numberingAttr.js +74 -0
- package/dist/prosemirror/outlineLevelAttr.d.ts +29 -0
- package/dist/prosemirror/outlineLevelAttr.js +42 -0
- package/dist/prosemirror/paragraphFormattingProvenance.d.ts +9 -0
- package/dist/prosemirror/paragraphFormattingProvenance.js +4 -1
- package/dist/prosemirror/plugins/selectionTracker.d.ts +3 -6
- package/dist/prosemirror/plugins/selectionTracker.js +3 -10
- package/dist/prosemirror/rangeAnchorAttrs.d.ts +14 -0
- package/dist/prosemirror/rangeAnchorAttrs.js +101 -0
- package/dist/prosemirror/replacedAnnotations.d.ts +1 -1
- package/dist/prosemirror/replacedAnnotations.js +24 -6
- package/dist/prosemirror/revisionCarriers.d.ts +86 -2
- package/dist/prosemirror/revisionCarriers.js +86 -60
- package/dist/prosemirror/runFormattingInlineCarriers.d.ts +2 -0
- package/dist/prosemirror/runFormattingInlineCarriers.js +2 -0
- package/dist/prosemirror/runIdentity.d.ts +28 -0
- package/dist/prosemirror/runIdentity.js +36 -0
- package/dist/prosemirror/runStyleFormatting.js +1 -1
- package/dist/prosemirror/schema/index.d.ts +2 -2
- package/dist/prosemirror/schema/marks.d.ts +23 -4
- package/dist/prosemirror/schema/nodes.d.ts +220 -24
- package/dist/prosemirror/sectionCarrier.d.ts +37 -0
- package/dist/prosemirror/sectionCarrier.js +40 -0
- package/dist/prosemirror/selectionState.d.ts +3 -0
- package/dist/prosemirror/selectionState.js +4 -1
- package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +5 -4
- package/dist/prosemirror/styles/resolvedStyleAttrs.js +15 -13
- package/dist/prosemirror/tableResize.js +5 -6
- package/dist/prosemirror/trackedRunInlineAtoms.d.ts +2 -0
- package/dist/prosemirror/trackedRunInlineAtoms.js +2 -0
- package/dist/prosemirror/utils/extractTrackedChanges.d.ts +10 -11
- package/dist/prosemirror/utils/extractTrackedChanges.js +109 -92
- package/dist/prosemirror/validation.js +17 -6
- package/dist/prosemirror/yjsDocumentMetadata.d.ts +2 -2
- package/dist/prosemirror/yjsDocumentMetadata.js +428 -7
- package/dist/prosemirror/zeroWidthAnchors.js +4 -0
- package/dist/style-sets/extract.js +4 -4
- package/dist/style-sets/stellaStyle.js +36 -23
- package/dist/types/colors.d.ts +2 -2
- package/dist/types/content.d.ts +2 -2
- package/dist/types/documentEnumValues.d.ts +53 -26
- package/dist/types/documentEnumValues.js +72 -174
- package/dist/types/formatting.d.ts +2 -2
- package/dist/types/index.d.ts +9 -2
- package/dist/utils/borderCss.d.ts +246 -0
- package/dist/utils/borderCss.js +325 -0
- package/dist/utils/colorResolver.d.ts +4 -3
- package/dist/utils/colorResolver.js +45 -76
- package/dist/utils/createDocument.js +24 -6
- package/dist/utils/findReplace.js +52 -10
- package/dist/utils/formatToStyle.d.ts +84 -2
- package/dist/utils/formatToStyle.js +133 -52
- package/dist/utils/headingCollector.js +3 -2
- package/dist/utils/mergeDocumentContent.js +5 -3
- package/dist/utils/paragraphFormattingMerge.js +27 -6
- package/dist/utils/replaceText.js +1 -1
- package/dist/utils/tableOperations.d.ts +5 -3
- package/dist/utils/tableOperations.js +14 -1
- package/dist/utils/tablePlacement.d.ts +7 -0
- package/dist/utils/tablePlacement.js +14 -0
- package/dist/utils/textDirectionFlow.d.ts +15 -0
- package/dist/utils/textDirectionFlow.js +38 -0
- package/dist/utils/textFormattingMerge.js +16 -4
- package/package.json +10 -10
- package/dist/ai-edits/__fixtures__/paragraphs.d.ts +0 -17
- package/dist/ai-edits/__fixtures__/paragraphs.js +0 -33
- package/dist/compare/__fixtures__/body-sequence.d.ts +0 -119
- package/dist/compare/__fixtures__/body-sequence.js +0 -225
- package/dist/compare/__fixtures__/nested-table.d.ts +0 -16
- package/dist/compare/__fixtures__/nested-table.js +0 -50
- package/dist/compare/__fixtures__/numbered-list.d.ts +0 -34
- package/dist/compare/__fixtures__/numbered-list.js +0 -85
- package/dist/docx/bookmarkPlacement.d.ts +0 -9
- package/dist/docx/bookmarkPlacement.js +0 -52
- package/dist/fonts/embeddedFontTable.d.ts +0 -45
- package/dist/fonts/embeddedFontTable.js +0 -80
- package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.d.ts +0 -13
- package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.js +0 -39
|
@@ -7,17 +7,15 @@ import * as v from "valibot";
|
|
|
7
7
|
* no `as` at the call site.
|
|
8
8
|
*/
|
|
9
9
|
declare const narrowEnum: <T extends string>(value: string | null | undefined, schema: v.PicklistSchema<readonly T[], undefined>) => T | undefined;
|
|
10
|
-
declare const ThemeColorSlotSchema: v.PicklistSchema<readonly ["dk1", "lt1", "dk2", "lt2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6", "hlink", "folHlink", "background1", "text1", "background2", "text2"], undefined>;
|
|
11
|
-
declare const BorderStyleSchema: v.PicklistSchema<readonly ["none", "single", "double", "dotted", "dashed", "thick", "triple", "thinThickSmallGap", "thickThinSmallGap", "thinThickMediumGap", "thickThinMediumGap", "thinThickLargeGap", "thickThinLargeGap", "wave", "doubleWave", "dashSmallGap", "dashDotStroked", "threeDEmboss", "threeDEngrave", "outset", "inset", "nil"], undefined>;
|
|
12
10
|
declare const UnderlineStyleSchema: v.PicklistSchema<readonly ["none", "single", "words", "double", "thick", "dotted", "dottedHeavy", "dash", "dashedHeavy", "dashLong", "dashLongHeavy", "dotDash", "dashDotHeavy", "dotDotDash", "dashDotDotHeavy", "wave", "wavyHeavy", "wavyDouble"], undefined>;
|
|
13
11
|
declare const HighlightColorSchema: v.PicklistSchema<readonly ["black", "blue", "cyan", "darkBlue", "darkCyan", "darkGray", "darkGreen", "darkMagenta", "darkRed", "darkYellow", "green", "lightGray", "magenta", "none", "red", "white", "yellow"], undefined>;
|
|
14
12
|
declare const TextEffectSchema: v.PicklistSchema<readonly ["none", "blinkBackground", "lights", "antsBlack", "antsRed", "shimmer", "sparkle"], undefined>;
|
|
15
13
|
declare const EmphasisMarkSchema: v.PicklistSchema<readonly ["none", "dot", "comma", "circle", "underDot"], undefined>;
|
|
16
14
|
declare const FontThemeSchema: v.PicklistSchema<readonly ["majorAscii", "majorHAnsi", "majorEastAsia", "majorBidi", "minorAscii", "minorHAnsi", "minorEastAsia", "minorBidi"], undefined>;
|
|
17
15
|
declare const FontHintSchema: v.PicklistSchema<readonly ["default", "eastAsia", "cs"], undefined>;
|
|
18
|
-
declare const ParagraphAlignmentSchema: v.PicklistSchema<readonly ["
|
|
16
|
+
declare const ParagraphAlignmentSchema: v.PicklistSchema<readonly ["start", "center", "end", "both", "mediumKashida", "distribute", "numTab", "highKashida", "lowKashida", "thaiDistribute", "left", "right"], undefined>;
|
|
19
17
|
declare const LineSpacingRuleSchema: v.PicklistSchema<readonly ["auto", "exact", "atLeast"], undefined>;
|
|
20
|
-
declare const TabStopAlignmentSchema: v.PicklistSchema<readonly ["
|
|
18
|
+
declare const TabStopAlignmentSchema: v.PicklistSchema<readonly ["clear", "start", "center", "end", "decimal", "bar", "num", "left", "right"], undefined>;
|
|
21
19
|
declare const TabLeaderSchema: v.PicklistSchema<readonly ["none", "dot", "hyphen", "underscore", "heavy", "middleDot"], undefined>;
|
|
22
20
|
declare const PositionalTabRelativeToSchema: v.PicklistSchema<readonly ["margin", "indent"], undefined>;
|
|
23
21
|
declare const PositionalTabAlignmentSchema: v.PicklistSchema<readonly ["left", "center", "right"], undefined>;
|
|
@@ -29,9 +27,10 @@ declare const SdtLockSchema: v.PicklistSchema<readonly ["sdtLocked", "contentLoc
|
|
|
29
27
|
declare const FieldTypeSchema: v.PicklistSchema<readonly ["PAGE", "NUMPAGES", "NUMWORDS", "NUMCHARS", "DATE", "TIME", "CREATEDATE", "SAVEDATE", "PRINTDATE", "AUTHOR", "TITLE", "SUBJECT", "KEYWORDS", "COMMENTS", "FILENAME", "FILESIZE", "TEMPLATE", "DOCPROPERTY", "DOCVARIABLE", "REF", "PAGEREF", "NOTEREF", "HYPERLINK", "TOC", "TOA", "INDEX", "SEQ", "STYLEREF", "AUTONUM", "AUTONUMLGL", "AUTONUMOUT", "LISTNUM", "IF", "MERGEFIELD", "NEXT", "NEXTIF", "ASK", "SET", "QUOTE", "INCLUDETEXT", "INCLUDEPICTURE", "SYMBOL", "ADVANCE", "EDITTIME", "REVNUM", "SECTION", "SECTIONPAGES", "USERADDRESS", "USERNAME", "USERINITIALS", "UNKNOWN"], undefined>;
|
|
30
28
|
declare const StyleTypeSchema: v.PicklistSchema<readonly ["paragraph", "character", "numbering", "table"], undefined>;
|
|
31
29
|
declare const ConditionalStyleTypeSchema: v.PicklistSchema<readonly ["band1Horz", "band1Vert", "band2Horz", "band2Vert", "firstCol", "firstRow", "lastCol", "lastRow", "neCell", "nwCell", "seCell", "swCell", "wholeTable"], undefined>;
|
|
30
|
+
declare const TableAlignmentSchema: v.PicklistSchema<readonly ["center", "end", "left", "right", "start"], undefined>;
|
|
32
31
|
declare const TableWidthTypeSchema: v.PicklistSchema<readonly ["auto", "dxa", "nil", "pct"], undefined>;
|
|
33
32
|
declare const TableRowHeightRuleSchema: v.PicklistSchema<readonly ["auto", "atLeast", "exact"], undefined>;
|
|
34
|
-
declare const
|
|
33
|
+
declare const TextDirectionSchema: v.PicklistSchema<readonly ["tb", "rl", "lr", "tbV", "rlV", "lrV", "btLr", "lrTb", "lrTbV", "tbLrV", "tbRl", "tbRlV"], undefined>;
|
|
35
34
|
declare const ShadingPatternSchema: v.PicklistSchema<readonly ["clear", "solid", "horzStripe", "vertStripe", "reverseDiagStripe", "diagStripe", "horzCross", "diagCross", "thinHorzStripe", "thinVertStripe", "thinReverseDiagStripe", "thinDiagStripe", "thinHorzCross", "thinDiagCross", "pct5", "pct10", "pct12", "pct15", "pct20", "pct25", "pct30", "pct35", "pct37", "pct40", "pct45", "pct50", "pct55", "pct60", "pct62", "pct65", "pct70", "pct75", "pct80", "pct85", "pct87", "pct90", "pct95", "nil"], undefined>;
|
|
36
35
|
declare const FloatingTableXSpecSchema: v.PicklistSchema<readonly ["left", "center", "right", "inside", "outside"], undefined>;
|
|
37
36
|
declare const FloatingTableYSpecSchema: v.PicklistSchema<readonly ["top", "center", "bottom", "inside", "outside", "inline"], undefined>;
|
|
@@ -40,9 +39,8 @@ declare const ImageHorizontalAlignmentSchema: v.PicklistSchema<readonly ["left",
|
|
|
40
39
|
declare const ImageVerticalRelativeToSchema: v.PicklistSchema<readonly ["insideMargin", "line", "margin", "outsideMargin", "page", "paragraph", "topMargin", "bottomMargin"], undefined>;
|
|
41
40
|
declare const ImageVerticalAlignmentSchema: v.PicklistSchema<readonly ["top", "bottom", "center", "inside", "outside"], undefined>;
|
|
42
41
|
declare const ImageWrapTextSchema: v.PicklistSchema<readonly ["bothSides", "left", "right", "largest"], undefined>;
|
|
43
|
-
declare const ShapeOutlineStyleSchema: v.PicklistSchema<readonly ["solid", "dot", "dash", "lgDash", "dashDot", "lgDashDot", "lgDashDotDot", "sysDot", "sysDash", "sysDashDot", "sysDashDotDot"], undefined>;
|
|
44
42
|
declare const ShapeTypeSchema: v.PicklistSchema<readonly ["rect", "roundRect", "ellipse", "triangle", "rtTriangle", "parallelogram", "trapezoid", "pentagon", "hexagon", "heptagon", "octagon", "decagon", "dodecagon", "star4", "star5", "star6", "star7", "star8", "star10", "star12", "star16", "star24", "star32", "line", "straightConnector1", "bentConnector2", "bentConnector3", "bentConnector4", "bentConnector5", "curvedConnector2", "curvedConnector3", "curvedConnector4", "curvedConnector5", "rightArrow", "leftArrow", "upArrow", "downArrow", "leftRightArrow", "upDownArrow", "quadArrow", "leftRightUpArrow", "bentArrow", "uturnArrow", "leftUpArrow", "bentUpArrow", "curvedRightArrow", "curvedLeftArrow", "curvedUpArrow", "curvedDownArrow", "stripedRightArrow", "notchedRightArrow", "homePlate", "chevron", "rightArrowCallout", "downArrowCallout", "leftArrowCallout", "upArrowCallout", "leftRightArrowCallout", "quadArrowCallout", "circularArrow", "flowChartProcess", "flowChartAlternateProcess", "flowChartDecision", "flowChartInputOutput", "flowChartPredefinedProcess", "flowChartInternalStorage", "flowChartDocument", "flowChartMultidocument", "flowChartTerminator", "flowChartPreparation", "flowChartManualInput", "flowChartManualOperation", "flowChartConnector", "flowChartOffpageConnector", "flowChartPunchedCard", "flowChartPunchedTape", "flowChartSummingJunction", "flowChartOr", "flowChartCollate", "flowChartSort", "flowChartExtract", "flowChartMerge", "flowChartOnlineStorage", "flowChartDelay", "flowChartMagneticTape", "flowChartMagneticDisk", "flowChartMagneticDrum", "flowChartDisplay", "wedgeRectCallout", "wedgeRoundRectCallout", "wedgeEllipseCallout", "cloudCallout", "borderCallout1", "borderCallout2", "borderCallout3", "accentCallout1", "accentCallout2", "accentCallout3", "callout1", "callout2", "callout3", "accentBorderCallout1", "accentBorderCallout2", "accentBorderCallout3", "actionButtonBlank", "actionButtonHome", "actionButtonHelp", "actionButtonInformation", "actionButtonBackPrevious", "actionButtonForwardNext", "actionButtonBeginning", "actionButtonEnd", "actionButtonReturn", "actionButtonDocument", "actionButtonSound", "actionButtonMovie", "irregularSeal1", "irregularSeal2", "frame", "halfFrame", "corner", "diagStripe", "chord", "arc", "bracketPair", "bracePair", "leftBracket", "rightBracket", "leftBrace", "rightBrace", "can", "cube", "bevel", "donut", "noSmoking", "blockArc", "foldedCorner", "smileyFace", "heart", "lightningBolt", "sun", "moon", "cloud", "snip1Rect", "snip2SameRect", "snip2DiagRect", "snipRoundRect", "round1Rect", "round2SameRect", "round2DiagRect", "plaque", "teardrop", "mathPlus", "mathMinus", "mathMultiply", "mathDivide", "mathEqual", "mathNotEqual", "gear6", "gear9", "funnel", "pieWedge", "pie", "leftCircularArrow", "leftRightCircularArrow", "swooshArrow", "textBox"], undefined>;
|
|
45
|
-
declare const NumberFormatSchema: v.PicklistSchema<readonly ["decimal", "upperRoman", "lowerRoman", "upperLetter", "lowerLetter", "ordinal", "cardinalText", "ordinalText", "hex", "chicago", "ideographDigital", "japaneseCounting", "aiueo", "iroha", "decimalFullWidth", "decimalHalfWidth", "japaneseLegal", "japaneseDigitalTenThousand", "decimalEnclosedCircle", "decimalFullWidth2", "aiueoFullWidth", "irohaFullWidth", "decimalZero", "
|
|
43
|
+
declare const NumberFormatSchema: v.PicklistSchema<readonly ["decimal", "upperRoman", "lowerRoman", "upperLetter", "lowerLetter", "ordinal", "cardinalText", "ordinalText", "hex", "chicago", "ideographDigital", "japaneseCounting", "aiueo", "iroha", "decimalFullWidth", "decimalHalfWidth", "japaneseLegal", "japaneseDigitalTenThousand", "decimalEnclosedCircle", "decimalFullWidth2", "aiueoFullWidth", "irohaFullWidth", "decimalZero", "bullet", "ganada", "chosung", "decimalEnclosedFullstop", "decimalEnclosedParen", "decimalEnclosedCircleChinese", "ideographEnclosedCircle", "ideographTraditional", "ideographZodiac", "ideographZodiacTraditional", "taiwaneseCounting", "ideographLegalTraditional", "taiwaneseCountingThousand", "taiwaneseDigital", "chineseCounting", "chineseLegalSimplified", "chineseCountingThousand", "koreanDigital", "koreanCounting", "koreanLegal", "koreanDigital2", "vietnameseCounting", "russianLower", "russianUpper", "none", "numberInDash", "hebrew1", "hebrew2", "arabicAlpha", "arabicAbjad", "hindiVowels", "hindiConsonants", "hindiNumbers", "hindiCounting", "thaiLetters", "thaiNumbers", "thaiCounting", "bahtText", "dollarText", "custom"], undefined>;
|
|
46
44
|
declare const LevelSuffixSchema: v.PicklistSchema<readonly ["tab", "space", "nothing"], undefined>;
|
|
47
45
|
//#endregion
|
|
48
|
-
export {
|
|
46
|
+
export { ConditionalStyleTypeSchema, EmphasisMarkSchema, FieldTypeSchema, FloatingTableXSpecSchema, FloatingTableYSpecSchema, FontHintSchema, FontThemeSchema, FrameWrapSchema, FrameXAlignSchema, FrameYAlignSchema, HighlightColorSchema, ImageHorizontalAlignmentSchema, ImageHorizontalRelativeToSchema, ImageVerticalAlignmentSchema, ImageVerticalRelativeToSchema, ImageWrapTextSchema, LevelSuffixSchema, LineSpacingRuleSchema, NumberFormatSchema, ParagraphAlignmentSchema, PositionalTabAlignmentSchema, PositionalTabLeaderSchema, PositionalTabRelativeToSchema, SdtLockSchema, ShadingPatternSchema, ShapeTypeSchema, StyleTypeSchema, TabLeaderSchema, TabStopAlignmentSchema, TableAlignmentSchema, TableRowHeightRuleSchema, TableWidthTypeSchema, TextDirectionSchema, TextEffectSchema, UnderlineStyleSchema, narrowEnum };
|
package/dist/docx/parserEnums.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CONDITIONAL_STYLE_TYPE_VALUES, EMPHASIS_MARK_VALUES, FIELD_TYPE_VALUES, FLOATING_TABLE_X_SPEC_VALUES, FLOATING_TABLE_Y_SPEC_VALUES, FONT_HINT_VALUES, FONT_THEME_VALUES, FRAME_WRAP_VALUES, FRAME_X_ALIGN_VALUES, FRAME_Y_ALIGN_VALUES, HIGHLIGHT_COLOR_VALUES, IMAGE_HORIZONTAL_ALIGNMENT_VALUES, IMAGE_HORIZONTAL_RELATIVE_TO_VALUES, IMAGE_VERTICAL_ALIGNMENT_VALUES, IMAGE_VERTICAL_RELATIVE_TO_VALUES, IMAGE_WRAP_TEXT_VALUES, LEVEL_SUFFIX_VALUES, LINE_SPACING_RULE_VALUES, NUMBER_FORMAT_VALUES, PARAGRAPH_ALIGNMENT_VALUES, POSITIONAL_TAB_ALIGNMENT_VALUES, POSITIONAL_TAB_LEADER_VALUES, POSITIONAL_TAB_RELATIVE_TO_VALUES, SDT_LOCK_VALUES, SHADING_PATTERN_VALUES, SHAPE_TYPE_VALUES, STYLE_TYPE_VALUES, TABLE_JUSTIFICATION_VALUES, TABLE_ROW_HEIGHT_RULE_VALUES, TABLE_WIDTH_TYPE_VALUES, TAB_LEADER_VALUES, TAB_STOP_ALIGNMENT_VALUES, TEXT_DIRECTION_VALUES, TEXT_EFFECT_VALUES, UNDERLINE_STYLE_VALUES } from "../types/documentEnumValues.js";
|
|
2
2
|
import * as v from "valibot";
|
|
3
3
|
//#region src/docx/parserEnums.ts
|
|
4
4
|
/**
|
|
@@ -33,8 +33,6 @@ const narrowEnum = (value, schema) => {
|
|
|
33
33
|
const result = v.safeParse(schema, value);
|
|
34
34
|
return result.success ? result.output : void 0;
|
|
35
35
|
};
|
|
36
|
-
const ThemeColorSlotSchema = v.picklist(THEME_COLOR_SLOT_VALUES);
|
|
37
|
-
const BorderStyleSchema = v.picklist(BORDER_STYLE_VALUES);
|
|
38
36
|
const UnderlineStyleSchema = v.picklist(UNDERLINE_STYLE_VALUES);
|
|
39
37
|
const HighlightColorSchema = v.picklist(HIGHLIGHT_COLOR_VALUES);
|
|
40
38
|
const TextEffectSchema = v.picklist(TEXT_EFFECT_VALUES);
|
|
@@ -55,9 +53,10 @@ const SdtLockSchema = v.picklist(SDT_LOCK_VALUES);
|
|
|
55
53
|
const FieldTypeSchema = v.picklist(FIELD_TYPE_VALUES);
|
|
56
54
|
const StyleTypeSchema = v.picklist(STYLE_TYPE_VALUES);
|
|
57
55
|
const ConditionalStyleTypeSchema = v.picklist(CONDITIONAL_STYLE_TYPE_VALUES);
|
|
56
|
+
const TableAlignmentSchema = v.picklist(TABLE_JUSTIFICATION_VALUES);
|
|
58
57
|
const TableWidthTypeSchema = v.picklist(TABLE_WIDTH_TYPE_VALUES);
|
|
59
58
|
const TableRowHeightRuleSchema = v.picklist(TABLE_ROW_HEIGHT_RULE_VALUES);
|
|
60
|
-
const
|
|
59
|
+
const TextDirectionSchema = v.picklist(TEXT_DIRECTION_VALUES);
|
|
61
60
|
const ShadingPatternSchema = v.picklist(SHADING_PATTERN_VALUES);
|
|
62
61
|
const FloatingTableXSpecSchema = v.picklist(FLOATING_TABLE_X_SPEC_VALUES);
|
|
63
62
|
const FloatingTableYSpecSchema = v.picklist(FLOATING_TABLE_Y_SPEC_VALUES);
|
|
@@ -66,9 +65,8 @@ const ImageHorizontalAlignmentSchema = v.picklist(IMAGE_HORIZONTAL_ALIGNMENT_VAL
|
|
|
66
65
|
const ImageVerticalRelativeToSchema = v.picklist(IMAGE_VERTICAL_RELATIVE_TO_VALUES);
|
|
67
66
|
const ImageVerticalAlignmentSchema = v.picklist(IMAGE_VERTICAL_ALIGNMENT_VALUES);
|
|
68
67
|
const ImageWrapTextSchema = v.picklist(IMAGE_WRAP_TEXT_VALUES);
|
|
69
|
-
const ShapeOutlineStyleSchema = v.picklist(SHAPE_OUTLINE_STYLE_VALUES);
|
|
70
68
|
const ShapeTypeSchema = v.picklist(SHAPE_TYPE_VALUES);
|
|
71
69
|
const NumberFormatSchema = v.picklist(NUMBER_FORMAT_VALUES);
|
|
72
70
|
const LevelSuffixSchema = v.picklist(LEVEL_SUFFIX_VALUES);
|
|
73
71
|
//#endregion
|
|
74
|
-
export {
|
|
72
|
+
export { ConditionalStyleTypeSchema, EmphasisMarkSchema, FieldTypeSchema, FloatingTableXSpecSchema, FloatingTableYSpecSchema, FontHintSchema, FontThemeSchema, FrameWrapSchema, FrameXAlignSchema, FrameYAlignSchema, HighlightColorSchema, ImageHorizontalAlignmentSchema, ImageHorizontalRelativeToSchema, ImageVerticalAlignmentSchema, ImageVerticalRelativeToSchema, ImageWrapTextSchema, LevelSuffixSchema, LineSpacingRuleSchema, NumberFormatSchema, ParagraphAlignmentSchema, PositionalTabAlignmentSchema, PositionalTabLeaderSchema, PositionalTabRelativeToSchema, SdtLockSchema, ShadingPatternSchema, ShapeTypeSchema, StyleTypeSchema, TabLeaderSchema, TabStopAlignmentSchema, TableAlignmentSchema, TableRowHeightRuleSchema, TableWidthTypeSchema, TextDirectionSchema, TextEffectSchema, UnderlineStyleSchema, narrowEnum };
|
|
@@ -52,13 +52,23 @@ const preserveRunChild = (element) => ({
|
|
|
52
52
|
*
|
|
53
53
|
* `w:customXml` and `w:smartTag` are transparent wrappers (ECMA-376 §17.5.1,
|
|
54
54
|
* §17.5.1.9): their content is ordinary inline content, so their `w:t`
|
|
55
|
-
* descendants are on the line.
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
55
|
+
* descendants are on the line. A `w:hyperlink` and a `w:fldSimple` are here
|
|
56
|
+
* for the same reason and only in one place — inside another link or another
|
|
57
|
+
* field, where folio captures the inner one rather than modelling the nesting.
|
|
58
|
+
* Their runs print like any other; a capture that kept the markup and not the
|
|
59
|
+
* words would take a linked clause off the page.
|
|
60
|
+
*
|
|
61
|
+
* Every other inline child folio captures — `w:permStart`, `w:proofErr` and
|
|
62
|
+
* the custom-XML revision ranges — is an empty marker, and an element folio
|
|
63
|
+
* has never seen contributes nothing on purpose, because guessing at its text
|
|
64
|
+
* would put invented words in a document.
|
|
60
65
|
*/
|
|
61
|
-
const VISIBLE_TEXT_INLINE_CHILDREN = /* @__PURE__ */ new Set([
|
|
66
|
+
const VISIBLE_TEXT_INLINE_CHILDREN = /* @__PURE__ */ new Set([
|
|
67
|
+
"customXml",
|
|
68
|
+
"fldSimple",
|
|
69
|
+
"hyperlink",
|
|
70
|
+
"smartTag"
|
|
71
|
+
]);
|
|
62
72
|
/**
|
|
63
73
|
* One capture from the shared dispatcher's sink, as a member of the
|
|
64
74
|
* container's own inline union.
|
|
@@ -15,44 +15,65 @@
|
|
|
15
15
|
* would have stopped the other charging for it without anything failing. The
|
|
16
16
|
* table below is that agreement written once, and a producer builds its image
|
|
17
17
|
* out of the entry the budget matches against.
|
|
18
|
+
*
|
|
19
|
+
* An entry says what backs the preview, because that decides what there is to
|
|
20
|
+
* agree on. A source-backed preview is image data in `src`, recognized by the
|
|
21
|
+
* strings its producer stamps on it and charged by the character. A
|
|
22
|
+
* descriptor-backed preview is no picture at all, so it carries none of those
|
|
23
|
+
* strings: a table that offered them would be offering a cap over nothing and
|
|
24
|
+
* a prefix nothing can start with.
|
|
18
25
|
*/
|
|
19
|
-
|
|
26
|
+
type PreviewKindName = "vmlShape" | "wpGroup" | "smartArt";
|
|
20
27
|
declare const PREVIEW_KINDS: {
|
|
21
28
|
/** A VML shape folio renders rather than projects (`v:shape`, `v:rect`, ...). */
|
|
22
29
|
readonly vmlShape: {
|
|
30
|
+
readonly backing: "source";
|
|
23
31
|
readonly mimeType: "image/svg+xml";
|
|
24
32
|
readonly filename: "vml-shape-preview.svg";
|
|
25
33
|
readonly srcPrefix: "data:image/svg+xml;charset=utf-8,";
|
|
26
34
|
readonly maxPackageCharacters: number;
|
|
27
35
|
};
|
|
28
36
|
/**
|
|
29
|
-
* A
|
|
37
|
+
* A WordprocessingGroup (`wpg:wgp`) folio renders rather than projects.
|
|
30
38
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
39
|
+
* The group's shapes, their text and any picture they carry are drawn into
|
|
40
|
+
* one SVG, so a package with many groups retains as much generated text as a
|
|
41
|
+
* package of VML shapes does, from a producer bounded per drawing the same
|
|
42
|
+
* way. It was missing from this table, which is not a preview with a generous
|
|
43
|
+
* cap but a preview with none: the matcher below never named it, so no
|
|
44
|
+
* package was ever charged for one.
|
|
45
|
+
*/
|
|
46
|
+
readonly wpGroup: {
|
|
47
|
+
readonly backing: "source";
|
|
48
|
+
readonly mimeType: "image/svg+xml";
|
|
49
|
+
readonly filename: "wordprocessing-group.svg";
|
|
50
|
+
readonly srcPrefix: "data:image/svg+xml;charset=utf-8,";
|
|
51
|
+
readonly maxPackageCharacters: number;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* A SmartArt diagram: its extent filled with one flat rectangle per shape.
|
|
37
55
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* it
|
|
43
|
-
*
|
|
44
|
-
* to
|
|
56
|
+
* It used to be a raster in `src`, because the display list decoded only
|
|
57
|
+
* base64 PNG and JPEG and a vector preview would have been missing from
|
|
58
|
+
* every backend but the DOM. That cost 7.3 MB of data URL per diagram
|
|
59
|
+
* whatever the package weighed, up to 51.3 MB in one corpus package, because
|
|
60
|
+
* it followed the extent the author chose rather than anything the drawing
|
|
61
|
+
* contained. It is a `PreviewDescriptor` now, which both backends draw, and
|
|
62
|
+
* the bound on it is the shape cap the parse applies to the description.
|
|
45
63
|
*/
|
|
46
64
|
readonly smartArt: {
|
|
47
|
-
readonly
|
|
48
|
-
readonly filename: "smartart-preview.png";
|
|
49
|
-
readonly srcPrefix: "data:image/png;base64,";
|
|
50
|
-
readonly maxPackageCharacters: number;
|
|
65
|
+
readonly backing: "descriptor";
|
|
51
66
|
};
|
|
52
67
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
68
|
+
/** The kinds a package charges: those whose preview is image data it retains. */
|
|
69
|
+
type SourceBackedKindName = { [Name in PreviewKindName]: (typeof PREVIEW_KINDS)[Name]["backing"] extends "source" ? Name : never; }[PreviewKindName];
|
|
70
|
+
/**
|
|
71
|
+
* Per-kind allowances for one package, defaulting to the table's caps.
|
|
72
|
+
*
|
|
73
|
+
* Only a source-backed kind has an allowance: there is no number that would
|
|
74
|
+
* change what the budget does to a descriptor.
|
|
75
|
+
*/
|
|
76
|
+
type PreviewBudgetOverrides = Partial<Record<SourceBackedKindName, number>>;
|
|
56
77
|
/**
|
|
57
78
|
* Charge every generated preview in the model against its kind's allowance and
|
|
58
79
|
* drop the `src` of those past it. Dropping leaves the image in place with its
|
|
@@ -61,4 +82,4 @@ type PreviewBudgetOverrides = Partial<Record<PreviewKindName, number>>;
|
|
|
61
82
|
*/
|
|
62
83
|
declare const enforcePackagePreviewBudget: (root: unknown, overrides?: PreviewBudgetOverrides) => void;
|
|
63
84
|
//#endregion
|
|
64
|
-
export { PREVIEW_KINDS, PreviewBudgetOverrides,
|
|
85
|
+
export { PREVIEW_KINDS, PreviewBudgetOverrides, enforcePackagePreviewBudget };
|
|
@@ -1,49 +1,80 @@
|
|
|
1
1
|
//#region src/docx/previewBudget.ts
|
|
2
|
-
|
|
3
|
-
const
|
|
2
|
+
/** Both SVG producers encode their drawing into the URL rather than base64. */
|
|
3
|
+
const SVG_PREVIEW_DATA_URL_PREFIX = "data:image/svg+xml;charset=utf-8,";
|
|
4
|
+
/**
|
|
5
|
+
* Eight times what a producer may spend on one drawing, which is a package
|
|
6
|
+
* holding a handful of the largest previews folio will build.
|
|
7
|
+
*/
|
|
8
|
+
const SVG_PREVIEW_PACKAGE_CHARACTERS = 8 * (1024 * 1024);
|
|
4
9
|
const PREVIEW_KINDS = {
|
|
5
10
|
/** A VML shape folio renders rather than projects (`v:shape`, `v:rect`, ...). */
|
|
6
11
|
vmlShape: {
|
|
12
|
+
backing: "source",
|
|
7
13
|
mimeType: "image/svg+xml",
|
|
8
14
|
filename: "vml-shape-preview.svg",
|
|
9
|
-
srcPrefix:
|
|
10
|
-
maxPackageCharacters:
|
|
15
|
+
srcPrefix: SVG_PREVIEW_DATA_URL_PREFIX,
|
|
16
|
+
maxPackageCharacters: SVG_PREVIEW_PACKAGE_CHARACTERS
|
|
11
17
|
},
|
|
12
18
|
/**
|
|
13
|
-
* A
|
|
19
|
+
* A WordprocessingGroup (`wpg:wgp`) folio renders rather than projects.
|
|
14
20
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
+
* The group's shapes, their text and any picture they carry are drawn into
|
|
22
|
+
* one SVG, so a package with many groups retains as much generated text as a
|
|
23
|
+
* package of VML shapes does, from a producer bounded per drawing the same
|
|
24
|
+
* way. It was missing from this table, which is not a preview with a generous
|
|
25
|
+
* cap but a preview with none: the matcher below never named it, so no
|
|
26
|
+
* package was ever charged for one.
|
|
27
|
+
*/
|
|
28
|
+
wpGroup: {
|
|
29
|
+
backing: "source",
|
|
30
|
+
mimeType: "image/svg+xml",
|
|
31
|
+
filename: "wordprocessing-group.svg",
|
|
32
|
+
srcPrefix: SVG_PREVIEW_DATA_URL_PREFIX,
|
|
33
|
+
maxPackageCharacters: SVG_PREVIEW_PACKAGE_CHARACTERS
|
|
34
|
+
},
|
|
35
|
+
/**
|
|
36
|
+
* A SmartArt diagram: its extent filled with one flat rectangle per shape.
|
|
21
37
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* it
|
|
27
|
-
*
|
|
28
|
-
* to
|
|
38
|
+
* It used to be a raster in `src`, because the display list decoded only
|
|
39
|
+
* base64 PNG and JPEG and a vector preview would have been missing from
|
|
40
|
+
* every backend but the DOM. That cost 7.3 MB of data URL per diagram
|
|
41
|
+
* whatever the package weighed, up to 51.3 MB in one corpus package, because
|
|
42
|
+
* it followed the extent the author chose rather than anything the drawing
|
|
43
|
+
* contained. It is a `PreviewDescriptor` now, which both backends draw, and
|
|
44
|
+
* the bound on it is the shape cap the parse applies to the description.
|
|
29
45
|
*/
|
|
30
|
-
smartArt: {
|
|
31
|
-
mimeType: "image/png",
|
|
32
|
-
filename: "smartart-preview.png",
|
|
33
|
-
srcPrefix: "data:image/png;base64,",
|
|
34
|
-
maxPackageCharacters: 64 * MEBIBYTE
|
|
35
|
-
}
|
|
46
|
+
smartArt: { backing: "descriptor" }
|
|
36
47
|
};
|
|
37
48
|
const KIND_NAMES = Object.keys(PREVIEW_KINDS);
|
|
38
49
|
/**
|
|
50
|
+
* Whether a package charges this kind, narrowing the name to a source-backed
|
|
51
|
+
* one: the predicate reads the same field `SourceBackedKindName` selects on.
|
|
52
|
+
*/
|
|
53
|
+
const isSourceBacked = (name) => {
|
|
54
|
+
const kind = PREVIEW_KINDS[name];
|
|
55
|
+
switch (kind.backing) {
|
|
56
|
+
case "source": return true;
|
|
57
|
+
case "descriptor": return false;
|
|
58
|
+
default: return kind;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const SOURCE_BACKED_KIND_NAMES = KIND_NAMES.filter(isSourceBacked);
|
|
62
|
+
/**
|
|
39
63
|
* The kind a model image was generated as, or `undefined` for one the package
|
|
40
|
-
* actually carries. A generated preview has no relationship behind it
|
|
41
|
-
*
|
|
64
|
+
* actually carries. A generated preview has no relationship behind it; the
|
|
65
|
+
* filename and data-URL prefix name which producer made it.
|
|
66
|
+
*
|
|
67
|
+
* "No relationship" is read as the one spelling `RelationshipId` leaves: a
|
|
68
|
+
* field that is absent or `undefined`. The walk takes an unvalidated object,
|
|
69
|
+
* so the check stays, but it no longer has a second spelling to accept.
|
|
70
|
+
*
|
|
71
|
+
* Only a source-backed kind can be named this way. A descriptor-backed preview
|
|
72
|
+
* has no `src` to match, so no image the model carries can be charged to it.
|
|
42
73
|
*/
|
|
43
74
|
const previewKindOf = (value) => {
|
|
44
|
-
if (!("type" in value) || value.type !== "image" ||
|
|
75
|
+
if (!("type" in value) || value.type !== "image" || "rId" in value && value.rId !== void 0 || !("src" in value) || typeof value.src !== "string" || !("mimeType" in value) || !("filename" in value)) return;
|
|
45
76
|
const { src, mimeType, filename } = value;
|
|
46
|
-
return
|
|
77
|
+
return SOURCE_BACKED_KIND_NAMES.find((name) => {
|
|
47
78
|
const kind = PREVIEW_KINDS[name];
|
|
48
79
|
return mimeType === kind.mimeType && filename === kind.filename && src.startsWith(kind.srcPrefix);
|
|
49
80
|
});
|
|
@@ -55,7 +86,7 @@ const previewKindOf = (value) => {
|
|
|
55
86
|
* and never touches the preserved XML the package saves from.
|
|
56
87
|
*/
|
|
57
88
|
const enforcePackagePreviewBudget = (root, overrides = {}) => {
|
|
58
|
-
const remaining = new Map(
|
|
89
|
+
const remaining = new Map(SOURCE_BACKED_KIND_NAMES.map((name) => [name, Math.max(0, overrides[name] ?? PREVIEW_KINDS[name].maxPackageCharacters)]));
|
|
59
90
|
const visited = /* @__PURE__ */ new WeakSet();
|
|
60
91
|
const visit = (value) => {
|
|
61
92
|
if (value === null || typeof value !== "object" || visited.has(value)) return;
|
|
@@ -85,4 +116,4 @@ const enforcePackagePreviewBudget = (root, overrides = {}) => {
|
|
|
85
116
|
visit(root);
|
|
86
117
|
};
|
|
87
118
|
//#endregion
|
|
88
|
-
export { PREVIEW_KINDS,
|
|
119
|
+
export { PREVIEW_KINDS, enforcePackagePreviewBudget };
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
//#region src/docx/propertyElementAttributes.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Which attributes of a property element the model has a field for.
|
|
4
|
+
*
|
|
5
|
+
* A property element is an attribute bag: `w:ind`, `w:spacing`, `w:framePr`,
|
|
6
|
+
* `w:tab`, a `w:pBdr` side, `w:shd`. The child dispatcher decides them whole —
|
|
7
|
+
* a handler either reads the element or hands back its bytes — and that is
|
|
8
|
+
* exactly as far as it goes. `<w:ind w:leftChars="100"/>` is kept entire
|
|
9
|
+
* because the reader took nothing from it, and `<w:ind w:left="720"
|
|
10
|
+
* w:leftChars="100"/>` is modelled and loses the character unit, because the
|
|
11
|
+
* reader took something. The census measures one attribute at a time, so the
|
|
12
|
+
* second case reported as surviving.
|
|
13
|
+
*
|
|
14
|
+
* The fix is the attribute remainder that `w:p`'s `w:rsid*` attributes already
|
|
15
|
+
* ride, applied one level down: every attribute with no model field is kept on
|
|
16
|
+
* the record, decided on the resolved local name, written back by
|
|
17
|
+
* `serializePreservedAttributes`. The remainder predicate has to be derived
|
|
18
|
+
* from the model rather than hand-listed, or it is a mirror of the reader and
|
|
19
|
+
* drifts the first time a field is added — so each table below is
|
|
20
|
+
* `as const satisfies ModelledAttributes<…>` over the record's own fields, and
|
|
21
|
+
* a field that gains no entry does not compile.
|
|
22
|
+
*
|
|
23
|
+
* The tables live together, in a module with no runtime dependencies, because
|
|
24
|
+
* three callers consult them: the reader (to compute the remainder), and the
|
|
25
|
+
* container-survival census (to state a subject attribute beside a modelled
|
|
26
|
+
* sibling, which is what catches a whole-or-nothing reader at all). The writer
|
|
27
|
+
* needs no copy: it hands the fragments it is about to emit to
|
|
28
|
+
* `serializePreservedAttributes`, which drops a remainder entry that would
|
|
29
|
+
* spell one of them again.
|
|
30
|
+
*
|
|
31
|
+
* A field may name more than one attribute. `ParagraphFormatting.indentLeft`
|
|
32
|
+
* is filled from `w:left` or from the Strict `w:start`, and both have to be
|
|
33
|
+
* out of the remainder or a save writes the same indent twice under two
|
|
34
|
+
* spellings.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* The attributes one record's fields are read from, keyed by field.
|
|
38
|
+
*
|
|
39
|
+
* `Record`, never `Partial<Record>`: the key set is the record's own fields,
|
|
40
|
+
* so a field that has no attribute to name has to say so with an empty list
|
|
41
|
+
* rather than by being absent.
|
|
42
|
+
*/
|
|
43
|
+
type ModelledAttributes<Field extends string> = Readonly<Record<Field, string | readonly string[]>>;
|
|
44
|
+
/**
|
|
45
|
+
* `w:ind`. `hangingIndent` is the sign of `indentFirstLine` rather than a
|
|
46
|
+
* value of its own, so both name the attribute pair that carries it.
|
|
47
|
+
*/
|
|
48
|
+
declare const INDENTATION_ATTRIBUTES: {
|
|
49
|
+
readonly indentLeft: readonly ["left", "start"];
|
|
50
|
+
readonly indentRight: readonly ["right", "end"];
|
|
51
|
+
readonly indentFirstLine: readonly ["firstLine", "hanging"];
|
|
52
|
+
readonly hangingIndent: "hanging";
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* `w:spacing`. `spacingExplicit` records which of the two sides the paragraph
|
|
56
|
+
* stated itself; it is derived from them and reads no attribute of its own.
|
|
57
|
+
*/
|
|
58
|
+
declare const SPACING_ATTRIBUTES: {
|
|
59
|
+
readonly spaceBefore: "before";
|
|
60
|
+
readonly spaceAfter: "after";
|
|
61
|
+
readonly lineSpacing: "line";
|
|
62
|
+
readonly lineSpacingRule: "lineRule";
|
|
63
|
+
readonly beforeAutospacing: "beforeAutospacing";
|
|
64
|
+
readonly afterAutospacing: "afterAutospacing";
|
|
65
|
+
readonly spacingExplicit: readonly [];
|
|
66
|
+
};
|
|
67
|
+
declare const FRAME_ATTRIBUTES: {
|
|
68
|
+
readonly dropCap: "dropCap";
|
|
69
|
+
readonly lines: "lines";
|
|
70
|
+
readonly width: "w";
|
|
71
|
+
readonly height: "h";
|
|
72
|
+
readonly hSpace: "hSpace";
|
|
73
|
+
readonly vSpace: "vSpace";
|
|
74
|
+
readonly hAnchor: "hAnchor";
|
|
75
|
+
readonly vAnchor: "vAnchor";
|
|
76
|
+
readonly x: "x";
|
|
77
|
+
readonly y: "y";
|
|
78
|
+
readonly xAlign: "xAlign";
|
|
79
|
+
readonly yAlign: "yAlign";
|
|
80
|
+
readonly wrap: "wrap";
|
|
81
|
+
};
|
|
82
|
+
declare const TAB_STOP_ATTRIBUTES: {
|
|
83
|
+
readonly position: "pos";
|
|
84
|
+
readonly alignment: "val";
|
|
85
|
+
readonly leader: "leader";
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* `CT_Border`. The five art relationship ids are in the relationships
|
|
89
|
+
* namespace; the remainder decides on the local name, so naming them here
|
|
90
|
+
* keeps a `r:topLeft` out of it.
|
|
91
|
+
*/
|
|
92
|
+
declare const BORDER_ATTRIBUTES: {
|
|
93
|
+
readonly style: "val";
|
|
94
|
+
readonly color: readonly ["color", "themeColor", "themeTint", "themeShade"];
|
|
95
|
+
readonly size: "sz";
|
|
96
|
+
readonly space: "space";
|
|
97
|
+
readonly shadow: "shadow";
|
|
98
|
+
readonly frame: "frame";
|
|
99
|
+
readonly artRelationshipId: "id";
|
|
100
|
+
readonly topLeftArtRelationshipId: "topLeft";
|
|
101
|
+
readonly topRightArtRelationshipId: "topRight";
|
|
102
|
+
readonly bottomLeftArtRelationshipId: "bottomLeft";
|
|
103
|
+
readonly bottomRightArtRelationshipId: "bottomRight";
|
|
104
|
+
};
|
|
105
|
+
/** `CT_Shd`: direct, theme, modifier, and pattern attributes all have model fields. */
|
|
106
|
+
declare const SHADING_ATTRIBUTES: {
|
|
107
|
+
readonly color: readonly ["color", "themeColor", "themeTint", "themeShade"];
|
|
108
|
+
readonly fill: readonly ["fill", "themeFill", "themeFillTint", "themeFillShade"];
|
|
109
|
+
readonly pattern: "val";
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* The same tables by the complex type whose attributes they answer for, in
|
|
113
|
+
* the order the model declares the fields.
|
|
114
|
+
*
|
|
115
|
+
* The census reads this: to catch a whole-or-nothing reader it has to state
|
|
116
|
+
* the subject attribute *beside* one the element models, and which one that
|
|
117
|
+
* is has to come from the model rather than from a list in the census. The
|
|
118
|
+
* first entry is the one it picks.
|
|
119
|
+
*/
|
|
120
|
+
declare const PROPERTY_ELEMENT_ATTRIBUTES: {
|
|
121
|
+
readonly CT_Ind: {
|
|
122
|
+
readonly indentLeft: readonly ["left", "start"];
|
|
123
|
+
readonly indentRight: readonly ["right", "end"];
|
|
124
|
+
readonly indentFirstLine: readonly ["firstLine", "hanging"];
|
|
125
|
+
readonly hangingIndent: "hanging";
|
|
126
|
+
};
|
|
127
|
+
readonly CT_Spacing: {
|
|
128
|
+
readonly spaceBefore: "before";
|
|
129
|
+
readonly spaceAfter: "after";
|
|
130
|
+
readonly lineSpacing: "line";
|
|
131
|
+
readonly lineSpacingRule: "lineRule";
|
|
132
|
+
readonly beforeAutospacing: "beforeAutospacing";
|
|
133
|
+
readonly afterAutospacing: "afterAutospacing";
|
|
134
|
+
readonly spacingExplicit: readonly [];
|
|
135
|
+
};
|
|
136
|
+
readonly CT_FramePr: {
|
|
137
|
+
readonly dropCap: "dropCap";
|
|
138
|
+
readonly lines: "lines";
|
|
139
|
+
readonly width: "w";
|
|
140
|
+
readonly height: "h";
|
|
141
|
+
readonly hSpace: "hSpace";
|
|
142
|
+
readonly vSpace: "vSpace";
|
|
143
|
+
readonly hAnchor: "hAnchor";
|
|
144
|
+
readonly vAnchor: "vAnchor";
|
|
145
|
+
readonly x: "x";
|
|
146
|
+
readonly y: "y";
|
|
147
|
+
readonly xAlign: "xAlign";
|
|
148
|
+
readonly yAlign: "yAlign";
|
|
149
|
+
readonly wrap: "wrap";
|
|
150
|
+
};
|
|
151
|
+
readonly CT_TabStop: {
|
|
152
|
+
readonly position: "pos";
|
|
153
|
+
readonly alignment: "val";
|
|
154
|
+
readonly leader: "leader";
|
|
155
|
+
};
|
|
156
|
+
readonly CT_Border: {
|
|
157
|
+
readonly style: "val";
|
|
158
|
+
readonly color: readonly ["color", "themeColor", "themeTint", "themeShade"];
|
|
159
|
+
readonly size: "sz";
|
|
160
|
+
readonly space: "space";
|
|
161
|
+
readonly shadow: "shadow";
|
|
162
|
+
readonly frame: "frame";
|
|
163
|
+
readonly artRelationshipId: "id";
|
|
164
|
+
readonly topLeftArtRelationshipId: "topLeft";
|
|
165
|
+
readonly topRightArtRelationshipId: "topRight";
|
|
166
|
+
readonly bottomLeftArtRelationshipId: "bottomLeft";
|
|
167
|
+
readonly bottomRightArtRelationshipId: "bottomRight";
|
|
168
|
+
};
|
|
169
|
+
readonly CT_Shd: {
|
|
170
|
+
readonly color: readonly ["color", "themeColor", "themeTint", "themeShade"];
|
|
171
|
+
readonly fill: readonly ["fill", "themeFill", "themeFillTint", "themeFillShade"];
|
|
172
|
+
readonly pattern: "val";
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
/** Every attribute local name a table names, flattened, in field order. */
|
|
176
|
+
declare const modelledAttributeNames: (modelled: ModelledAttributes<string>) => readonly string[];
|
|
177
|
+
//#endregion
|
|
178
|
+
export { BORDER_ATTRIBUTES, FRAME_ATTRIBUTES, INDENTATION_ATTRIBUTES, ModelledAttributes, PROPERTY_ELEMENT_ATTRIBUTES, SHADING_ATTRIBUTES, SPACING_ATTRIBUTES, TAB_STOP_ATTRIBUTES, modelledAttributeNames };
|