ooxml-core 1.19.2 → 1.21.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 (352) hide show
  1. package/README.md +47 -1
  2. package/dist/{PptxHandler-6TNIQ7S5.cjs → PptxHandler-DNSXWTQV.cjs} +3 -3
  3. package/dist/{PptxHandler-2V4PQL6O.mjs → PptxHandler-FSKKPZZC.mjs} +3 -3
  4. package/dist/PptxHandler-H7MEWJJJ.mjs +4 -0
  5. package/dist/{PresentationBuilder-G7MPEGXJ.mjs → PresentationBuilder-7TSENZTX.mjs} +2 -2
  6. package/dist/{PresentationBuilder-RM52LCVN.cjs → PresentationBuilder-A5NI35VN.cjs} +5 -5
  7. package/dist/{PresentationBuilder-HQ6C7L4V.mjs → PresentationBuilder-RIJWQSEU.mjs} +3 -3
  8. package/dist/automation/docx-forms.d.ts +26 -0
  9. package/dist/automation/docx-forms.d.ts.map +1 -0
  10. package/dist/automation/index.cjs +6280 -2506
  11. package/dist/automation/index.d.ts +1 -0
  12. package/dist/automation/index.d.ts.map +1 -1
  13. package/dist/automation/index.mjs +6277 -2507
  14. package/dist/automation/xlsx-read.d.ts +56 -0
  15. package/dist/automation/xlsx-read.d.ts.map +1 -0
  16. package/dist/automation/xlsx.d.ts +105 -4
  17. package/dist/automation/xlsx.d.ts.map +1 -1
  18. package/dist/chart/axis-range.d.ts.map +1 -1
  19. package/dist/chart/bubble-radius.d.ts +0 -5
  20. package/dist/chart/bubble-radius.d.ts.map +1 -1
  21. package/dist/chart/extent.d.ts +9 -0
  22. package/dist/chart/extent.d.ts.map +1 -0
  23. package/dist/chart/histogram-binning.d.ts.map +1 -1
  24. package/dist/chart/index.cjs +56 -18
  25. package/dist/chart/index.mjs +56 -18
  26. package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -1
  27. package/dist/chart/render/chart-svg-legend.d.ts.map +1 -1
  28. package/dist/chart/render/chart-view-ex.d.ts.map +1 -1
  29. package/dist/chart/render/chart-view.d.ts.map +1 -1
  30. package/dist/chart/trendline-fit.d.ts.map +1 -1
  31. package/dist/{chunk-NYTR4UZ5.cjs → chunk-4LZIUJI3.cjs} +52 -12
  32. package/dist/{chunk-SLNQNVQM.mjs → chunk-4QPOJCJG.mjs} +45 -8
  33. package/dist/{chunk-XTSHZGSM.mjs → chunk-6IIMI5RS.mjs} +52 -12
  34. package/dist/{chunk-TJPUAUWL.mjs → chunk-BA7Z6ATM.mjs} +9 -195
  35. package/dist/{chunk-JUABSM7C.mjs → chunk-DLFMCZZT.mjs} +1 -1
  36. package/dist/{chunk-M4XLF4R7.mjs → chunk-GBKBR4CX.mjs} +20 -8
  37. package/dist/{chunk-R5FIHHGB.cjs → chunk-HL3FBJ6X.cjs} +1648 -1205
  38. package/dist/{chunk-ZJ2OKIJN.mjs → chunk-LF5E5ZOH.mjs} +642 -199
  39. package/dist/{chunk-4FTUAD2B.mjs → chunk-Q5PKBQXH.mjs} +766 -202
  40. package/dist/{chunk-M6GDBVQ7.mjs → chunk-VQF6HQEE.mjs} +1 -1
  41. package/dist/collab/embedding.d.ts +103 -0
  42. package/dist/collab/embedding.d.ts.map +1 -0
  43. package/dist/collab/index.cjs +450 -342
  44. package/dist/collab/index.d.ts +1 -0
  45. package/dist/collab/index.d.ts.map +1 -1
  46. package/dist/collab/index.mjs +443 -343
  47. package/dist/color/theme-palette.d.ts +5 -1
  48. package/dist/color/theme-palette.d.ts.map +1 -1
  49. package/dist/crypto/index.cjs +27 -2
  50. package/dist/crypto/index.mjs +27 -2
  51. package/dist/diagram/index.cjs +31 -3
  52. package/dist/diagram/index.mjs +31 -3
  53. package/dist/docx/block-parser.d.ts.map +1 -1
  54. package/dist/docx/cell-blocks.d.ts +7 -1
  55. package/dist/docx/cell-blocks.d.ts.map +1 -1
  56. package/dist/docx/content-control-edit.d.ts +14 -0
  57. package/dist/docx/content-control-edit.d.ts.map +1 -1
  58. package/dist/docx/content-control-model.d.ts +8 -0
  59. package/dist/docx/content-control-model.d.ts.map +1 -1
  60. package/dist/docx/content-control-values.d.ts +20 -0
  61. package/dist/docx/content-control-values.d.ts.map +1 -0
  62. package/dist/docx/content-control.d.ts +7 -1
  63. package/dist/docx/content-control.d.ts.map +1 -1
  64. package/dist/docx/element-order.d.ts +10 -5
  65. package/dist/docx/element-order.d.ts.map +1 -1
  66. package/dist/docx/embedded.cjs +3861 -1379
  67. package/dist/docx/embedded.mjs +3861 -1379
  68. package/dist/docx/field-instruction.d.ts +22 -0
  69. package/dist/docx/field-instruction.d.ts.map +1 -0
  70. package/dist/docx/form-field-model.d.ts +48 -0
  71. package/dist/docx/form-field-model.d.ts.map +1 -0
  72. package/dist/docx/form-fields.d.ts +31 -0
  73. package/dist/docx/form-fields.d.ts.map +1 -0
  74. package/dist/docx/form-fill-fields.d.ts +61 -0
  75. package/dist/docx/form-fill-fields.d.ts.map +1 -0
  76. package/dist/docx/form-fill-labels.d.ts +8 -0
  77. package/dist/docx/form-fill-labels.d.ts.map +1 -0
  78. package/dist/docx/form-fill-sites.d.ts +59 -0
  79. package/dist/docx/form-fill-sites.d.ts.map +1 -0
  80. package/dist/docx/form-fill-values.d.ts +28 -0
  81. package/dist/docx/form-fill-values.d.ts.map +1 -0
  82. package/dist/docx/form-fill-write.d.ts +26 -0
  83. package/dist/docx/form-fill-write.d.ts.map +1 -0
  84. package/dist/docx/glossary.d.ts +15 -0
  85. package/dist/docx/glossary.d.ts.map +1 -0
  86. package/dist/docx/index.cjs +5929 -3153
  87. package/dist/docx/index.d.ts +7 -0
  88. package/dist/docx/index.d.ts.map +1 -1
  89. package/dist/docx/index.mjs +5913 -3154
  90. package/dist/docx/inline-annotations.d.ts +21 -0
  91. package/dist/docx/inline-annotations.d.ts.map +1 -0
  92. package/dist/docx/inline-container-markers.d.ts +14 -0
  93. package/dist/docx/inline-container-markers.d.ts.map +1 -0
  94. package/dist/docx/inline-containers.d.ts +54 -0
  95. package/dist/docx/inline-containers.d.ts.map +1 -0
  96. package/dist/docx/inline-form-field-bookmarks.d.ts +15 -0
  97. package/dist/docx/inline-form-field-bookmarks.d.ts.map +1 -0
  98. package/dist/docx/inline-marker-positions.d.ts +15 -0
  99. package/dist/docx/inline-marker-positions.d.ts.map +1 -0
  100. package/dist/docx/inline-markers.d.ts +63 -0
  101. package/dist/docx/inline-markers.d.ts.map +1 -0
  102. package/dist/docx/inline-slots.d.ts +24 -0
  103. package/dist/docx/inline-slots.d.ts.map +1 -0
  104. package/dist/docx/layout/adapter.d.ts.map +1 -1
  105. package/dist/docx/layout/index.cjs +1176 -563
  106. package/dist/docx/layout/index.d.ts +2 -1
  107. package/dist/docx/layout/index.d.ts.map +1 -1
  108. package/dist/docx/layout/index.mjs +1175 -564
  109. package/dist/docx/layout/input.d.ts +5 -1
  110. package/dist/docx/layout/input.d.ts.map +1 -1
  111. package/dist/docx/layout/page-style-refs.d.ts +21 -0
  112. package/dist/docx/layout/page-style-refs.d.ts.map +1 -0
  113. package/dist/docx/layout/paragraph-fragments.d.ts.map +1 -1
  114. package/dist/docx/layout/result.d.ts +1 -0
  115. package/dist/docx/layout/result.d.ts.map +1 -1
  116. package/dist/docx/layout/tab-stops.d.ts +8 -1
  117. package/dist/docx/layout/tab-stops.d.ts.map +1 -1
  118. package/dist/docx/load/index.cjs +3969 -1487
  119. package/dist/docx/load/index.mjs +3969 -1487
  120. package/dist/docx/model-run.d.ts +24 -2
  121. package/dist/docx/model-run.d.ts.map +1 -1
  122. package/dist/docx/model.d.ts +5 -0
  123. package/dist/docx/model.d.ts.map +1 -1
  124. package/dist/docx/numbering-format.d.ts.map +1 -1
  125. package/dist/docx/parse-warnings.d.ts.map +1 -1
  126. package/dist/docx/parse.d.ts.map +1 -1
  127. package/dist/docx/run-segmentation.d.ts +11 -0
  128. package/dist/docx/run-segmentation.d.ts.map +1 -0
  129. package/dist/docx/save.d.ts.map +1 -1
  130. package/dist/docx/section-model.d.ts +5 -0
  131. package/dist/docx/section-model.d.ts.map +1 -1
  132. package/dist/docx/sections.d.ts +4 -2
  133. package/dist/docx/sections.d.ts.map +1 -1
  134. package/dist/docx/settings.d.ts +9 -0
  135. package/dist/docx/settings.d.ts.map +1 -1
  136. package/dist/docx/special-characters.d.ts +34 -0
  137. package/dist/docx/special-characters.d.ts.map +1 -0
  138. package/dist/docx/style-ref-fields.d.ts +40 -0
  139. package/dist/docx/style-ref-fields.d.ts.map +1 -0
  140. package/dist/docx/style-ref.d.ts +85 -0
  141. package/dist/docx/style-ref.d.ts.map +1 -0
  142. package/dist/docx/table-model.d.ts +2 -2
  143. package/dist/docx/table-model.d.ts.map +1 -1
  144. package/dist/docx/ui/break-note-schema.d.ts.map +1 -1
  145. package/dist/docx/ui/content-control-commands.d.ts +20 -8
  146. package/dist/docx/ui/content-control-commands.d.ts.map +1 -1
  147. package/dist/docx/ui/content-control-guard.d.ts +4 -1
  148. package/dist/docx/ui/content-control-guard.d.ts.map +1 -1
  149. package/dist/docx/ui/content-control-paste.d.ts +23 -0
  150. package/dist/docx/ui/content-control-paste.d.ts.map +1 -0
  151. package/dist/docx/ui/content-control-rows.d.ts +15 -0
  152. package/dist/docx/ui/content-control-rows.d.ts.map +1 -0
  153. package/dist/docx/ui/content-control-sources.d.ts +12 -0
  154. package/dist/docx/ui/content-control-sources.d.ts.map +1 -0
  155. package/dist/docx/ui/content-control-spans.d.ts +29 -6
  156. package/dist/docx/ui/content-control-spans.d.ts.map +1 -1
  157. package/dist/docx/ui/content-control-temporary.d.ts +10 -0
  158. package/dist/docx/ui/content-control-temporary.d.ts.map +1 -0
  159. package/dist/docx/ui/form-field-commands.d.ts +41 -0
  160. package/dist/docx/ui/form-field-commands.d.ts.map +1 -0
  161. package/dist/docx/ui/form-field-guard.d.ts +24 -0
  162. package/dist/docx/ui/form-field-guard.d.ts.map +1 -0
  163. package/dist/docx/ui/form-text-blank.d.ts +18 -0
  164. package/dist/docx/ui/form-text-blank.d.ts.map +1 -0
  165. package/dist/docx/ui/index.cjs +9276 -7132
  166. package/dist/docx/ui/index.d.ts +5 -0
  167. package/dist/docx/ui/index.d.ts.map +1 -1
  168. package/dist/docx/ui/index.mjs +9259 -7137
  169. package/dist/docx/ui/positional-tab-input.d.ts +7 -0
  170. package/dist/docx/ui/positional-tab-input.d.ts.map +1 -0
  171. package/dist/docx/ui/run-compare.d.ts.map +1 -1
  172. package/dist/docx/ui/run-extra-mark.d.ts +1 -1
  173. package/dist/docx/ui/run-extra-mark.d.ts.map +1 -1
  174. package/dist/docx/ui/schema-marks.d.ts +1 -1
  175. package/dist/docx/ui/schema-marks.d.ts.map +1 -1
  176. package/dist/docx/ui/symbol-font.d.ts +4 -0
  177. package/dist/docx/ui/symbol-font.d.ts.map +1 -0
  178. package/dist/docx/ui/yjs-collaboration.d.ts +12 -1
  179. package/dist/docx/ui/yjs-collaboration.d.ts.map +1 -1
  180. package/dist/docx/write-block-placement.d.ts +7 -0
  181. package/dist/docx/write-block-placement.d.ts.map +1 -1
  182. package/dist/docx/write-content-control.d.ts +6 -0
  183. package/dist/docx/write-content-control.d.ts.map +1 -1
  184. package/dist/docx/write-header-footer.d.ts +6 -2
  185. package/dist/docx/write-header-footer.d.ts.map +1 -1
  186. package/dist/docx/write-inline.d.ts +12 -16
  187. package/dist/docx/write-inline.d.ts.map +1 -1
  188. package/dist/docx/write-paragraph.d.ts.map +1 -1
  189. package/dist/docx/write-revisions.d.ts.map +1 -1
  190. package/dist/docx/write-run.d.ts.map +1 -1
  191. package/dist/docx/write-section-properties.d.ts +5 -0
  192. package/dist/docx/write-section-properties.d.ts.map +1 -0
  193. package/dist/docx/write-sections.d.ts.map +1 -1
  194. package/dist/docx/write-table-controls.d.ts +15 -0
  195. package/dist/docx/write-table-controls.d.ts.map +1 -0
  196. package/dist/docx/write-table-properties.d.ts.map +1 -1
  197. package/dist/docx/write-table.d.ts.map +1 -1
  198. package/dist/docx/write.d.ts.map +1 -1
  199. package/dist/docx/xml.d.ts +6 -0
  200. package/dist/docx/xml.d.ts.map +1 -1
  201. package/dist/drawingml/index.cjs +31 -3
  202. package/dist/drawingml/index.mjs +31 -3
  203. package/dist/index.cjs +102 -26
  204. package/dist/index.mjs +102 -26
  205. package/dist/math/index.cjs +27 -2
  206. package/dist/math/index.mjs +27 -2
  207. package/dist/opc/index.cjs +51 -11
  208. package/dist/opc/index.mjs +51 -11
  209. package/dist/opc/zip-folders.d.ts +11 -0
  210. package/dist/opc/zip-folders.d.ts.map +1 -0
  211. package/dist/opc/zip-limits.d.ts +9 -0
  212. package/dist/opc/zip-limits.d.ts.map +1 -1
  213. package/dist/pptx/automation/index.cjs +995 -462
  214. package/dist/pptx/automation/index.d.ts +2 -2
  215. package/dist/pptx/automation/index.mjs +6 -6
  216. package/dist/pptx/chunks/{index-Bqm-jFG-.d.ts → index-CPhsd7Df.d.ts} +7580 -7507
  217. package/dist/pptx/chunks/index-CPhsd7Df.d.ts.map +1 -0
  218. package/dist/pptx/chunks/{index-B9x557hr.d.ts → index-Q5mM8kIR.d.ts} +2 -2
  219. package/dist/pptx/chunks/{index-B9x557hr.d.ts.map → index-Q5mM8kIR.d.ts.map} +1 -1
  220. package/dist/pptx/cli/index.cjs +770 -238
  221. package/dist/pptx/cli/index.mjs +5 -5
  222. package/dist/pptx/converter/index.cjs +12 -3
  223. package/dist/pptx/converter/index.d.ts +1 -1
  224. package/dist/pptx/converter/index.mjs +3 -3
  225. package/dist/pptx/editor/render/find-replace.cjs +14 -14
  226. package/dist/pptx/editor/render/find-replace.d.ts +1 -1
  227. package/dist/pptx/editor/render/find-replace.mjs +1 -1
  228. package/dist/pptx/editor/render/slide-operations.cjs +8 -8
  229. package/dist/pptx/editor/render/slide-operations.mjs +2 -2
  230. package/dist/pptx/index.cjs +1099 -628
  231. package/dist/pptx/index.d.ts +3 -3
  232. package/dist/pptx/index.mjs +6 -6
  233. package/dist/pptx/signature-node/index.cjs +20 -8
  234. package/dist/pptx/signature-node/index.mjs +2 -2
  235. package/dist/teams/index.cjs +105 -70
  236. package/dist/teams/index.mjs +105 -70
  237. package/dist/text/text-diff.d.ts +15 -0
  238. package/dist/text/text-diff.d.ts.map +1 -0
  239. package/dist/visio/index.cjs +220 -46
  240. package/dist/visio/index.mjs +220 -46
  241. package/dist/visio/ui/contract.d.ts +8 -2
  242. package/dist/visio/ui/contract.d.ts.map +1 -1
  243. package/dist/visio/ui/index.cjs +227 -50
  244. package/dist/visio/ui/index.mjs +227 -50
  245. package/dist/xlsx/collab/index.cjs +8 -3
  246. package/dist/xlsx/collab/index.mjs +8 -3
  247. package/dist/xlsx/compare/cells.d.ts +22 -0
  248. package/dist/xlsx/compare/cells.d.ts.map +1 -0
  249. package/dist/xlsx/compare/compare.d.ts +12 -0
  250. package/dist/xlsx/compare/compare.d.ts.map +1 -0
  251. package/dist/xlsx/compare/conditional.d.ts +7 -0
  252. package/dist/xlsx/compare/conditional.d.ts.map +1 -0
  253. package/dist/xlsx/compare/format-key.d.ts +34 -0
  254. package/dist/xlsx/compare/format-key.d.ts.map +1 -0
  255. package/dist/xlsx/compare/group.d.ts +8 -0
  256. package/dist/xlsx/compare/group.d.ts.map +1 -0
  257. package/dist/xlsx/compare/index.d.ts +5 -0
  258. package/dist/xlsx/compare/index.d.ts.map +1 -0
  259. package/dist/xlsx/compare/rich-text.d.ts +7 -0
  260. package/dist/xlsx/compare/rich-text.d.ts.map +1 -0
  261. package/dist/xlsx/compare/sheets.d.ts +22 -0
  262. package/dist/xlsx/compare/sheets.d.ts.map +1 -0
  263. package/dist/xlsx/compare/structure.d.ts +11 -0
  264. package/dist/xlsx/compare/structure.d.ts.map +1 -0
  265. package/dist/xlsx/compare/text.d.ts +8 -0
  266. package/dist/xlsx/compare/text.d.ts.map +1 -0
  267. package/dist/xlsx/compare/types.d.ts +173 -0
  268. package/dist/xlsx/compare/types.d.ts.map +1 -0
  269. package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
  270. package/dist/xlsx/edit/clipboard-html.d.ts.map +1 -1
  271. package/dist/xlsx/edit/clipboard-text.d.ts.map +1 -1
  272. package/dist/xlsx/edit/clipboard.d.ts.map +1 -1
  273. package/dist/xlsx/edit/clone-cell.d.ts +9 -0
  274. package/dist/xlsx/edit/clone-cell.d.ts.map +1 -0
  275. package/dist/xlsx/edit/dimensions.d.ts.map +1 -1
  276. package/dist/xlsx/edit/history-rows.d.ts +7 -0
  277. package/dist/xlsx/edit/history-rows.d.ts.map +1 -0
  278. package/dist/xlsx/edit/history.d.ts +19 -4
  279. package/dist/xlsx/edit/history.d.ts.map +1 -1
  280. package/dist/xlsx/edit/outline.d.ts.map +1 -1
  281. package/dist/xlsx/edit/row-autofit.d.ts.map +1 -1
  282. package/dist/xlsx/edit/timelines.d.ts.map +1 -1
  283. package/dist/xlsx/formula/change-areas.d.ts +9 -0
  284. package/dist/xlsx/formula/change-areas.d.ts.map +1 -0
  285. package/dist/xlsx/formula/engine-prepare.d.ts +8 -0
  286. package/dist/xlsx/formula/engine-prepare.d.ts.map +1 -1
  287. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  288. package/dist/xlsx/formula/spill.d.ts +5 -1
  289. package/dist/xlsx/formula/spill.d.ts.map +1 -1
  290. package/dist/xlsx/index.cjs +2551 -1208
  291. package/dist/xlsx/index.d.ts +1 -0
  292. package/dist/xlsx/index.d.ts.map +1 -1
  293. package/dist/xlsx/index.mjs +2544 -1209
  294. package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
  295. package/dist/xlsx/layout/navigate.d.ts.map +1 -1
  296. package/dist/xlsx/layout/style-view.d.ts +5 -0
  297. package/dist/xlsx/layout/style-view.d.ts.map +1 -1
  298. package/dist/xlsx/load/csv-dates.d.ts +22 -0
  299. package/dist/xlsx/load/csv-dates.d.ts.map +1 -0
  300. package/dist/xlsx/load/csv-import.d.ts +64 -0
  301. package/dist/xlsx/load/csv-import.d.ts.map +1 -0
  302. package/dist/xlsx/load/csv-separators.d.ts +13 -0
  303. package/dist/xlsx/load/csv-separators.d.ts.map +1 -0
  304. package/dist/xlsx/load/csv-traits.d.ts +20 -0
  305. package/dist/xlsx/load/csv-traits.d.ts.map +1 -0
  306. package/dist/xlsx/load/csv.d.ts +8 -4
  307. package/dist/xlsx/load/csv.d.ts.map +1 -1
  308. package/dist/xlsx/load/detect.d.ts +13 -0
  309. package/dist/xlsx/load/detect.d.ts.map +1 -1
  310. package/dist/xlsx/load/errors.d.ts +1 -0
  311. package/dist/xlsx/load/errors.d.ts.map +1 -1
  312. package/dist/xlsx/load/index.cjs +598 -98
  313. package/dist/xlsx/load/index.d.ts +3 -1
  314. package/dist/xlsx/load/index.d.ts.map +1 -1
  315. package/dist/xlsx/load/index.mjs +597 -99
  316. package/dist/xlsx/numfmt/format.d.ts +8 -0
  317. package/dist/xlsx/numfmt/format.d.ts.map +1 -1
  318. package/dist/xlsx/numfmt/input-date.d.ts +2 -0
  319. package/dist/xlsx/numfmt/input-date.d.ts.map +1 -1
  320. package/dist/xlsx/pivot/cache-xml.d.ts.map +1 -1
  321. package/dist/xlsx/pivot/groups.d.ts.map +1 -1
  322. package/dist/xlsx/read/index.d.ts +2 -1
  323. package/dist/xlsx/read/index.d.ts.map +1 -1
  324. package/dist/xlsx/read/limits.d.ts +50 -0
  325. package/dist/xlsx/read/limits.d.ts.map +1 -0
  326. package/dist/xlsx/read/load.d.ts +11 -1
  327. package/dist/xlsx/read/load.d.ts.map +1 -1
  328. package/dist/xlsx/read/package.d.ts +5 -23
  329. package/dist/xlsx/read/package.d.ts.map +1 -1
  330. package/dist/xlsx/read/shared-strings.d.ts +2 -2
  331. package/dist/xlsx/read/shared-strings.d.ts.map +1 -1
  332. package/dist/xlsx/read/sheet-data-source.d.ts.map +1 -1
  333. package/dist/xlsx/read/worksheet.d.ts +2 -0
  334. package/dist/xlsx/read/worksheet.d.ts.map +1 -1
  335. package/dist/xlsx/stable-key.d.ts +3 -0
  336. package/dist/xlsx/stable-key.d.ts.map +1 -0
  337. package/dist/xlsx/styles.d.ts.map +1 -1
  338. package/dist/xlsx/ui/index.cjs +795 -388
  339. package/dist/xlsx/ui/index.d.ts +1 -0
  340. package/dist/xlsx/ui/index.d.ts.map +1 -1
  341. package/dist/xlsx/ui/index.mjs +795 -389
  342. package/dist/xlsx/ui/selection-format.d.ts +13 -0
  343. package/dist/xlsx/ui/selection-format.d.ts.map +1 -0
  344. package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
  345. package/dist/xml/index.cjs +57 -3
  346. package/dist/xml/index.mjs +57 -4
  347. package/dist/xml/lite.d.ts.map +1 -1
  348. package/dist/xml/xml.d.ts +11 -1
  349. package/dist/xml/xml.d.ts.map +1 -1
  350. package/package.json +1 -1
  351. package/dist/PptxHandler-HSPKEP5E.mjs +0 -4
  352. package/dist/pptx/chunks/index-Bqm-jFG-.d.ts.map +0 -1
@@ -74,6 +74,19 @@ var DEFAULT_XML_LIMITS = {
74
74
  maxDepth: 512,
75
75
  maxNodes: 5e6
76
76
  };
77
+ var XmlLimitError = class extends Error {
78
+ code = "xml-limit";
79
+ /** The limit that was exceeded. */
80
+ limit;
81
+ /** Its value: the largest depth or element count allowed. */
82
+ maximum;
83
+ constructor(message, limit3, maximum) {
84
+ super(message);
85
+ this.name = "XmlLimitError";
86
+ this.limit = limit3;
87
+ this.maximum = maximum;
88
+ }
89
+ };
77
90
  var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
78
91
  var MARKUP_SKIPS = [
79
92
  ["<!--", "-->"],
@@ -107,11 +120,22 @@ function checkXmlLimits(xml, label, limits = {}) {
107
120
  continue;
108
121
  }
109
122
  nodes++;
110
- if (nodes > maxNodes) throw new Error(`${label} XML exceeds the limit of ${maxNodes} elements`);
123
+ if (nodes > maxNodes)
124
+ throw new XmlLimitError(
125
+ `${label} XML exceeds the limit of ${maxNodes} elements`,
126
+ "maxNodes",
127
+ maxNodes
128
+ );
111
129
  if (!selfClosing && ++depth > maxDepth)
112
- throw new Error(`${label} XML exceeds the nesting depth limit of ${maxDepth}`);
130
+ throw new XmlLimitError(
131
+ `${label} XML exceeds the nesting depth limit of ${maxDepth}`,
132
+ "maxDepth",
133
+ maxDepth
134
+ );
113
135
  }
114
136
  }
137
+ var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
138
+ var crlfDeclarations = /* @__PURE__ */ new WeakSet();
115
139
  function parseXml(xml, options2 = {}) {
116
140
  const label = options2.label ?? "OOXML";
117
141
  if (/<!DOCTYPE|<!ENTITY/i.test(xml))
@@ -133,9 +157,13 @@ function parseXml(xml, options2 = {}) {
133
157
  }
134
158
  if (parseError || !parsed.documentElement)
135
159
  throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
160
+ if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
136
161
  return parsed;
137
162
  }
138
- var buildXml = (node3) => new XMLSerializer().serializeToString(node3);
163
+ var buildXml = (node3) => {
164
+ const xml = new XMLSerializer().serializeToString(node3);
165
+ return crlfDeclarations.has(node3) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
166
+ };
139
167
  var isElement = (node3) => node3.nodeType === 1;
140
168
  var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
141
169
  function named(element2, local, ns, lenient = true) {
@@ -234,6 +262,12 @@ function parseLiteFragment(xml, container, namespaces) {
234
262
  }
235
263
  if (lt < 0) break;
236
264
  const next = source.charCodeAt(lt + 1);
265
+ if (next === 33) {
266
+ const after = skipCommentOrCdata(source, lt, top);
267
+ if (after < 0) return void 0;
268
+ pos = after;
269
+ continue;
270
+ }
237
271
  if (next === 47) {
238
272
  const gt = source.indexOf(">", lt);
239
273
  if (gt < 0 || stack.length < 2 || source.slice(lt + 2, gt).trimEnd() !== top.tagName)
@@ -254,6 +288,25 @@ function parseLiteFragment(xml, container, namespaces) {
254
288
  }
255
289
  return stack.length === 1 ? root2 : void 0;
256
290
  }
291
+ var DECLARATIONS = /<!DOCTYPE|<!ENTITY/i;
292
+ function skipCommentOrCdata(source, lt, parent) {
293
+ if (source.startsWith("<!--", lt)) {
294
+ const end = source.indexOf("-->", lt + 4);
295
+ if (end < 0) return -1;
296
+ const body = source.slice(lt + 4, end);
297
+ if (body.includes("--") || body.endsWith("-") || DECLARATIONS.test(body)) return -1;
298
+ return end + 3;
299
+ }
300
+ if (source.startsWith("<![CDATA[", lt)) {
301
+ const end = source.indexOf("]]>", lt + 9);
302
+ if (end < 0) return -1;
303
+ const text6 = source.slice(lt + 9, end);
304
+ if (DECLARATIONS.test(text6)) return -1;
305
+ parent.childNodes.push(text6);
306
+ return end + 3;
307
+ }
308
+ return -1;
309
+ }
257
310
  function startTag(source, from, namespaces) {
258
311
  const n = source.length;
259
312
  let i = from;
@@ -7659,9 +7712,9 @@ function createWorksheet(name3, sheetId5) {
7659
7712
  };
7660
7713
  }
7661
7714
 
7662
- // xlsx/styles.ts
7663
- function styleKey(style2) {
7664
- return JSON.stringify(sortKeys(style2));
7715
+ // xlsx/stable-key.ts
7716
+ function stableKey(value3) {
7717
+ return JSON.stringify(sortKeys(value3));
7665
7718
  }
7666
7719
  function sortKeys(value3) {
7667
7720
  if (Array.isArray(value3)) return value3.map(sortKeys);
@@ -7675,6 +7728,11 @@ function sortKeys(value3) {
7675
7728
  }
7676
7729
  return value3;
7677
7730
  }
7731
+
7732
+ // xlsx/styles.ts
7733
+ function styleKey(style2) {
7734
+ return stableKey(style2);
7735
+ }
7678
7736
  function styleAt(workbook, styleId) {
7679
7737
  const style2 = workbook.styles[styleId ?? 0] ?? workbook.styles[0];
7680
7738
  if (!style2) throw new Error("Workbook has no default cell style");
@@ -10281,10 +10339,13 @@ var DEFAULT_ZIP_LIMITS = {
10281
10339
  var ZipLimitError = class extends Error {
10282
10340
  code = "ZIP_BOMB";
10283
10341
  limit;
10342
+ /** The check that failed (absent when the error was built without one). */
10343
+ kind;
10284
10344
  constructor(message, details) {
10285
10345
  super(message);
10286
10346
  this.name = "ZipLimitError";
10287
10347
  this.limit = details.limit;
10348
+ this.kind = details.kind;
10288
10349
  }
10289
10350
  };
10290
10351
  var mib = (bytes) => Math.round(bytes / 1048576);
@@ -10307,7 +10368,7 @@ function resolveLimits(limits) {
10307
10368
  maxEntryBytes: limits.maxEntryBytes ?? DEFAULT_ZIP_LIMITS.maxEntryBytes,
10308
10369
  maxTotalBytes: limits.maxTotalBytes ?? DEFAULT_ZIP_LIMITS.maxTotalBytes,
10309
10370
  label: limits.label ?? "ZIP",
10310
- fail: (message, limit3) => create2 ? create2(message, { limit: limit3 }) : new ZipLimitError(message, { limit: limit3 })
10371
+ fail: (message, limit3, kind) => create2 ? create2(message, { limit: limit3, kind }) : new ZipLimitError(message, { limit: limit3, kind })
10311
10372
  };
10312
10373
  }
10313
10374
  function inflateEntryGuarded(entry3, alreadyRead, limits) {
@@ -10330,13 +10391,18 @@ function inflateEntryGuarded(entry3, alreadyRead, limits) {
10330
10391
  size3 += chunk.byteLength;
10331
10392
  if (size3 > declared || size3 > r.maxEntryBytes)
10332
10393
  return abort(
10333
- r.fail(`${r.label} part ${entry3.name} inflates past its declared size`, r.maxEntryBytes)
10394
+ r.fail(
10395
+ `${r.label} part ${entry3.name} inflates past its declared size`,
10396
+ r.maxEntryBytes,
10397
+ size3 > declared ? "declaredSize" : "maxEntryBytes"
10398
+ )
10334
10399
  );
10335
10400
  if (alreadyRead + size3 > r.maxTotalBytes)
10336
10401
  return abort(
10337
10402
  r.fail(
10338
10403
  `${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
10339
- r.maxTotalBytes
10404
+ r.maxTotalBytes,
10405
+ "maxTotalBytes"
10340
10406
  )
10341
10407
  );
10342
10408
  chunks.push(chunk);
@@ -10369,26 +10435,29 @@ function guardZip(zip, limits = {}) {
10369
10435
  if (entries.length > r.maxEntries)
10370
10436
  throw r.fail(
10371
10437
  `${r.label} package exceeds the ${r.maxEntries.toLocaleString("en-US")} part limit`,
10372
- r.maxEntries
10438
+ r.maxEntries,
10439
+ "maxEntries"
10373
10440
  );
10374
10441
  let declared = 0;
10375
10442
  for (const entry3 of entries) {
10376
10443
  const original = entry3.unsafeOriginalName;
10377
10444
  if (!isSafePartName(entry3.name) || original !== void 0 && !isSafePartName(original))
10378
- throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries);
10445
+ throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries, "partName");
10379
10446
  if (entry3.dir) continue;
10380
10447
  const size3 = declaredEntrySize(entry3);
10381
10448
  if (size3 > r.maxEntryBytes)
10382
10449
  throw r.fail(
10383
10450
  `${r.label} part ${entry3.name} exceeds the uncompressed part size limit`,
10384
- r.maxEntryBytes
10451
+ r.maxEntryBytes,
10452
+ "maxEntryBytes"
10385
10453
  );
10386
10454
  declared += size3;
10387
10455
  }
10388
10456
  if (declared > r.maxTotalBytes)
10389
10457
  throw r.fail(
10390
10458
  `${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
10391
- r.maxTotalBytes
10459
+ r.maxTotalBytes,
10460
+ "maxTotalBytes"
10392
10461
  );
10393
10462
  const produced = /* @__PURE__ */ new Map();
10394
10463
  let total = 0;
@@ -12257,10 +12326,69 @@ function mergeComments(legacy, threaded) {
12257
12326
  (a2, b) => a2.address.row - b.address.row || a2.address.col - b.address.col
12258
12327
  );
12259
12328
  }
12260
- var MAX_INPUT_BYTES = 50 * 1024 * 1024;
12261
- var MAX_PARTS = 1e4;
12262
- var MAX_UNCOMPRESSED_BYTES = 300 * 1024 * 1024;
12263
- var MAX_PART_BYTES = 200 * 1024 * 1024;
12329
+
12330
+ // xlsx/read/limits.ts
12331
+ var DEFAULT_XLSX_LOAD_LIMITS = {
12332
+ maxInputBytes: 50 * 1024 * 1024,
12333
+ maxParts: 1e4,
12334
+ maxPartBytes: 200 * 1024 * 1024,
12335
+ maxTotalBytes: 300 * 1024 * 1024,
12336
+ maxXmlElements: 5e6
12337
+ };
12338
+ var WorkbookTooLargeError = class extends Error {
12339
+ code = "workbook-too-large";
12340
+ /** The limit that was exceeded, as named in {@link XlsxLoadLimits}. */
12341
+ limit;
12342
+ /** The value of that limit when the load failed. */
12343
+ maximum;
12344
+ constructor(message, limit3, maximum, options2) {
12345
+ super(message, options2);
12346
+ this.name = "WorkbookTooLargeError";
12347
+ this.limit = limit3;
12348
+ this.maximum = maximum;
12349
+ }
12350
+ };
12351
+ function resolveLoadLimits(limits = {}) {
12352
+ const resolved = { ...DEFAULT_XLSX_LOAD_LIMITS };
12353
+ for (const name3 of Object.keys(resolved)) {
12354
+ const value3 = limits[name3];
12355
+ if (value3 === void 0) continue;
12356
+ if (!Number.isFinite(value3) || value3 <= 0)
12357
+ throw new RangeError(`limits.${name3} must be a positive finite number`);
12358
+ resolved[name3] = value3;
12359
+ }
12360
+ return resolved;
12361
+ }
12362
+ var ZIP_LIMIT_NAMES = {
12363
+ maxInputBytes: "maxInputBytes",
12364
+ maxEntries: "maxParts",
12365
+ maxEntryBytes: "maxPartBytes",
12366
+ maxTotalBytes: "maxTotalBytes"
12367
+ };
12368
+ function zipLimitsFor(limits) {
12369
+ return {
12370
+ maxInputBytes: limits.maxInputBytes,
12371
+ maxEntries: limits.maxParts,
12372
+ maxEntryBytes: limits.maxPartBytes,
12373
+ maxTotalBytes: limits.maxTotalBytes,
12374
+ label: "XLSX",
12375
+ createError: (message, { limit: limit3, kind }) => {
12376
+ const name3 = ZIP_LIMIT_NAMES[kind];
12377
+ return name3 ? new WorkbookTooLargeError(message, name3, limit3) : new ZipLimitError(message, { limit: limit3, kind });
12378
+ }
12379
+ };
12380
+ }
12381
+ function parseDataXml(xml, label, maxXmlElements = DEFAULT_XLSX_LOAD_LIMITS.maxXmlElements) {
12382
+ try {
12383
+ return parseXml(xml, { label, limits: { maxNodes: maxXmlElements } });
12384
+ } catch (error) {
12385
+ if (error instanceof XmlLimitError && error.limit === "maxNodes")
12386
+ throw new WorkbookTooLargeError(error.message, "maxXmlElements", error.maximum, {
12387
+ cause: error
12388
+ });
12389
+ throw error;
12390
+ }
12391
+ }
12264
12392
  var CONTENT_TYPES = {
12265
12393
  workbook: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
12266
12394
  workbookMacro: "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
@@ -12331,16 +12459,15 @@ var SourceIndex = class {
12331
12459
  };
12332
12460
  var mib2 = (bytes) => Math.round(bytes / 1048576);
12333
12461
  async function readZipParts(input, limits = {}) {
12334
- const maxInput = limits.maxInputBytes ?? MAX_INPUT_BYTES;
12335
- const zipLimits = {
12336
- maxEntries: limits.maxParts ?? MAX_PARTS,
12337
- maxEntryBytes: limits.maxPartBytes ?? MAX_PART_BYTES,
12338
- maxTotalBytes: limits.maxTotalBytes ?? MAX_UNCOMPRESSED_BYTES,
12339
- label: "XLSX"
12340
- };
12462
+ const resolved = resolveLoadLimits(limits);
12463
+ const maxInput = resolved.maxInputBytes;
12341
12464
  const bytes = input instanceof Uint8Array ? input : new Uint8Array(input);
12342
12465
  if (bytes.byteLength > maxInput)
12343
- throw new Error(`XLSX package exceeds the ${mib2(maxInput)} MiB compressed input limit`);
12466
+ throw new WorkbookTooLargeError(
12467
+ `XLSX package exceeds the ${mib2(maxInput)} MiB compressed input limit`,
12468
+ "maxInputBytes",
12469
+ maxInput
12470
+ );
12344
12471
  let loaded;
12345
12472
  try {
12346
12473
  loaded = await JSZip.loadAsync(bytes);
@@ -12350,7 +12477,7 @@ async function readZipParts(input, limits = {}) {
12350
12477
  { cause: error }
12351
12478
  );
12352
12479
  }
12353
- const zip = guardZip(loaded, zipLimits);
12480
+ const zip = guardZip(loaded, zipLimitsFor(resolved));
12354
12481
  const parts = /* @__PURE__ */ new Map();
12355
12482
  for (const entry3 of Object.values(zip.files)) {
12356
12483
  if (entry3.dir) continue;
@@ -12557,9 +12684,9 @@ function parseRichString(element2, palette) {
12557
12684
  const text6 = parsed.map((run) => run.text).join("");
12558
12685
  return { text: text6, runs: parsed };
12559
12686
  }
12560
- function parseSharedStrings(xml, palette) {
12687
+ function parseSharedStrings(xml, palette, maxXmlElements) {
12561
12688
  if (!xml) return [];
12562
- const root2 = parseXml(xml, { label: "XLSX shared strings" }).documentElement;
12689
+ const root2 = parseDataXml(xml, "XLSX shared strings", maxXmlElements).documentElement;
12563
12690
  return xChildren(root2, "si").map((si) => parseRichString(si, palette));
12564
12691
  }
12565
12692
 
@@ -17150,21 +17277,50 @@ function rootNamespaces(xml) {
17150
17277
  for (const match of (root2[2] ?? "").matchAll(DECLARATION2)) out[match[1] ?? ""] = match[3] ?? "";
17151
17278
  return out;
17152
17279
  }
17280
+ var SPECIAL = /<[!?]/g;
17281
+ var SECTIONS = [
17282
+ ["<!--", "-->"],
17283
+ ["<![CDATA[", "]]>"],
17284
+ ["<?", "?>"]
17285
+ ];
17286
+ function blankComments(xml) {
17287
+ if (!xml.includes("<!--") && !xml.includes("<![CDATA[")) return xml;
17288
+ const pieces = [];
17289
+ let copied = 0;
17290
+ SPECIAL.lastIndex = 0;
17291
+ for (let match = SPECIAL.exec(xml); match; match = SPECIAL.exec(xml)) {
17292
+ const at2 = match.index;
17293
+ const section3 = SECTIONS.find(([open2]) => xml.startsWith(open2, at2));
17294
+ if (!section3) return void 0;
17295
+ const [open, close4] = section3;
17296
+ const end = xml.indexOf(close4, at2 + open.length);
17297
+ if (end < 0) return void 0;
17298
+ const after = end + close4.length;
17299
+ if (open !== "<?") {
17300
+ pieces.push(xml.slice(copied, at2), " ".repeat(after - at2));
17301
+ copied = after;
17302
+ }
17303
+ SPECIAL.lastIndex = after;
17304
+ }
17305
+ pieces.push(xml.slice(copied));
17306
+ return pieces.join("");
17307
+ }
17153
17308
  function splitSheetData(xml) {
17154
- if (xml.includes("<!--") || xml.includes("<![CDATA[")) return void 0;
17155
- const namespaces = rootNamespaces(xml);
17156
- const open = OPEN.exec(xml);
17309
+ const plain4 = blankComments(xml);
17310
+ if (plain4 === void 0) return void 0;
17311
+ const namespaces = rootNamespaces(plain4);
17312
+ const open = OPEN.exec(plain4);
17157
17313
  if (!namespaces || !open) return void 0;
17158
17314
  const prefix2 = (open[1] ?? "").slice(0, -1);
17159
17315
  const ns = namespaces[prefix2];
17160
17316
  if (prefix2 && ns === void 0) return void 0;
17161
17317
  const tagName2 = `${open[1] ?? ""}sheetData`;
17162
- const openEnd = xml.indexOf(">", open.index);
17318
+ const openEnd = plain4.indexOf(">", open.index);
17163
17319
  if (openEnd < 0) return void 0;
17164
- const attributes = xml.slice(open.index + tagName2.length + 1, openEnd);
17320
+ const attributes = plain4.slice(open.index + tagName2.length + 1, openEnd);
17165
17321
  if (attributes.trimEnd().endsWith("/") || attributes.includes("xmlns")) return void 0;
17166
- const close4 = xml.indexOf(`</${tagName2}`, openEnd);
17167
- if (close4 < 0 || OPEN.test(xml.slice(openEnd))) return void 0;
17322
+ const close4 = plain4.indexOf(`</${tagName2}`, openEnd);
17323
+ if (close4 < 0 || OPEN.test(plain4.slice(openEnd))) return void 0;
17168
17324
  const container = new LiteElement(tagName2, "sheetData", ns || null);
17169
17325
  const data = parseLiteFragment(xml.slice(openEnd + 1, close4), container, namespaces);
17170
17326
  if (!data) return void 0;
@@ -17364,7 +17520,11 @@ function parseWorksheet(ctx, partName, name3, sheetId5) {
17364
17520
  return sheet;
17365
17521
  }
17366
17522
  const split = splitSheetData(xml);
17367
- const root2 = parseXml(split?.xml ?? xml, { label: "XLSX worksheet" }).documentElement;
17523
+ const root2 = parseDataXml(
17524
+ split?.xml ?? xml,
17525
+ "XLSX worksheet",
17526
+ ctx.maxXmlElements
17527
+ ).documentElement;
17368
17528
  const byName = /* @__PURE__ */ new Map();
17369
17529
  const cfBlocks = [];
17370
17530
  for (const node3 of elements(root2)) {
@@ -17438,8 +17598,9 @@ function liftPrintAreas(workbook) {
17438
17598
  return false;
17439
17599
  });
17440
17600
  }
17441
- async function loadXlsx(input) {
17442
- const parts = await readZipParts(input);
17601
+ async function loadXlsx(input, options2 = {}) {
17602
+ const limits = resolveLoadLimits(options2.limits);
17603
+ const parts = await readZipParts(input, limits);
17443
17604
  const source = new SourceIndex(parts);
17444
17605
  const workbookPart = source.workbookPart();
17445
17606
  if (!workbookPart) throw new Error("XLSX package has no workbook part (xl/workbook.xml)");
@@ -17460,7 +17621,8 @@ async function loadXlsx(input) {
17460
17621
  source,
17461
17622
  sharedStrings: parseSharedStrings(
17462
17623
  stringsPart ? source.text(stringsPart) : void 0,
17463
- styles.palette
17624
+ styles.palette,
17625
+ limits.maxXmlElements
17464
17626
  ),
17465
17627
  xfMap: styles.xfMap,
17466
17628
  date1904: book.date1904,
@@ -17468,7 +17630,8 @@ async function loadXlsx(input) {
17468
17630
  dxfs: styles.dxfs,
17469
17631
  persons: parsePersons(personsPart ? source.text(personsPart) : void 0),
17470
17632
  dynamicCells: parseDynamicArrayMetadata(metadataPart ? source.text(metadataPart) : void 0),
17471
- warn
17633
+ warn,
17634
+ maxXmlElements: limits.maxXmlElements
17472
17635
  };
17473
17636
  const rels = source.rels(workbookPart);
17474
17637
  const sheets = book.sheets.map((entry3) => {
@@ -17951,14 +18114,24 @@ function formatAxisValue(value3, percent = false) {
17951
18114
  return `${v < 0 ? "-" : ""}${grouped}${frac ? `.${frac}` : ""}`;
17952
18115
  }
17953
18116
 
18117
+ // chart/extent.ts
18118
+ function extentOf(values) {
18119
+ let min = Infinity;
18120
+ let max = -Infinity;
18121
+ for (const value3 of values) {
18122
+ min = Math.min(min, value3);
18123
+ max = Math.max(max, value3);
18124
+ }
18125
+ return { min, max };
18126
+ }
18127
+
17954
18128
  // chart/axis-range.ts
17955
18129
  function computeLogValueRange(series, logBase) {
17956
18130
  const allValues = series.flatMap((item) => item.values).filter((value3) => value3 !== null && Number.isFinite(value3) && value3 > 0);
17957
18131
  if (allValues.length === 0) {
17958
18132
  return { min: 1, max: logBase, span: 1, logScale: true, logBase };
17959
18133
  }
17960
- const dataMin = Math.min(...allValues);
17961
- const dataMax = Math.max(...allValues);
18134
+ const { min: dataMin, max: dataMax } = extentOf(allValues);
17962
18135
  const logMin = Math.floor(Math.log(dataMin) / Math.log(logBase));
17963
18136
  const logMax = Math.ceil(Math.log(dataMax) / Math.log(logBase));
17964
18137
  const min = logBase ** logMin;
@@ -18686,8 +18859,7 @@ function computeHistogramBins(values, options2, format5 = String) {
18686
18859
  });
18687
18860
  }
18688
18861
  if (regular.length > 0) {
18689
- const min = Math.min(...regular.map((item) => item.value));
18690
- const max = Math.max(...regular.map((item) => item.value));
18862
+ const { min, max } = extentOf(regular.map((item) => item.value));
18691
18863
  const requestedSize = options2.binSize && options2.binSize > 0 ? options2.binSize : void 0;
18692
18864
  const requestedCount = options2.binCount && options2.binCount > 0 ? options2.binCount : void 0;
18693
18865
  const start = requestedSize ? Math.floor(min / requestedSize) * requestedSize : min;
@@ -18815,8 +18987,9 @@ function waterfallView(chart, model2, ctx) {
18815
18987
  colors: { increase: role(0), decrease: role(1), total: role(2) }
18816
18988
  };
18817
18989
  const ends = steps.flatMap((step2) => [step2.startValue, step2.endValue]);
18990
+ const range2 = extentOf(ends);
18818
18991
  model2.valueAxis = {
18819
- ...ends.length ? niceScale(Math.min(...ends), Math.max(...ends)) : niceScale(0, 1),
18992
+ ...ends.length ? niceScale(range2.min, range2.max) : niceScale(0, 1),
18820
18993
  percent: false
18821
18994
  };
18822
18995
  const labels = model2.categories;
@@ -18932,7 +19105,8 @@ function chartSummaryView(chart, theme2, options2 = {}) {
18932
19105
  s.xValues = s.values.map((_, k) => numeric5 ? toNumber(cats[k] ?? null) : k + 1);
18933
19106
  });
18934
19107
  const xs = series.flatMap((s) => s.xValues ?? []).filter((x) => x !== null);
18935
- model2.xAxis = xs.length ? niceScale(Math.min(...xs), Math.max(...xs)) : niceScale(0, 1);
19108
+ const range2 = extentOf(xs);
19109
+ model2.xAxis = xs.length ? niceScale(range2.min, range2.max) : niceScale(0, 1);
18936
19110
  }
18937
19111
  if (type === "stock") model2.stock = stockView(chart.stock, ctx);
18938
19112
  if (type === "bubble") bubbleView(chart, model2, ctx.evaluateRef);
@@ -1,12 +1,16 @@
1
1
  import type { RibbonAddInCommandDetail, RibbonAddInTab } from '../../ribbon/index.js';
2
+ import type { CollaborationOptions, CollaborationState } from '../../collab/index.js';
2
3
  import type { VisioDocument } from '../index.js';
3
4
  export interface ViewerProperties {
5
+ canEdit?: boolean;
4
6
  document: VisioDocument | null;
5
7
  pageIndex: number;
6
8
  zoom: number;
7
9
  showToolbar: boolean;
8
10
  /** Tabs the host adds after Help, as an Office add-in does. */
9
11
  ribbonAddIns: readonly RibbonAddInTab[];
12
+ /** Shares the open drawing in a room while set; null leaves it (the shared embedding contract). */
13
+ collaboration: CollaborationOptions | null;
10
14
  }
11
15
  /** A page-scoped shape identity. Omitted pageId means the currently displayed page. */
12
16
  export interface VisioShapeSelection {
@@ -29,12 +33,14 @@ export interface ViewerEvents {
29
33
  'selection-change': readonly VisioShapeSelection[];
30
34
  /** A command of a host tab (`ribbonAddIns`) was chosen. */
31
35
  'office-ribbon-add-in': RibbonAddInCommandDetail;
36
+ /** Sharing started, stopped or its status, sync or people changed. */
37
+ 'collaboration-change': CollaborationState;
32
38
  }
33
39
  export type ViewerCallbacks = {
34
40
  [K in keyof ViewerEvents]?: (detail: ViewerEvents[K]) => void;
35
41
  };
36
- export declare const propertyKeys: readonly ["document", "pageIndex", "zoom", "showToolbar", "ribbonAddIns"];
37
- export declare const eventKeys: readonly ["document-load", "document-change", "document-error", "page-change", "zoom-change", "shape-select", "selection-change", "office-ribbon-add-in"];
42
+ export declare const propertyKeys: readonly ["canEdit", "document", "pageIndex", "zoom", "showToolbar", "ribbonAddIns", "collaboration"];
43
+ export declare const eventKeys: readonly ["document-load", "document-change", "document-error", "page-change", "zoom-change", "shape-select", "selection-change", "office-ribbon-add-in", "collaboration-change"];
38
44
  export type VsdxSource = ArrayBuffer | Uint8Array | Blob;
39
45
  export interface ViewerOptions extends Partial<ViewerProperties> {
40
46
  events?: ViewerCallbacks;
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../visio/ui/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;CACxC;AACD,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,YAAY;IAC5B,eAAe,EAAE,aAAa,CAAC;IAC/B,iBAAiB,EAAE;QAClB,QAAQ,EAAE,aAAa,CAAC;QACxB,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;KAC1C,CAAC;IACF,gBAAgB,EAAE,KAAK,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,iFAAiF;IACjF,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,2DAA2D;IAC3D,sBAAsB,EAAE,wBAAwB,CAAC;CACjD;AACD,MAAM,MAAM,eAAe,GAAG;KAC5B,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;CAC7D,CAAC;AACF,eAAO,MAAM,YAAY,2EAM+B,CAAC;AACzD,eAAO,MAAM,SAAS,2JAS8B,CAAC;AASrD,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;AACzD,MAAM,WAAW,aAAc,SAAQ,OAAO,CAAC,gBAAgB,CAAC;IAC/D,MAAM,CAAC,EAAE,eAAe,CAAC;CACzB"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../visio/ui/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;IACxC,mGAAmG;IACnG,aAAa,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC3C;AACD,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,YAAY;IAC5B,eAAe,EAAE,aAAa,CAAC;IAC/B,iBAAiB,EAAE;QAClB,QAAQ,EAAE,aAAa,CAAC;QACxB,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;KAC1C,CAAC;IACF,gBAAgB,EAAE,KAAK,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,iFAAiF;IACjF,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,2DAA2D;IAC3D,sBAAsB,EAAE,wBAAwB,CAAC;IACjD,sEAAsE;IACtE,sBAAsB,EAAE,kBAAkB,CAAC;CAC3C;AACD,MAAM,MAAM,eAAe,GAAG;KAC5B,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI;CAC7D,CAAC;AACF,eAAO,MAAM,YAAY,uGAQ+B,CAAC;AACzD,eAAO,MAAM,SAAS,mLAU8B,CAAC;AASrD,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;AACzD,MAAM,WAAW,aAAc,SAAQ,OAAO,CAAC,gBAAgB,CAAC;IAC/D,MAAM,CAAC,EAAE,eAAe,CAAC;CACzB"}