ooxml-core 1.6.2 → 1.8.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 (308) hide show
  1. package/dist/automation/index.cjs +11143 -6014
  2. package/dist/automation/index.mjs +11143 -6014
  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 +344 -0
  28. package/dist/geometry/index.d.ts +2 -0
  29. package/dist/geometry/index.d.ts.map +1 -1
  30. package/dist/geometry/index.mjs +327 -1
  31. package/dist/geometry/nudge.d.ts +12 -0
  32. package/dist/geometry/nudge.d.ts.map +1 -0
  33. package/dist/geometry/preset-shape-definitions-chart-marks.d.ts.map +1 -1
  34. package/dist/geometry/preset-shape-paths.d.ts +1 -1
  35. package/dist/geometry/preset-shape-paths.d.ts.map +1 -1
  36. package/dist/geometry/rotation-drag.d.ts +6 -0
  37. package/dist/geometry/rotation-drag.d.ts.map +1 -1
  38. package/dist/index.cjs +535 -3
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.mjs +535 -4
  42. package/dist/math/omml-to-latex.d.ts.map +1 -1
  43. package/dist/pptx/automation/index.cjs +7 -2
  44. package/dist/pptx/automation/index.d.ts.map +1 -1
  45. package/dist/pptx/chunks/index-Cn-GzYGp.d.ts.map +1 -1
  46. package/dist/pptx/cli/index.cjs +7 -2
  47. package/dist/pptx/converter/index.cjs +7 -2
  48. package/dist/pptx/index.cjs +7 -2
  49. package/dist/pptx/signature-node/index.cjs +37 -7
  50. package/dist/pptx/signature-node/index.d.ts.map +1 -1
  51. package/dist/pptx/signature-node/index.mjs +37 -7
  52. package/dist/pptx/ui/index.cjs +22 -24
  53. package/dist/pptx/ui/index.d.ts +14 -7
  54. package/dist/pptx/ui/index.d.ts.map +1 -1
  55. package/dist/pptx/ui/index.mjs +22 -24
  56. package/dist/ribbon/add-in.d.ts +53 -0
  57. package/dist/ribbon/add-in.d.ts.map +1 -0
  58. package/dist/ribbon/index.cjs +28 -0
  59. package/dist/ribbon/index.d.ts +2 -0
  60. package/dist/ribbon/index.d.ts.map +1 -0
  61. package/dist/ribbon/index.mjs +23 -0
  62. package/dist/teams/files.d.ts.map +1 -1
  63. package/dist/teams/index.cjs +36 -17
  64. package/dist/teams/index.mjs +36 -17
  65. package/dist/text/font-metrics/advance-width.d.ts +9 -0
  66. package/dist/text/font-metrics/advance-width.d.ts.map +1 -0
  67. package/dist/text/font-metrics/design-advances.generated.d.ts +12 -0
  68. package/dist/text/font-metrics/design-advances.generated.d.ts.map +1 -0
  69. package/dist/text/index.cjs +53 -0
  70. package/dist/text/index.d.ts +1 -0
  71. package/dist/text/index.d.ts.map +1 -1
  72. package/dist/text/index.mjs +52 -1
  73. package/dist/visio/clipboard-types.d.ts +8 -0
  74. package/dist/visio/clipboard-types.d.ts.map +1 -1
  75. package/dist/visio/clipboard-xml.d.ts.map +1 -1
  76. package/dist/visio/clipboard.d.ts.map +1 -1
  77. package/dist/visio/connector-route-avoid.d.ts +24 -0
  78. package/dist/visio/connector-route-avoid.d.ts.map +1 -0
  79. package/dist/visio/connector-route-walk.d.ts +37 -0
  80. package/dist/visio/connector-route-walk.d.ts.map +1 -0
  81. package/dist/visio/connector-route.d.ts +5 -2
  82. package/dist/visio/connector-route.d.ts.map +1 -1
  83. package/dist/visio/create-document.d.ts +6 -0
  84. package/dist/visio/create-document.d.ts.map +1 -1
  85. package/dist/visio/edit-change-shape-builtin.d.ts +18 -0
  86. package/dist/visio/edit-change-shape-builtin.d.ts.map +1 -0
  87. package/dist/visio/edit-change-shape-commands.d.ts +10 -4
  88. package/dist/visio/edit-change-shape-commands.d.ts.map +1 -1
  89. package/dist/visio/edit-change-shape.d.ts +3 -1
  90. package/dist/visio/edit-change-shape.d.ts.map +1 -1
  91. package/dist/visio/edit-commands.d.ts +7 -1
  92. package/dist/visio/edit-commands.d.ts.map +1 -1
  93. package/dist/visio/edit-connector-layout.d.ts +2 -2
  94. package/dist/visio/edit-connector-layout.d.ts.map +1 -1
  95. package/dist/visio/edit-connector-obstacles.d.ts +14 -0
  96. package/dist/visio/edit-connector-obstacles.d.ts.map +1 -0
  97. package/dist/visio/edit-connector-reroute.d.ts +7 -0
  98. package/dist/visio/edit-connector-reroute.d.ts.map +1 -1
  99. package/dist/visio/edit-connector.d.ts +2 -0
  100. package/dist/visio/edit-connector.d.ts.map +1 -1
  101. package/dist/visio/edit-delete.d.ts +4 -2
  102. package/dist/visio/edit-delete.d.ts.map +1 -1
  103. package/dist/visio/edit-duplicate-scope.d.ts +7 -2
  104. package/dist/visio/edit-duplicate-scope.d.ts.map +1 -1
  105. package/dist/visio/edit-duplicate.d.ts.map +1 -1
  106. package/dist/visio/edit-formatting-cell-admission.d.ts.map +1 -1
  107. package/dist/visio/edit-formatting-commands.d.ts +17 -0
  108. package/dist/visio/edit-formatting-commands.d.ts.map +1 -1
  109. package/dist/visio/edit-formatting-paint.d.ts.map +1 -1
  110. package/dist/visio/edit-formatting-scope.d.ts +6 -1
  111. package/dist/visio/edit-formatting-scope.d.ts.map +1 -1
  112. package/dist/visio/edit-formatting-text.d.ts.map +1 -1
  113. package/dist/visio/edit-formatting.d.ts.map +1 -1
  114. package/dist/visio/edit-group-formulas.d.ts +22 -0
  115. package/dist/visio/edit-group-formulas.d.ts.map +1 -0
  116. package/dist/visio/edit-group-rotation.d.ts +3 -1
  117. package/dist/visio/edit-group-rotation.d.ts.map +1 -1
  118. package/dist/visio/edit-group.d.ts +10 -3
  119. package/dist/visio/edit-group.d.ts.map +1 -1
  120. package/dist/visio/edit-instance-checks.d.ts +18 -0
  121. package/dist/visio/edit-instance-checks.d.ts.map +1 -0
  122. package/dist/visio/edit-instance-clipboard.d.ts +22 -0
  123. package/dist/visio/edit-instance-clipboard.d.ts.map +1 -0
  124. package/dist/visio/edit-instance-delete.d.ts +19 -0
  125. package/dist/visio/edit-instance-delete.d.ts.map +1 -0
  126. package/dist/visio/edit-instance-duplicate.d.ts +17 -0
  127. package/dist/visio/edit-instance-duplicate.d.ts.map +1 -0
  128. package/dist/visio/edit-instance-format.d.ts +31 -0
  129. package/dist/visio/edit-instance-format.d.ts.map +1 -0
  130. package/dist/visio/edit-instance-geometry.d.ts +21 -0
  131. package/dist/visio/edit-instance-geometry.d.ts.map +1 -0
  132. package/dist/visio/edit-instance-group.d.ts +18 -0
  133. package/dist/visio/edit-instance-group.d.ts.map +1 -0
  134. package/dist/visio/edit-instance-order.d.ts +16 -0
  135. package/dist/visio/edit-instance-order.d.ts.map +1 -0
  136. package/dist/visio/edit-instance-recalculate.d.ts +32 -0
  137. package/dist/visio/edit-instance-recalculate.d.ts.map +1 -0
  138. package/dist/visio/edit-instance-replace.d.ts +18 -0
  139. package/dist/visio/edit-instance-replace.d.ts.map +1 -0
  140. package/dist/visio/edit-instance-scope.d.ts +29 -0
  141. package/dist/visio/edit-instance-scope.d.ts.map +1 -0
  142. package/dist/visio/edit-instance-shape.d.ts +52 -0
  143. package/dist/visio/edit-instance-shape.d.ts.map +1 -0
  144. package/dist/visio/edit-instance-sheet.d.ts +52 -0
  145. package/dist/visio/edit-instance-sheet.d.ts.map +1 -0
  146. package/dist/visio/edit-layer-properties.d.ts +22 -0
  147. package/dist/visio/edit-layer-properties.d.ts.map +1 -0
  148. package/dist/visio/edit-master-drop.d.ts +39 -0
  149. package/dist/visio/edit-master-drop.d.ts.map +1 -0
  150. package/dist/visio/edit-master-index.d.ts.map +1 -1
  151. package/dist/visio/edit-master-instance-extras.d.ts +15 -0
  152. package/dist/visio/edit-master-instance-extras.d.ts.map +1 -0
  153. package/dist/visio/edit-master-instance-group.d.ts +25 -0
  154. package/dist/visio/edit-master-instance-group.d.ts.map +1 -0
  155. package/dist/visio/edit-master-instance.d.ts +42 -0
  156. package/dist/visio/edit-master-instance.d.ts.map +1 -0
  157. package/dist/visio/edit-master-scope.d.ts.map +1 -1
  158. package/dist/visio/edit-page-auto-size.d.ts.map +1 -1
  159. package/dist/visio/edit-page-layout.d.ts +15 -0
  160. package/dist/visio/edit-page-layout.d.ts.map +1 -0
  161. package/dist/visio/edit-page-setup-commands.d.ts +3 -1
  162. package/dist/visio/edit-page-setup-commands.d.ts.map +1 -1
  163. package/dist/visio/edit-page-theme-refresh.d.ts +4 -0
  164. package/dist/visio/edit-page-theme-refresh.d.ts.map +1 -0
  165. package/dist/visio/edit-page-theme.d.ts.map +1 -1
  166. package/dist/visio/edit-pages.d.ts.map +1 -1
  167. package/dist/visio/edit-paste.d.ts +3 -1
  168. package/dist/visio/edit-paste.d.ts.map +1 -1
  169. package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
  170. package/dist/visio/edit-recalculate-values.d.ts.map +1 -1
  171. package/dist/visio/edit-shape-order.d.ts +19 -4
  172. package/dist/visio/edit-shape-order.d.ts.map +1 -1
  173. package/dist/visio/edit-snap-glue.d.ts +16 -0
  174. package/dist/visio/edit-snap-glue.d.ts.map +1 -0
  175. package/dist/visio/edit-stencil-connector-drop.d.ts +9 -0
  176. package/dist/visio/edit-stencil-connector-drop.d.ts.map +1 -0
  177. package/dist/visio/edit-stencil-connector-layout.d.ts +14 -0
  178. package/dist/visio/edit-stencil-connector-layout.d.ts.map +1 -0
  179. package/dist/visio/edit-stencil-connector-write.d.ts +16 -0
  180. package/dist/visio/edit-stencil-connector-write.d.ts.map +1 -0
  181. package/dist/visio/edit-stencil-connector.d.ts +29 -0
  182. package/dist/visio/edit-stencil-connector.d.ts.map +1 -0
  183. package/dist/visio/edit-stencil-master.d.ts +17 -0
  184. package/dist/visio/edit-stencil-master.d.ts.map +1 -0
  185. package/dist/visio/edit-text-instance.d.ts +21 -0
  186. package/dist/visio/edit-text-instance.d.ts.map +1 -0
  187. package/dist/visio/edit-text-ranges.d.ts.map +1 -1
  188. package/dist/visio/edit-text-scope.d.ts +6 -1
  189. package/dist/visio/edit-text-scope.d.ts.map +1 -1
  190. package/dist/visio/edit-text-size-formula.d.ts +17 -0
  191. package/dist/visio/edit-text-size-formula.d.ts.map +1 -0
  192. package/dist/visio/edit-text-size.d.ts +34 -0
  193. package/dist/visio/edit-text-size.d.ts.map +1 -0
  194. package/dist/visio/edit-text-target.d.ts +11 -1
  195. package/dist/visio/edit-text-target.d.ts.map +1 -1
  196. package/dist/visio/edit-text.d.ts +2 -1
  197. package/dist/visio/edit-text.d.ts.map +1 -1
  198. package/dist/visio/edit.d.ts +1 -1
  199. package/dist/visio/edit.d.ts.map +1 -1
  200. package/dist/visio/formula-evaluate.d.ts +2 -0
  201. package/dist/visio/formula-evaluate.d.ts.map +1 -1
  202. package/dist/visio/formula-functions.d.ts +13 -0
  203. package/dist/visio/formula-functions.d.ts.map +1 -0
  204. package/dist/visio/formula-numeric-functions.d.ts.map +1 -1
  205. package/dist/visio/formula.d.ts +14 -0
  206. package/dist/visio/formula.d.ts.map +1 -1
  207. package/dist/visio/index.cjs +11307 -5982
  208. package/dist/visio/index.d.ts +11 -1
  209. package/dist/visio/index.d.ts.map +1 -1
  210. package/dist/visio/index.mjs +11281 -5983
  211. package/dist/visio/line-jumps.d.ts +21 -0
  212. package/dist/visio/line-jumps.d.ts.map +1 -0
  213. package/dist/visio/master-list.d.ts +20 -0
  214. package/dist/visio/master-list.d.ts.map +1 -0
  215. package/dist/visio/model.d.ts +41 -0
  216. package/dist/visio/model.d.ts.map +1 -1
  217. package/dist/visio/page-layout.d.ts +40 -0
  218. package/dist/visio/page-layout.d.ts.map +1 -0
  219. package/dist/visio/page-theme.d.ts.map +1 -1
  220. package/dist/visio/parser.d.ts.map +1 -1
  221. package/dist/visio/shape-connections.d.ts +2 -2
  222. package/dist/visio/shape-connections.d.ts.map +1 -1
  223. package/dist/visio/snap-glue.d.ts +49 -0
  224. package/dist/visio/snap-glue.d.ts.map +1 -0
  225. package/dist/visio/stencil-master-part.d.ts +15 -0
  226. package/dist/visio/stencil-master-part.d.ts.map +1 -0
  227. package/dist/visio/stencil-masters.d.ts +19 -0
  228. package/dist/visio/stencil-masters.d.ts.map +1 -0
  229. package/dist/visio/stencil-windows.d.ts +20 -0
  230. package/dist/visio/stencil-windows.d.ts.map +1 -0
  231. package/dist/visio/stencils.d.ts +2 -0
  232. package/dist/visio/stencils.d.ts.map +1 -1
  233. package/dist/visio/style.d.ts +5 -0
  234. package/dist/visio/style.d.ts.map +1 -1
  235. package/dist/visio/text-extent.d.ts +40 -0
  236. package/dist/visio/text-extent.d.ts.map +1 -0
  237. package/dist/visio/text-fields.d.ts.map +1 -1
  238. package/dist/visio/theme-color-ref.d.ts +33 -0
  239. package/dist/visio/theme-color-ref.d.ts.map +1 -0
  240. package/dist/visio/ui/auto-connect.d.ts +80 -0
  241. package/dist/visio/ui/auto-connect.d.ts.map +1 -0
  242. package/dist/visio/ui/connection-points.d.ts +7 -2
  243. package/dist/visio/ui/connection-points.d.ts.map +1 -1
  244. package/dist/visio/ui/connector-preview.d.ts +3 -2
  245. package/dist/visio/ui/connector-preview.d.ts.map +1 -1
  246. package/dist/visio/ui/contract.d.ts +7 -2
  247. package/dist/visio/ui/contract.d.ts.map +1 -1
  248. package/dist/visio/ui/data-graphics.d.ts +6 -2
  249. package/dist/visio/ui/data-graphics.d.ts.map +1 -1
  250. package/dist/visio/ui/edit-commands.d.ts.map +1 -1
  251. package/dist/visio/ui/edit-error.d.ts +4 -1
  252. package/dist/visio/ui/edit-error.d.ts.map +1 -1
  253. package/dist/visio/ui/formatting.d.ts +27 -0
  254. package/dist/visio/ui/formatting.d.ts.map +1 -1
  255. package/dist/visio/ui/guides.d.ts +14 -0
  256. package/dist/visio/ui/guides.d.ts.map +1 -1
  257. package/dist/visio/ui/index.cjs +27125 -3841
  258. package/dist/visio/ui/index.d.ts +4 -0
  259. package/dist/visio/ui/index.d.ts.map +1 -1
  260. package/dist/visio/ui/index.mjs +27090 -3842
  261. package/dist/visio/ui/master-drop.d.ts +38 -0
  262. package/dist/visio/ui/master-drop.d.ts.map +1 -0
  263. package/dist/visio/ui/page-edit.d.ts.map +1 -1
  264. package/dist/visio/ui/ruler-grid.d.ts +45 -0
  265. package/dist/visio/ui/ruler-grid.d.ts.map +1 -0
  266. package/dist/visio/ui/sample-drawing.d.ts +9 -0
  267. package/dist/visio/ui/sample-drawing.d.ts.map +1 -0
  268. package/dist/visio/ui/scene-validation.d.ts.map +1 -1
  269. package/dist/visio/ui/shape-change.d.ts +16 -4
  270. package/dist/visio/ui/shape-change.d.ts.map +1 -1
  271. package/dist/visio/ui/shape-clipboard.d.ts.map +1 -1
  272. package/dist/visio/ui/shape-duplicate.d.ts +7 -1
  273. package/dist/visio/ui/shape-duplicate.d.ts.map +1 -1
  274. package/dist/visio/ui/shape-group.d.ts.map +1 -1
  275. package/dist/visio/ui/shape-move.d.ts +6 -0
  276. package/dist/visio/ui/shape-move.d.ts.map +1 -1
  277. package/dist/visio/ui/shape-order.d.ts +6 -1
  278. package/dist/visio/ui/shape-order.d.ts.map +1 -1
  279. package/dist/visio/ui/shape-resize.d.ts.map +1 -1
  280. package/dist/visio/ui/shape-rotation.d.ts +10 -1
  281. package/dist/visio/ui/shape-rotation.d.ts.map +1 -1
  282. package/dist/visio/ui/size-position.d.ts.map +1 -1
  283. package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
  284. package/dist/xlsx/conditional-extensions.d.ts.map +1 -1
  285. package/dist/xlsx/edit/cell-shift.d.ts.map +1 -1
  286. package/dist/xlsx/edit/shift-rule-anchors.d.ts +9 -0
  287. package/dist/xlsx/edit/shift-rule-anchors.d.ts.map +1 -0
  288. package/dist/xlsx/edit/structure.d.ts.map +1 -1
  289. package/dist/xlsx/edit/table-edits.d.ts.map +1 -1
  290. package/dist/xlsx/formula/engine-util.d.ts.map +1 -1
  291. package/dist/xlsx/index.cjs +55 -15
  292. package/dist/xlsx/index.mjs +55 -15
  293. package/dist/xlsx/load/index.cjs +70 -16
  294. package/dist/xlsx/load/index.mjs +70 -16
  295. package/dist/xlsx/load/text-decode.d.ts.map +1 -1
  296. package/dist/xlsx/model.d.ts +2 -0
  297. package/dist/xlsx/model.d.ts.map +1 -1
  298. package/dist/xlsx/read/package.d.ts.map +1 -1
  299. package/dist/xlsx/read/tables.d.ts.map +1 -1
  300. package/dist/xlsx/ui/commands/number.d.ts.map +1 -1
  301. package/dist/xlsx/ui/commands/util.d.ts.map +1 -1
  302. package/dist/xlsx/ui/index.cjs +26 -0
  303. package/dist/xlsx/ui/index.mjs +26 -0
  304. package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -1
  305. package/dist/xlsx/write/conditional.d.ts.map +1 -1
  306. package/dist/xlsx/write/styles.d.ts.map +1 -1
  307. package/dist/xlsx/write/table-patch.d.ts.map +1 -1
  308. package/package.json +7 -1
@@ -0,0 +1,38 @@
1
+ import type { VisioMaster, VisioPage } from '../index.js';
2
+ import type { VisioMasterInstanceEdit } from '../edit-master-instance.js';
3
+ import type { VisioStencilMasterDropEdit } from '../edit-master-drop.js';
4
+ /** Why a document-stencil master cannot be dropped as a shape, or nothing when it can. */
5
+ export declare function visioMasterDropRefusal(master: VisioMaster): string | undefined;
6
+ /** The size a dropped instance inherits from its master, in inches (1 x 1 when unknown). */
7
+ export declare function visioMasterDropSize(master: VisioMaster): {
8
+ width: number;
9
+ height: number;
10
+ };
11
+ /**
12
+ * The master's shapes on its master page, y up, in inches: the part of the page a preview shows.
13
+ * Master pages are usually larger than the shape they hold.
14
+ */
15
+ export declare function visioMasterPreviewBox(master: VisioMaster): {
16
+ x: number;
17
+ y: number;
18
+ width: number;
19
+ height: number;
20
+ };
21
+ /**
22
+ * Drop `master` with its pin at `centre` (page inches, y down, as pointer positions are), kept
23
+ * on the page. Throws the refusal for a master that cannot be dropped.
24
+ */
25
+ export declare function visioMasterDropCommand(page: VisioPage, master: VisioMaster, centre?: {
26
+ x: number;
27
+ y: number;
28
+ }): VisioMasterInstanceEdit;
29
+ /**
30
+ * Drop the built-in stencil master `master` (`rectangle`, `flowchart-process`...) with its pin at
31
+ * `centre` (page inches, y down), kept on the page unless `keepOnPage` is off. The core copies the
32
+ * master into the drawing the first time and drops an instance of it.
33
+ */
34
+ export declare function visioStencilDropCommand(page: VisioPage, master: string, centre?: {
35
+ x: number;
36
+ y: number;
37
+ }, keepOnPage?: boolean): VisioStencilMasterDropEdit;
38
+ //# sourceMappingURL=master-drop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"master-drop.d.ts","sourceRoot":"","sources":["../../../visio/ui/master-drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAc,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAItE,0FAA0F;AAC1F,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAa9E;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAS1F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG;IAC3D,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf,CA0BA;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,uBAAuB,CAoBzB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,UAAU,UAAO,GACf,0BAA0B,CAwB5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-edit.d.ts","sourceRoot":"","sources":["../../../visio/ui/page-edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzD,qFAAqF;AACrF,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,GACjB,eAAe,CAYjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,CA+DlF"}
1
+ {"version":3,"file":"page-edit.d.ts","sourceRoot":"","sources":["../../../visio/ui/page-edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzD,qFAAqF;AACrF,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,GACjB,eAAe,CAYjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,CAiElF"}
@@ -0,0 +1,45 @@
1
+ import type { VisioEdit } from '../edit-commands.js';
2
+ import type { VisioPage } from '../model.js';
3
+ import { type VisioPageLayout } from '../page-layout.js';
4
+ /** The Ruler & Grid dialog's choices, in Visio's order. */
5
+ export declare const VISIO_GRID_DENSITY_CHOICES: readonly [{
6
+ readonly value: 8;
7
+ readonly label: 'Fine';
8
+ }, {
9
+ readonly value: 4;
10
+ readonly label: 'Normal';
11
+ }, {
12
+ readonly value: 2;
13
+ readonly label: 'Coarse';
14
+ }, {
15
+ readonly value: 0;
16
+ readonly label: 'Fixed';
17
+ }];
18
+ export declare const VISIO_RULER_DENSITY_CHOICES: readonly [{
19
+ readonly value: 32;
20
+ readonly label: 'Fine';
21
+ }, {
22
+ readonly value: 16;
23
+ readonly label: 'Normal';
24
+ }, {
25
+ readonly value: 8;
26
+ readonly label: 'Coarse';
27
+ }];
28
+ /** Grid lines of a page at a zoom: the step and one line's position, per axis, in page inches. */
29
+ export interface VisioGridSteps {
30
+ x: number;
31
+ y: number;
32
+ originX: number;
33
+ originY: number;
34
+ }
35
+ export declare function visioGridSteps(page: {
36
+ layout?: Partial<VisioPageLayout>;
37
+ }, zoom?: number): VisioGridSteps;
38
+ /** Share of the ruler's finest subdivisions a density shows: Fine all, Normal half, Coarse a quarter. */
39
+ export declare function visioRulerDensityFactor(density: number): number;
40
+ /** The Ruler & Grid dialog's fields. */
41
+ export type VisioRulerGridValues = Pick<VisioPageLayout, 'rulerDensityX' | 'rulerDensityY' | 'rulerOriginX' | 'rulerOriginY' | 'gridDensityX' | 'gridDensityY' | 'gridSpacingX' | 'gridSpacingY' | 'gridOriginX' | 'gridOriginY'>;
42
+ export declare function visioRulerGridValues(page: VisioPage): VisioRulerGridValues;
43
+ /** One `set-page-layout` edit with the fields that differ from the page; empty when none do. */
44
+ export declare function visioRulerGridEdits(page: VisioPage, values: VisioRulerGridValues): VisioEdit[];
45
+ //# sourceMappingURL=ruler-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruler-grid.d.ts","sourceRoot":"","sources":["../../../visio/ui/ruler-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEvE,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B;oBAC7B,CAAC;oBAAS,MAAM;;oBAChB,CAAC;oBAAS,QAAQ;;oBAClB,CAAC;oBAAS,QAAQ;;oBAClB,CAAC;oBAAS,OAAO;EAChB,CAAC;AACZ,eAAO,MAAM,2BAA2B;oBAC9B,EAAE;oBAAS,MAAM;;oBACjB,EAAE;oBAAS,QAAQ;;oBACnB,CAAC;oBAAS,QAAQ;EACjB,CAAC;AAEZ,kGAAkG;AAClG,MAAM,WAAW,cAAc;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAiBD,wBAAgB,cAAc,CAC7B,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAAE,EAC3C,IAAI,SAAI,GACN,cAAc,CAQhB;AAED,yGAAyG;AACzG,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wCAAwC;AACxC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACtC,eAAe,EACb,eAAe,GACf,eAAe,GACf,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,aAAa,GACb,aAAa,CACf,CAAC;AAcF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,oBAAoB,CAG1E;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,SAAS,EAAE,CAW9F"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The sample drawing as a real VSDX package, built through the same edit API the editor uses, so
3
+ * every shape in it can be selected, moved, retyped and saved. Its boxes are instances of the
4
+ * built-in stencil masters, which the drawing carries in its own document stencil, as a Visio
5
+ * flowchart does. An original drawing, not a Visio-authored reference fixture. Page and shape edits need separate transactions, so this is
6
+ * two edits after the blank drawing.
7
+ */
8
+ export declare function createSampleVsdx(): Promise<Uint8Array>;
9
+ //# sourceMappingURL=sample-drawing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample-drawing.d.ts","sourceRoot":"","sources":["../../../visio/ui/sample-drawing.ts"],"names":[],"mappings":"AA+JA;;;;;;GAMG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAqB5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"scene-validation.d.ts","sourceRoot":"","sources":["../../../visio/ui/scene-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAKN,KAAK,aAAa,EAGlB,MAAM,UAAU,CAAC;AAMlB,eAAO,MAAM,eAAe,QAAmB,CAAC;AAkChD,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CA6WjE"}
1
+ {"version":3,"file":"scene-validation.d.ts","sourceRoot":"","sources":["../../../visio/ui/scene-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAKN,KAAK,aAAa,EAGlB,MAAM,UAAU,CAAC;AAMlB,eAAO,MAAM,eAAe,QAAmB,CAAC;AAkChD,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAkXjE"}
@@ -1,11 +1,23 @@
1
- import type { VisioPage, VisioShape } from '../model.js';
1
+ import type { VisioDocument, VisioMaster, VisioPage, VisioShape } from '../model.js';
2
2
  import type { VisioChangeShapeEdit, VisioChangeShapeTarget } from '../edit-change-shape-commands.js';
3
3
  /**
4
- * Coarse scene admission for Home > Change Shape: the reason the selection cannot change shape,
5
- * or undefined when it can be tried. Locks, formula dependencies and control handles are checked
6
- * by `editVsdx`, which refuses the edit with its own reason.
4
+ * Coarse scene admission for Home > Change Shape to a built-in shape: the reason the selection
5
+ * cannot change, or undefined when it can be tried. A drawn shape gets a new outline; a stencil
6
+ * shape becomes an instance of the built-in master. Locks, formula dependencies and control
7
+ * handles are checked by `editVsdx`, which refuses the edit with its own reason.
7
8
  */
8
9
  export declare function visioChangeShapeRefusal(page: VisioPage | undefined, selection: readonly Pick<VisioShape, 'id'>[]): string | undefined;
9
10
  /** The change-shape command for the single selected shape, when the scene admits it. */
10
11
  export declare function visioChangeShapeCommand(page: VisioPage | undefined, selection: readonly Pick<VisioShape, 'id'>[], target: VisioChangeShapeTarget): VisioChangeShapeEdit | undefined;
12
+ /**
13
+ * The masters of the drawing the selected stencil shape can change to: every other master made
14
+ * of one plain 2D shape. Empty when the selection is not such a stencil shape; `reason` then
15
+ * says why. Glue, locks and local changes to the outline are checked by `editVsdx`.
16
+ */
17
+ export declare function visioChangeMasterTargets(document: Pick<VisioDocument, 'masters'> | null | undefined, page: VisioPage | undefined, selection: readonly Pick<VisioShape, 'id'>[]): {
18
+ masters: readonly VisioMaster[];
19
+ reason?: string;
20
+ };
21
+ /** The command that makes the selected stencil shape an instance of `masterId`. */
22
+ export declare function visioChangeMasterCommand(document: Pick<VisioDocument, 'masters'> | null | undefined, page: VisioPage | undefined, selection: readonly Pick<VisioShape, 'id'>[], masterId: string): VisioChangeShapeEdit | undefined;
11
23
  //# sourceMappingURL=shape-change.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape-change.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAElG;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,SAAS,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,GAC1C,MAAM,GAAG,SAAS,CAqBpB;AAED,wFAAwF;AACxF,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,SAAS,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAC5C,MAAM,EAAE,sBAAsB,GAC5B,oBAAoB,GAAG,SAAS,CAGlC"}
1
+ {"version":3,"file":"shape-change.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAelG;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,SAAS,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,GAC1C,MAAM,GAAG,SAAS,CA0BpB;AAED,wFAAwF;AACxF,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,SAAS,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAC5C,MAAM,EAAE,sBAAsB,GAC5B,oBAAoB,GAAG,SAAS,CAGlC;AASD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3D,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,SAAS,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,GAC1C;IAAE,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBtD;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3D,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,SAAS,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAC5C,QAAQ,EAAE,MAAM,GACd,oBAAoB,GAAG,SAAS,CAIlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shape-clipboard.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAInE,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAa5F;AACD,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,sBAAsB,EAC7B,MAAM,GAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAA0B,GACtD,oBAAoB,GAAG,SAAS,CAsBlC"}
1
+ {"version":3,"file":"shape-clipboard.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAInE,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE5F;AACD,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,sBAAsB,EAC7B,MAAM,GAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAA0B,GACtD,oBAAoB,GAAG,SAAS,CAsBlC"}
@@ -1,5 +1,11 @@
1
- import type { VisioPage } from '../model.js';
1
+ import type { VisioPage, VisioShape } from '../model.js';
2
2
  import type { VisioDuplicateShapesEdit } from '../edit-duplicate-commands.js';
3
+ /**
4
+ * What Duplicate, Copy and Cut take: a 2D shape drawn here with no glue, or a 2D stencil shape,
5
+ * which is copied as an instance of the same master. A connector glued to a stencil shape stays
6
+ * with the original, as in Visio; a shape that is itself glued to another is left out.
7
+ */
8
+ export declare function visioCopyableShape(page: VisioPage, shapeId: string): VisioShape | undefined;
3
9
  /** Allocate against the complete page tree; source guards remain authoritative. */
4
10
  export declare function visioDuplicateCommand(page: VisioPage, shapeIds: readonly string[]): VisioDuplicateShapesEdit | undefined;
5
11
  //# sourceMappingURL=shape-duplicate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape-duplicate.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-duplicate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAI3E,mFAAmF;AACnF,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GACzB,wBAAwB,GAAG,SAAS,CAuCtC"}
1
+ {"version":3,"file":"shape-duplicate.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-duplicate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAI3E;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAe3F;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GACzB,wBAAwB,GAAG,SAAS,CA4BtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shape-group.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAY1F,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAGrF;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GACzB,oBAAoB,GAAG,SAAS,CAmBlC;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GACzB,qBAAqB,GAAG,SAAS,CAGnC"}
1
+ {"version":3,"file":"shape-group.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAuB1F,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAIrF;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GACzB,oBAAoB,GAAG,SAAS,CAmBlC;AAED,oDAAoD;AACpD,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GACzB,qBAAqB,GAAG,SAAS,CAGnC"}
@@ -14,4 +14,10 @@ export declare function visioMoveTargets(page: VisioPage, ids: readonly string[]
14
14
  /** One common translation over the entire eligible selection (and the members of selected
15
15
  * containers); callers commit it atomically. */
16
16
  export declare function visioMoveCommands(page: VisioPage, selection: readonly string[], delta: VisioPagePoint): VisioEdit[] | undefined;
17
+ /**
18
+ * Arrow-key nudge: move the selection `step` page inches in the arrow's screen direction (Visio
19
+ * nudges by a small step, and Shift+arrow by one screen pixel). `null` for any other key,
20
+ * `undefined` when the selection cannot move.
21
+ */
22
+ export declare function visioNudgeCommands(page: VisioPage, selection: readonly string[], key: string, step: number): VisioEdit[] | undefined | null;
17
23
  //# sourceMappingURL=shape-move.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape-move.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-move.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAMnE,MAAM,WAAW,cAAc;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAaD,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAoBtF;AACD,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,GAAG,cAAc,CAE7F;AACD,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,cAAc,GACnB,WAAW,GAAG,SAAS,CAKzB;AACD,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAGlF;AACD;gDACgD;AAChD,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,KAAK,EAAE,cAAc,GACnB,SAAS,EAAE,GAAG,SAAS,CA8BzB"}
1
+ {"version":3,"file":"shape-move.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-move.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAMnE,MAAM,WAAW,cAAc;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAaD,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAoBtF;AACD,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,GAAG,cAAc,CAE7F;AACD,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,cAAc,GACnB,WAAW,GAAG,SAAS,CAKzB;AACD,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAGlF;AACD;gDACgD;AAChD,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,KAAK,EAAE,cAAc,GACnB,SAAS,EAAE,GAAG,SAAS,CA8BzB;AACD;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACV,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,CAMhC"}
@@ -1,4 +1,9 @@
1
1
  import type { VisioPage, VisioShape } from '../model.js';
2
- /** Coarse scene admission; source display bands and protection are checked by editVsdx. */
2
+ /**
3
+ * Coarse scene admission for Bring to Front, Send to Back and their one-step forms: a shape
4
+ * drawn here (no group, picture or layer) or any stencil shape, Visio's connectors included, off
5
+ * locked layers. What else sits on the page does not matter: only the order of siblings changes.
6
+ * Source display bands and protection are checked by editVsdx.
7
+ */
3
8
  export declare function visioOrderingShape(page: VisioPage, shapeId: string): VisioShape | undefined;
4
9
  //# sourceMappingURL=shape-order.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shape-order.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtD,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAc3F"}
1
+ {"version":3,"file":"shape-order.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAgB3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"shape-resize.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-resize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAA0C,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG3F,eAAO,MAAM,oBAAoB;aAC9B,EAAE,EAAE,IAAI;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;;aACpB,EAAE,EAAE,GAAG;aAAE,CAAC,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;;aACrB,EAAE,EAAE,IAAI;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;;aACpB,EAAE,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,GAAG;;aACrB,EAAE,EAAE,IAAI;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;;aACpB,EAAE,EAAE,GAAG;aAAE,CAAC,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;;aACrB,EAAE,EAAE,IAAI;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;;aACpB,EAAE,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,GAAG;EACd,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5E,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AACD,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAUpF;AACD,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvC,MAAM,EAAE,iBAAiB,GACvB,gBAAgB,GAAG,SAAS,CAgB9B;AACD;;GAEG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,cAAc,GACjB;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,CAuChG"}
1
+ {"version":3,"file":"shape-resize.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-resize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAA0C,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG3F,eAAO,MAAM,oBAAoB;aAC9B,EAAE,EAAE,IAAI;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;;aACpB,EAAE,EAAE,GAAG;aAAE,CAAC,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;;aACrB,EAAE,EAAE,IAAI;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;;aACpB,EAAE,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,GAAG;;aACrB,EAAE,EAAE,IAAI;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;;aACpB,EAAE,EAAE,GAAG;aAAE,CAAC,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;;aACrB,EAAE,EAAE,IAAI;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,CAAC;;aACpB,EAAE,EAAE,GAAG;aAAE,CAAC,EAAE,CAAC;aAAE,CAAC,EAAE,GAAG;EACd,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5E,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AACD,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAYpF;AACD,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvC,MAAM,EAAE,iBAAiB,GACvB,gBAAgB,GAAG,SAAS,CAgB9B;AACD;;GAEG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,cAAc,GACjB;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,CAuChG"}
@@ -1,7 +1,16 @@
1
1
  import type { VisioEdit } from '../edit.js';
2
2
  import type { VisioPage, VisioShape } from '../model.js';
3
- /** The model-level scope of local rotation. Source protections remain enforced by core edits. */
3
+ /**
4
+ * The model-level scope of local rotation: a shape or group drawn here. A group may hold 2D
5
+ * stencil shapes; each stays an instance of its master and moves with the group as one member.
6
+ * Source protections remain enforced by core edits.
7
+ */
4
8
  export declare function visioLocalRotationShape(page: VisioPage, shapeId: string, includeGroups?: boolean): VisioShape | undefined;
9
+ /**
10
+ * What Rotate and Flip act on: a local shape or group, or a stencil instance (a group included), whose
11
+ * angle and flip flags are saved as local values over its master.
12
+ */
13
+ export declare function visioRotationShape(page: VisioPage, shapeId: string, includeGroups?: boolean): VisioShape | undefined;
5
14
  /** Native per-shape quarter turns normalize to signed angles while retaining the saved pin. */
6
15
  export declare function visioQuarterTurnCommand(page: VisioPage, shapeId: string, direction: 'left' | 'right'): Extract<VisioEdit, {
7
16
  type: 'rotate-shape';
@@ -1 +1 @@
1
- {"version":3,"file":"shape-rotation.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-rotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,iGAAiG;AACjG,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,aAAa,UAAO,GAClB,UAAU,GAAG,SAAS,CAiCxB;AACD,+FAA+F;AAC/F,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,OAAO,GACzB,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,GAAG,SAAS,CAa1D"}
1
+ {"version":3,"file":"shape-rotation.d.ts","sourceRoot":"","sources":["../../../visio/ui/shape-rotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,aAAa,UAAO,GAClB,UAAU,GAAG,SAAS,CA6CxB;AACD;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,aAAa,UAAO,GAClB,UAAU,GAAG,SAAS,CAcxB;AACD,+FAA+F;AAC/F,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,OAAO,GACzB,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,GAAG,SAAS,CAa1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"size-position.d.ts","sourceRoot":"","sources":["../../../visio/ui/size-position.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,MAAM,MAAM,sBAAsB,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC9E,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAGD,mGAAmG;AACnG,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,MAAM,GACR,sBAAsB,GAAG,SAAS,CAoBpC;AAED,oGAAoG;AACpG,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,MAAM,GACX,SAAS,EAAE,GAAG,SAAS,CA8BzB"}
1
+ {"version":3,"file":"size-position.d.ts","sourceRoot":"","sources":["../../../visio/ui/size-position.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,MAAM,MAAM,sBAAsB,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC9E,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAGD,mGAAmG;AACnG,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,MAAM,GACR,sBAAsB,GAAG,SAAS,CAsBpC;AAED,oGAAoG;AACpG,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,MAAM,GACX,SAAS,EAAE,GAAG,SAAS,CA8BzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-scene.d.ts","sourceRoot":"","sources":["../../../visio/ui/snapshot-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAOb,MAAM,UAAU,CAAC;AAyBlB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAoQrE"}
1
+ {"version":3,"file":"snapshot-scene.d.ts","sourceRoot":"","sources":["../../../visio/ui/snapshot-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAOb,MAAM,UAAU,CAAC;AAyBlB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAqQrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-extensions.d.ts","sourceRoot":"","sources":["../../xlsx/conditional-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAON,KAAK,UAAU,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAuC1D,+FAA+F;AAC/F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAoChE;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;;;EAOrF;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAC7B,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,EACnD,IAAI,CAAC,EAAE,UAAU;IAQhB,SAAS;IACT,SAAS;EAEV;AAED,2FAA2F;AAC3F,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,EACnD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAClC,IAAI,CAaN;AAED,0FAA0F;AAC1F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAgCjE"}
1
+ {"version":3,"file":"conditional-extensions.d.ts","sourceRoot":"","sources":["../../xlsx/conditional-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAuC1D,+FAA+F;AAC/F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAoChE;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;;;EAOrF;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAC7B,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,EACnD,IAAI,CAAC,EAAE,UAAU;IAQhB,SAAS;IACT,SAAS;EAEV;AAED,2FAA2F;AAC3F,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,EACnD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAClC,IAAI,CAaN;AAED,0FAA0F;AAC1F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAgCjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"cell-shift.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/cell-shift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqD,MAAM,YAAY,CAAC;AAG/F,OAAO,EAAE,KAAK,WAAW,EAAwC,MAAM,WAAW,CAAC;AAwDnF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,MAAM,GAAG,OAAO,GACzB,IAAI,CAON;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,IAAI,GAAG,MAAM,GACtB,IAAI,CAON"}
1
+ {"version":3,"file":"cell-shift.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/cell-shift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqD,MAAM,YAAY,CAAC;AAG/F,OAAO,EAAE,KAAK,WAAW,EAAwC,MAAM,WAAW,CAAC;AA2DnF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,MAAM,GAAG,OAAO,GACzB,IAAI,CAON;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,WAAW,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,IAAI,GAAG,MAAM,GACtB,IAAI,CAON"}
@@ -0,0 +1,9 @@
1
+ import type { Worksheet } from '../model.js';
2
+ import { type AxisShift } from './range-math.js';
3
+ import type { Band } from './shift-sheet.js';
4
+ /**
5
+ * Rebase rules to their first surviving cells before deletion rewrites references. Keeping the
6
+ * old ranges here lets the normal range shift move them once, without splitting contiguous rules.
7
+ */
8
+ export declare function rebaseRulesForDeletion(sheet: Worksheet, shift: AxisShift, band?: Band): void;
9
+ //# sourceMappingURL=shift-rule-anchors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shift-rule-anchors.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/shift-rule-anchors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAyB5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/structure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,WAAW,CAAC;AAEpE,OAAO,EAAa,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;AAUrE,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAMzF;AAoDD,eAAO,MAAM,UAAU,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC1C,CAAC;AAC3C,eAAO,MAAM,UAAU,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IACzC,CAAC;AAC5C,eAAO,MAAM,aAAa,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC7C,CAAC;AAC3C,eAAO,MAAM,aAAa,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC5C,CAAC"}
1
+ {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/structure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,WAAW,CAAC;AAEpE,OAAO,EAAa,KAAK,SAAS,EAAc,MAAM,cAAc,CAAC;AAWrE,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAOzF;AAoDD,eAAO,MAAM,UAAU,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC1C,CAAC;AAC3C,eAAO,MAAM,UAAU,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IACzC,CAAC;AAC5C,eAAO,MAAM,aAAa,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC7C,CAAC;AAC3C,eAAO,MAAM,aAAa,QAAS,WAAW,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,KAAG,IAC5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-edits.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/table-edits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAmC,MAAM,YAAY,CAAC;AAI7E,OAAO,KAAK,EAAE,KAAK,EAAe,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,WAAW,CAAC;AAOnE,wEAAwE;AACxE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,qCAAqC;AACrC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;AAEjE,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAOlE;AAID,uFAAuF;AACvF,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,KAAK,GACV,MAAM,GAAG,SAAS,CAWpB;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYlF;AAwHD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAsC/F;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAU9F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAyCpF"}
1
+ {"version":3,"file":"table-edits.d.ts","sourceRoot":"","sources":["../../../xlsx/edit/table-edits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAmC,MAAM,YAAY,CAAC;AAI7E,OAAO,KAAK,EAAE,KAAK,EAAe,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,WAAW,CAAC;AAOnE,wEAAwE;AACxE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,qCAAqC;AACrC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;AAEjE,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAOlE;AAID,uFAAuF;AACvF,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,KAAK,GACV,MAAM,GAAG,SAAS,CAWpB;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYlF;AAwHD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CA4C/F;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAU9F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAyCpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine-util.d.ts","sourceRoot":"","sources":["../../../xlsx/formula/engine-util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAIN,MAAM,EAEN,KAAK,MAAM,EACX,KAAK,KAAK,EACV,MAAM,UAAU,CAAC;AAElB,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAgBtE;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED,eAAO,MAAM,QAAQ,UAAW,SAAS,OAAO,MAAM,OAAO,MAAM,KAAG,OAC2B,CAAC;AAElG,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAQrF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAW1D"}
1
+ {"version":3,"file":"engine-util.d.ts","sourceRoot":"","sources":["../../../xlsx/formula/engine-util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAA+B,MAAM,EAAY,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAElG,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAgBtE;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED,eAAO,MAAM,QAAQ,UAAW,SAAS,OAAO,MAAM,OAAO,MAAM,KAAG,OAC2B,CAAC;AAElG,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAQrF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAW1D"}
@@ -20126,6 +20126,8 @@ function parseTable(xml, partName) {
20126
20126
  const columns = xChildren(xFirst(root, "tableColumns") ?? root, "tableColumn").map(
20127
20127
  (node) => {
20128
20128
  const column = { name: att(node, "name") ?? "" };
20129
+ const id = numAttr(node, "id");
20130
+ if (id !== void 0 && Number.isInteger(id) && id >= 0) column.sourceId = id;
20129
20131
  const fn = att(node, "totalsRowFunction");
20130
20132
  if (fn && fn !== "none") column.totalsRowFunction = fn;
20131
20133
  const label2 = att(node, "totalsRowLabel");
@@ -23843,7 +23845,22 @@ function tableFilterRange(table2) {
23843
23845
  end: { ...table2.range.end, row: table2.range.end.row - (table2.totalsRow ? 1 : 0) }
23844
23846
  };
23845
23847
  }
23846
- function patchAutoFilter(doc, root, table2, before) {
23848
+ function sourceColumnsForPatch(root, table2, names) {
23849
+ const list = xKid(root, "tableColumns");
23850
+ const source2 = list ? xKids(list, "tableColumn") : [];
23851
+ const byId2 = new Map(source2.map((c2) => [Number(c2.getAttribute("id")), c2]));
23852
+ const byName = new Map(source2.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2]));
23853
+ const tracked = table2.partName !== void 0 || table2.columns.some((c2) => c2.sourceId !== void 0);
23854
+ const used = /* @__PURE__ */ new Set();
23855
+ return names.map((name, index2) => {
23856
+ const id = table2.columns[index2]?.sourceId;
23857
+ const match2 = id !== void 0 ? byId2.get(id) : tracked ? void 0 : source2.length === names.length ? source2[index2] : byName.get(name.toLowerCase());
23858
+ if (!match2 || used.has(match2)) return void 0;
23859
+ used.add(match2);
23860
+ return match2;
23861
+ });
23862
+ }
23863
+ function patchAutoFilter(doc, root, table2, before, names) {
23847
23864
  const existing = xKid(root, "autoFilter");
23848
23865
  if (!table2.headerRow) {
23849
23866
  if (existing) root.removeChild(existing);
@@ -23852,10 +23869,14 @@ function patchAutoFilter(doc, root, table2, before) {
23852
23869
  const filter2 = existing ?? doc.createElementNS(NS.x, "autoFilter");
23853
23870
  const range = tableFilterRange(table2);
23854
23871
  filter2.setAttribute("ref", formatRange(range));
23855
- const width = range.end.col - range.start.col + 1;
23872
+ const list = xKid(root, "tableColumns");
23873
+ const original = list ? xKids(list, "tableColumn") : [];
23874
+ const current = new Map(sourceColumnsForPatch(root, table2, names).map((c2, index2) => [c2, index2]));
23856
23875
  for (const column of xKids(filter2, "filterColumn")) {
23857
- const colId = Number(column.getAttribute("colId") ?? "0");
23858
- if (!(colId < width)) filter2.removeChild(column);
23876
+ const old = original[Number(column.getAttribute("colId") ?? "0")];
23877
+ const index2 = old ? current.get(old) : void 0;
23878
+ if (index2 === void 0) filter2.removeChild(column);
23879
+ else column.setAttribute("colId", num2(index2));
23859
23880
  }
23860
23881
  if (!existing) insertBefore(root, filter2, ["sortState", "tableColumns"]);
23861
23882
  const sort2 = xKid(filter2, "sortState") ?? xKid(root, "sortState");
@@ -23889,18 +23910,11 @@ function patchColumns(doc, root, sheet, table2, names) {
23889
23910
  insertBefore(root, list, ["tableStyleInfo", "extLst"]);
23890
23911
  }
23891
23912
  const sourceColumns = xKids(list, "tableColumn");
23892
- const byName = new Map(
23893
- sourceColumns.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2])
23894
- );
23895
- const sameCount = sourceColumns.length === names.length;
23896
- const used = /* @__PURE__ */ new Set();
23897
23913
  const ids = /* @__PURE__ */ new Set();
23898
- const picked = names.map((name, index2) => {
23899
- const match2 = sameCount ? sourceColumns[index2] : byName.get(name.toLowerCase());
23900
- if (!match2 || used.has(match2)) return void 0;
23901
- used.add(match2);
23914
+ const picked = sourceColumnsForPatch(root, table2, names).map((match2) => {
23915
+ if (!match2) return void 0;
23902
23916
  const id = Number(match2.getAttribute("id"));
23903
- if (Number.isInteger(id) && id > 0 && !ids.has(id)) ids.add(id);
23917
+ if (Number.isInteger(id) && id >= 0 && !ids.has(id)) ids.add(id);
23904
23918
  else match2.removeAttribute("id");
23905
23919
  return match2;
23906
23920
  });
@@ -23973,7 +23987,7 @@ function patchTableXml(sourceXml, sheet, table2, id, names) {
23973
23987
  root.removeAttribute("totalsRowCount");
23974
23988
  if (!root.hasAttribute("totalsRowShown")) root.setAttribute("totalsRowShown", "0");
23975
23989
  }
23976
- patchAutoFilter(doc, root, table2, before);
23990
+ patchAutoFilter(doc, root, table2, before, names);
23977
23991
  patchColumns(doc, root, sheet, table2, names);
23978
23992
  patchStyleInfo(doc, root, table2);
23979
23993
  return buildXml(doc);
@@ -25962,6 +25976,25 @@ function setBorders(ctx, s, range, preset, edge2 = { style: "thin" }) {
25962
25976
  );
25963
25977
  }
25964
25978
 
25979
+ // xlsx/edit/shift-rule-anchors.ts
25980
+ function rebaseRulesForDeletion(sheet, shift2, band) {
25981
+ if (shift2.count >= 0) return;
25982
+ const last = shift2.at - shift2.count - 1;
25983
+ 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);
25984
+ const other = shift2.axis === "row" ? "col" : "row";
25985
+ const surviving = (ranges) => ranges.flatMap(
25986
+ (range) => band && (range.start[other] < band.lo || range.end[other] > band.hi) ? [range] : subtractRange(range, removed)
25987
+ );
25988
+ sheet.conditionalFormats = sheet.conditionalFormats.map((format) => {
25989
+ const ranges = surviving(format.ranges);
25990
+ return ranges.length ? { ...rebaseConditionalFormat(format, ranges), ranges: format.ranges } : format;
25991
+ });
25992
+ sheet.dataValidations = sheet.dataValidations.map((rule) => {
25993
+ const ranges = surviving(rule.ranges);
25994
+ return ranges.length ? { ...rebaseValidation(rule, ranges), ranges: rule.ranges } : rule;
25995
+ });
25996
+ }
25997
+
25965
25998
  // xlsx/edit/shift-sheet.ts
25966
25999
  function shiftSheetContent(sheet, shift2, band) {
25967
26000
  const moveRange = (range) => band ? shiftRangeInBand(range, shift2, band.lo, band.hi) : shiftRange(range, shift2);
@@ -26105,6 +26138,7 @@ function checkSpan(axis, at, count2) {
26105
26138
  throw new RangeError(`Invalid ${axis} span ${at} + ${count2}`);
26106
26139
  }
26107
26140
  function applyAxisShift(ctx, sheet, shift2) {
26141
+ rebaseRulesForDeletion(sheet, shift2);
26108
26142
  const spec2 = { sheet: sheet.name, axis: shift2.axis, at: shift2.at, count: shift2.count };
26109
26143
  rewriteFormulas(
26110
26144
  ctx.workbook,
@@ -26184,6 +26218,7 @@ function shiftBand(ctx, s, range, direction) {
26184
26218
  "structure",
26185
26219
  [{ kind: "shift", sheet: s, shift: shift2, band }],
26186
26220
  () => {
26221
+ rebaseRulesForDeletion(sheet, shift2, band);
26187
26222
  rewriteFormulas(
26188
26223
  ctx.workbook,
26189
26224
  (formula, formulaSheet) => shiftFormulaInBand(formula, formulaSheet, sheet.name, shift2, band)
@@ -28797,7 +28832,12 @@ function updateTable(ctx, s, ref, patch2) {
28797
28832
  if (patch2.columns) {
28798
28833
  const width = table2.range.end.col - table2.range.start.col + 1;
28799
28834
  if (patch2.columns.length !== width) throw new Error("Give one column per table column.");
28835
+ const before = table2.columns;
28800
28836
  table2.columns = structuredClone(patch2.columns);
28837
+ for (const [index2, column] of table2.columns.entries()) {
28838
+ const sourceId = before[index2]?.sourceId;
28839
+ if (column.sourceId === void 0 && sourceId !== void 0) column.sourceId = sourceId;
28840
+ }
28801
28841
  }
28802
28842
  if (patch2.headerRow !== void 0) setHeaderRow(workbook, sheet, id, patch2.headerRow);
28803
28843
  if (patch2.totalsRow !== void 0) setTotalsRow(workbook, sheet, id, patch2.totalsRow);
@@ -20120,6 +20120,8 @@ function parseTable(xml, partName) {
20120
20120
  const columns = xChildren(xFirst(root, "tableColumns") ?? root, "tableColumn").map(
20121
20121
  (node) => {
20122
20122
  const column = { name: att(node, "name") ?? "" };
20123
+ const id = numAttr(node, "id");
20124
+ if (id !== void 0 && Number.isInteger(id) && id >= 0) column.sourceId = id;
20123
20125
  const fn = att(node, "totalsRowFunction");
20124
20126
  if (fn && fn !== "none") column.totalsRowFunction = fn;
20125
20127
  const label2 = att(node, "totalsRowLabel");
@@ -23837,7 +23839,22 @@ function tableFilterRange(table2) {
23837
23839
  end: { ...table2.range.end, row: table2.range.end.row - (table2.totalsRow ? 1 : 0) }
23838
23840
  };
23839
23841
  }
23840
- function patchAutoFilter(doc, root, table2, before) {
23842
+ function sourceColumnsForPatch(root, table2, names) {
23843
+ const list = xKid(root, "tableColumns");
23844
+ const source2 = list ? xKids(list, "tableColumn") : [];
23845
+ const byId2 = new Map(source2.map((c2) => [Number(c2.getAttribute("id")), c2]));
23846
+ const byName = new Map(source2.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2]));
23847
+ const tracked = table2.partName !== void 0 || table2.columns.some((c2) => c2.sourceId !== void 0);
23848
+ const used = /* @__PURE__ */ new Set();
23849
+ return names.map((name, index2) => {
23850
+ const id = table2.columns[index2]?.sourceId;
23851
+ const match2 = id !== void 0 ? byId2.get(id) : tracked ? void 0 : source2.length === names.length ? source2[index2] : byName.get(name.toLowerCase());
23852
+ if (!match2 || used.has(match2)) return void 0;
23853
+ used.add(match2);
23854
+ return match2;
23855
+ });
23856
+ }
23857
+ function patchAutoFilter(doc, root, table2, before, names) {
23841
23858
  const existing = xKid(root, "autoFilter");
23842
23859
  if (!table2.headerRow) {
23843
23860
  if (existing) root.removeChild(existing);
@@ -23846,10 +23863,14 @@ function patchAutoFilter(doc, root, table2, before) {
23846
23863
  const filter2 = existing ?? doc.createElementNS(NS.x, "autoFilter");
23847
23864
  const range = tableFilterRange(table2);
23848
23865
  filter2.setAttribute("ref", formatRange(range));
23849
- const width = range.end.col - range.start.col + 1;
23866
+ const list = xKid(root, "tableColumns");
23867
+ const original = list ? xKids(list, "tableColumn") : [];
23868
+ const current = new Map(sourceColumnsForPatch(root, table2, names).map((c2, index2) => [c2, index2]));
23850
23869
  for (const column of xKids(filter2, "filterColumn")) {
23851
- const colId = Number(column.getAttribute("colId") ?? "0");
23852
- if (!(colId < width)) filter2.removeChild(column);
23870
+ const old = original[Number(column.getAttribute("colId") ?? "0")];
23871
+ const index2 = old ? current.get(old) : void 0;
23872
+ if (index2 === void 0) filter2.removeChild(column);
23873
+ else column.setAttribute("colId", num2(index2));
23853
23874
  }
23854
23875
  if (!existing) insertBefore(root, filter2, ["sortState", "tableColumns"]);
23855
23876
  const sort2 = xKid(filter2, "sortState") ?? xKid(root, "sortState");
@@ -23883,18 +23904,11 @@ function patchColumns(doc, root, sheet, table2, names) {
23883
23904
  insertBefore(root, list, ["tableStyleInfo", "extLst"]);
23884
23905
  }
23885
23906
  const sourceColumns = xKids(list, "tableColumn");
23886
- const byName = new Map(
23887
- sourceColumns.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2])
23888
- );
23889
- const sameCount = sourceColumns.length === names.length;
23890
- const used = /* @__PURE__ */ new Set();
23891
23907
  const ids = /* @__PURE__ */ new Set();
23892
- const picked = names.map((name, index2) => {
23893
- const match2 = sameCount ? sourceColumns[index2] : byName.get(name.toLowerCase());
23894
- if (!match2 || used.has(match2)) return void 0;
23895
- used.add(match2);
23908
+ const picked = sourceColumnsForPatch(root, table2, names).map((match2) => {
23909
+ if (!match2) return void 0;
23896
23910
  const id = Number(match2.getAttribute("id"));
23897
- if (Number.isInteger(id) && id > 0 && !ids.has(id)) ids.add(id);
23911
+ if (Number.isInteger(id) && id >= 0 && !ids.has(id)) ids.add(id);
23898
23912
  else match2.removeAttribute("id");
23899
23913
  return match2;
23900
23914
  });
@@ -23967,7 +23981,7 @@ function patchTableXml(sourceXml, sheet, table2, id, names) {
23967
23981
  root.removeAttribute("totalsRowCount");
23968
23982
  if (!root.hasAttribute("totalsRowShown")) root.setAttribute("totalsRowShown", "0");
23969
23983
  }
23970
- patchAutoFilter(doc, root, table2, before);
23984
+ patchAutoFilter(doc, root, table2, before, names);
23971
23985
  patchColumns(doc, root, sheet, table2, names);
23972
23986
  patchStyleInfo(doc, root, table2);
23973
23987
  return buildXml(doc);
@@ -25956,6 +25970,25 @@ function setBorders(ctx, s, range, preset, edge2 = { style: "thin" }) {
25956
25970
  );
25957
25971
  }
25958
25972
 
25973
+ // xlsx/edit/shift-rule-anchors.ts
25974
+ function rebaseRulesForDeletion(sheet, shift2, band) {
25975
+ if (shift2.count >= 0) return;
25976
+ const last = shift2.at - shift2.count - 1;
25977
+ 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);
25978
+ const other = shift2.axis === "row" ? "col" : "row";
25979
+ const surviving = (ranges) => ranges.flatMap(
25980
+ (range) => band && (range.start[other] < band.lo || range.end[other] > band.hi) ? [range] : subtractRange(range, removed)
25981
+ );
25982
+ sheet.conditionalFormats = sheet.conditionalFormats.map((format) => {
25983
+ const ranges = surviving(format.ranges);
25984
+ return ranges.length ? { ...rebaseConditionalFormat(format, ranges), ranges: format.ranges } : format;
25985
+ });
25986
+ sheet.dataValidations = sheet.dataValidations.map((rule) => {
25987
+ const ranges = surviving(rule.ranges);
25988
+ return ranges.length ? { ...rebaseValidation(rule, ranges), ranges: rule.ranges } : rule;
25989
+ });
25990
+ }
25991
+
25959
25992
  // xlsx/edit/shift-sheet.ts
25960
25993
  function shiftSheetContent(sheet, shift2, band) {
25961
25994
  const moveRange = (range) => band ? shiftRangeInBand(range, shift2, band.lo, band.hi) : shiftRange(range, shift2);
@@ -26099,6 +26132,7 @@ function checkSpan(axis, at, count2) {
26099
26132
  throw new RangeError(`Invalid ${axis} span ${at} + ${count2}`);
26100
26133
  }
26101
26134
  function applyAxisShift(ctx, sheet, shift2) {
26135
+ rebaseRulesForDeletion(sheet, shift2);
26102
26136
  const spec2 = { sheet: sheet.name, axis: shift2.axis, at: shift2.at, count: shift2.count };
26103
26137
  rewriteFormulas(
26104
26138
  ctx.workbook,
@@ -26178,6 +26212,7 @@ function shiftBand(ctx, s, range, direction) {
26178
26212
  "structure",
26179
26213
  [{ kind: "shift", sheet: s, shift: shift2, band }],
26180
26214
  () => {
26215
+ rebaseRulesForDeletion(sheet, shift2, band);
26181
26216
  rewriteFormulas(
26182
26217
  ctx.workbook,
26183
26218
  (formula, formulaSheet) => shiftFormulaInBand(formula, formulaSheet, sheet.name, shift2, band)
@@ -28791,7 +28826,12 @@ function updateTable(ctx, s, ref, patch2) {
28791
28826
  if (patch2.columns) {
28792
28827
  const width = table2.range.end.col - table2.range.start.col + 1;
28793
28828
  if (patch2.columns.length !== width) throw new Error("Give one column per table column.");
28829
+ const before = table2.columns;
28794
28830
  table2.columns = structuredClone(patch2.columns);
28831
+ for (const [index2, column] of table2.columns.entries()) {
28832
+ const sourceId = before[index2]?.sourceId;
28833
+ if (column.sourceId === void 0 && sourceId !== void 0) column.sourceId = sourceId;
28834
+ }
28795
28835
  }
28796
28836
  if (patch2.headerRow !== void 0) setHeaderRow(workbook, sheet, id, patch2.headerRow);
28797
28837
  if (patch2.totalsRow !== void 0) setTotalsRow(workbook, sheet, id, patch2.totalsRow);