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
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CustomXml - Represents w:customXml block and inline elements
|
|
3
|
-
*
|
|
4
|
-
* Per ECMA-376 Part 1 §17.5.1.6, custom XML elements carry a URI and element
|
|
5
|
-
* name, wrapping block-level or inline content.
|
|
6
|
-
*
|
|
7
|
-
* Stored as raw XML for round-trip fidelity.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { XMLElement } from '../xml/XMLBuilder';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Block-level custom XML (w:customXml wrapping block content)
|
|
14
|
-
*/
|
|
15
|
-
export class CustomXmlBlock {
|
|
16
|
-
private rawXml: string;
|
|
17
|
-
|
|
18
|
-
constructor(rawXml: string) {
|
|
19
|
-
this.rawXml = rawXml;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
toXML(): XMLElement {
|
|
23
|
-
return {
|
|
24
|
-
name: '__rawXml',
|
|
25
|
-
rawXml: this.rawXml,
|
|
26
|
-
} as XMLElement;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
getRawXml(): string {
|
|
30
|
-
return this.rawXml;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
getType(): string {
|
|
34
|
-
return 'customXmlBlock';
|
|
35
|
-
}
|
|
36
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* CustomXml - Represents w:customXml block and inline elements
|
|
3
|
+
*
|
|
4
|
+
* Per ECMA-376 Part 1 §17.5.1.6, custom XML elements carry a URI and element
|
|
5
|
+
* name, wrapping block-level or inline content.
|
|
6
|
+
*
|
|
7
|
+
* Stored as raw XML for round-trip fidelity.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { XMLElement } from '../xml/XMLBuilder';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Block-level custom XML (w:customXml wrapping block content)
|
|
14
|
+
*/
|
|
15
|
+
export class CustomXmlBlock {
|
|
16
|
+
private rawXml: string;
|
|
17
|
+
|
|
18
|
+
constructor(rawXml: string) {
|
|
19
|
+
this.rawXml = rawXml;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
toXML(): XMLElement {
|
|
23
|
+
return {
|
|
24
|
+
name: '__rawXml',
|
|
25
|
+
rawXml: this.rawXml,
|
|
26
|
+
} as XMLElement;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
getRawXml(): string {
|
|
30
|
+
return this.rawXml;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
getType(): string {
|
|
34
|
+
return 'customXmlBlock';
|
|
35
|
+
}
|
|
36
|
+
}
|
package/src/elements/Endnote.ts
CHANGED
|
@@ -1,217 +1,221 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Endnote - Represents an endnote in a Word document
|
|
3
|
-
*
|
|
4
|
-
* Endnotes appear at the end of the document or section and are referenced
|
|
5
|
-
* within the document text via endnote references.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { Paragraph } from './Paragraph';
|
|
9
|
-
import { XMLBuilder, XMLElement } from '../xml/XMLBuilder';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Endnote type
|
|
13
|
-
*/
|
|
14
|
-
export enum EndnoteType {
|
|
15
|
-
/** Normal endnote */
|
|
16
|
-
Normal = 'normal',
|
|
17
|
-
/** Separator between document text and endnotes */
|
|
18
|
-
Separator = 'separator',
|
|
19
|
-
/** Continuation separator for endnotes that continue to next page */
|
|
20
|
-
ContinuationSeparator = 'continuationSeparator',
|
|
21
|
-
/** Continuation notice at bottom of page when endnotes continue */
|
|
22
|
-
ContinuationNotice = 'continuationNotice',
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Endnote properties
|
|
27
|
-
*/
|
|
28
|
-
export interface EndnoteProperties {
|
|
29
|
-
/** Endnote ID (required, must be unique) */
|
|
30
|
-
id: number;
|
|
31
|
-
/** Type of endnote */
|
|
32
|
-
type?: EndnoteType;
|
|
33
|
-
/** Custom mark/symbol (optional, otherwise uses numbering) */
|
|
34
|
-
customMark?: string;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Represents an endnote in a document
|
|
39
|
-
*/
|
|
40
|
-
export class Endnote {
|
|
41
|
-
private id: number;
|
|
42
|
-
private type: EndnoteType;
|
|
43
|
-
private customMark?: string;
|
|
44
|
-
private paragraphs: Paragraph[] = [];
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Creates a new endnote
|
|
48
|
-
* @param properties Endnote properties
|
|
49
|
-
*/
|
|
50
|
-
constructor(properties: EndnoteProperties) {
|
|
51
|
-
this.id = properties.id;
|
|
52
|
-
this.type = properties.type || EndnoteType.Normal;
|
|
53
|
-
this.customMark = properties.customMark;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Gets the endnote ID
|
|
58
|
-
*/
|
|
59
|
-
getId(): number {
|
|
60
|
-
return this.id;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Gets the endnote type
|
|
65
|
-
*/
|
|
66
|
-
getType(): EndnoteType {
|
|
67
|
-
return this.type;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Gets the custom mark
|
|
72
|
-
*/
|
|
73
|
-
getCustomMark(): string | undefined {
|
|
74
|
-
return this.customMark;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Sets the custom mark
|
|
79
|
-
* @param mark Custom mark/symbol
|
|
80
|
-
*/
|
|
81
|
-
setCustomMark(mark: string): this {
|
|
82
|
-
this.customMark = mark;
|
|
83
|
-
return this;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Adds a paragraph to the endnote
|
|
88
|
-
* @param paragraph Paragraph to add
|
|
89
|
-
*/
|
|
90
|
-
addParagraph(paragraph: Paragraph): this {
|
|
91
|
-
this.paragraphs.push(paragraph);
|
|
92
|
-
return this;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Creates and adds a new paragraph
|
|
97
|
-
* @param text Optional text content
|
|
98
|
-
* @returns The created paragraph
|
|
99
|
-
*/
|
|
100
|
-
createParagraph(text?: string): Paragraph {
|
|
101
|
-
const para = new Paragraph();
|
|
102
|
-
if (text) {
|
|
103
|
-
para.addText(text);
|
|
104
|
-
}
|
|
105
|
-
this.paragraphs.push(para);
|
|
106
|
-
return para;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Gets all paragraphs in the endnote
|
|
111
|
-
*/
|
|
112
|
-
getParagraphs(): Paragraph[] {
|
|
113
|
-
return [...this.paragraphs];
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Gets the text content of the endnote
|
|
118
|
-
*/
|
|
119
|
-
getText(): string {
|
|
120
|
-
return this.paragraphs.map(p => p.getText()).join('\n');
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Generates the XML for this endnote
|
|
125
|
-
*/
|
|
126
|
-
toXML(): XMLElement {
|
|
127
|
-
const attrs: Record<string, any> = {
|
|
128
|
-
'w:id': this.id.toString(),
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
if (this.type !== EndnoteType.Normal) {
|
|
132
|
-
attrs['w:type'] = this.type;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const children: XMLElement[] = [];
|
|
136
|
-
|
|
137
|
-
// Separator types require specific child elements per ECMA-376
|
|
138
|
-
if (this.type === EndnoteType.Separator) {
|
|
139
|
-
// <w:p><w:r><w:separator/></w:r></w:p>
|
|
140
|
-
children.push(
|
|
141
|
-
XMLBuilder.w('
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
endnote
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Endnote - Represents an endnote in a Word document
|
|
3
|
+
*
|
|
4
|
+
* Endnotes appear at the end of the document or section and are referenced
|
|
5
|
+
* within the document text via endnote references.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { Paragraph } from './Paragraph';
|
|
9
|
+
import { XMLBuilder, XMLElement } from '../xml/XMLBuilder';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Endnote type
|
|
13
|
+
*/
|
|
14
|
+
export enum EndnoteType {
|
|
15
|
+
/** Normal endnote */
|
|
16
|
+
Normal = 'normal',
|
|
17
|
+
/** Separator between document text and endnotes */
|
|
18
|
+
Separator = 'separator',
|
|
19
|
+
/** Continuation separator for endnotes that continue to next page */
|
|
20
|
+
ContinuationSeparator = 'continuationSeparator',
|
|
21
|
+
/** Continuation notice at bottom of page when endnotes continue */
|
|
22
|
+
ContinuationNotice = 'continuationNotice',
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Endnote properties
|
|
27
|
+
*/
|
|
28
|
+
export interface EndnoteProperties {
|
|
29
|
+
/** Endnote ID (required, must be unique) */
|
|
30
|
+
id: number;
|
|
31
|
+
/** Type of endnote */
|
|
32
|
+
type?: EndnoteType;
|
|
33
|
+
/** Custom mark/symbol (optional, otherwise uses numbering) */
|
|
34
|
+
customMark?: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Represents an endnote in a document
|
|
39
|
+
*/
|
|
40
|
+
export class Endnote {
|
|
41
|
+
private id: number;
|
|
42
|
+
private type: EndnoteType;
|
|
43
|
+
private customMark?: string;
|
|
44
|
+
private paragraphs: Paragraph[] = [];
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Creates a new endnote
|
|
48
|
+
* @param properties Endnote properties
|
|
49
|
+
*/
|
|
50
|
+
constructor(properties: EndnoteProperties) {
|
|
51
|
+
this.id = properties.id;
|
|
52
|
+
this.type = properties.type || EndnoteType.Normal;
|
|
53
|
+
this.customMark = properties.customMark;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Gets the endnote ID
|
|
58
|
+
*/
|
|
59
|
+
getId(): number {
|
|
60
|
+
return this.id;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Gets the endnote type
|
|
65
|
+
*/
|
|
66
|
+
getType(): EndnoteType {
|
|
67
|
+
return this.type;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Gets the custom mark
|
|
72
|
+
*/
|
|
73
|
+
getCustomMark(): string | undefined {
|
|
74
|
+
return this.customMark;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Sets the custom mark
|
|
79
|
+
* @param mark Custom mark/symbol
|
|
80
|
+
*/
|
|
81
|
+
setCustomMark(mark: string): this {
|
|
82
|
+
this.customMark = mark;
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Adds a paragraph to the endnote
|
|
88
|
+
* @param paragraph Paragraph to add
|
|
89
|
+
*/
|
|
90
|
+
addParagraph(paragraph: Paragraph): this {
|
|
91
|
+
this.paragraphs.push(paragraph);
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Creates and adds a new paragraph
|
|
97
|
+
* @param text Optional text content
|
|
98
|
+
* @returns The created paragraph
|
|
99
|
+
*/
|
|
100
|
+
createParagraph(text?: string): Paragraph {
|
|
101
|
+
const para = new Paragraph();
|
|
102
|
+
if (text) {
|
|
103
|
+
para.addText(text);
|
|
104
|
+
}
|
|
105
|
+
this.paragraphs.push(para);
|
|
106
|
+
return para;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Gets all paragraphs in the endnote
|
|
111
|
+
*/
|
|
112
|
+
getParagraphs(): Paragraph[] {
|
|
113
|
+
return [...this.paragraphs];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Gets the text content of the endnote
|
|
118
|
+
*/
|
|
119
|
+
getText(): string {
|
|
120
|
+
return this.paragraphs.map((p) => p.getText()).join('\n');
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Generates the XML for this endnote
|
|
125
|
+
*/
|
|
126
|
+
toXML(): XMLElement {
|
|
127
|
+
const attrs: Record<string, any> = {
|
|
128
|
+
'w:id': this.id.toString(),
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
if (this.type !== EndnoteType.Normal) {
|
|
132
|
+
attrs['w:type'] = this.type;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const children: XMLElement[] = [];
|
|
136
|
+
|
|
137
|
+
// Separator types require specific child elements per ECMA-376
|
|
138
|
+
if (this.type === EndnoteType.Separator) {
|
|
139
|
+
// <w:p><w:r><w:separator/></w:r></w:p>
|
|
140
|
+
children.push(
|
|
141
|
+
XMLBuilder.w('p', undefined, [
|
|
142
|
+
XMLBuilder.w('r', undefined, [XMLBuilder.wSelf('separator')]),
|
|
143
|
+
])
|
|
144
|
+
);
|
|
145
|
+
} else if (this.type === EndnoteType.ContinuationSeparator) {
|
|
146
|
+
// <w:p><w:r><w:continuationSeparator/></w:r></w:p>
|
|
147
|
+
children.push(
|
|
148
|
+
XMLBuilder.w('p', undefined, [
|
|
149
|
+
XMLBuilder.w('r', undefined, [XMLBuilder.wSelf('continuationSeparator')]),
|
|
150
|
+
])
|
|
151
|
+
);
|
|
152
|
+
} else {
|
|
153
|
+
// Add paragraphs
|
|
154
|
+
for (const para of this.paragraphs) {
|
|
155
|
+
children.push(para.toXML());
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// If no paragraphs, add an empty one (required)
|
|
159
|
+
if (children.length === 0) {
|
|
160
|
+
children.push(XMLBuilder.w('p'));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return XMLBuilder.w('endnote', attrs, children);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Creates an endnote from text
|
|
169
|
+
* @param id Endnote ID
|
|
170
|
+
* @param text Text content
|
|
171
|
+
* @returns New endnote instance
|
|
172
|
+
*/
|
|
173
|
+
static fromText(id: number, text: string): Endnote {
|
|
174
|
+
const endnote = new Endnote({ id });
|
|
175
|
+
endnote.createParagraph(text);
|
|
176
|
+
return endnote;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Creates a separator endnote
|
|
181
|
+
* @param id Endnote ID
|
|
182
|
+
* @returns New separator endnote
|
|
183
|
+
*/
|
|
184
|
+
static createSeparator(id: number): Endnote {
|
|
185
|
+
const endnote = new Endnote({
|
|
186
|
+
id,
|
|
187
|
+
type: EndnoteType.Separator,
|
|
188
|
+
});
|
|
189
|
+
// Separator typically has a horizontal line
|
|
190
|
+
endnote.createParagraph();
|
|
191
|
+
// Add separator formatting if needed
|
|
192
|
+
return endnote;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Creates a continuation separator endnote
|
|
197
|
+
* @param id Endnote ID
|
|
198
|
+
* @returns New continuation separator endnote
|
|
199
|
+
*/
|
|
200
|
+
static createContinuationSeparator(id: number): Endnote {
|
|
201
|
+
return new Endnote({
|
|
202
|
+
id,
|
|
203
|
+
type: EndnoteType.ContinuationSeparator,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Creates a continuation notice endnote
|
|
209
|
+
* @param id Endnote ID
|
|
210
|
+
* @param text Notice text (e.g., "Continued on next page...")
|
|
211
|
+
* @returns New continuation notice endnote
|
|
212
|
+
*/
|
|
213
|
+
static createContinuationNotice(id: number, text = 'Continued...'): Endnote {
|
|
214
|
+
const endnote = new Endnote({
|
|
215
|
+
id,
|
|
216
|
+
type: EndnoteType.ContinuationNotice,
|
|
217
|
+
});
|
|
218
|
+
endnote.createParagraph(text);
|
|
219
|
+
return endnote;
|
|
220
|
+
}
|
|
221
|
+
}
|