@eclipse-glsp/client 2.2.0-next.336 → 2.2.0-next.338

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 (544) hide show
  1. package/css/ghost-element.css +7 -0
  2. package/lib/base/default.module.js +4 -4
  3. package/lib/base/default.module.js.map +1 -1
  4. package/lib/base/drag-aware-mouse-listener.d.ts +5 -2
  5. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  6. package/lib/base/drag-aware-mouse-listener.js +13 -3
  7. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  8. package/lib/base/feedback/feedback-action-dispatcher-default.d.ts +34 -0
  9. package/lib/base/feedback/feedback-action-dispatcher-default.d.ts.map +1 -0
  10. package/lib/base/feedback/feedback-action-dispatcher-default.js +120 -0
  11. package/lib/base/feedback/feedback-action-dispatcher-default.js.map +1 -0
  12. package/lib/base/feedback/feedback-action-dispatcher.d.ts +2 -17
  13. package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -1
  14. package/lib/base/feedback/feedback-action-dispatcher.js +1 -100
  15. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -1
  16. package/lib/base/feedback/{feeback-emitter.d.ts → feedback-emitter.d.ts} +8 -1
  17. package/lib/base/feedback/feedback-emitter.d.ts.map +1 -0
  18. package/lib/base/feedback/{feeback-emitter.js → feedback-emitter.js} +21 -6
  19. package/lib/base/feedback/feedback-emitter.js.map +1 -0
  20. package/lib/base/selection-service.d.ts +1 -1
  21. package/lib/base/selection-service.d.ts.map +1 -1
  22. package/lib/base/tool-manager/tool-manager.d.ts +1 -1
  23. package/lib/base/tool-manager/tool-manager.d.ts.map +1 -1
  24. package/lib/base/ui-extension/ui-extension-registry.d.ts +1 -1
  25. package/lib/base/ui-extension/ui-extension-registry.d.ts.map +1 -1
  26. package/lib/base/view/key-tool.d.ts +1 -1
  27. package/lib/base/view/key-tool.d.ts.map +1 -1
  28. package/lib/base/view/mouse-tool.d.ts +1 -1
  29. package/lib/base/view/mouse-tool.d.ts.map +1 -1
  30. package/lib/features/accessibility/move-zoom/move-handler.d.ts +2 -2
  31. package/lib/features/accessibility/move-zoom/move-handler.d.ts.map +1 -1
  32. package/lib/features/accessibility/move-zoom/move-handler.js +1 -1
  33. package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -1
  34. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts +3 -3
  35. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts.map +1 -1
  36. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +1 -1
  37. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -1
  38. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +3 -3
  39. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -1
  40. package/lib/features/accessibility/view-key-tools/movement-key-tool.js +4 -4
  41. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -1
  42. package/lib/features/bounds/set-bounds-feedback-command.d.ts.map +1 -1
  43. package/lib/features/bounds/set-bounds-feedback-command.js +2 -2
  44. package/lib/features/bounds/set-bounds-feedback-command.js.map +1 -1
  45. package/lib/features/change-bounds/model.d.ts +7 -3
  46. package/lib/features/change-bounds/model.d.ts.map +1 -1
  47. package/lib/features/change-bounds/model.js +46 -20
  48. package/lib/features/change-bounds/model.js.map +1 -1
  49. package/lib/features/change-bounds/movement-restrictor.d.ts +3 -2
  50. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  51. package/lib/features/change-bounds/movement-restrictor.js +9 -10
  52. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  53. package/lib/features/debug/debug-bounds-decorator.d.ts +1 -1
  54. package/lib/features/debug/debug-bounds-decorator.d.ts.map +1 -1
  55. package/lib/features/debug/debug-bounds-decorator.js +6 -6
  56. package/lib/features/debug/debug-bounds-decorator.js.map +1 -1
  57. package/lib/features/debug/debug-manager.d.ts +2 -1
  58. package/lib/features/debug/debug-manager.d.ts.map +1 -1
  59. package/lib/features/debug/debug-manager.js.map +1 -1
  60. package/lib/features/debug/debug-model.d.ts +1 -1
  61. package/lib/features/debug/debug-model.d.ts.map +1 -1
  62. package/lib/features/debug/debug-model.js +5 -5
  63. package/lib/features/debug/debug-model.js.map +1 -1
  64. package/lib/features/debug/debug-module.js +1 -1
  65. package/lib/features/debug/debug-module.js.map +1 -1
  66. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts +8 -6
  67. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts.map +1 -1
  68. package/lib/features/element-template/mouse-tracking-element-position-listener.js +14 -15
  69. package/lib/features/element-template/mouse-tracking-element-position-listener.js.map +1 -1
  70. package/lib/features/grid/grid-manager.d.ts +2 -1
  71. package/lib/features/grid/grid-manager.d.ts.map +1 -1
  72. package/lib/features/grid/grid-manager.js.map +1 -1
  73. package/lib/features/grid/grid-model.d.ts +1 -1
  74. package/lib/features/grid/grid-model.d.ts.map +1 -1
  75. package/lib/features/grid/grid-model.js +5 -5
  76. package/lib/features/grid/grid-model.js.map +1 -1
  77. package/lib/features/grid/grid-module.d.ts +1 -1
  78. package/lib/features/grid/grid-module.d.ts.map +1 -1
  79. package/lib/features/grid/grid-module.js +2 -2
  80. package/lib/features/grid/grid-module.js.map +1 -1
  81. package/lib/features/helper-lines/helper-line-feedback.d.ts +2 -2
  82. package/lib/features/helper-lines/helper-line-feedback.js +3 -3
  83. package/lib/features/helper-lines/helper-line-feedback.js.map +1 -1
  84. package/lib/features/helper-lines/helper-line-manager-default.d.ts +16 -4
  85. package/lib/features/helper-lines/helper-line-manager-default.d.ts.map +1 -1
  86. package/lib/features/helper-lines/helper-line-manager-default.js +56 -15
  87. package/lib/features/helper-lines/helper-line-manager-default.js.map +1 -1
  88. package/lib/features/hints/model.d.ts +6 -2
  89. package/lib/features/hints/model.d.ts.map +1 -1
  90. package/lib/features/hints/model.js.map +1 -1
  91. package/lib/features/hints/type-hint-provider.d.ts +1 -1
  92. package/lib/features/hints/type-hint-provider.d.ts.map +1 -1
  93. package/lib/features/hints/type-hint-provider.js.map +1 -1
  94. package/lib/features/select/select-mouse-listener.d.ts +3 -3
  95. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  96. package/lib/features/select/select-mouse-listener.js +6 -6
  97. package/lib/features/select/select-mouse-listener.js.map +1 -1
  98. package/lib/features/tool-palette/tool-palette.d.ts +3 -3
  99. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  100. package/lib/features/tool-palette/tool-palette.js +9 -9
  101. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  102. package/lib/features/tools/base-tools.d.ts +2 -2
  103. package/lib/features/tools/base-tools.d.ts.map +1 -1
  104. package/lib/features/tools/base-tools.js +1 -1
  105. package/lib/features/tools/change-bounds/change-bounds-manager.d.ts +15 -7
  106. package/lib/features/tools/change-bounds/change-bounds-manager.d.ts.map +1 -1
  107. package/lib/features/tools/change-bounds/change-bounds-manager.js +51 -17
  108. package/lib/features/tools/change-bounds/change-bounds-manager.js.map +1 -1
  109. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts.map +1 -1
  110. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js +3 -3
  111. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -1
  112. package/lib/features/tools/change-bounds/change-bounds-tool-module.d.ts +1 -1
  113. package/lib/features/tools/change-bounds/change-bounds-tool-module.js +2 -2
  114. package/lib/features/tools/change-bounds/change-bounds-tool-module.js.map +1 -1
  115. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.d.ts +5 -5
  116. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.d.ts.map +1 -1
  117. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.js +9 -12
  118. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.js.map +1 -1
  119. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts +4 -3
  120. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -1
  121. package/lib/features/tools/change-bounds/change-bounds-tool.js +13 -32
  122. package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -1
  123. package/lib/features/tools/change-bounds/change-bounds-tracker.d.ts +11 -4
  124. package/lib/features/tools/change-bounds/change-bounds-tracker.d.ts.map +1 -1
  125. package/lib/features/tools/change-bounds/change-bounds-tracker.js +46 -28
  126. package/lib/features/tools/change-bounds/change-bounds-tracker.js.map +1 -1
  127. package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts +1 -1
  128. package/lib/features/tools/edge-creation/dangling-edge-feedback.js +3 -3
  129. package/lib/features/tools/edge-creation/dangling-edge-feedback.js.map +1 -1
  130. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts +1 -1
  131. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts.map +1 -1
  132. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts +6 -3
  133. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -1
  134. package/lib/features/tools/edge-creation/edge-creation-tool.js +13 -11
  135. package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -1
  136. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts +4 -3
  137. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts.map +1 -1
  138. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js +4 -4
  139. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js.map +1 -1
  140. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts +3 -3
  141. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts.map +1 -1
  142. package/lib/features/tools/edge-edit/edge-edit-tool.js +4 -4
  143. package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -1
  144. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts +2 -2
  145. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -1
  146. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js +3 -3
  147. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -1
  148. package/lib/features/tools/node-creation/container-manager.d.ts +41 -0
  149. package/lib/features/tools/node-creation/container-manager.d.ts.map +1 -0
  150. package/lib/features/tools/node-creation/container-manager.js +73 -0
  151. package/lib/features/tools/node-creation/container-manager.js.map +1 -0
  152. package/lib/{base/ui-extension/index.d.ts → features/tools/node-creation/insert-indicator.d.ts} +15 -3
  153. package/lib/features/tools/node-creation/insert-indicator.d.ts.map +1 -0
  154. package/lib/features/tools/node-creation/insert-indicator.js +40 -0
  155. package/lib/features/tools/node-creation/insert-indicator.js.map +1 -0
  156. package/lib/features/tools/node-creation/node-creation-module.d.ts +1 -1
  157. package/lib/features/tools/node-creation/node-creation-module.d.ts.map +1 -1
  158. package/lib/features/tools/node-creation/node-creation-module.js +6 -1
  159. package/lib/features/tools/node-creation/node-creation-module.js.map +1 -1
  160. package/lib/features/tools/node-creation/node-creation-tool.d.ts +26 -16
  161. package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -1
  162. package/lib/features/tools/node-creation/node-creation-tool.js +82 -78
  163. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -1
  164. package/lib/features/{debug/index.d.ts → tools/node-creation/node-creation-views.d.ts} +10 -5
  165. package/lib/features/tools/node-creation/node-creation-views.d.ts.map +1 -0
  166. package/lib/features/tools/node-creation/node-creation-views.js +60 -0
  167. package/lib/features/tools/node-creation/node-creation-views.js.map +1 -0
  168. package/lib/features/validation/validate.d.ts +1 -1
  169. package/lib/features/validation/validate.d.ts.map +1 -1
  170. package/lib/features/validation/validate.js.map +1 -1
  171. package/lib/features/viewport/viewport-handler.d.ts +1 -1
  172. package/lib/features/viewport/viewport-handler.d.ts.map +1 -1
  173. package/lib/features/viewport/viewport-handler.js +3 -3
  174. package/lib/features/viewport/viewport-handler.js.map +1 -1
  175. package/lib/index.d.ts +223 -5
  176. package/lib/index.d.ts.map +1 -1
  177. package/lib/index.js +223 -5
  178. package/lib/index.js.map +1 -1
  179. package/lib/utils/gmodel-util.d.ts +2 -0
  180. package/lib/utils/gmodel-util.d.ts.map +1 -1
  181. package/lib/utils/gmodel-util.js.map +1 -1
  182. package/lib/views/ggraph-view.d.ts +1 -1
  183. package/lib/views/ggraph-view.d.ts.map +1 -1
  184. package/lib/views/ggraph-view.js +4 -4
  185. package/lib/views/ggraph-view.js.map +1 -1
  186. package/lib/views/glsp-projection-view.d.ts +2 -2
  187. package/lib/views/glsp-projection-view.d.ts.map +1 -1
  188. package/lib/views/glsp-projection-view.js +5 -5
  189. package/lib/views/glsp-projection-view.js.map +1 -1
  190. package/package.json +4 -4
  191. package/src/base/action-dispatcher.spec.ts +1 -1
  192. package/src/base/default.module.ts +2 -2
  193. package/src/base/drag-aware-mouse-listener.ts +18 -2
  194. package/src/base/feedback/feedback-action-dispatcher-default.ts +119 -0
  195. package/src/base/feedback/feedback-action-dispatcher.ts +2 -106
  196. package/src/base/feedback/feedback-emitter.spec.ts +176 -0
  197. package/src/base/feedback/{feeback-emitter.ts → feedback-emitter.ts} +24 -5
  198. package/src/base/selection-service.spec.ts +1 -1
  199. package/src/base/selection-service.ts +1 -1
  200. package/src/base/tool-manager/tool-manager.ts +1 -1
  201. package/src/base/ui-extension/ui-extension-registry.ts +1 -1
  202. package/src/base/view/key-tool.ts +1 -1
  203. package/src/base/view/mouse-tool.ts +1 -1
  204. package/src/features/accessibility/move-zoom/move-handler.ts +2 -2
  205. package/src/features/accessibility/resize-key-tool/resize-key-handler.ts +3 -3
  206. package/src/features/accessibility/view-key-tools/movement-key-tool.ts +4 -4
  207. package/src/features/bounds/set-bounds-feedback-command.ts +1 -1
  208. package/src/features/change-bounds/model.ts +41 -16
  209. package/src/features/change-bounds/movement-restrictor.ts +13 -13
  210. package/src/features/change-bounds/point-position-updater.spec.ts +1 -1
  211. package/src/features/debug/debug-bounds-decorator.tsx +8 -8
  212. package/src/features/debug/debug-manager.ts +2 -1
  213. package/src/features/debug/debug-model.ts +2 -2
  214. package/src/features/debug/debug-module.ts +1 -1
  215. package/src/features/element-template/mouse-tracking-element-position-listener.ts +17 -24
  216. package/src/features/grid/grid-manager.ts +2 -1
  217. package/src/features/grid/grid-model.ts +2 -2
  218. package/src/features/grid/grid-module.ts +3 -3
  219. package/src/features/helper-lines/helper-line-feedback.ts +1 -1
  220. package/src/features/helper-lines/helper-line-manager-default.ts +68 -12
  221. package/src/features/hints/model.ts +7 -2
  222. package/src/features/hints/type-hint-provider.spec.ts +3 -3
  223. package/src/features/hints/type-hint-provider.ts +1 -1
  224. package/src/features/select/select-mouse-listener.ts +6 -6
  225. package/src/features/tool-palette/tool-palette.ts +6 -7
  226. package/src/features/tools/base-tools.ts +2 -2
  227. package/src/features/tools/change-bounds/change-bounds-manager.ts +75 -17
  228. package/src/features/tools/change-bounds/change-bounds-tool-feedback.ts +5 -2
  229. package/src/features/tools/change-bounds/change-bounds-tool-module.ts +2 -2
  230. package/src/features/tools/change-bounds/change-bounds-tool-move-feedback.ts +13 -11
  231. package/src/features/tools/change-bounds/change-bounds-tool.ts +12 -57
  232. package/src/features/tools/change-bounds/change-bounds-tracker.ts +29 -7
  233. package/src/features/tools/edge-creation/dangling-edge-feedback.ts +2 -2
  234. package/src/features/tools/edge-creation/edge-creation-tool-feedback.ts +1 -1
  235. package/src/features/tools/edge-creation/edge-creation-tool.ts +15 -8
  236. package/src/features/tools/edge-edit/edge-edit-tool-feedback.ts +4 -3
  237. package/src/features/tools/edge-edit/edge-edit-tool.ts +4 -5
  238. package/src/features/tools/marquee-selection/marquee-mouse-tool.ts +2 -2
  239. package/src/features/tools/node-creation/container-manager.ts +76 -0
  240. package/src/features/tools/node-creation/insert-indicator.ts +41 -0
  241. package/src/features/tools/node-creation/node-creation-module.ts +14 -2
  242. package/src/features/tools/node-creation/node-creation-tool.ts +101 -92
  243. package/src/features/tools/node-creation/node-creation-views.tsx +49 -0
  244. package/src/features/validation/validate.ts +1 -1
  245. package/src/features/viewport/viewport-handler.ts +1 -1
  246. package/src/index.ts +223 -5
  247. package/src/utils/gmodel-util.ts +4 -1
  248. package/src/views/ggraph-view.tsx +4 -4
  249. package/src/views/glsp-projection-view.tsx +4 -5
  250. package/lib/base/auto-complete/index.d.ts +0 -21
  251. package/lib/base/auto-complete/index.d.ts.map +0 -1
  252. package/lib/base/auto-complete/index.js +0 -37
  253. package/lib/base/auto-complete/index.js.map +0 -1
  254. package/lib/base/feedback/feeback-emitter.d.ts.map +0 -1
  255. package/lib/base/feedback/feeback-emitter.js.map +0 -1
  256. package/lib/base/feedback/index.d.ts +0 -22
  257. package/lib/base/feedback/index.d.ts.map +0 -1
  258. package/lib/base/feedback/index.js +0 -38
  259. package/lib/base/feedback/index.js.map +0 -1
  260. package/lib/base/focus/index.d.ts +0 -18
  261. package/lib/base/focus/index.d.ts.map +0 -1
  262. package/lib/base/focus/index.js +0 -34
  263. package/lib/base/focus/index.js.map +0 -1
  264. package/lib/base/index.d.ts +0 -34
  265. package/lib/base/index.d.ts.map +0 -1
  266. package/lib/base/index.js +0 -50
  267. package/lib/base/index.js.map +0 -1
  268. package/lib/base/model/index.d.ts +0 -20
  269. package/lib/base/model/index.d.ts.map +0 -1
  270. package/lib/base/model/index.js +0 -36
  271. package/lib/base/model/index.js.map +0 -1
  272. package/lib/base/tool-manager/index.d.ts +0 -18
  273. package/lib/base/tool-manager/index.d.ts.map +0 -1
  274. package/lib/base/tool-manager/index.js +0 -34
  275. package/lib/base/tool-manager/index.js.map +0 -1
  276. package/lib/base/ui-extension/index.d.ts.map +0 -1
  277. package/lib/base/ui-extension/index.js +0 -34
  278. package/lib/base/ui-extension/index.js.map +0 -1
  279. package/lib/base/view/index.d.ts +0 -19
  280. package/lib/base/view/index.d.ts.map +0 -1
  281. package/lib/base/view/index.js +0 -35
  282. package/lib/base/view/index.js.map +0 -1
  283. package/lib/features/accessibility/edge-autocomplete/index.d.ts +0 -20
  284. package/lib/features/accessibility/edge-autocomplete/index.d.ts.map +0 -1
  285. package/lib/features/accessibility/edge-autocomplete/index.js +0 -36
  286. package/lib/features/accessibility/edge-autocomplete/index.js.map +0 -1
  287. package/lib/features/accessibility/element-navigation/index.d.ts +0 -22
  288. package/lib/features/accessibility/element-navigation/index.d.ts.map +0 -1
  289. package/lib/features/accessibility/element-navigation/index.js +0 -38
  290. package/lib/features/accessibility/element-navigation/index.js.map +0 -1
  291. package/lib/features/accessibility/focus-tracker/index.d.ts +0 -18
  292. package/lib/features/accessibility/focus-tracker/index.d.ts.map +0 -1
  293. package/lib/features/accessibility/focus-tracker/index.js +0 -34
  294. package/lib/features/accessibility/focus-tracker/index.js.map +0 -1
  295. package/lib/features/accessibility/index.d.ts +0 -31
  296. package/lib/features/accessibility/index.d.ts.map +0 -1
  297. package/lib/features/accessibility/index.js +0 -47
  298. package/lib/features/accessibility/index.js.map +0 -1
  299. package/lib/features/accessibility/key-shortcut/index.d.ts +0 -19
  300. package/lib/features/accessibility/key-shortcut/index.d.ts.map +0 -1
  301. package/lib/features/accessibility/key-shortcut/index.js +0 -35
  302. package/lib/features/accessibility/key-shortcut/index.js.map +0 -1
  303. package/lib/features/accessibility/keyboard-grid/index.d.ts +0 -21
  304. package/lib/features/accessibility/keyboard-grid/index.d.ts.map +0 -1
  305. package/lib/features/accessibility/keyboard-grid/index.js +0 -37
  306. package/lib/features/accessibility/keyboard-grid/index.js.map +0 -1
  307. package/lib/features/accessibility/keyboard-pointer/index.d.ts +0 -22
  308. package/lib/features/accessibility/keyboard-pointer/index.d.ts.map +0 -1
  309. package/lib/features/accessibility/keyboard-pointer/index.js +0 -38
  310. package/lib/features/accessibility/keyboard-pointer/index.js.map +0 -1
  311. package/lib/features/accessibility/keyboard-tool-palette/index.d.ts +0 -18
  312. package/lib/features/accessibility/keyboard-tool-palette/index.d.ts.map +0 -1
  313. package/lib/features/accessibility/keyboard-tool-palette/index.js +0 -34
  314. package/lib/features/accessibility/keyboard-tool-palette/index.js.map +0 -1
  315. package/lib/features/accessibility/move-zoom/index.d.ts +0 -19
  316. package/lib/features/accessibility/move-zoom/index.d.ts.map +0 -1
  317. package/lib/features/accessibility/move-zoom/index.js +0 -35
  318. package/lib/features/accessibility/move-zoom/index.js.map +0 -1
  319. package/lib/features/accessibility/resize-key-tool/index.d.ts +0 -19
  320. package/lib/features/accessibility/resize-key-tool/index.d.ts.map +0 -1
  321. package/lib/features/accessibility/resize-key-tool/index.js +0 -35
  322. package/lib/features/accessibility/resize-key-tool/index.js.map +0 -1
  323. package/lib/features/accessibility/search/index.d.ts +0 -19
  324. package/lib/features/accessibility/search/index.d.ts.map +0 -1
  325. package/lib/features/accessibility/search/index.js +0 -35
  326. package/lib/features/accessibility/search/index.js.map +0 -1
  327. package/lib/features/accessibility/toast/index.d.ts +0 -19
  328. package/lib/features/accessibility/toast/index.d.ts.map +0 -1
  329. package/lib/features/accessibility/toast/index.js +0 -35
  330. package/lib/features/accessibility/toast/index.js.map +0 -1
  331. package/lib/features/accessibility/view-key-tools/index.d.ts +0 -20
  332. package/lib/features/accessibility/view-key-tools/index.d.ts.map +0 -1
  333. package/lib/features/accessibility/view-key-tools/index.js +0 -36
  334. package/lib/features/accessibility/view-key-tools/index.js.map +0 -1
  335. package/lib/features/bounds/index.d.ts +0 -25
  336. package/lib/features/bounds/index.d.ts.map +0 -1
  337. package/lib/features/bounds/index.js +0 -41
  338. package/lib/features/bounds/index.js.map +0 -1
  339. package/lib/features/change-bounds/index.d.ts +0 -22
  340. package/lib/features/change-bounds/index.d.ts.map +0 -1
  341. package/lib/features/change-bounds/index.js +0 -38
  342. package/lib/features/change-bounds/index.js.map +0 -1
  343. package/lib/features/command-palette/index.d.ts +0 -20
  344. package/lib/features/command-palette/index.d.ts.map +0 -1
  345. package/lib/features/command-palette/index.js +0 -36
  346. package/lib/features/command-palette/index.js.map +0 -1
  347. package/lib/features/context-menu/index.d.ts +0 -20
  348. package/lib/features/context-menu/index.d.ts.map +0 -1
  349. package/lib/features/context-menu/index.js +0 -36
  350. package/lib/features/context-menu/index.js.map +0 -1
  351. package/lib/features/copy-paste/index.d.ts +0 -20
  352. package/lib/features/copy-paste/index.d.ts.map +0 -1
  353. package/lib/features/copy-paste/index.js +0 -36
  354. package/lib/features/copy-paste/index.js.map +0 -1
  355. package/lib/features/debug/index.d.ts.map +0 -1
  356. package/lib/features/debug/index.js +0 -36
  357. package/lib/features/debug/index.js.map +0 -1
  358. package/lib/features/decoration/index.d.ts +0 -18
  359. package/lib/features/decoration/index.d.ts.map +0 -1
  360. package/lib/features/decoration/index.js +0 -34
  361. package/lib/features/decoration/index.js.map +0 -1
  362. package/lib/features/element-template/index.d.ts +0 -20
  363. package/lib/features/element-template/index.d.ts.map +0 -1
  364. package/lib/features/element-template/index.js +0 -36
  365. package/lib/features/element-template/index.js.map +0 -1
  366. package/lib/features/export/index.d.ts +0 -19
  367. package/lib/features/export/index.d.ts.map +0 -1
  368. package/lib/features/export/index.js +0 -35
  369. package/lib/features/export/index.js.map +0 -1
  370. package/lib/features/grid/index.d.ts +0 -21
  371. package/lib/features/grid/index.d.ts.map +0 -1
  372. package/lib/features/grid/index.js +0 -37
  373. package/lib/features/grid/index.js.map +0 -1
  374. package/lib/features/helper-lines/index.d.ts +0 -22
  375. package/lib/features/helper-lines/index.d.ts.map +0 -1
  376. package/lib/features/helper-lines/index.js +0 -38
  377. package/lib/features/helper-lines/index.js.map +0 -1
  378. package/lib/features/hints/index.d.ts +0 -19
  379. package/lib/features/hints/index.d.ts.map +0 -1
  380. package/lib/features/hints/index.js +0 -35
  381. package/lib/features/hints/index.js.map +0 -1
  382. package/lib/features/hover/index.d.ts +0 -18
  383. package/lib/features/hover/index.d.ts.map +0 -1
  384. package/lib/features/hover/index.js +0 -34
  385. package/lib/features/hover/index.js.map +0 -1
  386. package/lib/features/index.d.ts +0 -46
  387. package/lib/features/index.d.ts.map +0 -1
  388. package/lib/features/index.js +0 -62
  389. package/lib/features/index.js.map +0 -1
  390. package/lib/features/label-edit/index.d.ts +0 -19
  391. package/lib/features/label-edit/index.d.ts.map +0 -1
  392. package/lib/features/label-edit/index.js +0 -35
  393. package/lib/features/label-edit/index.js.map +0 -1
  394. package/lib/features/label-edit-ui/index.d.ts +0 -18
  395. package/lib/features/label-edit-ui/index.d.ts.map +0 -1
  396. package/lib/features/label-edit-ui/index.js +0 -34
  397. package/lib/features/label-edit-ui/index.js.map +0 -1
  398. package/lib/features/layout/index.d.ts +0 -18
  399. package/lib/features/layout/index.d.ts.map +0 -1
  400. package/lib/features/layout/index.js +0 -34
  401. package/lib/features/layout/index.js.map +0 -1
  402. package/lib/features/navigation/index.d.ts +0 -19
  403. package/lib/features/navigation/index.d.ts.map +0 -1
  404. package/lib/features/navigation/index.js +0 -35
  405. package/lib/features/navigation/index.js.map +0 -1
  406. package/lib/features/reconnect/index.d.ts +0 -17
  407. package/lib/features/reconnect/index.d.ts.map +0 -1
  408. package/lib/features/reconnect/index.js +0 -33
  409. package/lib/features/reconnect/index.js.map +0 -1
  410. package/lib/features/routing/index.d.ts +0 -18
  411. package/lib/features/routing/index.d.ts.map +0 -1
  412. package/lib/features/routing/index.js +0 -34
  413. package/lib/features/routing/index.js.map +0 -1
  414. package/lib/features/save/index.d.ts +0 -18
  415. package/lib/features/save/index.d.ts.map +0 -1
  416. package/lib/features/save/index.js +0 -34
  417. package/lib/features/save/index.js.map +0 -1
  418. package/lib/features/select/index.d.ts +0 -19
  419. package/lib/features/select/index.d.ts.map +0 -1
  420. package/lib/features/select/index.js +0 -35
  421. package/lib/features/select/index.js.map +0 -1
  422. package/lib/features/source-model-watcher/index.d.ts +0 -18
  423. package/lib/features/source-model-watcher/index.d.ts.map +0 -1
  424. package/lib/features/source-model-watcher/index.js +0 -34
  425. package/lib/features/source-model-watcher/index.js.map +0 -1
  426. package/lib/features/status/index.d.ts +0 -18
  427. package/lib/features/status/index.d.ts.map +0 -1
  428. package/lib/features/status/index.js +0 -34
  429. package/lib/features/status/index.js.map +0 -1
  430. package/lib/features/svg-metadata/index.d.ts +0 -18
  431. package/lib/features/svg-metadata/index.d.ts.map +0 -1
  432. package/lib/features/svg-metadata/index.js +0 -34
  433. package/lib/features/svg-metadata/index.js.map +0 -1
  434. package/lib/features/tool-palette/index.d.ts +0 -18
  435. package/lib/features/tool-palette/index.d.ts.map +0 -1
  436. package/lib/features/tool-palette/index.js +0 -34
  437. package/lib/features/tool-palette/index.js.map +0 -1
  438. package/lib/features/tools/change-bounds/index.d.ts +0 -23
  439. package/lib/features/tools/change-bounds/index.d.ts.map +0 -1
  440. package/lib/features/tools/change-bounds/index.js +0 -39
  441. package/lib/features/tools/change-bounds/index.js.map +0 -1
  442. package/lib/features/tools/deletion/index.d.ts +0 -18
  443. package/lib/features/tools/deletion/index.d.ts.map +0 -1
  444. package/lib/features/tools/deletion/index.js +0 -34
  445. package/lib/features/tools/deletion/index.js.map +0 -1
  446. package/lib/features/tools/edge-creation/index.d.ts +0 -21
  447. package/lib/features/tools/edge-creation/index.d.ts.map +0 -1
  448. package/lib/features/tools/edge-creation/index.js +0 -37
  449. package/lib/features/tools/edge-creation/index.js.map +0 -1
  450. package/lib/features/tools/edge-edit/index.d.ts +0 -19
  451. package/lib/features/tools/edge-edit/index.d.ts.map +0 -1
  452. package/lib/features/tools/edge-edit/index.js +0 -35
  453. package/lib/features/tools/edge-edit/index.js.map +0 -1
  454. package/lib/features/tools/index.d.ts +0 -24
  455. package/lib/features/tools/index.d.ts.map +0 -1
  456. package/lib/features/tools/index.js +0 -40
  457. package/lib/features/tools/index.js.map +0 -1
  458. package/lib/features/tools/marquee-selection/index.d.ts +0 -23
  459. package/lib/features/tools/marquee-selection/index.d.ts.map +0 -1
  460. package/lib/features/tools/marquee-selection/index.js +0 -39
  461. package/lib/features/tools/marquee-selection/index.js.map +0 -1
  462. package/lib/features/tools/node-creation/index.d.ts +0 -18
  463. package/lib/features/tools/node-creation/index.d.ts.map +0 -1
  464. package/lib/features/tools/node-creation/index.js +0 -34
  465. package/lib/features/tools/node-creation/index.js.map +0 -1
  466. package/lib/features/undo-redo/index.d.ts +0 -18
  467. package/lib/features/undo-redo/index.d.ts.map +0 -1
  468. package/lib/features/undo-redo/index.js +0 -34
  469. package/lib/features/undo-redo/index.js.map +0 -1
  470. package/lib/features/validation/index.d.ts +0 -20
  471. package/lib/features/validation/index.d.ts.map +0 -1
  472. package/lib/features/validation/index.js +0 -36
  473. package/lib/features/validation/index.js.map +0 -1
  474. package/lib/features/viewport/index.d.ts +0 -21
  475. package/lib/features/viewport/index.d.ts.map +0 -1
  476. package/lib/features/viewport/index.js +0 -37
  477. package/lib/features/viewport/index.js.map +0 -1
  478. package/lib/utils/index.d.ts +0 -23
  479. package/lib/utils/index.d.ts.map +0 -1
  480. package/lib/utils/index.js +0 -39
  481. package/lib/utils/index.js.map +0 -1
  482. package/lib/views/index.d.ts +0 -24
  483. package/lib/views/index.d.ts.map +0 -1
  484. package/lib/views/index.js +0 -40
  485. package/lib/views/index.js.map +0 -1
  486. package/src/base/auto-complete/index.ts +0 -20
  487. package/src/base/feedback/index.ts +0 -21
  488. package/src/base/focus/index.ts +0 -17
  489. package/src/base/index.ts +0 -33
  490. package/src/base/model/index.ts +0 -19
  491. package/src/base/tool-manager/index.ts +0 -17
  492. package/src/base/ui-extension/index.ts +0 -17
  493. package/src/base/view/index.ts +0 -18
  494. package/src/features/accessibility/edge-autocomplete/index.ts +0 -19
  495. package/src/features/accessibility/element-navigation/index.ts +0 -21
  496. package/src/features/accessibility/focus-tracker/index.ts +0 -17
  497. package/src/features/accessibility/index.ts +0 -30
  498. package/src/features/accessibility/key-shortcut/index.ts +0 -18
  499. package/src/features/accessibility/keyboard-grid/index.ts +0 -20
  500. package/src/features/accessibility/keyboard-pointer/index.ts +0 -21
  501. package/src/features/accessibility/keyboard-tool-palette/index.ts +0 -17
  502. package/src/features/accessibility/move-zoom/index.ts +0 -18
  503. package/src/features/accessibility/resize-key-tool/index.ts +0 -18
  504. package/src/features/accessibility/search/index.ts +0 -18
  505. package/src/features/accessibility/toast/index.ts +0 -18
  506. package/src/features/accessibility/view-key-tools/index.ts +0 -19
  507. package/src/features/bounds/index.ts +0 -24
  508. package/src/features/change-bounds/index.ts +0 -21
  509. package/src/features/command-palette/index.ts +0 -19
  510. package/src/features/context-menu/index.ts +0 -19
  511. package/src/features/copy-paste/index.ts +0 -19
  512. package/src/features/debug/index.ts +0 -19
  513. package/src/features/decoration/index.ts +0 -17
  514. package/src/features/element-template/index.ts +0 -19
  515. package/src/features/export/index.ts +0 -18
  516. package/src/features/grid/index.ts +0 -20
  517. package/src/features/helper-lines/index.ts +0 -21
  518. package/src/features/hints/index.ts +0 -18
  519. package/src/features/hover/index.ts +0 -17
  520. package/src/features/index.ts +0 -45
  521. package/src/features/label-edit/index.ts +0 -18
  522. package/src/features/label-edit-ui/index.ts +0 -17
  523. package/src/features/layout/index.ts +0 -17
  524. package/src/features/navigation/index.ts +0 -18
  525. package/src/features/reconnect/index.ts +0 -16
  526. package/src/features/routing/index.ts +0 -17
  527. package/src/features/save/index.ts +0 -17
  528. package/src/features/select/index.ts +0 -18
  529. package/src/features/source-model-watcher/index.ts +0 -17
  530. package/src/features/status/index.ts +0 -17
  531. package/src/features/svg-metadata/index.ts +0 -17
  532. package/src/features/tool-palette/index.ts +0 -17
  533. package/src/features/tools/change-bounds/index.ts +0 -22
  534. package/src/features/tools/deletion/index.ts +0 -17
  535. package/src/features/tools/edge-creation/index.ts +0 -20
  536. package/src/features/tools/edge-edit/index.ts +0 -18
  537. package/src/features/tools/index.ts +0 -23
  538. package/src/features/tools/marquee-selection/index.ts +0 -22
  539. package/src/features/tools/node-creation/index.ts +0 -17
  540. package/src/features/undo-redo/index.ts +0 -17
  541. package/src/features/validation/index.ts +0 -19
  542. package/src/features/viewport/index.ts +0 -20
  543. package/src/utils/index.ts +0 -22
  544. package/src/views/index.ts +0 -23
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -37,17 +37,8 @@ import {
37
37
  TYPES,
38
38
  findParentByFeature
39
39
  } from '@eclipse-glsp/sprotty';
40
- import { CSS_RESIZE_MODE, ChangeBoundsManager, ChangeBoundsTracker, TrackedElementResize, TrackedResize } from '..';
41
40
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
42
- import {
43
- CursorCSS,
44
- ModifyCSSFeedbackAction,
45
- applyCssClasses,
46
- cursorFeedbackAction,
47
- deleteCssClasses,
48
- toggleCssClasses
49
- } from '../../../base/feedback/css-feedback';
50
- import { FeedbackEmitter } from '../../../base/feedback/feeback-emitter';
41
+ import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
51
42
  import { ISelectionListener, SelectionService } from '../../../base/selection-service';
52
43
  import {
53
44
  BoundsAwareModelElement,
@@ -58,20 +49,19 @@ import {
58
49
  isNonRoutableSelectedMovableBoundsAware,
59
50
  toElementAndBounds
60
51
  } from '../../../utils/gmodel-util';
61
- import { LocalRequestBoundsAction, SetBoundsFeedbackAction } from '../../bounds';
52
+ import { LocalRequestBoundsAction } from '../../bounds/local-bounds';
53
+ import { SetBoundsFeedbackAction } from '../../bounds/set-bounds-feedback-command';
62
54
  import { SResizeHandle, isResizable } from '../../change-bounds/model';
63
- import {
64
- IMovementRestrictor,
65
- movementRestrictionFeedback,
66
- removeMovementRestrictionFeedback
67
- } from '../../change-bounds/movement-restrictor';
55
+ import { IMovementRestrictor } from '../../change-bounds/movement-restrictor';
68
56
  import { BaseEditTool } from '../base-tools';
57
+ import { CSS_ACTIVE_HANDLE, ChangeBoundsManager } from './change-bounds-manager';
69
58
  import {
70
59
  HideChangeBoundsToolResizeFeedbackAction,
71
60
  MoveFinishedEventAction,
72
61
  ShowChangeBoundsToolResizeFeedbackAction
73
62
  } from './change-bounds-tool-feedback';
74
63
  import { FeedbackMoveMouseListener } from './change-bounds-tool-move-feedback';
64
+ import { ChangeBoundsTracker, TrackedElementResize, TrackedResize } from './change-bounds-tracker';
75
65
 
76
66
  /**
77
67
  * The change bounds tool has the license to move multiple elements or resize a single element by implementing the ChangeBounds operation.
@@ -93,7 +83,7 @@ export class ChangeBoundsTool extends BaseEditTool {
93
83
  @inject(SelectionService) protected selectionService: SelectionService;
94
84
  @inject(EdgeRouterRegistry) @optional() readonly edgeRouterRegistry?: EdgeRouterRegistry;
95
85
  @inject(TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor;
96
- @inject(TYPES.IChangeBoundsManager) readonly changeBoundsManager: ChangeBoundsManager;
86
+ @inject(ChangeBoundsManager) readonly changeBoundsManager: ChangeBoundsManager;
97
87
 
98
88
  get id(): string {
99
89
  return ChangeBoundsTool.ID;
@@ -133,7 +123,7 @@ export class ChangeBoundsTool extends BaseEditTool {
133
123
  }
134
124
 
135
125
  export class ChangeBoundsListener extends DragAwareMouseListener implements ISelectionListener {
136
- static readonly CSS_CLASS_ACTIVE = 'active';
126
+ static readonly CSS_CLASS_ACTIVE = CSS_ACTIVE_HANDLE;
137
127
 
138
128
  // members for calculating the correct position change
139
129
  protected initialBounds: ElementAndBounds | undefined;
@@ -206,15 +196,13 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements ISel
206
196
  // consider resize handles ourselves
207
197
  if (this.activeResizeHandle && this.tracker.isTracking()) {
208
198
  const resize = this.tracker.resizeElements(this.activeResizeHandle, { snap: event, symmetric: event, restrict: event });
209
- this.addResizeFeedback(resize, target, event);
210
199
  const resizeAction = this.resizeBoundsAction(resize);
211
200
  if (resizeAction.bounds.length > 0) {
212
201
  this.resizeFeedback.add(resizeAction, () => this.resetBounds());
213
202
  this.tracker.updateTrackingPosition(resize.handleMove.moveVector);
214
- } else {
215
- this.resizeFeedback.add(undefined, () => this.resetBounds());
203
+ this.addResizeFeedback(resize, target, event);
204
+ this.resizeFeedback.submit();
216
205
  }
217
- this.resizeFeedback.submit();
218
206
  }
219
207
  return super.draggingMouseMove(target, event);
220
208
  }
@@ -234,40 +222,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements ISel
234
222
  }
235
223
 
236
224
  protected addResizeFeedback(resize: TrackedResize, target: GModelElement, event: MouseEvent): void {
237
- const handle = resize.handleMove.element;
238
- // handle feedback
239
- this.resizeFeedback.add(
240
- applyCssClasses(handle, ChangeBoundsListener.CSS_CLASS_ACTIVE),
241
- deleteCssClasses(handle, ChangeBoundsListener.CSS_CLASS_ACTIVE)
242
- );
243
-
244
- // graph feedback
245
- this.resizeFeedback.add(
246
- ModifyCSSFeedbackAction.create({ add: [CSS_RESIZE_MODE] }),
247
- ModifyCSSFeedbackAction.create({ remove: [CSS_RESIZE_MODE] })
248
- );
249
-
250
- // cursor feedback
251
- const cursorClass = SResizeHandle.getCursorCss(resize.handleMove.element);
252
- this.resizeFeedback.add(cursorFeedbackAction(cursorClass), cursorFeedbackAction(CursorCSS.DEFAULT));
253
-
254
- const movementRestrictor = this.tool.changeBoundsManager.movementRestrictor;
255
- resize.elementResizes.forEach(elementResize => {
256
- if (movementRestrictor) {
257
- this.resizeFeedback.add(
258
- movementRestrictionFeedback(elementResize.element, movementRestrictor, elementResize.valid.move),
259
- removeMovementRestrictionFeedback(elementResize.element, movementRestrictor)
260
- );
261
- }
262
- this.resizeFeedback.add(
263
- toggleCssClasses(elementResize.element, !elementResize.valid.size, 'resize-not-allowed'),
264
- deleteCssClasses(elementResize.element, 'resize-not-allowed')
265
- );
266
- });
267
- this.resizeFeedback.add(
268
- toggleCssClasses(resize.handleMove.element, !resize.valid.size, 'resize-not-allowed'),
269
- deleteCssClasses(resize.handleMove.element, 'resize-not-allowed')
270
- );
225
+ this.tool.changeBoundsManager.addResizeFeedback(this.resizeFeedback, resize, target, event);
271
226
  }
272
227
 
273
228
  protected resetBounds(): Action[] {
@@ -27,11 +27,14 @@ import {
27
27
  Vector,
28
28
  Writable,
29
29
  hasBooleanProp,
30
+ hasObjectProp,
31
+ isBoundsAware,
30
32
  isMoveable
31
33
  } from '@eclipse-glsp/sprotty';
32
- import { ChangeBoundsManager } from '..';
33
- import { BoundsAwareModelElement, MoveableElement, ResizableModelElement, getElements } from '../../../utils';
34
- import { DiagramMovementCalculator, ResizeHandleLocation, SResizeHandle } from '../../change-bounds';
34
+ import { BoundsAwareModelElement, MoveableElement, ResizableModelElement, getElements } from '../../../utils/gmodel-util';
35
+ import { ResizeHandleLocation, SResizeHandle } from '../../change-bounds/model';
36
+ import { DiagramMovementCalculator } from '../../change-bounds/tracker';
37
+ import { ChangeBoundsManager } from './change-bounds-manager';
35
38
 
36
39
  export interface ElementTrackingOptions {
37
40
  /** Snap position. Default: true. */
@@ -73,6 +76,17 @@ export interface TrackedElementMove extends ResolvedElementMove {
73
76
  valid: boolean;
74
77
  }
75
78
 
79
+ export namespace TrackedElementMove {
80
+ export function is(obj: any): obj is TrackedElementMove {
81
+ return (
82
+ hasObjectProp(obj, 'element') &&
83
+ hasObjectProp(obj, 'fromPosition') &&
84
+ hasObjectProp(obj, 'toPosition') &&
85
+ hasBooleanProp(obj, 'valid')
86
+ );
87
+ }
88
+ }
89
+
76
90
  export type TypedElementMove<T extends MoveableElement> = TrackedElementMove & { element: T };
77
91
 
78
92
  export interface TrackedMove extends Movement {
@@ -134,6 +148,14 @@ export interface TrackedElementResize {
134
148
  };
135
149
  }
136
150
 
151
+ export namespace TrackedElementResize {
152
+ export function is(obj: any): obj is TrackedElementResize {
153
+ return (
154
+ isBoundsAware(obj.element) && hasObjectProp(obj, 'fromBounds') && hasObjectProp(obj, 'toBounds') && hasObjectProp(obj, 'valid')
155
+ );
156
+ }
157
+ }
158
+
137
159
  export interface TrackedResize extends Movement {
138
160
  handleMove: TrackedHandleMove;
139
161
  elementResizes: TrackedElementResize[];
@@ -179,7 +201,7 @@ export class ChangeBoundsTracker {
179
201
  const update = this.calculateDiagramMovement();
180
202
  const move: TrackedMove = { ...update, elementMoves: [], valid: true, options };
181
203
 
182
- if (Vector.isZero(update.vector)) {
204
+ if (Vector.isZero(update.vector) && options.skipStatic) {
183
205
  // no movement detected so elements won't be moved, exit early
184
206
  return move;
185
207
  }
@@ -260,13 +282,13 @@ export class ChangeBoundsTracker {
260
282
  const update = this.calculateDiagramMovement();
261
283
  const handleMove = this.calculateHandleMove(new MoveableResizeHandle(handle), update.vector, options);
262
284
  const resize: TrackedResize = { ...update, valid: { move: true, size: true }, options, handleMove, elementResizes: [] };
263
- if (Vector.isZero(handleMove.moveVector)) {
285
+ if (Vector.isZero(handleMove.moveVector) && options.skipStatic) {
264
286
  // no movement detected so elements won't be moved, exit early
265
287
  return resize;
266
288
  }
267
289
 
268
290
  // calculate resize for each element (typically only one element is resized at a time but customizations are possible)
269
- const elementsToResize = this.getResizeableElements(handle, options);
291
+ const elementsToResize = this.getResizableElements(handle, options);
270
292
  for (const element of elementsToResize) {
271
293
  const elementResize = this.calculateElementResize(element, handleMove, options);
272
294
  if (!this.skipElementResize(elementResize, options)) {
@@ -293,7 +315,7 @@ export class ChangeBoundsTracker {
293
315
  return this.calculateElementMove(handle, diagramMovement, moveOptions);
294
316
  }
295
317
 
296
- protected getResizeableElements(handle: SResizeHandle, options: ResizeOptions): ResizableModelElement[] {
318
+ protected getResizableElements(handle: SResizeHandle, options: ResizeOptions): ResizableModelElement[] {
297
319
  return [handle.parent];
298
320
  }
299
321
 
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -32,7 +32,7 @@ import {
32
32
  isConnectable
33
33
  } from '@eclipse-glsp/sprotty';
34
34
  import { inject, injectable } from 'inversify';
35
- import { feedbackFeature } from '../../../base';
35
+ import { feedbackFeature } from '../../../base/feedback/feedback-action-dispatcher';
36
36
  import { FeedbackCommand } from '../../../base/feedback/feedback-command';
37
37
  import { isRoutable } from '../../../utils/gmodel-util';
38
38
  import { toAbsolutePosition } from '../../../utils/viewpoint-util';
@@ -29,8 +29,8 @@ import {
29
29
  isBoundsAware,
30
30
  isConnectable
31
31
  } from '@eclipse-glsp/sprotty';
32
- import { FeedbackEmitter } from '../../../base';
33
32
  import { IFeedbackActionDispatcher } from '../../../base/feedback/feedback-action-dispatcher';
33
+ import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
34
34
  import { absoluteToParent, getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
35
35
  import { FeedbackEdgeEnd, feedbackEdgeEndId } from './dangling-edge-feedback';
36
36
 
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -25,13 +25,14 @@ import {
25
25
  isConnectable,
26
26
  isCtrlOrCmd
27
27
  } from '@eclipse-glsp/sprotty';
28
- import { inject, injectable } from 'inversify';
29
- import { FeedbackEmitter } from '../../../base';
28
+ import { inject, injectable, optional } from 'inversify';
30
29
  import { GLSPActionDispatcher } from '../../../base/action-dispatcher';
31
30
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
32
31
  import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
32
+ import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
33
33
  import { EnableDefaultToolsAction } from '../../../base/tool-manager/tool';
34
34
  import { GEdge } from '../../../model';
35
+ import { Grid } from '../../grid/grid';
35
36
  import { ITypeHintProvider } from '../../hints/type-hint-provider';
36
37
  import { BaseCreationTool } from '../base-tools';
37
38
  import { DrawFeedbackEdgeAction, RemoveFeedbackEdgeAction } from './dangling-edge-feedback';
@@ -45,8 +46,8 @@ export class EdgeCreationTool extends BaseCreationTool<TriggerEdgeCreationAction
45
46
  static ID = 'tool_create_edge';
46
47
 
47
48
  @inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
48
-
49
49
  @inject(TYPES.ITypeHintProvider) protected typeHintProvider: ITypeHintProvider;
50
+ @optional() @inject(TYPES.Grid) protected grid: Grid;
50
51
 
51
52
  protected isTriggerAction = TriggerEdgeCreationAction.is;
52
53
 
@@ -59,7 +60,13 @@ export class EdgeCreationTool extends BaseCreationTool<TriggerEdgeCreationAction
59
60
  const toolFeedback = this.createFeedbackEmitter()
60
61
  .add(cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED), cursorFeedbackAction())
61
62
  .submit();
62
- const creationListener = new EdgeCreationToolMouseListener(this.triggerAction, this.actionDispatcher, this.typeHintProvider, this);
63
+ const creationListener = new EdgeCreationToolMouseListener(
64
+ this.triggerAction,
65
+ this.actionDispatcher,
66
+ this.typeHintProvider,
67
+ this,
68
+ this.grid?.x / 2
69
+ );
63
70
  this.toDisposeOnDisable.push(
64
71
  mouseMovingFeedback,
65
72
  this.mouseTool.registerListener(mouseMovingFeedback),
@@ -70,7 +77,6 @@ export class EdgeCreationTool extends BaseCreationTool<TriggerEdgeCreationAction
70
77
  }
71
78
  }
72
79
 
73
- @injectable()
74
80
  export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
75
81
  protected source?: string;
76
82
  protected target?: string;
@@ -85,9 +91,10 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
85
91
  protected triggerAction: TriggerEdgeCreationAction,
86
92
  protected actionDispatcher: GLSPActionDispatcher,
87
93
  protected typeHintProvider: ITypeHintProvider,
88
- protected tool: EdgeCreationTool
94
+ protected tool: EdgeCreationTool,
95
+ protected dragSensitivity?: number
89
96
  ) {
90
- super();
97
+ super(dragSensitivity);
91
98
  this.proxyEdge = new GEdge();
92
99
  this.proxyEdge.type = triggerAction.elementTypeId;
93
100
  this.cursorFeedback = tool.createFeedbackEmitter();
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -41,13 +41,14 @@ import {
41
41
  typeGuard
42
42
  } from '@eclipse-glsp/sprotty';
43
43
  import { inject, injectable } from 'inversify';
44
- import { ChangeBoundsManager, ChangeBoundsTracker, MoveableRoutingHandle } from '..';
45
- import { FeedbackEmitter } from '../../../base';
46
44
  import { IFeedbackActionDispatcher } from '../../../base/feedback/feedback-action-dispatcher';
47
45
  import { FeedbackCommand } from '../../../base/feedback/feedback-command';
46
+ import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
48
47
  import { forEachElement, getMatchingElements, isRoutable, isRoutingHandle } from '../../../utils/gmodel-util';
49
48
  import { getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
50
49
  import { addReconnectHandles, removeReconnectHandles } from '../../reconnect/model';
50
+ import { ChangeBoundsManager } from '../change-bounds/change-bounds-manager';
51
+ import { ChangeBoundsTracker, MoveableRoutingHandle } from '../change-bounds/change-bounds-tracker';
51
52
  import { FeedbackEdgeEnd, feedbackEdgeEndId, feedbackEdgeId } from '../edge-creation/dangling-edge-feedback';
52
53
  import { FeedbackEdgeEndMovingMouseListener } from '../edge-creation/edge-creation-tool-feedback';
53
54
 
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -24,21 +24,20 @@ import {
24
24
  GRoutableElement,
25
25
  GRoutingHandle,
26
26
  ReconnectEdgeOperation,
27
- TYPES,
28
27
  canEditRouting,
29
28
  findParentByFeature,
30
29
  isConnectable,
31
30
  isSelected
32
31
  } from '@eclipse-glsp/sprotty';
33
32
  import { inject, injectable, optional } from 'inversify';
34
- import { ChangeBoundsManager } from '..';
35
- import { FeedbackEmitter } from '../../../base';
36
33
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
37
34
  import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
35
+ import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
38
36
  import { ISelectionListener, SelectionService } from '../../../base/selection-service';
39
37
  import { calcElementAndRoutingPoints, isRoutable, isRoutingHandle } from '../../../utils/gmodel-util';
40
38
  import { GReconnectHandle, isReconnectHandle, isReconnectable, isSourceRoutingHandle, isTargetRoutingHandle } from '../../reconnect/model';
41
39
  import { BaseEditTool } from '../base-tools';
40
+ import { ChangeBoundsManager } from '../change-bounds/change-bounds-manager';
42
41
  import { DrawFeedbackEdgeAction, RemoveFeedbackEdgeAction, feedbackEdgeId } from '../edge-creation/dangling-edge-feedback';
43
42
  import {
44
43
  DrawFeedbackEdgeSourceAction,
@@ -57,7 +56,7 @@ export class EdgeEditTool extends BaseEditTool {
57
56
  @inject(SelectionService) protected selectionService: SelectionService;
58
57
  @inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
59
58
  @inject(EdgeRouterRegistry) @optional() readonly edgeRouterRegistry?: EdgeRouterRegistry;
60
- @inject(TYPES.IChangeBoundsManager) readonly changeBoundsManager: ChangeBoundsManager;
59
+ @inject(ChangeBoundsManager) readonly changeBoundsManager: ChangeBoundsManager;
61
60
 
62
61
  protected feedbackEdgeSourceMovingListener: FeedbackEdgeSourceMovingMouseListener;
63
62
  protected feedbackEdgeTargetMovingListener: FeedbackEdgeTargetMovingMouseListener;
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2021-2023 EclipseSource and others.
2
+ * Copyright (c) 2021-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -30,7 +30,7 @@ import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener'
30
30
  import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
31
31
  import { EnableDefaultToolsAction } from '../../../base/tool-manager/tool';
32
32
  import { GEdge } from '../../../model';
33
- import { BoundsAwareModelElement, SelectableBoundsAware, isSelectableAndBoundsAware } from '../../../utils';
33
+ import { BoundsAwareModelElement, SelectableBoundsAware, isSelectableAndBoundsAware } from '../../../utils/gmodel-util';
34
34
  import { getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
35
35
  import { BaseEditTool } from '../base-tools';
36
36
  import { IMarqueeBehavior, MarqueeUtil } from './marquee-behavior';
@@ -0,0 +1,76 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2024 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ import { GModelElement, Point, findChildrenAtPosition } from '@eclipse-glsp/sprotty';
18
+ import { inject, injectable } from 'inversify';
19
+ import { CSS_GHOST_ELEMENT, CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
20
+ import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
21
+ import { ContainerElement, isContainable } from '../../hints/model';
22
+ import { ChangeBoundsManager } from '../change-bounds/change-bounds-manager';
23
+ export interface TrackedInsert {
24
+ elementTypeId: string;
25
+ location: Point;
26
+ container?: GModelElement;
27
+ valid: boolean;
28
+ }
29
+
30
+ export interface InsertOptions extends Record<string, unknown> {
31
+ /** Flag to indicate whether the location within a container needs to be valid. Default: false */
32
+ validateLocationInContainer?: boolean;
33
+
34
+ /** Overwrite for location validation if validation result is already known. Default: undefined */
35
+ validLocationOverwrite?: boolean;
36
+
37
+ /** Mouse event to be used for finding the container. Default: undefined */
38
+ evt?: MouseEvent;
39
+ }
40
+
41
+ export const DEFAULT_INSERT_OPTIONS: InsertOptions = {
42
+ validateLocationInContainer: false
43
+ };
44
+
45
+ @injectable()
46
+ export class ContainerManager {
47
+ @inject(ChangeBoundsManager) protected readonly changeBoundsManager: ChangeBoundsManager;
48
+
49
+ insert(proxy: GModelElement, location: Point, elementTypeId: string, opts?: Partial<InsertOptions>): TrackedInsert {
50
+ const options = { ...DEFAULT_INSERT_OPTIONS, ...opts };
51
+ const container = this.findContainer(location, proxy, opts?.evt);
52
+ let valid = !container || container.isContainableElement(elementTypeId);
53
+ if (valid && (!container || options.validateLocationInContainer)) {
54
+ // we need to check whether the location is valid either because we do not have a container or the option is set
55
+ valid = opts?.validLocationOverwrite ?? this.changeBoundsManager.hasValidPosition(proxy, location);
56
+ }
57
+ return { elementTypeId, container, location, valid };
58
+ }
59
+
60
+ findContainer(location: Point, ctx: GModelElement, evt?: MouseEvent): ContainerElement | undefined {
61
+ // reverse order of children to find the innermost, top-rendered containers first
62
+ return findChildrenAtPosition(ctx.root, location)
63
+ .reverse()
64
+ .find(element => isContainable(element) && !element.cssClasses?.includes(CSS_GHOST_ELEMENT)) as ContainerElement | undefined;
65
+ }
66
+
67
+ addInsertFeedback(feedback: FeedbackEmitter, trackedInsert: TrackedInsert, ctx?: GModelElement, event?: MouseEvent): FeedbackEmitter {
68
+ // cursor feedback
69
+ if (!trackedInsert.valid) {
70
+ feedback.add(cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED), cursorFeedbackAction(CursorCSS.DEFAULT));
71
+ } else {
72
+ feedback.add(cursorFeedbackAction(CursorCSS.NODE_CREATION), cursorFeedbackAction());
73
+ }
74
+ return feedback;
75
+ }
76
+ }
@@ -0,0 +1,41 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2024 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ import { Args, Dimension, FeatureSet, GNode, boundsFeature, createFeatureSet, moveFeature } from '@eclipse-glsp/sprotty';
18
+ import { v4 as uuid } from 'uuid';
19
+ import { ArgsAware, argsFeature } from '../../../base/args-feature';
20
+
21
+ export const ARG_LENGTH = 'length';
22
+
23
+ export class InsertIndicator extends GNode implements ArgsAware {
24
+ static override readonly DEFAULT_FEATURES = [boundsFeature, moveFeature, argsFeature];
25
+
26
+ static TYPE = 'node:insert-indicator';
27
+
28
+ override id: string = uuid();
29
+ override type: string = InsertIndicator.TYPE;
30
+ override features?: FeatureSet = createFeatureSet(InsertIndicator.DEFAULT_FEATURES);
31
+ override cssClasses: string[] = ['insert-indicator', 'sprotty-node'];
32
+ override size: Dimension = { width: 1, height: 1 };
33
+ args: Args = {};
34
+
35
+ constructor(length?: number) {
36
+ super();
37
+ if (length) {
38
+ this.args = { [ARG_LENGTH]: length };
39
+ }
40
+ }
41
+ }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019-2023 EclipseSource and others.
2
+ * Copyright (c) 2019-2024 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,15 +13,27 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { FeatureModule, TYPES, TriggerNodeCreationAction, bindAsService, configureActionHandler } from '@eclipse-glsp/sprotty';
16
+ import {
17
+ FeatureModule,
18
+ TYPES,
19
+ TriggerNodeCreationAction,
20
+ bindAsService,
21
+ configureActionHandler,
22
+ configureModelElement
23
+ } from '@eclipse-glsp/sprotty';
17
24
  import { elementTemplateModule } from '../../element-template/element-template-module';
25
+ import { ContainerManager } from './container-manager';
26
+ import { InsertIndicator } from './insert-indicator';
18
27
  import { NodeCreationTool } from './node-creation-tool';
28
+ import { InsertIndicatorView } from './node-creation-views';
19
29
 
20
30
  export const nodeCreationToolModule = new FeatureModule(
21
31
  (bind, unbind, isBound, rebind) => {
22
32
  const context = { bind, unbind, isBound, rebind };
33
+ bind(ContainerManager).toSelf().inSingletonScope();
23
34
  bindAsService(context, TYPES.ITool, NodeCreationTool);
24
35
  configureActionHandler(context, TriggerNodeCreationAction.KIND, NodeCreationTool);
36
+ configureModelElement(context, InsertIndicator.TYPE, InsertIndicator, InsertIndicatorView);
25
37
  },
26
38
  { requires: elementTemplateModule }
27
39
  );