@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) 2020-2023 EclipseSource and others.
2
+ * Copyright (c) 2020-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
@@ -16,30 +16,32 @@
16
16
  import {
17
17
  Action,
18
18
  CreateNodeOperation,
19
+ Disposable,
20
+ DisposableCollection,
19
21
  GModelElement,
20
- GNode,
21
22
  GhostElement,
23
+ IModelFactory,
22
24
  Point,
23
25
  TYPES,
24
26
  TriggerNodeCreationAction,
25
- findParentByFeature,
26
27
  isCtrlOrCmd,
27
28
  isMoveable
28
29
  } from '@eclipse-glsp/sprotty';
29
30
  import { inject, injectable } from 'inversify';
30
31
  import '../../../../css/ghost-element.css';
31
- import { FeedbackEmitter } from '../../../base';
32
32
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
33
33
  import { CSS_GHOST_ELEMENT, CSS_HIDDEN, CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
34
+ import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
34
35
  import { EnableDefaultToolsAction } from '../../../base/tool-manager/tool';
35
- import { MoveableElement, isValidMove } from '../../../utils';
36
- import { getAbsolutePosition } from '../../../utils/viewpoint-util';
37
- import { RemoveTemplateElementsAction } from '../../element-template';
36
+ import { MoveableElement } from '../../../utils/gmodel-util';
38
37
  import { AddTemplateElementsAction, getTemplateElementId } from '../../element-template/add-template-element';
39
38
  import { MouseTrackingElementPositionListener, PositioningTool } from '../../element-template/mouse-tracking-element-position-listener';
40
- import { Containable, isContainable } from '../../hints/model';
39
+ import { RemoveTemplateElementsAction } from '../../element-template/remove-template-element';
41
40
  import { BaseCreationTool } from '../base-tools';
42
- import { ChangeBoundsManager } from '../change-bounds';
41
+ import { ChangeBoundsManager } from '../change-bounds/change-bounds-manager';
42
+ import { TrackedMove } from '../change-bounds/change-bounds-tracker';
43
+ import { ContainerManager, TrackedInsert } from './container-manager';
44
+ import { InsertIndicator } from './insert-indicator';
43
45
 
44
46
  @injectable()
45
47
  export class NodeCreationTool extends BaseCreationTool<TriggerNodeCreationAction> implements PositioningTool {
@@ -47,52 +49,80 @@ export class NodeCreationTool extends BaseCreationTool<TriggerNodeCreationAction
47
49
 
48
50
  protected isTriggerAction = TriggerNodeCreationAction.is;
49
51
 
50
- @inject(TYPES.IChangeBoundsManager) readonly changeBoundsManager: ChangeBoundsManager;
52
+ @inject(ChangeBoundsManager) readonly changeBoundsManager: ChangeBoundsManager;
53
+ @inject(ContainerManager) readonly containerManager: ContainerManager;
54
+ @inject(TYPES.IModelFactory) modelFactory: IModelFactory;
51
55
 
52
56
  get id(): string {
53
57
  return NodeCreationTool.ID;
54
58
  }
55
59
 
56
60
  doEnable(): void {
57
- let trackingListener: MouseTrackingElementPositionListener | undefined;
58
- const ghostElement = this.triggerAction.ghostElement;
59
- const ghostElementId = ghostElement ? getTemplateElementId(ghostElement.template) : undefined;
60
- if (ghostElement && ghostElementId) {
61
- trackingListener = new MouseTrackingElementPositionListener(ghostElementId, this, 'middle');
62
- this.toDisposeOnDisable.push(trackingListener, this.mouseTool.registerListener(trackingListener));
63
- }
61
+ const ghostElement = this.triggerAction.ghostElement ?? { template: this.modelFactory.createSchema(this.createInsertIndicator()) };
62
+ this.toDisposeOnDisable.push(this.createGhostElementTracker(ghostElement, 'middle'));
63
+ this.toDisposeOnDisable.push(this.createNodeCreationListener(ghostElement));
64
+ this.toDisposeOnDisable.push(this.createNodeCreationCursorFeedback().submit());
65
+ }
64
66
 
65
- const toolListener = new NodeCreationToolMouseListener(this.triggerAction, this, ghostElement);
66
- this.toDisposeOnDisable.push(
67
- toolListener,
68
- this.mouseTool.registerListener(toolListener),
69
- this.createFeedbackEmitter().add(cursorFeedbackAction(CursorCSS.NODE_CREATION), cursorFeedbackAction()).submit()
67
+ protected createInsertIndicator(): GModelElement {
68
+ return new InsertIndicator();
69
+ }
70
+
71
+ protected createGhostElementTracker(ghostElement: GhostElement, position: 'top-left' | 'middle'): Disposable {
72
+ const trackingListener = new NodeInsertTrackingListener(
73
+ getTemplateElementId(ghostElement.template),
74
+ this.triggerAction.elementTypeId,
75
+ this,
76
+ position
70
77
  );
78
+ return new DisposableCollection(trackingListener, this.mouseTool.registerListener(trackingListener));
79
+ }
80
+
81
+ protected createNodeCreationListener(ghostElement: GhostElement): Disposable {
82
+ const toolListener = new NodeCreationToolMouseListener(this.triggerAction, this, ghostElement);
83
+ return new DisposableCollection(toolListener, this.mouseTool.registerListener(toolListener));
84
+ }
85
+
86
+ protected createNodeCreationCursorFeedback(): FeedbackEmitter {
87
+ return this.createFeedbackEmitter().add(cursorFeedbackAction(CursorCSS.NODE_CREATION), cursorFeedbackAction());
88
+ }
89
+ }
90
+
91
+ export class NodeInsertTrackingListener extends MouseTrackingElementPositionListener {
92
+ constructor(
93
+ elementId: string,
94
+ protected elementTypeId: string,
95
+ protected override tool: NodeCreationTool,
96
+ cursorPosition: 'top-left' | 'middle' = 'top-left'
97
+ ) {
98
+ super(elementId, tool, cursorPosition);
99
+ }
100
+
101
+ protected override addMoveFeedback(move: TrackedMove, ctx: GModelElement, event: MouseEvent): void {
102
+ super.addMoveFeedback(move, ctx, event);
103
+
104
+ const element = move.elementMoves[0].element;
105
+ const location = move.elementMoves[0].toPosition;
106
+ const insert = this.tool.containerManager.insert(element, location, this.elementTypeId, { evt: event });
107
+ this.tool.containerManager.addInsertFeedback(this.moveGhostFeedback, insert, ctx, event);
71
108
  }
72
109
  }
73
110
 
74
111
  export class NodeCreationToolMouseListener extends DragAwareMouseListener {
75
- protected container?: GModelElement & Containable;
76
112
  protected cursorFeedback: FeedbackEmitter;
77
113
  protected ghostElementFeedback: FeedbackEmitter;
78
- protected ghostElementId?: string;
114
+ protected ghostElementId: string;
79
115
 
80
116
  constructor(
81
117
  protected triggerAction: TriggerNodeCreationAction,
82
118
  protected tool: NodeCreationTool,
83
- protected ghostElement?: GhostElement
119
+ protected ghostElement: GhostElement
84
120
  ) {
85
121
  super();
86
122
  this.cursorFeedback = tool.createFeedbackEmitter();
87
123
  this.ghostElementFeedback = tool.createFeedbackEmitter();
88
- if (ghostElement) {
89
- this.ghostElementId = getTemplateElementId(ghostElement.template);
90
- }
91
- this.createGhostElement();
92
- }
93
-
94
- protected creationAllowed(elementTypeId: string): boolean | undefined {
95
- return this.container && this.container.isContainableElement(elementTypeId);
124
+ this.ghostElementId = getTemplateElementId(ghostElement.template);
125
+ this.createGhostElement(ghostElement);
96
126
  }
97
127
 
98
128
  get elementTypeId(): string {
@@ -101,78 +131,57 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
101
131
 
102
132
  override nonDraggingMouseUp(target: GModelElement, event: MouseEvent): Action[] {
103
133
  const result: Action[] = [];
104
- if (this.container === undefined) {
105
- this.mouseOver(target, event);
134
+
135
+ const insert = this.getTrackedInsert(target, event);
136
+ if (insert.valid) {
137
+ result.push(
138
+ CreateNodeOperation.create(this.elementTypeId, {
139
+ location: insert.location,
140
+ containerId: insert.container?.id,
141
+ args: this.triggerAction.args
142
+ })
143
+ );
144
+ }
145
+ if (isCtrlOrCmd(event)) {
146
+ // we continue in stamp mode so we keep the ghost but dispose everything else
147
+ this.disposeAllButGhostElement();
148
+ return result;
106
149
  }
107
150
 
108
- if (this.creationAllowed(this.elementTypeId)) {
109
- const location = this.getValidInsertPosition(target, event);
110
- if (location) {
111
- const containerId = this.container?.id;
112
- result.push(CreateNodeOperation.create(this.elementTypeId, { location, containerId, args: this.triggerAction.args }));
113
- }
114
- if (!isCtrlOrCmd(event)) {
115
- // we no longer want to show the ghost element AFTER the next update
116
- this.ghostElementFeedback.discard();
117
- result.push(EnableDefaultToolsAction.create());
118
- } else {
119
- // we continue in stamp mode so we keep the ghost but dispose everything else
120
- this.disposeAllButGhostElement();
121
- }
151
+ if (insert.valid) {
152
+ // we keep the ghost element until the next update to avoid flickering during insert
153
+ this.ghostElementFeedback.discard();
154
+ } else {
155
+ this.dispose();
122
156
  }
157
+ result.push(EnableDefaultToolsAction.create());
123
158
  return result;
124
159
  }
125
160
 
126
- protected createGhostElement(): void {
127
- if (!this.ghostElement) {
128
- return;
129
- }
130
- const templates = [this.ghostElement.template];
131
- this.ghostElementFeedback
132
- .add(
133
- AddTemplateElementsAction.create({ templates, addClasses: [CSS_HIDDEN, CSS_GHOST_ELEMENT] }),
134
- RemoveTemplateElementsAction.create({ templates })
135
- )
136
- .submit();
137
- }
138
-
139
- protected getGhostElement(): MoveableElement | undefined {
140
- if (!this.ghostElementId) {
141
- return undefined;
142
- }
143
- const ghostElement = this.container?.index.getById(this.ghostElementId);
161
+ protected createGhostElement(ghostElement: GhostElement): string {
162
+ const templates = [ghostElement.template];
163
+ this.ghostElementFeedback.add(
164
+ AddTemplateElementsAction.create({ templates, addClasses: [CSS_HIDDEN, CSS_GHOST_ELEMENT] }),
165
+ RemoveTemplateElementsAction.create({ templates })
166
+ );
167
+ this.ghostElementFeedback.submit();
168
+ return getTemplateElementId(ghostElement.template);
169
+ }
170
+
171
+ protected getGhostElement(ctx: GModelElement, event: MouseEvent): MoveableElement | undefined {
172
+ const ghostElement = ctx.index.getById(this.ghostElementId);
144
173
  return ghostElement && isMoveable(ghostElement) ? ghostElement : undefined;
145
174
  }
146
175
 
147
- protected getValidInsertPosition(target: GModelElement, event: MouseEvent): Point | undefined {
148
- const ghostElement = this.getGhostElement();
149
- if (ghostElement) {
150
- return isValidMove(ghostElement, ghostElement.position, this.tool.changeBoundsManager.movementRestrictor)
151
- ? ghostElement.position
152
- : undefined;
153
- }
154
- const location = getAbsolutePosition(target, event);
155
-
156
- // Create a 0-bounds proxy element for snapping
157
- const elementProxy = new GNode();
158
- elementProxy.size = { width: 0, height: 0 };
159
- return this.tool.changeBoundsManager.snapPosition(elementProxy, location);
160
- }
161
-
162
- override mouseOver(target: GModelElement, event: MouseEvent): Action[] {
163
- const currentContainer = findParentByFeature(target, isContainable);
164
- if (!this.container || currentContainer !== this.container) {
165
- this.container = currentContainer;
166
- const feedback = this.creationAllowed(this.elementTypeId)
167
- ? cursorFeedbackAction(CursorCSS.NODE_CREATION)
168
- : cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED);
169
- this.cursorFeedback.add(feedback).submit();
176
+ protected getTrackedInsert(ctx: GModelElement, event: MouseEvent): TrackedInsert {
177
+ const ghostElement = this.getGhostElement(ctx, event);
178
+ if (!ghostElement) {
179
+ return { elementTypeId: this.elementTypeId, location: Point.ORIGIN, valid: false };
170
180
  }
171
- return [];
181
+ return this.tool.containerManager.insert(ghostElement, ghostElement.position, this.elementTypeId, { evt: event });
172
182
  }
173
183
 
174
184
  protected disposeAllButGhostElement(): void {
175
- this.cursorFeedback.dispose();
176
185
  super.dispose();
177
186
  }
178
187
 
@@ -0,0 +1,49 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2024 Axon Ivy AG 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 { IView, RenderingContext, TYPES, setClass, svg } from '@eclipse-glsp/sprotty';
18
+ import { inject, injectable, optional } from 'inversify';
19
+ import { VNode } from 'snabbdom';
20
+ import { GArgument } from '../../../utils/argument-utils';
21
+ import { Grid } from '../../grid/grid';
22
+ import { ARG_LENGTH, InsertIndicator } from './insert-indicator';
23
+
24
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
+ const JSX = { createElement: svg };
26
+
27
+ @injectable()
28
+ export class InsertIndicatorView implements IView {
29
+ @optional() @inject(TYPES.Grid) protected grid?: Grid;
30
+
31
+ render(model: Readonly<InsertIndicator>, context: RenderingContext): VNode | undefined {
32
+ if (context.targetKind === 'hidden') {
33
+ return undefined;
34
+ }
35
+ const size = this.getSize(model);
36
+ const node = (
37
+ <g>
38
+ <polyline class-sprotty-node={true} class-insert-indicator={true} points={`0,${-size / 2} 0,${size / 2}`}></polyline>
39
+ <polyline class-sprotty-node={true} class-insert-indicator={true} points={`${-size / 2},0 ${size / 2},0`}></polyline>
40
+ </g>
41
+ );
42
+ model.cssClasses.forEach(cl => setClass(node, cl, true));
43
+ return node;
44
+ }
45
+
46
+ protected getSize(model: Readonly<InsertIndicator>): number {
47
+ return GArgument.getNumber(model, ARG_LENGTH) ?? this.grid?.x ?? 10;
48
+ }
49
+ }
@@ -28,10 +28,10 @@ import {
28
28
  hasArrayProp
29
29
  } from '@eclipse-glsp/sprotty';
30
30
  import { inject, injectable, optional } from 'inversify';
31
- import { FeedbackEmitter } from '../../base';
32
31
  import { EditorContextService } from '../../base/editor-context-service';
33
32
  import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../../base/feedback/feedback-action-dispatcher';
34
33
  import { FeedbackCommand } from '../../base/feedback/feedback-command';
34
+ import { FeedbackEmitter } from '../../base/feedback/feedback-emitter';
35
35
  import { removeCssClasses } from '../../utils/gmodel-util';
36
36
  import { GIssueMarker, createGIssue, getGIssueMarker, getOrCreateGIssueMarker, getSeverity } from './issue-marker';
37
37
 
@@ -15,7 +15,7 @@
15
15
  ********************************************************************************/
16
16
  import { Action, DOMHelper, IActionHandler, TYPES } from '@eclipse-glsp/sprotty';
17
17
  import { inject, injectable } from 'inversify';
18
- import { EditorContextService } from '../../base';
18
+ import { EditorContextService } from '../../base/editor-context-service';
19
19
  import { FocusTracker } from '../../base/focus/focus-tracker';
20
20
  import { IDiagramStartup } from '../../base/model/diagram-loader';
21
21
  import { EnableDefaultToolsAction } from '../../base/tool-manager/tool';
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2023 EclipseSource and others.
2
+ * Copyright (c) 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,11 +13,229 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- export * from './base';
16
+ export * from './base/action-dispatcher';
17
+ export * from './base/action-handler-registry';
18
+ export * from './base/args-feature';
19
+ export * from './base/auto-complete/auto-complete-actions';
20
+ export * from './base/auto-complete/auto-complete-widget';
21
+ export * from './base/auto-complete/autocomplete-suggestion-providers';
22
+ export * from './base/auto-complete/base-autocomplete-palette';
23
+ export * from './base/auto-complete/validation-decorator';
24
+ export * from './base/command-stack';
25
+ export * from './base/default.module';
26
+ export * from './base/drag-aware-mouse-listener';
27
+ export * from './base/editor-context-service';
28
+ export * from './base/feedback/css-feedback';
29
+ export * from './base/feedback/feedback-action-dispatcher';
30
+ export * from './base/feedback/feedback-action-dispatcher-default';
31
+ export * from './base/feedback/feedback-command';
32
+ export * from './base/feedback/feedback-emitter';
33
+ export * from './base/feedback/set-model-command';
34
+ export * from './base/feedback/update-model-command';
35
+ export * from './base/focus/focus-state-change-action';
36
+ export * from './base/focus/focus-tracker';
37
+ export * from './base/model/diagram-loader';
38
+ export * from './base/model/glsp-model-source';
39
+ export * from './base/model/model-initialization-constraint';
40
+ export * from './base/model/model-registry';
41
+ export * from './base/mouse-position-tracker';
42
+ export * from './base/ranked';
43
+ export * from './base/selection-clearing-mouse-listener';
44
+ export * from './base/selection-service';
45
+ export * from './base/tool-manager/tool';
46
+ export * from './base/tool-manager/tool-manager';
47
+ export * from './base/ui-extension/ui-extension';
48
+ export * from './base/ui-extension/ui-extension-registry';
49
+ export * from './base/view/key-tool';
50
+ export * from './base/view/mouse-tool';
51
+ export * from './base/view/view-registry';
17
52
  export * from './default-modules';
18
- export * from './features';
53
+ export * from './features/accessibility/accessibility-module';
54
+ export * from './features/accessibility/actions';
55
+ export * from './features/accessibility/edge-autocomplete/action';
56
+ export * from './features/accessibility/edge-autocomplete/edge-autocomplete-context';
57
+ export * from './features/accessibility/edge-autocomplete/edge-autocomplete-palette';
58
+ export * from './features/accessibility/edge-autocomplete/edge-autocomplete-tool';
59
+ export * from './features/accessibility/element-navigation/diagram-navigation-tool';
60
+ export * from './features/accessibility/element-navigation/element-navigation-module';
61
+ export * from './features/accessibility/element-navigation/element-navigator';
62
+ export * from './features/accessibility/element-navigation/left-right-top-bottom-navigator';
63
+ export * from './features/accessibility/element-navigation/local-element-navigator';
64
+ export * from './features/accessibility/element-navigation/position-navigator';
65
+ export * from './features/accessibility/focus-tracker/focus-tracker-module';
66
+ export * from './features/accessibility/focus-tracker/focus-tracker-tool';
67
+ export * from './features/accessibility/global-keylistener-tool';
68
+ export * from './features/accessibility/key-shortcut/accessible-key-shortcut';
69
+ export * from './features/accessibility/key-shortcut/accessible-key-shortcut-tool';
70
+ export * from './features/accessibility/key-shortcut/di.config';
71
+ export * from './features/accessibility/keyboard-grid/action';
72
+ export * from './features/accessibility/keyboard-grid/constants';
73
+ export * from './features/accessibility/keyboard-grid/keyboard-grid';
74
+ export * from './features/accessibility/keyboard-grid/keyboard-grid-search-palette';
75
+ export * from './features/accessibility/keyboard-grid/keyboard-node-grid';
76
+ export * from './features/accessibility/keyboard-pointer/actions';
77
+ export * from './features/accessibility/keyboard-pointer/constants';
78
+ export * from './features/accessibility/keyboard-pointer/keyboard-pointer';
79
+ export * from './features/accessibility/keyboard-pointer/keyboard-pointer-listener';
80
+ export * from './features/accessibility/keyboard-pointer/keyboard-pointer-module';
81
+ export * from './features/accessibility/keyboard-pointer/keyboard-pointer-position';
82
+ export * from './features/accessibility/keyboard-tool-palette/keyboard-tool-palette';
83
+ export * from './features/accessibility/keyboard-tool-palette/keyboard-tool-palette-module';
84
+ export * from './features/accessibility/move-zoom/move-handler';
85
+ export * from './features/accessibility/move-zoom/move-zoom-module';
86
+ export * from './features/accessibility/move-zoom/zoom-handler';
87
+ export * from './features/accessibility/resize-key-tool/resize-key-handler';
88
+ export * from './features/accessibility/resize-key-tool/resize-key-module';
89
+ export * from './features/accessibility/resize-key-tool/resize-key-tool';
90
+ export * from './features/accessibility/search/search-palette';
91
+ export * from './features/accessibility/search/search-palette-module';
92
+ export * from './features/accessibility/search/search-tool';
93
+ export * from './features/accessibility/toast/toast-handler';
94
+ export * from './features/accessibility/toast/toast-module';
95
+ export * from './features/accessibility/toast/toast-tool';
96
+ export * from './features/accessibility/view-key-tools/deselect-key-tool';
97
+ export * from './features/accessibility/view-key-tools/movement-key-tool';
98
+ export * from './features/accessibility/view-key-tools/view-key-tools-module';
99
+ export * from './features/accessibility/view-key-tools/zoom-key-tool';
100
+ export * from './features/bounds/bounds-module';
101
+ export * from './features/bounds/freeform-layout';
102
+ export * from './features/bounds/glsp-hidden-bounds-updater';
103
+ export * from './features/bounds/hbox-layout';
104
+ export * from './features/bounds/layout-data';
105
+ export * from './features/bounds/layouter';
106
+ export * from './features/bounds/local-bounds';
107
+ export * from './features/bounds/set-bounds-feedback-command';
108
+ export * from './features/bounds/vbox-layout';
109
+ export * from './features/change-bounds/model';
110
+ export * from './features/change-bounds/movement-restrictor';
111
+ export * from './features/change-bounds/point-position-updater';
112
+ export * from './features/change-bounds/position-snapper';
113
+ export * from './features/change-bounds/snap';
114
+ export * from './features/change-bounds/tracker';
115
+ export * from './features/command-palette/command-palette';
116
+ export * from './features/command-palette/command-palette-module';
117
+ export * from './features/command-palette/command-palette-tool';
118
+ export * from './features/command-palette/server-command-palette-provider';
119
+ export * from './features/context-menu/context-menu-module';
120
+ export * from './features/context-menu/delete-element-context-menu';
121
+ export * from './features/context-menu/glsp-context-menu-mouse-listener';
122
+ export * from './features/context-menu/server-context-menu-provider';
123
+ export * from './features/copy-paste/copy-paste-context-menu';
124
+ export * from './features/copy-paste/copy-paste-handler';
125
+ export * from './features/copy-paste/copy-paste-modules';
126
+ export * from './features/copy-paste/copy-paste-standalone';
127
+ export * from './features/debug/debug-bounds-decorator';
128
+ export * from './features/debug/debug-manager';
129
+ export * from './features/debug/debug-model';
130
+ export * from './features/debug/debug-module';
131
+ export * from './features/decoration/decoration-module';
132
+ export * from './features/decoration/decoration-placer';
133
+ export * from './features/element-template/add-template-element';
134
+ export * from './features/element-template/element-template-module';
135
+ export * from './features/element-template/mouse-tracking-element-position-listener';
136
+ export * from './features/element-template/remove-template-element';
137
+ export * from './features/export/export-modules';
138
+ export * from './features/export/export-svg-action-handler';
139
+ export * from './features/export/glsp-svg-exporter';
140
+ export * from './features/grid/grid';
141
+ export * from './features/grid/grid-manager';
142
+ export * from './features/grid/grid-model';
143
+ export * from './features/grid/grid-module';
144
+ export * from './features/grid/grid-snapper';
145
+ export * from './features/helper-lines/helper-line-feedback';
146
+ export * from './features/helper-lines/helper-line-manager';
147
+ export * from './features/helper-lines/helper-line-manager-default';
148
+ export * from './features/helper-lines/helper-line-module';
149
+ export * from './features/helper-lines/model';
150
+ export * from './features/helper-lines/view';
151
+ export * from './features/hints/model';
152
+ export * from './features/hints/type-hint-provider';
153
+ export * from './features/hints/type-hints-module';
154
+ export * from './features/hover/hover';
155
+ export * from './features/hover/hover-module';
156
+ export * from './features/label-edit-ui/label-edit-ui';
157
+ export * from './features/label-edit-ui/label-edit-ui-module';
158
+ export * from './features/label-edit/edit-label-tool';
159
+ export * from './features/label-edit/edit-label-validator';
160
+ export * from './features/label-edit/label-edit-module';
161
+ export * from './features/layout/layout-elements-action';
162
+ export * from './features/layout/layout-module';
163
+ export * from './features/navigation/navigation-action-handler';
164
+ export * from './features/navigation/navigation-module';
165
+ export * from './features/navigation/navigation-target-resolver';
166
+ export * from './features/reconnect/model';
167
+ export * from './features/routing/edge-router';
168
+ export * from './features/routing/routing-module';
169
+ export * from './features/save/save-keylistener';
170
+ export * from './features/save/save-module';
171
+ export * from './features/select/select-feedback-command';
172
+ export * from './features/select/select-module';
173
+ export * from './features/select/select-mouse-listener';
174
+ export * from './features/source-model-watcher/source-model-changed-action-handler';
175
+ export * from './features/source-model-watcher/source-model-watcher-module';
176
+ export * from './features/status/status-module';
177
+ export * from './features/status/status-overlay';
178
+ export * from './features/svg-metadata/metadata-placer';
179
+ export * from './features/svg-metadata/svg-metadata-module';
180
+ export * from './features/tool-palette/tool-palette';
181
+ export * from './features/tool-palette/tool-palette-module';
182
+ export * from './features/tools/base-tools';
183
+ export * from './features/tools/change-bounds/change-bounds-manager';
184
+ export * from './features/tools/change-bounds/change-bounds-tool';
185
+ export * from './features/tools/change-bounds/change-bounds-tool-feedback';
186
+ export * from './features/tools/change-bounds/change-bounds-tool-module';
187
+ export * from './features/tools/change-bounds/change-bounds-tool-move-feedback';
188
+ export * from './features/tools/change-bounds/change-bounds-tracker';
189
+ export * from './features/tools/change-bounds/view';
190
+ export * from './features/tools/deletion/delete-tool';
191
+ export * from './features/tools/deletion/deletion-tool-module';
192
+ export * from './features/tools/edge-creation/dangling-edge-feedback';
193
+ export * from './features/tools/edge-creation/edege-creation-module';
194
+ export * from './features/tools/edge-creation/edge-creation-tool';
195
+ export * from './features/tools/edge-creation/edge-creation-tool-feedback';
196
+ export * from './features/tools/edge-creation/view';
197
+ export * from './features/tools/edge-edit/edge-edit-module';
198
+ export * from './features/tools/edge-edit/edge-edit-tool';
199
+ export * from './features/tools/edge-edit/edge-edit-tool-feedback';
200
+ export * from './features/tools/marquee-selection/marquee-behavior';
201
+ export * from './features/tools/marquee-selection/marquee-mouse-tool';
202
+ export * from './features/tools/marquee-selection/marquee-selection-module';
203
+ export * from './features/tools/marquee-selection/marquee-tool';
204
+ export * from './features/tools/marquee-selection/marquee-tool-feedback';
205
+ export * from './features/tools/marquee-selection/model';
206
+ export * from './features/tools/marquee-selection/view';
207
+ export * from './features/tools/node-creation/container-manager';
208
+ export * from './features/tools/node-creation/insert-indicator';
209
+ export * from './features/tools/node-creation/node-creation-module';
210
+ export * from './features/tools/node-creation/node-creation-tool';
211
+ export * from './features/tools/node-creation/node-creation-views';
212
+ export * from './features/tools/tool-focus-loss-module';
213
+ export * from './features/undo-redo/undo-redo-key-listener';
214
+ export * from './features/undo-redo/undo-redo-module';
215
+ export * from './features/validation/issue-marker';
216
+ export * from './features/validation/marker-navigator';
217
+ export * from './features/validation/validate';
218
+ export * from './features/validation/validation-modules';
219
+ export * from './features/viewport/glsp-scroll-mouse-listener';
220
+ export * from './features/viewport/origin-viewport';
221
+ export * from './features/viewport/reposition';
222
+ export * from './features/viewport/viewport-handler';
223
+ export * from './features/viewport/viewport-modules';
19
224
  export * from './model';
20
225
  export * from './re-exports';
21
226
  export * from './standalone-modules';
22
- export * from './utils';
23
- export * from './views';
227
+ export * from './utils/argument-utils';
228
+ export * from './utils/geometry-util';
229
+ export * from './utils/gmodel-util';
230
+ export * from './utils/html-utils';
231
+ export * from './utils/layout-utils';
232
+ export * from './utils/marker';
233
+ export * from './utils/viewpoint-util';
234
+ export * from './views/base-view-module';
235
+ export * from './views/compartments';
236
+ export * from './views/gedge-view';
237
+ export * from './views/ggraph-view';
238
+ export * from './views/glsp-projection-view';
239
+ export * from './views/issue-marker-view';
240
+ export * from './views/rounded-corner';
241
+ export * from './views/rounded-corner-view';
@@ -40,6 +40,7 @@ import {
40
40
  isSelected,
41
41
  remove
42
42
  } from '@eclipse-glsp/sprotty';
43
+ import { ResizeHandleLocation } from '../features/change-bounds/model';
43
44
 
44
45
  /**
45
46
  * Helper type to represent a filter predicate for {@link GModelElement}s. This is used to retrieve
@@ -253,7 +254,9 @@ export type MoveableElement = GModelElement & Locateable;
253
254
 
254
255
  export interface Resizable extends BoundsAware, Selectable {}
255
256
 
256
- export interface ResizableModelElement extends GParentElement, Resizable {}
257
+ export interface ResizableModelElement extends GParentElement, Resizable {
258
+ resizeLocations?: ResizeHandleLocation[];
259
+ }
257
260
 
258
261
  /**
259
262
  * Helper function to translate a given {@link GModelElement} into its corresponding {@link ElementAndBounds} representation.
@@ -13,14 +13,14 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Bounds, Dimension, Point, RenderingContext, SGraphImpl, SGraphView, TYPES, Writable } from '@eclipse-glsp/sprotty';
16
+ import { Bounds, Dimension, Point, RenderingContext, SGraphImpl, SGraphView, Writable } from '@eclipse-glsp/sprotty';
17
17
  import { inject, injectable, optional } from 'inversify';
18
18
  import { VNode } from 'snabbdom';
19
- import { GridManager, GridStyle } from '../features';
19
+ import { GridManager, GridStyle } from '../features/grid/grid-manager';
20
20
 
21
21
  @injectable()
22
22
  export class GGraphView extends SGraphView {
23
- @inject(TYPES.IGridManager) @optional() protected gridManager?: GridManager;
23
+ @inject(GridManager) @optional() protected gridManager?: GridManager;
24
24
 
25
25
  override render(model: Readonly<SGraphImpl>, context: RenderingContext): VNode {
26
26
  const graph = super.render(model, context);
@@ -31,7 +31,7 @@ export class GGraphView extends SGraphView {
31
31
  }
32
32
 
33
33
  protected getGridStyle(model: Readonly<SGraphImpl>, context: RenderingContext): GridStyle {
34
- if (!this.gridManager?.isGridVisible) {
34
+ if (context.targetKind === 'hidden' || !this.gridManager?.isGridVisible) {
35
35
  return {};
36
36
  }
37
37
  const bounds = this.getBackgroundBounds(model, context, this.gridManager);