docxmlater 10.1.4 → 10.1.6
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 +51 -50
- package/dist/core/Document.d.ts.map +1 -1
- package/dist/core/Document.js +486 -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 +1 -0
- package/dist/formatting/NumberingManager.d.ts.map +1 -1
- package/dist/formatting/NumberingManager.js +27 -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 +1010 -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 +875 -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,400 +1,382 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RangeMarker - Represents range markers for tracked changes
|
|
3
|
-
*
|
|
4
|
-
* Range markers are used to mark the boundaries of moved or deleted content spans.
|
|
5
|
-
* They enable Word to properly display and manage complex revision regions.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { XMLElement } from '../xml/XMLBuilder';
|
|
9
|
-
import { formatDateForXml } from '../utils/dateFormatting';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Range marker type
|
|
13
|
-
*/
|
|
14
|
-
export type RangeMarkerType =
|
|
15
|
-
| 'moveFromRangeStart'
|
|
16
|
-
| 'moveFromRangeEnd'
|
|
17
|
-
| 'moveToRangeStart'
|
|
18
|
-
| 'moveToRangeEnd'
|
|
19
|
-
| 'customXmlMoveFromRangeStart'
|
|
20
|
-
| 'customXmlMoveFromRangeEnd'
|
|
21
|
-
| 'customXmlMoveToRangeStart'
|
|
22
|
-
| 'customXmlMoveToRangeEnd'
|
|
23
|
-
| 'customXmlInsRangeStart'
|
|
24
|
-
| 'customXmlInsRangeEnd'
|
|
25
|
-
| 'customXmlDelRangeStart'
|
|
26
|
-
| 'customXmlDelRangeEnd';
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Range marker properties
|
|
30
|
-
*/
|
|
31
|
-
export interface RangeMarkerProperties {
|
|
32
|
-
/** Unique ID for this range marker */
|
|
33
|
-
id: number;
|
|
34
|
-
/** Type of range marker */
|
|
35
|
-
type: RangeMarkerType;
|
|
36
|
-
/** Name linking start and end markers (for move operations) */
|
|
37
|
-
name?: string;
|
|
38
|
-
/** Author who made the change (for start markers only) */
|
|
39
|
-
author?: string;
|
|
40
|
-
/** Date when the change was made (for start markers only) */
|
|
41
|
-
date?: Date;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Represents a range marker for tracked changes
|
|
46
|
-
* Range markers mark the boundaries of moved, inserted, or deleted content
|
|
47
|
-
*/
|
|
48
|
-
export class RangeMarker {
|
|
49
|
-
private id: number;
|
|
50
|
-
private type: RangeMarkerType;
|
|
51
|
-
private name?: string;
|
|
52
|
-
private author?: string;
|
|
53
|
-
private date?: Date;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Creates a new RangeMarker
|
|
57
|
-
* @param properties - Range marker properties
|
|
58
|
-
*/
|
|
59
|
-
constructor(properties: RangeMarkerProperties) {
|
|
60
|
-
this.id = properties.id;
|
|
61
|
-
this.type = properties.type;
|
|
62
|
-
this.name = properties.name;
|
|
63
|
-
this.author = properties.author;
|
|
64
|
-
this.date = properties.date;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Gets the range marker ID
|
|
69
|
-
*/
|
|
70
|
-
getId(): number {
|
|
71
|
-
return this.id;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Sets the range marker ID (used by RevisionManager)
|
|
76
|
-
* @internal
|
|
77
|
-
*/
|
|
78
|
-
setId(id: number): void {
|
|
79
|
-
this.id = id;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Gets the range marker type
|
|
84
|
-
*/
|
|
85
|
-
getType(): RangeMarkerType {
|
|
86
|
-
return this.type;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Gets the range marker name
|
|
91
|
-
*/
|
|
92
|
-
getName(): string | undefined {
|
|
93
|
-
return this.name;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Gets the author
|
|
98
|
-
*/
|
|
99
|
-
getAuthor(): string | undefined {
|
|
100
|
-
return this.author;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Gets the date
|
|
105
|
-
*/
|
|
106
|
-
getDate(): Date | undefined {
|
|
107
|
-
return this.date;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Checks if this is a start marker
|
|
112
|
-
*/
|
|
113
|
-
isStartMarker(): boolean {
|
|
114
|
-
return this.type.endsWith('RangeStart');
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Checks if this is an end marker
|
|
119
|
-
*/
|
|
120
|
-
isEndMarker(): boolean {
|
|
121
|
-
return this.type.endsWith('RangeEnd');
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Gets the XML element name for this range marker type
|
|
126
|
-
*/
|
|
127
|
-
private getElementName(): string {
|
|
128
|
-
switch (this.type) {
|
|
129
|
-
case 'moveFromRangeStart':
|
|
130
|
-
return 'w:moveFromRangeStart';
|
|
131
|
-
case 'moveFromRangeEnd':
|
|
132
|
-
return 'w:moveFromRangeEnd';
|
|
133
|
-
case 'moveToRangeStart':
|
|
134
|
-
return 'w:moveToRangeStart';
|
|
135
|
-
case 'moveToRangeEnd':
|
|
136
|
-
return 'w:moveToRangeEnd';
|
|
137
|
-
case 'customXmlMoveFromRangeStart':
|
|
138
|
-
return 'w:customXmlMoveFromRangeStart';
|
|
139
|
-
case 'customXmlMoveFromRangeEnd':
|
|
140
|
-
return 'w:customXmlMoveFromRangeEnd';
|
|
141
|
-
case 'customXmlMoveToRangeStart':
|
|
142
|
-
return 'w:customXmlMoveToRangeStart';
|
|
143
|
-
case 'customXmlMoveToRangeEnd':
|
|
144
|
-
return 'w:customXmlMoveToRangeEnd';
|
|
145
|
-
case 'customXmlInsRangeStart':
|
|
146
|
-
return 'w:customXmlInsRangeStart';
|
|
147
|
-
case 'customXmlInsRangeEnd':
|
|
148
|
-
return 'w:customXmlInsRangeEnd';
|
|
149
|
-
case 'customXmlDelRangeStart':
|
|
150
|
-
return 'w:customXmlDelRangeStart';
|
|
151
|
-
case 'customXmlDelRangeEnd':
|
|
152
|
-
return 'w:customXmlDelRangeEnd';
|
|
153
|
-
default:
|
|
154
|
-
return 'w:moveFromRangeStart';
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Formats a date to ISO 8601 format for XML
|
|
160
|
-
* Uses formatDateForXml() to strip milliseconds which Word does not accept.
|
|
161
|
-
*/
|
|
162
|
-
private formatDate(date: Date): string {
|
|
163
|
-
return formatDateForXml(date);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* Generates XML for this range marker
|
|
168
|
-
* @returns XMLElement representing the range marker
|
|
169
|
-
*/
|
|
170
|
-
toXML(): XMLElement {
|
|
171
|
-
const attributes: Record<string, string> = {
|
|
172
|
-
'w:id': this.id.toString(),
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
// Add name attribute for move operations
|
|
176
|
-
if (this.name) {
|
|
177
|
-
attributes['w:name'] = this.name;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// Add author and date for start markers
|
|
181
|
-
if (this.isStartMarker() && this.author) {
|
|
182
|
-
attributes['w:author'] = this.author;
|
|
183
|
-
if (this.date) {
|
|
184
|
-
attributes['w:date'] = this.formatDate(this.date);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
const elementName = this.getElementName();
|
|
189
|
-
|
|
190
|
-
return {
|
|
191
|
-
name: elementName,
|
|
192
|
-
attributes,
|
|
193
|
-
children: [], // Range markers are self-closing
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Creates a moveFromRangeStart marker
|
|
199
|
-
* @param id - Unique ID
|
|
200
|
-
* @param name - Move operation name (links start/end markers)
|
|
201
|
-
* @param author - Author who made the move
|
|
202
|
-
* @param date - Optional date (defaults to now)
|
|
203
|
-
* @returns New RangeMarker instance
|
|
204
|
-
*/
|
|
205
|
-
static createMoveFromStart(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
*
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
*
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
): RangeMarker {
|
|
279
|
-
return new RangeMarker({
|
|
280
|
-
id,
|
|
281
|
-
type: '
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
*
|
|
289
|
-
* @param
|
|
290
|
-
* @returns New RangeMarker instance
|
|
291
|
-
*/
|
|
292
|
-
static
|
|
293
|
-
return new RangeMarker({
|
|
294
|
-
id,
|
|
295
|
-
type: '
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
*
|
|
303
|
-
* @param
|
|
304
|
-
* @returns New RangeMarker instance
|
|
305
|
-
*/
|
|
306
|
-
static
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
*
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
*
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
name,
|
|
384
|
-
author,
|
|
385
|
-
date: date || new Date(),
|
|
386
|
-
});
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
/**
|
|
390
|
-
* Creates a customXmlMoveToRangeEnd marker
|
|
391
|
-
* @param id - Unique ID (must match the start marker)
|
|
392
|
-
* @returns New RangeMarker instance
|
|
393
|
-
*/
|
|
394
|
-
static createCustomXmlMoveToEnd(id: number): RangeMarker {
|
|
395
|
-
return new RangeMarker({
|
|
396
|
-
id,
|
|
397
|
-
type: 'customXmlMoveToRangeEnd',
|
|
398
|
-
});
|
|
399
|
-
}
|
|
400
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* RangeMarker - Represents range markers for tracked changes
|
|
3
|
+
*
|
|
4
|
+
* Range markers are used to mark the boundaries of moved or deleted content spans.
|
|
5
|
+
* They enable Word to properly display and manage complex revision regions.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { XMLElement } from '../xml/XMLBuilder';
|
|
9
|
+
import { formatDateForXml } from '../utils/dateFormatting';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Range marker type
|
|
13
|
+
*/
|
|
14
|
+
export type RangeMarkerType =
|
|
15
|
+
| 'moveFromRangeStart'
|
|
16
|
+
| 'moveFromRangeEnd'
|
|
17
|
+
| 'moveToRangeStart'
|
|
18
|
+
| 'moveToRangeEnd'
|
|
19
|
+
| 'customXmlMoveFromRangeStart'
|
|
20
|
+
| 'customXmlMoveFromRangeEnd'
|
|
21
|
+
| 'customXmlMoveToRangeStart'
|
|
22
|
+
| 'customXmlMoveToRangeEnd'
|
|
23
|
+
| 'customXmlInsRangeStart'
|
|
24
|
+
| 'customXmlInsRangeEnd'
|
|
25
|
+
| 'customXmlDelRangeStart'
|
|
26
|
+
| 'customXmlDelRangeEnd';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Range marker properties
|
|
30
|
+
*/
|
|
31
|
+
export interface RangeMarkerProperties {
|
|
32
|
+
/** Unique ID for this range marker */
|
|
33
|
+
id: number;
|
|
34
|
+
/** Type of range marker */
|
|
35
|
+
type: RangeMarkerType;
|
|
36
|
+
/** Name linking start and end markers (for move operations) */
|
|
37
|
+
name?: string;
|
|
38
|
+
/** Author who made the change (for start markers only) */
|
|
39
|
+
author?: string;
|
|
40
|
+
/** Date when the change was made (for start markers only) */
|
|
41
|
+
date?: Date;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Represents a range marker for tracked changes
|
|
46
|
+
* Range markers mark the boundaries of moved, inserted, or deleted content
|
|
47
|
+
*/
|
|
48
|
+
export class RangeMarker {
|
|
49
|
+
private id: number;
|
|
50
|
+
private type: RangeMarkerType;
|
|
51
|
+
private name?: string;
|
|
52
|
+
private author?: string;
|
|
53
|
+
private date?: Date;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Creates a new RangeMarker
|
|
57
|
+
* @param properties - Range marker properties
|
|
58
|
+
*/
|
|
59
|
+
constructor(properties: RangeMarkerProperties) {
|
|
60
|
+
this.id = properties.id;
|
|
61
|
+
this.type = properties.type;
|
|
62
|
+
this.name = properties.name;
|
|
63
|
+
this.author = properties.author;
|
|
64
|
+
this.date = properties.date;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Gets the range marker ID
|
|
69
|
+
*/
|
|
70
|
+
getId(): number {
|
|
71
|
+
return this.id;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Sets the range marker ID (used by RevisionManager)
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
setId(id: number): void {
|
|
79
|
+
this.id = id;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Gets the range marker type
|
|
84
|
+
*/
|
|
85
|
+
getType(): RangeMarkerType {
|
|
86
|
+
return this.type;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Gets the range marker name
|
|
91
|
+
*/
|
|
92
|
+
getName(): string | undefined {
|
|
93
|
+
return this.name;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Gets the author
|
|
98
|
+
*/
|
|
99
|
+
getAuthor(): string | undefined {
|
|
100
|
+
return this.author;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Gets the date
|
|
105
|
+
*/
|
|
106
|
+
getDate(): Date | undefined {
|
|
107
|
+
return this.date;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Checks if this is a start marker
|
|
112
|
+
*/
|
|
113
|
+
isStartMarker(): boolean {
|
|
114
|
+
return this.type.endsWith('RangeStart');
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Checks if this is an end marker
|
|
119
|
+
*/
|
|
120
|
+
isEndMarker(): boolean {
|
|
121
|
+
return this.type.endsWith('RangeEnd');
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Gets the XML element name for this range marker type
|
|
126
|
+
*/
|
|
127
|
+
private getElementName(): string {
|
|
128
|
+
switch (this.type) {
|
|
129
|
+
case 'moveFromRangeStart':
|
|
130
|
+
return 'w:moveFromRangeStart';
|
|
131
|
+
case 'moveFromRangeEnd':
|
|
132
|
+
return 'w:moveFromRangeEnd';
|
|
133
|
+
case 'moveToRangeStart':
|
|
134
|
+
return 'w:moveToRangeStart';
|
|
135
|
+
case 'moveToRangeEnd':
|
|
136
|
+
return 'w:moveToRangeEnd';
|
|
137
|
+
case 'customXmlMoveFromRangeStart':
|
|
138
|
+
return 'w:customXmlMoveFromRangeStart';
|
|
139
|
+
case 'customXmlMoveFromRangeEnd':
|
|
140
|
+
return 'w:customXmlMoveFromRangeEnd';
|
|
141
|
+
case 'customXmlMoveToRangeStart':
|
|
142
|
+
return 'w:customXmlMoveToRangeStart';
|
|
143
|
+
case 'customXmlMoveToRangeEnd':
|
|
144
|
+
return 'w:customXmlMoveToRangeEnd';
|
|
145
|
+
case 'customXmlInsRangeStart':
|
|
146
|
+
return 'w:customXmlInsRangeStart';
|
|
147
|
+
case 'customXmlInsRangeEnd':
|
|
148
|
+
return 'w:customXmlInsRangeEnd';
|
|
149
|
+
case 'customXmlDelRangeStart':
|
|
150
|
+
return 'w:customXmlDelRangeStart';
|
|
151
|
+
case 'customXmlDelRangeEnd':
|
|
152
|
+
return 'w:customXmlDelRangeEnd';
|
|
153
|
+
default:
|
|
154
|
+
return 'w:moveFromRangeStart';
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Formats a date to ISO 8601 format for XML
|
|
160
|
+
* Uses formatDateForXml() to strip milliseconds which Word does not accept.
|
|
161
|
+
*/
|
|
162
|
+
private formatDate(date: Date): string {
|
|
163
|
+
return formatDateForXml(date);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Generates XML for this range marker
|
|
168
|
+
* @returns XMLElement representing the range marker
|
|
169
|
+
*/
|
|
170
|
+
toXML(): XMLElement {
|
|
171
|
+
const attributes: Record<string, string> = {
|
|
172
|
+
'w:id': this.id.toString(),
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
// Add name attribute for move operations
|
|
176
|
+
if (this.name) {
|
|
177
|
+
attributes['w:name'] = this.name;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Add author and date for start markers
|
|
181
|
+
if (this.isStartMarker() && this.author) {
|
|
182
|
+
attributes['w:author'] = this.author;
|
|
183
|
+
if (this.date) {
|
|
184
|
+
attributes['w:date'] = this.formatDate(this.date);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const elementName = this.getElementName();
|
|
189
|
+
|
|
190
|
+
return {
|
|
191
|
+
name: elementName,
|
|
192
|
+
attributes,
|
|
193
|
+
children: [], // Range markers are self-closing
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Creates a moveFromRangeStart marker
|
|
199
|
+
* @param id - Unique ID
|
|
200
|
+
* @param name - Move operation name (links start/end markers)
|
|
201
|
+
* @param author - Author who made the move
|
|
202
|
+
* @param date - Optional date (defaults to now)
|
|
203
|
+
* @returns New RangeMarker instance
|
|
204
|
+
*/
|
|
205
|
+
static createMoveFromStart(id: number, name: string, author: string, date?: Date): RangeMarker {
|
|
206
|
+
return new RangeMarker({
|
|
207
|
+
id,
|
|
208
|
+
type: 'moveFromRangeStart',
|
|
209
|
+
name,
|
|
210
|
+
author,
|
|
211
|
+
date: date || new Date(),
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Creates a moveFromRangeEnd marker
|
|
217
|
+
* @param id - Unique ID (must match the start marker)
|
|
218
|
+
* @returns New RangeMarker instance
|
|
219
|
+
*/
|
|
220
|
+
static createMoveFromEnd(id: number): RangeMarker {
|
|
221
|
+
return new RangeMarker({
|
|
222
|
+
id,
|
|
223
|
+
type: 'moveFromRangeEnd',
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Creates a moveToRangeStart marker
|
|
229
|
+
* @param id - Unique ID
|
|
230
|
+
* @param name - Move operation name (links to moveFrom markers)
|
|
231
|
+
* @param author - Author who made the move
|
|
232
|
+
* @param date - Optional date (defaults to now)
|
|
233
|
+
* @returns New RangeMarker instance
|
|
234
|
+
*/
|
|
235
|
+
static createMoveToStart(id: number, name: string, author: string, date?: Date): RangeMarker {
|
|
236
|
+
return new RangeMarker({
|
|
237
|
+
id,
|
|
238
|
+
type: 'moveToRangeStart',
|
|
239
|
+
name,
|
|
240
|
+
author,
|
|
241
|
+
date: date || new Date(),
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Creates a moveToRangeEnd marker
|
|
247
|
+
* @param id - Unique ID (must match the start marker)
|
|
248
|
+
* @returns New RangeMarker instance
|
|
249
|
+
*/
|
|
250
|
+
static createMoveToEnd(id: number): RangeMarker {
|
|
251
|
+
return new RangeMarker({
|
|
252
|
+
id,
|
|
253
|
+
type: 'moveToRangeEnd',
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Creates a customXmlInsRangeStart marker
|
|
259
|
+
* @param id - Unique ID
|
|
260
|
+
* @param author - Author who made the insertion
|
|
261
|
+
* @param date - Optional date (defaults to now)
|
|
262
|
+
* @returns New RangeMarker instance
|
|
263
|
+
*/
|
|
264
|
+
static createCustomXmlInsStart(id: number, author: string, date?: Date): RangeMarker {
|
|
265
|
+
return new RangeMarker({
|
|
266
|
+
id,
|
|
267
|
+
type: 'customXmlInsRangeStart',
|
|
268
|
+
author,
|
|
269
|
+
date: date || new Date(),
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Creates a customXmlInsRangeEnd marker
|
|
275
|
+
* @param id - Unique ID (must match the start marker)
|
|
276
|
+
* @returns New RangeMarker instance
|
|
277
|
+
*/
|
|
278
|
+
static createCustomXmlInsEnd(id: number): RangeMarker {
|
|
279
|
+
return new RangeMarker({
|
|
280
|
+
id,
|
|
281
|
+
type: 'customXmlInsRangeEnd',
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Creates a customXmlDelRangeStart marker
|
|
287
|
+
* @param id - Unique ID
|
|
288
|
+
* @param author - Author who made the deletion
|
|
289
|
+
* @param date - Optional date (defaults to now)
|
|
290
|
+
* @returns New RangeMarker instance
|
|
291
|
+
*/
|
|
292
|
+
static createCustomXmlDelStart(id: number, author: string, date?: Date): RangeMarker {
|
|
293
|
+
return new RangeMarker({
|
|
294
|
+
id,
|
|
295
|
+
type: 'customXmlDelRangeStart',
|
|
296
|
+
author,
|
|
297
|
+
date: date || new Date(),
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Creates a customXmlDelRangeEnd marker
|
|
303
|
+
* @param id - Unique ID (must match the start marker)
|
|
304
|
+
* @returns New RangeMarker instance
|
|
305
|
+
*/
|
|
306
|
+
static createCustomXmlDelEnd(id: number): RangeMarker {
|
|
307
|
+
return new RangeMarker({
|
|
308
|
+
id,
|
|
309
|
+
type: 'customXmlDelRangeEnd',
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Creates a customXmlMoveFromRangeStart marker
|
|
315
|
+
* @param id - Unique ID
|
|
316
|
+
* @param name - Move operation name
|
|
317
|
+
* @param author - Author who made the move
|
|
318
|
+
* @param date - Optional date (defaults to now)
|
|
319
|
+
* @returns New RangeMarker instance
|
|
320
|
+
*/
|
|
321
|
+
static createCustomXmlMoveFromStart(
|
|
322
|
+
id: number,
|
|
323
|
+
name: string,
|
|
324
|
+
author: string,
|
|
325
|
+
date?: Date
|
|
326
|
+
): RangeMarker {
|
|
327
|
+
return new RangeMarker({
|
|
328
|
+
id,
|
|
329
|
+
type: 'customXmlMoveFromRangeStart',
|
|
330
|
+
name,
|
|
331
|
+
author,
|
|
332
|
+
date: date || new Date(),
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Creates a customXmlMoveFromRangeEnd marker
|
|
338
|
+
* @param id - Unique ID (must match the start marker)
|
|
339
|
+
* @returns New RangeMarker instance
|
|
340
|
+
*/
|
|
341
|
+
static createCustomXmlMoveFromEnd(id: number): RangeMarker {
|
|
342
|
+
return new RangeMarker({
|
|
343
|
+
id,
|
|
344
|
+
type: 'customXmlMoveFromRangeEnd',
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Creates a customXmlMoveToRangeStart marker
|
|
350
|
+
* @param id - Unique ID
|
|
351
|
+
* @param name - Move operation name
|
|
352
|
+
* @param author - Author who made the move
|
|
353
|
+
* @param date - Optional date (defaults to now)
|
|
354
|
+
* @returns New RangeMarker instance
|
|
355
|
+
*/
|
|
356
|
+
static createCustomXmlMoveToStart(
|
|
357
|
+
id: number,
|
|
358
|
+
name: string,
|
|
359
|
+
author: string,
|
|
360
|
+
date?: Date
|
|
361
|
+
): RangeMarker {
|
|
362
|
+
return new RangeMarker({
|
|
363
|
+
id,
|
|
364
|
+
type: 'customXmlMoveToRangeStart',
|
|
365
|
+
name,
|
|
366
|
+
author,
|
|
367
|
+
date: date || new Date(),
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Creates a customXmlMoveToRangeEnd marker
|
|
373
|
+
* @param id - Unique ID (must match the start marker)
|
|
374
|
+
* @returns New RangeMarker instance
|
|
375
|
+
*/
|
|
376
|
+
static createCustomXmlMoveToEnd(id: number): RangeMarker {
|
|
377
|
+
return new RangeMarker({
|
|
378
|
+
id,
|
|
379
|
+
type: 'customXmlMoveToRangeEnd',
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
}
|