@syncfusion/ej2-docx 0.0.0-stage → 35.1.39

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 (416) hide show
  1. package/README.md +68 -2
  2. package/core.js +4 -0
  3. package/dist/ej2-docx.umd.min.js +2 -0
  4. package/dist/ej2-docx.umd.min.js.map +1 -0
  5. package/dist/es6/ej2-docx.es2015.js +66697 -0
  6. package/dist/es6/ej2-docx.es2015.js.map +1 -0
  7. package/dist/es6/ej2-docx.es5.js +77568 -0
  8. package/dist/es6/ej2-docx.es5.js.map +1 -0
  9. package/dist/global/ej2-docx.min.js +2 -0
  10. package/dist/global/ej2-docx.min.js.map +1 -0
  11. package/dist/global/index.d.ts +5 -0
  12. package/features.js +4 -0
  13. package/index.js +4 -0
  14. package/license +10 -0
  15. package/package.json +31 -4
  16. package/src/all.d.ts +50 -0
  17. package/src/all.js +147 -0
  18. package/src/core/compat/base64.d.ts +13 -0
  19. package/src/core/compat/base64.js +90 -0
  20. package/src/core/compat/object-compat.d.ts +30 -0
  21. package/src/core/compat/object-compat.js +40 -0
  22. package/src/core/compat/sha256.d.ts +9 -0
  23. package/src/core/compat/sha256.js +98 -0
  24. package/src/core/errors/docx-error.d.ts +89 -0
  25. package/src/core/errors/docx-error.js +138 -0
  26. package/src/core/errors/error-codes.d.ts +8 -0
  27. package/src/core/errors/error-codes.js +0 -0
  28. package/src/core/errors/index.d.ts +10 -0
  29. package/src/core/errors/index.js +9 -0
  30. package/src/core/index.d.ts +12 -0
  31. package/src/core/index.js +12 -0
  32. package/src/core/mc/alternate-content.d.ts +7 -0
  33. package/src/core/mc/alternate-content.js +67 -0
  34. package/src/core/mc/attributes.d.ts +24 -0
  35. package/src/core/mc/attributes.js +82 -0
  36. package/src/core/mc/index.d.ts +7 -0
  37. package/src/core/mc/index.js +5 -0
  38. package/src/core/mc/inspect.d.ts +16 -0
  39. package/src/core/mc/inspect.js +148 -0
  40. package/src/core/mc/namespaces.d.ts +4 -0
  41. package/src/core/mc/namespaces.js +4 -0
  42. package/src/core/mc/scope.d.ts +6 -0
  43. package/src/core/mc/scope.js +47 -0
  44. package/src/core/opc/content-types.d.ts +34 -0
  45. package/src/core/opc/content-types.js +162 -0
  46. package/src/core/opc/index.d.ts +8 -0
  47. package/src/core/opc/index.js +4 -0
  48. package/src/core/opc/package.d.ts +49 -0
  49. package/src/core/opc/package.js +324 -0
  50. package/src/core/opc/part-name.d.ts +47 -0
  51. package/src/core/opc/part-name.js +205 -0
  52. package/src/core/opc/relationships.d.ts +46 -0
  53. package/src/core/opc/relationships.js +212 -0
  54. package/src/core/preservation/index.d.ts +2 -0
  55. package/src/core/preservation/index.js +1 -0
  56. package/src/core/preservation/opaque-body.d.ts +16 -0
  57. package/src/core/preservation/opaque-body.js +69 -0
  58. package/src/core/registry/block-handlers.d.ts +30 -0
  59. package/src/core/registry/block-handlers.js +36 -0
  60. package/src/core/registry/create-defaults.d.ts +39 -0
  61. package/src/core/registry/create-defaults.js +42 -0
  62. package/src/core/registry/feature-registry.d.ts +20 -0
  63. package/src/core/registry/feature-registry.js +29 -0
  64. package/src/core/registry/index.d.ts +9 -0
  65. package/src/core/registry/index.js +8 -0
  66. package/src/core/registry/inline-handlers.d.ts +20 -0
  67. package/src/core/registry/inline-handlers.js +30 -0
  68. package/src/core/registry/materialize-handlers.d.ts +35 -0
  69. package/src/core/registry/materialize-handlers.js +75 -0
  70. package/src/core/registry/multi-part-handlers.d.ts +37 -0
  71. package/src/core/registry/multi-part-handlers.js +206 -0
  72. package/src/core/registry/package-part-handlers.d.ts +28 -0
  73. package/src/core/registry/package-part-handlers.js +190 -0
  74. package/src/core/registry/part-handlers.d.ts +24 -0
  75. package/src/core/registry/part-handlers.js +172 -0
  76. package/src/core/registry/run-leaf-handlers.d.ts +26 -0
  77. package/src/core/registry/run-leaf-handlers.js +72 -0
  78. package/src/core/security/limits.d.ts +40 -0
  79. package/src/core/security/limits.js +26 -0
  80. package/src/core/xml/index.d.ts +7 -0
  81. package/src/core/xml/index.js +3 -0
  82. package/src/core/xml/model.d.ts +66 -0
  83. package/src/core/xml/model.js +17 -0
  84. package/src/core/xml/parse.d.ts +12 -0
  85. package/src/core/xml/parse.js +382 -0
  86. package/src/core/xml/serialize.d.ts +6 -0
  87. package/src/core/xml/serialize.js +93 -0
  88. package/src/core/zip/crc32.d.ts +2 -0
  89. package/src/core/zip/crc32.js +25 -0
  90. package/src/core/zip/deflate.d.ts +6 -0
  91. package/src/core/zip/deflate.js +6 -0
  92. package/src/core/zip/index.d.ts +10 -0
  93. package/src/core/zip/index.js +4 -0
  94. package/src/core/zip/inflate-raw.d.ts +17 -0
  95. package/src/core/zip/inflate-raw.js +450 -0
  96. package/src/core/zip/names.d.ts +6 -0
  97. package/src/core/zip/names.js +52 -0
  98. package/src/core/zip/read.d.ts +8 -0
  99. package/src/core/zip/read.js +262 -0
  100. package/src/core/zip/write.d.ts +7 -0
  101. package/src/core/zip/write.js +189 -0
  102. package/src/core/zip/zip-entry.d.ts +4 -0
  103. package/src/core/zip/zip-entry.js +0 -0
  104. package/src/features/bibliography/index.d.ts +100 -0
  105. package/src/features/bibliography/index.js +290 -0
  106. package/src/features/bookmarks/index.d.ts +331 -0
  107. package/src/features/bookmarks/index.js +1009 -0
  108. package/src/features/comments/comment-extensions.d.ts +157 -0
  109. package/src/features/comments/comment-extensions.js +356 -0
  110. package/src/features/comments/index.d.ts +579 -0
  111. package/src/features/comments/index.js +1727 -0
  112. package/src/features/content-controls/index.d.ts +821 -0
  113. package/src/features/content-controls/index.js +2857 -0
  114. package/src/features/custom-xml/index.d.ts +236 -0
  115. package/src/features/custom-xml/index.js +661 -0
  116. package/src/features/document/alignment.d.ts +23 -0
  117. package/src/features/document/alignment.js +36 -0
  118. package/src/features/document/alt-chunk.d.ts +103 -0
  119. package/src/features/document/alt-chunk.js +221 -0
  120. package/src/features/document/assert-never.d.ts +1 -0
  121. package/src/features/document/assert-never.js +4 -0
  122. package/src/features/document/augmentations.d.ts +578 -0
  123. package/src/features/document/augmentations.js +0 -0
  124. package/src/features/document/body-always-on.d.ts +36 -0
  125. package/src/features/document/body-always-on.js +66 -0
  126. package/src/features/document/body-blocks.d.ts +7 -0
  127. package/src/features/document/body-blocks.js +78 -0
  128. package/src/features/document/body-item-adapters.d.ts +62 -0
  129. package/src/features/document/body-item-adapters.js +97 -0
  130. package/src/features/document/body-item-collection.d.ts +151 -0
  131. package/src/features/document/body-item-collection.js +440 -0
  132. package/src/features/document/body-item.d.ts +35 -0
  133. package/src/features/document/body-item.js +8 -0
  134. package/src/features/document/body.d.ts +150 -0
  135. package/src/features/document/body.js +263 -0
  136. package/src/features/document/character-format.d.ts +413 -0
  137. package/src/features/document/character-format.js +2054 -0
  138. package/src/features/document/color.d.ts +178 -0
  139. package/src/features/document/color.js +495 -0
  140. package/src/features/document/document.d.ts +410 -0
  141. package/src/features/document/document.js +1049 -0
  142. package/src/features/document/element-type.d.ts +68 -0
  143. package/src/features/document/element-type.js +133 -0
  144. package/src/features/document/entity-type.d.ts +92 -0
  145. package/src/features/document/entity-type.js +93 -0
  146. package/src/features/document/feature-block.d.ts +16 -0
  147. package/src/features/document/feature-block.js +0 -0
  148. package/src/features/document/feature-inline.d.ts +13 -0
  149. package/src/features/document/feature-inline.js +0 -0
  150. package/src/features/document/feature-multi-package-part.d.ts +19 -0
  151. package/src/features/document/feature-multi-package-part.js +8 -0
  152. package/src/features/document/feature-package-level-part.d.ts +18 -0
  153. package/src/features/document/feature-package-level-part.js +8 -0
  154. package/src/features/document/feature-package-part.d.ts +14 -0
  155. package/src/features/document/feature-package-part.js +0 -0
  156. package/src/features/document/feature-run-leaf.d.ts +9 -0
  157. package/src/features/document/feature-run-leaf.js +0 -0
  158. package/src/features/document/headers-footers.d.ts +206 -0
  159. package/src/features/document/headers-footers.js +384 -0
  160. package/src/features/document/index.d.ts +41 -0
  161. package/src/features/document/index.js +34 -0
  162. package/src/features/document/length.d.ts +152 -0
  163. package/src/features/document/length.js +245 -0
  164. package/src/features/document/load-options.d.ts +14 -0
  165. package/src/features/document/load-options.js +0 -0
  166. package/src/features/document/locale-ids.d.ts +227 -0
  167. package/src/features/document/locale-ids.js +485 -0
  168. package/src/features/document/on-off.d.ts +9 -0
  169. package/src/features/document/on-off.js +27 -0
  170. package/src/features/document/page-setup.d.ts +339 -0
  171. package/src/features/document/page-setup.js +244 -0
  172. package/src/features/document/paragraph-format.d.ts +880 -0
  173. package/src/features/document/paragraph-format.js +2807 -0
  174. package/src/features/document/paragraph-item-collection.d.ts +162 -0
  175. package/src/features/document/paragraph-item-collection.js +363 -0
  176. package/src/features/document/paragraph-item.d.ts +83 -0
  177. package/src/features/document/paragraph-item.js +103 -0
  178. package/src/features/document/paragraph.d.ts +435 -0
  179. package/src/features/document/paragraph.js +888 -0
  180. package/src/features/document/run.d.ts +1 -0
  181. package/src/features/document/run.js +768 -0
  182. package/src/features/document/section-partition-flatten.d.ts +124 -0
  183. package/src/features/document/section-partition-flatten.js +217 -0
  184. package/src/features/document/section-properties-model.d.ts +13 -0
  185. package/src/features/document/section-properties-model.js +0 -0
  186. package/src/features/document/section.d.ts +93 -0
  187. package/src/features/document/section.js +178 -0
  188. package/src/features/document/sections.d.ts +103 -0
  189. package/src/features/document/sections.js +217 -0
  190. package/src/features/document/sub-super-script.d.ts +23 -0
  191. package/src/features/document/sub-super-script.js +43 -0
  192. package/src/features/document/text-range.d.ts +445 -0
  193. package/src/features/document/text-range.js +1156 -0
  194. package/src/features/document/typed-body-collections.d.ts +162 -0
  195. package/src/features/document/typed-body-collections.js +371 -0
  196. package/src/features/document/underline-style.d.ts +38 -0
  197. package/src/features/document/underline-style.js +126 -0
  198. package/src/features/document/units.d.ts +8 -0
  199. package/src/features/document/units.js +7 -0
  200. package/src/features/document/wml.d.ts +16 -0
  201. package/src/features/document/wml.js +67 -0
  202. package/src/features/drawing/authoring.d.ts +27 -0
  203. package/src/features/drawing/authoring.js +271 -0
  204. package/src/features/drawing/body-pr.d.ts +271 -0
  205. package/src/features/drawing/body-pr.js +663 -0
  206. package/src/features/drawing/drawing-shape.d.ts +1192 -0
  207. package/src/features/drawing/drawing-shape.js +3239 -0
  208. package/src/features/drawing/encode-builders.d.ts +176 -0
  209. package/src/features/drawing/encode-builders.js +390 -0
  210. package/src/features/drawing/fill-format.d.ts +52 -0
  211. package/src/features/drawing/fill-format.js +124 -0
  212. package/src/features/drawing/host-codec.d.ts +632 -0
  213. package/src/features/drawing/host-codec.js +2595 -0
  214. package/src/features/drawing/index.d.ts +13 -0
  215. package/src/features/drawing/index.js +33 -0
  216. package/src/features/drawing/line-format.d.ts +76 -0
  217. package/src/features/drawing/line-format.js +343 -0
  218. package/src/features/drawing/parse-register.d.ts +50 -0
  219. package/src/features/drawing/parse-register.js +257 -0
  220. package/src/features/drawing/residual-utils.d.ts +47 -0
  221. package/src/features/drawing/residual-utils.js +290 -0
  222. package/src/features/drawing/shape-types.d.ts +433 -0
  223. package/src/features/drawing/shape-types.js +437 -0
  224. package/src/features/drawing/sp-pr.d.ts +396 -0
  225. package/src/features/drawing/sp-pr.js +610 -0
  226. package/src/features/drawing/text-frame.d.ts +90 -0
  227. package/src/features/drawing/text-frame.js +152 -0
  228. package/src/features/drawing/types.d.ts +352 -0
  229. package/src/features/drawing/types.js +60 -0
  230. package/src/features/drawing/wrap-format.d.ts +62 -0
  231. package/src/features/drawing/wrap-format.js +114 -0
  232. package/src/features/editable-ranges/index.d.ts +494 -0
  233. package/src/features/editable-ranges/index.js +1348 -0
  234. package/src/features/fields/index.d.ts +428 -0
  235. package/src/features/fields/index.js +2148 -0
  236. package/src/features/fields/paragraph-field.d.ts +187 -0
  237. package/src/features/fields/paragraph-field.js +692 -0
  238. package/src/features/font-table/font-substitution-table.d.ts +75 -0
  239. package/src/features/font-table/font-substitution-table.js +257 -0
  240. package/src/features/font-table/font-table-entry.d.ts +255 -0
  241. package/src/features/font-table/font-table-entry.js +823 -0
  242. package/src/features/font-table/font-table.d.ts +128 -0
  243. package/src/features/font-table/font-table.js +313 -0
  244. package/src/features/font-table/index.d.ts +27 -0
  245. package/src/features/font-table/index.js +48 -0
  246. package/src/features/glossary/index.d.ts +97 -0
  247. package/src/features/glossary/index.js +286 -0
  248. package/src/features/headers-footers/index.d.ts +506 -0
  249. package/src/features/headers-footers/index.js +1666 -0
  250. package/src/features/hyperlinks/index.d.ts +230 -0
  251. package/src/features/hyperlinks/index.js +685 -0
  252. package/src/features/images/caption-authoring-api.d.ts +33 -0
  253. package/src/features/images/caption-authoring-api.js +33 -0
  254. package/src/features/images/caption-enums.d.ts +52 -0
  255. package/src/features/images/caption-enums.js +141 -0
  256. package/src/features/images/caption-host.d.ts +10 -0
  257. package/src/features/images/caption-host.js +21 -0
  258. package/src/features/images/captions.d.ts +13 -0
  259. package/src/features/images/captions.js +142 -0
  260. package/src/features/images/host-codec.d.ts +103 -0
  261. package/src/features/images/host-codec.js +720 -0
  262. package/src/features/images/image-sniff.d.ts +21 -0
  263. package/src/features/images/image-sniff.js +71 -0
  264. package/src/features/images/index.d.ts +506 -0
  265. package/src/features/images/index.js +1429 -0
  266. package/src/features/images/layout-types.d.ts +232 -0
  267. package/src/features/images/layout-types.js +294 -0
  268. package/src/features/images/public-entry.d.ts +9 -0
  269. package/src/features/images/public-entry.js +9 -0
  270. package/src/features/index.d.ts +35 -0
  271. package/src/features/index.js +36 -0
  272. package/src/features/mail-merge/index.d.ts +113 -0
  273. package/src/features/mail-merge/index.js +315 -0
  274. package/src/features/notes/index.d.ts +573 -0
  275. package/src/features/notes/index.js +1725 -0
  276. package/src/features/numbering/abstract-numbering.d.ts +90 -0
  277. package/src/features/numbering/abstract-numbering.js +292 -0
  278. package/src/features/numbering/index.d.ts +182 -0
  279. package/src/features/numbering/index.js +668 -0
  280. package/src/features/numbering/list-format.d.ts +158 -0
  281. package/src/features/numbering/list-format.js +590 -0
  282. package/src/features/numbering/list-string.d.ts +7 -0
  283. package/src/features/numbering/list-string.js +423 -0
  284. package/src/features/numbering/list-style.d.ts +204 -0
  285. package/src/features/numbering/list-style.js +1084 -0
  286. package/src/features/numbering/numbering-instance.d.ts +101 -0
  287. package/src/features/numbering/numbering-instance.js +329 -0
  288. package/src/features/numbering/numbering-level.d.ts +118 -0
  289. package/src/features/numbering/numbering-level.js +501 -0
  290. package/src/features/numbering/picture-bullet.d.ts +34 -0
  291. package/src/features/numbering/picture-bullet.js +88 -0
  292. package/src/features/ole-object/catalog.d.ts +300 -0
  293. package/src/features/ole-object/catalog.js +908 -0
  294. package/src/features/ole-object/index.d.ts +526 -0
  295. package/src/features/ole-object/index.js +1421 -0
  296. package/src/features/ole-object/relationship.d.ts +27 -0
  297. package/src/features/ole-object/relationship.js +27 -0
  298. package/src/features/ole-object/typed-dom.d.ts +186 -0
  299. package/src/features/ole-object/typed-dom.js +595 -0
  300. package/src/features/properties/index.d.ts +205 -0
  301. package/src/features/properties/index.js +549 -0
  302. package/src/features/revisions/index.d.ts +204 -0
  303. package/src/features/revisions/index.js +695 -0
  304. package/src/features/sections/column-collection.d.ts +119 -0
  305. package/src/features/sections/column-collection.js +478 -0
  306. package/src/features/sections/column.d.ts +15 -0
  307. package/src/features/sections/column.js +37 -0
  308. package/src/features/sections/index.d.ts +91 -0
  309. package/src/features/sections/index.js +1096 -0
  310. package/src/features/sections/margins.d.ts +40 -0
  311. package/src/features/sections/margins.js +105 -0
  312. package/src/features/sections/page-number-style.d.ts +21 -0
  313. package/src/features/sections/page-number-style.js +62 -0
  314. package/src/features/sections/page-orientation.d.ts +10 -0
  315. package/src/features/sections/page-orientation.js +10 -0
  316. package/src/features/sections/page-setup.d.ts +435 -0
  317. package/src/features/sections/page-setup.js +1479 -0
  318. package/src/features/sections/page-size.d.ts +59 -0
  319. package/src/features/sections/page-size.js +68 -0
  320. package/src/features/sections/section-break-code.d.ts +27 -0
  321. package/src/features/sections/section-break-code.js +60 -0
  322. package/src/features/sections/section-document-association.d.ts +18 -0
  323. package/src/features/sections/section-document-association.js +31 -0
  324. package/src/features/sections/section-validation.d.ts +43 -0
  325. package/src/features/sections/section-validation.js +97 -0
  326. package/src/features/settings/attached-template.d.ts +35 -0
  327. package/src/features/settings/attached-template.js +98 -0
  328. package/src/features/settings/compat-settings.d.ts +216 -0
  329. package/src/features/settings/compat-settings.js +508 -0
  330. package/src/features/settings/document-background.d.ts +59 -0
  331. package/src/features/settings/document-background.js +131 -0
  332. package/src/features/settings/document-protection.d.ts +65 -0
  333. package/src/features/settings/document-protection.js +157 -0
  334. package/src/features/settings/document-settings-facades.d.ts +108 -0
  335. package/src/features/settings/document-settings-facades.js +312 -0
  336. package/src/features/settings/document-settings-values.d.ts +43 -0
  337. package/src/features/settings/document-settings-values.js +60 -0
  338. package/src/features/settings/footnote-properties.d.ts +211 -0
  339. package/src/features/settings/footnote-properties.js +591 -0
  340. package/src/features/settings/index.d.ts +356 -0
  341. package/src/features/settings/index.js +829 -0
  342. package/src/features/settings/settings-children.d.ts +151 -0
  343. package/src/features/settings/settings-children.js +505 -0
  344. package/src/features/settings/web-settings.d.ts +88 -0
  345. package/src/features/settings/web-settings.js +227 -0
  346. package/src/features/settings/zoom.d.ts +79 -0
  347. package/src/features/settings/zoom.js +147 -0
  348. package/src/features/styles/builtin-catalog.d.ts +159 -0
  349. package/src/features/styles/builtin-catalog.js +963 -0
  350. package/src/features/styles/builtin-resolver.d.ts +49 -0
  351. package/src/features/styles/builtin-resolver.js +165 -0
  352. package/src/features/styles/default-styles.d.ts +37 -0
  353. package/src/features/styles/default-styles.js +186 -0
  354. package/src/features/styles/default-theme.d.ts +13 -0
  355. package/src/features/styles/default-theme.js +13 -0
  356. package/src/features/styles/doc-defaults.d.ts +58 -0
  357. package/src/features/styles/doc-defaults.js +178 -0
  358. package/src/features/styles/formatting-resolver.d.ts +27 -0
  359. package/src/features/styles/formatting-resolver.js +72 -0
  360. package/src/features/styles/index.d.ts +256 -0
  361. package/src/features/styles/index.js +1325 -0
  362. package/src/features/styles/latent-styles.d.ts +68 -0
  363. package/src/features/styles/latent-styles.js +305 -0
  364. package/src/features/styles/paragraph-properties.d.ts +71 -0
  365. package/src/features/styles/paragraph-properties.js +237 -0
  366. package/src/features/styles/run-properties.d.ts +93 -0
  367. package/src/features/styles/run-properties.js +516 -0
  368. package/src/features/styles/style-base.d.ts +402 -0
  369. package/src/features/styles/style-base.js +1026 -0
  370. package/src/features/styles/style-collection.d.ts +264 -0
  371. package/src/features/styles/style-collection.js +714 -0
  372. package/src/features/styles/style-format-bridge.d.ts +64 -0
  373. package/src/features/styles/style-format-bridge.js +100 -0
  374. package/src/features/styles/style.d.ts +84 -0
  375. package/src/features/styles/style.js +375 -0
  376. package/src/features/styles/styles-with-effects.d.ts +71 -0
  377. package/src/features/styles/styles-with-effects.js +180 -0
  378. package/src/features/styles/table-style.d.ts +272 -0
  379. package/src/features/styles/table-style.js +1226 -0
  380. package/src/features/styles/theme.d.ts +126 -0
  381. package/src/features/styles/theme.js +377 -0
  382. package/src/features/tables/border-style-map.d.ts +24 -0
  383. package/src/features/tables/border-style-map.js +81 -0
  384. package/src/features/tables/borders.d.ts +126 -0
  385. package/src/features/tables/borders.js +527 -0
  386. package/src/features/tables/collections.d.ts +113 -0
  387. package/src/features/tables/collections.js +261 -0
  388. package/src/features/tables/format.d.ts +208 -0
  389. package/src/features/tables/format.js +716 -0
  390. package/src/features/tables/index.d.ts +597 -0
  391. package/src/features/tables/index.js +2386 -0
  392. package/src/features/tables/paddings.d.ts +41 -0
  393. package/src/features/tables/paddings.js +97 -0
  394. package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
  395. package/src/features/tables/tbl-pr-positioning.js +178 -0
  396. package/src/features/tables/tbl-pr.d.ts +528 -0
  397. package/src/features/tables/tbl-pr.js +1208 -0
  398. package/src/features/tables/tc-pr.d.ts +168 -0
  399. package/src/features/tables/tc-pr.js +553 -0
  400. package/src/features/tables/tr-pr.d.ts +60 -0
  401. package/src/features/tables/tr-pr.js +215 -0
  402. package/src/features/watermark/detect.d.ts +76 -0
  403. package/src/features/watermark/detect.js +219 -0
  404. package/src/features/watermark/index.d.ts +28 -0
  405. package/src/features/watermark/index.js +91 -0
  406. package/src/features/watermark/logical-store.d.ts +29 -0
  407. package/src/features/watermark/logical-store.js +31 -0
  408. package/src/features/watermark/model.d.ts +285 -0
  409. package/src/features/watermark/model.js +597 -0
  410. package/src/features/watermark/parse.d.ts +84 -0
  411. package/src/features/watermark/parse.js +815 -0
  412. package/src/features/watermark/serialize.d.ts +98 -0
  413. package/src/features/watermark/serialize.js +1517 -0
  414. package/src/global.js +1 -0
  415. package/src/index.d.ts +2 -0
  416. package/src/index.js +2 -0
@@ -0,0 +1,42 @@
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 handlers = [];
12
+ /**
13
+ * @private
14
+ * Test hook */
15
+ export function resetFeatureCreateDefaultHandlers() {
16
+ handlers.length = 0;
17
+ }
18
+ /**
19
+ * @private
20
+ */
21
+ export function registerFeatureCreateDefaultHandler(handler) {
22
+ handlers.push(handler);
23
+ }
24
+ /**
25
+ * @private
26
+ * Run every registered feature create-default pass, in registration order. */
27
+ export function attachFeatureCreateDefaults(document) {
28
+ var e_1, _a;
29
+ try {
30
+ for (var handlers_1 = __values(handlers), handlers_1_1 = handlers_1.next(); !handlers_1_1.done; handlers_1_1 = handlers_1.next()) {
31
+ var handler = handlers_1_1.value;
32
+ handler.attachCreateDefault(document);
33
+ }
34
+ }
35
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
36
+ finally {
37
+ try {
38
+ if (handlers_1_1 && !handlers_1_1.done && (_a = handlers_1.return)) _a.call(handlers_1);
39
+ }
40
+ finally { if (e_1) throw e_1.error; }
41
+ }
42
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Stable feature module identifier (e.g. `tables`). Branded so it is not mixed
3
+ * with relationship or style IDs.
4
+ */
5
+ export declare type FeatureId = string & {
6
+ readonly __brand: 'FeatureId';
7
+ };
8
+ export declare function featureId(value: string): FeatureId;
9
+ export interface FeatureRegistration {
10
+ readonly id: FeatureId;
11
+ }
12
+ /** Test hook: empty the in-memory registry. */
13
+ export declare function resetFeatureRegistry(): void;
14
+ export declare function registerFeature(registration: FeatureRegistration): void;
15
+ /**
16
+ * Require a registered feature. Unknown ids throw `UNKNOWN_FEATURE`
17
+ * (TASK-1008 assumption).
18
+ */
19
+ export declare function ensureFeature(id: string): FeatureRegistration;
20
+ export declare function isFeatureRegistered(id: string): boolean;
@@ -0,0 +1,29 @@
1
+ import { DocxError } from '../errors/docx-error';
2
+ export function featureId(value) {
3
+ if (value.length === 0 || !/^[a-z][a-z0-9-]*$/.test(value)) {
4
+ throw new DocxError('feature/invalid-id', "Invalid feature id: " + value);
5
+ }
6
+ return value;
7
+ }
8
+ var registrations = new Map();
9
+ /** Test hook: empty the in-memory registry. */
10
+ export function resetFeatureRegistry() {
11
+ registrations.clear();
12
+ }
13
+ export function registerFeature(registration) {
14
+ registrations.set(registration.id, registration);
15
+ }
16
+ /**
17
+ * Require a registered feature. Unknown ids throw `UNKNOWN_FEATURE`
18
+ * (TASK-1008 assumption).
19
+ */
20
+ export function ensureFeature(id) {
21
+ var found = registrations.get(id);
22
+ if (found === undefined) {
23
+ throw new DocxError('feature/not-registered', "Feature is not registered: " + id);
24
+ }
25
+ return found;
26
+ }
27
+ export function isFeatureRegistered(id) {
28
+ return registrations.has(id);
29
+ }
@@ -0,0 +1,9 @@
1
+ export { ensureFeature, featureId, isFeatureRegistered, registerFeature, resetFeatureRegistry, } from './feature-registry';
2
+ export { FeatureId, FeatureRegistration } from './feature-registry';
3
+ export { registerFeatureBlockHandler, resetFeatureBlockHandlers, tryParseFeatureBlock, BodyBlockParseContext, FeatureBlockHandler } from './block-handlers';
4
+ export { applyFeatureParts, listFeaturePartHandlers, loadFeatureParts, registerFeaturePartHandler, resetFeaturePartHandlers, FeaturePartHandler, FeaturePartLoadContext } from './part-handlers';
5
+ export { applyFeatureMultiParts, listFeatureMultiPartHandlers, loadFeatureMultiParts, registerFeatureMultiPartHandler, replaceOrAddPackagePart, resetFeatureMultiPartHandlers, usedMainDocumentRelationshipIds, FeatureMultiPartHandler, FeatureMultiPartLoadContext } from './multi-part-handlers';
6
+ export { registerFeatureRunLeafHandler, resetFeatureRunLeafHandlers, FeatureRunLeafHandler } from './run-leaf-handlers';
7
+ export { registerFeatureInlineHandler, resetFeatureInlineHandlers, FeatureInlineHandler } from './inline-handlers';
8
+ export { applyFeaturePackageParts, findPackageRelatedPart, listFeaturePackagePartHandlers, loadFeaturePackageParts, registerFeaturePackagePartHandler, replaceOrAddPackageLevelPart, resetFeaturePackagePartHandlers, usedPackagePartNameKeys, usedPackageRelationshipIds, FeaturePackagePartHandler, FeaturePackagePartLoadContext } from './package-part-handlers';
9
+ export { materializeFeatureSideEffects, registerFeatureBlockParagraphWalker, registerFeatureMaterializeHandler, resetFeatureMaterializeHandlers, visitBlocksInDocumentOrder, visitParagraphsInDocumentOrder, FeatureBlockParagraphWalker, FeatureMaterializeHandler } from './materialize-handlers';
@@ -0,0 +1,8 @@
1
+ export { ensureFeature, featureId, isFeatureRegistered, registerFeature, resetFeatureRegistry, } from './feature-registry';
2
+ export { registerFeatureBlockHandler, resetFeatureBlockHandlers, tryParseFeatureBlock } from './block-handlers';
3
+ export { applyFeatureParts, listFeaturePartHandlers, loadFeatureParts, registerFeaturePartHandler, resetFeaturePartHandlers } from './part-handlers';
4
+ export { applyFeatureMultiParts, listFeatureMultiPartHandlers, loadFeatureMultiParts, registerFeatureMultiPartHandler, replaceOrAddPackagePart, resetFeatureMultiPartHandlers, usedMainDocumentRelationshipIds } from './multi-part-handlers';
5
+ export { registerFeatureRunLeafHandler, resetFeatureRunLeafHandlers } from './run-leaf-handlers';
6
+ export { registerFeatureInlineHandler, resetFeatureInlineHandlers } from './inline-handlers';
7
+ export { applyFeaturePackageParts, findPackageRelatedPart, listFeaturePackagePartHandlers, loadFeaturePackageParts, registerFeaturePackagePartHandler, replaceOrAddPackageLevelPart, resetFeaturePackagePartHandlers, usedPackagePartNameKeys, usedPackageRelationshipIds } from './package-part-handlers';
8
+ export { materializeFeatureSideEffects, registerFeatureBlockParagraphWalker, registerFeatureMaterializeHandler, resetFeatureMaterializeHandlers, visitBlocksInDocumentOrder, visitParagraphsInDocumentOrder } from './materialize-handlers';
@@ -0,0 +1,20 @@
1
+ import { FeatureInline } from '../../features/document/feature-inline';
2
+ import { OpenXmlElement } from '../xml/index';
3
+ import { FeatureId } from './feature-registry';
4
+ export declare type FeatureInlineContent = {
5
+ readonly type: 'feature';
6
+ readonly featureId: FeatureId;
7
+ readonly value: FeatureInline;
8
+ };
9
+ export interface FeatureInlineHandler {
10
+ readonly featureId: FeatureId;
11
+ readonly wmlLocalName: string;
12
+ /** When omitted, the WordprocessingML transitional namespace is assumed. */
13
+ readonly namespaceUri?: string;
14
+ tryParse(element: OpenXmlElement): FeatureInline | undefined;
15
+ }
16
+ /** Test hook */
17
+ export declare function resetFeatureInlineHandlers(): void;
18
+ export declare function registerFeatureInlineHandler(handler: FeatureInlineHandler): void;
19
+ export declare function tryParseFeatureInline(element: OpenXmlElement): FeatureInlineContent | undefined;
20
+ export declare function serializeFeatureInline(inline: FeatureInlineContent): OpenXmlElement;
@@ -0,0 +1,30 @@
1
+ import { WML } from '../../features/document/wml';
2
+ var handlersByLocalName = new Map();
3
+ function elementMatchesHandler(element, handler) {
4
+ if (element.localName !== handler.wmlLocalName) {
5
+ return false;
6
+ }
7
+ var namespaceUri = handler.namespaceUri != null ? handler.namespaceUri : WML;
8
+ return element.namespaceUri === namespaceUri;
9
+ }
10
+ /** Test hook */
11
+ export function resetFeatureInlineHandlers() {
12
+ handlersByLocalName.clear();
13
+ }
14
+ export function registerFeatureInlineHandler(handler) {
15
+ handlersByLocalName.set(handler.wmlLocalName, handler);
16
+ }
17
+ export function tryParseFeatureInline(element) {
18
+ var handler = handlersByLocalName.get(element.localName);
19
+ if (handler === undefined || !elementMatchesHandler(element, handler)) {
20
+ return undefined;
21
+ }
22
+ var value = handler.tryParse(element);
23
+ if (value === undefined) {
24
+ return undefined;
25
+ }
26
+ return { type: 'feature', featureId: handler.featureId, value: value };
27
+ }
28
+ export function serializeFeatureInline(inline) {
29
+ return inline.value.toOpenXml();
30
+ }
@@ -0,0 +1,35 @@
1
+ import { FeatureBlock } from '../../features/document/feature-block';
2
+ import { FeatureId } from './feature-registry';
3
+ import { BlockContent, Paragraph } from '../../features/document/paragraph';
4
+ /**
5
+ * @private
6
+ * Minimal document surface required for save-time materialization. */
7
+ export interface MaterializableDocument {
8
+ listBlocks(): ReadonlyArray<BlockContent>;
9
+ featurePart(id: FeatureId): unknown;
10
+ }
11
+ /** @public */
12
+ export interface FeatureMaterializeHandler {
13
+ readonly featureId: FeatureId;
14
+ materialize(document: MaterializableDocument): void;
15
+ }
16
+ /** @public */
17
+ export interface FeatureBlockParagraphWalker {
18
+ readonly featureId: FeatureId;
19
+ visitParagraphs(block: FeatureBlock, visit: (paragraph: Paragraph) => void): void;
20
+ }
21
+ /** @public Test hook */
22
+ export declare function resetFeatureMaterializeHandlers(): void;
23
+ /** @public */
24
+ export declare function registerFeatureMaterializeHandler(handler: FeatureMaterializeHandler): void;
25
+ /** @public */
26
+ export declare function registerFeatureBlockParagraphWalker(walker: FeatureBlockParagraphWalker): void;
27
+ /** @public Visit body blocks and nested feature paragraphs in document order. */
28
+ export declare function visitParagraphsInDocumentOrder(document: MaterializableDocument, visit: (paragraph: Paragraph) => void): void;
29
+ /**
30
+ * Visit paragraphs inside an ordered block list using registered feature walkers.
31
+ * @public
32
+ */
33
+ export declare function visitBlocksInDocumentOrder(blocks: ReadonlyArray<BlockContent>, visit: (paragraph: Paragraph) => void): void;
34
+ /** @public Run every registered feature materialization pass. */
35
+ export declare function materializeFeatureSideEffects(document: MaterializableDocument): void;
@@ -0,0 +1,75 @@
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 materializeHandlers = [];
12
+ var blockParagraphWalkers = new Map();
13
+ /** @public Test hook */
14
+ export function resetFeatureMaterializeHandlers() {
15
+ materializeHandlers.length = 0;
16
+ blockParagraphWalkers.clear();
17
+ }
18
+ /** @public */
19
+ export function registerFeatureMaterializeHandler(handler) {
20
+ materializeHandlers.push(handler);
21
+ }
22
+ /** @public */
23
+ export function registerFeatureBlockParagraphWalker(walker) {
24
+ blockParagraphWalkers.set(walker.featureId, walker);
25
+ }
26
+ /** @public Visit body blocks and nested feature paragraphs in document order. */
27
+ export function visitParagraphsInDocumentOrder(document, visit) {
28
+ visitBlocksInDocumentOrder(document.listBlocks(), visit);
29
+ }
30
+ /**
31
+ * Visit paragraphs inside an ordered block list using registered feature walkers.
32
+ * @public
33
+ */
34
+ export function visitBlocksInDocumentOrder(blocks, visit) {
35
+ var e_1, _a;
36
+ try {
37
+ for (var blocks_1 = __values(blocks), blocks_1_1 = blocks_1.next(); !blocks_1_1.done; blocks_1_1 = blocks_1.next()) {
38
+ var block = blocks_1_1.value;
39
+ if (block.type === 'paragraph') {
40
+ visit(block.paragraph);
41
+ continue;
42
+ }
43
+ if (block.type === 'feature') {
44
+ var walker = blockParagraphWalkers.get(block.featureId);
45
+ if (walker !== undefined) {
46
+ walker.visitParagraphs(block.value, visit);
47
+ }
48
+ }
49
+ }
50
+ }
51
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
52
+ finally {
53
+ try {
54
+ if (blocks_1_1 && !blocks_1_1.done && (_a = blocks_1.return)) _a.call(blocks_1);
55
+ }
56
+ finally { if (e_1) throw e_1.error; }
57
+ }
58
+ }
59
+ /** @public Run every registered feature materialization pass. */
60
+ export function materializeFeatureSideEffects(document) {
61
+ var e_2, _a;
62
+ try {
63
+ for (var materializeHandlers_1 = __values(materializeHandlers), materializeHandlers_1_1 = materializeHandlers_1.next(); !materializeHandlers_1_1.done; materializeHandlers_1_1 = materializeHandlers_1.next()) {
64
+ var handler = materializeHandlers_1_1.value;
65
+ handler.materialize(document);
66
+ }
67
+ }
68
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
69
+ finally {
70
+ try {
71
+ if (materializeHandlers_1_1 && !materializeHandlers_1_1.done && (_a = materializeHandlers_1.return)) _a.call(materializeHandlers_1);
72
+ }
73
+ finally { if (e_2) throw e_2.error; }
74
+ }
75
+ }
@@ -0,0 +1,37 @@
1
+ import { FeatureMultiPackagePart } from '../../features/document/feature-multi-package-part';
2
+ import { OpcRelationship } from '../opc/relationships';
3
+ import { OpcPackage } from '../opc/package';
4
+ import { PartName } from '../opc/part-name';
5
+ import { ResourceLimitOverrides } from '../security/limits';
6
+ import { FeatureId } from './feature-registry';
7
+ /** @public */
8
+ export interface FeatureMultiPartLoadContext {
9
+ readonly mainPartName: PartName;
10
+ readonly limits?: ResourceLimitOverrides | undefined;
11
+ }
12
+ export interface FeatureMultiPartHandler {
13
+ readonly featureId: FeatureId;
14
+ readonly relationshipTypes: ReadonlyArray<string>;
15
+ loadParts(pkg: OpcPackage, ctx: FeatureMultiPartLoadContext): FeatureMultiPackagePart;
16
+ }
17
+ /** Test hook */
18
+ export declare function resetFeatureMultiPartHandlers(): void;
19
+ export declare function registerFeatureMultiPartHandler(handler: FeatureMultiPartHandler): void;
20
+ export declare function listFeatureMultiPartHandlers(): ReadonlyArray<FeatureMultiPartHandler>;
21
+ export declare function loadFeatureMultiParts(pkg: OpcPackage, mainPartName: PartName, limits?: ResourceLimitOverrides): Map<FeatureId, FeatureMultiPackagePart>;
22
+ /**
23
+ * Relationship ids already claimed on the main document part — package items plus
24
+ * every multi-part catalog that has already allocated pending entries.
25
+ *
26
+ * Materialize handlers for independent features (images, ink, hyperlinks, …) must
27
+ * share this set so concurrent pending allocations cannot emit the same rId.
28
+ *
29
+ * @public
30
+ */
31
+ export declare function usedMainDocumentRelationshipIds(document: {
32
+ opcPackage(): OpcPackage;
33
+ featurePart(id: FeatureId): unknown;
34
+ }): Set<string>;
35
+ export declare function applyFeatureMultiParts(pkg: OpcPackage, mainPartName: PartName, featureParts: ReadonlyMap<FeatureId, FeatureMultiPackagePart>): OpcPackage;
36
+ /** @public Helpers for feature modules implementing {@link FeatureMultiPackagePart}. */
37
+ export declare function replaceOrAddPackagePart(pkg: OpcPackage, mainPartName: PartName, partName: PartName, contentType: string, data: Uint8Array, relationship: OpcRelationship | undefined): OpcPackage;
@@ -0,0 +1,206 @@
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
+ import { allocateRelationshipId, relationshipsWith } from '../opc/relationships';
43
+ import { partByName, relationshipsForPart, withAddedPart, withContentTypeOverride, withPartRelationships, withReplacedPart } from '../opc/package';
44
+ import { partName } from '../opc/part-name';
45
+ var handlers = [];
46
+ /** Test hook */
47
+ export function resetFeatureMultiPartHandlers() {
48
+ handlers.length = 0;
49
+ }
50
+ export function registerFeatureMultiPartHandler(handler) {
51
+ handlers.push(handler);
52
+ }
53
+ export function listFeatureMultiPartHandlers() {
54
+ return handlers;
55
+ }
56
+ export function loadFeatureMultiParts(pkg, mainPartName, limits) {
57
+ var e_1, _a;
58
+ var out = new Map();
59
+ var ctx = { mainPartName: mainPartName, limits: limits };
60
+ try {
61
+ for (var handlers_1 = __values(handlers), handlers_1_1 = handlers_1.next(); !handlers_1_1.done; handlers_1_1 = handlers_1.next()) {
62
+ var handler = handlers_1_1.value;
63
+ out.set(handler.featureId, handler.loadParts(pkg, ctx));
64
+ }
65
+ }
66
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
67
+ finally {
68
+ try {
69
+ if (handlers_1_1 && !handlers_1_1.done && (_a = handlers_1.return)) _a.call(handlers_1);
70
+ }
71
+ finally { if (e_1) throw e_1.error; }
72
+ }
73
+ return out;
74
+ }
75
+ function mergeRelationships(existing, add) {
76
+ var e_2, _a;
77
+ if (add.length === 0) {
78
+ return existing;
79
+ }
80
+ var used = new Set(existing.items.map(function (item) { return item.id; }));
81
+ var next = __spread(existing.items);
82
+ var _loop_1 = function (rel) {
83
+ if (next.some(function (item) { return item.type === rel.type && item.target === rel.target; })) {
84
+ return "continue";
85
+ }
86
+ var id = rel.id;
87
+ while (used.has(id)) {
88
+ id = allocateRelationshipId(used);
89
+ }
90
+ used.add(id);
91
+ next.push(__assign({}, rel, { id: id }));
92
+ };
93
+ try {
94
+ for (var add_1 = __values(add), add_1_1 = add_1.next(); !add_1_1.done; add_1_1 = add_1.next()) {
95
+ var rel = add_1_1.value;
96
+ _loop_1(rel);
97
+ }
98
+ }
99
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
100
+ finally {
101
+ try {
102
+ if (add_1_1 && !add_1_1.done && (_a = add_1.return)) _a.call(add_1);
103
+ }
104
+ finally { if (e_2) throw e_2.error; }
105
+ }
106
+ return relationshipsWith(next, existing.opaque);
107
+ }
108
+ /**
109
+ * Relationship ids already claimed on the main document part — package items plus
110
+ * every multi-part catalog that has already allocated pending entries.
111
+ *
112
+ * Materialize handlers for independent features (images, ink, hyperlinks, …) must
113
+ * share this set so concurrent pending allocations cannot emit the same rId.
114
+ *
115
+ * @public
116
+ */
117
+ export function usedMainDocumentRelationshipIds(document) {
118
+ var e_3, _a, e_4, _b, e_5, _c;
119
+ var main = partName('/word/document.xml');
120
+ var used = new Set();
121
+ try {
122
+ for (var _d = __values(relationshipsForPart(document.opcPackage(), main).items), _e = _d.next(); !_e.done; _e = _d.next()) {
123
+ var rel = _e.value;
124
+ used.add(rel.id);
125
+ }
126
+ }
127
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
128
+ finally {
129
+ try {
130
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
131
+ }
132
+ finally { if (e_3) throw e_3.error; }
133
+ }
134
+ try {
135
+ for (var handlers_2 = __values(handlers), handlers_2_1 = handlers_2.next(); !handlers_2_1.done; handlers_2_1 = handlers_2.next()) {
136
+ var handler = handlers_2_1.value;
137
+ var part = document.featurePart(handler.featureId);
138
+ if (part === undefined || part === null || typeof part !== 'object') {
139
+ continue;
140
+ }
141
+ var catalog = part;
142
+ if (typeof catalog.pendingRelationshipIds !== 'function') {
143
+ continue;
144
+ }
145
+ try {
146
+ for (var _f = __values(catalog.pendingRelationshipIds()), _g = _f.next(); !_g.done; _g = _f.next()) {
147
+ var id = _g.value;
148
+ used.add(id);
149
+ }
150
+ }
151
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
152
+ finally {
153
+ try {
154
+ if (_g && !_g.done && (_c = _f.return)) _c.call(_f);
155
+ }
156
+ finally { if (e_5) throw e_5.error; }
157
+ }
158
+ }
159
+ }
160
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
161
+ finally {
162
+ try {
163
+ if (handlers_2_1 && !handlers_2_1.done && (_b = handlers_2.return)) _b.call(handlers_2);
164
+ }
165
+ finally { if (e_4) throw e_4.error; }
166
+ }
167
+ return used;
168
+ }
169
+ export function applyFeatureMultiParts(pkg, mainPartName, featureParts) {
170
+ var e_6, _a;
171
+ var next = pkg;
172
+ try {
173
+ for (var handlers_3 = __values(handlers), handlers_3_1 = handlers_3.next(); !handlers_3_1.done; handlers_3_1 = handlers_3.next()) {
174
+ var handler = handlers_3_1.value;
175
+ var state = featureParts.get(handler.featureId);
176
+ if (state === undefined || !state.isDirty()) {
177
+ continue;
178
+ }
179
+ next = state.applyToPackage(next, mainPartName);
180
+ }
181
+ }
182
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
183
+ finally {
184
+ try {
185
+ if (handlers_3_1 && !handlers_3_1.done && (_a = handlers_3.return)) _a.call(handlers_3);
186
+ }
187
+ finally { if (e_6) throw e_6.error; }
188
+ }
189
+ return next;
190
+ }
191
+ /** @public Helpers for feature modules implementing {@link FeatureMultiPackagePart}. */
192
+ export function replaceOrAddPackagePart(pkg, mainPartName, partName, contentType, data, relationship) {
193
+ var next = pkg;
194
+ var existing = partByName(next, partName);
195
+ if (existing === undefined) {
196
+ next = withAddedPart(next, { name: partName, contentType: contentType, data: data });
197
+ next = withContentTypeOverride(next, partName, contentType);
198
+ if (relationship !== undefined) {
199
+ var merged = mergeRelationships(relationshipsForPart(next, mainPartName), [relationship]);
200
+ next = withPartRelationships(next, mainPartName, merged);
201
+ }
202
+ return next;
203
+ }
204
+ next = withReplacedPart(next, partName, data);
205
+ return next;
206
+ }
@@ -0,0 +1,28 @@
1
+ import { FeaturePackageLevelPart } from '../../features/document/feature-package-level-part';
2
+ import { OpcRelationship } from '../opc/relationships';
3
+ import { OpcPackage, PackagePart } from '../opc/package';
4
+ import { PartName } from '../opc/part-name';
5
+ import { ResourceLimitOverrides } from '../security/limits';
6
+ import { FeatureId } from './feature-registry';
7
+ /** @public */
8
+ export interface FeaturePackagePartLoadContext {
9
+ readonly limits?: ResourceLimitOverrides | undefined;
10
+ }
11
+ export interface FeaturePackagePartHandler {
12
+ readonly featureId: FeatureId;
13
+ loadParts(pkg: OpcPackage, ctx: FeaturePackagePartLoadContext): FeaturePackageLevelPart;
14
+ }
15
+ /** Test hook */
16
+ export declare function resetFeaturePackagePartHandlers(): void;
17
+ export declare function registerFeaturePackagePartHandler(handler: FeaturePackagePartHandler): void;
18
+ export declare function listFeaturePackagePartHandlers(): ReadonlyArray<FeaturePackagePartHandler>;
19
+ export declare function loadFeaturePackageParts(pkg: OpcPackage, limits?: ResourceLimitOverrides): Map<FeatureId, FeaturePackageLevelPart>;
20
+ export declare function applyFeaturePackageParts(pkg: OpcPackage, featureParts: ReadonlyMap<FeatureId, FeaturePackageLevelPart>): OpcPackage;
21
+ /** @public Helpers for feature modules implementing {@link FeaturePackageLevelPart}. */
22
+ export declare function findPackageRelatedPart(pkg: OpcPackage, relationshipType: string): {
23
+ readonly relationship: OpcRelationship;
24
+ readonly part: PackagePart;
25
+ } | undefined;
26
+ export declare function replaceOrAddPackageLevelPart(pkg: OpcPackage, partNameValue: PartName, contentType: string, data: Uint8Array, relationship: OpcRelationship | undefined): OpcPackage;
27
+ export declare function usedPackagePartNameKeys(pkg: OpcPackage): Set<string>;
28
+ export declare function usedPackageRelationshipIds(pkg: OpcPackage): Set<string>;