docxmlater 10.0.2 → 10.0.3
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/README.md +2 -2
- package/dist/constants/legacyCompatFlags.d.ts.map +1 -1
- package/dist/constants/legacyCompatFlags.js.map +1 -1
- package/dist/constants/limits.d.ts +0 -27
- package/dist/constants/limits.d.ts.map +1 -1
- package/dist/constants/limits.js +13 -13
- package/dist/constants/limits.js.map +1 -1
- package/dist/core/Document.d.ts +23 -19
- package/dist/core/Document.d.ts.map +1 -1
- package/dist/core/Document.js +197 -63
- package/dist/core/Document.js.map +1 -1
- package/dist/core/DocumentContent.d.ts.map +1 -1
- package/dist/core/DocumentContent.js.map +1 -1
- package/dist/core/DocumentGenerator.d.ts.map +1 -1
- package/dist/core/DocumentGenerator.js +59 -24
- package/dist/core/DocumentGenerator.js.map +1 -1
- package/dist/core/DocumentIdManager.d.ts.map +1 -1
- package/dist/core/DocumentIdManager.js.map +1 -1
- package/dist/core/DocumentParser.d.ts +6 -6
- package/dist/core/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +60 -54
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/core/DocumentValidator.d.ts.map +1 -1
- package/dist/core/DocumentValidator.js.map +1 -1
- package/dist/core/Relationship.d.ts.map +1 -1
- package/dist/core/Relationship.js +1 -1
- package/dist/core/Relationship.js.map +1 -1
- package/dist/core/RelationshipManager.js +3 -3
- package/dist/core/RelationshipManager.js.map +1 -1
- package/dist/elements/AlternateContent.js.map +1 -1
- package/dist/elements/Bookmark.d.ts.map +1 -1
- package/dist/elements/Bookmark.js.map +1 -1
- package/dist/elements/BookmarkManager.d.ts.map +1 -1
- package/dist/elements/BookmarkManager.js.map +1 -1
- package/dist/elements/Comment.js +1 -1
- package/dist/elements/Comment.js.map +1 -1
- package/dist/elements/CommentManager.d.ts.map +1 -1
- package/dist/elements/CommentManager.js +8 -2
- package/dist/elements/CommentManager.js.map +1 -1
- package/dist/elements/CommonTypes.d.ts.map +1 -1
- package/dist/elements/CommonTypes.js +1 -2
- package/dist/elements/CommonTypes.js.map +1 -1
- package/dist/elements/CustomXml.js.map +1 -1
- package/dist/elements/Endnote.d.ts.map +1 -1
- package/dist/elements/Endnote.js.map +1 -1
- package/dist/elements/EndnoteManager.d.ts.map +1 -1
- package/dist/elements/EndnoteManager.js.map +1 -1
- package/dist/elements/Field.d.ts.map +1 -1
- package/dist/elements/Field.js +31 -28
- package/dist/elements/Field.js.map +1 -1
- package/dist/elements/FieldHelpers.d.ts.map +1 -1
- package/dist/elements/FieldHelpers.js +6 -6
- package/dist/elements/FieldHelpers.js.map +1 -1
- package/dist/elements/FontManager.d.ts.map +1 -1
- package/dist/elements/FontManager.js.map +1 -1
- package/dist/elements/Footer.js.map +1 -1
- package/dist/elements/Footnote.d.ts.map +1 -1
- package/dist/elements/Footnote.js.map +1 -1
- package/dist/elements/FootnoteManager.d.ts.map +1 -1
- package/dist/elements/FootnoteManager.js.map +1 -1
- package/dist/elements/Header.js.map +1 -1
- package/dist/elements/HeaderFooterManager.js.map +1 -1
- package/dist/elements/Hyperlink.d.ts.map +1 -1
- package/dist/elements/Hyperlink.js +5 -5
- package/dist/elements/Hyperlink.js.map +1 -1
- package/dist/elements/Image.d.ts +2 -2
- package/dist/elements/Image.d.ts.map +1 -1
- package/dist/elements/Image.js +21 -5
- package/dist/elements/Image.js.map +1 -1
- package/dist/elements/ImageManager.d.ts.map +1 -1
- package/dist/elements/ImageManager.js +2 -2
- package/dist/elements/ImageManager.js.map +1 -1
- package/dist/elements/ImageRun.js.map +1 -1
- package/dist/elements/MathElement.js.map +1 -1
- package/dist/elements/Paragraph.d.ts.map +1 -1
- package/dist/elements/Paragraph.js +128 -117
- package/dist/elements/Paragraph.js.map +1 -1
- package/dist/elements/PreservedElement.js.map +1 -1
- package/dist/elements/PropertyChangeTypes.js.map +1 -1
- package/dist/elements/RangeMarker.js.map +1 -1
- package/dist/elements/Revision.d.ts +1 -0
- package/dist/elements/Revision.d.ts.map +1 -1
- package/dist/elements/Revision.js +44 -5
- package/dist/elements/Revision.js.map +1 -1
- package/dist/elements/RevisionContent.js.map +1 -1
- package/dist/elements/RevisionManager.d.ts.map +1 -1
- package/dist/elements/RevisionManager.js.map +1 -1
- package/dist/elements/Run.d.ts.map +1 -1
- package/dist/elements/Run.js +1 -3
- package/dist/elements/Run.js.map +1 -1
- package/dist/elements/Section.d.ts.map +1 -1
- package/dist/elements/Section.js +127 -118
- package/dist/elements/Section.js.map +1 -1
- package/dist/elements/Shape.d.ts.map +1 -1
- package/dist/elements/Shape.js +21 -0
- package/dist/elements/Shape.js.map +1 -1
- package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
- package/dist/elements/StructuredDocumentTag.js +20 -8
- package/dist/elements/StructuredDocumentTag.js.map +1 -1
- package/dist/elements/Table.d.ts +2 -2
- package/dist/elements/Table.d.ts.map +1 -1
- package/dist/elements/Table.js +29 -35
- package/dist/elements/Table.js.map +1 -1
- package/dist/elements/TableCell.d.ts +2 -2
- package/dist/elements/TableCell.d.ts.map +1 -1
- package/dist/elements/TableCell.js +63 -67
- package/dist/elements/TableCell.js.map +1 -1
- package/dist/elements/TableGridChange.js.map +1 -1
- package/dist/elements/TableOfContents.d.ts +6 -6
- package/dist/elements/TableOfContents.d.ts.map +1 -1
- package/dist/elements/TableOfContents.js.map +1 -1
- package/dist/elements/TableOfContentsElement.js.map +1 -1
- package/dist/elements/TableRow.d.ts.map +1 -1
- package/dist/elements/TableRow.js +65 -47
- package/dist/elements/TableRow.js.map +1 -1
- package/dist/elements/TextBox.d.ts.map +1 -1
- package/dist/elements/TextBox.js +1 -1
- package/dist/elements/TextBox.js.map +1 -1
- package/dist/formatting/AbstractNumbering.d.ts +1 -1
- package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
- package/dist/formatting/AbstractNumbering.js +11 -11
- package/dist/formatting/AbstractNumbering.js.map +1 -1
- package/dist/formatting/NumberingInstance.d.ts.map +1 -1
- package/dist/formatting/NumberingInstance.js +4 -4
- package/dist/formatting/NumberingInstance.js.map +1 -1
- package/dist/formatting/NumberingLevel.d.ts.map +1 -1
- package/dist/formatting/NumberingLevel.js +26 -26
- package/dist/formatting/NumberingLevel.js.map +1 -1
- package/dist/formatting/NumberingManager.d.ts +1 -1
- package/dist/formatting/NumberingManager.d.ts.map +1 -1
- package/dist/formatting/NumberingManager.js.map +1 -1
- package/dist/formatting/Style.d.ts.map +1 -1
- package/dist/formatting/Style.js +87 -95
- package/dist/formatting/Style.js.map +1 -1
- package/dist/formatting/StylesManager.d.ts +3 -3
- package/dist/formatting/StylesManager.d.ts.map +1 -1
- package/dist/formatting/StylesManager.js.map +1 -1
- package/dist/helpers/CleanupHelper.js.map +1 -1
- package/dist/images/ImageOptimizer.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/managers/DrawingManager.d.ts.map +1 -1
- package/dist/managers/DrawingManager.js.map +1 -1
- package/dist/tracking/DocumentTrackingContext.js.map +1 -1
- package/dist/tracking/TrackingContext.js.map +1 -1
- package/dist/types/compatibility-types.js.map +1 -1
- package/dist/types/formatting.js.map +1 -1
- package/dist/types/list-types.d.ts +4 -4
- package/dist/types/list-types.d.ts.map +1 -1
- package/dist/types/list-types.js.map +1 -1
- package/dist/types/settings-types.js.map +1 -1
- package/dist/types/styleConfig.js.map +1 -1
- package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
- package/dist/utils/ChangelogGenerator.js.map +1 -1
- package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
- package/dist/utils/CompatibilityUpgrader.js +7 -7
- package/dist/utils/CompatibilityUpgrader.js.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.js +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
- package/dist/utils/MoveOperationHelper.js.map +1 -1
- package/dist/utils/RevisionAwareProcessor.js.map +1 -1
- package/dist/utils/RevisionWalker.js.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
- package/dist/utils/ShadingResolver.js +1 -1
- package/dist/utils/ShadingResolver.js.map +1 -1
- package/dist/utils/acceptRevisions.d.ts +0 -28
- package/dist/utils/acceptRevisions.d.ts.map +1 -1
- package/dist/utils/acceptRevisions.js +5 -7
- package/dist/utils/acceptRevisions.js.map +1 -1
- package/dist/utils/cnfStyleDecoder.js +1 -1
- package/dist/utils/cnfStyleDecoder.js.map +1 -1
- package/dist/utils/corruptionDetection.js.map +1 -1
- package/dist/utils/dateFormatting.js.map +1 -1
- package/dist/utils/deepClone.d.ts +0 -1
- package/dist/utils/deepClone.d.ts.map +1 -1
- package/dist/utils/deepClone.js +0 -7
- package/dist/utils/deepClone.js.map +1 -1
- package/dist/utils/diagnostics.d.ts +2 -2
- package/dist/utils/diagnostics.d.ts.map +1 -1
- package/dist/utils/diagnostics.js.map +1 -1
- package/dist/utils/errorHandling.js.map +1 -1
- package/dist/utils/formatting.js.map +1 -1
- package/dist/utils/list-detection.d.ts +2 -2
- package/dist/utils/list-detection.d.ts.map +1 -1
- package/dist/utils/list-detection.js +3 -3
- package/dist/utils/list-detection.js.map +1 -1
- package/dist/utils/logger.d.ts +2 -4
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +0 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/parsingHelpers.js.map +1 -1
- package/dist/utils/stripTrackedChanges.d.ts +0 -19
- package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
- package/dist/utils/stripTrackedChanges.js +0 -2
- package/dist/utils/stripTrackedChanges.js.map +1 -1
- package/dist/utils/textDiff.js.map +1 -1
- package/dist/utils/units.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/xmlSanitization.js.map +1 -1
- package/dist/validation/RevisionAutoFixer.js.map +1 -1
- package/dist/validation/RevisionValidator.js.map +1 -1
- package/dist/validation/ValidationRules.js.map +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/xml/XMLBuilder.d.ts.map +1 -1
- package/dist/xml/XMLBuilder.js +10 -0
- package/dist/xml/XMLBuilder.js.map +1 -1
- package/dist/xml/XMLParser.d.ts.map +1 -1
- package/dist/xml/XMLParser.js +4 -5
- package/dist/xml/XMLParser.js.map +1 -1
- package/dist/zip/ZipHandler.js.map +1 -1
- package/dist/zip/ZipReader.js.map +1 -1
- package/dist/zip/ZipWriter.js.map +1 -1
- package/dist/zip/errors.js.map +1 -1
- package/dist/zip/types.js.map +1 -1
- package/package.json +34 -4
- package/src/__tests__/helper-methods.test.ts +512 -0
- package/src/constants/legacyCompatFlags.ts +138 -0
- package/src/constants/limits.ts +50 -0
- package/src/core/CLAUDE.md +109 -0
- package/src/core/Document.ts +15569 -0
- package/src/core/DocumentContent.ts +467 -0
- package/src/core/DocumentGenerator.ts +1104 -0
- package/src/core/DocumentIdManager.ts +158 -0
- package/src/core/DocumentParser.ts +10107 -0
- package/src/core/DocumentValidator.ts +372 -0
- package/src/core/Relationship.ts +367 -0
- package/src/core/RelationshipManager.ts +428 -0
- package/src/elements/AlternateContent.ts +42 -0
- package/src/elements/Bookmark.ts +210 -0
- package/src/elements/BookmarkManager.ts +250 -0
- package/src/elements/CLAUDE.md +126 -0
- package/src/elements/Comment.ts +359 -0
- package/src/elements/CommentManager.ts +502 -0
- package/src/elements/CommonTypes.ts +549 -0
- package/src/elements/CustomXml.ts +36 -0
- package/src/elements/Endnote.ts +217 -0
- package/src/elements/EndnoteManager.ts +249 -0
- package/src/elements/Field.ts +1233 -0
- package/src/elements/FieldHelpers.ts +333 -0
- package/src/elements/FontManager.ts +339 -0
- package/src/elements/Footer.ts +269 -0
- package/src/elements/Footnote.ts +217 -0
- package/src/elements/FootnoteManager.ts +249 -0
- package/src/elements/Header.ts +269 -0
- package/src/elements/HeaderFooterManager.ts +219 -0
- package/src/elements/Hyperlink.ts +1146 -0
- package/src/elements/Image.ts +1756 -0
- package/src/elements/ImageManager.ts +432 -0
- package/src/elements/ImageRun.ts +59 -0
- package/src/elements/MathElement.ts +65 -0
- package/src/elements/Paragraph.ts +4227 -0
- package/src/elements/PreservedElement.ts +53 -0
- package/src/elements/PropertyChangeTypes.ts +442 -0
- package/src/elements/RangeMarker.ts +400 -0
- package/src/elements/Revision.ts +1217 -0
- package/src/elements/RevisionContent.ts +73 -0
- package/src/elements/RevisionManager.ts +1070 -0
- package/src/elements/Run.ts +3068 -0
- package/src/elements/Section.ts +1421 -0
- package/src/elements/Shape.ts +873 -0
- package/src/elements/StructuredDocumentTag.ts +978 -0
- package/src/elements/Table.ts +2524 -0
- package/src/elements/TableCell.ts +1586 -0
- package/src/elements/TableGridChange.ts +151 -0
- package/src/elements/TableOfContents.ts +691 -0
- package/src/elements/TableOfContentsElement.ts +89 -0
- package/src/elements/TableRow.ts +906 -0
- package/src/elements/TextBox.ts +768 -0
- package/src/formatting/AbstractNumbering.ts +548 -0
- package/src/formatting/CLAUDE.md +74 -0
- package/src/formatting/NumberingInstance.ts +212 -0
- package/src/formatting/NumberingLevel.ts +1006 -0
- package/src/formatting/NumberingManager.ts +827 -0
- package/src/formatting/Style.ts +1833 -0
- package/src/formatting/StylesManager.ts +1005 -0
- package/src/helpers/CleanupHelper.ts +524 -0
- package/src/images/ImageOptimizer.ts +274 -0
- package/src/index.ts +554 -0
- package/src/managers/CLAUDE.md +47 -0
- package/src/managers/DrawingManager.ts +319 -0
- package/src/tracking/DocumentTrackingContext.ts +643 -0
- package/src/tracking/TrackingContext.ts +173 -0
- package/src/types/compatibility-types.ts +49 -0
- package/src/types/formatting.ts +210 -0
- package/src/types/list-types.ts +152 -0
- package/src/types/settings-types.ts +59 -0
- package/src/types/styleConfig.ts +189 -0
- package/src/utils/CLAUDE.md +153 -0
- package/src/utils/ChangelogGenerator.ts +1581 -0
- package/src/utils/CompatibilityUpgrader.ts +237 -0
- package/src/utils/InMemoryRevisionAcceptor.ts +668 -0
- package/src/utils/MoveOperationHelper.ts +238 -0
- package/src/utils/RevisionAwareProcessor.ts +526 -0
- package/src/utils/RevisionWalker.ts +457 -0
- package/src/utils/SelectiveRevisionAcceptor.ts +613 -0
- package/src/utils/ShadingResolver.ts +107 -0
- package/src/utils/acceptRevisions.ts +714 -0
- package/src/utils/cnfStyleDecoder.ts +217 -0
- package/src/utils/corruptionDetection.ts +345 -0
- package/src/utils/dateFormatting.ts +20 -0
- package/src/utils/deepClone.ts +78 -0
- package/src/utils/diagnostics.ts +129 -0
- package/src/utils/errorHandling.ts +80 -0
- package/src/utils/formatting.ts +213 -0
- package/src/utils/list-detection.ts +274 -0
- package/src/utils/logger.ts +404 -0
- package/src/utils/parsingHelpers.ts +190 -0
- package/src/utils/stripTrackedChanges.ts +353 -0
- package/src/utils/textDiff.ts +100 -0
- package/src/utils/units.ts +421 -0
- package/src/utils/validation.ts +542 -0
- package/src/utils/xmlSanitization.ts +182 -0
- package/src/validation/RevisionAutoFixer.ts +542 -0
- package/src/validation/RevisionValidator.ts +460 -0
- package/src/validation/ValidationRules.ts +338 -0
- package/src/validation/index.ts +30 -0
- package/src/xml/CLAUDE.md +65 -0
- package/src/xml/XMLBuilder.ts +871 -0
- package/src/xml/XMLParser.ts +919 -0
- package/src/zip/CLAUDE.md +55 -0
- package/src/zip/ZipHandler.ts +637 -0
- package/src/zip/ZipReader.ts +299 -0
- package/src/zip/ZipWriter.ts +390 -0
- package/src/zip/errors.ts +69 -0
- package/src/zip/types.ts +116 -0
- package/dist/core/ListNormalizer.d.ts +0 -23
- package/dist/core/ListNormalizer.d.ts.map +0 -1
- package/dist/core/ListNormalizer.js +0 -624
- package/dist/core/ListNormalizer.js.map +0 -1
- package/dist/images/index.d.ts +0 -2
- package/dist/images/index.d.ts.map +0 -1
- package/dist/images/index.js +0 -8
- package/dist/images/index.js.map +0 -1
- package/dist/ms-doc/cfb/CFBReader.d.ts +0 -35
- package/dist/ms-doc/cfb/CFBReader.d.ts.map +0 -1
- package/dist/ms-doc/cfb/CFBReader.js +0 -360
- package/dist/ms-doc/cfb/CFBReader.js.map +0 -1
- package/dist/ms-doc/converter/DocToDocxConverter.d.ts +0 -55
- package/dist/ms-doc/converter/DocToDocxConverter.d.ts.map +0 -1
- package/dist/ms-doc/converter/DocToDocxConverter.js +0 -324
- package/dist/ms-doc/converter/DocToDocxConverter.js.map +0 -1
- package/dist/ms-doc/fib/FIB.d.ts +0 -18
- package/dist/ms-doc/fib/FIB.d.ts.map +0 -1
- package/dist/ms-doc/fib/FIB.js +0 -342
- package/dist/ms-doc/fib/FIB.js.map +0 -1
- package/dist/ms-doc/fields/FieldParser.d.ts +0 -31
- package/dist/ms-doc/fields/FieldParser.d.ts.map +0 -1
- package/dist/ms-doc/fields/FieldParser.js +0 -266
- package/dist/ms-doc/fields/FieldParser.js.map +0 -1
- package/dist/ms-doc/images/PictureExtractor.d.ts +0 -22
- package/dist/ms-doc/images/PictureExtractor.d.ts.map +0 -1
- package/dist/ms-doc/images/PictureExtractor.js +0 -233
- package/dist/ms-doc/images/PictureExtractor.js.map +0 -1
- package/dist/ms-doc/index.d.ts +0 -20
- package/dist/ms-doc/index.d.ts.map +0 -1
- package/dist/ms-doc/index.js +0 -59
- package/dist/ms-doc/index.js.map +0 -1
- package/dist/ms-doc/properties/SPRM.d.ts +0 -210
- package/dist/ms-doc/properties/SPRM.d.ts.map +0 -1
- package/dist/ms-doc/properties/SPRM.js +0 -633
- package/dist/ms-doc/properties/SPRM.js.map +0 -1
- package/dist/ms-doc/sections/SectionParser.d.ts +0 -25
- package/dist/ms-doc/sections/SectionParser.d.ts.map +0 -1
- package/dist/ms-doc/sections/SectionParser.js +0 -214
- package/dist/ms-doc/sections/SectionParser.js.map +0 -1
- package/dist/ms-doc/styles/StyleSheet.d.ts +0 -23
- package/dist/ms-doc/styles/StyleSheet.d.ts.map +0 -1
- package/dist/ms-doc/styles/StyleSheet.js +0 -268
- package/dist/ms-doc/styles/StyleSheet.js.map +0 -1
- package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts +0 -61
- package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts.map +0 -1
- package/dist/ms-doc/subdocuments/SubdocumentParser.js +0 -208
- package/dist/ms-doc/subdocuments/SubdocumentParser.js.map +0 -1
- package/dist/ms-doc/tables/TableParser.d.ts +0 -29
- package/dist/ms-doc/tables/TableParser.d.ts.map +0 -1
- package/dist/ms-doc/tables/TableParser.js +0 -176
- package/dist/ms-doc/tables/TableParser.js.map +0 -1
- package/dist/ms-doc/text/PieceTable.d.ts +0 -21
- package/dist/ms-doc/text/PieceTable.d.ts.map +0 -1
- package/dist/ms-doc/text/PieceTable.js +0 -171
- package/dist/ms-doc/text/PieceTable.js.map +0 -1
- package/dist/ms-doc/types/Constants.d.ts +0 -99
- package/dist/ms-doc/types/Constants.d.ts.map +0 -1
- package/dist/ms-doc/types/Constants.js +0 -102
- package/dist/ms-doc/types/Constants.js.map +0 -1
- package/dist/ms-doc/types/DocTypes.d.ts +0 -368
- package/dist/ms-doc/types/DocTypes.d.ts.map +0 -1
- package/dist/ms-doc/types/DocTypes.js +0 -3
- package/dist/ms-doc/types/DocTypes.js.map +0 -1
- package/dist/tracking/index.d.ts +0 -3
- package/dist/tracking/index.d.ts.map +0 -1
- package/dist/tracking/index.js +0 -6
- package/dist/tracking/index.js.map +0 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TrackingContext - Interface for automatic change tracking
|
|
3
|
+
*
|
|
4
|
+
* When enabled via Document.enableTrackChanges(), element setter methods
|
|
5
|
+
* use this context to automatically create Revision objects for changes.
|
|
6
|
+
*
|
|
7
|
+
* @module TrackingContext
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { Revision, RevisionType } from '../elements/Revision';
|
|
11
|
+
import type { RevisionManager } from '../elements/RevisionManager';
|
|
12
|
+
import type { Run } from '../elements/Run';
|
|
13
|
+
import type { Paragraph } from '../elements/Paragraph';
|
|
14
|
+
import type { Table } from '../elements/Table';
|
|
15
|
+
import type { TableRow } from '../elements/TableRow';
|
|
16
|
+
import type { TableCell } from '../elements/TableCell';
|
|
17
|
+
import type { Section } from '../elements/Section';
|
|
18
|
+
|
|
19
|
+
/** Union of element types that can be tracked */
|
|
20
|
+
export type TrackableElement = Run | Paragraph | Table | TableRow | TableCell | Section | { constructor: { name: string } };
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Pending change entry before flushing to RevisionManager
|
|
24
|
+
*/
|
|
25
|
+
export interface PendingChange {
|
|
26
|
+
/** Type of revision to create */
|
|
27
|
+
type: RevisionType;
|
|
28
|
+
/** Property that changed */
|
|
29
|
+
property: string;
|
|
30
|
+
/** Value before the change */
|
|
31
|
+
previousValue: unknown;
|
|
32
|
+
/** Value after the change */
|
|
33
|
+
newValue: unknown;
|
|
34
|
+
/** Element that was modified */
|
|
35
|
+
element: TrackableElement;
|
|
36
|
+
/** When the change occurred */
|
|
37
|
+
timestamp: number;
|
|
38
|
+
/** Count for consolidated changes */
|
|
39
|
+
count?: number;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Interface for tracking changes to document elements.
|
|
44
|
+
*
|
|
45
|
+
* Elements call tracking methods when their setters are invoked.
|
|
46
|
+
* The context decides whether to create revisions based on enabled state.
|
|
47
|
+
*/
|
|
48
|
+
export interface TrackingContext {
|
|
49
|
+
/**
|
|
50
|
+
* Check if change tracking is currently enabled
|
|
51
|
+
*/
|
|
52
|
+
isEnabled(): boolean;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Get the author name for new revisions
|
|
56
|
+
*/
|
|
57
|
+
getAuthor(): string;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Get the RevisionManager for registering revisions
|
|
61
|
+
*/
|
|
62
|
+
getRevisionManager(): RevisionManager;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Check if formatting changes should be tracked
|
|
66
|
+
*/
|
|
67
|
+
isTrackFormattingEnabled(): boolean;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Track a Run property change (bold, italic, font, color, etc.)
|
|
71
|
+
* @param run - The Run that was modified
|
|
72
|
+
* @param property - Property name (e.g., 'bold', 'color')
|
|
73
|
+
* @param oldValue - Value before the change
|
|
74
|
+
* @param newValue - Value after the change
|
|
75
|
+
*/
|
|
76
|
+
trackRunPropertyChange(
|
|
77
|
+
run: Run,
|
|
78
|
+
property: string,
|
|
79
|
+
oldValue: unknown,
|
|
80
|
+
newValue: unknown
|
|
81
|
+
): void;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Track a Paragraph property change (alignment, spacing, etc.)
|
|
85
|
+
* @param paragraph - The Paragraph that was modified
|
|
86
|
+
* @param property - Property name (e.g., 'alignment', 'spaceBefore')
|
|
87
|
+
* @param oldValue - Value before the change
|
|
88
|
+
* @param newValue - Value after the change
|
|
89
|
+
*/
|
|
90
|
+
trackParagraphPropertyChange(
|
|
91
|
+
paragraph: TrackableElement,
|
|
92
|
+
property: string,
|
|
93
|
+
oldValue: unknown,
|
|
94
|
+
newValue: unknown
|
|
95
|
+
): void;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Track a Hyperlink change (URL, anchor, text, formatting)
|
|
99
|
+
* @param hyperlink - The Hyperlink that was modified
|
|
100
|
+
* @param changeType - Type of change (e.g., 'url', 'text', 'formatting')
|
|
101
|
+
* @param oldValue - Value before the change
|
|
102
|
+
* @param newValue - Value after the change
|
|
103
|
+
*/
|
|
104
|
+
trackHyperlinkChange(
|
|
105
|
+
hyperlink: TrackableElement,
|
|
106
|
+
changeType: string,
|
|
107
|
+
oldValue: unknown,
|
|
108
|
+
newValue: unknown
|
|
109
|
+
): void;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Track a Table element property change
|
|
113
|
+
* @param element - The table/row/cell that was modified
|
|
114
|
+
* @param property - Property name
|
|
115
|
+
* @param oldValue - Value before the change
|
|
116
|
+
* @param newValue - Value after the change
|
|
117
|
+
*/
|
|
118
|
+
trackTableChange(
|
|
119
|
+
element: TrackableElement,
|
|
120
|
+
property: string,
|
|
121
|
+
oldValue: unknown,
|
|
122
|
+
newValue: unknown
|
|
123
|
+
): void;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Track a Section property change
|
|
127
|
+
* @param section - The Section that was modified
|
|
128
|
+
* @param property - Property name (e.g., 'pageSize', 'margins')
|
|
129
|
+
* @param oldValue - Value before the change
|
|
130
|
+
* @param newValue - Value after the change
|
|
131
|
+
*/
|
|
132
|
+
trackSectionChange(
|
|
133
|
+
section: TrackableElement,
|
|
134
|
+
property: string,
|
|
135
|
+
oldValue: unknown,
|
|
136
|
+
newValue: unknown
|
|
137
|
+
): void;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Track text insertion
|
|
141
|
+
* @param element - Element containing the insertion
|
|
142
|
+
* @param text - Text that was inserted
|
|
143
|
+
*/
|
|
144
|
+
trackInsertion(element: TrackableElement, text: string): void;
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Track text deletion
|
|
148
|
+
* @param element - Element containing the deletion
|
|
149
|
+
* @param text - Text that was deleted
|
|
150
|
+
*/
|
|
151
|
+
trackDeletion(element: TrackableElement, text: string): void;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Flush all pending changes and create Revision objects.
|
|
155
|
+
* This is called automatically before document save.
|
|
156
|
+
* @returns Array of created revisions
|
|
157
|
+
*/
|
|
158
|
+
flushPendingChanges(): Revision[];
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Create an insertion revision (factory to avoid circular dependency in Run)
|
|
162
|
+
* @param content - Run or array of content for the insertion
|
|
163
|
+
* @param date - Optional date for the revision
|
|
164
|
+
*/
|
|
165
|
+
createInsertion(content: Run, date?: Date): Revision;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Create a deletion revision (factory to avoid circular dependency in Run)
|
|
169
|
+
* @param content - Run or array of content for the deletion
|
|
170
|
+
* @param date - Optional date for the revision
|
|
171
|
+
*/
|
|
172
|
+
createDeletion(content: Run, date?: Date): Revision;
|
|
173
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Word compatibility mode versions.
|
|
3
|
+
*
|
|
4
|
+
* These map to Microsoft's internal version numbers used in the
|
|
5
|
+
* w:compatSetting name="compatibilityMode" value within settings.xml.
|
|
6
|
+
*
|
|
7
|
+
* Per MS-DOCX specification, the default when absent is 12 (Word 2007).
|
|
8
|
+
* See: https://learn.microsoft.com/en-us/openspecs/office_standards/ms-docx/90138c4d-eb18-4edc-aa6c-dfb799cb1d0d
|
|
9
|
+
*/
|
|
10
|
+
export enum CompatibilityMode {
|
|
11
|
+
/** Word 2003 and earlier — uses MS-DOC feature set */
|
|
12
|
+
Word2003 = 11,
|
|
13
|
+
/** Word 2007 (ECMA-376 1st edition) — DEFAULT when absent */
|
|
14
|
+
Word2007 = 12,
|
|
15
|
+
/** Word 2010 (ISO/IEC 29500 with exclusions) */
|
|
16
|
+
Word2010 = 14,
|
|
17
|
+
/** Word 2013/2016/2019/365 (full modern features) */
|
|
18
|
+
Word2013Plus = 15,
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* A single w:compatSetting entry (name/uri/val triple).
|
|
23
|
+
*
|
|
24
|
+
* These are the modern extensibility mechanism for compatibility settings,
|
|
25
|
+
* added in ECMA-376 2nd edition. They coexist with legacy boolean flags
|
|
26
|
+
* in the Transitional schema.
|
|
27
|
+
*/
|
|
28
|
+
export interface CompatSetting {
|
|
29
|
+
name: string;
|
|
30
|
+
uri: string;
|
|
31
|
+
val: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Parsed compatibility settings from the w:compat block in settings.xml.
|
|
36
|
+
*/
|
|
37
|
+
export interface CompatibilityInfo {
|
|
38
|
+
/** The numeric compatibility mode value (11, 12, 14, or 15) */
|
|
39
|
+
mode: CompatibilityMode;
|
|
40
|
+
|
|
41
|
+
/** Whether the document is in a legacy compatibility mode (below 15) */
|
|
42
|
+
isLegacyMode: boolean;
|
|
43
|
+
|
|
44
|
+
/** Modern w:compatSetting entries (name/uri/val triples) */
|
|
45
|
+
compatSettings: CompatSetting[];
|
|
46
|
+
|
|
47
|
+
/** Legacy boolean compat flags that are present and enabled (without w: prefix) */
|
|
48
|
+
legacyFlags: string[];
|
|
49
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Additional formatting types for enhanced document manipulation
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Forward references to avoid circular dependencies
|
|
6
|
+
import type { Paragraph } from '../elements/Paragraph';
|
|
7
|
+
import type { Run } from '../elements/Run';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Border style options
|
|
11
|
+
*/
|
|
12
|
+
export type BorderStyleType = 'single' | 'double' | 'dashed' | 'dotted' | 'triple' | 'none';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Individual border configuration
|
|
16
|
+
*/
|
|
17
|
+
export interface BorderStyle {
|
|
18
|
+
/** Border style */
|
|
19
|
+
style: BorderStyleType;
|
|
20
|
+
/** Border width in eighths of a point */
|
|
21
|
+
width: number;
|
|
22
|
+
/** Border color in hex format */
|
|
23
|
+
color: string;
|
|
24
|
+
/** Space between border and text in points */
|
|
25
|
+
space?: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Paragraph border configuration
|
|
30
|
+
*/
|
|
31
|
+
export interface ParagraphBorder {
|
|
32
|
+
/** Top border */
|
|
33
|
+
top?: BorderStyle;
|
|
34
|
+
/** Bottom border */
|
|
35
|
+
bottom?: BorderStyle;
|
|
36
|
+
/** Left border */
|
|
37
|
+
left?: BorderStyle;
|
|
38
|
+
/** Right border */
|
|
39
|
+
right?: BorderStyle;
|
|
40
|
+
/** Apply border between paragraphs */
|
|
41
|
+
between?: boolean;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Shading patterns — re-exported from CommonTypes for backward compatibility.
|
|
46
|
+
* @see CommonTypes.ShadingPattern for the canonical definition
|
|
47
|
+
*/
|
|
48
|
+
export type { ShadingPattern } from '../elements/CommonTypes';
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Paragraph shading configuration — re-exported from CommonTypes for backward compatibility.
|
|
52
|
+
* @see CommonTypes.ShadingConfig for the canonical definition (includes theme attributes)
|
|
53
|
+
*/
|
|
54
|
+
export type { ShadingConfig as ParagraphShading } from '../elements/CommonTypes';
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Tab stop alignment
|
|
58
|
+
*/
|
|
59
|
+
export type TabAlignment = 'left' | 'center' | 'right' | 'decimal' | 'bar' | 'clear';
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Tab leader character
|
|
63
|
+
*/
|
|
64
|
+
export type TabLeader = 'none' | 'dot' | 'dash' | 'underscore' | 'heavy' | 'middleDot';
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Tab stop configuration
|
|
68
|
+
*/
|
|
69
|
+
export interface TabStop {
|
|
70
|
+
/** Position in twips from left margin */
|
|
71
|
+
position: number;
|
|
72
|
+
/** Tab alignment type */
|
|
73
|
+
type: TabAlignment;
|
|
74
|
+
/** Leader character */
|
|
75
|
+
leader?: TabLeader;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Text search options
|
|
80
|
+
*/
|
|
81
|
+
export interface FindOptions {
|
|
82
|
+
/** Case sensitive search */
|
|
83
|
+
caseSensitive?: boolean;
|
|
84
|
+
/** Match whole words only */
|
|
85
|
+
wholeWord?: boolean;
|
|
86
|
+
/** Use regular expressions */
|
|
87
|
+
useRegex?: boolean;
|
|
88
|
+
/** Include headers and footers */
|
|
89
|
+
includeHeadersFooters?: boolean;
|
|
90
|
+
/** Include footnotes and endnotes */
|
|
91
|
+
includeNotes?: boolean;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Text replacement options
|
|
96
|
+
*/
|
|
97
|
+
export interface ReplaceOptions extends FindOptions {
|
|
98
|
+
/** Maximum number of replacements (0 = unlimited) */
|
|
99
|
+
maxReplacements?: number;
|
|
100
|
+
/** Track changes for replacements */
|
|
101
|
+
trackChanges?: boolean;
|
|
102
|
+
/** Author for track changes */
|
|
103
|
+
author?: string;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Search result
|
|
108
|
+
*/
|
|
109
|
+
export interface SearchResult {
|
|
110
|
+
/** The paragraph containing the match */
|
|
111
|
+
paragraph: Paragraph;
|
|
112
|
+
/** The run containing the match */
|
|
113
|
+
run?: Run;
|
|
114
|
+
/** Match start position in paragraph */
|
|
115
|
+
startIndex: number;
|
|
116
|
+
/** Match end position in paragraph */
|
|
117
|
+
endIndex: number;
|
|
118
|
+
/** The matched text */
|
|
119
|
+
match: string;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Text emphasis options
|
|
124
|
+
*/
|
|
125
|
+
export type EmphasisType = 'bold' | 'italic' | 'underline';
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* List prefix configuration
|
|
129
|
+
*/
|
|
130
|
+
export interface ListPrefix {
|
|
131
|
+
/** List format type */
|
|
132
|
+
format: 'bullet' | 'number';
|
|
133
|
+
/** Custom style string (e.g., '•', '1.', 'a)') */
|
|
134
|
+
style: string;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Format options for style application
|
|
139
|
+
*/
|
|
140
|
+
export interface FormatOptions {
|
|
141
|
+
// Text formatting
|
|
142
|
+
/** Font family name (e.g., 'Arial', 'Verdana') */
|
|
143
|
+
font?: string;
|
|
144
|
+
/** Font size in points */
|
|
145
|
+
size?: number;
|
|
146
|
+
/** Text color as 6-digit hex (e.g., 'FF0000' for red) */
|
|
147
|
+
color?: string;
|
|
148
|
+
/** Text emphasis (bold, italic, underline) */
|
|
149
|
+
emphasis?: EmphasisType[];
|
|
150
|
+
|
|
151
|
+
// Alignment
|
|
152
|
+
/** Paragraph alignment */
|
|
153
|
+
alignment?: 'left' | 'right' | 'center' | 'justify';
|
|
154
|
+
|
|
155
|
+
// Spacing (in points)
|
|
156
|
+
/** Space before paragraph in points */
|
|
157
|
+
spaceAbove?: number;
|
|
158
|
+
/** Space after paragraph in points */
|
|
159
|
+
spaceBelow?: number;
|
|
160
|
+
/** Line spacing in points or multiplier */
|
|
161
|
+
lineSpacing?: number;
|
|
162
|
+
|
|
163
|
+
// Indentation (in inches)
|
|
164
|
+
/** Left indentation in inches */
|
|
165
|
+
indentLeft?: number;
|
|
166
|
+
/** Right indentation in inches */
|
|
167
|
+
indentRight?: number;
|
|
168
|
+
/** First line indentation in inches */
|
|
169
|
+
indentFirst?: number;
|
|
170
|
+
/** Hanging indentation in inches */
|
|
171
|
+
indentHanging?: number;
|
|
172
|
+
|
|
173
|
+
// Padding (in points) - for table cells
|
|
174
|
+
/** Top padding in points */
|
|
175
|
+
paddingTop?: number;
|
|
176
|
+
/** Bottom padding in points */
|
|
177
|
+
paddingBottom?: number;
|
|
178
|
+
/** Left padding in points */
|
|
179
|
+
paddingLeft?: number;
|
|
180
|
+
/** Right padding in points */
|
|
181
|
+
paddingRight?: number;
|
|
182
|
+
|
|
183
|
+
// List formatting
|
|
184
|
+
/** List prefix style */
|
|
185
|
+
prefixList?: string | ListPrefix;
|
|
186
|
+
|
|
187
|
+
// Advanced options
|
|
188
|
+
/** Border color as 6-digit hex */
|
|
189
|
+
borderColor?: string;
|
|
190
|
+
/** Border width in points */
|
|
191
|
+
borderWidth?: number;
|
|
192
|
+
/** Background shading color as 6-digit hex */
|
|
193
|
+
shading?: string;
|
|
194
|
+
/** Keep with next paragraph */
|
|
195
|
+
keepWithNext?: boolean;
|
|
196
|
+
/** Keep lines together */
|
|
197
|
+
keepLines?: boolean;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Options for applying styles to paragraphs
|
|
202
|
+
*/
|
|
203
|
+
export interface StyleApplyOptions {
|
|
204
|
+
/** Specific paragraphs to apply style to (default: auto-detect) */
|
|
205
|
+
paragraphs?: Paragraph[];
|
|
206
|
+
/** Properties to preserve from existing formatting */
|
|
207
|
+
keepProperties?: string[];
|
|
208
|
+
/** Custom formatting to apply */
|
|
209
|
+
format?: FormatOptions;
|
|
210
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List Normalization Types for docxmlater
|
|
3
|
+
*
|
|
4
|
+
* These types support detection and normalization of typed list prefixes
|
|
5
|
+
* to proper Word list formatting.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/** High-level list category */
|
|
9
|
+
export type ListCategory = "numbered" | "bullet" | "none";
|
|
10
|
+
|
|
11
|
+
/** Specific number format patterns */
|
|
12
|
+
export type NumberFormat =
|
|
13
|
+
| "decimal" // 1. 2. 3.
|
|
14
|
+
| "lowerLetter" // a. b. c.
|
|
15
|
+
| "upperLetter" // A. B. C.
|
|
16
|
+
| "lowerRoman" // i. ii. iii.
|
|
17
|
+
| "upperRoman"; // I. II. III.
|
|
18
|
+
|
|
19
|
+
/** Specific bullet format patterns */
|
|
20
|
+
export type BulletFormat =
|
|
21
|
+
| "bullet" // • ● ○
|
|
22
|
+
| "dash" // - – —
|
|
23
|
+
| "arrow"; // ► ▸
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Result of detecting list type for a single paragraph
|
|
27
|
+
*/
|
|
28
|
+
export interface ListDetectionResult {
|
|
29
|
+
/** High-level category */
|
|
30
|
+
category: ListCategory;
|
|
31
|
+
|
|
32
|
+
/** True if paragraph has <w:numPr> (real Word list) */
|
|
33
|
+
isWordList: boolean;
|
|
34
|
+
|
|
35
|
+
/** The typed prefix found, e.g., "1. ", "a) ", "• " */
|
|
36
|
+
typedPrefix: string | null;
|
|
37
|
+
|
|
38
|
+
/** Inferred nesting level based on indentation */
|
|
39
|
+
inferredLevel: number;
|
|
40
|
+
|
|
41
|
+
/** Specific format detected */
|
|
42
|
+
format: NumberFormat | BulletFormat | null;
|
|
43
|
+
|
|
44
|
+
/** If Word list, the numId from <w:numPr> */
|
|
45
|
+
numId: number | null;
|
|
46
|
+
|
|
47
|
+
/** If Word list, the ilvl from <w:numPr> */
|
|
48
|
+
ilvl: number | null;
|
|
49
|
+
|
|
50
|
+
/** Raw indentation in twips for debugging */
|
|
51
|
+
indentationTwips: number;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Analysis of all lists within a scope (cell, table, document)
|
|
56
|
+
*/
|
|
57
|
+
export interface ListAnalysis {
|
|
58
|
+
/** All analyzed paragraphs with their detection results */
|
|
59
|
+
paragraphs: {
|
|
60
|
+
paragraph: unknown; // Paragraph instance - using unknown to avoid circular dep
|
|
61
|
+
text: string;
|
|
62
|
+
detection: ListDetectionResult;
|
|
63
|
+
}[];
|
|
64
|
+
|
|
65
|
+
/** True if any typed (non-Word) lists found */
|
|
66
|
+
hasTypedLists: boolean;
|
|
67
|
+
|
|
68
|
+
/** True if any real Word lists found */
|
|
69
|
+
hasWordLists: boolean;
|
|
70
|
+
|
|
71
|
+
/** True if both numbered AND bullet lists present */
|
|
72
|
+
hasMixedCategories: boolean;
|
|
73
|
+
|
|
74
|
+
/** The dominant list type in this scope */
|
|
75
|
+
majorityCategory: ListCategory;
|
|
76
|
+
|
|
77
|
+
/** Count by category */
|
|
78
|
+
counts: {
|
|
79
|
+
numbered: number;
|
|
80
|
+
bullet: number;
|
|
81
|
+
none: number;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
/** Recommended action */
|
|
85
|
+
recommendedAction: "normalize" | "none";
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* User-defined indentation level configuration for list normalization
|
|
90
|
+
*/
|
|
91
|
+
export interface IndentationLevel {
|
|
92
|
+
level: number;
|
|
93
|
+
textIndent: number; // in inches
|
|
94
|
+
symbolIndent: number; // in inches
|
|
95
|
+
bulletChar?: string;
|
|
96
|
+
numberedFormat?: NumberFormat | string;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Options for list normalization
|
|
101
|
+
*/
|
|
102
|
+
export interface ListNormalizationOptions {
|
|
103
|
+
/** numId to use for numbered lists (from numbering.xml) */
|
|
104
|
+
numberedStyleNumId?: number;
|
|
105
|
+
|
|
106
|
+
/** numId to use for bullet lists (from numbering.xml) */
|
|
107
|
+
bulletStyleNumId?: number;
|
|
108
|
+
|
|
109
|
+
/** Processing scope */
|
|
110
|
+
scope?: "cell" | "table" | "document";
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* If true, convert ALL list items to majority type.
|
|
114
|
+
* If false, only convert typed lists (preserve existing Word lists).
|
|
115
|
+
*/
|
|
116
|
+
forceMajority?: boolean;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* If true, preserve original indentation instead of using level defaults.
|
|
120
|
+
*/
|
|
121
|
+
preserveIndentation?: boolean;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* User-defined indentation settings per list level.
|
|
125
|
+
* Used to configure symbol indent, text indent, and bullet characters.
|
|
126
|
+
*/
|
|
127
|
+
indentationLevels?: IndentationLevel[];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Report returned after normalization
|
|
132
|
+
*/
|
|
133
|
+
export interface ListNormalizationReport {
|
|
134
|
+
/** Number of paragraphs successfully normalized */
|
|
135
|
+
normalized: number;
|
|
136
|
+
|
|
137
|
+
/** Number of paragraphs skipped (already correct or non-list) */
|
|
138
|
+
skipped: number;
|
|
139
|
+
|
|
140
|
+
/** Any errors encountered */
|
|
141
|
+
errors: string[];
|
|
142
|
+
|
|
143
|
+
/** The majority category that was applied */
|
|
144
|
+
appliedCategory: ListCategory;
|
|
145
|
+
|
|
146
|
+
/** Detailed per-paragraph results */
|
|
147
|
+
details: {
|
|
148
|
+
originalText: string;
|
|
149
|
+
action: "normalized" | "skipped" | "error";
|
|
150
|
+
reason?: string;
|
|
151
|
+
}[];
|
|
152
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared type definitions for document settings (settings.xml)
|
|
3
|
+
*
|
|
4
|
+
* These types are used by both Document.ts (in-memory state) and
|
|
5
|
+
* DocumentGenerator.ts (XML generation) to ensure consistency.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Document protection settings per ECMA-376 CT_DocProtect
|
|
10
|
+
*/
|
|
11
|
+
export interface DocumentProtection {
|
|
12
|
+
edit: 'readOnly' | 'comments' | 'trackedChanges' | 'forms';
|
|
13
|
+
enforcement: boolean;
|
|
14
|
+
cryptProviderType?: string;
|
|
15
|
+
cryptAlgorithmClass?: string;
|
|
16
|
+
cryptAlgorithmType?: string;
|
|
17
|
+
cryptAlgorithmSid?: number;
|
|
18
|
+
cryptSpinCount?: number;
|
|
19
|
+
hash?: string;
|
|
20
|
+
salt?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Revision view settings per ECMA-376 CT_TrackChangesView
|
|
25
|
+
*/
|
|
26
|
+
export interface RevisionViewSettings {
|
|
27
|
+
showInsertionsAndDeletions: boolean;
|
|
28
|
+
showFormatting: boolean;
|
|
29
|
+
showInkAnnotations: boolean;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Track changes and related settings passed to DocumentGenerator.generateSettings()
|
|
34
|
+
*/
|
|
35
|
+
export interface TrackChangesSettings {
|
|
36
|
+
trackChangesEnabled?: boolean;
|
|
37
|
+
trackFormatting?: boolean;
|
|
38
|
+
revisionView?: RevisionViewSettings;
|
|
39
|
+
rsidRoot?: string;
|
|
40
|
+
rsids?: string[];
|
|
41
|
+
documentProtection?: DocumentProtection;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Information about webSettings.xml per ECMA-376 CT_WebSettings
|
|
46
|
+
*/
|
|
47
|
+
export interface WebSettingsInfo {
|
|
48
|
+
divCount: number;
|
|
49
|
+
optimizeForBrowser: boolean;
|
|
50
|
+
allowPNG: boolean;
|
|
51
|
+
relyOnVML: boolean;
|
|
52
|
+
doNotRelyOnCSS: boolean;
|
|
53
|
+
doNotSaveAsSingleFile: boolean;
|
|
54
|
+
doNotOrganizeInFolder: boolean;
|
|
55
|
+
doNotUseLongFileNames: boolean;
|
|
56
|
+
pixelsPerInch?: number;
|
|
57
|
+
targetScreenSz?: string;
|
|
58
|
+
encoding?: string;
|
|
59
|
+
}
|