@eclipse-glsp/client 2.2.0-next.328 → 2.2.0-next.330

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 (400) hide show
  1. package/css/change-bounds.css +15 -0
  2. package/css/glsp-sprotty.css +17 -0
  3. package/lib/base/action-dispatcher.js.map +1 -1
  4. package/lib/base/action-handler-registry.js.map +1 -1
  5. package/lib/base/args-feature.js.map +1 -1
  6. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  7. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  8. package/lib/base/command-stack.js.map +1 -1
  9. package/lib/base/drag-aware-mouse-listener.d.ts +5 -2
  10. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  11. package/lib/base/drag-aware-mouse-listener.js +11 -0
  12. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  13. package/lib/base/editor-context-service.js.map +1 -1
  14. package/lib/base/feedback/css-feedback.d.ts +4 -0
  15. package/lib/base/feedback/css-feedback.d.ts.map +1 -1
  16. package/lib/base/feedback/css-feedback.js +4 -0
  17. package/lib/base/feedback/css-feedback.js.map +1 -1
  18. package/lib/base/feedback/feeback-emitter.d.ts +67 -0
  19. package/lib/base/feedback/feeback-emitter.d.ts.map +1 -0
  20. package/lib/base/feedback/feeback-emitter.js +109 -0
  21. package/lib/base/feedback/feeback-emitter.js.map +1 -0
  22. package/lib/base/feedback/feedback-action-dispatcher.d.ts +17 -5
  23. package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -1
  24. package/lib/base/feedback/feedback-action-dispatcher.js +23 -3
  25. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -1
  26. package/lib/base/feedback/index.d.ts +1 -0
  27. package/lib/base/feedback/index.d.ts.map +1 -1
  28. package/lib/base/feedback/index.js +1 -0
  29. package/lib/base/feedback/index.js.map +1 -1
  30. package/lib/base/focus/focus-tracker.js.map +1 -1
  31. package/lib/base/model/diagram-loader.js.map +1 -1
  32. package/lib/base/model/glsp-model-source.js.map +1 -1
  33. package/lib/base/model/model-initialization-constraint.js.map +1 -1
  34. package/lib/base/model/model-registry.js.map +1 -1
  35. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  36. package/lib/base/selection-service.d.ts +3 -2
  37. package/lib/base/selection-service.d.ts.map +1 -1
  38. package/lib/base/selection-service.js.map +1 -1
  39. package/lib/base/tool-manager/index.d.ts +2 -2
  40. package/lib/base/tool-manager/index.d.ts.map +1 -1
  41. package/lib/base/tool-manager/index.js +2 -2
  42. package/lib/base/tool-manager/index.js.map +1 -1
  43. package/lib/base/tool-manager/tool-manager.js.map +1 -1
  44. package/lib/base/view/mouse-tool.js.map +1 -1
  45. package/lib/base/view/view-registry.js.map +1 -1
  46. package/lib/default-modules.d.ts +1 -1
  47. package/lib/default-modules.js +1 -1
  48. package/lib/default-modules.js.map +1 -1
  49. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-palette.js.map +1 -1
  50. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-tool.js.map +1 -1
  51. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js.map +1 -1
  52. package/lib/features/accessibility/element-navigation/left-right-top-bottom-navigator.js.map +1 -1
  53. package/lib/features/accessibility/element-navigation/local-element-navigator.d.ts +3 -3
  54. package/lib/features/accessibility/element-navigation/local-element-navigator.d.ts.map +1 -1
  55. package/lib/features/accessibility/element-navigation/local-element-navigator.js.map +1 -1
  56. package/lib/features/accessibility/element-navigation/position-navigator.js.map +1 -1
  57. package/lib/features/accessibility/focus-tracker/focus-tracker-tool.js.map +1 -1
  58. package/lib/features/accessibility/global-keylistener-tool.js.map +1 -1
  59. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut-tool.js.map +1 -1
  60. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.js.map +1 -1
  61. package/lib/features/accessibility/key-shortcut/index.d.ts +2 -2
  62. package/lib/features/accessibility/key-shortcut/index.d.ts.map +1 -1
  63. package/lib/features/accessibility/key-shortcut/index.js +2 -2
  64. package/lib/features/accessibility/key-shortcut/index.js.map +1 -1
  65. package/lib/features/accessibility/keyboard-grid/index.d.ts +2 -2
  66. package/lib/features/accessibility/keyboard-grid/index.d.ts.map +1 -1
  67. package/lib/features/accessibility/keyboard-grid/index.js +2 -2
  68. package/lib/features/accessibility/keyboard-grid/index.js.map +1 -1
  69. package/lib/features/accessibility/keyboard-grid/keyboard-grid.js.map +1 -1
  70. package/lib/features/accessibility/keyboard-grid/keyboard-node-grid.js.map +1 -1
  71. package/lib/features/accessibility/keyboard-pointer/index.d.ts +2 -2
  72. package/lib/features/accessibility/keyboard-pointer/index.d.ts.map +1 -1
  73. package/lib/features/accessibility/keyboard-pointer/index.js +2 -2
  74. package/lib/features/accessibility/keyboard-pointer/index.js.map +1 -1
  75. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.d.ts +1 -1
  76. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.d.ts.map +1 -1
  77. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.js +1 -1
  78. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.js.map +1 -1
  79. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer.js.map +1 -1
  80. package/lib/features/accessibility/keyboard-tool-palette/index.d.ts +2 -2
  81. package/lib/features/accessibility/keyboard-tool-palette/index.d.ts.map +1 -1
  82. package/lib/features/accessibility/keyboard-tool-palette/index.js +2 -2
  83. package/lib/features/accessibility/keyboard-tool-palette/index.js.map +1 -1
  84. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.js.map +1 -1
  85. package/lib/features/accessibility/move-zoom/move-handler.d.ts +4 -2
  86. package/lib/features/accessibility/move-zoom/move-handler.d.ts.map +1 -1
  87. package/lib/features/accessibility/move-zoom/move-handler.js +10 -4
  88. package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -1
  89. package/lib/features/accessibility/move-zoom/zoom-handler.js.map +1 -1
  90. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts +4 -2
  91. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts.map +1 -1
  92. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +11 -3
  93. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -1
  94. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -1
  95. package/lib/features/accessibility/search/index.d.ts +2 -2
  96. package/lib/features/accessibility/search/index.d.ts.map +1 -1
  97. package/lib/features/accessibility/search/index.js +2 -2
  98. package/lib/features/accessibility/search/index.js.map +1 -1
  99. package/lib/features/accessibility/search/search-palette.js.map +1 -1
  100. package/lib/features/accessibility/search/search-tool.js.map +1 -1
  101. package/lib/features/accessibility/toast/toast-tool.js.map +1 -1
  102. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js.map +1 -1
  103. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -1
  104. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -1
  105. package/lib/features/bounds/freeform-layout.js.map +1 -1
  106. package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
  107. package/lib/features/bounds/hbox-layout.js.map +1 -1
  108. package/lib/features/bounds/layouter.js.map +1 -1
  109. package/lib/features/bounds/local-bounds.js.map +1 -1
  110. package/lib/features/bounds/set-bounds-feedback-command.js.map +1 -1
  111. package/lib/features/bounds/vbox-layout.js.map +1 -1
  112. package/lib/features/change-bounds/model.d.ts +8 -8
  113. package/lib/features/change-bounds/model.d.ts.map +1 -1
  114. package/lib/features/change-bounds/model.js +17 -5
  115. package/lib/features/change-bounds/model.js.map +1 -1
  116. package/lib/features/change-bounds/movement-restrictor.d.ts +3 -2
  117. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  118. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  119. package/lib/features/change-bounds/point-position-updater.js.map +1 -1
  120. package/lib/features/change-bounds/position-snapper.js.map +1 -1
  121. package/lib/features/command-palette/command-palette-module.d.ts +1 -1
  122. package/lib/features/command-palette/command-palette-module.js +1 -1
  123. package/lib/features/command-palette/command-palette.js.map +1 -1
  124. package/lib/features/command-palette/index.d.ts +1 -1
  125. package/lib/features/command-palette/index.js +1 -1
  126. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  127. package/lib/features/context-menu/context-menu-module.js.map +1 -1
  128. package/lib/features/context-menu/glsp-context-menu-mouse-listener.js.map +1 -1
  129. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  130. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  131. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  132. package/lib/features/copy-paste/copy-paste-standalone.js.map +1 -1
  133. package/lib/features/decoration/decoration-placer.js.map +1 -1
  134. package/lib/features/element-template/add-template-element.js.map +1 -1
  135. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts +15 -5
  136. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts.map +1 -1
  137. package/lib/features/element-template/mouse-tracking-element-position-listener.js +27 -38
  138. package/lib/features/element-template/mouse-tracking-element-position-listener.js.map +1 -1
  139. package/lib/features/element-template/remove-template-element.js.map +1 -1
  140. package/lib/features/export/glsp-svg-exporter.js.map +1 -1
  141. package/lib/features/helper-lines/helper-line-feedback.js.map +1 -1
  142. package/lib/features/helper-lines/helper-line-manager-default.d.ts +4 -2
  143. package/lib/features/helper-lines/helper-line-manager-default.d.ts.map +1 -1
  144. package/lib/features/helper-lines/helper-line-manager-default.js +8 -12
  145. package/lib/features/helper-lines/helper-line-manager-default.js.map +1 -1
  146. package/lib/features/helper-lines/index.d.ts +2 -2
  147. package/lib/features/helper-lines/index.d.ts.map +1 -1
  148. package/lib/features/helper-lines/index.js +2 -2
  149. package/lib/features/helper-lines/index.js.map +1 -1
  150. package/lib/features/helper-lines/model.js.map +1 -1
  151. package/lib/features/helper-lines/view.js.map +1 -1
  152. package/lib/features/hints/type-hint-provider.d.ts +3 -0
  153. package/lib/features/hints/type-hint-provider.d.ts.map +1 -1
  154. package/lib/features/hints/type-hint-provider.js +10 -1
  155. package/lib/features/hints/type-hint-provider.js.map +1 -1
  156. package/lib/features/hover/hover.js.map +1 -1
  157. package/lib/features/hover/index.d.ts +2 -2
  158. package/lib/features/hover/index.d.ts.map +1 -1
  159. package/lib/features/hover/index.js +2 -2
  160. package/lib/features/hover/index.js.map +1 -1
  161. package/lib/features/index.d.ts +2 -1
  162. package/lib/features/index.d.ts.map +1 -1
  163. package/lib/features/index.js +2 -1
  164. package/lib/features/index.js.map +1 -1
  165. package/lib/features/label-edit/edit-label-validator.js.map +1 -1
  166. package/lib/features/label-edit-ui/label-edit-ui.js.map +1 -1
  167. package/lib/features/layout/layout-elements-action.js.map +1 -1
  168. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  169. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  170. package/lib/features/reconnect/model.js.map +1 -1
  171. package/lib/features/routing/glsp-manhattan-edge-router.js.map +1 -1
  172. package/lib/features/save/save-keylistener.js.map +1 -1
  173. package/lib/features/select/select-mouse-listener.d.ts +4 -3
  174. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  175. package/lib/features/select/select-mouse-listener.js.map +1 -1
  176. package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
  177. package/lib/features/status/status-overlay.js.map +1 -1
  178. package/lib/features/svg-metadata/metadata-placer.js.map +1 -1
  179. package/lib/features/tool-palette/index.d.ts +2 -2
  180. package/lib/features/tool-palette/index.d.ts.map +1 -1
  181. package/lib/features/tool-palette/index.js +2 -2
  182. package/lib/features/tool-palette/index.js.map +1 -1
  183. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  184. package/lib/features/tools/base-tools.d.ts +23 -4
  185. package/lib/features/tools/base-tools.d.ts.map +1 -1
  186. package/lib/features/tools/base-tools.js +11 -6
  187. package/lib/features/tools/base-tools.js.map +1 -1
  188. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts +1 -35
  189. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts.map +1 -1
  190. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js +5 -206
  191. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -1
  192. package/lib/features/tools/change-bounds/change-bounds-tool-module.d.ts +1 -0
  193. package/lib/features/tools/change-bounds/change-bounds-tool-module.d.ts.map +1 -1
  194. package/lib/features/tools/change-bounds/change-bounds-tool-module.js +1 -0
  195. package/lib/features/tools/change-bounds/change-bounds-tool-module.js.map +1 -1
  196. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.d.ts +67 -0
  197. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.d.ts.map +1 -0
  198. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.js +227 -0
  199. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.js.map +1 -0
  200. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts +34 -24
  201. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -1
  202. package/lib/features/tools/change-bounds/change-bounds-tool.js +172 -180
  203. package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -1
  204. package/lib/features/tools/change-bounds/index.d.ts +3 -2
  205. package/lib/features/tools/change-bounds/index.d.ts.map +1 -1
  206. package/lib/features/tools/change-bounds/index.js +3 -2
  207. package/lib/features/tools/change-bounds/index.js.map +1 -1
  208. package/lib/features/tools/change-bounds/view.d.ts +1 -1
  209. package/lib/features/tools/change-bounds/view.d.ts.map +1 -1
  210. package/lib/features/tools/change-bounds/view.js +3 -0
  211. package/lib/features/tools/change-bounds/view.js.map +1 -1
  212. package/lib/features/tools/deletion/delete-tool.d.ts +16 -1
  213. package/lib/features/tools/deletion/delete-tool.d.ts.map +1 -1
  214. package/lib/features/tools/deletion/delete-tool.js +5 -2
  215. package/lib/features/tools/deletion/delete-tool.js.map +1 -1
  216. package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts +17 -1
  217. package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts.map +1 -1
  218. package/lib/features/tools/edge-creation/dangling-edge-feedback.js +3 -1
  219. package/lib/features/tools/edge-creation/dangling-edge-feedback.js.map +1 -1
  220. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts +4 -2
  221. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts.map +1 -1
  222. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js +5 -8
  223. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js.map +1 -1
  224. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts +20 -2
  225. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -1
  226. package/lib/features/tools/edge-creation/edge-creation-tool.js +23 -18
  227. package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -1
  228. package/lib/features/tools/edge-creation/index.d.ts +2 -2
  229. package/lib/features/tools/edge-creation/index.d.ts.map +1 -1
  230. package/lib/features/tools/edge-creation/index.js +2 -2
  231. package/lib/features/tools/edge-creation/index.js.map +1 -1
  232. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts +3 -1
  233. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts.map +1 -1
  234. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js +5 -8
  235. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js.map +1 -1
  236. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts +4 -4
  237. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts.map +1 -1
  238. package/lib/features/tools/edge-edit/edge-edit-tool.js +27 -44
  239. package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -1
  240. package/lib/features/tools/edge-edit/index.d.ts +2 -2
  241. package/lib/features/tools/edge-edit/index.d.ts.map +1 -1
  242. package/lib/features/tools/edge-edit/index.js +2 -2
  243. package/lib/features/tools/edge-edit/index.js.map +1 -1
  244. package/lib/features/tools/marquee-selection/index.d.ts +2 -2
  245. package/lib/features/tools/marquee-selection/index.d.ts.map +1 -1
  246. package/lib/features/tools/marquee-selection/index.js +2 -2
  247. package/lib/features/tools/marquee-selection/index.js.map +1 -1
  248. package/lib/features/tools/marquee-selection/marquee-behavior.js.map +1 -1
  249. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts +3 -2
  250. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -1
  251. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js +4 -2
  252. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -1
  253. package/lib/features/tools/marquee-selection/marquee-tool-feedback.js.map +1 -1
  254. package/lib/features/tools/marquee-selection/marquee-tool.js.map +1 -1
  255. package/lib/features/tools/node-creation/node-creation-tool.d.ts +14 -5
  256. package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -1
  257. package/lib/features/tools/node-creation/node-creation-tool.js +58 -24
  258. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -1
  259. package/lib/features/tools/tool-focus-loss-module.js.map +1 -1
  260. package/lib/features/undo-redo/undo-redo-key-listener.js.map +1 -1
  261. package/lib/features/validation/issue-marker.js.map +1 -1
  262. package/lib/features/validation/marker-navigator.d.ts +7 -6
  263. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  264. package/lib/features/validation/marker-navigator.js.map +1 -1
  265. package/lib/features/validation/validate.d.ts +2 -5
  266. package/lib/features/validation/validate.d.ts.map +1 -1
  267. package/lib/features/validation/validate.js +4 -16
  268. package/lib/features/validation/validate.js.map +1 -1
  269. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  270. package/lib/features/viewport/reposition.js.map +1 -1
  271. package/lib/features/viewport/viewport-handler.js.map +1 -1
  272. package/lib/model.js.map +1 -1
  273. package/lib/standalone-modules.js.map +1 -1
  274. package/lib/utils/argument-utils.js.map +1 -1
  275. package/lib/utils/geometry-util.d.ts +1 -1
  276. package/lib/utils/geometry-util.d.ts.map +1 -1
  277. package/lib/utils/gmodel-util.d.ts +27 -2
  278. package/lib/utils/gmodel-util.d.ts.map +1 -1
  279. package/lib/utils/gmodel-util.js +30 -1
  280. package/lib/utils/gmodel-util.js.map +1 -1
  281. package/lib/utils/html-utils.js.map +1 -1
  282. package/lib/utils/layout-utils.d.ts +8 -7
  283. package/lib/utils/layout-utils.d.ts.map +1 -1
  284. package/lib/utils/layout-utils.js +2 -4
  285. package/lib/utils/layout-utils.js.map +1 -1
  286. package/lib/utils/marker.js.map +1 -1
  287. package/lib/utils/viewpoint-util.d.ts +4 -4
  288. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  289. package/lib/utils/viewpoint-util.js.map +1 -1
  290. package/lib/views/compartments.js.map +1 -1
  291. package/lib/views/gedge-view.js.map +1 -1
  292. package/lib/views/glsp-projection-view.js.map +1 -1
  293. package/lib/views/index.d.ts +2 -2
  294. package/lib/views/index.d.ts.map +1 -1
  295. package/lib/views/index.js +2 -2
  296. package/lib/views/index.js.map +1 -1
  297. package/lib/views/issue-marker-view.js.map +1 -1
  298. package/lib/views/rounded-corner-view.js.map +1 -1
  299. package/lib/views/rounded-corner.d.ts +1 -1
  300. package/lib/views/rounded-corner.d.ts.map +1 -1
  301. package/lib/views/rounded-corner.js.map +1 -1
  302. package/package.json +3 -3
  303. package/src/base/drag-aware-mouse-listener.ts +16 -2
  304. package/src/base/feedback/css-feedback.ts +4 -0
  305. package/src/base/feedback/feeback-emitter.ts +112 -0
  306. package/src/base/feedback/feedback-action-dispatcher.ts +41 -6
  307. package/src/base/feedback/index.ts +1 -0
  308. package/src/base/selection-service.spec.ts +5 -0
  309. package/src/base/selection-service.ts +2 -3
  310. package/src/features/accessibility/element-navigation/local-element-navigator.ts +4 -4
  311. package/src/features/accessibility/move-zoom/move-handler.ts +11 -6
  312. package/src/features/accessibility/resize-key-tool/resize-key-handler.ts +11 -7
  313. package/src/features/change-bounds/model.ts +25 -13
  314. package/src/features/change-bounds/movement-restrictor.ts +6 -22
  315. package/src/features/element-template/mouse-tracking-element-position-listener.ts +55 -45
  316. package/src/features/helper-lines/helper-line-feedback.ts +50 -57
  317. package/src/features/helper-lines/helper-line-manager-default.ts +12 -21
  318. package/src/features/helper-lines/model.ts +6 -25
  319. package/src/features/hints/type-hint-provider.spec.ts +4 -1
  320. package/src/features/hints/type-hint-provider.ts +9 -2
  321. package/src/features/layout/layout-elements-action.ts +10 -7
  322. package/src/features/select/select-mouse-listener.ts +4 -3
  323. package/src/features/tools/base-tools.ts +15 -8
  324. package/src/features/tools/change-bounds/change-bounds-tool-feedback.ts +6 -232
  325. package/src/features/tools/change-bounds/change-bounds-tool-module.ts +1 -0
  326. package/src/features/tools/change-bounds/change-bounds-tool-move-feedback.ts +254 -0
  327. package/src/features/tools/change-bounds/change-bounds-tool.ts +217 -226
  328. package/src/features/tools/change-bounds/index.ts +1 -0
  329. package/src/features/tools/change-bounds/view.tsx +4 -1
  330. package/src/features/tools/deletion/delete-tool.ts +6 -6
  331. package/src/features/tools/edge-creation/dangling-edge-feedback.ts +7 -4
  332. package/src/features/tools/edge-creation/edge-creation-tool-feedback.ts +9 -9
  333. package/src/features/tools/edge-creation/edge-creation-tool.ts +33 -23
  334. package/src/features/tools/edge-edit/edge-edit-tool-feedback.ts +8 -8
  335. package/src/features/tools/edge-edit/edge-edit-tool.ts +42 -49
  336. package/src/features/tools/marquee-selection/marquee-mouse-tool.ts +7 -6
  337. package/src/features/tools/node-creation/node-creation-tool.ts +69 -25
  338. package/src/features/validation/marker-navigator.ts +6 -8
  339. package/src/features/validation/validate.ts +5 -20
  340. package/src/features/viewport/reposition.ts +11 -14
  341. package/src/utils/geometry-util.ts +45 -64
  342. package/src/utils/gmodel-util.ts +45 -2
  343. package/src/utils/layout-utils.ts +9 -20
  344. package/src/utils/viewpoint-util.ts +13 -25
  345. package/lib/base/action-dispatcher.spec.d.ts +0 -2
  346. package/lib/base/action-dispatcher.spec.d.ts.map +0 -1
  347. package/lib/base/action-dispatcher.spec.js +0 -78
  348. package/lib/base/action-dispatcher.spec.js.map +0 -1
  349. package/lib/base/model/model-initialization-constraint.spec.d.ts +0 -2
  350. package/lib/base/model/model-initialization-constraint.spec.d.ts.map +0 -1
  351. package/lib/base/model/model-initialization-constraint.spec.js +0 -97
  352. package/lib/base/model/model-initialization-constraint.spec.js.map +0 -1
  353. package/lib/base/selection-service.spec.d.ts +0 -2
  354. package/lib/base/selection-service.spec.d.ts.map +0 -1
  355. package/lib/base/selection-service.spec.js +0 -287
  356. package/lib/base/selection-service.spec.js.map +0 -1
  357. package/lib/features/bounds/freeform-layout.spec.d.ts +0 -3
  358. package/lib/features/bounds/freeform-layout.spec.d.ts.map +0 -1
  359. package/lib/features/bounds/freeform-layout.spec.js +0 -201
  360. package/lib/features/bounds/freeform-layout.spec.js.map +0 -1
  361. package/lib/features/bounds/hbox-layout.spec.d.ts +0 -3
  362. package/lib/features/bounds/hbox-layout.spec.d.ts.map +0 -1
  363. package/lib/features/bounds/hbox-layout.spec.js +0 -160
  364. package/lib/features/bounds/hbox-layout.spec.js.map +0 -1
  365. package/lib/features/bounds/layouter-test-util.spec.d.ts +0 -32
  366. package/lib/features/bounds/layouter-test-util.spec.d.ts.map +0 -1
  367. package/lib/features/bounds/layouter-test-util.spec.js +0 -96
  368. package/lib/features/bounds/layouter-test-util.spec.js.map +0 -1
  369. package/lib/features/bounds/vbox-layout.spec.d.ts +0 -3
  370. package/lib/features/bounds/vbox-layout.spec.d.ts.map +0 -1
  371. package/lib/features/bounds/vbox-layout.spec.js +0 -160
  372. package/lib/features/bounds/vbox-layout.spec.js.map +0 -1
  373. package/lib/features/change-bounds/snap.spec.d.ts +0 -17
  374. package/lib/features/change-bounds/snap.spec.d.ts.map +0 -1
  375. package/lib/features/change-bounds/snap.spec.js +0 -83
  376. package/lib/features/change-bounds/snap.spec.js.map +0 -1
  377. package/lib/features/hints/type-hint-provider.spec.d.ts +0 -2
  378. package/lib/features/hints/type-hint-provider.spec.d.ts.map +0 -1
  379. package/lib/features/hints/type-hint-provider.spec.js +0 -333
  380. package/lib/features/hints/type-hint-provider.spec.js.map +0 -1
  381. package/lib/features/layout/layout-elements-action.spec.d.ts +0 -3
  382. package/lib/features/layout/layout-elements-action.spec.d.ts.map +0 -1
  383. package/lib/features/layout/layout-elements-action.spec.js +0 -329
  384. package/lib/features/layout/layout-elements-action.spec.js.map +0 -1
  385. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -3
  386. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +0 -1
  387. package/lib/features/navigation/navigation-target-resolver.spec.js +0 -53
  388. package/lib/features/navigation/navigation-target-resolver.spec.js.map +0 -1
  389. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts +0 -17
  390. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts.map +0 -1
  391. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js +0 -165
  392. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js.map +0 -1
  393. package/lib/features/validation/marker-navigator.spec.d.ts +0 -3
  394. package/lib/features/validation/marker-navigator.spec.d.ts.map +0 -1
  395. package/lib/features/validation/marker-navigator.spec.js +0 -166
  396. package/lib/features/validation/marker-navigator.spec.js.map +0 -1
  397. package/lib/utils/gmodel-util.spec.d.ts +0 -2
  398. package/lib/utils/gmodel-util.spec.d.ts.map +0 -1
  399. package/lib/utils/gmodel-util.spec.js +0 -186
  400. package/lib/utils/gmodel-util.spec.js.map +0 -1
@@ -1,3 +0,0 @@
1
- import 'mocha';
2
- import 'reflect-metadata';
3
- //# sourceMappingURL=marker-navigator.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"marker-navigator.spec.d.ts","sourceRoot":"","sources":["../../../src/features/validation/marker-navigator.spec.ts"],"names":[],"mappings":"AAkBA,OAAO,OAAO,CAAC;AACf,OAAO,kBAAkB,CAAC"}
@@ -1,166 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /********************************************************************************
4
- * Copyright (c) 2020-2023 EclipseSource and others.
5
- *
6
- * This program and the accompanying materials are made available under the
7
- * terms of the Eclipse Public License v. 2.0 which is available at
8
- * http://www.eclipse.org/legal/epl-2.0.
9
- *
10
- * This Source Code may also be made available under the following Secondary
11
- * Licenses when the conditions for such availability set forth in the Eclipse
12
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
- * with the GNU Classpath Exception which is available at
14
- * https://www.gnu.org/software/classpath/license.html.
15
- *
16
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
17
- ********************************************************************************/
18
- const sprotty_1 = require("@eclipse-glsp/sprotty");
19
- const chai_1 = require("chai");
20
- const inversify_1 = require("inversify");
21
- require("mocha");
22
- require("reflect-metadata");
23
- const default_module_1 = require("../../base/default.module");
24
- const model_1 = require("../../model");
25
- const decoration_module_1 = require("../decoration/decoration-module");
26
- const issue_marker_1 = require("./issue-marker");
27
- const marker_navigator_1 = require("./marker-navigator");
28
- const validation_modules_1 = require("./validation-modules");
29
- describe('MarkerNavigator', () => {
30
- const container = new inversify_1.Container();
31
- container.load(default_module_1.defaultModule, decoration_module_1.decorationModule, validation_modules_1.markerNavigatorModule);
32
- const markerNavigator = container.get(marker_navigator_1.MarkerNavigator);
33
- function createRoot(...nodeIds) {
34
- const root = new model_1.GGraph();
35
- root.features = new Set(model_1.GGraph.DEFAULT_FEATURES);
36
- root.id = 'root';
37
- root.type = 'graph';
38
- nodeIds.forEach(id => {
39
- const node = new sprotty_1.GNode();
40
- node.id = id;
41
- node.type = 'node';
42
- node.features = new Set(sprotty_1.GNode.DEFAULT_FEATURES);
43
- root.add(node);
44
- });
45
- return root;
46
- }
47
- const rootWithoutAnyMarkers = createRoot('1');
48
- const rootWithMarkers = createRoot('bottom-right', 'top-right', 'top-left', 'bottom-left');
49
- const elementTopLeft = rootWithMarkers.children[2];
50
- elementTopLeft.bounds = { width: 10, height: 10, x: 100, y: 100 };
51
- const elementTopRight = rootWithMarkers.children[1];
52
- elementTopRight.bounds = { width: 10, height: 10, x: 200, y: 100 };
53
- const elementBottomLeft = rootWithMarkers.children[3];
54
- elementBottomLeft.bounds = { width: 10, height: 10, x: 100, y: 200 };
55
- const elementBottomRight = rootWithMarkers.children[0];
56
- elementBottomRight.bounds = { width: 10, height: 10, x: 200, y: 200 };
57
- beforeEach('clear issue marker', () => {
58
- [elementTopLeft, elementTopRight, elementBottomLeft, elementBottomRight].forEach(clearMarker);
59
- });
60
- it('next(undefined) without any markers returns undefined', () => {
61
- (0, chai_1.expect)(markerNavigator.next(rootWithoutAnyMarkers)).to.be.undefined;
62
- });
63
- it('previous(undefined) without any markers returns undefined', () => {
64
- (0, chai_1.expect)(markerNavigator.previous(rootWithoutAnyMarkers)).to.be.undefined;
65
- });
66
- it('next(undefined) with one marker returns the one marker', () => {
67
- const marker = setIssues(elementTopLeft, [{ message: 'msg', severity: 'error' }]);
68
- const next = markerNavigator.next(rootWithMarkers);
69
- (0, chai_1.expect)(next).to.eql(marker);
70
- });
71
- it('next(firstMarker) with only one marker returns again the first marker', () => {
72
- const marker = setIssues(elementTopLeft, [{ message: 'msg', severity: 'error' }]);
73
- const next = markerNavigator.next(rootWithMarkers, marker);
74
- (0, chai_1.expect)(next).to.eql(marker);
75
- // and again and again
76
- const nextNext = markerNavigator.next(rootWithMarkers, next);
77
- (0, chai_1.expect)(nextNext).to.eql(marker);
78
- });
79
- it('previous(firstMarker) with only one marker returns again the first marker', () => {
80
- const marker = setIssues(elementTopLeft, [{ message: 'msg', severity: 'error' }]);
81
- const previous = markerNavigator.previous(rootWithMarkers, marker);
82
- (0, chai_1.expect)(previous).to.eql(marker);
83
- // and again and again
84
- const previousPrevious = markerNavigator.previous(rootWithMarkers, previous);
85
- (0, chai_1.expect)(previousPrevious).to.eql(marker);
86
- });
87
- it('next(firstMarker) with two marker returns second marker then again first marker', () => {
88
- const marker1 = setIssues(elementTopLeft, [{ message: 'msg', severity: 'error' }]);
89
- const marker2 = setIssues(elementTopRight, [{ message: 'msg', severity: 'error' }]);
90
- const next = markerNavigator.next(rootWithMarkers, marker1);
91
- (0, chai_1.expect)(next).to.eql(marker2);
92
- // and again and again
93
- const nextNext = markerNavigator.next(rootWithMarkers, next);
94
- (0, chai_1.expect)(nextNext).to.eql(marker1);
95
- });
96
- it('previous(firstMarker) with two marker returns second marker then again first marker', () => {
97
- const marker1 = setIssues(elementTopLeft, [{ message: 'msg', severity: 'error' }]);
98
- const marker2 = setIssues(elementTopRight, [{ message: 'msg', severity: 'error' }]);
99
- const next = markerNavigator.previous(rootWithMarkers, marker1);
100
- (0, chai_1.expect)(next).to.eql(marker2);
101
- // and again and again
102
- const nextNext = markerNavigator.previous(rootWithMarkers, next);
103
- (0, chai_1.expect)(nextNext).to.eql(marker1);
104
- });
105
- it('returns markers in the order left-to-right, top-to-bottom with next()', () => {
106
- const marker1 = setIssues(elementTopLeft, [{ message: 'msg', severity: 'error' }]);
107
- const marker2 = setIssues(elementTopRight, [{ message: 'msg', severity: 'error' }]);
108
- const marker3 = setIssues(elementBottomLeft, [{ message: 'msg', severity: 'error' }]);
109
- const marker4 = setIssues(elementBottomRight, [{ message: 'msg', severity: 'error' }]);
110
- const found1 = markerNavigator.next(rootWithMarkers);
111
- const found2 = markerNavigator.next(rootWithMarkers, found1);
112
- const found3 = markerNavigator.next(rootWithMarkers, found2);
113
- const found4 = markerNavigator.next(rootWithMarkers, found3);
114
- const found5 = markerNavigator.next(rootWithMarkers, found4);
115
- (0, chai_1.expect)(found1).to.eql(marker1);
116
- (0, chai_1.expect)(found2).to.eql(marker2);
117
- (0, chai_1.expect)(found3).to.eql(marker3);
118
- (0, chai_1.expect)(found4).to.eql(marker4);
119
- (0, chai_1.expect)(found5).to.eql(marker1);
120
- });
121
- it('returns markers in the order left-to-right, top-to-bottom with previous()', () => {
122
- const marker1 = setIssues(elementTopLeft, [{ message: 'msg', severity: 'error' }]);
123
- const marker2 = setIssues(elementTopRight, [{ message: 'msg', severity: 'error' }]);
124
- const marker3 = setIssues(elementBottomLeft, [{ message: 'msg', severity: 'error' }]);
125
- const marker4 = setIssues(elementBottomRight, [{ message: 'msg', severity: 'error' }]);
126
- const found1 = markerNavigator.previous(rootWithMarkers);
127
- const found2 = markerNavigator.previous(rootWithMarkers, found1);
128
- const found3 = markerNavigator.previous(rootWithMarkers, found2);
129
- const found4 = markerNavigator.previous(rootWithMarkers, found3);
130
- const found5 = markerNavigator.previous(rootWithMarkers, found4);
131
- (0, chai_1.expect)(found1).to.eql(marker1);
132
- (0, chai_1.expect)(found2).to.eql(marker4);
133
- (0, chai_1.expect)(found3).to.eql(marker3);
134
- (0, chai_1.expect)(found4).to.eql(marker2);
135
- (0, chai_1.expect)(found5).to.eql(marker1);
136
- });
137
- });
138
- function clearMarker(elem) {
139
- elem.children.filter(isMarker).forEach(marker => elem.remove(marker));
140
- }
141
- function setIssues(elem, issues) {
142
- const marker = getOrCreateMarker(elem);
143
- marker.issues = issues;
144
- return marker;
145
- }
146
- function getOrCreateMarker(elem) {
147
- const marker = findMarker(elem);
148
- if (marker instanceof issue_marker_1.GIssueMarker) {
149
- return marker;
150
- }
151
- return createMarker(elem);
152
- }
153
- function findMarker(elem) {
154
- return elem.children.find(isMarker);
155
- }
156
- function isMarker(element) {
157
- return element instanceof issue_marker_1.GIssueMarker;
158
- }
159
- function createMarker(elem) {
160
- const newMarker = new issue_marker_1.GIssueMarker();
161
- newMarker.type = 'marker';
162
- newMarker.id = `${elem.id}_marker`;
163
- elem.add(newMarker);
164
- return newMarker;
165
- }
166
- //# sourceMappingURL=marker-navigator.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"marker-navigator.spec.js","sourceRoot":"","sources":["../../../src/features/validation/marker-navigator.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gmodel-util.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gmodel-util.spec.d.ts","sourceRoot":"","sources":["../../src/utils/gmodel-util.spec.ts"],"names":[],"mappings":""}
@@ -1,186 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /********************************************************************************
4
- * Copyright (c) 2023 EclipseSource and others.
5
- *
6
- * This program and the accompanying materials are made available under the
7
- * terms of the Eclipse Public License v. 2.0 which is available at
8
- * http://www.eclipse.org/legal/epl-2.0.
9
- *
10
- * This Source Code may also be made available under the following Secondary
11
- * Licenses when the conditions for such availability set forth in the Eclipse
12
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
- * with the GNU Classpath Exception which is available at
14
- * https://www.gnu.org/software/classpath/license.html.
15
- *
16
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
17
- ********************************************************************************/
18
- const sprotty_1 = require("@eclipse-glsp/sprotty");
19
- const chai_1 = require("chai");
20
- const inversify_1 = require("inversify");
21
- const routing_module_1 = require("../features/routing/routing-module");
22
- const gmodel_util_1 = require("./gmodel-util");
23
- const model_1 = require("../model");
24
- class TestRouter extends sprotty_1.AbstractEdgeRouter {
25
- constructor() {
26
- super(...arguments);
27
- this.kind = 'test-router';
28
- }
29
- route(edge) {
30
- const pureRoute = edge.routingPoints.map((point, idx) => (Object.assign(Object.assign({ kind: 'linear' }, point), { pointIndex: idx })));
31
- return [
32
- Object.assign({ kind: 'source' }, edge.source.position),
33
- ...pureRoute,
34
- { kind: 'bezier-control-after', x: 999, y: 999, pointIndex: pureRoute.length },
35
- Object.assign({ kind: 'target' }, edge.target.position)
36
- ];
37
- }
38
- createRoutingHandles(edge) {
39
- // do nothing
40
- }
41
- getOptions(edge) {
42
- return {
43
- minimalPointDistance: 0,
44
- selfEdgeOffset: 0,
45
- standardDistance: 0
46
- };
47
- }
48
- getInnerHandlePosition(edge, route, handle) {
49
- return undefined;
50
- }
51
- applyInnerHandleMoves(edge, moves) {
52
- // do nothing
53
- }
54
- }
55
- describe('SModel Util', () => {
56
- describe('calcRoute', () => {
57
- const graph = new model_1.GGraph();
58
- const source = new sprotty_1.GNode();
59
- source.id = 'node0';
60
- source.position = { x: 0, y: 0 };
61
- source.size = { width: 0, height: 0 };
62
- graph.add(source);
63
- const target = new sprotty_1.GNode();
64
- target.id = 'node1';
65
- target.position = { x: 100, y: 100 };
66
- target.size = { width: 0, height: 0 };
67
- graph.add(target);
68
- const edge = new model_1.GEdge();
69
- edge.id = 'edge0';
70
- edge.sourceId = 'node0';
71
- edge.targetId = 'node1';
72
- graph.add(edge);
73
- edge.routerKind = 'test-router';
74
- const container = new inversify_1.Container();
75
- container.load(routing_module_1.routingModule);
76
- const routerRegistry = container.get(sprotty_1.EdgeRouterRegistry);
77
- routerRegistry.register('test-router', new TestRouter());
78
- it('should return complete route', () => {
79
- edge.source.position = { x: 0, y: 0 };
80
- edge.target.position = { x: 100, y: 100 };
81
- edge.routingPoints = [
82
- { x: 20, y: 20 },
83
- { x: 30, y: 30 },
84
- { x: 40, y: 40 }
85
- ];
86
- const route = (0, gmodel_util_1.calcRoute)(edge, routerRegistry);
87
- (0, chai_1.expect)(route).to.deep.equal([
88
- { x: 0, y: 0, kind: 'source' },
89
- { x: 20, y: 20, kind: 'linear', pointIndex: 0 },
90
- { x: 30, y: 30, kind: 'linear', pointIndex: 1 },
91
- { x: 40, y: 40, kind: 'linear', pointIndex: 2 },
92
- { x: 999, y: 999, kind: 'bezier-control-after', pointIndex: 3 },
93
- { x: 100, y: 100, kind: 'target' }
94
- ]);
95
- });
96
- it('should filter duplicates with same coordinates', () => {
97
- edge.source.position = { x: 0, y: 0 };
98
- edge.target.position = { x: 100, y: 100 };
99
- edge.routingPoints = [
100
- { x: 20, y: 20 },
101
- { x: 20, y: 20 },
102
- { x: 30, y: 30 },
103
- { x: 40, y: 40 }
104
- ];
105
- const route = (0, gmodel_util_1.calcRoute)(edge, routerRegistry);
106
- (0, chai_1.expect)(route).to.deep.equal([
107
- { x: 0, y: 0, kind: 'source' },
108
- { x: 20, y: 20, kind: 'linear', pointIndex: 0 },
109
- { x: 30, y: 30, kind: 'linear', pointIndex: 2 },
110
- { x: 40, y: 40, kind: 'linear', pointIndex: 3 },
111
- { x: 999, y: 999, kind: 'bezier-control-after', pointIndex: 4 },
112
- { x: 100, y: 100, kind: 'target' }
113
- ]);
114
- });
115
- it('should not filter source and target even if duplicate coordinates', () => {
116
- edge.source.position = { x: 0, y: 0 };
117
- edge.target.position = { x: 0, y: 0 };
118
- edge.routingPoints = [
119
- { x: 20, y: 20 },
120
- { x: 30, y: 30 },
121
- { x: 40, y: 40 }
122
- ];
123
- const route = (0, gmodel_util_1.calcRoute)(edge, routerRegistry);
124
- (0, chai_1.expect)(route).to.deep.equal([
125
- { x: 0, y: 0, kind: 'source' },
126
- { x: 20, y: 20, kind: 'linear', pointIndex: 0 },
127
- { x: 30, y: 30, kind: 'linear', pointIndex: 1 },
128
- { x: 40, y: 40, kind: 'linear', pointIndex: 2 },
129
- { x: 999, y: 999, kind: 'bezier-control-after', pointIndex: 3 },
130
- { x: 0, y: 0, kind: 'target' }
131
- ]);
132
- });
133
- it('should filter duplicates with same coordinates but allow tolerance', () => {
134
- edge.source.position = { x: 0, y: 0 };
135
- edge.target.position = { x: 100, y: 100 };
136
- edge.routingPoints = [
137
- { x: 20, y: 20 },
138
- { x: 25, y: 25 },
139
- { x: 30, y: 30 },
140
- { x: 40, y: 40 }
141
- ];
142
- const route = (0, gmodel_util_1.calcRoute)(edge, routerRegistry, gmodel_util_1.ALL_ROUTING_POINTS, 10);
143
- (0, chai_1.expect)(route).to.deep.equal([
144
- { x: 0, y: 0, kind: 'source' },
145
- { x: 20, y: 20, kind: 'linear', pointIndex: 0 },
146
- { x: 30, y: 30, kind: 'linear', pointIndex: 2 },
147
- { x: 40, y: 40, kind: 'linear', pointIndex: 3 },
148
- { x: 999, y: 999, kind: 'bezier-control-after', pointIndex: 4 },
149
- { x: 100, y: 100, kind: 'target' }
150
- ]);
151
- });
152
- it('should allow filtering based on point type: ROUTE_KINDS', () => {
153
- edge.source.position = { x: 0, y: 0 };
154
- edge.target.position = { x: 100, y: 100 };
155
- edge.routingPoints = [
156
- { x: 20, y: 20 },
157
- { x: 30, y: 30 },
158
- { x: 40, y: 40 }
159
- ];
160
- const route = (0, gmodel_util_1.calcRoute)(edge, routerRegistry, gmodel_util_1.ROUTE_KINDS);
161
- (0, chai_1.expect)(route).to.deep.equal([
162
- { x: 0, y: 0, kind: 'source' },
163
- { x: 20, y: 20, kind: 'linear', pointIndex: 0 },
164
- { x: 30, y: 30, kind: 'linear', pointIndex: 1 },
165
- { x: 40, y: 40, kind: 'linear', pointIndex: 2 },
166
- { x: 100, y: 100, kind: 'target' }
167
- ]);
168
- });
169
- it('should allow filtering based on point type: ROUTING_POINT_KINDS', () => {
170
- edge.source.position = { x: 0, y: 0 };
171
- edge.target.position = { x: 100, y: 100 };
172
- edge.routingPoints = [
173
- { x: 20, y: 20 },
174
- { x: 30, y: 30 },
175
- { x: 40, y: 40 }
176
- ];
177
- const route = (0, gmodel_util_1.calcRoute)(edge, routerRegistry, gmodel_util_1.ROUTING_POINT_KINDS);
178
- (0, chai_1.expect)(route).to.deep.equal([
179
- { x: 20, y: 20, kind: 'linear', pointIndex: 0 },
180
- { x: 30, y: 30, kind: 'linear', pointIndex: 1 },
181
- { x: 40, y: 40, kind: 'linear', pointIndex: 2 }
182
- ]);
183
- });
184
- });
185
- });
186
- //# sourceMappingURL=gmodel-util.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gmodel-util.spec.js","sourceRoot":"","sources":["../../src/utils/gmodel-util.spec.ts"],"names":[],"mappings":"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"}