@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,1026 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ /**
15
+ * Live typed Styles DOM: Style, ParagraphStyle, CharacterStyle.
16
+ *
17
+ * Single mutable source of truth for paragraph and character style definitions.
18
+ * Table and numbering styles use {@link OpaqueStyle} (not public API).
19
+ *
20
+ * Style_Architecture_change.txt §§4–9.
21
+ *
22
+ * @public
23
+ */
24
+ import { DetachedObjectError, DocxError, InvalidArgumentError } from '../../core/errors/docx-error';
25
+ import { CharacterFormat, } from '../document/character-format';
26
+ import { ParagraphFormat, } from '../document/paragraph-format';
27
+ import { parseOnOff, serializeOnOff } from '../document/on-off';
28
+ import { elementChildren, isWml, wmlAttr, wmlElement, wValAttribute, WML } from '../document/wml';
29
+ import { normalizeStyleName } from './builtin-catalog';
30
+ import { characterSnapshotFromRPr, paragraphSnapshotFromPPr, } from './style-format-bridge';
31
+ import { DocxStyle, parseDocxStyle } from './style';
32
+ // ---------------------------------------------------------------------------
33
+ // Metadata helpers
34
+ // ---------------------------------------------------------------------------
35
+ /** CT_Style children emitted from typed fields (schema preamble). */
36
+ var MODELED_META_NAMES = new Set([
37
+ 'name',
38
+ 'aliases',
39
+ 'basedOn',
40
+ 'next',
41
+ 'link',
42
+ 'autoRedefine',
43
+ 'hidden',
44
+ 'uiPriority',
45
+ 'semiHidden',
46
+ 'unhideWhenUsed',
47
+ 'qFormat',
48
+ 'locked',
49
+ ]);
50
+ function firstWmlChild(children, localName) {
51
+ for (var i = 0; i < children.length; i += 1) {
52
+ var child = children[i];
53
+ if (child !== undefined && isWml(child, localName)) {
54
+ return child;
55
+ }
56
+ }
57
+ return undefined;
58
+ }
59
+ function readStringVal(children, localName) {
60
+ var el = firstWmlChild(children, localName);
61
+ if (el === undefined) {
62
+ return undefined;
63
+ }
64
+ return wValAttribute(el);
65
+ }
66
+ function readOnOffChild(children, localName) {
67
+ var el = firstWmlChild(children, localName);
68
+ if (el === undefined) {
69
+ return undefined;
70
+ }
71
+ return parseOnOff(el);
72
+ }
73
+ function parseDecimalChild(el) {
74
+ if (el === undefined) {
75
+ return undefined;
76
+ }
77
+ var raw = wValAttribute(el);
78
+ if (raw === undefined || !/^-?\d+$/.test(raw.trim())) {
79
+ return undefined;
80
+ }
81
+ return parseInt(raw.trim(), 10);
82
+ }
83
+ function pushOnOff(out, localName, value) {
84
+ if (value === undefined) {
85
+ return;
86
+ }
87
+ out.push(serializeOnOff(localName, value));
88
+ }
89
+ // ---------------------------------------------------------------------------
90
+ // Style
91
+ // ---------------------------------------------------------------------------
92
+ /**
93
+ * Base live style definition (`w:style`).
94
+ *
95
+ * Paragraph and character styles are {@link ParagraphStyle} / {@link CharacterStyle}.
96
+ * Table and numbering styles are internal opaque instances.
97
+ *
98
+ * @public
99
+ */
100
+ var Style = /** @class */ (function () {
101
+ /**
102
+ * @private
103
+ */
104
+ function Style(styleId, type, defaultFlag, customStyle) {
105
+ if (styleId.length === 0) {
106
+ throw new InvalidArgumentError('Style id must not be empty');
107
+ }
108
+ this.styleIdValue = styleId;
109
+ this.typeValue = type;
110
+ this.defaultValue = defaultFlag;
111
+ this.customStyleValue = customStyle;
112
+ this.nameValue = undefined;
113
+ this.aliasesValue = undefined;
114
+ this.basedOnIdValue = undefined;
115
+ this.nextIdValue = undefined;
116
+ this.linkIdValue = undefined;
117
+ this.uiPriorityValue = undefined;
118
+ this.autoRedefineValue = undefined;
119
+ this.hiddenValue = undefined;
120
+ this.semiHiddenValue = undefined;
121
+ this.unhideWhenUsedValue = undefined;
122
+ this.qFormatValue = undefined;
123
+ this.lockedValue = undefined;
124
+ this.extraAttributesValue = [];
125
+ this.opaqueChildrenValue = [];
126
+ this.ownerValue = undefined;
127
+ this.attachedValue = false;
128
+ this.suppressDirty = false;
129
+ this.characterFormatValue = new CharacterFormat(this);
130
+ }
131
+ Object.defineProperty(Style.prototype, "styleId", {
132
+ // ---- Identity ----
133
+ /**
134
+ * Stable OOXML style identity (`w:style/@w:styleId`).
135
+ *
136
+ * @public
137
+ */
138
+ get: function () {
139
+ return this.styleIdValue;
140
+ },
141
+ enumerable: true,
142
+ configurable: true
143
+ });
144
+ Object.defineProperty(Style.prototype, "type", {
145
+ /**
146
+ * Style type (`w:style/@w:type`), when present.
147
+ *
148
+ * @public
149
+ */
150
+ get: function () {
151
+ return this.typeValue;
152
+ },
153
+ enumerable: true,
154
+ configurable: true
155
+ });
156
+ Object.defineProperty(Style.prototype, "isDefault", {
157
+ /**
158
+ * Whether this is the default style of its type (`@w:default`).
159
+ *
160
+ * @public
161
+ */
162
+ get: function () {
163
+ return this.defaultValue;
164
+ },
165
+ enumerable: true,
166
+ configurable: true
167
+ });
168
+ Object.defineProperty(Style.prototype, "customStyle", {
169
+ /**
170
+ * Customer-defined style flag (`@w:customStyle`).
171
+ *
172
+ * @public
173
+ */
174
+ get: function () {
175
+ return this.customStyleValue;
176
+ },
177
+ enumerable: true,
178
+ configurable: true
179
+ });
180
+ Object.defineProperty(Style.prototype, "name", {
181
+ /**
182
+ * Display name (`w:name/@w:val`). Mutable; does not change {@link styleId}.
183
+ *
184
+ * @public
185
+ */
186
+ get: function () {
187
+ return this.nameValue;
188
+ },
189
+ set: function (value) {
190
+ this.ensureAttached();
191
+ this.nameValue = value;
192
+ this.markDirty();
193
+ },
194
+ enumerable: true,
195
+ configurable: true
196
+ });
197
+ Object.defineProperty(Style.prototype, "characterFormat", {
198
+ /**
199
+ * Style-level character formatting (`w:rPr`). Stable facade identity.
200
+ *
201
+ * @public
202
+ */
203
+ get: function () {
204
+ return this.characterFormatValue;
205
+ },
206
+ enumerable: true,
207
+ configurable: true
208
+ });
209
+ Object.defineProperty(Style.prototype, "owner", {
210
+ /**
211
+ * Owning collection infrastructure, when attached.
212
+ *
213
+ * @private
214
+ */
215
+ get: function () {
216
+ return this.ownerValue;
217
+ },
218
+ enumerable: true,
219
+ configurable: true
220
+ });
221
+ Object.defineProperty(Style.prototype, "isAttached", {
222
+ /**
223
+ * Whether this style is attached to a document styles collection.
224
+ *
225
+ * @private
226
+ */
227
+ get: function () {
228
+ return this.attachedValue && this.ownerValue !== undefined;
229
+ },
230
+ enumerable: true,
231
+ configurable: true
232
+ });
233
+ Object.defineProperty(Style.prototype, "basedOnId", {
234
+ // ---- Base style (Option A) ----
235
+ /**
236
+ * Raw `w:basedOn/@w:val` (may be unresolved).
237
+ *
238
+ * @private
239
+ */
240
+ get: function () {
241
+ return this.basedOnIdValue;
242
+ },
243
+ enumerable: true,
244
+ configurable: true
245
+ });
246
+ Object.defineProperty(Style.prototype, "baseStyle", {
247
+ /**
248
+ * Resolved base style of the same public kind, when present and attached.
249
+ *
250
+ * @public
251
+ */
252
+ get: function () {
253
+ if (this.basedOnIdValue === undefined || this.basedOnIdValue.length === 0) {
254
+ return undefined;
255
+ }
256
+ if (this.ownerValue === undefined) {
257
+ return undefined;
258
+ }
259
+ var resolved = this.ownerValue.lookupStyle(this.basedOnIdValue);
260
+ if (resolved === undefined) {
261
+ return undefined;
262
+ }
263
+ if (this.typeValue !== undefined && resolved.type !== undefined && resolved.type !== this.typeValue) {
264
+ return undefined;
265
+ }
266
+ return resolved;
267
+ },
268
+ enumerable: true,
269
+ configurable: true
270
+ });
271
+ /**
272
+ * Set base style by instance or style id (same-type, same-document).
273
+ *
274
+ * Pass `undefined` to clear the relationship.
275
+ *
276
+ * @public
277
+ */
278
+ Style.prototype.applyBaseStyle = function (styleOrId) {
279
+ this.ensureAttached();
280
+ if (styleOrId === undefined) {
281
+ this.basedOnIdValue = undefined;
282
+ this.markDirty();
283
+ return;
284
+ }
285
+ var target;
286
+ if (typeof styleOrId === 'string') {
287
+ if (styleOrId.length === 0) {
288
+ throw new InvalidArgumentError('Base style id must not be empty');
289
+ }
290
+ if (this.ownerValue === undefined) {
291
+ throw new DetachedObjectError('Cannot resolve base style on a detached style');
292
+ }
293
+ target = this.ownerValue.lookupStyle(styleOrId);
294
+ if (target === undefined) {
295
+ // Preserve raw id (dangling basedOn is valid OOXML).
296
+ this.basedOnIdValue = styleOrId;
297
+ this.markDirty();
298
+ return;
299
+ }
300
+ }
301
+ else {
302
+ target = styleOrId;
303
+ }
304
+ if (target === this) {
305
+ throw new DocxError('styles/circular-based-on', "Style \"" + this.styleIdValue + "\" cannot be based on itself");
306
+ }
307
+ if (!target.isAttached || target.owner !== this.ownerValue) {
308
+ throw new DocxError('argument/invalid', 'Base style must belong to the same document styles collection');
309
+ }
310
+ if (this.typeValue !== undefined && target.type !== undefined && target.type !== this.typeValue) {
311
+ throw new DocxError('styles/invalid-based-on', "Style \"" + this.styleIdValue + "\" basedOn \"" + target.styleId + "\" is a " + String(target.type) + " style; expected " + this.typeValue);
312
+ }
313
+ // Indirect cycle: walk target's chain.
314
+ var cursor = target;
315
+ var seen = new Set();
316
+ seen.add(this.styleIdValue);
317
+ while (cursor !== undefined) {
318
+ if (seen.has(cursor.styleId)) {
319
+ throw new DocxError('styles/circular-based-on', "Circular basedOn relationship on style \"" + this.styleIdValue + "\"");
320
+ }
321
+ seen.add(cursor.styleId);
322
+ var nextId = cursor.basedOnId;
323
+ if (nextId === undefined || this.ownerValue === undefined) {
324
+ break;
325
+ }
326
+ cursor = this.ownerValue.lookupStyle(nextId);
327
+ }
328
+ this.basedOnIdValue = target.styleId;
329
+ this.markDirty();
330
+ };
331
+ Object.defineProperty(Style.prototype, "nextStyleId", {
332
+ // ---- Other metadata (public where useful) ----
333
+ /** `w:next/@w:val`. @public */
334
+ get: function () {
335
+ return this.nextIdValue;
336
+ },
337
+ set: function (value) {
338
+ this.ensureAttached();
339
+ this.nextIdValue = value;
340
+ this.markDirty();
341
+ },
342
+ enumerable: true,
343
+ configurable: true
344
+ });
345
+ Object.defineProperty(Style.prototype, "linkStyleId", {
346
+ /** `w:link/@w:val`. @public */
347
+ get: function () {
348
+ return this.linkIdValue;
349
+ },
350
+ set: function (value) {
351
+ this.ensureAttached();
352
+ this.linkIdValue = value;
353
+ this.markDirty();
354
+ },
355
+ enumerable: true,
356
+ configurable: true
357
+ });
358
+ Object.defineProperty(Style.prototype, "uiPriority", {
359
+ /** `w:uiPriority/@w:val`. @public */
360
+ get: function () {
361
+ return this.uiPriorityValue;
362
+ },
363
+ set: function (value) {
364
+ this.ensureAttached();
365
+ this.uiPriorityValue = value;
366
+ this.markDirty();
367
+ },
368
+ enumerable: true,
369
+ configurable: true
370
+ });
371
+ Object.defineProperty(Style.prototype, "isQuickStyle", {
372
+ /** `w:qFormat`. @public */
373
+ get: function () {
374
+ return this.qFormatValue;
375
+ },
376
+ set: function (value) {
377
+ this.ensureAttached();
378
+ this.qFormatValue = value;
379
+ this.markDirty();
380
+ },
381
+ enumerable: true,
382
+ configurable: true
383
+ });
384
+ Object.defineProperty(Style.prototype, "isSemiHidden", {
385
+ /** `w:semiHidden`. @public */
386
+ get: function () {
387
+ return this.semiHiddenValue;
388
+ },
389
+ set: function (value) {
390
+ this.ensureAttached();
391
+ this.semiHiddenValue = value;
392
+ this.markDirty();
393
+ },
394
+ enumerable: true,
395
+ configurable: true
396
+ });
397
+ // ---- Host ----
398
+ /**
399
+ * @private
400
+ */
401
+ Style.prototype.notifyCharacterFormatMutation = function () {
402
+ this.ensureAttached();
403
+ this.markDirty();
404
+ };
405
+ // ---- Lifecycle ----
406
+ /**
407
+ * Attach to a document styles owner. Idempotent when already attached to the same owner.
408
+ *
409
+ * @private
410
+ */
411
+ Style.prototype.attach = function (owner) {
412
+ if (this.attachedValue && this.ownerValue === owner) {
413
+ return;
414
+ }
415
+ if (this.attachedValue && this.ownerValue !== undefined && this.ownerValue !== owner) {
416
+ throw new DocxError('argument/invalid', "Style \"" + this.styleIdValue + "\" is already owned by another document");
417
+ }
418
+ this.ownerValue = owner;
419
+ this.attachedValue = true;
420
+ };
421
+ /**
422
+ * Detach from the owning collection. Further mutations throw {@link DetachedObjectError}.
423
+ *
424
+ * @private
425
+ */
426
+ Style.prototype.detach = function () {
427
+ this.attachedValue = false;
428
+ this.ownerValue = undefined;
429
+ };
430
+ /**
431
+ * Remove this style from the document styles collection: drop the `w:style`
432
+ * definition, detach this instance, and clear content/catalog references to
433
+ * its style id so save does not re-materialize a stub. After removal the
434
+ * instance is detached; a second call throws {@link DetachedObjectError}.
435
+ *
436
+ * @public
437
+ */
438
+ Style.prototype.remove = function () {
439
+ this.ensureAttached();
440
+ var owner = this.ownerValue;
441
+ if (owner === undefined) {
442
+ throw new DetachedObjectError("Style \"" + this.styleIdValue + "\" is detached from its document");
443
+ }
444
+ // StyleOwner is the lookup/dirty surface; collection owns private remove.
445
+ var collection = owner;
446
+ if (typeof collection.remove !== 'function') {
447
+ throw new InvalidArgumentError("Style \"" + this.styleIdValue + "\" owner does not support removal");
448
+ }
449
+ collection.remove(this);
450
+ };
451
+ /**
452
+ * Clear basedOn / next / link edges that point at `removedStyleId`.
453
+ * Used by StyleCollection.remove (no dirty — caller marks once).
454
+ *
455
+ * @private
456
+ */
457
+ Style.prototype.clearReferencesToStyleId = function (removedStyleId) {
458
+ if (this.basedOnIdValue === removedStyleId) {
459
+ this.basedOnIdValue = undefined;
460
+ }
461
+ if (this.nextIdValue === removedStyleId) {
462
+ this.nextIdValue = undefined;
463
+ }
464
+ if (this.linkIdValue === removedStyleId) {
465
+ this.linkIdValue = undefined;
466
+ }
467
+ };
468
+ /**
469
+ * Hydrate modeled fields and format facades from a parsed {@link DocxStyle}
470
+ * without marking dirty or running authoring exclusivity.
471
+ *
472
+ * @private
473
+ */
474
+ Style.prototype.hydrateFromDocxStyle = function (source) {
475
+ this.suppressDirty = true;
476
+ try {
477
+ var shell = source.serialize();
478
+ var children = elementChildren(shell);
479
+ this.nameValue = readStringVal(children, 'name');
480
+ this.aliasesValue = readStringVal(children, 'aliases');
481
+ this.basedOnIdValue = readStringVal(children, 'basedOn');
482
+ this.nextIdValue = readStringVal(children, 'next');
483
+ this.linkIdValue = readStringVal(children, 'link');
484
+ this.uiPriorityValue = parseDecimalChild(firstWmlChild(children, 'uiPriority'));
485
+ this.autoRedefineValue = readOnOffChild(children, 'autoRedefine');
486
+ this.hiddenValue = readOnOffChild(children, 'hidden');
487
+ this.semiHiddenValue = readOnOffChild(children, 'semiHidden');
488
+ this.unhideWhenUsedValue = readOnOffChild(children, 'unhideWhenUsed');
489
+ this.qFormatValue = readOnOffChild(children, 'qFormat');
490
+ this.lockedValue = readOnOffChild(children, 'locked');
491
+ this.customStyleValue = source.customStyle;
492
+ var rPr = firstWmlChild(children, 'rPr');
493
+ this.characterFormatValue.hydrate(characterSnapshotFromRPr(rPr));
494
+ var pPr = firstWmlChild(children, 'pPr');
495
+ this.hydrateParagraphFormat(paragraphSnapshotFromPPr(pPr));
496
+ var opaque = [];
497
+ for (var i = 0; i < children.length; i += 1) {
498
+ var child = children[i];
499
+ if (child === undefined) {
500
+ continue;
501
+ }
502
+ if (isWml(child, child.localName)) {
503
+ if (MODELED_META_NAMES.has(child.localName)) {
504
+ continue;
505
+ }
506
+ if (child.localName === 'pPr' || child.localName === 'rPr') {
507
+ continue;
508
+ }
509
+ }
510
+ opaque.push(child);
511
+ }
512
+ this.opaqueChildrenValue = opaque;
513
+ // Extra attributes from the style element (unknown attrs).
514
+ var knownAttr_1 = new Set(['styleId', 'type', 'default', 'customStyle']);
515
+ this.extraAttributesValue = shell.attributes.filter(function (a) {
516
+ return !(knownAttr_1.has(a.localName) && (a.namespaceUri === WML || a.namespaceUri === ''));
517
+ });
518
+ }
519
+ finally {
520
+ this.suppressDirty = false;
521
+ }
522
+ };
523
+ /**
524
+ * Subclasses with paragraph format hydrate here; default no-op.
525
+ *
526
+ * @private
527
+ */
528
+ Style.prototype.hydrateParagraphFormat = function (_snapshot) {
529
+ // CharacterStyle / OpaqueStyle without PF: ignore pPr snapshot (Opaque may override).
530
+ };
531
+ /**
532
+ * Subclasses contribute `w:pPr` during serialize.
533
+ *
534
+ * @private
535
+ */
536
+ Style.prototype.serializeParagraphProperties = function (_out) {
537
+ // default none
538
+ };
539
+ /**
540
+ * Serialize this live style to a `w:style` element.
541
+ *
542
+ * @private
543
+ */
544
+ Style.prototype.serialize = function () {
545
+ var attributes = [];
546
+ if (this.typeValue !== undefined) {
547
+ attributes.push(wmlAttr('type', this.typeValue));
548
+ }
549
+ attributes.push(wmlAttr('styleId', this.styleIdValue));
550
+ if (this.defaultValue !== undefined) {
551
+ attributes.push(wmlAttr('default', this.defaultValue ? '1' : '0'));
552
+ }
553
+ if (this.customStyleValue !== undefined) {
554
+ attributes.push(wmlAttr('customStyle', this.customStyleValue ? '1' : '0'));
555
+ }
556
+ for (var i = 0; i < this.extraAttributesValue.length; i += 1) {
557
+ attributes.push(this.extraAttributesValue[i]);
558
+ }
559
+ var out = [];
560
+ var nameVal = this.nameValue != null ? this.nameValue : this.styleIdValue;
561
+ out.push(wmlElement('name', { attributes: [wmlAttr('val', nameVal)] }));
562
+ if (this.aliasesValue !== undefined) {
563
+ out.push(wmlElement('aliases', { attributes: [wmlAttr('val', this.aliasesValue)] }));
564
+ }
565
+ if (this.basedOnIdValue !== undefined) {
566
+ out.push(wmlElement('basedOn', { attributes: [wmlAttr('val', this.basedOnIdValue)] }));
567
+ }
568
+ if (this.nextIdValue !== undefined) {
569
+ out.push(wmlElement('next', { attributes: [wmlAttr('val', this.nextIdValue)] }));
570
+ }
571
+ if (this.linkIdValue !== undefined) {
572
+ out.push(wmlElement('link', { attributes: [wmlAttr('val', this.linkIdValue)] }));
573
+ }
574
+ pushOnOff(out, 'autoRedefine', this.autoRedefineValue);
575
+ pushOnOff(out, 'hidden', this.hiddenValue);
576
+ if (this.uiPriorityValue !== undefined) {
577
+ out.push(wmlElement('uiPriority', { attributes: [wmlAttr('val', String(this.uiPriorityValue))] }));
578
+ }
579
+ pushOnOff(out, 'semiHidden', this.semiHiddenValue);
580
+ pushOnOff(out, 'unhideWhenUsed', this.unhideWhenUsedValue);
581
+ pushOnOff(out, 'qFormat', this.qFormatValue);
582
+ pushOnOff(out, 'locked', this.lockedValue);
583
+ // Opaque children (tblPr, tblStylePr, personal*, rsid, …) before pPr/rPr
584
+ // keeps table style structure intact; modeled pPr/rPr append after.
585
+ for (var i = 0; i < this.opaqueChildrenValue.length; i += 1) {
586
+ out.push(this.opaqueChildrenValue[i]);
587
+ }
588
+ this.serializeParagraphProperties(out);
589
+ var rPrChildren = this.characterFormatValue.buildRPrChildren();
590
+ // Style-level rPr must not emit nested rStyle (styleIdValue on CF).
591
+ var filteredRPr = [];
592
+ for (var i = 0; i < rPrChildren.length; i += 1) {
593
+ var child = rPrChildren[i];
594
+ if (isWml(child, 'rStyle')) {
595
+ continue;
596
+ }
597
+ filteredRPr.push(child);
598
+ }
599
+ if (filteredRPr.length > 0) {
600
+ out.push(wmlElement('rPr', { children: filteredRPr }));
601
+ }
602
+ return wmlElement('style', { attributes: attributes, children: out });
603
+ };
604
+ /**
605
+ * Character-format snapshot for the effective-format resolver.
606
+ *
607
+ * @private
608
+ */
609
+ Style.prototype.characterFormatSnapshot = function () {
610
+ return this.characterFormatValue.snapshot();
611
+ };
612
+ /**
613
+ * Project this live style to a temporary DocxStyle shell (resolver / TableStyle).
614
+ *
615
+ * @private
616
+ */
617
+ Style.prototype.toDocxStyle = function () {
618
+ var parsed = parseDocxStyle(this.serialize());
619
+ if (parsed !== undefined) {
620
+ return parsed;
621
+ }
622
+ return new DocxStyle(this.styleIdValue, this.typeValue, this.defaultValue, this.customStyleValue, elementChildren(this.serialize()).slice());
623
+ };
624
+ /**
625
+ * Replace live fields from a DocxStyle shell (TableStyle mutation path).
626
+ * Does not require attach; used while the style remains document-owned.
627
+ *
628
+ * @private
629
+ */
630
+ Style.prototype.replaceShell = function (shell) {
631
+ if (shell.styleId !== this.styleIdValue) {
632
+ throw new DocxError('argument/invalid', "Cannot replace style shell: styleId \"" + shell.styleId + "\" does not match \"" + this.styleIdValue + "\"");
633
+ }
634
+ this.hydrateFromDocxStyle(shell);
635
+ this.markDirty();
636
+ };
637
+ /**
638
+ * Normalized display name for catalog lookup.
639
+ *
640
+ * @private
641
+ */
642
+ Style.prototype.normalizedName = function () {
643
+ var n = this.nameValue;
644
+ if (n !== undefined && n.length > 0) {
645
+ return normalizeStyleName(n);
646
+ }
647
+ return normalizeStyleName(this.styleIdValue);
648
+ };
649
+ /**
650
+ * Opaque children retained for package fidelity (table props, conditionals, …).
651
+ *
652
+ * @private
653
+ */
654
+ Style.prototype.getOpaqueChildren = function () {
655
+ return this.opaqueChildrenValue;
656
+ };
657
+ /**
658
+ * Replace opaque children (TableStyle base props / tblStylePr).
659
+ *
660
+ * @private
661
+ */
662
+ Style.prototype.setOpaqueChildren = function (children) {
663
+ this.opaqueChildrenValue = children.slice();
664
+ this.markDirty();
665
+ };
666
+ /**
667
+ * @private
668
+ */
669
+ Style.prototype.ensureAttached = function () {
670
+ if (!this.attachedValue || this.ownerValue === undefined) {
671
+ throw new DetachedObjectError("Style \"" + this.styleIdValue + "\" is detached from its document");
672
+ }
673
+ };
674
+ /**
675
+ * @private
676
+ */
677
+ Style.prototype.markDirty = function () {
678
+ if (this.suppressDirty) {
679
+ return;
680
+ }
681
+ if (this.ownerValue !== undefined) {
682
+ this.ownerValue.markStylesDirty();
683
+ }
684
+ };
685
+ /**
686
+ * Set metadata used when creating a minimal / seed style (no dirty).
687
+ *
688
+ * @private
689
+ */
690
+ Style.prototype.seedIdentity = function (name, basedOnId) {
691
+ this.suppressDirty = true;
692
+ try {
693
+ this.nameValue = name;
694
+ this.basedOnIdValue = basedOnId;
695
+ }
696
+ finally {
697
+ this.suppressDirty = false;
698
+ }
699
+ };
700
+ /**
701
+ * Hydrate CF from snapshot without dirty (catalog / seed).
702
+ *
703
+ * @private
704
+ */
705
+ Style.prototype.hydrateCharacterSnapshot = function (snapshot) {
706
+ this.suppressDirty = true;
707
+ try {
708
+ this.characterFormatValue.hydrate(snapshot);
709
+ }
710
+ finally {
711
+ this.suppressDirty = false;
712
+ }
713
+ };
714
+ /**
715
+ * Internal write of basedOn id during hydrate/seed (no dirty, no attach check).
716
+ *
717
+ * @private
718
+ */
719
+ Style.prototype.setBasedOnIdInternal = function (value) {
720
+ this.basedOnIdValue = value;
721
+ };
722
+ /**
723
+ * Internal next/link/ui flags during hydrate/seed.
724
+ *
725
+ * @private
726
+ */
727
+ Style.prototype.setMetaInternal = function (meta) {
728
+ if (meta.nextId !== undefined) {
729
+ this.nextIdValue = meta.nextId;
730
+ }
731
+ if (meta.linkId !== undefined) {
732
+ this.linkIdValue = meta.linkId;
733
+ }
734
+ if (meta.uiPriority !== undefined) {
735
+ this.uiPriorityValue = meta.uiPriority;
736
+ }
737
+ if (meta.semiHidden !== undefined) {
738
+ this.semiHiddenValue = meta.semiHidden;
739
+ }
740
+ if (meta.unhideWhenUsed !== undefined) {
741
+ this.unhideWhenUsedValue = meta.unhideWhenUsed;
742
+ }
743
+ if (meta.qFormat !== undefined) {
744
+ this.qFormatValue = meta.qFormat;
745
+ }
746
+ if (meta.aliases !== undefined) {
747
+ this.aliasesValue = meta.aliases;
748
+ }
749
+ if (meta.autoRedefine !== undefined) {
750
+ this.autoRedefineValue = meta.autoRedefine;
751
+ }
752
+ if (meta.hidden !== undefined) {
753
+ this.hiddenValue = meta.hidden;
754
+ }
755
+ if (meta.locked !== undefined) {
756
+ this.lockedValue = meta.locked;
757
+ }
758
+ };
759
+ Object.defineProperty(Style.prototype, "nextIdInternal", {
760
+ /** @private */
761
+ get: function () {
762
+ return this.nextIdValue;
763
+ },
764
+ enumerable: true,
765
+ configurable: true
766
+ });
767
+ Object.defineProperty(Style.prototype, "linkIdInternal", {
768
+ /** @private */
769
+ get: function () {
770
+ return this.linkIdValue;
771
+ },
772
+ enumerable: true,
773
+ configurable: true
774
+ });
775
+ return Style;
776
+ }());
777
+ export { Style };
778
+ // ---------------------------------------------------------------------------
779
+ // ParagraphStyle
780
+ // ---------------------------------------------------------------------------
781
+ /**
782
+ * Paragraph style (`w:type="paragraph"`) with paragraph and character format facades.
783
+ *
784
+ * @public
785
+ */
786
+ var ParagraphStyle = /** @class */ (function (_super) {
787
+ __extends(ParagraphStyle, _super);
788
+ /**
789
+ * @private
790
+ */
791
+ function ParagraphStyle(styleId, defaultFlag, customStyle) {
792
+ var _this = _super.call(this, styleId, 'paragraph', defaultFlag, customStyle) || this;
793
+ _this.paragraphFormatValue = new ParagraphFormat(_this);
794
+ return _this;
795
+ }
796
+ Object.defineProperty(ParagraphStyle.prototype, "paragraphFormat", {
797
+ /**
798
+ * Style-level paragraph formatting (`w:pPr`). Stable facade identity.
799
+ *
800
+ * @public
801
+ */
802
+ get: function () {
803
+ return this.paragraphFormatValue;
804
+ },
805
+ enumerable: true,
806
+ configurable: true
807
+ });
808
+ Object.defineProperty(ParagraphStyle.prototype, "baseParagraphStyle", {
809
+ /**
810
+ * Resolved paragraph base style, when present.
811
+ *
812
+ * @public
813
+ */
814
+ get: function () {
815
+ var base = this.baseStyle;
816
+ if (base instanceof ParagraphStyle) {
817
+ return base;
818
+ }
819
+ return undefined;
820
+ },
821
+ enumerable: true,
822
+ configurable: true
823
+ });
824
+ /**
825
+ * @private
826
+ */
827
+ ParagraphStyle.prototype.notifyParagraphFormatMutation = function () {
828
+ this.ensureAttached();
829
+ this.markDirty();
830
+ };
831
+ /**
832
+ * @private
833
+ */
834
+ ParagraphStyle.prototype.hydrateParagraphFormat = function (snapshot) {
835
+ // Called only from Style.hydrateFromDocxStyle (suppressDirty already true).
836
+ // hydrate() does not notify the host.
837
+ this.paragraphFormatValue.hydrate(snapshot);
838
+ };
839
+ /**
840
+ * @private
841
+ */
842
+ ParagraphStyle.prototype.serializeParagraphProperties = function (out) {
843
+ var children = this.paragraphFormatValue.buildPPrChildren();
844
+ if (children.length > 0) {
845
+ out.push(wmlElement('pPr', { children: children }));
846
+ }
847
+ };
848
+ /**
849
+ * @private
850
+ */
851
+ ParagraphStyle.prototype.paragraphFormatSnapshot = function () {
852
+ return this.paragraphFormatValue.snapshot();
853
+ };
854
+ /**
855
+ * Create a minimal paragraph style (ensure / authoring).
856
+ *
857
+ * @private
858
+ */
859
+ ParagraphStyle.createMinimal = function (styleId) {
860
+ var style = new ParagraphStyle(styleId, undefined, true);
861
+ style.seedIdentity(styleId, undefined);
862
+ return style;
863
+ };
864
+ /**
865
+ * Hydrate a paragraph style from a parsed DocxStyle shell.
866
+ *
867
+ * @private
868
+ */
869
+ ParagraphStyle.fromDocxStyle = function (source) {
870
+ var style = new ParagraphStyle(source.styleId, source.default, source.customStyle);
871
+ style.hydrateFromDocxStyle(source);
872
+ return style;
873
+ };
874
+ return ParagraphStyle;
875
+ }(Style));
876
+ export { ParagraphStyle };
877
+ // ---------------------------------------------------------------------------
878
+ // CharacterStyle
879
+ // ---------------------------------------------------------------------------
880
+ /**
881
+ * Character style (`w:type="character"`) with a character format facade only.
882
+ *
883
+ * @public
884
+ */
885
+ var CharacterStyle = /** @class */ (function (_super) {
886
+ __extends(CharacterStyle, _super);
887
+ /**
888
+ * @private
889
+ */
890
+ function CharacterStyle(styleId, defaultFlag, customStyle) {
891
+ return _super.call(this, styleId, 'character', defaultFlag, customStyle) || this;
892
+ }
893
+ Object.defineProperty(CharacterStyle.prototype, "baseCharacterStyle", {
894
+ /**
895
+ * Resolved character base style, when present.
896
+ *
897
+ * @public
898
+ */
899
+ get: function () {
900
+ var base = this.baseStyle;
901
+ if (base instanceof CharacterStyle) {
902
+ return base;
903
+ }
904
+ return undefined;
905
+ },
906
+ enumerable: true,
907
+ configurable: true
908
+ });
909
+ /**
910
+ * Create a minimal character style (ensure / authoring).
911
+ *
912
+ * @private
913
+ */
914
+ CharacterStyle.createMinimal = function (styleId) {
915
+ var style = new CharacterStyle(styleId, undefined, true);
916
+ style.seedIdentity(styleId, undefined);
917
+ return style;
918
+ };
919
+ /**
920
+ * Hydrate a character style from a parsed DocxStyle shell.
921
+ *
922
+ * @private
923
+ */
924
+ CharacterStyle.fromDocxStyle = function (source) {
925
+ var style = new CharacterStyle(source.styleId, source.default, source.customStyle);
926
+ style.hydrateFromDocxStyle(source);
927
+ return style;
928
+ };
929
+ return CharacterStyle;
930
+ }(Style));
931
+ export { CharacterStyle };
932
+ // ---------------------------------------------------------------------------
933
+ // OpaqueStyle (table / numbering / unknown) — not a public API type
934
+ // ---------------------------------------------------------------------------
935
+ /**
936
+ * Non-paragraph, non-character style retained for package fidelity.
937
+ * Not part of the public Styles DOM surface.
938
+ *
939
+ * @private
940
+ */
941
+ var OpaqueStyle = /** @class */ (function (_super) {
942
+ __extends(OpaqueStyle, _super);
943
+ /**
944
+ * @private
945
+ */
946
+ function OpaqueStyle(styleId, type, defaultFlag, customStyle) {
947
+ return _super.call(this, styleId, type, defaultFlag, customStyle) || this;
948
+ }
949
+ /**
950
+ * @private
951
+ */
952
+ OpaqueStyle.prototype.hydrateParagraphFormat = function (snapshot) {
953
+ if (this.paragraphFormatValue === undefined) {
954
+ // Lazy PF only when pPr present — OpaqueStyle implements host inline.
955
+ var self_1 = this;
956
+ this.paragraphFormatValue = new ParagraphFormat({
957
+ notifyParagraphFormatMutation: function () {
958
+ self_1.ensureAttached();
959
+ self_1.markDirty();
960
+ },
961
+ });
962
+ }
963
+ this.paragraphFormatValue.hydrate(snapshot);
964
+ };
965
+ /**
966
+ * @private
967
+ */
968
+ OpaqueStyle.prototype.serializeParagraphProperties = function (out) {
969
+ if (this.paragraphFormatValue === undefined) {
970
+ return;
971
+ }
972
+ var children = this.paragraphFormatValue.buildPPrChildren();
973
+ if (children.length > 0) {
974
+ out.push(wmlElement('pPr', { children: children }));
975
+ }
976
+ };
977
+ /**
978
+ * @private
979
+ */
980
+ OpaqueStyle.fromDocxStyle = function (source) {
981
+ var style = new OpaqueStyle(source.styleId, source.type, source.default, source.customStyle);
982
+ style.hydrateFromDocxStyle(source);
983
+ return style;
984
+ };
985
+ return OpaqueStyle;
986
+ }(Style));
987
+ export { OpaqueStyle };
988
+ // ---------------------------------------------------------------------------
989
+ // Factories
990
+ // ---------------------------------------------------------------------------
991
+ /**
992
+ * Build a live Style from a temporary {@link DocxStyle} parse/catalog shell.
993
+ * Does not attach; caller attaches via the collection.
994
+ * Table styles are created as {@link OpaqueStyle} here — the collection upgrades
995
+ * `type === 'table'` shells to {@link TableStyle}.
996
+ *
997
+ * @private
998
+ */
999
+ export function createStyleFromDocxStyle(source) {
1000
+ if (source.type === 'paragraph') {
1001
+ return ParagraphStyle.fromDocxStyle(source);
1002
+ }
1003
+ if (source.type === 'character') {
1004
+ return CharacterStyle.fromDocxStyle(source);
1005
+ }
1006
+ return OpaqueStyle.fromDocxStyle(source);
1007
+ }
1008
+ /**
1009
+ * Alias for {@link createStyleFromDocxStyle} (legacy shell projection name).
1010
+ *
1011
+ * @private
1012
+ */
1013
+ export function styleFromDocxShell(shell) {
1014
+ return createStyleFromDocxStyle(shell);
1015
+ }
1016
+ /**
1017
+ * Minimal paragraph or character style for ensure / pending materialize.
1018
+ *
1019
+ * @private
1020
+ */
1021
+ export function createMinimalStyle(styleId, type) {
1022
+ if (type === 'paragraph') {
1023
+ return ParagraphStyle.createMinimal(styleId);
1024
+ }
1025
+ return CharacterStyle.createMinimal(styleId);
1026
+ }