@syncfusion/ej2-docx 0.0.0-stage → 35.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/.gitleaksignore +35 -0
  2. package/README.md +68 -2
  3. package/core.js +4 -0
  4. package/dist/ej2-docx.umd.min.js +11 -0
  5. package/dist/ej2-docx.umd.min.js.map +1 -0
  6. package/dist/es6/ej2-docx.es2015.js +66697 -0
  7. package/dist/es6/ej2-docx.es2015.js.map +1 -0
  8. package/dist/es6/ej2-docx.es5.js +77568 -0
  9. package/dist/es6/ej2-docx.es5.js.map +1 -0
  10. package/dist/global/ej2-docx.min.js +11 -0
  11. package/dist/global/ej2-docx.min.js.map +1 -0
  12. package/dist/global/index.d.ts +14 -0
  13. package/features.js +4 -0
  14. package/index.js +4 -0
  15. package/license +10 -0
  16. package/package.json +30 -3
  17. package/src/all.d.ts +50 -0
  18. package/src/all.js +147 -0
  19. package/src/core/compat/base64.d.ts +13 -0
  20. package/src/core/compat/base64.js +90 -0
  21. package/src/core/compat/object-compat.d.ts +30 -0
  22. package/src/core/compat/object-compat.js +40 -0
  23. package/src/core/compat/sha256.d.ts +9 -0
  24. package/src/core/compat/sha256.js +98 -0
  25. package/src/core/errors/docx-error.d.ts +89 -0
  26. package/src/core/errors/docx-error.js +138 -0
  27. package/src/core/errors/error-codes.d.ts +8 -0
  28. package/src/core/errors/error-codes.js +0 -0
  29. package/src/core/errors/index.d.ts +10 -0
  30. package/src/core/errors/index.js +9 -0
  31. package/src/core/index.d.ts +12 -0
  32. package/src/core/index.js +12 -0
  33. package/src/core/mc/alternate-content.d.ts +7 -0
  34. package/src/core/mc/alternate-content.js +67 -0
  35. package/src/core/mc/attributes.d.ts +24 -0
  36. package/src/core/mc/attributes.js +82 -0
  37. package/src/core/mc/index.d.ts +7 -0
  38. package/src/core/mc/index.js +5 -0
  39. package/src/core/mc/inspect.d.ts +16 -0
  40. package/src/core/mc/inspect.js +148 -0
  41. package/src/core/mc/namespaces.d.ts +4 -0
  42. package/src/core/mc/namespaces.js +4 -0
  43. package/src/core/mc/scope.d.ts +6 -0
  44. package/src/core/mc/scope.js +47 -0
  45. package/src/core/opc/content-types.d.ts +34 -0
  46. package/src/core/opc/content-types.js +162 -0
  47. package/src/core/opc/index.d.ts +8 -0
  48. package/src/core/opc/index.js +4 -0
  49. package/src/core/opc/package.d.ts +49 -0
  50. package/src/core/opc/package.js +324 -0
  51. package/src/core/opc/part-name.d.ts +47 -0
  52. package/src/core/opc/part-name.js +205 -0
  53. package/src/core/opc/relationships.d.ts +46 -0
  54. package/src/core/opc/relationships.js +212 -0
  55. package/src/core/preservation/index.d.ts +2 -0
  56. package/src/core/preservation/index.js +1 -0
  57. package/src/core/preservation/opaque-body.d.ts +16 -0
  58. package/src/core/preservation/opaque-body.js +69 -0
  59. package/src/core/registry/block-handlers.d.ts +30 -0
  60. package/src/core/registry/block-handlers.js +36 -0
  61. package/src/core/registry/create-defaults.d.ts +39 -0
  62. package/src/core/registry/create-defaults.js +42 -0
  63. package/src/core/registry/feature-registry.d.ts +20 -0
  64. package/src/core/registry/feature-registry.js +29 -0
  65. package/src/core/registry/index.d.ts +9 -0
  66. package/src/core/registry/index.js +8 -0
  67. package/src/core/registry/inline-handlers.d.ts +20 -0
  68. package/src/core/registry/inline-handlers.js +30 -0
  69. package/src/core/registry/materialize-handlers.d.ts +35 -0
  70. package/src/core/registry/materialize-handlers.js +75 -0
  71. package/src/core/registry/multi-part-handlers.d.ts +37 -0
  72. package/src/core/registry/multi-part-handlers.js +206 -0
  73. package/src/core/registry/package-part-handlers.d.ts +28 -0
  74. package/src/core/registry/package-part-handlers.js +190 -0
  75. package/src/core/registry/part-handlers.d.ts +24 -0
  76. package/src/core/registry/part-handlers.js +172 -0
  77. package/src/core/registry/run-leaf-handlers.d.ts +26 -0
  78. package/src/core/registry/run-leaf-handlers.js +72 -0
  79. package/src/core/security/limits.d.ts +40 -0
  80. package/src/core/security/limits.js +26 -0
  81. package/src/core/xml/index.d.ts +7 -0
  82. package/src/core/xml/index.js +3 -0
  83. package/src/core/xml/model.d.ts +66 -0
  84. package/src/core/xml/model.js +17 -0
  85. package/src/core/xml/parse.d.ts +12 -0
  86. package/src/core/xml/parse.js +382 -0
  87. package/src/core/xml/serialize.d.ts +6 -0
  88. package/src/core/xml/serialize.js +93 -0
  89. package/src/core/zip/crc32.d.ts +2 -0
  90. package/src/core/zip/crc32.js +25 -0
  91. package/src/core/zip/deflate.d.ts +6 -0
  92. package/src/core/zip/deflate.js +6 -0
  93. package/src/core/zip/index.d.ts +10 -0
  94. package/src/core/zip/index.js +4 -0
  95. package/src/core/zip/inflate-raw.d.ts +17 -0
  96. package/src/core/zip/inflate-raw.js +450 -0
  97. package/src/core/zip/names.d.ts +6 -0
  98. package/src/core/zip/names.js +52 -0
  99. package/src/core/zip/read.d.ts +8 -0
  100. package/src/core/zip/read.js +262 -0
  101. package/src/core/zip/write.d.ts +7 -0
  102. package/src/core/zip/write.js +189 -0
  103. package/src/core/zip/zip-entry.d.ts +4 -0
  104. package/src/core/zip/zip-entry.js +0 -0
  105. package/src/features/bibliography/index.d.ts +100 -0
  106. package/src/features/bibliography/index.js +290 -0
  107. package/src/features/bookmarks/index.d.ts +331 -0
  108. package/src/features/bookmarks/index.js +1009 -0
  109. package/src/features/comments/comment-extensions.d.ts +157 -0
  110. package/src/features/comments/comment-extensions.js +356 -0
  111. package/src/features/comments/index.d.ts +579 -0
  112. package/src/features/comments/index.js +1727 -0
  113. package/src/features/content-controls/index.d.ts +821 -0
  114. package/src/features/content-controls/index.js +2857 -0
  115. package/src/features/custom-xml/index.d.ts +236 -0
  116. package/src/features/custom-xml/index.js +661 -0
  117. package/src/features/document/alignment.d.ts +23 -0
  118. package/src/features/document/alignment.js +36 -0
  119. package/src/features/document/alt-chunk.d.ts +103 -0
  120. package/src/features/document/alt-chunk.js +221 -0
  121. package/src/features/document/assert-never.d.ts +1 -0
  122. package/src/features/document/assert-never.js +4 -0
  123. package/src/features/document/augmentations.d.ts +578 -0
  124. package/src/features/document/augmentations.js +0 -0
  125. package/src/features/document/body-always-on.d.ts +36 -0
  126. package/src/features/document/body-always-on.js +66 -0
  127. package/src/features/document/body-blocks.d.ts +7 -0
  128. package/src/features/document/body-blocks.js +78 -0
  129. package/src/features/document/body-item-adapters.d.ts +62 -0
  130. package/src/features/document/body-item-adapters.js +97 -0
  131. package/src/features/document/body-item-collection.d.ts +151 -0
  132. package/src/features/document/body-item-collection.js +440 -0
  133. package/src/features/document/body-item.d.ts +35 -0
  134. package/src/features/document/body-item.js +8 -0
  135. package/src/features/document/body.d.ts +150 -0
  136. package/src/features/document/body.js +263 -0
  137. package/src/features/document/character-format.d.ts +413 -0
  138. package/src/features/document/character-format.js +2054 -0
  139. package/src/features/document/color.d.ts +178 -0
  140. package/src/features/document/color.js +495 -0
  141. package/src/features/document/document.d.ts +410 -0
  142. package/src/features/document/document.js +1049 -0
  143. package/src/features/document/element-type.d.ts +68 -0
  144. package/src/features/document/element-type.js +133 -0
  145. package/src/features/document/entity-type.d.ts +92 -0
  146. package/src/features/document/entity-type.js +93 -0
  147. package/src/features/document/feature-block.d.ts +16 -0
  148. package/src/features/document/feature-block.js +0 -0
  149. package/src/features/document/feature-inline.d.ts +13 -0
  150. package/src/features/document/feature-inline.js +0 -0
  151. package/src/features/document/feature-multi-package-part.d.ts +19 -0
  152. package/src/features/document/feature-multi-package-part.js +8 -0
  153. package/src/features/document/feature-package-level-part.d.ts +18 -0
  154. package/src/features/document/feature-package-level-part.js +8 -0
  155. package/src/features/document/feature-package-part.d.ts +14 -0
  156. package/src/features/document/feature-package-part.js +0 -0
  157. package/src/features/document/feature-run-leaf.d.ts +9 -0
  158. package/src/features/document/feature-run-leaf.js +0 -0
  159. package/src/features/document/headers-footers.d.ts +206 -0
  160. package/src/features/document/headers-footers.js +384 -0
  161. package/src/features/document/index.d.ts +41 -0
  162. package/src/features/document/index.js +34 -0
  163. package/src/features/document/length.d.ts +152 -0
  164. package/src/features/document/length.js +245 -0
  165. package/src/features/document/load-options.d.ts +14 -0
  166. package/src/features/document/load-options.js +0 -0
  167. package/src/features/document/locale-ids.d.ts +227 -0
  168. package/src/features/document/locale-ids.js +485 -0
  169. package/src/features/document/on-off.d.ts +9 -0
  170. package/src/features/document/on-off.js +27 -0
  171. package/src/features/document/page-setup.d.ts +339 -0
  172. package/src/features/document/page-setup.js +244 -0
  173. package/src/features/document/paragraph-format.d.ts +880 -0
  174. package/src/features/document/paragraph-format.js +2807 -0
  175. package/src/features/document/paragraph-item-collection.d.ts +162 -0
  176. package/src/features/document/paragraph-item-collection.js +363 -0
  177. package/src/features/document/paragraph-item.d.ts +83 -0
  178. package/src/features/document/paragraph-item.js +103 -0
  179. package/src/features/document/paragraph.d.ts +435 -0
  180. package/src/features/document/paragraph.js +888 -0
  181. package/src/features/document/run.d.ts +1 -0
  182. package/src/features/document/run.js +768 -0
  183. package/src/features/document/section-partition-flatten.d.ts +124 -0
  184. package/src/features/document/section-partition-flatten.js +217 -0
  185. package/src/features/document/section-properties-model.d.ts +13 -0
  186. package/src/features/document/section-properties-model.js +0 -0
  187. package/src/features/document/section.d.ts +93 -0
  188. package/src/features/document/section.js +178 -0
  189. package/src/features/document/sections.d.ts +103 -0
  190. package/src/features/document/sections.js +217 -0
  191. package/src/features/document/sub-super-script.d.ts +23 -0
  192. package/src/features/document/sub-super-script.js +43 -0
  193. package/src/features/document/text-range.d.ts +445 -0
  194. package/src/features/document/text-range.js +1156 -0
  195. package/src/features/document/typed-body-collections.d.ts +162 -0
  196. package/src/features/document/typed-body-collections.js +371 -0
  197. package/src/features/document/underline-style.d.ts +38 -0
  198. package/src/features/document/underline-style.js +126 -0
  199. package/src/features/document/units.d.ts +8 -0
  200. package/src/features/document/units.js +7 -0
  201. package/src/features/document/wml.d.ts +16 -0
  202. package/src/features/document/wml.js +67 -0
  203. package/src/features/drawing/authoring.d.ts +27 -0
  204. package/src/features/drawing/authoring.js +271 -0
  205. package/src/features/drawing/body-pr.d.ts +271 -0
  206. package/src/features/drawing/body-pr.js +663 -0
  207. package/src/features/drawing/drawing-shape.d.ts +1192 -0
  208. package/src/features/drawing/drawing-shape.js +3239 -0
  209. package/src/features/drawing/encode-builders.d.ts +176 -0
  210. package/src/features/drawing/encode-builders.js +390 -0
  211. package/src/features/drawing/fill-format.d.ts +52 -0
  212. package/src/features/drawing/fill-format.js +124 -0
  213. package/src/features/drawing/host-codec.d.ts +632 -0
  214. package/src/features/drawing/host-codec.js +2595 -0
  215. package/src/features/drawing/index.d.ts +13 -0
  216. package/src/features/drawing/index.js +33 -0
  217. package/src/features/drawing/line-format.d.ts +76 -0
  218. package/src/features/drawing/line-format.js +343 -0
  219. package/src/features/drawing/parse-register.d.ts +50 -0
  220. package/src/features/drawing/parse-register.js +257 -0
  221. package/src/features/drawing/residual-utils.d.ts +47 -0
  222. package/src/features/drawing/residual-utils.js +290 -0
  223. package/src/features/drawing/shape-types.d.ts +433 -0
  224. package/src/features/drawing/shape-types.js +437 -0
  225. package/src/features/drawing/sp-pr.d.ts +396 -0
  226. package/src/features/drawing/sp-pr.js +610 -0
  227. package/src/features/drawing/text-frame.d.ts +90 -0
  228. package/src/features/drawing/text-frame.js +152 -0
  229. package/src/features/drawing/types.d.ts +352 -0
  230. package/src/features/drawing/types.js +60 -0
  231. package/src/features/drawing/wrap-format.d.ts +62 -0
  232. package/src/features/drawing/wrap-format.js +114 -0
  233. package/src/features/editable-ranges/index.d.ts +494 -0
  234. package/src/features/editable-ranges/index.js +1348 -0
  235. package/src/features/fields/index.d.ts +428 -0
  236. package/src/features/fields/index.js +2148 -0
  237. package/src/features/fields/paragraph-field.d.ts +187 -0
  238. package/src/features/fields/paragraph-field.js +692 -0
  239. package/src/features/font-table/font-substitution-table.d.ts +75 -0
  240. package/src/features/font-table/font-substitution-table.js +257 -0
  241. package/src/features/font-table/font-table-entry.d.ts +255 -0
  242. package/src/features/font-table/font-table-entry.js +823 -0
  243. package/src/features/font-table/font-table.d.ts +128 -0
  244. package/src/features/font-table/font-table.js +313 -0
  245. package/src/features/font-table/index.d.ts +27 -0
  246. package/src/features/font-table/index.js +48 -0
  247. package/src/features/glossary/index.d.ts +97 -0
  248. package/src/features/glossary/index.js +286 -0
  249. package/src/features/headers-footers/index.d.ts +506 -0
  250. package/src/features/headers-footers/index.js +1666 -0
  251. package/src/features/hyperlinks/index.d.ts +230 -0
  252. package/src/features/hyperlinks/index.js +685 -0
  253. package/src/features/images/caption-authoring-api.d.ts +33 -0
  254. package/src/features/images/caption-authoring-api.js +33 -0
  255. package/src/features/images/caption-enums.d.ts +52 -0
  256. package/src/features/images/caption-enums.js +141 -0
  257. package/src/features/images/caption-host.d.ts +10 -0
  258. package/src/features/images/caption-host.js +21 -0
  259. package/src/features/images/captions.d.ts +13 -0
  260. package/src/features/images/captions.js +142 -0
  261. package/src/features/images/host-codec.d.ts +103 -0
  262. package/src/features/images/host-codec.js +720 -0
  263. package/src/features/images/image-sniff.d.ts +21 -0
  264. package/src/features/images/image-sniff.js +71 -0
  265. package/src/features/images/index.d.ts +506 -0
  266. package/src/features/images/index.js +1429 -0
  267. package/src/features/images/layout-types.d.ts +232 -0
  268. package/src/features/images/layout-types.js +294 -0
  269. package/src/features/images/public-entry.d.ts +9 -0
  270. package/src/features/images/public-entry.js +9 -0
  271. package/src/features/index.d.ts +35 -0
  272. package/src/features/index.js +36 -0
  273. package/src/features/mail-merge/index.d.ts +113 -0
  274. package/src/features/mail-merge/index.js +315 -0
  275. package/src/features/notes/index.d.ts +573 -0
  276. package/src/features/notes/index.js +1725 -0
  277. package/src/features/numbering/abstract-numbering.d.ts +90 -0
  278. package/src/features/numbering/abstract-numbering.js +292 -0
  279. package/src/features/numbering/index.d.ts +182 -0
  280. package/src/features/numbering/index.js +668 -0
  281. package/src/features/numbering/list-format.d.ts +158 -0
  282. package/src/features/numbering/list-format.js +590 -0
  283. package/src/features/numbering/list-string.d.ts +7 -0
  284. package/src/features/numbering/list-string.js +423 -0
  285. package/src/features/numbering/list-style.d.ts +204 -0
  286. package/src/features/numbering/list-style.js +1084 -0
  287. package/src/features/numbering/numbering-instance.d.ts +101 -0
  288. package/src/features/numbering/numbering-instance.js +329 -0
  289. package/src/features/numbering/numbering-level.d.ts +118 -0
  290. package/src/features/numbering/numbering-level.js +501 -0
  291. package/src/features/numbering/picture-bullet.d.ts +34 -0
  292. package/src/features/numbering/picture-bullet.js +88 -0
  293. package/src/features/ole-object/catalog.d.ts +300 -0
  294. package/src/features/ole-object/catalog.js +908 -0
  295. package/src/features/ole-object/index.d.ts +526 -0
  296. package/src/features/ole-object/index.js +1421 -0
  297. package/src/features/ole-object/relationship.d.ts +27 -0
  298. package/src/features/ole-object/relationship.js +27 -0
  299. package/src/features/ole-object/typed-dom.d.ts +186 -0
  300. package/src/features/ole-object/typed-dom.js +595 -0
  301. package/src/features/properties/index.d.ts +205 -0
  302. package/src/features/properties/index.js +549 -0
  303. package/src/features/revisions/index.d.ts +204 -0
  304. package/src/features/revisions/index.js +695 -0
  305. package/src/features/sections/column-collection.d.ts +119 -0
  306. package/src/features/sections/column-collection.js +478 -0
  307. package/src/features/sections/column.d.ts +15 -0
  308. package/src/features/sections/column.js +37 -0
  309. package/src/features/sections/index.d.ts +91 -0
  310. package/src/features/sections/index.js +1096 -0
  311. package/src/features/sections/margins.d.ts +40 -0
  312. package/src/features/sections/margins.js +105 -0
  313. package/src/features/sections/page-number-style.d.ts +21 -0
  314. package/src/features/sections/page-number-style.js +62 -0
  315. package/src/features/sections/page-orientation.d.ts +10 -0
  316. package/src/features/sections/page-orientation.js +10 -0
  317. package/src/features/sections/page-setup.d.ts +435 -0
  318. package/src/features/sections/page-setup.js +1479 -0
  319. package/src/features/sections/page-size.d.ts +59 -0
  320. package/src/features/sections/page-size.js +68 -0
  321. package/src/features/sections/section-break-code.d.ts +27 -0
  322. package/src/features/sections/section-break-code.js +60 -0
  323. package/src/features/sections/section-document-association.d.ts +18 -0
  324. package/src/features/sections/section-document-association.js +31 -0
  325. package/src/features/sections/section-validation.d.ts +43 -0
  326. package/src/features/sections/section-validation.js +97 -0
  327. package/src/features/settings/attached-template.d.ts +35 -0
  328. package/src/features/settings/attached-template.js +98 -0
  329. package/src/features/settings/compat-settings.d.ts +216 -0
  330. package/src/features/settings/compat-settings.js +508 -0
  331. package/src/features/settings/document-background.d.ts +59 -0
  332. package/src/features/settings/document-background.js +131 -0
  333. package/src/features/settings/document-protection.d.ts +65 -0
  334. package/src/features/settings/document-protection.js +157 -0
  335. package/src/features/settings/document-settings-facades.d.ts +108 -0
  336. package/src/features/settings/document-settings-facades.js +312 -0
  337. package/src/features/settings/document-settings-values.d.ts +43 -0
  338. package/src/features/settings/document-settings-values.js +60 -0
  339. package/src/features/settings/footnote-properties.d.ts +211 -0
  340. package/src/features/settings/footnote-properties.js +591 -0
  341. package/src/features/settings/index.d.ts +356 -0
  342. package/src/features/settings/index.js +829 -0
  343. package/src/features/settings/settings-children.d.ts +151 -0
  344. package/src/features/settings/settings-children.js +505 -0
  345. package/src/features/settings/web-settings.d.ts +88 -0
  346. package/src/features/settings/web-settings.js +227 -0
  347. package/src/features/settings/zoom.d.ts +79 -0
  348. package/src/features/settings/zoom.js +147 -0
  349. package/src/features/styles/builtin-catalog.d.ts +159 -0
  350. package/src/features/styles/builtin-catalog.js +963 -0
  351. package/src/features/styles/builtin-resolver.d.ts +49 -0
  352. package/src/features/styles/builtin-resolver.js +165 -0
  353. package/src/features/styles/default-styles.d.ts +37 -0
  354. package/src/features/styles/default-styles.js +186 -0
  355. package/src/features/styles/default-theme.d.ts +13 -0
  356. package/src/features/styles/default-theme.js +13 -0
  357. package/src/features/styles/doc-defaults.d.ts +58 -0
  358. package/src/features/styles/doc-defaults.js +178 -0
  359. package/src/features/styles/formatting-resolver.d.ts +27 -0
  360. package/src/features/styles/formatting-resolver.js +72 -0
  361. package/src/features/styles/index.d.ts +256 -0
  362. package/src/features/styles/index.js +1325 -0
  363. package/src/features/styles/latent-styles.d.ts +68 -0
  364. package/src/features/styles/latent-styles.js +305 -0
  365. package/src/features/styles/paragraph-properties.d.ts +71 -0
  366. package/src/features/styles/paragraph-properties.js +237 -0
  367. package/src/features/styles/run-properties.d.ts +93 -0
  368. package/src/features/styles/run-properties.js +516 -0
  369. package/src/features/styles/style-base.d.ts +402 -0
  370. package/src/features/styles/style-base.js +1026 -0
  371. package/src/features/styles/style-collection.d.ts +264 -0
  372. package/src/features/styles/style-collection.js +714 -0
  373. package/src/features/styles/style-format-bridge.d.ts +64 -0
  374. package/src/features/styles/style-format-bridge.js +100 -0
  375. package/src/features/styles/style.d.ts +84 -0
  376. package/src/features/styles/style.js +375 -0
  377. package/src/features/styles/styles-with-effects.d.ts +71 -0
  378. package/src/features/styles/styles-with-effects.js +180 -0
  379. package/src/features/styles/table-style.d.ts +272 -0
  380. package/src/features/styles/table-style.js +1226 -0
  381. package/src/features/styles/theme.d.ts +126 -0
  382. package/src/features/styles/theme.js +377 -0
  383. package/src/features/tables/border-style-map.d.ts +24 -0
  384. package/src/features/tables/border-style-map.js +81 -0
  385. package/src/features/tables/borders.d.ts +126 -0
  386. package/src/features/tables/borders.js +527 -0
  387. package/src/features/tables/collections.d.ts +113 -0
  388. package/src/features/tables/collections.js +261 -0
  389. package/src/features/tables/format.d.ts +208 -0
  390. package/src/features/tables/format.js +716 -0
  391. package/src/features/tables/index.d.ts +597 -0
  392. package/src/features/tables/index.js +2386 -0
  393. package/src/features/tables/paddings.d.ts +41 -0
  394. package/src/features/tables/paddings.js +97 -0
  395. package/src/features/tables/tbl-pr-positioning.d.ts +27 -0
  396. package/src/features/tables/tbl-pr-positioning.js +178 -0
  397. package/src/features/tables/tbl-pr.d.ts +528 -0
  398. package/src/features/tables/tbl-pr.js +1208 -0
  399. package/src/features/tables/tc-pr.d.ts +168 -0
  400. package/src/features/tables/tc-pr.js +553 -0
  401. package/src/features/tables/tr-pr.d.ts +60 -0
  402. package/src/features/tables/tr-pr.js +215 -0
  403. package/src/features/watermark/detect.d.ts +76 -0
  404. package/src/features/watermark/detect.js +219 -0
  405. package/src/features/watermark/index.d.ts +28 -0
  406. package/src/features/watermark/index.js +91 -0
  407. package/src/features/watermark/logical-store.d.ts +29 -0
  408. package/src/features/watermark/logical-store.js +31 -0
  409. package/src/features/watermark/model.d.ts +285 -0
  410. package/src/features/watermark/model.js +597 -0
  411. package/src/features/watermark/parse.d.ts +84 -0
  412. package/src/features/watermark/parse.js +815 -0
  413. package/src/features/watermark/serialize.d.ts +98 -0
  414. package/src/features/watermark/serialize.js +1517 -0
  415. package/src/global.js +1 -0
  416. package/src/index.d.ts +2 -0
  417. package/src/index.js +2 -0
@@ -0,0 +1,162 @@
1
+ import { ParagraphItem, ParagraphItemOwner } from './paragraph-item';
2
+ import { ConcreteParagraphItem } from './text-range';
3
+ /**
4
+ * Host for {@link ParagraphItemCollection}: owns mutation gates and document link.
5
+ *
6
+ * @private
7
+ */
8
+ export interface ParagraphItemCollectionHost extends ParagraphItemOwner {
9
+ /** Gate paragraph-level authoring (detached paragraph throws). */
10
+ assertMutable(): void;
11
+ }
12
+ /**
13
+ * Stable mutable collection of {@link ParagraphItem} children on a paragraph.
14
+ *
15
+ * Single source of truth for order, ownership, insert/remove, hydrate, and the
16
+ * serialize snapshot. Indexers are own properties refreshed after each mutation
17
+ * (no `Proxy` — TypeScript 3.3 / ES5 target).
18
+ *
19
+ * Array-like surface mirrors {@link BodyItemCollection}: {@link count}/{@link length},
20
+ * numeric index, {@link add}/{@link insert}/{@link remove}/{@link removeAt}/{@link clear},
21
+ * {@link toArray}, iterators, and common query helpers.
22
+ *
23
+ * @public
24
+ */
25
+ export declare class ParagraphItemCollection implements Iterable<ConcreteParagraphItem> {
26
+ private readonly host;
27
+ private readonly items;
28
+ private cachedCount;
29
+ /**
30
+ * @private
31
+ */
32
+ constructor(host: ParagraphItemCollectionHost);
33
+ /**
34
+ * Number of paragraph items in document order.
35
+ * @public
36
+ */
37
+ readonly count: number;
38
+ /**
39
+ * Alias of {@link count} for array-like consumers (`items.length`).
40
+ * @public
41
+ */
42
+ readonly length: number;
43
+ /**
44
+ * Append `item` at the end. Transfers ownership to this paragraph.
45
+ *
46
+ * @throws DetachedObjectError if the paragraph is detached, or `item` is
47
+ * already attached elsewhere.
48
+ * @public
49
+ */
50
+ add(item: ConcreteParagraphItem): void;
51
+ /**
52
+ * Insert `item` at `index` (`0…count` inclusive).
53
+ *
54
+ * @throws RangeError if `index` is out of range.
55
+ * @throws DetachedObjectError if the paragraph is detached or `item` is owned.
56
+ * @public
57
+ */
58
+ insert(index: number, item: ConcreteParagraphItem): void;
59
+ /**
60
+ * Remove `item` by identity and detach it.
61
+ *
62
+ * @throws DetachedObjectError if `item` is not in this collection.
63
+ * @public
64
+ */
65
+ remove(item: ConcreteParagraphItem): void;
66
+ /**
67
+ * Remove the item at `index` (`0…count-1`) and detach it.
68
+ *
69
+ * @throws RangeError if `index` is out of range.
70
+ * @public
71
+ */
72
+ removeAt(index: number): void;
73
+ /**
74
+ * Remove and detach every item.
75
+ * @public
76
+ */
77
+ clear(): void;
78
+ /**
79
+ * @private Identity membership (reference equality).
80
+ */
81
+ containsIdentity(item: ParagraphItem): boolean;
82
+ /**
83
+ * Index of `item` by reference, or `-1`.
84
+ * @public
85
+ */
86
+ indexOf(item: ConcreteParagraphItem): number;
87
+ /**
88
+ * @private Index of `item` by reference, or `-1`.
89
+ */
90
+ indexOfIdentity(item: ParagraphItem): number;
91
+ /**
92
+ * Ordered public items (projects feature wrappers to leaf entities).
93
+ * @public
94
+ */
95
+ toArray(): ConcreteParagraphItem[];
96
+ /**
97
+ * @private Ordered storage snapshot for serialize (wrappers retained).
98
+ */
99
+ snapshot(): ConcreteParagraphItem[];
100
+ /**
101
+ * Invoke `fn` for each item in document order.
102
+ * @public
103
+ */
104
+ forEach(fn: (item: ConcreteParagraphItem, index: number) => void): void;
105
+ /**
106
+ * True when at least one item satisfies `predicate`.
107
+ * @public
108
+ */
109
+ some(predicate: (item: ConcreteParagraphItem, index: number) => boolean): boolean;
110
+ /**
111
+ * True when every item satisfies `predicate` (empty collection is true).
112
+ * @public
113
+ */
114
+ every(predicate: (item: ConcreteParagraphItem, index: number) => boolean): boolean;
115
+ /**
116
+ * Items that satisfy `predicate`.
117
+ * @public
118
+ */
119
+ filter(predicate: (item: ConcreteParagraphItem, index: number) => boolean): ConcreteParagraphItem[];
120
+ /**
121
+ * First item that satisfies `predicate`, or `undefined`.
122
+ * @public
123
+ */
124
+ find(predicate: (item: ConcreteParagraphItem, index: number) => boolean): ConcreteParagraphItem | undefined;
125
+ /**
126
+ * Index of the first item that satisfies `predicate`, or `-1`.
127
+ * @public
128
+ */
129
+ findIndex(predicate: (item: ConcreteParagraphItem, index: number) => boolean): number;
130
+ /**
131
+ * Map items with `fn`.
132
+ * @public
133
+ */
134
+ map<U>(fn: (item: ConcreteParagraphItem, index: number) => U): U[];
135
+ /**
136
+ * Iterate items in document order.
137
+ * @public
138
+ */
139
+ [Symbol.iterator](): Iterator<ConcreteParagraphItem>;
140
+ /**
141
+ * @private Replace contents during parse/hydrate without authoring mutate.
142
+ * Detaches prior items, attaches incoming items to this host.
143
+ */
144
+ hydrate(items: ReadonlyArray<ConcreteParagraphItem>): void;
145
+ /**
146
+ * @private Append during parse without assertMutable (owner may still be wiring).
147
+ */
148
+ addFromParse(item: ConcreteParagraphItem): void;
149
+ /**
150
+ * @private Detach every item without clearing the array (paragraph detach).
151
+ */
152
+ detachAll(): void;
153
+ /**
154
+ * @private Re-attach every item to this host (paragraph attach).
155
+ */
156
+ reattachAll(): void;
157
+ private assertNotOwned;
158
+ private rebuildIndexProperties;
159
+ }
160
+ export interface ParagraphItemCollection {
161
+ readonly [index: number]: ConcreteParagraphItem;
162
+ }
@@ -0,0 +1,363 @@
1
+ import { DetachedObjectError } from '../../core/errors/docx-error';
2
+ import { FeatureInlineParagraphItem, FeatureRunParagraphItem, } from './text-range';
3
+ /**
4
+ * Project internal feature wrappers to public leaf objects when the leaf
5
+ * exposes a numeric {@link EntityType} discriminant (e.g. Picture).
6
+ * Storage and serialize stay on the wrapper.
7
+ * @private
8
+ */
9
+ function projectPublicItem(item) {
10
+ if (item instanceof FeatureRunParagraphItem) {
11
+ var value = item.value;
12
+ if (value != null && (typeof value.type === 'number' || typeof value.entityType === 'number')) {
13
+ return value;
14
+ }
15
+ }
16
+ if (item instanceof FeatureInlineParagraphItem) {
17
+ var value = item.value;
18
+ if (value != null && (typeof value.type === 'number' || typeof value.entityType === 'number')) {
19
+ return value;
20
+ }
21
+ }
22
+ return item;
23
+ }
24
+ /**
25
+ * Resolve a public leaf back to the stored wrapper (identity if unprojected).
26
+ * @private
27
+ */
28
+ function resolveStoredItem(items, item) {
29
+ for (var i = 0; i < items.length; i += 1) {
30
+ var raw = items[i];
31
+ if (raw === item || projectPublicItem(raw) === item) {
32
+ return i;
33
+ }
34
+ }
35
+ return -1;
36
+ }
37
+ /**
38
+ * Stable mutable collection of {@link ParagraphItem} children on a paragraph.
39
+ *
40
+ * Single source of truth for order, ownership, insert/remove, hydrate, and the
41
+ * serialize snapshot. Indexers are own properties refreshed after each mutation
42
+ * (no `Proxy` — TypeScript 3.3 / ES5 target).
43
+ *
44
+ * Array-like surface mirrors {@link BodyItemCollection}: {@link count}/{@link length},
45
+ * numeric index, {@link add}/{@link insert}/{@link remove}/{@link removeAt}/{@link clear},
46
+ * {@link toArray}, iterators, and common query helpers.
47
+ *
48
+ * @public
49
+ */
50
+ var ParagraphItemCollection = /** @class */ (function () {
51
+ /**
52
+ * @private
53
+ */
54
+ function ParagraphItemCollection(host) {
55
+ this.host = host;
56
+ this.items = [];
57
+ this.cachedCount = 0;
58
+ this.rebuildIndexProperties();
59
+ }
60
+ Object.defineProperty(ParagraphItemCollection.prototype, "count", {
61
+ /**
62
+ * Number of paragraph items in document order.
63
+ * @public
64
+ */
65
+ get: function () {
66
+ return this.items.length;
67
+ },
68
+ enumerable: true,
69
+ configurable: true
70
+ });
71
+ Object.defineProperty(ParagraphItemCollection.prototype, "length", {
72
+ /**
73
+ * Alias of {@link count} for array-like consumers (`items.length`).
74
+ * @public
75
+ */
76
+ get: function () {
77
+ return this.count;
78
+ },
79
+ enumerable: true,
80
+ configurable: true
81
+ });
82
+ /**
83
+ * Append `item` at the end. Transfers ownership to this paragraph.
84
+ *
85
+ * @throws DetachedObjectError if the paragraph is detached, or `item` is
86
+ * already attached elsewhere.
87
+ * @public
88
+ */
89
+ ParagraphItemCollection.prototype.add = function (item) {
90
+ this.insert(this.items.length, item);
91
+ };
92
+ /**
93
+ * Insert `item` at `index` (`0…count` inclusive).
94
+ *
95
+ * @throws RangeError if `index` is out of range.
96
+ * @throws DetachedObjectError if the paragraph is detached or `item` is owned.
97
+ * @public
98
+ */
99
+ ParagraphItemCollection.prototype.insert = function (index, item) {
100
+ this.host.assertMutable();
101
+ if (index < 0 || index > this.items.length) {
102
+ throw new RangeError("Paragraph item index " + String(index) + " is out of range");
103
+ }
104
+ this.assertNotOwned(item);
105
+ this.items.splice(index, 0, item);
106
+ item.attach(this.host);
107
+ this.rebuildIndexProperties();
108
+ };
109
+ /**
110
+ * Remove `item` by identity and detach it.
111
+ *
112
+ * @throws DetachedObjectError if `item` is not in this collection.
113
+ * @public
114
+ */
115
+ ParagraphItemCollection.prototype.remove = function (item) {
116
+ this.host.assertMutable();
117
+ var at = resolveStoredItem(this.items, item);
118
+ if (at === -1) {
119
+ throw new DetachedObjectError('This paragraph item is no longer in its paragraph');
120
+ }
121
+ var raw = this.items[at];
122
+ this.items.splice(at, 1);
123
+ raw.detach();
124
+ this.rebuildIndexProperties();
125
+ };
126
+ /**
127
+ * Remove the item at `index` (`0…count-1`) and detach it.
128
+ *
129
+ * @throws RangeError if `index` is out of range.
130
+ * @public
131
+ */
132
+ ParagraphItemCollection.prototype.removeAt = function (index) {
133
+ this.host.assertMutable();
134
+ if (index < 0 || index >= this.items.length) {
135
+ throw new RangeError("Paragraph item index " + String(index) + " is out of range");
136
+ }
137
+ var item = this.items[index];
138
+ this.items.splice(index, 1);
139
+ item.detach();
140
+ this.rebuildIndexProperties();
141
+ };
142
+ /**
143
+ * Remove and detach every item.
144
+ * @public
145
+ */
146
+ ParagraphItemCollection.prototype.clear = function () {
147
+ this.host.assertMutable();
148
+ this.detachAll();
149
+ this.items.length = 0;
150
+ this.rebuildIndexProperties();
151
+ };
152
+ /**
153
+ * @private Identity membership (reference equality).
154
+ */
155
+ ParagraphItemCollection.prototype.containsIdentity = function (item) {
156
+ return this.indexOfIdentity(item) !== -1;
157
+ };
158
+ /**
159
+ * Index of `item` by reference, or `-1`.
160
+ * @public
161
+ */
162
+ ParagraphItemCollection.prototype.indexOf = function (item) {
163
+ return resolveStoredItem(this.items, item);
164
+ };
165
+ /**
166
+ * @private Index of `item` by reference, or `-1`.
167
+ */
168
+ ParagraphItemCollection.prototype.indexOfIdentity = function (item) {
169
+ for (var i = 0; i < this.items.length; i += 1) {
170
+ if (this.items[i] === item) {
171
+ return i;
172
+ }
173
+ }
174
+ return -1;
175
+ };
176
+ /**
177
+ * Ordered public items (projects feature wrappers to leaf entities).
178
+ * @public
179
+ */
180
+ ParagraphItemCollection.prototype.toArray = function () {
181
+ var out = [];
182
+ for (var i = 0; i < this.items.length; i += 1) {
183
+ out.push(projectPublicItem(this.items[i]));
184
+ }
185
+ return out;
186
+ };
187
+ /**
188
+ * @private Ordered storage snapshot for serialize (wrappers retained).
189
+ */
190
+ ParagraphItemCollection.prototype.snapshot = function () {
191
+ return this.items.slice();
192
+ };
193
+ /**
194
+ * Invoke `fn` for each item in document order.
195
+ * @public
196
+ */
197
+ ParagraphItemCollection.prototype.forEach = function (fn) {
198
+ for (var i = 0; i < this.items.length; i += 1) {
199
+ fn(projectPublicItem(this.items[i]), i);
200
+ }
201
+ };
202
+ /**
203
+ * True when at least one item satisfies `predicate`.
204
+ * @public
205
+ */
206
+ ParagraphItemCollection.prototype.some = function (predicate) {
207
+ for (var i = 0; i < this.items.length; i += 1) {
208
+ if (predicate(projectPublicItem(this.items[i]), i)) {
209
+ return true;
210
+ }
211
+ }
212
+ return false;
213
+ };
214
+ /**
215
+ * True when every item satisfies `predicate` (empty collection is true).
216
+ * @public
217
+ */
218
+ ParagraphItemCollection.prototype.every = function (predicate) {
219
+ for (var i = 0; i < this.items.length; i += 1) {
220
+ if (!predicate(projectPublicItem(this.items[i]), i)) {
221
+ return false;
222
+ }
223
+ }
224
+ return true;
225
+ };
226
+ /**
227
+ * Items that satisfy `predicate`.
228
+ * @public
229
+ */
230
+ ParagraphItemCollection.prototype.filter = function (predicate) {
231
+ var out = [];
232
+ for (var i = 0; i < this.items.length; i += 1) {
233
+ var item = projectPublicItem(this.items[i]);
234
+ if (predicate(item, i)) {
235
+ out.push(item);
236
+ }
237
+ }
238
+ return out;
239
+ };
240
+ /**
241
+ * First item that satisfies `predicate`, or `undefined`.
242
+ * @public
243
+ */
244
+ ParagraphItemCollection.prototype.find = function (predicate) {
245
+ for (var i = 0; i < this.items.length; i += 1) {
246
+ var item = projectPublicItem(this.items[i]);
247
+ if (predicate(item, i)) {
248
+ return item;
249
+ }
250
+ }
251
+ return undefined;
252
+ };
253
+ /**
254
+ * Index of the first item that satisfies `predicate`, or `-1`.
255
+ * @public
256
+ */
257
+ ParagraphItemCollection.prototype.findIndex = function (predicate) {
258
+ for (var i = 0; i < this.items.length; i += 1) {
259
+ if (predicate(projectPublicItem(this.items[i]), i)) {
260
+ return i;
261
+ }
262
+ }
263
+ return -1;
264
+ };
265
+ /**
266
+ * Map items with `fn`.
267
+ * @public
268
+ */
269
+ ParagraphItemCollection.prototype.map = function (fn) {
270
+ var out = [];
271
+ for (var i = 0; i < this.items.length; i += 1) {
272
+ out.push(fn(projectPublicItem(this.items[i]), i));
273
+ }
274
+ return out;
275
+ };
276
+ /**
277
+ * Iterate items in document order.
278
+ * @public
279
+ */
280
+ ParagraphItemCollection.prototype[Symbol.iterator] = function () {
281
+ var items = this.items.slice();
282
+ var i = 0;
283
+ return {
284
+ next: function () {
285
+ if (i >= items.length) {
286
+ return { done: true, value: undefined };
287
+ }
288
+ var value = projectPublicItem(items[i]);
289
+ i += 1;
290
+ return { done: false, value: value };
291
+ },
292
+ };
293
+ };
294
+ /**
295
+ * @private Replace contents during parse/hydrate without authoring mutate.
296
+ * Detaches prior items, attaches incoming items to this host.
297
+ */
298
+ ParagraphItemCollection.prototype.hydrate = function (items) {
299
+ this.detachAll();
300
+ this.items.length = 0;
301
+ for (var i = 0; i < items.length; i += 1) {
302
+ var item = items[i];
303
+ this.items.push(item);
304
+ item.attach(this.host);
305
+ }
306
+ this.rebuildIndexProperties();
307
+ };
308
+ /**
309
+ * @private Append during parse without assertMutable (owner may still be wiring).
310
+ */
311
+ ParagraphItemCollection.prototype.addFromParse = function (item) {
312
+ this.items.push(item);
313
+ item.attach(this.host);
314
+ this.rebuildIndexProperties();
315
+ };
316
+ /**
317
+ * @private Detach every item without clearing the array (paragraph detach).
318
+ */
319
+ ParagraphItemCollection.prototype.detachAll = function () {
320
+ for (var i = 0; i < this.items.length; i += 1) {
321
+ this.items[i].detach();
322
+ }
323
+ };
324
+ /**
325
+ * @private Re-attach every item to this host (paragraph attach).
326
+ */
327
+ ParagraphItemCollection.prototype.reattachAll = function () {
328
+ for (var i = 0; i < this.items.length; i += 1) {
329
+ this.items[i].attach(this.host);
330
+ }
331
+ };
332
+ ParagraphItemCollection.prototype.assertNotOwned = function (item) {
333
+ if (item.owner !== undefined) {
334
+ if (item.owner === this.host && this.containsIdentity(item)) {
335
+ throw new DetachedObjectError('Paragraph item is already in this paragraph');
336
+ }
337
+ throw new DetachedObjectError('Paragraph item is already attached');
338
+ }
339
+ };
340
+ ParagraphItemCollection.prototype.rebuildIndexProperties = function () {
341
+ var nextLen = this.items.length;
342
+ var prevLen = this.cachedCount;
343
+ var limit = prevLen > nextLen ? prevLen : nextLen;
344
+ for (var i = 0; i < limit; i += 1) {
345
+ var key = String(i);
346
+ if (i < nextLen) {
347
+ var value = projectPublicItem(this.items[i]);
348
+ Object.defineProperty(this, key, {
349
+ value: value,
350
+ writable: false,
351
+ enumerable: true,
352
+ configurable: true,
353
+ });
354
+ }
355
+ else {
356
+ delete this[key];
357
+ }
358
+ }
359
+ this.cachedCount = nextLen;
360
+ };
361
+ return ParagraphItemCollection;
362
+ }());
363
+ export { ParagraphItemCollection };
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Owner that validates {@link ParagraphItem} attachment for mutation.
3
+ *
4
+ * Implemented by {@link Paragraph} (and nested feature owners that host nested
5
+ * text ranges). Collection mutations go through the paragraph collection; this
6
+ * interface is the mutation gate for item property writes.
7
+ *
8
+ * @public
9
+ */
10
+ export interface ParagraphItemOwner {
11
+ /**
12
+ * Assert that `target` is still attached to this owner and that the owner
13
+ * itself is mutable. Throws {@link DetachedObjectError} otherwise.
14
+ */
15
+ assertAttachedItem(target: ParagraphItem): void;
16
+ }
17
+ /**
18
+ * Base class for every modeled child of {@link Paragraph.items}.
19
+ *
20
+ * Concrete subclasses include {@link TextRange}, breaks, symbols, tabs,
21
+ * feature-owned items, and opaque round-trip holders. Ownership is exclusive:
22
+ * an item is attached to at most one owner (normally a paragraph via its
23
+ * {@link ParagraphItemCollection}).
24
+ *
25
+ * @public
26
+ */
27
+ export declare abstract class ParagraphItem {
28
+ private ownerValue;
29
+ /**
30
+ * Document context for never-attached authoring (`new TextRange(document)`).
31
+ * Cleared only when the item is removed after having been attached.
32
+ * @private
33
+ */
34
+ private documentContextValue;
35
+ /**
36
+ * True once this item has been attached at least once and later detached.
37
+ * @private
38
+ */
39
+ private wasRemovedValue;
40
+ /**
41
+ * @private
42
+ */
43
+ constructor();
44
+ /**
45
+ * Owning paragraph/item host when attached; `undefined` when detached.
46
+ *
47
+ * @private
48
+ */
49
+ readonly owner: ParagraphItemOwner | undefined;
50
+ /**
51
+ * @private Document context for unattached authoring.
52
+ */
53
+ readonly documentContext: unknown | undefined;
54
+ /**
55
+ * @private Bind document context without attaching to a paragraph.
56
+ */
57
+ setDocumentContext(document: unknown | undefined): void;
58
+ /**
59
+ * @private Attach to an owner (collection / nested host only).
60
+ */
61
+ attach(owner: ParagraphItemOwner): void;
62
+ /**
63
+ * @private Detach from the current owner. Further authoring mutates throw
64
+ * unless the item was never attached and still has document context.
65
+ */
66
+ detach(): void;
67
+ /**
68
+ * Hook for subclasses that hold nested content (feature inlines, …).
69
+ * @private
70
+ */
71
+ protected onDetached(): void;
72
+ /**
73
+ * Ensure this item is still attached and the owner accepts mutation.
74
+ * @private
75
+ */
76
+ assertAttached(): void;
77
+ /**
78
+ * @private Convenience for property setters.
79
+ * Allows mutation when the item has document context and was never attached,
80
+ * or is currently attached. Throws after removal from a parent.
81
+ */
82
+ protected mutate(): void;
83
+ }
@@ -0,0 +1,103 @@
1
+ import { DetachedObjectError } from '../../core/errors/docx-error';
2
+ /**
3
+ * Base class for every modeled child of {@link Paragraph.items}.
4
+ *
5
+ * Concrete subclasses include {@link TextRange}, breaks, symbols, tabs,
6
+ * feature-owned items, and opaque round-trip holders. Ownership is exclusive:
7
+ * an item is attached to at most one owner (normally a paragraph via its
8
+ * {@link ParagraphItemCollection}).
9
+ *
10
+ * @public
11
+ */
12
+ var ParagraphItem = /** @class */ (function () {
13
+ /**
14
+ * @private
15
+ */
16
+ function ParagraphItem() {
17
+ this.ownerValue = undefined;
18
+ this.documentContextValue = undefined;
19
+ this.wasRemovedValue = false;
20
+ }
21
+ Object.defineProperty(ParagraphItem.prototype, "owner", {
22
+ /**
23
+ * Owning paragraph/item host when attached; `undefined` when detached.
24
+ *
25
+ * @private
26
+ */
27
+ get: function () {
28
+ return this.ownerValue;
29
+ },
30
+ enumerable: true,
31
+ configurable: true
32
+ });
33
+ Object.defineProperty(ParagraphItem.prototype, "documentContext", {
34
+ /**
35
+ * @private Document context for unattached authoring.
36
+ */
37
+ get: function () {
38
+ return this.documentContextValue;
39
+ },
40
+ enumerable: true,
41
+ configurable: true
42
+ });
43
+ /**
44
+ * @private Bind document context without attaching to a paragraph.
45
+ */
46
+ ParagraphItem.prototype.setDocumentContext = function (document) {
47
+ this.documentContextValue = document;
48
+ this.wasRemovedValue = false;
49
+ };
50
+ /**
51
+ * @private Attach to an owner (collection / nested host only).
52
+ */
53
+ ParagraphItem.prototype.attach = function (owner) {
54
+ this.ownerValue = owner;
55
+ this.wasRemovedValue = false;
56
+ };
57
+ /**
58
+ * @private Detach from the current owner. Further authoring mutates throw
59
+ * unless the item was never attached and still has document context.
60
+ */
61
+ ParagraphItem.prototype.detach = function () {
62
+ if (this.ownerValue !== undefined) {
63
+ this.wasRemovedValue = true;
64
+ this.documentContextValue = undefined;
65
+ }
66
+ this.ownerValue = undefined;
67
+ this.onDetached();
68
+ };
69
+ /**
70
+ * Hook for subclasses that hold nested content (feature inlines, …).
71
+ * @private
72
+ */
73
+ ParagraphItem.prototype.onDetached = function () {
74
+ // default no-op
75
+ };
76
+ /**
77
+ * Ensure this item is still attached and the owner accepts mutation.
78
+ * @private
79
+ */
80
+ ParagraphItem.prototype.assertAttached = function () {
81
+ if (this.ownerValue === undefined) {
82
+ throw new DetachedObjectError('This paragraph item is no longer attached');
83
+ }
84
+ this.ownerValue.assertAttachedItem(this);
85
+ };
86
+ /**
87
+ * @private Convenience for property setters.
88
+ * Allows mutation when the item has document context and was never attached,
89
+ * or is currently attached. Throws after removal from a parent.
90
+ */
91
+ ParagraphItem.prototype.mutate = function () {
92
+ if (this.ownerValue !== undefined) {
93
+ this.ownerValue.assertAttachedItem(this);
94
+ return;
95
+ }
96
+ if (!this.wasRemovedValue && this.documentContextValue !== undefined) {
97
+ return;
98
+ }
99
+ throw new DetachedObjectError('This paragraph item is no longer attached');
100
+ };
101
+ return ParagraphItem;
102
+ }());
103
+ export { ParagraphItem };