ooxml-core 0.19.0 → 0.20.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 (291) hide show
  1. package/dist/automation/index.cjs +195 -193
  2. package/dist/automation/index.mjs +195 -193
  3. package/dist/diagram/index.cjs +2 -1
  4. package/dist/diagram/index.mjs +2 -1
  5. package/dist/docx/attr-units.d.ts +11 -0
  6. package/dist/docx/attr-units.d.ts.map +1 -0
  7. package/dist/docx/block-parser.d.ts.map +1 -1
  8. package/dist/docx/case-transform.d.ts +9 -0
  9. package/dist/docx/case-transform.d.ts.map +1 -0
  10. package/dist/docx/embedded.cjs +2 -1
  11. package/dist/docx/embedded.mjs +2 -1
  12. package/dist/docx/index.cjs +289 -3
  13. package/dist/docx/index.d.ts +5 -0
  14. package/dist/docx/index.d.ts.map +1 -1
  15. package/dist/docx/index.mjs +269 -4
  16. package/dist/docx/layout/adapter.d.ts.map +1 -1
  17. package/dist/docx/layout/table-layout.d.ts.map +1 -1
  18. package/dist/docx/load/index.cjs +2 -1
  19. package/dist/docx/load/index.mjs +2 -1
  20. package/dist/docx/page-setup-model.d.ts +29 -0
  21. package/dist/docx/page-setup-model.d.ts.map +1 -0
  22. package/dist/docx/page-size.d.ts +11 -0
  23. package/dist/docx/page-size.d.ts.map +1 -0
  24. package/dist/docx/parse.d.ts.map +1 -1
  25. package/dist/docx/section-edit.d.ts +19 -0
  26. package/dist/docx/section-edit.d.ts.map +1 -0
  27. package/dist/docx/tab-stops.d.ts.map +1 -1
  28. package/dist/docx/ui/backstage-focus.d.ts +6 -0
  29. package/dist/docx/ui/backstage-focus.d.ts.map +1 -0
  30. package/dist/docx/ui/break-note-schema.d.ts +11 -0
  31. package/dist/docx/ui/break-note-schema.d.ts.map +1 -0
  32. package/dist/docx/ui/collaboration-authority.d.ts +31 -0
  33. package/dist/docx/ui/collaboration-authority.d.ts.map +1 -0
  34. package/dist/docx/ui/collaboration-identity.d.ts +8 -0
  35. package/dist/docx/ui/collaboration-identity.d.ts.map +1 -0
  36. package/dist/docx/ui/collaboration-protocol.d.ts +25 -0
  37. package/dist/docx/ui/collaboration-protocol.d.ts.map +1 -0
  38. package/dist/docx/ui/collaboration.d.ts +30 -0
  39. package/dist/docx/ui/collaboration.d.ts.map +1 -0
  40. package/dist/docx/ui/defined.d.ts +3 -0
  41. package/dist/docx/ui/defined.d.ts.map +1 -0
  42. package/dist/docx/ui/dirty-state.d.ts +9 -0
  43. package/dist/docx/ui/dirty-state.d.ts.map +1 -0
  44. package/dist/docx/ui/field-guard.d.ts +21 -0
  45. package/dist/docx/ui/field-guard.d.ts.map +1 -0
  46. package/dist/docx/ui/header-footer-history.d.ts +15 -0
  47. package/dist/docx/ui/header-footer-history.d.ts.map +1 -0
  48. package/dist/docx/ui/index.cjs +2380 -0
  49. package/dist/docx/ui/index.d.ts +30 -0
  50. package/dist/docx/ui/index.d.ts.map +1 -0
  51. package/dist/docx/ui/index.mjs +2317 -0
  52. package/dist/docx/ui/inline-content-schema.d.ts +15 -0
  53. package/dist/docx/ui/inline-content-schema.d.ts.map +1 -0
  54. package/dist/docx/ui/ligature-style.d.ts +4 -0
  55. package/dist/docx/ui/ligature-style.d.ts.map +1 -0
  56. package/dist/docx/ui/node-numbering.d.ts +8 -0
  57. package/dist/docx/ui/node-numbering.d.ts.map +1 -0
  58. package/dist/docx/ui/review-schema.d.ts +90 -0
  59. package/dist/docx/ui/review-schema.d.ts.map +1 -0
  60. package/dist/docx/ui/ribbon-action-ids.d.ts +26 -0
  61. package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -0
  62. package/dist/docx/ui/ribbon-colors.d.ts +3 -0
  63. package/dist/docx/ui/ribbon-colors.d.ts.map +1 -0
  64. package/dist/docx/ui/ribbon-legacy-labels.d.ts +6 -0
  65. package/dist/docx/ui/ribbon-legacy-labels.d.ts.map +1 -0
  66. package/dist/docx/ui/run-compare.d.ts +5 -0
  67. package/dist/docx/ui/run-compare.d.ts.map +1 -0
  68. package/dist/docx/ui/run-extra-mark.d.ts +17 -0
  69. package/dist/docx/ui/run-extra-mark.d.ts.map +1 -0
  70. package/dist/docx/ui/schema-marks.d.ts +273 -0
  71. package/dist/docx/ui/schema-marks.d.ts.map +1 -0
  72. package/dist/docx/ui/smartart-theme.d.ts +21 -0
  73. package/dist/docx/ui/smartart-theme.d.ts.map +1 -0
  74. package/dist/docx/ui/table-render.d.ts +24 -0
  75. package/dist/docx/ui/table-render.d.ts.map +1 -0
  76. package/dist/docx/ui/table-visuals.d.ts +3 -0
  77. package/dist/docx/ui/table-visuals.d.ts.map +1 -0
  78. package/dist/docx/ui/theme/css-vars.d.ts +6 -0
  79. package/dist/docx/ui/theme/css-vars.d.ts.map +1 -0
  80. package/dist/docx/ui/theme/defaults.d.ts +12 -0
  81. package/dist/docx/ui/theme/defaults.d.ts.map +1 -0
  82. package/dist/docx/ui/theme/element.d.ts +9 -0
  83. package/dist/docx/ui/theme/element.d.ts.map +1 -0
  84. package/dist/docx/ui/theme/index.d.ts +5 -0
  85. package/dist/docx/ui/theme/index.d.ts.map +1 -0
  86. package/dist/docx/ui/theme/types.d.ts +42 -0
  87. package/dist/docx/ui/theme/types.d.ts.map +1 -0
  88. package/dist/docx/ui/word-count.d.ts +3 -0
  89. package/dist/docx/ui/word-count.d.ts.map +1 -0
  90. package/dist/docx/ui/zoom-fit.d.ts +16 -0
  91. package/dist/docx/ui/zoom-fit.d.ts.map +1 -0
  92. package/dist/docx/validate-paragraph.d.ts.map +1 -1
  93. package/dist/index.cjs +2 -1
  94. package/dist/index.mjs +2 -1
  95. package/dist/math/index.cjs +2 -1
  96. package/dist/math/index.mjs +2 -1
  97. package/dist/opc/index.cjs +2 -1
  98. package/dist/opc/index.mjs +2 -1
  99. package/dist/visio/index.cjs +2 -1
  100. package/dist/visio/index.mjs +2 -1
  101. package/dist/visio/ui/contract.d.ts +33 -0
  102. package/dist/visio/ui/contract.d.ts.map +1 -0
  103. package/dist/visio/ui/demo-document.d.ts +4 -0
  104. package/dist/visio/ui/demo-document.d.ts.map +1 -0
  105. package/dist/visio/ui/diagnostics.d.ts +10 -0
  106. package/dist/visio/ui/diagnostics.d.ts.map +1 -0
  107. package/dist/visio/ui/document-history.d.ts +43 -0
  108. package/dist/visio/ui/document-history.d.ts.map +1 -0
  109. package/dist/visio/ui/document-text-search.d.ts +45 -0
  110. package/dist/visio/ui/document-text-search.d.ts.map +1 -0
  111. package/dist/visio/ui/edit-commands.d.ts +4 -0
  112. package/dist/visio/ui/edit-commands.d.ts.map +1 -0
  113. package/dist/visio/ui/edit-error.d.ts +5 -0
  114. package/dist/visio/ui/edit-error.d.ts.map +1 -0
  115. package/dist/visio/ui/foreign-vector-budget.d.ts +25 -0
  116. package/dist/visio/ui/foreign-vector-budget.d.ts.map +1 -0
  117. package/dist/visio/ui/index.cjs +1523 -0
  118. package/dist/visio/ui/index.d.ts +12 -0
  119. package/dist/visio/ui/index.d.ts.map +1 -0
  120. package/dist/visio/ui/index.mjs +1498 -0
  121. package/dist/visio/ui/scene-details.d.ts +8 -0
  122. package/dist/visio/ui/scene-details.d.ts.map +1 -0
  123. package/dist/visio/ui/scene-validation.d.ts +5 -0
  124. package/dist/visio/ui/scene-validation.d.ts.map +1 -0
  125. package/dist/visio/ui/snapshot-scene.d.ts +9 -0
  126. package/dist/visio/ui/snapshot-scene.d.ts.map +1 -0
  127. package/dist/xlsx/index.cjs +100 -98
  128. package/dist/xlsx/index.mjs +100 -98
  129. package/dist/xlsx/load/index.cjs +68 -66
  130. package/dist/xlsx/load/index.mjs +68 -66
  131. package/dist/xlsx/ui/backstage/templates.d.ts +16 -0
  132. package/dist/xlsx/ui/backstage/templates.d.ts.map +1 -0
  133. package/dist/xlsx/ui/commands/alignment.d.ts +4 -0
  134. package/dist/xlsx/ui/commands/alignment.d.ts.map +1 -0
  135. package/dist/xlsx/ui/commands/cells.d.ts +3 -0
  136. package/dist/xlsx/ui/commands/cells.d.ts.map +1 -0
  137. package/dist/xlsx/ui/commands/cf-presets.d.ts +15 -0
  138. package/dist/xlsx/ui/commands/cf-presets.d.ts.map +1 -0
  139. package/dist/xlsx/ui/commands/clipboard.d.ts +22 -0
  140. package/dist/xlsx/ui/commands/clipboard.d.ts.map +1 -0
  141. package/dist/xlsx/ui/commands/contextual.d.ts +13 -0
  142. package/dist/xlsx/ui/commands/contextual.d.ts.map +1 -0
  143. package/dist/xlsx/ui/commands/data.d.ts +3 -0
  144. package/dist/xlsx/ui/commands/data.d.ts.map +1 -0
  145. package/dist/xlsx/ui/commands/editing.d.ts +13 -0
  146. package/dist/xlsx/ui/commands/editing.d.ts.map +1 -0
  147. package/dist/xlsx/ui/commands/font.d.ts +21 -0
  148. package/dist/xlsx/ui/commands/font.d.ts.map +1 -0
  149. package/dist/xlsx/ui/commands/formulas.d.ts +15 -0
  150. package/dist/xlsx/ui/commands/formulas.d.ts.map +1 -0
  151. package/dist/xlsx/ui/commands/i18n/core-features.d.ts +3 -0
  152. package/dist/xlsx/ui/commands/i18n/core-features.d.ts.map +1 -0
  153. package/dist/xlsx/ui/commands/i18n/format-cells.d.ts +3 -0
  154. package/dist/xlsx/ui/commands/i18n/format-cells.d.ts.map +1 -0
  155. package/dist/xlsx/ui/commands/i18n/index.d.ts +4 -0
  156. package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -0
  157. package/dist/xlsx/ui/commands/i18n/messages.d.ts +3 -0
  158. package/dist/xlsx/ui/commands/i18n/messages.d.ts.map +1 -0
  159. package/dist/xlsx/ui/commands/i18n/navigation.d.ts +3 -0
  160. package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -0
  161. package/dist/xlsx/ui/commands/i18n/ribbon-home.d.ts +3 -0
  162. package/dist/xlsx/ui/commands/i18n/ribbon-home.d.ts.map +1 -0
  163. package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts +3 -0
  164. package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts.map +1 -0
  165. package/dist/xlsx/ui/commands/i18n/rules.d.ts +3 -0
  166. package/dist/xlsx/ui/commands/i18n/rules.d.ts.map +1 -0
  167. package/dist/xlsx/ui/commands/i18n/tools.d.ts +3 -0
  168. package/dist/xlsx/ui/commands/i18n/tools.d.ts.map +1 -0
  169. package/dist/xlsx/ui/commands/i18n/types.d.ts +5 -0
  170. package/dist/xlsx/ui/commands/i18n/types.d.ts.map +1 -0
  171. package/dist/xlsx/ui/commands/icons.d.ts +4 -0
  172. package/dist/xlsx/ui/commands/icons.d.ts.map +1 -0
  173. package/dist/xlsx/ui/commands/number.d.ts +11 -0
  174. package/dist/xlsx/ui/commands/number.d.ts.map +1 -0
  175. package/dist/xlsx/ui/commands/page-layout.d.ts +10 -0
  176. package/dist/xlsx/ui/commands/page-layout.d.ts.map +1 -0
  177. package/dist/xlsx/ui/commands/select-special.d.ts +12 -0
  178. package/dist/xlsx/ui/commands/select-special.d.ts.map +1 -0
  179. package/dist/xlsx/ui/commands/sort-filter.d.ts +3 -0
  180. package/dist/xlsx/ui/commands/sort-filter.d.ts.map +1 -0
  181. package/dist/xlsx/ui/commands/style-presets.d.ts +21 -0
  182. package/dist/xlsx/ui/commands/style-presets.d.ts.map +1 -0
  183. package/dist/xlsx/ui/commands/util.d.ts +59 -0
  184. package/dist/xlsx/ui/commands/util.d.ts.map +1 -0
  185. package/dist/xlsx/ui/commands.d.ts +36 -0
  186. package/dist/xlsx/ui/commands.d.ts.map +1 -0
  187. package/dist/xlsx/ui/context-menu/items.d.ts +36 -0
  188. package/dist/xlsx/ui/context-menu/items.d.ts.map +1 -0
  189. package/dist/xlsx/ui/context.d.ts +65 -0
  190. package/dist/xlsx/ui/context.d.ts.map +1 -0
  191. package/dist/xlsx/ui/dialogs/format-cells/number-categories.d.ts +28 -0
  192. package/dist/xlsx/ui/dialogs/format-cells/number-categories.d.ts.map +1 -0
  193. package/dist/xlsx/ui/dialogs/format-cells/types.d.ts +40 -0
  194. package/dist/xlsx/ui/dialogs/format-cells/types.d.ts.map +1 -0
  195. package/dist/xlsx/ui/dialogs/insert-chart-model.d.ts +9 -0
  196. package/dist/xlsx/ui/dialogs/insert-chart-model.d.ts.map +1 -0
  197. package/dist/xlsx/ui/dialogs.d.ts +9 -0
  198. package/dist/xlsx/ui/dialogs.d.ts.map +1 -0
  199. package/dist/xlsx/ui/dirty-state.d.ts +9 -0
  200. package/dist/xlsx/ui/dirty-state.d.ts.map +1 -0
  201. package/dist/xlsx/ui/formula-bar/name-resolve.d.ts +23 -0
  202. package/dist/xlsx/ui/formula-bar/name-resolve.d.ts.map +1 -0
  203. package/dist/xlsx/ui/grid/cell-items.d.ts +42 -0
  204. package/dist/xlsx/ui/grid/cell-items.d.ts.map +1 -0
  205. package/dist/xlsx/ui/grid/cell-paint.d.ts +26 -0
  206. package/dist/xlsx/ui/grid/cell-paint.d.ts.map +1 -0
  207. package/dist/xlsx/ui/grid/edit-bridge.d.ts +47 -0
  208. package/dist/xlsx/ui/grid/edit-bridge.d.ts.map +1 -0
  209. package/dist/xlsx/ui/grid/geometry.d.ts +76 -0
  210. package/dist/xlsx/ui/grid/geometry.d.ts.map +1 -0
  211. package/dist/xlsx/ui/grid/icon-sets.d.ts +3 -0
  212. package/dist/xlsx/ui/grid/icon-sets.d.ts.map +1 -0
  213. package/dist/xlsx/ui/grid/number-fit.d.ts +3 -0
  214. package/dist/xlsx/ui/grid/number-fit.d.ts.map +1 -0
  215. package/dist/xlsx/ui/grid/selection-ops.d.ts +32 -0
  216. package/dist/xlsx/ui/grid/selection-ops.d.ts.map +1 -0
  217. package/dist/xlsx/ui/grid/view-cache.d.ts +15 -0
  218. package/dist/xlsx/ui/grid/view-cache.d.ts.map +1 -0
  219. package/dist/xlsx/ui/index.cjs +28484 -0
  220. package/dist/xlsx/ui/index.d.ts +56 -0
  221. package/dist/xlsx/ui/index.d.ts.map +1 -0
  222. package/dist/xlsx/ui/index.mjs +28290 -0
  223. package/dist/xlsx/ui/locales/de/commands.d.ts +2 -0
  224. package/dist/xlsx/ui/locales/de/commands.d.ts.map +1 -0
  225. package/dist/xlsx/ui/locales/de/grid.d.ts +2 -0
  226. package/dist/xlsx/ui/locales/de/grid.d.ts.map +1 -0
  227. package/dist/xlsx/ui/locales/de/index.d.ts +2 -0
  228. package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -0
  229. package/dist/xlsx/ui/locales/de/shell.d.ts +2 -0
  230. package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -0
  231. package/dist/xlsx/ui/locales/en/commands.d.ts +2 -0
  232. package/dist/xlsx/ui/locales/en/commands.d.ts.map +1 -0
  233. package/dist/xlsx/ui/locales/en/grid.d.ts +2 -0
  234. package/dist/xlsx/ui/locales/en/grid.d.ts.map +1 -0
  235. package/dist/xlsx/ui/locales/en/index.d.ts +2 -0
  236. package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -0
  237. package/dist/xlsx/ui/locales/en/shell.d.ts +2 -0
  238. package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -0
  239. package/dist/xlsx/ui/locales/es/commands.d.ts +2 -0
  240. package/dist/xlsx/ui/locales/es/commands.d.ts.map +1 -0
  241. package/dist/xlsx/ui/locales/es/grid.d.ts +2 -0
  242. package/dist/xlsx/ui/locales/es/grid.d.ts.map +1 -0
  243. package/dist/xlsx/ui/locales/es/index.d.ts +2 -0
  244. package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -0
  245. package/dist/xlsx/ui/locales/es/shell.d.ts +2 -0
  246. package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -0
  247. package/dist/xlsx/ui/locales/fr/commands.d.ts +2 -0
  248. package/dist/xlsx/ui/locales/fr/commands.d.ts.map +1 -0
  249. package/dist/xlsx/ui/locales/fr/grid.d.ts +2 -0
  250. package/dist/xlsx/ui/locales/fr/grid.d.ts.map +1 -0
  251. package/dist/xlsx/ui/locales/fr/index.d.ts +2 -0
  252. package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -0
  253. package/dist/xlsx/ui/locales/fr/shell.d.ts +2 -0
  254. package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -0
  255. package/dist/xlsx/ui/locales/merge.d.ts +7 -0
  256. package/dist/xlsx/ui/locales/merge.d.ts.map +1 -0
  257. package/dist/xlsx/ui/locales/zh-CN/commands.d.ts +2 -0
  258. package/dist/xlsx/ui/locales/zh-CN/commands.d.ts.map +1 -0
  259. package/dist/xlsx/ui/locales/zh-CN/grid.d.ts +2 -0
  260. package/dist/xlsx/ui/locales/zh-CN/grid.d.ts.map +1 -0
  261. package/dist/xlsx/ui/locales/zh-CN/index.d.ts +2 -0
  262. package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -0
  263. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts +2 -0
  264. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -0
  265. package/dist/xlsx/ui/localization.d.ts +23 -0
  266. package/dist/xlsx/ui/localization.d.ts.map +1 -0
  267. package/dist/xlsx/ui/ribbon/icon-paths.d.ts +9 -0
  268. package/dist/xlsx/ui/ribbon/icon-paths.d.ts.map +1 -0
  269. package/dist/xlsx/ui/ribbon/parts.d.ts +88 -0
  270. package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -0
  271. package/dist/xlsx/ui/ribbon/tab-api.d.ts +21 -0
  272. package/dist/xlsx/ui/ribbon/tab-api.d.ts.map +1 -0
  273. package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts +5 -0
  274. package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts.map +1 -0
  275. package/dist/xlsx/ui/ribbon/tabs/theme-palette.d.ts +8 -0
  276. package/dist/xlsx/ui/ribbon/tabs/theme-palette.d.ts.map +1 -0
  277. package/dist/xlsx/ui/ribbon/tell-me.d.ts +16 -0
  278. package/dist/xlsx/ui/ribbon/tell-me.d.ts.map +1 -0
  279. package/dist/xlsx/ui/selection.d.ts +34 -0
  280. package/dist/xlsx/ui/selection.d.ts.map +1 -0
  281. package/dist/xlsx/ui/theme/css-vars.d.ts +6 -0
  282. package/dist/xlsx/ui/theme/css-vars.d.ts.map +1 -0
  283. package/dist/xlsx/ui/theme/defaults.d.ts +6 -0
  284. package/dist/xlsx/ui/theme/defaults.d.ts.map +1 -0
  285. package/dist/xlsx/ui/theme/element.d.ts +9 -0
  286. package/dist/xlsx/ui/theme/element.d.ts.map +1 -0
  287. package/dist/xlsx/ui/theme/types.d.ts +54 -0
  288. package/dist/xlsx/ui/theme/types.d.ts.map +1 -0
  289. package/dist/xml/index.cjs +2 -1
  290. package/dist/xml/index.mjs +2 -1
  291. package/package.json +30 -3
@@ -0,0 +1,8 @@
1
+ import type { VisioShape } from '../index.js';
2
+ export interface DetailBudget {
3
+ rows: number;
4
+ characters: number;
5
+ }
6
+ /** Runtime model checks prevent implicit DOM stringification of host-provided objects. */
7
+ export declare function assertShapeDetails(shape: VisioShape, budget: DetailBudget): void;
8
+ //# sourceMappingURL=scene-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-details.d.ts","sourceRoot":"","sources":["../../../src/visio/ui/scene-details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACnB;AACD,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAuEhF"}
@@ -0,0 +1,5 @@
1
+ import { type VisioDocument } from '../index.js';
2
+ export declare const MAX_INPUT_BYTES: number;
3
+ /** Defensive display limits also protect callers supplying their own typed scenes. */
4
+ export declare function assertViewableDocument(model: VisioDocument): void;
5
+ //# sourceMappingURL=scene-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-validation.d.ts","sourceRoot":"","sources":["../../../src/visio/ui/scene-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,aAAa,EAGlB,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,eAAe,QAAmB,CAAC;AAUhD,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CA6RjE"}
@@ -0,0 +1,9 @@
1
+ import type { VisioDocument } from '../index.js';
2
+ /**
3
+ * @internal Copy a canonically validated scene without retaining any renderer-used mutable input.
4
+ * The caller validates the result before use. Independent allocation caps also bound a host that
5
+ * changes its arrays while fields are read. Shared raster buffers are copied once per invocation.
6
+ * Inspector metadata, connectors, layers and unknown host properties are not used by static SVG.
7
+ */
8
+ export declare function copySnapshotScene(model: VisioDocument): VisioDocument;
9
+ //# sourceMappingURL=snapshot-scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-scene.d.ts","sourceRoot":"","sources":["../../../src/visio/ui/snapshot-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAOb,MAAM,aAAa,CAAC;AAwBrB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAoKrE"}
@@ -1646,8 +1646,8 @@ function fitNumber(value, format, options) {
1646
1646
  const date1904 = options.date1904 ?? false;
1647
1647
  const width = options.width ?? 0;
1648
1648
  const fits = (text2) => (options.measure ? options.measure(text2) : text2.length) <= width;
1649
- const first3 = formatNumber(value, format, date1904);
1650
- if (fits(first3.text) || first3.text === OVERFLOW_TEXT) return first3;
1649
+ const first2 = formatNumber(value, format, date1904);
1650
+ if (fits(first2.text) || first2.text === OVERFLOW_TEXT) return first2;
1651
1651
  const choice = chooseSection(compileFormat(format), value);
1652
1652
  const general = choice && !choice.section.number && !choice.section.fraction && choice.section.tokens.some((t) => t.t === "general");
1653
1653
  if (general) {
@@ -1657,7 +1657,7 @@ function fitNumber(value, format, options) {
1657
1657
  }
1658
1658
  }
1659
1659
  const fill2 = hashFill(options);
1660
- return first3.color ? { text: fill2, color: first3.color } : { text: fill2 };
1660
+ return first2.color ? { text: fill2, color: first2.color } : { text: fill2 };
1661
1661
  }
1662
1662
  function formatNumber(value, format, date1904, generalWidth) {
1663
1663
  if (!Number.isFinite(value)) return { text: "#NUM!" };
@@ -2640,9 +2640,9 @@ function serialToYmd(serial, date1904 = date1904Mode) {
2640
2640
  return { year: d.getUTCFullYear(), month: d.getUTCMonth() + 1, day: d.getUTCDate() };
2641
2641
  }
2642
2642
  function monthStartSerial(year, month0, date1904) {
2643
- const first3 = /* @__PURE__ */ new Date(0);
2644
- first3.setUTCFullYear(year, month0, 1);
2645
- const days = Math.round((first3.getTime() - (date1904 ? EPOCH_19042 : EPOCH_19002)) / DAY_MS);
2643
+ const first2 = /* @__PURE__ */ new Date(0);
2644
+ first2.setUTCFullYear(year, month0, 1);
2645
+ const days = Math.round((first2.getTime() - (date1904 ? EPOCH_19042 : EPOCH_19002)) / DAY_MS);
2646
2646
  return !date1904 && days < 61 ? days - 1 : days;
2647
2647
  }
2648
2648
  function ymdToSerial(year, month, day, date1904 = date1904Mode) {
@@ -3710,9 +3710,9 @@ function percentRank(values2, x, digits2, exclusive) {
3710
3710
  const s = sorted(values2);
3711
3711
  const n2 = s.length;
3712
3712
  if (n2 === 0 || digits2 < 1) fail(ERR.NUM);
3713
- const first3 = s[0];
3713
+ const first2 = s[0];
3714
3714
  const last = s[n2 - 1];
3715
- if (x < first3 || x > last) fail(ERR.NA);
3715
+ if (x < first2 || x > last) fail(ERR.NA);
3716
3716
  let rank4;
3717
3717
  const lower2 = s.filter((v) => v < x).length;
3718
3718
  const exact = s.includes(x);
@@ -3912,8 +3912,8 @@ function weekendDays(value) {
3912
3912
  }
3913
3913
  const code = Math.trunc(num(v));
3914
3914
  if (code >= 1 && code <= 7) {
3915
- const first3 = (code + 5) % 7;
3916
- return /* @__PURE__ */ new Set([first3, (first3 + 1) % 7]);
3915
+ const first2 = (code + 5) % 7;
3916
+ return /* @__PURE__ */ new Set([first2, (first2 + 1) % 7]);
3917
3917
  }
3918
3918
  if (code >= 11 && code <= 17) return /* @__PURE__ */ new Set([code - 11]);
3919
3919
  return fail(ERR.NUM);
@@ -5157,16 +5157,16 @@ function quasiPeriods(anchor, from, to, frequency2, ctx) {
5157
5157
  }
5158
5158
  function accruedInterest(args, ctx) {
5159
5159
  const issue = serialArg(args[0]);
5160
- const first3 = serialArg(args[1]);
5160
+ const first2 = serialArg(args[1]);
5161
5161
  const settlement = serialArg(args[2]);
5162
5162
  const [rate, par] = [num(args[3]), optNum(args, 4, 1e3)];
5163
5163
  const frequency2 = int(args[5]);
5164
5164
  const basis = basisOf(args, 6);
5165
5165
  const fromIssue = args.length > 7 && args[7] !== null ? bool(args[7]) : true;
5166
5166
  if (rate <= 0 || par <= 0 || ![1, 2, 4].includes(frequency2) || issue >= settlement) fail(ERR.NUM);
5167
- const start = fromIssue ? issue : Math.max(issue, first3);
5167
+ const start = fromIssue ? issue : Math.max(issue, first2);
5168
5168
  if (start >= settlement) return 0;
5169
- const dates = quasiPeriods(first3, start, settlement, frequency2, ctx);
5169
+ const dates = quasiPeriods(first2, start, settlement, frequency2, ctx);
5170
5170
  const count2 = (a, b) => basis === 0 || basis === 4 ? days360(a, b, basis === 4, ctx) : b - a;
5171
5171
  let sum2 = 0;
5172
5172
  for (let i = 0; i + 1 < dates.length; i++) {
@@ -5625,8 +5625,8 @@ function datedFlows(ctx, args) {
5625
5625
  const values2 = collectNumbers(ctx, [args[0] ?? null]);
5626
5626
  const dates = collectNumbers(ctx, [args[1] ?? null]).map(Math.floor);
5627
5627
  if (values2.length !== dates.length || values2.length === 0) fail(ERR.NUM);
5628
- const first3 = dates[0];
5629
- if (dates.some((d) => d < first3)) fail(ERR.NUM);
5628
+ const first2 = dates[0];
5629
+ if (dates.some((d) => d < first2)) fail(ERR.NUM);
5630
5630
  return { values: values2, dates };
5631
5631
  }
5632
5632
  var xnpv = (rate, values2, dates) => values2.reduce(
@@ -5798,13 +5798,13 @@ function sheetIndex(host, name) {
5798
5798
  function prefixSheets(host, prefix, current) {
5799
5799
  if (!prefix) return [current];
5800
5800
  if (prefix.book !== void 0) return void 0;
5801
- const first3 = sheetIndex(host, prefix.sheet);
5802
- if (first3 < 0) return void 0;
5803
- if (prefix.sheet2 === void 0) return [first3];
5801
+ const first2 = sheetIndex(host, prefix.sheet);
5802
+ if (first2 < 0) return void 0;
5803
+ if (prefix.sheet2 === void 0) return [first2];
5804
5804
  const last = sheetIndex(host, prefix.sheet2);
5805
5805
  if (last < 0) return void 0;
5806
5806
  const out = [];
5807
- for (let i = Math.min(first3, last); i <= Math.max(first3, last); i++) out.push(i);
5807
+ for (let i = Math.min(first2, last); i <= Math.max(first2, last); i++) out.push(i);
5808
5808
  return out;
5809
5809
  }
5810
5810
  var specRange = (spec2) => normalizeRange({
@@ -7375,7 +7375,7 @@ function matchingCells(ctx, pairs, target, sameShape) {
7375
7375
  const tests = pairs.map((p) => makeCriteria(scalar(p.criteria)));
7376
7376
  const values2 = matrices[matrices.length - 1];
7377
7377
  const out = [];
7378
- const first3 = matrices[0];
7378
+ const first2 = matrices[0];
7379
7379
  const holds = (r, c2) => {
7380
7380
  for (let i = 0; i < tests.length; i++) {
7381
7381
  if (!tests[i](matrices[i].get(r, c2))) return false;
@@ -7385,23 +7385,23 @@ function matchingCells(ctx, pairs, target, sameShape) {
7385
7385
  const candidates = indexedCandidates(pairs, matrices);
7386
7386
  if (candidates) {
7387
7387
  for (const at of candidates) {
7388
- const r = Math.floor(at / first3.cols);
7389
- const c2 = at - r * first3.cols;
7388
+ const r = Math.floor(at / first2.cols);
7389
+ const c2 = at - r * first2.cols;
7390
7390
  if (holds(r, c2)) out.push(values2.get(r, c2));
7391
7391
  }
7392
7392
  } else {
7393
- for (let r = 0; r < first3.rows; r++) {
7394
- for (let c2 = 0; c2 < first3.cols; c2++) if (holds(r, c2)) out.push(values2.get(r, c2));
7393
+ for (let r = 0; r < first2.rows; r++) {
7394
+ for (let c2 = 0; c2 < first2.cols; c2++) if (holds(r, c2)) out.push(values2.get(r, c2));
7395
7395
  }
7396
7396
  }
7397
7397
  const blankTail = total2 > block && tests.every((test) => test(null)) ? total2 - block : 0;
7398
7398
  return { values: out, blankTail };
7399
7399
  }
7400
7400
  function indexedCandidates(pairs, matrices) {
7401
- const first3 = matrices[0];
7401
+ const first2 = matrices[0];
7402
7402
  for (let i = 0; i < pairs.length; i++) {
7403
7403
  const m = matrices[i];
7404
- if (!(pairs[i]?.range instanceof RefValue) || m.cols !== first3.cols) continue;
7404
+ if (!(pairs[i]?.range instanceof RefValue) || m.cols !== first2.cols) continue;
7405
7405
  const key = equalityKey(scalar(pairs[i]?.criteria));
7406
7406
  if (key === void 0) continue;
7407
7407
  const found = positionsOf(m, key);
@@ -7458,12 +7458,12 @@ var C18 = "Math & Trig";
7458
7458
  var numbersOf = (values2) => values2.filter((v) => typeof v === "number");
7459
7459
  function sumProduct(ctx, args) {
7460
7460
  const matrices = args.map((a) => ctx.toMatrix(a));
7461
- const first3 = matrices[0];
7462
- if (!first3) fail(ERR.VALUE);
7463
- for (const m of matrices) if (m.rows !== first3.rows || m.cols !== first3.cols) fail(ERR.VALUE);
7461
+ const first2 = matrices[0];
7462
+ if (!first2) fail(ERR.VALUE);
7463
+ for (const m of matrices) if (m.rows !== first2.rows || m.cols !== first2.cols) fail(ERR.VALUE);
7464
7464
  let total2 = 0;
7465
- for (let r = 0; r < first3.rows; r++) {
7466
- for (let c2 = 0; c2 < first3.cols; c2++) {
7465
+ for (let r = 0; r < first2.rows; r++) {
7466
+ for (let c2 = 0; c2 < first2.cols; c2++) {
7467
7467
  let product = 1;
7468
7468
  for (const m of matrices) {
7469
7469
  const v = m.get(r, c2);
@@ -11329,9 +11329,9 @@ function visit(node, c2) {
11329
11329
  let sheet = c2.sheet;
11330
11330
  if (node.prefix) {
11331
11331
  const sheets = prefixSheets(c2.host, node.prefix, c2.sheet);
11332
- const first3 = sheets?.[0];
11333
- if (first3 === void 0) return;
11334
- sheet = first3;
11332
+ const first2 = sheets?.[0];
11333
+ if (first2 === void 0) return;
11334
+ sheet = first2;
11335
11335
  }
11336
11336
  const defined = findDefinedName(c2.host, node.name, sheet, node.prefix !== void 0);
11337
11337
  if (defined) {
@@ -11469,9 +11469,9 @@ var AreaIndex = class {
11469
11469
  else this.wide.set(area.sheet, [entry]);
11470
11470
  return;
11471
11471
  }
11472
- const first3 = start.row >> CHUNK_SHIFT;
11472
+ const first2 = start.row >> CHUNK_SHIFT;
11473
11473
  const last = end.row >> CHUNK_SHIFT;
11474
- if (last - first3 + 1 > CHUNKS) {
11474
+ if (last - first2 + 1 > CHUNKS) {
11475
11475
  const cols2 = inner(this.tall, area.sheet);
11476
11476
  for (let c2 = start.col; c2 <= end.col; c2++) push2(cols2, c2, entry);
11477
11477
  return;
@@ -11480,7 +11480,7 @@ var AreaIndex = class {
11480
11480
  for (let c2 = start.col; c2 <= end.col; c2++) {
11481
11481
  let chunks = cols.get(c2);
11482
11482
  if (!chunks) cols.set(c2, chunks = /* @__PURE__ */ new Map());
11483
- for (let k = first3; k <= last; k++) push2(chunks, k, entry);
11483
+ for (let k = first2; k <= last; k++) push2(chunks, k, entry);
11484
11484
  }
11485
11485
  }
11486
11486
  /** Items whose areas intersect `range` on `sheet` (each once). */
@@ -11521,13 +11521,13 @@ var AreaIndex = class {
11521
11521
  } else for (const c2 of map.keys()) if (c2 >= start.col && c2 <= end.col) visit2(c2);
11522
11522
  };
11523
11523
  const chunked = this.chunked.get(sheet);
11524
- const first3 = start.row >> CHUNK_SHIFT;
11524
+ const first2 = start.row >> CHUNK_SHIFT;
11525
11525
  const last = end.row >> CHUNK_SHIFT;
11526
11526
  columns(chunked, (c2) => {
11527
11527
  const chunks = chunked?.get(c2);
11528
- if (last - first3 + 1 <= chunks.size) {
11529
- for (let k = first3; k <= last; k++) check3(chunks.get(k));
11530
- } else for (const [k, list] of chunks) if (k >= first3 && k <= last) check3(list);
11528
+ if (last - first2 + 1 <= chunks.size) {
11529
+ for (let k = first2; k <= last; k++) check3(chunks.get(k));
11530
+ } else for (const [k, list] of chunks) if (k >= first2 && k <= last) check3(list);
11531
11531
  });
11532
11532
  const tall = this.tall.get(sheet);
11533
11533
  columns(tall, (c2) => check3(tall?.get(c2)));
@@ -11998,8 +11998,8 @@ function formulaOrder(nodes, successors) {
11998
11998
  const ranks = /* @__PURE__ */ new Map();
11999
11999
  const components = stronglyConnected(nodes, successors).map((members, rank4) => {
12000
12000
  for (const member of members) ranks.set(member, rank4);
12001
- const first3 = members[0];
12002
- return { nodes: members, cyclic: members.length > 1 || successors(first3).includes(first3) };
12001
+ const first2 = members[0];
12002
+ return { nodes: members, cyclic: members.length > 1 || successors(first2).includes(first2) };
12003
12003
  });
12004
12004
  return { components, ranks };
12005
12005
  }
@@ -12038,9 +12038,9 @@ function sameRange(a, b) {
12038
12038
  return a.start.row === b.start.row && a.start.col === b.start.col && a.end.row === b.end.row && a.end.col === b.end.col;
12039
12039
  }
12040
12040
  function boundingBox(ranges) {
12041
- const first3 = ranges[0];
12042
- const start = { ...first3.start };
12043
- const end = { ...first3.end };
12041
+ const first2 = ranges[0];
12042
+ const start = { ...first2.start };
12043
+ const end = { ...first2.end };
12044
12044
  for (const r of ranges) {
12045
12045
  start.row = Math.min(start.row, r.start.row);
12046
12046
  start.col = Math.min(start.col, r.start.col);
@@ -12177,13 +12177,13 @@ var EngineCore = class extends EngineHost {
12177
12177
  this.dynamicCycleHits = /* @__PURE__ */ new Set();
12178
12178
  try {
12179
12179
  for (const component of order.components) {
12180
- const first3 = component.nodes[0];
12180
+ const first2 = component.nodes[0];
12181
12181
  if (component.cyclic) {
12182
12182
  const iterate = this.workbook.iterate;
12183
12183
  if (iterate) this.iterateGroup(component.nodes, iterate);
12184
12184
  else for (const node of component.nodes) this.markCycle(node);
12185
- } else if (this.pending.has(first3)) {
12186
- this.computeFrom(first3);
12185
+ } else if (this.pending.has(first2)) {
12186
+ this.computeFrom(first2);
12187
12187
  }
12188
12188
  }
12189
12189
  } finally {
@@ -12526,24 +12526,24 @@ function mergeSpacedAreas(tokens2) {
12526
12526
  const out = [];
12527
12527
  const plainCell = (t) => t?.kind === "ref" && t.ref?.kind === "cell" && !t.spill;
12528
12528
  for (let i = 0; i < tokens2.length; i++) {
12529
- const first3 = tokens2[i];
12529
+ const first2 = tokens2[i];
12530
12530
  let j = i + 1;
12531
12531
  while (tokens2[j]?.kind === "ws") j++;
12532
12532
  let k = j + 1;
12533
12533
  while (tokens2[k]?.kind === "ws") k++;
12534
12534
  const colon = tokens2[j];
12535
12535
  const last = tokens2[k];
12536
- if (plainCell(first3) && colon?.kind === "op" && colon.text === ":" && plainCell(last) && !last?.prefix && k > i + 2 && first3.ref && last?.ref) {
12536
+ if (plainCell(first2) && colon?.kind === "op" && colon.text === ":" && plainCell(last) && !last?.prefix && k > i + 2 && first2.ref && last?.ref) {
12537
12537
  const text2 = tokens2.slice(i, k + 1).map((t) => t.text).join("");
12538
12538
  out.push({
12539
- ...first3,
12539
+ ...first2,
12540
12540
  text: text2,
12541
- ref: { kind: "area", start: first3.ref.start, end: last.ref.start }
12541
+ ref: { kind: "area", start: first2.ref.start, end: last.ref.start }
12542
12542
  });
12543
12543
  i = k;
12544
12544
  continue;
12545
12545
  }
12546
- out.push(first3);
12546
+ out.push(first2);
12547
12547
  }
12548
12548
  return out;
12549
12549
  }
@@ -12595,10 +12595,10 @@ function renameSheetInFormula(formula, oldName, newName) {
12595
12595
  for (const token of tokens2) {
12596
12596
  const prefix = token.prefix;
12597
12597
  if (!prefix || prefix.book !== void 0) continue;
12598
- const first3 = prefix.sheet.toLowerCase() === lower2;
12598
+ const first2 = prefix.sheet.toLowerCase() === lower2;
12599
12599
  const second = prefix.sheet2?.toLowerCase() === lower2;
12600
- if (!first3 && !second) continue;
12601
- const renamed = { ...prefix, sheet: first3 ? newName : prefix.sheet };
12600
+ if (!first2 && !second) continue;
12601
+ const renamed = { ...prefix, sheet: first2 ? newName : prefix.sheet };
12602
12602
  if (prefix.sheet2 !== void 0) renamed.sheet2 = second ? newName : prefix.sheet2;
12603
12603
  const text2 = prefixText(renamed);
12604
12604
  token.text = text2 + token.text.slice(prefix.text.length);
@@ -13159,7 +13159,8 @@ function parseXml(xml, options = {}) {
13159
13159
  }).parseFromString(xml, "application/xml");
13160
13160
  } catch (error) {
13161
13161
  throw new Error(
13162
- `Invalid ${label2} XML: ${error instanceof Error ? error.message : String(error)}`
13162
+ `Invalid ${label2} XML: ${error instanceof Error ? error.message : String(error)}`,
13163
+ { cause: error }
13163
13164
  );
13164
13165
  }
13165
13166
  if (parseError || !parsed.documentElement)
@@ -13807,7 +13808,8 @@ async function readZipParts(input, limits = {}) {
13807
13808
  zip = await JSZip__default.default.loadAsync(bytes);
13808
13809
  } catch (error) {
13809
13810
  throw new Error(
13810
- `Not a valid XLSX package: ${error instanceof Error ? error.message : String(error)}`
13811
+ `Not a valid XLSX package: ${error instanceof Error ? error.message : String(error)}`,
13812
+ { cause: error }
13811
13813
  );
13812
13814
  }
13813
13815
  const entries = Object.values(zip.files).filter((entry) => !entry.dir);
@@ -16801,9 +16803,9 @@ function seriesXml(chart, series, index2) {
16801
16803
  var axes = (horizontal, scatter2) => {
16802
16804
  const common = '<c:scaling><c:orientation val="minMax"/></c:scaling><c:delete val="0"/>';
16803
16805
  const ticks = '<c:numFmt formatCode="General" sourceLinked="1"/><c:majorTickMark val="out"/><c:minorTickMark val="none"/><c:tickLblPos val="nextTo"/>';
16804
- const first3 = scatter2 ? `<c:valAx><c:axId val="500000001"/>${common}<c:axPos val="b"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:crossBetween val="midCat"/></c:valAx>` : `<c:catAx><c:axId val="500000001"/>${common}<c:axPos val="${horizontal ? "l" : "b"}"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:auto val="1"/><c:lblAlgn val="ctr"/><c:lblOffset val="100"/><c:noMultiLvlLbl val="0"/></c:catAx>`;
16806
+ const first2 = scatter2 ? `<c:valAx><c:axId val="500000001"/>${common}<c:axPos val="b"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:crossBetween val="midCat"/></c:valAx>` : `<c:catAx><c:axId val="500000001"/>${common}<c:axPos val="${horizontal ? "l" : "b"}"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:auto val="1"/><c:lblAlgn val="ctr"/><c:lblOffset val="100"/><c:noMultiLvlLbl val="0"/></c:catAx>`;
16805
16807
  const second = `<c:valAx><c:axId val="500000002"/>${common}<c:axPos val="${horizontal ? "b" : "l"}"/><c:majorGridlines/>${ticks}<c:crossAx val="500000001"/><c:crosses val="autoZero"/><c:crossBetween val="${scatter2 ? "midCat" : "between"}"/></c:valAx>`;
16806
- return first3 + second;
16808
+ return first2 + second;
16807
16809
  };
16808
16810
  var AX_IDS = '<c:axId val="500000001"/><c:axId val="500000002"/>';
16809
16811
  function plotXml(chart) {
@@ -18212,8 +18214,8 @@ function ruleXml(rule, styles, anchor) {
18212
18214
  }
18213
18215
  function conditionalFormatsXml(formats, styles) {
18214
18216
  return formats.filter((format) => format.ranges.length && format.rules.length).map((format) => {
18215
- const first3 = format.ranges[0];
18216
- const anchor = first3 ? formatAddress(first3.start) : "A1";
18217
+ const first2 = format.ranges[0];
18218
+ const anchor = first2 ? formatAddress(first2.start) : "A1";
18217
18219
  const rules = format.rules.map((rule) => ruleXml(rule, styles, anchor)).join("");
18218
18220
  return `<conditionalFormatting sqref="${format.ranges.map((r) => formatRange(r)).join(" ")}">${rules}</conditionalFormatting>`;
18219
18221
  }).join("");
@@ -18920,10 +18922,10 @@ function dimensionXml(sheet) {
18920
18922
  function sheetViewsXml(sheet, tabSelected) {
18921
18923
  const source2 = snapshotElement(sheet, "sheetViews");
18922
18924
  if (source2 && sameModel(readSheetView(source2), sheet.view)) {
18923
- const first3 = elements(source2).find((node) => node.localName === "sheetView");
18924
- if (first3) {
18925
- if (tabSelected) first3.setAttribute("tabSelected", "1");
18926
- else first3.removeAttribute("tabSelected");
18925
+ const first2 = elements(source2).find((node) => node.localName === "sheetView");
18926
+ if (first2) {
18927
+ if (tabSelected) first2.setAttribute("tabSelected", "1");
18928
+ else first2.removeAttribute("tabSelected");
18927
18929
  }
18928
18930
  return outerXml(source2);
18929
18931
  }
@@ -20748,14 +20750,14 @@ var TEXT_NUMBER = /^(.*?)(\d+)(\D*)$/;
20748
20750
  var QUARTER = /^(q|qtr|quarter)(\s?)([1-4])$/i;
20749
20751
  function textSeries(texts) {
20750
20752
  const lists = texts.map(listMatch);
20751
- const first3 = lists[0];
20752
- if (first3 && lists.every((m) => m && m.list === first3.list)) {
20753
+ const first2 = lists[0];
20754
+ if (first2 && lists.every((m) => m && m.list === first2.list)) {
20753
20755
  const second = lists[1];
20754
- const step2 = second ? mod(second.index - first3.index, first3.list.length) || 1 : 1;
20756
+ const step2 = second ? mod(second.index - first2.index, first2.list.length) || 1 : 1;
20755
20757
  const sample = texts[0] ?? "";
20756
20758
  return (k) => ({
20757
20759
  kind: "value",
20758
- value: matchCase(first3.list[mod(first3.index + step2 * k, first3.list.length)] ?? "", sample)
20760
+ value: matchCase(first2.list[mod(first2.index + step2 * k, first2.list.length)] ?? "", sample)
20759
20761
  });
20760
20762
  }
20761
20763
  const quarters = texts.map((t) => QUARTER.exec(t));
@@ -20795,11 +20797,11 @@ function formatShowsDate(code) {
20795
20797
  function dateCode(format) {
20796
20798
  return (format.split(";")[0] ?? "").replace(/"[^"]*"|\\.|_.|\*./g, "").replace(/\[(h+|m+|s+)\]/gi, "$1").replace(/\[[^\]]*\]/g, "").replace(/am\/pm|a\/p/gi, "").toLowerCase();
20797
20799
  }
20798
- function singleDateSeries(first3, format) {
20800
+ function singleDateSeries(first2, format) {
20799
20801
  const code = dateCode(format);
20800
- if (!formatShowsDate(code)) return (k) => ({ kind: "value", value: first3 + k / 24 });
20801
- const base = /[hs]/.test(code) ? first3 : Math.floor(first3);
20802
- return (k) => ({ kind: "value", value: k === 0 ? first3 : base + k });
20802
+ if (!formatShowsDate(code)) return (k) => ({ kind: "value", value: first2 + k / 24 });
20803
+ const base = /[hs]/.test(code) ? first2 : Math.floor(first2);
20804
+ return (k) => ({ kind: "value", value: k === 0 ? first2 : base + k });
20803
20805
  }
20804
20806
  function dateSeries(serials, date1904, format) {
20805
20807
  if (serials.length === 1) return singleDateSeries(serials[0] ?? 0, format);
@@ -20808,9 +20810,9 @@ function dateSeries(serials, date1904, format) {
20808
20810
  const sameDay = dates.every((d) => d.getUTCDate() === dates[0]?.getUTCDate());
20809
20811
  const stepMonths = (monthIndex[1] ?? 0) - (monthIndex[0] ?? 0);
20810
20812
  const evenMonths = stepMonths !== 0 && monthIndex.every((m, i) => m - (monthIndex[0] ?? 0) === stepMonths * i);
20811
- const first3 = serials[0] ?? 0;
20813
+ const first2 = serials[0] ?? 0;
20812
20814
  if (sameDay && evenMonths)
20813
- return (k) => ({ kind: "value", value: addMonths2(first3, stepMonths * k, date1904) });
20815
+ return (k) => ({ kind: "value", value: addMonths2(first2, stepMonths * k, date1904) });
20814
20816
  const trend = linearTrend(serials);
20815
20817
  return (k) => ({ kind: "value", value: trend(k) });
20816
20818
  }
@@ -22283,9 +22285,9 @@ function applyTotalsRow(sheet, table2) {
22283
22285
  const row2 = table2.range.end.row;
22284
22286
  const { columns } = table2;
22285
22287
  if (!columns.some((c2) => c2.totalsRowFunction || c2.totalsRowLabel)) {
22286
- const first3 = columns[0];
22288
+ const first2 = columns[0];
22287
22289
  const last = columns[columns.length - 1];
22288
- if (first3 && columns.length > 1) first3.totalsRowLabel = "Total";
22290
+ if (first2 && columns.length > 1) first2.totalsRowLabel = "Total";
22289
22291
  if (last) last.totalsRowFunction = "sum";
22290
22292
  }
22291
22293
  columns.forEach((column, i) => {
@@ -22608,25 +22610,25 @@ function removeDuplicates(ctx, s, range, columns, hasHeader) {
22608
22610
  const { workbook } = ctx;
22609
22611
  const sheet = sheetAt(workbook, s);
22610
22612
  const r = normalizeRange(range);
22611
- const first3 = hasHeader ? r.start.row + 1 : r.start.row;
22612
- if (first3 > r.end.row) return { removed: 0, remaining: 0 };
22613
- const data = { start: { row: first3, col: r.start.col }, end: r.end };
22613
+ const first2 = hasHeader ? r.start.row + 1 : r.start.row;
22614
+ if (first2 > r.end.row) return { removed: 0, remaining: 0 };
22615
+ const data = { start: { row: first2, col: r.start.col }, end: r.end };
22614
22616
  if (sheet.merges.some((m) => rangesIntersect(m, data)))
22615
22617
  throw new Error("Cannot remove duplicates from a range that contains merged cells.");
22616
22618
  const keyCols = columns.filter((c2) => c2 >= r.start.col && c2 <= r.end.col);
22617
22619
  const cols = keyCols.length ? keyCols : Array.from({ length: r.end.col - r.start.col + 1 }, (_v, i) => r.start.col + i);
22618
- let lastStored = first3;
22620
+ let lastStored = first2;
22619
22621
  for (const row2 of sheet.rows.keys()) if (row2 > lastStored) lastStored = row2;
22620
22622
  const lastRow = Math.min(r.end.row, lastStored);
22621
22623
  const keep2 = [];
22622
22624
  const seen = /* @__PURE__ */ new Set();
22623
- for (let row2 = first3; row2 <= lastRow; row2++) {
22625
+ for (let row2 = first2; row2 <= lastRow; row2++) {
22624
22626
  const key = cols.map((col) => displayText(workbook, getCell(sheet, row2, col)).toLowerCase()).join("\0");
22625
22627
  if (seen.has(key)) continue;
22626
22628
  seen.add(key);
22627
22629
  keep2.push(row2);
22628
22630
  }
22629
- const removed = lastRow - first3 + 1 - keep2.length;
22631
+ const removed = lastRow - first2 + 1 - keep2.length;
22630
22632
  if (!removed) return { removed: 0, remaining: keep2.length };
22631
22633
  ctx.run(
22632
22634
  "Remove duplicates",
@@ -22639,11 +22641,11 @@ function removeDuplicates(ctx, s, range, columns, hasHeader) {
22639
22641
  if (col >= r.start.col && col <= r.end.col) cells.set(col, cell);
22640
22642
  return { row: row2, cells };
22641
22643
  });
22642
- for (let row2 = first3; row2 <= lastRow; row2++)
22644
+ for (let row2 = first2; row2 <= lastRow; row2++)
22643
22645
  for (const col of [...sheet.rows.get(row2)?.keys() ?? []])
22644
22646
  if (col >= r.start.col && col <= r.end.col) deleteCell(sheet, row2, col);
22645
22647
  moved.forEach(({ row: from, cells }, i) => {
22646
- const row2 = first3 + i;
22648
+ const row2 = first2 + i;
22647
22649
  for (const [col, cell] of cells) {
22648
22650
  if (cell.formula !== void 0 && row2 !== from)
22649
22651
  cell.formula = translateFormula(cell.formula, row2 - from, 0);
@@ -23458,9 +23460,9 @@ function merge(ctx, s, range, mode) {
23458
23460
  sheet.merges = sheet.merges.filter((m) => !rangesIntersect(m, r));
23459
23461
  for (const target of targets) {
23460
23462
  const anchor = target.start;
23461
- const [first3] = filledCells(sheet, target);
23462
- if (first3 && (first3[0] !== anchor.row || first3[1] !== anchor.col)) {
23463
- const source2 = getCell(sheet, first3[0], first3[1]);
23463
+ const [first2] = filledCells(sheet, target);
23464
+ if (first2 && (first2[0] !== anchor.row || first2[1] !== anchor.col)) {
23465
+ const source2 = getCell(sheet, first2[0], first2[1]);
23464
23466
  const corner2 = getCell(sheet, anchor.row, anchor.col);
23465
23467
  if (source2) {
23466
23468
  const moved = structuredClone(source2);
@@ -24085,10 +24087,10 @@ var LINE_HEIGHTS = [
24085
24087
  [72, 93.75]
24086
24088
  ];
24087
24089
  function lineHeightPoints(sizePt) {
24088
- const first3 = LINE_HEIGHTS[0];
24090
+ const first2 = LINE_HEIGHTS[0];
24089
24091
  const last = LINE_HEIGHTS[LINE_HEIGHTS.length - 1];
24090
24092
  let height;
24091
- if (sizePt <= first3[0]) height = first3[1] / first3[0] * sizePt;
24093
+ if (sizePt <= first2[0]) height = first2[1] / first2[0] * sizePt;
24092
24094
  else if (sizePt >= last[0]) height = last[1] / last[0] * sizePt;
24093
24095
  else {
24094
24096
  let i = 1;
@@ -25490,8 +25492,8 @@ function navigate(sheet, from, key, pageRows = 20) {
25490
25492
  return { row: r, col };
25491
25493
  }
25492
25494
  case "home": {
25493
- const first3 = isColHidden(0) ? step(0, 1, MAX_COL, isColHidden) : 0;
25494
- return { row: row2, col: first3 };
25495
+ const first2 = isColHidden(0) ? step(0, 1, MAX_COL, isColHidden) : 0;
25496
+ return { row: row2, col: first2 };
25495
25497
  }
25496
25498
  case "end": {
25497
25499
  const cols = [...filledInRow(sheet, row2)].filter((c2) => !isColHidden(c2));
@@ -25696,8 +25698,8 @@ function chartView(workbook, sheetIndex2, chart, evaluateRef) {
25696
25698
  (_, i) => firstCats[i] !== void 0 ? toText2(firstCats[i] ?? null) : String(i + 1)
25697
25699
  );
25698
25700
  if (radial) {
25699
- const first3 = series[0];
25700
- if (first3) first3.pointColors = first3.values.map((_, i) => autoSeriesColor(theme2, i));
25701
+ const first2 = series[0];
25702
+ if (first2) first2.pointColors = first2.values.map((_, i) => autoSeriesColor(theme2, i));
25701
25703
  for (const s of series.slice(1))
25702
25704
  s.pointColors = s.values.map((_, i) => autoSeriesColor(theme2, i));
25703
25705
  }
@@ -26055,10 +26057,10 @@ function radarSvg(model, area) {
26055
26057
  var FONT_FAMILY = "Calibri, Carlito, Arial, sans-serif";
26056
26058
  function legendEntries(model) {
26057
26059
  if (model.type === "pie" || model.type === "doughnut") {
26058
- const first3 = model.series[0];
26060
+ const first2 = model.series[0];
26059
26061
  return model.categories.map((label2, i) => ({
26060
26062
  label: label2,
26061
- color: first3?.pointColors?.[i] ?? first3?.color ?? "#4472C4"
26063
+ color: first2?.pointColors?.[i] ?? first2?.color ?? "#4472C4"
26062
26064
  }));
26063
26065
  }
26064
26066
  return model.series.map((s) => ({ label: s.name, color: s.color }));