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.
Files changed (372) hide show
  1. package/README.md +759 -754
  2. package/dist/constants/legacyCompatFlags.js +1 -1
  3. package/dist/constants/legacyCompatFlags.js.map +1 -1
  4. package/dist/constants/limits.js.map +1 -1
  5. package/dist/core/Document.d.ts +51 -50
  6. package/dist/core/Document.d.ts.map +1 -1
  7. package/dist/core/Document.js +486 -471
  8. package/dist/core/Document.js.map +1 -1
  9. package/dist/core/DocumentContent.d.ts +9 -9
  10. package/dist/core/DocumentContent.d.ts.map +1 -1
  11. package/dist/core/DocumentContent.js +1 -1
  12. package/dist/core/DocumentContent.js.map +1 -1
  13. package/dist/core/DocumentGenerator.d.ts +11 -11
  14. package/dist/core/DocumentGenerator.d.ts.map +1 -1
  15. package/dist/core/DocumentGenerator.js +251 -251
  16. package/dist/core/DocumentGenerator.js.map +1 -1
  17. package/dist/core/DocumentIdManager.js.map +1 -1
  18. package/dist/core/DocumentParser.d.ts +15 -15
  19. package/dist/core/DocumentParser.d.ts.map +1 -1
  20. package/dist/core/DocumentParser.js +2123 -2155
  21. package/dist/core/DocumentParser.js.map +1 -1
  22. package/dist/core/DocumentValidator.d.ts.map +1 -1
  23. package/dist/core/DocumentValidator.js +2 -5
  24. package/dist/core/DocumentValidator.js.map +1 -1
  25. package/dist/core/Relationship.js.map +1 -1
  26. package/dist/core/RelationshipManager.d.ts.map +1 -1
  27. package/dist/core/RelationshipManager.js +3 -3
  28. package/dist/core/RelationshipManager.js.map +1 -1
  29. package/dist/elements/AlternateContent.js.map +1 -1
  30. package/dist/elements/Bookmark.d.ts.map +1 -1
  31. package/dist/elements/Bookmark.js +3 -1
  32. package/dist/elements/Bookmark.js.map +1 -1
  33. package/dist/elements/BookmarkManager.d.ts.map +1 -1
  34. package/dist/elements/BookmarkManager.js.map +1 -1
  35. package/dist/elements/Comment.d.ts.map +1 -1
  36. package/dist/elements/Comment.js +9 -6
  37. package/dist/elements/Comment.js.map +1 -1
  38. package/dist/elements/CommentManager.d.ts.map +1 -1
  39. package/dist/elements/CommentManager.js +18 -17
  40. package/dist/elements/CommentManager.js.map +1 -1
  41. package/dist/elements/CommonTypes.d.ts +21 -21
  42. package/dist/elements/CommonTypes.d.ts.map +1 -1
  43. package/dist/elements/CommonTypes.js +56 -56
  44. package/dist/elements/CommonTypes.js.map +1 -1
  45. package/dist/elements/CustomXml.js.map +1 -1
  46. package/dist/elements/Endnote.d.ts.map +1 -1
  47. package/dist/elements/Endnote.js +6 -6
  48. package/dist/elements/Endnote.js.map +1 -1
  49. package/dist/elements/EndnoteManager.d.ts.map +1 -1
  50. package/dist/elements/EndnoteManager.js +6 -7
  51. package/dist/elements/EndnoteManager.js.map +1 -1
  52. package/dist/elements/Field.d.ts.map +1 -1
  53. package/dist/elements/Field.js +82 -25
  54. package/dist/elements/Field.js.map +1 -1
  55. package/dist/elements/FieldHelpers.d.ts.map +1 -1
  56. package/dist/elements/FieldHelpers.js.map +1 -1
  57. package/dist/elements/FontManager.d.ts.map +1 -1
  58. package/dist/elements/FontManager.js +1 -1
  59. package/dist/elements/FontManager.js.map +1 -1
  60. package/dist/elements/Footer.js +2 -2
  61. package/dist/elements/Footer.js.map +1 -1
  62. package/dist/elements/Footnote.d.ts.map +1 -1
  63. package/dist/elements/Footnote.js +6 -6
  64. package/dist/elements/Footnote.js.map +1 -1
  65. package/dist/elements/FootnoteManager.d.ts.map +1 -1
  66. package/dist/elements/FootnoteManager.js +6 -7
  67. package/dist/elements/FootnoteManager.js.map +1 -1
  68. package/dist/elements/Header.js +2 -2
  69. package/dist/elements/Header.js.map +1 -1
  70. package/dist/elements/HeaderFooterManager.js.map +1 -1
  71. package/dist/elements/Hyperlink.d.ts +5 -3
  72. package/dist/elements/Hyperlink.d.ts.map +1 -1
  73. package/dist/elements/Hyperlink.js +134 -76
  74. package/dist/elements/Hyperlink.js.map +1 -1
  75. package/dist/elements/Image.d.ts.map +1 -1
  76. package/dist/elements/Image.js +238 -106
  77. package/dist/elements/Image.js.map +1 -1
  78. package/dist/elements/ImageManager.d.ts.map +1 -1
  79. package/dist/elements/ImageManager.js +1 -1
  80. package/dist/elements/ImageManager.js.map +1 -1
  81. package/dist/elements/ImageRun.js +1 -1
  82. package/dist/elements/ImageRun.js.map +1 -1
  83. package/dist/elements/MathElement.js.map +1 -1
  84. package/dist/elements/Paragraph.d.ts +24 -24
  85. package/dist/elements/Paragraph.d.ts.map +1 -1
  86. package/dist/elements/Paragraph.js +181 -188
  87. package/dist/elements/Paragraph.js.map +1 -1
  88. package/dist/elements/PreservedElement.js.map +1 -1
  89. package/dist/elements/PropertyChangeTypes.d.ts.map +1 -1
  90. package/dist/elements/PropertyChangeTypes.js +6 -6
  91. package/dist/elements/PropertyChangeTypes.js.map +1 -1
  92. package/dist/elements/RangeMarker.d.ts.map +1 -1
  93. package/dist/elements/RangeMarker.js.map +1 -1
  94. package/dist/elements/Revision.d.ts.map +1 -1
  95. package/dist/elements/Revision.js +4 -5
  96. package/dist/elements/Revision.js.map +1 -1
  97. package/dist/elements/RevisionContent.js.map +1 -1
  98. package/dist/elements/RevisionManager.d.ts.map +1 -1
  99. package/dist/elements/RevisionManager.js +40 -48
  100. package/dist/elements/RevisionManager.js.map +1 -1
  101. package/dist/elements/Run.d.ts +16 -16
  102. package/dist/elements/Run.d.ts.map +1 -1
  103. package/dist/elements/Run.js +256 -238
  104. package/dist/elements/Run.js.map +1 -1
  105. package/dist/elements/Section.d.ts.map +1 -1
  106. package/dist/elements/Section.js +36 -11
  107. package/dist/elements/Section.js.map +1 -1
  108. package/dist/elements/Shape.d.ts.map +1 -1
  109. package/dist/elements/Shape.js.map +1 -1
  110. package/dist/elements/StructuredDocumentTag.d.ts +6 -6
  111. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
  112. package/dist/elements/StructuredDocumentTag.js +99 -104
  113. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  114. package/dist/elements/Table.d.ts +11 -11
  115. package/dist/elements/Table.d.ts.map +1 -1
  116. package/dist/elements/Table.js +102 -107
  117. package/dist/elements/Table.js.map +1 -1
  118. package/dist/elements/TableCell.d.ts +10 -10
  119. package/dist/elements/TableCell.d.ts.map +1 -1
  120. package/dist/elements/TableCell.js +105 -106
  121. package/dist/elements/TableCell.js.map +1 -1
  122. package/dist/elements/TableGridChange.d.ts.map +1 -1
  123. package/dist/elements/TableGridChange.js.map +1 -1
  124. package/dist/elements/TableOfContents.d.ts.map +1 -1
  125. package/dist/elements/TableOfContents.js +4 -4
  126. package/dist/elements/TableOfContents.js.map +1 -1
  127. package/dist/elements/TableOfContentsElement.js.map +1 -1
  128. package/dist/elements/TableRow.d.ts.map +1 -1
  129. package/dist/elements/TableRow.js +13 -6
  130. package/dist/elements/TableRow.js.map +1 -1
  131. package/dist/elements/TextBox.d.ts.map +1 -1
  132. package/dist/elements/TextBox.js +3 -5
  133. package/dist/elements/TextBox.js.map +1 -1
  134. package/dist/formatting/AbstractNumbering.d.ts +4 -4
  135. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  136. package/dist/formatting/AbstractNumbering.js +54 -49
  137. package/dist/formatting/AbstractNumbering.js.map +1 -1
  138. package/dist/formatting/NumberingInstance.d.ts.map +1 -1
  139. package/dist/formatting/NumberingInstance.js +1 -3
  140. package/dist/formatting/NumberingInstance.js.map +1 -1
  141. package/dist/formatting/NumberingLevel.d.ts +5 -5
  142. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  143. package/dist/formatting/NumberingLevel.js +119 -125
  144. package/dist/formatting/NumberingLevel.js.map +1 -1
  145. package/dist/formatting/NumberingManager.d.ts +1 -0
  146. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  147. package/dist/formatting/NumberingManager.js +27 -9
  148. package/dist/formatting/NumberingManager.js.map +1 -1
  149. package/dist/formatting/Style.d.ts +11 -11
  150. package/dist/formatting/Style.d.ts.map +1 -1
  151. package/dist/formatting/Style.js +219 -247
  152. package/dist/formatting/Style.js.map +1 -1
  153. package/dist/formatting/StylesManager.d.ts +2 -2
  154. package/dist/formatting/StylesManager.d.ts.map +1 -1
  155. package/dist/formatting/StylesManager.js +96 -102
  156. package/dist/formatting/StylesManager.js.map +1 -1
  157. package/dist/helpers/CleanupHelper.d.ts +1 -1
  158. package/dist/helpers/CleanupHelper.d.ts.map +1 -1
  159. package/dist/helpers/CleanupHelper.js +6 -6
  160. package/dist/helpers/CleanupHelper.js.map +1 -1
  161. package/dist/images/ImageOptimizer.js +7 -7
  162. package/dist/images/ImageOptimizer.js.map +1 -1
  163. package/dist/index.d.ts +9 -9
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.js.map +1 -1
  166. package/dist/managers/DrawingManager.js.map +1 -1
  167. package/dist/tracking/DocumentTrackingContext.d.ts.map +1 -1
  168. package/dist/tracking/DocumentTrackingContext.js +23 -7
  169. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  170. package/dist/tracking/TrackingContext.d.ts.map +1 -1
  171. package/dist/tracking/TrackingContext.js.map +1 -1
  172. package/dist/types/compatibility-types.js.map +1 -1
  173. package/dist/types/formatting.js.map +1 -1
  174. package/dist/types/list-types.d.ts +6 -6
  175. package/dist/types/list-types.js.map +1 -1
  176. package/dist/types/settings-types.js.map +1 -1
  177. package/dist/types/styleConfig.d.ts +2 -2
  178. package/dist/types/styleConfig.js.map +1 -1
  179. package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
  180. package/dist/utils/ChangelogGenerator.js +97 -101
  181. package/dist/utils/ChangelogGenerator.js.map +1 -1
  182. package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
  183. package/dist/utils/CompatibilityUpgrader.js +1 -1
  184. package/dist/utils/CompatibilityUpgrader.js.map +1 -1
  185. package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
  186. package/dist/utils/InMemoryRevisionAcceptor.js +1 -6
  187. package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
  188. package/dist/utils/MoveOperationHelper.d.ts.map +1 -1
  189. package/dist/utils/MoveOperationHelper.js +1 -1
  190. package/dist/utils/MoveOperationHelper.js.map +1 -1
  191. package/dist/utils/RevisionAwareProcessor.d.ts.map +1 -1
  192. package/dist/utils/RevisionAwareProcessor.js +2 -4
  193. package/dist/utils/RevisionAwareProcessor.js.map +1 -1
  194. package/dist/utils/RevisionWalker.d.ts.map +1 -1
  195. package/dist/utils/RevisionWalker.js +4 -12
  196. package/dist/utils/RevisionWalker.js.map +1 -1
  197. package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
  198. package/dist/utils/SelectiveRevisionAcceptor.js +2 -6
  199. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  200. package/dist/utils/ShadingResolver.d.ts.map +1 -1
  201. package/dist/utils/ShadingResolver.js +1 -1
  202. package/dist/utils/ShadingResolver.js.map +1 -1
  203. package/dist/utils/acceptRevisions.d.ts.map +1 -1
  204. package/dist/utils/acceptRevisions.js +23 -12
  205. package/dist/utils/acceptRevisions.js.map +1 -1
  206. package/dist/utils/cnfStyleDecoder.d.ts +1 -1
  207. package/dist/utils/cnfStyleDecoder.d.ts.map +1 -1
  208. package/dist/utils/cnfStyleDecoder.js +40 -40
  209. package/dist/utils/cnfStyleDecoder.js.map +1 -1
  210. package/dist/utils/corruptionDetection.d.ts.map +1 -1
  211. package/dist/utils/corruptionDetection.js.map +1 -1
  212. package/dist/utils/dateFormatting.js.map +1 -1
  213. package/dist/utils/deepClone.js +1 -1
  214. package/dist/utils/deepClone.js.map +1 -1
  215. package/dist/utils/diagnostics.d.ts.map +1 -1
  216. package/dist/utils/diagnostics.js +1 -1
  217. package/dist/utils/diagnostics.js.map +1 -1
  218. package/dist/utils/errorHandling.js.map +1 -1
  219. package/dist/utils/formatting.d.ts.map +1 -1
  220. package/dist/utils/formatting.js +10 -2
  221. package/dist/utils/formatting.js.map +1 -1
  222. package/dist/utils/list-detection.d.ts +2 -2
  223. package/dist/utils/list-detection.d.ts.map +1 -1
  224. package/dist/utils/list-detection.js +21 -23
  225. package/dist/utils/list-detection.js.map +1 -1
  226. package/dist/utils/logger.d.ts.map +1 -1
  227. package/dist/utils/logger.js +12 -7
  228. package/dist/utils/logger.js.map +1 -1
  229. package/dist/utils/parsingHelpers.js.map +1 -1
  230. package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
  231. package/dist/utils/stripTrackedChanges.js +3 -3
  232. package/dist/utils/stripTrackedChanges.js.map +1 -1
  233. package/dist/utils/textDiff.d.ts +1 -1
  234. package/dist/utils/textDiff.js +8 -8
  235. package/dist/utils/textDiff.js.map +1 -1
  236. package/dist/utils/units.js.map +1 -1
  237. package/dist/utils/validation.d.ts.map +1 -1
  238. package/dist/utils/validation.js +24 -7
  239. package/dist/utils/validation.js.map +1 -1
  240. package/dist/utils/xmlSanitization.d.ts.map +1 -1
  241. package/dist/utils/xmlSanitization.js +3 -3
  242. package/dist/utils/xmlSanitization.js.map +1 -1
  243. package/dist/validation/RevisionAutoFixer.d.ts.map +1 -1
  244. package/dist/validation/RevisionAutoFixer.js +5 -5
  245. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  246. package/dist/validation/RevisionValidator.d.ts.map +1 -1
  247. package/dist/validation/RevisionValidator.js +7 -9
  248. package/dist/validation/RevisionValidator.js.map +1 -1
  249. package/dist/validation/ValidationRules.js +3 -3
  250. package/dist/validation/ValidationRules.js.map +1 -1
  251. package/dist/validation/index.js.map +1 -1
  252. package/dist/xml/XMLBuilder.d.ts +1 -1
  253. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  254. package/dist/xml/XMLBuilder.js +98 -100
  255. package/dist/xml/XMLBuilder.js.map +1 -1
  256. package/dist/xml/XMLParser.d.ts.map +1 -1
  257. package/dist/xml/XMLParser.js +61 -66
  258. package/dist/xml/XMLParser.js.map +1 -1
  259. package/dist/zip/ZipHandler.d.ts.map +1 -1
  260. package/dist/zip/ZipHandler.js.map +1 -1
  261. package/dist/zip/ZipReader.d.ts.map +1 -1
  262. package/dist/zip/ZipReader.js +1 -3
  263. package/dist/zip/ZipReader.js.map +1 -1
  264. package/dist/zip/ZipWriter.d.ts +1 -1
  265. package/dist/zip/ZipWriter.d.ts.map +1 -1
  266. package/dist/zip/ZipWriter.js +28 -36
  267. package/dist/zip/ZipWriter.js.map +1 -1
  268. package/dist/zip/types.js +1 -1
  269. package/dist/zip/types.js.map +1 -1
  270. package/package.json +92 -92
  271. package/src/__tests__/helper-methods.test.ts +512 -512
  272. package/src/constants/legacyCompatFlags.ts +138 -138
  273. package/src/constants/limits.ts +50 -50
  274. package/src/core/Document.ts +1010 -1145
  275. package/src/core/DocumentContent.ts +461 -467
  276. package/src/core/DocumentGenerator.ts +1133 -1104
  277. package/src/core/DocumentIdManager.ts +158 -158
  278. package/src/core/DocumentParser.ts +2347 -2716
  279. package/src/core/DocumentValidator.ts +363 -372
  280. package/src/core/Relationship.ts +367 -367
  281. package/src/core/RelationshipManager.ts +429 -428
  282. package/src/elements/AlternateContent.ts +42 -42
  283. package/src/elements/Bookmark.ts +212 -210
  284. package/src/elements/BookmarkManager.ts +247 -250
  285. package/src/elements/Comment.ts +356 -359
  286. package/src/elements/CommentManager.ts +499 -502
  287. package/src/elements/CommonTypes.ts +524 -549
  288. package/src/elements/CustomXml.ts +36 -36
  289. package/src/elements/Endnote.ts +221 -217
  290. package/src/elements/EndnoteManager.ts +246 -249
  291. package/src/elements/Field.ts +1292 -1233
  292. package/src/elements/FieldHelpers.ts +329 -333
  293. package/src/elements/FontManager.ts +336 -339
  294. package/src/elements/Footer.ts +269 -269
  295. package/src/elements/Footnote.ts +221 -217
  296. package/src/elements/FootnoteManager.ts +246 -249
  297. package/src/elements/Header.ts +269 -269
  298. package/src/elements/HeaderFooterManager.ts +219 -219
  299. package/src/elements/Hyperlink.ts +1288 -1193
  300. package/src/elements/Image.ts +1982 -1756
  301. package/src/elements/ImageManager.ts +437 -432
  302. package/src/elements/ImageRun.ts +59 -59
  303. package/src/elements/MathElement.ts +65 -65
  304. package/src/elements/Paragraph.ts +4347 -4287
  305. package/src/elements/PreservedElement.ts +53 -53
  306. package/src/elements/PropertyChangeTypes.ts +458 -442
  307. package/src/elements/RangeMarker.ts +382 -400
  308. package/src/elements/Revision.ts +1198 -1217
  309. package/src/elements/RevisionContent.ts +73 -73
  310. package/src/elements/RevisionManager.ts +1070 -1070
  311. package/src/elements/Run.ts +3103 -3073
  312. package/src/elements/Section.ts +1521 -1421
  313. package/src/elements/Shape.ts +884 -873
  314. package/src/elements/StructuredDocumentTag.ts +1176 -1207
  315. package/src/elements/Table.ts +2468 -2524
  316. package/src/elements/TableCell.ts +1617 -1621
  317. package/src/elements/TableGridChange.ts +149 -151
  318. package/src/elements/TableOfContents.ts +701 -691
  319. package/src/elements/TableOfContentsElement.ts +89 -89
  320. package/src/elements/TableRow.ts +960 -929
  321. package/src/elements/TextBox.ts +766 -768
  322. package/src/formatting/AbstractNumbering.ts +580 -579
  323. package/src/formatting/NumberingInstance.ts +295 -299
  324. package/src/formatting/NumberingLevel.ts +981 -1040
  325. package/src/formatting/NumberingManager.ts +875 -827
  326. package/src/formatting/Style.ts +1785 -1879
  327. package/src/formatting/StylesManager.ts +1090 -1130
  328. package/src/helpers/CleanupHelper.ts +524 -524
  329. package/src/images/ImageOptimizer.ts +274 -274
  330. package/src/index.ts +559 -554
  331. package/src/managers/DrawingManager.ts +319 -319
  332. package/src/tracking/DocumentTrackingContext.ts +687 -674
  333. package/src/tracking/TrackingContext.ts +175 -173
  334. package/src/types/compatibility-types.ts +49 -49
  335. package/src/types/formatting.ts +210 -210
  336. package/src/types/list-types.ts +14 -14
  337. package/src/types/settings-types.ts +59 -59
  338. package/src/types/styleConfig.ts +189 -189
  339. package/src/utils/ChangelogGenerator.ts +1583 -1581
  340. package/src/utils/CompatibilityUpgrader.ts +235 -237
  341. package/src/utils/InMemoryRevisionAcceptor.ts +691 -696
  342. package/src/utils/MoveOperationHelper.ts +233 -238
  343. package/src/utils/RevisionAwareProcessor.ts +518 -526
  344. package/src/utils/RevisionWalker.ts +427 -457
  345. package/src/utils/SelectiveRevisionAcceptor.ts +662 -683
  346. package/src/utils/ShadingResolver.ts +105 -107
  347. package/src/utils/acceptRevisions.ts +723 -714
  348. package/src/utils/cnfStyleDecoder.ts +212 -217
  349. package/src/utils/corruptionDetection.ts +346 -345
  350. package/src/utils/dateFormatting.ts +20 -20
  351. package/src/utils/deepClone.ts +77 -78
  352. package/src/utils/diagnostics.ts +125 -129
  353. package/src/utils/errorHandling.ts +80 -80
  354. package/src/utils/formatting.ts +220 -213
  355. package/src/utils/list-detection.ts +32 -42
  356. package/src/utils/logger.ts +412 -404
  357. package/src/utils/parsingHelpers.ts +190 -190
  358. package/src/utils/stripTrackedChanges.ts +356 -353
  359. package/src/utils/textDiff.ts +100 -100
  360. package/src/utils/units.ts +421 -421
  361. package/src/utils/validation.ts +553 -542
  362. package/src/utils/xmlSanitization.ts +179 -182
  363. package/src/validation/RevisionAutoFixer.ts +541 -542
  364. package/src/validation/RevisionValidator.ts +470 -460
  365. package/src/validation/ValidationRules.ts +338 -338
  366. package/src/validation/index.ts +30 -30
  367. package/src/xml/XMLBuilder.ts +857 -871
  368. package/src/xml/XMLParser.ts +877 -919
  369. package/src/zip/ZipHandler.ts +629 -637
  370. package/src/zip/ZipReader.ts +295 -299
  371. package/src/zip/ZipWriter.ts +374 -390
  372. package/src/zip/types.ts +116 -116
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { Document, DocumentProperties, DocumentOptions, DocumentLoadOptions, DocumentPart } from './core/Document';
1
+ export { Document, DocumentProperties, DocumentOptions, DocumentLoadOptions, DocumentPart, } from './core/Document';
2
2
  export { Paragraph, ParagraphAlignment, ParagraphFormatting, ParagraphContent, FieldLike, isRun, isField, isSimpleField, isComplexField, isHyperlink, isRevision, isRangeMarker, isShape, isTextBox, } from './elements/Paragraph';
3
3
  export { Run, RunFormatting, ThemeColorValue } from './elements/Run';
4
4
  export { Section, PageOrientation, SectionType, PageNumberFormat, PageSize, Margins, Columns, PageNumbering, SectionProperties, LineNumbering, LineNumberingRestart, } from './elements/Section';
@@ -20,7 +20,7 @@ export { Footnote, FootnoteType, FootnoteProperties } from './elements/Footnote'
20
20
  export { Endnote, EndnoteType, EndnoteProperties } from './elements/Endnote';
21
21
  export { Field, FieldType, FieldProperties, ComplexField, ComplexFieldProperties, FieldCharType, TOCFieldOptions, createTOCField, } from './elements/Field';
22
22
  export { createNestedIFMergeField, createMergeField, createRefField, createIFField, createNestedField, parseHyperlinkInstruction, buildHyperlinkInstruction, isHyperlinkInstruction, ParsedHyperlinkInstruction, } from './elements/FieldHelpers';
23
- export { StructuredDocumentTag, SDTProperties, SDTLockType, SDTContent, SDTPlaceholder, SDTDataBinding, ContentControlType } from './elements/StructuredDocumentTag';
23
+ export { StructuredDocumentTag, SDTProperties, SDTLockType, SDTContent, SDTPlaceholder, SDTDataBinding, ContentControlType, } from './elements/StructuredDocumentTag';
24
24
  export { TableOfContents, TOCProperties } from './elements/TableOfContents';
25
25
  export { TableOfContentsElement } from './elements/TableOfContentsElement';
26
26
  export { AlternateContent } from './elements/AlternateContent';
@@ -36,13 +36,13 @@ export { SelectiveRevisionAcceptor, SelectiveAcceptResult, } from './utils/Selec
36
36
  export { RevisionAwareProcessor, RevisionHandlingMode, RevisionProcessingOptions, SelectionCriteria, RevisionProcessingResult, ConflictInfo, ProcessingLogEntry, } from './utils/RevisionAwareProcessor';
37
37
  export { ChangelogGenerator, ChangeEntry, ChangeCategory, ChangeLocation, ChangelogOptions, ChangelogFormat, ConsolidatedChange, ChangelogSummary, } from './utils/ChangelogGenerator';
38
38
  export { Style, StyleType, StyleProperties } from './formatting/Style';
39
- export { StylesManager, ValidationResult, LatentStylesConfig, LatentStyleException } from './formatting/StylesManager';
39
+ export { StylesManager, ValidationResult, LatentStylesConfig, LatentStyleException, } from './formatting/StylesManager';
40
40
  export { NumberingLevel, NumberFormat, NumberAlignment, NumberingLevelProperties, WORD_NATIVE_BULLETS, WordNativeBullet, } from './formatting/NumberingLevel';
41
- export { AbstractNumbering, AbstractNumberingProperties, } from './formatting/AbstractNumbering';
42
- export { NumberingInstance, NumberingInstanceProperties, } from './formatting/NumberingInstance';
41
+ export { AbstractNumbering, AbstractNumberingProperties } from './formatting/AbstractNumbering';
42
+ export { NumberingInstance, NumberingInstanceProperties } from './formatting/NumberingInstance';
43
43
  export { NumberingManager, NumberingConsolidationOptions, NumberingConsolidationResult, } from './formatting/NumberingManager';
44
44
  export { StyleRunFormatting, StyleParagraphFormatting, Heading2TableOptions, StyleConfig, Heading2Config, ApplyCustomFormattingOptions, } from './types/styleConfig';
45
- export { FormatOptions, StyleApplyOptions, EmphasisType, ListPrefix, } from './types/formatting';
45
+ export { FormatOptions, StyleApplyOptions, EmphasisType, ListPrefix } from './types/formatting';
46
46
  export { RevisionManager, RevisionCategory, RevisionSummary } from './elements/RevisionManager';
47
47
  export { ImageManager } from './elements/ImageManager';
48
48
  export { BookmarkManager } from './elements/BookmarkManager';
@@ -51,11 +51,11 @@ export { FootnoteManager } from './elements/FootnoteManager';
51
51
  export { EndnoteManager } from './elements/EndnoteManager';
52
52
  export { HeaderFooterManager } from './elements/HeaderFooterManager';
53
53
  export { FontManager, FontFormat, FontEntry } from './elements/FontManager';
54
- export { DrawingManager, DrawingElement, DrawingType, PreservedDrawing } from './managers/DrawingManager';
54
+ export { DrawingManager, DrawingElement, DrawingType, PreservedDrawing, } from './managers/DrawingManager';
55
55
  export type { ImageOptimizationResult } from './images/ImageOptimizer';
56
56
  export { ShadingPattern, BasicShadingPattern, BorderStyle, ExtendedBorderStyle, FullBorderStyle, BorderDefinition, FourSidedBorders, TableBorderDefinitions, HorizontalAlignment, VerticalAlignment, PageVerticalAlignment, CellVerticalAlignment, ParagraphAlignment as CommonParagraphAlignment, TableAlignment as CommonTableAlignment, RowJustification, TextVerticalAlignment, TabAlignment, PositionAnchor, HorizontalAnchor, VerticalAnchor, TextDirection, SectionTextDirection, WidthType, ShadingConfig, buildShadingAttributes, TabLeader, TabStop, isShadingPattern, isBorderStyle, isHorizontalAlignment, isVerticalAlignment, isParagraphAlignment, isWidthType, DEFAULT_BORDER, NO_BORDER, } from './elements/CommonTypes';
57
57
  export { ListCategory, NumberFormat as ListNumberFormat, BulletFormat, ListDetectionResult, ListAnalysis, ListNormalizationOptions, ListNormalizationReport, IndentationLevel, } from './types/list-types';
58
- export { CompatibilityMode, CompatibilityInfo, CompatSetting, } from './types/compatibility-types';
58
+ export { CompatibilityMode, CompatibilityInfo, CompatSetting } from './types/compatibility-types';
59
59
  export { DocumentProtection, RevisionViewSettings, TrackChangesSettings, WebSettingsInfo, } from './types/settings-types';
60
60
  export { CompatibilityUpgrader, UpgradeReport } from './utils/CompatibilityUpgrader';
61
61
  export { LEGACY_COMPAT_ELEMENTS, LEGACY_COMPAT_ELEMENT_NAMES, MODERN_COMPAT_SETTINGS, MS_WORD_COMPAT_URI, } from './constants/legacyCompatFlags';
@@ -72,7 +72,7 @@ export { ILogger, LogLevel, LogEntry, ConsoleLogger, SilentLogger, CollectingLog
72
72
  export { RevisionWalker, RevisionWalkerOptions } from './utils/RevisionWalker';
73
73
  export { resolveCellShading } from './utils/ShadingResolver';
74
74
  export { decodeCnfStyle, getActiveConditionalsInPriorityOrder } from './utils/cnfStyleDecoder';
75
- export { CleanupHelper, CleanupOptions, CleanupReport, } from './helpers/CleanupHelper';
75
+ export { CleanupHelper, CleanupOptions, CleanupReport } from './helpers/CleanupHelper';
76
76
  export { ZipHandler } from './zip/ZipHandler';
77
77
  export { ZipReader } from './zip/ZipReader';
78
78
  export { ZipWriter } from './zip/ZipWriter';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * DocXML - DOCX Editing Framework\r\n * Main entry point\r\n */\r\n\r\n// =============================================================================\r\n// PUBLIC API — Core Document Classes\r\n// =============================================================================\r\n\r\nexport { Document, DocumentProperties, DocumentOptions, DocumentLoadOptions, DocumentPart } from './core/Document';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Document Elements\r\n// =============================================================================\r\n\r\nexport {\r\n Paragraph,\r\n ParagraphAlignment,\r\n ParagraphFormatting,\r\n ParagraphContent,\r\n FieldLike,\r\n isRun,\r\n isField,\r\n isSimpleField,\r\n isComplexField,\r\n isHyperlink,\r\n isRevision,\r\n isRangeMarker,\r\n isShape,\r\n isTextBox,\r\n} from './elements/Paragraph';\r\nexport { Run, RunFormatting, ThemeColorValue } from './elements/Run';\r\nexport {\r\n Section,\r\n PageOrientation,\r\n SectionType,\r\n PageNumberFormat,\r\n PageSize,\r\n Margins,\r\n Columns,\r\n PageNumbering,\r\n SectionProperties,\r\n LineNumbering,\r\n LineNumberingRestart,\r\n} from './elements/Section';\r\nexport {\r\n Table,\r\n TableAlignment,\r\n TableLayout,\r\n TableBorder,\r\n TableBorders,\r\n TableFormatting,\r\n} from './elements/Table';\r\nexport { TableRow, RowFormatting } from './elements/TableRow';\r\nexport {\r\n TableCell,\r\n CellBorder,\r\n CellBorders,\r\n CellShading,\r\n CellFormatting,\r\n} from './elements/TableCell';\r\nexport { TableGridChange, GridColumn, TableGridChangeProperties } from './elements/TableGridChange';\r\nexport {\r\n Image,\r\n ImageFormat,\r\n ImageProperties,\r\n ImageBorder,\r\n ImageEffects,\r\n PresetGeometry,\r\n BlipCompressionState,\r\n PicLockAttribute,\r\n PicNonVisualProperties,\r\n} from './elements/Image';\r\nexport { ImageRun } from './elements/ImageRun';\r\nexport { Shape, ShapeType, ShapeProperties, ShapeFill, ShapeOutline } from './elements/Shape';\r\nexport { TextBox, TextBoxProperties, TextBoxFill, TextBoxMargins } from './elements/TextBox';\r\nexport { Header, HeaderType, HeaderProperties } from './elements/Header';\r\nexport { Footer, FooterType, FooterProperties } from './elements/Footer';\r\nexport { Hyperlink, HyperlinkProperties } from './elements/Hyperlink';\r\nexport { Bookmark, BookmarkProperties } from './elements/Bookmark';\r\nexport { RangeMarker, RangeMarkerType, RangeMarkerProperties } from './elements/RangeMarker';\r\nexport { Comment, CommentProperties } from './elements/Comment';\r\nexport { Footnote, FootnoteType, FootnoteProperties } from './elements/Footnote';\r\nexport { Endnote, EndnoteType, EndnoteProperties } from './elements/Endnote';\r\nexport {\r\n Field,\r\n FieldType,\r\n FieldProperties,\r\n ComplexField,\r\n ComplexFieldProperties,\r\n FieldCharType,\r\n TOCFieldOptions,\r\n createTOCField,\r\n} from './elements/Field';\r\nexport {\r\n createNestedIFMergeField,\r\n createMergeField,\r\n createRefField,\r\n createIFField,\r\n createNestedField,\r\n parseHyperlinkInstruction,\r\n buildHyperlinkInstruction,\r\n isHyperlinkInstruction,\r\n ParsedHyperlinkInstruction,\r\n} from './elements/FieldHelpers';\r\nexport { StructuredDocumentTag, SDTProperties, SDTLockType, SDTContent, SDTPlaceholder, SDTDataBinding, ContentControlType } from './elements/StructuredDocumentTag';\r\nexport { TableOfContents, TOCProperties } from './elements/TableOfContents';\r\nexport { TableOfContentsElement } from './elements/TableOfContentsElement';\r\nexport { AlternateContent } from './elements/AlternateContent';\r\nexport { MathParagraph, MathExpression } from './elements/MathElement';\r\nexport { CustomXmlBlock } from './elements/CustomXml';\r\nexport { PreservedElement, PreservedElementContext } from './elements/PreservedElement';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Track Changes / Revisions\r\n// =============================================================================\r\n\r\nexport { Revision, RevisionType, RevisionProperties, FieldContext } from './elements/Revision';\r\nexport { RevisionContent, isRunContent, isHyperlinkContent } from './elements/RevisionContent';\r\nexport {\r\n RevisionLocation,\r\n RunPropertyChange,\r\n ParagraphPropertyChange,\r\n ParagraphFormattingPartial,\r\n ParagraphBorderDef,\r\n ParagraphBorders,\r\n ParagraphShading,\r\n TabStopDef,\r\n PropertyChangeBase,\r\n TablePropertyChange,\r\n TablePropertyChangeType,\r\n SectionPropertyChange,\r\n NumberingChange,\r\n AnyPropertyChange,\r\n isRunPropertyChange,\r\n isParagraphPropertyChange,\r\n isTablePropertyChange,\r\n isSectionPropertyChange,\r\n isNumberingChange,\r\n} from './elements/PropertyChangeTypes';\r\nexport {\r\n acceptRevisionsInMemory,\r\n AcceptRevisionsOptions,\r\n AcceptRevisionsResult,\r\n paragraphHasRevisions,\r\n getRevisionsFromParagraph,\r\n countRevisionsByType,\r\n stripRevisionsFromXml,\r\n} from './utils/InMemoryRevisionAcceptor';\r\nexport {\r\n MoveOperationHelper,\r\n MoveOperationOptions,\r\n MoveOperationResult,\r\n} from './utils/MoveOperationHelper';\r\nexport {\r\n SelectiveRevisionAcceptor,\r\n SelectiveAcceptResult,\r\n} from './utils/SelectiveRevisionAcceptor';\r\nexport {\r\n RevisionAwareProcessor,\r\n RevisionHandlingMode,\r\n RevisionProcessingOptions,\r\n SelectionCriteria,\r\n RevisionProcessingResult,\r\n ConflictInfo,\r\n ProcessingLogEntry,\r\n} from './utils/RevisionAwareProcessor';\r\nexport {\r\n ChangelogGenerator,\r\n ChangeEntry,\r\n ChangeCategory,\r\n ChangeLocation,\r\n ChangelogOptions,\r\n ChangelogFormat,\r\n ConsolidatedChange,\r\n ChangelogSummary,\r\n} from './utils/ChangelogGenerator';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Formatting / Styles / Numbering\r\n// =============================================================================\r\n\r\nexport { Style, StyleType, StyleProperties } from './formatting/Style';\r\nexport { StylesManager, ValidationResult, LatentStylesConfig, LatentStyleException } from './formatting/StylesManager';\r\nexport {\r\n NumberingLevel,\r\n NumberFormat,\r\n NumberAlignment,\r\n NumberingLevelProperties,\r\n WORD_NATIVE_BULLETS,\r\n WordNativeBullet,\r\n} from './formatting/NumberingLevel';\r\nexport {\r\n AbstractNumbering,\r\n AbstractNumberingProperties,\r\n} from './formatting/AbstractNumbering';\r\nexport {\r\n NumberingInstance,\r\n NumberingInstanceProperties,\r\n} from './formatting/NumberingInstance';\r\nexport {\r\n NumberingManager,\r\n NumberingConsolidationOptions,\r\n NumberingConsolidationResult,\r\n} from './formatting/NumberingManager';\r\nexport {\r\n StyleRunFormatting,\r\n StyleParagraphFormatting,\r\n Heading2TableOptions,\r\n StyleConfig,\r\n Heading2Config,\r\n ApplyCustomFormattingOptions,\r\n} from './types/styleConfig';\r\nexport {\r\n FormatOptions,\r\n StyleApplyOptions,\r\n EmphasisType,\r\n ListPrefix,\r\n} from './types/formatting';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Managers\r\n// =============================================================================\r\n\r\nexport { RevisionManager, RevisionCategory, RevisionSummary } from './elements/RevisionManager';\r\nexport { ImageManager } from './elements/ImageManager';\r\nexport { BookmarkManager } from './elements/BookmarkManager';\r\nexport { CommentManager } from './elements/CommentManager';\r\nexport { FootnoteManager } from './elements/FootnoteManager';\r\nexport { EndnoteManager } from './elements/EndnoteManager';\r\nexport { HeaderFooterManager } from './elements/HeaderFooterManager';\r\nexport { FontManager, FontFormat, FontEntry } from './elements/FontManager';\r\nexport { DrawingManager, DrawingElement, DrawingType, PreservedDrawing } from './managers/DrawingManager';\r\n\r\n// =============================================================================\r\n// PUBLIC API — Image Optimization\r\n// =============================================================================\r\n\r\nexport type { ImageOptimizationResult } from './images/ImageOptimizer';\r\n\r\n// =============================================================================\r\n// TYPES — Common / Shared Type Definitions\r\n// =============================================================================\r\n\r\nexport {\r\n ShadingPattern,\r\n BasicShadingPattern,\r\n BorderStyle,\r\n ExtendedBorderStyle,\r\n FullBorderStyle,\r\n BorderDefinition,\r\n FourSidedBorders,\r\n TableBorderDefinitions,\r\n HorizontalAlignment,\r\n VerticalAlignment,\r\n PageVerticalAlignment,\r\n CellVerticalAlignment,\r\n ParagraphAlignment as CommonParagraphAlignment,\r\n TableAlignment as CommonTableAlignment,\r\n RowJustification,\r\n TextVerticalAlignment,\r\n TabAlignment,\r\n PositionAnchor,\r\n HorizontalAnchor,\r\n VerticalAnchor,\r\n TextDirection,\r\n SectionTextDirection,\r\n WidthType,\r\n ShadingConfig,\r\n buildShadingAttributes,\r\n TabLeader,\r\n TabStop,\r\n isShadingPattern,\r\n isBorderStyle,\r\n isHorizontalAlignment,\r\n isVerticalAlignment,\r\n isParagraphAlignment,\r\n isWidthType,\r\n DEFAULT_BORDER,\r\n NO_BORDER,\r\n} from './elements/CommonTypes';\r\nexport {\r\n ListCategory,\r\n NumberFormat as ListNumberFormat,\r\n BulletFormat,\r\n ListDetectionResult,\r\n ListAnalysis,\r\n ListNormalizationOptions,\r\n ListNormalizationReport,\r\n IndentationLevel,\r\n} from './types/list-types';\r\n\r\nexport {\r\n CompatibilityMode,\r\n CompatibilityInfo,\r\n CompatSetting,\r\n} from './types/compatibility-types';\r\n\r\nexport {\r\n DocumentProtection,\r\n RevisionViewSettings,\r\n TrackChangesSettings,\r\n WebSettingsInfo,\r\n} from './types/settings-types';\r\n\r\n// =============================================================================\r\n// TYPES — Compatibility Upgrade\r\n// =============================================================================\r\n\r\nexport { CompatibilityUpgrader, UpgradeReport } from './utils/CompatibilityUpgrader';\r\nexport {\r\n LEGACY_COMPAT_ELEMENTS,\r\n LEGACY_COMPAT_ELEMENT_NAMES,\r\n MODERN_COMPAT_SETTINGS,\r\n MS_WORD_COMPAT_URI,\r\n} from './constants/legacyCompatFlags';\r\n\r\n// =============================================================================\r\n// UTILITIES — Unit Conversions\r\n// =============================================================================\r\n\r\nexport {\r\n STANDARD_DPI,\r\n UNITS,\r\n PAGE_SIZES,\r\n COMMON_MARGINS,\r\n twipsToPoints,\r\n twipsToInches,\r\n twipsToCm,\r\n twipsToEmus,\r\n emusToTwips,\r\n emusToInches,\r\n emusToCm,\r\n emusToPoints,\r\n emusToPixels,\r\n pointsToTwips,\r\n pointsToEmus,\r\n pointsToInches,\r\n pointsToCm,\r\n pointsToHalfPoints,\r\n halfPointsToPoints,\r\n inchesToTwips,\r\n inchesToEmus,\r\n inchesToPoints,\r\n inchesToCm,\r\n inchesToPixels,\r\n cmToTwips,\r\n cmToEmus,\r\n cmToInches,\r\n cmToPoints,\r\n cmToPixels,\r\n pixelsToEmus,\r\n pixelsToInches,\r\n pixelsToTwips,\r\n pixelsToCm,\r\n pixelsToPoints,\r\n} from './utils/units';\r\n\r\n// =============================================================================\r\n// UTILITIES — Validation, Corruption Detection, Error Handling\r\n// =============================================================================\r\n\r\nexport {\r\n validateDocxStructure,\r\n isBinaryFile,\r\n normalizePath,\r\n isValidZipBuffer,\r\n isTextContent,\r\n validateTwips,\r\n validateColor,\r\n validateHexColor,\r\n normalizeColor,\r\n validateNumberingId,\r\n validateLevel,\r\n validateAlignment,\r\n validateFontSize,\r\n validateNonEmptyString,\r\n validatePercentage,\r\n validateEmus,\r\n detectXmlInText,\r\n cleanXmlFromText,\r\n validateRunText,\r\n TextValidationResult,\r\n} from './utils/validation';\r\nexport {\r\n detectCorruptionInDocument,\r\n detectCorruptionInText,\r\n suggestFix,\r\n looksCorrupted,\r\n CorruptionReport,\r\n CorruptionLocation,\r\n CorruptionType,\r\n} from './utils/corruptionDetection';\r\nexport { isError, toError, wrapError, getErrorMessage } from './utils/errorHandling';\r\nexport {\r\n REVISION_RULES,\r\n ValidationSeverity,\r\n ValidationIssue,\r\n ValidationRule,\r\n ValidationOptions,\r\n AutoFixOptions,\r\n ValidationResult as RevisionValidationResult,\r\n FixAction,\r\n AutoFixResult,\r\n createIssueFromRule,\r\n getRuleByCode,\r\n getRulesBySeverity,\r\n getAutoFixableRules,\r\n RevisionValidator,\r\n RevisionAutoFixer,\r\n} from './validation';\r\n\r\n// =============================================================================\r\n// UTILITIES — Formatting, Parsing, Sanitization\r\n// =============================================================================\r\n\r\nexport {\r\n mergeFormatting,\r\n cloneFormatting,\r\n hasFormatting,\r\n cleanFormatting,\r\n isEqualFormatting,\r\n applyDefaults,\r\n} from './utils/formatting';\r\nexport {\r\n safeParseInt,\r\n parseOoxmlBoolean,\r\n isExplicitlySet,\r\n parseNumericAttribute,\r\n parseOnOffAttribute,\r\n} from './utils/parsingHelpers';\r\nexport {\r\n removeInvalidXmlChars,\r\n findInvalidXmlChars,\r\n hasInvalidXmlChars,\r\n XML_CONTROL_CHARS,\r\n} from './utils/xmlSanitization';\r\n\r\n// =============================================================================\r\n// UTILITIES — List Detection (kept for basic detection; normalization moved to consumer)\r\n// =============================================================================\r\n\r\nexport {\r\n detectTypedPrefix,\r\n detectListType,\r\n inferLevelFromIndentation,\r\n getParagraphIndentation,\r\n validateListSequence,\r\n getListCategoryFromFormat,\r\n getLevelFromFormat,\r\n TYPED_LIST_PATTERNS,\r\n PATTERN_TO_CATEGORY,\r\n FORMAT_TO_LEVEL,\r\n} from './utils/list-detection';\r\n\r\n// =============================================================================\r\n// UTILITIES — Logging\r\n// =============================================================================\r\n\r\nexport {\r\n ILogger,\r\n LogLevel,\r\n LogEntry,\r\n ConsoleLogger,\r\n SilentLogger,\r\n CollectingLogger,\r\n defaultLogger,\r\n createScopedLogger,\r\n createComponentLogger,\r\n getGlobalLogger,\r\n setGlobalLogger,\r\n resetGlobalLogger,\r\n} from './utils/logger';\r\n\r\n// =============================================================================\r\n// UTILITIES — Revision Walker\r\n// =============================================================================\r\n\r\nexport { RevisionWalker, RevisionWalkerOptions } from './utils/RevisionWalker';\r\nexport { resolveCellShading } from './utils/ShadingResolver';\r\nexport { decodeCnfStyle, getActiveConditionalsInPriorityOrder } from './utils/cnfStyleDecoder';\r\n\r\n// =============================================================================\r\n// UTILITIES — Cleanup\r\n// =============================================================================\r\n\r\nexport {\r\n CleanupHelper,\r\n CleanupOptions,\r\n CleanupReport,\r\n} from './helpers/CleanupHelper';\r\n\r\n// =============================================================================\r\n// INTERNAL — ZIP Handling (advanced usage)\r\n// =============================================================================\r\n\r\nexport { ZipHandler } from './zip/ZipHandler';\r\nexport { ZipReader } from './zip/ZipReader';\r\nexport { ZipWriter } from './zip/ZipWriter';\r\nexport {\r\n ZipFile,\r\n FileMap,\r\n LoadOptions,\r\n SaveOptions,\r\n AddFileOptions,\r\n SizeLimitOptions,\r\n DEFAULT_SIZE_LIMITS,\r\n REQUIRED_DOCX_FILES,\r\n DOCX_PATHS,\r\n} from './zip/types';\r\nexport {\r\n DocxError,\r\n DocxNotFoundError,\r\n InvalidDocxError,\r\n CorruptedArchiveError,\r\n MissingRequiredFileError,\r\n FileOperationError,\r\n} from './zip/errors';\r\n\r\n// =============================================================================\r\n// INTERNAL — XML Builder and Parser (advanced usage)\r\n// =============================================================================\r\n\r\nexport { XMLBuilder, XMLElement } from './xml/XMLBuilder';\r\nexport {\r\n XMLParser,\r\n ParseToObjectOptions,\r\n ParsedXMLValue,\r\n ParsedXMLObject,\r\n DEFAULT_MAX_NESTING_DEPTH,\r\n} from './xml/XMLParser';\r\n\r\n// =============================================================================\r\n// INTERNAL — Parser, Generator, Validator (advanced usage)\r\n// =============================================================================\r\n\r\nexport { Relationship, RelationshipType, RelationshipProperties } from './core/Relationship';\r\nexport { RelationshipManager } from './core/RelationshipManager';\r\nexport { DocumentParser, ParseError } from './core/DocumentParser';\r\nexport { DocumentGenerator, IZipHandlerReader } from './core/DocumentGenerator';\r\nexport { DocumentValidator, SizeEstimate, MemoryOptions } from './core/DocumentValidator';\r\nexport { DocumentIdManager } from './core/DocumentIdManager';\r\n\r\n// =============================================================================\r\n// INTERNAL — Document Subsystem Classes (advanced usage)\r\n// =============================================================================\r\n\r\nexport { DocumentContent, BodyElement } from './core/DocumentContent';\r\n\r\n// =============================================================================\r\n// INTERNAL — Constants\r\n// =============================================================================\r\n\r\nexport { LIMITS } from './constants/limits';\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * DocXML - DOCX Editing Framework\n * Main entry point\n */\n\n// =============================================================================\n// PUBLIC API — Core Document Classes\n// =============================================================================\n\nexport {\n Document,\n DocumentProperties,\n DocumentOptions,\n DocumentLoadOptions,\n DocumentPart,\n} from './core/Document';\n\n// =============================================================================\n// PUBLIC API — Document Elements\n// =============================================================================\n\nexport {\n Paragraph,\n ParagraphAlignment,\n ParagraphFormatting,\n ParagraphContent,\n FieldLike,\n isRun,\n isField,\n isSimpleField,\n isComplexField,\n isHyperlink,\n isRevision,\n isRangeMarker,\n isShape,\n isTextBox,\n} from './elements/Paragraph';\nexport { Run, RunFormatting, ThemeColorValue } from './elements/Run';\nexport {\n Section,\n PageOrientation,\n SectionType,\n PageNumberFormat,\n PageSize,\n Margins,\n Columns,\n PageNumbering,\n SectionProperties,\n LineNumbering,\n LineNumberingRestart,\n} from './elements/Section';\nexport {\n Table,\n TableAlignment,\n TableLayout,\n TableBorder,\n TableBorders,\n TableFormatting,\n} from './elements/Table';\nexport { TableRow, RowFormatting } from './elements/TableRow';\nexport {\n TableCell,\n CellBorder,\n CellBorders,\n CellShading,\n CellFormatting,\n} from './elements/TableCell';\nexport { TableGridChange, GridColumn, TableGridChangeProperties } from './elements/TableGridChange';\nexport {\n Image,\n ImageFormat,\n ImageProperties,\n ImageBorder,\n ImageEffects,\n PresetGeometry,\n BlipCompressionState,\n PicLockAttribute,\n PicNonVisualProperties,\n} from './elements/Image';\nexport { ImageRun } from './elements/ImageRun';\nexport { Shape, ShapeType, ShapeProperties, ShapeFill, ShapeOutline } from './elements/Shape';\nexport { TextBox, TextBoxProperties, TextBoxFill, TextBoxMargins } from './elements/TextBox';\nexport { Header, HeaderType, HeaderProperties } from './elements/Header';\nexport { Footer, FooterType, FooterProperties } from './elements/Footer';\nexport { Hyperlink, HyperlinkProperties } from './elements/Hyperlink';\nexport { Bookmark, BookmarkProperties } from './elements/Bookmark';\nexport { RangeMarker, RangeMarkerType, RangeMarkerProperties } from './elements/RangeMarker';\nexport { Comment, CommentProperties } from './elements/Comment';\nexport { Footnote, FootnoteType, FootnoteProperties } from './elements/Footnote';\nexport { Endnote, EndnoteType, EndnoteProperties } from './elements/Endnote';\nexport {\n Field,\n FieldType,\n FieldProperties,\n ComplexField,\n ComplexFieldProperties,\n FieldCharType,\n TOCFieldOptions,\n createTOCField,\n} from './elements/Field';\nexport {\n createNestedIFMergeField,\n createMergeField,\n createRefField,\n createIFField,\n createNestedField,\n parseHyperlinkInstruction,\n buildHyperlinkInstruction,\n isHyperlinkInstruction,\n ParsedHyperlinkInstruction,\n} from './elements/FieldHelpers';\nexport {\n StructuredDocumentTag,\n SDTProperties,\n SDTLockType,\n SDTContent,\n SDTPlaceholder,\n SDTDataBinding,\n ContentControlType,\n} from './elements/StructuredDocumentTag';\nexport { TableOfContents, TOCProperties } from './elements/TableOfContents';\nexport { TableOfContentsElement } from './elements/TableOfContentsElement';\nexport { AlternateContent } from './elements/AlternateContent';\nexport { MathParagraph, MathExpression } from './elements/MathElement';\nexport { CustomXmlBlock } from './elements/CustomXml';\nexport { PreservedElement, PreservedElementContext } from './elements/PreservedElement';\n\n// =============================================================================\n// PUBLIC API — Track Changes / Revisions\n// =============================================================================\n\nexport { Revision, RevisionType, RevisionProperties, FieldContext } from './elements/Revision';\nexport { RevisionContent, isRunContent, isHyperlinkContent } from './elements/RevisionContent';\nexport {\n RevisionLocation,\n RunPropertyChange,\n ParagraphPropertyChange,\n ParagraphFormattingPartial,\n ParagraphBorderDef,\n ParagraphBorders,\n ParagraphShading,\n TabStopDef,\n PropertyChangeBase,\n TablePropertyChange,\n TablePropertyChangeType,\n SectionPropertyChange,\n NumberingChange,\n AnyPropertyChange,\n isRunPropertyChange,\n isParagraphPropertyChange,\n isTablePropertyChange,\n isSectionPropertyChange,\n isNumberingChange,\n} from './elements/PropertyChangeTypes';\nexport {\n acceptRevisionsInMemory,\n AcceptRevisionsOptions,\n AcceptRevisionsResult,\n paragraphHasRevisions,\n getRevisionsFromParagraph,\n countRevisionsByType,\n stripRevisionsFromXml,\n} from './utils/InMemoryRevisionAcceptor';\nexport {\n MoveOperationHelper,\n MoveOperationOptions,\n MoveOperationResult,\n} from './utils/MoveOperationHelper';\nexport {\n SelectiveRevisionAcceptor,\n SelectiveAcceptResult,\n} from './utils/SelectiveRevisionAcceptor';\nexport {\n RevisionAwareProcessor,\n RevisionHandlingMode,\n RevisionProcessingOptions,\n SelectionCriteria,\n RevisionProcessingResult,\n ConflictInfo,\n ProcessingLogEntry,\n} from './utils/RevisionAwareProcessor';\nexport {\n ChangelogGenerator,\n ChangeEntry,\n ChangeCategory,\n ChangeLocation,\n ChangelogOptions,\n ChangelogFormat,\n ConsolidatedChange,\n ChangelogSummary,\n} from './utils/ChangelogGenerator';\n\n// =============================================================================\n// PUBLIC API — Formatting / Styles / Numbering\n// =============================================================================\n\nexport { Style, StyleType, StyleProperties } from './formatting/Style';\nexport {\n StylesManager,\n ValidationResult,\n LatentStylesConfig,\n LatentStyleException,\n} from './formatting/StylesManager';\nexport {\n NumberingLevel,\n NumberFormat,\n NumberAlignment,\n NumberingLevelProperties,\n WORD_NATIVE_BULLETS,\n WordNativeBullet,\n} from './formatting/NumberingLevel';\nexport { AbstractNumbering, AbstractNumberingProperties } from './formatting/AbstractNumbering';\nexport { NumberingInstance, NumberingInstanceProperties } from './formatting/NumberingInstance';\nexport {\n NumberingManager,\n NumberingConsolidationOptions,\n NumberingConsolidationResult,\n} from './formatting/NumberingManager';\nexport {\n StyleRunFormatting,\n StyleParagraphFormatting,\n Heading2TableOptions,\n StyleConfig,\n Heading2Config,\n ApplyCustomFormattingOptions,\n} from './types/styleConfig';\nexport { FormatOptions, StyleApplyOptions, EmphasisType, ListPrefix } from './types/formatting';\n\n// =============================================================================\n// PUBLIC API — Managers\n// =============================================================================\n\nexport { RevisionManager, RevisionCategory, RevisionSummary } from './elements/RevisionManager';\nexport { ImageManager } from './elements/ImageManager';\nexport { BookmarkManager } from './elements/BookmarkManager';\nexport { CommentManager } from './elements/CommentManager';\nexport { FootnoteManager } from './elements/FootnoteManager';\nexport { EndnoteManager } from './elements/EndnoteManager';\nexport { HeaderFooterManager } from './elements/HeaderFooterManager';\nexport { FontManager, FontFormat, FontEntry } from './elements/FontManager';\nexport {\n DrawingManager,\n DrawingElement,\n DrawingType,\n PreservedDrawing,\n} from './managers/DrawingManager';\n\n// =============================================================================\n// PUBLIC API — Image Optimization\n// =============================================================================\n\nexport type { ImageOptimizationResult } from './images/ImageOptimizer';\n\n// =============================================================================\n// TYPES — Common / Shared Type Definitions\n// =============================================================================\n\nexport {\n ShadingPattern,\n BasicShadingPattern,\n BorderStyle,\n ExtendedBorderStyle,\n FullBorderStyle,\n BorderDefinition,\n FourSidedBorders,\n TableBorderDefinitions,\n HorizontalAlignment,\n VerticalAlignment,\n PageVerticalAlignment,\n CellVerticalAlignment,\n ParagraphAlignment as CommonParagraphAlignment,\n TableAlignment as CommonTableAlignment,\n RowJustification,\n TextVerticalAlignment,\n TabAlignment,\n PositionAnchor,\n HorizontalAnchor,\n VerticalAnchor,\n TextDirection,\n SectionTextDirection,\n WidthType,\n ShadingConfig,\n buildShadingAttributes,\n TabLeader,\n TabStop,\n isShadingPattern,\n isBorderStyle,\n isHorizontalAlignment,\n isVerticalAlignment,\n isParagraphAlignment,\n isWidthType,\n DEFAULT_BORDER,\n NO_BORDER,\n} from './elements/CommonTypes';\nexport {\n ListCategory,\n NumberFormat as ListNumberFormat,\n BulletFormat,\n ListDetectionResult,\n ListAnalysis,\n ListNormalizationOptions,\n ListNormalizationReport,\n IndentationLevel,\n} from './types/list-types';\n\nexport { CompatibilityMode, CompatibilityInfo, CompatSetting } from './types/compatibility-types';\n\nexport {\n DocumentProtection,\n RevisionViewSettings,\n TrackChangesSettings,\n WebSettingsInfo,\n} from './types/settings-types';\n\n// =============================================================================\n// TYPES — Compatibility Upgrade\n// =============================================================================\n\nexport { CompatibilityUpgrader, UpgradeReport } from './utils/CompatibilityUpgrader';\nexport {\n LEGACY_COMPAT_ELEMENTS,\n LEGACY_COMPAT_ELEMENT_NAMES,\n MODERN_COMPAT_SETTINGS,\n MS_WORD_COMPAT_URI,\n} from './constants/legacyCompatFlags';\n\n// =============================================================================\n// UTILITIES — Unit Conversions\n// =============================================================================\n\nexport {\n STANDARD_DPI,\n UNITS,\n PAGE_SIZES,\n COMMON_MARGINS,\n twipsToPoints,\n twipsToInches,\n twipsToCm,\n twipsToEmus,\n emusToTwips,\n emusToInches,\n emusToCm,\n emusToPoints,\n emusToPixels,\n pointsToTwips,\n pointsToEmus,\n pointsToInches,\n pointsToCm,\n pointsToHalfPoints,\n halfPointsToPoints,\n inchesToTwips,\n inchesToEmus,\n inchesToPoints,\n inchesToCm,\n inchesToPixels,\n cmToTwips,\n cmToEmus,\n cmToInches,\n cmToPoints,\n cmToPixels,\n pixelsToEmus,\n pixelsToInches,\n pixelsToTwips,\n pixelsToCm,\n pixelsToPoints,\n} from './utils/units';\n\n// =============================================================================\n// UTILITIES — Validation, Corruption Detection, Error Handling\n// =============================================================================\n\nexport {\n validateDocxStructure,\n isBinaryFile,\n normalizePath,\n isValidZipBuffer,\n isTextContent,\n validateTwips,\n validateColor,\n validateHexColor,\n normalizeColor,\n validateNumberingId,\n validateLevel,\n validateAlignment,\n validateFontSize,\n validateNonEmptyString,\n validatePercentage,\n validateEmus,\n detectXmlInText,\n cleanXmlFromText,\n validateRunText,\n TextValidationResult,\n} from './utils/validation';\nexport {\n detectCorruptionInDocument,\n detectCorruptionInText,\n suggestFix,\n looksCorrupted,\n CorruptionReport,\n CorruptionLocation,\n CorruptionType,\n} from './utils/corruptionDetection';\nexport { isError, toError, wrapError, getErrorMessage } from './utils/errorHandling';\nexport {\n REVISION_RULES,\n ValidationSeverity,\n ValidationIssue,\n ValidationRule,\n ValidationOptions,\n AutoFixOptions,\n ValidationResult as RevisionValidationResult,\n FixAction,\n AutoFixResult,\n createIssueFromRule,\n getRuleByCode,\n getRulesBySeverity,\n getAutoFixableRules,\n RevisionValidator,\n RevisionAutoFixer,\n} from './validation';\n\n// =============================================================================\n// UTILITIES — Formatting, Parsing, Sanitization\n// =============================================================================\n\nexport {\n mergeFormatting,\n cloneFormatting,\n hasFormatting,\n cleanFormatting,\n isEqualFormatting,\n applyDefaults,\n} from './utils/formatting';\nexport {\n safeParseInt,\n parseOoxmlBoolean,\n isExplicitlySet,\n parseNumericAttribute,\n parseOnOffAttribute,\n} from './utils/parsingHelpers';\nexport {\n removeInvalidXmlChars,\n findInvalidXmlChars,\n hasInvalidXmlChars,\n XML_CONTROL_CHARS,\n} from './utils/xmlSanitization';\n\n// =============================================================================\n// UTILITIES — List Detection (kept for basic detection; normalization moved to consumer)\n// =============================================================================\n\nexport {\n detectTypedPrefix,\n detectListType,\n inferLevelFromIndentation,\n getParagraphIndentation,\n validateListSequence,\n getListCategoryFromFormat,\n getLevelFromFormat,\n TYPED_LIST_PATTERNS,\n PATTERN_TO_CATEGORY,\n FORMAT_TO_LEVEL,\n} from './utils/list-detection';\n\n// =============================================================================\n// UTILITIES — Logging\n// =============================================================================\n\nexport {\n ILogger,\n LogLevel,\n LogEntry,\n ConsoleLogger,\n SilentLogger,\n CollectingLogger,\n defaultLogger,\n createScopedLogger,\n createComponentLogger,\n getGlobalLogger,\n setGlobalLogger,\n resetGlobalLogger,\n} from './utils/logger';\n\n// =============================================================================\n// UTILITIES — Revision Walker\n// =============================================================================\n\nexport { RevisionWalker, RevisionWalkerOptions } from './utils/RevisionWalker';\nexport { resolveCellShading } from './utils/ShadingResolver';\nexport { decodeCnfStyle, getActiveConditionalsInPriorityOrder } from './utils/cnfStyleDecoder';\n\n// =============================================================================\n// UTILITIES — Cleanup\n// =============================================================================\n\nexport { CleanupHelper, CleanupOptions, CleanupReport } from './helpers/CleanupHelper';\n\n// =============================================================================\n// INTERNAL — ZIP Handling (advanced usage)\n// =============================================================================\n\nexport { ZipHandler } from './zip/ZipHandler';\nexport { ZipReader } from './zip/ZipReader';\nexport { ZipWriter } from './zip/ZipWriter';\nexport {\n ZipFile,\n FileMap,\n LoadOptions,\n SaveOptions,\n AddFileOptions,\n SizeLimitOptions,\n DEFAULT_SIZE_LIMITS,\n REQUIRED_DOCX_FILES,\n DOCX_PATHS,\n} from './zip/types';\nexport {\n DocxError,\n DocxNotFoundError,\n InvalidDocxError,\n CorruptedArchiveError,\n MissingRequiredFileError,\n FileOperationError,\n} from './zip/errors';\n\n// =============================================================================\n// INTERNAL — XML Builder and Parser (advanced usage)\n// =============================================================================\n\nexport { XMLBuilder, XMLElement } from './xml/XMLBuilder';\nexport {\n XMLParser,\n ParseToObjectOptions,\n ParsedXMLValue,\n ParsedXMLObject,\n DEFAULT_MAX_NESTING_DEPTH,\n} from './xml/XMLParser';\n\n// =============================================================================\n// INTERNAL — Parser, Generator, Validator (advanced usage)\n// =============================================================================\n\nexport { Relationship, RelationshipType, RelationshipProperties } from './core/Relationship';\nexport { RelationshipManager } from './core/RelationshipManager';\nexport { DocumentParser, ParseError } from './core/DocumentParser';\nexport { DocumentGenerator, IZipHandlerReader } from './core/DocumentGenerator';\nexport { DocumentValidator, SizeEstimate, MemoryOptions } from './core/DocumentValidator';\nexport { DocumentIdManager } from './core/DocumentIdManager';\n\n// =============================================================================\n// INTERNAL — Document Subsystem Classes (advanced usage)\n// =============================================================================\n\nexport { DocumentContent, BodyElement } from './core/DocumentContent';\n\n// =============================================================================\n// INTERNAL — Constants\n// =============================================================================\n\nexport { LIMITS } from './constants/limits';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingManager.js","sourceRoot":"","sources":["../../src/managers/DrawingManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * DrawingManager - Manages all drawing elements in a document\r\n *\r\n * Centralizes management of images, shapes, and text boxes.\r\n * Assigns unique IDs and handles relationship management.\r\n */\r\n\r\nimport { Image } from '../elements/Image';\r\nimport { Shape } from '../elements/Shape';\r\nimport { TextBox } from '../elements/TextBox';\r\n\r\n/**\r\n * Type representing any drawing element\r\n */\r\nexport type DrawingElement = Image | Shape | TextBox;\r\n\r\n/**\r\n * Drawing type discriminator\r\n */\r\nexport type DrawingType = 'image' | 'shape' | 'textbox' | 'preserved';\r\n\r\n/**\r\n * Preserved drawing (SmartArt, Chart, WordArt)\r\n * These are stored as raw XML for round-trip preservation\r\n */\r\nexport interface PreservedDrawing {\r\n /** Type of preserved drawing */\r\n type: 'smartart' | 'chart' | 'wordart';\r\n /** Raw XML content */\r\n xml: string;\r\n /** Relationship IDs referenced by this drawing */\r\n relationshipIds: string[];\r\n /** Unique ID for this drawing */\r\n id: string;\r\n}\r\n\r\n/**\r\n * Manages all drawing elements in a document\r\n *\r\n * Performance: Uses type-indexed Sets for O(1) type-specific lookups\r\n * instead of O(n) linear scans through the main Map.\r\n */\r\nexport class DrawingManager {\r\n private drawings = new Map<string, DrawingElement | PreservedDrawing>();\r\n private nextId = 1;\r\n\r\n // Type-indexed Sets for O(1) type-specific lookups\r\n private imageIds = new Set<string>();\r\n private shapeIds = new Set<string>();\r\n private textboxIds = new Set<string>();\r\n private preservedIds = new Set<string>();\r\n\r\n /**\r\n * Creates a new DrawingManager\r\n */\r\n constructor() {\r\n // Empty constructor\r\n }\r\n\r\n /**\r\n * Adds an image to the manager\r\n * @param image Image to add\r\n * @returns Assigned ID\r\n */\r\n addImage(image: Image): string {\r\n const id = this.generateId();\r\n image.setDocPrId(this.nextId - 1);\r\n this.drawings.set(id, image);\r\n this.imageIds.add(id);\r\n return id;\r\n }\r\n\r\n /**\r\n * Adds a shape to the manager\r\n * @param shape Shape to add\r\n * @returns Assigned ID\r\n */\r\n addShape(shape: Shape): string {\r\n const id = this.generateId();\r\n shape.setDocPrId(this.nextId - 1);\r\n this.drawings.set(id, shape);\r\n this.shapeIds.add(id);\r\n return id;\r\n }\r\n\r\n /**\r\n * Adds a text box to the manager\r\n * @param textbox TextBox to add\r\n * @returns Assigned ID\r\n */\r\n addTextBox(textbox: TextBox): string {\r\n const id = this.generateId();\r\n textbox.setDocPrId(this.nextId - 1);\r\n this.drawings.set(id, textbox);\r\n this.textboxIds.add(id);\r\n return id;\r\n }\r\n\r\n /**\r\n * Adds a preserved drawing (SmartArt, Chart, WordArt)\r\n * @param drawing Preserved drawing to add\r\n * @returns Assigned ID\r\n */\r\n addPreservedDrawing(drawing: PreservedDrawing): string {\r\n const id = this.generateId();\r\n this.drawings.set(id, { ...drawing, id });\r\n this.preservedIds.add(id);\r\n return id;\r\n }\r\n\r\n /**\r\n * Gets a drawing by ID\r\n * @param id Drawing ID\r\n * @returns Drawing element or undefined\r\n */\r\n getDrawing(id: string): DrawingElement | PreservedDrawing | undefined {\r\n return this.drawings.get(id);\r\n }\r\n\r\n /**\r\n * Gets all drawings\r\n * @returns Array of all drawing elements\r\n */\r\n getAllDrawings(): (DrawingElement | PreservedDrawing)[] {\r\n return Array.from(this.drawings.values());\r\n }\r\n\r\n /**\r\n * Gets all images\r\n * Performance: O(k) where k = number of images (uses indexed lookup)\r\n * @returns Array of images\r\n */\r\n getAllImages(): Image[] {\r\n const images: Image[] = [];\r\n for (const id of this.imageIds) {\r\n const drawing = this.drawings.get(id);\r\n if (drawing instanceof Image) {\r\n images.push(drawing);\r\n }\r\n }\r\n return images;\r\n }\r\n\r\n /**\r\n * Gets all shapes\r\n * Performance: O(k) where k = number of shapes (uses indexed lookup)\r\n * @returns Array of shapes\r\n */\r\n getAllShapes(): Shape[] {\r\n const shapes: Shape[] = [];\r\n for (const id of this.shapeIds) {\r\n const drawing = this.drawings.get(id);\r\n if (drawing instanceof Shape) {\r\n shapes.push(drawing);\r\n }\r\n }\r\n return shapes;\r\n }\r\n\r\n /**\r\n * Gets all text boxes\r\n * Performance: O(k) where k = number of text boxes (uses indexed lookup)\r\n * @returns Array of text boxes\r\n */\r\n getAllTextBoxes(): TextBox[] {\r\n const textboxes: TextBox[] = [];\r\n for (const id of this.textboxIds) {\r\n const drawing = this.drawings.get(id);\r\n if (drawing instanceof TextBox) {\r\n textboxes.push(drawing);\r\n }\r\n }\r\n return textboxes;\r\n }\r\n\r\n /**\r\n * Gets all preserved drawings\r\n * Performance: O(k) where k = number of preserved drawings (uses indexed lookup)\r\n * @returns Array of preserved drawings\r\n */\r\n getAllPreservedDrawings(): PreservedDrawing[] {\r\n const preserved: PreservedDrawing[] = [];\r\n for (const id of this.preservedIds) {\r\n const drawing = this.drawings.get(id);\r\n if (drawing && this.isPreservedDrawing(drawing)) {\r\n preserved.push(drawing);\r\n }\r\n }\r\n return preserved;\r\n }\r\n\r\n /**\r\n * Removes a drawing by ID\r\n * @param id Drawing ID\r\n * @returns True if removed, false if not found\r\n */\r\n removeDrawing(id: string): boolean {\r\n const deleted = this.drawings.delete(id);\r\n if (deleted) {\r\n // Remove from type-specific indices\r\n this.imageIds.delete(id);\r\n this.shapeIds.delete(id);\r\n this.textboxIds.delete(id);\r\n this.preservedIds.delete(id);\r\n }\r\n return deleted;\r\n }\r\n\r\n /**\r\n * Gets the total number of drawings\r\n * @returns Number of drawings\r\n */\r\n getCount(): number {\r\n return this.drawings.size;\r\n }\r\n\r\n /**\r\n * Checks if the manager has any drawings\r\n * @returns True if empty, false otherwise\r\n */\r\n isEmpty(): boolean {\r\n return this.drawings.size === 0;\r\n }\r\n\r\n /**\r\n * Clears all drawings\r\n */\r\n clear(): void {\r\n this.drawings.clear();\r\n this.imageIds.clear();\r\n this.shapeIds.clear();\r\n this.textboxIds.clear();\r\n this.preservedIds.clear();\r\n this.nextId = 1;\r\n }\r\n\r\n /**\r\n * Gets the drawing type\r\n * @param drawing Drawing element\r\n * @returns Drawing type\r\n */\r\n getDrawingType(drawing: DrawingElement | PreservedDrawing): DrawingType {\r\n if (drawing instanceof Image) {\r\n return 'image';\r\n } else if (drawing instanceof Shape) {\r\n return 'shape';\r\n } else if (drawing instanceof TextBox) {\r\n return 'textbox';\r\n } else {\r\n return 'preserved';\r\n }\r\n }\r\n\r\n /**\r\n * Type guard for PreservedDrawing\r\n * @param drawing Drawing to check\r\n * @returns True if PreservedDrawing\r\n */\r\n private isPreservedDrawing(drawing: any): drawing is PreservedDrawing {\r\n return (\r\n drawing &&\r\n typeof drawing === 'object' &&\r\n 'type' in drawing &&\r\n 'xml' in drawing &&\r\n 'relationshipIds' in drawing &&\r\n (drawing.type === 'smartart' || drawing.type === 'chart' || drawing.type === 'wordart')\r\n );\r\n }\r\n\r\n /**\r\n * Generates a unique ID for a drawing\r\n * @private\r\n * @returns Unique ID string\r\n */\r\n private generateId(): string {\r\n const id = `drawing_${this.nextId}`;\r\n this.nextId++;\r\n return id;\r\n }\r\n\r\n /**\r\n * Assigns sequential docPr IDs to all drawings\r\n * Call this before generating the document to ensure unique IDs\r\n */\r\n assignIds(): void {\r\n let docPrId = 1;\r\n for (const drawing of this.drawings.values()) {\r\n if (drawing instanceof Image) {\r\n drawing.setDocPrId(docPrId++);\r\n } else if (drawing instanceof Shape) {\r\n drawing.setDocPrId(docPrId++);\r\n } else if (drawing instanceof TextBox) {\r\n drawing.setDocPrId(docPrId++);\r\n }\r\n // PreservedDrawings don't need docPrId assignment (already in XML)\r\n }\r\n }\r\n\r\n /**\r\n * Gets statistics about the drawings\r\n * Performance: O(1) using indexed Set sizes\r\n * @returns Statistics object\r\n */\r\n getStats(): {\r\n total: number;\r\n images: number;\r\n shapes: number;\r\n textboxes: number;\r\n preserved: number;\r\n } {\r\n return {\r\n total: this.drawings.size,\r\n images: this.imageIds.size,\r\n shapes: this.shapeIds.size,\r\n textboxes: this.textboxIds.size,\r\n preserved: this.preservedIds.size,\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"DrawingManager.js","sourceRoot":"","sources":["../../src/managers/DrawingManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * DrawingManager - Manages all drawing elements in a document\n *\n * Centralizes management of images, shapes, and text boxes.\n * Assigns unique IDs and handles relationship management.\n */\n\nimport { Image } from '../elements/Image';\nimport { Shape } from '../elements/Shape';\nimport { TextBox } from '../elements/TextBox';\n\n/**\n * Type representing any drawing element\n */\nexport type DrawingElement = Image | Shape | TextBox;\n\n/**\n * Drawing type discriminator\n */\nexport type DrawingType = 'image' | 'shape' | 'textbox' | 'preserved';\n\n/**\n * Preserved drawing (SmartArt, Chart, WordArt)\n * These are stored as raw XML for round-trip preservation\n */\nexport interface PreservedDrawing {\n /** Type of preserved drawing */\n type: 'smartart' | 'chart' | 'wordart';\n /** Raw XML content */\n xml: string;\n /** Relationship IDs referenced by this drawing */\n relationshipIds: string[];\n /** Unique ID for this drawing */\n id: string;\n}\n\n/**\n * Manages all drawing elements in a document\n *\n * Performance: Uses type-indexed Sets for O(1) type-specific lookups\n * instead of O(n) linear scans through the main Map.\n */\nexport class DrawingManager {\n private drawings = new Map<string, DrawingElement | PreservedDrawing>();\n private nextId = 1;\n\n // Type-indexed Sets for O(1) type-specific lookups\n private imageIds = new Set<string>();\n private shapeIds = new Set<string>();\n private textboxIds = new Set<string>();\n private preservedIds = new Set<string>();\n\n /**\n * Creates a new DrawingManager\n */\n constructor() {\n // Empty constructor\n }\n\n /**\n * Adds an image to the manager\n * @param image Image to add\n * @returns Assigned ID\n */\n addImage(image: Image): string {\n const id = this.generateId();\n image.setDocPrId(this.nextId - 1);\n this.drawings.set(id, image);\n this.imageIds.add(id);\n return id;\n }\n\n /**\n * Adds a shape to the manager\n * @param shape Shape to add\n * @returns Assigned ID\n */\n addShape(shape: Shape): string {\n const id = this.generateId();\n shape.setDocPrId(this.nextId - 1);\n this.drawings.set(id, shape);\n this.shapeIds.add(id);\n return id;\n }\n\n /**\n * Adds a text box to the manager\n * @param textbox TextBox to add\n * @returns Assigned ID\n */\n addTextBox(textbox: TextBox): string {\n const id = this.generateId();\n textbox.setDocPrId(this.nextId - 1);\n this.drawings.set(id, textbox);\n this.textboxIds.add(id);\n return id;\n }\n\n /**\n * Adds a preserved drawing (SmartArt, Chart, WordArt)\n * @param drawing Preserved drawing to add\n * @returns Assigned ID\n */\n addPreservedDrawing(drawing: PreservedDrawing): string {\n const id = this.generateId();\n this.drawings.set(id, { ...drawing, id });\n this.preservedIds.add(id);\n return id;\n }\n\n /**\n * Gets a drawing by ID\n * @param id Drawing ID\n * @returns Drawing element or undefined\n */\n getDrawing(id: string): DrawingElement | PreservedDrawing | undefined {\n return this.drawings.get(id);\n }\n\n /**\n * Gets all drawings\n * @returns Array of all drawing elements\n */\n getAllDrawings(): (DrawingElement | PreservedDrawing)[] {\n return Array.from(this.drawings.values());\n }\n\n /**\n * Gets all images\n * Performance: O(k) where k = number of images (uses indexed lookup)\n * @returns Array of images\n */\n getAllImages(): Image[] {\n const images: Image[] = [];\n for (const id of this.imageIds) {\n const drawing = this.drawings.get(id);\n if (drawing instanceof Image) {\n images.push(drawing);\n }\n }\n return images;\n }\n\n /**\n * Gets all shapes\n * Performance: O(k) where k = number of shapes (uses indexed lookup)\n * @returns Array of shapes\n */\n getAllShapes(): Shape[] {\n const shapes: Shape[] = [];\n for (const id of this.shapeIds) {\n const drawing = this.drawings.get(id);\n if (drawing instanceof Shape) {\n shapes.push(drawing);\n }\n }\n return shapes;\n }\n\n /**\n * Gets all text boxes\n * Performance: O(k) where k = number of text boxes (uses indexed lookup)\n * @returns Array of text boxes\n */\n getAllTextBoxes(): TextBox[] {\n const textboxes: TextBox[] = [];\n for (const id of this.textboxIds) {\n const drawing = this.drawings.get(id);\n if (drawing instanceof TextBox) {\n textboxes.push(drawing);\n }\n }\n return textboxes;\n }\n\n /**\n * Gets all preserved drawings\n * Performance: O(k) where k = number of preserved drawings (uses indexed lookup)\n * @returns Array of preserved drawings\n */\n getAllPreservedDrawings(): PreservedDrawing[] {\n const preserved: PreservedDrawing[] = [];\n for (const id of this.preservedIds) {\n const drawing = this.drawings.get(id);\n if (drawing && this.isPreservedDrawing(drawing)) {\n preserved.push(drawing);\n }\n }\n return preserved;\n }\n\n /**\n * Removes a drawing by ID\n * @param id Drawing ID\n * @returns True if removed, false if not found\n */\n removeDrawing(id: string): boolean {\n const deleted = this.drawings.delete(id);\n if (deleted) {\n // Remove from type-specific indices\n this.imageIds.delete(id);\n this.shapeIds.delete(id);\n this.textboxIds.delete(id);\n this.preservedIds.delete(id);\n }\n return deleted;\n }\n\n /**\n * Gets the total number of drawings\n * @returns Number of drawings\n */\n getCount(): number {\n return this.drawings.size;\n }\n\n /**\n * Checks if the manager has any drawings\n * @returns True if empty, false otherwise\n */\n isEmpty(): boolean {\n return this.drawings.size === 0;\n }\n\n /**\n * Clears all drawings\n */\n clear(): void {\n this.drawings.clear();\n this.imageIds.clear();\n this.shapeIds.clear();\n this.textboxIds.clear();\n this.preservedIds.clear();\n this.nextId = 1;\n }\n\n /**\n * Gets the drawing type\n * @param drawing Drawing element\n * @returns Drawing type\n */\n getDrawingType(drawing: DrawingElement | PreservedDrawing): DrawingType {\n if (drawing instanceof Image) {\n return 'image';\n } else if (drawing instanceof Shape) {\n return 'shape';\n } else if (drawing instanceof TextBox) {\n return 'textbox';\n } else {\n return 'preserved';\n }\n }\n\n /**\n * Type guard for PreservedDrawing\n * @param drawing Drawing to check\n * @returns True if PreservedDrawing\n */\n private isPreservedDrawing(drawing: any): drawing is PreservedDrawing {\n return (\n drawing &&\n typeof drawing === 'object' &&\n 'type' in drawing &&\n 'xml' in drawing &&\n 'relationshipIds' in drawing &&\n (drawing.type === 'smartart' || drawing.type === 'chart' || drawing.type === 'wordart')\n );\n }\n\n /**\n * Generates a unique ID for a drawing\n * @private\n * @returns Unique ID string\n */\n private generateId(): string {\n const id = `drawing_${this.nextId}`;\n this.nextId++;\n return id;\n }\n\n /**\n * Assigns sequential docPr IDs to all drawings\n * Call this before generating the document to ensure unique IDs\n */\n assignIds(): void {\n let docPrId = 1;\n for (const drawing of this.drawings.values()) {\n if (drawing instanceof Image) {\n drawing.setDocPrId(docPrId++);\n } else if (drawing instanceof Shape) {\n drawing.setDocPrId(docPrId++);\n } else if (drawing instanceof TextBox) {\n drawing.setDocPrId(docPrId++);\n }\n // PreservedDrawings don't need docPrId assignment (already in XML)\n }\n }\n\n /**\n * Gets statistics about the drawings\n * Performance: O(1) using indexed Set sizes\n * @returns Statistics object\n */\n getStats(): {\n total: number;\n images: number;\n shapes: number;\n textboxes: number;\n preserved: number;\n } {\n return {\n total: this.drawings.size,\n images: this.imageIds.size,\n shapes: this.shapeIds.size,\n textboxes: this.textboxIds.size,\n preserved: this.preservedIds.size,\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentTrackingContext.d.ts","sourceRoot":"","sources":["../../src/tracking/DocumentTrackingContext.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAgB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAsB,MAAM,iBAAiB,CAAC;AAM1D,OAAO,KAAK,EAAE,eAAe,EAAiB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAM1F,MAAM,WAAW,qBAAqB;IAEpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAKD,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,gBAAgB,CAAK;IAE7B,OAAO,CAAC,YAAY,CAAiC;IAGrD,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAuB1C;gBAMS,eAAe,EAAE,eAAe;IAQ5C,MAAM,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAa7C,OAAO,IAAI,IAAI;IAUf,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAY/B,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,MAAM;IAInB,kBAAkB,IAAI,eAAe;IAIrC,wBAAwB,IAAI,OAAO;IAInC,sBAAsB,CACpB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAyBP,4BAA4B,CAC1B,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAgBP,oBAAoB,CAClB,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAiBP,gBAAgB,CACd,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IA4BP,kBAAkB,CAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAgBP,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB7D,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB5D,mBAAmB,IAAI,QAAQ,EAAE;IAoJjC,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,gBAAgB;IAsCxB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,cAAc;IAYtB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ;IAOpD,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ;IAOnD,eAAe,IAAI,MAAM;IAOzB,iBAAiB,IAAI,OAAO;IAO5B,mBAAmB,IAAI,IAAI;CAG5B"}
1
+ {"version":3,"file":"DocumentTrackingContext.d.ts","sourceRoot":"","sources":["../../src/tracking/DocumentTrackingContext.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAgB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAsB,MAAM,iBAAiB,CAAC;AAM1D,OAAO,KAAK,EAAE,eAAe,EAAiB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAM1F,MAAM,WAAW,qBAAqB;IAEpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAKD,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,gBAAgB,CAAK;IAE7B,OAAO,CAAC,YAAY,CAAiC;IAGrD,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAuB1C;gBAMS,eAAe,EAAE,eAAe;IAQ5C,MAAM,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAa7C,OAAO,IAAI,IAAI;IAUf,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAY/B,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,MAAM;IAInB,kBAAkB,IAAI,eAAe;IAIrC,wBAAwB,IAAI,OAAO;IAInC,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAsB9F,4BAA4B,CAC1B,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAgBP,oBAAoB,CAClB,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAiBP,gBAAgB,CACd,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IA4BP,kBAAkB,CAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI;IAgBP,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB7D,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAgB5D,mBAAmB,IAAI,QAAQ,EAAE;IAyKjC,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,gBAAgB;IAsCxB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,cAAc;IAYtB,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ;IAOpD,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ;IAOnD,eAAe,IAAI,MAAM;IAOzB,iBAAiB,IAAI,OAAO;IAO5B,mBAAmB,IAAI,IAAI;CAG5B"}
@@ -80,8 +80,7 @@ class DocumentTrackingContext {
80
80
  return;
81
81
  if (this.valuesEqual(oldValue, newValue))
82
82
  return;
83
- if (!this.trackFormatting &&
84
- DocumentTrackingContext.FORMATTING_PROPERTIES.has(property)) {
83
+ if (!this.trackFormatting && DocumentTrackingContext.FORMATTING_PROPERTIES.has(property)) {
85
84
  return;
86
85
  }
87
86
  const key = `runProp:${property}:${this.stringifyValue(newValue)}@${this.getElementId(run)}`;
@@ -216,12 +215,14 @@ class DocumentTrackingContext {
216
215
  changes.push(pending);
217
216
  tableChanges.set(pending.element, changes);
218
217
  }
219
- else if (pending.type === 'tableRowPropertiesChange' && pending.element instanceof TableRow_1.TableRow) {
218
+ else if (pending.type === 'tableRowPropertiesChange' &&
219
+ pending.element instanceof TableRow_1.TableRow) {
220
220
  const changes = rowChanges.get(pending.element) || [];
221
221
  changes.push(pending);
222
222
  rowChanges.set(pending.element, changes);
223
223
  }
224
- else if (pending.type === 'tableCellPropertiesChange' && pending.element instanceof TableCell_1.TableCell) {
224
+ else if (pending.type === 'tableCellPropertiesChange' &&
225
+ pending.element instanceof TableCell_1.TableCell) {
225
226
  const changes = cellChanges.get(pending.element) || [];
226
227
  changes.push(pending);
227
228
  cellChanges.set(pending.element, changes);
@@ -283,7 +284,12 @@ class DocumentTrackingContext {
283
284
  row.setTrPrChange({ ...existing, previousProperties: merged });
284
285
  }
285
286
  else {
286
- row.setTrPrChange({ author: this.author, date, id: String(getNextId()), previousProperties: prevProps });
287
+ row.setTrPrChange({
288
+ author: this.author,
289
+ date,
290
+ id: String(getNextId()),
291
+ previousProperties: prevProps,
292
+ });
287
293
  }
288
294
  });
289
295
  }
@@ -295,7 +301,12 @@ class DocumentTrackingContext {
295
301
  cell.setTcPrChange({ ...existing, previousProperties: merged });
296
302
  }
297
303
  else {
298
- cell.setTcPrChange({ author: this.author, date, id: String(getNextId()), previousProperties: prevProps });
304
+ cell.setTcPrChange({
305
+ author: this.author,
306
+ date,
307
+ id: String(getNextId()),
308
+ previousProperties: prevProps,
309
+ });
299
310
  }
300
311
  });
301
312
  }
@@ -307,7 +318,12 @@ class DocumentTrackingContext {
307
318
  section.setSectPrChange({ ...existing, previousProperties: merged });
308
319
  }
309
320
  else {
310
- section.setSectPrChange({ author: this.author, date, id: String(getNextId()), previousProperties: prevProps });
321
+ section.setSectPrChange({
322
+ author: this.author,
323
+ date,
324
+ id: String(getNextId()),
325
+ previousProperties: prevProps,
326
+ });
311
327
  }
312
328
  });
313
329
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentTrackingContext.js","sourceRoot":"","sources":["../../src/tracking/DocumentTrackingContext.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * DocumentTrackingContext - Implementation of automatic change tracking\r\n *\r\n * Manages pending changes and creates Revision objects when flushed.\r\n * Supports consolidation of similar changes within a time window.\r\n *\r\n * @module DocumentTrackingContext\r\n */\r\n\r\nimport { Revision, RevisionType } from '../elements/Revision';\r\nimport { RevisionManager } from '../elements/RevisionManager';\r\nimport { Run, type RunFormatting } from '../elements/Run';\r\nimport { Paragraph } from '../elements/Paragraph';\r\nimport { Table } from '../elements/Table';\r\nimport { TableRow } from '../elements/TableRow';\r\nimport { TableCell } from '../elements/TableCell';\r\nimport { Section } from '../elements/Section';\r\nimport type { TrackingContext, PendingChange, TrackableElement } from './TrackingContext';\r\nimport { formatDateForXml } from '../utils/dateFormatting';\r\n\r\n/**\r\n * Enable options for tracking context\r\n */\r\nexport interface TrackingEnableOptions {\r\n /** Author name for new revisions (default: 'DocHub') */\r\n author?: string;\r\n /** Whether to track formatting changes (default: true) */\r\n trackFormatting?: boolean;\r\n}\r\n\r\n/**\r\n * Implementation of TrackingContext for Document\r\n */\r\nexport class DocumentTrackingContext implements TrackingContext {\r\n private enabled = false;\r\n private trackFormatting = true;\r\n private author = 'DocHub';\r\n private revisionManager: RevisionManager;\r\n\r\n /** Counter for assigning stable element IDs */\r\n private elementIdCounter = 0;\r\n /** Stable element identity map (WeakMap so elements can be GC'd) */\r\n private elementIdMap = new WeakMap<object, number>();\r\n\r\n /** Pending changes waiting to be flushed */\r\n private pendingChanges = new Map<string, PendingChange>();\r\n\r\n /** Properties considered \"formatting\" (vs structural) */\r\n private static readonly FORMATTING_PROPERTIES = new Set([\r\n 'bold',\r\n 'italic',\r\n 'underline',\r\n 'strike',\r\n 'dstrike',\r\n 'subscript',\r\n 'superscript',\r\n 'font',\r\n 'size',\r\n 'color',\r\n 'highlight',\r\n 'smallCaps',\r\n 'allCaps',\r\n 'characterSpacing',\r\n 'scaling',\r\n 'position',\r\n 'emphasis',\r\n 'shadow',\r\n 'emboss',\r\n 'imprint',\r\n 'outline',\r\n 'vanish',\r\n ]);\r\n\r\n /**\r\n * Creates a new DocumentTrackingContext\r\n * @param revisionManager - RevisionManager to register revisions with\r\n */\r\n constructor(revisionManager: RevisionManager) {\r\n this.revisionManager = revisionManager;\r\n }\r\n\r\n /**\r\n * Enable change tracking\r\n * @param options - Enable options\r\n */\r\n enable(options?: TrackingEnableOptions): void {\r\n this.enabled = true;\r\n if (options?.author) {\r\n this.author = options.author;\r\n }\r\n if (options?.trackFormatting !== undefined) {\r\n this.trackFormatting = options.trackFormatting;\r\n }\r\n }\r\n\r\n /**\r\n * Disable change tracking and flush pending changes\r\n */\r\n disable(): void {\r\n this.flushPendingChanges();\r\n this.enabled = false;\r\n }\r\n\r\n /**\r\n * Set the author for new revisions\r\n * Flushes any pending changes before switching to prevent mixed authorship\r\n * @param author - Author name\r\n */\r\n setAuthor(author: string): void {\r\n // Flush pending changes before switching authors to prevent mixed authorship\r\n if (this.enabled && this.pendingChanges.size > 0) {\r\n this.flushPendingChanges();\r\n }\r\n this.author = author;\r\n }\r\n\r\n // ═══════════════════════════════════════════════════════════════════════════\r\n // TrackingContext Interface Implementation\r\n // ═══════════════════════════════════════════════════════════════════════════\r\n\r\n isEnabled(): boolean {\r\n return this.enabled;\r\n }\r\n\r\n getAuthor(): string {\r\n return this.author;\r\n }\r\n\r\n getRevisionManager(): RevisionManager {\r\n return this.revisionManager;\r\n }\r\n\r\n isTrackFormattingEnabled(): boolean {\r\n return this.trackFormatting;\r\n }\r\n\r\n trackRunPropertyChange(\r\n run: Run,\r\n property: string,\r\n oldValue: unknown,\r\n newValue: unknown\r\n ): void {\r\n if (!this.enabled) return;\r\n if (this.valuesEqual(oldValue, newValue)) return;\r\n\r\n // Skip formatting changes if not tracking them\r\n if (\r\n !this.trackFormatting &&\r\n DocumentTrackingContext.FORMATTING_PROPERTIES.has(property)\r\n ) {\r\n return;\r\n }\r\n\r\n // Create consolidation key with element identity\r\n const key = `runProp:${property}:${this.stringifyValue(newValue)}@${this.getElementId(run)}`;\r\n\r\n this.addPendingChange(key, {\r\n type: 'runPropertiesChange',\r\n property,\r\n previousValue: oldValue,\r\n newValue,\r\n element: run,\r\n timestamp: Date.now(),\r\n });\r\n }\r\n\r\n trackParagraphPropertyChange(\r\n paragraph: TrackableElement,\r\n property: string,\r\n oldValue: unknown,\r\n newValue: unknown\r\n ): void {\r\n if (!this.enabled) return;\r\n if (this.valuesEqual(oldValue, newValue)) return;\r\n\r\n const key = `paraProp:${property}:${this.stringifyValue(newValue)}@${this.getElementId(paragraph)}`;\r\n\r\n this.addPendingChange(key, {\r\n type: 'paragraphPropertiesChange',\r\n property,\r\n previousValue: oldValue,\r\n newValue,\r\n element: paragraph,\r\n timestamp: Date.now(),\r\n });\r\n }\r\n\r\n trackHyperlinkChange(\r\n hyperlink: TrackableElement,\r\n changeType: string,\r\n oldValue: unknown,\r\n newValue: unknown\r\n ): void {\r\n if (!this.enabled) return;\r\n if (this.valuesEqual(oldValue, newValue)) return;\r\n\r\n // Hyperlink changes use dedicated type for proper categorization\r\n const key = `hyperlink:${changeType}:${this.stringifyValue(newValue)}@${this.getElementId(hyperlink)}`;\r\n\r\n this.addPendingChange(key, {\r\n type: 'hyperlinkChange',\r\n property: changeType,\r\n previousValue: oldValue,\r\n newValue,\r\n element: hyperlink,\r\n timestamp: Date.now(),\r\n });\r\n }\r\n\r\n trackTableChange(\r\n element: TrackableElement,\r\n property: string,\r\n oldValue: unknown,\r\n newValue: unknown\r\n ): void {\r\n if (!this.enabled) return;\r\n if (this.valuesEqual(oldValue, newValue)) return;\r\n\r\n // Determine revision type based on element type using instanceof (minification-safe)\r\n let type: RevisionType = 'tablePropertiesChange';\r\n let elementType = 'Table';\r\n\r\n if (element instanceof TableRow) {\r\n type = 'tableRowPropertiesChange';\r\n elementType = 'TableRow';\r\n } else if (element instanceof TableCell) {\r\n type = 'tableCellPropertiesChange';\r\n elementType = 'TableCell';\r\n }\r\n\r\n const key = `table:${elementType}:${property}:${this.stringifyValue(newValue)}@${this.getElementId(element)}`;\r\n\r\n this.addPendingChange(key, {\r\n type,\r\n property,\r\n previousValue: oldValue,\r\n newValue,\r\n element,\r\n timestamp: Date.now(),\r\n });\r\n }\r\n\r\n trackSectionChange(\r\n section: TrackableElement,\r\n property: string,\r\n oldValue: unknown,\r\n newValue: unknown\r\n ): void {\r\n if (!this.enabled) return;\r\n if (this.valuesEqual(oldValue, newValue)) return;\r\n\r\n const key = `section:${property}:${this.stringifyValue(newValue)}@${this.getElementId(section)}`;\r\n\r\n this.addPendingChange(key, {\r\n type: 'sectionPropertiesChange',\r\n property,\r\n previousValue: oldValue,\r\n newValue,\r\n element: section,\r\n timestamp: Date.now(),\r\n });\r\n }\r\n\r\n trackInsertion(element: TrackableElement, text: string): void {\r\n if (!this.enabled) return;\r\n if (!text) return;\r\n\r\n const key = `insert:${Date.now()}:${text.substring(0, 20)}`;\r\n\r\n this.addPendingChange(key, {\r\n type: 'insert',\r\n property: 'text',\r\n previousValue: undefined,\r\n newValue: text,\r\n element,\r\n timestamp: Date.now(),\r\n });\r\n }\r\n\r\n trackDeletion(element: TrackableElement, text: string): void {\r\n if (!this.enabled) return;\r\n if (!text) return;\r\n\r\n const key = `delete:${Date.now()}:${text.substring(0, 20)}`;\r\n\r\n this.addPendingChange(key, {\r\n type: 'delete',\r\n property: 'text',\r\n previousValue: text,\r\n newValue: undefined,\r\n element,\r\n timestamp: Date.now(),\r\n });\r\n }\r\n\r\n flushPendingChanges(): Revision[] {\r\n const revisions: Revision[] = [];\r\n\r\n // Group pending changes by element for consolidation\r\n const paragraphChanges = new Map<Paragraph, PendingChange[]>();\r\n const tableChanges = new Map<Table, PendingChange[]>();\r\n const rowChanges = new Map<TableRow, PendingChange[]>();\r\n const cellChanges = new Map<TableCell, PendingChange[]>();\r\n const sectionChanges = new Map<Section, PendingChange[]>();\r\n const runChanges = new Map<Run, PendingChange[]>();\r\n\r\n for (const [, pending] of this.pendingChanges) {\r\n const revision = this.createRevision(pending);\r\n this.revisionManager.register(revision);\r\n revisions.push(revision);\r\n\r\n // Collect changes by element type for *PrChange application\r\n if (pending.type === 'paragraphPropertiesChange' && pending.element instanceof Paragraph) {\r\n const changes = paragraphChanges.get(pending.element) || [];\r\n changes.push(pending);\r\n paragraphChanges.set(pending.element, changes);\r\n } else if (pending.type === 'tablePropertiesChange' && pending.element instanceof Table) {\r\n const changes = tableChanges.get(pending.element) || [];\r\n changes.push(pending);\r\n tableChanges.set(pending.element, changes);\r\n } else if (pending.type === 'tableRowPropertiesChange' && pending.element instanceof TableRow) {\r\n const changes = rowChanges.get(pending.element) || [];\r\n changes.push(pending);\r\n rowChanges.set(pending.element, changes);\r\n } else if (pending.type === 'tableCellPropertiesChange' && pending.element instanceof TableCell) {\r\n const changes = cellChanges.get(pending.element) || [];\r\n changes.push(pending);\r\n cellChanges.set(pending.element, changes);\r\n } else if (pending.type === 'sectionPropertiesChange' && pending.element instanceof Section) {\r\n const changes = sectionChanges.get(pending.element) || [];\r\n changes.push(pending);\r\n sectionChanges.set(pending.element, changes);\r\n } else if (pending.type === 'runPropertiesChange' && pending.element instanceof Run) {\r\n const changes = runChanges.get(pending.element) || [];\r\n changes.push(pending);\r\n runChanges.set(pending.element, changes);\r\n }\r\n }\r\n\r\n // Apply pPrChange to each paragraph that has property changes\r\n for (const [paragraph, changes] of paragraphChanges) {\r\n this.applyParagraphPrChange(paragraph, changes);\r\n }\r\n\r\n // Apply tblPrChange to each Table\r\n // Per ECMA-376 §17.13.5.36, tblPrChange must contain FULL previous tblPr,\r\n // not just the delta of changed properties.\r\n for (const [table, changes] of tableChanges) {\r\n // Build full snapshot: start from current formatting, roll back changed properties\r\n const currentFormatting = table.getFormatting();\r\n const fullPrevProps: Record<string, unknown> = {};\r\n\r\n for (const [key, value] of Object.entries(currentFormatting)) {\r\n if (value !== undefined) {\r\n fullPrevProps[key] = value;\r\n }\r\n }\r\n\r\n // Roll back changed properties to their previous values\r\n let latestTimestamp = 0;\r\n for (const change of changes) {\r\n if (change.previousValue !== undefined) {\r\n fullPrevProps[change.property] = change.previousValue;\r\n } else {\r\n delete fullPrevProps[change.property];\r\n }\r\n if (change.timestamp > latestTimestamp) {\r\n latestTimestamp = change.timestamp;\r\n }\r\n }\r\n\r\n const date = formatDateForXml(new Date(latestTimestamp));\r\n\r\n const existing = table.getTblPrChange();\r\n if (existing) {\r\n // Merge: existing previous state takes precedence (it's the ORIGINAL baseline)\r\n const merged = { ...fullPrevProps, ...(existing.previousProperties || {}) };\r\n table.setTblPrChange({ ...existing, previousProperties: merged });\r\n } else {\r\n table.setTblPrChange({\r\n author: this.author,\r\n date,\r\n id: String(this.revisionManager.consumeNextId()),\r\n previousProperties: fullPrevProps,\r\n });\r\n }\r\n }\r\n\r\n // Apply trPrChange to each TableRow\r\n for (const [row, changes] of rowChanges) {\r\n this.applyElementPrChange(changes, (prevProps, getNextId, date) => {\r\n const existing = row.getTrPrChange();\r\n if (existing) {\r\n const merged = { ...(existing.previousProperties || {}), ...prevProps };\r\n row.setTrPrChange({ ...existing, previousProperties: merged });\r\n } else {\r\n row.setTrPrChange({ author: this.author, date, id: String(getNextId()), previousProperties: prevProps });\r\n }\r\n });\r\n }\r\n\r\n // Apply tcPrChange to each TableCell\r\n for (const [cell, changes] of cellChanges) {\r\n this.applyElementPrChange(changes, (prevProps, getNextId, date) => {\r\n const existing = cell.getTcPrChange();\r\n if (existing) {\r\n const merged = { ...(existing.previousProperties || {}), ...prevProps };\r\n cell.setTcPrChange({ ...existing, previousProperties: merged });\r\n } else {\r\n cell.setTcPrChange({ author: this.author, date, id: String(getNextId()), previousProperties: prevProps });\r\n }\r\n });\r\n }\r\n\r\n // Apply sectPrChange to each Section\r\n for (const [section, changes] of sectionChanges) {\r\n this.applyElementPrChange(changes, (prevProps, getNextId, date) => {\r\n const existing = section.getSectPrChange();\r\n if (existing) {\r\n const merged = { ...(existing.previousProperties || {}), ...prevProps };\r\n section.setSectPrChange({ ...existing, previousProperties: merged });\r\n } else {\r\n section.setSectPrChange({ author: this.author, date, id: String(getNextId()), previousProperties: prevProps });\r\n }\r\n });\r\n }\r\n\r\n // Apply rPrChange to each Run that has property changes\r\n for (const [run, changes] of runChanges) {\r\n this.applyRunPrChange(run, changes);\r\n }\r\n\r\n this.pendingChanges.clear();\r\n return revisions;\r\n }\r\n\r\n // ═══════════════════════════════════════════════════════════════════════════\r\n // Private Methods\r\n // ═══════════════════════════════════════════════════════════════════════════\r\n\r\n /**\r\n * Apply pPrChange to a paragraph (extracted from flushPendingChanges for readability)\r\n */\r\n private applyParagraphPrChange(paragraph: Paragraph, changes: PendingChange[]): void {\r\n const newPreviousProperties: Record<string, unknown> = {};\r\n let latestTimestamp = 0;\r\n\r\n for (const change of changes) {\r\n // Record previous value even if undefined (property wasn't set before)\r\n newPreviousProperties[change.property] = change.previousValue;\r\n if (change.timestamp > latestTimestamp) {\r\n latestTimestamp = change.timestamp;\r\n }\r\n }\r\n\r\n const existingChange = paragraph.formatting.pPrChange;\r\n\r\n if (existingChange) {\r\n const mergedPreviousProperties: Record<string, unknown> = {\r\n ...(existingChange.previousProperties || {}),\r\n };\r\n for (const [prop, value] of Object.entries(newPreviousProperties)) {\r\n mergedPreviousProperties[prop] = value;\r\n }\r\n paragraph.formatting.pPrChange = {\r\n author: existingChange.author,\r\n date: existingChange.date,\r\n id: existingChange.id,\r\n previousProperties: mergedPreviousProperties,\r\n };\r\n } else {\r\n const revisionId = this.revisionManager.consumeNextId();\r\n paragraph.formatting.pPrChange = {\r\n author: this.author,\r\n date: formatDateForXml(new Date(latestTimestamp)),\r\n id: String(revisionId),\r\n previousProperties: newPreviousProperties,\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Apply rPrChange to a run (mirrors applyParagraphPrChange for runs)\r\n */\r\n private applyRunPrChange(run: Run, changes: PendingChange[]): void {\r\n const newPreviousProperties: Partial<RunFormatting> = {};\r\n let latestTimestamp = 0;\r\n\r\n for (const change of changes) {\r\n (newPreviousProperties as Record<string, unknown>)[change.property] = change.previousValue;\r\n if (change.timestamp > latestTimestamp) {\r\n latestTimestamp = change.timestamp;\r\n }\r\n }\r\n\r\n const existingChange = run.getPropertyChangeRevision();\r\n\r\n if (existingChange) {\r\n // Merge with existing rPrChange — preserve original author/date,\r\n // add new previous properties\r\n const mergedPreviousProperties: Partial<RunFormatting> = {\r\n ...(existingChange.previousProperties || {}),\r\n ...newPreviousProperties,\r\n };\r\n run.setPropertyChangeRevision({\r\n ...existingChange,\r\n previousProperties: mergedPreviousProperties,\r\n });\r\n } else {\r\n const revisionId = this.revisionManager.consumeNextId();\r\n run.setPropertyChangeRevision({\r\n id: revisionId,\r\n author: this.author,\r\n date: new Date(latestTimestamp),\r\n previousProperties: newPreviousProperties,\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Generic helper to apply *PrChange to table/row/cell/section elements\r\n */\r\n private applyElementPrChange(\r\n changes: PendingChange[],\r\n applier: (prevProps: Record<string, unknown>, getNextId: () => number, date: string) => void\r\n ): void {\r\n const prevProps: Record<string, unknown> = {};\r\n let latestTimestamp = 0;\r\n\r\n for (const change of changes) {\r\n // Record previous value even if undefined (property wasn't set before)\r\n prevProps[change.property] = change.previousValue;\r\n if (change.timestamp > latestTimestamp) {\r\n latestTimestamp = change.timestamp;\r\n }\r\n }\r\n\r\n const date = formatDateForXml(new Date(latestTimestamp));\r\n applier(prevProps, () => this.revisionManager.consumeNextId(), date);\r\n }\r\n\r\n /**\r\n * Add a pending change, consolidating with existing if same key\r\n */\r\n private addPendingChange(key: string, change: PendingChange): void {\r\n const existing = this.pendingChanges.get(key);\r\n if (existing) {\r\n existing.count = (existing.count || 1) + 1;\r\n // Keep the first previousValue for consolidated changes\r\n } else {\r\n this.pendingChanges.set(key, { ...change, count: 1 });\r\n }\r\n }\r\n\r\n /**\r\n * Create a Revision from a pending change\r\n */\r\n private createRevision(pending: PendingChange): Revision {\r\n const previousProps: Record<string, any> = {};\r\n const newProps: Record<string, any> = {};\r\n\r\n if (pending.previousValue !== undefined) {\r\n previousProps[pending.property] = pending.previousValue;\r\n }\r\n if (pending.newValue !== undefined) {\r\n newProps[pending.property] = pending.newValue;\r\n }\r\n\r\n // Get or create a Run for the revision content\r\n const run = this.getRunFromElement(pending.element);\r\n\r\n return new Revision({\r\n author: this.author,\r\n type: pending.type,\r\n content: run,\r\n previousProperties:\r\n Object.keys(previousProps).length > 0 ? previousProps : undefined,\r\n newProperties: Object.keys(newProps).length > 0 ? newProps : undefined,\r\n date: new Date(pending.timestamp),\r\n });\r\n }\r\n\r\n /**\r\n * Get or create a Run from an element for revision content\r\n */\r\n private getRunFromElement(element: TrackableElement): Run {\r\n if (element instanceof Run) {\r\n return element;\r\n }\r\n\r\n // Use instanceof for type-safe element identification (minification-safe)\r\n if (element instanceof Table) return new Run('Table');\r\n if (element instanceof TableRow) return new Run('TableRow');\r\n if (element instanceof TableCell) return new Run('TableCell');\r\n if (element instanceof Section) return new Run('Section');\r\n if (element instanceof Paragraph) return new Run('Paragraph');\r\n\r\n // Fallback for other elements (e.g., Hyperlink)\r\n const hasGetText = 'getText' in element && typeof (element as { getText?: () => string }).getText === 'function';\r\n const text = hasGetText\r\n ? (element as { getText: () => string }).getText()\r\n : element?.constructor?.name || 'Unknown element';\r\n return new Run(typeof text === 'string' ? text : String(text));\r\n }\r\n\r\n /**\r\n * Get a stable unique ID for an element (used in consolidation keys)\r\n */\r\n private getElementId(element: TrackableElement): number {\r\n let id = this.elementIdMap.get(element as object);\r\n if (id === undefined) {\r\n id = this.elementIdCounter++;\r\n this.elementIdMap.set(element as object, id);\r\n }\r\n return id;\r\n }\r\n\r\n /**\r\n * Deep equality check for tracking values (handles objects, primitives, null/undefined)\r\n */\r\n private valuesEqual(a: unknown, b: unknown): boolean {\r\n if (a === b) return true;\r\n if (a == null || b == null) return false;\r\n if (typeof a !== 'object' || typeof b !== 'object') return false;\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n }\r\n\r\n /**\r\n * Stringify a value for use in consolidation key\r\n */\r\n private stringifyValue(value: unknown): string {\r\n if (value === undefined) return 'undefined';\r\n if (value === null) return 'null';\r\n if (typeof value === 'object') {\r\n return JSON.stringify(value);\r\n }\r\n return String(value);\r\n }\r\n\r\n /**\r\n * Create an insertion revision (factory to avoid circular dependency in Run)\r\n */\r\n createInsertion(content: Run, date?: Date): Revision {\r\n return Revision.createInsertion(this.author, content, date);\r\n }\r\n\r\n /**\r\n * Create a deletion revision (factory to avoid circular dependency in Run)\r\n */\r\n createDeletion(content: Run, date?: Date): Revision {\r\n return Revision.createDeletion(this.author, content, date);\r\n }\r\n\r\n /**\r\n * Get count of pending changes\r\n */\r\n getPendingCount(): number {\r\n return this.pendingChanges.size;\r\n }\r\n\r\n /**\r\n * Check if there are pending changes\r\n */\r\n hasPendingChanges(): boolean {\r\n return this.pendingChanges.size > 0;\r\n }\r\n\r\n /**\r\n * Clear all pending changes without creating revisions\r\n */\r\n clearPendingChanges(): void {\r\n this.pendingChanges.clear();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"DocumentTrackingContext.js","sourceRoot":"","sources":["../../src/tracking/DocumentTrackingContext.ts"],"names":[],"mappings":";;;AASA,mDAA8D;AAE9D,yCAA0D;AAC1D,qDAAkD;AAClD,6CAA0C;AAC1C,mDAAgD;AAChD,qDAAkD;AAClD,iDAA8C;AAE9C,4DAA2D;AAe3D,MAAa,uBAAuB;IAC1B,OAAO,GAAG,KAAK,CAAC;IAChB,eAAe,GAAG,IAAI,CAAC;IACvB,MAAM,GAAG,QAAQ,CAAC;IAClB,eAAe,CAAkB;IAGjC,gBAAgB,GAAG,CAAC,CAAC;IAErB,YAAY,GAAG,IAAI,OAAO,EAAkB,CAAC;IAG7C,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;IAGlD,MAAM,CAAU,qBAAqB,GAAG,IAAI,GAAG,CAAC;QACtD,MAAM;QACN,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,SAAS;QACT,WAAW;QACX,aAAa;QACb,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;QACX,WAAW;QACX,SAAS;QACT,kBAAkB;QAClB,SAAS;QACT,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;KACT,CAAC,CAAC;IAMH,YAAY,eAAgC;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAMD,MAAM,CAAC,OAA+B;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QACjD,CAAC;IACH,CAAC;IAKD,OAAO;QACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAOD,SAAS,CAAC,MAAc;QAEtB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAMD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,sBAAsB,CAAC,GAAQ,EAAE,QAAgB,EAAE,QAAiB,EAAE,QAAiB;QACrF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO;QAGjD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,uBAAuB,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzF,OAAO;QACT,CAAC;QAGD,MAAM,GAAG,GAAG,WAAW,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QAE7F,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,qBAAqB;YAC3B,QAAQ;YACR,aAAa,EAAE,QAAQ;YACvB,QAAQ;YACR,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B,CAC1B,SAA2B,EAC3B,QAAgB,EAChB,QAAiB,EACjB,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO;QAEjD,MAAM,GAAG,GAAG,YAAY,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;QAEpG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,2BAA2B;YACjC,QAAQ;YACR,aAAa,EAAE,QAAQ;YACvB,QAAQ;YACR,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAClB,SAA2B,EAC3B,UAAkB,EAClB,QAAiB,EACjB,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO;QAGjD,MAAM,GAAG,GAAG,aAAa,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;QAEvG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,QAAQ;YACvB,QAAQ;YACR,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CACd,OAAyB,EACzB,QAAgB,EAChB,QAAiB,EACjB,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO;QAGjD,IAAI,IAAI,GAAiB,uBAAuB,CAAC;QACjD,IAAI,WAAW,GAAG,OAAO,CAAC;QAE1B,IAAI,OAAO,YAAY,mBAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,0BAA0B,CAAC;YAClC,WAAW,GAAG,UAAU,CAAC;QAC3B,CAAC;aAAM,IAAI,OAAO,YAAY,qBAAS,EAAE,CAAC;YACxC,IAAI,GAAG,2BAA2B,CAAC;YACnC,WAAW,GAAG,WAAW,CAAC;QAC5B,CAAC;QAED,MAAM,GAAG,GAAG,SAAS,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAE9G,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACzB,IAAI;YACJ,QAAQ;YACR,aAAa,EAAE,QAAQ;YACvB,QAAQ;YACR,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,OAAyB,EACzB,QAAgB,EAChB,QAAiB,EACjB,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO;QAEjD,MAAM,GAAG,GAAG,WAAW,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAEjG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,yBAAyB;YAC/B,QAAQ;YACR,aAAa,EAAE,QAAQ;YACvB,QAAQ;YACR,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,OAAyB,EAAE,IAAY;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAE5D,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM;YAChB,aAAa,EAAE,SAAS;YACxB,QAAQ,EAAE,IAAI;YACd,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,OAAyB,EAAE,IAAY;QACnD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAE5D,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACzB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM;YAChB,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,SAAS;YACnB,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;QACjB,MAAM,SAAS,GAAe,EAAE,CAAC;QAGjC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,GAAG,EAA4B,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;QAEnD,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAGzB,IAAI,OAAO,CAAC,IAAI,KAAK,2BAA2B,IAAI,OAAO,CAAC,OAAO,YAAY,qBAAS,EAAE,CAAC;gBACzF,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAuB,IAAI,OAAO,CAAC,OAAO,YAAY,aAAK,EAAE,CAAC;gBACxF,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;iBAAM,IACL,OAAO,CAAC,IAAI,KAAK,0BAA0B;gBAC3C,OAAO,CAAC,OAAO,YAAY,mBAAQ,EACnC,CAAC;gBACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;iBAAM,IACL,OAAO,CAAC,IAAI,KAAK,2BAA2B;gBAC5C,OAAO,CAAC,OAAO,YAAY,qBAAS,EACpC,CAAC;gBACD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,yBAAyB,IAAI,OAAO,CAAC,OAAO,YAAY,iBAAO,EAAE,CAAC;gBAC5F,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,IAAI,OAAO,CAAC,OAAO,YAAY,SAAG,EAAE,CAAC;gBACpF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAGD,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACpD,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAKD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;YAE5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,aAAa,GAA4B,EAAE,CAAC;YAElD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC7D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC7B,CAAC;YACH,CAAC;YAGD,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;oBACvC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,OAAO,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC;gBACD,IAAI,MAAM,CAAC,SAAS,GAAG,eAAe,EAAE,CAAC;oBACvC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,IAAA,iCAAgB,EAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YACxC,IAAI,QAAQ,EAAE,CAAC;gBAEb,MAAM,MAAM,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC5E,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,cAAc,CAAC;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI;oBACJ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;oBAChD,kBAAkB,EAAE,aAAa;iBAClC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAGD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;gBAChE,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;gBACrC,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;oBACxE,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,aAAa,CAAC;wBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,IAAI;wBACJ,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;wBACvB,kBAAkB,EAAE,SAAS;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;gBAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;oBACxE,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,aAAa,CAAC;wBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,IAAI;wBACJ,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;wBACvB,kBAAkB,EAAE,SAAS;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,cAAc,EAAE,CAAC;YAChD,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;gBAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC3C,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;oBACxE,OAAO,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,eAAe,CAAC;wBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,IAAI;wBACJ,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;wBACvB,kBAAkB,EAAE,SAAS;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IASO,sBAAsB,CAAC,SAAoB,EAAE,OAAwB;QAC3E,MAAM,qBAAqB,GAA4B,EAAE,CAAC;QAC1D,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAE7B,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;YAC9D,IAAI,MAAM,CAAC,SAAS,GAAG,eAAe,EAAE,CAAC;gBACvC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QAEtD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,wBAAwB,GAA4B;gBACxD,GAAG,CAAC,cAAc,CAAC,kBAAkB,IAAI,EAAE,CAAC;aAC7C,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAClE,wBAAwB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACzC,CAAC;YACD,SAAS,CAAC,UAAU,CAAC,SAAS,GAAG;gBAC/B,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,EAAE,EAAE,cAAc,CAAC,EAAE;gBACrB,kBAAkB,EAAE,wBAAwB;aAC7C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;YACxD,SAAS,CAAC,UAAU,CAAC,SAAS,GAAG;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAA,iCAAgB,EAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;gBACjD,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC;gBACtB,kBAAkB,EAAE,qBAAqB;aAC1C,CAAC;QACJ,CAAC;IACH,CAAC;IAKO,gBAAgB,CAAC,GAAQ,EAAE,OAAwB;QACzD,MAAM,qBAAqB,GAA2B,EAAE,CAAC;QACzD,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC5B,qBAAiD,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;YAC3F,IAAI,MAAM,CAAC,SAAS,GAAG,eAAe,EAAE,CAAC;gBACvC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,GAAG,CAAC,yBAAyB,EAAE,CAAC;QAEvD,IAAI,cAAc,EAAE,CAAC;YAGnB,MAAM,wBAAwB,GAA2B;gBACvD,GAAG,CAAC,cAAc,CAAC,kBAAkB,IAAI,EAAE,CAAC;gBAC5C,GAAG,qBAAqB;aACzB,CAAC;YACF,GAAG,CAAC,yBAAyB,CAAC;gBAC5B,GAAG,cAAc;gBACjB,kBAAkB,EAAE,wBAAwB;aAC7C,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;YACxD,GAAG,CAAC,yBAAyB,CAAC;gBAC5B,EAAE,EAAE,UAAU;gBACd,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC;gBAC/B,kBAAkB,EAAE,qBAAqB;aAC1C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKO,oBAAoB,CAC1B,OAAwB,EACxB,OAA4F;QAE5F,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAE7B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;YAClD,IAAI,MAAM,CAAC,SAAS,GAAG,eAAe,EAAE,CAAC;gBACvC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;YACrC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,iCAAgB,EAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAKO,gBAAgB,CAAC,GAAW,EAAE,MAAqB;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAE7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAKO,cAAc,CAAC,OAAsB;QAC3C,MAAM,aAAa,GAAwB,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAwB,EAAE,CAAC;QAEzC,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACxC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;QAC1D,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QAChD,CAAC;QAGD,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEpD,OAAO,IAAI,mBAAQ,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,GAAG;YACZ,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YACrF,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACtE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAKO,iBAAiB,CAAC,OAAyB;QACjD,IAAI,OAAO,YAAY,SAAG,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QAGD,IAAI,OAAO,YAAY,aAAK;YAAE,OAAO,IAAI,SAAG,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,OAAO,YAAY,mBAAQ;YAAE,OAAO,IAAI,SAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,OAAO,YAAY,qBAAS;YAAE,OAAO,IAAI,SAAG,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,OAAO,YAAY,iBAAO;YAAE,OAAO,IAAI,SAAG,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,OAAO,YAAY,qBAAS;YAAE,OAAO,IAAI,SAAG,CAAC,WAAW,CAAC,CAAC;QAG9D,MAAM,UAAU,GACd,SAAS,IAAI,OAAO,IAAI,OAAQ,OAAsC,CAAC,OAAO,KAAK,UAAU,CAAC;QAChG,MAAM,IAAI,GAAG,UAAU;YACrB,CAAC,CAAE,OAAqC,CAAC,OAAO,EAAE;YAClD,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,iBAAiB,CAAC;QACpD,OAAO,IAAI,SAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAKO,YAAY,CAAC,OAAyB;QAC5C,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAiB,CAAC,CAAC;QAClD,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAiB,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAKO,WAAW,CAAC,CAAU,EAAE,CAAU;QACxC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACjE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAKO,cAAc,CAAC,KAAc;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,WAAW,CAAC;QAC5C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAKD,eAAe,CAAC,OAAY,EAAE,IAAW;QACvC,OAAO,mBAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAKD,cAAc,CAAC,OAAY,EAAE,IAAW;QACtC,OAAO,mBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAKD,eAAe;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAClC,CAAC;IAKD,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC;IACtC,CAAC;IAKD,mBAAmB;QACjB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;;AA5oBH,0DA6oBC","sourcesContent":["/**\n * DocumentTrackingContext - Implementation of automatic change tracking\n *\n * Manages pending changes and creates Revision objects when flushed.\n * Supports consolidation of similar changes within a time window.\n *\n * @module DocumentTrackingContext\n */\n\nimport { Revision, RevisionType } from '../elements/Revision';\nimport { RevisionManager } from '../elements/RevisionManager';\nimport { Run, type RunFormatting } from '../elements/Run';\nimport { Paragraph } from '../elements/Paragraph';\nimport { Table } from '../elements/Table';\nimport { TableRow } from '../elements/TableRow';\nimport { TableCell } from '../elements/TableCell';\nimport { Section } from '../elements/Section';\nimport type { TrackingContext, PendingChange, TrackableElement } from './TrackingContext';\nimport { formatDateForXml } from '../utils/dateFormatting';\n\n/**\n * Enable options for tracking context\n */\nexport interface TrackingEnableOptions {\n /** Author name for new revisions (default: 'DocHub') */\n author?: string;\n /** Whether to track formatting changes (default: true) */\n trackFormatting?: boolean;\n}\n\n/**\n * Implementation of TrackingContext for Document\n */\nexport class DocumentTrackingContext implements TrackingContext {\n private enabled = false;\n private trackFormatting = true;\n private author = 'DocHub';\n private revisionManager: RevisionManager;\n\n /** Counter for assigning stable element IDs */\n private elementIdCounter = 0;\n /** Stable element identity map (WeakMap so elements can be GC'd) */\n private elementIdMap = new WeakMap<object, number>();\n\n /** Pending changes waiting to be flushed */\n private pendingChanges = new Map<string, PendingChange>();\n\n /** Properties considered \"formatting\" (vs structural) */\n private static readonly FORMATTING_PROPERTIES = new Set([\n 'bold',\n 'italic',\n 'underline',\n 'strike',\n 'dstrike',\n 'subscript',\n 'superscript',\n 'font',\n 'size',\n 'color',\n 'highlight',\n 'smallCaps',\n 'allCaps',\n 'characterSpacing',\n 'scaling',\n 'position',\n 'emphasis',\n 'shadow',\n 'emboss',\n 'imprint',\n 'outline',\n 'vanish',\n ]);\n\n /**\n * Creates a new DocumentTrackingContext\n * @param revisionManager - RevisionManager to register revisions with\n */\n constructor(revisionManager: RevisionManager) {\n this.revisionManager = revisionManager;\n }\n\n /**\n * Enable change tracking\n * @param options - Enable options\n */\n enable(options?: TrackingEnableOptions): void {\n this.enabled = true;\n if (options?.author) {\n this.author = options.author;\n }\n if (options?.trackFormatting !== undefined) {\n this.trackFormatting = options.trackFormatting;\n }\n }\n\n /**\n * Disable change tracking and flush pending changes\n */\n disable(): void {\n this.flushPendingChanges();\n this.enabled = false;\n }\n\n /**\n * Set the author for new revisions\n * Flushes any pending changes before switching to prevent mixed authorship\n * @param author - Author name\n */\n setAuthor(author: string): void {\n // Flush pending changes before switching authors to prevent mixed authorship\n if (this.enabled && this.pendingChanges.size > 0) {\n this.flushPendingChanges();\n }\n this.author = author;\n }\n\n // ═══════════════════════════════════════════════════════════════════════════\n // TrackingContext Interface Implementation\n // ═══════════════════════════════════════════════════════════════════════════\n\n isEnabled(): boolean {\n return this.enabled;\n }\n\n getAuthor(): string {\n return this.author;\n }\n\n getRevisionManager(): RevisionManager {\n return this.revisionManager;\n }\n\n isTrackFormattingEnabled(): boolean {\n return this.trackFormatting;\n }\n\n trackRunPropertyChange(run: Run, property: string, oldValue: unknown, newValue: unknown): void {\n if (!this.enabled) return;\n if (this.valuesEqual(oldValue, newValue)) return;\n\n // Skip formatting changes if not tracking them\n if (!this.trackFormatting && DocumentTrackingContext.FORMATTING_PROPERTIES.has(property)) {\n return;\n }\n\n // Create consolidation key with element identity\n const key = `runProp:${property}:${this.stringifyValue(newValue)}@${this.getElementId(run)}`;\n\n this.addPendingChange(key, {\n type: 'runPropertiesChange',\n property,\n previousValue: oldValue,\n newValue,\n element: run,\n timestamp: Date.now(),\n });\n }\n\n trackParagraphPropertyChange(\n paragraph: TrackableElement,\n property: string,\n oldValue: unknown,\n newValue: unknown\n ): void {\n if (!this.enabled) return;\n if (this.valuesEqual(oldValue, newValue)) return;\n\n const key = `paraProp:${property}:${this.stringifyValue(newValue)}@${this.getElementId(paragraph)}`;\n\n this.addPendingChange(key, {\n type: 'paragraphPropertiesChange',\n property,\n previousValue: oldValue,\n newValue,\n element: paragraph,\n timestamp: Date.now(),\n });\n }\n\n trackHyperlinkChange(\n hyperlink: TrackableElement,\n changeType: string,\n oldValue: unknown,\n newValue: unknown\n ): void {\n if (!this.enabled) return;\n if (this.valuesEqual(oldValue, newValue)) return;\n\n // Hyperlink changes use dedicated type for proper categorization\n const key = `hyperlink:${changeType}:${this.stringifyValue(newValue)}@${this.getElementId(hyperlink)}`;\n\n this.addPendingChange(key, {\n type: 'hyperlinkChange',\n property: changeType,\n previousValue: oldValue,\n newValue,\n element: hyperlink,\n timestamp: Date.now(),\n });\n }\n\n trackTableChange(\n element: TrackableElement,\n property: string,\n oldValue: unknown,\n newValue: unknown\n ): void {\n if (!this.enabled) return;\n if (this.valuesEqual(oldValue, newValue)) return;\n\n // Determine revision type based on element type using instanceof (minification-safe)\n let type: RevisionType = 'tablePropertiesChange';\n let elementType = 'Table';\n\n if (element instanceof TableRow) {\n type = 'tableRowPropertiesChange';\n elementType = 'TableRow';\n } else if (element instanceof TableCell) {\n type = 'tableCellPropertiesChange';\n elementType = 'TableCell';\n }\n\n const key = `table:${elementType}:${property}:${this.stringifyValue(newValue)}@${this.getElementId(element)}`;\n\n this.addPendingChange(key, {\n type,\n property,\n previousValue: oldValue,\n newValue,\n element,\n timestamp: Date.now(),\n });\n }\n\n trackSectionChange(\n section: TrackableElement,\n property: string,\n oldValue: unknown,\n newValue: unknown\n ): void {\n if (!this.enabled) return;\n if (this.valuesEqual(oldValue, newValue)) return;\n\n const key = `section:${property}:${this.stringifyValue(newValue)}@${this.getElementId(section)}`;\n\n this.addPendingChange(key, {\n type: 'sectionPropertiesChange',\n property,\n previousValue: oldValue,\n newValue,\n element: section,\n timestamp: Date.now(),\n });\n }\n\n trackInsertion(element: TrackableElement, text: string): void {\n if (!this.enabled) return;\n if (!text) return;\n\n const key = `insert:${Date.now()}:${text.substring(0, 20)}`;\n\n this.addPendingChange(key, {\n type: 'insert',\n property: 'text',\n previousValue: undefined,\n newValue: text,\n element,\n timestamp: Date.now(),\n });\n }\n\n trackDeletion(element: TrackableElement, text: string): void {\n if (!this.enabled) return;\n if (!text) return;\n\n const key = `delete:${Date.now()}:${text.substring(0, 20)}`;\n\n this.addPendingChange(key, {\n type: 'delete',\n property: 'text',\n previousValue: text,\n newValue: undefined,\n element,\n timestamp: Date.now(),\n });\n }\n\n flushPendingChanges(): Revision[] {\n const revisions: Revision[] = [];\n\n // Group pending changes by element for consolidation\n const paragraphChanges = new Map<Paragraph, PendingChange[]>();\n const tableChanges = new Map<Table, PendingChange[]>();\n const rowChanges = new Map<TableRow, PendingChange[]>();\n const cellChanges = new Map<TableCell, PendingChange[]>();\n const sectionChanges = new Map<Section, PendingChange[]>();\n const runChanges = new Map<Run, PendingChange[]>();\n\n for (const [, pending] of this.pendingChanges) {\n const revision = this.createRevision(pending);\n this.revisionManager.register(revision);\n revisions.push(revision);\n\n // Collect changes by element type for *PrChange application\n if (pending.type === 'paragraphPropertiesChange' && pending.element instanceof Paragraph) {\n const changes = paragraphChanges.get(pending.element) || [];\n changes.push(pending);\n paragraphChanges.set(pending.element, changes);\n } else if (pending.type === 'tablePropertiesChange' && pending.element instanceof Table) {\n const changes = tableChanges.get(pending.element) || [];\n changes.push(pending);\n tableChanges.set(pending.element, changes);\n } else if (\n pending.type === 'tableRowPropertiesChange' &&\n pending.element instanceof TableRow\n ) {\n const changes = rowChanges.get(pending.element) || [];\n changes.push(pending);\n rowChanges.set(pending.element, changes);\n } else if (\n pending.type === 'tableCellPropertiesChange' &&\n pending.element instanceof TableCell\n ) {\n const changes = cellChanges.get(pending.element) || [];\n changes.push(pending);\n cellChanges.set(pending.element, changes);\n } else if (pending.type === 'sectionPropertiesChange' && pending.element instanceof Section) {\n const changes = sectionChanges.get(pending.element) || [];\n changes.push(pending);\n sectionChanges.set(pending.element, changes);\n } else if (pending.type === 'runPropertiesChange' && pending.element instanceof Run) {\n const changes = runChanges.get(pending.element) || [];\n changes.push(pending);\n runChanges.set(pending.element, changes);\n }\n }\n\n // Apply pPrChange to each paragraph that has property changes\n for (const [paragraph, changes] of paragraphChanges) {\n this.applyParagraphPrChange(paragraph, changes);\n }\n\n // Apply tblPrChange to each Table\n // Per ECMA-376 §17.13.5.36, tblPrChange must contain FULL previous tblPr,\n // not just the delta of changed properties.\n for (const [table, changes] of tableChanges) {\n // Build full snapshot: start from current formatting, roll back changed properties\n const currentFormatting = table.getFormatting();\n const fullPrevProps: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(currentFormatting)) {\n if (value !== undefined) {\n fullPrevProps[key] = value;\n }\n }\n\n // Roll back changed properties to their previous values\n let latestTimestamp = 0;\n for (const change of changes) {\n if (change.previousValue !== undefined) {\n fullPrevProps[change.property] = change.previousValue;\n } else {\n delete fullPrevProps[change.property];\n }\n if (change.timestamp > latestTimestamp) {\n latestTimestamp = change.timestamp;\n }\n }\n\n const date = formatDateForXml(new Date(latestTimestamp));\n\n const existing = table.getTblPrChange();\n if (existing) {\n // Merge: existing previous state takes precedence (it's the ORIGINAL baseline)\n const merged = { ...fullPrevProps, ...(existing.previousProperties || {}) };\n table.setTblPrChange({ ...existing, previousProperties: merged });\n } else {\n table.setTblPrChange({\n author: this.author,\n date,\n id: String(this.revisionManager.consumeNextId()),\n previousProperties: fullPrevProps,\n });\n }\n }\n\n // Apply trPrChange to each TableRow\n for (const [row, changes] of rowChanges) {\n this.applyElementPrChange(changes, (prevProps, getNextId, date) => {\n const existing = row.getTrPrChange();\n if (existing) {\n const merged = { ...(existing.previousProperties || {}), ...prevProps };\n row.setTrPrChange({ ...existing, previousProperties: merged });\n } else {\n row.setTrPrChange({\n author: this.author,\n date,\n id: String(getNextId()),\n previousProperties: prevProps,\n });\n }\n });\n }\n\n // Apply tcPrChange to each TableCell\n for (const [cell, changes] of cellChanges) {\n this.applyElementPrChange(changes, (prevProps, getNextId, date) => {\n const existing = cell.getTcPrChange();\n if (existing) {\n const merged = { ...(existing.previousProperties || {}), ...prevProps };\n cell.setTcPrChange({ ...existing, previousProperties: merged });\n } else {\n cell.setTcPrChange({\n author: this.author,\n date,\n id: String(getNextId()),\n previousProperties: prevProps,\n });\n }\n });\n }\n\n // Apply sectPrChange to each Section\n for (const [section, changes] of sectionChanges) {\n this.applyElementPrChange(changes, (prevProps, getNextId, date) => {\n const existing = section.getSectPrChange();\n if (existing) {\n const merged = { ...(existing.previousProperties || {}), ...prevProps };\n section.setSectPrChange({ ...existing, previousProperties: merged });\n } else {\n section.setSectPrChange({\n author: this.author,\n date,\n id: String(getNextId()),\n previousProperties: prevProps,\n });\n }\n });\n }\n\n // Apply rPrChange to each Run that has property changes\n for (const [run, changes] of runChanges) {\n this.applyRunPrChange(run, changes);\n }\n\n this.pendingChanges.clear();\n return revisions;\n }\n\n // ═══════════════════════════════════════════════════════════════════════════\n // Private Methods\n // ═══════════════════════════════════════════════════════════════════════════\n\n /**\n * Apply pPrChange to a paragraph (extracted from flushPendingChanges for readability)\n */\n private applyParagraphPrChange(paragraph: Paragraph, changes: PendingChange[]): void {\n const newPreviousProperties: Record<string, unknown> = {};\n let latestTimestamp = 0;\n\n for (const change of changes) {\n // Record previous value even if undefined (property wasn't set before)\n newPreviousProperties[change.property] = change.previousValue;\n if (change.timestamp > latestTimestamp) {\n latestTimestamp = change.timestamp;\n }\n }\n\n const existingChange = paragraph.formatting.pPrChange;\n\n if (existingChange) {\n const mergedPreviousProperties: Record<string, unknown> = {\n ...(existingChange.previousProperties || {}),\n };\n for (const [prop, value] of Object.entries(newPreviousProperties)) {\n mergedPreviousProperties[prop] = value;\n }\n paragraph.formatting.pPrChange = {\n author: existingChange.author,\n date: existingChange.date,\n id: existingChange.id,\n previousProperties: mergedPreviousProperties,\n };\n } else {\n const revisionId = this.revisionManager.consumeNextId();\n paragraph.formatting.pPrChange = {\n author: this.author,\n date: formatDateForXml(new Date(latestTimestamp)),\n id: String(revisionId),\n previousProperties: newPreviousProperties,\n };\n }\n }\n\n /**\n * Apply rPrChange to a run (mirrors applyParagraphPrChange for runs)\n */\n private applyRunPrChange(run: Run, changes: PendingChange[]): void {\n const newPreviousProperties: Partial<RunFormatting> = {};\n let latestTimestamp = 0;\n\n for (const change of changes) {\n (newPreviousProperties as Record<string, unknown>)[change.property] = change.previousValue;\n if (change.timestamp > latestTimestamp) {\n latestTimestamp = change.timestamp;\n }\n }\n\n const existingChange = run.getPropertyChangeRevision();\n\n if (existingChange) {\n // Merge with existing rPrChange — preserve original author/date,\n // add new previous properties\n const mergedPreviousProperties: Partial<RunFormatting> = {\n ...(existingChange.previousProperties || {}),\n ...newPreviousProperties,\n };\n run.setPropertyChangeRevision({\n ...existingChange,\n previousProperties: mergedPreviousProperties,\n });\n } else {\n const revisionId = this.revisionManager.consumeNextId();\n run.setPropertyChangeRevision({\n id: revisionId,\n author: this.author,\n date: new Date(latestTimestamp),\n previousProperties: newPreviousProperties,\n });\n }\n }\n\n /**\n * Generic helper to apply *PrChange to table/row/cell/section elements\n */\n private applyElementPrChange(\n changes: PendingChange[],\n applier: (prevProps: Record<string, unknown>, getNextId: () => number, date: string) => void\n ): void {\n const prevProps: Record<string, unknown> = {};\n let latestTimestamp = 0;\n\n for (const change of changes) {\n // Record previous value even if undefined (property wasn't set before)\n prevProps[change.property] = change.previousValue;\n if (change.timestamp > latestTimestamp) {\n latestTimestamp = change.timestamp;\n }\n }\n\n const date = formatDateForXml(new Date(latestTimestamp));\n applier(prevProps, () => this.revisionManager.consumeNextId(), date);\n }\n\n /**\n * Add a pending change, consolidating with existing if same key\n */\n private addPendingChange(key: string, change: PendingChange): void {\n const existing = this.pendingChanges.get(key);\n if (existing) {\n existing.count = (existing.count || 1) + 1;\n // Keep the first previousValue for consolidated changes\n } else {\n this.pendingChanges.set(key, { ...change, count: 1 });\n }\n }\n\n /**\n * Create a Revision from a pending change\n */\n private createRevision(pending: PendingChange): Revision {\n const previousProps: Record<string, any> = {};\n const newProps: Record<string, any> = {};\n\n if (pending.previousValue !== undefined) {\n previousProps[pending.property] = pending.previousValue;\n }\n if (pending.newValue !== undefined) {\n newProps[pending.property] = pending.newValue;\n }\n\n // Get or create a Run for the revision content\n const run = this.getRunFromElement(pending.element);\n\n return new Revision({\n author: this.author,\n type: pending.type,\n content: run,\n previousProperties: Object.keys(previousProps).length > 0 ? previousProps : undefined,\n newProperties: Object.keys(newProps).length > 0 ? newProps : undefined,\n date: new Date(pending.timestamp),\n });\n }\n\n /**\n * Get or create a Run from an element for revision content\n */\n private getRunFromElement(element: TrackableElement): Run {\n if (element instanceof Run) {\n return element;\n }\n\n // Use instanceof for type-safe element identification (minification-safe)\n if (element instanceof Table) return new Run('Table');\n if (element instanceof TableRow) return new Run('TableRow');\n if (element instanceof TableCell) return new Run('TableCell');\n if (element instanceof Section) return new Run('Section');\n if (element instanceof Paragraph) return new Run('Paragraph');\n\n // Fallback for other elements (e.g., Hyperlink)\n const hasGetText =\n 'getText' in element && typeof (element as { getText?: () => string }).getText === 'function';\n const text = hasGetText\n ? (element as { getText: () => string }).getText()\n : element?.constructor?.name || 'Unknown element';\n return new Run(typeof text === 'string' ? text : String(text));\n }\n\n /**\n * Get a stable unique ID for an element (used in consolidation keys)\n */\n private getElementId(element: TrackableElement): number {\n let id = this.elementIdMap.get(element as object);\n if (id === undefined) {\n id = this.elementIdCounter++;\n this.elementIdMap.set(element as object, id);\n }\n return id;\n }\n\n /**\n * Deep equality check for tracking values (handles objects, primitives, null/undefined)\n */\n private valuesEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (typeof a !== 'object' || typeof b !== 'object') return false;\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n /**\n * Stringify a value for use in consolidation key\n */\n private stringifyValue(value: unknown): string {\n if (value === undefined) return 'undefined';\n if (value === null) return 'null';\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n return String(value);\n }\n\n /**\n * Create an insertion revision (factory to avoid circular dependency in Run)\n */\n createInsertion(content: Run, date?: Date): Revision {\n return Revision.createInsertion(this.author, content, date);\n }\n\n /**\n * Create a deletion revision (factory to avoid circular dependency in Run)\n */\n createDeletion(content: Run, date?: Date): Revision {\n return Revision.createDeletion(this.author, content, date);\n }\n\n /**\n * Get count of pending changes\n */\n getPendingCount(): number {\n return this.pendingChanges.size;\n }\n\n /**\n * Check if there are pending changes\n */\n hasPendingChanges(): boolean {\n return this.pendingChanges.size > 0;\n }\n\n /**\n * Clear all pending changes without creating revisions\n */\n clearPendingChanges(): void {\n this.pendingChanges.clear();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TrackingContext.d.ts","sourceRoot":"","sources":["../../src/tracking/TrackingContext.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,gBAAgB,GAAG,GAAG,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG;IAAE,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAK5H,MAAM,WAAW,aAAa;IAE5B,IAAI,EAAE,YAAY,CAAC;IAEnB,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,EAAE,OAAO,CAAC;IAEvB,QAAQ,EAAE,OAAO,CAAC;IAElB,OAAO,EAAE,gBAAgB,CAAC;IAE1B,SAAS,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,WAAW,eAAe;IAI9B,SAAS,IAAI,OAAO,CAAC;IAKrB,SAAS,IAAI,MAAM,CAAC;IAKpB,kBAAkB,IAAI,eAAe,CAAC;IAKtC,wBAAwB,IAAI,OAAO,CAAC;IASpC,sBAAsB,CACpB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAAC;IASR,4BAA4B,CAC1B,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAAC;IASR,oBAAoB,CAClB,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAAC;IASR,gBAAgB,CACd,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAAC;IASR,kBAAkB,CAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAAC;IAOR,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAO9D,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAO7D,mBAAmB,IAAI,QAAQ,EAAE,CAAC;IAOlC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IAOrD,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;CACrD"}
1
+ {"version":3,"file":"TrackingContext.d.ts","sourceRoot":"","sources":["../../src/tracking/TrackingContext.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,gBAAgB,GACxB,GAAG,GACH,SAAS,GACT,KAAK,GACL,QAAQ,GACR,SAAS,GACT,OAAO,GACP;IAAE,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAKtC,MAAM,WAAW,aAAa;IAE5B,IAAI,EAAE,YAAY,CAAC;IAEnB,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,EAAE,OAAO,CAAC;IAEvB,QAAQ,EAAE,OAAO,CAAC;IAElB,OAAO,EAAE,gBAAgB,CAAC;IAE1B,SAAS,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,WAAW,eAAe;IAI9B,SAAS,IAAI,OAAO,CAAC;IAKrB,SAAS,IAAI,MAAM,CAAC;IAKpB,kBAAkB,IAAI,eAAe,CAAC;IAKtC,wBAAwB,IAAI,OAAO,CAAC;IASpC,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAS/F,4BAA4B,CAC1B,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAAC;IASR,oBAAoB,CAClB,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAAC;IASR,gBAAgB,CACd,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAAC;IASR,kBAAkB,CAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAAC;IAOR,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAO9D,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAO7D,mBAAmB,IAAI,QAAQ,EAAE,CAAC;IAOlC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IAOrD,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;CACrD"}