@syncfusion/ej2-docx 0.0.0-stage → 35.1.40

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 (417) hide show
  1. package/.gitleaksignore +35 -0
  2. package/README.md +68 -2
  3. package/core.js +4 -0
  4. package/dist/ej2-docx.umd.min.js +11 -0
  5. package/dist/ej2-docx.umd.min.js.map +1 -0
  6. package/dist/es6/ej2-docx.es2015.js +66697 -0
  7. package/dist/es6/ej2-docx.es2015.js.map +1 -0
  8. package/dist/es6/ej2-docx.es5.js +77568 -0
  9. package/dist/es6/ej2-docx.es5.js.map +1 -0
  10. package/dist/global/ej2-docx.min.js +11 -0
  11. package/dist/global/ej2-docx.min.js.map +1 -0
  12. package/dist/global/index.d.ts +14 -0
  13. package/features.js +4 -0
  14. package/index.js +4 -0
  15. package/license +10 -0
  16. package/package.json +30 -3
  17. package/src/all.d.ts +50 -0
  18. package/src/all.js +147 -0
  19. package/src/core/compat/base64.d.ts +13 -0
  20. package/src/core/compat/base64.js +90 -0
  21. package/src/core/compat/object-compat.d.ts +30 -0
  22. package/src/core/compat/object-compat.js +40 -0
  23. package/src/core/compat/sha256.d.ts +9 -0
  24. package/src/core/compat/sha256.js +98 -0
  25. package/src/core/errors/docx-error.d.ts +89 -0
  26. package/src/core/errors/docx-error.js +138 -0
  27. package/src/core/errors/error-codes.d.ts +8 -0
  28. package/src/core/errors/error-codes.js +0 -0
  29. package/src/core/errors/index.d.ts +10 -0
  30. package/src/core/errors/index.js +9 -0
  31. package/src/core/index.d.ts +12 -0
  32. package/src/core/index.js +12 -0
  33. package/src/core/mc/alternate-content.d.ts +7 -0
  34. package/src/core/mc/alternate-content.js +67 -0
  35. package/src/core/mc/attributes.d.ts +24 -0
  36. package/src/core/mc/attributes.js +82 -0
  37. package/src/core/mc/index.d.ts +7 -0
  38. package/src/core/mc/index.js +5 -0
  39. package/src/core/mc/inspect.d.ts +16 -0
  40. package/src/core/mc/inspect.js +148 -0
  41. package/src/core/mc/namespaces.d.ts +4 -0
  42. package/src/core/mc/namespaces.js +4 -0
  43. package/src/core/mc/scope.d.ts +6 -0
  44. package/src/core/mc/scope.js +47 -0
  45. package/src/core/opc/content-types.d.ts +34 -0
  46. package/src/core/opc/content-types.js +162 -0
  47. package/src/core/opc/index.d.ts +8 -0
  48. package/src/core/opc/index.js +4 -0
  49. package/src/core/opc/package.d.ts +49 -0
  50. package/src/core/opc/package.js +324 -0
  51. package/src/core/opc/part-name.d.ts +47 -0
  52. package/src/core/opc/part-name.js +205 -0
  53. package/src/core/opc/relationships.d.ts +46 -0
  54. package/src/core/opc/relationships.js +212 -0
  55. package/src/core/preservation/index.d.ts +2 -0
  56. package/src/core/preservation/index.js +1 -0
  57. package/src/core/preservation/opaque-body.d.ts +16 -0
  58. package/src/core/preservation/opaque-body.js +69 -0
  59. package/src/core/registry/block-handlers.d.ts +30 -0
  60. package/src/core/registry/block-handlers.js +36 -0
  61. package/src/core/registry/create-defaults.d.ts +39 -0
  62. package/src/core/registry/create-defaults.js +42 -0
  63. package/src/core/registry/feature-registry.d.ts +20 -0
  64. package/src/core/registry/feature-registry.js +29 -0
  65. package/src/core/registry/index.d.ts +9 -0
  66. package/src/core/registry/index.js +8 -0
  67. package/src/core/registry/inline-handlers.d.ts +20 -0
  68. package/src/core/registry/inline-handlers.js +30 -0
  69. package/src/core/registry/materialize-handlers.d.ts +35 -0
  70. package/src/core/registry/materialize-handlers.js +75 -0
  71. package/src/core/registry/multi-part-handlers.d.ts +37 -0
  72. package/src/core/registry/multi-part-handlers.js +206 -0
  73. package/src/core/registry/package-part-handlers.d.ts +28 -0
  74. package/src/core/registry/package-part-handlers.js +190 -0
  75. package/src/core/registry/part-handlers.d.ts +24 -0
  76. package/src/core/registry/part-handlers.js +172 -0
  77. package/src/core/registry/run-leaf-handlers.d.ts +26 -0
  78. package/src/core/registry/run-leaf-handlers.js +72 -0
  79. package/src/core/security/limits.d.ts +40 -0
  80. package/src/core/security/limits.js +26 -0
  81. package/src/core/xml/index.d.ts +7 -0
  82. package/src/core/xml/index.js +3 -0
  83. package/src/core/xml/model.d.ts +66 -0
  84. package/src/core/xml/model.js +17 -0
  85. package/src/core/xml/parse.d.ts +12 -0
  86. package/src/core/xml/parse.js +382 -0
  87. package/src/core/xml/serialize.d.ts +6 -0
  88. package/src/core/xml/serialize.js +93 -0
  89. package/src/core/zip/crc32.d.ts +2 -0
  90. package/src/core/zip/crc32.js +25 -0
  91. package/src/core/zip/deflate.d.ts +6 -0
  92. package/src/core/zip/deflate.js +6 -0
  93. package/src/core/zip/index.d.ts +10 -0
  94. package/src/core/zip/index.js +4 -0
  95. package/src/core/zip/inflate-raw.d.ts +17 -0
  96. package/src/core/zip/inflate-raw.js +450 -0
  97. package/src/core/zip/names.d.ts +6 -0
  98. package/src/core/zip/names.js +52 -0
  99. package/src/core/zip/read.d.ts +8 -0
  100. package/src/core/zip/read.js +262 -0
  101. package/src/core/zip/write.d.ts +7 -0
  102. package/src/core/zip/write.js +189 -0
  103. package/src/core/zip/zip-entry.d.ts +4 -0
  104. package/src/core/zip/zip-entry.js +0 -0
  105. package/src/features/bibliography/index.d.ts +100 -0
  106. package/src/features/bibliography/index.js +290 -0
  107. package/src/features/bookmarks/index.d.ts +331 -0
  108. package/src/features/bookmarks/index.js +1009 -0
  109. package/src/features/comments/comment-extensions.d.ts +157 -0
  110. package/src/features/comments/comment-extensions.js +356 -0
  111. package/src/features/comments/index.d.ts +579 -0
  112. package/src/features/comments/index.js +1727 -0
  113. package/src/features/content-controls/index.d.ts +821 -0
  114. package/src/features/content-controls/index.js +2857 -0
  115. package/src/features/custom-xml/index.d.ts +236 -0
  116. package/src/features/custom-xml/index.js +661 -0
  117. package/src/features/document/alignment.d.ts +23 -0
  118. package/src/features/document/alignment.js +36 -0
  119. package/src/features/document/alt-chunk.d.ts +103 -0
  120. package/src/features/document/alt-chunk.js +221 -0
  121. package/src/features/document/assert-never.d.ts +1 -0
  122. package/src/features/document/assert-never.js +4 -0
  123. package/src/features/document/augmentations.d.ts +578 -0
  124. package/src/features/document/augmentations.js +0 -0
  125. package/src/features/document/body-always-on.d.ts +36 -0
  126. package/src/features/document/body-always-on.js +66 -0
  127. package/src/features/document/body-blocks.d.ts +7 -0
  128. package/src/features/document/body-blocks.js +78 -0
  129. package/src/features/document/body-item-adapters.d.ts +62 -0
  130. package/src/features/document/body-item-adapters.js +97 -0
  131. package/src/features/document/body-item-collection.d.ts +151 -0
  132. package/src/features/document/body-item-collection.js +440 -0
  133. package/src/features/document/body-item.d.ts +35 -0
  134. package/src/features/document/body-item.js +8 -0
  135. package/src/features/document/body.d.ts +150 -0
  136. package/src/features/document/body.js +263 -0
  137. package/src/features/document/character-format.d.ts +413 -0
  138. package/src/features/document/character-format.js +2054 -0
  139. package/src/features/document/color.d.ts +178 -0
  140. package/src/features/document/color.js +495 -0
  141. package/src/features/document/document.d.ts +410 -0
  142. package/src/features/document/document.js +1049 -0
  143. package/src/features/document/element-type.d.ts +68 -0
  144. package/src/features/document/element-type.js +133 -0
  145. package/src/features/document/entity-type.d.ts +92 -0
  146. package/src/features/document/entity-type.js +93 -0
  147. package/src/features/document/feature-block.d.ts +16 -0
  148. package/src/features/document/feature-block.js +0 -0
  149. package/src/features/document/feature-inline.d.ts +13 -0
  150. package/src/features/document/feature-inline.js +0 -0
  151. package/src/features/document/feature-multi-package-part.d.ts +19 -0
  152. package/src/features/document/feature-multi-package-part.js +8 -0
  153. package/src/features/document/feature-package-level-part.d.ts +18 -0
  154. package/src/features/document/feature-package-level-part.js +8 -0
  155. package/src/features/document/feature-package-part.d.ts +14 -0
  156. package/src/features/document/feature-package-part.js +0 -0
  157. package/src/features/document/feature-run-leaf.d.ts +9 -0
  158. package/src/features/document/feature-run-leaf.js +0 -0
  159. package/src/features/document/headers-footers.d.ts +206 -0
  160. package/src/features/document/headers-footers.js +384 -0
  161. package/src/features/document/index.d.ts +41 -0
  162. package/src/features/document/index.js +34 -0
  163. package/src/features/document/length.d.ts +152 -0
  164. package/src/features/document/length.js +245 -0
  165. package/src/features/document/load-options.d.ts +14 -0
  166. package/src/features/document/load-options.js +0 -0
  167. package/src/features/document/locale-ids.d.ts +227 -0
  168. package/src/features/document/locale-ids.js +485 -0
  169. package/src/features/document/on-off.d.ts +9 -0
  170. package/src/features/document/on-off.js +27 -0
  171. package/src/features/document/page-setup.d.ts +339 -0
  172. package/src/features/document/page-setup.js +244 -0
  173. package/src/features/document/paragraph-format.d.ts +880 -0
  174. package/src/features/document/paragraph-format.js +2807 -0
  175. package/src/features/document/paragraph-item-collection.d.ts +162 -0
  176. package/src/features/document/paragraph-item-collection.js +363 -0
  177. package/src/features/document/paragraph-item.d.ts +83 -0
  178. package/src/features/document/paragraph-item.js +103 -0
  179. package/src/features/document/paragraph.d.ts +435 -0
  180. package/src/features/document/paragraph.js +888 -0
  181. package/src/features/document/run.d.ts +1 -0
  182. package/src/features/document/run.js +768 -0
  183. package/src/features/document/section-partition-flatten.d.ts +124 -0
  184. package/src/features/document/section-partition-flatten.js +217 -0
  185. package/src/features/document/section-properties-model.d.ts +13 -0
  186. package/src/features/document/section-properties-model.js +0 -0
  187. package/src/features/document/section.d.ts +93 -0
  188. package/src/features/document/section.js +178 -0
  189. package/src/features/document/sections.d.ts +103 -0
  190. package/src/features/document/sections.js +217 -0
  191. package/src/features/document/sub-super-script.d.ts +23 -0
  192. package/src/features/document/sub-super-script.js +43 -0
  193. package/src/features/document/text-range.d.ts +445 -0
  194. package/src/features/document/text-range.js +1156 -0
  195. package/src/features/document/typed-body-collections.d.ts +162 -0
  196. package/src/features/document/typed-body-collections.js +371 -0
  197. package/src/features/document/underline-style.d.ts +38 -0
  198. package/src/features/document/underline-style.js +126 -0
  199. package/src/features/document/units.d.ts +8 -0
  200. package/src/features/document/units.js +7 -0
  201. package/src/features/document/wml.d.ts +16 -0
  202. package/src/features/document/wml.js +67 -0
  203. package/src/features/drawing/authoring.d.ts +27 -0
  204. package/src/features/drawing/authoring.js +271 -0
  205. package/src/features/drawing/body-pr.d.ts +271 -0
  206. package/src/features/drawing/body-pr.js +663 -0
  207. package/src/features/drawing/drawing-shape.d.ts +1192 -0
  208. package/src/features/drawing/drawing-shape.js +3239 -0
  209. package/src/features/drawing/encode-builders.d.ts +176 -0
  210. package/src/features/drawing/encode-builders.js +390 -0
  211. package/src/features/drawing/fill-format.d.ts +52 -0
  212. package/src/features/drawing/fill-format.js +124 -0
  213. package/src/features/drawing/host-codec.d.ts +632 -0
  214. package/src/features/drawing/host-codec.js +2595 -0
  215. package/src/features/drawing/index.d.ts +13 -0
  216. package/src/features/drawing/index.js +33 -0
  217. package/src/features/drawing/line-format.d.ts +76 -0
  218. package/src/features/drawing/line-format.js +343 -0
  219. package/src/features/drawing/parse-register.d.ts +50 -0
  220. package/src/features/drawing/parse-register.js +257 -0
  221. package/src/features/drawing/residual-utils.d.ts +47 -0
  222. package/src/features/drawing/residual-utils.js +290 -0
  223. package/src/features/drawing/shape-types.d.ts +433 -0
  224. package/src/features/drawing/shape-types.js +437 -0
  225. package/src/features/drawing/sp-pr.d.ts +396 -0
  226. package/src/features/drawing/sp-pr.js +610 -0
  227. package/src/features/drawing/text-frame.d.ts +90 -0
  228. package/src/features/drawing/text-frame.js +152 -0
  229. package/src/features/drawing/types.d.ts +352 -0
  230. package/src/features/drawing/types.js +60 -0
  231. package/src/features/drawing/wrap-format.d.ts +62 -0
  232. package/src/features/drawing/wrap-format.js +114 -0
  233. package/src/features/editable-ranges/index.d.ts +494 -0
  234. package/src/features/editable-ranges/index.js +1348 -0
  235. package/src/features/fields/index.d.ts +428 -0
  236. package/src/features/fields/index.js +2148 -0
  237. package/src/features/fields/paragraph-field.d.ts +187 -0
  238. package/src/features/fields/paragraph-field.js +692 -0
  239. package/src/features/font-table/font-substitution-table.d.ts +75 -0
  240. package/src/features/font-table/font-substitution-table.js +257 -0
  241. package/src/features/font-table/font-table-entry.d.ts +255 -0
  242. package/src/features/font-table/font-table-entry.js +823 -0
  243. package/src/features/font-table/font-table.d.ts +128 -0
  244. package/src/features/font-table/font-table.js +313 -0
  245. package/src/features/font-table/index.d.ts +27 -0
  246. package/src/features/font-table/index.js +48 -0
  247. package/src/features/glossary/index.d.ts +97 -0
  248. package/src/features/glossary/index.js +286 -0
  249. package/src/features/headers-footers/index.d.ts +506 -0
  250. package/src/features/headers-footers/index.js +1666 -0
  251. package/src/features/hyperlinks/index.d.ts +230 -0
  252. package/src/features/hyperlinks/index.js +685 -0
  253. package/src/features/images/caption-authoring-api.d.ts +33 -0
  254. package/src/features/images/caption-authoring-api.js +33 -0
  255. package/src/features/images/caption-enums.d.ts +52 -0
  256. package/src/features/images/caption-enums.js +141 -0
  257. package/src/features/images/caption-host.d.ts +10 -0
  258. package/src/features/images/caption-host.js +21 -0
  259. package/src/features/images/captions.d.ts +13 -0
  260. package/src/features/images/captions.js +142 -0
  261. package/src/features/images/host-codec.d.ts +103 -0
  262. package/src/features/images/host-codec.js +720 -0
  263. package/src/features/images/image-sniff.d.ts +21 -0
  264. package/src/features/images/image-sniff.js +71 -0
  265. package/src/features/images/index.d.ts +506 -0
  266. package/src/features/images/index.js +1429 -0
  267. package/src/features/images/layout-types.d.ts +232 -0
  268. package/src/features/images/layout-types.js +294 -0
  269. package/src/features/images/public-entry.d.ts +9 -0
  270. package/src/features/images/public-entry.js +9 -0
  271. package/src/features/index.d.ts +35 -0
  272. package/src/features/index.js +36 -0
  273. package/src/features/mail-merge/index.d.ts +113 -0
  274. package/src/features/mail-merge/index.js +315 -0
  275. package/src/features/notes/index.d.ts +573 -0
  276. package/src/features/notes/index.js +1725 -0
  277. package/src/features/numbering/abstract-numbering.d.ts +90 -0
  278. package/src/features/numbering/abstract-numbering.js +292 -0
  279. package/src/features/numbering/index.d.ts +182 -0
  280. package/src/features/numbering/index.js +668 -0
  281. package/src/features/numbering/list-format.d.ts +158 -0
  282. package/src/features/numbering/list-format.js +590 -0
  283. package/src/features/numbering/list-string.d.ts +7 -0
  284. package/src/features/numbering/list-string.js +423 -0
  285. package/src/features/numbering/list-style.d.ts +204 -0
  286. package/src/features/numbering/list-style.js +1084 -0
  287. package/src/features/numbering/numbering-instance.d.ts +101 -0
  288. package/src/features/numbering/numbering-instance.js +329 -0
  289. package/src/features/numbering/numbering-level.d.ts +118 -0
  290. package/src/features/numbering/numbering-level.js +501 -0
  291. package/src/features/numbering/picture-bullet.d.ts +34 -0
  292. package/src/features/numbering/picture-bullet.js +88 -0
  293. package/src/features/ole-object/catalog.d.ts +300 -0
  294. package/src/features/ole-object/catalog.js +908 -0
  295. package/src/features/ole-object/index.d.ts +526 -0
  296. package/src/features/ole-object/index.js +1421 -0
  297. package/src/features/ole-object/relationship.d.ts +27 -0
  298. package/src/features/ole-object/relationship.js +27 -0
  299. package/src/features/ole-object/typed-dom.d.ts +186 -0
  300. package/src/features/ole-object/typed-dom.js +595 -0
  301. package/src/features/properties/index.d.ts +205 -0
  302. package/src/features/properties/index.js +549 -0
  303. package/src/features/revisions/index.d.ts +204 -0
  304. package/src/features/revisions/index.js +695 -0
  305. package/src/features/sections/column-collection.d.ts +119 -0
  306. package/src/features/sections/column-collection.js +478 -0
  307. package/src/features/sections/column.d.ts +15 -0
  308. package/src/features/sections/column.js +37 -0
  309. package/src/features/sections/index.d.ts +91 -0
  310. package/src/features/sections/index.js +1096 -0
  311. package/src/features/sections/margins.d.ts +40 -0
  312. package/src/features/sections/margins.js +105 -0
  313. package/src/features/sections/page-number-style.d.ts +21 -0
  314. package/src/features/sections/page-number-style.js +62 -0
  315. package/src/features/sections/page-orientation.d.ts +10 -0
  316. package/src/features/sections/page-orientation.js +10 -0
  317. package/src/features/sections/page-setup.d.ts +435 -0
  318. package/src/features/sections/page-setup.js +1479 -0
  319. package/src/features/sections/page-size.d.ts +59 -0
  320. package/src/features/sections/page-size.js +68 -0
  321. package/src/features/sections/section-break-code.d.ts +27 -0
  322. package/src/features/sections/section-break-code.js +60 -0
  323. package/src/features/sections/section-document-association.d.ts +18 -0
  324. package/src/features/sections/section-document-association.js +31 -0
  325. package/src/features/sections/section-validation.d.ts +43 -0
  326. package/src/features/sections/section-validation.js +97 -0
  327. package/src/features/settings/attached-template.d.ts +35 -0
  328. package/src/features/settings/attached-template.js +98 -0
  329. package/src/features/settings/compat-settings.d.ts +216 -0
  330. package/src/features/settings/compat-settings.js +508 -0
  331. package/src/features/settings/document-background.d.ts +59 -0
  332. package/src/features/settings/document-background.js +131 -0
  333. package/src/features/settings/document-protection.d.ts +65 -0
  334. package/src/features/settings/document-protection.js +157 -0
  335. package/src/features/settings/document-settings-facades.d.ts +108 -0
  336. package/src/features/settings/document-settings-facades.js +312 -0
  337. package/src/features/settings/document-settings-values.d.ts +43 -0
  338. package/src/features/settings/document-settings-values.js +60 -0
  339. package/src/features/settings/footnote-properties.d.ts +211 -0
  340. package/src/features/settings/footnote-properties.js +591 -0
  341. package/src/features/settings/index.d.ts +356 -0
  342. package/src/features/settings/index.js +829 -0
  343. package/src/features/settings/settings-children.d.ts +151 -0
  344. package/src/features/settings/settings-children.js +505 -0
  345. package/src/features/settings/web-settings.d.ts +88 -0
  346. package/src/features/settings/web-settings.js +227 -0
  347. package/src/features/settings/zoom.d.ts +79 -0
  348. package/src/features/settings/zoom.js +147 -0
  349. package/src/features/styles/builtin-catalog.d.ts +159 -0
  350. package/src/features/styles/builtin-catalog.js +963 -0
  351. package/src/features/styles/builtin-resolver.d.ts +49 -0
  352. package/src/features/styles/builtin-resolver.js +165 -0
  353. package/src/features/styles/default-styles.d.ts +37 -0
  354. package/src/features/styles/default-styles.js +186 -0
  355. package/src/features/styles/default-theme.d.ts +13 -0
  356. package/src/features/styles/default-theme.js +13 -0
  357. package/src/features/styles/doc-defaults.d.ts +58 -0
  358. package/src/features/styles/doc-defaults.js +178 -0
  359. package/src/features/styles/formatting-resolver.d.ts +27 -0
  360. package/src/features/styles/formatting-resolver.js +72 -0
  361. package/src/features/styles/index.d.ts +256 -0
  362. package/src/features/styles/index.js +1325 -0
  363. package/src/features/styles/latent-styles.d.ts +68 -0
  364. package/src/features/styles/latent-styles.js +305 -0
  365. package/src/features/styles/paragraph-properties.d.ts +71 -0
  366. package/src/features/styles/paragraph-properties.js +237 -0
  367. package/src/features/styles/run-properties.d.ts +93 -0
  368. package/src/features/styles/run-properties.js +516 -0
  369. package/src/features/styles/style-base.d.ts +402 -0
  370. package/src/features/styles/style-base.js +1026 -0
  371. package/src/features/styles/style-collection.d.ts +264 -0
  372. package/src/features/styles/style-collection.js +714 -0
  373. package/src/features/styles/style-format-bridge.d.ts +64 -0
  374. package/src/features/styles/style-format-bridge.js +100 -0
  375. package/src/features/styles/style.d.ts +84 -0
  376. package/src/features/styles/style.js +375 -0
  377. package/src/features/styles/styles-with-effects.d.ts +71 -0
  378. package/src/features/styles/styles-with-effects.js +180 -0
  379. package/src/features/styles/table-style.d.ts +272 -0
  380. package/src/features/styles/table-style.js +1226 -0
  381. package/src/features/styles/theme.d.ts +126 -0
  382. package/src/features/styles/theme.js +377 -0
  383. package/src/features/tables/border-style-map.d.ts +24 -0
  384. package/src/features/tables/border-style-map.js +81 -0
  385. package/src/features/tables/borders.d.ts +126 -0
  386. package/src/features/tables/borders.js +527 -0
  387. package/src/features/tables/collections.d.ts +113 -0
  388. package/src/features/tables/collections.js +261 -0
  389. package/src/features/tables/format.d.ts +208 -0
  390. package/src/features/tables/format.js +716 -0
  391. package/src/features/tables/index.d.ts +597 -0
  392. package/src/features/tables/index.js +2386 -0
  393. package/src/features/tables/paddings.d.ts +41 -0
  394. package/src/features/tables/paddings.js +97 -0
  395. package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
  396. package/src/features/tables/tbl-pr-positioning.js +178 -0
  397. package/src/features/tables/tbl-pr.d.ts +528 -0
  398. package/src/features/tables/tbl-pr.js +1208 -0
  399. package/src/features/tables/tc-pr.d.ts +168 -0
  400. package/src/features/tables/tc-pr.js +553 -0
  401. package/src/features/tables/tr-pr.d.ts +60 -0
  402. package/src/features/tables/tr-pr.js +215 -0
  403. package/src/features/watermark/detect.d.ts +76 -0
  404. package/src/features/watermark/detect.js +219 -0
  405. package/src/features/watermark/index.d.ts +28 -0
  406. package/src/features/watermark/index.js +91 -0
  407. package/src/features/watermark/logical-store.d.ts +29 -0
  408. package/src/features/watermark/logical-store.js +31 -0
  409. package/src/features/watermark/model.d.ts +285 -0
  410. package/src/features/watermark/model.js +597 -0
  411. package/src/features/watermark/parse.d.ts +84 -0
  412. package/src/features/watermark/parse.js +815 -0
  413. package/src/features/watermark/serialize.d.ts +98 -0
  414. package/src/features/watermark/serialize.js +1517 -0
  415. package/src/global.js +1 -0
  416. package/src/index.d.ts +2 -0
  417. package/src/index.js +2 -0
@@ -0,0 +1,257 @@
1
+ var __values = (this && this.__values) || function (o) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
3
+ if (m) return m.call(o);
4
+ return {
5
+ next: function () {
6
+ if (o && i >= o.length) o = void 0;
7
+ return { value: o && o[i++], done: !o };
8
+ }
9
+ };
10
+ };
11
+ var __read = (this && this.__read) || function (o, n) {
12
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
13
+ if (!m) return o;
14
+ var i = m.call(o), r, ar = [], e;
15
+ try {
16
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
17
+ }
18
+ catch (error) { e = { error: error }; }
19
+ finally {
20
+ try {
21
+ if (r && !r.done && (m = i["return"])) m.call(i);
22
+ }
23
+ finally { if (e) throw e.error; }
24
+ }
25
+ return ar;
26
+ };
27
+ var __spread = (this && this.__spread) || function () {
28
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
29
+ return ar;
30
+ };
31
+ import { FeatureRunParagraphItem } from '../document/text-range';
32
+ import { isWml } from '../document/wml';
33
+ import { MARKUP_COMPATIBILITY_NAMESPACE } from '../../core/mc/index';
34
+ import { registerFeature, registerFeatureRunLeafHandler, } from '../../core/registry/index';
35
+ import { A_NS, attributeValue, findFirstElement, preferredDrawingElement, readDocPrIdentity, R_NS, WP_NS, } from './host-codec';
36
+ import { CHART_GRAPHIC_DATA_URI, CHART_GRAPHIC_DATA_URI_STRICT, DIAGRAM_GRAPHIC_DATA_URI, DIAGRAM_GRAPHIC_DATA_URI_STRICT, DRAWING, WORDML_2010_NAMESPACE, WORDPROCESSING_INK_URI, } from './types';
37
+ import { createDrawingShape, DrawingShape } from './drawing-shape';
38
+ export function isInlinePictureDrawing(element) {
39
+ if (!isWml(element, 'drawing')) {
40
+ return false;
41
+ }
42
+ var inline = findFirstElement(element, WP_NS, 'inline');
43
+ if (inline === undefined) {
44
+ return false;
45
+ }
46
+ var blip = findFirstElement(element, A_NS, 'blip');
47
+ if (blip === undefined) {
48
+ return false;
49
+ }
50
+ var embed = attributeValue(blip, R_NS, 'embed');
51
+ return embed !== undefined && embed.length > 0;
52
+ }
53
+ /**
54
+ * Ink hosts (`wordprocessingInk` graphicData, or group/canvas with `w14:contentPart`).
55
+ * No public ink API — decline so the host stays an opaque run leaf and its
56
+ * package parts are not rewritten ([MS-ODRAWXML] §2.2.7.6).
57
+ */
58
+ function isInkOwnedDrawing(element) {
59
+ var graphicData = findFirstElement(element, A_NS, 'graphicData');
60
+ if (graphicData !== undefined) {
61
+ var uri = attributeValue(graphicData, '', 'uri');
62
+ if (uri === WORDPROCESSING_INK_URI) {
63
+ return true;
64
+ }
65
+ }
66
+ return findFirstElement(element, WORDML_2010_NAMESPACE, 'contentPart') !== undefined;
67
+ }
68
+ /**
69
+ * SmartArt / diagram hosts. No public diagrams API — always decline so drawing
70
+ * does not surface them as {@link DrawingShape} (which would rewrite the host).
71
+ */
72
+ function isDiagramOwnedDrawing(element) {
73
+ var graphicData = findFirstElement(element, A_NS, 'graphicData');
74
+ if (graphicData === undefined) {
75
+ return false;
76
+ }
77
+ var uri = attributeValue(graphicData, '', 'uri');
78
+ return uri === DIAGRAM_GRAPHIC_DATA_URI || uri === DIAGRAM_GRAPHIC_DATA_URI_STRICT;
79
+ }
80
+ /**
81
+ * Chart hosts. No public charts API — decline chart graphicData so the host
82
+ * stays opaque and chart package parts are not rewritten.
83
+ */
84
+ function isChartOwnedDrawing(element) {
85
+ var graphicData = findFirstElement(element, A_NS, 'graphicData');
86
+ if (graphicData === undefined) {
87
+ return false;
88
+ }
89
+ var uri = attributeValue(graphicData, '', 'uri');
90
+ return uri === CHART_GRAPHIC_DATA_URI || uri === CHART_GRAPHIC_DATA_URI_STRICT;
91
+ }
92
+ export function drawingIsOwnedByOtherFeature(drawing) {
93
+ return (isInlinePictureDrawing(drawing) ||
94
+ isInkOwnedDrawing(drawing) ||
95
+ isDiagramOwnedDrawing(drawing) ||
96
+ isChartOwnedDrawing(drawing));
97
+ }
98
+ export function parseDrawingShape(element) {
99
+ if (!isWml(element, 'drawing')) {
100
+ return undefined;
101
+ }
102
+ if (drawingIsOwnedByOtherFeature(element)) {
103
+ return undefined;
104
+ }
105
+ return createDrawingShape('drawingml', element);
106
+ }
107
+ export function parseVmlPict(element) {
108
+ if (!isWml(element, 'pict')) {
109
+ return undefined;
110
+ }
111
+ return createDrawingShape('vml', element);
112
+ }
113
+ /**
114
+ * Parse run-level `mc:AlternateContent` that hosts a non-picture drawing Choice.
115
+ * Residual root remains the full AC element for clean serialize (Policy B).
116
+ */
117
+ export function parseAlternateContentDrawing(element) {
118
+ if (element.namespaceUri !== MARKUP_COMPATIBILITY_NAMESPACE ||
119
+ element.localName !== 'AlternateContent') {
120
+ return undefined;
121
+ }
122
+ var drawing = preferredDrawingElement(element);
123
+ if (drawing === undefined) {
124
+ return undefined;
125
+ }
126
+ if (drawingIsOwnedByOtherFeature(drawing)) {
127
+ return undefined;
128
+ }
129
+ return createDrawingShape('drawingml', element);
130
+ }
131
+ export function drawingShapesFromLeaves(items) {
132
+ var e_1, _a;
133
+ var found = [];
134
+ try {
135
+ for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
136
+ var item = items_1_1.value;
137
+ if (item instanceof DrawingShape) {
138
+ found.push(item);
139
+ continue;
140
+ }
141
+ if (item instanceof FeatureRunParagraphItem && item.featureId === DRAWING && item.value instanceof DrawingShape) {
142
+ found.push(item.value);
143
+ }
144
+ }
145
+ }
146
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
147
+ finally {
148
+ try {
149
+ if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
150
+ }
151
+ finally { if (e_1) throw e_1.error; }
152
+ }
153
+ return found;
154
+ }
155
+ export function maxDocPrIdInDocument(document) {
156
+ var e_2, _a;
157
+ var max = 0;
158
+ try {
159
+ for (var _b = __values(drawingsInDocument(document)), _c = _b.next(); !_c.done; _c = _b.next()) {
160
+ var shape = _c.value;
161
+ var id = readDocPrIdentity(shape.toOpenXml()).docPrId;
162
+ if (id !== undefined && id > max) {
163
+ max = id;
164
+ }
165
+ }
166
+ }
167
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
168
+ finally {
169
+ try {
170
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
171
+ }
172
+ finally { if (e_2) throw e_2.error; }
173
+ }
174
+ return max;
175
+ }
176
+ export function allocateDocPrId(paragraph) {
177
+ var document = paragraph.owningDocument();
178
+ return maxDocPrIdInDocument(document) + 1;
179
+ }
180
+ var registered = false;
181
+ /**
182
+ * @private
183
+ * Test hook */
184
+ export function resetDrawingFeatureForTests() {
185
+ registered = false;
186
+ }
187
+ /**
188
+ * @private
189
+ * Register non-picture DrawingML, VML, and MC drawing run-leaf handlers. Idempotent. */
190
+ export function registerDrawingFeature() {
191
+ if (registered) {
192
+ return;
193
+ }
194
+ registered = true;
195
+ registerFeature({ id: DRAWING });
196
+ registerFeatureRunLeafHandler({
197
+ featureId: DRAWING,
198
+ wmlLocalName: 'drawing',
199
+ tryParse: parseDrawingShape,
200
+ });
201
+ registerFeatureRunLeafHandler({
202
+ featureId: DRAWING,
203
+ wmlLocalName: 'pict',
204
+ tryParse: parseVmlPict,
205
+ });
206
+ registerFeatureRunLeafHandler({
207
+ featureId: DRAWING,
208
+ wmlLocalName: 'AlternateContent',
209
+ namespaceUri: MARKUP_COMPATIBILITY_NAMESPACE,
210
+ tryParse: parseAlternateContentDrawing,
211
+ });
212
+ }
213
+ /**
214
+ * Whether a paragraph item is a modeled drawing shape (projected leaf or wrapper).
215
+ *
216
+ * @private
217
+ */
218
+ export function isDrawingShapeLeaf(item) {
219
+ if (item instanceof DrawingShape) {
220
+ return true;
221
+ }
222
+ return item instanceof FeatureRunParagraphItem && item.featureId === DRAWING && item.value instanceof DrawingShape;
223
+ }
224
+ /**
225
+ * Drawing shapes in a paragraph, in document order.
226
+ *
227
+ * @private
228
+ */
229
+ export function drawingsInParagraph(paragraph) {
230
+ return drawingShapesFromLeaves(paragraph.items.toArray());
231
+ }
232
+ /**
233
+ * Drawing shapes in the Main Document body, in document order.
234
+ *
235
+ * @private
236
+ */
237
+ export function drawingsInDocument(document) {
238
+ var e_3, _a;
239
+ var found = [];
240
+ try {
241
+ for (var _b = __values(document.listBlocks()), _c = _b.next(); !_c.done; _c = _b.next()) {
242
+ var block = _c.value;
243
+ if (block.type !== 'paragraph') {
244
+ continue;
245
+ }
246
+ found.push.apply(found, __spread(drawingsInParagraph(block.paragraph)));
247
+ }
248
+ }
249
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
250
+ finally {
251
+ try {
252
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
253
+ }
254
+ finally { if (e_3) throw e_3.error; }
255
+ }
256
+ return found;
257
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Residual DOM utilities for DrawingML / VML detection and clone helpers.
3
+ *
4
+ * @private
5
+ */
6
+ import { BlockContent } from '../document/paragraph';
7
+ import { OpenXmlElement } from '../../core/xml/index';
8
+ import { DrawingVariant } from './types';
9
+ export declare function elementChildren(el: OpenXmlElement): ReadonlyArray<OpenXmlElement>;
10
+ export declare function isElement(el: OpenXmlElement, namespaceUri: string, localName: string): boolean;
11
+ export declare function emptyTxbxParagraphBlocks(): BlockContent[];
12
+ /** Deep-clone a residual element for txbxContent patching (no shared state). */
13
+ export declare function cloneResidualElement(el: OpenXmlElement): OpenXmlElement;
14
+ /**
15
+ * Locate the nested-child host element for a group (`wpg:wgp` / nested
16
+ * `wpg:grpSp`) or canvas (`wpc:wpc`) residual tree (TASK-8051).
17
+ *
18
+ * Accepts top-level `w:drawing` / MC dual-AC roots, bare nested group residuals,
19
+ * or an already-resolved container. Returns undefined for leaf shapes.
20
+ */
21
+ export declare function findNestedDrawingContainer(root: OpenXmlElement): OpenXmlElement | undefined;
22
+ /**
23
+ * Detect the variant of a DML drawing (`w:drawing` element).
24
+ *
25
+ * Strategy: locate `a:graphic/a:graphicData` and inspect the `@uri` attribute.
26
+ * - WPS_NS → `wps:wsp` present → 'textBox' if `wps:txbx` child exists, else 'shape'
27
+ * - WPG_NS → 'group' ([MS-ODRAWXML] §2.2.7.4, §2.16)
28
+ * - WPC_NS → 'canvas' ([MS-ODRAWXML] §2.2.7.5, §2.17)
29
+ * - anything else → 'unknown'
30
+ */
31
+ export declare function detectDmlVariant(drawingEl: OpenXmlElement): DrawingVariant;
32
+ /**
33
+ * True when residual is (or contains) MC AlternateContent with a Fallback
34
+ * branch that carries `w:pict` (Policy B dual AC VML Fallback — TASK-8050).
35
+ * Does not execute or interpret VML children.
36
+ *
37
+ * @private
38
+ */
39
+ export declare function residualHasVmlFallback(root: OpenXmlElement): boolean;
40
+ /**
41
+ * Detect drawing variant from a VML `w:pict` subtree.
42
+ *
43
+ * Source: ECMA-376-4 §14.3 VML elements; [MS-OI29500] Part 4.
44
+ */
45
+ export declare function detectVmlVariant(pictEl: OpenXmlElement): DrawingVariant;
46
+ export declare function collectRelationshipIds(root: OpenXmlElement): ReadonlyArray<string>;
47
+ export declare function collectRelationshipIdsRecursive(element: OpenXmlElement, found: Set<string>): void;
@@ -0,0 +1,290 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __values = (this && this.__values) || function (o) {
13
+ var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
14
+ if (m) return m.call(o);
15
+ return {
16
+ next: function () {
17
+ if (o && i >= o.length) o = void 0;
18
+ return { value: o && o[i++], done: !o };
19
+ }
20
+ };
21
+ };
22
+ var __read = (this && this.__read) || function (o, n) {
23
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
24
+ if (!m) return o;
25
+ var i = m.call(o), r, ar = [], e;
26
+ try {
27
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
28
+ }
29
+ catch (error) { e = { error: error }; }
30
+ finally {
31
+ try {
32
+ if (r && !r.done && (m = i["return"])) m.call(i);
33
+ }
34
+ finally { if (e) throw e.error; }
35
+ }
36
+ return ar;
37
+ };
38
+ var __spread = (this && this.__spread) || function () {
39
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
40
+ return ar;
41
+ };
42
+ /**
43
+ * Residual DOM utilities for DrawingML / VML detection and clone helpers.
44
+ *
45
+ * @private
46
+ */
47
+ import { Paragraph } from '../document/paragraph';
48
+ import { isWml } from '../document/wml';
49
+ import { MARKUP_COMPATIBILITY_NAMESPACE } from '../../core/mc/index';
50
+ import { A_NS, attributeValue, findFirstElement, preferredDrawingElement, R_NS, VML_NS, WPC_NS, WPG_NS, WPS_NS, } from './host-codec';
51
+ export function elementChildren(el) {
52
+ return el.children.filter(function (c) { return c.kind === 'element'; });
53
+ }
54
+ export function isElement(el, namespaceUri, localName) {
55
+ return el.namespaceUri === namespaceUri && el.localName === localName;
56
+ }
57
+ export function emptyTxbxParagraphBlocks() {
58
+ return [{ type: 'paragraph', paragraph: new Paragraph(undefined) }];
59
+ }
60
+ /** Deep-clone a residual element for txbxContent patching (no shared state). */
61
+ export function cloneResidualElement(el) {
62
+ return {
63
+ kind: 'element',
64
+ namespaceUri: el.namespaceUri,
65
+ localName: el.localName,
66
+ prefix: el.prefix,
67
+ attributes: el.attributes.map(function (a) { return (__assign({}, a)); }),
68
+ namespaceDeclarations: el.namespaceDeclarations.map(function (n) { return (__assign({}, n)); }),
69
+ children: el.children.map(function (c) {
70
+ if (c.kind === 'element') {
71
+ return cloneResidualElement(c);
72
+ }
73
+ return { kind: 'text', value: c.value };
74
+ }),
75
+ };
76
+ }
77
+ /**
78
+ * Locate the nested-child host element for a group (`wpg:wgp` / nested
79
+ * `wpg:grpSp`) or canvas (`wpc:wpc`) residual tree (TASK-8051).
80
+ *
81
+ * Accepts top-level `w:drawing` / MC dual-AC roots, bare nested group residuals,
82
+ * or an already-resolved container. Returns undefined for leaf shapes.
83
+ */
84
+ export function findNestedDrawingContainer(root) {
85
+ var e_1, _a;
86
+ var __ts33_0, __ts33_1, __ts33_2, __ts33_3;
87
+ if (root.namespaceUri === WPG_NS && (root.localName === 'wgp' || root.localName === 'grpSp')) {
88
+ return root;
89
+ }
90
+ if (root.namespaceUri === WPC_NS && root.localName === 'wpc') {
91
+ return root;
92
+ }
93
+ var drawing = ((__ts33_0 = preferredDrawingElement(root)), __ts33_0 != null ? __ts33_0 : (isWml(root, 'drawing') ? root : undefined));
94
+ if (drawing === undefined) {
95
+ // Residual may already be graphicData or an intermediate tree fragment.
96
+ var directWgp = ((__ts33_1 = findFirstElement(root, WPG_NS, 'wgp')), __ts33_1 != null ? __ts33_1 : findFirstElement(root, WPG_NS, 'grpSp'));
97
+ if (directWgp !== undefined) {
98
+ return directWgp;
99
+ }
100
+ return findFirstElement(root, WPC_NS, 'wpc');
101
+ }
102
+ var graphicData = findFirstElement(drawing, A_NS, 'graphicData');
103
+ if (graphicData !== undefined) {
104
+ try {
105
+ for (var _b = __values(elementChildren(graphicData)), _c = _b.next(); !_c.done; _c = _b.next()) {
106
+ var child = _c.value;
107
+ if ((child.namespaceUri === WPG_NS && (child.localName === 'wgp' || child.localName === 'grpSp')) ||
108
+ (child.namespaceUri === WPC_NS && child.localName === 'wpc')) {
109
+ return child;
110
+ }
111
+ }
112
+ }
113
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
114
+ finally {
115
+ try {
116
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
117
+ }
118
+ finally { if (e_1) throw e_1.error; }
119
+ }
120
+ }
121
+ return (((__ts33_3 = ((__ts33_2 = findFirstElement(drawing, WPG_NS, 'wgp')), __ts33_2 != null ? __ts33_2 : findFirstElement(drawing, WPG_NS, 'grpSp'))), __ts33_3 != null ? __ts33_3 : findFirstElement(drawing, WPC_NS, 'wpc')));
122
+ }
123
+ /**
124
+ * Detect the variant of a DML drawing (`w:drawing` element).
125
+ *
126
+ * Strategy: locate `a:graphic/a:graphicData` and inspect the `@uri` attribute.
127
+ * - WPS_NS → `wps:wsp` present → 'textBox' if `wps:txbx` child exists, else 'shape'
128
+ * - WPG_NS → 'group' ([MS-ODRAWXML] §2.2.7.4, §2.16)
129
+ * - WPC_NS → 'canvas' ([MS-ODRAWXML] §2.2.7.5, §2.17)
130
+ * - anything else → 'unknown'
131
+ */
132
+ export function detectDmlVariant(drawingEl) {
133
+ var graphicData = findFirstElement(drawingEl, A_NS, 'graphicData');
134
+ if (graphicData === undefined) {
135
+ return 'unknown';
136
+ }
137
+ var uri = attributeValue(graphicData, '', 'uri');
138
+ if (uri === WPS_NS) {
139
+ var wsp = findFirstElement(graphicData, WPS_NS, 'wsp');
140
+ if (wsp !== undefined) {
141
+ var hasTxbx = elementChildren(wsp).some(function (c) { return isElement(c, WPS_NS, 'txbx'); }) ||
142
+ elementChildren(wsp).some(function (c) { return isElement(c, WPS_NS, 'linkedTxbx'); });
143
+ return hasTxbx ? 'textBox' : 'shape';
144
+ }
145
+ return 'unknown';
146
+ }
147
+ if (uri === WPG_NS) {
148
+ return 'group';
149
+ }
150
+ if (uri === WPC_NS) {
151
+ return 'canvas';
152
+ }
153
+ return 'unknown';
154
+ }
155
+ /**
156
+ * True when residual is (or contains) MC AlternateContent with a Fallback
157
+ * branch that carries `w:pict` (Policy B dual AC VML Fallback — TASK-8050).
158
+ * Does not execute or interpret VML children.
159
+ *
160
+ * @private
161
+ */
162
+ export function residualHasVmlFallback(root) {
163
+ var e_2, _a, e_3, _b, e_4, _c;
164
+ if (root.namespaceUri === MARKUP_COMPATIBILITY_NAMESPACE &&
165
+ root.localName === 'AlternateContent') {
166
+ try {
167
+ for (var _d = __values(elementChildren(root)), _e = _d.next(); !_e.done; _e = _d.next()) {
168
+ var child = _e.value;
169
+ if (child.namespaceUri !== MARKUP_COMPATIBILITY_NAMESPACE ||
170
+ child.localName !== 'Fallback') {
171
+ continue;
172
+ }
173
+ try {
174
+ for (var _f = __values(elementChildren(child)), _g = _f.next(); !_g.done; _g = _f.next()) {
175
+ var nested = _g.value;
176
+ if (isWml(nested, 'pict')) {
177
+ return true;
178
+ }
179
+ }
180
+ }
181
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
182
+ finally {
183
+ try {
184
+ if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
185
+ }
186
+ finally { if (e_3) throw e_3.error; }
187
+ }
188
+ }
189
+ }
190
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
191
+ finally {
192
+ try {
193
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
194
+ }
195
+ finally { if (e_2) throw e_2.error; }
196
+ }
197
+ return false;
198
+ }
199
+ try {
200
+ // Authored dual AC is the residual root; residual may also nest AC under
201
+ // rare fixtures — shallow scan only (no deep walk of every descendant).
202
+ for (var _h = __values(elementChildren(root)), _j = _h.next(); !_j.done; _j = _h.next()) {
203
+ var child = _j.value;
204
+ if (residualHasVmlFallback(child)) {
205
+ return true;
206
+ }
207
+ }
208
+ }
209
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
210
+ finally {
211
+ try {
212
+ if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
213
+ }
214
+ finally { if (e_4) throw e_4.error; }
215
+ }
216
+ return false;
217
+ }
218
+ /**
219
+ * Detect drawing variant from a VML `w:pict` subtree.
220
+ *
221
+ * Source: ECMA-376-4 §14.3 VML elements; [MS-OI29500] Part 4.
222
+ */
223
+ export function detectVmlVariant(pictEl) {
224
+ var e_5, _a;
225
+ try {
226
+ for (var _b = __values(elementChildren(pictEl)), _c = _b.next(); !_c.done; _c = _b.next()) {
227
+ var child = _c.value;
228
+ if (child.namespaceUri !== VML_NS) {
229
+ continue;
230
+ }
231
+ if (child.localName === 'group') {
232
+ return 'group';
233
+ }
234
+ var isVmlShapeContainer = child.localName === 'shape' ||
235
+ child.localName === 'rect' ||
236
+ child.localName === 'oval' ||
237
+ child.localName === 'roundrect';
238
+ if (isVmlShapeContainer) {
239
+ var hasTextbox = elementChildren(child).some(function (c) { return isElement(c, VML_NS, 'textbox'); });
240
+ return hasTextbox ? 'textBox' : 'shape';
241
+ }
242
+ }
243
+ }
244
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
245
+ finally {
246
+ try {
247
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
248
+ }
249
+ finally { if (e_5) throw e_5.error; }
250
+ }
251
+ return 'unknown';
252
+ }
253
+ export function collectRelationshipIds(root) {
254
+ var found = new Set();
255
+ collectRelationshipIdsRecursive(root, found);
256
+ return __spread(found);
257
+ }
258
+ export function collectRelationshipIdsRecursive(element, found) {
259
+ var e_6, _a, e_7, _b;
260
+ try {
261
+ for (var _c = __values(element.attributes), _d = _c.next(); !_d.done; _d = _c.next()) {
262
+ var attribute = _d.value;
263
+ if (attribute.namespaceUri === R_NS &&
264
+ (attribute.localName === 'embed' || attribute.localName === 'link') &&
265
+ attribute.value.length > 0) {
266
+ found.add(attribute.value);
267
+ }
268
+ }
269
+ }
270
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
271
+ finally {
272
+ try {
273
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
274
+ }
275
+ finally { if (e_6) throw e_6.error; }
276
+ }
277
+ try {
278
+ for (var _e = __values(elementChildren(element)), _f = _e.next(); !_f.done; _f = _e.next()) {
279
+ var child = _f.value;
280
+ collectRelationshipIdsRecursive(child, found);
281
+ }
282
+ }
283
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
284
+ finally {
285
+ try {
286
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
287
+ }
288
+ finally { if (e_7) throw e_7.error; }
289
+ }
290
+ }