ooxml-core 1.7.0 → 1.8.1

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 (295) hide show
  1. package/dist/automation/index.cjs +10903 -5961
  2. package/dist/automation/index.mjs +10903 -5961
  3. package/dist/collab/session.d.ts.map +1 -1
  4. package/dist/color/index.cjs +103 -0
  5. package/dist/color/index.d.ts +1 -0
  6. package/dist/color/index.d.ts.map +1 -1
  7. package/dist/color/index.mjs +94 -1
  8. package/dist/color/theme-palette.d.ts +55 -0
  9. package/dist/color/theme-palette.d.ts.map +1 -0
  10. package/dist/docx/layout/page-cursor.d.ts.map +1 -1
  11. package/dist/docx/model.d.ts +2 -2
  12. package/dist/docx/model.d.ts.map +1 -1
  13. package/dist/docx/style-numbering-package.d.ts.map +1 -1
  14. package/dist/docx/tab-stops.d.ts.map +1 -1
  15. package/dist/docx/table-styles.d.ts.map +1 -1
  16. package/dist/docx/write-drawing.d.ts.map +1 -1
  17. package/dist/docx/write-table.d.ts.map +1 -1
  18. package/dist/geometry/connector-router-astar.d.ts +24 -0
  19. package/dist/geometry/connector-router-astar.d.ts.map +1 -0
  20. package/dist/geometry/connector-router-graph.d.ts +38 -0
  21. package/dist/geometry/connector-router-graph.d.ts.map +1 -0
  22. package/dist/geometry/connector-router-types.d.ts +53 -0
  23. package/dist/geometry/connector-router-types.d.ts.map +1 -0
  24. package/dist/geometry/connector-router.d.ts +35 -0
  25. package/dist/geometry/connector-router.d.ts.map +1 -0
  26. package/dist/geometry/guide-formula-api.d.ts.map +1 -1
  27. package/dist/geometry/index.cjs +319 -0
  28. package/dist/geometry/index.d.ts +1 -0
  29. package/dist/geometry/index.d.ts.map +1 -1
  30. package/dist/geometry/index.mjs +304 -1
  31. package/dist/geometry/preset-shape-definitions-chart-marks.d.ts.map +1 -1
  32. package/dist/geometry/preset-shape-paths.d.ts +1 -1
  33. package/dist/geometry/preset-shape-paths.d.ts.map +1 -1
  34. package/dist/index.cjs +510 -3
  35. package/dist/index.d.ts +1 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.mjs +510 -4
  38. package/dist/math/omml-to-latex.d.ts.map +1 -1
  39. package/dist/pptx/automation/index.d.ts.map +1 -1
  40. package/dist/pptx/chunks/index-Cn-GzYGp.d.ts.map +1 -1
  41. package/dist/pptx/signature-node/index.cjs +37 -7
  42. package/dist/pptx/signature-node/index.d.ts.map +1 -1
  43. package/dist/pptx/signature-node/index.mjs +37 -7
  44. package/dist/pptx/ui/index.cjs +22 -24
  45. package/dist/pptx/ui/index.d.ts +14 -7
  46. package/dist/pptx/ui/index.d.ts.map +1 -1
  47. package/dist/pptx/ui/index.mjs +22 -24
  48. package/dist/ribbon/add-in.d.ts +53 -0
  49. package/dist/ribbon/add-in.d.ts.map +1 -0
  50. package/dist/ribbon/index.cjs +28 -0
  51. package/dist/ribbon/index.d.ts +2 -0
  52. package/dist/ribbon/index.d.ts.map +1 -0
  53. package/dist/ribbon/index.mjs +23 -0
  54. package/dist/teams/files.d.ts.map +1 -1
  55. package/dist/teams/index.cjs +29 -15
  56. package/dist/teams/index.mjs +29 -15
  57. package/dist/text/font-metrics/advance-width.d.ts +9 -0
  58. package/dist/text/font-metrics/advance-width.d.ts.map +1 -0
  59. package/dist/text/font-metrics/design-advances.generated.d.ts +12 -0
  60. package/dist/text/font-metrics/design-advances.generated.d.ts.map +1 -0
  61. package/dist/text/index.cjs +53 -0
  62. package/dist/text/index.d.ts +1 -0
  63. package/dist/text/index.d.ts.map +1 -1
  64. package/dist/text/index.mjs +52 -1
  65. package/dist/visio/clipboard-types.d.ts +8 -0
  66. package/dist/visio/clipboard-types.d.ts.map +1 -1
  67. package/dist/visio/clipboard-xml.d.ts.map +1 -1
  68. package/dist/visio/clipboard.d.ts.map +1 -1
  69. package/dist/visio/connector-route-avoid.d.ts +24 -0
  70. package/dist/visio/connector-route-avoid.d.ts.map +1 -0
  71. package/dist/visio/connector-route-walk.d.ts +37 -0
  72. package/dist/visio/connector-route-walk.d.ts.map +1 -0
  73. package/dist/visio/connector-route.d.ts +5 -2
  74. package/dist/visio/connector-route.d.ts.map +1 -1
  75. package/dist/visio/create-document.d.ts +6 -0
  76. package/dist/visio/create-document.d.ts.map +1 -1
  77. package/dist/visio/edit-change-shape-builtin.d.ts +18 -0
  78. package/dist/visio/edit-change-shape-builtin.d.ts.map +1 -0
  79. package/dist/visio/edit-change-shape-commands.d.ts +10 -4
  80. package/dist/visio/edit-change-shape-commands.d.ts.map +1 -1
  81. package/dist/visio/edit-change-shape.d.ts +3 -1
  82. package/dist/visio/edit-change-shape.d.ts.map +1 -1
  83. package/dist/visio/edit-commands.d.ts +5 -1
  84. package/dist/visio/edit-commands.d.ts.map +1 -1
  85. package/dist/visio/edit-connector-layout.d.ts +2 -2
  86. package/dist/visio/edit-connector-layout.d.ts.map +1 -1
  87. package/dist/visio/edit-connector-obstacles.d.ts +14 -0
  88. package/dist/visio/edit-connector-obstacles.d.ts.map +1 -0
  89. package/dist/visio/edit-connector-reroute.d.ts +7 -0
  90. package/dist/visio/edit-connector-reroute.d.ts.map +1 -1
  91. package/dist/visio/edit-connector.d.ts +2 -0
  92. package/dist/visio/edit-connector.d.ts.map +1 -1
  93. package/dist/visio/edit-delete.d.ts +4 -2
  94. package/dist/visio/edit-delete.d.ts.map +1 -1
  95. package/dist/visio/edit-duplicate-scope.d.ts +7 -2
  96. package/dist/visio/edit-duplicate-scope.d.ts.map +1 -1
  97. package/dist/visio/edit-duplicate.d.ts.map +1 -1
  98. package/dist/visio/edit-formatting-cell-admission.d.ts.map +1 -1
  99. package/dist/visio/edit-formatting-commands.d.ts +17 -0
  100. package/dist/visio/edit-formatting-commands.d.ts.map +1 -1
  101. package/dist/visio/edit-formatting-paint.d.ts.map +1 -1
  102. package/dist/visio/edit-formatting-scope.d.ts +6 -1
  103. package/dist/visio/edit-formatting-scope.d.ts.map +1 -1
  104. package/dist/visio/edit-formatting-text.d.ts.map +1 -1
  105. package/dist/visio/edit-formatting.d.ts.map +1 -1
  106. package/dist/visio/edit-group-formulas.d.ts +22 -0
  107. package/dist/visio/edit-group-formulas.d.ts.map +1 -0
  108. package/dist/visio/edit-group-rotation.d.ts +3 -1
  109. package/dist/visio/edit-group-rotation.d.ts.map +1 -1
  110. package/dist/visio/edit-group.d.ts +10 -3
  111. package/dist/visio/edit-group.d.ts.map +1 -1
  112. package/dist/visio/edit-instance-checks.d.ts +18 -0
  113. package/dist/visio/edit-instance-checks.d.ts.map +1 -0
  114. package/dist/visio/edit-instance-clipboard.d.ts +22 -0
  115. package/dist/visio/edit-instance-clipboard.d.ts.map +1 -0
  116. package/dist/visio/edit-instance-delete.d.ts +19 -0
  117. package/dist/visio/edit-instance-delete.d.ts.map +1 -0
  118. package/dist/visio/edit-instance-duplicate.d.ts +17 -0
  119. package/dist/visio/edit-instance-duplicate.d.ts.map +1 -0
  120. package/dist/visio/edit-instance-format.d.ts +31 -0
  121. package/dist/visio/edit-instance-format.d.ts.map +1 -0
  122. package/dist/visio/edit-instance-geometry.d.ts +21 -0
  123. package/dist/visio/edit-instance-geometry.d.ts.map +1 -0
  124. package/dist/visio/edit-instance-group.d.ts +18 -0
  125. package/dist/visio/edit-instance-group.d.ts.map +1 -0
  126. package/dist/visio/edit-instance-order.d.ts +16 -0
  127. package/dist/visio/edit-instance-order.d.ts.map +1 -0
  128. package/dist/visio/edit-instance-recalculate.d.ts +32 -0
  129. package/dist/visio/edit-instance-recalculate.d.ts.map +1 -0
  130. package/dist/visio/edit-instance-replace.d.ts +18 -0
  131. package/dist/visio/edit-instance-replace.d.ts.map +1 -0
  132. package/dist/visio/edit-instance-scope.d.ts +29 -0
  133. package/dist/visio/edit-instance-scope.d.ts.map +1 -0
  134. package/dist/visio/edit-instance-shape.d.ts +52 -0
  135. package/dist/visio/edit-instance-shape.d.ts.map +1 -0
  136. package/dist/visio/edit-instance-sheet.d.ts +52 -0
  137. package/dist/visio/edit-instance-sheet.d.ts.map +1 -0
  138. package/dist/visio/edit-master-drop.d.ts +39 -0
  139. package/dist/visio/edit-master-drop.d.ts.map +1 -0
  140. package/dist/visio/edit-master-index.d.ts.map +1 -1
  141. package/dist/visio/edit-master-instance-extras.d.ts +15 -0
  142. package/dist/visio/edit-master-instance-extras.d.ts.map +1 -0
  143. package/dist/visio/edit-master-instance-group.d.ts +25 -0
  144. package/dist/visio/edit-master-instance-group.d.ts.map +1 -0
  145. package/dist/visio/edit-master-instance.d.ts +42 -0
  146. package/dist/visio/edit-master-instance.d.ts.map +1 -0
  147. package/dist/visio/edit-master-scope.d.ts.map +1 -1
  148. package/dist/visio/edit-page-auto-size.d.ts.map +1 -1
  149. package/dist/visio/edit-page-layout.d.ts +15 -0
  150. package/dist/visio/edit-page-layout.d.ts.map +1 -0
  151. package/dist/visio/edit-page-setup-commands.d.ts +3 -1
  152. package/dist/visio/edit-page-setup-commands.d.ts.map +1 -1
  153. package/dist/visio/edit-page-theme-refresh.d.ts +4 -0
  154. package/dist/visio/edit-page-theme-refresh.d.ts.map +1 -0
  155. package/dist/visio/edit-page-theme.d.ts.map +1 -1
  156. package/dist/visio/edit-pages.d.ts.map +1 -1
  157. package/dist/visio/edit-paste.d.ts +3 -1
  158. package/dist/visio/edit-paste.d.ts.map +1 -1
  159. package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
  160. package/dist/visio/edit-recalculate-values.d.ts.map +1 -1
  161. package/dist/visio/edit-shape-order.d.ts +19 -4
  162. package/dist/visio/edit-shape-order.d.ts.map +1 -1
  163. package/dist/visio/edit-snap-glue.d.ts +16 -0
  164. package/dist/visio/edit-snap-glue.d.ts.map +1 -0
  165. package/dist/visio/edit-stencil-connector-drop.d.ts +9 -0
  166. package/dist/visio/edit-stencil-connector-drop.d.ts.map +1 -0
  167. package/dist/visio/edit-stencil-connector-layout.d.ts +14 -0
  168. package/dist/visio/edit-stencil-connector-layout.d.ts.map +1 -0
  169. package/dist/visio/edit-stencil-connector-write.d.ts +16 -0
  170. package/dist/visio/edit-stencil-connector-write.d.ts.map +1 -0
  171. package/dist/visio/edit-stencil-connector.d.ts +29 -0
  172. package/dist/visio/edit-stencil-connector.d.ts.map +1 -0
  173. package/dist/visio/edit-stencil-master.d.ts +17 -0
  174. package/dist/visio/edit-stencil-master.d.ts.map +1 -0
  175. package/dist/visio/edit-text-size-formula.d.ts +17 -0
  176. package/dist/visio/edit-text-size-formula.d.ts.map +1 -0
  177. package/dist/visio/edit-text-size.d.ts +34 -0
  178. package/dist/visio/edit-text-size.d.ts.map +1 -0
  179. package/dist/visio/edit.d.ts +1 -1
  180. package/dist/visio/edit.d.ts.map +1 -1
  181. package/dist/visio/formula-evaluate.d.ts +2 -0
  182. package/dist/visio/formula-evaluate.d.ts.map +1 -1
  183. package/dist/visio/formula-functions.d.ts +13 -0
  184. package/dist/visio/formula-functions.d.ts.map +1 -0
  185. package/dist/visio/formula-numeric-functions.d.ts.map +1 -1
  186. package/dist/visio/formula.d.ts +14 -0
  187. package/dist/visio/formula.d.ts.map +1 -1
  188. package/dist/visio/index.cjs +11004 -5929
  189. package/dist/visio/index.d.ts +11 -1
  190. package/dist/visio/index.d.ts.map +1 -1
  191. package/dist/visio/index.mjs +10978 -5930
  192. package/dist/visio/line-jumps.d.ts +21 -0
  193. package/dist/visio/line-jumps.d.ts.map +1 -0
  194. package/dist/visio/master-list.d.ts +20 -0
  195. package/dist/visio/master-list.d.ts.map +1 -0
  196. package/dist/visio/model.d.ts +41 -0
  197. package/dist/visio/model.d.ts.map +1 -1
  198. package/dist/visio/page-layout.d.ts +40 -0
  199. package/dist/visio/page-layout.d.ts.map +1 -0
  200. package/dist/visio/page-theme.d.ts.map +1 -1
  201. package/dist/visio/parser.d.ts.map +1 -1
  202. package/dist/visio/shape-connections.d.ts +2 -2
  203. package/dist/visio/shape-connections.d.ts.map +1 -1
  204. package/dist/visio/snap-glue.d.ts +49 -0
  205. package/dist/visio/snap-glue.d.ts.map +1 -0
  206. package/dist/visio/stencil-master-part.d.ts +15 -0
  207. package/dist/visio/stencil-master-part.d.ts.map +1 -0
  208. package/dist/visio/stencil-masters.d.ts +19 -0
  209. package/dist/visio/stencil-masters.d.ts.map +1 -0
  210. package/dist/visio/stencil-windows.d.ts +20 -0
  211. package/dist/visio/stencil-windows.d.ts.map +1 -0
  212. package/dist/visio/stencils.d.ts +2 -0
  213. package/dist/visio/stencils.d.ts.map +1 -1
  214. package/dist/visio/style.d.ts +5 -0
  215. package/dist/visio/style.d.ts.map +1 -1
  216. package/dist/visio/text-extent.d.ts +40 -0
  217. package/dist/visio/text-extent.d.ts.map +1 -0
  218. package/dist/visio/text-fields.d.ts.map +1 -1
  219. package/dist/visio/theme-color-ref.d.ts +33 -0
  220. package/dist/visio/theme-color-ref.d.ts.map +1 -0
  221. package/dist/visio/ui/auto-connect.d.ts +80 -0
  222. package/dist/visio/ui/auto-connect.d.ts.map +1 -0
  223. package/dist/visio/ui/connection-points.d.ts +7 -2
  224. package/dist/visio/ui/connection-points.d.ts.map +1 -1
  225. package/dist/visio/ui/connector-preview.d.ts +3 -2
  226. package/dist/visio/ui/connector-preview.d.ts.map +1 -1
  227. package/dist/visio/ui/contract.d.ts +7 -2
  228. package/dist/visio/ui/contract.d.ts.map +1 -1
  229. package/dist/visio/ui/data-graphics.d.ts +6 -2
  230. package/dist/visio/ui/data-graphics.d.ts.map +1 -1
  231. package/dist/visio/ui/edit-commands.d.ts.map +1 -1
  232. package/dist/visio/ui/formatting.d.ts +27 -0
  233. package/dist/visio/ui/formatting.d.ts.map +1 -1
  234. package/dist/visio/ui/guides.d.ts +11 -2
  235. package/dist/visio/ui/guides.d.ts.map +1 -1
  236. package/dist/visio/ui/index.cjs +22141 -16751
  237. package/dist/visio/ui/index.d.ts +3 -0
  238. package/dist/visio/ui/index.d.ts.map +1 -1
  239. package/dist/visio/ui/index.mjs +22112 -16752
  240. package/dist/visio/ui/master-drop.d.ts +38 -0
  241. package/dist/visio/ui/master-drop.d.ts.map +1 -0
  242. package/dist/visio/ui/page-edit.d.ts.map +1 -1
  243. package/dist/visio/ui/ruler-grid.d.ts +45 -0
  244. package/dist/visio/ui/ruler-grid.d.ts.map +1 -0
  245. package/dist/visio/ui/sample-drawing.d.ts +3 -2
  246. package/dist/visio/ui/sample-drawing.d.ts.map +1 -1
  247. package/dist/visio/ui/scene-validation.d.ts.map +1 -1
  248. package/dist/visio/ui/shape-change.d.ts +16 -4
  249. package/dist/visio/ui/shape-change.d.ts.map +1 -1
  250. package/dist/visio/ui/shape-clipboard.d.ts.map +1 -1
  251. package/dist/visio/ui/shape-duplicate.d.ts +7 -1
  252. package/dist/visio/ui/shape-duplicate.d.ts.map +1 -1
  253. package/dist/visio/ui/shape-group.d.ts.map +1 -1
  254. package/dist/visio/ui/shape-order.d.ts +6 -1
  255. package/dist/visio/ui/shape-order.d.ts.map +1 -1
  256. package/dist/visio/ui/shape-resize.d.ts.map +1 -1
  257. package/dist/visio/ui/shape-rotation.d.ts +10 -1
  258. package/dist/visio/ui/shape-rotation.d.ts.map +1 -1
  259. package/dist/visio/ui/size-position.d.ts.map +1 -1
  260. package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
  261. package/dist/xlsx/conditional-extensions.d.ts.map +1 -1
  262. package/dist/xlsx/edit/cell-shift.d.ts.map +1 -1
  263. package/dist/xlsx/edit/insert-guard.d.ts +6 -0
  264. package/dist/xlsx/edit/insert-guard.d.ts.map +1 -0
  265. package/dist/xlsx/edit/shift-preserved.d.ts +2 -0
  266. package/dist/xlsx/edit/shift-preserved.d.ts.map +1 -1
  267. package/dist/xlsx/edit/shift-rule-anchors.d.ts +9 -0
  268. package/dist/xlsx/edit/shift-rule-anchors.d.ts.map +1 -0
  269. package/dist/xlsx/edit/shift-sheet.d.ts.map +1 -1
  270. package/dist/xlsx/edit/structure.d.ts.map +1 -1
  271. package/dist/xlsx/edit/table-edits.d.ts.map +1 -1
  272. package/dist/xlsx/formula/engine-util.d.ts.map +1 -1
  273. package/dist/xlsx/index.cjs +118 -16
  274. package/dist/xlsx/index.mjs +118 -16
  275. package/dist/xlsx/load/index.cjs +70 -16
  276. package/dist/xlsx/load/index.mjs +70 -16
  277. package/dist/xlsx/load/text-decode.d.ts.map +1 -1
  278. package/dist/xlsx/model.d.ts +2 -0
  279. package/dist/xlsx/model.d.ts.map +1 -1
  280. package/dist/xlsx/read/package.d.ts.map +1 -1
  281. package/dist/xlsx/read/tables.d.ts.map +1 -1
  282. package/dist/xlsx/ui/commands/number.d.ts.map +1 -1
  283. package/dist/xlsx/ui/commands/util.d.ts.map +1 -1
  284. package/dist/xlsx/ui/index.cjs +100 -1
  285. package/dist/xlsx/ui/index.mjs +100 -1
  286. package/dist/xlsx/ui/locales/de/grid.d.ts.map +1 -1
  287. package/dist/xlsx/ui/locales/en/grid.d.ts.map +1 -1
  288. package/dist/xlsx/ui/locales/es/grid.d.ts.map +1 -1
  289. package/dist/xlsx/ui/locales/fr/grid.d.ts.map +1 -1
  290. package/dist/xlsx/ui/locales/zh-CN/grid.d.ts.map +1 -1
  291. package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -1
  292. package/dist/xlsx/write/conditional.d.ts.map +1 -1
  293. package/dist/xlsx/write/styles.d.ts.map +1 -1
  294. package/dist/xlsx/write/table-patch.d.ts.map +1 -1
  295. package/package.json +6 -1
@@ -165,6 +165,7 @@ function deleteCell(sheet, row2, col) {
165
165
  cells.delete(col);
166
166
  if (cells.size === 0) sheet.rows.delete(row2);
167
167
  }
168
+ var isEmptyCell = (cell) => !cell || cell.value === null && !cell.formula && !cell.styleId && !cell.richText;
168
169
  function forEachCell(sheet, visit2) {
169
170
  for (const row2 of [...sheet.rows.keys()].sort((a, b) => a - b)) {
170
171
  const cells = sheet.rows.get(row2);
@@ -14393,6 +14394,29 @@ function pruneCell(sheet, row2, col) {
14393
14394
 
14394
14395
  // xlsx/edit/shift-preserved.ts
14395
14396
  var XM3 = "http://schemas.microsoft.com/office/excel/2006/main";
14397
+ function hasPreservedOverflow(sheet, shift2, clipped, banded) {
14398
+ const keys = banded ? ["extLst"] : [shift2.axis === "row" ? "rowBreaks" : "colBreaks", "extLst"];
14399
+ for (const key of keys)
14400
+ for (const xml of sheet.preserved.get(key) ?? []) {
14401
+ if (!xml.includes(key === "extLst" ? "sqref" : "brk")) continue;
14402
+ let root;
14403
+ try {
14404
+ root = parseXml(xml).documentElement;
14405
+ } catch {
14406
+ continue;
14407
+ }
14408
+ if (key === "extLst") {
14409
+ if (descendants2(root, XM3, "sqref").some(
14410
+ (node) => parseSqref(node.textContent ?? "").some(clipped)
14411
+ ))
14412
+ return true;
14413
+ } else if (elements(root).some(
14414
+ (node) => node.localName === "brk" && shiftIndex(Number(node.getAttribute("id") ?? "0"), shift2) === void 0
14415
+ ))
14416
+ return true;
14417
+ }
14418
+ return false;
14419
+ }
14396
14420
  function descendants2(root, ns, local) {
14397
14421
  return Array.from(root.getElementsByTagNameNS(ns, local));
14398
14422
  }
@@ -15627,8 +15651,61 @@ function setBorders(ctx, s, range2, preset, edge = { style: "thin" }) {
15627
15651
  );
15628
15652
  }
15629
15653
 
15654
+ // xlsx/edit/insert-guard.ts
15655
+ function assertInsertFits(sheet, shift2, band) {
15656
+ if (shift2.count <= 0) return;
15657
+ const max = shift2.axis === "row" ? MAX_ROW : MAX_COL;
15658
+ if (shift2.at + shift2.count > max + 1)
15659
+ throw new RangeError("The insert area extends beyond the sheet.");
15660
+ const first2 = max - shift2.count + 1;
15661
+ const lost = shift2.axis === "row" ? cellRange(first2, band?.lo ?? 0, MAX_ROW, band?.hi ?? MAX_COL) : cellRange(band?.lo ?? 0, first2, band?.hi ?? MAX_ROW, MAX_COL);
15662
+ const other = shift2.axis === "row" ? "col" : "row";
15663
+ const clipped = (range2) => (!band || range2.start[other] >= band.lo && range2.end[other] <= band.hi) && rangesIntersect(range2, lost);
15664
+ const fail2 = () => {
15665
+ throw new Error("Cannot insert cells: non-empty cells would be pushed off the sheet.");
15666
+ };
15667
+ for (const [row2, cells] of sheet.rows) {
15668
+ if (row2 < lost.start.row || row2 > lost.end.row) continue;
15669
+ for (const [col, cell] of cells)
15670
+ if (col >= lost.start.col && col <= lost.end.col && (!isEmptyCell(cell) || cell.cellMetadata !== void 0 || cell.valueMetadata !== void 0))
15671
+ fail2();
15672
+ }
15673
+ if (sheet.comments.some((c) => rangesIntersect(cellRange(c.address.row, c.address.col), lost)) || sheet.hyperlinks.some((h2) => rangesIntersect(h2.range, lost)) || sheet.merges.some((m) => rangesIntersect(m, lost)) || sheet.tables.some((t) => rangesIntersect(t.range, lost)) || sheet.dataValidations.some((rule) => rule.ranges.some(clipped)) || sheet.conditionalFormats.some((format) => format.ranges.some(clipped)) || sheet.autoFilter !== void 0 && clipped(sheet.autoFilter.range) || sheet.pageSetup?.printArea !== void 0 && clipped(sheet.pageSetup.printArea) || hasPreservedOverflow(sheet, shift2, clipped, !!band))
15674
+ fail2();
15675
+ for (const { anchor } of sheet.drawings) {
15676
+ if (band && (anchor.from[other] < band.lo || anchor.from[other] > band.hi)) continue;
15677
+ if (anchor.from[shift2.axis] >= first2 || anchor.to && anchor.to[shift2.axis] >= first2) fail2();
15678
+ }
15679
+ if (band) return;
15680
+ if (shift2.axis === "row") {
15681
+ for (const [row2, info] of sheet.rowInfo) if (row2 >= first2 && Object.keys(info).length) fail2();
15682
+ } else {
15683
+ if (normalizeColumns(sheet.columns).some((c) => c.min >= first2)) fail2();
15684
+ }
15685
+ }
15686
+
15687
+ // xlsx/edit/shift-rule-anchors.ts
15688
+ function rebaseRulesForDeletion(sheet, shift2, band) {
15689
+ if (shift2.count >= 0) return;
15690
+ const last = shift2.at - shift2.count - 1;
15691
+ const removed = shift2.axis === "row" ? cellRange(shift2.at, band?.lo ?? 0, last, band?.hi ?? MAX_COL) : cellRange(band?.lo ?? 0, shift2.at, band?.hi ?? MAX_ROW, last);
15692
+ const other = shift2.axis === "row" ? "col" : "row";
15693
+ const surviving = (ranges) => ranges.flatMap(
15694
+ (range2) => band && (range2.start[other] < band.lo || range2.end[other] > band.hi) ? [range2] : subtractRange(range2, removed)
15695
+ );
15696
+ sheet.conditionalFormats = sheet.conditionalFormats.map((format) => {
15697
+ const ranges = surviving(format.ranges);
15698
+ return ranges.length ? { ...rebaseConditionalFormat(format, ranges), ranges: format.ranges } : format;
15699
+ });
15700
+ sheet.dataValidations = sheet.dataValidations.map((rule) => {
15701
+ const ranges = surviving(rule.ranges);
15702
+ return ranges.length ? { ...rebaseValidation(rule, ranges), ranges: rule.ranges } : rule;
15703
+ });
15704
+ }
15705
+
15630
15706
  // xlsx/edit/shift-sheet.ts
15631
15707
  function shiftSheetContent(sheet, shift2, band) {
15708
+ assertInsertFits(sheet, shift2, band);
15632
15709
  const moveRange = (range2) => band ? shiftRangeInBand(range2, shift2, band.lo, band.hi) : shiftRange(range2, shift2);
15633
15710
  shiftCells(sheet, shift2, band, moveRange);
15634
15711
  sheet.merges = sheet.merges.map(moveRange).filter((m) => !!m && (m.start.row !== m.end.row || m.start.col !== m.end.col));
@@ -15766,10 +15843,12 @@ function shiftFreeze(sheet, shift2) {
15766
15843
  // xlsx/edit/structure.ts
15767
15844
  function checkSpan(axis, at, count2) {
15768
15845
  const max = axis === "row" ? MAX_ROW : MAX_COL;
15769
- if (!Number.isInteger(at) || !Number.isInteger(count2) || at < 0 || at > max || count2 < 1)
15846
+ if (!Number.isInteger(at) || !Number.isInteger(count2) || at < 0 || at > max || count2 < 1 || at + count2 > max + 1)
15770
15847
  throw new RangeError(`Invalid ${axis} span ${at} + ${count2}`);
15771
15848
  }
15772
15849
  function applyAxisShift(ctx, sheet, shift2) {
15850
+ assertInsertFits(sheet, shift2);
15851
+ rebaseRulesForDeletion(sheet, shift2);
15773
15852
  const spec2 = { sheet: sheet.name, axis: shift2.axis, at: shift2.at, count: shift2.count };
15774
15853
  rewriteFormulas(
15775
15854
  ctx.workbook,
@@ -15802,6 +15881,7 @@ function shiftAxis(ctx, s, axis, at, count2, insert) {
15802
15881
  const sheet = sheetAt(ctx.workbook, s);
15803
15882
  const noun = axis === "row" ? count2 === 1 ? "row" : "rows" : count2 === 1 ? "column" : "columns";
15804
15883
  const shift2 = { axis, at, count: insert ? count2 : -count2 };
15884
+ assertInsertFits(sheet, shift2);
15805
15885
  const info = { sheet: s, structural: true };
15806
15886
  if (!sheet.autoFilter || shiftRange(sheet.autoFilter.range, shift2))
15807
15887
  info.calc = { kind: "shift", sheet: s, shift: shift2 };
@@ -15844,11 +15924,13 @@ function shiftBand(ctx, s, range2, direction) {
15844
15924
  };
15845
15925
  const band = vertical2 ? { lo: r.start.col, hi: r.end.col } : { lo: r.start.row, hi: r.end.row };
15846
15926
  assertBandIntact(sheet, shift2, band);
15927
+ assertInsertFits(sheet, shift2, band);
15847
15928
  ctx.run(
15848
15929
  `${insert ? "Insert" : "Delete"} cells`,
15849
15930
  "structure",
15850
15931
  [{ kind: "shift", sheet: s, shift: shift2, band }],
15851
15932
  () => {
15933
+ rebaseRulesForDeletion(sheet, shift2, band);
15852
15934
  rewriteFormulas(
15853
15935
  ctx.workbook,
15854
15936
  (formula, formulaSheet) => shiftFormulaInBand(formula, formulaSheet, sheet.name, shift2, band)
@@ -18114,6 +18196,7 @@ var byId = (sheet, id) => {
18114
18196
  function insertBandRow(workbook, sheet, table2, row2) {
18115
18197
  const shift2 = { axis: "row", at: row2, count: 1 };
18116
18198
  const band = { lo: table2.range.start.col, hi: table2.range.end.col };
18199
+ assertInsertFits(sheet, shift2, band);
18117
18200
  rewriteFormulas(workbook, (f6, fs) => shiftFormulaInBand(f6, fs, sheet.name, shift2, band));
18118
18201
  shiftSheetContent(sheet, shift2, band);
18119
18202
  }
@@ -18152,6 +18235,7 @@ function setTotalsRow(workbook, sheet, id, on) {
18152
18235
  table2.totalsRow = false;
18153
18236
  return;
18154
18237
  }
18238
+ if (end.row === MAX_ROW) throw new RangeError("The insert area extends beyond the sheet.");
18155
18239
  if (!rowIsEmpty(sheet, end.row + 1, start.col, end.col)) {
18156
18240
  insertBandRow(workbook, sheet, table2, end.row + 1);
18157
18241
  table2 = byId(sheet, id);
@@ -18235,7 +18319,12 @@ function updateTable(ctx, s, ref, patch) {
18235
18319
  if (patch.columns) {
18236
18320
  const width = table2.range.end.col - table2.range.start.col + 1;
18237
18321
  if (patch.columns.length !== width) throw new Error("Give one column per table column.");
18322
+ const before = table2.columns;
18238
18323
  table2.columns = structuredClone(patch.columns);
18324
+ for (const [index2, column] of table2.columns.entries()) {
18325
+ const sourceId = before[index2]?.sourceId;
18326
+ if (column.sourceId === void 0 && sourceId !== void 0) column.sourceId = sourceId;
18327
+ }
18239
18328
  }
18240
18329
  if (patch.headerRow !== void 0) setHeaderRow(workbook, sheet, id, patch.headerRow);
18241
18330
  if (patch.totalsRow !== void 0) setTotalsRow(workbook, sheet, id, patch.totalsRow);
@@ -27035,6 +27124,7 @@ var grid = {
27035
27124
  "A sheet name cannot be blank.": "Ein Blattname darf nicht leer sein.",
27036
27125
  "A sheet name cannot contain \\ / ? * [ ] or :": "Ein Blattname darf \\ / ? * [ ] oder : nicht enthalten",
27037
27126
  "A sheet name cannot start or end with an apostrophe.": "Ein Blattname darf nicht mit einem Apostroph beginnen oder enden.",
27127
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "Zellen k\xF6nnen nicht eingef\xFCgt werden: Nicht leere Zellen w\xFCrden \xFCber den Blattrand hinaus verschoben.",
27038
27128
  Cancel: "Abbrechen",
27039
27129
  "Cell editor": "Zelleneditor",
27040
27130
  Chart: "Diagramm",
@@ -27100,6 +27190,7 @@ var grid = {
27100
27190
  "Tab Color": "Registerfarbe",
27101
27191
  "That name is already taken.": "Dieser Name ist bereits vergeben.",
27102
27192
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "Der Browser hat den Zugriff auf die Zwischenablage nicht erlaubt. Verwenden Sie Strg+V zum Einf\xFCgen.",
27193
+ "The insert area extends beyond the sheet.": "Der einzuf\xFCgende Bereich reicht \xFCber das Blatt hinaus.",
27103
27194
  "The paste area extends beyond the sheet.": "Der Einf\xFCgebereich reicht \xFCber das Blatt hinaus.",
27104
27195
  "This action won't work on multiple selections.": "Diese Aktion funktioniert nicht bei Mehrfachauswahlen.",
27105
27196
  "This chart could not be displayed.": "Dieses Diagramm konnte nicht angezeigt werden.",
@@ -27421,6 +27512,7 @@ var grid2 = {
27421
27512
  "A sheet name cannot be blank.": "A sheet name cannot be blank.",
27422
27513
  "A sheet name cannot contain \\ / ? * [ ] or :": "A sheet name cannot contain \\ / ? * [ ] or :",
27423
27514
  "A sheet name cannot start or end with an apostrophe.": "A sheet name cannot start or end with an apostrophe.",
27515
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "Cannot insert cells: non-empty cells would be pushed off the sheet.",
27424
27516
  Cancel: "Cancel",
27425
27517
  "Cell editor": "Cell editor",
27426
27518
  Chart: "Chart",
@@ -27486,6 +27578,7 @@ var grid2 = {
27486
27578
  "Tab Color": "Tab Color",
27487
27579
  "That name is already taken.": "That name is already taken.",
27488
27580
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.",
27581
+ "The insert area extends beyond the sheet.": "The insert area extends beyond the sheet.",
27489
27582
  "The paste area extends beyond the sheet.": "The paste area extends beyond the sheet.",
27490
27583
  "This action won't work on multiple selections.": "This action won't work on multiple selections.",
27491
27584
  "This chart could not be displayed.": "This chart could not be displayed.",
@@ -27807,6 +27900,7 @@ var grid3 = {
27807
27900
  "A sheet name cannot be blank.": "El nombre de una hoja no puede estar en blanco.",
27808
27901
  "A sheet name cannot contain \\ / ? * [ ] or :": "El nombre de una hoja no puede contener \\ / ? * [ ] ni :",
27809
27902
  "A sheet name cannot start or end with an apostrophe.": "El nombre de una hoja no puede empezar ni terminar con un ap\xF3strofo.",
27903
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "No se pueden insertar celdas: las celdas no vac\xEDas se desplazar\xEDan fuera de la hoja.",
27810
27904
  Cancel: "Cancelar",
27811
27905
  "Cell editor": "Editor de celdas",
27812
27906
  Chart: "Gr\xE1fico",
@@ -27872,6 +27966,7 @@ var grid3 = {
27872
27966
  "Tab Color": "Color de pesta\xF1a",
27873
27967
  "That name is already taken.": "Ese nombre ya est\xE1 en uso.",
27874
27968
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "El explorador no permiti\xF3 el acceso al portapapeles. Use Ctrl+V para pegar.",
27969
+ "The insert area extends beyond the sheet.": "El \xE1rea de inserci\xF3n se extiende m\xE1s all\xE1 de la hoja.",
27875
27970
  "The paste area extends beyond the sheet.": "El \xE1rea de pegado se extiende m\xE1s all\xE1 de la hoja.",
27876
27971
  "This action won't work on multiple selections.": "Esta acci\xF3n no funciona en selecciones m\xFAltiples.",
27877
27972
  "This chart could not be displayed.": "No se pudo mostrar este gr\xE1fico.",
@@ -28193,6 +28288,7 @@ var grid4 = {
28193
28288
  "A sheet name cannot be blank.": "Un nom de feuille ne peut pas \xEAtre vide.",
28194
28289
  "A sheet name cannot contain \\ / ? * [ ] or :": "Un nom de feuille ne peut pas contenir \\ / ? * [ ] ou :",
28195
28290
  "A sheet name cannot start or end with an apostrophe.": "Un nom de feuille ne peut pas commencer ou se terminer par une apostrophe.",
28291
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "Impossible d\u2019ins\xE9rer des cellules : des cellules non vides seraient d\xE9plac\xE9es hors de la feuille.",
28196
28292
  Cancel: "Annuler",
28197
28293
  "Cell editor": "\xC9diteur de cellule",
28198
28294
  Chart: "Graphique",
@@ -28258,6 +28354,7 @@ var grid4 = {
28258
28354
  "Tab Color": "Couleur d\u2019onglet",
28259
28355
  "That name is already taken.": "Ce nom est d\xE9j\xE0 utilis\xE9.",
28260
28356
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "Le navigateur n'a pas autoris\xE9 l'acc\xE8s au Presse-papiers. Utilisez Ctrl+V pour coller.",
28357
+ "The insert area extends beyond the sheet.": "La zone d\u2019insertion d\xE9passe les limites de la feuille.",
28261
28358
  "The paste area extends beyond the sheet.": "La zone de collage d\xE9passe les limites de la feuille.",
28262
28359
  "This action won't work on multiple selections.": "Cette action ne fonctionne pas sur des s\xE9lections multiples.",
28263
28360
  "This chart could not be displayed.": "Ce graphique n'a pas pu \xEAtre affich\xE9.",
@@ -28579,6 +28676,7 @@ var grid5 = {
28579
28676
  "A sheet name cannot be blank.": "\u5DE5\u4F5C\u8868\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002",
28580
28677
  "A sheet name cannot contain \\ / ? * [ ] or :": "\u5DE5\u4F5C\u8868\u540D\u79F0\u4E0D\u80FD\u5305\u542B \\ / ? * [ ] \u6216 :",
28581
28678
  "A sheet name cannot start or end with an apostrophe.": "\u5DE5\u4F5C\u8868\u540D\u79F0\u4E0D\u80FD\u4EE5\u6487\u53F7\u5F00\u5934\u6216\u7ED3\u5C3E\u3002",
28679
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "\u65E0\u6CD5\u63D2\u5165\u5355\u5143\u683C\uFF1A\u975E\u7A7A\u5355\u5143\u683C\u4F1A\u88AB\u79FB\u51FA\u5DE5\u4F5C\u8868\u3002",
28582
28680
  Cancel: "\u53D6\u6D88",
28583
28681
  "Cell editor": "\u5355\u5143\u683C\u7F16\u8F91\u5668",
28584
28682
  Chart: "\u56FE\u8868",
@@ -28644,6 +28742,7 @@ var grid5 = {
28644
28742
  "Tab Color": "\u5DE5\u4F5C\u8868\u6807\u7B7E\u989C\u8272",
28645
28743
  "That name is already taken.": "\u8BE5\u540D\u79F0\u5DF2\u88AB\u4F7F\u7528\u3002",
28646
28744
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u8BBF\u95EE\u526A\u8D34\u677F\u3002\u8BF7\u4F7F\u7528 Ctrl+V \u7C98\u8D34\u3002",
28745
+ "The insert area extends beyond the sheet.": "\u63D2\u5165\u533A\u57DF\u8D85\u51FA\u4E86\u5DE5\u4F5C\u8868\u8303\u56F4\u3002",
28647
28746
  "The paste area extends beyond the sheet.": "\u7C98\u8D34\u533A\u57DF\u8D85\u51FA\u4E86\u5DE5\u4F5C\u8868\u8303\u56F4\u3002",
28648
28747
  "This action won't work on multiple selections.": "\u6B64\u64CD\u4F5C\u4E0D\u9002\u7528\u4E8E\u591A\u91CD\u9009\u62E9\u3002",
28649
28748
  "This chart could not be displayed.": "\u65E0\u6CD5\u663E\u793A\u6B64\u56FE\u8868\u3002",
@@ -163,6 +163,7 @@ function deleteCell(sheet, row2, col) {
163
163
  cells.delete(col);
164
164
  if (cells.size === 0) sheet.rows.delete(row2);
165
165
  }
166
+ var isEmptyCell = (cell) => !cell || cell.value === null && !cell.formula && !cell.styleId && !cell.richText;
166
167
  function forEachCell(sheet, visit2) {
167
168
  for (const row2 of [...sheet.rows.keys()].sort((a, b) => a - b)) {
168
169
  const cells = sheet.rows.get(row2);
@@ -14391,6 +14392,29 @@ function pruneCell(sheet, row2, col) {
14391
14392
 
14392
14393
  // xlsx/edit/shift-preserved.ts
14393
14394
  var XM3 = "http://schemas.microsoft.com/office/excel/2006/main";
14395
+ function hasPreservedOverflow(sheet, shift2, clipped, banded) {
14396
+ const keys = banded ? ["extLst"] : [shift2.axis === "row" ? "rowBreaks" : "colBreaks", "extLst"];
14397
+ for (const key of keys)
14398
+ for (const xml of sheet.preserved.get(key) ?? []) {
14399
+ if (!xml.includes(key === "extLst" ? "sqref" : "brk")) continue;
14400
+ let root;
14401
+ try {
14402
+ root = parseXml(xml).documentElement;
14403
+ } catch {
14404
+ continue;
14405
+ }
14406
+ if (key === "extLst") {
14407
+ if (descendants2(root, XM3, "sqref").some(
14408
+ (node) => parseSqref(node.textContent ?? "").some(clipped)
14409
+ ))
14410
+ return true;
14411
+ } else if (elements(root).some(
14412
+ (node) => node.localName === "brk" && shiftIndex(Number(node.getAttribute("id") ?? "0"), shift2) === void 0
14413
+ ))
14414
+ return true;
14415
+ }
14416
+ return false;
14417
+ }
14394
14418
  function descendants2(root, ns, local) {
14395
14419
  return Array.from(root.getElementsByTagNameNS(ns, local));
14396
14420
  }
@@ -15625,8 +15649,61 @@ function setBorders(ctx, s, range2, preset, edge = { style: "thin" }) {
15625
15649
  );
15626
15650
  }
15627
15651
 
15652
+ // xlsx/edit/insert-guard.ts
15653
+ function assertInsertFits(sheet, shift2, band) {
15654
+ if (shift2.count <= 0) return;
15655
+ const max = shift2.axis === "row" ? MAX_ROW : MAX_COL;
15656
+ if (shift2.at + shift2.count > max + 1)
15657
+ throw new RangeError("The insert area extends beyond the sheet.");
15658
+ const first2 = max - shift2.count + 1;
15659
+ const lost = shift2.axis === "row" ? cellRange(first2, band?.lo ?? 0, MAX_ROW, band?.hi ?? MAX_COL) : cellRange(band?.lo ?? 0, first2, band?.hi ?? MAX_ROW, MAX_COL);
15660
+ const other = shift2.axis === "row" ? "col" : "row";
15661
+ const clipped = (range2) => (!band || range2.start[other] >= band.lo && range2.end[other] <= band.hi) && rangesIntersect(range2, lost);
15662
+ const fail2 = () => {
15663
+ throw new Error("Cannot insert cells: non-empty cells would be pushed off the sheet.");
15664
+ };
15665
+ for (const [row2, cells] of sheet.rows) {
15666
+ if (row2 < lost.start.row || row2 > lost.end.row) continue;
15667
+ for (const [col, cell] of cells)
15668
+ if (col >= lost.start.col && col <= lost.end.col && (!isEmptyCell(cell) || cell.cellMetadata !== void 0 || cell.valueMetadata !== void 0))
15669
+ fail2();
15670
+ }
15671
+ if (sheet.comments.some((c) => rangesIntersect(cellRange(c.address.row, c.address.col), lost)) || sheet.hyperlinks.some((h2) => rangesIntersect(h2.range, lost)) || sheet.merges.some((m) => rangesIntersect(m, lost)) || sheet.tables.some((t) => rangesIntersect(t.range, lost)) || sheet.dataValidations.some((rule) => rule.ranges.some(clipped)) || sheet.conditionalFormats.some((format) => format.ranges.some(clipped)) || sheet.autoFilter !== void 0 && clipped(sheet.autoFilter.range) || sheet.pageSetup?.printArea !== void 0 && clipped(sheet.pageSetup.printArea) || hasPreservedOverflow(sheet, shift2, clipped, !!band))
15672
+ fail2();
15673
+ for (const { anchor } of sheet.drawings) {
15674
+ if (band && (anchor.from[other] < band.lo || anchor.from[other] > band.hi)) continue;
15675
+ if (anchor.from[shift2.axis] >= first2 || anchor.to && anchor.to[shift2.axis] >= first2) fail2();
15676
+ }
15677
+ if (band) return;
15678
+ if (shift2.axis === "row") {
15679
+ for (const [row2, info] of sheet.rowInfo) if (row2 >= first2 && Object.keys(info).length) fail2();
15680
+ } else {
15681
+ if (normalizeColumns(sheet.columns).some((c) => c.min >= first2)) fail2();
15682
+ }
15683
+ }
15684
+
15685
+ // xlsx/edit/shift-rule-anchors.ts
15686
+ function rebaseRulesForDeletion(sheet, shift2, band) {
15687
+ if (shift2.count >= 0) return;
15688
+ const last = shift2.at - shift2.count - 1;
15689
+ const removed = shift2.axis === "row" ? cellRange(shift2.at, band?.lo ?? 0, last, band?.hi ?? MAX_COL) : cellRange(band?.lo ?? 0, shift2.at, band?.hi ?? MAX_ROW, last);
15690
+ const other = shift2.axis === "row" ? "col" : "row";
15691
+ const surviving = (ranges) => ranges.flatMap(
15692
+ (range2) => band && (range2.start[other] < band.lo || range2.end[other] > band.hi) ? [range2] : subtractRange(range2, removed)
15693
+ );
15694
+ sheet.conditionalFormats = sheet.conditionalFormats.map((format) => {
15695
+ const ranges = surviving(format.ranges);
15696
+ return ranges.length ? { ...rebaseConditionalFormat(format, ranges), ranges: format.ranges } : format;
15697
+ });
15698
+ sheet.dataValidations = sheet.dataValidations.map((rule) => {
15699
+ const ranges = surviving(rule.ranges);
15700
+ return ranges.length ? { ...rebaseValidation(rule, ranges), ranges: rule.ranges } : rule;
15701
+ });
15702
+ }
15703
+
15628
15704
  // xlsx/edit/shift-sheet.ts
15629
15705
  function shiftSheetContent(sheet, shift2, band) {
15706
+ assertInsertFits(sheet, shift2, band);
15630
15707
  const moveRange = (range2) => band ? shiftRangeInBand(range2, shift2, band.lo, band.hi) : shiftRange(range2, shift2);
15631
15708
  shiftCells(sheet, shift2, band, moveRange);
15632
15709
  sheet.merges = sheet.merges.map(moveRange).filter((m) => !!m && (m.start.row !== m.end.row || m.start.col !== m.end.col));
@@ -15764,10 +15841,12 @@ function shiftFreeze(sheet, shift2) {
15764
15841
  // xlsx/edit/structure.ts
15765
15842
  function checkSpan(axis, at, count2) {
15766
15843
  const max = axis === "row" ? MAX_ROW : MAX_COL;
15767
- if (!Number.isInteger(at) || !Number.isInteger(count2) || at < 0 || at > max || count2 < 1)
15844
+ if (!Number.isInteger(at) || !Number.isInteger(count2) || at < 0 || at > max || count2 < 1 || at + count2 > max + 1)
15768
15845
  throw new RangeError(`Invalid ${axis} span ${at} + ${count2}`);
15769
15846
  }
15770
15847
  function applyAxisShift(ctx, sheet, shift2) {
15848
+ assertInsertFits(sheet, shift2);
15849
+ rebaseRulesForDeletion(sheet, shift2);
15771
15850
  const spec2 = { sheet: sheet.name, axis: shift2.axis, at: shift2.at, count: shift2.count };
15772
15851
  rewriteFormulas(
15773
15852
  ctx.workbook,
@@ -15800,6 +15879,7 @@ function shiftAxis(ctx, s, axis, at, count2, insert) {
15800
15879
  const sheet = sheetAt(ctx.workbook, s);
15801
15880
  const noun = axis === "row" ? count2 === 1 ? "row" : "rows" : count2 === 1 ? "column" : "columns";
15802
15881
  const shift2 = { axis, at, count: insert ? count2 : -count2 };
15882
+ assertInsertFits(sheet, shift2);
15803
15883
  const info = { sheet: s, structural: true };
15804
15884
  if (!sheet.autoFilter || shiftRange(sheet.autoFilter.range, shift2))
15805
15885
  info.calc = { kind: "shift", sheet: s, shift: shift2 };
@@ -15842,11 +15922,13 @@ function shiftBand(ctx, s, range2, direction) {
15842
15922
  };
15843
15923
  const band = vertical2 ? { lo: r.start.col, hi: r.end.col } : { lo: r.start.row, hi: r.end.row };
15844
15924
  assertBandIntact(sheet, shift2, band);
15925
+ assertInsertFits(sheet, shift2, band);
15845
15926
  ctx.run(
15846
15927
  `${insert ? "Insert" : "Delete"} cells`,
15847
15928
  "structure",
15848
15929
  [{ kind: "shift", sheet: s, shift: shift2, band }],
15849
15930
  () => {
15931
+ rebaseRulesForDeletion(sheet, shift2, band);
15850
15932
  rewriteFormulas(
15851
15933
  ctx.workbook,
15852
15934
  (formula, formulaSheet) => shiftFormulaInBand(formula, formulaSheet, sheet.name, shift2, band)
@@ -18112,6 +18194,7 @@ var byId = (sheet, id) => {
18112
18194
  function insertBandRow(workbook, sheet, table2, row2) {
18113
18195
  const shift2 = { axis: "row", at: row2, count: 1 };
18114
18196
  const band = { lo: table2.range.start.col, hi: table2.range.end.col };
18197
+ assertInsertFits(sheet, shift2, band);
18115
18198
  rewriteFormulas(workbook, (f6, fs) => shiftFormulaInBand(f6, fs, sheet.name, shift2, band));
18116
18199
  shiftSheetContent(sheet, shift2, band);
18117
18200
  }
@@ -18150,6 +18233,7 @@ function setTotalsRow(workbook, sheet, id, on) {
18150
18233
  table2.totalsRow = false;
18151
18234
  return;
18152
18235
  }
18236
+ if (end.row === MAX_ROW) throw new RangeError("The insert area extends beyond the sheet.");
18153
18237
  if (!rowIsEmpty(sheet, end.row + 1, start.col, end.col)) {
18154
18238
  insertBandRow(workbook, sheet, table2, end.row + 1);
18155
18239
  table2 = byId(sheet, id);
@@ -18233,7 +18317,12 @@ function updateTable(ctx, s, ref, patch) {
18233
18317
  if (patch.columns) {
18234
18318
  const width = table2.range.end.col - table2.range.start.col + 1;
18235
18319
  if (patch.columns.length !== width) throw new Error("Give one column per table column.");
18320
+ const before = table2.columns;
18236
18321
  table2.columns = structuredClone(patch.columns);
18322
+ for (const [index2, column] of table2.columns.entries()) {
18323
+ const sourceId = before[index2]?.sourceId;
18324
+ if (column.sourceId === void 0 && sourceId !== void 0) column.sourceId = sourceId;
18325
+ }
18237
18326
  }
18238
18327
  if (patch.headerRow !== void 0) setHeaderRow(workbook, sheet, id, patch.headerRow);
18239
18328
  if (patch.totalsRow !== void 0) setTotalsRow(workbook, sheet, id, patch.totalsRow);
@@ -27033,6 +27122,7 @@ var grid = {
27033
27122
  "A sheet name cannot be blank.": "Ein Blattname darf nicht leer sein.",
27034
27123
  "A sheet name cannot contain \\ / ? * [ ] or :": "Ein Blattname darf \\ / ? * [ ] oder : nicht enthalten",
27035
27124
  "A sheet name cannot start or end with an apostrophe.": "Ein Blattname darf nicht mit einem Apostroph beginnen oder enden.",
27125
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "Zellen k\xF6nnen nicht eingef\xFCgt werden: Nicht leere Zellen w\xFCrden \xFCber den Blattrand hinaus verschoben.",
27036
27126
  Cancel: "Abbrechen",
27037
27127
  "Cell editor": "Zelleneditor",
27038
27128
  Chart: "Diagramm",
@@ -27098,6 +27188,7 @@ var grid = {
27098
27188
  "Tab Color": "Registerfarbe",
27099
27189
  "That name is already taken.": "Dieser Name ist bereits vergeben.",
27100
27190
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "Der Browser hat den Zugriff auf die Zwischenablage nicht erlaubt. Verwenden Sie Strg+V zum Einf\xFCgen.",
27191
+ "The insert area extends beyond the sheet.": "Der einzuf\xFCgende Bereich reicht \xFCber das Blatt hinaus.",
27101
27192
  "The paste area extends beyond the sheet.": "Der Einf\xFCgebereich reicht \xFCber das Blatt hinaus.",
27102
27193
  "This action won't work on multiple selections.": "Diese Aktion funktioniert nicht bei Mehrfachauswahlen.",
27103
27194
  "This chart could not be displayed.": "Dieses Diagramm konnte nicht angezeigt werden.",
@@ -27419,6 +27510,7 @@ var grid2 = {
27419
27510
  "A sheet name cannot be blank.": "A sheet name cannot be blank.",
27420
27511
  "A sheet name cannot contain \\ / ? * [ ] or :": "A sheet name cannot contain \\ / ? * [ ] or :",
27421
27512
  "A sheet name cannot start or end with an apostrophe.": "A sheet name cannot start or end with an apostrophe.",
27513
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "Cannot insert cells: non-empty cells would be pushed off the sheet.",
27422
27514
  Cancel: "Cancel",
27423
27515
  "Cell editor": "Cell editor",
27424
27516
  Chart: "Chart",
@@ -27484,6 +27576,7 @@ var grid2 = {
27484
27576
  "Tab Color": "Tab Color",
27485
27577
  "That name is already taken.": "That name is already taken.",
27486
27578
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.",
27579
+ "The insert area extends beyond the sheet.": "The insert area extends beyond the sheet.",
27487
27580
  "The paste area extends beyond the sheet.": "The paste area extends beyond the sheet.",
27488
27581
  "This action won't work on multiple selections.": "This action won't work on multiple selections.",
27489
27582
  "This chart could not be displayed.": "This chart could not be displayed.",
@@ -27805,6 +27898,7 @@ var grid3 = {
27805
27898
  "A sheet name cannot be blank.": "El nombre de una hoja no puede estar en blanco.",
27806
27899
  "A sheet name cannot contain \\ / ? * [ ] or :": "El nombre de una hoja no puede contener \\ / ? * [ ] ni :",
27807
27900
  "A sheet name cannot start or end with an apostrophe.": "El nombre de una hoja no puede empezar ni terminar con un ap\xF3strofo.",
27901
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "No se pueden insertar celdas: las celdas no vac\xEDas se desplazar\xEDan fuera de la hoja.",
27808
27902
  Cancel: "Cancelar",
27809
27903
  "Cell editor": "Editor de celdas",
27810
27904
  Chart: "Gr\xE1fico",
@@ -27870,6 +27964,7 @@ var grid3 = {
27870
27964
  "Tab Color": "Color de pesta\xF1a",
27871
27965
  "That name is already taken.": "Ese nombre ya est\xE1 en uso.",
27872
27966
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "El explorador no permiti\xF3 el acceso al portapapeles. Use Ctrl+V para pegar.",
27967
+ "The insert area extends beyond the sheet.": "El \xE1rea de inserci\xF3n se extiende m\xE1s all\xE1 de la hoja.",
27873
27968
  "The paste area extends beyond the sheet.": "El \xE1rea de pegado se extiende m\xE1s all\xE1 de la hoja.",
27874
27969
  "This action won't work on multiple selections.": "Esta acci\xF3n no funciona en selecciones m\xFAltiples.",
27875
27970
  "This chart could not be displayed.": "No se pudo mostrar este gr\xE1fico.",
@@ -28191,6 +28286,7 @@ var grid4 = {
28191
28286
  "A sheet name cannot be blank.": "Un nom de feuille ne peut pas \xEAtre vide.",
28192
28287
  "A sheet name cannot contain \\ / ? * [ ] or :": "Un nom de feuille ne peut pas contenir \\ / ? * [ ] ou :",
28193
28288
  "A sheet name cannot start or end with an apostrophe.": "Un nom de feuille ne peut pas commencer ou se terminer par une apostrophe.",
28289
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "Impossible d\u2019ins\xE9rer des cellules : des cellules non vides seraient d\xE9plac\xE9es hors de la feuille.",
28194
28290
  Cancel: "Annuler",
28195
28291
  "Cell editor": "\xC9diteur de cellule",
28196
28292
  Chart: "Graphique",
@@ -28256,6 +28352,7 @@ var grid4 = {
28256
28352
  "Tab Color": "Couleur d\u2019onglet",
28257
28353
  "That name is already taken.": "Ce nom est d\xE9j\xE0 utilis\xE9.",
28258
28354
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "Le navigateur n'a pas autoris\xE9 l'acc\xE8s au Presse-papiers. Utilisez Ctrl+V pour coller.",
28355
+ "The insert area extends beyond the sheet.": "La zone d\u2019insertion d\xE9passe les limites de la feuille.",
28259
28356
  "The paste area extends beyond the sheet.": "La zone de collage d\xE9passe les limites de la feuille.",
28260
28357
  "This action won't work on multiple selections.": "Cette action ne fonctionne pas sur des s\xE9lections multiples.",
28261
28358
  "This chart could not be displayed.": "Ce graphique n'a pas pu \xEAtre affich\xE9.",
@@ -28577,6 +28674,7 @@ var grid5 = {
28577
28674
  "A sheet name cannot be blank.": "\u5DE5\u4F5C\u8868\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002",
28578
28675
  "A sheet name cannot contain \\ / ? * [ ] or :": "\u5DE5\u4F5C\u8868\u540D\u79F0\u4E0D\u80FD\u5305\u542B \\ / ? * [ ] \u6216 :",
28579
28676
  "A sheet name cannot start or end with an apostrophe.": "\u5DE5\u4F5C\u8868\u540D\u79F0\u4E0D\u80FD\u4EE5\u6487\u53F7\u5F00\u5934\u6216\u7ED3\u5C3E\u3002",
28677
+ "Cannot insert cells: non-empty cells would be pushed off the sheet.": "\u65E0\u6CD5\u63D2\u5165\u5355\u5143\u683C\uFF1A\u975E\u7A7A\u5355\u5143\u683C\u4F1A\u88AB\u79FB\u51FA\u5DE5\u4F5C\u8868\u3002",
28580
28678
  Cancel: "\u53D6\u6D88",
28581
28679
  "Cell editor": "\u5355\u5143\u683C\u7F16\u8F91\u5668",
28582
28680
  Chart: "\u56FE\u8868",
@@ -28642,6 +28740,7 @@ var grid5 = {
28642
28740
  "Tab Color": "\u5DE5\u4F5C\u8868\u6807\u7B7E\u989C\u8272",
28643
28741
  "That name is already taken.": "\u8BE5\u540D\u79F0\u5DF2\u88AB\u4F7F\u7528\u3002",
28644
28742
  "The browser didn't allow access to the clipboard. Use Ctrl+V to paste.": "\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u8BBF\u95EE\u526A\u8D34\u677F\u3002\u8BF7\u4F7F\u7528 Ctrl+V \u7C98\u8D34\u3002",
28743
+ "The insert area extends beyond the sheet.": "\u63D2\u5165\u533A\u57DF\u8D85\u51FA\u4E86\u5DE5\u4F5C\u8868\u8303\u56F4\u3002",
28645
28744
  "The paste area extends beyond the sheet.": "\u7C98\u8D34\u533A\u57DF\u8D85\u51FA\u4E86\u5DE5\u4F5C\u8868\u8303\u56F4\u3002",
28646
28745
  "This action won't work on multiple selections.": "\u6B64\u64CD\u4F5C\u4E0D\u9002\u7528\u4E8E\u591A\u91CD\u9009\u62E9\u3002",
28647
28746
  "This chart could not be displayed.": "\u65E0\u6CD5\u663E\u793A\u6B64\u56FE\u8868\u3002",
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/de/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4FvC,CAAC"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/de/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgGvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/en/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0FvC,CAAC"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/en/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6FvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/es/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4FvC,CAAC"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/es/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgGvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/fr/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6FvC,CAAC"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/fr/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiGvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/zh-CN/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwFvC,CAAC"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../../../xlsx/ui/locales/zh-CN/grid.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2FvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../../xlsx/ui/ribbon/parts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../../xlsx/ui/ribbon/parts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"conditional.d.ts","sourceRoot":"","sources":["../../../xlsx/write/conditional.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEX,iBAAiB,EAEjB,cAAc,EACd,MAAM,UAAU,CAAC;AAIlB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAqJ5C,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,MAAM,EAAE,WAAW,GACjB,MAAM,CAUR;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CA6BjF"}
1
+ {"version":3,"file":"conditional.d.ts","sourceRoot":"","sources":["../../../xlsx/write/conditional.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,iBAAiB,EAAmB,cAAc,EAAE,MAAM,UAAU,CAAC;AAIlG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAqJ5C,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,MAAM,EAAE,WAAW,GACjB,MAAM,CAUR;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CA6BjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../xlsx/write/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,iBAAiB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAoEvE;;;;GAIG;AACH,qBAAa,WAAW;IAWtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAElD,YACkB,QAAQ,EAAE,QAAQ,EACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAW7B;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS7B;IAED,0EAA0E;IAC1E,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAYtC;IAED,OAAO,CAAC,EAAE;IA2BV,GAAG,IAAI,MAAM,CA2CZ;CACD"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../xlsx/write/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,iBAAiB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AA6DvE;;;;GAIG;AACH,qBAAa,WAAW;IAWtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAElD,YACkB,QAAQ,EAAE,QAAQ,EACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAW7B;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS7B;IAED,0EAA0E;IAC1E,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAYtC;IAED,OAAO,CAAC,EAAE;IA2BV,GAAG,IAAI,MAAM,CA2CZ;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-patch.d.ts","sourceRoot":"","sources":["../../../xlsx/write/table-patch.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAuCjD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAKxD;AA4HD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,SAAS,MAAM,EAAE,GACtB,MAAM,GAAG,SAAS,CA0BpB"}
1
+ {"version":3,"file":"table-patch.d.ts","sourceRoot":"","sources":["../../../xlsx/write/table-patch.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAuCjD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAKxD;AA8JD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,SAAS,MAAM,EAAE,GACtB,MAAM,GAAG,SAAS,CA0BpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ooxml-core",
3
- "version": "1.7.0",
3
+ "version": "1.8.1",
4
4
  "description": "Shared OOXML logic for the Word, PowerPoint and Excel viewers: everything except the UI",
5
5
  "keywords": [
6
6
  "charts",
@@ -79,6 +79,11 @@
79
79
  "import": "./dist/i18n/index.mjs",
80
80
  "require": "./dist/i18n/index.cjs"
81
81
  },
82
+ "./ribbon": {
83
+ "types": "./dist/ribbon/index.d.ts",
84
+ "import": "./dist/ribbon/index.mjs",
85
+ "require": "./dist/ribbon/index.cjs"
86
+ },
82
87
  "./diagram": {
83
88
  "types": "./dist/diagram/index.d.ts",
84
89
  "import": "./dist/diagram/index.mjs",