@eclipse-glsp/client 2.3.0-next.322 → 2.3.0-next.366

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 (1177) hide show
  1. package/css/change-bounds.css +40 -0
  2. package/css/command-palette.css +6 -2
  3. package/{lib/base/focus/index.d.ts → css/debug.css} +11 -4
  4. package/css/ghost-element.css +7 -0
  5. package/css/glsp-sprotty.css +42 -9
  6. package/css/grid.css +27 -0
  7. package/css/helper-lines.css +3 -3
  8. package/css/key-shortcut.css +6 -2
  9. package/css/keyboard-tool-palette.css +3 -7
  10. package/css/keyboard.css +3 -1
  11. package/css/tool-palette.css +30 -22
  12. package/lib/base/action-dispatcher.d.ts +15 -3
  13. package/lib/base/action-dispatcher.d.ts.map +1 -1
  14. package/lib/base/action-dispatcher.js +35 -1
  15. package/lib/base/action-dispatcher.js.map +1 -1
  16. package/lib/base/action-handler-registry.d.ts +4 -9
  17. package/lib/base/action-handler-registry.d.ts.map +1 -1
  18. package/lib/base/action-handler-registry.js +21 -31
  19. package/lib/base/action-handler-registry.js.map +1 -1
  20. package/lib/base/args-feature.js.map +1 -1
  21. package/lib/base/auto-complete/auto-complete-widget.d.ts +1 -1
  22. package/lib/base/auto-complete/auto-complete-widget.js +2 -2
  23. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  24. package/lib/base/auto-complete/base-autocomplete-palette.d.ts +4 -3
  25. package/lib/base/auto-complete/base-autocomplete-palette.d.ts.map +1 -1
  26. package/lib/base/auto-complete/base-autocomplete-palette.js +4 -3
  27. package/lib/base/auto-complete/base-autocomplete-palette.js.map +1 -1
  28. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  29. package/lib/base/command-stack.d.ts +8 -16
  30. package/lib/base/command-stack.d.ts.map +1 -1
  31. package/lib/base/command-stack.js +20 -18
  32. package/lib/base/command-stack.js.map +1 -1
  33. package/lib/base/default.module.d.ts.map +1 -1
  34. package/lib/base/default.module.js +23 -9
  35. package/lib/base/default.module.js.map +1 -1
  36. package/lib/base/drag-aware-mouse-listener.d.ts +9 -3
  37. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  38. package/lib/base/drag-aware-mouse-listener.js +24 -3
  39. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  40. package/lib/base/editor-context-service.d.ts +44 -3
  41. package/lib/base/editor-context-service.d.ts.map +1 -1
  42. package/lib/base/editor-context-service.js +36 -13
  43. package/lib/base/editor-context-service.js.map +1 -1
  44. package/lib/base/feedback/css-feedback.d.ts +11 -2
  45. package/lib/base/feedback/css-feedback.d.ts.map +1 -1
  46. package/lib/base/feedback/css-feedback.js +14 -2
  47. package/lib/base/feedback/css-feedback.js.map +1 -1
  48. package/lib/base/feedback/feedback-action-dispatcher-default.d.ts +34 -0
  49. package/lib/base/feedback/feedback-action-dispatcher-default.d.ts.map +1 -0
  50. package/lib/base/feedback/feedback-action-dispatcher-default.js +120 -0
  51. package/lib/base/feedback/feedback-action-dispatcher-default.js.map +1 -0
  52. package/lib/base/feedback/feedback-action-dispatcher.d.ts +14 -17
  53. package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -1
  54. package/lib/base/feedback/feedback-action-dispatcher.js +11 -87
  55. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -1
  56. package/lib/base/feedback/feedback-emitter.d.ts +74 -0
  57. package/lib/base/feedback/feedback-emitter.d.ts.map +1 -0
  58. package/lib/base/feedback/feedback-emitter.js +127 -0
  59. package/lib/base/feedback/feedback-emitter.js.map +1 -0
  60. package/lib/base/focus/focus-tracker.js.map +1 -1
  61. package/lib/base/model/diagram-loader.d.ts +12 -7
  62. package/lib/base/model/diagram-loader.d.ts.map +1 -1
  63. package/lib/base/model/diagram-loader.js +16 -18
  64. package/lib/base/model/diagram-loader.js.map +1 -1
  65. package/lib/base/model/glsp-model-source.js.map +1 -1
  66. package/lib/base/model/model-initialization-constraint.js.map +1 -1
  67. package/lib/base/model/model-registry.d.ts +1 -1
  68. package/lib/base/model/model-registry.d.ts.map +1 -1
  69. package/lib/base/model/model-registry.js +4 -2
  70. package/lib/base/model/model-registry.js.map +1 -1
  71. package/lib/base/mouse-position-tracker.d.ts +25 -0
  72. package/lib/base/mouse-position-tracker.d.ts.map +1 -0
  73. package/lib/base/mouse-position-tracker.js +61 -0
  74. package/lib/base/mouse-position-tracker.js.map +1 -0
  75. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  76. package/lib/base/selection-service.d.ts +10 -8
  77. package/lib/base/selection-service.d.ts.map +1 -1
  78. package/lib/base/selection-service.js +10 -13
  79. package/lib/base/selection-service.js.map +1 -1
  80. package/lib/base/tool-manager/tool-manager.d.ts +15 -9
  81. package/lib/base/tool-manager/tool-manager.d.ts.map +1 -1
  82. package/lib/base/tool-manager/tool-manager.js +35 -23
  83. package/lib/base/tool-manager/tool-manager.js.map +1 -1
  84. package/lib/base/{model/index.d.ts → ui-extension/ui-extension-registry.d.ts} +9 -6
  85. package/lib/base/ui-extension/ui-extension-registry.d.ts.map +1 -0
  86. package/lib/base/ui-extension/ui-extension-registry.js +51 -0
  87. package/lib/base/ui-extension/ui-extension-registry.js.map +1 -0
  88. package/lib/base/ui-extension/ui-extension.d.ts +39 -0
  89. package/lib/base/ui-extension/ui-extension.d.ts.map +1 -0
  90. package/lib/base/ui-extension/ui-extension.js +120 -0
  91. package/lib/base/ui-extension/ui-extension.js.map +1 -0
  92. package/lib/base/view/key-tool.d.ts +21 -2
  93. package/lib/base/view/key-tool.d.ts.map +1 -1
  94. package/lib/base/view/key-tool.js +21 -3
  95. package/lib/base/view/key-tool.js.map +1 -1
  96. package/lib/base/view/mouse-tool.d.ts +20 -3
  97. package/lib/base/view/mouse-tool.d.ts.map +1 -1
  98. package/lib/base/view/mouse-tool.js +9 -5
  99. package/lib/base/view/mouse-tool.js.map +1 -1
  100. package/lib/base/view/view-registry.js.map +1 -1
  101. package/lib/default-modules.d.ts +4 -3
  102. package/lib/default-modules.d.ts.map +1 -1
  103. package/lib/default-modules.js +7 -5
  104. package/lib/default-modules.js.map +1 -1
  105. package/lib/features/accessibility/accessibility-module.d.ts +1 -1
  106. package/lib/features/accessibility/accessibility-module.d.ts.map +1 -1
  107. package/lib/features/accessibility/accessibility-module.js +10 -8
  108. package/lib/features/accessibility/accessibility-module.js.map +1 -1
  109. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-palette.js.map +1 -1
  110. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-tool.js.map +1 -1
  111. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js.map +1 -1
  112. package/lib/features/accessibility/element-navigation/element-navigation-module.d.ts +6 -4
  113. package/lib/features/accessibility/element-navigation/element-navigation-module.d.ts.map +1 -1
  114. package/lib/features/accessibility/element-navigation/element-navigation-module.js +8 -8
  115. package/lib/features/accessibility/element-navigation/element-navigation-module.js.map +1 -1
  116. package/lib/features/accessibility/element-navigation/left-right-top-bottom-navigator.js.map +1 -1
  117. package/lib/features/accessibility/element-navigation/local-element-navigator.d.ts +4 -4
  118. package/lib/features/accessibility/element-navigation/local-element-navigator.d.ts.map +1 -1
  119. package/lib/features/accessibility/element-navigation/local-element-navigator.js +1 -1
  120. package/lib/features/accessibility/element-navigation/local-element-navigator.js.map +1 -1
  121. package/lib/features/accessibility/element-navigation/position-navigator.js.map +1 -1
  122. package/lib/features/accessibility/focus-tracker/focus-tracker-module.d.ts +6 -4
  123. package/lib/features/accessibility/focus-tracker/focus-tracker-module.d.ts.map +1 -1
  124. package/lib/features/accessibility/focus-tracker/focus-tracker-module.js +6 -6
  125. package/lib/features/accessibility/focus-tracker/focus-tracker-module.js.map +1 -1
  126. package/lib/features/accessibility/focus-tracker/focus-tracker-tool.js.map +1 -1
  127. package/lib/features/accessibility/global-keylistener-tool.js.map +1 -1
  128. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut-tool.js.map +1 -1
  129. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.d.ts +4 -3
  130. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.d.ts.map +1 -1
  131. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.js +4 -3
  132. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.js.map +1 -1
  133. package/lib/features/accessibility/key-shortcut/{di.config.d.ts → shortcut-help-module.d.ts} +7 -5
  134. package/lib/features/accessibility/key-shortcut/shortcut-help-module.d.ts.map +1 -0
  135. package/lib/features/accessibility/key-shortcut/{di.config.js → shortcut-help-module.js} +6 -6
  136. package/lib/features/accessibility/key-shortcut/shortcut-help-module.js.map +1 -0
  137. package/lib/features/accessibility/keyboard-grid/keyboard-grid.d.ts +4 -3
  138. package/lib/features/accessibility/keyboard-grid/keyboard-grid.d.ts.map +1 -1
  139. package/lib/features/accessibility/keyboard-grid/keyboard-grid.js +5 -4
  140. package/lib/features/accessibility/keyboard-grid/keyboard-grid.js.map +1 -1
  141. package/lib/features/accessibility/keyboard-grid/keyboard-node-grid.js.map +1 -1
  142. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.d.ts +1 -1
  143. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.d.ts.map +1 -1
  144. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.js +1 -1
  145. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.js.map +1 -1
  146. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-module.d.ts +2 -2
  147. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-module.d.ts.map +1 -1
  148. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-module.js +8 -8
  149. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-module.js.map +1 -1
  150. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer.d.ts +19 -3
  151. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer.d.ts.map +1 -1
  152. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer.js +7 -6
  153. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer.js.map +1 -1
  154. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette-module.d.ts +1 -1
  155. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette-module.d.ts.map +1 -1
  156. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette-module.js +2 -2
  157. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette-module.js.map +1 -1
  158. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.d.ts +1 -1
  159. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.d.ts.map +1 -1
  160. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.js +22 -8
  161. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.js.map +1 -1
  162. package/lib/features/accessibility/move-zoom/move-handler.d.ts +5 -3
  163. package/lib/features/accessibility/move-zoom/move-handler.d.ts.map +1 -1
  164. package/lib/features/accessibility/move-zoom/move-handler.js +12 -6
  165. package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -1
  166. package/lib/features/accessibility/move-zoom/move-zoom-module.d.ts +1 -1
  167. package/lib/features/accessibility/move-zoom/move-zoom-module.d.ts.map +1 -1
  168. package/lib/features/accessibility/move-zoom/move-zoom-module.js +2 -2
  169. package/lib/features/accessibility/move-zoom/move-zoom-module.js.map +1 -1
  170. package/lib/features/accessibility/move-zoom/zoom-handler.js.map +1 -1
  171. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts +7 -7
  172. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts.map +1 -1
  173. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +23 -11
  174. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -1
  175. package/lib/features/accessibility/resize-key-tool/resize-key-module.d.ts +1 -1
  176. package/lib/features/accessibility/resize-key-tool/resize-key-module.d.ts.map +1 -1
  177. package/lib/features/accessibility/resize-key-tool/resize-key-module.js +2 -2
  178. package/lib/features/accessibility/resize-key-tool/resize-key-module.js.map +1 -1
  179. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -1
  180. package/lib/features/accessibility/search/search-palette-module.d.ts +1 -1
  181. package/lib/features/accessibility/search/search-palette-module.d.ts.map +1 -1
  182. package/lib/features/accessibility/search/search-palette-module.js +2 -2
  183. package/lib/features/accessibility/search/search-palette-module.js.map +1 -1
  184. package/lib/features/accessibility/search/search-palette.js.map +1 -1
  185. package/lib/features/accessibility/search/search-tool.js.map +1 -1
  186. package/lib/features/accessibility/toast/toast-module.d.ts +6 -4
  187. package/lib/features/accessibility/toast/toast-module.d.ts.map +1 -1
  188. package/lib/features/accessibility/toast/toast-module.js +5 -5
  189. package/lib/features/accessibility/toast/toast-module.js.map +1 -1
  190. package/lib/features/accessibility/toast/toast-tool.d.ts +5 -4
  191. package/lib/features/accessibility/toast/toast-tool.d.ts.map +1 -1
  192. package/lib/features/accessibility/toast/toast-tool.js +4 -3
  193. package/lib/features/accessibility/toast/toast-tool.js.map +1 -1
  194. package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts +2 -2
  195. package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts.map +1 -1
  196. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js +3 -3
  197. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js.map +1 -1
  198. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +8 -7
  199. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -1
  200. package/lib/features/accessibility/view-key-tools/movement-key-tool.js +27 -15
  201. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -1
  202. package/lib/features/accessibility/view-key-tools/view-key-tools-module.d.ts +1 -1
  203. package/lib/features/accessibility/view-key-tools/view-key-tools-module.d.ts.map +1 -1
  204. package/lib/features/accessibility/view-key-tools/view-key-tools-module.js +4 -2
  205. package/lib/features/accessibility/view-key-tools/view-key-tools-module.js.map +1 -1
  206. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -1
  207. package/lib/features/bounds/bounds-module.d.ts +1 -1
  208. package/lib/features/bounds/bounds-module.d.ts.map +1 -1
  209. package/lib/features/bounds/bounds-module.js +4 -2
  210. package/lib/features/bounds/bounds-module.js.map +1 -1
  211. package/lib/features/bounds/freeform-layout.d.ts +17 -1
  212. package/lib/features/bounds/freeform-layout.d.ts.map +1 -1
  213. package/lib/features/bounds/freeform-layout.js +15 -6
  214. package/lib/features/bounds/freeform-layout.js.map +1 -1
  215. package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts +5 -4
  216. package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts.map +1 -1
  217. package/lib/features/bounds/glsp-hidden-bounds-updater.js +51 -39
  218. package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
  219. package/lib/features/bounds/hbox-layout.d.ts +18 -2
  220. package/lib/features/bounds/hbox-layout.d.ts.map +1 -1
  221. package/lib/features/bounds/hbox-layout.js +15 -6
  222. package/lib/features/bounds/hbox-layout.js.map +1 -1
  223. package/lib/features/bounds/layout-data.d.ts +27 -0
  224. package/lib/features/bounds/layout-data.d.ts.map +1 -0
  225. package/lib/features/bounds/layout-data.js +48 -0
  226. package/lib/features/bounds/layout-data.js.map +1 -0
  227. package/lib/features/bounds/layouter.js.map +1 -1
  228. package/lib/features/bounds/local-bounds.d.ts +3 -1
  229. package/lib/features/bounds/local-bounds.d.ts.map +1 -1
  230. package/lib/features/bounds/local-bounds.js +14 -0
  231. package/lib/features/bounds/local-bounds.js.map +1 -1
  232. package/lib/features/bounds/set-bounds-feedback-command.d.ts.map +1 -1
  233. package/lib/features/bounds/set-bounds-feedback-command.js +2 -2
  234. package/lib/features/bounds/set-bounds-feedback-command.js.map +1 -1
  235. package/lib/features/bounds/vbox-layout.d.ts +18 -2
  236. package/lib/features/bounds/vbox-layout.d.ts.map +1 -1
  237. package/lib/features/bounds/vbox-layout.js +15 -6
  238. package/lib/features/bounds/vbox-layout.js.map +1 -1
  239. package/lib/features/change-bounds/model.d.ts +35 -12
  240. package/lib/features/change-bounds/model.d.ts.map +1 -1
  241. package/lib/features/change-bounds/model.js +142 -15
  242. package/lib/features/change-bounds/model.js.map +1 -1
  243. package/lib/features/change-bounds/movement-restrictor.d.ts +20 -2
  244. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  245. package/lib/features/change-bounds/movement-restrictor.js +20 -29
  246. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  247. package/lib/features/change-bounds/point-position-updater.d.ts +4 -1
  248. package/lib/features/change-bounds/point-position-updater.d.ts.map +1 -1
  249. package/lib/features/change-bounds/point-position-updater.js +8 -3
  250. package/lib/features/change-bounds/point-position-updater.js.map +1 -1
  251. package/lib/features/change-bounds/position-snapper.d.ts +4 -0
  252. package/lib/features/change-bounds/position-snapper.d.ts.map +1 -1
  253. package/lib/features/change-bounds/position-snapper.js +4 -0
  254. package/lib/features/change-bounds/position-snapper.js.map +1 -1
  255. package/lib/features/change-bounds/snap.d.ts +6 -21
  256. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  257. package/lib/features/change-bounds/snap.js +5 -35
  258. package/lib/features/change-bounds/snap.js.map +1 -1
  259. package/lib/features/change-bounds/tracker.d.ts +32 -0
  260. package/lib/features/change-bounds/tracker.d.ts.map +1 -0
  261. package/lib/features/change-bounds/tracker.js +60 -0
  262. package/lib/features/change-bounds/tracker.js.map +1 -0
  263. package/lib/features/command-palette/command-palette-module.d.ts +1 -1
  264. package/lib/features/command-palette/command-palette-module.d.ts.map +1 -1
  265. package/lib/features/command-palette/command-palette-module.js +4 -3
  266. package/lib/features/command-palette/command-palette-module.js.map +1 -1
  267. package/{src/base/feedback/index.ts → lib/features/command-palette/command-palette.d.ts} +7 -7
  268. package/lib/features/command-palette/command-palette.d.ts.map +1 -0
  269. package/lib/features/command-palette/command-palette.js +47 -0
  270. package/lib/features/command-palette/command-palette.js.map +1 -0
  271. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  272. package/lib/features/context-menu/context-menu-module.d.ts +1 -1
  273. package/lib/features/context-menu/context-menu-module.d.ts.map +1 -1
  274. package/lib/features/context-menu/context-menu-module.js +2 -2
  275. package/lib/features/context-menu/context-menu-module.js.map +1 -1
  276. package/lib/features/context-menu/glsp-context-menu-mouse-listener.d.ts +1 -1
  277. package/lib/features/context-menu/glsp-context-menu-mouse-listener.js +2 -2
  278. package/lib/features/context-menu/glsp-context-menu-mouse-listener.js.map +1 -1
  279. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  280. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  281. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  282. package/lib/features/copy-paste/copy-paste-modules.d.ts +1 -1
  283. package/lib/features/copy-paste/copy-paste-modules.d.ts.map +1 -1
  284. package/lib/features/copy-paste/copy-paste-modules.js +6 -3
  285. package/lib/features/copy-paste/copy-paste-modules.js.map +1 -1
  286. package/lib/features/copy-paste/copy-paste-standalone.d.ts +1 -1
  287. package/lib/features/copy-paste/copy-paste-standalone.d.ts.map +1 -1
  288. package/lib/features/copy-paste/copy-paste-standalone.js +1 -4
  289. package/lib/features/copy-paste/copy-paste-standalone.js.map +1 -1
  290. package/lib/features/debug/debug-bounds-decorator.d.ts +39 -0
  291. package/lib/features/debug/debug-bounds-decorator.d.ts.map +1 -0
  292. package/lib/features/debug/debug-bounds-decorator.js +155 -0
  293. package/lib/features/debug/debug-bounds-decorator.js.map +1 -0
  294. package/lib/features/debug/debug-manager.d.ts +30 -0
  295. package/lib/features/debug/debug-manager.d.ts.map +1 -0
  296. package/lib/features/debug/debug-manager.js +74 -0
  297. package/lib/features/debug/debug-manager.js.map +1 -0
  298. package/lib/features/debug/debug-model.d.ts +37 -0
  299. package/lib/features/debug/debug-model.d.ts.map +1 -0
  300. package/lib/features/debug/debug-model.js +73 -0
  301. package/lib/features/debug/debug-model.js.map +1 -0
  302. package/lib/features/{accessibility/focus-tracker/index.d.ts → debug/debug-module.d.ts} +5 -4
  303. package/lib/features/debug/debug-module.d.ts.map +1 -0
  304. package/lib/features/debug/debug-module.js +31 -0
  305. package/lib/features/debug/debug-module.js.map +1 -0
  306. package/lib/features/decoration/decoration-module.d.ts +1 -1
  307. package/lib/features/decoration/decoration-module.d.ts.map +1 -1
  308. package/lib/features/decoration/decoration-module.js +2 -2
  309. package/lib/features/decoration/decoration-module.js.map +1 -1
  310. package/lib/features/decoration/decoration-placer.js.map +1 -1
  311. package/lib/features/element-template/add-template-element.js.map +1 -1
  312. package/lib/features/element-template/element-template-module.d.ts +1 -1
  313. package/lib/features/element-template/element-template-module.d.ts.map +1 -1
  314. package/lib/features/element-template/element-template-module.js +2 -2
  315. package/lib/features/element-template/element-template-module.js.map +1 -1
  316. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts +22 -19
  317. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts.map +1 -1
  318. package/lib/features/element-template/mouse-tracking-element-position-listener.js +53 -69
  319. package/lib/features/element-template/mouse-tracking-element-position-listener.js.map +1 -1
  320. package/lib/features/element-template/remove-template-element.js.map +1 -1
  321. package/lib/features/export/export-modules.d.ts +1 -1
  322. package/lib/features/export/export-modules.d.ts.map +1 -1
  323. package/lib/features/export/export-modules.js +3 -3
  324. package/lib/features/export/export-modules.js.map +1 -1
  325. package/lib/features/export/glsp-svg-exporter.d.ts +24 -2
  326. package/lib/features/export/glsp-svg-exporter.d.ts.map +1 -1
  327. package/lib/features/export/glsp-svg-exporter.js +75 -17
  328. package/lib/features/export/glsp-svg-exporter.js.map +1 -1
  329. package/lib/features/grid/grid-manager.d.ts +33 -0
  330. package/lib/features/grid/grid-manager.d.ts.map +1 -0
  331. package/lib/features/grid/grid-manager.js +76 -0
  332. package/lib/features/grid/grid-manager.js.map +1 -0
  333. package/lib/features/grid/grid-model.d.ts +37 -0
  334. package/lib/features/grid/grid-model.d.ts.map +1 -0
  335. package/lib/features/grid/grid-model.js +73 -0
  336. package/lib/features/grid/grid-model.js.map +1 -0
  337. package/lib/features/grid/grid-module.d.ts +19 -0
  338. package/lib/features/grid/grid-module.d.ts.map +1 -0
  339. package/lib/features/grid/grid-module.js +32 -0
  340. package/lib/features/grid/grid-module.js.map +1 -0
  341. package/lib/features/grid/grid-snapper.d.ts +45 -0
  342. package/lib/features/grid/grid-snapper.d.ts.map +1 -0
  343. package/lib/features/grid/grid-snapper.js +83 -0
  344. package/lib/features/grid/grid-snapper.js.map +1 -0
  345. package/lib/{base/feedback/index.d.ts → features/grid/grid-style.d.ts} +10 -7
  346. package/lib/features/grid/grid-style.d.ts.map +1 -0
  347. package/lib/features/grid/grid-style.js +28 -0
  348. package/lib/features/grid/grid-style.js.map +1 -0
  349. package/lib/{base/tool-manager/index.d.ts → features/grid/grid.d.ts} +4 -4
  350. package/lib/features/grid/grid.d.ts.map +1 -0
  351. package/lib/features/grid/grid.js +3 -0
  352. package/lib/features/grid/grid.js.map +1 -0
  353. package/lib/features/helper-lines/helper-line-feedback.d.ts +2 -2
  354. package/lib/features/helper-lines/helper-line-feedback.d.ts.map +1 -1
  355. package/lib/features/helper-lines/helper-line-feedback.js +46 -43
  356. package/lib/features/helper-lines/helper-line-feedback.js.map +1 -1
  357. package/lib/features/helper-lines/helper-line-manager-default.d.ts +22 -4
  358. package/lib/features/helper-lines/helper-line-manager-default.d.ts.map +1 -1
  359. package/lib/features/helper-lines/helper-line-manager-default.js +87 -17
  360. package/lib/features/helper-lines/helper-line-manager-default.js.map +1 -1
  361. package/lib/features/helper-lines/helper-line-manager.d.ts +10 -2
  362. package/lib/features/helper-lines/helper-line-manager.d.ts.map +1 -1
  363. package/lib/features/helper-lines/helper-line-module.d.ts +1 -1
  364. package/lib/features/helper-lines/helper-line-module.d.ts.map +1 -1
  365. package/lib/features/helper-lines/helper-line-module.js +2 -2
  366. package/lib/features/helper-lines/helper-line-module.js.map +1 -1
  367. package/lib/features/helper-lines/model.d.ts +4 -10
  368. package/lib/features/helper-lines/model.d.ts.map +1 -1
  369. package/lib/features/helper-lines/model.js +11 -29
  370. package/lib/features/helper-lines/model.js.map +1 -1
  371. package/lib/features/helper-lines/view.d.ts +2 -1
  372. package/lib/features/helper-lines/view.d.ts.map +1 -1
  373. package/lib/features/helper-lines/view.js +6 -7
  374. package/lib/features/helper-lines/view.js.map +1 -1
  375. package/lib/features/hints/model.d.ts +6 -2
  376. package/lib/features/hints/model.d.ts.map +1 -1
  377. package/lib/features/hints/model.js.map +1 -1
  378. package/lib/features/hints/type-hint-provider.d.ts +3 -0
  379. package/lib/features/hints/type-hint-provider.d.ts.map +1 -1
  380. package/lib/features/hints/type-hint-provider.js +10 -1
  381. package/lib/features/hints/type-hint-provider.js.map +1 -1
  382. package/lib/features/hints/type-hints-module.d.ts +1 -1
  383. package/lib/features/hints/type-hints-module.d.ts.map +1 -1
  384. package/lib/features/hints/type-hints-module.js +2 -2
  385. package/lib/features/hints/type-hints-module.js.map +1 -1
  386. package/lib/features/hover/hover-module.d.ts +1 -1
  387. package/lib/features/hover/hover-module.d.ts.map +1 -1
  388. package/lib/features/hover/hover-module.js +2 -2
  389. package/lib/features/hover/hover-module.js.map +1 -1
  390. package/lib/features/hover/hover.js.map +1 -1
  391. package/lib/features/label-edit/edit-label-validator.js.map +1 -1
  392. package/lib/features/label-edit/label-edit-module.d.ts +1 -1
  393. package/lib/features/label-edit/label-edit-module.d.ts.map +1 -1
  394. package/lib/features/label-edit/label-edit-module.js +2 -2
  395. package/lib/features/label-edit/label-edit-module.js.map +1 -1
  396. package/lib/{base/view/index.d.ts → features/label-edit-ui/label-edit-ui-module.d.ts} +4 -5
  397. package/lib/features/label-edit-ui/label-edit-ui-module.d.ts.map +1 -0
  398. package/lib/features/{reconnect/index.js → label-edit-ui/label-edit-ui-module.js} +11 -17
  399. package/lib/features/label-edit-ui/label-edit-ui-module.js.map +1 -0
  400. package/lib/{base/auto-complete/index.d.ts → features/label-edit-ui/label-edit-ui.d.ts} +7 -7
  401. package/lib/features/label-edit-ui/label-edit-ui.d.ts.map +1 -0
  402. package/lib/features/label-edit-ui/label-edit-ui.js +48 -0
  403. package/lib/features/label-edit-ui/label-edit-ui.js.map +1 -0
  404. package/lib/features/layout/layout-elements-action.d.ts +16 -1
  405. package/lib/features/layout/layout-elements-action.d.ts.map +1 -1
  406. package/lib/features/layout/layout-elements-action.js +8 -7
  407. package/lib/features/layout/layout-elements-action.js.map +1 -1
  408. package/lib/features/layout/layout-module.d.ts +1 -1
  409. package/lib/features/layout/layout-module.d.ts.map +1 -1
  410. package/lib/features/layout/layout-module.js +2 -2
  411. package/lib/features/layout/layout-module.js.map +1 -1
  412. package/lib/features/navigation/navigation-action-handler.d.ts +15 -0
  413. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  414. package/lib/features/navigation/navigation-action-handler.js +2 -2
  415. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  416. package/lib/features/navigation/navigation-module.d.ts +1 -1
  417. package/lib/features/navigation/navigation-module.d.ts.map +1 -1
  418. package/lib/features/navigation/navigation-module.js +2 -2
  419. package/lib/features/navigation/navigation-module.js.map +1 -1
  420. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  421. package/lib/features/reconnect/model.js.map +1 -1
  422. package/lib/features/routing/edge-router.d.ts +34 -0
  423. package/lib/features/routing/edge-router.d.ts.map +1 -0
  424. package/lib/features/routing/edge-router.js +153 -0
  425. package/lib/features/routing/edge-router.js.map +1 -0
  426. package/lib/features/routing/routing-module.d.ts +1 -1
  427. package/lib/features/routing/routing-module.d.ts.map +1 -1
  428. package/lib/features/routing/routing-module.js +6 -6
  429. package/lib/features/routing/routing-module.js.map +1 -1
  430. package/lib/features/save/save-keylistener.js.map +1 -1
  431. package/lib/features/save/save-module.d.ts +1 -1
  432. package/lib/features/save/save-module.d.ts.map +1 -1
  433. package/lib/features/save/save-module.js +2 -2
  434. package/lib/features/save/save-module.js.map +1 -1
  435. package/lib/features/select/select-module.d.ts +1 -1
  436. package/lib/features/select/select-module.d.ts.map +1 -1
  437. package/lib/features/select/select-module.js +3 -3
  438. package/lib/features/select/select-module.js.map +1 -1
  439. package/lib/features/select/select-mouse-listener.d.ts +8 -4
  440. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  441. package/lib/features/select/select-mouse-listener.js +31 -3
  442. package/lib/features/select/select-mouse-listener.js.map +1 -1
  443. package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
  444. package/lib/features/source-model-watcher/source-model-watcher-module.d.ts +1 -1
  445. package/lib/features/source-model-watcher/source-model-watcher-module.d.ts.map +1 -1
  446. package/lib/features/source-model-watcher/source-model-watcher-module.js +2 -2
  447. package/lib/features/source-model-watcher/source-model-watcher-module.js.map +1 -1
  448. package/lib/features/status/status-module.d.ts +1 -1
  449. package/lib/features/status/status-module.d.ts.map +1 -1
  450. package/lib/features/status/status-module.js +2 -2
  451. package/lib/features/status/status-module.js.map +1 -1
  452. package/lib/features/status/status-overlay.d.ts +18 -2
  453. package/lib/features/status/status-overlay.d.ts.map +1 -1
  454. package/lib/features/status/status-overlay.js +4 -3
  455. package/lib/features/status/status-overlay.js.map +1 -1
  456. package/lib/features/svg-metadata/metadata-placer.js.map +1 -1
  457. package/lib/features/svg-metadata/svg-metadata-module.d.ts +1 -1
  458. package/lib/features/svg-metadata/svg-metadata-module.d.ts.map +1 -1
  459. package/lib/features/svg-metadata/svg-metadata-module.js +2 -2
  460. package/lib/features/svg-metadata/svg-metadata-module.js.map +1 -1
  461. package/lib/features/tool-palette/tool-palette-module.d.ts +1 -1
  462. package/lib/features/tool-palette/tool-palette-module.d.ts.map +1 -1
  463. package/lib/features/tool-palette/tool-palette-module.js +2 -2
  464. package/lib/features/tool-palette/tool-palette-module.js.map +1 -1
  465. package/lib/features/tool-palette/tool-palette.d.ts +11 -3
  466. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  467. package/lib/features/tool-palette/tool-palette.js +83 -4
  468. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  469. package/lib/features/tools/base-tools.d.ts +46 -18
  470. package/lib/features/tools/base-tools.d.ts.map +1 -1
  471. package/lib/features/tools/base-tools.js +10 -23
  472. package/lib/features/tools/base-tools.js.map +1 -1
  473. package/lib/features/tools/change-bounds/change-bounds-manager.d.ts +50 -0
  474. package/lib/features/tools/change-bounds/change-bounds-manager.d.ts.map +1 -0
  475. package/lib/features/tools/change-bounds/change-bounds-manager.js +170 -0
  476. package/lib/features/tools/change-bounds/change-bounds-manager.js.map +1 -0
  477. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts +7 -35
  478. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts.map +1 -1
  479. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js +12 -207
  480. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -1
  481. package/lib/features/tools/change-bounds/change-bounds-tool-module.d.ts +2 -1
  482. package/lib/features/tools/change-bounds/change-bounds-tool-module.d.ts.map +1 -1
  483. package/lib/features/tools/change-bounds/change-bounds-tool-module.js +6 -3
  484. package/lib/features/tools/change-bounds/change-bounds-tool-module.js.map +1 -1
  485. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.d.ts +58 -0
  486. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.d.ts.map +1 -0
  487. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.js +173 -0
  488. package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.js.map +1 -0
  489. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts +34 -31
  490. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -1
  491. package/lib/features/tools/change-bounds/change-bounds-tool.js +146 -219
  492. package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -1
  493. package/lib/features/tools/change-bounds/change-bounds-tracker.d.ts +143 -0
  494. package/lib/features/tools/change-bounds/change-bounds-tracker.d.ts.map +1 -0
  495. package/lib/features/tools/change-bounds/change-bounds-tracker.js +319 -0
  496. package/lib/features/tools/change-bounds/change-bounds-tracker.js.map +1 -0
  497. package/lib/features/tools/change-bounds/view.d.ts +9 -5
  498. package/lib/features/tools/change-bounds/view.d.ts.map +1 -1
  499. package/lib/features/tools/change-bounds/view.js +14 -26
  500. package/lib/features/tools/change-bounds/view.js.map +1 -1
  501. package/lib/features/tools/deletion/delete-tool.d.ts +16 -1
  502. package/lib/features/tools/deletion/delete-tool.d.ts.map +1 -1
  503. package/lib/features/tools/deletion/delete-tool.js +6 -3
  504. package/lib/features/tools/deletion/delete-tool.js.map +1 -1
  505. package/lib/features/tools/deletion/deletion-tool-module.d.ts +1 -1
  506. package/lib/features/tools/deletion/deletion-tool-module.d.ts.map +1 -1
  507. package/lib/features/tools/deletion/deletion-tool-module.js +2 -2
  508. package/lib/features/tools/deletion/deletion-tool-module.js.map +1 -1
  509. package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts +17 -1
  510. package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts.map +1 -1
  511. package/lib/features/tools/edge-creation/dangling-edge-feedback.js +4 -2
  512. package/lib/features/tools/edge-creation/dangling-edge-feedback.js.map +1 -1
  513. package/lib/features/tools/edge-creation/edege-creation-module.d.ts +1 -1
  514. package/lib/features/tools/edge-creation/edege-creation-module.d.ts.map +1 -1
  515. package/lib/features/tools/edge-creation/edege-creation-module.js +2 -2
  516. package/lib/features/tools/edge-creation/edege-creation-module.js.map +1 -1
  517. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts +4 -2
  518. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts.map +1 -1
  519. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js +5 -8
  520. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js.map +1 -1
  521. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts +40 -5
  522. package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -1
  523. package/lib/features/tools/edge-creation/edge-creation-tool.js +70 -36
  524. package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -1
  525. package/lib/features/tools/edge-creation/view.d.ts +17 -1
  526. package/lib/features/tools/edge-creation/view.d.ts.map +1 -1
  527. package/lib/features/tools/edge-creation/view.js +4 -5
  528. package/lib/features/tools/edge-creation/view.js.map +1 -1
  529. package/lib/features/tools/edge-edit/edge-edit-module.d.ts +1 -1
  530. package/lib/features/tools/edge-edit/edge-edit-module.d.ts.map +1 -1
  531. package/lib/features/tools/edge-edit/edge-edit-module.js +2 -2
  532. package/lib/features/tools/edge-edit/edge-edit-module.js.map +1 -1
  533. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts +17 -13
  534. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts.map +1 -1
  535. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js +49 -62
  536. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js.map +1 -1
  537. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts +8 -7
  538. package/lib/features/tools/edge-edit/edge-edit-tool.d.ts.map +1 -1
  539. package/lib/features/tools/edge-edit/edge-edit-tool.js +35 -50
  540. package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -1
  541. package/lib/features/tools/marquee-selection/marquee-behavior.d.ts +16 -4
  542. package/lib/features/tools/marquee-selection/marquee-behavior.d.ts.map +1 -1
  543. package/lib/features/tools/marquee-selection/marquee-behavior.js +62 -10
  544. package/lib/features/tools/marquee-selection/marquee-behavior.js.map +1 -1
  545. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts +11 -11
  546. package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -1
  547. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js +24 -48
  548. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -1
  549. package/lib/features/tools/marquee-selection/marquee-selection-module.d.ts +1 -1
  550. package/lib/features/tools/marquee-selection/marquee-selection-module.d.ts.map +1 -1
  551. package/lib/features/tools/marquee-selection/marquee-selection-module.js +4 -2
  552. package/lib/features/tools/marquee-selection/marquee-selection-module.js.map +1 -1
  553. package/lib/features/tools/marquee-selection/marquee-tool-feedback.js.map +1 -1
  554. package/lib/features/tools/marquee-selection/marquee-tool.js.map +1 -1
  555. package/lib/features/tools/marquee-selection/view.d.ts +17 -1
  556. package/lib/features/tools/marquee-selection/view.d.ts.map +1 -1
  557. package/lib/features/tools/marquee-selection/view.js +5 -6
  558. package/lib/features/tools/marquee-selection/view.js.map +1 -1
  559. package/lib/features/tools/node-creation/container-manager.d.ts +42 -0
  560. package/lib/features/tools/node-creation/container-manager.d.ts.map +1 -0
  561. package/lib/features/tools/node-creation/container-manager.js +73 -0
  562. package/lib/features/tools/node-creation/container-manager.js.map +1 -0
  563. package/lib/features/tools/node-creation/insert-indicator.d.ts +30 -0
  564. package/lib/features/tools/node-creation/insert-indicator.d.ts.map +1 -0
  565. package/lib/features/tools/node-creation/insert-indicator.js +40 -0
  566. package/lib/features/tools/node-creation/insert-indicator.js.map +1 -0
  567. package/lib/features/tools/node-creation/node-creation-module.d.ts +1 -1
  568. package/lib/features/tools/node-creation/node-creation-module.d.ts.map +1 -1
  569. package/lib/features/tools/node-creation/node-creation-module.js +10 -2
  570. package/lib/features/tools/node-creation/node-creation-module.js.map +1 -1
  571. package/lib/features/tools/node-creation/node-creation-tool.d.ts +46 -14
  572. package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -1
  573. package/lib/features/tools/node-creation/node-creation-tool.js +123 -65
  574. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -1
  575. package/lib/features/tools/node-creation/node-creation-views.d.ts +26 -0
  576. package/lib/features/tools/node-creation/node-creation-views.d.ts.map +1 -0
  577. package/lib/features/tools/node-creation/node-creation-views.js +59 -0
  578. package/lib/features/tools/node-creation/node-creation-views.js.map +1 -0
  579. package/lib/features/tools/tool-focus-loss-module.d.ts +15 -0
  580. package/lib/features/tools/tool-focus-loss-module.d.ts.map +1 -1
  581. package/lib/features/tools/tool-focus-loss-module.js +3 -3
  582. package/lib/features/tools/tool-focus-loss-module.js.map +1 -1
  583. package/lib/features/undo-redo/undo-redo-key-listener.js.map +1 -1
  584. package/lib/features/undo-redo/undo-redo-module.d.ts +3 -3
  585. package/lib/features/undo-redo/undo-redo-module.d.ts.map +1 -1
  586. package/lib/features/undo-redo/undo-redo-module.js +3 -4
  587. package/lib/features/undo-redo/undo-redo-module.js.map +1 -1
  588. package/lib/features/validation/issue-marker.d.ts +3 -3
  589. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  590. package/lib/features/validation/issue-marker.js +6 -4
  591. package/lib/features/validation/issue-marker.js.map +1 -1
  592. package/lib/features/validation/marker-navigator.d.ts +8 -7
  593. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  594. package/lib/features/validation/marker-navigator.js +1 -1
  595. package/lib/features/validation/marker-navigator.js.map +1 -1
  596. package/lib/features/validation/validate.d.ts +3 -6
  597. package/lib/features/validation/validate.d.ts.map +1 -1
  598. package/lib/features/validation/validate.js +5 -17
  599. package/lib/features/validation/validate.js.map +1 -1
  600. package/lib/features/validation/validation-modules.d.ts +1 -1
  601. package/lib/features/validation/validation-modules.d.ts.map +1 -1
  602. package/lib/features/validation/validation-modules.js +4 -4
  603. package/lib/features/validation/validation-modules.js.map +1 -1
  604. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  605. package/lib/features/viewport/origin-viewport.d.ts +36 -0
  606. package/lib/features/viewport/origin-viewport.d.ts.map +1 -0
  607. package/lib/features/viewport/origin-viewport.js +75 -0
  608. package/lib/features/viewport/origin-viewport.js.map +1 -0
  609. package/lib/features/viewport/reposition.d.ts +2 -2
  610. package/lib/features/viewport/reposition.d.ts.map +1 -1
  611. package/lib/features/viewport/reposition.js +11 -14
  612. package/lib/features/viewport/reposition.js.map +1 -1
  613. package/lib/features/viewport/viewport-handler.d.ts +6 -4
  614. package/lib/features/viewport/viewport-handler.d.ts.map +1 -1
  615. package/lib/features/viewport/viewport-handler.js +13 -8
  616. package/lib/features/viewport/viewport-handler.js.map +1 -1
  617. package/lib/features/viewport/viewport-modules.d.ts +1 -1
  618. package/lib/features/viewport/viewport-modules.d.ts.map +1 -1
  619. package/lib/features/viewport/viewport-modules.js +7 -5
  620. package/lib/features/viewport/viewport-modules.js.map +1 -1
  621. package/lib/index.d.ts +224 -5
  622. package/lib/index.d.ts.map +1 -1
  623. package/lib/index.js +224 -5
  624. package/lib/index.js.map +1 -1
  625. package/lib/model.js.map +1 -1
  626. package/lib/standalone-modules.d.ts +2 -2
  627. package/lib/standalone-modules.d.ts.map +1 -1
  628. package/lib/standalone-modules.js +2 -2
  629. package/lib/standalone-modules.js.map +1 -1
  630. package/lib/utils/argument-utils.js.map +1 -1
  631. package/lib/utils/geometry-util.d.ts +43 -23
  632. package/lib/utils/geometry-util.d.ts.map +1 -1
  633. package/lib/utils/geometry-util.js +43 -84
  634. package/lib/utils/geometry-util.js.map +1 -1
  635. package/lib/utils/gmodel-util.d.ts +49 -3
  636. package/lib/utils/gmodel-util.d.ts.map +1 -1
  637. package/lib/utils/gmodel-util.js +68 -17
  638. package/lib/utils/gmodel-util.js.map +1 -1
  639. package/lib/utils/html-utils.js.map +1 -1
  640. package/lib/utils/layout-utils.d.ts +10 -8
  641. package/lib/utils/layout-utils.d.ts.map +1 -1
  642. package/lib/utils/layout-utils.js +7 -5
  643. package/lib/utils/layout-utils.js.map +1 -1
  644. package/lib/utils/marker.js.map +1 -1
  645. package/lib/utils/viewpoint-util.d.ts +5 -5
  646. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  647. package/lib/utils/viewpoint-util.js +11 -21
  648. package/lib/utils/viewpoint-util.js.map +1 -1
  649. package/lib/views/base-view-module.d.ts +1 -1
  650. package/lib/views/base-view-module.d.ts.map +1 -1
  651. package/lib/views/base-view-module.js +5 -4
  652. package/lib/views/base-view-module.js.map +1 -1
  653. package/lib/views/compartments.d.ts +17 -1
  654. package/lib/views/compartments.d.ts.map +1 -1
  655. package/lib/views/compartments.js +5 -6
  656. package/lib/views/compartments.js.map +1 -1
  657. package/lib/views/gedge-view.d.ts +2 -1
  658. package/lib/views/gedge-view.d.ts.map +1 -1
  659. package/lib/views/gedge-view.js +5 -6
  660. package/lib/views/gedge-view.js.map +1 -1
  661. package/lib/views/ggraph-view.d.ts +25 -0
  662. package/lib/views/ggraph-view.d.ts.map +1 -0
  663. package/lib/views/ggraph-view.js +68 -0
  664. package/lib/views/ggraph-view.js.map +1 -0
  665. package/lib/views/glsp-projection-view.d.ts +7 -2
  666. package/lib/views/glsp-projection-view.d.ts.map +1 -1
  667. package/lib/views/glsp-projection-view.js +52 -68
  668. package/lib/views/glsp-projection-view.js.map +1 -1
  669. package/lib/views/issue-marker-view.d.ts +2 -1
  670. package/lib/views/issue-marker-view.d.ts.map +1 -1
  671. package/lib/views/issue-marker-view.js +7 -8
  672. package/lib/views/issue-marker-view.js.map +1 -1
  673. package/lib/views/rounded-corner-view.d.ts +17 -1
  674. package/lib/views/rounded-corner-view.d.ts.map +1 -1
  675. package/lib/views/rounded-corner-view.js +8 -9
  676. package/lib/views/rounded-corner-view.js.map +1 -1
  677. package/lib/views/rounded-corner.d.ts +1 -1
  678. package/lib/views/rounded-corner.d.ts.map +1 -1
  679. package/lib/views/rounded-corner.js.map +1 -1
  680. package/package.json +11 -5
  681. package/src/base/action-dispatcher.spec.ts +5 -4
  682. package/src/base/action-dispatcher.ts +44 -4
  683. package/src/base/action-handler-registry.ts +19 -37
  684. package/src/base/auto-complete/auto-complete-widget.ts +2 -2
  685. package/src/base/auto-complete/base-autocomplete-palette.ts +4 -3
  686. package/src/base/command-stack.ts +23 -33
  687. package/src/base/default.module.ts +87 -65
  688. package/src/base/drag-aware-mouse-listener.ts +33 -3
  689. package/src/base/editor-context-service.ts +61 -16
  690. package/src/base/feedback/css-feedback.ts +14 -2
  691. package/src/base/feedback/feedback-action-dispatcher-default.ts +119 -0
  692. package/src/base/feedback/feedback-action-dispatcher.ts +21 -90
  693. package/src/base/feedback/feedback-emitter.spec.ts +176 -0
  694. package/src/base/feedback/feedback-emitter.ts +134 -0
  695. package/src/base/model/diagram-loader.ts +26 -15
  696. package/src/base/model/model-registry.ts +6 -2
  697. package/src/base/mouse-position-tracker.ts +48 -0
  698. package/src/base/selection-service.spec.ts +5 -0
  699. package/src/base/selection-service.ts +23 -23
  700. package/src/base/tool-manager/tool-manager.ts +43 -25
  701. package/src/base/ui-extension/ui-extension-registry.ts +33 -0
  702. package/src/base/ui-extension/ui-extension.ts +119 -0
  703. package/src/base/view/key-tool.ts +16 -4
  704. package/src/base/view/mouse-tool.ts +23 -6
  705. package/src/default-modules.spec.ts +56 -0
  706. package/src/default-modules.ts +8 -5
  707. package/src/features/accessibility/accessibility-module.ts +25 -20
  708. package/src/features/accessibility/element-navigation/element-navigation-module.ts +17 -10
  709. package/src/features/accessibility/element-navigation/local-element-navigator.ts +5 -5
  710. package/src/features/accessibility/focus-tracker/focus-tracker-module.ts +14 -7
  711. package/src/features/accessibility/key-shortcut/accessible-key-shortcut.ts +4 -3
  712. package/src/features/accessibility/key-shortcut/{di.config.ts → shortcut-help-module.ts} +14 -7
  713. package/src/features/accessibility/keyboard-grid/keyboard-grid.ts +10 -10
  714. package/src/features/accessibility/keyboard-pointer/keyboard-pointer-listener.ts +5 -2
  715. package/src/features/accessibility/keyboard-pointer/keyboard-pointer-module.ts +19 -16
  716. package/src/features/accessibility/keyboard-pointer/keyboard-pointer.ts +7 -14
  717. package/src/features/accessibility/keyboard-tool-palette/keyboard-tool-palette-module.ts +8 -5
  718. package/src/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.ts +25 -8
  719. package/src/features/accessibility/move-zoom/move-handler.ts +12 -7
  720. package/src/features/accessibility/move-zoom/move-zoom-module.ts +8 -5
  721. package/src/features/accessibility/resize-key-tool/resize-key-handler.ts +20 -16
  722. package/src/features/accessibility/resize-key-tool/resize-key-module.ts +8 -5
  723. package/src/features/accessibility/search/search-palette-module.ts +8 -5
  724. package/src/features/accessibility/toast/toast-module.ts +14 -7
  725. package/src/features/accessibility/toast/toast-tool.ts +6 -5
  726. package/src/features/accessibility/view-key-tools/deselect-key-tool.ts +8 -8
  727. package/src/features/accessibility/view-key-tools/movement-key-tool.ts +24 -17
  728. package/src/features/accessibility/view-key-tools/view-key-tools-module.ts +11 -6
  729. package/src/features/bounds/bounds-module.ts +21 -16
  730. package/src/features/bounds/freeform-layout.ts +17 -7
  731. package/src/features/bounds/glsp-hidden-bounds-updater.ts +63 -46
  732. package/src/features/bounds/hbox-layout.ts +19 -10
  733. package/src/features/bounds/layout-data.ts +48 -0
  734. package/src/features/bounds/local-bounds.ts +20 -4
  735. package/src/features/bounds/set-bounds-feedback-command.ts +1 -1
  736. package/src/features/bounds/vbox-layout.ts +19 -11
  737. package/src/features/change-bounds/model.ts +162 -20
  738. package/src/features/change-bounds/movement-restrictor.ts +27 -33
  739. package/src/features/change-bounds/{snap.spec.ts → point-position-updater.spec.ts} +4 -13
  740. package/src/features/change-bounds/point-position-updater.ts +7 -1
  741. package/src/features/change-bounds/position-snapper.ts +4 -0
  742. package/src/features/change-bounds/snap.ts +6 -23
  743. package/src/features/change-bounds/tracker.ts +63 -0
  744. package/src/features/command-palette/command-palette-module.ts +12 -8
  745. package/src/features/command-palette/command-palette.ts +35 -0
  746. package/src/features/context-menu/context-menu-module.ts +17 -14
  747. package/src/features/context-menu/glsp-context-menu-mouse-listener.ts +2 -2
  748. package/src/features/copy-paste/copy-paste-modules.ts +12 -6
  749. package/src/features/copy-paste/copy-paste-standalone.ts +1 -4
  750. package/src/features/debug/debug-bounds-decorator.tsx +178 -0
  751. package/src/features/debug/debug-manager.ts +59 -0
  752. package/src/features/debug/debug-model.ts +63 -0
  753. package/src/features/debug/debug-module.ts +35 -0
  754. package/src/features/decoration/decoration-module.ts +7 -4
  755. package/src/features/element-template/element-template-module.ts +9 -6
  756. package/src/features/element-template/mouse-tracking-element-position-listener.ts +77 -72
  757. package/src/features/export/export-modules.ts +11 -8
  758. package/src/features/export/glsp-svg-exporter.ts +89 -19
  759. package/src/features/grid/grid-manager.ts +63 -0
  760. package/src/features/grid/grid-model.ts +62 -0
  761. package/src/features/grid/grid-module.ts +37 -0
  762. package/src/features/grid/grid-snapper.spec.ts +30 -0
  763. package/src/features/grid/grid-snapper.ts +59 -0
  764. package/{lib/features/routing/glsp-manhattan-edge-router.d.ts → src/features/grid/grid-style.ts} +9 -5
  765. package/src/{base/tool-manager/index.ts → features/grid/grid.ts} +4 -3
  766. package/src/features/helper-lines/helper-line-feedback.ts +53 -59
  767. package/src/features/helper-lines/helper-line-manager-default.ts +108 -18
  768. package/src/features/helper-lines/helper-line-manager.ts +11 -2
  769. package/src/features/helper-lines/helper-line-module.ts +17 -14
  770. package/src/features/helper-lines/model.ts +7 -26
  771. package/src/features/helper-lines/view.tsx +2 -4
  772. package/src/features/hints/model.ts +7 -2
  773. package/src/features/hints/type-hint-provider.spec.ts +6 -3
  774. package/src/features/hints/type-hint-provider.ts +9 -2
  775. package/src/features/hints/type-hints-module.ts +11 -8
  776. package/src/features/hover/hover-module.ts +29 -26
  777. package/src/features/label-edit/label-edit-module.ts +10 -7
  778. package/{lib/base/index.d.ts → src/features/label-edit-ui/label-edit-ui-module.ts} +13 -18
  779. package/src/features/label-edit-ui/label-edit-ui.ts +35 -0
  780. package/src/features/layout/layout-elements-action.ts +11 -8
  781. package/src/features/layout/layout-module.ts +9 -6
  782. package/src/features/navigation/navigation-action-handler.ts +2 -2
  783. package/src/features/navigation/navigation-module.ts +12 -9
  784. package/src/features/routing/edge-router.ts +171 -0
  785. package/src/features/routing/routing-module.ts +23 -22
  786. package/src/features/save/save-module.ts +7 -4
  787. package/src/features/select/select-module.ts +12 -9
  788. package/src/features/select/select-mouse-listener.ts +19 -4
  789. package/src/features/source-model-watcher/source-model-watcher-module.ts +7 -4
  790. package/src/features/status/status-module.ts +10 -7
  791. package/src/features/status/status-overlay.ts +4 -3
  792. package/src/features/svg-metadata/svg-metadata-module.ts +8 -5
  793. package/src/features/tool-palette/tool-palette-module.ts +11 -8
  794. package/src/features/tool-palette/tool-palette.ts +82 -6
  795. package/src/features/tools/base-tools.ts +45 -26
  796. package/src/features/tools/change-bounds/change-bounds-manager.ts +203 -0
  797. package/src/features/tools/change-bounds/change-bounds-tool-feedback.ts +18 -230
  798. package/src/features/tools/change-bounds/change-bounds-tool-module.ts +16 -10
  799. package/src/features/tools/change-bounds/change-bounds-tool-move-feedback.ts +204 -0
  800. package/src/features/tools/change-bounds/change-bounds-tool.ts +173 -285
  801. package/src/features/tools/change-bounds/change-bounds-tracker.ts +477 -0
  802. package/src/features/tools/change-bounds/view.tsx +15 -21
  803. package/src/features/tools/deletion/delete-tool.ts +7 -7
  804. package/src/features/tools/deletion/deletion-tool-module.ts +9 -6
  805. package/src/features/tools/edge-creation/dangling-edge-feedback.ts +8 -5
  806. package/src/features/tools/edge-creation/edege-creation-module.ts +10 -7
  807. package/src/features/tools/edge-creation/edge-creation-tool-feedback.ts +14 -11
  808. package/src/features/tools/edge-creation/edge-creation-tool.ts +86 -42
  809. package/src/features/tools/edge-creation/view.tsx +3 -5
  810. package/src/features/tools/edge-edit/edge-edit-module.ts +15 -12
  811. package/src/features/tools/edge-edit/edge-edit-tool-feedback.ts +62 -66
  812. package/src/features/tools/edge-edit/edge-edit-tool.ts +50 -53
  813. package/src/features/tools/marquee-selection/marquee-behavior.spec.ts +3 -2
  814. package/src/features/tools/marquee-selection/marquee-behavior.ts +67 -9
  815. package/src/features/tools/marquee-selection/marquee-mouse-tool.ts +33 -70
  816. package/src/features/tools/marquee-selection/marquee-selection-module.ts +14 -9
  817. package/src/features/tools/marquee-selection/view.tsx +3 -5
  818. package/src/features/tools/node-creation/container-manager.ts +78 -0
  819. package/src/features/tools/node-creation/insert-indicator.ts +41 -0
  820. package/src/features/tools/node-creation/node-creation-module.ts +18 -3
  821. package/src/features/tools/node-creation/node-creation-tool.ts +161 -68
  822. package/src/features/tools/node-creation/node-creation-views.tsx +46 -0
  823. package/src/features/tools/tool-focus-loss-module.ts +8 -5
  824. package/src/features/undo-redo/undo-redo-module.ts +8 -6
  825. package/src/features/validation/issue-marker.ts +7 -6
  826. package/src/features/validation/marker-navigator.ts +7 -9
  827. package/src/features/validation/validate.ts +6 -21
  828. package/src/features/validation/validation-modules.ts +20 -14
  829. package/src/features/viewport/origin-viewport.ts +68 -0
  830. package/src/features/viewport/reposition.ts +12 -15
  831. package/src/features/viewport/viewport-handler.ts +13 -7
  832. package/src/features/viewport/viewport-modules.ts +24 -19
  833. package/src/index.ts +224 -5
  834. package/src/standalone-modules.ts +13 -10
  835. package/src/utils/geometry-util.ts +46 -65
  836. package/src/utils/gmodel-util.ts +89 -7
  837. package/src/utils/layout-utils.ts +14 -21
  838. package/src/utils/viewpoint-util.ts +14 -26
  839. package/src/views/base-view-module.ts +11 -8
  840. package/src/views/compartments.tsx +3 -5
  841. package/src/views/gedge-view.tsx +3 -5
  842. package/src/views/ggraph-view.tsx +53 -0
  843. package/src/views/glsp-projection-view.tsx +42 -72
  844. package/src/views/issue-marker-view.tsx +2 -4
  845. package/src/views/rounded-corner-view.tsx +3 -5
  846. package/src/views/rounded-corner.ts +5 -2
  847. package/lib/base/action-dispatcher.spec.d.ts +0 -2
  848. package/lib/base/action-dispatcher.spec.d.ts.map +0 -1
  849. package/lib/base/action-dispatcher.spec.js +0 -78
  850. package/lib/base/action-dispatcher.spec.js.map +0 -1
  851. package/lib/base/auto-complete/index.d.ts.map +0 -1
  852. package/lib/base/auto-complete/index.js +0 -37
  853. package/lib/base/auto-complete/index.js.map +0 -1
  854. package/lib/base/feedback/index.d.ts.map +0 -1
  855. package/lib/base/feedback/index.js +0 -37
  856. package/lib/base/feedback/index.js.map +0 -1
  857. package/lib/base/focus/index.d.ts.map +0 -1
  858. package/lib/base/focus/index.js +0 -34
  859. package/lib/base/focus/index.js.map +0 -1
  860. package/lib/base/index.d.ts.map +0 -1
  861. package/lib/base/index.js +0 -48
  862. package/lib/base/index.js.map +0 -1
  863. package/lib/base/model/index.d.ts.map +0 -1
  864. package/lib/base/model/index.js +0 -36
  865. package/lib/base/model/index.js.map +0 -1
  866. package/lib/base/model/model-initialization-constraint.spec.d.ts +0 -2
  867. package/lib/base/model/model-initialization-constraint.spec.d.ts.map +0 -1
  868. package/lib/base/model/model-initialization-constraint.spec.js +0 -97
  869. package/lib/base/model/model-initialization-constraint.spec.js.map +0 -1
  870. package/lib/base/selection-service.spec.d.ts +0 -2
  871. package/lib/base/selection-service.spec.d.ts.map +0 -1
  872. package/lib/base/selection-service.spec.js +0 -287
  873. package/lib/base/selection-service.spec.js.map +0 -1
  874. package/lib/base/tool-manager/index.d.ts.map +0 -1
  875. package/lib/base/tool-manager/index.js +0 -34
  876. package/lib/base/tool-manager/index.js.map +0 -1
  877. package/lib/base/view/index.d.ts.map +0 -1
  878. package/lib/base/view/index.js +0 -35
  879. package/lib/base/view/index.js.map +0 -1
  880. package/lib/features/accessibility/edge-autocomplete/index.d.ts +0 -20
  881. package/lib/features/accessibility/edge-autocomplete/index.d.ts.map +0 -1
  882. package/lib/features/accessibility/edge-autocomplete/index.js +0 -36
  883. package/lib/features/accessibility/edge-autocomplete/index.js.map +0 -1
  884. package/lib/features/accessibility/element-navigation/index.d.ts +0 -22
  885. package/lib/features/accessibility/element-navigation/index.d.ts.map +0 -1
  886. package/lib/features/accessibility/element-navigation/index.js +0 -38
  887. package/lib/features/accessibility/element-navigation/index.js.map +0 -1
  888. package/lib/features/accessibility/focus-tracker/index.d.ts.map +0 -1
  889. package/lib/features/accessibility/focus-tracker/index.js +0 -34
  890. package/lib/features/accessibility/focus-tracker/index.js.map +0 -1
  891. package/lib/features/accessibility/index.d.ts +0 -31
  892. package/lib/features/accessibility/index.d.ts.map +0 -1
  893. package/lib/features/accessibility/index.js +0 -47
  894. package/lib/features/accessibility/index.js.map +0 -1
  895. package/lib/features/accessibility/key-shortcut/di.config.d.ts.map +0 -1
  896. package/lib/features/accessibility/key-shortcut/di.config.js.map +0 -1
  897. package/lib/features/accessibility/key-shortcut/index.d.ts +0 -19
  898. package/lib/features/accessibility/key-shortcut/index.d.ts.map +0 -1
  899. package/lib/features/accessibility/key-shortcut/index.js +0 -35
  900. package/lib/features/accessibility/key-shortcut/index.js.map +0 -1
  901. package/lib/features/accessibility/keyboard-grid/index.d.ts +0 -21
  902. package/lib/features/accessibility/keyboard-grid/index.d.ts.map +0 -1
  903. package/lib/features/accessibility/keyboard-grid/index.js +0 -37
  904. package/lib/features/accessibility/keyboard-grid/index.js.map +0 -1
  905. package/lib/features/accessibility/keyboard-pointer/index.d.ts +0 -22
  906. package/lib/features/accessibility/keyboard-pointer/index.d.ts.map +0 -1
  907. package/lib/features/accessibility/keyboard-pointer/index.js +0 -38
  908. package/lib/features/accessibility/keyboard-pointer/index.js.map +0 -1
  909. package/lib/features/accessibility/keyboard-tool-palette/index.d.ts +0 -18
  910. package/lib/features/accessibility/keyboard-tool-palette/index.d.ts.map +0 -1
  911. package/lib/features/accessibility/keyboard-tool-palette/index.js +0 -34
  912. package/lib/features/accessibility/keyboard-tool-palette/index.js.map +0 -1
  913. package/lib/features/accessibility/move-zoom/index.d.ts +0 -19
  914. package/lib/features/accessibility/move-zoom/index.d.ts.map +0 -1
  915. package/lib/features/accessibility/move-zoom/index.js +0 -35
  916. package/lib/features/accessibility/move-zoom/index.js.map +0 -1
  917. package/lib/features/accessibility/resize-key-tool/index.d.ts +0 -19
  918. package/lib/features/accessibility/resize-key-tool/index.d.ts.map +0 -1
  919. package/lib/features/accessibility/resize-key-tool/index.js +0 -35
  920. package/lib/features/accessibility/resize-key-tool/index.js.map +0 -1
  921. package/lib/features/accessibility/search/index.d.ts +0 -19
  922. package/lib/features/accessibility/search/index.d.ts.map +0 -1
  923. package/lib/features/accessibility/search/index.js +0 -35
  924. package/lib/features/accessibility/search/index.js.map +0 -1
  925. package/lib/features/accessibility/toast/index.d.ts +0 -19
  926. package/lib/features/accessibility/toast/index.d.ts.map +0 -1
  927. package/lib/features/accessibility/toast/index.js +0 -35
  928. package/lib/features/accessibility/toast/index.js.map +0 -1
  929. package/lib/features/accessibility/view-key-tools/index.d.ts +0 -20
  930. package/lib/features/accessibility/view-key-tools/index.d.ts.map +0 -1
  931. package/lib/features/accessibility/view-key-tools/index.js +0 -36
  932. package/lib/features/accessibility/view-key-tools/index.js.map +0 -1
  933. package/lib/features/bounds/freeform-layout.spec.d.ts +0 -3
  934. package/lib/features/bounds/freeform-layout.spec.d.ts.map +0 -1
  935. package/lib/features/bounds/freeform-layout.spec.js +0 -201
  936. package/lib/features/bounds/freeform-layout.spec.js.map +0 -1
  937. package/lib/features/bounds/hbox-layout.spec.d.ts +0 -3
  938. package/lib/features/bounds/hbox-layout.spec.d.ts.map +0 -1
  939. package/lib/features/bounds/hbox-layout.spec.js +0 -160
  940. package/lib/features/bounds/hbox-layout.spec.js.map +0 -1
  941. package/lib/features/bounds/index.d.ts +0 -24
  942. package/lib/features/bounds/index.d.ts.map +0 -1
  943. package/lib/features/bounds/index.js +0 -40
  944. package/lib/features/bounds/index.js.map +0 -1
  945. package/lib/features/bounds/layouter-test-util.spec.d.ts +0 -32
  946. package/lib/features/bounds/layouter-test-util.spec.d.ts.map +0 -1
  947. package/lib/features/bounds/layouter-test-util.spec.js +0 -96
  948. package/lib/features/bounds/layouter-test-util.spec.js.map +0 -1
  949. package/lib/features/bounds/vbox-layout.spec.d.ts +0 -3
  950. package/lib/features/bounds/vbox-layout.spec.d.ts.map +0 -1
  951. package/lib/features/bounds/vbox-layout.spec.js +0 -160
  952. package/lib/features/bounds/vbox-layout.spec.js.map +0 -1
  953. package/lib/features/change-bounds/index.d.ts +0 -21
  954. package/lib/features/change-bounds/index.d.ts.map +0 -1
  955. package/lib/features/change-bounds/index.js +0 -37
  956. package/lib/features/change-bounds/index.js.map +0 -1
  957. package/lib/features/change-bounds/snap.spec.d.ts +0 -17
  958. package/lib/features/change-bounds/snap.spec.d.ts.map +0 -1
  959. package/lib/features/change-bounds/snap.spec.js +0 -83
  960. package/lib/features/change-bounds/snap.spec.js.map +0 -1
  961. package/lib/features/command-palette/index.d.ts +0 -19
  962. package/lib/features/command-palette/index.d.ts.map +0 -1
  963. package/lib/features/command-palette/index.js +0 -35
  964. package/lib/features/command-palette/index.js.map +0 -1
  965. package/lib/features/context-menu/index.d.ts +0 -20
  966. package/lib/features/context-menu/index.d.ts.map +0 -1
  967. package/lib/features/context-menu/index.js +0 -36
  968. package/lib/features/context-menu/index.js.map +0 -1
  969. package/lib/features/copy-paste/index.d.ts +0 -20
  970. package/lib/features/copy-paste/index.d.ts.map +0 -1
  971. package/lib/features/copy-paste/index.js +0 -36
  972. package/lib/features/copy-paste/index.js.map +0 -1
  973. package/lib/features/decoration/index.d.ts +0 -18
  974. package/lib/features/decoration/index.d.ts.map +0 -1
  975. package/lib/features/decoration/index.js +0 -34
  976. package/lib/features/decoration/index.js.map +0 -1
  977. package/lib/features/element-template/index.d.ts +0 -20
  978. package/lib/features/element-template/index.d.ts.map +0 -1
  979. package/lib/features/element-template/index.js +0 -36
  980. package/lib/features/element-template/index.js.map +0 -1
  981. package/lib/features/export/index.d.ts +0 -19
  982. package/lib/features/export/index.d.ts.map +0 -1
  983. package/lib/features/export/index.js +0 -35
  984. package/lib/features/export/index.js.map +0 -1
  985. package/lib/features/helper-lines/index.d.ts +0 -22
  986. package/lib/features/helper-lines/index.d.ts.map +0 -1
  987. package/lib/features/helper-lines/index.js +0 -38
  988. package/lib/features/helper-lines/index.js.map +0 -1
  989. package/lib/features/hints/index.d.ts +0 -19
  990. package/lib/features/hints/index.d.ts.map +0 -1
  991. package/lib/features/hints/index.js +0 -35
  992. package/lib/features/hints/index.js.map +0 -1
  993. package/lib/features/hints/type-hint-provider.spec.d.ts +0 -2
  994. package/lib/features/hints/type-hint-provider.spec.d.ts.map +0 -1
  995. package/lib/features/hints/type-hint-provider.spec.js +0 -333
  996. package/lib/features/hints/type-hint-provider.spec.js.map +0 -1
  997. package/lib/features/hover/index.d.ts +0 -18
  998. package/lib/features/hover/index.d.ts.map +0 -1
  999. package/lib/features/hover/index.js +0 -34
  1000. package/lib/features/hover/index.js.map +0 -1
  1001. package/lib/features/index.d.ts +0 -43
  1002. package/lib/features/index.d.ts.map +0 -1
  1003. package/lib/features/index.js +0 -59
  1004. package/lib/features/index.js.map +0 -1
  1005. package/lib/features/label-edit/index.d.ts +0 -19
  1006. package/lib/features/label-edit/index.d.ts.map +0 -1
  1007. package/lib/features/label-edit/index.js +0 -35
  1008. package/lib/features/label-edit/index.js.map +0 -1
  1009. package/lib/features/layout/index.d.ts +0 -18
  1010. package/lib/features/layout/index.d.ts.map +0 -1
  1011. package/lib/features/layout/index.js +0 -34
  1012. package/lib/features/layout/index.js.map +0 -1
  1013. package/lib/features/layout/layout-elements-action.spec.d.ts +0 -3
  1014. package/lib/features/layout/layout-elements-action.spec.d.ts.map +0 -1
  1015. package/lib/features/layout/layout-elements-action.spec.js +0 -329
  1016. package/lib/features/layout/layout-elements-action.spec.js.map +0 -1
  1017. package/lib/features/navigation/index.d.ts +0 -19
  1018. package/lib/features/navigation/index.d.ts.map +0 -1
  1019. package/lib/features/navigation/index.js +0 -35
  1020. package/lib/features/navigation/index.js.map +0 -1
  1021. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -3
  1022. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +0 -1
  1023. package/lib/features/navigation/navigation-target-resolver.spec.js +0 -53
  1024. package/lib/features/navigation/navigation-target-resolver.spec.js.map +0 -1
  1025. package/lib/features/reconnect/index.d.ts +0 -17
  1026. package/lib/features/reconnect/index.d.ts.map +0 -1
  1027. package/lib/features/reconnect/index.js.map +0 -1
  1028. package/lib/features/routing/glsp-manhattan-edge-router.d.ts.map +0 -1
  1029. package/lib/features/routing/glsp-manhattan-edge-router.js +0 -68
  1030. package/lib/features/routing/glsp-manhattan-edge-router.js.map +0 -1
  1031. package/lib/features/routing/index.d.ts +0 -18
  1032. package/lib/features/routing/index.d.ts.map +0 -1
  1033. package/lib/features/routing/index.js +0 -34
  1034. package/lib/features/routing/index.js.map +0 -1
  1035. package/lib/features/save/index.d.ts +0 -18
  1036. package/lib/features/save/index.d.ts.map +0 -1
  1037. package/lib/features/save/index.js +0 -34
  1038. package/lib/features/save/index.js.map +0 -1
  1039. package/lib/features/select/index.d.ts +0 -19
  1040. package/lib/features/select/index.d.ts.map +0 -1
  1041. package/lib/features/select/index.js +0 -35
  1042. package/lib/features/select/index.js.map +0 -1
  1043. package/lib/features/source-model-watcher/index.d.ts +0 -18
  1044. package/lib/features/source-model-watcher/index.d.ts.map +0 -1
  1045. package/lib/features/source-model-watcher/index.js +0 -34
  1046. package/lib/features/source-model-watcher/index.js.map +0 -1
  1047. package/lib/features/status/index.d.ts +0 -18
  1048. package/lib/features/status/index.d.ts.map +0 -1
  1049. package/lib/features/status/index.js +0 -34
  1050. package/lib/features/status/index.js.map +0 -1
  1051. package/lib/features/svg-metadata/index.d.ts +0 -18
  1052. package/lib/features/svg-metadata/index.d.ts.map +0 -1
  1053. package/lib/features/svg-metadata/index.js +0 -34
  1054. package/lib/features/svg-metadata/index.js.map +0 -1
  1055. package/lib/features/tool-palette/index.d.ts +0 -18
  1056. package/lib/features/tool-palette/index.d.ts.map +0 -1
  1057. package/lib/features/tool-palette/index.js +0 -34
  1058. package/lib/features/tool-palette/index.js.map +0 -1
  1059. package/lib/features/tools/change-bounds/index.d.ts +0 -20
  1060. package/lib/features/tools/change-bounds/index.d.ts.map +0 -1
  1061. package/lib/features/tools/change-bounds/index.js +0 -36
  1062. package/lib/features/tools/change-bounds/index.js.map +0 -1
  1063. package/lib/features/tools/deletion/index.d.ts +0 -18
  1064. package/lib/features/tools/deletion/index.d.ts.map +0 -1
  1065. package/lib/features/tools/deletion/index.js +0 -34
  1066. package/lib/features/tools/deletion/index.js.map +0 -1
  1067. package/lib/features/tools/edge-creation/index.d.ts +0 -21
  1068. package/lib/features/tools/edge-creation/index.d.ts.map +0 -1
  1069. package/lib/features/tools/edge-creation/index.js +0 -37
  1070. package/lib/features/tools/edge-creation/index.js.map +0 -1
  1071. package/lib/features/tools/edge-edit/index.d.ts +0 -19
  1072. package/lib/features/tools/edge-edit/index.d.ts.map +0 -1
  1073. package/lib/features/tools/edge-edit/index.js +0 -35
  1074. package/lib/features/tools/edge-edit/index.js.map +0 -1
  1075. package/lib/features/tools/index.d.ts +0 -24
  1076. package/lib/features/tools/index.d.ts.map +0 -1
  1077. package/lib/features/tools/index.js +0 -40
  1078. package/lib/features/tools/index.js.map +0 -1
  1079. package/lib/features/tools/marquee-selection/index.d.ts +0 -23
  1080. package/lib/features/tools/marquee-selection/index.d.ts.map +0 -1
  1081. package/lib/features/tools/marquee-selection/index.js +0 -39
  1082. package/lib/features/tools/marquee-selection/index.js.map +0 -1
  1083. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts +0 -17
  1084. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts.map +0 -1
  1085. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js +0 -165
  1086. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js.map +0 -1
  1087. package/lib/features/tools/node-creation/index.d.ts +0 -18
  1088. package/lib/features/tools/node-creation/index.d.ts.map +0 -1
  1089. package/lib/features/tools/node-creation/index.js +0 -34
  1090. package/lib/features/tools/node-creation/index.js.map +0 -1
  1091. package/lib/features/undo-redo/index.d.ts +0 -18
  1092. package/lib/features/undo-redo/index.d.ts.map +0 -1
  1093. package/lib/features/undo-redo/index.js +0 -34
  1094. package/lib/features/undo-redo/index.js.map +0 -1
  1095. package/lib/features/validation/index.d.ts +0 -20
  1096. package/lib/features/validation/index.d.ts.map +0 -1
  1097. package/lib/features/validation/index.js +0 -36
  1098. package/lib/features/validation/index.js.map +0 -1
  1099. package/lib/features/validation/marker-navigator.spec.d.ts +0 -3
  1100. package/lib/features/validation/marker-navigator.spec.d.ts.map +0 -1
  1101. package/lib/features/validation/marker-navigator.spec.js +0 -166
  1102. package/lib/features/validation/marker-navigator.spec.js.map +0 -1
  1103. package/lib/features/viewport/index.d.ts +0 -20
  1104. package/lib/features/viewport/index.d.ts.map +0 -1
  1105. package/lib/features/viewport/index.js +0 -36
  1106. package/lib/features/viewport/index.js.map +0 -1
  1107. package/lib/utils/contribution-provider.d.ts +0 -27
  1108. package/lib/utils/contribution-provider.d.ts.map +0 -1
  1109. package/lib/utils/contribution-provider.js +0 -56
  1110. package/lib/utils/contribution-provider.js.map +0 -1
  1111. package/lib/utils/gmodel-util.spec.d.ts +0 -2
  1112. package/lib/utils/gmodel-util.spec.d.ts.map +0 -1
  1113. package/lib/utils/gmodel-util.spec.js +0 -186
  1114. package/lib/utils/gmodel-util.spec.js.map +0 -1
  1115. package/lib/utils/index.d.ts +0 -23
  1116. package/lib/utils/index.d.ts.map +0 -1
  1117. package/lib/utils/index.js +0 -39
  1118. package/lib/utils/index.js.map +0 -1
  1119. package/lib/views/index.d.ts +0 -23
  1120. package/lib/views/index.d.ts.map +0 -1
  1121. package/lib/views/index.js +0 -39
  1122. package/lib/views/index.js.map +0 -1
  1123. package/src/base/auto-complete/index.ts +0 -20
  1124. package/src/base/focus/index.ts +0 -17
  1125. package/src/base/index.ts +0 -31
  1126. package/src/base/model/index.ts +0 -19
  1127. package/src/base/view/index.ts +0 -18
  1128. package/src/features/accessibility/edge-autocomplete/index.ts +0 -19
  1129. package/src/features/accessibility/element-navigation/index.ts +0 -21
  1130. package/src/features/accessibility/focus-tracker/index.ts +0 -17
  1131. package/src/features/accessibility/index.ts +0 -30
  1132. package/src/features/accessibility/key-shortcut/index.ts +0 -18
  1133. package/src/features/accessibility/keyboard-grid/index.ts +0 -20
  1134. package/src/features/accessibility/keyboard-pointer/index.ts +0 -21
  1135. package/src/features/accessibility/keyboard-tool-palette/index.ts +0 -17
  1136. package/src/features/accessibility/move-zoom/index.ts +0 -18
  1137. package/src/features/accessibility/resize-key-tool/index.ts +0 -18
  1138. package/src/features/accessibility/search/index.ts +0 -18
  1139. package/src/features/accessibility/toast/index.ts +0 -18
  1140. package/src/features/accessibility/view-key-tools/index.ts +0 -19
  1141. package/src/features/bounds/index.ts +0 -23
  1142. package/src/features/change-bounds/index.ts +0 -20
  1143. package/src/features/command-palette/index.ts +0 -18
  1144. package/src/features/context-menu/index.ts +0 -19
  1145. package/src/features/copy-paste/index.ts +0 -19
  1146. package/src/features/decoration/index.ts +0 -17
  1147. package/src/features/element-template/index.ts +0 -19
  1148. package/src/features/export/index.ts +0 -18
  1149. package/src/features/helper-lines/index.ts +0 -21
  1150. package/src/features/hints/index.ts +0 -18
  1151. package/src/features/hover/index.ts +0 -17
  1152. package/src/features/index.ts +0 -42
  1153. package/src/features/label-edit/index.ts +0 -18
  1154. package/src/features/layout/index.ts +0 -17
  1155. package/src/features/navigation/index.ts +0 -18
  1156. package/src/features/reconnect/index.ts +0 -16
  1157. package/src/features/routing/glsp-manhattan-edge-router.ts +0 -59
  1158. package/src/features/routing/index.ts +0 -17
  1159. package/src/features/save/index.ts +0 -17
  1160. package/src/features/select/index.ts +0 -18
  1161. package/src/features/source-model-watcher/index.ts +0 -17
  1162. package/src/features/status/index.ts +0 -17
  1163. package/src/features/svg-metadata/index.ts +0 -17
  1164. package/src/features/tool-palette/index.ts +0 -17
  1165. package/src/features/tools/change-bounds/index.ts +0 -19
  1166. package/src/features/tools/deletion/index.ts +0 -17
  1167. package/src/features/tools/edge-creation/index.ts +0 -20
  1168. package/src/features/tools/edge-edit/index.ts +0 -18
  1169. package/src/features/tools/index.ts +0 -23
  1170. package/src/features/tools/marquee-selection/index.ts +0 -22
  1171. package/src/features/tools/node-creation/index.ts +0 -17
  1172. package/src/features/undo-redo/index.ts +0 -17
  1173. package/src/features/validation/index.ts +0 -19
  1174. package/src/features/viewport/index.ts +0 -19
  1175. package/src/utils/contribution-provider.ts +0 -65
  1176. package/src/utils/index.ts +0 -22
  1177. package/src/views/index.ts +0 -22
@@ -13,24 +13,23 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import {
17
- Action,
18
- ActionHandlerRegistry,
19
- Command,
20
- CommandActionHandler,
21
- CommandExecutionContext,
22
- Disposable,
23
- IActionDispatcher,
24
- ICommand,
25
- ILogger,
26
- TYPES,
27
- toTypeGuard
28
- } from '@eclipse-glsp/sprotty';
29
- import { inject, injectable } from 'inversify';
30
- import { getFeedbackRank } from './feedback-command';
16
+ import { Action, Command, CommandExecutionContext, Disposable, MaybeFunction, call, asArray as toArray } from '@eclipse-glsp/sprotty';
17
+ import { FeedbackEmitter } from './feedback-emitter';
31
18
 
32
19
  export interface IFeedbackEmitter {}
33
20
 
21
+ export const feedbackFeature = Symbol('feedbackFeature');
22
+
23
+ export type MaybeActions = MaybeFunction<Action[] | Action | undefined>;
24
+
25
+ export namespace MaybeActions {
26
+ // eslint-disable-next-line @typescript-eslint/no-shadow
27
+ export function asArray(actions?: MaybeActions): Action[] {
28
+ const cleanup = actions ? call(actions) : [];
29
+ return cleanup ? toArray(cleanup) : [];
30
+ }
31
+ }
32
+
34
33
  /**
35
34
  * Dispatcher for actions that are meant to show visual feedback on
36
35
  * the diagram that is not part of the diagram sent from the server
@@ -52,7 +51,7 @@ export interface IFeedbackActionDispatcher {
52
51
  * @param cleanupActions the actions to be sent out when the feedback is de-registered through the returned Disposable.
53
52
  * @returns A 'Disposable' that de-registers the feedback and cleans up any pending feedback with the given `cleanupActions`.
54
53
  */
55
- registerFeedback(feedbackEmitter: IFeedbackEmitter, feedbackActions: Action[], cleanupActions?: Action[]): Disposable;
54
+ registerFeedback(feedbackEmitter: IFeedbackEmitter, feedbackActions: Action[], cleanupActions?: MaybeActions): Disposable;
56
55
 
57
56
  /**
58
57
  * Deregisters a `feedbackEmitter` from this dispatcher and thereafter
@@ -64,7 +63,7 @@ export interface IFeedbackActionDispatcher {
64
63
  * to reset the normal state of the diagram without the feedback (e.g., reset a
65
64
  * CSS class that was set by a feedbackEmitter).
66
65
  */
67
- deregisterFeedback(feedbackEmitter: IFeedbackEmitter, cleanupActions?: Action[]): void;
66
+ deregisterFeedback(feedbackEmitter: IFeedbackEmitter, cleanupActions?: MaybeActions): void;
68
67
 
69
68
  /**
70
69
  * Retrieve all `actions` sent out by currently registered `feedbackEmitter`.
@@ -80,78 +79,10 @@ export interface IFeedbackActionDispatcher {
80
79
  * Applies all current feedback commands to the given command execution context.
81
80
  */
82
81
  applyFeedbackCommands(context: CommandExecutionContext): Promise<void>;
83
- }
84
-
85
- @injectable()
86
- export class FeedbackActionDispatcher implements IFeedbackActionDispatcher {
87
- protected registeredFeedback: Map<IFeedbackEmitter, Action[]> = new Map();
88
-
89
- @inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
90
- @inject(TYPES.ILogger) protected logger: ILogger;
91
-
92
- @inject(ActionHandlerRegistry) protected actionHandlerRegistry: ActionHandlerRegistry;
93
-
94
- registerFeedback(feedbackEmitter: IFeedbackEmitter, feedbackActions: Action[], cleanupActions?: Action[] | undefined): Disposable {
95
- if (feedbackActions.length > 0) {
96
- this.registeredFeedback.set(feedbackEmitter, feedbackActions);
97
- this.dispatchFeedback(feedbackActions, feedbackEmitter);
98
- }
99
- return Disposable.create(() => this.deregisterFeedback(feedbackEmitter, cleanupActions));
100
- }
101
-
102
- deregisterFeedback(feedbackEmitter: IFeedbackEmitter, cleanupActions?: Action[] | undefined): void {
103
- this.registeredFeedback.delete(feedbackEmitter);
104
- if (cleanupActions && cleanupActions.length > 0) {
105
- this.dispatchFeedback(cleanupActions, feedbackEmitter);
106
- }
107
- }
108
82
 
109
- getRegisteredFeedback(): Action[] {
110
- const result: Action[] = [];
111
- this.registeredFeedback.forEach(actions => result.push(...actions));
112
- return result;
113
- }
114
-
115
- getRegisteredFeedbackEmitters(action: Action): IFeedbackEmitter[] {
116
- const result: IFeedbackEmitter[] = [];
117
- this.registeredFeedback.forEach((actions, emitter) => {
118
- if (actions.includes(action)) {
119
- result.push(emitter);
120
- }
121
- });
122
- return result;
123
- }
124
-
125
- getFeedbackCommands(): Command[] {
126
- return this.getRegisteredFeedback()
127
- .flatMap(action => this.actionToCommands(action))
128
- .sort((left, right) => getFeedbackRank(left) - getFeedbackRank(right));
129
- }
130
-
131
- async applyFeedbackCommands(context: CommandExecutionContext): Promise<void> {
132
- const feedbackCommands = this.getFeedbackCommands() ?? [];
133
- if (feedbackCommands?.length > 0) {
134
- const results = feedbackCommands.map(command => command.execute(context));
135
- await Promise.all(results);
136
- }
137
- }
138
-
139
- protected actionToCommands(action: Action): ICommand[] {
140
- return (
141
- this.actionHandlerRegistry
142
- ?.get(action.kind)
143
- .filter(toTypeGuard(CommandActionHandler))
144
- .map(handler => handler.handle(action)) ?? []
145
- );
146
- }
147
-
148
- protected async dispatchFeedback(actions: Action[], feedbackEmitter: IFeedbackEmitter): Promise<void> {
149
- try {
150
- const actionDispatcher = await this.actionDispatcher();
151
- await actionDispatcher.dispatchAll(actions);
152
- this.logger.info(this, `Dispatched feedback actions for ${feedbackEmitter}`);
153
- } catch (reason) {
154
- this.logger.error(this, 'Failed to dispatch feedback actions', reason);
155
- }
156
- }
83
+ /**
84
+ * Creates a new feedback emitter helper object. While anything can serve as a feedback emitter,
85
+ * this method ensures that the emitter is stable and does not change between model updates.
86
+ */
87
+ createEmitter(): FeedbackEmitter;
157
88
  }
@@ -0,0 +1,176 @@
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
+ import { Action, Command, CommandExecutionContext, Disposable } from '@eclipse-glsp/sprotty';
17
+ import { expect } from 'chai';
18
+ import { IFeedbackActionDispatcher, IFeedbackEmitter } from './feedback-action-dispatcher';
19
+ import { FeedbackEmitter } from './feedback-emitter';
20
+
21
+ class MockFeedbackActionDispatcher implements IFeedbackActionDispatcher {
22
+ protected feedbackEmitters: Map<IFeedbackEmitter, Action[]> = new Map();
23
+
24
+ registerFeedback(feedbackEmitter: IFeedbackEmitter, actions: Action[]): Disposable {
25
+ this.feedbackEmitters.set(feedbackEmitter, actions);
26
+ return Disposable.create(() => this.deregisterFeedback(feedbackEmitter));
27
+ }
28
+
29
+ deregisterFeedback(feedbackEmitter: IFeedbackEmitter, _actions?: Action[]): void {
30
+ this.feedbackEmitters.delete(feedbackEmitter);
31
+ }
32
+
33
+ getRegisteredFeedback(): Action[] {
34
+ const result: Action[] = [];
35
+ this.feedbackEmitters.forEach((value, key) => result.push(...value));
36
+ return result;
37
+ }
38
+
39
+ getFeedbackCommands(): Command[] {
40
+ return [];
41
+ }
42
+
43
+ createEmitter(): FeedbackEmitter {
44
+ return new FeedbackEmitter(this);
45
+ }
46
+
47
+ async applyFeedbackCommands(context: CommandExecutionContext): Promise<void> {}
48
+ }
49
+
50
+ describe('FeedbackEmitter', () => {
51
+ describe('Initial State', () => {
52
+ it('On creation nothing should be submitted.', () => {
53
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
54
+ const feedback = feedbackActionDispatcher.createEmitter();
55
+ feedback.submit();
56
+ expect(feedbackActionDispatcher['feedbackEmitters']).to.be.empty;
57
+ });
58
+ });
59
+
60
+ describe('Adding Feedback', () => {
61
+ it('Should add an action as part of the emitter feedback.', () => {
62
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
63
+ const feedback = feedbackActionDispatcher.createEmitter();
64
+ const action: Action = { kind: 'action' };
65
+ feedback.add(action);
66
+ expect(feedback['feedbackActions']).to.deep.equal([action]);
67
+ });
68
+
69
+ it('Should add an action and cleanup action as part of the emitter feedback.', () => {
70
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
71
+ const feedback = feedbackActionDispatcher.createEmitter();
72
+ const action: Action = { kind: 'action' };
73
+ const cleanupAction: Action = { kind: 'cleanup' };
74
+ feedback.add(action, cleanupAction);
75
+ expect(feedback['feedbackActions']).to.deep.equal([action]);
76
+ expect(feedback['cleanupActions']).to.deep.equal([cleanupAction]);
77
+ });
78
+ });
79
+
80
+ describe('Merging Feedback', () => {
81
+ it('Should merge the feedback of another emitter into this emitter.', () => {
82
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
83
+ const feedback1 = feedbackActionDispatcher.createEmitter();
84
+ const feedback2 = feedbackActionDispatcher.createEmitter();
85
+ const action1: Action = { kind: 'action1' };
86
+ const action2: Action = { kind: 'action2' };
87
+ feedback1.add(action1);
88
+ feedback2.add(action2);
89
+ feedback1.merge(feedback2);
90
+ expect(feedback1['feedbackActions']).to.deep.equal([action1, action2]);
91
+ });
92
+ });
93
+
94
+ describe('Removing Feedback', () => {
95
+ it('Should remove the action from the emitter feedback.', () => {
96
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
97
+ const feedback = feedbackActionDispatcher.createEmitter();
98
+ const action: Action = { kind: 'action' };
99
+ feedback.add(action);
100
+ feedback.remove(action);
101
+ expect(feedback['feedbackActions']).to.be.empty;
102
+ });
103
+
104
+ it('Should remove the action together with the cleanup action from the emitter feedback.', () => {
105
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
106
+ const feedback = feedbackActionDispatcher.createEmitter();
107
+ const action: Action = { kind: 'action' };
108
+ const cleanupAction: Action = { kind: 'cleanup' };
109
+ feedback.add(action, cleanupAction);
110
+ feedback.remove(action);
111
+ expect(feedback['feedbackActions']).to.be.empty;
112
+ expect(feedback['cleanupActions']).to.be.empty;
113
+ });
114
+ });
115
+
116
+ describe('Clearing Feedback', () => {
117
+ it('Should clear any pending feedback actions and cleanup actions.', () => {
118
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
119
+ const feedback = feedbackActionDispatcher.createEmitter();
120
+ const action: Action = { kind: 'action' };
121
+ const cleanupAction: Action = { kind: 'cleanup' };
122
+ feedback.add(action, cleanupAction);
123
+ feedback.clear();
124
+ expect(feedback['feedbackActions']).to.be.empty;
125
+ expect(feedback['cleanupActions']).to.be.empty;
126
+ });
127
+ });
128
+
129
+ describe('Submitting Feedback', () => {
130
+ it('Should register any pending actions as feedback.', () => {
131
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
132
+ const feedback = feedbackActionDispatcher.createEmitter();
133
+ const action: Action = { kind: 'action' };
134
+ feedback.add(action);
135
+ feedback.submit();
136
+ expect(feedbackActionDispatcher['feedbackEmitters'].size).to.equal(1);
137
+ expect(feedbackActionDispatcher['feedbackEmitters'].get(feedback)).to.deep.equal([action]);
138
+ });
139
+ });
140
+
141
+ describe('Discarding Feedback', () => {
142
+ it('Should remove the registered feedback without calling any cleanup actions.', () => {
143
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
144
+ const feedback = feedbackActionDispatcher.createEmitter();
145
+ const action: Action = { kind: 'action' };
146
+ feedback.add(action);
147
+ feedback.submit();
148
+ feedback.discard();
149
+ expect(feedbackActionDispatcher['feedbackEmitters']).to.be.empty;
150
+ });
151
+ });
152
+
153
+ describe('Reverting Feedback', () => {
154
+ it('Should remove the registered feedback and call the registered cleanup actions.', () => {
155
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
156
+ const feedback = feedbackActionDispatcher.createEmitter();
157
+ const action: Action = { kind: 'action' };
158
+ const cleanupAction: Action = { kind: 'cleanup' };
159
+ feedback.add(action, cleanupAction);
160
+ feedback.submit();
161
+ feedback.revert();
162
+ expect(feedbackActionDispatcher['feedbackEmitters']).to.be.empty;
163
+ });
164
+ });
165
+
166
+ describe('Disposing Feedback', () => {
167
+ it('Should dispose the registered feedback and any pending feedback actions.', () => {
168
+ const feedbackActionDispatcher = new MockFeedbackActionDispatcher();
169
+ const feedback = feedbackActionDispatcher.createEmitter();
170
+ const action: Action = { kind: 'action' };
171
+ feedback.add(action);
172
+ feedback.dispose();
173
+ expect(feedbackActionDispatcher['feedbackEmitters']).to.be.empty;
174
+ });
175
+ });
176
+ });
@@ -0,0 +1,134 @@
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 { Action, Disposable, arrayOf } from '@eclipse-glsp/sprotty';
18
+ import { IFeedbackActionDispatcher, IFeedbackEmitter, MaybeActions } from './feedback-action-dispatcher';
19
+
20
+ // counter for internal id, mainly useful for debugging
21
+ let idCounter = 0;
22
+
23
+ /**
24
+ * A helper object to collect, submit and undo feedback consisting of several actions.
25
+ */
26
+ export class FeedbackEmitter implements IFeedbackEmitter, Disposable {
27
+ protected id = idCounter++;
28
+ protected feedbackActions: (Action | undefined)[] = [];
29
+ protected cleanupActions: MaybeActions[] = [];
30
+ protected deregistration?: Disposable;
31
+
32
+ constructor(protected feedbackDispatcher: IFeedbackActionDispatcher) {}
33
+
34
+ /**
35
+ * Adds an action as part of this emitters feedback. Please note that the action is only applied as feedback
36
+ * once the {@link submit} method is called.
37
+ *
38
+ * @param action feedback action
39
+ * @param cleanupAction action that undoes the feedback action. This is only triggered when {@link revert} or {@link dispose} is called.
40
+ */
41
+ add(action?: Action, cleanupAction?: MaybeActions): this {
42
+ if (!action && !cleanupAction) {
43
+ return this;
44
+ }
45
+ const idx = this.feedbackActions.length;
46
+ this.feedbackActions[idx] = action;
47
+ if (cleanupAction) {
48
+ this.cleanupActions[idx] = cleanupAction;
49
+ }
50
+ return this;
51
+ }
52
+
53
+ /**
54
+ * Merges the feedback of another emitter into this emitter.
55
+ *
56
+ * @param feedback feedback to merge
57
+ */
58
+ merge(feedback: FeedbackEmitter): this {
59
+ this.feedbackActions.push(...feedback.feedbackActions);
60
+ this.cleanupActions.push(...feedback.cleanupActions);
61
+ return this;
62
+ }
63
+
64
+ /**
65
+ * Removes the action as part of this emitters feedback. If the action cannot be found, this is a no-op.
66
+ * Please note that this also removed the corresponding cleanup action.
67
+ * If the feedback has already been submitted as part of the {@link submit} method, the whole feedback must be de-registered
68
+ * or a new feedback without the given action needs to be registered.
69
+ *
70
+ * @param action feedback action
71
+ */
72
+ remove(action: Action): this {
73
+ const idx = this.feedbackActions.indexOf(action);
74
+ if (idx >= 0) {
75
+ this.feedbackActions.splice(idx, 1);
76
+ this.cleanupActions.splice(idx, 1);
77
+ }
78
+ return this;
79
+ }
80
+
81
+ /**
82
+ * Clears any, not yet registered feedback actions and their corresponding cleanup actions.
83
+ */
84
+ clear(): this {
85
+ this.feedbackActions = [];
86
+ this.cleanupActions = [];
87
+ return this;
88
+ }
89
+
90
+ /**
91
+ * Registers any pending actions as feedback. Any previously submitted feedback becomes invalid.
92
+ */
93
+ submit(): this {
94
+ // with 'arrayOf' we skip undefined entries that are created for non-cleanup actions or cleanup-only actions
95
+ const actions = arrayOf(...this.feedbackActions);
96
+ const cleanupActions = arrayOf(...this.cleanupActions);
97
+ if (actions.length > 0 || cleanupActions.length > 0) {
98
+ this.deregistration = this.feedbackDispatcher.registerFeedback(this, actions, () =>
99
+ cleanupActions.flatMap(MaybeActions.asArray)
100
+ );
101
+ this.clear();
102
+ }
103
+ return this;
104
+ }
105
+
106
+ /**
107
+ * Removes the registered feedback WITHOUT calling any potential cleanup actions
108
+ * Any pending actions can still be registerd with the {@link submit} method.
109
+ */
110
+ discard(): this {
111
+ this.feedbackDispatcher.deregisterFeedback(this);
112
+ this.deregistration = undefined;
113
+ return this;
114
+ }
115
+
116
+ /**
117
+ * Removes the registered feedback and calls the registered cleanup actions.
118
+ * Any pending actions can still be registerd with the {@link submit} method.
119
+ */
120
+ revert(): this {
121
+ this.deregistration?.dispose();
122
+ this.deregistration = undefined;
123
+ return this;
124
+ }
125
+
126
+ /**
127
+ * Disposes any registered feedback and any pending, not yet registered feedback actions.
128
+ */
129
+ dispose(): this {
130
+ this.revert();
131
+ this.clear();
132
+ return this;
133
+ }
134
+ }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2023 EclipseSource and others.
2
+ * Copyright (c) 2023-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
@@ -21,6 +21,7 @@ import {
21
21
  EMPTY_ROOT,
22
22
  GLSPClient,
23
23
  InitializeParameters,
24
+ LazyInjector,
24
25
  MaybePromise,
25
26
  RequestModelAction,
26
27
  SetModelAction,
@@ -28,7 +29,7 @@ import {
28
29
  TYPES,
29
30
  hasNumberProp
30
31
  } from '@eclipse-glsp/sprotty';
31
- import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
32
+ import { inject, injectable } from 'inversify';
32
33
  import { GLSPActionDispatcher } from '../action-dispatcher';
33
34
  import { Ranked } from '../ranked';
34
35
  import { GLSPModelSource } from './glsp-model-source';
@@ -69,22 +70,27 @@ export interface IDiagramOptions {
69
70
  */
70
71
  export interface IDiagramStartup extends Partial<Ranked> {
71
72
  /**
72
- * Hook for services that should be executed before the underlying GLSP client is configured and the server is initialized.
73
+ * Hook for services that want to execute code before the diagram loading routine is started. This is the
74
+ * first hook that is invoked directly after {@link DiagramLoader.load} is called.
75
+ */
76
+ preLoadDiagram?(): MaybePromise<void>;
77
+ /**
78
+ * Hook for services that want to execute code before the underlying GLSP client is configured and the server is initialized.
73
79
  */
74
80
  preInitialize?(): MaybePromise<void>;
75
81
  /**
76
- * Hook for services that should be executed before the initial model loading request (i.e. `RequestModelAction`) but
82
+ * Hook for services that want to execute code before the initial model loading request (i.e. `RequestModelAction`) but
77
83
  * after the underlying GLSP client has been configured and the server is initialized.
78
84
  */
79
85
  preRequestModel?(): MaybePromise<void>;
80
86
  /**
81
- * Hook for services that should be executed after the initial model loading request (i.e. `RequestModelAction`).
87
+ * Hook for services that want to execute code after the initial model loading request (i.e. `RequestModelAction`).
82
88
  * Note that this hook is invoked directly after the `RequestModelAction` has been dispatched. It does not necessarily wait
83
89
  * until the client-server update roundtrip is completed. If you need to wait until the diagram is fully initialized use the
84
90
  * {@link postModelInitialization} hook.
85
91
  */
86
92
  postRequestModel?(): MaybePromise<void>;
87
- /* Hook for services that should be executed after the diagram model is fully initialized
93
+ /* Hook for services that want to execute code after the diagram model is fully initialized
88
94
  * (i.e. `ModelInitializationConstraint` is completed).
89
95
  */
90
96
  postModelInitialization?(): MaybePromise<void>;
@@ -95,7 +101,8 @@ export namespace IDiagramStartup {
95
101
  return (
96
102
  AnyObject.is(object) &&
97
103
  hasNumberProp(object, 'rank', true) &&
98
- ('preInitialize' in object ||
104
+ ('preLoadDiagram' in object ||
105
+ 'preInitialize' in object ||
99
106
  'preRequestModel' in object ||
100
107
  'postRequestModel' in object ||
101
108
  'postModelInitialization' in object)
@@ -144,22 +151,22 @@ export class DiagramLoader {
144
151
  @inject(GLSPActionDispatcher)
145
152
  protected actionDispatcher: GLSPActionDispatcher;
146
153
 
147
- @multiInject(TYPES.IDiagramStartup)
148
- @optional()
149
- protected diagramStartups: IDiagramStartup[] = [];
150
-
151
154
  @inject(GLSPModelSource)
152
155
  protected modelSource: GLSPModelSource;
153
156
 
154
157
  @inject(ModelInitializationConstraint)
155
158
  protected modelInitializationConstraint: ModelInitializationConstraint;
156
159
 
157
- @postConstruct()
158
- protected postConstruct(): void {
159
- this.diagramStartups.sort((a, b) => Ranked.getRank(a) - Ranked.getRank(b));
160
+ @inject(LazyInjector)
161
+ protected lazyInjector: LazyInjector;
162
+
163
+ get diagramStartups(): IDiagramStartup[] {
164
+ return this.lazyInjector.getAll<IDiagramStartup>(TYPES.IDiagramStartup);
160
165
  }
161
166
 
162
167
  async load(options: DiagramLoadingOptions = {}): Promise<void> {
168
+ this.diagramStartups.sort(Ranked.sort);
169
+ await this.invokeStartupHook('preLoadDiagram');
163
170
  const resolvedOptions: ResolvedDiagramLoadingOptions = {
164
171
  requestModelOptions: {
165
172
  sourceUri: this.options.sourceUri ?? '',
@@ -185,7 +192,11 @@ export class DiagramLoader {
185
192
 
186
193
  protected async invokeStartupHook(hook: keyof Omit<IDiagramStartup, 'rank'>): Promise<void> {
187
194
  for (const startup of this.diagramStartups) {
188
- await startup[hook]?.();
195
+ try {
196
+ await startup[hook]?.();
197
+ } catch (err) {
198
+ console.error(`Error invoking diagram startup hook '${hook}':`, '\n', err);
199
+ }
189
200
  }
190
201
  }
191
202
 
@@ -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
@@ -32,7 +32,11 @@ export class GModelRegistry extends SModelRegistry {
32
32
  }
33
33
  if (this.hasKey(key)) {
34
34
  // do not throw error but log overwriting
35
- console.log(`Factory for model element '${key}' will be overwritten.`);
35
+ console.log(`Key is already registered: ${key}.Factory for model element '${key}' will be overwritten.`);
36
+ console.warn(
37
+ 'Implicit overwriting by registering the same key twice is deprecated' +
38
+ "\n Use 'overrideModelElement()' instead of 'configureModelElement()' for explicit overwriting."
39
+ );
36
40
  }
37
41
  this.elements.set(key, factory);
38
42
  }
@@ -0,0 +1,48 @@
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
+ rank: number;
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ import {
18
+ Action,
19
+ DOMHelper,
20
+ GModelElement,
21
+ MousePositionTracker,
22
+ Point,
23
+ TYPES,
24
+ ViewerOptions,
25
+ getAbsoluteClientBounds
26
+ } from '@eclipse-glsp/sprotty';
27
+ import { inject, injectable } from 'inversify';
28
+ import { Ranked } from './ranked';
29
+
30
+ @injectable()
31
+ export class GLSPMousePositionTracker extends MousePositionTracker implements Ranked {
32
+ /* we want to be executed before all default mouse listeners since we are just tracking the position and others may need it */
33
+ rank = Ranked.DEFAULT_RANK - 200;
34
+
35
+ @inject(TYPES.ViewerOptions) protected viewerOptions: ViewerOptions;
36
+ @inject(TYPES.DOMHelper) protected domHelper: DOMHelper;
37
+
38
+ override mouseMove(target: GModelElement, event: MouseEvent): (Action | Promise<Action>)[] {
39
+ // we cannot simply use the offsetX and offsetY properties of the event since they also consider nested HTML elements
40
+ // such as foreignObjects or the projection bars divs. Instead, we manually translate the client coordinates to the diagram
41
+ const clientToRoot = getAbsoluteClientBounds(target.root, this.domHelper, this.viewerOptions);
42
+ const clientToPosition = { x: event.clientX, y: event.clientY };
43
+ const rootToPosition = Point.subtract(clientToPosition, clientToRoot);
44
+ const positionOnDiagram = target.root.parentToLocal(rootToPosition);
45
+ this.lastPosition = positionOnDiagram;
46
+ return [];
47
+ }
48
+ }
@@ -19,6 +19,7 @@ import { Container, injectable } from 'inversify';
19
19
  import * as sinon from 'sinon';
20
20
  import { defaultModule } from './default.module';
21
21
  import { IFeedbackActionDispatcher, IFeedbackEmitter } from './feedback/feedback-action-dispatcher';
22
+ import { FeedbackEmitter } from './feedback/feedback-emitter';
22
23
  import { ISelectionListener, SelectFeedbackAction, SelectionService } from './selection-service';
23
24
 
24
25
  @injectable()
@@ -49,6 +50,10 @@ class MockFeedbackActionDispatcher implements IFeedbackActionDispatcher {
49
50
  return [];
50
51
  }
51
52
 
53
+ createEmitter(): FeedbackEmitter {
54
+ return new FeedbackEmitter(this);
55
+ }
56
+
52
57
  async applyFeedbackCommands(context: CommandExecutionContext): Promise<void> {}
53
58
  }
54
59