docxmlater 10.0.2 → 10.0.3

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 (393) hide show
  1. package/README.md +2 -2
  2. package/dist/constants/legacyCompatFlags.d.ts.map +1 -1
  3. package/dist/constants/legacyCompatFlags.js.map +1 -1
  4. package/dist/constants/limits.d.ts +0 -27
  5. package/dist/constants/limits.d.ts.map +1 -1
  6. package/dist/constants/limits.js +13 -13
  7. package/dist/constants/limits.js.map +1 -1
  8. package/dist/core/Document.d.ts +23 -19
  9. package/dist/core/Document.d.ts.map +1 -1
  10. package/dist/core/Document.js +197 -63
  11. package/dist/core/Document.js.map +1 -1
  12. package/dist/core/DocumentContent.d.ts.map +1 -1
  13. package/dist/core/DocumentContent.js.map +1 -1
  14. package/dist/core/DocumentGenerator.d.ts.map +1 -1
  15. package/dist/core/DocumentGenerator.js +59 -24
  16. package/dist/core/DocumentGenerator.js.map +1 -1
  17. package/dist/core/DocumentIdManager.d.ts.map +1 -1
  18. package/dist/core/DocumentIdManager.js.map +1 -1
  19. package/dist/core/DocumentParser.d.ts +6 -6
  20. package/dist/core/DocumentParser.d.ts.map +1 -1
  21. package/dist/core/DocumentParser.js +60 -54
  22. package/dist/core/DocumentParser.js.map +1 -1
  23. package/dist/core/DocumentValidator.d.ts.map +1 -1
  24. package/dist/core/DocumentValidator.js.map +1 -1
  25. package/dist/core/Relationship.d.ts.map +1 -1
  26. package/dist/core/Relationship.js +1 -1
  27. package/dist/core/Relationship.js.map +1 -1
  28. package/dist/core/RelationshipManager.js +3 -3
  29. package/dist/core/RelationshipManager.js.map +1 -1
  30. package/dist/elements/AlternateContent.js.map +1 -1
  31. package/dist/elements/Bookmark.d.ts.map +1 -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.js +1 -1
  36. package/dist/elements/Comment.js.map +1 -1
  37. package/dist/elements/CommentManager.d.ts.map +1 -1
  38. package/dist/elements/CommentManager.js +8 -2
  39. package/dist/elements/CommentManager.js.map +1 -1
  40. package/dist/elements/CommonTypes.d.ts.map +1 -1
  41. package/dist/elements/CommonTypes.js +1 -2
  42. package/dist/elements/CommonTypes.js.map +1 -1
  43. package/dist/elements/CustomXml.js.map +1 -1
  44. package/dist/elements/Endnote.d.ts.map +1 -1
  45. package/dist/elements/Endnote.js.map +1 -1
  46. package/dist/elements/EndnoteManager.d.ts.map +1 -1
  47. package/dist/elements/EndnoteManager.js.map +1 -1
  48. package/dist/elements/Field.d.ts.map +1 -1
  49. package/dist/elements/Field.js +31 -28
  50. package/dist/elements/Field.js.map +1 -1
  51. package/dist/elements/FieldHelpers.d.ts.map +1 -1
  52. package/dist/elements/FieldHelpers.js +6 -6
  53. package/dist/elements/FieldHelpers.js.map +1 -1
  54. package/dist/elements/FontManager.d.ts.map +1 -1
  55. package/dist/elements/FontManager.js.map +1 -1
  56. package/dist/elements/Footer.js.map +1 -1
  57. package/dist/elements/Footnote.d.ts.map +1 -1
  58. package/dist/elements/Footnote.js.map +1 -1
  59. package/dist/elements/FootnoteManager.d.ts.map +1 -1
  60. package/dist/elements/FootnoteManager.js.map +1 -1
  61. package/dist/elements/Header.js.map +1 -1
  62. package/dist/elements/HeaderFooterManager.js.map +1 -1
  63. package/dist/elements/Hyperlink.d.ts.map +1 -1
  64. package/dist/elements/Hyperlink.js +5 -5
  65. package/dist/elements/Hyperlink.js.map +1 -1
  66. package/dist/elements/Image.d.ts +2 -2
  67. package/dist/elements/Image.d.ts.map +1 -1
  68. package/dist/elements/Image.js +21 -5
  69. package/dist/elements/Image.js.map +1 -1
  70. package/dist/elements/ImageManager.d.ts.map +1 -1
  71. package/dist/elements/ImageManager.js +2 -2
  72. package/dist/elements/ImageManager.js.map +1 -1
  73. package/dist/elements/ImageRun.js.map +1 -1
  74. package/dist/elements/MathElement.js.map +1 -1
  75. package/dist/elements/Paragraph.d.ts.map +1 -1
  76. package/dist/elements/Paragraph.js +128 -117
  77. package/dist/elements/Paragraph.js.map +1 -1
  78. package/dist/elements/PreservedElement.js.map +1 -1
  79. package/dist/elements/PropertyChangeTypes.js.map +1 -1
  80. package/dist/elements/RangeMarker.js.map +1 -1
  81. package/dist/elements/Revision.d.ts +1 -0
  82. package/dist/elements/Revision.d.ts.map +1 -1
  83. package/dist/elements/Revision.js +44 -5
  84. package/dist/elements/Revision.js.map +1 -1
  85. package/dist/elements/RevisionContent.js.map +1 -1
  86. package/dist/elements/RevisionManager.d.ts.map +1 -1
  87. package/dist/elements/RevisionManager.js.map +1 -1
  88. package/dist/elements/Run.d.ts.map +1 -1
  89. package/dist/elements/Run.js +1 -3
  90. package/dist/elements/Run.js.map +1 -1
  91. package/dist/elements/Section.d.ts.map +1 -1
  92. package/dist/elements/Section.js +127 -118
  93. package/dist/elements/Section.js.map +1 -1
  94. package/dist/elements/Shape.d.ts.map +1 -1
  95. package/dist/elements/Shape.js +21 -0
  96. package/dist/elements/Shape.js.map +1 -1
  97. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
  98. package/dist/elements/StructuredDocumentTag.js +20 -8
  99. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  100. package/dist/elements/Table.d.ts +2 -2
  101. package/dist/elements/Table.d.ts.map +1 -1
  102. package/dist/elements/Table.js +29 -35
  103. package/dist/elements/Table.js.map +1 -1
  104. package/dist/elements/TableCell.d.ts +2 -2
  105. package/dist/elements/TableCell.d.ts.map +1 -1
  106. package/dist/elements/TableCell.js +63 -67
  107. package/dist/elements/TableCell.js.map +1 -1
  108. package/dist/elements/TableGridChange.js.map +1 -1
  109. package/dist/elements/TableOfContents.d.ts +6 -6
  110. package/dist/elements/TableOfContents.d.ts.map +1 -1
  111. package/dist/elements/TableOfContents.js.map +1 -1
  112. package/dist/elements/TableOfContentsElement.js.map +1 -1
  113. package/dist/elements/TableRow.d.ts.map +1 -1
  114. package/dist/elements/TableRow.js +65 -47
  115. package/dist/elements/TableRow.js.map +1 -1
  116. package/dist/elements/TextBox.d.ts.map +1 -1
  117. package/dist/elements/TextBox.js +1 -1
  118. package/dist/elements/TextBox.js.map +1 -1
  119. package/dist/formatting/AbstractNumbering.d.ts +1 -1
  120. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  121. package/dist/formatting/AbstractNumbering.js +11 -11
  122. package/dist/formatting/AbstractNumbering.js.map +1 -1
  123. package/dist/formatting/NumberingInstance.d.ts.map +1 -1
  124. package/dist/formatting/NumberingInstance.js +4 -4
  125. package/dist/formatting/NumberingInstance.js.map +1 -1
  126. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  127. package/dist/formatting/NumberingLevel.js +26 -26
  128. package/dist/formatting/NumberingLevel.js.map +1 -1
  129. package/dist/formatting/NumberingManager.d.ts +1 -1
  130. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  131. package/dist/formatting/NumberingManager.js.map +1 -1
  132. package/dist/formatting/Style.d.ts.map +1 -1
  133. package/dist/formatting/Style.js +87 -95
  134. package/dist/formatting/Style.js.map +1 -1
  135. package/dist/formatting/StylesManager.d.ts +3 -3
  136. package/dist/formatting/StylesManager.d.ts.map +1 -1
  137. package/dist/formatting/StylesManager.js.map +1 -1
  138. package/dist/helpers/CleanupHelper.js.map +1 -1
  139. package/dist/images/ImageOptimizer.js.map +1 -1
  140. package/dist/index.js.map +1 -1
  141. package/dist/managers/DrawingManager.d.ts.map +1 -1
  142. package/dist/managers/DrawingManager.js.map +1 -1
  143. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  144. package/dist/tracking/TrackingContext.js.map +1 -1
  145. package/dist/types/compatibility-types.js.map +1 -1
  146. package/dist/types/formatting.js.map +1 -1
  147. package/dist/types/list-types.d.ts +4 -4
  148. package/dist/types/list-types.d.ts.map +1 -1
  149. package/dist/types/list-types.js.map +1 -1
  150. package/dist/types/settings-types.js.map +1 -1
  151. package/dist/types/styleConfig.js.map +1 -1
  152. package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
  153. package/dist/utils/ChangelogGenerator.js.map +1 -1
  154. package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
  155. package/dist/utils/CompatibilityUpgrader.js +7 -7
  156. package/dist/utils/CompatibilityUpgrader.js.map +1 -1
  157. package/dist/utils/InMemoryRevisionAcceptor.js +1 -1
  158. package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
  159. package/dist/utils/MoveOperationHelper.js.map +1 -1
  160. package/dist/utils/RevisionAwareProcessor.js.map +1 -1
  161. package/dist/utils/RevisionWalker.js.map +1 -1
  162. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  163. package/dist/utils/ShadingResolver.js +1 -1
  164. package/dist/utils/ShadingResolver.js.map +1 -1
  165. package/dist/utils/acceptRevisions.d.ts +0 -28
  166. package/dist/utils/acceptRevisions.d.ts.map +1 -1
  167. package/dist/utils/acceptRevisions.js +5 -7
  168. package/dist/utils/acceptRevisions.js.map +1 -1
  169. package/dist/utils/cnfStyleDecoder.js +1 -1
  170. package/dist/utils/cnfStyleDecoder.js.map +1 -1
  171. package/dist/utils/corruptionDetection.js.map +1 -1
  172. package/dist/utils/dateFormatting.js.map +1 -1
  173. package/dist/utils/deepClone.d.ts +0 -1
  174. package/dist/utils/deepClone.d.ts.map +1 -1
  175. package/dist/utils/deepClone.js +0 -7
  176. package/dist/utils/deepClone.js.map +1 -1
  177. package/dist/utils/diagnostics.d.ts +2 -2
  178. package/dist/utils/diagnostics.d.ts.map +1 -1
  179. package/dist/utils/diagnostics.js.map +1 -1
  180. package/dist/utils/errorHandling.js.map +1 -1
  181. package/dist/utils/formatting.js.map +1 -1
  182. package/dist/utils/list-detection.d.ts +2 -2
  183. package/dist/utils/list-detection.d.ts.map +1 -1
  184. package/dist/utils/list-detection.js +3 -3
  185. package/dist/utils/list-detection.js.map +1 -1
  186. package/dist/utils/logger.d.ts +2 -4
  187. package/dist/utils/logger.d.ts.map +1 -1
  188. package/dist/utils/logger.js +0 -2
  189. package/dist/utils/logger.js.map +1 -1
  190. package/dist/utils/parsingHelpers.js.map +1 -1
  191. package/dist/utils/stripTrackedChanges.d.ts +0 -19
  192. package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
  193. package/dist/utils/stripTrackedChanges.js +0 -2
  194. package/dist/utils/stripTrackedChanges.js.map +1 -1
  195. package/dist/utils/textDiff.js.map +1 -1
  196. package/dist/utils/units.js.map +1 -1
  197. package/dist/utils/validation.d.ts.map +1 -1
  198. package/dist/utils/validation.js.map +1 -1
  199. package/dist/utils/xmlSanitization.js.map +1 -1
  200. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  201. package/dist/validation/RevisionValidator.js.map +1 -1
  202. package/dist/validation/ValidationRules.js.map +1 -1
  203. package/dist/validation/index.js.map +1 -1
  204. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  205. package/dist/xml/XMLBuilder.js +10 -0
  206. package/dist/xml/XMLBuilder.js.map +1 -1
  207. package/dist/xml/XMLParser.d.ts.map +1 -1
  208. package/dist/xml/XMLParser.js +4 -5
  209. package/dist/xml/XMLParser.js.map +1 -1
  210. package/dist/zip/ZipHandler.js.map +1 -1
  211. package/dist/zip/ZipReader.js.map +1 -1
  212. package/dist/zip/ZipWriter.js.map +1 -1
  213. package/dist/zip/errors.js.map +1 -1
  214. package/dist/zip/types.js.map +1 -1
  215. package/package.json +34 -4
  216. package/src/__tests__/helper-methods.test.ts +512 -0
  217. package/src/constants/legacyCompatFlags.ts +138 -0
  218. package/src/constants/limits.ts +50 -0
  219. package/src/core/CLAUDE.md +109 -0
  220. package/src/core/Document.ts +15569 -0
  221. package/src/core/DocumentContent.ts +467 -0
  222. package/src/core/DocumentGenerator.ts +1104 -0
  223. package/src/core/DocumentIdManager.ts +158 -0
  224. package/src/core/DocumentParser.ts +10107 -0
  225. package/src/core/DocumentValidator.ts +372 -0
  226. package/src/core/Relationship.ts +367 -0
  227. package/src/core/RelationshipManager.ts +428 -0
  228. package/src/elements/AlternateContent.ts +42 -0
  229. package/src/elements/Bookmark.ts +210 -0
  230. package/src/elements/BookmarkManager.ts +250 -0
  231. package/src/elements/CLAUDE.md +126 -0
  232. package/src/elements/Comment.ts +359 -0
  233. package/src/elements/CommentManager.ts +502 -0
  234. package/src/elements/CommonTypes.ts +549 -0
  235. package/src/elements/CustomXml.ts +36 -0
  236. package/src/elements/Endnote.ts +217 -0
  237. package/src/elements/EndnoteManager.ts +249 -0
  238. package/src/elements/Field.ts +1233 -0
  239. package/src/elements/FieldHelpers.ts +333 -0
  240. package/src/elements/FontManager.ts +339 -0
  241. package/src/elements/Footer.ts +269 -0
  242. package/src/elements/Footnote.ts +217 -0
  243. package/src/elements/FootnoteManager.ts +249 -0
  244. package/src/elements/Header.ts +269 -0
  245. package/src/elements/HeaderFooterManager.ts +219 -0
  246. package/src/elements/Hyperlink.ts +1146 -0
  247. package/src/elements/Image.ts +1756 -0
  248. package/src/elements/ImageManager.ts +432 -0
  249. package/src/elements/ImageRun.ts +59 -0
  250. package/src/elements/MathElement.ts +65 -0
  251. package/src/elements/Paragraph.ts +4227 -0
  252. package/src/elements/PreservedElement.ts +53 -0
  253. package/src/elements/PropertyChangeTypes.ts +442 -0
  254. package/src/elements/RangeMarker.ts +400 -0
  255. package/src/elements/Revision.ts +1217 -0
  256. package/src/elements/RevisionContent.ts +73 -0
  257. package/src/elements/RevisionManager.ts +1070 -0
  258. package/src/elements/Run.ts +3068 -0
  259. package/src/elements/Section.ts +1421 -0
  260. package/src/elements/Shape.ts +873 -0
  261. package/src/elements/StructuredDocumentTag.ts +978 -0
  262. package/src/elements/Table.ts +2524 -0
  263. package/src/elements/TableCell.ts +1586 -0
  264. package/src/elements/TableGridChange.ts +151 -0
  265. package/src/elements/TableOfContents.ts +691 -0
  266. package/src/elements/TableOfContentsElement.ts +89 -0
  267. package/src/elements/TableRow.ts +906 -0
  268. package/src/elements/TextBox.ts +768 -0
  269. package/src/formatting/AbstractNumbering.ts +548 -0
  270. package/src/formatting/CLAUDE.md +74 -0
  271. package/src/formatting/NumberingInstance.ts +212 -0
  272. package/src/formatting/NumberingLevel.ts +1006 -0
  273. package/src/formatting/NumberingManager.ts +827 -0
  274. package/src/formatting/Style.ts +1833 -0
  275. package/src/formatting/StylesManager.ts +1005 -0
  276. package/src/helpers/CleanupHelper.ts +524 -0
  277. package/src/images/ImageOptimizer.ts +274 -0
  278. package/src/index.ts +554 -0
  279. package/src/managers/CLAUDE.md +47 -0
  280. package/src/managers/DrawingManager.ts +319 -0
  281. package/src/tracking/DocumentTrackingContext.ts +643 -0
  282. package/src/tracking/TrackingContext.ts +173 -0
  283. package/src/types/compatibility-types.ts +49 -0
  284. package/src/types/formatting.ts +210 -0
  285. package/src/types/list-types.ts +152 -0
  286. package/src/types/settings-types.ts +59 -0
  287. package/src/types/styleConfig.ts +189 -0
  288. package/src/utils/CLAUDE.md +153 -0
  289. package/src/utils/ChangelogGenerator.ts +1581 -0
  290. package/src/utils/CompatibilityUpgrader.ts +237 -0
  291. package/src/utils/InMemoryRevisionAcceptor.ts +668 -0
  292. package/src/utils/MoveOperationHelper.ts +238 -0
  293. package/src/utils/RevisionAwareProcessor.ts +526 -0
  294. package/src/utils/RevisionWalker.ts +457 -0
  295. package/src/utils/SelectiveRevisionAcceptor.ts +613 -0
  296. package/src/utils/ShadingResolver.ts +107 -0
  297. package/src/utils/acceptRevisions.ts +714 -0
  298. package/src/utils/cnfStyleDecoder.ts +217 -0
  299. package/src/utils/corruptionDetection.ts +345 -0
  300. package/src/utils/dateFormatting.ts +20 -0
  301. package/src/utils/deepClone.ts +78 -0
  302. package/src/utils/diagnostics.ts +129 -0
  303. package/src/utils/errorHandling.ts +80 -0
  304. package/src/utils/formatting.ts +213 -0
  305. package/src/utils/list-detection.ts +274 -0
  306. package/src/utils/logger.ts +404 -0
  307. package/src/utils/parsingHelpers.ts +190 -0
  308. package/src/utils/stripTrackedChanges.ts +353 -0
  309. package/src/utils/textDiff.ts +100 -0
  310. package/src/utils/units.ts +421 -0
  311. package/src/utils/validation.ts +542 -0
  312. package/src/utils/xmlSanitization.ts +182 -0
  313. package/src/validation/RevisionAutoFixer.ts +542 -0
  314. package/src/validation/RevisionValidator.ts +460 -0
  315. package/src/validation/ValidationRules.ts +338 -0
  316. package/src/validation/index.ts +30 -0
  317. package/src/xml/CLAUDE.md +65 -0
  318. package/src/xml/XMLBuilder.ts +871 -0
  319. package/src/xml/XMLParser.ts +919 -0
  320. package/src/zip/CLAUDE.md +55 -0
  321. package/src/zip/ZipHandler.ts +637 -0
  322. package/src/zip/ZipReader.ts +299 -0
  323. package/src/zip/ZipWriter.ts +390 -0
  324. package/src/zip/errors.ts +69 -0
  325. package/src/zip/types.ts +116 -0
  326. package/dist/core/ListNormalizer.d.ts +0 -23
  327. package/dist/core/ListNormalizer.d.ts.map +0 -1
  328. package/dist/core/ListNormalizer.js +0 -624
  329. package/dist/core/ListNormalizer.js.map +0 -1
  330. package/dist/images/index.d.ts +0 -2
  331. package/dist/images/index.d.ts.map +0 -1
  332. package/dist/images/index.js +0 -8
  333. package/dist/images/index.js.map +0 -1
  334. package/dist/ms-doc/cfb/CFBReader.d.ts +0 -35
  335. package/dist/ms-doc/cfb/CFBReader.d.ts.map +0 -1
  336. package/dist/ms-doc/cfb/CFBReader.js +0 -360
  337. package/dist/ms-doc/cfb/CFBReader.js.map +0 -1
  338. package/dist/ms-doc/converter/DocToDocxConverter.d.ts +0 -55
  339. package/dist/ms-doc/converter/DocToDocxConverter.d.ts.map +0 -1
  340. package/dist/ms-doc/converter/DocToDocxConverter.js +0 -324
  341. package/dist/ms-doc/converter/DocToDocxConverter.js.map +0 -1
  342. package/dist/ms-doc/fib/FIB.d.ts +0 -18
  343. package/dist/ms-doc/fib/FIB.d.ts.map +0 -1
  344. package/dist/ms-doc/fib/FIB.js +0 -342
  345. package/dist/ms-doc/fib/FIB.js.map +0 -1
  346. package/dist/ms-doc/fields/FieldParser.d.ts +0 -31
  347. package/dist/ms-doc/fields/FieldParser.d.ts.map +0 -1
  348. package/dist/ms-doc/fields/FieldParser.js +0 -266
  349. package/dist/ms-doc/fields/FieldParser.js.map +0 -1
  350. package/dist/ms-doc/images/PictureExtractor.d.ts +0 -22
  351. package/dist/ms-doc/images/PictureExtractor.d.ts.map +0 -1
  352. package/dist/ms-doc/images/PictureExtractor.js +0 -233
  353. package/dist/ms-doc/images/PictureExtractor.js.map +0 -1
  354. package/dist/ms-doc/index.d.ts +0 -20
  355. package/dist/ms-doc/index.d.ts.map +0 -1
  356. package/dist/ms-doc/index.js +0 -59
  357. package/dist/ms-doc/index.js.map +0 -1
  358. package/dist/ms-doc/properties/SPRM.d.ts +0 -210
  359. package/dist/ms-doc/properties/SPRM.d.ts.map +0 -1
  360. package/dist/ms-doc/properties/SPRM.js +0 -633
  361. package/dist/ms-doc/properties/SPRM.js.map +0 -1
  362. package/dist/ms-doc/sections/SectionParser.d.ts +0 -25
  363. package/dist/ms-doc/sections/SectionParser.d.ts.map +0 -1
  364. package/dist/ms-doc/sections/SectionParser.js +0 -214
  365. package/dist/ms-doc/sections/SectionParser.js.map +0 -1
  366. package/dist/ms-doc/styles/StyleSheet.d.ts +0 -23
  367. package/dist/ms-doc/styles/StyleSheet.d.ts.map +0 -1
  368. package/dist/ms-doc/styles/StyleSheet.js +0 -268
  369. package/dist/ms-doc/styles/StyleSheet.js.map +0 -1
  370. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts +0 -61
  371. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts.map +0 -1
  372. package/dist/ms-doc/subdocuments/SubdocumentParser.js +0 -208
  373. package/dist/ms-doc/subdocuments/SubdocumentParser.js.map +0 -1
  374. package/dist/ms-doc/tables/TableParser.d.ts +0 -29
  375. package/dist/ms-doc/tables/TableParser.d.ts.map +0 -1
  376. package/dist/ms-doc/tables/TableParser.js +0 -176
  377. package/dist/ms-doc/tables/TableParser.js.map +0 -1
  378. package/dist/ms-doc/text/PieceTable.d.ts +0 -21
  379. package/dist/ms-doc/text/PieceTable.d.ts.map +0 -1
  380. package/dist/ms-doc/text/PieceTable.js +0 -171
  381. package/dist/ms-doc/text/PieceTable.js.map +0 -1
  382. package/dist/ms-doc/types/Constants.d.ts +0 -99
  383. package/dist/ms-doc/types/Constants.d.ts.map +0 -1
  384. package/dist/ms-doc/types/Constants.js +0 -102
  385. package/dist/ms-doc/types/Constants.js.map +0 -1
  386. package/dist/ms-doc/types/DocTypes.d.ts +0 -368
  387. package/dist/ms-doc/types/DocTypes.d.ts.map +0 -1
  388. package/dist/ms-doc/types/DocTypes.js +0 -3
  389. package/dist/ms-doc/types/DocTypes.js.map +0 -1
  390. package/dist/tracking/index.d.ts +0 -3
  391. package/dist/tracking/index.d.ts.map +0 -1
  392. package/dist/tracking/index.js +0 -6
  393. package/dist/tracking/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Style.js","sourceRoot":"","sources":["../../src/formatting/Style.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Style.js","sourceRoot":"","sources":["../../src/formatting/Style.ts"],"names":[],"mappings":";;;AAKA,kDAA2D;AAG3D,yDAAgG;AAEhG,kDAA+C;AAC/C,0CAAoD;AAwOpD,MAAa,KAAK;IACR,UAAU,CAAkB;IAMpC,YAAY,UAA2B;QACrC,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;IACtC,CAAC;IAMD,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IACjC,CAAC;IAMD,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAMD,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAMD,aAAa;QACX,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAMD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,KAAK,CAAC;IAC5C,CAAC;IAOD,YAAY,CAAC,KAAc;QACzB,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,sBAAsB,CAAC,UAA+B;QACpD,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,gBAAgB,CAAC,UAAyB;QACxC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACvC,CAAC;IAMD,sBAAsB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;IAC7C,CAAC;IAQD,uBAAuB,CAAC,OAA6B;QACnD,IAAI,CAAC,UAAU,CAAC,oBAAoB,GAAG,OAAO,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,uBAAuB;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;IAC9C,CAAC;IAOD,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,aAAa,CAAC,QAAgB;QAC5B,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,aAAa,CAAC,MAAe;QAC3B,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,iBAAiB,CAAC,OAAgB;QAChC,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,SAAS,CAAC,MAAe;QACvB,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,WAAW,CAAC,QAAiB;QAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,eAAe,CAAC,OAAgB;QAC9B,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,kBAAkB,CAAC,UAAgC;QACjD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,sBAAsB,CAAC,UAAoC;QACzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,qBAAqB,CAAC,UAAmC;QACvD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,wBAAwB,CAAC,WAAuC;QAC9D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,qBAAqB,GAAG,EAAE,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAaD,OAAO;QACL,IAAI,CAAC;YAEH,IACE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO;gBACxB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;gBACrB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EACrB,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YAGD,MAAM,UAAU,GAAgB;gBAC9B,WAAW;gBACX,WAAW;gBACX,OAAO;gBACP,WAAW;aACZ,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACf,CAAC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxD,OAAO,KAAK,CAAC;YACf,CAAC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACxC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;gBAG/C,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;oBACjB,MAAM,eAAe,GAAG;wBACtB,MAAM;wBACN,QAAQ;wBACR,OAAO;wBACP,SAAS;wBACT,MAAM;wBACN,YAAY;qBACb,CAAC;oBACF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC5C,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBAGD,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;oBAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;wBAAE,OAAO,KAAK,CAAC;oBACrE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC;wBAAE,OAAO,KAAK,CAAC;oBACnE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC;wBAAE,OAAO,KAAK,CAAC;oBACjE,IACE,OAAO,CAAC,QAAQ;wBAChB,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EACxD,CAAC;wBACD,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBAGD,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;oBAE3B,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM;wBAAE,OAAO,KAAK,CAAC;oBAC/D,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM;wBAAE,OAAO,KAAK,CAAC;gBACnE,CAAC;YACH,CAAC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBAClC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;gBAGzC,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;oBAC9D,OAAO,KAAK,CAAC;gBACf,CAAC;gBAGD,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAGD,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;oBACjB,MAAM,eAAe,GAAG;wBACtB,OAAO;wBACP,MAAM;wBACN,MAAM;wBACN,UAAU;wBACV,UAAU;wBACV,UAAU;wBACV,WAAW;wBACX,aAAa;wBACb,SAAS;wBACT,YAAY;wBACZ,OAAO;wBACP,WAAW;wBACX,SAAS;wBACT,MAAM;wBACN,KAAK;wBACL,OAAO;wBACP,QAAQ;qBACT,CAAC;oBACF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC5C,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;oBACtE,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAMD,KAAK;QACH,MAAM,UAAU,GAA2B;YACzC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YAC9B,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;SACrC,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC9B,UAAU,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAChC,UAAU,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;QACpC,CAAC;QAED,MAAM,aAAa,GAAiB,EAAE,CAAC;QAGvC,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAC5D,CAAC;QAGF,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAClE,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAClE,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YACjC,aAAa,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACvD,CAAC;QAID,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7C,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC7B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;aAC5C,CAAC,CACH,CAAC;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC/B,aAAa,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACrD,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YACnC,aAAa,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzD,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC5B,aAAa,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAExC,aAAa,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACnD,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACjE,MAAM,GAAG,GAAG,IAAI,CAAC,2BAA2B,CAC1C,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,EAAE,CAC1C,CAAC;YAEF,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,aAAa,GAAiB,EAAE,CAAC;gBACvC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC7C,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAC1E,CAAC;gBACJ,CAAC;gBACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC9C,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAC5E,CAAC;gBACJ,CAAC;gBACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAE7B,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACjB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAU,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;oBACxE,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,QAAQ,GAAG,CAAC,uBAAU,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAE/B,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CACxC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAChC,IAAI,CAAC,UAAU,CAAC,UAAU,CAC3B,CAAC;gBACF,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,0BAA0B,CAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAC/B,CAAC;gBACF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,2BAA2B,CAC3C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAChC,CAAC;gBACF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;gBACrD,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU;qBACjD,qBAAqB,EAAE,CAAC;oBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;oBACnE,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1D,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAKO,2BAA2B,CACjC,UAA+B;QAE/B,MAAM,WAAW,GAAiB,EAAE,CAAC;QAGrC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxD,CAAC;QAGD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC;YAC/B,MAAM,UAAU,GAAoC,EAAE,CAAC;YACvD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;gBAAE,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;YAClE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;gBAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;YAC5D,IAAI,GAAG,CAAC,QAAQ;gBAAE,UAAU,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC1D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAGD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC;YACnC,MAAM,UAAU,GAA2B,EAAE,CAAC;YAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;gBAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;YAC5D,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;gBAAE,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YAC/D,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;gBAC7B,UAAU,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC;YAC5C,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;gBAAE,UAAU,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;YACrE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAID,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAGD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAEzB,MAAM,cAAc,GAClB,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;YACrE,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QAGD,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC1C,WAAW,CAAC,IAAI,CACd,uBAAU,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAChF,CAAC;QACJ,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;IAKO,qBAAqB,CAAC,UAAyB;QACrD,MAAM,WAAW,GAAiB,EAAE,CAAC;QAGrC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,WAAW,CAAC,IAAI,CACd,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACzB,SAAS,EAAE,UAAU,CAAC,IAAI;gBAC1B,SAAS,EAAE,UAAU,CAAC,IAAI;gBAC1B,MAAM,EAAE,UAAU,CAAC,IAAI;aACxB,CAAC,CACH,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CACd,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CACzD,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAA,0BAAkB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvD,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAClE,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CACd,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,cAAc,GAClB,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ;gBACtC,CAAC,CAAC,UAAU,CAAC,SAAS;gBACtB,CAAC,CAAC,QAAQ,CAAC;YACf,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CACd,uBAAU,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAC1D,CAAC;QACJ,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;IAKO,uBAAuB,CAC7B,UAAgC,EAChC,UAAgC,EAChC,aAAa,GAAG,KAAK;QAErB,MAAM,aAAa,GAAiB,EAAE,CAAC;QAOvC,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACzC,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBACtC,OAAO,EAAE,UAAU,CAAC,WAAW;aAChC,CAAC,CACH,CAAC;QACJ,CAAC;QAGD,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACzC,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBACtC,OAAO,EAAE,UAAU,CAAC,WAAW;aAChC,CAAC,CACH,CAAC;QACJ,CAAC;QAMD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAC1D,CAAC;QACJ,CAAC;QAGD,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACzC,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBACjC,KAAK,EAAE,UAAU,CAAC,WAAW;gBAC7B,QAAQ,EAAE,KAAK;aAChB,CAAC,CACH,CAAC;QACJ,CAAC;QAGD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpC,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACzB,KAAK,EAAE,UAAU,CAAC,MAAM;gBACxB,QAAQ,EAAE,KAAK;aAChB,CAAC,CACH,CAAC;QACJ,CAAC;QAGD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAChD,UAAU,CAAC,OAAO,EAClB,KAAK,CACN,CAAC;YACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,cAAc,CAAC,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,CAAC;QAGD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAiB,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7C,cAAc,CAAC,IAAI,CACjB,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE;oBACtB,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG;oBACjC,QAAQ,EAAE,KAAK;iBAChB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9C,cAAc,CAAC,IAAI,CACjB,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE;oBACvB,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI;oBAClC,QAAQ,EAAE,KAAK;iBAChB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChD,cAAc,CAAC,IAAI,CACjB,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACzB,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM;oBACpC,QAAQ,EAAE,KAAK;iBAChB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/C,cAAc,CAAC,IAAI,CACjB,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE;oBACxB,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK;oBACnC,QAAQ,EAAE,KAAK;iBAChB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,aAAa,CAAC,IAAI,CAChB,uBAAU,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,cAAc,CAAC,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAKO,2BAA2B,CACjC,UAAoC;QAEpC,MAAM,YAAY,GAAiB,EAAE,CAAC;QAGtC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAChD,UAAU,CAAC,OAAO,EAClB,IAAI,CACL,CAAC;YACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAGD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QAGD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,cAAc,GAAiB,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBACzC,cAAc,CAAC,IAAI,CACjB,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE;oBACtB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG;oBAC7B,QAAQ,EAAE,KAAK;iBAChB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1C,cAAc,CAAC,IAAI,CACjB,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE;oBACvB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI;oBAC9B,QAAQ,EAAE,KAAK;iBAChB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC5C,cAAc,CAAC,IAAI,CACjB,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACzB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM;oBAChC,QAAQ,EAAE,KAAK;iBAChB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC3C,cAAc,CAAC,IAAI,CACjB,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE;oBACxB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK;oBAC/B,QAAQ,EAAE,KAAK;iBAChB,CAAC,CACH,CAAC;YACJ,CAAC;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAGD,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CACf,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,CACtE,CAAC;QACJ,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACvD,CAAC;IAKO,0BAA0B,CAChC,UAAmC;QAEnC,MAAM,YAAY,GAAiB,EAAE,CAAC;QAOtC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,CAAC;QAGD,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACvD,CAAC;IAKO,6BAA6B,CACnC,WAAuC;QAEvC,MAAM,kBAAkB,GAAiB,EAAE,CAAC;QAG5C,IAAI,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,2BAA2B,CAC1C,WAAW,CAAC,mBAAmB,CAChC,CAAC;YACF,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAGD,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAGD,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CACxC,WAAW,CAAC,eAAe,EAC3B,EAAE,EACF,IAAI,CACL,CAAC;YACF,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAGD,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAC1E,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAGD,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,uBAAU,CAAC,CAAC,CACjB,YAAY,EACZ,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,EAC9B,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAOO,sBAAsB,CAC5B,OAAmC,EACnC,gBAAyB;QAEzB,MAAM,cAAc,GAAiB,EAAE,CAAC;QAGxC,MAAM,WAAW,GAAG;YAClB,KAAK;YACL,MAAM;YACN,QAAQ;YACR,OAAO;YACP,SAAS;YACT,SAAS;SACD,CAAC;QACX,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,KAAK,GAAoC,EAAE,CAAC;gBAClD,IAAI,MAAM,CAAC,KAAK;oBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;gBAChD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;oBAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC3D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;oBAAE,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;gBAChE,IAAI,MAAM,CAAC,KAAK;oBAAE,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;gBAElD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,cAAc,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,OAAsB,CAAC;YAC3C,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAoC,EAAE,CAAC;gBAClD,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK;oBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtE,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;oBACtC,KAAK,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;gBACzC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS;oBACvC,KAAK,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC7C,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK;oBAAE,KAAK,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;gBAExE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,cAAc,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAoC,EAAE,CAAC;gBAClD,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK;oBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtE,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;oBACtC,KAAK,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;gBACzC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS;oBACvC,KAAK,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC7C,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK;oBAAE,KAAK,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;gBAExE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,cAAc,CAAC,IAAI,CAAC,uBAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAKO,sBAAsB,CAAC,OAA0B;QACvD,MAAM,KAAK,GAAG,IAAA,oCAAsB,EAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,uBAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAOD,MAAM,CAAC,MAAM,CAAC,UAA2B;QACvC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAMD,MAAM,CAAC,iBAAiB;QACtB,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC;YACb,mBAAmB,EAAE;gBACnB,SAAS,EAAE,MAAM;gBACjB,OAAO,EAAE;oBACP,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,GAAG;oBACT,QAAQ,EAAE,MAAM;iBACjB;aACF;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,QAAQ;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAOD,MAAM,CAAC,kBAAkB,CAAC,KAAa;QACrC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAGD,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAGnD,MAAM,aAAa,GACjB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAG/D,MAAM,YAAY,GAChB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAEjE,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,UAAU,KAAK,EAAE;YAC1B,IAAI,EAAE,WAAW,KAAK,EAAE;YACxB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU,KAAK,MAAM;YAC3B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC;YACb,mBAAmB,EAAE;gBACnB,SAAS,EAAE,MAAM;gBACjB,OAAO,EAAE;oBACP,MAAM,EAAE,aAAa;oBACrB,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,GAAG;oBACT,QAAQ,EAAE,MAAM;iBACjB;gBACD,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,KAAK,GAAG,CAAC;aACxB;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBACtB,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,QAAQ;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAOD,MAAM,CAAC,sBAAsB,CAAC,KAAa;QACzC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAGD,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnD,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,UAAU,KAAK,MAAM;YAC9B,IAAI,EAAE,WAAW,KAAK,OAAO;YAC7B,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,UAAU,KAAK,EAAE;YACvB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC;YACb,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBACtB,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,QAAQ;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAMD,MAAM,CAAC,gBAAgB;QACrB,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE;gBACnB,OAAO,EAAE;oBACP,KAAK,EAAE,GAAG;iBACX;aACF;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,QAAQ;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAMD,MAAM,CAAC,mBAAmB;QACxB,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE;gBACnB,OAAO,EAAE;oBACP,KAAK,EAAE,GAAG;iBACX;aACF;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;IACL,CAAC;IAMD,MAAM,CAAC,wBAAwB;QAC7B,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,EAAE;YACd,mBAAmB,EAAE;gBACnB,SAAS,EAAE,MAAM;gBACjB,WAAW,EAAE;oBACX,IAAI,EAAE,GAAG;oBACT,OAAO,EAAE,GAAG;iBACb;gBACD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,GAAG;oBACT,QAAQ,EAAE,MAAM;iBACjB;gBACD,iBAAiB,EAAE,IAAI;aACxB;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,QAAQ;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAMD,MAAM,CAAC,qBAAqB;QAC1B,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE;gBACb,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,QAAQ;aAChB;YACD,mBAAmB,EAAE;gBACnB,OAAO,EAAE;oBACP,MAAM,EAAE,GAAG;oBACX,KAAK,EAAE,GAAG;iBACX;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAWD,MAAM,CAAC,cAAc,CACnB,KAAa,EACb,UAGC;QAED,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAGD,MAAM,iBAAiB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAE5C,OAAO,KAAK,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,MAAM,KAAK,EAAE;YACtB,IAAI,EAAE,OAAO,KAAK,EAAE;YACpB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,UAAU,EAAE,GAAG;YAC9B,mBAAmB,EAAE;gBACnB,WAAW,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBACxC,GAAG,UAAU,EAAE,SAAS;aACzB;SACF,CAAC,CAAC;IACL,CAAC;IAMD,MAAM,CAAC,sBAAsB;QAC3B,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,WAAW,EAAE;wBACX,GAAG,EAAE,CAAC;wBACN,IAAI,EAAE,GAAG;wBACT,MAAM,EAAE,CAAC;wBACT,KAAK,EAAE,GAAG;qBACX;iBACF;gBACD,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;aACf;SACF,CAAC,CAAC;IACL,CAAC;IAMD,MAAM,CAAC,oBAAoB;QACzB,OAAO,IAAI,KAAK,CAAC;YACf,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,OAAO,EAAE;wBACP,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;wBAClD,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACrD,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACnD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACpD,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACtD,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;qBACvD;oBACD,WAAW,EAAE;wBACX,GAAG,EAAE,CAAC;wBACN,IAAI,EAAE,GAAG;wBACT,MAAM,EAAE,CAAC;wBACT,KAAK,EAAE,GAAG;qBACX;iBACF;gBACD,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;aACf;SACF,CAAC,CAAC;IACL,CAAC;IAYD,KAAK;QAEH,MAAM,WAAW,GAAoB,IAAA,qBAAS,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAYD,KAAK;QAEH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAGzD,IAAI,CAAC,UAAU,GAAG;YAChB,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,OAAO;SACR,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAkBD,SAAS,CAAC,UAAiB;QACzB,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;QAG9C,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACzC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC3C,CAAC;YAGD,IAAI,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;gBAC7C,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS;oBAC3C,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC;YAC7C,CAAC;YACD,IAAI,UAAU,CAAC,mBAAmB,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC1D,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ;oBAC1C,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC;YAC5C,CAAC;YACD,IAAI,UAAU,CAAC,mBAAmB,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC3D,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS;oBAC3C,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC;YAC7C,CAAC;YACD,IAAI,UAAU,CAAC,mBAAmB,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBACjE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,eAAe;oBACjD,UAAU,CAAC,mBAAmB,CAAC,eAAe,CAAC;YACnD,CAAC;YAGD,IAAI,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;gBAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;oBACrD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,GAAG,EAAE,CAAC;gBACvD,CAAC;gBACD,MAAM,CAAC,MAAM,CACX,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAC/C,UAAU,CAAC,mBAAmB,CAAC,WAAW,CAC3C,CAAC;YACJ,CAAC;YAGD,IAAI,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;oBACjD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,GAAG,EAAE,CAAC;gBACnD,CAAC;gBACD,MAAM,CAAC,MAAM,CACX,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAC3C,UAAU,CAAC,mBAAmB,CAAC,OAAO,CACvC,CAAC;YACJ,CAAC;QACH,CAAC;QAGD,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBACnC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,EAAE,CAAC;YACrC,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;QACzE,CAAC;QAGD,IAAI,UAAU,CAAC,IAAI;YAAE,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5D,IAAI,UAAU,CAAC,OAAO;YAAE,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACrE,IAAI,UAAU,CAAC,IAAI;YAAE,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAE5D,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArjDD,sBAqjDC","sourcesContent":["/**\r\n * Style - Represents a style definition in a Word document\r\n * Supports paragraph, character, table, and numbering styles\r\n */\r\n\r\nimport { XMLBuilder, XMLElement } from \"../xml/XMLBuilder\";\r\nimport { ParagraphFormatting } from \"../elements/Paragraph\";\r\nimport { RunFormatting } from \"../elements/Run\";\r\nimport { ShadingConfig, ShadingPattern, buildShadingAttributes } from \"../elements/CommonTypes\";\r\nimport { Heading2TableOptions } from \"../types/styleConfig\";\r\nimport { deepClone } from \"../utils/deepClone\";\r\nimport { pointsToHalfPoints } from \"../utils/units\";\r\n\r\n/**\r\n * Style type\r\n */\r\nexport type StyleType = \"paragraph\" | \"character\" | \"table\" | \"numbering\";\r\n\r\n/**\r\n * Table alignment\r\n */\r\nexport type TableAlignment = \"left\" | \"center\" | \"right\";\r\n\r\n/**\r\n * Border properties\r\n */\r\nexport interface BorderProperties {\r\n /** Border style */\r\n style?: \"none\" | \"single\" | \"double\" | \"dashed\" | \"dotted\" | \"thick\";\r\n /** Border size in eighths of a point */\r\n size?: number;\r\n /** Border spacing/padding in points */\r\n space?: number;\r\n /** Border color (hex without #) */\r\n color?: string;\r\n}\r\n\r\n/**\r\n * Table borders (6 possible borders)\r\n */\r\nexport interface TableBorders {\r\n top?: BorderProperties;\r\n bottom?: BorderProperties;\r\n left?: BorderProperties;\r\n right?: BorderProperties;\r\n /** Inside horizontal borders */\r\n insideH?: BorderProperties;\r\n /** Inside vertical borders */\r\n insideV?: BorderProperties;\r\n}\r\n\r\n/**\r\n * Cell borders (8 possible borders, includes diagonals)\r\n */\r\nexport interface CellBorders extends TableBorders {\r\n /** Top-left to bottom-right diagonal */\r\n tl2br?: BorderProperties;\r\n /** Top-right to bottom-left diagonal */\r\n tr2bl?: BorderProperties;\r\n}\r\n\r\n/**\r\n * Shading properties\r\n * @see ShadingConfig in CommonTypes.ts for the canonical definition\r\n */\r\nexport type ShadingProperties = ShadingConfig;\r\n\r\n/**\r\n * Cell margins\r\n */\r\nexport interface CellMargins {\r\n /** Top margin in twips */\r\n top?: number;\r\n /** Bottom margin in twips */\r\n bottom?: number;\r\n /** Left margin in twips */\r\n left?: number;\r\n /** Right margin in twips */\r\n right?: number;\r\n}\r\n\r\n/**\r\n * Table-level formatting properties (tblPr)\r\n */\r\nexport interface TableStyleFormatting {\r\n /** Table indentation from left margin in twips */\r\n indent?: number;\r\n /** Default cell spacing in twips */\r\n cellSpacing?: number;\r\n /** Table borders */\r\n borders?: TableBorders;\r\n /** Default cell margins */\r\n cellMargins?: CellMargins;\r\n /** Table background shading */\r\n shading?: ShadingProperties;\r\n /** Table alignment */\r\n alignment?: TableAlignment;\r\n}\r\n\r\n/**\r\n * Table cell formatting properties (tcPr)\r\n */\r\nexport interface TableCellStyleFormatting {\r\n /** Cell borders (8 possible borders) */\r\n borders?: CellBorders;\r\n /** Cell background shading */\r\n shading?: ShadingProperties;\r\n /** Cell-specific margins */\r\n margins?: CellMargins;\r\n /** Vertical alignment in cell */\r\n verticalAlignment?: \"top\" | \"center\" | \"bottom\";\r\n}\r\n\r\n/**\r\n * Table row formatting properties (trPr)\r\n */\r\nexport interface TableRowStyleFormatting {\r\n /** Prevent row from splitting across pages */\r\n cantSplit?: boolean;\r\n /** Mark row as header row */\r\n isHeader?: boolean;\r\n /** Row height in twips */\r\n height?: number;\r\n /** Row height rule */\r\n heightRule?: \"auto\" | \"exact\" | \"atLeast\";\r\n}\r\n\r\n/**\r\n * Conditional formatting type for table regions\r\n */\r\nexport type ConditionalFormattingType =\r\n | \"wholeTable\" // Entire table\r\n | \"firstRow\" // First row\r\n | \"lastRow\" // Last row\r\n | \"firstCol\" // First column\r\n | \"lastCol\" // Last column\r\n | \"band1Vert\" // Odd column banding\r\n | \"band2Vert\" // Even column banding\r\n | \"band1Horz\" // Odd row banding\r\n | \"band2Horz\" // Even row banding\r\n | \"nwCell\" // Northwest (top-left) corner cell\r\n | \"neCell\" // Northeast (top-right) corner cell\r\n | \"swCell\" // Southwest (bottom-left) corner cell\r\n | \"seCell\"; // Southeast (bottom-right) corner cell\r\n\r\n/**\r\n * Conditional table formatting for a specific region\r\n */\r\nexport interface ConditionalTableFormatting {\r\n /** Region type */\r\n type: ConditionalFormattingType;\r\n /** Paragraph formatting for this region */\r\n paragraphFormatting?: ParagraphFormatting;\r\n /** Run formatting for this region */\r\n runFormatting?: RunFormatting;\r\n /** Table formatting for this region */\r\n tableFormatting?: TableStyleFormatting;\r\n /** Cell formatting for this region */\r\n cellFormatting?: TableCellStyleFormatting;\r\n /** Row formatting for this region */\r\n rowFormatting?: TableRowStyleFormatting;\r\n}\r\n\r\n/**\r\n * Table style properties (Phase 5.1)\r\n */\r\nexport interface TableStyleProperties {\r\n /** Table-level formatting */\r\n table?: TableStyleFormatting;\r\n /** Default cell formatting */\r\n cell?: TableCellStyleFormatting;\r\n /** Default row formatting */\r\n row?: TableRowStyleFormatting;\r\n /** Rows per band for row banding (default 1) */\r\n rowBandSize?: number;\r\n /** Columns per band for column banding (default 1) */\r\n colBandSize?: number;\r\n /** Conditional formatting for specific table regions */\r\n conditionalFormatting?: ConditionalTableFormatting[];\r\n}\r\n\r\n/**\r\n * Style properties\r\n */\r\nexport interface StyleProperties {\r\n /** Unique style identifier */\r\n styleId: string;\r\n /** Display name */\r\n name: string;\r\n /** Style type */\r\n type: StyleType;\r\n /** Parent style ID for inheritance */\r\n basedOn?: string;\r\n /** Next style ID (auto-next paragraph style) */\r\n next?: string;\r\n /** Whether this is a default style */\r\n isDefault?: boolean;\r\n /** Whether this is a custom style */\r\n customStyle?: boolean;\r\n /** Paragraph formatting (for paragraph and table styles) */\r\n paragraphFormatting?: ParagraphFormatting;\r\n /** Numbering properties for styles that inherit list formatting */\r\n numPr?: {\r\n numId?: number;\r\n ilvl?: number;\r\n };\r\n /** Run formatting (for character and paragraph styles) */\r\n runFormatting?: RunFormatting;\r\n /** Table style properties (for table styles only - Phase 5.1) */\r\n tableStyle?: TableStyleProperties;\r\n\r\n // Style Gallery Metadata (Phase 5.3)\r\n /** Quick style - show in style gallery */\r\n qFormat?: boolean;\r\n /** UI priority - sort order in style picker (0-99, lower = higher priority) */\r\n uiPriority?: number;\r\n /** Semi-hidden - hide from gallery unless in use */\r\n semiHidden?: boolean;\r\n /** Unhide when used - auto-show when applied */\r\n unhideWhenUsed?: boolean;\r\n /** Locked - prevent modification */\r\n locked?: boolean;\r\n /** Personal - user-specific style */\r\n personal?: boolean;\r\n /** Link - linked character/paragraph style ID */\r\n link?: string;\r\n /** Auto-redefine - update style from manual formatting */\r\n autoRedefine?: boolean;\r\n /** Aliases - alternative names (comma-separated) */\r\n aliases?: string;\r\n\r\n // Document Helper Metadata\r\n /**\r\n * Table options for Heading2 wrapping\r\n * Used by Document.applyCustomFormattingToExistingStyles() to configure\r\n * how Heading2 paragraphs are wrapped in tables\r\n */\r\n heading2TableOptions?: Heading2TableOptions;\r\n}\r\n\r\n/**\r\n * Represents a style definition\r\n */\r\nexport class Style {\r\n private properties: StyleProperties;\r\n\r\n /**\r\n * Creates a new Style\r\n * @param properties - Style properties\r\n */\r\n constructor(properties: StyleProperties) {\r\n this.properties = { ...properties };\r\n }\r\n\r\n /**\r\n * Gets the style ID\r\n * @returns Style ID\r\n */\r\n getStyleId(): string {\r\n return this.properties.styleId;\r\n }\r\n\r\n /**\r\n * Gets the style name\r\n * @returns Style name\r\n */\r\n getName(): string {\r\n return this.properties.name;\r\n }\r\n\r\n /**\r\n * Gets the style type\r\n * @returns Style type\r\n */\r\n getType(): StyleType {\r\n return this.properties.type;\r\n }\r\n\r\n /**\r\n * Gets all style properties\r\n * @returns Style properties\r\n */\r\n getProperties(): StyleProperties {\r\n return { ...this.properties };\r\n }\r\n\r\n /**\r\n * Gets whether this is a default style\r\n * @returns True if this is a default style for its type\r\n */\r\n getIsDefault(): boolean {\r\n return this.properties.isDefault ?? false;\r\n }\r\n\r\n /**\r\n * Sets whether this is a default style\r\n * @param value - True to mark as default style\r\n * @returns This style for chaining\r\n */\r\n setIsDefault(value: boolean): this {\r\n this.properties.isDefault = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the base style\r\n * @param styleId - Parent style ID\r\n * @returns This style for chaining\r\n */\r\n setBasedOn(styleId: string): this {\r\n this.properties.basedOn = styleId;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the next style\r\n * @param styleId - Next style ID\r\n * @returns This style for chaining\r\n */\r\n setNext(styleId: string): this {\r\n this.properties.next = styleId;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets paragraph formatting\r\n * @param formatting - Paragraph formatting options\r\n * @returns This style for chaining\r\n */\r\n setParagraphFormatting(formatting: ParagraphFormatting): this {\r\n this.properties.paragraphFormatting = { ...formatting };\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets run formatting\r\n * @param formatting - Run formatting options\r\n * @returns This style for chaining\r\n */\r\n setRunFormatting(formatting: RunFormatting): this {\r\n this.properties.runFormatting = { ...formatting };\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the current run formatting\r\n * @returns Run formatting or undefined if not set\r\n */\r\n getRunFormatting(): RunFormatting | undefined {\r\n return this.properties.runFormatting;\r\n }\r\n\r\n /**\r\n * Gets the current paragraph formatting\r\n * @returns Paragraph formatting or undefined if not set\r\n */\r\n getParagraphFormatting(): ParagraphFormatting | undefined {\r\n return this.properties.paragraphFormatting;\r\n }\r\n\r\n /**\r\n * Sets Heading2 table wrapping options\r\n * Used by Document.applyCustomFormattingToExistingStyles() when styleId is 'Heading2'\r\n * @param options - Table options for wrapping Heading2 paragraphs\r\n * @returns This style for chaining\r\n */\r\n setHeading2TableOptions(options: Heading2TableOptions): this {\r\n this.properties.heading2TableOptions = options;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the current Heading2 table options\r\n * @returns Heading2 table options or undefined if not set\r\n */\r\n getHeading2TableOptions(): Heading2TableOptions | undefined {\r\n return this.properties.heading2TableOptions;\r\n }\r\n\r\n /**\r\n * Sets whether this is a quick style (appears in style gallery)\r\n * @param enabled - True to show in quick style gallery\r\n * @returns This style for chaining\r\n */\r\n setQFormat(enabled: boolean): this {\r\n this.properties.qFormat = enabled;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the UI priority (sort order in style picker)\r\n * @param priority - Priority value (0-99, lower = higher priority)\r\n * @returns This style for chaining\r\n */\r\n setUiPriority(priority: number): this {\r\n if (priority < 0 || priority > 99) {\r\n throw new Error(\"UI priority must be between 0 and 99\");\r\n }\r\n this.properties.uiPriority = priority;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets whether this style is semi-hidden (hidden from recommended list)\r\n * @param hidden - True to hide from recommended list\r\n * @returns This style for chaining\r\n */\r\n setSemiHidden(hidden: boolean): this {\r\n this.properties.semiHidden = hidden;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets whether to unhide this style when first used\r\n * @param enabled - True to auto-show when applied\r\n * @returns This style for chaining\r\n */\r\n setUnhideWhenUsed(enabled: boolean): this {\r\n this.properties.unhideWhenUsed = enabled;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets whether this style is locked (prevents modification)\r\n * @param locked - True to lock the style\r\n * @returns This style for chaining\r\n */\r\n setLocked(locked: boolean): this {\r\n this.properties.locked = locked;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets whether this is a personal style (user-specific)\r\n * @param personal - True to mark as personal\r\n * @returns This style for chaining\r\n */\r\n setPersonal(personal: boolean): this {\r\n this.properties.personal = personal;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets the linked style ID (for character/paragraph style linking)\r\n * @param styleId - ID of the linked style\r\n * @returns This style for chaining\r\n */\r\n setLink(styleId: string): this {\r\n this.properties.link = styleId;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets whether to auto-redefine this style from manual formatting\r\n * @param enabled - True to enable auto-redefine\r\n * @returns This style for chaining\r\n */\r\n setAutoRedefine(enabled: boolean): this {\r\n this.properties.autoRedefine = enabled;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets alternative names for this style (comma-separated)\r\n * @param aliases - Comma-separated list of alternative names\r\n * @returns This style for chaining\r\n */\r\n setAliases(aliases: string): this {\r\n this.properties.aliases = aliases;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets table-level formatting properties (Phase 5.1)\r\n * @param formatting - Table formatting options\r\n * @returns This style for chaining\r\n */\r\n setTableFormatting(formatting: TableStyleFormatting): this {\r\n if (!this.properties.tableStyle) {\r\n this.properties.tableStyle = {};\r\n }\r\n this.properties.tableStyle.table = { ...formatting };\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets table cell formatting properties (Phase 5.1)\r\n * @param formatting - Cell formatting options\r\n * @returns This style for chaining\r\n */\r\n setTableCellFormatting(formatting: TableCellStyleFormatting): this {\r\n if (!this.properties.tableStyle) {\r\n this.properties.tableStyle = {};\r\n }\r\n this.properties.tableStyle.cell = { ...formatting };\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets table row formatting properties (Phase 5.1)\r\n * @param formatting - Row formatting options\r\n * @returns This style for chaining\r\n */\r\n setTableRowFormatting(formatting: TableRowStyleFormatting): this {\r\n if (!this.properties.tableStyle) {\r\n this.properties.tableStyle = {};\r\n }\r\n this.properties.tableStyle.row = { ...formatting };\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets row band size for row banding (Phase 5.1)\r\n * @param size - Number of rows per band (default 1)\r\n * @returns This style for chaining\r\n */\r\n setRowBandSize(size: number): this {\r\n if (!this.properties.tableStyle) {\r\n this.properties.tableStyle = {};\r\n }\r\n if (size < 0) {\r\n throw new Error(\"Row band size must be non-negative\");\r\n }\r\n this.properties.tableStyle.rowBandSize = size;\r\n return this;\r\n }\r\n\r\n /**\r\n * Sets column band size for column banding (Phase 5.1)\r\n * @param size - Number of columns per band (default 1)\r\n * @returns This style for chaining\r\n */\r\n setColBandSize(size: number): this {\r\n if (!this.properties.tableStyle) {\r\n this.properties.tableStyle = {};\r\n }\r\n if (size < 0) {\r\n throw new Error(\"Column band size must be non-negative\");\r\n }\r\n this.properties.tableStyle.colBandSize = size;\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds conditional formatting for a specific table region (Phase 5.1)\r\n * @param conditional - Conditional formatting definition\r\n * @returns This style for chaining\r\n */\r\n addConditionalFormatting(conditional: ConditionalTableFormatting): this {\r\n if (!this.properties.tableStyle) {\r\n this.properties.tableStyle = {};\r\n }\r\n if (!this.properties.tableStyle.conditionalFormatting) {\r\n this.properties.tableStyle.conditionalFormatting = [];\r\n }\r\n this.properties.tableStyle.conditionalFormatting.push({ ...conditional });\r\n return this;\r\n }\r\n\r\n /**\r\n * Validates that this style definition is valid\r\n *\r\n * Checks:\r\n * - Required fields (styleId, name, type)\r\n * - Valid type value\r\n * - No circular references (basedOn != styleId)\r\n * - Valid formatting values\r\n *\r\n * @returns True if the style is valid, false otherwise\r\n */\r\n isValid(): boolean {\r\n try {\r\n // Required fields\r\n if (\r\n !this.properties.styleId ||\r\n !this.properties.name ||\r\n !this.properties.type\r\n ) {\r\n return false;\r\n }\r\n\r\n // Valid type\r\n const validTypes: StyleType[] = [\r\n \"paragraph\",\r\n \"character\",\r\n \"table\",\r\n \"numbering\",\r\n ];\r\n if (!validTypes.includes(this.properties.type)) {\r\n return false;\r\n }\r\n\r\n // No circular reference\r\n if (this.properties.basedOn === this.properties.styleId) {\r\n return false;\r\n }\r\n\r\n // Check paragraph formatting if present\r\n if (this.properties.paragraphFormatting) {\r\n const pf = this.properties.paragraphFormatting;\r\n\r\n // Check alignment\r\n if (pf.alignment) {\r\n const validAlignments = [\r\n \"left\",\r\n \"center\",\r\n \"right\",\r\n \"justify\",\r\n \"both\",\r\n \"distribute\",\r\n ];\r\n if (!validAlignments.includes(pf.alignment)) {\r\n return false;\r\n }\r\n }\r\n\r\n // Check spacing values\r\n if (pf.spacing) {\r\n const spacing = pf.spacing;\r\n if (spacing.before !== undefined && spacing.before < 0) return false;\r\n if (spacing.after !== undefined && spacing.after < 0) return false;\r\n if (spacing.line !== undefined && spacing.line < 0) return false;\r\n if (\r\n spacing.lineRule &&\r\n ![\"auto\", \"exact\", \"atLeast\"].includes(spacing.lineRule)\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n // Check indentation values\r\n if (pf.indentation) {\r\n const ind = pf.indentation;\r\n // Indentation values can be negative for hanging indent\r\n if (ind.left !== undefined && ind.left < -100000) return false;\r\n if (ind.right !== undefined && ind.right < -100000) return false;\r\n }\r\n }\r\n\r\n // Check run formatting if present\r\n if (this.properties.runFormatting) {\r\n const rf = this.properties.runFormatting;\r\n\r\n // Check font size\r\n if (rf.size !== undefined && (rf.size <= 0 || rf.size > 1638)) {\r\n return false; // Max font size in Word is 1638\r\n }\r\n\r\n // Check color format (should be 6 hex characters)\r\n if (rf.color && !/^[0-9A-Fa-f]{6}$/.test(rf.color)) {\r\n return false;\r\n }\r\n\r\n // Check highlight color\r\n if (rf.highlight) {\r\n const validHighlights = [\r\n \"black\",\r\n \"blue\",\r\n \"cyan\",\r\n \"darkBlue\",\r\n \"darkCyan\",\r\n \"darkGray\",\r\n \"darkGreen\",\r\n \"darkMagenta\",\r\n \"darkRed\",\r\n \"darkYellow\",\r\n \"green\",\r\n \"lightGray\",\r\n \"magenta\",\r\n \"none\",\r\n \"red\",\r\n \"white\",\r\n \"yellow\",\r\n ];\r\n if (!validHighlights.includes(rf.highlight)) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n // Check metadata properties (Phase 5.3)\r\n if (this.properties.uiPriority !== undefined) {\r\n if (this.properties.uiPriority < 0 || this.properties.uiPriority > 99) {\r\n return false;\r\n }\r\n }\r\n\r\n // Check linked style doesn't reference self\r\n if (this.properties.link === this.properties.styleId) {\r\n return false;\r\n }\r\n\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Converts the style to WordprocessingML XML element\r\n * @returns XMLElement representing the style\r\n */\r\n toXML(): XMLElement {\r\n const styleAttrs: Record<string, string> = {\r\n \"w:type\": this.properties.type,\r\n \"w:styleId\": this.properties.styleId,\r\n };\r\n\r\n if (this.properties.isDefault) {\r\n styleAttrs[\"w:default\"] = \"1\";\r\n }\r\n\r\n if (this.properties.customStyle) {\r\n styleAttrs[\"w:customStyle\"] = \"1\";\r\n }\r\n\r\n const styleChildren: XMLElement[] = [];\r\n\r\n // Add style name\r\n styleChildren.push(\r\n XMLBuilder.wSelf(\"name\", { \"w:val\": this.properties.name })\r\n );\r\n\r\n // aliases - Alternative names (must follow name per CT_Style)\r\n if (this.properties.aliases) {\r\n styleChildren.push(\r\n XMLBuilder.wSelf(\"aliases\", { \"w:val\": this.properties.aliases })\r\n );\r\n }\r\n\r\n // Add basedOn\r\n if (this.properties.basedOn) {\r\n styleChildren.push(\r\n XMLBuilder.wSelf(\"basedOn\", { \"w:val\": this.properties.basedOn })\r\n );\r\n }\r\n\r\n // Add next\r\n if (this.properties.next) {\r\n styleChildren.push(\r\n XMLBuilder.wSelf(\"next\", { \"w:val\": this.properties.next })\r\n );\r\n }\r\n\r\n // Add link (linked character/paragraph style)\r\n if (this.properties.link) {\r\n styleChildren.push(\r\n XMLBuilder.wSelf(\"link\", { \"w:val\": this.properties.link })\r\n );\r\n }\r\n\r\n // Add autoRedefine\r\n if (this.properties.autoRedefine) {\r\n styleChildren.push(XMLBuilder.wSelf(\"autoRedefine\"));\r\n }\r\n\r\n // Add metadata properties — ordered per ECMA-376 CT_Style\r\n // uiPriority - Sort order in style picker\r\n if (this.properties.uiPriority !== undefined) {\r\n styleChildren.push(\r\n XMLBuilder.wSelf(\"uiPriority\", {\r\n \"w:val\": String(this.properties.uiPriority),\r\n })\r\n );\r\n }\r\n\r\n // semiHidden - Hide from recommended list\r\n if (this.properties.semiHidden) {\r\n styleChildren.push(XMLBuilder.wSelf(\"semiHidden\"));\r\n }\r\n\r\n // unhideWhenUsed - Auto-show when applied\r\n if (this.properties.unhideWhenUsed) {\r\n styleChildren.push(XMLBuilder.wSelf(\"unhideWhenUsed\"));\r\n }\r\n\r\n // qFormat - Quick style gallery appearance\r\n if (this.properties.qFormat !== undefined) {\r\n if (this.properties.qFormat) {\r\n styleChildren.push(XMLBuilder.wSelf(\"qFormat\"));\r\n }\r\n } else if (!this.properties.customStyle) {\r\n // Default: built-in styles have qFormat\r\n styleChildren.push(XMLBuilder.wSelf(\"qFormat\"));\r\n }\r\n\r\n // locked - Prevent modification\r\n if (this.properties.locked) {\r\n styleChildren.push(XMLBuilder.wSelf(\"locked\"));\r\n }\r\n\r\n // personal - User-specific style\r\n if (this.properties.personal) {\r\n styleChildren.push(XMLBuilder.wSelf(\"personal\"));\r\n }\r\n\r\n // Add paragraph properties\r\n if (this.properties.paragraphFormatting || this.properties.numPr) {\r\n const pPr = this.generateParagraphProperties(\r\n this.properties.paragraphFormatting || {}\r\n );\r\n // Add numPr (numbering properties) if present - styles can inherit list formatting\r\n if (this.properties.numPr) {\r\n const numPrChildren: XMLElement[] = [];\r\n if (this.properties.numPr.ilvl !== undefined) {\r\n numPrChildren.push(\r\n XMLBuilder.wSelf(\"ilvl\", { \"w:val\": String(this.properties.numPr.ilvl) })\r\n );\r\n }\r\n if (this.properties.numPr.numId !== undefined) {\r\n numPrChildren.push(\r\n XMLBuilder.wSelf(\"numId\", { \"w:val\": String(this.properties.numPr.numId) })\r\n );\r\n }\r\n if (numPrChildren.length > 0) {\r\n // Insert numPr at the beginning of pPr children (per ECMA-376 element order)\r\n if (pPr.children) {\r\n pPr.children.unshift(XMLBuilder.w(\"numPr\", undefined, numPrChildren));\r\n } else {\r\n pPr.children = [XMLBuilder.w(\"numPr\", undefined, numPrChildren)];\r\n }\r\n }\r\n }\r\n if (pPr.children && pPr.children.length > 0) {\r\n styleChildren.push(pPr);\r\n }\r\n }\r\n\r\n // Add run properties\r\n if (this.properties.runFormatting) {\r\n const rPr = this.generateRunProperties(this.properties.runFormatting);\r\n if (rPr.children && rPr.children.length > 0) {\r\n styleChildren.push(rPr);\r\n }\r\n }\r\n\r\n // Add table style properties (Phase 5.1)\r\n if (this.properties.tableStyle) {\r\n // Add tblPr (table properties)\r\n if (this.properties.tableStyle.table) {\r\n const tblPr = this.generateTableProperties(\r\n this.properties.tableStyle.table,\r\n this.properties.tableStyle\r\n );\r\n if (tblPr.children && tblPr.children.length > 0) {\r\n styleChildren.push(tblPr);\r\n }\r\n }\r\n\r\n // Add trPr (table row properties) — per CT_Style: tblPr → trPr → tcPr\r\n if (this.properties.tableStyle.row) {\r\n const trPr = this.generateTableRowProperties(\r\n this.properties.tableStyle.row\r\n );\r\n if (trPr.children && trPr.children.length > 0) {\r\n styleChildren.push(trPr);\r\n }\r\n }\r\n\r\n // Add tcPr (table cell properties)\r\n if (this.properties.tableStyle.cell) {\r\n const tcPr = this.generateTableCellProperties(\r\n this.properties.tableStyle.cell\r\n );\r\n if (tcPr.children && tcPr.children.length > 0) {\r\n styleChildren.push(tcPr);\r\n }\r\n }\r\n\r\n // Add conditional formatting (tblStylePr)\r\n if (this.properties.tableStyle.conditionalFormatting) {\r\n for (const conditional of this.properties.tableStyle\r\n .conditionalFormatting) {\r\n const tblStylePr = this.generateConditionalFormatting(conditional);\r\n if (tblStylePr.children && tblStylePr.children.length > 0) {\r\n styleChildren.push(tblStylePr);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return XMLBuilder.w(\"style\", styleAttrs, styleChildren);\r\n }\r\n\r\n /**\r\n * Generates paragraph properties XML\r\n */\r\n private generateParagraphProperties(\r\n formatting: ParagraphFormatting\r\n ): XMLElement {\r\n const pPrChildren: XMLElement[] = [];\r\n\r\n // Ordered per ECMA-376 CT_PPrBase\r\n if (formatting.keepNext) {\r\n pPrChildren.push(XMLBuilder.wSelf(\"keepNext\"));\r\n }\r\n if (formatting.keepLines) {\r\n pPrChildren.push(XMLBuilder.wSelf(\"keepLines\"));\r\n }\r\n if (formatting.pageBreakBefore) {\r\n pPrChildren.push(XMLBuilder.wSelf(\"pageBreakBefore\"));\r\n }\r\n\r\n // Add spacing\r\n if (formatting.spacing) {\r\n const spc = formatting.spacing;\r\n const attributes: Record<string, number | string> = {};\r\n if (spc.before !== undefined) attributes[\"w:before\"] = spc.before;\r\n if (spc.after !== undefined) attributes[\"w:after\"] = spc.after;\r\n if (spc.line !== undefined) attributes[\"w:line\"] = spc.line;\r\n if (spc.lineRule) attributes[\"w:lineRule\"] = spc.lineRule;\r\n if (Object.keys(attributes).length > 0) {\r\n pPrChildren.push(XMLBuilder.wSelf(\"spacing\", attributes));\r\n }\r\n }\r\n\r\n // Add indentation\r\n if (formatting.indentation) {\r\n const ind = formatting.indentation;\r\n const attributes: Record<string, number> = {};\r\n if (ind.left !== undefined) attributes[\"w:left\"] = ind.left;\r\n if (ind.right !== undefined) attributes[\"w:right\"] = ind.right;\r\n if (ind.firstLine !== undefined)\r\n attributes[\"w:firstLine\"] = ind.firstLine;\r\n if (ind.hanging !== undefined) attributes[\"w:hanging\"] = ind.hanging;\r\n if (Object.keys(attributes).length > 0) {\r\n pPrChildren.push(XMLBuilder.wSelf(\"ind\", attributes));\r\n }\r\n }\r\n\r\n // Contextual spacing per ECMA-376 Part 1 §17.3.1.8\r\n // Removes spacing between paragraphs of the same style\r\n if (formatting.contextualSpacing) {\r\n pPrChildren.push(XMLBuilder.wSelf(\"contextualSpacing\", { \"w:val\": \"1\" }));\r\n }\r\n\r\n // Add alignment\r\n if (formatting.alignment) {\r\n // Map 'justify' to 'both' per ECMA-376 (Word uses 'both' for justified text)\r\n const alignmentValue =\r\n formatting.alignment === \"justify\" ? \"both\" : formatting.alignment;\r\n pPrChildren.push(XMLBuilder.wSelf(\"jc\", { \"w:val\": alignmentValue }));\r\n }\r\n\r\n // Add outline level for TOC support (Heading 1 = 0, Heading 2 = 1, etc.)\r\n if (formatting.outlineLevel !== undefined) {\r\n pPrChildren.push(\r\n XMLBuilder.wSelf(\"outlineLvl\", { \"w:val\": formatting.outlineLevel.toString() })\r\n );\r\n }\r\n\r\n return XMLBuilder.w(\"pPr\", undefined, pPrChildren);\r\n }\r\n\r\n /**\r\n * Generates run properties XML\r\n */\r\n private generateRunProperties(formatting: RunFormatting): XMLElement {\r\n const rPrChildren: XMLElement[] = [];\r\n\r\n // Add formatting elements — ordered per ECMA-376 CT_RPr\r\n if (formatting.font) {\r\n rPrChildren.push(\r\n XMLBuilder.wSelf(\"rFonts\", {\r\n \"w:ascii\": formatting.font,\r\n \"w:hAnsi\": formatting.font,\r\n \"w:cs\": formatting.font,\r\n })\r\n );\r\n }\r\n if (formatting.bold) {\r\n rPrChildren.push(XMLBuilder.wSelf(\"b\"));\r\n }\r\n if (formatting.italic) {\r\n rPrChildren.push(XMLBuilder.wSelf(\"i\"));\r\n }\r\n if (formatting.allCaps) {\r\n rPrChildren.push(XMLBuilder.wSelf(\"caps\"));\r\n }\r\n if (formatting.smallCaps) {\r\n rPrChildren.push(XMLBuilder.wSelf(\"smallCaps\"));\r\n }\r\n if (formatting.strike) {\r\n rPrChildren.push(XMLBuilder.wSelf(\"strike\"));\r\n }\r\n if (formatting.dstrike) {\r\n rPrChildren.push(XMLBuilder.wSelf(\"dstrike\"));\r\n }\r\n if (formatting.color) {\r\n rPrChildren.push(\r\n XMLBuilder.wSelf(\"color\", { \"w:val\": formatting.color })\r\n );\r\n }\r\n if (formatting.size !== undefined) {\r\n const halfPoints = pointsToHalfPoints(formatting.size);\r\n rPrChildren.push(XMLBuilder.wSelf(\"sz\", { \"w:val\": halfPoints }));\r\n rPrChildren.push(XMLBuilder.wSelf(\"szCs\", { \"w:val\": halfPoints }));\r\n }\r\n if (formatting.highlight) {\r\n rPrChildren.push(\r\n XMLBuilder.wSelf(\"highlight\", { \"w:val\": formatting.highlight })\r\n );\r\n }\r\n if (formatting.underline) {\r\n const underlineValue =\r\n typeof formatting.underline === \"string\"\r\n ? formatting.underline\r\n : \"single\";\r\n rPrChildren.push(XMLBuilder.wSelf(\"u\", { \"w:val\": underlineValue }));\r\n }\r\n if (formatting.subscript) {\r\n rPrChildren.push(XMLBuilder.wSelf(\"vertAlign\", { \"w:val\": \"subscript\" }));\r\n }\r\n if (formatting.superscript) {\r\n rPrChildren.push(\r\n XMLBuilder.wSelf(\"vertAlign\", { \"w:val\": \"superscript\" })\r\n );\r\n }\r\n\r\n return XMLBuilder.w(\"rPr\", undefined, rPrChildren);\r\n }\r\n\r\n /**\r\n * Generates table properties XML (tblPr) - Phase 5.1\r\n */\r\n private generateTableProperties(\r\n formatting: TableStyleFormatting,\r\n tableStyle: TableStyleProperties,\r\n isConditional = false\r\n ): XMLElement {\r\n const tblPrChildren: XMLElement[] = [];\r\n\r\n // Ordered per CT_TblPrBase (ECMA-376 §17.4.60):\r\n // tblStyleRowBandSize → tblStyleColBandSize → tblW → jc →\r\n // tblCellSpacing → tblInd → tblBorders → shd → tblCellMar\r\n\r\n // Row band size (must come first)\r\n if (tableStyle.rowBandSize !== undefined) {\r\n tblPrChildren.push(\r\n XMLBuilder.wSelf(\"tblStyleRowBandSize\", {\r\n \"w:val\": tableStyle.rowBandSize,\r\n })\r\n );\r\n }\r\n\r\n // Column band size\r\n if (tableStyle.colBandSize !== undefined) {\r\n tblPrChildren.push(\r\n XMLBuilder.wSelf(\"tblStyleColBandSize\", {\r\n \"w:val\": tableStyle.colBandSize,\r\n })\r\n );\r\n }\r\n\r\n // Note: tblW is omitted for table styles. It's only valid in inline tblPr\r\n // (CT_TblPr in table elements), not in CT_Style's tblPr.\r\n\r\n // Table alignment\r\n if (formatting.alignment) {\r\n tblPrChildren.push(\r\n XMLBuilder.wSelf(\"jc\", { \"w:val\": formatting.alignment })\r\n );\r\n }\r\n\r\n // Cell spacing\r\n if (formatting.cellSpacing !== undefined) {\r\n tblPrChildren.push(\r\n XMLBuilder.wSelf(\"tblCellSpacing\", {\r\n \"w:w\": formatting.cellSpacing,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n\r\n // Table indentation\r\n if (formatting.indent !== undefined) {\r\n tblPrChildren.push(\r\n XMLBuilder.wSelf(\"tblInd\", {\r\n \"w:w\": formatting.indent,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n\r\n // Table borders\r\n if (formatting.borders) {\r\n const borderElements = this.generateBorderElements(\r\n formatting.borders,\r\n false\r\n );\r\n if (borderElements.length > 0) {\r\n tblPrChildren.push(\r\n XMLBuilder.w(\"tblBorders\", undefined, borderElements)\r\n );\r\n }\r\n }\r\n\r\n // Table shading (not valid in tblStylePr conditional context)\r\n if (formatting.shading && !isConditional) {\r\n tblPrChildren.push(this.generateShadingElement(formatting.shading));\r\n }\r\n\r\n // Cell margins\r\n if (formatting.cellMargins) {\r\n const marginElements: XMLElement[] = [];\r\n if (formatting.cellMargins.top !== undefined) {\r\n marginElements.push(\r\n XMLBuilder.wSelf(\"top\", {\r\n \"w:w\": formatting.cellMargins.top,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n if (formatting.cellMargins.left !== undefined) {\r\n marginElements.push(\r\n XMLBuilder.wSelf(\"left\", {\r\n \"w:w\": formatting.cellMargins.left,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n if (formatting.cellMargins.bottom !== undefined) {\r\n marginElements.push(\r\n XMLBuilder.wSelf(\"bottom\", {\r\n \"w:w\": formatting.cellMargins.bottom,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n if (formatting.cellMargins.right !== undefined) {\r\n marginElements.push(\r\n XMLBuilder.wSelf(\"right\", {\r\n \"w:w\": formatting.cellMargins.right,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n if (marginElements.length > 0) {\r\n tblPrChildren.push(\r\n XMLBuilder.w(\"tblCellMar\", undefined, marginElements)\r\n );\r\n }\r\n }\r\n\r\n return XMLBuilder.w(\"tblPr\", undefined, tblPrChildren);\r\n }\r\n\r\n /**\r\n * Generates table cell properties XML (tcPr) - Phase 5.1\r\n */\r\n private generateTableCellProperties(\r\n formatting: TableCellStyleFormatting\r\n ): XMLElement {\r\n const tcPrChildren: XMLElement[] = [];\r\n\r\n // Cell borders\r\n if (formatting.borders) {\r\n const borderElements = this.generateBorderElements(\r\n formatting.borders,\r\n true\r\n );\r\n if (borderElements.length > 0) {\r\n tcPrChildren.push(XMLBuilder.w(\"tcBorders\", undefined, borderElements));\r\n }\r\n }\r\n\r\n // Cell shading\r\n if (formatting.shading) {\r\n tcPrChildren.push(this.generateShadingElement(formatting.shading));\r\n }\r\n\r\n // Cell margins\r\n if (formatting.margins) {\r\n const marginElements: XMLElement[] = [];\r\n if (formatting.margins.top !== undefined) {\r\n marginElements.push(\r\n XMLBuilder.wSelf(\"top\", {\r\n \"w:w\": formatting.margins.top,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n if (formatting.margins.left !== undefined) {\r\n marginElements.push(\r\n XMLBuilder.wSelf(\"left\", {\r\n \"w:w\": formatting.margins.left,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n if (formatting.margins.bottom !== undefined) {\r\n marginElements.push(\r\n XMLBuilder.wSelf(\"bottom\", {\r\n \"w:w\": formatting.margins.bottom,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n if (formatting.margins.right !== undefined) {\r\n marginElements.push(\r\n XMLBuilder.wSelf(\"right\", {\r\n \"w:w\": formatting.margins.right,\r\n \"w:type\": \"dxa\",\r\n })\r\n );\r\n }\r\n if (marginElements.length > 0) {\r\n tcPrChildren.push(XMLBuilder.w(\"tcMar\", undefined, marginElements));\r\n }\r\n }\r\n\r\n // Vertical alignment\r\n if (formatting.verticalAlignment) {\r\n tcPrChildren.push(\r\n XMLBuilder.wSelf(\"vAlign\", { \"w:val\": formatting.verticalAlignment })\r\n );\r\n }\r\n\r\n return XMLBuilder.w(\"tcPr\", undefined, tcPrChildren);\r\n }\r\n\r\n /**\r\n * Generates table row properties XML (trPr) - Phase 5.1\r\n */\r\n private generateTableRowProperties(\r\n formatting: TableRowStyleFormatting\r\n ): XMLElement {\r\n const trPrChildren: XMLElement[] = [];\r\n\r\n // Style-level trPr has a restricted content model compared to inline trPr.\r\n // Valid children: cantSplit, tblHeader, tblCellSpacing, jc, hidden\r\n // NOTE: trHeight is NOT valid in style-level trPr per OOXML strict schema.\r\n\r\n // Can't split row across pages\r\n if (formatting.cantSplit) {\r\n trPrChildren.push(XMLBuilder.wSelf(\"cantSplit\"));\r\n }\r\n\r\n // Header row\r\n if (formatting.isHeader) {\r\n trPrChildren.push(XMLBuilder.wSelf(\"tblHeader\"));\r\n }\r\n\r\n return XMLBuilder.w(\"trPr\", undefined, trPrChildren);\r\n }\r\n\r\n /**\r\n * Generates conditional formatting XML (tblStylePr) - Phase 5.1\r\n */\r\n private generateConditionalFormatting(\r\n conditional: ConditionalTableFormatting\r\n ): XMLElement {\r\n const tblStylePrChildren: XMLElement[] = [];\r\n\r\n // Add paragraph properties if specified\r\n if (conditional.paragraphFormatting) {\r\n const pPr = this.generateParagraphProperties(\r\n conditional.paragraphFormatting\r\n );\r\n if (pPr.children && pPr.children.length > 0) {\r\n tblStylePrChildren.push(pPr);\r\n }\r\n }\r\n\r\n // Add run properties if specified\r\n if (conditional.runFormatting) {\r\n const rPr = this.generateRunProperties(conditional.runFormatting);\r\n if (rPr.children && rPr.children.length > 0) {\r\n tblStylePrChildren.push(rPr);\r\n }\r\n }\r\n\r\n // Add table properties if specified\r\n if (conditional.tableFormatting) {\r\n const tblPr = this.generateTableProperties(\r\n conditional.tableFormatting,\r\n {},\r\n true\r\n );\r\n if (tblPr.children && tblPr.children.length > 0) {\r\n tblStylePrChildren.push(tblPr);\r\n }\r\n }\r\n\r\n // Add cell properties if specified\r\n if (conditional.cellFormatting) {\r\n const tcPr = this.generateTableCellProperties(conditional.cellFormatting);\r\n if (tcPr.children && tcPr.children.length > 0) {\r\n tblStylePrChildren.push(tcPr);\r\n }\r\n }\r\n\r\n // Add row properties if specified\r\n if (conditional.rowFormatting) {\r\n const trPr = this.generateTableRowProperties(conditional.rowFormatting);\r\n if (trPr.children && trPr.children.length > 0) {\r\n tblStylePrChildren.push(trPr);\r\n }\r\n }\r\n\r\n return XMLBuilder.w(\r\n \"tblStylePr\",\r\n { \"w:type\": conditional.type },\r\n tblStylePrChildren\r\n );\r\n }\r\n\r\n /**\r\n * Generates border elements for tables or cells - Phase 5.1\r\n * @param borders - Border properties\r\n * @param includeDiagonals - Whether to include diagonal borders (for cells)\r\n */\r\n private generateBorderElements(\r\n borders: TableBorders | CellBorders,\r\n includeDiagonals: boolean\r\n ): XMLElement[] {\r\n const borderElements: XMLElement[] = [];\r\n\r\n // Ordered per ECMA-376 CT_TblBorders / CT_TcBorders: top, left, bottom, right\r\n const borderProps = [\r\n \"top\",\r\n \"left\",\r\n \"bottom\",\r\n \"right\",\r\n \"insideH\",\r\n \"insideV\",\r\n ] as const;\r\n for (const prop of borderProps) {\r\n const border = borders[prop];\r\n if (border) {\r\n const attrs: Record<string, string | number> = {};\r\n if (border.style) attrs[\"w:val\"] = border.style;\r\n if (border.size !== undefined) attrs[\"w:sz\"] = border.size;\r\n if (border.space !== undefined) attrs[\"w:space\"] = border.space;\r\n if (border.color) attrs[\"w:color\"] = border.color;\r\n\r\n if (Object.keys(attrs).length > 0) {\r\n borderElements.push(XMLBuilder.wSelf(prop, attrs));\r\n }\r\n }\r\n }\r\n\r\n // Add diagonal borders for cells\r\n if (includeDiagonals) {\r\n const cellBorders = borders as CellBorders;\r\n if (cellBorders.tl2br) {\r\n const attrs: Record<string, string | number> = {};\r\n if (cellBorders.tl2br.style) attrs[\"w:val\"] = cellBorders.tl2br.style;\r\n if (cellBorders.tl2br.size !== undefined)\r\n attrs[\"w:sz\"] = cellBorders.tl2br.size;\r\n if (cellBorders.tl2br.space !== undefined)\r\n attrs[\"w:space\"] = cellBorders.tl2br.space;\r\n if (cellBorders.tl2br.color) attrs[\"w:color\"] = cellBorders.tl2br.color;\r\n\r\n if (Object.keys(attrs).length > 0) {\r\n borderElements.push(XMLBuilder.wSelf(\"tl2br\", attrs));\r\n }\r\n }\r\n if (cellBorders.tr2bl) {\r\n const attrs: Record<string, string | number> = {};\r\n if (cellBorders.tr2bl.style) attrs[\"w:val\"] = cellBorders.tr2bl.style;\r\n if (cellBorders.tr2bl.size !== undefined)\r\n attrs[\"w:sz\"] = cellBorders.tr2bl.size;\r\n if (cellBorders.tr2bl.space !== undefined)\r\n attrs[\"w:space\"] = cellBorders.tr2bl.space;\r\n if (cellBorders.tr2bl.color) attrs[\"w:color\"] = cellBorders.tr2bl.color;\r\n\r\n if (Object.keys(attrs).length > 0) {\r\n borderElements.push(XMLBuilder.wSelf(\"tr2bl\", attrs));\r\n }\r\n }\r\n }\r\n\r\n return borderElements;\r\n }\r\n\r\n /**\r\n * Generates shading element - Phase 5.1\r\n */\r\n private generateShadingElement(shading: ShadingProperties): XMLElement {\r\n const attrs = buildShadingAttributes(shading);\r\n return XMLBuilder.wSelf(\"shd\", attrs);\r\n }\r\n\r\n /**\r\n * Creates a new Style\r\n * @param properties - Style properties\r\n * @returns New Style instance\r\n */\r\n static create(properties: StyleProperties): Style {\r\n return new Style(properties);\r\n }\r\n\r\n /**\r\n * Creates the Normal style (default paragraph style)\r\n * @returns Normal style\r\n */\r\n static createNormalStyle(): Style {\r\n return new Style({\r\n styleId: \"Normal\",\r\n name: \"Normal\",\r\n type: \"paragraph\",\r\n isDefault: true,\r\n next: \"Normal\",\r\n qFormat: true,\r\n uiPriority: 0,\r\n paragraphFormatting: {\r\n alignment: \"left\",\r\n spacing: {\r\n before: 60, // 3pt\r\n after: 60, // 3pt\r\n line: 240, // Single line spacing\r\n lineRule: \"auto\",\r\n },\r\n },\r\n runFormatting: {\r\n font: \"Verdana\",\r\n size: 12,\r\n color: \"000000\",\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a Heading style\r\n * @param level - Heading level (1-9)\r\n * @returns Heading style\r\n */\r\n static createHeadingStyle(level: number): Style {\r\n if (level < 1 || level > 9) {\r\n throw new Error(\"Heading level must be between 1 and 9\");\r\n }\r\n\r\n // Font sizes: H1=18pt, H2=14pt, H3=12pt, H4-9=12pt\r\n const sizes = [18, 14, 12, 12, 12, 12, 12, 12, 12];\r\n\r\n // Spacing before: H1=0pt, H2=6pt, H3=3pt, H4-9=6pt (in twips: 1pt = 20 twips)\r\n const spacingBefore =\r\n level === 1 ? 0 : level === 2 ? 120 : level === 3 ? 60 : 120;\r\n\r\n // Spacing after: H1=12pt, H2=6pt, H3=3pt, H4-9=6pt (in twips)\r\n const spacingAfter =\r\n level === 1 ? 240 : level === 2 ? 120 : level === 3 ? 60 : 120;\r\n\r\n return new Style({\r\n styleId: `Heading${level}`,\r\n name: `Heading ${level}`,\r\n type: \"paragraph\",\r\n basedOn: \"Normal\",\r\n next: \"Normal\",\r\n link: `Heading${level}Char`,\r\n qFormat: true,\r\n uiPriority: 9,\r\n paragraphFormatting: {\r\n alignment: \"left\",\r\n spacing: {\r\n before: spacingBefore,\r\n after: spacingAfter,\r\n line: 240, // Single line spacing\r\n lineRule: \"auto\",\r\n },\r\n keepNext: true,\r\n keepLines: true,\r\n outlineLevel: level - 1, // Heading 1 = 0, Heading 2 = 1, etc. Required for TOC\r\n },\r\n runFormatting: {\r\n font: \"Verdana\",\r\n size: sizes[level - 1],\r\n bold: true,\r\n color: \"000000\",\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a Heading character style (linked to paragraph style)\r\n * @param level - Heading level (1-9)\r\n * @returns Heading character style\r\n */\r\n static createHeadingCharStyle(level: number): Style {\r\n if (level < 1 || level > 9) {\r\n throw new Error(\"Heading level must be between 1 and 9\");\r\n }\r\n\r\n // Font sizes: H1=18pt, H2=14pt, H3=12pt, H4-9=12pt\r\n const sizes = [18, 14, 12, 12, 12, 12, 12, 12, 12];\r\n\r\n return new Style({\r\n styleId: `Heading${level}Char`,\r\n name: `Heading ${level} Char`,\r\n type: \"character\",\r\n link: `Heading${level}`,\r\n qFormat: true,\r\n uiPriority: 9,\r\n runFormatting: {\r\n font: \"Verdana\",\r\n size: sizes[level - 1],\r\n bold: true,\r\n color: \"000000\",\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates the Title style\r\n * @returns Title style\r\n */\r\n static createTitleStyle(): Style {\r\n return new Style({\r\n styleId: \"Title\",\r\n name: \"Title\",\r\n type: \"paragraph\",\r\n basedOn: \"Normal\",\r\n next: \"Normal\",\r\n paragraphFormatting: {\r\n spacing: {\r\n after: 120,\r\n },\r\n },\r\n runFormatting: {\r\n font: \"Verdana\",\r\n size: 28,\r\n color: \"000000\",\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates the Subtitle style\r\n * @returns Subtitle style\r\n */\r\n static createSubtitleStyle(): Style {\r\n return new Style({\r\n styleId: \"Subtitle\",\r\n name: \"Subtitle\",\r\n type: \"paragraph\",\r\n basedOn: \"Normal\",\r\n next: \"Normal\",\r\n paragraphFormatting: {\r\n spacing: {\r\n after: 120,\r\n },\r\n },\r\n runFormatting: {\r\n font: \"Verdana\",\r\n size: 14,\r\n color: \"000000\",\r\n italic: true,\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a List Paragraph style (for lists)\r\n * @returns List Paragraph style\r\n */\r\n static createListParagraphStyle(): Style {\r\n return new Style({\r\n styleId: \"ListParagraph\",\r\n name: \"List Paragraph\",\r\n type: \"paragraph\",\r\n basedOn: \"Normal\",\r\n next: \"ListParagraph\",\r\n qFormat: true,\r\n uiPriority: 34,\r\n paragraphFormatting: {\r\n alignment: \"left\",\r\n indentation: {\r\n left: 720, // 0.5 inch (text indentation)\r\n hanging: 360, // 0.25 inch (bullet/number indentation)\r\n },\r\n spacing: {\r\n before: 0, // 0pt\r\n after: 60, // 3pt\r\n line: 240, // Single line spacing\r\n lineRule: \"auto\",\r\n },\r\n contextualSpacing: true, // No space between similar paragraphs\r\n },\r\n runFormatting: {\r\n font: \"Verdana\",\r\n size: 12,\r\n color: \"000000\",\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a TOC Heading style (for table of contents titles)\r\n * @returns TOC Heading style\r\n */\r\n static createTOCHeadingStyle(): Style {\r\n return new Style({\r\n styleId: \"TOCHeading\",\r\n name: \"TOC Heading\",\r\n type: \"paragraph\",\r\n basedOn: \"Heading1\",\r\n next: \"Normal\",\r\n runFormatting: {\r\n bold: true,\r\n font: \"Verdana\",\r\n size: 14,\r\n color: \"000000\", // Black\r\n },\r\n paragraphFormatting: {\r\n spacing: {\r\n before: 480, // Larger spacing before TOC\r\n after: 240,\r\n },\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a TOC entry style for a specific level (1-9).\r\n * TOC 1-9 are built-in Word styles for Table of Contents entries.\r\n * When Word updates a TOC field, it applies these styles to the generated entries.\r\n *\r\n * @param level - TOC level (1-9)\r\n * @param formatting - Optional run and paragraph formatting overrides\r\n * @returns TOC style for the specified level\r\n */\r\n static createTOCStyle(\r\n level: number,\r\n formatting?: {\r\n run?: RunFormatting;\r\n paragraph?: ParagraphFormatting;\r\n }\r\n ): Style {\r\n if (level < 1 || level > 9) {\r\n throw new Error(\"TOC level must be between 1 and 9\");\r\n }\r\n\r\n // Default indentation: 220 twips per level (11pt)\r\n const defaultLeftIndent = (level - 1) * 220;\r\n\r\n return Style.create({\r\n styleId: `TOC${level}`,\r\n name: `toc ${level}`,\r\n type: \"paragraph\",\r\n basedOn: \"Normal\",\r\n uiPriority: 39,\r\n semiHidden: true,\r\n unhideWhenUsed: true,\r\n runFormatting: formatting?.run,\r\n paragraphFormatting: {\r\n indentation: { left: defaultLeftIndent },\r\n ...formatting?.paragraph,\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a Table Normal style (Phase 5.1)\r\n * @returns Table Normal style\r\n */\r\n static createTableNormalStyle(): Style {\r\n return new Style({\r\n styleId: \"TableNormal\",\r\n name: \"Table Normal\",\r\n type: \"table\",\r\n basedOn: \"Normal\",\r\n tableStyle: {\r\n table: {\r\n cellMargins: {\r\n top: 0,\r\n left: 108, // ~0.075 inch\r\n bottom: 0,\r\n right: 108,\r\n },\r\n },\r\n rowBandSize: 1,\r\n colBandSize: 1,\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a Table Grid style with borders (Phase 5.1)\r\n * @returns Table Grid style\r\n */\r\n static createTableGridStyle(): Style {\r\n return new Style({\r\n styleId: \"TableGrid\",\r\n name: \"Table Grid\",\r\n type: \"table\",\r\n basedOn: \"TableNormal\",\r\n tableStyle: {\r\n table: {\r\n borders: {\r\n top: { style: \"single\", size: 4, color: \"000000\" },\r\n bottom: { style: \"single\", size: 4, color: \"000000\" },\r\n left: { style: \"single\", size: 4, color: \"000000\" },\r\n right: { style: \"single\", size: 4, color: \"000000\" },\r\n insideH: { style: \"single\", size: 4, color: \"000000\" },\r\n insideV: { style: \"single\", size: 4, color: \"000000\" },\r\n },\r\n cellMargins: {\r\n top: 0,\r\n left: 108,\r\n bottom: 0,\r\n right: 108,\r\n },\r\n },\r\n rowBandSize: 1,\r\n colBandSize: 1,\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Creates a deep clone of this style\r\n * @returns New Style instance with copied properties\r\n * @example\r\n * ```typescript\r\n * const original = Style.createHeadingStyle(1);\r\n * const copy = original.clone();\r\n * copy.setRunFormatting({ color: 'FF0000' }); // Doesn't affect original\r\n * ```\r\n */\r\n clone(): Style {\r\n // Deep copy all properties\r\n const clonedProps: StyleProperties = deepClone(this.properties);\r\n return new Style(clonedProps);\r\n }\r\n\r\n /**\r\n * Resets the style to its minimal state\r\n * Clears all paragraph and run formatting while preserving the style identity\r\n * @returns This style for chaining\r\n * @example\r\n * ```typescript\r\n * const style = Style.createHeadingStyle(1);\r\n * style.reset(); // Clears all formatting, keeps styleId and name\r\n * ```\r\n */\r\n reset(): this {\r\n // Preserve identity properties\r\n const { styleId, name, type, basedOn } = this.properties;\r\n\r\n // Reset to minimal properties\r\n this.properties = {\r\n styleId,\r\n name,\r\n type,\r\n basedOn,\r\n };\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Merges properties from another style into this one\r\n * @param otherStyle - Style to merge from\r\n * @returns This style for chaining\r\n * @example\r\n * ```typescript\r\n * const base = Style.createNormalStyle();\r\n * const override = Style.create({\r\n * styleId: 'Override',\r\n * name: 'Override',\r\n * type: 'paragraph',\r\n * runFormatting: { bold: true, color: 'FF0000' }\r\n * });\r\n * base.mergeWith(override); // base now has bold red text\r\n * ```\r\n */\r\n mergeWith(otherStyle: Style): this {\r\n const otherProps = otherStyle.getProperties();\r\n\r\n // Merge paragraph formatting\r\n if (otherProps.paragraphFormatting) {\r\n if (!this.properties.paragraphFormatting) {\r\n this.properties.paragraphFormatting = {};\r\n }\r\n\r\n // Merge top-level paragraph properties\r\n if (otherProps.paragraphFormatting.alignment) {\r\n this.properties.paragraphFormatting.alignment =\r\n otherProps.paragraphFormatting.alignment;\r\n }\r\n if (otherProps.paragraphFormatting.keepNext !== undefined) {\r\n this.properties.paragraphFormatting.keepNext =\r\n otherProps.paragraphFormatting.keepNext;\r\n }\r\n if (otherProps.paragraphFormatting.keepLines !== undefined) {\r\n this.properties.paragraphFormatting.keepLines =\r\n otherProps.paragraphFormatting.keepLines;\r\n }\r\n if (otherProps.paragraphFormatting.pageBreakBefore !== undefined) {\r\n this.properties.paragraphFormatting.pageBreakBefore =\r\n otherProps.paragraphFormatting.pageBreakBefore;\r\n }\r\n\r\n // Merge indentation\r\n if (otherProps.paragraphFormatting.indentation) {\r\n if (!this.properties.paragraphFormatting.indentation) {\r\n this.properties.paragraphFormatting.indentation = {};\r\n }\r\n Object.assign(\r\n this.properties.paragraphFormatting.indentation,\r\n otherProps.paragraphFormatting.indentation\r\n );\r\n }\r\n\r\n // Merge spacing\r\n if (otherProps.paragraphFormatting.spacing) {\r\n if (!this.properties.paragraphFormatting.spacing) {\r\n this.properties.paragraphFormatting.spacing = {};\r\n }\r\n Object.assign(\r\n this.properties.paragraphFormatting.spacing,\r\n otherProps.paragraphFormatting.spacing\r\n );\r\n }\r\n }\r\n\r\n // Merge run formatting\r\n if (otherProps.runFormatting) {\r\n if (!this.properties.runFormatting) {\r\n this.properties.runFormatting = {};\r\n }\r\n Object.assign(this.properties.runFormatting, otherProps.runFormatting);\r\n }\r\n\r\n // Merge other properties (but don't override styleId)\r\n if (otherProps.name) this.properties.name = otherProps.name;\r\n if (otherProps.basedOn) this.properties.basedOn = otherProps.basedOn;\r\n if (otherProps.next) this.properties.next = otherProps.next;\r\n\r\n return this;\r\n }\r\n}\r\n"]}
@@ -53,11 +53,11 @@ export declare class StylesManager {
53
53
  cleanupUnusedStyles(paragraphs: Paragraph[]): number;
54
54
  validateStyleReferences(): {
55
55
  valid: boolean;
56
- brokenReferences: Array<{
56
+ brokenReferences: {
57
57
  styleId: string;
58
58
  basedOn: string;
59
- }>;
60
- circularReferences: Array<string[]>;
59
+ }[];
60
+ circularReferences: string[][];
61
61
  };
62
62
  getInheritanceChain(styleId: string): Style[];
63
63
  hasCircularReference(styleId: string): {
@@ -1 +1 @@
1
- {"version":3,"file":"StylesManager.d.ts","sourceRoot":"","sources":["../../src/formatting/StylesManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StylesManager.d.ts","sourceRoot":"","sources":["../../src/formatting/StylesManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StylesManager.js","sourceRoot":"","sources":["../../src/formatting/StylesManager.ts"],"names":[],"mappings":";;;AAMA,kDAA+C;AAC/C,gDAA6C;AAC7C,mCAA2C;AAqB3C,MAAa,aAAa;IAChB,MAAM,GAAuB,IAAI,GAAG,EAAE,CAAC;IACvC,oBAAoB,CAAU;IAG9B,SAAS,GAAY,KAAK,CAAC;IAG3B,iBAAiB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAM3C,MAAM,CAAU,wBAAwB,GAAG,IAAI,GAAG,CAGxD;QACA,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,iBAAiB,EAAE,CAAC;QAC3C,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,mBAAmB,EAAE,CAAC;QAC/C,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,wBAAwB,EAAE,CAAC;QACzD,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,qBAAqB,EAAE,CAAC;QACnD,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,sBAAsB,EAAE,CAAC;QACrD,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,oBAAoB,EAAE,CAAC;KAClD,CAAC,CAAC;IAMH,YAAY,uBAAgC,IAAI;QAC9C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAIjD,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAMO,iBAAiB,CAAC,OAAe;QAEvC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAGD,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAGD,MAAM,OAAO,GAAG,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAOD,QAAQ,CAAC,KAAY;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,IAAI,QAAQ,EAAE,CAAC;YAEb,IAAI,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;gBACrD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1E,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,aAAa,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAChF,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,QAAQ,CAAC,OAAe;QAEtB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAOD,QAAQ,CAAC,OAAe;QAEtB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,OAAO,CACL,IAAI,CAAC,oBAAoB;YACzB,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CACpD,CAAC;IACJ,CAAC;IAOD,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAMD,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAOD,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAMD,aAAa;QACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAOD,mBAAmB;QACjB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAOD,eAAe,CAAC,IAAe;QAC7B,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;IACzE,CAAC;IAOD,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,OAAO,GACX,KAAK,CAAC,OAAO,KAAK,IAAI;gBACtB,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YACpC,OAAO,OAAO,IAAI,SAAS,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAMD,gBAAgB;QACd,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAQD,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;YAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;YAE3C,OAAO,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAOD,cAAc,CAAC,OAAe;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAMD,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC;IAC5E,CAAC;IASD,gBAAgB,CAAC,OAAe,EAAE,IAAY,EAAE,OAAgB;QAC9D,MAAM,KAAK,GAAG,aAAK,CAAC,MAAM,CAAC;YACzB,OAAO;YACP,IAAI;YACJ,IAAI,EAAE,OAAO;YACb,OAAO;YACP,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAMD,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,MAAM,CAAC,kBAAkB;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAOD,MAAM,CAAC,cAAc,CAAC,OAAe;QACnC,OAAO,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAMD,QAAQ;QAKN,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,WAAW,CACrC,CAAC,MAAM,CAAC;QAET,OAAO;YACL,YAAY;YACZ,sBAAsB,EAAE,IAAI,CAAC,oBAAoB;gBAC/C,CAAC,CAAC,aAAa,CAAC,wBAAwB,CAAC,IAAI;gBAC7C,CAAC,CAAC,CAAC;YACL,YAAY;SACb,CAAC;IACJ,CAAC;IASD,oBAAoB,CAAC,OAAe,EAAE,IAAY,EAAE,OAAgB;QAClE,MAAM,KAAK,GAAG,aAAK,CAAC,MAAM,CAAC;YACzB,OAAO;YACP,IAAI;YACJ,IAAI,EAAE,WAAW;YACjB,OAAO;YACP,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IASD,oBAAoB,CAAC,OAAe,EAAE,IAAY,EAAE,OAAgB;QAClE,MAAM,KAAK,GAAG,aAAK,CAAC,MAAM,CAAC;YACzB,OAAO;YACP,IAAI;YACJ,IAAI,EAAE,WAAW;YACjB,OAAO;YACP,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,iBAAiB;QACf,MAAM,OAAO,GAAG,IAAI,uBAAU,EAAE,CAAC;QAGjC,MAAM,cAAc,GAAG,EAAE,CAAC;QAG1B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAGhD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,CAAC,OAAO,CACb,UAAU,EACV;YACE,SAAS,EACP,8DAA8D;YAChE,SAAS,EACP,qEAAqE;SACxE,EACD,cAAc,CACf,CAAC;QAEF,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAKO,mBAAmB;QACzB,MAAM,kBAAkB,GAAG;YACzB,uBAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACzB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,SAAS;gBACpB,YAAY,EAAE,SAAS;gBACvB,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,uBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACzC,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3C,uBAAU,CAAC,KAAK,CAAC,MAAM,EAAE;gBACvB,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,OAAO;gBACrB,QAAQ,EAAE,OAAO;aAClB,CAAC;SACH,CAAC;QAEF,MAAM,kBAAkB,GAAG;YACzB,uBAAU,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC1B,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,MAAM;aACrB,CAAC;SACH,CAAC;QAEF,OAAO,uBAAU,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE;YAC5C,uBAAU,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE;gBACpC,uBAAU,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,kBAAkB,CAAC;aACnD,CAAC;YACF,uBAAU,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE;gBACpC,uBAAU,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,kBAAkB,CAAC;aACnD,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAMD,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAMD,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAgBD,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,MAAM,MAAM,GAAqB;YAC/B,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,EAAE;SACb,CAAC;QAGF,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC;QAChB,CAAC;QAID,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,iEAAiE,CAClE,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QAMD,MAAM,aAAa,GAAG,qBAAS,CAAC,kBAAkB,CAChD,GAAG,EACH,WAAW,EACX,aAAa,CACd,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC;QAChB,CAAC;QAGD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QACzE,CAAC;QAGD,MAAM,aAAa,GAAG,qBAAS,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAC1E,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;QAGzC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC;QAChB,CAAC;QAGD,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YAEpD,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC5C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,wEAAwE,CACzE,CAAC;QACJ,CAAC;QAGD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAExC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YAEzC,MAAM,OAAO,GAAG,qBAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACtE,IAAI,OAAO,EAAE,CAAC;gBAEZ,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;oBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACN,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACzE,CAAC;YAGD,MAAM,IAAI,GAAG,qBAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,IAAI,GAAG,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YACtE,CAAC;YAGD,MAAM,cAAc,GAAG,qBAAS,CAAC,eAAe,CAC9C,YAAY,EACZ,WAAW,CACZ,CAAC,CAAC,CAAC,CAAC;YACL,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,qBAAS,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBACpE,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;oBACnC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;oBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,uCAAuC,OAAO,mBAAmB,CAClE,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAClB,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QAGD,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAClB,+DAA+D,CAChE,CAAC;QACJ,CAAC;QAGD,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAYD,YAAY,CAAC,UAAkB;QAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC7C,CAAC;IACJ,CAAC;IAYD,UAAU,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC/C,OAAO,aAAa,EAAE,IAAI,KAAK,QAAQ,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAkBD,UAAU,CAAC,SAAoC;QAC7C,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAaD,gBAAgB,CAAC,UAAuB;QACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAGrC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAGD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3E,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAaD,mBAAmB,CAAC,UAAuB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YAE7B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9B,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAcD,uBAAuB;QAKrB,MAAM,MAAM,GAAgD,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YAGpC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC;YAGD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACxD,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBAC9C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAEhC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YACnD,gBAAgB,EAAE,MAAM;YACxB,kBAAkB,EAAE,QAAQ;SAC7B,CAAC;IACJ,CAAC;IAcD,mBAAmB,CAAC,OAAe;QACjC,MAAM,KAAK,GAAY,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAGvC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC/D,MAAM,IAAI,KAAK,CACb,sCAAsC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;oBAC1D,UAAU,SAAS,gDAAgD,CACtE,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YACtC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAcD,oBAAoB,CAAC,OAAe;QAIlC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAEvC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACnD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrB,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YACtC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,CAAC;QAED,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAYD,gBAAgB,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,WAAW,CACzD,CAAC;IACJ,CAAC;IAgBD,WAAW,CAAC,OAAe;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,aAAa,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAcD,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,aAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,2BACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAC3C,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAcD,eAAe;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAcD,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,aAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,4BACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAC3C,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;;AA98BH,sCA+8BC"}
1
+ {"version":3,"file":"StylesManager.js","sourceRoot":"","sources":["../../src/formatting/StylesManager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * StylesManager - Manages the collection of styles in a document\r\n * Handles style registration, retrieval, and styles.xml generation\r\n */\r\n\r\nimport { Paragraph } from \"../elements/Paragraph\";\r\nimport { XMLBuilder } from \"../xml/XMLBuilder\";\r\nimport { XMLParser } from \"../xml/XMLParser\";\r\nimport { Style, StyleType } from \"./Style\";\r\n\r\n/**\r\n * Result of XML validation\r\n */\r\nexport interface ValidationResult {\r\n /** Whether the XML is valid */\r\n isValid: boolean;\r\n /** Validation errors if any */\r\n errors: string[];\r\n /** Validation warnings if any */\r\n warnings: string[];\r\n /** Number of styles found */\r\n styleCount: number;\r\n /** List of style IDs found */\r\n styleIds: string[];\r\n}\r\n\r\n/**\r\n * Manages document styles\r\n */\r\nexport class StylesManager {\r\n private styles = new Map<string, Style>();\r\n private includeBuiltInStyles: boolean;\r\n\r\n // Track if styles have been modified (for XML preservation)\r\n private _modified = false;\r\n\r\n // Track which specific styles have been modified (for selective merging)\r\n private _modifiedStyleIds = new Set<string>();\r\n\r\n /**\r\n * Registry of built-in style factory functions\r\n * Maps style ID to factory function for lazy loading\r\n */\r\n private static readonly BUILT_IN_STYLE_FACTORIES = new Map<\r\n string,\r\n () => Style\r\n >([\r\n [\"Normal\", () => Style.createNormalStyle()],\r\n [\"Heading1\", () => Style.createHeadingStyle(1)],\r\n [\"Heading2\", () => Style.createHeadingStyle(2)],\r\n [\"Heading3\", () => Style.createHeadingStyle(3)],\r\n [\"Heading4\", () => Style.createHeadingStyle(4)],\r\n [\"Heading5\", () => Style.createHeadingStyle(5)],\r\n [\"Heading6\", () => Style.createHeadingStyle(6)],\r\n [\"Heading7\", () => Style.createHeadingStyle(7)],\r\n [\"Heading8\", () => Style.createHeadingStyle(8)],\r\n [\"Heading9\", () => Style.createHeadingStyle(9)],\r\n [\"Heading1Char\", () => Style.createHeadingCharStyle(1)],\r\n [\"Heading2Char\", () => Style.createHeadingCharStyle(2)],\r\n [\"Heading3Char\", () => Style.createHeadingCharStyle(3)],\r\n [\"Heading4Char\", () => Style.createHeadingCharStyle(4)],\r\n [\"Heading5Char\", () => Style.createHeadingCharStyle(5)],\r\n [\"Heading6Char\", () => Style.createHeadingCharStyle(6)],\r\n [\"Heading7Char\", () => Style.createHeadingCharStyle(7)],\r\n [\"Heading8Char\", () => Style.createHeadingCharStyle(8)],\r\n [\"Heading9Char\", () => Style.createHeadingCharStyle(9)],\r\n [\"Title\", () => Style.createTitleStyle()],\r\n [\"Subtitle\", () => Style.createSubtitleStyle()],\r\n [\"ListParagraph\", () => Style.createListParagraphStyle()],\r\n [\"TOCHeading\", () => Style.createTOCHeadingStyle()],\r\n [\"TableNormal\", () => Style.createTableNormalStyle()],\r\n [\"TableGrid\", () => Style.createTableGridStyle()],\r\n ]);\r\n\r\n /**\r\n * Creates a new StylesManager\r\n * @param includeBuiltInStyles - Whether to include built-in styles (default: true)\r\n */\r\n constructor(includeBuiltInStyles = true) {\r\n this.includeBuiltInStyles = includeBuiltInStyles;\r\n\r\n // Always load Normal style if built-in styles are enabled\r\n // Normal is required and referenced by most other styles\r\n if (includeBuiltInStyles) {\r\n this.ensureStyleLoaded(\"Normal\");\r\n }\r\n }\r\n\r\n /**\r\n * Ensures a built-in style is loaded (lazy loading)\r\n * @param styleId - Style ID to load\r\n */\r\n private ensureStyleLoaded(styleId: string): void {\r\n // Already loaded?\r\n if (this.styles.has(styleId)) {\r\n return;\r\n }\r\n\r\n // Built-in styles disabled?\r\n if (!this.includeBuiltInStyles) {\r\n return;\r\n }\r\n\r\n // Is this a built-in style?\r\n const factory = StylesManager.BUILT_IN_STYLE_FACTORIES.get(styleId);\r\n if (factory) {\r\n this.styles.set(styleId, factory());\r\n }\r\n }\r\n\r\n /**\r\n * Adds a style to the collection\r\n * @param style - Style to add\r\n * @returns This manager for chaining\r\n */\r\n addStyle(style: Style): this {\r\n const existing = this.styles.get(style.getStyleId());\r\n if (existing) {\r\n // Preserve isDefault flag if replacing an existing default style\r\n if (existing.getIsDefault() && !style.getIsDefault()) {\r\n style.setIsDefault(true);\r\n }\r\n // Preserve structural properties from existing style if not explicitly set on new\r\n const newProps = style.getProperties();\r\n const existingProps = existing.getProperties();\r\n if (newProps.basedOn === undefined && existingProps.basedOn !== undefined) {\r\n style.setBasedOn(existingProps.basedOn);\r\n }\r\n if (newProps.next === undefined && existingProps.next !== undefined) {\r\n style.setNext(existingProps.next);\r\n }\r\n if (newProps.link === undefined && existingProps.link !== undefined) {\r\n style.setLink(existingProps.link);\r\n }\r\n if (newProps.uiPriority === undefined && existingProps.uiPriority !== undefined) {\r\n style.setUiPriority(existingProps.uiPriority);\r\n }\r\n }\r\n this.styles.set(style.getStyleId(), style);\r\n this._modifiedStyleIds.add(style.getStyleId());\r\n this._modified = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets a style by ID\r\n * Lazy-loads built-in styles on first access\r\n * @param styleId - Style ID to retrieve\r\n * @returns The style, or undefined if not found\r\n */\r\n getStyle(styleId: string): Style | undefined {\r\n // Ensure built-in style is loaded if applicable\r\n this.ensureStyleLoaded(styleId);\r\n return this.styles.get(styleId);\r\n }\r\n\r\n /**\r\n * Checks if a style exists or can be loaded\r\n * @param styleId - Style ID to check\r\n * @returns True if the style exists or is a built-in style\r\n */\r\n hasStyle(styleId: string): boolean {\r\n // Check if already loaded\r\n if (this.styles.has(styleId)) {\r\n return true;\r\n }\r\n\r\n // Check if it's a built-in style that can be loaded\r\n return (\r\n this.includeBuiltInStyles &&\r\n StylesManager.BUILT_IN_STYLE_FACTORIES.has(styleId)\r\n );\r\n }\r\n\r\n /**\r\n * Removes a style from the collection\r\n * @param styleId - Style ID to remove\r\n * @returns True if the style was removed\r\n */\r\n removeStyle(styleId: string): boolean {\r\n return this.styles.delete(styleId);\r\n }\r\n\r\n /**\r\n * Gets all styles\r\n * @returns Array of all styles\r\n */\r\n getAllStyles(): Style[] {\r\n return Array.from(this.styles.values());\r\n }\r\n\r\n /**\r\n * Checks if styles have been modified since loading\r\n * Used for XML preservation optimization\r\n * @returns True if styles were added or modified\r\n */\r\n isModified(): boolean {\r\n return this._modified;\r\n }\r\n\r\n /**\r\n * Resets the modified flag\r\n * Called after parsing to indicate that loaded styles don't count as modifications\r\n */\r\n resetModified(): void {\r\n this._modified = false;\r\n this._modifiedStyleIds.clear();\r\n }\r\n\r\n /**\r\n * Gets the IDs of styles that have been modified since loading\r\n * Used for selective merging with original styles.xml\r\n * @returns Set of modified style IDs\r\n */\r\n getModifiedStyleIds(): Set<string> {\r\n return new Set(this._modifiedStyleIds);\r\n }\r\n\r\n /**\r\n * Gets styles by type\r\n * @param type - Style type to filter by\r\n * @returns Array of styles matching the type\r\n */\r\n getStylesByType(type: StyleType): Style[] {\r\n return this.getAllStyles().filter((style) => style.getType() === type);\r\n }\r\n\r\n /**\r\n * Gets quick styles (styles that appear in the style gallery)\r\n * A style appears in the gallery when qFormat=true AND semiHidden=false\r\n * @returns Array of quick styles\r\n */\r\n getQuickStyles(): Style[] {\r\n return this.getAllStyles().filter((style) => {\r\n const props = style.getProperties();\r\n const isQuick =\r\n props.qFormat === true ||\r\n (!props.customStyle && props.qFormat !== false);\r\n const isVisible = !props.semiHidden;\r\n return isQuick && isVisible;\r\n });\r\n }\r\n\r\n /**\r\n * Gets visible styles (not semi-hidden)\r\n * @returns Array of visible styles\r\n */\r\n getVisibleStyles(): Style[] {\r\n return this.getAllStyles().filter((style) => {\r\n const props = style.getProperties();\r\n return !props.semiHidden;\r\n });\r\n }\r\n\r\n /**\r\n * Gets styles sorted by UI priority\r\n * Lower priority values appear first (higher importance)\r\n * Styles without priority appear last\r\n * @returns Array of styles sorted by priority\r\n */\r\n getStylesByPriority(): Style[] {\r\n return this.getAllStyles().sort((a, b) => {\r\n const propsA = a.getProperties();\r\n const propsB = b.getProperties();\r\n\r\n const priorityA = propsA.uiPriority ?? 999;\r\n const priorityB = propsB.uiPriority ?? 999;\r\n\r\n return priorityA - priorityB;\r\n });\r\n }\r\n\r\n /**\r\n * Gets the linked style for a given style\r\n * @param styleId - Style ID to find the linked style for\r\n * @returns The linked style, or undefined if not found\r\n */\r\n getLinkedStyle(styleId: string): Style | undefined {\r\n const style = this.getStyle(styleId);\r\n if (!style) {\r\n return undefined;\r\n }\r\n\r\n const props = style.getProperties();\r\n if (!props.link) {\r\n return undefined;\r\n }\r\n\r\n return this.getStyle(props.link);\r\n }\r\n\r\n /**\r\n * Gets all table styles (Phase 5.1)\r\n * @returns Array of table styles\r\n */\r\n getTableStyles(): Style[] {\r\n return this.getAllStyles().filter((style) => style.getType() === \"table\");\r\n }\r\n\r\n /**\r\n * Creates and adds a table style (Phase 5.1)\r\n * @param styleId - Style ID\r\n * @param name - Style name\r\n * @param basedOn - Base style ID (optional)\r\n * @returns The created table style\r\n */\r\n createTableStyle(styleId: string, name: string, basedOn?: string): Style {\r\n const style = Style.create({\r\n styleId,\r\n name,\r\n type: \"table\",\r\n basedOn,\r\n customStyle: true,\r\n });\r\n this.addStyle(style);\r\n return style;\r\n }\r\n\r\n /**\r\n * Gets the number of styles\r\n * @returns Number of styles\r\n */\r\n getStyleCount(): number {\r\n return this.styles.size;\r\n }\r\n\r\n /**\r\n * Clears all styles\r\n * @returns This manager for chaining\r\n */\r\n clear(): this {\r\n this.styles.clear();\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets all available built-in style IDs\r\n * @returns Array of built-in style IDs\r\n */\r\n static getBuiltInStyleIds(): string[] {\r\n return Array.from(StylesManager.BUILT_IN_STYLE_FACTORIES.keys());\r\n }\r\n\r\n /**\r\n * Checks if a style ID is a built-in style\r\n * @param styleId - Style ID to check\r\n * @returns True if the style is a built-in style\r\n */\r\n static isBuiltInStyle(styleId: string): boolean {\r\n return StylesManager.BUILT_IN_STYLE_FACTORIES.has(styleId);\r\n }\r\n\r\n /**\r\n * Gets statistics about loaded vs available styles\r\n * @returns Object with style statistics\r\n */\r\n getStats(): {\r\n loadedStyles: number;\r\n availableBuiltInStyles: number;\r\n customStyles: number;\r\n } {\r\n const loadedStyles = this.styles.size;\r\n const customStyles = this.getAllStyles().filter(\r\n (s) => s.getProperties().customStyle\r\n ).length;\r\n\r\n return {\r\n loadedStyles,\r\n availableBuiltInStyles: this.includeBuiltInStyles\r\n ? StylesManager.BUILT_IN_STYLE_FACTORIES.size\r\n : 0,\r\n customStyles,\r\n };\r\n }\r\n\r\n /**\r\n * Creates a new paragraph style\r\n * @param styleId - Unique style ID\r\n * @param name - Display name\r\n * @param basedOn - Parent style ID (optional)\r\n * @returns The created style\r\n */\r\n createParagraphStyle(styleId: string, name: string, basedOn?: string): Style {\r\n const style = Style.create({\r\n styleId,\r\n name,\r\n type: \"paragraph\",\r\n basedOn,\r\n customStyle: true,\r\n });\r\n this.addStyle(style);\r\n return style;\r\n }\r\n\r\n /**\r\n * Creates a new character style\r\n * @param styleId - Unique style ID\r\n * @param name - Display name\r\n * @param basedOn - Parent style ID (optional)\r\n * @returns The created style\r\n */\r\n createCharacterStyle(styleId: string, name: string, basedOn?: string): Style {\r\n const style = Style.create({\r\n styleId,\r\n name,\r\n type: \"character\",\r\n basedOn,\r\n customStyle: true,\r\n });\r\n this.addStyle(style);\r\n return style;\r\n }\r\n\r\n /**\r\n * Generates the complete styles.xml file\r\n * @returns XML string for word/styles.xml\r\n */\r\n generateStylesXml(): string {\r\n const builder = new XMLBuilder();\r\n\r\n // Create styles element with namespace\r\n const stylesChildren = [];\r\n\r\n // Add document defaults\r\n stylesChildren.push(this.generateDocDefaults());\r\n\r\n // Add all styles\r\n for (const style of this.getAllStyles()) {\r\n stylesChildren.push(style.toXML());\r\n }\r\n\r\n builder.element(\r\n \"w:styles\",\r\n {\r\n \"xmlns:w\":\r\n \"http://schemas.openxmlformats.org/wordprocessingml/2006/main\",\r\n \"xmlns:r\":\r\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",\r\n },\r\n stylesChildren\r\n );\r\n\r\n return builder.build(true);\r\n }\r\n\r\n /**\r\n * Generates document defaults\r\n */\r\n private generateDocDefaults() {\r\n const rPrDefaultChildren = [\r\n XMLBuilder.wSelf(\"rFonts\", {\r\n \"w:ascii\": \"Calibri\",\r\n \"w:hAnsi\": \"Calibri\",\r\n \"w:eastAsia\": \"Calibri\",\r\n \"w:cs\": \"Calibri\",\r\n }),\r\n XMLBuilder.wSelf(\"sz\", { \"w:val\": \"22\" }), // 11pt\r\n XMLBuilder.wSelf(\"szCs\", { \"w:val\": \"22\" }),\r\n XMLBuilder.wSelf(\"lang\", {\r\n \"w:val\": \"en-US\",\r\n \"w:eastAsia\": \"en-US\",\r\n \"w:bidi\": \"ar-SA\",\r\n }),\r\n ];\r\n\r\n const pPrDefaultChildren = [\r\n XMLBuilder.wSelf(\"spacing\", {\r\n \"w:after\": \"200\",\r\n \"w:line\": \"276\",\r\n \"w:lineRule\": \"auto\",\r\n }),\r\n ];\r\n\r\n return XMLBuilder.w(\"docDefaults\", undefined, [\r\n XMLBuilder.w(\"rPrDefault\", undefined, [\r\n XMLBuilder.w(\"rPr\", undefined, rPrDefaultChildren),\r\n ]),\r\n XMLBuilder.w(\"pPrDefault\", undefined, [\r\n XMLBuilder.w(\"pPr\", undefined, pPrDefaultChildren),\r\n ]),\r\n ]);\r\n }\r\n\r\n /**\r\n * Creates a new StylesManager with built-in styles\r\n * @returns New StylesManager instance\r\n */\r\n static create(): StylesManager {\r\n return new StylesManager(true);\r\n }\r\n\r\n /**\r\n * Creates an empty StylesManager (no built-in styles)\r\n * @returns New empty StylesManager instance\r\n */\r\n static createEmpty(): StylesManager {\r\n return new StylesManager(false);\r\n }\r\n\r\n /**\r\n * Validates styles.xml content for structure and correctness\r\n *\r\n * This performs string-based validation to avoid XML parsing corruption.\r\n * It checks for:\r\n * - Well-formed XML structure\r\n * - Required w:styles root element\r\n * - Valid style definitions\r\n * - No duplicate style IDs\r\n * - Required attributes\r\n *\r\n * @param xml - The raw styles.xml content to validate\r\n * @returns ValidationResult with details about validity\r\n */\r\n static validate(xml: string): ValidationResult {\r\n const result: ValidationResult = {\r\n isValid: true,\r\n errors: [],\r\n warnings: [],\r\n styleCount: 0,\r\n styleIds: [],\r\n };\r\n\r\n // Check for empty or null\r\n if (!xml || xml.trim().length === 0) {\r\n result.isValid = false;\r\n result.errors.push(\"Styles XML is empty or null\");\r\n return result;\r\n }\r\n\r\n // Check for common corruption patterns FIRST (before parsing)\r\n // This catches double-encoding issues that would break the parser\r\n if (xml.includes(\"&lt;w:\") || xml.includes(\"&gt;\")) {\r\n result.isValid = false;\r\n result.errors.push(\r\n \"XML contains escaped tags - possible double-encoding corruption\"\r\n );\r\n return result;\r\n }\r\n\r\n // Skip complex XML structure validation - focus on w:styles specific validation\r\n // Checking balanced tags with regex is unreliable and can give false positives\r\n\r\n // Use XMLParser to extract root element\r\n const stylesContent = XMLParser.extractBetweenTags(\r\n xml,\r\n \"<w:styles\",\r\n \"</w:styles>\"\r\n );\r\n if (!stylesContent) {\r\n result.isValid = false;\r\n result.errors.push(\"Missing required <w:styles> root element\");\r\n return result;\r\n }\r\n\r\n // Check for namespace declaration\r\n if (!xml.includes(\"xmlns:w=\")) {\r\n result.warnings.push(\"Missing WordprocessingML namespace declaration\");\r\n }\r\n\r\n // Use XMLParser to extract all style elements\r\n const styleElements = XMLParser.extractElements(stylesContent, \"w:style\");\r\n result.styleCount = styleElements.length;\r\n\r\n // Check if any styles found\r\n if (styleElements.length === 0) {\r\n result.warnings.push(\"No styles found in document\");\r\n return result;\r\n }\r\n\r\n // Check for styles without attributes (invalid)\r\n const styleWithoutAttrs = styleElements.filter((el) => {\r\n // Check if element has any attributes\r\n const openTagEnd = el.indexOf(\">\");\r\n const openTag = el.substring(0, openTagEnd);\r\n return !openTag.includes(\"w:type\") || !openTag.includes(\"w:styleId\");\r\n });\r\n\r\n if (styleWithoutAttrs.length > 0) {\r\n result.isValid = false;\r\n result.errors.push(\r\n \"Style found without any attributes - w:type and w:styleId are required\"\r\n );\r\n }\r\n\r\n // Process each style element\r\n const foundStyleIds = new Set<string>();\r\n\r\n for (const styleElement of styleElements) {\r\n // Extract styleId using XMLParser\r\n const styleId = XMLParser.extractAttribute(styleElement, \"w:styleId\");\r\n if (styleId) {\r\n // Check for duplicates\r\n if (foundStyleIds.has(styleId)) {\r\n result.isValid = false;\r\n result.errors.push(`Duplicate style ID found: \"${styleId}\"`);\r\n } else {\r\n foundStyleIds.add(styleId);\r\n result.styleIds.push(styleId);\r\n }\r\n } else {\r\n result.isValid = false;\r\n result.errors.push(\"Style found without required w:styleId attribute\");\r\n }\r\n\r\n // Extract and validate type using XMLParser\r\n const type = XMLParser.extractAttribute(styleElement, \"w:type\");\r\n if (type) {\r\n if (![\"paragraph\", \"character\", \"table\", \"numbering\"].includes(type)) {\r\n result.warnings.push(`Invalid style type: \"${type}\"`);\r\n }\r\n } else {\r\n result.isValid = false;\r\n result.errors.push(\"Style found without required w:type attribute\");\r\n }\r\n\r\n // Check for circular references - extract basedOn value\r\n const basedOnElement = XMLParser.extractElements(\r\n styleElement,\r\n \"w:basedOn\"\r\n )[0];\r\n if (basedOnElement && styleId) {\r\n const basedOn = XMLParser.extractAttribute(basedOnElement, \"w:val\");\r\n if (basedOn && styleId === basedOn) {\r\n result.isValid = false;\r\n result.errors.push(\r\n `Circular reference detected: style \"${styleId}\" based on itself`\r\n );\r\n }\r\n }\r\n }\r\n\r\n // Check for required Normal style\r\n if (!foundStyleIds.has(\"Normal\")) {\r\n result.warnings.push(\r\n 'Missing \"Normal\" style - document may not render correctly'\r\n );\r\n }\r\n\r\n // Check for BOM or invalid characters\r\n if (xml.charCodeAt(0) === 0xfeff) {\r\n result.warnings.push(\r\n \"XML contains BOM (Byte Order Mark) - may cause parsing issues\"\r\n );\r\n }\r\n\r\n // Summary\r\n if (result.styleCount === 0) {\r\n result.warnings.push(\"No styles found in document\");\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Searches styles by name (case-insensitive)\r\n * @param searchTerm - Text to search for in style names\r\n * @returns Array of styles whose names contain the search term\r\n * @example\r\n * ```typescript\r\n * const headings = stylesManager.searchByName('heading');\r\n * console.log(`Found ${headings.length} heading styles`);\r\n * ```\r\n */\r\n searchByName(searchTerm: string): Style[] {\r\n const term = searchTerm.toLowerCase();\r\n return this.getAllStyles().filter((style) =>\r\n style.getName().toLowerCase().includes(term)\r\n );\r\n }\r\n\r\n /**\r\n * Finds styles using a specific font\r\n * @param fontName - Font family name to search for\r\n * @returns Array of styles that use the specified font\r\n * @example\r\n * ```typescript\r\n * const arialStyles = stylesManager.findByFont('Arial');\r\n * console.log(`Found ${arialStyles.length} styles using Arial font`);\r\n * ```\r\n */\r\n findByFont(fontName: string): Style[] {\r\n return this.getAllStyles().filter((style) => {\r\n const runFormatting = style.getRunFormatting();\r\n return runFormatting?.font === fontName;\r\n });\r\n }\r\n\r\n /**\r\n * Finds styles with specific properties using a predicate function\r\n * @param predicate - Filter function that returns true for styles to include\r\n * @returns Array of styles matching the predicate\r\n * @example\r\n * ```typescript\r\n * // Find all paragraph styles\r\n * const paraStyles = stylesManager.findStyles(s => s.getType() === 'paragraph');\r\n *\r\n * // Find styles with custom formatting\r\n * const customStyles = stylesManager.findStyles(s => s.getProperties().customStyle);\r\n *\r\n * // Find styles with specific formatting\r\n * const boldStyles = stylesManager.findStyles(s => s.getRunFormatting()?.bold);\r\n * ```\r\n */\r\n findStyles(predicate: (style: Style) => boolean): Style[] {\r\n return this.getAllStyles().filter(predicate);\r\n }\r\n\r\n /**\r\n * Finds unused styles (not referenced by any paragraphs)\r\n * @param paragraphs - All paragraphs in the document to check against\r\n * @returns Array of unused style IDs\r\n * @example\r\n * ```typescript\r\n * const doc = Document.create();\r\n * const unused = stylesManager.findUnusedStyles(doc.getAllParagraphs());\r\n * console.log(`Found ${unused.length} unused styles: ${unused.join(', ')}`);\r\n * ```\r\n */\r\n findUnusedStyles(paragraphs: Paragraph[]): string[] {\r\n const usedStyles = new Set<string>();\r\n\r\n // Collect all style IDs used by paragraphs\r\n for (const para of paragraphs) {\r\n const styleId = para.getStyle();\r\n if (styleId) {\r\n usedStyles.add(styleId);\r\n }\r\n }\r\n\r\n // Get all style IDs and filter out used ones\r\n const allStyleIds = this.getAllStyles().map((style) => style.getStyleId());\r\n return allStyleIds.filter((styleId) => !usedStyles.has(styleId));\r\n }\r\n\r\n /**\r\n * Removes all unused styles from the document\r\n * @param paragraphs - All paragraphs in the document to check against\r\n * @returns Number of styles removed\r\n * @example\r\n * ```typescript\r\n * const doc = Document.create();\r\n * const removedCount = stylesManager.cleanupUnusedStyles(doc.getAllParagraphs());\r\n * console.log(`Cleaned up ${removedCount} unused styles`);\r\n * ```\r\n */\r\n cleanupUnusedStyles(paragraphs: Paragraph[]): number {\r\n const unused = this.findUnusedStyles(paragraphs);\r\n let count = 0;\r\n\r\n for (const styleId of unused) {\r\n // Don't remove built-in styles\r\n if (!StylesManager.isBuiltInStyle(styleId)) {\r\n if (this.removeStyle(styleId)) {\r\n count++;\r\n }\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n /**\r\n * Validates all style references for broken or circular dependencies\r\n * @returns Validation result with broken references and circular dependencies\r\n * @example\r\n * ```typescript\r\n * const validation = stylesManager.validateStyleReferences();\r\n * if (!validation.valid) {\r\n * console.log('Broken references:', validation.brokenReferences);\r\n * console.log('Circular references:', validation.circularReferences);\r\n * }\r\n * ```\r\n */\r\n validateStyleReferences(): {\r\n valid: boolean;\r\n brokenReferences: { styleId: string; basedOn: string }[];\r\n circularReferences: string[][];\r\n } {\r\n const broken: { styleId: string; basedOn: string }[] = [];\r\n const circular: string[][] = [];\r\n const checkedForCycles = new Set<string>();\r\n\r\n for (const style of this.getAllStyles()) {\r\n const props = style.getProperties();\r\n\r\n // Check basedOn references exist\r\n if (props.basedOn && !this.hasStyle(props.basedOn)) {\r\n broken.push({ styleId: props.styleId, basedOn: props.basedOn });\r\n }\r\n\r\n // Check for circular references (only if not already checked as part of another cycle)\r\n if (!checkedForCycles.has(props.styleId)) {\r\n const result = this.hasCircularReference(props.styleId);\r\n if (result.hasCircularRef && result.cyclePath) {\r\n circular.push(result.cyclePath);\r\n // Mark all styles in this cycle as checked\r\n result.cyclePath.forEach((id) => checkedForCycles.add(id));\r\n }\r\n }\r\n }\r\n\r\n return {\r\n valid: broken.length === 0 && circular.length === 0,\r\n brokenReferences: broken,\r\n circularReferences: circular,\r\n };\r\n }\r\n\r\n /**\r\n * Gets the complete inheritance chain for a style\r\n * @param styleId - Style ID to analyze\r\n * @returns Array of styles from base to derived (base style first)\r\n * @throws Error if style doesn't exist or circular reference detected\r\n * @example\r\n * ```typescript\r\n * const chain = stylesManager.getInheritanceChain('Heading1');\r\n * console.log('Inheritance chain:', chain.map(s => s.getName()));\r\n * // Output: ['Normal', 'Heading1'] (Normal is base, Heading1 inherits from it)\r\n * ```\r\n */\r\n getInheritanceChain(styleId: string): Style[] {\r\n const chain: Style[] = [];\r\n const visited = new Set<string>(); // Track visited styles to detect cycles\r\n let current = this.getStyle(styleId);\r\n\r\n if (!current) {\r\n throw new Error(`Style '${styleId}' not found`);\r\n }\r\n\r\n while (current) {\r\n const currentId = current.getStyleId();\r\n\r\n // Detect circular reference\r\n if (visited.has(currentId)) {\r\n const cycle = [...chain.map((s) => s.getStyleId()), currentId];\r\n throw new Error(\r\n `Circular style reference detected: ${cycle.join(\" -> \")}. ` +\r\n `Style '${currentId}' references itself through inheritance chain.`\r\n );\r\n }\r\n\r\n visited.add(currentId);\r\n chain.unshift(current); // Add to beginning to maintain base-to-derived order\r\n const props = current.getProperties();\r\n current = props.basedOn ? this.getStyle(props.basedOn) : undefined;\r\n }\r\n\r\n return chain;\r\n }\r\n\r\n /**\r\n * Checks if a style has circular references in its inheritance chain\r\n * @param styleId - Style ID to check\r\n * @returns Object with hasCircularRef flag and the cycle path if found\r\n * @example\r\n * ```typescript\r\n * const result = stylesManager.hasCircularReference('MyStyle');\r\n * if (result.hasCircularRef) {\r\n * console.log('Circular reference found:', result.cyclePath?.join(' -> '));\r\n * }\r\n * ```\r\n */\r\n hasCircularReference(styleId: string): {\r\n hasCircularRef: boolean;\r\n cyclePath?: string[];\r\n } {\r\n const visited = new Set<string>();\r\n const path: string[] = [];\r\n let current = this.getStyle(styleId);\r\n\r\n while (current) {\r\n const currentId = current.getStyleId();\r\n\r\n if (visited.has(currentId)) {\r\n path.push(currentId);\r\n return { hasCircularRef: true, cyclePath: path };\r\n }\r\n\r\n visited.add(currentId);\r\n path.push(currentId);\r\n const props = current.getProperties();\r\n current = props.basedOn ? this.getStyle(props.basedOn) : undefined;\r\n }\r\n\r\n return { hasCircularRef: false };\r\n }\r\n\r\n /**\r\n * Gets all styles that inherit from a base style\r\n * @param baseStyleId - Base style ID to find children for\r\n * @returns Array of styles that inherit from the base style\r\n * @example\r\n * ```typescript\r\n * const children = stylesManager.getDerivedStyles('Normal');\r\n * console.log(`Styles based on Normal: ${children.map(s => s.getName()).join(', ')}`);\r\n * ```\r\n */\r\n getDerivedStyles(baseStyleId: string): Style[] {\r\n return this.getAllStyles().filter(\r\n (style) => style.getProperties().basedOn === baseStyleId\r\n );\r\n }\r\n\r\n /**\r\n * Exports a single style as JSON string\r\n * @param styleId - Style ID to export\r\n * @returns JSON representation of the style\r\n * @throws Error if style doesn't exist\r\n * @example\r\n * ```typescript\r\n * const json = stylesManager.exportStyle('Heading1');\r\n * console.log('Style JSON:', json);\r\n *\r\n * // Save to file\r\n * await fs.writeFile('heading1-style.json', json);\r\n * ```\r\n */\r\n exportStyle(styleId: string): string {\r\n const style = this.getStyle(styleId);\r\n if (!style) {\r\n throw new Error(`Style '${styleId}' not found`);\r\n }\r\n return JSON.stringify(style.getProperties(), null, 2);\r\n }\r\n\r\n /**\r\n * Imports a style from JSON string\r\n * @param json - JSON string containing style properties\r\n * @returns The imported style\r\n * @throws Error if JSON is invalid or style creation fails\r\n * @example\r\n * ```typescript\r\n * const json = await fs.readFile('custom-style.json', 'utf8');\r\n * const style = stylesManager.importStyle(json);\r\n * console.log(`Imported style: ${style.getName()}`);\r\n * ```\r\n */\r\n importStyle(json: string): Style {\r\n try {\r\n const props = JSON.parse(json);\r\n const style = Style.create(props);\r\n this.addStyle(style);\r\n return style;\r\n } catch (error: unknown) {\r\n throw new Error(\r\n `Failed to import style: ${\r\n error instanceof Error ? error.message : \"Invalid JSON\"\r\n }`\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Exports all styles as JSON string\r\n * @returns JSON array of all style properties\r\n * @example\r\n * ```typescript\r\n * const allStylesJson = stylesManager.exportAllStyles();\r\n * console.log('All styles exported');\r\n *\r\n * // Save to file\r\n * await fs.writeFile('all-styles.json', allStylesJson);\r\n * ```\r\n */\r\n exportAllStyles(): string {\r\n const styles = this.getAllStyles().map((style) => style.getProperties());\r\n return JSON.stringify(styles, null, 2);\r\n }\r\n\r\n /**\r\n * Imports multiple styles from JSON array string\r\n * @param json - JSON string containing array of style properties\r\n * @returns Array of imported styles\r\n * @throws Error if JSON is invalid or style creation fails\r\n * @example\r\n * ```typescript\r\n * const json = await fs.readFile('styles-collection.json', 'utf8');\r\n * const styles = stylesManager.importStyles(json);\r\n * console.log(`Imported ${styles.length} styles`);\r\n * ```\r\n */\r\n importStyles(json: string): Style[] {\r\n try {\r\n const propsArray = JSON.parse(json);\r\n if (!Array.isArray(propsArray)) {\r\n throw new Error(\"JSON must contain an array of style properties\");\r\n }\r\n\r\n const styles: Style[] = [];\r\n for (const props of propsArray) {\r\n const style = Style.create(props);\r\n this.addStyle(style);\r\n styles.push(style);\r\n }\r\n\r\n return styles;\r\n } catch (error: unknown) {\r\n throw new Error(\r\n `Failed to import styles: ${\r\n error instanceof Error ? error.message : \"Invalid JSON\"\r\n }`\r\n );\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CleanupHelper.js","sourceRoot":"","sources":["../../src/helpers/CleanupHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CleanupHelper.js","sourceRoot":"","sources":["../../src/helpers/CleanupHelper.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * CleanupHelper - Comprehensive document cleanup utilities\r\n *\r\n * Provides methods to clean up common issues in DOCX documents, including:\r\n * - Unlocking and removing SDTs\r\n * - Clearing preserve flags\r\n * - Defragmenting hyperlinks\r\n * - Cleaning unused elements\r\n * - Removing customXML\r\n * - Unlocking fields and frames\r\n * - Sanitizing tables\r\n *\r\n * Usage:\r\n * const cleanup = new CleanupHelper(doc);\r\n * cleanup.all(); // Run all cleanups\r\n */\r\n\r\nimport type { Document } from \"../core/Document\";\r\nimport { Field, ComplexField } from \"../elements/Field\";\r\nimport { Hyperlink } from \"../elements/Hyperlink\";\r\nimport { Paragraph } from \"../elements/Paragraph\";\r\nimport { Table } from \"../elements/Table\";\r\nimport { StructuredDocumentTag } from \"../elements/StructuredDocumentTag\";\r\n\r\nexport interface CleanupOptions {\r\n /** Unlock all SDTs to enable editing */\r\n unlockSDTs?: boolean;\r\n /** Remove all SDTs (unwrap content) */\r\n removeSDTs?: boolean;\r\n /** Clear paragraph preserve flags */\r\n clearPreserveFlags?: boolean;\r\n /** Merge fragmented hyperlinks */\r\n defragmentHyperlinks?: boolean;\r\n /** Reset hyperlink formatting to standard */\r\n resetHyperlinkFormatting?: boolean;\r\n /** Remove unused numbering definitions */\r\n cleanupNumbering?: boolean;\r\n /** Remove unused styles */\r\n cleanupStyles?: boolean;\r\n /** Remove orphaned relationships */\r\n cleanupRelationships?: boolean;\r\n /** Remove customXML elements */\r\n removeCustomXML?: boolean;\r\n /** Unlock field locks (enable field updates) */\r\n unlockFields?: boolean;\r\n /** Remove frame/text box locks */\r\n unlockFrames?: boolean;\r\n /** Sanitize table property exceptions (tblPrEx) */\r\n sanitizeTables?: boolean;\r\n /** Format internal anchor hyperlinks with standard styling (Verdana 12pt blue underlined) */\r\n formatInternalHyperlinks?: boolean;\r\n /** Format ALL hyperlinks (internal, external, and HYPERLINK fields) with standard styling (Verdana 12pt #0000FF underlined) */\r\n formatAllHyperlinks?: boolean;\r\n}\r\n\r\nexport interface CleanupReport {\r\n sdtsUnlocked: number;\r\n sdtsRemoved: number;\r\n preserveFlagsCleared: number;\r\n hyperlinksDefragmented: number;\r\n numberingRemoved: number;\r\n stylesRemoved: number;\r\n relationshipsRemoved: number;\r\n customXMLRemoved: number;\r\n fieldsUnlocked: number;\r\n framesUnlocked: number;\r\n tablesProcessed: number;\r\n internalHyperlinksFormatted: number;\r\n allHyperlinksFormatted: number;\r\n warnings: string[];\r\n}\r\n\r\nexport class CleanupHelper {\r\n private doc: Document;\r\n\r\n constructor(doc: Document) {\r\n this.doc = doc;\r\n }\r\n\r\n /**\r\n * Run all cleanup operations with default settings\r\n * @returns Cleanup report\r\n */\r\n all(): CleanupReport {\r\n return this.run({\r\n unlockSDTs: true,\r\n removeSDTs: true,\r\n clearPreserveFlags: true,\r\n defragmentHyperlinks: true,\r\n resetHyperlinkFormatting: true,\r\n cleanupNumbering: true,\r\n cleanupStyles: true,\r\n cleanupRelationships: true,\r\n removeCustomXML: true,\r\n unlockFields: true,\r\n unlockFrames: true,\r\n sanitizeTables: true,\r\n formatAllHyperlinks: true,\r\n });\r\n }\r\n\r\n /**\r\n * Run selective cleanup operations\r\n * @param options Cleanup options\r\n * @returns Cleanup report\r\n */\r\n run(options: CleanupOptions): CleanupReport {\r\n const report: CleanupReport = {\r\n sdtsUnlocked: 0,\r\n sdtsRemoved: 0,\r\n preserveFlagsCleared: 0,\r\n hyperlinksDefragmented: 0,\r\n numberingRemoved: 0,\r\n stylesRemoved: 0,\r\n relationshipsRemoved: 0,\r\n customXMLRemoved: 0,\r\n fieldsUnlocked: 0,\r\n framesUnlocked: 0,\r\n tablesProcessed: 0,\r\n internalHyperlinksFormatted: 0,\r\n allHyperlinksFormatted: 0,\r\n warnings: [],\r\n };\r\n\r\n if (options.unlockSDTs) {\r\n report.sdtsUnlocked = this.unlockSDTs();\r\n }\r\n\r\n if (options.removeSDTs) {\r\n report.sdtsRemoved = this.removeSDTs();\r\n }\r\n\r\n if (options.clearPreserveFlags) {\r\n report.preserveFlagsCleared = this.clearPreserveFlags();\r\n }\r\n\r\n if (options.defragmentHyperlinks) {\r\n report.hyperlinksDefragmented = this.defragmentHyperlinks(\r\n options.resetHyperlinkFormatting ?? false\r\n );\r\n }\r\n\r\n if (options.cleanupNumbering) {\r\n report.numberingRemoved = this.cleanupNumbering();\r\n }\r\n\r\n if (options.cleanupStyles) {\r\n report.stylesRemoved = this.cleanupStyles();\r\n }\r\n\r\n if (options.cleanupRelationships) {\r\n report.relationshipsRemoved = this.cleanupRelationships();\r\n }\r\n\r\n if (options.removeCustomXML) {\r\n report.customXMLRemoved = this.removeCustomXML();\r\n }\r\n\r\n if (options.unlockFields) {\r\n report.fieldsUnlocked = this.unlockFields();\r\n }\r\n\r\n if (options.unlockFrames) {\r\n report.framesUnlocked = this.unlockFrames();\r\n }\r\n\r\n if (options.sanitizeTables) {\r\n report.tablesProcessed = this.sanitizeTables();\r\n }\r\n\r\n if (options.formatInternalHyperlinks) {\r\n report.internalHyperlinksFormatted = this.formatInternalHyperlinks();\r\n }\r\n\r\n if (options.formatAllHyperlinks) {\r\n report.allHyperlinksFormatted = this.formatAllHyperlinks();\r\n }\r\n\r\n return report;\r\n }\r\n\r\n private unlockSDTs(): number {\r\n let count = 0;\r\n const bodyElements = this.doc.getBodyElements();\r\n\r\n for (const element of bodyElements) {\r\n if (element instanceof StructuredDocumentTag && element.isLocked()) {\r\n element.unlock();\r\n count++;\r\n }\r\n }\r\n\r\n // Also unlock in tables\r\n for (const table of this.doc.getAllTables()) {\r\n for (const row of table.getRows()) {\r\n for (const cell of row.getCells()) {\r\n for (const para of cell.getParagraphs()) {\r\n // SDTs can wrap paragraphs in cells\r\n const content = para.getContent();\r\n for (const item of content) {\r\n if (item instanceof StructuredDocumentTag && item.isLocked()) {\r\n item.unlock();\r\n count++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n private removeSDTs(): number {\r\n // Unwrap SDT wrappers, preserving their content\r\n const bodyElements = this.doc.getBodyElements();\r\n type BodyElement = Paragraph | Table | StructuredDocumentTag;\r\n const unwrapped: BodyElement[] = [];\r\n let sdtCount = 0;\r\n\r\n const unwrapSDT = (sdt: StructuredDocumentTag, target: BodyElement[]) => {\r\n sdtCount++;\r\n for (const item of sdt.getContent()) {\r\n if (item instanceof Paragraph || item instanceof Table) {\r\n target.push(item);\r\n } else if (item instanceof StructuredDocumentTag) {\r\n unwrapSDT(item, target);\r\n }\r\n }\r\n };\r\n\r\n for (const element of bodyElements) {\r\n if (element instanceof StructuredDocumentTag) {\r\n unwrapSDT(element, unwrapped);\r\n } else {\r\n unwrapped.push(element as BodyElement);\r\n }\r\n }\r\n\r\n this.doc.setBodyElements(unwrapped);\r\n return sdtCount;\r\n }\r\n\r\n private clearPreserveFlags(): number {\r\n let cleared = 0;\r\n for (const para of this.doc.getAllParagraphs()) {\r\n if (para.isPreserved()) {\r\n para.setPreserved(false);\r\n cleared++;\r\n }\r\n }\r\n return cleared;\r\n }\r\n\r\n private defragmentHyperlinks(resetFormatting: boolean): number {\r\n return this.doc.defragmentHyperlinks({ resetFormatting, cleanupRelationships: true });\r\n }\r\n\r\n private cleanupNumbering(): number {\r\n const before = this.doc.getNumberingManager().getAllInstances().length;\r\n this.doc.cleanupUnusedNumbering();\r\n const after = this.doc.getNumberingManager().getAllInstances().length;\r\n return before - after;\r\n }\r\n\r\n private cleanupStyles(): number {\r\n // Implementation for unused styles removal\r\n // Scan all paragraphs and runs for used styles\r\n const usedStyles = new Set<string>();\r\n for (const para of this.doc.getAllParagraphs()) {\r\n const paraStyle = para.getFormatting().style;\r\n if (paraStyle) usedStyles.add(paraStyle);\r\n for (const run of para.getRuns()) {\r\n const runStyle = run.getFormatting().characterStyle;\r\n if (runStyle) usedStyles.add(runStyle);\r\n }\r\n }\r\n\r\n // Remove unused styles\r\n let removed = 0;\r\n const allStyles = this.doc.getStylesManager().getAllStyles();\r\n for (const style of allStyles) {\r\n if (!usedStyles.has(style.getStyleId())) {\r\n this.doc.getStylesManager().removeStyle(style.getStyleId());\r\n removed++;\r\n }\r\n }\r\n\r\n return removed;\r\n }\r\n\r\n private cleanupRelationships(): number {\r\n // Use comprehensive scanning that includes raw nested content (nested tables),\r\n // headers/footers, footnotes, and endnotes — not just in-memory hyperlinks\r\n const referencedIds = this.doc.collectAllReferencedHyperlinkIds();\r\n\r\n // Remove orphaned hyperlink relationships\r\n return this.doc.getRelationshipManager().removeOrphanedHyperlinks(referencedIds);\r\n }\r\n\r\n private removeCustomXML(): number {\r\n const zipHandler = this.doc.getZipHandler();\r\n let removed = 0;\r\n\r\n // Remove customXML files\r\n const files = zipHandler.getFilePaths();\r\n for (const file of files) {\r\n if (file.startsWith('customXml/') || file.startsWith('customXML/')) {\r\n zipHandler.removeFile(file);\r\n removed++;\r\n }\r\n }\r\n\r\n // Remove customXML relationships\r\n const relManager = this.doc.getRelationshipManager();\r\n const customRels = relManager.getRelationshipsByType(\r\n 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml'\r\n );\r\n for (const rel of customRels) {\r\n relManager.removeRelationship(rel.getId());\r\n removed++;\r\n }\r\n\r\n // Remove custom.xml if present (docProps/custom.xml)\r\n if (zipHandler.hasFile('docProps/custom.xml')) {\r\n zipHandler.removeFile('docProps/custom.xml');\r\n removed++;\r\n }\r\n\r\n return removed;\r\n }\r\n\r\n private unlockFields(): number {\r\n const zipHandler = this.doc.getZipHandler();\r\n const docXml = zipHandler.getFileAsString('word/document.xml');\r\n if (!docXml) return 0;\r\n\r\n // Count matches first, then replace (avoid regex re-execution)\r\n const pattern = /w:fldLock=\"(1|true)\"/g;\r\n const matches = docXml.match(pattern) || [];\r\n if (matches.length === 0) return 0;\r\n\r\n // Remove w:fldLock=\"1\" or w:fldLock=\"true\"\r\n const updatedXml = docXml.replace(pattern, '');\r\n zipHandler.updateFile('word/document.xml', updatedXml);\r\n\r\n return matches.length;\r\n }\r\n\r\n private unlockFrames(): number {\r\n const zipHandler = this.doc.getZipHandler();\r\n const docXml = zipHandler.getFileAsString('word/document.xml');\r\n if (!docXml) return 0;\r\n\r\n // Count matches first, then replace (avoid regex re-execution)\r\n const pattern = /w:anchorLock=\"(1|true)\"/g;\r\n const matches = docXml.match(pattern) || [];\r\n if (matches.length === 0) return 0;\r\n\r\n // Remove w:anchorLock=\"1\" or w:anchorLock=\"true\"\r\n const updatedXml = docXml.replace(pattern, '');\r\n zipHandler.updateFile('word/document.xml', updatedXml);\r\n\r\n return matches.length;\r\n }\r\n\r\n private sanitizeTables(): number {\r\n const tables = this.doc.getAllTables();\r\n let processed = 0;\r\n for (const table of tables) {\r\n for (const row of table.getRows()) {\r\n const exceptions = row.getTablePropertyExceptions();\r\n if (exceptions && Object.keys(exceptions).length > 0) {\r\n row.setTablePropertyExceptions(undefined as any);\r\n }\r\n }\r\n processed++;\r\n }\r\n return processed;\r\n }\r\n\r\n private formatInternalHyperlinks(): number {\r\n let count = 0;\r\n const formatting = {\r\n font: \"Verdana\",\r\n size: 12,\r\n color: \"0000FF\",\r\n underline: \"single\" as const,\r\n };\r\n\r\n // Process body paragraphs\r\n for (const paragraph of this.doc.getAllParagraphs()) {\r\n for (const item of paragraph.getContent()) {\r\n if (item instanceof Hyperlink && item.isInternal()) {\r\n item.setFormatting(formatting, { replace: true });\r\n count++;\r\n }\r\n }\r\n }\r\n\r\n // Process table paragraphs\r\n for (const table of this.doc.getAllTables()) {\r\n for (const row of table.getRows()) {\r\n for (const cell of row.getCells()) {\r\n for (const para of cell.getParagraphs()) {\r\n for (const item of para.getContent()) {\r\n if (item instanceof Hyperlink && item.isInternal()) {\r\n item.setFormatting(formatting, { replace: true });\r\n count++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n /**\r\n * Formats ALL hyperlinks in the document with standard styling\r\n * This includes:\r\n * - Internal w:hyperlink elements (bookmarks)\r\n * - External w:hyperlink elements (URLs)\r\n * - HYPERLINK fields (both simple w:fldSimple and complex fields)\r\n *\r\n * Standard formatting: Verdana 12pt, #0000FF blue, single underline\r\n * @returns Number of hyperlinks formatted\r\n */\r\n private formatAllHyperlinks(): number {\r\n let count = 0;\r\n const formatting = {\r\n font: \"Verdana\",\r\n size: 12,\r\n color: \"0000FF\",\r\n underline: \"single\" as const,\r\n };\r\n\r\n // Helper to process paragraph content\r\n const processParagraph = (paragraph: any): void => {\r\n for (const item of paragraph.getContent()) {\r\n // Process all Hyperlink instances (both internal AND external)\r\n if (item instanceof Hyperlink) {\r\n item.setFormatting(formatting, { replace: true });\r\n count++;\r\n }\r\n // Process simple HYPERLINK fields\r\n if (item instanceof Field && item.isHyperlinkField()) {\r\n item.setFormatting(formatting);\r\n count++;\r\n }\r\n // Process complex HYPERLINK fields\r\n if (item instanceof ComplexField && item.isHyperlinkField()) {\r\n item.setResultFormatting(formatting);\r\n count++;\r\n }\r\n }\r\n };\r\n\r\n // Process body paragraphs\r\n for (const paragraph of this.doc.getAllParagraphs()) {\r\n processParagraph(paragraph);\r\n }\r\n\r\n // Process table paragraphs\r\n for (const table of this.doc.getAllTables()) {\r\n for (const row of table.getRows()) {\r\n for (const cell of row.getCells()) {\r\n for (const para of cell.getParagraphs()) {\r\n processParagraph(para);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n /**\r\n * Preset: Google Docs cleanup\r\n */\r\n static googleDocsPreset(): CleanupOptions {\r\n return {\r\n unlockSDTs: true,\r\n removeSDTs: true,\r\n defragmentHyperlinks: true,\r\n resetHyperlinkFormatting: true,\r\n cleanupRelationships: true,\r\n removeCustomXML: true,\r\n sanitizeTables: true,\r\n };\r\n }\r\n\r\n /**\r\n * Preset: Full cleanup\r\n */\r\n static fullCleanupPreset(): CleanupOptions {\r\n return {\r\n unlockSDTs: true,\r\n removeSDTs: true,\r\n clearPreserveFlags: true,\r\n defragmentHyperlinks: true,\r\n resetHyperlinkFormatting: true,\r\n cleanupNumbering: true,\r\n cleanupStyles: true,\r\n cleanupRelationships: true,\r\n removeCustomXML: true,\r\n unlockFields: true,\r\n unlockFrames: true,\r\n sanitizeTables: true,\r\n formatAllHyperlinks: true,\r\n };\r\n }\r\n\r\n /**\r\n * Preset: Minimal cleanup\r\n */\r\n static minimalPreset(): CleanupOptions {\r\n return {\r\n cleanupRelationships: true,\r\n removeCustomXML: true,\r\n };\r\n }\r\n}\r\n"]}