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
@@ -947,6 +947,309 @@ function curvedElbowPathD(startX, startY, endX, endY, segments, adj1, adj2, adj3
947
947
  ].join(" ");
948
948
  }
949
949
 
950
+ // geometry/connector-router-types.ts
951
+ var PADDING_DEFAULT = 12;
952
+ var ROUTING_PADDING_DEFAULT = PADDING_DEFAULT;
953
+ var CANVAS_SENTINEL = 1e5;
954
+
955
+ // geometry/connector-router-graph.ts
956
+ function inflateRect(r, pad) {
957
+ return {
958
+ x: r.x - pad,
959
+ y: r.y - pad,
960
+ width: r.width + pad * 2,
961
+ height: r.height + pad * 2
962
+ };
963
+ }
964
+ function pointInRect(p, r) {
965
+ return p.x >= r.x && p.x <= r.x + r.width && p.y >= r.y && p.y <= r.y + r.height;
966
+ }
967
+ function segmentIntersectsRect(a, b, r) {
968
+ const minX = Math.min(a.x, b.x);
969
+ const maxX = Math.max(a.x, b.x);
970
+ const minY = Math.min(a.y, b.y);
971
+ const maxY = Math.max(a.y, b.y);
972
+ const rRight = r.x + r.width;
973
+ const rBottom = r.y + r.height;
974
+ if (maxX < r.x || minX > rRight || maxY < r.y || minY > rBottom) {
975
+ return false;
976
+ }
977
+ if (Math.abs(a.y - b.y) < 0.5) {
978
+ return a.y >= r.y && a.y <= rBottom && maxX >= r.x && minX <= rRight;
979
+ }
980
+ if (Math.abs(a.x - b.x) < 0.5) {
981
+ return a.x >= r.x && a.x <= rRight && maxY >= r.y && minY <= rBottom;
982
+ }
983
+ return true;
984
+ }
985
+ function directPathClear(start, end, inflated) {
986
+ for (const rect2 of inflated) {
987
+ if (segmentIntersectsRect(start, end, rect2)) {
988
+ return false;
989
+ }
990
+ }
991
+ return true;
992
+ }
993
+ function heuristic(a, b) {
994
+ return Math.abs(a.x - b.x) + Math.abs(a.y - b.y);
995
+ }
996
+ function pointKey(p) {
997
+ return `${Math.round(p.x)},${Math.round(p.y)}`;
998
+ }
999
+ function buildGraphNodes(start, end, inflated, canvasWidth, canvasHeight) {
1000
+ const margin = 4;
1001
+ const nodes = [start, end];
1002
+ for (const r of inflated) {
1003
+ const corners = [
1004
+ { x: r.x - margin, y: r.y - margin },
1005
+ { x: r.x + r.width + margin, y: r.y - margin },
1006
+ { x: r.x - margin, y: r.y + r.height + margin },
1007
+ { x: r.x + r.width + margin, y: r.y + r.height + margin }
1008
+ ];
1009
+ for (const c of corners) {
1010
+ if (c.x >= 0 && c.x <= canvasWidth && c.y >= 0 && c.y <= canvasHeight) {
1011
+ let blocked = false;
1012
+ for (const rect2 of inflated) {
1013
+ if (pointInRect(c, rect2)) {
1014
+ blocked = true;
1015
+ break;
1016
+ }
1017
+ }
1018
+ if (!blocked) {
1019
+ nodes.push(c);
1020
+ }
1021
+ }
1022
+ }
1023
+ }
1024
+ const projections = [];
1025
+ for (const node of nodes) {
1026
+ projections.push({ x: start.x, y: node.y });
1027
+ projections.push({ x: node.x, y: start.y });
1028
+ projections.push({ x: end.x, y: node.y });
1029
+ projections.push({ x: node.x, y: end.y });
1030
+ }
1031
+ for (const p of projections) {
1032
+ if (p.x >= 0 && p.x <= canvasWidth && p.y >= 0 && p.y <= canvasHeight) {
1033
+ let blocked = false;
1034
+ for (const rect2 of inflated) {
1035
+ if (pointInRect(p, rect2)) {
1036
+ blocked = true;
1037
+ break;
1038
+ }
1039
+ }
1040
+ if (!blocked) {
1041
+ nodes.push(p);
1042
+ }
1043
+ }
1044
+ }
1045
+ return nodes;
1046
+ }
1047
+
1048
+ // geometry/connector-router-astar.ts
1049
+ var MAX_ASTAR_ITERATIONS = 2e3;
1050
+ function aStarOrthogonal(nodes, start, end, inflated) {
1051
+ const startKey = pointKey(start);
1052
+ const endKey = pointKey(end);
1053
+ const canConnect = (a, b) => {
1054
+ const isHoriz = Math.abs(a.y - b.y) < 1;
1055
+ const isVert = Math.abs(a.x - b.x) < 1;
1056
+ if (isHoriz || isVert) {
1057
+ for (const rect2 of inflated) {
1058
+ if (segmentIntersectsRect(a, b, rect2)) {
1059
+ return false;
1060
+ }
1061
+ }
1062
+ return true;
1063
+ }
1064
+ const bend1 = { x: b.x, y: a.y };
1065
+ const bend2 = { x: a.x, y: b.y };
1066
+ let path1Clear = true;
1067
+ let path2Clear = true;
1068
+ for (const rect2 of inflated) {
1069
+ if (path1Clear && (segmentIntersectsRect(a, bend1, rect2) || segmentIntersectsRect(bend1, b, rect2))) {
1070
+ path1Clear = false;
1071
+ }
1072
+ if (path2Clear && (segmentIntersectsRect(a, bend2, rect2) || segmentIntersectsRect(bend2, b, rect2))) {
1073
+ path2Clear = false;
1074
+ }
1075
+ if (!path1Clear && !path2Clear) {
1076
+ break;
1077
+ }
1078
+ }
1079
+ return path1Clear || path2Clear;
1080
+ };
1081
+ const gScore = /* @__PURE__ */ new Map();
1082
+ const fScore = /* @__PURE__ */ new Map();
1083
+ const cameFrom = /* @__PURE__ */ new Map();
1084
+ const bendPoint = /* @__PURE__ */ new Map();
1085
+ gScore.set(startKey, 0);
1086
+ fScore.set(startKey, heuristic(start, end));
1087
+ const openSet = /* @__PURE__ */ new Set([startKey]);
1088
+ const nodeMap = /* @__PURE__ */ new Map();
1089
+ for (const n of nodes) {
1090
+ nodeMap.set(pointKey(n), n);
1091
+ }
1092
+ const getLowest = () => {
1093
+ let best;
1094
+ let bestScore = Infinity;
1095
+ for (const key of openSet) {
1096
+ const score = fScore.get(key) ?? Infinity;
1097
+ if (score < bestScore) {
1098
+ bestScore = score;
1099
+ best = key;
1100
+ }
1101
+ }
1102
+ return best;
1103
+ };
1104
+ let iterations = 0;
1105
+ while (openSet.size > 0 && iterations < MAX_ASTAR_ITERATIONS) {
1106
+ iterations++;
1107
+ const currentKey = getLowest();
1108
+ if (currentKey === void 0) {
1109
+ break;
1110
+ }
1111
+ if (currentKey === endKey) {
1112
+ const path = [];
1113
+ let key = endKey;
1114
+ while (key !== void 0) {
1115
+ const node = nodeMap.get(key);
1116
+ if (node !== void 0) {
1117
+ const bp = bendPoint.get(key);
1118
+ if (bp !== void 0 && bp !== null) {
1119
+ path.unshift(node);
1120
+ path.unshift(bp);
1121
+ } else {
1122
+ path.unshift(node);
1123
+ }
1124
+ }
1125
+ key = cameFrom.get(key);
1126
+ }
1127
+ return path;
1128
+ }
1129
+ openSet.delete(currentKey);
1130
+ const current = nodeMap.get(currentKey);
1131
+ if (current === void 0) {
1132
+ continue;
1133
+ }
1134
+ for (const neighbor of nodes) {
1135
+ const neighborKey = pointKey(neighbor);
1136
+ if (neighborKey === currentKey) {
1137
+ continue;
1138
+ }
1139
+ if (!canConnect(current, neighbor)) {
1140
+ continue;
1141
+ }
1142
+ const isHoriz = Math.abs(current.y - neighbor.y) < 1;
1143
+ const isVert = Math.abs(current.x - neighbor.x) < 1;
1144
+ let dist;
1145
+ let bp = null;
1146
+ if (isHoriz || isVert) {
1147
+ dist = heuristic(current, neighbor);
1148
+ } else {
1149
+ const bend1 = { x: neighbor.x, y: current.y };
1150
+ const bend2 = { x: current.x, y: neighbor.y };
1151
+ let use1 = true;
1152
+ for (const rect2 of inflated) {
1153
+ if (segmentIntersectsRect(current, bend1, rect2) || segmentIntersectsRect(bend1, neighbor, rect2)) {
1154
+ use1 = false;
1155
+ break;
1156
+ }
1157
+ }
1158
+ bp = use1 ? bend1 : bend2;
1159
+ dist = Math.abs(current.x - bp.x) + Math.abs(current.y - bp.y) + Math.abs(bp.x - neighbor.x) + Math.abs(bp.y - neighbor.y);
1160
+ }
1161
+ const tentativeG = (gScore.get(currentKey) ?? Infinity) + dist;
1162
+ if (tentativeG < (gScore.get(neighborKey) ?? Infinity)) {
1163
+ cameFrom.set(neighborKey, currentKey);
1164
+ bendPoint.set(neighborKey, bp);
1165
+ gScore.set(neighborKey, tentativeG);
1166
+ fScore.set(neighborKey, tentativeG + heuristic(neighbor, end));
1167
+ openSet.add(neighborKey);
1168
+ }
1169
+ }
1170
+ }
1171
+ return [start, end];
1172
+ }
1173
+ function simplifyPath(points) {
1174
+ if (points.length <= 2) {
1175
+ return [...points];
1176
+ }
1177
+ const result = [points[0]];
1178
+ for (let i = 1; i < points.length - 1; i++) {
1179
+ const prev = result[result.length - 1];
1180
+ const curr = points[i];
1181
+ const next = points[i + 1];
1182
+ const sameX = Math.abs(prev.x - curr.x) < 1 && Math.abs(curr.x - next.x) < 1;
1183
+ const sameY = Math.abs(prev.y - curr.y) < 1 && Math.abs(curr.y - next.y) < 1;
1184
+ if (!sameX && !sameY) {
1185
+ result.push(curr);
1186
+ } else if (!sameX || !sameY) {
1187
+ if (!(sameX || sameY)) {
1188
+ result.push(curr);
1189
+ }
1190
+ }
1191
+ }
1192
+ result.push(points[points.length - 1]);
1193
+ return result;
1194
+ }
1195
+
1196
+ // geometry/connector-router.ts
1197
+ function routeCore(start, end, obstacles, padding, canvasWidth, canvasHeight) {
1198
+ if (obstacles.length === 0) {
1199
+ return [start, end];
1200
+ }
1201
+ const inflated = obstacles.map((r) => inflateRect(r, padding));
1202
+ if (directPathClear(start, end, inflated)) {
1203
+ return [start, end];
1204
+ }
1205
+ const midH = { x: end.x, y: start.y };
1206
+ const midV = { x: start.x, y: end.y };
1207
+ let elbowHClear = true;
1208
+ let elbowVClear = true;
1209
+ for (const rect2 of inflated) {
1210
+ if (elbowHClear && (segmentIntersectsRect(start, midH, rect2) || segmentIntersectsRect(midH, end, rect2))) {
1211
+ elbowHClear = false;
1212
+ }
1213
+ if (elbowVClear && (segmentIntersectsRect(start, midV, rect2) || segmentIntersectsRect(midV, end, rect2))) {
1214
+ elbowVClear = false;
1215
+ }
1216
+ if (!elbowHClear && !elbowVClear) {
1217
+ break;
1218
+ }
1219
+ }
1220
+ if (elbowHClear) {
1221
+ return [start, midH, end];
1222
+ }
1223
+ if (elbowVClear) {
1224
+ return [start, midV, end];
1225
+ }
1226
+ const nodes = buildGraphNodes(start, end, inflated, canvasWidth, canvasHeight);
1227
+ const path = aStarOrthogonal(nodes, start, end, inflated);
1228
+ return simplifyPath(path);
1229
+ }
1230
+ function routeConnector(options) {
1231
+ const { start, end, obstacles, canvasWidth, canvasHeight, padding = PADDING_DEFAULT } = options;
1232
+ return routeCore(start, end, obstacles, padding, canvasWidth, canvasHeight);
1233
+ }
1234
+ function waypointsToPathData(waypoints) {
1235
+ if (waypoints.length === 0) {
1236
+ return "";
1237
+ }
1238
+ return waypoints.map((point, index) => `${index === 0 ? "M" : "L"} ${point.x} ${point.y}`).join(" ");
1239
+ }
1240
+ function routeOrthogonalConnector(start, end, obstacles, opts) {
1241
+ const padding = opts?.padding ?? PADDING_DEFAULT;
1242
+ const canvasWidth = opts?.canvasWidth ?? CANVAS_SENTINEL;
1243
+ const canvasHeight = opts?.canvasHeight ?? CANVAS_SENTINEL;
1244
+ return routeCore(start, end, obstacles, padding, canvasWidth, canvasHeight);
1245
+ }
1246
+ function waypointsToPathD(waypoints) {
1247
+ if (waypoints.length === 0) {
1248
+ return "";
1249
+ }
1250
+ return waypoints.map((point, index) => `${index === 0 ? "M" : "L"}${point.x},${point.y}`).join(" ");
1251
+ }
1252
+
950
1253
  // geometry/guide-formula-eval.ts
951
1254
  var ANGLE_SCALE = 6e4;
952
1255
  function angleToRadians(ooxmlAngle) {
@@ -15930,6 +16233,7 @@ exports.BRACE_CONNECTION_SITES = BRACE_CONNECTION_SITES;
15930
16233
  exports.BRACE_TEXT_RECTS = BRACE_TEXT_RECTS;
15931
16234
  exports.CALLOUT_CONNECTION_SITES = CALLOUT_CONNECTION_SITES;
15932
16235
  exports.CALLOUT_TEXT_RECTS = CALLOUT_TEXT_RECTS;
16236
+ exports.CANVAS_SENTINEL = CANVAS_SENTINEL;
15933
16237
  exports.CARDINAL_SITES = CARDINAL_SITES;
15934
16238
  exports.CHART_MARK_PRESET_DEFINITIONS = CHART_MARK_PRESET_DEFINITIONS;
15935
16239
  exports.CIRCULAR_ARROW_CONNECTION_SITES = CIRCULAR_ARROW_CONNECTION_SITES;
@@ -15960,6 +16264,7 @@ exports.MISC_PRESET_DEFINITIONS = MISC_PRESET_DEFINITIONS;
15960
16264
  exports.MISC_SHAPE_CONNECTION_SITES = MISC_SHAPE_CONNECTION_SITES;
15961
16265
  exports.MISC_TEXT_RECTS_A = MISC_TEXT_RECTS_A;
15962
16266
  exports.MISC_TEXT_RECTS_B = MISC_TEXT_RECTS_B;
16267
+ exports.PADDING_DEFAULT = PADDING_DEFAULT;
15963
16268
  exports.POLYGON_CONNECTION_SITES = POLYGON_CONNECTION_SITES;
15964
16269
  exports.POLYGON_TEXT_RECTS = POLYGON_TEXT_RECTS;
15965
16270
  exports.PRESET_GEOMETRY_ALIASES = PRESET_GEOMETRY_ALIASES;
@@ -15975,6 +16280,7 @@ exports.RECT_VARIANT_CONNECTION_SITES = RECT_VARIANT_CONNECTION_SITES;
15975
16280
  exports.REFINED_ARROW_PRESET_DEFINITIONS = REFINED_ARROW_PRESET_DEFINITIONS;
15976
16281
  exports.RIBBON_CONNECTION_SITES = RIBBON_CONNECTION_SITES;
15977
16282
  exports.RIBBON_TEXT_RECTS = RIBBON_TEXT_RECTS;
16283
+ exports.ROUTING_PADDING_DEFAULT = ROUTING_PADDING_DEFAULT;
15978
16284
  exports.SCROLLS_ACCENT_CALLOUTS_PRESET_DEFINITIONS = SCROLLS_ACCENT_CALLOUTS_PRESET_DEFINITIONS;
15979
16285
  exports.SNAP_THRESHOLD = SNAP_THRESHOLD;
15980
16286
  exports.STAR_CONNECTION_SITES = STAR_CONNECTION_SITES;
@@ -15984,12 +16290,14 @@ exports.TABS_DECORATIONS_PRESET_DEFINITIONS = TABS_DECORATIONS_PRESET_DEFINITION
15984
16290
  exports.TAB_CONNECTION_SITES = TAB_CONNECTION_SITES;
15985
16291
  exports.TAB_TEXT_RECTS = TAB_TEXT_RECTS;
15986
16292
  exports._internalForTests = _internalForTests;
16293
+ exports.aStarOrthogonal = aStarOrthogonal;
15987
16294
  exports.alignElements = alignElements;
15988
16295
  exports.angleToRadians = angleToRadians;
15989
16296
  exports.arrowKeyDelta = arrowKeyDelta;
15990
16297
  exports.at = at;
15991
16298
  exports.autoAlignBoxes = autoAlignBoxes;
15992
16299
  exports.buildCalloutLeaderLineSvgPath = buildCalloutLeaderLineSvgPath;
16300
+ exports.buildGraphNodes = buildGraphNodes;
15993
16301
  exports.clipPolygons = clipPolygons;
15994
16302
  exports.combineShapes = combineShapes;
15995
16303
  exports.composeAffine = composeAffine;
@@ -16006,6 +16314,7 @@ exports.cross2 = cross2;
16006
16314
  exports.curvedElbowPathD = curvedElbowPathD;
16007
16315
  exports.cxn = cxn;
16008
16316
  exports.dedupPoly = dedupPoly;
16317
+ exports.directPathClear = directPathClear;
16009
16318
  exports.distributeElements = distributeElements;
16010
16319
  exports.elbowCurveSegments = elbowCurveSegments;
16011
16320
  exports.elbowSegmentCount = elbowSegmentCount;
@@ -16030,6 +16339,8 @@ exports.getCloudClipPath = getCloudClipPath;
16030
16339
  exports.getPresetConnectionSites = getPresetConnectionSites;
16031
16340
  exports.getPresetShapeClipPath = getPresetShapeClipPath;
16032
16341
  exports.getPresetTextRect = getPresetTextRect;
16342
+ exports.heuristic = heuristic;
16343
+ exports.inflateRect = inflateRect;
16033
16344
  exports.insertIntersections = insertIntersections;
16034
16345
  exports.intersectPolygons = intersectPolygons;
16035
16346
  exports.intersectShapes = intersectShapes;
@@ -16049,15 +16360,21 @@ exports.parseAdjustmentValues = parseAdjustmentValues;
16049
16360
  exports.parseFormula = parseFormula;
16050
16361
  exports.parseGuideDefinitions = parseGuideDefinitions;
16051
16362
  exports.pointInPolygon = pointInPolygon;
16363
+ exports.pointInRect = pointInRect;
16052
16364
  exports.pointInTriangle = pointInTriangle;
16365
+ exports.pointKey = pointKey;
16053
16366
  exports.polygonArea = polygonArea;
16054
16367
  exports.polygonsToSvgPath = polygonsToSvgPath;
16055
16368
  exports.resolveAlignReferenceBox = resolveAlignReferenceBox;
16056
16369
  exports.resolveCoordinate = resolveCoordinate;
16057
16370
  exports.resolveOperand = resolveOperand;
16058
16371
  exports.resolveRotateHandlePlacement = resolveRotateHandlePlacement;
16372
+ exports.routeConnector = routeConnector;
16373
+ exports.routeOrthogonalConnector = routeOrthogonalConnector;
16059
16374
  exports.segmentIntersection = segmentIntersection;
16375
+ exports.segmentIntersectsRect = segmentIntersectsRect;
16060
16376
  exports.signedArea = signedArea;
16377
+ exports.simplifyPath = simplifyPath;
16061
16378
  exports.snapAngle = snapAngle;
16062
16379
  exports.snapBox = snapBox;
16063
16380
  exports.snapToGridStep = snapToGridStep;
@@ -16073,3 +16390,5 @@ exports.unionShapes = unionShapes;
16073
16390
  exports.unionSvgPaths = unionSvgPaths;
16074
16391
  exports.usesSlideReference = usesSlideReference;
16075
16392
  exports.vec2Eq = vec2Eq;
16393
+ exports.waypointsToPathD = waypointsToPathD;
16394
+ exports.waypointsToPathData = waypointsToPathData;
@@ -4,6 +4,7 @@ export * from './callout-geometry.js';
4
4
  export * from './cloud-bezier-paths.js';
5
5
  export * from './com-avlst-ground-truth.js';
6
6
  export * from './connector-elbow-geometry.js';
7
+ export * from './connector-router.js';
7
8
  export * from './guide-formula-api.js';
8
9
  export * from './guide-formula-eval.js';
9
10
  export * from './preset-clip-paths-core.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../geometry/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oDAAoD,CAAC;AACnE,cAAc,kCAAkC,CAAC;AACjD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AAEnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}