docxmlater 11.0.9 → 12.0.1

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.
Files changed (354) hide show
  1. package/README.md +51 -13
  2. package/dist/core/Document.d.ts +28 -2
  3. package/dist/core/Document.d.ts.map +1 -1
  4. package/dist/core/Document.js +725 -170
  5. package/dist/core/Document.js.map +1 -1
  6. package/dist/core/DocumentGenerator.d.ts +1 -0
  7. package/dist/core/DocumentGenerator.d.ts.map +1 -1
  8. package/dist/core/DocumentGenerator.js +77 -25
  9. package/dist/core/DocumentGenerator.js.map +1 -1
  10. package/dist/core/DocumentParser.d.ts +7 -3
  11. package/dist/core/DocumentParser.d.ts.map +1 -1
  12. package/dist/core/DocumentParser.js +431 -85
  13. package/dist/core/DocumentParser.js.map +1 -1
  14. package/dist/core/RelationshipManager.d.ts.map +1 -1
  15. package/dist/core/RelationshipManager.js +2 -2
  16. package/dist/core/RelationshipManager.js.map +1 -1
  17. package/dist/elements/Comment.d.ts +15 -1
  18. package/dist/elements/Comment.d.ts.map +1 -1
  19. package/dist/elements/Comment.js +67 -12
  20. package/dist/elements/Comment.js.map +1 -1
  21. package/dist/elements/CommentManager.d.ts +4 -0
  22. package/dist/elements/CommentManager.d.ts.map +1 -1
  23. package/dist/elements/CommentManager.js +74 -16
  24. package/dist/elements/CommentManager.js.map +1 -1
  25. package/dist/elements/EndnoteManager.d.ts.map +1 -1
  26. package/dist/elements/EndnoteManager.js.map +1 -1
  27. package/dist/elements/Field.d.ts +10 -1
  28. package/dist/elements/Field.d.ts.map +1 -1
  29. package/dist/elements/Field.js +76 -34
  30. package/dist/elements/Field.js.map +1 -1
  31. package/dist/elements/FieldHelpers.d.ts +1 -0
  32. package/dist/elements/FieldHelpers.d.ts.map +1 -1
  33. package/dist/elements/FieldHelpers.js +8 -4
  34. package/dist/elements/FieldHelpers.js.map +1 -1
  35. package/dist/elements/Footer.d.ts +3 -1
  36. package/dist/elements/Footer.d.ts.map +1 -1
  37. package/dist/elements/Footer.js +39 -53
  38. package/dist/elements/Footer.js.map +1 -1
  39. package/dist/elements/FootnoteManager.d.ts.map +1 -1
  40. package/dist/elements/FootnoteManager.js.map +1 -1
  41. package/dist/elements/Header.d.ts +3 -1
  42. package/dist/elements/Header.d.ts.map +1 -1
  43. package/dist/elements/Header.js +39 -53
  44. package/dist/elements/Header.js.map +1 -1
  45. package/dist/elements/HeaderFooterManager.d.ts +4 -2
  46. package/dist/elements/HeaderFooterManager.d.ts.map +1 -1
  47. package/dist/elements/HeaderFooterManager.js +36 -6
  48. package/dist/elements/HeaderFooterManager.js.map +1 -1
  49. package/dist/elements/Hyperlink.d.ts +6 -1
  50. package/dist/elements/Hyperlink.d.ts.map +1 -1
  51. package/dist/elements/Hyperlink.js +69 -44
  52. package/dist/elements/Hyperlink.js.map +1 -1
  53. package/dist/elements/Image.d.ts.map +1 -1
  54. package/dist/elements/Image.js +33 -6
  55. package/dist/elements/Image.js.map +1 -1
  56. package/dist/elements/ImageManager.d.ts +1 -0
  57. package/dist/elements/ImageManager.d.ts.map +1 -1
  58. package/dist/elements/ImageManager.js +11 -0
  59. package/dist/elements/ImageManager.js.map +1 -1
  60. package/dist/elements/Paragraph.d.ts +3 -0
  61. package/dist/elements/Paragraph.d.ts.map +1 -1
  62. package/dist/elements/Paragraph.js +91 -26
  63. package/dist/elements/Paragraph.js.map +1 -1
  64. package/dist/elements/Revision.d.ts +4 -0
  65. package/dist/elements/Revision.d.ts.map +1 -1
  66. package/dist/elements/Revision.js +369 -29
  67. package/dist/elements/Revision.js.map +1 -1
  68. package/dist/elements/Run.d.ts +1 -0
  69. package/dist/elements/Run.d.ts.map +1 -1
  70. package/dist/elements/Run.js +24 -4
  71. package/dist/elements/Run.js.map +1 -1
  72. package/dist/elements/Section.d.ts.map +1 -1
  73. package/dist/elements/Section.js +17 -7
  74. package/dist/elements/Section.js.map +1 -1
  75. package/dist/elements/Shape.d.ts.map +1 -1
  76. package/dist/elements/Shape.js +50 -42
  77. package/dist/elements/Shape.js.map +1 -1
  78. package/dist/elements/StructuredDocumentTag.d.ts +9 -1
  79. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
  80. package/dist/elements/StructuredDocumentTag.js +46 -6
  81. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  82. package/dist/elements/Table.d.ts +2 -0
  83. package/dist/elements/Table.d.ts.map +1 -1
  84. package/dist/elements/Table.js +90 -42
  85. package/dist/elements/Table.js.map +1 -1
  86. package/dist/elements/TableCell.d.ts +1 -0
  87. package/dist/elements/TableCell.d.ts.map +1 -1
  88. package/dist/elements/TableCell.js +32 -13
  89. package/dist/elements/TableCell.js.map +1 -1
  90. package/dist/elements/TableOfContents.d.ts.map +1 -1
  91. package/dist/elements/TableOfContents.js +5 -7
  92. package/dist/elements/TableOfContents.js.map +1 -1
  93. package/dist/elements/TableRow.d.ts +1 -0
  94. package/dist/elements/TableRow.d.ts.map +1 -1
  95. package/dist/elements/TableRow.js +16 -1
  96. package/dist/elements/TableRow.js.map +1 -1
  97. package/dist/elements/TextBox.d.ts.map +1 -1
  98. package/dist/elements/TextBox.js +55 -42
  99. package/dist/elements/TextBox.js.map +1 -1
  100. package/dist/esm/core/Document.js +726 -171
  101. package/dist/esm/core/Document.js.map +1 -1
  102. package/dist/esm/core/DocumentGenerator.js +77 -25
  103. package/dist/esm/core/DocumentGenerator.js.map +1 -1
  104. package/dist/esm/core/DocumentParser.js +431 -85
  105. package/dist/esm/core/DocumentParser.js.map +1 -1
  106. package/dist/esm/core/RelationshipManager.js +2 -2
  107. package/dist/esm/core/RelationshipManager.js.map +1 -1
  108. package/dist/esm/elements/Comment.js +67 -12
  109. package/dist/esm/elements/Comment.js.map +1 -1
  110. package/dist/esm/elements/CommentManager.js +74 -16
  111. package/dist/esm/elements/CommentManager.js.map +1 -1
  112. package/dist/esm/elements/EndnoteManager.js.map +1 -1
  113. package/dist/esm/elements/Field.js +77 -35
  114. package/dist/esm/elements/Field.js.map +1 -1
  115. package/dist/esm/elements/FieldHelpers.js +7 -4
  116. package/dist/esm/elements/FieldHelpers.js.map +1 -1
  117. package/dist/esm/elements/Footer.js +39 -53
  118. package/dist/esm/elements/Footer.js.map +1 -1
  119. package/dist/esm/elements/FootnoteManager.js.map +1 -1
  120. package/dist/esm/elements/Header.js +39 -53
  121. package/dist/esm/elements/Header.js.map +1 -1
  122. package/dist/esm/elements/HeaderFooterManager.js +36 -6
  123. package/dist/esm/elements/HeaderFooterManager.js.map +1 -1
  124. package/dist/esm/elements/Hyperlink.js +69 -44
  125. package/dist/esm/elements/Hyperlink.js.map +1 -1
  126. package/dist/esm/elements/Image.js +33 -6
  127. package/dist/esm/elements/Image.js.map +1 -1
  128. package/dist/esm/elements/ImageManager.js +11 -0
  129. package/dist/esm/elements/ImageManager.js.map +1 -1
  130. package/dist/esm/elements/Paragraph.js +91 -26
  131. package/dist/esm/elements/Paragraph.js.map +1 -1
  132. package/dist/esm/elements/Revision.js +369 -29
  133. package/dist/esm/elements/Revision.js.map +1 -1
  134. package/dist/esm/elements/Run.js +24 -4
  135. package/dist/esm/elements/Run.js.map +1 -1
  136. package/dist/esm/elements/Section.js +17 -7
  137. package/dist/esm/elements/Section.js.map +1 -1
  138. package/dist/esm/elements/Shape.js +50 -42
  139. package/dist/esm/elements/Shape.js.map +1 -1
  140. package/dist/esm/elements/StructuredDocumentTag.js +46 -6
  141. package/dist/esm/elements/StructuredDocumentTag.js.map +1 -1
  142. package/dist/esm/elements/Table.js +90 -42
  143. package/dist/esm/elements/Table.js.map +1 -1
  144. package/dist/esm/elements/TableCell.js +32 -13
  145. package/dist/esm/elements/TableCell.js.map +1 -1
  146. package/dist/esm/elements/TableOfContents.js +5 -7
  147. package/dist/esm/elements/TableOfContents.js.map +1 -1
  148. package/dist/esm/elements/TableRow.js +16 -1
  149. package/dist/esm/elements/TableRow.js.map +1 -1
  150. package/dist/esm/elements/TextBox.js +55 -42
  151. package/dist/esm/elements/TextBox.js.map +1 -1
  152. package/dist/esm/formatting/AbstractNumbering.js +1 -1
  153. package/dist/esm/formatting/AbstractNumbering.js.map +1 -1
  154. package/dist/esm/formatting/NumberingLevel.js +8 -6
  155. package/dist/esm/formatting/NumberingLevel.js.map +1 -1
  156. package/dist/esm/formatting/NumberingManager.js +16 -1
  157. package/dist/esm/formatting/NumberingManager.js.map +1 -1
  158. package/dist/esm/formatting/Style.js +14 -0
  159. package/dist/esm/formatting/Style.js.map +1 -1
  160. package/dist/esm/formatting/StylesManager.js +14 -2
  161. package/dist/esm/formatting/StylesManager.js.map +1 -1
  162. package/dist/esm/helpers/CleanupHelper.js +103 -26
  163. package/dist/esm/helpers/CleanupHelper.js.map +1 -1
  164. package/dist/esm/images/ImageOptimizer.js +52 -4
  165. package/dist/esm/images/ImageOptimizer.js.map +1 -1
  166. package/dist/esm/index.js +1 -0
  167. package/dist/esm/index.js.map +1 -1
  168. package/dist/esm/internal.js +1 -1
  169. package/dist/esm/internal.js.map +1 -1
  170. package/dist/esm/processors/CompatibilityUpgrader.js +7 -1
  171. package/dist/esm/processors/CompatibilityUpgrader.js.map +1 -1
  172. package/dist/esm/processors/InMemoryRevisionAcceptor.js +134 -13
  173. package/dist/esm/processors/InMemoryRevisionAcceptor.js.map +1 -1
  174. package/dist/esm/processors/RevisionWalker.js +58 -8
  175. package/dist/esm/processors/RevisionWalker.js.map +1 -1
  176. package/dist/esm/processors/SelectiveRevisionAcceptor.js +116 -17
  177. package/dist/esm/processors/SelectiveRevisionAcceptor.js.map +1 -1
  178. package/dist/esm/processors/cnfStyleDecoder.js +7 -7
  179. package/dist/esm/processors/cnfStyleDecoder.js.map +1 -1
  180. package/dist/esm/processors/stripTrackedChanges.js +16 -5
  181. package/dist/esm/processors/stripTrackedChanges.js.map +1 -1
  182. package/dist/esm/utils/deepClone.js +24 -11
  183. package/dist/esm/utils/deepClone.js.map +1 -1
  184. package/dist/esm/utils/units.js +1 -1
  185. package/dist/esm/utils/units.js.map +1 -1
  186. package/dist/esm/utils/validation.js +11 -23
  187. package/dist/esm/utils/validation.js.map +1 -1
  188. package/dist/esm/utils/xmlSanitization.js +131 -7
  189. package/dist/esm/utils/xmlSanitization.js.map +1 -1
  190. package/dist/esm/validation/RevisionAutoFixer.js +69 -55
  191. package/dist/esm/validation/RevisionAutoFixer.js.map +1 -1
  192. package/dist/esm/validation/RevisionValidator.js +24 -20
  193. package/dist/esm/validation/RevisionValidator.js.map +1 -1
  194. package/dist/esm/xml/XMLBuilder.js +52 -20
  195. package/dist/esm/xml/XMLBuilder.js.map +1 -1
  196. package/dist/esm/xml/XMLParser.js +55 -13
  197. package/dist/esm/xml/XMLParser.js.map +1 -1
  198. package/dist/esm/zip/ZipHandler.js +37 -13
  199. package/dist/esm/zip/ZipHandler.js.map +1 -1
  200. package/dist/esm/zip/ZipReader.js +53 -6
  201. package/dist/esm/zip/ZipReader.js.map +1 -1
  202. package/dist/esm/zip/errors.js +7 -0
  203. package/dist/esm/zip/errors.js.map +1 -1
  204. package/dist/esm/zip/types.js +4 -0
  205. package/dist/esm/zip/types.js.map +1 -1
  206. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  207. package/dist/formatting/AbstractNumbering.js +1 -1
  208. package/dist/formatting/AbstractNumbering.js.map +1 -1
  209. package/dist/formatting/NumberingLevel.d.ts +1 -1
  210. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  211. package/dist/formatting/NumberingLevel.js +8 -6
  212. package/dist/formatting/NumberingLevel.js.map +1 -1
  213. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  214. package/dist/formatting/NumberingManager.js +16 -1
  215. package/dist/formatting/NumberingManager.js.map +1 -1
  216. package/dist/formatting/Style.d.ts.map +1 -1
  217. package/dist/formatting/Style.js +14 -0
  218. package/dist/formatting/Style.js.map +1 -1
  219. package/dist/formatting/StylesManager.d.ts +2 -0
  220. package/dist/formatting/StylesManager.d.ts.map +1 -1
  221. package/dist/formatting/StylesManager.js +14 -2
  222. package/dist/formatting/StylesManager.js.map +1 -1
  223. package/dist/helpers/CleanupHelper.d.ts.map +1 -1
  224. package/dist/helpers/CleanupHelper.js +103 -26
  225. package/dist/helpers/CleanupHelper.js.map +1 -1
  226. package/dist/images/ImageOptimizer.d.ts.map +1 -1
  227. package/dist/images/ImageOptimizer.js +52 -4
  228. package/dist/images/ImageOptimizer.js.map +1 -1
  229. package/dist/index.d.ts +3 -1
  230. package/dist/index.d.ts.map +1 -1
  231. package/dist/index.js +4 -2
  232. package/dist/index.js.map +1 -1
  233. package/dist/internal.d.ts +1 -1
  234. package/dist/internal.d.ts.map +1 -1
  235. package/dist/internal.js +2 -1
  236. package/dist/internal.js.map +1 -1
  237. package/dist/processors/CompatibilityUpgrader.d.ts.map +1 -1
  238. package/dist/processors/CompatibilityUpgrader.js +7 -1
  239. package/dist/processors/CompatibilityUpgrader.js.map +1 -1
  240. package/dist/processors/InMemoryRevisionAcceptor.d.ts +1 -0
  241. package/dist/processors/InMemoryRevisionAcceptor.d.ts.map +1 -1
  242. package/dist/processors/InMemoryRevisionAcceptor.js +135 -13
  243. package/dist/processors/InMemoryRevisionAcceptor.js.map +1 -1
  244. package/dist/processors/RevisionWalker.d.ts +2 -0
  245. package/dist/processors/RevisionWalker.d.ts.map +1 -1
  246. package/dist/processors/RevisionWalker.js +58 -8
  247. package/dist/processors/RevisionWalker.js.map +1 -1
  248. package/dist/processors/SelectiveRevisionAcceptor.d.ts.map +1 -1
  249. package/dist/processors/SelectiveRevisionAcceptor.js +116 -17
  250. package/dist/processors/SelectiveRevisionAcceptor.js.map +1 -1
  251. package/dist/processors/cnfStyleDecoder.d.ts.map +1 -1
  252. package/dist/processors/cnfStyleDecoder.js +7 -7
  253. package/dist/processors/cnfStyleDecoder.js.map +1 -1
  254. package/dist/processors/stripTrackedChanges.d.ts.map +1 -1
  255. package/dist/processors/stripTrackedChanges.js +16 -5
  256. package/dist/processors/stripTrackedChanges.js.map +1 -1
  257. package/dist/utils/deepClone.d.ts.map +1 -1
  258. package/dist/utils/deepClone.js +24 -11
  259. package/dist/utils/deepClone.js.map +1 -1
  260. package/dist/utils/units.d.ts.map +1 -1
  261. package/dist/utils/units.js +1 -1
  262. package/dist/utils/units.js.map +1 -1
  263. package/dist/utils/validation.d.ts.map +1 -1
  264. package/dist/utils/validation.js +11 -23
  265. package/dist/utils/validation.js.map +1 -1
  266. package/dist/utils/xmlSanitization.d.ts +2 -0
  267. package/dist/utils/xmlSanitization.d.ts.map +1 -1
  268. package/dist/utils/xmlSanitization.js +133 -7
  269. package/dist/utils/xmlSanitization.js.map +1 -1
  270. package/dist/validation/RevisionAutoFixer.d.ts +6 -2
  271. package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
  272. package/dist/validation/RevisionAutoFixer.js +68 -54
  273. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  274. package/dist/validation/RevisionValidator.d.ts +2 -0
  275. package/dist/validation/RevisionValidator.d.ts.map +1 -1
  276. package/dist/validation/RevisionValidator.js +26 -21
  277. package/dist/validation/RevisionValidator.js.map +1 -1
  278. package/dist/xml/XMLBuilder.d.ts +1 -0
  279. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  280. package/dist/xml/XMLBuilder.js +52 -20
  281. package/dist/xml/XMLBuilder.js.map +1 -1
  282. package/dist/xml/XMLParser.d.ts +1 -0
  283. package/dist/xml/XMLParser.d.ts.map +1 -1
  284. package/dist/xml/XMLParser.js +55 -13
  285. package/dist/xml/XMLParser.js.map +1 -1
  286. package/dist/zip/ZipHandler.d.ts.map +1 -1
  287. package/dist/zip/ZipHandler.js +37 -13
  288. package/dist/zip/ZipHandler.js.map +1 -1
  289. package/dist/zip/ZipReader.d.ts.map +1 -1
  290. package/dist/zip/ZipReader.js +52 -5
  291. package/dist/zip/ZipReader.js.map +1 -1
  292. package/dist/zip/errors.d.ts +3 -0
  293. package/dist/zip/errors.d.ts.map +1 -1
  294. package/dist/zip/errors.js +9 -1
  295. package/dist/zip/errors.js.map +1 -1
  296. package/dist/zip/types.d.ts +4 -0
  297. package/dist/zip/types.d.ts.map +1 -1
  298. package/dist/zip/types.js +4 -0
  299. package/dist/zip/types.js.map +1 -1
  300. package/package.json +2 -2
  301. package/src/core/Document.ts +1159 -240
  302. package/src/core/DocumentGenerator.ts +106 -26
  303. package/src/core/DocumentParser.ts +692 -120
  304. package/src/core/RelationshipManager.ts +446 -442
  305. package/src/elements/Comment.ts +123 -18
  306. package/src/elements/CommentManager.ts +121 -22
  307. package/src/elements/EndnoteManager.ts +4 -1
  308. package/src/elements/Field.ts +134 -43
  309. package/src/elements/FieldHelpers.ts +20 -4
  310. package/src/elements/Footer.ts +62 -67
  311. package/src/elements/FootnoteManager.ts +4 -1
  312. package/src/elements/Header.ts +62 -67
  313. package/src/elements/HeaderFooterManager.ts +56 -8
  314. package/src/elements/Hyperlink.ts +150 -55
  315. package/src/elements/Image.ts +51 -7
  316. package/src/elements/ImageManager.ts +24 -0
  317. package/src/elements/Paragraph.ts +161 -40
  318. package/src/elements/Revision.ts +446 -47
  319. package/src/elements/Run.ts +44 -6
  320. package/src/elements/Section.ts +25 -9
  321. package/src/elements/Shape.ts +52 -44
  322. package/src/elements/StructuredDocumentTag.ts +83 -8
  323. package/src/elements/Table.ts +151 -50
  324. package/src/elements/TableCell.ts +57 -17
  325. package/src/elements/TableOfContents.ts +10 -9
  326. package/src/elements/TableRow.ts +35 -3
  327. package/src/elements/TextBox.ts +58 -43
  328. package/src/formatting/AbstractNumbering.ts +4 -2
  329. package/src/formatting/NumberingLevel.ts +50 -12
  330. package/src/formatting/NumberingManager.ts +32 -3
  331. package/src/formatting/Style.ts +14 -0
  332. package/src/formatting/StylesManager.ts +29 -2
  333. package/src/helpers/CleanupHelper.ts +122 -30
  334. package/src/images/ImageOptimizer.ts +64 -5
  335. package/src/index.ts +7 -0
  336. package/src/internal.ts +1 -0
  337. package/src/processors/CompatibilityUpgrader.ts +15 -2
  338. package/src/processors/InMemoryRevisionAcceptor.ts +276 -17
  339. package/src/processors/RevisionWalker.ts +83 -7
  340. package/src/processors/SelectiveRevisionAcceptor.ts +164 -28
  341. package/src/processors/cnfStyleDecoder.ts +18 -12
  342. package/src/processors/stripTrackedChanges.ts +47 -10
  343. package/src/utils/deepClone.ts +48 -14
  344. package/src/utils/units.ts +3 -1
  345. package/src/utils/validation.ts +30 -32
  346. package/src/utils/xmlSanitization.ts +218 -22
  347. package/src/validation/RevisionAutoFixer.ts +109 -65
  348. package/src/validation/RevisionValidator.ts +48 -23
  349. package/src/xml/XMLBuilder.ts +82 -22
  350. package/src/xml/XMLParser.ts +87 -20
  351. package/src/zip/ZipHandler.ts +61 -21
  352. package/src/zip/ZipReader.ts +135 -13
  353. package/src/zip/errors.ts +15 -0
  354. package/src/zip/types.ts +44 -2
@@ -68,6 +68,10 @@ export declare class Revision {
68
68
  toXML(): XMLElement | null;
69
69
  private isPropertyChangeType;
70
70
  private createPropertiesElement;
71
+ private static readonly PROPERTY_KEY_TO_ELEMENT;
72
+ private static readonly PROPERTY_CHILD_ORDER;
73
+ private createPreviousPropertyXml;
74
+ private createObjectPropertyXml;
71
75
  private createDeletedRunXml;
72
76
  private createHyperlinkWrappedRevisionXml;
73
77
  private convertRunXmlToDeleted;
@@ -1 +1 @@
1
- {"version":3,"file":"Revision.d.ts","sourceRoot":"","sources":["../../src/elements/Revision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Revision.d.ts","sourceRoot":"","sources":["../../src/elements/Revision.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Revision = void 0;
4
4
  const Run_js_1 = require("./Run.js");
5
+ const XMLBuilder_js_1 = require("../xml/XMLBuilder.js");
5
6
  const RevisionContent_js_1 = require("./RevisionContent.js");
6
7
  const dateFormatting_js_1 = require("../utils/dateFormatting.js");
7
8
  class Revision {
@@ -191,9 +192,6 @@ class Revision {
191
192
  'w:author': this.author,
192
193
  'w:date': this.formatDate(this.date),
193
194
  };
194
- if ((this.type === 'moveFrom' || this.type === 'moveTo') && this.moveId) {
195
- attributes['w:moveId'] = this.moveId;
196
- }
197
195
  const elementName = this.getElementName();
198
196
  const children = [];
199
197
  if (this.isPropertyChangeType()) {
@@ -201,10 +199,50 @@ class Revision {
201
199
  children.push(this.createPropertiesElement());
202
200
  }
203
201
  }
204
- const firstItem = this.content[0];
205
- const singleHyperlink = this.content.length === 1 && firstItem && (0, RevisionContent_js_1.isHyperlinkContent)(firstItem) ? firstItem : null;
206
- if (singleHyperlink && !this.isPropertyChangeType()) {
207
- return this.createHyperlinkWrappedRevisionXml(singleHyperlink, elementName, attributes);
202
+ if (!this.isPropertyChangeType()) {
203
+ const segments = [];
204
+ const segmentAttributes = (segmentIndex) => segmentIndex === 0
205
+ ? attributes
206
+ : {
207
+ ...attributes,
208
+ 'w:id': String(500000000 + (this.id % 1000000) * 1000 + segmentIndex),
209
+ };
210
+ let pendingRuns = [];
211
+ const flushRuns = () => {
212
+ if (pendingRuns.length > 0) {
213
+ segments.push({
214
+ name: elementName,
215
+ attributes: segmentAttributes(segments.length),
216
+ children: pendingRuns,
217
+ });
218
+ pendingRuns = [];
219
+ }
220
+ };
221
+ for (const item of this.content) {
222
+ if ((0, RevisionContent_js_1.isHyperlinkContent)(item)) {
223
+ flushRuns();
224
+ segments.push(this.createHyperlinkWrappedRevisionXml(item, elementName, segmentAttributes(segments.length)));
225
+ }
226
+ else if ((0, RevisionContent_js_1.isRunContent)(item)) {
227
+ if (this.type === 'delete' || this.type === 'moveFrom') {
228
+ pendingRuns.push(this.createDeletedRunXml(item));
229
+ }
230
+ else {
231
+ pendingRuns.push(item.toXML());
232
+ }
233
+ }
234
+ }
235
+ flushRuns();
236
+ if (segments.length === 0) {
237
+ return { name: elementName, attributes, children: [] };
238
+ }
239
+ if (segments.length === 1) {
240
+ return segments[0];
241
+ }
242
+ return {
243
+ name: '__rawXml',
244
+ rawXml: segments.map((segment) => XMLBuilder_js_1.XMLBuilder.elementToString(segment)).join(''),
245
+ };
208
246
  }
209
247
  for (const item of this.content) {
210
248
  if ((0, RevisionContent_js_1.isHyperlinkContent)(item)) {
@@ -212,24 +250,13 @@ class Revision {
212
250
  if (hyperlinkXml.children) {
213
251
  for (const child of hyperlinkXml.children) {
214
252
  if (typeof child === 'object' && child.name === 'w:r') {
215
- if (this.type === 'delete' || this.type === 'moveFrom') {
216
- children.push(this.convertRunXmlToDeleted(child));
217
- }
218
- else {
219
- children.push(child);
220
- }
253
+ children.push(child);
221
254
  }
222
255
  }
223
256
  }
224
257
  }
225
258
  else if ((0, RevisionContent_js_1.isRunContent)(item)) {
226
- if (this.type === 'delete' || this.type === 'moveFrom') {
227
- const runXml = this.createDeletedRunXml(item);
228
- children.push(runXml);
229
- }
230
- else {
231
- children.push(item.toXML());
232
- }
259
+ children.push(item.toXML());
233
260
  }
234
261
  }
235
262
  return {
@@ -282,27 +309,340 @@ class Revision {
282
309
  propElementName = 'w:numPr';
283
310
  break;
284
311
  }
312
+ const keyMap = Revision.PROPERTY_KEY_TO_ELEMENT[this.type] ?? {};
285
313
  const propChildren = [];
286
314
  if (this.previousProperties) {
287
315
  for (const [key, value] of Object.entries(this.previousProperties)) {
288
- if (typeof value === 'boolean' && value) {
289
- propChildren.push({ name: `w:${key}`, attributes: {}, children: [] });
290
- }
291
- else if (typeof value === 'string' || typeof value === 'number') {
292
- propChildren.push({
293
- name: `w:${key}`,
294
- attributes: { 'w:val': value.toString() },
295
- children: [],
296
- });
316
+ const child = this.createPreviousPropertyXml(`w:${keyMap[key] ?? key}`, value);
317
+ if (child) {
318
+ propChildren.push(child);
297
319
  }
298
320
  }
299
321
  }
322
+ const order = Revision.PROPERTY_CHILD_ORDER[propElementName];
323
+ if (order) {
324
+ const rank = (name) => {
325
+ const index = order.indexOf(name);
326
+ return index === -1 ? order.length : index;
327
+ };
328
+ propChildren.sort((a, b) => rank(a.name) - rank(b.name));
329
+ }
300
330
  return {
301
331
  name: propElementName,
302
332
  attributes: {},
303
333
  children: propChildren,
304
334
  };
305
335
  }
336
+ static PROPERTY_KEY_TO_ELEMENT = {
337
+ paragraphPropertiesChange: {
338
+ alignment: 'jc',
339
+ style: 'pStyle',
340
+ styleId: 'pStyle',
341
+ indentation: 'ind',
342
+ numbering: 'numPr',
343
+ outlineLevel: 'outlineLvl',
344
+ shading: 'shd',
345
+ borders: 'pBdr',
346
+ },
347
+ tablePropertiesChange: {
348
+ alignment: 'jc',
349
+ style: 'tblStyle',
350
+ styleId: 'tblStyle',
351
+ width: 'tblW',
352
+ indent: 'tblInd',
353
+ borders: 'tblBorders',
354
+ shading: 'shd',
355
+ layout: 'tblLayout',
356
+ cellMargins: 'tblCellMar',
357
+ cellSpacing: 'tblCellSpacing',
358
+ },
359
+ tableExceptionPropertiesChange: {
360
+ alignment: 'jc',
361
+ width: 'tblW',
362
+ indent: 'tblInd',
363
+ borders: 'tblBorders',
364
+ shading: 'shd',
365
+ layout: 'tblLayout',
366
+ cellMargins: 'tblCellMar',
367
+ cellSpacing: 'tblCellSpacing',
368
+ },
369
+ tableRowPropertiesChange: {
370
+ alignment: 'jc',
371
+ height: 'trHeight',
372
+ isHeader: 'tblHeader',
373
+ cellSpacing: 'tblCellSpacing',
374
+ },
375
+ tableCellPropertiesChange: {
376
+ width: 'tcW',
377
+ borders: 'tcBorders',
378
+ shading: 'shd',
379
+ verticalAlignment: 'vAlign',
380
+ margins: 'tcMar',
381
+ },
382
+ sectionPropertiesChange: {
383
+ pageSize: 'pgSz',
384
+ margins: 'pgMar',
385
+ columns: 'cols',
386
+ pageNumbering: 'pgNumType',
387
+ },
388
+ };
389
+ static PROPERTY_CHILD_ORDER = {
390
+ 'w:pPr': [
391
+ 'w:pStyle',
392
+ 'w:keepNext',
393
+ 'w:keepLines',
394
+ 'w:pageBreakBefore',
395
+ 'w:framePr',
396
+ 'w:widowControl',
397
+ 'w:numPr',
398
+ 'w:suppressLineNumbers',
399
+ 'w:pBdr',
400
+ 'w:shd',
401
+ 'w:tabs',
402
+ 'w:suppressAutoHyphens',
403
+ 'w:kinsoku',
404
+ 'w:wordWrap',
405
+ 'w:overflowPunct',
406
+ 'w:topLinePunct',
407
+ 'w:autoSpaceDE',
408
+ 'w:autoSpaceDN',
409
+ 'w:bidi',
410
+ 'w:adjustRightInd',
411
+ 'w:snapToGrid',
412
+ 'w:spacing',
413
+ 'w:ind',
414
+ 'w:contextualSpacing',
415
+ 'w:mirrorIndents',
416
+ 'w:suppressOverlap',
417
+ 'w:jc',
418
+ 'w:textDirection',
419
+ 'w:textAlignment',
420
+ 'w:textboxTightWrap',
421
+ 'w:outlineLvl',
422
+ ],
423
+ 'w:tblPr': [
424
+ 'w:tblStyle',
425
+ 'w:tblpPr',
426
+ 'w:tblOverlap',
427
+ 'w:bidiVisual',
428
+ 'w:tblStyleRowBandSize',
429
+ 'w:tblStyleColBandSize',
430
+ 'w:tblW',
431
+ 'w:jc',
432
+ 'w:tblCellSpacing',
433
+ 'w:tblInd',
434
+ 'w:tblBorders',
435
+ 'w:shd',
436
+ 'w:tblLayout',
437
+ 'w:tblCellMar',
438
+ 'w:tblLook',
439
+ 'w:tblCaption',
440
+ 'w:tblDescription',
441
+ ],
442
+ 'w:tblPrEx': [
443
+ 'w:tblW',
444
+ 'w:jc',
445
+ 'w:tblCellSpacing',
446
+ 'w:tblInd',
447
+ 'w:tblBorders',
448
+ 'w:shd',
449
+ 'w:tblLayout',
450
+ 'w:tblCellMar',
451
+ 'w:tblLook',
452
+ ],
453
+ 'w:trPr': [
454
+ 'w:cnfStyle',
455
+ 'w:divId',
456
+ 'w:gridBefore',
457
+ 'w:gridAfter',
458
+ 'w:wBefore',
459
+ 'w:wAfter',
460
+ 'w:cantSplit',
461
+ 'w:trHeight',
462
+ 'w:tblHeader',
463
+ 'w:tblCellSpacing',
464
+ 'w:jc',
465
+ 'w:hidden',
466
+ ],
467
+ 'w:tcPr': [
468
+ 'w:cnfStyle',
469
+ 'w:tcW',
470
+ 'w:gridSpan',
471
+ 'w:hMerge',
472
+ 'w:vMerge',
473
+ 'w:tcBorders',
474
+ 'w:shd',
475
+ 'w:noWrap',
476
+ 'w:tcMar',
477
+ 'w:textDirection',
478
+ 'w:tcFitText',
479
+ 'w:vAlign',
480
+ 'w:hideMark',
481
+ ],
482
+ 'w:sectPr': [
483
+ 'w:headerReference',
484
+ 'w:footerReference',
485
+ 'w:footnotePr',
486
+ 'w:endnotePr',
487
+ 'w:type',
488
+ 'w:pgSz',
489
+ 'w:pgMar',
490
+ 'w:paperSrc',
491
+ 'w:pgBorders',
492
+ 'w:lnNumType',
493
+ 'w:pgNumType',
494
+ 'w:cols',
495
+ 'w:formProt',
496
+ 'w:vAlign',
497
+ 'w:noEndnote',
498
+ 'w:titlePg',
499
+ 'w:textDirection',
500
+ 'w:bidi',
501
+ 'w:rtlGutter',
502
+ 'w:docGrid',
503
+ ],
504
+ 'w:numPr': ['w:ilvl', 'w:numId', 'w:numberingChange', 'w:ins'],
505
+ };
506
+ createPreviousPropertyXml(name, value) {
507
+ if (typeof value === 'boolean') {
508
+ return { name, attributes: value ? {} : { 'w:val': '0' }, children: [] };
509
+ }
510
+ if (typeof value === 'string' || typeof value === 'number') {
511
+ return { name, attributes: { 'w:val': value.toString() }, children: [] };
512
+ }
513
+ if (value && typeof value === 'object') {
514
+ return this.createObjectPropertyXml(name, value);
515
+ }
516
+ return null;
517
+ }
518
+ createObjectPropertyXml(name, value) {
519
+ switch (name) {
520
+ case 'w:spacing':
521
+ return {
522
+ name,
523
+ attributes: XMLBuilder_js_1.XMLBuilder.buildAttributes({
524
+ 'w:before': value.before,
525
+ 'w:beforeLines': value.beforeLines,
526
+ 'w:beforeAutospacing': value.beforeAutospacing === undefined
527
+ ? undefined
528
+ : value.beforeAutospacing
529
+ ? '1'
530
+ : '0',
531
+ 'w:after': value.after,
532
+ 'w:afterLines': value.afterLines,
533
+ 'w:afterAutospacing': value.afterAutospacing === undefined ? undefined : value.afterAutospacing ? '1' : '0',
534
+ 'w:line': value.line,
535
+ 'w:lineRule': value.lineRule,
536
+ }),
537
+ children: [],
538
+ };
539
+ case 'w:ind':
540
+ return {
541
+ name,
542
+ attributes: XMLBuilder_js_1.XMLBuilder.buildAttributes({
543
+ 'w:start': value.start,
544
+ 'w:end': value.end,
545
+ 'w:left': value.left,
546
+ 'w:leftChars': value.leftChars,
547
+ 'w:right': value.right,
548
+ 'w:rightChars': value.rightChars,
549
+ 'w:firstLine': value.firstLine,
550
+ 'w:firstLineChars': value.firstLineChars,
551
+ 'w:hanging': value.hanging,
552
+ 'w:hangingChars': value.hangingChars,
553
+ }),
554
+ children: [],
555
+ };
556
+ case 'w:numPr': {
557
+ const numPrChildren = [];
558
+ const level = value.level ?? value.ilvl;
559
+ const numId = value.numId ?? value.id;
560
+ if (level !== undefined) {
561
+ numPrChildren.push({
562
+ name: 'w:ilvl',
563
+ attributes: { 'w:val': String(level) },
564
+ children: [],
565
+ });
566
+ }
567
+ if (numId !== undefined) {
568
+ numPrChildren.push({
569
+ name: 'w:numId',
570
+ attributes: { 'w:val': String(numId) },
571
+ children: [],
572
+ });
573
+ }
574
+ return numPrChildren.length > 0 ? { name, attributes: {}, children: numPrChildren } : null;
575
+ }
576
+ case 'w:shd':
577
+ return XMLBuilder_js_1.XMLBuilder.createShading(value);
578
+ case 'w:pBdr':
579
+ case 'w:tblBorders':
580
+ case 'w:tcBorders': {
581
+ const sides = name === 'w:pBdr'
582
+ ? ['top', 'left', 'bottom', 'right', 'between', 'bar']
583
+ : ['top', 'left', 'bottom', 'right', 'insideH', 'insideV'];
584
+ const borderChildren = [];
585
+ for (const side of sides) {
586
+ if (value[side]) {
587
+ borderChildren.push(XMLBuilder_js_1.XMLBuilder.createBorder(side, value[side]));
588
+ }
589
+ }
590
+ return borderChildren.length > 0
591
+ ? { name, attributes: {}, children: borderChildren }
592
+ : null;
593
+ }
594
+ case 'w:tblW':
595
+ case 'w:tcW':
596
+ case 'w:tblInd':
597
+ case 'w:tblCellSpacing':
598
+ return {
599
+ name,
600
+ attributes: XMLBuilder_js_1.XMLBuilder.buildAttributes({
601
+ 'w:w': value.w ?? value.width ?? value.value,
602
+ 'w:type': value.type ?? 'dxa',
603
+ }),
604
+ children: [],
605
+ };
606
+ case 'w:trHeight':
607
+ return {
608
+ name,
609
+ attributes: XMLBuilder_js_1.XMLBuilder.buildAttributes({
610
+ 'w:val': value.value ?? value.val ?? value.height,
611
+ 'w:hRule': value.rule ?? value.hRule,
612
+ }),
613
+ children: [],
614
+ };
615
+ case 'w:tcMar':
616
+ case 'w:tblCellMar':
617
+ return XMLBuilder_js_1.XMLBuilder.createMargins(name.slice(2), value);
618
+ case 'w:pgSz':
619
+ return {
620
+ name,
621
+ attributes: XMLBuilder_js_1.XMLBuilder.buildAttributes({
622
+ 'w:w': value.width ?? value.w,
623
+ 'w:h': value.height ?? value.h,
624
+ 'w:orient': value.orientation ?? value.orient,
625
+ }),
626
+ children: [],
627
+ };
628
+ case 'w:pgMar':
629
+ return {
630
+ name,
631
+ attributes: XMLBuilder_js_1.XMLBuilder.buildAttributes({
632
+ 'w:top': value.top,
633
+ 'w:right': value.right,
634
+ 'w:bottom': value.bottom,
635
+ 'w:left': value.left,
636
+ 'w:header': value.header,
637
+ 'w:footer': value.footer,
638
+ 'w:gutter': value.gutter,
639
+ }),
640
+ children: [],
641
+ };
642
+ default:
643
+ return null;
644
+ }
645
+ }
306
646
  createDeletedRunXml(run) {
307
647
  const runXml = run.toXML();
308
648
  const deletedTextElement = this.isFieldInstruction ? 'w:delInstrText' : 'w:delText';