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,414 @@
1
+ import { COLOR_BLACK as COLOR_BLACK$1, rgbHexToColor } from "../model/color.js";
2
+ import { DEFAULT_LAYOUT_FONT } from "../model/style.js";
3
+ import { alignmentOffsetPt, lineNaturalHeightPt, sumColumnWidthsPt, toStyledRuns } from "./shared.js";
4
+ import { throwIfAborted } from "../ports/abort.js";
5
+ import { LAYOUT_FORMAT_VERSION } from "document-schema.js";
6
+ import { wrapRunsToWidth } from "pdf-codec";
7
+ //#region src/layout/sheets.ts
8
+ const DEFAULT_COLUMN_WIDTH_PT = 64;
9
+ const DEFAULT_ROW_HEIGHT_PT = 15;
10
+ const NOMINAL_CELL_TEXT_SIZE_PT = 10;
11
+ const HEADER_LABEL_SIZE_PT = 8;
12
+ const CELL_TEXT_PADDING_PT = 2;
13
+ const HEADER_LABEL_PADDING_PT = 2;
14
+ const MINIMUM_SCALE = .01;
15
+ const NUMERIC_OVERFLOW_TEXT = "###";
16
+ const GRIDLINE_COLOR = rgbHexToColor("#D0D0D0");
17
+ const GRIDLINE_WIDTH_PT = .5;
18
+ const HEADER_LABEL_COLOR = rgbHexToColor("#606060");
19
+ function columnLetters(index) {
20
+ let n = index + 1;
21
+ let letters = "";
22
+ while (n > 0) {
23
+ const remainder = (n - 1) % 26;
24
+ letters = String.fromCharCode(65 + remainder) + letters;
25
+ n = Math.floor((n - 1) / 26);
26
+ }
27
+ return letters;
28
+ }
29
+ function resolvePrintRange(sheet) {
30
+ if (sheet.printSettings.printRange !== void 0) return sheet.printSettings.printRange;
31
+ if (sheet.cells.length === 0) return;
32
+ let startRow = Number.POSITIVE_INFINITY;
33
+ let startColumn = Number.POSITIVE_INFINITY;
34
+ let endRow = Number.NEGATIVE_INFINITY;
35
+ let endColumn = Number.NEGATIVE_INFINITY;
36
+ for (const cell of sheet.cells) {
37
+ startRow = Math.min(startRow, cell.row);
38
+ startColumn = Math.min(startColumn, cell.column);
39
+ endRow = Math.max(endRow, cell.row + (cell.rowSpan ?? 1) - 1);
40
+ endColumn = Math.max(endColumn, cell.column + (cell.colSpan ?? 1) - 1);
41
+ }
42
+ return {
43
+ startRow,
44
+ startColumn,
45
+ endRow,
46
+ endColumn
47
+ };
48
+ }
49
+ function resolveAxis(entries, start, end, defaultSizePt) {
50
+ const sorted = [...entries].sort((a, b) => a.index - b.index);
51
+ const resolved = [];
52
+ let pointer = 0;
53
+ let currentSizePt = defaultSizePt;
54
+ let currentHidden = false;
55
+ for (let index = start; index <= end; index++) {
56
+ while (pointer < sorted.length && sorted[pointer].index <= index) {
57
+ currentSizePt = sorted[pointer].sizePt;
58
+ currentHidden = sorted[pointer].hidden ?? false;
59
+ pointer++;
60
+ }
61
+ resolved.push({
62
+ index,
63
+ sizePt: currentHidden ? 0 : currentSizePt,
64
+ hidden: currentHidden
65
+ });
66
+ }
67
+ return resolved;
68
+ }
69
+ function computeHeaderGutter(printSettings, range, measurer) {
70
+ if (!printSettings.headers) return {
71
+ widthPt: 0,
72
+ heightPt: 0
73
+ };
74
+ const widestRowLabel = String(range.endRow + 1);
75
+ return {
76
+ widthPt: measurer.widthOfTextAtSize(widestRowLabel, DEFAULT_LAYOUT_FONT, HEADER_LABEL_SIZE_PT) + 4,
77
+ heightPt: measurer.lineHeightAtSize(DEFAULT_LAYOUT_FONT, HEADER_LABEL_SIZE_PT)
78
+ };
79
+ }
80
+ function resolveScale(printSettings, availableWidthPt, availableHeightPt, totalContentWidthPt, totalContentHeightPt) {
81
+ if (printSettings.scale !== void 0) return Math.max(printSettings.scale / 100, MINIMUM_SCALE);
82
+ if (printSettings.fitToPages !== void 0) {
83
+ const budgetWidthPt = availableWidthPt * printSettings.fitToPages.width;
84
+ const budgetHeightPt = availableHeightPt * printSettings.fitToPages.height;
85
+ const widthRatio = totalContentWidthPt > 0 ? budgetWidthPt / totalContentWidthPt : 1;
86
+ const heightRatio = totalContentHeightPt > 0 ? budgetHeightPt / totalContentHeightPt : 1;
87
+ return Math.max(Math.min(widthRatio, heightRatio, 1), MINIMUM_SCALE);
88
+ }
89
+ return 1;
90
+ }
91
+ function partitionIndices(indices, sizeOf, availablePt, manualBreaks) {
92
+ const bands = [];
93
+ let current = [];
94
+ let currentSizePt = 0;
95
+ for (const index of indices) {
96
+ if (manualBreaks.has(index) && current.length > 0) {
97
+ bands.push(current);
98
+ current = [];
99
+ currentSizePt = 0;
100
+ }
101
+ const sizePt = sizeOf(index);
102
+ if (current.length > 0 && currentSizePt + sizePt > availablePt) {
103
+ bands.push(current);
104
+ current = [];
105
+ currentSizePt = 0;
106
+ }
107
+ current.push(index);
108
+ currentSizePt += sizePt;
109
+ }
110
+ if (current.length > 0) bands.push(current);
111
+ return bands;
112
+ }
113
+ function cellStyledRuns(cell) {
114
+ if (cell.runs !== void 0 && cell.runs.length > 0) {
115
+ const runsWithNominalSize = cell.runs.map((run) => run.sizePt === void 0 ? {
116
+ ...run,
117
+ sizePt: NOMINAL_CELL_TEXT_SIZE_PT
118
+ } : run);
119
+ return toStyledRuns(runsWithNominalSize);
120
+ }
121
+ return [{
122
+ text: cell.displayText,
123
+ font: DEFAULT_LAYOUT_FONT,
124
+ sizePt: NOMINAL_CELL_TEXT_SIZE_PT,
125
+ color: COLOR_BLACK$1
126
+ }];
127
+ }
128
+ function isNumericLikeValue(kind) {
129
+ return kind === "number" || kind === "percentage" || kind === "currency" || kind === "date" || kind === "time";
130
+ }
131
+ function defaultAlignmentForValue(kind) {
132
+ if (isNumericLikeValue(kind)) return "right";
133
+ if (kind === "boolean" || kind === "error") return "center";
134
+ return "left";
135
+ }
136
+ function isCellVisuallyEmpty(cell) {
137
+ return cell === void 0 || cell.value.kind === "empty" && cell.displayText.length === 0;
138
+ }
139
+ function truncateFragmentsToWidth(fragments, measurer, maxWidthPt) {
140
+ const result = [];
141
+ for (const fragment of fragments) {
142
+ if (fragment.xOffsetPt >= maxWidthPt) break;
143
+ const remainingWidthPt = maxWidthPt - fragment.xOffsetPt;
144
+ if (measurer.widthOfTextAtSize(fragment.text, fragment.font, fragment.sizePt) <= remainingWidthPt) {
145
+ result.push(fragment);
146
+ continue;
147
+ }
148
+ const chars = Array.from(fragment.text);
149
+ let width = 0;
150
+ let fitCount = 0;
151
+ for (const char of chars) {
152
+ const charWidthPt = measurer.widthOfTextAtSize(char, fragment.font, fragment.sizePt);
153
+ if (width + charWidthPt > remainingWidthPt) break;
154
+ width += charWidthPt;
155
+ fitCount++;
156
+ }
157
+ if (fitCount > 0) result.push({
158
+ ...fragment,
159
+ text: chars.slice(0, fitCount).join("")
160
+ });
161
+ break;
162
+ }
163
+ return result;
164
+ }
165
+ function buildPositionedAxis(repeatIndices, repeatSizePtOf, bandIndices, bandSizePtOf) {
166
+ const indices = [...repeatIndices, ...bandIndices];
167
+ const sizesPt = [...repeatIndices.map(repeatSizePtOf), ...bandIndices.map(bandSizePtOf)];
168
+ const offsetsPt = [0];
169
+ let running = 0;
170
+ for (const size of sizesPt) {
171
+ running += size;
172
+ offsetsPt.push(running);
173
+ }
174
+ return {
175
+ indices,
176
+ sizesPt,
177
+ offsetsPt,
178
+ positionByIndex: new Map(indices.map((index, position) => [index, position]))
179
+ };
180
+ }
181
+ function axisSpanSizePt(axis, startIndex, span) {
182
+ const startPosition = axis.positionByIndex.get(startIndex);
183
+ if (startPosition === void 0) return 0;
184
+ return sumColumnWidthsPt(axis.sizesPt, startPosition, span);
185
+ }
186
+ function renderCellText(cell, rowCells, columnAxis, rowAxis, gridLeftXPt, gridTopYDownPt, pageHeightPt, measurer, out) {
187
+ const columnPosition = columnAxis.positionByIndex.get(cell.column);
188
+ const rowPosition = rowAxis.positionByIndex.get(cell.row);
189
+ if (columnPosition === void 0 || rowPosition === void 0) return;
190
+ const ownWidthPt = axisSpanSizePt(columnAxis, cell.column, cell.colSpan ?? 1);
191
+ const heightPt = axisSpanSizePt(rowAxis, cell.row, cell.rowSpan ?? 1);
192
+ const xLeftPt = gridLeftXPt + columnAxis.offsetsPt[columnPosition];
193
+ const yTopDownPt = gridTopYDownPt + rowAxis.offsetsPt[rowPosition];
194
+ const alignment = defaultAlignmentForValue(cell.value.kind);
195
+ const numericLike = isNumericLikeValue(cell.value.kind);
196
+ const styledRuns = cellStyledRuns(cell);
197
+ const naturalLine = wrapRunsToWidth(styledRuns, measurer, Number.POSITIVE_INFINITY)[0];
198
+ let availableWidthPt = Math.max(0, ownWidthPt - 4);
199
+ let fragments = naturalLine.fragments;
200
+ let lineWidthPt = naturalLine.widthPt;
201
+ if (lineWidthPt > availableWidthPt) if (numericLike) {
202
+ const overflowRuns = [{
203
+ text: NUMERIC_OVERFLOW_TEXT,
204
+ font: styledRuns[0].font,
205
+ sizePt: styledRuns[0].sizePt,
206
+ color: styledRuns[0].color
207
+ }];
208
+ const overflowLine = wrapRunsToWidth(overflowRuns, measurer, Number.POSITIVE_INFINITY)[0];
209
+ fragments = overflowLine.fragments;
210
+ lineWidthPt = overflowLine.widthPt;
211
+ } else if (cell.value.kind === "string") {
212
+ let spillColumn = cell.column + (cell.colSpan ?? 1);
213
+ while (lineWidthPt > availableWidthPt) {
214
+ const neighborPosition = columnAxis.positionByIndex.get(spillColumn);
215
+ if (neighborPosition === void 0 || !isCellVisuallyEmpty(rowCells?.get(spillColumn))) break;
216
+ availableWidthPt += columnAxis.sizesPt[neighborPosition];
217
+ spillColumn++;
218
+ }
219
+ if (lineWidthPt > availableWidthPt) fragments = truncateFragmentsToWidth(fragments, measurer, availableWidthPt);
220
+ } else fragments = truncateFragmentsToWidth(fragments, measurer, availableWidthPt);
221
+ const alignOffsetPt = alignmentOffsetPt(alignment, availableWidthPt, lineWidthPt);
222
+ const textStartXPt = xLeftPt + CELL_TEXT_PADDING_PT + alignOffsetPt;
223
+ const lineHeightPt = lineNaturalHeightPt(naturalLine, measurer, styledRuns[0]);
224
+ const baselineYDownPt = yTopDownPt + Math.max(CELL_TEXT_PADDING_PT, heightPt - CELL_TEXT_PADDING_PT - lineHeightPt) + naturalLine.ascentPt;
225
+ for (const fragment of fragments) {
226
+ const textItem = {
227
+ kind: "text",
228
+ text: fragment.text,
229
+ xPt: textStartXPt + fragment.xOffsetPt,
230
+ yPt: pageHeightPt - baselineYDownPt,
231
+ font: fragment.font,
232
+ sizePt: fragment.sizePt,
233
+ color: fragment.color,
234
+ underline: fragment.underline,
235
+ sourcePath: fragment.sourcePath
236
+ };
237
+ out.push(textItem);
238
+ }
239
+ }
240
+ function renderHeaderLabels(gutter, columnAxis, rowAxis, gridLeftXPt, gridTopYDownPt, pageHeightPt, measurer, out) {
241
+ const lineHeightPt = measurer.lineHeightAtSize(DEFAULT_LAYOUT_FONT, HEADER_LABEL_SIZE_PT);
242
+ const ascentPt = measurer.ascenderAtSize(DEFAULT_LAYOUT_FONT, HEADER_LABEL_SIZE_PT);
243
+ columnAxis.indices.forEach((columnIndex, position) => {
244
+ const label = columnLetters(columnIndex);
245
+ const widthPt = columnAxis.sizesPt[position];
246
+ const labelWidthPt = measurer.widthOfTextAtSize(label, DEFAULT_LAYOUT_FONT, HEADER_LABEL_SIZE_PT);
247
+ const xPt = gridLeftXPt + columnAxis.offsetsPt[position] + alignmentOffsetPt("center", widthPt, labelWidthPt);
248
+ const baselineYDownPt = gridTopYDownPt - gutter.heightPt + (gutter.heightPt - lineHeightPt) / 2 + ascentPt;
249
+ out.push({
250
+ kind: "text",
251
+ text: label,
252
+ xPt,
253
+ yPt: pageHeightPt - baselineYDownPt,
254
+ font: DEFAULT_LAYOUT_FONT,
255
+ sizePt: HEADER_LABEL_SIZE_PT,
256
+ color: HEADER_LABEL_COLOR
257
+ });
258
+ });
259
+ rowAxis.indices.forEach((rowIndex, position) => {
260
+ const label = String(rowIndex + 1);
261
+ const heightPt = rowAxis.sizesPt[position];
262
+ const labelWidthPt = measurer.widthOfTextAtSize(label, DEFAULT_LAYOUT_FONT, HEADER_LABEL_SIZE_PT);
263
+ const xPt = gridLeftXPt - gutter.widthPt + Math.max(HEADER_LABEL_PADDING_PT, gutter.widthPt - HEADER_LABEL_PADDING_PT - labelWidthPt);
264
+ const baselineYDownPt = gridTopYDownPt + rowAxis.offsetsPt[position] + Math.max(0, (heightPt - lineHeightPt) / 2) + ascentPt;
265
+ out.push({
266
+ kind: "text",
267
+ text: label,
268
+ xPt,
269
+ yPt: pageHeightPt - baselineYDownPt,
270
+ font: DEFAULT_LAYOUT_FONT,
271
+ sizePt: HEADER_LABEL_SIZE_PT,
272
+ color: HEADER_LABEL_COLOR
273
+ });
274
+ });
275
+ }
276
+ function renderGridlines(gridLeftXPt, gridTopYDownPt, gridWidthPt, gridHeightPt, columnOffsetsPt, rowOffsetsPt, pageHeightPt, out) {
277
+ for (const offsetPt of columnOffsetsPt) {
278
+ const xPt = gridLeftXPt + offsetPt;
279
+ const line = {
280
+ kind: "line",
281
+ x1Pt: xPt,
282
+ y1Pt: pageHeightPt - gridTopYDownPt,
283
+ x2Pt: xPt,
284
+ y2Pt: pageHeightPt - (gridTopYDownPt + gridHeightPt),
285
+ color: GRIDLINE_COLOR,
286
+ widthPt: GRIDLINE_WIDTH_PT
287
+ };
288
+ out.push(line);
289
+ }
290
+ for (const offsetPt of rowOffsetsPt) {
291
+ const yDownPt = gridTopYDownPt + offsetPt;
292
+ const line = {
293
+ kind: "line",
294
+ x1Pt: gridLeftXPt,
295
+ y1Pt: pageHeightPt - yDownPt,
296
+ x2Pt: gridLeftXPt + gridWidthPt,
297
+ y2Pt: pageHeightPt - yDownPt,
298
+ color: GRIDLINE_COLOR,
299
+ widthPt: GRIDLINE_WIDTH_PT
300
+ };
301
+ out.push(line);
302
+ }
303
+ }
304
+ function bandableIndices(start, end, repeat) {
305
+ const indices = [];
306
+ for (let i = start; i <= end; i++) {
307
+ if (repeat !== void 0 && i >= repeat.start && i <= repeat.end) continue;
308
+ indices.push(i);
309
+ }
310
+ return indices;
311
+ }
312
+ function rangeIndices(start, end) {
313
+ const indices = [];
314
+ for (let i = start; i <= end; i++) indices.push(i);
315
+ return indices;
316
+ }
317
+ function convertSheetToPages(sheet, measurer, signal, out) {
318
+ throwIfAborted(signal);
319
+ const range = resolvePrintRange(sheet);
320
+ if (range === void 0) return;
321
+ const { printSettings } = sheet;
322
+ const { pageSize, margins } = printSettings;
323
+ const pageContentWidthPt = Math.max(0, pageSize.widthPt - margins.leftPt - margins.rightPt);
324
+ const pageContentHeightPt = Math.max(0, pageSize.heightPt - margins.topPt - margins.bottomPt);
325
+ const columnEntries = resolveAxis(sheet.columns.map((c) => ({
326
+ index: c.index,
327
+ sizePt: c.widthPt,
328
+ hidden: c.hidden
329
+ })), range.startColumn, range.endColumn, DEFAULT_COLUMN_WIDTH_PT);
330
+ const rowEntries = resolveAxis(sheet.rows.map((r) => ({
331
+ index: r.index,
332
+ sizePt: r.heightPt,
333
+ hidden: r.hidden
334
+ })), range.startRow, range.endRow, DEFAULT_ROW_HEIGHT_PT);
335
+ const columnSizeByIndex = new Map(columnEntries.map((e) => [e.index, e.sizePt]));
336
+ const rowSizeByIndex = new Map(rowEntries.map((e) => [e.index, e.sizePt]));
337
+ const hiddenColumnIndices = new Set(columnEntries.filter((e) => e.hidden).map((e) => e.index));
338
+ const hiddenRowIndices = new Set(rowEntries.filter((e) => e.hidden).map((e) => e.index));
339
+ const gutter = computeHeaderGutter(printSettings, range, measurer);
340
+ const repeatColumns = printSettings.repeatColumns;
341
+ const repeatRows = printSettings.repeatRows;
342
+ const repeatColumnIndices = repeatColumns === void 0 ? [] : rangeIndices(repeatColumns.start, repeatColumns.end);
343
+ const repeatRowIndices = repeatRows === void 0 ? [] : rangeIndices(repeatRows.start, repeatRows.end);
344
+ const repeatColumnsWidthPt = repeatColumnIndices.reduce((sum, i) => sum + (columnSizeByIndex.get(i) ?? 0), 0);
345
+ const repeatRowsHeightPt = repeatRowIndices.reduce((sum, i) => sum + (rowSizeByIndex.get(i) ?? 0), 0);
346
+ const bandableColumnIndices = bandableIndices(range.startColumn, range.endColumn, repeatColumns);
347
+ const bandableRowIndices = bandableIndices(range.startRow, range.endRow, repeatRows);
348
+ const availableWidthPt = Math.max(0, pageContentWidthPt - gutter.widthPt - repeatColumnsWidthPt);
349
+ const availableHeightPt = Math.max(0, pageContentHeightPt - gutter.heightPt - repeatRowsHeightPt);
350
+ const scale = resolveScale(printSettings, availableWidthPt, availableHeightPt, bandableColumnIndices.reduce((sum, i) => sum + (columnSizeByIndex.get(i) ?? 0), 0), bandableRowIndices.reduce((sum, i) => sum + (rowSizeByIndex.get(i) ?? 0), 0));
351
+ const descaledAvailableWidthPt = availableWidthPt / scale;
352
+ const descaledAvailableHeightPt = availableHeightPt / scale;
353
+ const manualBreakColumns = new Set(printSettings.manualBreaks?.columns ?? []);
354
+ const manualBreakRows = new Set(printSettings.manualBreaks?.rows ?? []);
355
+ throwIfAborted(signal);
356
+ const columnBands = partitionIndices(bandableColumnIndices, (i) => columnSizeByIndex.get(i) ?? 0, descaledAvailableWidthPt, manualBreakColumns);
357
+ const rowBands = partitionIndices(bandableRowIndices, (i) => rowSizeByIndex.get(i) ?? 0, descaledAvailableHeightPt, manualBreakRows);
358
+ const cellsByRow = /* @__PURE__ */ new Map();
359
+ for (const cell of sheet.cells) {
360
+ let row = cellsByRow.get(cell.row);
361
+ if (row === void 0) {
362
+ row = /* @__PURE__ */ new Map();
363
+ cellsByRow.set(cell.row, row);
364
+ }
365
+ row.set(cell.column, cell);
366
+ }
367
+ const scaledSizeOf = (sizeByIndex) => (index) => (sizeByIndex.get(index) ?? 0) * scale;
368
+ const unscaledSizeOf = (sizeByIndex) => (index) => sizeByIndex.get(index) ?? 0;
369
+ const bandPairs = printSettings.pageOrder === "overThenDown" ? rowBands.flatMap((rowBand) => columnBands.map((columnBand) => ({
370
+ columnBand,
371
+ rowBand
372
+ }))) : columnBands.flatMap((columnBand) => rowBands.map((rowBand) => ({
373
+ columnBand,
374
+ rowBand
375
+ })));
376
+ for (const { columnBand, rowBand } of bandPairs) {
377
+ throwIfAborted(signal);
378
+ const columnAxis = buildPositionedAxis(repeatColumnIndices, unscaledSizeOf(columnSizeByIndex), columnBand, scaledSizeOf(columnSizeByIndex));
379
+ const rowAxis = buildPositionedAxis(repeatRowIndices, unscaledSizeOf(rowSizeByIndex), rowBand, scaledSizeOf(rowSizeByIndex));
380
+ const gridLeftXPt = margins.leftPt + gutter.widthPt;
381
+ const gridTopYDownPt = margins.topPt + gutter.heightPt;
382
+ const gridWidthPt = columnAxis.offsetsPt[columnAxis.offsetsPt.length - 1];
383
+ const gridHeightPt = rowAxis.offsetsPt[rowAxis.offsetsPt.length - 1];
384
+ const items = [];
385
+ if (printSettings.gridlines) renderGridlines(gridLeftXPt, gridTopYDownPt, gridWidthPt, gridHeightPt, columnAxis.offsetsPt, rowAxis.offsetsPt, pageSize.heightPt, items);
386
+ if (printSettings.headers) renderHeaderLabels(gutter, columnAxis, rowAxis, gridLeftXPt, gridTopYDownPt, pageSize.heightPt, measurer, items);
387
+ for (const rowIndex of rowAxis.indices) {
388
+ const rowCells = cellsByRow.get(rowIndex);
389
+ if (rowCells === void 0) continue;
390
+ for (const [columnIndex, cell] of rowCells) {
391
+ throwIfAborted(signal);
392
+ if (!columnAxis.positionByIndex.has(columnIndex) || hiddenColumnIndices.has(columnIndex) || hiddenRowIndices.has(cell.row)) continue;
393
+ renderCellText(cell, rowCells, columnAxis, rowAxis, gridLeftXPt, gridTopYDownPt, pageSize.heightPt, measurer, items);
394
+ }
395
+ }
396
+ out.push({
397
+ widthPt: pageSize.widthPt,
398
+ heightPt: pageSize.heightPt,
399
+ items
400
+ });
401
+ }
402
+ }
403
+ function convertSpreadsheetToLayout(doc, options) {
404
+ const pages = [];
405
+ for (const sheet of doc.sheets) convertSheetToPages(sheet, options.measurer, options.signal, pages);
406
+ return {
407
+ formatVersion: LAYOUT_FORMAT_VERSION,
408
+ metadata: doc.metadata,
409
+ pages,
410
+ images: {}
411
+ };
412
+ }
413
+ //#endregion
414
+ export { convertSpreadsheetToLayout };
@@ -0,0 +1,194 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_geometry = require("../model/geometry.cjs");
3
+ const require_mathml_layout = require("../mathml/layout.cjs");
4
+ const require_layout_shared = require("./shared.cjs");
5
+ let document_schema_js = require("document-schema.js");
6
+ let pdf_codec = require("pdf-codec");
7
+ //#region src/layout/slides.ts
8
+ const MIN_FORMULA_SIZE_PT = 8;
9
+ function formulaSizePtFromFrame(frameHeightPt) {
10
+ return Math.max(MIN_FORMULA_SIZE_PT, frameHeightPt / 2);
11
+ }
12
+ function shapePlacement(flippedFrame, rotationDeg) {
13
+ if (rotationDeg === void 0 || rotationDeg === 0) return {
14
+ place: (p) => p,
15
+ layoutRotationDeg: void 0
16
+ };
17
+ const ccwDeg = -rotationDeg;
18
+ const center = {
19
+ x: flippedFrame.xPt + flippedFrame.widthPt / 2,
20
+ y: flippedFrame.yPt + flippedFrame.heightPt / 2
21
+ };
22
+ return {
23
+ place: (p) => (0, pdf_codec.rotatePointAboutCenter)(p, center, ccwDeg),
24
+ layoutRotationDeg: ccwDeg
25
+ };
26
+ }
27
+ function layoutParagraph(paragraph, contentLeftXDown, contentWidthPt, startYDown, slideHeightPt, placement, fontScale, spacingScale, measurer, out) {
28
+ let cursorYDown = startYDown + (paragraph.spacingBeforePt ?? 0);
29
+ const effectiveRuns = require_layout_shared.effectiveStyledRuns(paragraph.runs, fontScale);
30
+ const fallbackRun = effectiveRuns[0];
31
+ const paragraphLeftXDown = contentLeftXDown + (paragraph.indentLeftPt ?? 0);
32
+ const paragraphWidthPt = Math.max(0, contentWidthPt - (paragraph.indentLeftPt ?? 0));
33
+ (0, pdf_codec.wrapRunsToWidth)(effectiveRuns, measurer, paragraphWidthPt).forEach((line, lineIndex) => {
34
+ const scaledLineHeightPt = require_layout_shared.lineNaturalHeightPt(line, measurer, fallbackRun) * (paragraph.lineSpacing ?? 1) * spacingScale;
35
+ const baselineYDown = cursorYDown + line.ascentPt;
36
+ const firstLineIndentPt = lineIndex === 0 ? paragraph.indentFirstLinePt ?? 0 : 0;
37
+ const alignOffsetPt = require_layout_shared.alignmentOffsetPt(paragraph.alignment, paragraphWidthPt, line.widthPt);
38
+ for (const fragment of line.fragments) {
39
+ const unrotated = {
40
+ x: paragraphLeftXDown + firstLineIndentPt + alignOffsetPt + fragment.xOffsetPt,
41
+ y: slideHeightPt - baselineYDown
42
+ };
43
+ const placed = placement.place(unrotated);
44
+ const textItem = {
45
+ kind: "text",
46
+ text: fragment.text,
47
+ xPt: placed.x,
48
+ yPt: placed.y,
49
+ font: fragment.font,
50
+ sizePt: fragment.sizePt,
51
+ color: fragment.color,
52
+ underline: fragment.underline,
53
+ rotationDeg: placement.layoutRotationDeg,
54
+ sourcePath: fragment.sourcePath
55
+ };
56
+ out.push(textItem);
57
+ if (fragment.hyperlink !== void 0) {
58
+ const fragmentWidthPt = measurer.widthOfTextAtSize(fragment.text, fragment.font, fragment.sizePt);
59
+ const linkBottomLeft = placement.place({
60
+ x: unrotated.x,
61
+ y: unrotated.y + line.descentPt
62
+ });
63
+ const link = {
64
+ kind: "link",
65
+ uri: fragment.hyperlink,
66
+ xPt: linkBottomLeft.x,
67
+ yPt: linkBottomLeft.y,
68
+ widthPt: fragmentWidthPt,
69
+ heightPt: line.ascentPt - line.descentPt,
70
+ sourcePath: fragment.sourcePath
71
+ };
72
+ out.push(link);
73
+ }
74
+ }
75
+ cursorYDown += scaledLineHeightPt;
76
+ });
77
+ cursorYDown += paragraph.spacingAfterPt ?? 0;
78
+ return cursorYDown;
79
+ }
80
+ function layoutTable(table, contentLeftXDown, contentWidthPt, startYDown, slideHeightPt, placement, measurer, out) {
81
+ let cursorYDown = startYDown;
82
+ const gridWidthPt = table.columnWidthsPt.reduce((sum, w) => sum + w, 0);
83
+ const scale = gridWidthPt > 0 ? contentWidthPt / gridWidthPt : 1;
84
+ for (const row of table.rows) {
85
+ const rowHeightPt = row.heightPt ?? require_layout_shared.estimateRowHeightPt(row, measurer, table.columnWidthsPt, scale);
86
+ let cellXDown = contentLeftXDown;
87
+ let colIndex = 0;
88
+ for (const cell of row.cells) {
89
+ const span = cell.colSpan ?? 1;
90
+ const cellWidthPt = require_layout_shared.sumColumnWidthsPt(table.columnWidthsPt, colIndex, span) * scale;
91
+ if (cell.background !== void 0 && placement.layoutRotationDeg === void 0) {
92
+ const cellFrame = require_model_geometry.flipY({
93
+ xPt: cellXDown,
94
+ yPt: cursorYDown,
95
+ widthPt: cellWidthPt,
96
+ heightPt: rowHeightPt
97
+ }, slideHeightPt);
98
+ out.push({
99
+ kind: "rect",
100
+ xPt: cellFrame.xPt,
101
+ yPt: cellFrame.yPt,
102
+ widthPt: cellFrame.widthPt,
103
+ heightPt: cellFrame.heightPt,
104
+ fill: cell.background,
105
+ sourcePath: table.sourcePath
106
+ });
107
+ }
108
+ let cellCursorYDown = cursorYDown;
109
+ for (const block of cell.blocks) if (block.kind === "paragraph") cellCursorYDown = layoutParagraph(block, cellXDown, cellWidthPt, cellCursorYDown, slideHeightPt, placement, 1, 1, measurer, out);
110
+ cellXDown += cellWidthPt;
111
+ colIndex += span;
112
+ }
113
+ cursorYDown += rowHeightPt;
114
+ }
115
+ return cursorYDown;
116
+ }
117
+ function layoutShapeFormula(block, flippedFrame, formulaContext) {
118
+ const embedded = block.sourcePath === void 0 ? void 0 : formulaContext.formulas.get(block.sourcePath);
119
+ if (embedded === void 0) return;
120
+ const sizePt = formulaSizePtFromFrame(block.frame.heightPt);
121
+ const metrics = (0, pdf_codec.loadMathFont)().metricsAt(sizePt);
122
+ const { box } = require_mathml_layout.layoutFormula(embedded.mathml, {
123
+ metrics,
124
+ sizePt,
125
+ color: document_schema_js.COLOR_BLACK
126
+ });
127
+ formulaContext.positioned.push({
128
+ pageIndex: formulaContext.pageIndex,
129
+ xPt: flippedFrame.xPt,
130
+ yPt: flippedFrame.yPt,
131
+ box
132
+ });
133
+ }
134
+ function convertShape(shape, slideHeightPt, measurer, images, out, formulaContext) {
135
+ const flippedFrame = require_model_geometry.flipY(shape.frame, slideHeightPt);
136
+ const placement = shapePlacement(flippedFrame, shape.rotationDeg);
137
+ const contentLeftXDown = shape.frame.xPt + shape.insetLeftPt;
138
+ const contentWidthPt = Math.max(0, shape.frame.widthPt - shape.insetLeftPt - shape.insetRightPt);
139
+ const fontScale = shape.fontScale ?? 1;
140
+ const spacingScale = 1 - (shape.lineSpacingReduction ?? 0);
141
+ let cursorYDown = shape.frame.yPt + shape.insetTopPt;
142
+ for (const block of shape.blocks) if (block.kind === "paragraph") cursorYDown = layoutParagraph(block, contentLeftXDown, contentWidthPt, cursorYDown, slideHeightPt, placement, fontScale, spacingScale, measurer, out);
143
+ else if (block.kind === "image") {
144
+ const imageId = require_layout_shared.registerImage(block, images);
145
+ const placed = placement.place({
146
+ x: flippedFrame.xPt,
147
+ y: flippedFrame.yPt
148
+ });
149
+ const imageItem = {
150
+ kind: "image",
151
+ imageId,
152
+ xPt: placed.x,
153
+ yPt: placed.y,
154
+ widthPt: flippedFrame.widthPt,
155
+ heightPt: flippedFrame.heightPt,
156
+ rotationDeg: placement.layoutRotationDeg,
157
+ sourcePath: block.sourcePath
158
+ };
159
+ out.push(imageItem);
160
+ } else if (block.kind === "table") cursorYDown = layoutTable(block, contentLeftXDown, contentWidthPt, cursorYDown, slideHeightPt, placement, measurer, out);
161
+ else if (block.kind === "embeddedObject" && block.objectKind === "formula" && formulaContext !== void 0) layoutShapeFormula(block, flippedFrame, formulaContext);
162
+ }
163
+ function convertSlide(slide, slideIndex, measurer, images, formulas, positioned) {
164
+ const items = [];
165
+ const formulaContext = formulas === void 0 ? void 0 : {
166
+ formulas,
167
+ pageIndex: slideIndex,
168
+ positioned
169
+ };
170
+ for (const shape of slide.shapes) convertShape(shape, slide.size.heightPt, measurer, images, items, formulaContext);
171
+ return {
172
+ widthPt: slide.size.widthPt,
173
+ heightPt: slide.size.heightPt,
174
+ items,
175
+ ...slide.notes.length > 0 ? { notes: slide.notes } : {}
176
+ };
177
+ }
178
+ function convertPresentationToLayout(doc, options) {
179
+ const images = {};
180
+ const formulas = [];
181
+ const pages = doc.slides.map((slide, slideIndex) => convertSlide(slide, slideIndex, options.measurer, images, options.formulas, formulas));
182
+ return {
183
+ document: {
184
+ formatVersion: document_schema_js.LAYOUT_FORMAT_VERSION,
185
+ metadata: doc.metadata,
186
+ pages,
187
+ images
188
+ },
189
+ formulas
190
+ };
191
+ }
192
+ //#endregion
193
+ exports.convertPresentationToLayout = convertPresentationToLayout;
194
+ exports.convertShape = convertShape;
@@ -0,0 +1,25 @@
1
+ import { ContentDocument } from "../model/content.cjs";
2
+ import { EmbeddedFormula } from "../model/formula.cjs";
3
+ import { ContentShape, LayoutDocument, LayoutImageAsset, LayoutItem } from "document-schema.js";
4
+ import { PositionedFormula, TextMeasurer } from "pdf-codec";
5
+ //#region src/layout/slides.d.ts
6
+ interface SlidesLayoutOptions {
7
+ readonly measurer: TextMeasurer;
8
+ readonly formulas?: ReadonlyMap<string, EmbeddedFormula>;
9
+ }
10
+ interface PresentationLayoutResult {
11
+ readonly document: LayoutDocument;
12
+ readonly formulas: readonly PositionedFormula[];
13
+ }
14
+ type PresentationContentDocument = Extract<ContentDocument, {
15
+ kind: 'presentation';
16
+ }>;
17
+ interface ShapeFormulaContext {
18
+ readonly formulas: ReadonlyMap<string, EmbeddedFormula>;
19
+ readonly pageIndex: number;
20
+ readonly positioned: PositionedFormula[];
21
+ }
22
+ declare function convertShape(shape: ContentShape, slideHeightPt: number, measurer: TextMeasurer, images: Record<string, LayoutImageAsset>, out: LayoutItem[], formulaContext?: ShapeFormulaContext): void;
23
+ declare function convertPresentationToLayout(doc: PresentationContentDocument, options: SlidesLayoutOptions): PresentationLayoutResult;
24
+ //#endregion
25
+ export { PresentationLayoutResult, ShapeFormulaContext, SlidesLayoutOptions, convertPresentationToLayout, convertShape };
@@ -0,0 +1,25 @@
1
+ import { ContentDocument } from "../model/content.js";
2
+ import { EmbeddedFormula } from "../model/formula.js";
3
+ import { ContentShape, LayoutDocument, LayoutImageAsset, LayoutItem } from "document-schema.js";
4
+ import { PositionedFormula, TextMeasurer } from "pdf-codec";
5
+ //#region src/layout/slides.d.ts
6
+ interface SlidesLayoutOptions {
7
+ readonly measurer: TextMeasurer;
8
+ readonly formulas?: ReadonlyMap<string, EmbeddedFormula>;
9
+ }
10
+ interface PresentationLayoutResult {
11
+ readonly document: LayoutDocument;
12
+ readonly formulas: readonly PositionedFormula[];
13
+ }
14
+ type PresentationContentDocument = Extract<ContentDocument, {
15
+ kind: 'presentation';
16
+ }>;
17
+ interface ShapeFormulaContext {
18
+ readonly formulas: ReadonlyMap<string, EmbeddedFormula>;
19
+ readonly pageIndex: number;
20
+ readonly positioned: PositionedFormula[];
21
+ }
22
+ declare function convertShape(shape: ContentShape, slideHeightPt: number, measurer: TextMeasurer, images: Record<string, LayoutImageAsset>, out: LayoutItem[], formulaContext?: ShapeFormulaContext): void;
23
+ declare function convertPresentationToLayout(doc: PresentationContentDocument, options: SlidesLayoutOptions): PresentationLayoutResult;
24
+ //#endregion
25
+ export { PresentationLayoutResult, ShapeFormulaContext, SlidesLayoutOptions, convertPresentationToLayout, convertShape };