docxmlater 10.1.3 → 10.1.5
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 +759 -754
- package/dist/constants/legacyCompatFlags.js +1 -1
- package/dist/constants/legacyCompatFlags.js.map +1 -1
- package/dist/constants/limits.js.map +1 -1
- package/dist/core/Document.d.ts +50 -50
- package/dist/core/Document.d.ts.map +1 -1
- package/dist/core/Document.js +483 -471
- package/dist/core/Document.js.map +1 -1
- package/dist/core/DocumentContent.d.ts +9 -9
- package/dist/core/DocumentContent.d.ts.map +1 -1
- package/dist/core/DocumentContent.js +1 -1
- package/dist/core/DocumentContent.js.map +1 -1
- package/dist/core/DocumentGenerator.d.ts +11 -11
- package/dist/core/DocumentGenerator.d.ts.map +1 -1
- package/dist/core/DocumentGenerator.js +251 -251
- package/dist/core/DocumentGenerator.js.map +1 -1
- package/dist/core/DocumentIdManager.js.map +1 -1
- package/dist/core/DocumentParser.d.ts +15 -15
- package/dist/core/DocumentParser.d.ts.map +1 -1
- package/dist/core/DocumentParser.js +2123 -2155
- package/dist/core/DocumentParser.js.map +1 -1
- package/dist/core/DocumentValidator.d.ts.map +1 -1
- package/dist/core/DocumentValidator.js +2 -5
- package/dist/core/DocumentValidator.js.map +1 -1
- package/dist/core/Relationship.js.map +1 -1
- package/dist/core/RelationshipManager.d.ts.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 +3 -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.d.ts.map +1 -1
- package/dist/elements/Comment.js +9 -6
- package/dist/elements/Comment.js.map +1 -1
- package/dist/elements/CommentManager.d.ts.map +1 -1
- package/dist/elements/CommentManager.js +18 -17
- package/dist/elements/CommentManager.js.map +1 -1
- package/dist/elements/CommonTypes.d.ts +21 -21
- package/dist/elements/CommonTypes.d.ts.map +1 -1
- package/dist/elements/CommonTypes.js +56 -56
- 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 +6 -6
- package/dist/elements/Endnote.js.map +1 -1
- package/dist/elements/EndnoteManager.d.ts.map +1 -1
- package/dist/elements/EndnoteManager.js +6 -7
- package/dist/elements/EndnoteManager.js.map +1 -1
- package/dist/elements/Field.d.ts.map +1 -1
- package/dist/elements/Field.js +82 -25
- package/dist/elements/Field.js.map +1 -1
- package/dist/elements/FieldHelpers.d.ts.map +1 -1
- package/dist/elements/FieldHelpers.js.map +1 -1
- package/dist/elements/FontManager.d.ts.map +1 -1
- package/dist/elements/FontManager.js +1 -1
- package/dist/elements/FontManager.js.map +1 -1
- package/dist/elements/Footer.js +2 -2
- package/dist/elements/Footer.js.map +1 -1
- package/dist/elements/Footnote.d.ts.map +1 -1
- package/dist/elements/Footnote.js +6 -6
- package/dist/elements/Footnote.js.map +1 -1
- package/dist/elements/FootnoteManager.d.ts.map +1 -1
- package/dist/elements/FootnoteManager.js +6 -7
- package/dist/elements/FootnoteManager.js.map +1 -1
- package/dist/elements/Header.js +2 -2
- package/dist/elements/Header.js.map +1 -1
- package/dist/elements/HeaderFooterManager.js.map +1 -1
- package/dist/elements/Hyperlink.d.ts +5 -3
- package/dist/elements/Hyperlink.d.ts.map +1 -1
- package/dist/elements/Hyperlink.js +134 -76
- package/dist/elements/Hyperlink.js.map +1 -1
- package/dist/elements/Image.d.ts.map +1 -1
- package/dist/elements/Image.js +238 -106
- package/dist/elements/Image.js.map +1 -1
- package/dist/elements/ImageManager.d.ts.map +1 -1
- package/dist/elements/ImageManager.js +1 -1
- package/dist/elements/ImageManager.js.map +1 -1
- package/dist/elements/ImageRun.js +1 -1
- package/dist/elements/ImageRun.js.map +1 -1
- package/dist/elements/MathElement.js.map +1 -1
- package/dist/elements/Paragraph.d.ts +24 -24
- package/dist/elements/Paragraph.d.ts.map +1 -1
- package/dist/elements/Paragraph.js +181 -188
- package/dist/elements/Paragraph.js.map +1 -1
- package/dist/elements/PreservedElement.js.map +1 -1
- package/dist/elements/PropertyChangeTypes.d.ts.map +1 -1
- package/dist/elements/PropertyChangeTypes.js +6 -6
- package/dist/elements/PropertyChangeTypes.js.map +1 -1
- package/dist/elements/RangeMarker.d.ts.map +1 -1
- package/dist/elements/RangeMarker.js.map +1 -1
- package/dist/elements/Revision.d.ts.map +1 -1
- package/dist/elements/Revision.js +4 -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 +40 -48
- package/dist/elements/RevisionManager.js.map +1 -1
- package/dist/elements/Run.d.ts +16 -16
- package/dist/elements/Run.d.ts.map +1 -1
- package/dist/elements/Run.js +256 -238
- package/dist/elements/Run.js.map +1 -1
- package/dist/elements/Section.d.ts.map +1 -1
- package/dist/elements/Section.js +36 -11
- package/dist/elements/Section.js.map +1 -1
- package/dist/elements/Shape.d.ts.map +1 -1
- package/dist/elements/Shape.js.map +1 -1
- package/dist/elements/StructuredDocumentTag.d.ts +6 -6
- package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
- package/dist/elements/StructuredDocumentTag.js +99 -104
- package/dist/elements/StructuredDocumentTag.js.map +1 -1
- package/dist/elements/Table.d.ts +11 -11
- package/dist/elements/Table.d.ts.map +1 -1
- package/dist/elements/Table.js +102 -107
- package/dist/elements/Table.js.map +1 -1
- package/dist/elements/TableCell.d.ts +10 -10
- package/dist/elements/TableCell.d.ts.map +1 -1
- package/dist/elements/TableCell.js +105 -106
- package/dist/elements/TableCell.js.map +1 -1
- package/dist/elements/TableGridChange.d.ts.map +1 -1
- package/dist/elements/TableGridChange.js.map +1 -1
- package/dist/elements/TableOfContents.d.ts.map +1 -1
- package/dist/elements/TableOfContents.js +4 -4
- 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 +13 -6
- package/dist/elements/TableRow.js.map +1 -1
- package/dist/elements/TextBox.d.ts.map +1 -1
- package/dist/elements/TextBox.js +3 -5
- package/dist/elements/TextBox.js.map +1 -1
- package/dist/formatting/AbstractNumbering.d.ts +4 -4
- package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
- package/dist/formatting/AbstractNumbering.js +54 -49
- package/dist/formatting/AbstractNumbering.js.map +1 -1
- package/dist/formatting/NumberingInstance.d.ts.map +1 -1
- package/dist/formatting/NumberingInstance.js +1 -3
- package/dist/formatting/NumberingInstance.js.map +1 -1
- package/dist/formatting/NumberingLevel.d.ts +5 -5
- package/dist/formatting/NumberingLevel.d.ts.map +1 -1
- package/dist/formatting/NumberingLevel.js +119 -125
- package/dist/formatting/NumberingLevel.js.map +1 -1
- package/dist/formatting/NumberingManager.d.ts.map +1 -1
- package/dist/formatting/NumberingManager.js +9 -9
- package/dist/formatting/NumberingManager.js.map +1 -1
- package/dist/formatting/Style.d.ts +11 -11
- package/dist/formatting/Style.d.ts.map +1 -1
- package/dist/formatting/Style.js +219 -247
- package/dist/formatting/Style.js.map +1 -1
- package/dist/formatting/StylesManager.d.ts +2 -2
- package/dist/formatting/StylesManager.d.ts.map +1 -1
- package/dist/formatting/StylesManager.js +96 -102
- package/dist/formatting/StylesManager.js.map +1 -1
- package/dist/helpers/CleanupHelper.d.ts +1 -1
- package/dist/helpers/CleanupHelper.d.ts.map +1 -1
- package/dist/helpers/CleanupHelper.js +6 -6
- package/dist/helpers/CleanupHelper.js.map +1 -1
- package/dist/images/ImageOptimizer.js +7 -7
- package/dist/images/ImageOptimizer.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/managers/DrawingManager.js.map +1 -1
- package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
- package/dist/tracking/DocumentTrackingContext.js +23 -7
- package/dist/tracking/DocumentTrackingContext.js.map +1 -1
- package/dist/tracking/TrackingContext.d.ts.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 +6 -6
- package/dist/types/list-types.js.map +1 -1
- package/dist/types/settings-types.js.map +1 -1
- package/dist/types/styleConfig.d.ts +2 -2
- package/dist/types/styleConfig.js.map +1 -1
- package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
- package/dist/utils/ChangelogGenerator.js +97 -101
- package/dist/utils/ChangelogGenerator.js.map +1 -1
- package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
- package/dist/utils/CompatibilityUpgrader.js +1 -1
- package/dist/utils/CompatibilityUpgrader.js.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/InMemoryRevisionAcceptor.js +1 -6
- package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
- package/dist/utils/MoveOperationHelper.d.ts.map +1 -1
- package/dist/utils/MoveOperationHelper.js +1 -1
- package/dist/utils/MoveOperationHelper.js.map +1 -1
- package/dist/utils/RevisionAwareProcessor.d.ts.map +1 -1
- package/dist/utils/RevisionAwareProcessor.js +2 -4
- package/dist/utils/RevisionAwareProcessor.js.map +1 -1
- package/dist/utils/RevisionWalker.d.ts.map +1 -1
- package/dist/utils/RevisionWalker.js +4 -12
- package/dist/utils/RevisionWalker.js.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
- package/dist/utils/SelectiveRevisionAcceptor.js +2 -6
- package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
- package/dist/utils/ShadingResolver.d.ts.map +1 -1
- package/dist/utils/ShadingResolver.js +1 -1
- package/dist/utils/ShadingResolver.js.map +1 -1
- package/dist/utils/acceptRevisions.d.ts.map +1 -1
- package/dist/utils/acceptRevisions.js +23 -12
- package/dist/utils/acceptRevisions.js.map +1 -1
- package/dist/utils/cnfStyleDecoder.d.ts +1 -1
- package/dist/utils/cnfStyleDecoder.d.ts.map +1 -1
- package/dist/utils/cnfStyleDecoder.js +40 -40
- package/dist/utils/cnfStyleDecoder.js.map +1 -1
- package/dist/utils/corruptionDetection.d.ts.map +1 -1
- package/dist/utils/corruptionDetection.js.map +1 -1
- package/dist/utils/dateFormatting.js.map +1 -1
- package/dist/utils/deepClone.js +1 -1
- package/dist/utils/deepClone.js.map +1 -1
- package/dist/utils/diagnostics.d.ts.map +1 -1
- package/dist/utils/diagnostics.js +1 -1
- package/dist/utils/diagnostics.js.map +1 -1
- package/dist/utils/errorHandling.js.map +1 -1
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/utils/formatting.js +10 -2
- 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 +21 -23
- package/dist/utils/list-detection.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +12 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/parsingHelpers.js.map +1 -1
- package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
- package/dist/utils/stripTrackedChanges.js +3 -3
- package/dist/utils/stripTrackedChanges.js.map +1 -1
- package/dist/utils/textDiff.d.ts +1 -1
- package/dist/utils/textDiff.js +8 -8
- 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 +24 -7
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/xmlSanitization.d.ts.map +1 -1
- package/dist/utils/xmlSanitization.js +3 -3
- package/dist/utils/xmlSanitization.js.map +1 -1
- package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
- package/dist/validation/RevisionAutoFixer.js +5 -5
- package/dist/validation/RevisionAutoFixer.js.map +1 -1
- package/dist/validation/RevisionValidator.d.ts.map +1 -1
- package/dist/validation/RevisionValidator.js +7 -9
- package/dist/validation/RevisionValidator.js.map +1 -1
- package/dist/validation/ValidationRules.js +3 -3
- package/dist/validation/ValidationRules.js.map +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/xml/XMLBuilder.d.ts +1 -1
- package/dist/xml/XMLBuilder.d.ts.map +1 -1
- package/dist/xml/XMLBuilder.js +98 -100
- package/dist/xml/XMLBuilder.js.map +1 -1
- package/dist/xml/XMLParser.d.ts.map +1 -1
- package/dist/xml/XMLParser.js +61 -66
- package/dist/xml/XMLParser.js.map +1 -1
- package/dist/zip/ZipHandler.d.ts.map +1 -1
- package/dist/zip/ZipHandler.js.map +1 -1
- package/dist/zip/ZipReader.d.ts.map +1 -1
- package/dist/zip/ZipReader.js +1 -3
- package/dist/zip/ZipReader.js.map +1 -1
- package/dist/zip/ZipWriter.d.ts +1 -1
- package/dist/zip/ZipWriter.d.ts.map +1 -1
- package/dist/zip/ZipWriter.js +28 -36
- package/dist/zip/ZipWriter.js.map +1 -1
- package/dist/zip/types.js +1 -1
- package/dist/zip/types.js.map +1 -1
- package/package.json +92 -92
- package/src/__tests__/helper-methods.test.ts +512 -512
- package/src/constants/legacyCompatFlags.ts +138 -138
- package/src/constants/limits.ts +50 -50
- package/src/core/Document.ts +985 -1145
- package/src/core/DocumentContent.ts +461 -467
- package/src/core/DocumentGenerator.ts +1133 -1104
- package/src/core/DocumentIdManager.ts +158 -158
- package/src/core/DocumentParser.ts +2347 -2716
- package/src/core/DocumentValidator.ts +363 -372
- package/src/core/Relationship.ts +367 -367
- package/src/core/RelationshipManager.ts +429 -428
- package/src/elements/AlternateContent.ts +42 -42
- package/src/elements/Bookmark.ts +212 -210
- package/src/elements/BookmarkManager.ts +247 -250
- package/src/elements/Comment.ts +356 -359
- package/src/elements/CommentManager.ts +499 -502
- package/src/elements/CommonTypes.ts +524 -549
- package/src/elements/CustomXml.ts +36 -36
- package/src/elements/Endnote.ts +221 -217
- package/src/elements/EndnoteManager.ts +246 -249
- package/src/elements/Field.ts +1292 -1233
- package/src/elements/FieldHelpers.ts +329 -333
- package/src/elements/FontManager.ts +336 -339
- package/src/elements/Footer.ts +269 -269
- package/src/elements/Footnote.ts +221 -217
- package/src/elements/FootnoteManager.ts +246 -249
- package/src/elements/Header.ts +269 -269
- package/src/elements/HeaderFooterManager.ts +219 -219
- package/src/elements/Hyperlink.ts +1288 -1193
- package/src/elements/Image.ts +1982 -1756
- package/src/elements/ImageManager.ts +437 -432
- package/src/elements/ImageRun.ts +59 -59
- package/src/elements/MathElement.ts +65 -65
- package/src/elements/Paragraph.ts +4347 -4287
- package/src/elements/PreservedElement.ts +53 -53
- package/src/elements/PropertyChangeTypes.ts +458 -442
- package/src/elements/RangeMarker.ts +382 -400
- package/src/elements/Revision.ts +1198 -1217
- package/src/elements/RevisionContent.ts +73 -73
- package/src/elements/RevisionManager.ts +1070 -1070
- package/src/elements/Run.ts +3103 -3073
- package/src/elements/Section.ts +1521 -1421
- package/src/elements/Shape.ts +884 -873
- package/src/elements/StructuredDocumentTag.ts +1176 -1207
- package/src/elements/Table.ts +2468 -2524
- package/src/elements/TableCell.ts +1617 -1621
- package/src/elements/TableGridChange.ts +149 -151
- package/src/elements/TableOfContents.ts +701 -691
- package/src/elements/TableOfContentsElement.ts +89 -89
- package/src/elements/TableRow.ts +960 -929
- package/src/elements/TextBox.ts +766 -768
- package/src/formatting/AbstractNumbering.ts +580 -579
- package/src/formatting/NumberingInstance.ts +295 -299
- package/src/formatting/NumberingLevel.ts +981 -1040
- package/src/formatting/NumberingManager.ts +833 -827
- package/src/formatting/Style.ts +1785 -1879
- package/src/formatting/StylesManager.ts +1090 -1130
- package/src/helpers/CleanupHelper.ts +524 -524
- package/src/images/ImageOptimizer.ts +274 -274
- package/src/index.ts +559 -554
- package/src/managers/DrawingManager.ts +319 -319
- package/src/tracking/DocumentTrackingContext.ts +687 -674
- package/src/tracking/TrackingContext.ts +175 -173
- package/src/types/compatibility-types.ts +49 -49
- package/src/types/formatting.ts +210 -210
- package/src/types/list-types.ts +14 -14
- package/src/types/settings-types.ts +59 -59
- package/src/types/styleConfig.ts +189 -189
- package/src/utils/ChangelogGenerator.ts +1583 -1581
- package/src/utils/CompatibilityUpgrader.ts +235 -237
- package/src/utils/InMemoryRevisionAcceptor.ts +691 -696
- package/src/utils/MoveOperationHelper.ts +233 -238
- package/src/utils/RevisionAwareProcessor.ts +518 -526
- package/src/utils/RevisionWalker.ts +427 -457
- package/src/utils/SelectiveRevisionAcceptor.ts +662 -683
- package/src/utils/ShadingResolver.ts +105 -107
- package/src/utils/acceptRevisions.ts +723 -714
- package/src/utils/cnfStyleDecoder.ts +212 -217
- package/src/utils/corruptionDetection.ts +346 -345
- package/src/utils/dateFormatting.ts +20 -20
- package/src/utils/deepClone.ts +77 -78
- package/src/utils/diagnostics.ts +125 -129
- package/src/utils/errorHandling.ts +80 -80
- package/src/utils/formatting.ts +220 -213
- package/src/utils/list-detection.ts +32 -42
- package/src/utils/logger.ts +412 -404
- package/src/utils/parsingHelpers.ts +190 -190
- package/src/utils/stripTrackedChanges.ts +356 -353
- package/src/utils/textDiff.ts +100 -100
- package/src/utils/units.ts +421 -421
- package/src/utils/validation.ts +553 -542
- package/src/utils/xmlSanitization.ts +179 -182
- package/src/validation/RevisionAutoFixer.ts +541 -542
- package/src/validation/RevisionValidator.ts +470 -460
- package/src/validation/ValidationRules.ts +338 -338
- package/src/validation/index.ts +30 -30
- package/src/xml/XMLBuilder.ts +857 -871
- package/src/xml/XMLParser.ts +877 -919
- package/src/zip/ZipHandler.ts +629 -637
- package/src/zip/ZipReader.ts +295 -299
- package/src/zip/ZipWriter.ts +374 -390
- package/src/zip/types.ts +116 -116
|
@@ -12,36 +12,36 @@ class StylesManager {
|
|
|
12
12
|
latentStyles;
|
|
13
13
|
latentStyleExceptions = [];
|
|
14
14
|
static BUILT_IN_STYLE_FACTORIES = new Map([
|
|
15
|
-
[
|
|
16
|
-
[
|
|
17
|
-
[
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
[
|
|
21
|
-
[
|
|
22
|
-
[
|
|
23
|
-
[
|
|
24
|
-
[
|
|
25
|
-
[
|
|
26
|
-
[
|
|
27
|
-
[
|
|
28
|
-
[
|
|
29
|
-
[
|
|
30
|
-
[
|
|
31
|
-
[
|
|
32
|
-
[
|
|
33
|
-
[
|
|
34
|
-
[
|
|
35
|
-
[
|
|
36
|
-
[
|
|
37
|
-
[
|
|
38
|
-
[
|
|
39
|
-
[
|
|
15
|
+
['Normal', () => Style_1.Style.createNormalStyle()],
|
|
16
|
+
['Heading1', () => Style_1.Style.createHeadingStyle(1)],
|
|
17
|
+
['Heading2', () => Style_1.Style.createHeadingStyle(2)],
|
|
18
|
+
['Heading3', () => Style_1.Style.createHeadingStyle(3)],
|
|
19
|
+
['Heading4', () => Style_1.Style.createHeadingStyle(4)],
|
|
20
|
+
['Heading5', () => Style_1.Style.createHeadingStyle(5)],
|
|
21
|
+
['Heading6', () => Style_1.Style.createHeadingStyle(6)],
|
|
22
|
+
['Heading7', () => Style_1.Style.createHeadingStyle(7)],
|
|
23
|
+
['Heading8', () => Style_1.Style.createHeadingStyle(8)],
|
|
24
|
+
['Heading9', () => Style_1.Style.createHeadingStyle(9)],
|
|
25
|
+
['Heading1Char', () => Style_1.Style.createHeadingCharStyle(1)],
|
|
26
|
+
['Heading2Char', () => Style_1.Style.createHeadingCharStyle(2)],
|
|
27
|
+
['Heading3Char', () => Style_1.Style.createHeadingCharStyle(3)],
|
|
28
|
+
['Heading4Char', () => Style_1.Style.createHeadingCharStyle(4)],
|
|
29
|
+
['Heading5Char', () => Style_1.Style.createHeadingCharStyle(5)],
|
|
30
|
+
['Heading6Char', () => Style_1.Style.createHeadingCharStyle(6)],
|
|
31
|
+
['Heading7Char', () => Style_1.Style.createHeadingCharStyle(7)],
|
|
32
|
+
['Heading8Char', () => Style_1.Style.createHeadingCharStyle(8)],
|
|
33
|
+
['Heading9Char', () => Style_1.Style.createHeadingCharStyle(9)],
|
|
34
|
+
['Title', () => Style_1.Style.createTitleStyle()],
|
|
35
|
+
['Subtitle', () => Style_1.Style.createSubtitleStyle()],
|
|
36
|
+
['ListParagraph', () => Style_1.Style.createListParagraphStyle()],
|
|
37
|
+
['TOCHeading', () => Style_1.Style.createTOCHeadingStyle()],
|
|
38
|
+
['TableNormal', () => Style_1.Style.createTableNormalStyle()],
|
|
39
|
+
['TableGrid', () => Style_1.Style.createTableGridStyle()],
|
|
40
40
|
]);
|
|
41
41
|
constructor(includeBuiltInStyles = true) {
|
|
42
42
|
this.includeBuiltInStyles = includeBuiltInStyles;
|
|
43
43
|
if (includeBuiltInStyles) {
|
|
44
|
-
this.ensureStyleLoaded(
|
|
44
|
+
this.ensureStyleLoaded('Normal');
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
ensureStyleLoaded(styleId) {
|
|
@@ -90,8 +90,7 @@ class StylesManager {
|
|
|
90
90
|
if (this.styles.has(styleId)) {
|
|
91
91
|
return true;
|
|
92
92
|
}
|
|
93
|
-
return
|
|
94
|
-
StylesManager.BUILT_IN_STYLE_FACTORIES.has(styleId));
|
|
93
|
+
return this.includeBuiltInStyles && StylesManager.BUILT_IN_STYLE_FACTORIES.has(styleId);
|
|
95
94
|
}
|
|
96
95
|
removeStyle(styleId) {
|
|
97
96
|
return this.styles.delete(styleId);
|
|
@@ -115,8 +114,7 @@ class StylesManager {
|
|
|
115
114
|
getQuickStyles() {
|
|
116
115
|
return this.getAllStyles().filter((style) => {
|
|
117
116
|
const props = style.getProperties();
|
|
118
|
-
const isQuick = props.qFormat === true ||
|
|
119
|
-
(!props.customStyle && props.qFormat !== false);
|
|
117
|
+
const isQuick = props.qFormat === true || (!props.customStyle && props.qFormat !== false);
|
|
120
118
|
const isVisible = !props.semiHidden;
|
|
121
119
|
return isQuick && isVisible;
|
|
122
120
|
});
|
|
@@ -148,13 +146,13 @@ class StylesManager {
|
|
|
148
146
|
return this.getStyle(props.link);
|
|
149
147
|
}
|
|
150
148
|
getTableStyles() {
|
|
151
|
-
return this.getAllStyles().filter((style) => style.getType() ===
|
|
149
|
+
return this.getAllStyles().filter((style) => style.getType() === 'table');
|
|
152
150
|
}
|
|
153
151
|
createTableStyle(styleId, name, basedOn) {
|
|
154
152
|
const style = Style_1.Style.create({
|
|
155
153
|
styleId,
|
|
156
154
|
name,
|
|
157
|
-
type:
|
|
155
|
+
type: 'table',
|
|
158
156
|
basedOn,
|
|
159
157
|
customStyle: true,
|
|
160
158
|
});
|
|
@@ -189,7 +187,7 @@ class StylesManager {
|
|
|
189
187
|
const style = Style_1.Style.create({
|
|
190
188
|
styleId,
|
|
191
189
|
name,
|
|
192
|
-
type:
|
|
190
|
+
type: 'paragraph',
|
|
193
191
|
basedOn,
|
|
194
192
|
customStyle: true,
|
|
195
193
|
});
|
|
@@ -200,7 +198,7 @@ class StylesManager {
|
|
|
200
198
|
const style = Style_1.Style.create({
|
|
201
199
|
styleId,
|
|
202
200
|
name,
|
|
203
|
-
type:
|
|
201
|
+
type: 'character',
|
|
204
202
|
basedOn,
|
|
205
203
|
customStyle: true,
|
|
206
204
|
});
|
|
@@ -216,7 +214,7 @@ class StylesManager {
|
|
|
216
214
|
return this.latentStyles;
|
|
217
215
|
}
|
|
218
216
|
addLatentStyleException(exception) {
|
|
219
|
-
const idx = this.latentStyleExceptions.findIndex(e => e.name === exception.name);
|
|
217
|
+
const idx = this.latentStyleExceptions.findIndex((e) => e.name === exception.name);
|
|
220
218
|
if (idx >= 0) {
|
|
221
219
|
this.latentStyleExceptions[idx] = exception;
|
|
222
220
|
}
|
|
@@ -239,81 +237,77 @@ class StylesManager {
|
|
|
239
237
|
for (const style of this.getAllStyles()) {
|
|
240
238
|
stylesChildren.push(style.toXML());
|
|
241
239
|
}
|
|
242
|
-
builder.element(
|
|
243
|
-
|
|
244
|
-
|
|
240
|
+
builder.element('w:styles', {
|
|
241
|
+
'xmlns:w': 'http://schemas.openxmlformats.org/wordprocessingml/2006/main',
|
|
242
|
+
'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
|
|
245
243
|
}, stylesChildren);
|
|
246
244
|
return builder.build(true);
|
|
247
245
|
}
|
|
248
246
|
generateDocDefaults() {
|
|
249
247
|
const rPrDefaultChildren = [
|
|
250
|
-
XMLBuilder_1.XMLBuilder.wSelf(
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
248
|
+
XMLBuilder_1.XMLBuilder.wSelf('rFonts', {
|
|
249
|
+
'w:ascii': 'Calibri',
|
|
250
|
+
'w:hAnsi': 'Calibri',
|
|
251
|
+
'w:eastAsia': 'Calibri',
|
|
252
|
+
'w:cs': 'Calibri',
|
|
255
253
|
}),
|
|
256
|
-
XMLBuilder_1.XMLBuilder.wSelf(
|
|
257
|
-
XMLBuilder_1.XMLBuilder.wSelf(
|
|
258
|
-
XMLBuilder_1.XMLBuilder.wSelf(
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
254
|
+
XMLBuilder_1.XMLBuilder.wSelf('sz', { 'w:val': '22' }),
|
|
255
|
+
XMLBuilder_1.XMLBuilder.wSelf('szCs', { 'w:val': '22' }),
|
|
256
|
+
XMLBuilder_1.XMLBuilder.wSelf('lang', {
|
|
257
|
+
'w:val': 'en-US',
|
|
258
|
+
'w:eastAsia': 'en-US',
|
|
259
|
+
'w:bidi': 'ar-SA',
|
|
262
260
|
}),
|
|
263
261
|
];
|
|
264
262
|
const pPrDefaultChildren = [
|
|
265
|
-
XMLBuilder_1.XMLBuilder.wSelf(
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
263
|
+
XMLBuilder_1.XMLBuilder.wSelf('spacing', {
|
|
264
|
+
'w:after': '200',
|
|
265
|
+
'w:line': '276',
|
|
266
|
+
'w:lineRule': 'auto',
|
|
269
267
|
}),
|
|
270
268
|
];
|
|
271
|
-
return XMLBuilder_1.XMLBuilder.w(
|
|
272
|
-
XMLBuilder_1.XMLBuilder.w(
|
|
273
|
-
|
|
274
|
-
]),
|
|
275
|
-
XMLBuilder_1.XMLBuilder.w("pPrDefault", undefined, [
|
|
276
|
-
XMLBuilder_1.XMLBuilder.w("pPr", undefined, pPrDefaultChildren),
|
|
277
|
-
]),
|
|
269
|
+
return XMLBuilder_1.XMLBuilder.w('docDefaults', undefined, [
|
|
270
|
+
XMLBuilder_1.XMLBuilder.w('rPrDefault', undefined, [XMLBuilder_1.XMLBuilder.w('rPr', undefined, rPrDefaultChildren)]),
|
|
271
|
+
XMLBuilder_1.XMLBuilder.w('pPrDefault', undefined, [XMLBuilder_1.XMLBuilder.w('pPr', undefined, pPrDefaultChildren)]),
|
|
278
272
|
]);
|
|
279
273
|
}
|
|
280
274
|
generateLatentStyles() {
|
|
281
275
|
if (!this.latentStyles)
|
|
282
|
-
return XMLBuilder_1.XMLBuilder.w(
|
|
276
|
+
return XMLBuilder_1.XMLBuilder.w('latentStyles', {}, []);
|
|
283
277
|
const attrs = {};
|
|
284
278
|
if (this.latentStyles.defaultLockedState !== undefined) {
|
|
285
|
-
attrs[
|
|
279
|
+
attrs['w:defLockedState'] = this.latentStyles.defaultLockedState ? '1' : '0';
|
|
286
280
|
}
|
|
287
281
|
if (this.latentStyles.defaultUiPriority !== undefined) {
|
|
288
|
-
attrs[
|
|
282
|
+
attrs['w:defUIPriority'] = this.latentStyles.defaultUiPriority.toString();
|
|
289
283
|
}
|
|
290
284
|
if (this.latentStyles.defaultSemiHidden !== undefined) {
|
|
291
|
-
attrs[
|
|
285
|
+
attrs['w:defSemiHidden'] = this.latentStyles.defaultSemiHidden ? '1' : '0';
|
|
292
286
|
}
|
|
293
287
|
if (this.latentStyles.defaultUnhideWhenUsed !== undefined) {
|
|
294
|
-
attrs[
|
|
288
|
+
attrs['w:defUnhideWhenUsed'] = this.latentStyles.defaultUnhideWhenUsed ? '1' : '0';
|
|
295
289
|
}
|
|
296
290
|
if (this.latentStyles.defaultQFormat !== undefined) {
|
|
297
|
-
attrs[
|
|
291
|
+
attrs['w:defQFormat'] = this.latentStyles.defaultQFormat ? '1' : '0';
|
|
298
292
|
}
|
|
299
293
|
if (this.latentStyles.count !== undefined) {
|
|
300
|
-
attrs[
|
|
294
|
+
attrs['w:count'] = this.latentStyles.count.toString();
|
|
301
295
|
}
|
|
302
|
-
const children = this.latentStyleExceptions.map(exc => {
|
|
303
|
-
const excAttrs = {
|
|
296
|
+
const children = this.latentStyleExceptions.map((exc) => {
|
|
297
|
+
const excAttrs = { 'w:name': exc.name };
|
|
304
298
|
if (exc.locked !== undefined)
|
|
305
|
-
excAttrs[
|
|
299
|
+
excAttrs['w:locked'] = exc.locked ? '1' : '0';
|
|
306
300
|
if (exc.uiPriority !== undefined)
|
|
307
|
-
excAttrs[
|
|
301
|
+
excAttrs['w:uiPriority'] = exc.uiPriority.toString();
|
|
308
302
|
if (exc.semiHidden !== undefined)
|
|
309
|
-
excAttrs[
|
|
303
|
+
excAttrs['w:semiHidden'] = exc.semiHidden ? '1' : '0';
|
|
310
304
|
if (exc.unhideWhenUsed !== undefined)
|
|
311
|
-
excAttrs[
|
|
305
|
+
excAttrs['w:unhideWhenUsed'] = exc.unhideWhenUsed ? '1' : '0';
|
|
312
306
|
if (exc.qFormat !== undefined)
|
|
313
|
-
excAttrs[
|
|
314
|
-
return XMLBuilder_1.XMLBuilder.wSelf(
|
|
307
|
+
excAttrs['w:qFormat'] = exc.qFormat ? '1' : '0';
|
|
308
|
+
return XMLBuilder_1.XMLBuilder.wSelf('lsdException', excAttrs);
|
|
315
309
|
});
|
|
316
|
-
return XMLBuilder_1.XMLBuilder.w(
|
|
310
|
+
return XMLBuilder_1.XMLBuilder.w('latentStyles', attrs, children);
|
|
317
311
|
}
|
|
318
312
|
static create() {
|
|
319
313
|
return new StylesManager(true);
|
|
@@ -331,41 +325,41 @@ class StylesManager {
|
|
|
331
325
|
};
|
|
332
326
|
if (!xml || xml.trim().length === 0) {
|
|
333
327
|
result.isValid = false;
|
|
334
|
-
result.errors.push(
|
|
328
|
+
result.errors.push('Styles XML is empty or null');
|
|
335
329
|
return result;
|
|
336
330
|
}
|
|
337
|
-
if (xml.includes(
|
|
331
|
+
if (xml.includes('<w:') || xml.includes('>')) {
|
|
338
332
|
result.isValid = false;
|
|
339
|
-
result.errors.push(
|
|
333
|
+
result.errors.push('XML contains escaped tags - possible double-encoding corruption');
|
|
340
334
|
return result;
|
|
341
335
|
}
|
|
342
|
-
const stylesContent = XMLParser_1.XMLParser.extractBetweenTags(xml,
|
|
336
|
+
const stylesContent = XMLParser_1.XMLParser.extractBetweenTags(xml, '<w:styles', '</w:styles>');
|
|
343
337
|
if (!stylesContent) {
|
|
344
338
|
result.isValid = false;
|
|
345
|
-
result.errors.push(
|
|
339
|
+
result.errors.push('Missing required <w:styles> root element');
|
|
346
340
|
return result;
|
|
347
341
|
}
|
|
348
|
-
if (!xml.includes(
|
|
349
|
-
result.warnings.push(
|
|
342
|
+
if (!xml.includes('xmlns:w=')) {
|
|
343
|
+
result.warnings.push('Missing WordprocessingML namespace declaration');
|
|
350
344
|
}
|
|
351
|
-
const styleElements = XMLParser_1.XMLParser.extractElements(stylesContent,
|
|
345
|
+
const styleElements = XMLParser_1.XMLParser.extractElements(stylesContent, 'w:style');
|
|
352
346
|
result.styleCount = styleElements.length;
|
|
353
347
|
if (styleElements.length === 0) {
|
|
354
|
-
result.warnings.push(
|
|
348
|
+
result.warnings.push('No styles found in document');
|
|
355
349
|
return result;
|
|
356
350
|
}
|
|
357
351
|
const styleWithoutAttrs = styleElements.filter((el) => {
|
|
358
|
-
const openTagEnd = el.indexOf(
|
|
352
|
+
const openTagEnd = el.indexOf('>');
|
|
359
353
|
const openTag = el.substring(0, openTagEnd);
|
|
360
|
-
return !openTag.includes(
|
|
354
|
+
return !openTag.includes('w:type') || !openTag.includes('w:styleId');
|
|
361
355
|
});
|
|
362
356
|
if (styleWithoutAttrs.length > 0) {
|
|
363
357
|
result.isValid = false;
|
|
364
|
-
result.errors.push(
|
|
358
|
+
result.errors.push('Style found without any attributes - w:type and w:styleId are required');
|
|
365
359
|
}
|
|
366
360
|
const foundStyleIds = new Set();
|
|
367
361
|
for (const styleElement of styleElements) {
|
|
368
|
-
const styleId = XMLParser_1.XMLParser.extractAttribute(styleElement,
|
|
362
|
+
const styleId = XMLParser_1.XMLParser.extractAttribute(styleElement, 'w:styleId');
|
|
369
363
|
if (styleId) {
|
|
370
364
|
if (foundStyleIds.has(styleId)) {
|
|
371
365
|
result.isValid = false;
|
|
@@ -378,35 +372,35 @@ class StylesManager {
|
|
|
378
372
|
}
|
|
379
373
|
else {
|
|
380
374
|
result.isValid = false;
|
|
381
|
-
result.errors.push(
|
|
375
|
+
result.errors.push('Style found without required w:styleId attribute');
|
|
382
376
|
}
|
|
383
|
-
const type = XMLParser_1.XMLParser.extractAttribute(styleElement,
|
|
377
|
+
const type = XMLParser_1.XMLParser.extractAttribute(styleElement, 'w:type');
|
|
384
378
|
if (type) {
|
|
385
|
-
if (![
|
|
379
|
+
if (!['paragraph', 'character', 'table', 'numbering'].includes(type)) {
|
|
386
380
|
result.warnings.push(`Invalid style type: "${type}"`);
|
|
387
381
|
}
|
|
388
382
|
}
|
|
389
383
|
else {
|
|
390
384
|
result.isValid = false;
|
|
391
|
-
result.errors.push(
|
|
385
|
+
result.errors.push('Style found without required w:type attribute');
|
|
392
386
|
}
|
|
393
|
-
const basedOnElement = XMLParser_1.XMLParser.extractElements(styleElement,
|
|
387
|
+
const basedOnElement = XMLParser_1.XMLParser.extractElements(styleElement, 'w:basedOn')[0];
|
|
394
388
|
if (basedOnElement && styleId) {
|
|
395
|
-
const basedOn = XMLParser_1.XMLParser.extractAttribute(basedOnElement,
|
|
389
|
+
const basedOn = XMLParser_1.XMLParser.extractAttribute(basedOnElement, 'w:val');
|
|
396
390
|
if (basedOn && styleId === basedOn) {
|
|
397
391
|
result.isValid = false;
|
|
398
392
|
result.errors.push(`Circular reference detected: style "${styleId}" based on itself`);
|
|
399
393
|
}
|
|
400
394
|
}
|
|
401
395
|
}
|
|
402
|
-
if (!foundStyleIds.has(
|
|
396
|
+
if (!foundStyleIds.has('Normal')) {
|
|
403
397
|
result.warnings.push('Missing "Normal" style - document may not render correctly');
|
|
404
398
|
}
|
|
405
399
|
if (xml.charCodeAt(0) === 0xfeff) {
|
|
406
|
-
result.warnings.push(
|
|
400
|
+
result.warnings.push('XML contains BOM (Byte Order Mark) - may cause parsing issues');
|
|
407
401
|
}
|
|
408
402
|
if (result.styleCount === 0) {
|
|
409
|
-
result.warnings.push(
|
|
403
|
+
result.warnings.push('No styles found in document');
|
|
410
404
|
}
|
|
411
405
|
return result;
|
|
412
406
|
}
|
|
@@ -480,7 +474,7 @@ class StylesManager {
|
|
|
480
474
|
const currentId = current.getStyleId();
|
|
481
475
|
if (visited.has(currentId)) {
|
|
482
476
|
const cycle = [...chain.map((s) => s.getStyleId()), currentId];
|
|
483
|
-
throw new Error(`Circular style reference detected: ${cycle.join(
|
|
477
|
+
throw new Error(`Circular style reference detected: ${cycle.join(' -> ')}. ` +
|
|
484
478
|
`Style '${currentId}' references itself through inheritance chain.`);
|
|
485
479
|
}
|
|
486
480
|
visited.add(currentId);
|
|
@@ -525,7 +519,7 @@ class StylesManager {
|
|
|
525
519
|
return style;
|
|
526
520
|
}
|
|
527
521
|
catch (error) {
|
|
528
|
-
throw new Error(`Failed to import style: ${error instanceof Error ? error.message :
|
|
522
|
+
throw new Error(`Failed to import style: ${error instanceof Error ? error.message : 'Invalid JSON'}`);
|
|
529
523
|
}
|
|
530
524
|
}
|
|
531
525
|
exportAllStyles() {
|
|
@@ -536,7 +530,7 @@ class StylesManager {
|
|
|
536
530
|
try {
|
|
537
531
|
const propsArray = JSON.parse(json);
|
|
538
532
|
if (!Array.isArray(propsArray)) {
|
|
539
|
-
throw new Error(
|
|
533
|
+
throw new Error('JSON must contain an array of style properties');
|
|
540
534
|
}
|
|
541
535
|
const styles = [];
|
|
542
536
|
for (const props of propsArray) {
|
|
@@ -547,7 +541,7 @@ class StylesManager {
|
|
|
547
541
|
return styles;
|
|
548
542
|
}
|
|
549
543
|
catch (error) {
|
|
550
|
-
throw new Error(`Failed to import styles: ${error instanceof Error ? error.message :
|
|
544
|
+
throw new Error(`Failed to import styles: ${error instanceof Error ? error.message : 'Invalid JSON'}`);
|
|
551
545
|
}
|
|
552
546
|
}
|
|
553
547
|
}
|