documents.js 1.57.0 → 1.58.0

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 (454) hide show
  1. package/README.md +38 -0
  2. package/dist/blr-types-CYYC3yYU.d.cts +35 -0
  3. package/dist/blr-types-CYYC3yYU.d.ts +35 -0
  4. package/dist/cell-CNHPsDEk.d.cts +17 -0
  5. package/dist/cell-CNHPsDEk.d.ts +17 -0
  6. package/dist/color-71eoF1Up.d.cts +2 -0
  7. package/dist/color-Bo228AY2.d.ts +2 -0
  8. package/dist/convert/codec.cjs +51 -0
  9. package/dist/convert/codec.d.cts +13 -0
  10. package/dist/convert/codec.d.ts +13 -0
  11. package/dist/convert/codec.js +42 -0
  12. package/dist/convert/convert.cjs +443 -0
  13. package/dist/convert/convert.d.cts +55 -0
  14. package/dist/convert/convert.d.ts +55 -0
  15. package/dist/convert/convert.js +419 -0
  16. package/dist/convert/local.cjs +393 -0
  17. package/dist/convert/local.d.cts +5 -0
  18. package/dist/convert/local.d.ts +5 -0
  19. package/dist/convert/local.js +392 -0
  20. package/dist/convert/port.cjs +0 -0
  21. package/dist/convert/port.d.cts +34 -0
  22. package/dist/convert/port.d.ts +34 -0
  23. package/dist/convert/port.js +0 -0
  24. package/dist/edit/docx/content.cjs +71 -0
  25. package/dist/edit/docx/content.d.cts +6 -0
  26. package/dist/edit/docx/content.d.ts +6 -0
  27. package/dist/edit/docx/content.js +70 -0
  28. package/dist/edit/docx/editor.cjs +116 -0
  29. package/dist/edit/docx/editor.d.cts +23 -0
  30. package/dist/edit/docx/editor.d.ts +23 -0
  31. package/dist/edit/docx/editor.js +113 -0
  32. package/dist/edit/docx/image.cjs +74 -0
  33. package/dist/edit/docx/image.d.cts +2 -0
  34. package/dist/edit/docx/image.d.ts +2 -0
  35. package/dist/edit/docx/image.js +72 -0
  36. package/dist/edit/docx/paragraph.cjs +132 -0
  37. package/dist/edit/docx/paragraph.d.cts +40 -0
  38. package/dist/edit/docx/paragraph.d.ts +40 -0
  39. package/dist/edit/docx/paragraph.js +130 -0
  40. package/dist/edit/docx/props.cjs +132 -0
  41. package/dist/edit/docx/props.d.cts +20 -0
  42. package/dist/edit/docx/props.d.ts +20 -0
  43. package/dist/edit/docx/props.js +117 -0
  44. package/dist/edit/docx/run.cjs +143 -0
  45. package/dist/edit/docx/run.d.cts +2 -0
  46. package/dist/edit/docx/run.d.ts +2 -0
  47. package/dist/edit/docx/run.js +141 -0
  48. package/dist/edit/docx/scaffold.cjs +97 -0
  49. package/dist/edit/docx/scaffold.d.cts +5 -0
  50. package/dist/edit/docx/scaffold.d.ts +5 -0
  51. package/dist/edit/docx/scaffold.js +96 -0
  52. package/dist/edit/docx/table.cjs +99 -0
  53. package/dist/edit/docx/table.d.cts +34 -0
  54. package/dist/edit/docx/table.d.ts +34 -0
  55. package/dist/edit/docx/table.js +95 -0
  56. package/dist/edit/odg/content.cjs +65 -0
  57. package/dist/edit/odg/content.d.cts +6 -0
  58. package/dist/edit/odg/content.d.ts +6 -0
  59. package/dist/edit/odg/content.js +64 -0
  60. package/dist/edit/odg/editor.cjs +96 -0
  61. package/dist/edit/odg/editor.d.cts +19 -0
  62. package/dist/edit/odg/editor.d.ts +19 -0
  63. package/dist/edit/odg/editor.js +93 -0
  64. package/dist/edit/odg/page.cjs +70 -0
  65. package/dist/edit/odg/page.d.cts +34 -0
  66. package/dist/edit/odg/page.d.ts +34 -0
  67. package/dist/edit/odg/page.js +69 -0
  68. package/dist/edit/odg/scaffold.cjs +106 -0
  69. package/dist/edit/odg/scaffold.d.cts +7 -0
  70. package/dist/edit/odg/scaffold.d.ts +7 -0
  71. package/dist/edit/odg/scaffold.js +103 -0
  72. package/dist/edit/odg/style.cjs +83 -0
  73. package/dist/edit/odg/style.d.cts +14 -0
  74. package/dist/edit/odg/style.d.ts +14 -0
  75. package/dist/edit/odg/style.js +78 -0
  76. package/dist/edit/odg/svg-path.cjs +30 -0
  77. package/dist/edit/odg/svg-path.d.cts +7 -0
  78. package/dist/edit/odg/svg-path.d.ts +7 -0
  79. package/dist/edit/odg/svg-path.js +27 -0
  80. package/dist/edit/odg/vector.cjs +208 -0
  81. package/dist/edit/odg/vector.d.cts +2 -0
  82. package/dist/edit/odg/vector.d.ts +2 -0
  83. package/dist/edit/odg/vector.js +201 -0
  84. package/dist/edit/odp/content.cjs +42 -0
  85. package/dist/edit/odp/content.d.cts +6 -0
  86. package/dist/edit/odp/content.d.ts +6 -0
  87. package/dist/edit/odp/content.js +41 -0
  88. package/dist/edit/odp/editor.cjs +113 -0
  89. package/dist/edit/odp/editor.d.cts +20 -0
  90. package/dist/edit/odp/editor.d.ts +20 -0
  91. package/dist/edit/odp/editor.js +110 -0
  92. package/dist/edit/odp/image.cjs +10 -0
  93. package/dist/edit/odp/image.d.cts +2 -0
  94. package/dist/edit/odp/image.d.ts +2 -0
  95. package/dist/edit/odp/image.js +9 -0
  96. package/dist/edit/odp/scaffold.cjs +108 -0
  97. package/dist/edit/odp/scaffold.d.cts +7 -0
  98. package/dist/edit/odp/scaffold.d.ts +7 -0
  99. package/dist/edit/odp/scaffold.js +105 -0
  100. package/dist/edit/odp/shape.cjs +133 -0
  101. package/dist/edit/odp/shape.d.cts +2 -0
  102. package/dist/edit/odp/shape.d.ts +2 -0
  103. package/dist/edit/odp/shape.js +130 -0
  104. package/dist/edit/odp/slide.cjs +80 -0
  105. package/dist/edit/odp/slide.d.cts +31 -0
  106. package/dist/edit/odp/slide.d.ts +31 -0
  107. package/dist/edit/odp/slide.js +79 -0
  108. package/dist/edit/ods/address.cjs +108 -0
  109. package/dist/edit/ods/address.d.cts +15 -0
  110. package/dist/edit/ods/address.d.ts +15 -0
  111. package/dist/edit/ods/address.js +97 -0
  112. package/dist/edit/ods/cell.cjs +177 -0
  113. package/dist/edit/ods/cell.d.cts +2 -0
  114. package/dist/edit/ods/cell.d.ts +2 -0
  115. package/dist/edit/ods/cell.js +176 -0
  116. package/dist/edit/ods/content.cjs +26 -0
  117. package/dist/edit/ods/content.d.cts +6 -0
  118. package/dist/edit/ods/content.d.ts +6 -0
  119. package/dist/edit/ods/content.js +25 -0
  120. package/dist/edit/ods/editor.cjs +84 -0
  121. package/dist/edit/ods/editor.d.cts +17 -0
  122. package/dist/edit/ods/editor.d.ts +17 -0
  123. package/dist/edit/ods/editor.js +81 -0
  124. package/dist/edit/ods/print-settings.cjs +90 -0
  125. package/dist/edit/ods/print-settings.d.cts +7 -0
  126. package/dist/edit/ods/print-settings.d.ts +7 -0
  127. package/dist/edit/ods/print-settings.js +88 -0
  128. package/dist/edit/ods/scaffold.cjs +129 -0
  129. package/dist/edit/ods/scaffold.d.cts +9 -0
  130. package/dist/edit/ods/scaffold.d.ts +9 -0
  131. package/dist/edit/ods/scaffold.js +124 -0
  132. package/dist/edit/ods/sheet.cjs +70 -0
  133. package/dist/edit/ods/sheet.d.cts +22 -0
  134. package/dist/edit/ods/sheet.d.ts +22 -0
  135. package/dist/edit/ods/sheet.js +69 -0
  136. package/dist/edit/odt/automatic-styles.cjs +49 -0
  137. package/dist/edit/odt/automatic-styles.d.cts +8 -0
  138. package/dist/edit/odt/automatic-styles.d.ts +8 -0
  139. package/dist/edit/odt/automatic-styles.js +45 -0
  140. package/dist/edit/odt/content.cjs +110 -0
  141. package/dist/edit/odt/content.d.cts +9 -0
  142. package/dist/edit/odt/content.d.ts +9 -0
  143. package/dist/edit/odt/content.js +108 -0
  144. package/dist/edit/odt/editor.cjs +98 -0
  145. package/dist/edit/odt/editor.d.cts +25 -0
  146. package/dist/edit/odt/editor.d.ts +25 -0
  147. package/dist/edit/odt/editor.js +95 -0
  148. package/dist/edit/odt/list.cjs +82 -0
  149. package/dist/edit/odt/list.d.cts +2 -0
  150. package/dist/edit/odt/list.d.ts +2 -0
  151. package/dist/edit/odt/list.js +79 -0
  152. package/dist/edit/odt/paragraph.cjs +84 -0
  153. package/dist/edit/odt/paragraph.d.cts +2 -0
  154. package/dist/edit/odt/paragraph.d.ts +2 -0
  155. package/dist/edit/odt/paragraph.js +82 -0
  156. package/dist/edit/odt/props.cjs +26 -0
  157. package/dist/edit/odt/props.d.cts +7 -0
  158. package/dist/edit/odt/props.d.ts +7 -0
  159. package/dist/edit/odt/props.js +23 -0
  160. package/dist/edit/odt/run.cjs +82 -0
  161. package/dist/edit/odt/run.d.cts +2 -0
  162. package/dist/edit/odt/run.d.ts +2 -0
  163. package/dist/edit/odt/run.js +80 -0
  164. package/dist/edit/odt/scaffold.cjs +109 -0
  165. package/dist/edit/odt/scaffold.d.cts +5 -0
  166. package/dist/edit/odt/scaffold.d.ts +5 -0
  167. package/dist/edit/odt/scaffold.js +108 -0
  168. package/dist/edit/odt/table.cjs +123 -0
  169. package/dist/edit/odt/table.d.cts +37 -0
  170. package/dist/edit/odt/table.d.ts +37 -0
  171. package/dist/edit/odt/table.js +119 -0
  172. package/dist/edit/pptx/content.cjs +49 -0
  173. package/dist/edit/pptx/content.d.cts +6 -0
  174. package/dist/edit/pptx/content.d.ts +6 -0
  175. package/dist/edit/pptx/content.js +48 -0
  176. package/dist/edit/pptx/editor.cjs +187 -0
  177. package/dist/edit/pptx/editor.d.cts +20 -0
  178. package/dist/edit/pptx/editor.d.ts +20 -0
  179. package/dist/edit/pptx/editor.js +184 -0
  180. package/dist/edit/pptx/image.cjs +27 -0
  181. package/dist/edit/pptx/image.d.cts +2 -0
  182. package/dist/edit/pptx/image.d.ts +2 -0
  183. package/dist/edit/pptx/image.js +26 -0
  184. package/dist/edit/pptx/scaffold.cjs +292 -0
  185. package/dist/edit/pptx/scaffold.d.cts +13 -0
  186. package/dist/edit/pptx/scaffold.d.ts +13 -0
  187. package/dist/edit/pptx/scaffold.js +283 -0
  188. package/dist/edit/pptx/shape.cjs +182 -0
  189. package/dist/edit/pptx/shape.d.cts +2 -0
  190. package/dist/edit/pptx/shape.d.ts +2 -0
  191. package/dist/edit/pptx/shape.js +179 -0
  192. package/dist/edit/pptx/slide.cjs +146 -0
  193. package/dist/edit/pptx/slide.d.cts +33 -0
  194. package/dist/edit/pptx/slide.d.ts +33 -0
  195. package/dist/edit/pptx/slide.js +145 -0
  196. package/dist/firebird/backup.cjs +150 -0
  197. package/dist/firebird/backup.d.cts +21 -0
  198. package/dist/firebird/backup.d.ts +21 -0
  199. package/dist/firebird/backup.js +145 -0
  200. package/dist/firebird/blr-types.cjs +118 -0
  201. package/dist/firebird/blr-types.d.cts +2 -0
  202. package/dist/firebird/blr-types.d.ts +2 -0
  203. package/dist/firebird/blr-types.js +90 -0
  204. package/dist/firebird/data.cjs +231 -0
  205. package/dist/firebird/data.d.cts +17 -0
  206. package/dist/firebird/data.d.ts +17 -0
  207. package/dist/firebird/data.js +228 -0
  208. package/dist/firebird/date.cjs +63 -0
  209. package/dist/firebird/date.d.cts +17 -0
  210. package/dist/firebird/date.d.ts +17 -0
  211. package/dist/firebird/date.js +58 -0
  212. package/dist/firebird/reader.cjs +157 -0
  213. package/dist/firebird/reader.d.cts +2 -0
  214. package/dist/firebird/reader.d.ts +2 -0
  215. package/dist/firebird/reader.js +154 -0
  216. package/dist/firebird/schema.cjs +91 -0
  217. package/dist/firebird/schema.d.cts +2 -0
  218. package/dist/firebird/schema.d.ts +2 -0
  219. package/dist/firebird/schema.js +89 -0
  220. package/dist/geometry-DvwdrIij.d.cts +5 -0
  221. package/dist/geometry-DvwdrIij.d.ts +5 -0
  222. package/dist/hsqldb/cache.cjs +88 -0
  223. package/dist/hsqldb/cache.d.cts +13 -0
  224. package/dist/hsqldb/cache.d.ts +13 -0
  225. package/dist/hsqldb/cache.js +84 -0
  226. package/dist/hsqldb/rowformat.cjs +222 -0
  227. package/dist/hsqldb/rowformat.d.cts +21 -0
  228. package/dist/hsqldb/rowformat.d.ts +21 -0
  229. package/dist/hsqldb/rowformat.js +218 -0
  230. package/dist/hsqldb/script.cjs +450 -0
  231. package/dist/hsqldb/script.d.cts +19 -0
  232. package/dist/hsqldb/script.d.ts +19 -0
  233. package/dist/hsqldb/script.js +447 -0
  234. package/dist/image-B-xQWYYS.d.ts +16 -0
  235. package/dist/image-BZDy72Jb.d.cts +16 -0
  236. package/dist/image-BfRLAD9B.d.cts +18 -0
  237. package/dist/image-BfRLAD9B.d.ts +18 -0
  238. package/dist/image-CeqwL-Qs.d.ts +14 -0
  239. package/dist/image-DWX6cNOD.d.cts +14 -0
  240. package/dist/index.cjs +201 -10863
  241. package/dist/index.d.cts +71 -1406
  242. package/dist/index.d.ts +71 -1406
  243. package/dist/index.js +67 -10727
  244. package/dist/layout/drawing.cjs +117 -0
  245. package/dist/layout/drawing.d.cts +13 -0
  246. package/dist/layout/drawing.d.ts +13 -0
  247. package/dist/layout/drawing.js +116 -0
  248. package/dist/layout/engine.cjs +216 -0
  249. package/dist/layout/engine.d.cts +19 -0
  250. package/dist/layout/engine.d.ts +19 -0
  251. package/dist/layout/engine.js +215 -0
  252. package/dist/layout/reconstruct.cjs +809 -0
  253. package/dist/layout/reconstruct.d.cts +12 -0
  254. package/dist/layout/reconstruct.d.ts +12 -0
  255. package/dist/layout/reconstruct.js +805 -0
  256. package/dist/layout/shared.cjs +104 -0
  257. package/dist/layout/shared.d.cts +15 -0
  258. package/dist/layout/shared.d.ts +15 -0
  259. package/dist/layout/shared.js +96 -0
  260. package/dist/layout/sheets.cjs +413 -0
  261. package/dist/layout/sheets.d.cts +14 -0
  262. package/dist/layout/sheets.d.ts +14 -0
  263. package/dist/layout/sheets.js +414 -0
  264. package/dist/layout/slides.cjs +194 -0
  265. package/dist/layout/slides.d.cts +25 -0
  266. package/dist/layout/slides.d.ts +25 -0
  267. package/dist/layout/slides.js +192 -0
  268. package/dist/list-BuBM9rwQ.d.cts +24 -0
  269. package/dist/list-CvKxhy3y.d.ts +24 -0
  270. package/dist/mathml/compose.cjs +53 -0
  271. package/dist/mathml/compose.d.cts +8 -0
  272. package/dist/mathml/compose.d.ts +8 -0
  273. package/dist/mathml/compose.js +49 -0
  274. package/dist/mathml/layout-types.cjs +0 -0
  275. package/dist/mathml/layout-types.d.cts +50 -0
  276. package/dist/mathml/layout-types.d.ts +50 -0
  277. package/dist/mathml/layout-types.js +0 -0
  278. package/dist/mathml/layout.cjs +373 -0
  279. package/dist/mathml/layout.d.cts +24 -0
  280. package/dist/mathml/layout.d.ts +24 -0
  281. package/dist/mathml/layout.js +371 -0
  282. package/dist/mathml/length.cjs +41 -0
  283. package/dist/mathml/length.d.cts +4 -0
  284. package/dist/mathml/length.d.ts +4 -0
  285. package/dist/mathml/length.js +40 -0
  286. package/dist/mathml/metrics.cjs +0 -0
  287. package/dist/mathml/metrics.d.cts +44 -0
  288. package/dist/mathml/metrics.d.ts +44 -0
  289. package/dist/mathml/metrics.js +0 -0
  290. package/dist/mathml/nodes.cjs +39 -0
  291. package/dist/mathml/nodes.d.cts +2 -0
  292. package/dist/mathml/nodes.d.ts +2 -0
  293. package/dist/mathml/nodes.js +32 -0
  294. package/dist/mathml/operators.cjs +189 -0
  295. package/dist/mathml/operators.d.cts +13 -0
  296. package/dist/mathml/operators.d.ts +13 -0
  297. package/dist/mathml/operators.js +188 -0
  298. package/dist/mathml/radical.cjs +46 -0
  299. package/dist/mathml/radical.d.cts +10 -0
  300. package/dist/mathml/radical.d.ts +10 -0
  301. package/dist/mathml/radical.js +45 -0
  302. package/dist/mathml/variant.cjs +1160 -0
  303. package/dist/mathml/variant.d.cts +7 -0
  304. package/dist/mathml/variant.d.ts +7 -0
  305. package/dist/mathml/variant.js +1157 -0
  306. package/dist/model/bytes.cjs +88 -0
  307. package/dist/model/bytes.d.cts +12 -0
  308. package/dist/model/bytes.d.ts +12 -0
  309. package/dist/model/bytes.js +80 -0
  310. package/dist/model/color.cjs +26 -0
  311. package/dist/model/color.d.cts +2 -0
  312. package/dist/model/color.d.ts +2 -0
  313. package/dist/model/color.js +2 -0
  314. package/dist/model/content.cjs +34 -0
  315. package/dist/model/content.d.cts +362 -0
  316. package/dist/model/content.d.ts +362 -0
  317. package/dist/model/content.js +32 -0
  318. package/dist/model/formula.cjs +0 -0
  319. package/dist/model/formula.d.cts +8 -0
  320. package/dist/model/formula.d.ts +8 -0
  321. package/dist/model/formula.js +0 -0
  322. package/dist/model/geometry.cjs +55 -0
  323. package/dist/model/geometry.d.cts +2 -0
  324. package/dist/model/geometry.d.ts +2 -0
  325. package/dist/model/geometry.js +12 -0
  326. package/dist/model/style.cjs +20 -0
  327. package/dist/model/style.d.cts +2 -0
  328. package/dist/model/style.d.ts +2 -0
  329. package/dist/model/style.js +2 -0
  330. package/dist/model/units.cjs +55 -0
  331. package/dist/model/units.d.cts +20 -0
  332. package/dist/model/units.d.ts +20 -0
  333. package/dist/model/units.js +38 -0
  334. package/dist/nodes-pArN9ilm.d.cts +27 -0
  335. package/dist/nodes-pArN9ilm.d.ts +27 -0
  336. package/dist/odb/csv.cjs +48 -0
  337. package/dist/odb/csv.d.cts +14 -0
  338. package/dist/odb/csv.d.ts +14 -0
  339. package/dist/odb/csv.js +45 -0
  340. package/dist/odb/read.cjs +87 -0
  341. package/dist/odb/read.d.cts +15 -0
  342. package/dist/odb/read.d.ts +15 -0
  343. package/dist/odb/read.js +85 -0
  344. package/dist/odb/spreadsheet.cjs +68 -0
  345. package/dist/odb/spreadsheet.d.cts +6 -0
  346. package/dist/odb/spreadsheet.d.ts +6 -0
  347. package/dist/odb/spreadsheet.js +67 -0
  348. package/dist/odf/formula/detect.cjs +29 -0
  349. package/dist/odf/formula/detect.d.cts +12 -0
  350. package/dist/odf/formula/detect.d.ts +12 -0
  351. package/dist/odf/formula/detect.js +28 -0
  352. package/dist/odf/formula/placeholder.cjs +37 -0
  353. package/dist/odf/formula/placeholder.d.cts +14 -0
  354. package/dist/odf/formula/placeholder.d.ts +14 -0
  355. package/dist/odf/formula/placeholder.js +36 -0
  356. package/dist/odf/formula/read.cjs +32 -0
  357. package/dist/odf/formula/read.d.cts +11 -0
  358. package/dist/odf/formula/read.d.ts +11 -0
  359. package/dist/odf/formula/read.js +30 -0
  360. package/dist/odf/odg/read.cjs +15 -0
  361. package/dist/odf/odg/read.d.cts +6 -0
  362. package/dist/odf/odg/read.d.ts +6 -0
  363. package/dist/odf/odg/read.js +14 -0
  364. package/dist/odf/odp/read.cjs +45 -0
  365. package/dist/odf/odp/read.d.cts +11 -0
  366. package/dist/odf/odp/read.d.ts +11 -0
  367. package/dist/odf/odp/read.js +44 -0
  368. package/dist/odf/ods/read.cjs +15 -0
  369. package/dist/odf/ods/read.d.cts +6 -0
  370. package/dist/odf/ods/read.d.ts +6 -0
  371. package/dist/odf/ods/read.js +14 -0
  372. package/dist/odf/odt/read.cjs +43 -0
  373. package/dist/odf/odt/read.d.cts +11 -0
  374. package/dist/odf/odt/read.d.ts +11 -0
  375. package/dist/odf/odt/read.js +42 -0
  376. package/dist/odf-package/manifest.cjs +62 -0
  377. package/dist/odf-package/manifest.d.cts +2 -0
  378. package/dist/odf-package/manifest.d.ts +2 -0
  379. package/dist/odf-package/manifest.js +2 -0
  380. package/dist/odf-package/media.cjs +34 -0
  381. package/dist/odf-package/media.d.cts +8 -0
  382. package/dist/odf-package/media.d.ts +8 -0
  383. package/dist/odf-package/media.js +34 -0
  384. package/dist/ooxml/docx/read.cjs +15 -0
  385. package/dist/ooxml/docx/read.d.cts +6 -0
  386. package/dist/ooxml/docx/read.d.ts +6 -0
  387. package/dist/ooxml/docx/read.js +14 -0
  388. package/dist/ooxml/pptx/read.cjs +15 -0
  389. package/dist/ooxml/pptx/read.d.cts +6 -0
  390. package/dist/ooxml/pptx/read.d.ts +6 -0
  391. package/dist/ooxml/pptx/read.js +14 -0
  392. package/dist/opc/content-types.cjs +47 -0
  393. package/dist/opc/content-types.d.cts +7 -0
  394. package/dist/opc/content-types.d.ts +7 -0
  395. package/dist/opc/content-types.js +44 -0
  396. package/dist/opc/media.cjs +45 -0
  397. package/dist/opc/media.d.cts +10 -0
  398. package/dist/opc/media.d.ts +10 -0
  399. package/dist/opc/media.js +44 -0
  400. package/dist/opc/paths.cjs +28 -0
  401. package/dist/opc/paths.d.cts +5 -0
  402. package/dist/opc/paths.d.ts +5 -0
  403. package/dist/opc/paths.js +26 -0
  404. package/dist/opc/rels.cjs +47 -0
  405. package/dist/opc/rels.d.cts +10 -0
  406. package/dist/opc/rels.d.ts +10 -0
  407. package/dist/opc/rels.js +46 -0
  408. package/dist/paragraph-BXbXKPy3.d.cts +30 -0
  409. package/dist/paragraph-CoUi_88j.d.ts +30 -0
  410. package/dist/ports/abort.cjs +7 -0
  411. package/dist/ports/abort.d.cts +4 -0
  412. package/dist/ports/abort.d.ts +4 -0
  413. package/dist/ports/abort.js +6 -0
  414. package/dist/ports/clock.cjs +9 -0
  415. package/dist/ports/clock.d.cts +8 -0
  416. package/dist/ports/clock.d.ts +8 -0
  417. package/dist/ports/clock.js +7 -0
  418. package/dist/reader-DP0Mbaj4.d.cts +41 -0
  419. package/dist/reader-DP0Mbaj4.d.ts +41 -0
  420. package/dist/run-B3GNScJH.d.cts +38 -0
  421. package/dist/run-CJfh8rv3.d.ts +38 -0
  422. package/dist/run-D2rTWHbt.d.ts +38 -0
  423. package/dist/run-F8JN7Vy4.d.cts +38 -0
  424. package/dist/schema-Acco3Ezi.d.cts +22 -0
  425. package/dist/schema-VkAA6pF5.d.ts +22 -0
  426. package/dist/shape-BUfjw5eZ.d.cts +35 -0
  427. package/dist/shape-BfN3m52m.d.ts +30 -0
  428. package/dist/shape-CN2ycxOo.d.cts +30 -0
  429. package/dist/shape-CTkl6kt8.d.ts +35 -0
  430. package/dist/style-DkamR3aY.d.cts +2 -0
  431. package/dist/style-DkamR3aY.d.ts +2 -0
  432. package/dist/vector-ClohqsOe.d.cts +76 -0
  433. package/dist/vector-ClohqsOe.d.ts +76 -0
  434. package/dist/xml/edit.cjs +65 -0
  435. package/dist/xml/edit.d.cts +12 -0
  436. package/dist/xml/edit.d.ts +12 -0
  437. package/dist/xml/edit.js +57 -0
  438. package/dist/xml/entities.cjs +12 -0
  439. package/dist/xml/entities.d.cts +5 -0
  440. package/dist/xml/entities.d.ts +5 -0
  441. package/dist/xml/entities.js +10 -0
  442. package/dist/xml/fragment.cjs +22 -0
  443. package/dist/xml/fragment.d.cts +6 -0
  444. package/dist/xml/fragment.d.ts +6 -0
  445. package/dist/xml/fragment.js +20 -0
  446. package/dist/xml/odf-text.cjs +53 -0
  447. package/dist/xml/odf-text.d.cts +6 -0
  448. package/dist/xml/odf-text.d.ts +6 -0
  449. package/dist/xml/odf-text.js +51 -0
  450. package/dist/xml/query.cjs +33 -0
  451. package/dist/xml/query.d.cts +12 -0
  452. package/dist/xml/query.d.ts +12 -0
  453. package/dist/xml/query.js +29 -0
  454. package/package.json +9 -1
@@ -0,0 +1,119 @@
1
+ import { el } from "../../xml/fragment.js";
2
+ import { removeChild } from "../../xml/edit.js";
3
+ import { ensureAutomaticStyles, nextStyleName } from "./automatic-styles.js";
4
+ import { OdtParagraph, buildParagraph } from "./paragraph.js";
5
+ import { attr } from "ooxml.js";
6
+ import { formatOdfLength } from "odf.js";
7
+ //#region src/edit/odt/table.ts
8
+ const DEFAULT_TABLE_WIDTH_PT = 468;
9
+ const TABLE_COLUMN_STYLE_PREFIX = "OdtCol";
10
+ function internTableColumnWidth(pkg, widthPt) {
11
+ const automaticStyles = ensureAutomaticStyles(pkg);
12
+ const formatted = formatOdfLength(widthPt, "pt");
13
+ for (const child of automaticStyles.children) {
14
+ if (child.type !== "element" || child.tag !== "style:style" || attr(child, "style:family") !== "table-column") continue;
15
+ const props = child.children.find((c) => c.type === "element" && c.tag === "style:table-column-properties");
16
+ if (props !== void 0 && attr(props, "style:column-width") === formatted) {
17
+ const existingName = attr(child, "style:name");
18
+ if (existingName !== void 0) return existingName;
19
+ }
20
+ }
21
+ const name = nextStyleName(automaticStyles, "style:style", TABLE_COLUMN_STYLE_PREFIX);
22
+ automaticStyles.children.push(el("style:style", {
23
+ "style:name": name,
24
+ "style:family": "table-column"
25
+ }, [el("style:table-column-properties", { "style:column-width": formatted })]));
26
+ return name;
27
+ }
28
+ var OdtTableCell = class {
29
+ node;
30
+ pkg;
31
+ constructor(node, pkg) {
32
+ this.node = node;
33
+ this.pkg = pkg;
34
+ }
35
+ paragraphs() {
36
+ const out = [];
37
+ for (const child of this.node.children) if (child.type === "element" && child.tag === "text:p") out.push(new OdtParagraph(this.node.children, child, this.pkg));
38
+ return out;
39
+ }
40
+ appendParagraph(init) {
41
+ const paragraphElement = buildParagraph(this.pkg, init);
42
+ this.node.children.push(paragraphElement);
43
+ return new OdtParagraph(this.node.children, paragraphElement, this.pkg);
44
+ }
45
+ get text() {
46
+ return this.paragraphs().map((p) => p.text).join("\n");
47
+ }
48
+ };
49
+ var OdtTableRow = class {
50
+ node;
51
+ pkg;
52
+ constructor(node, pkg) {
53
+ this.node = node;
54
+ this.pkg = pkg;
55
+ }
56
+ cells() {
57
+ const out = [];
58
+ for (const child of this.node.children) if (child.type === "element" && child.tag === "table:table-cell") out.push(new OdtTableCell(child, this.pkg));
59
+ return out;
60
+ }
61
+ };
62
+ function buildCell(pkg) {
63
+ return el("table:table-cell", {}, [buildParagraph(pkg)]);
64
+ }
65
+ function buildRow(pkg, columnCount) {
66
+ const cells = [];
67
+ for (let i = 0; i < columnCount; i++) cells.push(buildCell(pkg));
68
+ return el("table:table-row", {}, cells);
69
+ }
70
+ var OdtTable = class {
71
+ container;
72
+ node;
73
+ pkg;
74
+ removed = false;
75
+ constructor(container, node, pkg) {
76
+ this.container = container;
77
+ this.node = node;
78
+ this.pkg = pkg;
79
+ }
80
+ live() {
81
+ if (this.removed) throw new Error("this OdtTable has been removed and can no longer be used");
82
+ return this.node;
83
+ }
84
+ rows() {
85
+ const out = [];
86
+ for (const child of this.live().children) if (child.type === "element" && child.tag === "table:table-row") out.push(new OdtTableRow(child, this.pkg));
87
+ return out;
88
+ }
89
+ cell(rowIndex, columnIndex) {
90
+ const row = this.rows()[rowIndex];
91
+ if (row === void 0) throw new Error(`row ${rowIndex} does not exist in this table`);
92
+ const cell = row.cells()[columnIndex];
93
+ if (cell === void 0) throw new Error(`column ${columnIndex} does not exist in row ${rowIndex}`);
94
+ return cell;
95
+ }
96
+ appendRow(columnCount) {
97
+ const node = this.live();
98
+ const row = buildRow(this.pkg, columnCount);
99
+ node.children.push(row);
100
+ return new OdtTableRow(row, this.pkg);
101
+ }
102
+ remove() {
103
+ removeChild(this.container, this.live());
104
+ this.removed = true;
105
+ }
106
+ };
107
+ function buildTable(pkg, init) {
108
+ const defaultWidth = DEFAULT_TABLE_WIDTH_PT / init.columns;
109
+ const columns = [];
110
+ for (let i = 0; i < init.columns; i++) {
111
+ const widthPt = init.columnWidthsPt?.[i] ?? defaultWidth;
112
+ columns.push(el("table:table-column", { "table:style-name": internTableColumnWidth(pkg, widthPt) }));
113
+ }
114
+ const rows = [];
115
+ for (let r = 0; r < init.rows; r++) rows.push(buildRow(pkg, init.columns));
116
+ return el("table:table", {}, [...columns, ...rows]);
117
+ }
118
+ //#endregion
119
+ export { OdtTable, OdtTableCell, OdtTableRow, buildTable };
@@ -0,0 +1,49 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_edit_pptx_editor = require("./editor.cjs");
3
+ let ooxml_js = require("ooxml.js");
4
+ //#region src/edit/pptx/content.ts
5
+ function buildPptxPackage(content) {
6
+ if (content.kind !== "presentation") throw new Error("buildPptxPackage requires a presentation ContentDocument");
7
+ const editor = require_edit_pptx_editor.createPptx();
8
+ const firstSlide = content.slides[0];
9
+ if (firstSlide !== void 0) editor.slideSize = firstSlide.size;
10
+ for (const slide of content.slides) {
11
+ const pptxSlide = editor.addSlide();
12
+ for (const shape of slide.shapes) appendShape(pptxSlide, shape);
13
+ if (slide.notes.length > 0) pptxSlide.notes = slide.notes;
14
+ }
15
+ return editor.toPackage();
16
+ }
17
+ function appendShape(slide, shape) {
18
+ const [onlyBlock] = shape.blocks;
19
+ if (shape.blocks.length === 1 && onlyBlock?.kind === "image") {
20
+ slide.addImage({
21
+ frame: shape.frame,
22
+ format: onlyBlock.format,
23
+ bytes: (0, ooxml_js.base64ToBytes)(onlyBlock.base64),
24
+ altText: onlyBlock.altText
25
+ });
26
+ return;
27
+ }
28
+ const paragraphs = [];
29
+ for (const block of shape.blocks) {
30
+ if (block.kind !== "paragraph") continue;
31
+ paragraphs.push({
32
+ alignment: block.alignment,
33
+ runs: block.runs.map((run) => ({
34
+ text: run.text,
35
+ bold: run.bold,
36
+ italic: run.italic,
37
+ fontFamily: run.fontFamily,
38
+ sizePt: run.sizePt,
39
+ color: run.color
40
+ }))
41
+ });
42
+ }
43
+ slide.addTextBox({
44
+ frame: shape.frame,
45
+ text: ""
46
+ }).setParagraphs(paragraphs);
47
+ }
48
+ //#endregion
49
+ exports.buildPptxPackage = buildPptxPackage;
@@ -0,0 +1,6 @@
1
+ import { ContentDocument } from "../../model/content.cjs";
2
+ import { Package } from "ooxml.js";
3
+ //#region src/edit/pptx/content.d.ts
4
+ declare function buildPptxPackage(content: ContentDocument): Package;
5
+ //#endregion
6
+ export { buildPptxPackage };
@@ -0,0 +1,6 @@
1
+ import { ContentDocument } from "../../model/content.js";
2
+ import { Package } from "ooxml.js";
3
+ //#region src/edit/pptx/content.d.ts
4
+ declare function buildPptxPackage(content: ContentDocument): Package;
5
+ //#endregion
6
+ export { buildPptxPackage };
@@ -0,0 +1,48 @@
1
+ import { createPptx } from "./editor.js";
2
+ import { base64ToBytes } from "ooxml.js";
3
+ //#region src/edit/pptx/content.ts
4
+ function buildPptxPackage(content) {
5
+ if (content.kind !== "presentation") throw new Error("buildPptxPackage requires a presentation ContentDocument");
6
+ const editor = createPptx();
7
+ const firstSlide = content.slides[0];
8
+ if (firstSlide !== void 0) editor.slideSize = firstSlide.size;
9
+ for (const slide of content.slides) {
10
+ const pptxSlide = editor.addSlide();
11
+ for (const shape of slide.shapes) appendShape(pptxSlide, shape);
12
+ if (slide.notes.length > 0) pptxSlide.notes = slide.notes;
13
+ }
14
+ return editor.toPackage();
15
+ }
16
+ function appendShape(slide, shape) {
17
+ const [onlyBlock] = shape.blocks;
18
+ if (shape.blocks.length === 1 && onlyBlock?.kind === "image") {
19
+ slide.addImage({
20
+ frame: shape.frame,
21
+ format: onlyBlock.format,
22
+ bytes: base64ToBytes(onlyBlock.base64),
23
+ altText: onlyBlock.altText
24
+ });
25
+ return;
26
+ }
27
+ const paragraphs = [];
28
+ for (const block of shape.blocks) {
29
+ if (block.kind !== "paragraph") continue;
30
+ paragraphs.push({
31
+ alignment: block.alignment,
32
+ runs: block.runs.map((run) => ({
33
+ text: run.text,
34
+ bold: run.bold,
35
+ italic: run.italic,
36
+ fontFamily: run.fontFamily,
37
+ sizePt: run.sizePt,
38
+ color: run.color
39
+ }))
40
+ });
41
+ }
42
+ slide.addTextBox({
43
+ frame: shape.frame,
44
+ text: ""
45
+ }).setParagraphs(paragraphs);
46
+ }
47
+ //#endregion
48
+ export { buildPptxPackage };
@@ -0,0 +1,187 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_xml_fragment = require("../../xml/fragment.cjs");
3
+ const require_model_units = require("../../model/units.cjs");
4
+ const require_opc_paths = require("../../opc/paths.cjs");
5
+ const require_opc_rels = require("../../opc/rels.cjs");
6
+ const require_opc_content_types = require("../../opc/content-types.cjs");
7
+ const require_edit_pptx_scaffold = require("./scaffold.cjs");
8
+ const require_edit_pptx_slide = require("./slide.cjs");
9
+ let ooxml_js = require("ooxml.js");
10
+ //#region src/edit/pptx/editor.ts
11
+ const PRESENTATION_PART_PATH = "ppt/presentation.xml";
12
+ const MEDIA_DIR = "ppt/media";
13
+ const SLIDE_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.presentationml.slide+xml";
14
+ const SLIDE_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide";
15
+ function directChild(parent, tag) {
16
+ for (const child of parent.children) if (child.type === "element" && child.tag === tag) return child;
17
+ }
18
+ function attrValue(element, name) {
19
+ for (const a of element.attributes) if (a.name === name) return a.value;
20
+ }
21
+ function findPresentationRoot(pkg) {
22
+ const root = (0, ooxml_js.rootElement)(pkg.parts[PRESENTATION_PART_PATH]);
23
+ if (root === void 0) throw new Error(`package has no root element at ${PRESENTATION_PART_PATH}`);
24
+ return root;
25
+ }
26
+ function findSldIdLst(presentationRoot) {
27
+ const sldIdLst = directChild(presentationRoot, "p:sldIdLst");
28
+ if (sldIdLst === void 0) throw new Error(`${PRESENTATION_PART_PATH} has no p:sldIdLst element`);
29
+ return sldIdLst;
30
+ }
31
+ function findSldSz(presentationRoot) {
32
+ const sldSz = directChild(presentationRoot, "p:sldSz");
33
+ if (sldSz === void 0) throw new Error(`${PRESENTATION_PART_PATH} has no p:sldSz element`);
34
+ return sldSz;
35
+ }
36
+ function nextSlideId(sldIdLst) {
37
+ let max = 255;
38
+ for (const child of sldIdLst.children) {
39
+ if (child.type !== "element" || child.tag !== "p:sldId") continue;
40
+ const id = attrValue(child, "id");
41
+ if (id === void 0) continue;
42
+ const n = Number.parseInt(id, 10);
43
+ if (!Number.isNaN(n) && n > max) max = n;
44
+ }
45
+ return max + 1;
46
+ }
47
+ function nextSlidePartIndex(pkg) {
48
+ const pattern = /^ppt\/slides\/slide(\d+)\.xml$/;
49
+ let max = 0;
50
+ for (const path of Object.keys(pkg.parts)) {
51
+ const match = pattern.exec(path);
52
+ if (match === null) continue;
53
+ const digits = match[1];
54
+ if (digits === void 0) continue;
55
+ const n = Number.parseInt(digits, 10);
56
+ if (n > max) max = n;
57
+ }
58
+ return max + 1;
59
+ }
60
+ function buildEmptySlideRoot() {
61
+ return require_xml_fragment.el("p:sld", {
62
+ "xmlns:p": require_edit_pptx_scaffold.PML_NS,
63
+ "xmlns:a": require_edit_pptx_scaffold.DML_NS,
64
+ "xmlns:r": require_edit_pptx_scaffold.R_NS
65
+ }, [require_xml_fragment.el("p:cSld", {}, [require_edit_pptx_scaffold.buildEmptyGroupSpTree()])]);
66
+ }
67
+ var PptxEditor = class {
68
+ pkg;
69
+ constructor(pkg) {
70
+ this.pkg = pkg;
71
+ }
72
+ slides() {
73
+ const sldIdLst = findSldIdLst(findPresentationRoot(this.pkg));
74
+ const presentationRels = (0, ooxml_js.resolveRelationships)(this.pkg, PRESENTATION_PART_PATH);
75
+ const out = [];
76
+ for (const child of sldIdLst.children) {
77
+ if (child.type !== "element" || child.tag !== "p:sldId") continue;
78
+ const rId = attrValue(child, "r:id");
79
+ if (rId === void 0) continue;
80
+ const rel = presentationRels.get(rId);
81
+ if (rel === void 0) continue;
82
+ const slideRoot = (0, ooxml_js.rootElement)(this.pkg.parts[rel.target]);
83
+ if (slideRoot === void 0) continue;
84
+ const context = {
85
+ pkg: this.pkg,
86
+ slidePartPath: rel.target,
87
+ mediaDir: MEDIA_DIR
88
+ };
89
+ out.push(new require_edit_pptx_slide.PptxSlide(sldIdLst.children, slideRoot, context));
90
+ }
91
+ return out;
92
+ }
93
+ addSlide() {
94
+ const sldIdLst = findSldIdLst(findPresentationRoot(this.pkg));
95
+ const partIndex = nextSlidePartIndex(this.pkg);
96
+ const slidePartPath = `ppt/slides/slide${partIndex}.xml`;
97
+ const slideRoot = buildEmptySlideRoot();
98
+ this.pkg.parts[slidePartPath] = {
99
+ kind: "xml",
100
+ nodes: [slideRoot]
101
+ };
102
+ require_opc_content_types.ensureContentTypeOverride(this.pkg, slidePartPath, SLIDE_CONTENT_TYPE);
103
+ const relationshipId = require_opc_rels.addRelationship(this.pkg, PRESENTATION_PART_PATH, {
104
+ type: SLIDE_RELATIONSHIP_TYPE,
105
+ target: `slides/slide${partIndex}.xml`
106
+ });
107
+ require_opc_rels.addRelationship(this.pkg, slidePartPath, {
108
+ type: require_edit_pptx_scaffold.SLIDE_LAYOUT_REL_TYPE,
109
+ target: require_opc_paths.buildRelativeTarget(slidePartPath, require_edit_pptx_scaffold.SLIDE_LAYOUT_PART_PATH)
110
+ });
111
+ const slideId = nextSlideId(sldIdLst);
112
+ sldIdLst.children.push(require_xml_fragment.el("p:sldId", {
113
+ id: String(slideId),
114
+ "r:id": relationshipId
115
+ }));
116
+ const context = {
117
+ pkg: this.pkg,
118
+ slidePartPath,
119
+ mediaDir: MEDIA_DIR
120
+ };
121
+ return new require_edit_pptx_slide.PptxSlide(sldIdLst.children, slideRoot, context);
122
+ }
123
+ removeSlideAt(index) {
124
+ const sldIdLst = findSldIdLst(findPresentationRoot(this.pkg));
125
+ const target = sldIdLst.children.filter((c) => c.type === "element" && c.tag === "p:sldId")[index];
126
+ if (target?.type !== "element") throw new Error(`slide index ${index} does not exist`);
127
+ const rId = attrValue(target, "r:id");
128
+ const listIndex = sldIdLst.children.indexOf(target);
129
+ sldIdLst.children.splice(listIndex, 1);
130
+ if (rId !== void 0) {
131
+ const rel = (0, ooxml_js.resolveRelationships)(this.pkg, PRESENTATION_PART_PATH).get(rId);
132
+ if (rel !== void 0) delete this.pkg.parts[rel.target];
133
+ }
134
+ }
135
+ moveSlide(from, to) {
136
+ const sldIdLst = findSldIdLst(findPresentationRoot(this.pkg));
137
+ const sldIdIndices = [];
138
+ sldIdLst.children.forEach((child, i) => {
139
+ if (child.type === "element" && child.tag === "p:sldId") sldIdIndices.push(i);
140
+ });
141
+ const fromChildIndex = sldIdIndices[from];
142
+ if (fromChildIndex === void 0) throw new Error(`slide index ${from} does not exist`);
143
+ const [moved] = sldIdLst.children.splice(fromChildIndex, 1);
144
+ if (moved === void 0) throw new Error(`slide index ${from} does not exist`);
145
+ const updatedIndices = [];
146
+ sldIdLst.children.forEach((child, i) => {
147
+ if (child.type === "element" && child.tag === "p:sldId") updatedIndices.push(i);
148
+ });
149
+ const insertAt = to < updatedIndices.length ? updatedIndices[to] ?? sldIdLst.children.length : sldIdLst.children.length;
150
+ sldIdLst.children.splice(insertAt, 0, moved);
151
+ }
152
+ get slideSize() {
153
+ const sldSz = findSldSz(findPresentationRoot(this.pkg));
154
+ const cx = attrValue(sldSz, "cx");
155
+ const cy = attrValue(sldSz, "cy");
156
+ return {
157
+ widthPt: cx === void 0 ? 0 : require_model_units.emuToPt(Number.parseInt(cx, 10)),
158
+ heightPt: cy === void 0 ? 0 : require_model_units.emuToPt(Number.parseInt(cy, 10))
159
+ };
160
+ }
161
+ set slideSize(size) {
162
+ const sldSz = findSldSz(findPresentationRoot(this.pkg));
163
+ sldSz.attributes = [{
164
+ name: "cx",
165
+ value: String(require_model_units.ptToEmu(size.widthPt))
166
+ }, {
167
+ name: "cy",
168
+ value: String(require_model_units.ptToEmu(size.heightPt))
169
+ }];
170
+ }
171
+ toPackage() {
172
+ return this.pkg;
173
+ }
174
+ toBytes() {
175
+ return (0, ooxml_js.encodePackage)(this.pkg);
176
+ }
177
+ };
178
+ function openPptx(bytes) {
179
+ return new PptxEditor((0, ooxml_js.decodePackage)(bytes));
180
+ }
181
+ function createPptx() {
182
+ return new PptxEditor(require_edit_pptx_scaffold.createEmptyPptxPackage());
183
+ }
184
+ //#endregion
185
+ exports.PptxEditor = PptxEditor;
186
+ exports.createPptx = createPptx;
187
+ exports.openPptx = openPptx;
@@ -0,0 +1,20 @@
1
+ import { s as PageSize } from "../../geometry-DvwdrIij.cjs";
2
+ import { PptxSlide } from "./slide.cjs";
3
+ import { Package } from "ooxml.js";
4
+ //#region src/edit/pptx/editor.d.ts
5
+ declare class PptxEditor {
6
+ private readonly pkg;
7
+ constructor(pkg: Package);
8
+ slides(): PptxSlide[];
9
+ addSlide(): PptxSlide;
10
+ removeSlideAt(index: number): void;
11
+ moveSlide(from: number, to: number): void;
12
+ get slideSize(): PageSize;
13
+ set slideSize(size: PageSize);
14
+ toPackage(): Package;
15
+ toBytes(): Uint8Array<ArrayBuffer>;
16
+ }
17
+ declare function openPptx(bytes: Uint8Array<ArrayBuffer>): PptxEditor;
18
+ declare function createPptx(): PptxEditor;
19
+ //#endregion
20
+ export { PptxEditor, createPptx, openPptx };
@@ -0,0 +1,20 @@
1
+ import { s as PageSize } from "../../geometry-DvwdrIij.js";
2
+ import { PptxSlide } from "./slide.js";
3
+ import { Package } from "ooxml.js";
4
+ //#region src/edit/pptx/editor.d.ts
5
+ declare class PptxEditor {
6
+ private readonly pkg;
7
+ constructor(pkg: Package);
8
+ slides(): PptxSlide[];
9
+ addSlide(): PptxSlide;
10
+ removeSlideAt(index: number): void;
11
+ moveSlide(from: number, to: number): void;
12
+ get slideSize(): PageSize;
13
+ set slideSize(size: PageSize);
14
+ toPackage(): Package;
15
+ toBytes(): Uint8Array<ArrayBuffer>;
16
+ }
17
+ declare function openPptx(bytes: Uint8Array<ArrayBuffer>): PptxEditor;
18
+ declare function createPptx(): PptxEditor;
19
+ //#endregion
20
+ export { PptxEditor, createPptx, openPptx };
@@ -0,0 +1,184 @@
1
+ import { el } from "../../xml/fragment.js";
2
+ import { emuToPt, ptToEmu } from "../../model/units.js";
3
+ import { buildRelativeTarget } from "../../opc/paths.js";
4
+ import { addRelationship } from "../../opc/rels.js";
5
+ import { ensureContentTypeOverride } from "../../opc/content-types.js";
6
+ import { DML_NS, PML_NS, R_NS, SLIDE_LAYOUT_PART_PATH, SLIDE_LAYOUT_REL_TYPE, buildEmptyGroupSpTree, createEmptyPptxPackage } from "./scaffold.js";
7
+ import { PptxSlide } from "./slide.js";
8
+ import { decodePackage, encodePackage, resolveRelationships, rootElement } from "ooxml.js";
9
+ //#region src/edit/pptx/editor.ts
10
+ const PRESENTATION_PART_PATH = "ppt/presentation.xml";
11
+ const MEDIA_DIR = "ppt/media";
12
+ const SLIDE_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.presentationml.slide+xml";
13
+ const SLIDE_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide";
14
+ function directChild(parent, tag) {
15
+ for (const child of parent.children) if (child.type === "element" && child.tag === tag) return child;
16
+ }
17
+ function attrValue(element, name) {
18
+ for (const a of element.attributes) if (a.name === name) return a.value;
19
+ }
20
+ function findPresentationRoot(pkg) {
21
+ const root = rootElement(pkg.parts[PRESENTATION_PART_PATH]);
22
+ if (root === void 0) throw new Error(`package has no root element at ${PRESENTATION_PART_PATH}`);
23
+ return root;
24
+ }
25
+ function findSldIdLst(presentationRoot) {
26
+ const sldIdLst = directChild(presentationRoot, "p:sldIdLst");
27
+ if (sldIdLst === void 0) throw new Error(`${PRESENTATION_PART_PATH} has no p:sldIdLst element`);
28
+ return sldIdLst;
29
+ }
30
+ function findSldSz(presentationRoot) {
31
+ const sldSz = directChild(presentationRoot, "p:sldSz");
32
+ if (sldSz === void 0) throw new Error(`${PRESENTATION_PART_PATH} has no p:sldSz element`);
33
+ return sldSz;
34
+ }
35
+ function nextSlideId(sldIdLst) {
36
+ let max = 255;
37
+ for (const child of sldIdLst.children) {
38
+ if (child.type !== "element" || child.tag !== "p:sldId") continue;
39
+ const id = attrValue(child, "id");
40
+ if (id === void 0) continue;
41
+ const n = Number.parseInt(id, 10);
42
+ if (!Number.isNaN(n) && n > max) max = n;
43
+ }
44
+ return max + 1;
45
+ }
46
+ function nextSlidePartIndex(pkg) {
47
+ const pattern = /^ppt\/slides\/slide(\d+)\.xml$/;
48
+ let max = 0;
49
+ for (const path of Object.keys(pkg.parts)) {
50
+ const match = pattern.exec(path);
51
+ if (match === null) continue;
52
+ const digits = match[1];
53
+ if (digits === void 0) continue;
54
+ const n = Number.parseInt(digits, 10);
55
+ if (n > max) max = n;
56
+ }
57
+ return max + 1;
58
+ }
59
+ function buildEmptySlideRoot() {
60
+ return el("p:sld", {
61
+ "xmlns:p": PML_NS,
62
+ "xmlns:a": DML_NS,
63
+ "xmlns:r": R_NS
64
+ }, [el("p:cSld", {}, [buildEmptyGroupSpTree()])]);
65
+ }
66
+ var PptxEditor = class {
67
+ pkg;
68
+ constructor(pkg) {
69
+ this.pkg = pkg;
70
+ }
71
+ slides() {
72
+ const sldIdLst = findSldIdLst(findPresentationRoot(this.pkg));
73
+ const presentationRels = resolveRelationships(this.pkg, PRESENTATION_PART_PATH);
74
+ const out = [];
75
+ for (const child of sldIdLst.children) {
76
+ if (child.type !== "element" || child.tag !== "p:sldId") continue;
77
+ const rId = attrValue(child, "r:id");
78
+ if (rId === void 0) continue;
79
+ const rel = presentationRels.get(rId);
80
+ if (rel === void 0) continue;
81
+ const slideRoot = rootElement(this.pkg.parts[rel.target]);
82
+ if (slideRoot === void 0) continue;
83
+ const context = {
84
+ pkg: this.pkg,
85
+ slidePartPath: rel.target,
86
+ mediaDir: MEDIA_DIR
87
+ };
88
+ out.push(new PptxSlide(sldIdLst.children, slideRoot, context));
89
+ }
90
+ return out;
91
+ }
92
+ addSlide() {
93
+ const sldIdLst = findSldIdLst(findPresentationRoot(this.pkg));
94
+ const partIndex = nextSlidePartIndex(this.pkg);
95
+ const slidePartPath = `ppt/slides/slide${partIndex}.xml`;
96
+ const slideRoot = buildEmptySlideRoot();
97
+ this.pkg.parts[slidePartPath] = {
98
+ kind: "xml",
99
+ nodes: [slideRoot]
100
+ };
101
+ ensureContentTypeOverride(this.pkg, slidePartPath, SLIDE_CONTENT_TYPE);
102
+ const relationshipId = addRelationship(this.pkg, PRESENTATION_PART_PATH, {
103
+ type: SLIDE_RELATIONSHIP_TYPE,
104
+ target: `slides/slide${partIndex}.xml`
105
+ });
106
+ addRelationship(this.pkg, slidePartPath, {
107
+ type: SLIDE_LAYOUT_REL_TYPE,
108
+ target: buildRelativeTarget(slidePartPath, SLIDE_LAYOUT_PART_PATH)
109
+ });
110
+ const slideId = nextSlideId(sldIdLst);
111
+ sldIdLst.children.push(el("p:sldId", {
112
+ id: String(slideId),
113
+ "r:id": relationshipId
114
+ }));
115
+ const context = {
116
+ pkg: this.pkg,
117
+ slidePartPath,
118
+ mediaDir: MEDIA_DIR
119
+ };
120
+ return new PptxSlide(sldIdLst.children, slideRoot, context);
121
+ }
122
+ removeSlideAt(index) {
123
+ const sldIdLst = findSldIdLst(findPresentationRoot(this.pkg));
124
+ const target = sldIdLst.children.filter((c) => c.type === "element" && c.tag === "p:sldId")[index];
125
+ if (target?.type !== "element") throw new Error(`slide index ${index} does not exist`);
126
+ const rId = attrValue(target, "r:id");
127
+ const listIndex = sldIdLst.children.indexOf(target);
128
+ sldIdLst.children.splice(listIndex, 1);
129
+ if (rId !== void 0) {
130
+ const rel = resolveRelationships(this.pkg, PRESENTATION_PART_PATH).get(rId);
131
+ if (rel !== void 0) delete this.pkg.parts[rel.target];
132
+ }
133
+ }
134
+ moveSlide(from, to) {
135
+ const sldIdLst = findSldIdLst(findPresentationRoot(this.pkg));
136
+ const sldIdIndices = [];
137
+ sldIdLst.children.forEach((child, i) => {
138
+ if (child.type === "element" && child.tag === "p:sldId") sldIdIndices.push(i);
139
+ });
140
+ const fromChildIndex = sldIdIndices[from];
141
+ if (fromChildIndex === void 0) throw new Error(`slide index ${from} does not exist`);
142
+ const [moved] = sldIdLst.children.splice(fromChildIndex, 1);
143
+ if (moved === void 0) throw new Error(`slide index ${from} does not exist`);
144
+ const updatedIndices = [];
145
+ sldIdLst.children.forEach((child, i) => {
146
+ if (child.type === "element" && child.tag === "p:sldId") updatedIndices.push(i);
147
+ });
148
+ const insertAt = to < updatedIndices.length ? updatedIndices[to] ?? sldIdLst.children.length : sldIdLst.children.length;
149
+ sldIdLst.children.splice(insertAt, 0, moved);
150
+ }
151
+ get slideSize() {
152
+ const sldSz = findSldSz(findPresentationRoot(this.pkg));
153
+ const cx = attrValue(sldSz, "cx");
154
+ const cy = attrValue(sldSz, "cy");
155
+ return {
156
+ widthPt: cx === void 0 ? 0 : emuToPt(Number.parseInt(cx, 10)),
157
+ heightPt: cy === void 0 ? 0 : emuToPt(Number.parseInt(cy, 10))
158
+ };
159
+ }
160
+ set slideSize(size) {
161
+ const sldSz = findSldSz(findPresentationRoot(this.pkg));
162
+ sldSz.attributes = [{
163
+ name: "cx",
164
+ value: String(ptToEmu(size.widthPt))
165
+ }, {
166
+ name: "cy",
167
+ value: String(ptToEmu(size.heightPt))
168
+ }];
169
+ }
170
+ toPackage() {
171
+ return this.pkg;
172
+ }
173
+ toBytes() {
174
+ return encodePackage(this.pkg);
175
+ }
176
+ };
177
+ function openPptx(bytes) {
178
+ return new PptxEditor(decodePackage(bytes));
179
+ }
180
+ function createPptx() {
181
+ return new PptxEditor(createEmptyPptxPackage());
182
+ }
183
+ //#endregion
184
+ export { PptxEditor, createPptx, openPptx };
@@ -0,0 +1,27 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_opc_media = require("../../opc/media.cjs");
3
+ const require_edit_pptx_shape = require("./shape.cjs");
4
+ //#region src/edit/pptx/image.ts
5
+ function nextShapeId(slideRoot) {
6
+ let max = 0;
7
+ const stack = [slideRoot];
8
+ while (stack.length > 0) {
9
+ const node = stack.pop();
10
+ if (node === void 0) continue;
11
+ if (node.tag === "p:cNvPr") {
12
+ for (const a of node.attributes) if (a.name === "id") {
13
+ const n = Number.parseInt(a.value, 10);
14
+ if (!Number.isNaN(n) && n > max) max = n;
15
+ }
16
+ }
17
+ for (const child of node.children) if (child.type === "element") stack.push(child);
18
+ }
19
+ return max + 1;
20
+ }
21
+ function insertPictureShapeMedia(context, slideRoot, frame, image) {
22
+ const { relationshipId } = require_opc_media.addImageMedia(context.pkg, context.partPath, context.mediaDir, image.format, image.bytes);
23
+ const id = nextShapeId(slideRoot);
24
+ return require_edit_pptx_shape.buildPictureShape(frame, relationshipId, id);
25
+ }
26
+ //#endregion
27
+ exports.insertPictureShapeMedia = insertPictureShapeMedia;
@@ -0,0 +1,2 @@
1
+ import { n as MediaContext, r as insertPictureShapeMedia, t as ImageInit } from "../../image-BZDy72Jb.cjs";
2
+ export { ImageInit, MediaContext, insertPictureShapeMedia };
@@ -0,0 +1,2 @@
1
+ import { n as MediaContext, r as insertPictureShapeMedia, t as ImageInit } from "../../image-B-xQWYYS.js";
2
+ export { ImageInit, MediaContext, insertPictureShapeMedia };