@eclipse-glsp/client 2.2.0-next.326 → 2.2.0-next.329

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 (320) hide show
  1. package/css/command-palette.css +6 -2
  2. package/css/key-shortcut.css +6 -2
  3. package/css/keyboard-tool-palette.css +3 -1
  4. package/css/keyboard.css +3 -1
  5. package/css/tool-palette.css +6 -2
  6. package/lib/base/action-dispatcher.js.map +1 -1
  7. package/lib/base/action-handler-registry.js.map +1 -1
  8. package/lib/base/args-feature.js.map +1 -1
  9. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  10. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  11. package/lib/base/command-stack.js.map +1 -1
  12. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  13. package/lib/base/editor-context-service.js.map +1 -1
  14. package/lib/base/feedback/css-feedback.js.map +1 -1
  15. package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -1
  16. package/lib/base/focus/focus-tracker.js.map +1 -1
  17. package/lib/base/model/diagram-loader.js.map +1 -1
  18. package/lib/base/model/glsp-model-source.js.map +1 -1
  19. package/lib/base/model/model-initialization-constraint.js.map +1 -1
  20. package/lib/base/model/model-registry.js.map +1 -1
  21. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  22. package/lib/base/selection-service.js.map +1 -1
  23. package/lib/base/tool-manager/index.d.ts +2 -2
  24. package/lib/base/tool-manager/index.d.ts.map +1 -1
  25. package/lib/base/tool-manager/index.js +2 -2
  26. package/lib/base/tool-manager/index.js.map +1 -1
  27. package/lib/base/tool-manager/tool-manager.js.map +1 -1
  28. package/lib/base/view/mouse-tool.js.map +1 -1
  29. package/lib/base/view/view-registry.js.map +1 -1
  30. package/lib/default-modules.d.ts +1 -1
  31. package/lib/default-modules.js +1 -1
  32. package/lib/default-modules.js.map +1 -1
  33. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-palette.js.map +1 -1
  34. package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-tool.js.map +1 -1
  35. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js.map +1 -1
  36. package/lib/features/accessibility/element-navigation/left-right-top-bottom-navigator.js.map +1 -1
  37. package/lib/features/accessibility/element-navigation/local-element-navigator.js.map +1 -1
  38. package/lib/features/accessibility/element-navigation/position-navigator.js.map +1 -1
  39. package/lib/features/accessibility/focus-tracker/focus-tracker-tool.js.map +1 -1
  40. package/lib/features/accessibility/global-keylistener-tool.js.map +1 -1
  41. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut-tool.js.map +1 -1
  42. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.js.map +1 -1
  43. package/lib/features/accessibility/key-shortcut/index.d.ts +2 -2
  44. package/lib/features/accessibility/key-shortcut/index.d.ts.map +1 -1
  45. package/lib/features/accessibility/key-shortcut/index.js +2 -2
  46. package/lib/features/accessibility/key-shortcut/index.js.map +1 -1
  47. package/lib/features/accessibility/keyboard-grid/index.d.ts +2 -2
  48. package/lib/features/accessibility/keyboard-grid/index.d.ts.map +1 -1
  49. package/lib/features/accessibility/keyboard-grid/index.js +2 -2
  50. package/lib/features/accessibility/keyboard-grid/index.js.map +1 -1
  51. package/lib/features/accessibility/keyboard-grid/keyboard-grid.js.map +1 -1
  52. package/lib/features/accessibility/keyboard-grid/keyboard-node-grid.js.map +1 -1
  53. package/lib/features/accessibility/keyboard-pointer/index.d.ts +2 -2
  54. package/lib/features/accessibility/keyboard-pointer/index.d.ts.map +1 -1
  55. package/lib/features/accessibility/keyboard-pointer/index.js +2 -2
  56. package/lib/features/accessibility/keyboard-pointer/index.js.map +1 -1
  57. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.d.ts +1 -1
  58. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.d.ts.map +1 -1
  59. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.js +1 -1
  60. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-listener.js.map +1 -1
  61. package/lib/features/accessibility/keyboard-pointer/keyboard-pointer.js.map +1 -1
  62. package/lib/features/accessibility/keyboard-tool-palette/index.d.ts +2 -2
  63. package/lib/features/accessibility/keyboard-tool-palette/index.d.ts.map +1 -1
  64. package/lib/features/accessibility/keyboard-tool-palette/index.js +2 -2
  65. package/lib/features/accessibility/keyboard-tool-palette/index.js.map +1 -1
  66. package/lib/features/accessibility/keyboard-tool-palette/keyboard-tool-palette.js.map +1 -1
  67. package/lib/features/accessibility/move-zoom/move-handler.js +1 -1
  68. package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -1
  69. package/lib/features/accessibility/move-zoom/zoom-handler.js.map +1 -1
  70. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -1
  71. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -1
  72. package/lib/features/accessibility/search/index.d.ts +2 -2
  73. package/lib/features/accessibility/search/index.d.ts.map +1 -1
  74. package/lib/features/accessibility/search/index.js +2 -2
  75. package/lib/features/accessibility/search/index.js.map +1 -1
  76. package/lib/features/accessibility/search/search-palette.js.map +1 -1
  77. package/lib/features/accessibility/search/search-tool.js.map +1 -1
  78. package/lib/features/accessibility/toast/toast-tool.js.map +1 -1
  79. package/lib/features/accessibility/view-key-tools/deselect-key-tool.js.map +1 -1
  80. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -1
  81. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -1
  82. package/lib/features/bounds/freeform-layout.js.map +1 -1
  83. package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
  84. package/lib/features/bounds/hbox-layout.js.map +1 -1
  85. package/lib/features/bounds/layouter.js.map +1 -1
  86. package/lib/features/bounds/local-bounds.js.map +1 -1
  87. package/lib/features/bounds/set-bounds-feedback-command.js.map +1 -1
  88. package/lib/features/bounds/vbox-layout.js.map +1 -1
  89. package/lib/features/change-bounds/movement-restrictor.d.ts +16 -1
  90. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  91. package/lib/features/change-bounds/movement-restrictor.js +2 -16
  92. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  93. package/lib/features/change-bounds/point-position-updater.js.map +1 -1
  94. package/lib/features/change-bounds/position-snapper.js.map +1 -1
  95. package/lib/features/command-palette/command-palette-module.d.ts +1 -1
  96. package/lib/features/command-palette/command-palette-module.js +1 -1
  97. package/lib/features/command-palette/command-palette.js.map +1 -1
  98. package/lib/features/command-palette/index.d.ts +1 -1
  99. package/lib/features/command-palette/index.js +1 -1
  100. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  101. package/lib/features/context-menu/context-menu-module.js.map +1 -1
  102. package/lib/features/context-menu/glsp-context-menu-mouse-listener.js.map +1 -1
  103. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  104. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  105. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  106. package/lib/features/copy-paste/copy-paste-standalone.js.map +1 -1
  107. package/lib/features/decoration/decoration-placer.js.map +1 -1
  108. package/lib/features/element-template/add-template-element.js.map +1 -1
  109. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts +1 -1
  110. package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts.map +1 -1
  111. package/lib/features/element-template/mouse-tracking-element-position-listener.js +1 -1
  112. package/lib/features/element-template/mouse-tracking-element-position-listener.js.map +1 -1
  113. package/lib/features/element-template/remove-template-element.js.map +1 -1
  114. package/lib/features/export/glsp-svg-exporter.js.map +1 -1
  115. package/lib/features/helper-lines/helper-line-feedback.d.ts.map +1 -1
  116. package/lib/features/helper-lines/helper-line-feedback.js +42 -39
  117. package/lib/features/helper-lines/helper-line-feedback.js.map +1 -1
  118. package/lib/features/helper-lines/helper-line-manager-default.js.map +1 -1
  119. package/lib/features/helper-lines/index.d.ts +2 -2
  120. package/lib/features/helper-lines/index.d.ts.map +1 -1
  121. package/lib/features/helper-lines/index.js +2 -2
  122. package/lib/features/helper-lines/index.js.map +1 -1
  123. package/lib/features/helper-lines/model.d.ts +3 -9
  124. package/lib/features/helper-lines/model.d.ts.map +1 -1
  125. package/lib/features/helper-lines/model.js +10 -28
  126. package/lib/features/helper-lines/model.js.map +1 -1
  127. package/lib/features/helper-lines/view.js.map +1 -1
  128. package/lib/features/hints/type-hint-provider.js.map +1 -1
  129. package/lib/features/hover/hover.js.map +1 -1
  130. package/lib/features/hover/index.d.ts +2 -2
  131. package/lib/features/hover/index.d.ts.map +1 -1
  132. package/lib/features/hover/index.js +2 -2
  133. package/lib/features/hover/index.js.map +1 -1
  134. package/lib/features/index.d.ts +2 -1
  135. package/lib/features/index.d.ts.map +1 -1
  136. package/lib/features/index.js +2 -1
  137. package/lib/features/index.js.map +1 -1
  138. package/lib/features/label-edit/edit-label-validator.js.map +1 -1
  139. package/lib/features/{tools/marquee-selection/marquee-behavior.spec.d.ts → label-edit-ui/index.d.ts} +4 -3
  140. package/lib/features/label-edit-ui/index.d.ts.map +1 -0
  141. package/lib/features/label-edit-ui/index.js +34 -0
  142. package/lib/features/label-edit-ui/index.js.map +1 -0
  143. package/lib/features/label-edit-ui/label-edit-ui.js.map +1 -1
  144. package/lib/features/layout/layout-elements-action.d.ts +16 -1
  145. package/lib/features/layout/layout-elements-action.d.ts.map +1 -1
  146. package/lib/features/layout/layout-elements-action.js +7 -6
  147. package/lib/features/layout/layout-elements-action.js.map +1 -1
  148. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  149. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  150. package/lib/features/reconnect/model.js.map +1 -1
  151. package/lib/features/routing/glsp-manhattan-edge-router.js.map +1 -1
  152. package/lib/features/save/save-keylistener.js.map +1 -1
  153. package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
  154. package/lib/features/status/status-overlay.js.map +1 -1
  155. package/lib/features/svg-metadata/metadata-placer.js.map +1 -1
  156. package/lib/features/tool-palette/index.d.ts +2 -2
  157. package/lib/features/tool-palette/index.d.ts.map +1 -1
  158. package/lib/features/tool-palette/index.js +2 -2
  159. package/lib/features/tool-palette/index.js.map +1 -1
  160. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  161. package/lib/features/tools/base-tools.js.map +1 -1
  162. package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -1
  163. package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -1
  164. package/lib/features/tools/change-bounds/index.d.ts +2 -2
  165. package/lib/features/tools/change-bounds/index.d.ts.map +1 -1
  166. package/lib/features/tools/change-bounds/index.js +2 -2
  167. package/lib/features/tools/change-bounds/index.js.map +1 -1
  168. package/lib/features/tools/change-bounds/view.js.map +1 -1
  169. package/lib/features/tools/deletion/delete-tool.js.map +1 -1
  170. package/lib/features/tools/edge-creation/dangling-edge-feedback.js.map +1 -1
  171. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts +1 -1
  172. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts.map +1 -1
  173. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js +1 -1
  174. package/lib/features/tools/edge-creation/edge-creation-tool-feedback.js.map +1 -1
  175. package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -1
  176. package/lib/features/tools/edge-creation/index.d.ts +2 -2
  177. package/lib/features/tools/edge-creation/index.d.ts.map +1 -1
  178. package/lib/features/tools/edge-creation/index.js +2 -2
  179. package/lib/features/tools/edge-creation/index.js.map +1 -1
  180. package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js.map +1 -1
  181. package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -1
  182. package/lib/features/tools/edge-edit/index.d.ts +2 -2
  183. package/lib/features/tools/edge-edit/index.d.ts.map +1 -1
  184. package/lib/features/tools/edge-edit/index.js +2 -2
  185. package/lib/features/tools/edge-edit/index.js.map +1 -1
  186. package/lib/features/tools/marquee-selection/index.d.ts +2 -2
  187. package/lib/features/tools/marquee-selection/index.d.ts.map +1 -1
  188. package/lib/features/tools/marquee-selection/index.js +2 -2
  189. package/lib/features/tools/marquee-selection/index.js.map +1 -1
  190. package/lib/features/tools/marquee-selection/marquee-behavior.js.map +1 -1
  191. package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -1
  192. package/lib/features/tools/marquee-selection/marquee-tool-feedback.js.map +1 -1
  193. package/lib/features/tools/marquee-selection/marquee-tool.js.map +1 -1
  194. package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -1
  195. package/lib/features/tools/tool-focus-loss-module.js.map +1 -1
  196. package/lib/features/undo-redo/undo-redo-key-listener.js.map +1 -1
  197. package/lib/features/validation/issue-marker.js.map +1 -1
  198. package/lib/features/validation/marker-navigator.js.map +1 -1
  199. package/lib/features/validation/validate.js.map +1 -1
  200. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  201. package/lib/features/viewport/reposition.d.ts +1 -1
  202. package/lib/features/viewport/reposition.d.ts.map +1 -1
  203. package/lib/features/viewport/reposition.js +10 -13
  204. package/lib/features/viewport/reposition.js.map +1 -1
  205. package/lib/features/viewport/viewport-handler.js.map +1 -1
  206. package/lib/model.js.map +1 -1
  207. package/lib/standalone-modules.js.map +1 -1
  208. package/lib/utils/argument-utils.js.map +1 -1
  209. package/lib/utils/geometry-util.d.ts +42 -22
  210. package/lib/utils/geometry-util.d.ts.map +1 -1
  211. package/lib/utils/geometry-util.js +42 -83
  212. package/lib/utils/geometry-util.js.map +1 -1
  213. package/lib/utils/gmodel-util.js +1 -1
  214. package/lib/utils/gmodel-util.js.map +1 -1
  215. package/lib/utils/html-utils.js.map +1 -1
  216. package/lib/utils/layout-utils.js.map +1 -1
  217. package/lib/utils/marker.js.map +1 -1
  218. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  219. package/lib/utils/viewpoint-util.js +10 -20
  220. package/lib/utils/viewpoint-util.js.map +1 -1
  221. package/lib/views/compartments.js.map +1 -1
  222. package/lib/views/gedge-view.js.map +1 -1
  223. package/lib/views/glsp-projection-view.js.map +1 -1
  224. package/lib/views/index.d.ts +2 -2
  225. package/lib/views/index.d.ts.map +1 -1
  226. package/lib/views/index.js +2 -2
  227. package/lib/views/index.js.map +1 -1
  228. package/lib/views/issue-marker-view.js.map +1 -1
  229. package/lib/views/rounded-corner-view.js.map +1 -1
  230. package/lib/views/rounded-corner.d.ts +1 -1
  231. package/lib/views/rounded-corner.d.ts.map +1 -1
  232. package/lib/views/rounded-corner.js.map +1 -1
  233. package/package.json +4 -3
  234. package/src/base/feedback/index.ts +0 -1
  235. package/src/base/tool-manager/index.ts +2 -2
  236. package/src/default-modules.ts +1 -1
  237. package/src/features/accessibility/key-shortcut/index.ts +2 -2
  238. package/src/features/accessibility/keyboard-grid/index.ts +2 -2
  239. package/src/features/accessibility/keyboard-pointer/index.ts +2 -2
  240. package/src/features/accessibility/keyboard-pointer/keyboard-pointer-listener.ts +5 -2
  241. package/src/features/accessibility/keyboard-tool-palette/index.ts +2 -2
  242. package/src/features/accessibility/move-zoom/move-handler.ts +1 -1
  243. package/src/features/accessibility/search/index.ts +2 -2
  244. package/src/features/change-bounds/movement-restrictor.ts +2 -19
  245. package/src/features/command-palette/command-palette-module.ts +1 -1
  246. package/src/features/command-palette/index.ts +1 -1
  247. package/src/features/element-template/mouse-tracking-element-position-listener.ts +13 -3
  248. package/src/features/helper-lines/helper-line-feedback.ts +50 -57
  249. package/src/features/helper-lines/index.ts +2 -2
  250. package/src/features/helper-lines/model.ts +6 -25
  251. package/src/features/hover/index.ts +2 -2
  252. package/src/features/index.ts +2 -1
  253. package/{lib/features/change-bounds/snap.spec.d.ts → src/features/label-edit-ui/index.ts} +3 -3
  254. package/src/features/layout/layout-elements-action.ts +10 -7
  255. package/src/features/tool-palette/index.ts +2 -2
  256. package/src/features/tools/change-bounds/index.ts +2 -2
  257. package/src/features/tools/edge-creation/edge-creation-tool-feedback.ts +5 -2
  258. package/src/features/tools/edge-creation/index.ts +2 -2
  259. package/src/features/tools/edge-edit/index.ts +2 -2
  260. package/src/features/tools/marquee-selection/index.ts +2 -2
  261. package/src/features/viewport/reposition.ts +11 -14
  262. package/src/utils/geometry-util.ts +45 -64
  263. package/src/utils/gmodel-util.ts +1 -1
  264. package/src/utils/viewpoint-util.ts +10 -21
  265. package/src/views/index.ts +2 -2
  266. package/src/views/rounded-corner.ts +5 -2
  267. package/lib/base/action-dispatcher.spec.d.ts +0 -2
  268. package/lib/base/action-dispatcher.spec.d.ts.map +0 -1
  269. package/lib/base/action-dispatcher.spec.js +0 -78
  270. package/lib/base/action-dispatcher.spec.js.map +0 -1
  271. package/lib/base/model/model-initialization-constraint.spec.d.ts +0 -2
  272. package/lib/base/model/model-initialization-constraint.spec.d.ts.map +0 -1
  273. package/lib/base/model/model-initialization-constraint.spec.js +0 -97
  274. package/lib/base/model/model-initialization-constraint.spec.js.map +0 -1
  275. package/lib/base/selection-service.spec.d.ts +0 -2
  276. package/lib/base/selection-service.spec.d.ts.map +0 -1
  277. package/lib/base/selection-service.spec.js +0 -287
  278. package/lib/base/selection-service.spec.js.map +0 -1
  279. package/lib/features/bounds/freeform-layout.spec.d.ts +0 -3
  280. package/lib/features/bounds/freeform-layout.spec.d.ts.map +0 -1
  281. package/lib/features/bounds/freeform-layout.spec.js +0 -201
  282. package/lib/features/bounds/freeform-layout.spec.js.map +0 -1
  283. package/lib/features/bounds/hbox-layout.spec.d.ts +0 -3
  284. package/lib/features/bounds/hbox-layout.spec.d.ts.map +0 -1
  285. package/lib/features/bounds/hbox-layout.spec.js +0 -160
  286. package/lib/features/bounds/hbox-layout.spec.js.map +0 -1
  287. package/lib/features/bounds/layouter-test-util.spec.d.ts +0 -32
  288. package/lib/features/bounds/layouter-test-util.spec.d.ts.map +0 -1
  289. package/lib/features/bounds/layouter-test-util.spec.js +0 -96
  290. package/lib/features/bounds/layouter-test-util.spec.js.map +0 -1
  291. package/lib/features/bounds/vbox-layout.spec.d.ts +0 -3
  292. package/lib/features/bounds/vbox-layout.spec.d.ts.map +0 -1
  293. package/lib/features/bounds/vbox-layout.spec.js +0 -160
  294. package/lib/features/bounds/vbox-layout.spec.js.map +0 -1
  295. package/lib/features/change-bounds/snap.spec.d.ts.map +0 -1
  296. package/lib/features/change-bounds/snap.spec.js +0 -83
  297. package/lib/features/change-bounds/snap.spec.js.map +0 -1
  298. package/lib/features/hints/type-hint-provider.spec.d.ts +0 -2
  299. package/lib/features/hints/type-hint-provider.spec.d.ts.map +0 -1
  300. package/lib/features/hints/type-hint-provider.spec.js +0 -333
  301. package/lib/features/hints/type-hint-provider.spec.js.map +0 -1
  302. package/lib/features/layout/layout-elements-action.spec.d.ts +0 -3
  303. package/lib/features/layout/layout-elements-action.spec.d.ts.map +0 -1
  304. package/lib/features/layout/layout-elements-action.spec.js +0 -329
  305. package/lib/features/layout/layout-elements-action.spec.js.map +0 -1
  306. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -3
  307. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +0 -1
  308. package/lib/features/navigation/navigation-target-resolver.spec.js +0 -53
  309. package/lib/features/navigation/navigation-target-resolver.spec.js.map +0 -1
  310. package/lib/features/tools/marquee-selection/marquee-behavior.spec.d.ts.map +0 -1
  311. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js +0 -165
  312. package/lib/features/tools/marquee-selection/marquee-behavior.spec.js.map +0 -1
  313. package/lib/features/validation/marker-navigator.spec.d.ts +0 -3
  314. package/lib/features/validation/marker-navigator.spec.d.ts.map +0 -1
  315. package/lib/features/validation/marker-navigator.spec.js +0 -166
  316. package/lib/features/validation/marker-navigator.spec.js.map +0 -1
  317. package/lib/utils/gmodel-util.spec.d.ts +0 -2
  318. package/lib/utils/gmodel-util.spec.d.ts.map +0 -1
  319. package/lib/utils/gmodel-util.spec.js +0 -186
  320. package/lib/utils/gmodel-util.spec.js.map +0 -1
@@ -1,160 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /********************************************************************************
4
- * Copyright (c) 2022-2023 TypeFox, STMicroelectronics and others.
5
- *
6
- * This program and the accompanying materials are made available under the
7
- * terms of the Eclipse Public License v. 2.0 which is available at
8
- * http://www.eclipse.org/legal/epl-2.0.
9
- *
10
- * This Source Code may also be made available under the following Secondary
11
- * Licenses when the conditions for such availability set forth in the Eclipse
12
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
- * with the GNU Classpath Exception which is available at
14
- * https://www.gnu.org/software/classpath/license.html.
15
- *
16
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
17
- ********************************************************************************/
18
- /* eslint-disable deprecation/deprecation */
19
- const chai_1 = require("chai");
20
- require("mocha");
21
- require("reflect-metadata");
22
- const sprotty_1 = require("@eclipse-glsp/sprotty");
23
- const layouter_test_util_spec_1 = require("./layouter-test-util.spec");
24
- describe('VBoxLayouter', () => {
25
- const layoutRegistry = (0, layouter_test_util_spec_1.setupLayoutRegistry)();
26
- const log = new sprotty_1.ConsoleLogger();
27
- const map = new Map();
28
- function createModel() {
29
- const model = (0, layouter_test_util_spec_1.createNode)('node', undefined, sprotty_1.Dimension.EMPTY);
30
- model.children = [
31
- (0, layouter_test_util_spec_1.createLabel)('label1', undefined, undefined, { width: 1, height: 2 }),
32
- (0, layouter_test_util_spec_1.createLabel)('label2', undefined, undefined, { width: 2, height: 1 }),
33
- (0, layouter_test_util_spec_1.createLabel)('label3', undefined, undefined, { width: 3, height: 3 })
34
- ];
35
- model.layout = 'vbox';
36
- return model;
37
- }
38
- it('defaultParams', () => {
39
- const model = createModel();
40
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
41
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 13, height: 18 });
42
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 6, y: 5, width: 1, height: 2 });
43
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 5.5, y: 8, width: 2, height: 1 });
44
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 5, y: 10, width: 3, height: 3 });
45
- });
46
- it('alignLeft', () => {
47
- const model = createModel();
48
- model.layoutOptions = {
49
- hAlign: 'left'
50
- };
51
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
52
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 13, height: 18 });
53
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 5, y: 5, width: 1, height: 2 });
54
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 5, y: 8, width: 2, height: 1 });
55
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 5, y: 10, width: 3, height: 3 });
56
- });
57
- it('alignCenter', () => {
58
- const model = createModel();
59
- model.layoutOptions = {
60
- hAlign: 'center'
61
- };
62
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
63
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 13, height: 18 });
64
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 6, y: 5, width: 1, height: 2 });
65
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 5.5, y: 8, width: 2, height: 1 });
66
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 5, y: 10, width: 3, height: 3 });
67
- });
68
- it('alignRight', () => {
69
- const model = createModel();
70
- model.layoutOptions = {
71
- hAlign: 'right'
72
- };
73
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
74
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 13, height: 18 });
75
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 7, y: 5, width: 1, height: 2 });
76
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 6, y: 8, width: 2, height: 1 });
77
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 5, y: 10, width: 3, height: 3 });
78
- });
79
- it('padding', () => {
80
- const model = createModel();
81
- model.layoutOptions = {
82
- paddingTop: 7,
83
- paddingBottom: 8,
84
- paddingLeft: 9,
85
- paddingRight: 10
86
- };
87
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
88
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 22, height: 23 });
89
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 10, y: 7, width: 1, height: 2 });
90
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 9.5, y: 10, width: 2, height: 1 });
91
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 9, y: 12, width: 3, height: 3 });
92
- });
93
- it('vGap', () => {
94
- const model = createModel();
95
- model.layoutOptions = {
96
- vGap: 4
97
- };
98
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
99
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 13, height: 24 });
100
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 6, y: 5, width: 1, height: 2 });
101
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 5.5, y: 11, width: 2, height: 1 });
102
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 5, y: 16, width: 3, height: 3 });
103
- });
104
- it('paddingFactor', () => {
105
- const model = createModel();
106
- model.layoutOptions = {
107
- paddingFactor: 2
108
- };
109
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
110
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 13, height: 18 });
111
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 9, y: 9, width: 1, height: 2 });
112
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 8.5, y: 12, width: 2, height: 1 });
113
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 8, y: 14, width: 3, height: 3 });
114
- });
115
- it('minWidth', () => {
116
- const model = createModel();
117
- model.layoutOptions = {
118
- minWidth: 25
119
- };
120
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
121
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 25, height: 18 });
122
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 12, y: 5, width: 1, height: 2 });
123
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 11.5, y: 8, width: 2, height: 1 });
124
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 11, y: 10, width: 3, height: 3 });
125
- });
126
- it('minHeight', () => {
127
- const model = createModel();
128
- model.layoutOptions = {
129
- minHeight: 25
130
- };
131
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
132
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 13, height: 25 });
133
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 6, y: 5, width: 1, height: 2 });
134
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 5.5, y: 8, width: 2, height: 1 });
135
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 5, y: 10, width: 3, height: 3 });
136
- });
137
- it('prefWidth', () => {
138
- const model = createModel();
139
- model.layoutOptions = {
140
- prefWidth: 20
141
- };
142
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
143
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 20, height: 18 });
144
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 9.5, y: 5, width: 1, height: 2 });
145
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 9, y: 8, width: 2, height: 1 });
146
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 8.5, y: 10, width: 3, height: 3 });
147
- });
148
- it('prefHeight', () => {
149
- const model = createModel();
150
- model.layoutOptions = {
151
- prefHeight: 20
152
- };
153
- (0, layouter_test_util_spec_1.layout)(layoutRegistry, log, map, model);
154
- (0, chai_1.expect)(map.get(model).bounds).to.deep.equal({ x: 0, y: 0, width: 13, height: 20 });
155
- (0, chai_1.expect)(map.get(model.children[0]).bounds).to.deep.equal({ x: 6, y: 5, width: 1, height: 2 });
156
- (0, chai_1.expect)(map.get(model.children[1]).bounds).to.deep.equal({ x: 5.5, y: 8, width: 2, height: 1 });
157
- (0, chai_1.expect)(map.get(model.children[2]).bounds).to.deep.equal({ x: 5, y: 10, width: 3, height: 3 });
158
- });
159
- });
160
- //# sourceMappingURL=vbox-layout.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vbox-layout.spec.js","sourceRoot":"","sources":["../../../src/features/bounds/vbox-layout.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snap.spec.d.ts","sourceRoot":"","sources":["../../../src/features/change-bounds/snap.spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF"}
@@ -1,83 +0,0 @@
1
- "use strict";
2
- /********************************************************************************
3
- * Copyright (c) 2022-2023 EclipseSource and others.
4
- *
5
- * This program and the accompanying materials are made available under the
6
- * terms of the Eclipse Public License v. 2.0 which is available at
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
- Object.defineProperty(exports, "__esModule", { value: true });
18
- const sprotty_1 = require("@eclipse-glsp/sprotty");
19
- const chai_1 = require("chai");
20
- const point_position_updater_1 = require("./point-position-updater");
21
- const snap_1 = require("./snap");
22
- describe('GridSnapper', () => {
23
- it('snap', () => {
24
- const element = new sprotty_1.GModelElement();
25
- const snapper = new snap_1.GridSnapper();
26
- (0, chai_1.expect)(snapper.snap({ x: 0, y: 0 }, element)).to.be.deep.equals({ x: 0, y: 0 });
27
- (0, chai_1.expect)(snapper.snap({ x: 4, y: 5 }, element)).to.be.deep.equals({ x: 0, y: 10 });
28
- (0, chai_1.expect)(snapper.snap({ x: 8, y: 11 }, element)).to.be.deep.equals({ x: 10, y: 10 });
29
- (0, chai_1.expect)(snapper.snap({ x: -7, y: -4 }, element)).to.be.deep.equals({ x: -10, y: -0 });
30
- });
31
- });
32
- describe('PointPositionUpdater', () => {
33
- it('updatePosition with no last drag position', () => {
34
- const element = new sprotty_1.GModelElement();
35
- const updater = new point_position_updater_1.PointPositionUpdater();
36
- (0, chai_1.expect)(updater.updatePosition(element, { x: 0, y: 0 }, false)).to.be.undefined;
37
- (0, chai_1.expect)(updater.updatePosition(element, { x: 0, y: 0 }, true)).to.be.undefined;
38
- });
39
- it('update last position and reset', () => {
40
- const updater = new point_position_updater_1.PointPositionUpdater();
41
- (0, chai_1.expect)(updater.isLastDragPositionUndefined()).to.be.true;
42
- updater.updateLastDragPosition({ x: 0, y: 0 });
43
- (0, chai_1.expect)(updater.isLastDragPositionUndefined()).to.be.false;
44
- updater.resetPosition();
45
- (0, chai_1.expect)(updater.isLastDragPositionUndefined()).to.be.true;
46
- });
47
- it('updatePosition with no snapper', () => {
48
- const element = new sprotty_1.GModelElement();
49
- const updater = new point_position_updater_1.PointPositionUpdater();
50
- resetUpdater(updater);
51
- (0, chai_1.expect)(updater.updatePosition(element, { x: 0, y: 0 }, false)).to.be.undefined;
52
- (0, chai_1.expect)(updater.updatePosition(element, { x: 0, y: 0 }, true)).to.be.undefined;
53
- resetUpdater(updater);
54
- (0, chai_1.expect)(updater.updatePosition(element, { x: 5, y: 3 }, false)).to.be.deep.equals({ x: 5, y: 3 });
55
- (0, chai_1.expect)(updater.updatePosition(element, { x: 5, y: 3 }, true)).to.be.undefined;
56
- (0, chai_1.expect)(updater.updatePosition(element, { x: 11, y: 6 }, false)).to.be.deep.equals({ x: 6, y: 3 });
57
- (0, chai_1.expect)(updater.updatePosition(element, { x: -3, y: 2 }, true)).to.be.deep.equals({ x: -14, y: -4 });
58
- });
59
- it('updatePosition with snapper', () => {
60
- const element = new sprotty_1.GModelElement();
61
- const snapper = new snap_1.GridSnapper();
62
- const updater = new point_position_updater_1.PointPositionUpdater(snapper);
63
- resetUpdater(updater);
64
- (0, chai_1.expect)(updater.updatePosition(element, { x: 0, y: 0 }, false)).to.be.undefined;
65
- (0, chai_1.expect)(updater.updatePosition(element, { x: 0, y: 0 }, true)).to.be.undefined;
66
- resetUpdater(updater);
67
- (0, chai_1.expect)(updater.updatePosition(element, { x: 5, y: 3 }, true)).to.be.deep.equals({ x: 10, y: 0 });
68
- (0, chai_1.expect)(updater.updatePosition(element, { x: 5, y: 3 }, true)).to.be.undefined;
69
- (0, chai_1.expect)(updater.updatePosition(element, { x: 11, y: 6 }, true)).to.be.deep.equals({ x: 0, y: 10 });
70
- (0, chai_1.expect)(updater.updatePosition(element, { x: -3, y: 2 }, true)).to.be.deep.equals({ x: -10, y: -10 });
71
- // disable snapping (alt key)
72
- resetUpdater(updater);
73
- (0, chai_1.expect)(updater.updatePosition(element, { x: 5, y: 3 }, false)).to.be.deep.equals({ x: 5, y: 3 });
74
- (0, chai_1.expect)(updater.updatePosition(element, { x: 5, y: 3 }, false)).to.be.undefined;
75
- (0, chai_1.expect)(updater.updatePosition(element, { x: 11, y: 6 }, false)).to.be.deep.equals({ x: 6, y: 3 });
76
- (0, chai_1.expect)(updater.updatePosition(element, { x: -3, y: 2 }, false)).to.be.deep.equals({ x: -14, y: -4 });
77
- });
78
- function resetUpdater(updater) {
79
- updater.resetPosition();
80
- updater.updateLastDragPosition({ x: 0, y: 0 });
81
- }
82
- });
83
- //# sourceMappingURL=snap.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snap.spec.js","sourceRoot":"","sources":["../../../src/features/change-bounds/snap.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=type-hint-provider.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-hint-provider.spec.d.ts","sourceRoot":"","sources":["../../../src/features/hints/type-hint-provider.spec.ts"],"names":[],"mappings":""}
@@ -1,333 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /********************************************************************************
4
- * Copyright (c) 2023 EclipseSource and others.
5
- *
6
- * This program and the accompanying materials are made available under the
7
- * terms of the Eclipse Public License v. 2.0 which is available at
8
- * http://www.eclipse.org/legal/epl-2.0.
9
- *
10
- * This Source Code may also be made available under the following Secondary
11
- * Licenses when the conditions for such availability set forth in the Eclipse
12
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
- * with the GNU Classpath Exception which is available at
14
- * https://www.gnu.org/software/classpath/license.html.
15
- *
16
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
17
- ********************************************************************************/
18
- const sprotty_1 = require("@eclipse-glsp/sprotty");
19
- const chai_1 = require("chai");
20
- const inversify_1 = require("inversify");
21
- const sinon = require("sinon");
22
- const action_dispatcher_1 = require("../../base/action-dispatcher");
23
- const feedback_action_dispatcher_1 = require("../../base/feedback/feedback-action-dispatcher");
24
- const model_1 = require("../../model");
25
- const model_2 = require("../change-bounds/model");
26
- const model_3 = require("../reconnect/model");
27
- const model_4 = require("./model");
28
- const type_hint_provider_1 = require("./type-hint-provider");
29
- describe('TypeHintProvider', () => {
30
- const container = new inversify_1.Container();
31
- container.bind(action_dispatcher_1.GLSPActionDispatcher).toConstantValue(sinon.createStubInstance(action_dispatcher_1.GLSPActionDispatcher));
32
- container.bind(sprotty_1.TYPES.IFeedbackActionDispatcher).toConstantValue(sinon.createStubInstance(feedback_action_dispatcher_1.FeedbackActionDispatcher));
33
- const typeHintProvider = container.resolve(type_hint_provider_1.TypeHintProvider);
34
- describe('getShapeTypeHint', () => {
35
- const nodeHint = {
36
- deletable: true,
37
- elementTypeId: 'node',
38
- reparentable: false,
39
- repositionable: true,
40
- resizable: true
41
- };
42
- const taskHint = {
43
- deletable: true,
44
- elementTypeId: 'node:task',
45
- reparentable: false,
46
- repositionable: true,
47
- resizable: true
48
- };
49
- it('should return `undefined` if no `SetTypeHintsAction` has been handled yet', () => {
50
- (0, chai_1.expect)(typeHintProvider.getShapeTypeHint('some')).to.be.undefined;
51
- });
52
- it('should return `undefined` if no hint is registered for the given type (exact type match)', () => {
53
- typeHintProvider.handle(sprotty_1.SetTypeHintsAction.create({ shapeHints: [nodeHint], edgeHints: [] }));
54
- (0, chai_1.expect)(typeHintProvider.getShapeTypeHint('port')).to.be.undefined;
55
- });
56
- it('should return the corresponding type hint for the given type (exact type match)', () => {
57
- typeHintProvider.handle(sprotty_1.SetTypeHintsAction.create({ shapeHints: [nodeHint, taskHint], edgeHints: [] }));
58
- (0, chai_1.expect)(typeHintProvider.getShapeTypeHint('node')).to.equal(nodeHint);
59
- (0, chai_1.expect)(typeHintProvider.getShapeTypeHint('node:task')).to.equal(taskHint);
60
- });
61
- it('should return the corresponding type hint for the given type (sub type match)', () => {
62
- typeHintProvider.handle(sprotty_1.SetTypeHintsAction.create({ shapeHints: [nodeHint, taskHint], edgeHints: [] }));
63
- (0, chai_1.expect)(typeHintProvider.getShapeTypeHint('node:task:manual')).to.equal(taskHint);
64
- (0, chai_1.expect)(typeHintProvider.getShapeTypeHint('node:task:manual:foo')).to.equal(taskHint);
65
- (0, chai_1.expect)(typeHintProvider.getShapeTypeHint('node:event')).to.equal(nodeHint);
66
- (0, chai_1.expect)(typeHintProvider.getShapeTypeHint('node:event:initial')).to.equal(nodeHint);
67
- });
68
- });
69
- describe('getEdgeTypeHint', () => {
70
- const edgeHint = {
71
- deletable: true,
72
- elementTypeId: 'edge',
73
- repositionable: true,
74
- routable: true,
75
- dynamic: false
76
- };
77
- const fooEdgeHint = {
78
- deletable: true,
79
- elementTypeId: 'edge:foo',
80
- repositionable: true,
81
- routable: true,
82
- dynamic: true
83
- };
84
- it('should return `undefined` if no `SetTypeHintsAction` has been handled yet', () => {
85
- (0, chai_1.expect)(typeHintProvider.getEdgeTypeHint('some')).to.be.undefined;
86
- });
87
- it('should return `undefined` if no hint is registered for the given type (exact type match)', () => {
88
- typeHintProvider.handle(sprotty_1.SetTypeHintsAction.create({ shapeHints: [], edgeHints: [edgeHint] }));
89
- (0, chai_1.expect)(typeHintProvider.getEdgeTypeHint('link')).to.be.undefined;
90
- });
91
- it('should return the corresponding type hint for the given type (exact type match)', () => {
92
- typeHintProvider.handle(sprotty_1.SetTypeHintsAction.create({ shapeHints: [], edgeHints: [edgeHint, fooEdgeHint] }));
93
- (0, chai_1.expect)(typeHintProvider.getEdgeTypeHint('edge')).to.equal(edgeHint);
94
- (0, chai_1.expect)(typeHintProvider.getEdgeTypeHint('edge:foo')).to.equal(fooEdgeHint);
95
- });
96
- it('should return the corresponding type hint for the given type (sub type match)', () => {
97
- typeHintProvider.handle(sprotty_1.SetTypeHintsAction.create({ shapeHints: [], edgeHints: [edgeHint, fooEdgeHint] }));
98
- (0, chai_1.expect)(typeHintProvider.getEdgeTypeHint('edge:foo:bar')).to.equal(fooEdgeHint);
99
- (0, chai_1.expect)(typeHintProvider.getEdgeTypeHint('edge:foo:bar:baz')).to.equal(fooEdgeHint);
100
- (0, chai_1.expect)(typeHintProvider.getEdgeTypeHint('edge:some')).to.equal(edgeHint);
101
- (0, chai_1.expect)(typeHintProvider.getEdgeTypeHint('edge:some:other')).to.equal(edgeHint);
102
- });
103
- });
104
- });
105
- describe('ApplyTypeHintCommand', () => {
106
- function createCommandExecutionContext(child) {
107
- const root = new sprotty_1.GModelRoot();
108
- root.id = 'root';
109
- root.type = 'root';
110
- root.add(child);
111
- return {
112
- root,
113
- modelFactory,
114
- duration: 0,
115
- modelChanged: undefined,
116
- logger: new sprotty_1.ConsoleLogger(),
117
- syncer: new sprotty_1.AnimationFrameSyncer()
118
- };
119
- }
120
- function createNode(type) {
121
- const node = new sprotty_1.GNode();
122
- node.type = type !== null && type !== void 0 ? type : 'node';
123
- node.id = 'node';
124
- node.features = (0, sprotty_1.createFeatureSet)(sprotty_1.GNode.DEFAULT_FEATURES);
125
- return node;
126
- }
127
- function createEdge(type) {
128
- const edge = new model_1.GEdge();
129
- edge.type = type !== null && type !== void 0 ? type : 'edge';
130
- edge.id = 'edge';
131
- edge.features = (0, sprotty_1.createFeatureSet)(model_1.GEdge.DEFAULT_FEATURES);
132
- return edge;
133
- }
134
- const sandbox = sinon.createSandbox();
135
- const container = new inversify_1.Container();
136
- const modelFactory = sinon.createStubInstance(sprotty_1.GModelFactory);
137
- const typeHintProviderMock = sandbox.stub({
138
- getEdgeTypeHint: () => undefined,
139
- getShapeTypeHint: () => undefined
140
- });
141
- container.bind(action_dispatcher_1.GLSPActionDispatcher).toConstantValue(sandbox.createStubInstance(action_dispatcher_1.GLSPActionDispatcher));
142
- container.bind(sprotty_1.TYPES.IFeedbackActionDispatcher).toConstantValue(sandbox.createStubInstance(feedback_action_dispatcher_1.FeedbackActionDispatcher));
143
- container.bind(sprotty_1.TYPES.ITypeHintProvider).toConstantValue(typeHintProviderMock);
144
- (0, sprotty_1.bindOrRebind)(container, sprotty_1.TYPES.Action).toConstantValue(type_hint_provider_1.ApplyTypeHintsAction.create());
145
- const command = container.resolve(type_hint_provider_1.ApplyTypeHintsCommand);
146
- beforeEach(() => {
147
- sandbox.reset();
148
- });
149
- describe('test hints to model feature translation (after command execution)`', () => {
150
- describe('ShapeTypeHint', () => {
151
- const allEnabledHint = {
152
- elementTypeId: 'node',
153
- deletable: true,
154
- reparentable: true,
155
- repositionable: true,
156
- resizable: true,
157
- containableElementTypeIds: []
158
- };
159
- const allDisabledHint = {
160
- elementTypeId: 'node',
161
- deletable: false,
162
- reparentable: false,
163
- repositionable: false,
164
- resizable: false,
165
- containableElementTypeIds: []
166
- };
167
- it('should not modify feature set of model element with no applicable type hint', () => {
168
- typeHintProviderMock.getShapeTypeHint.returns(undefined);
169
- const result = command.execute(createCommandExecutionContext(createNode()));
170
- const element = result.children[0];
171
- (0, chai_1.expect)(sprotty_1.GNode.DEFAULT_FEATURES, 'Element should have default feature set').to.have.same.members([
172
- ...element.features
173
- ]);
174
- });
175
- it('should add all enabled (`true`) features, derived from the applied type hint, to the model', () => {
176
- typeHintProviderMock.getShapeTypeHint.returns(allEnabledHint);
177
- const result = command.execute(createCommandExecutionContext(createNode()));
178
- const element = result.children[0];
179
- (0, chai_1.expect)((0, sprotty_1.isDeletable)(element), 'Element should have deletable feature').to.be.true;
180
- (0, chai_1.expect)((0, model_4.isReparentable)(element), 'Element should have reparentable feature').to.be.true;
181
- (0, chai_1.expect)((0, sprotty_1.isMoveable)(element), 'Element should have moveable feature').to.be.true;
182
- (0, chai_1.expect)((0, model_4.isContainable)(element), 'Element should have containable feature').to.be.true;
183
- (0, chai_1.expect)((0, model_2.isResizable)(element), 'Element should have resizeable feature').to.be.true;
184
- });
185
- it('should remove all disabled (`false`) features, derived from the applied type hint, from the model', () => {
186
- typeHintProviderMock.getShapeTypeHint.returns(allDisabledHint);
187
- const result = command.execute(createCommandExecutionContext(createNode()));
188
- const element = result.children[0];
189
- (0, chai_1.expect)((0, sprotty_1.isDeletable)(element), 'Element should not have deletable feature').to.be.false;
190
- (0, chai_1.expect)((0, model_4.isReparentable)(element), 'Element should not have reparentable feature').to.be.false;
191
- (0, chai_1.expect)((0, sprotty_1.isMoveable)(element), 'Element should not have moveable feature').to.be.false;
192
- (0, chai_1.expect)((0, model_2.isResizable)(element), 'Element should not have resizeable feature').to.be.false;
193
- });
194
- describe('`isConnectable` (after hint has been applied to element)', () => {
195
- const shapeHint = {
196
- deletable: false,
197
- elementTypeId: 'node',
198
- reparentable: false,
199
- repositionable: false,
200
- resizable: false
201
- };
202
- const edgeHint = {
203
- deletable: false,
204
- elementTypeId: 'edge',
205
- repositionable: false,
206
- routable: false
207
- };
208
- it('should return `true` if source/target elements are not defined in edge hint', () => {
209
- typeHintProviderMock.getShapeTypeHint.returns(shapeHint);
210
- typeHintProviderMock.getEdgeTypeHint.returns(edgeHint);
211
- const result = command.execute(createCommandExecutionContext(createNode()));
212
- const element = result.children[0];
213
- const edge = createEdge();
214
- (0, chai_1.expect)(element.canConnect(edge, 'source')).to.be.true;
215
- (0, chai_1.expect)(element.canConnect(edge, 'target')).to.be.true;
216
- });
217
- it('should return `false` if element type is not in source/target elements of edge hint', () => {
218
- typeHintProviderMock.getShapeTypeHint.returns(shapeHint);
219
- typeHintProviderMock.getEdgeTypeHint.returns(edgeHint);
220
- edgeHint.sourceElementTypeIds = [];
221
- edgeHint.targetElementTypeIds = [];
222
- const result = command.execute(createCommandExecutionContext(createNode()));
223
- const element = result.children[0];
224
- const edge = createEdge();
225
- (0, chai_1.expect)(element.canConnect(edge, 'source')).to.be.false;
226
- (0, chai_1.expect)(element.canConnect(edge, 'target')).to.be.false;
227
- });
228
- it('should return `true` if element type is in source/target elements of edge hint (exact type)', () => {
229
- typeHintProviderMock.getShapeTypeHint.returns(shapeHint);
230
- typeHintProviderMock.getEdgeTypeHint.returns(edgeHint);
231
- edgeHint.sourceElementTypeIds = ['node'];
232
- edgeHint.targetElementTypeIds = ['node'];
233
- const result = command.execute(createCommandExecutionContext(createNode()));
234
- const element = result.children[0];
235
- const edge = createEdge();
236
- (0, chai_1.expect)(element.canConnect(edge, 'source')).to.be.true;
237
- (0, chai_1.expect)(element.canConnect(edge, 'target')).to.be.true;
238
- });
239
- it('should return `true` if element super type is in source/target elements of edge hint (super type)', () => {
240
- typeHintProviderMock.getShapeTypeHint.returns(shapeHint);
241
- typeHintProviderMock.getEdgeTypeHint.returns(edgeHint);
242
- edgeHint.sourceElementTypeIds = ['node'];
243
- edgeHint.targetElementTypeIds = ['node'];
244
- const result = command.execute(createCommandExecutionContext(createNode('node:task:automated')));
245
- const element = result.children[0];
246
- const edge = createEdge();
247
- (0, chai_1.expect)(element.canConnect(edge, 'source')).to.be.true;
248
- (0, chai_1.expect)(element.canConnect(edge, 'target')).to.be.true;
249
- });
250
- it('should fallback to class-level `canConnect` implementation if no edge hint is applicable to routable', () => {
251
- typeHintProviderMock.getEdgeTypeHint.returns(undefined);
252
- typeHintProviderMock.getShapeTypeHint.returns(shapeHint);
253
- const node = createNode();
254
- const originalCanConnectSpy = sinon.spy(node, 'canConnect');
255
- const result = command.execute(createCommandExecutionContext(node));
256
- const element = result.children[0];
257
- const edge = createEdge();
258
- (0, chai_1.expect)(element.canConnect(edge, 'source')).to.be.true;
259
- (0, chai_1.expect)(element.canConnect(edge, 'target')).to.be.true;
260
- (0, chai_1.expect)(originalCanConnectSpy.called).to.be.true;
261
- });
262
- });
263
- describe('`isContainable` (after hint has been applied to element)', () => {
264
- const shapeHint = {
265
- deletable: false,
266
- elementTypeId: 'node',
267
- reparentable: false,
268
- repositionable: false,
269
- resizable: false
270
- };
271
- it('should return `false` if corresponding hint has no containable elements defined', () => {
272
- typeHintProviderMock.getShapeTypeHint.returns(shapeHint);
273
- const result = command.execute(createCommandExecutionContext(createNode('node')));
274
- const element = result.children[0];
275
- (0, chai_1.expect)(element.isContainableElement('other')).to.be.false;
276
- });
277
- it('should return `true` if corresponding hint has containable element with matching type', () => {
278
- typeHintProviderMock.getShapeTypeHint.returns(shapeHint);
279
- shapeHint.containableElementTypeIds = ['node'];
280
- const result = command.execute(createCommandExecutionContext(createNode('node')));
281
- const element = result.children[0];
282
- (0, chai_1.expect)(element.isContainableElement('node')).to.be.true;
283
- });
284
- it('should return `true` if corresponding hint as has containable element with matching super type', () => {
285
- typeHintProviderMock.getShapeTypeHint.returns(shapeHint);
286
- shapeHint.containableElementTypeIds = ['node'];
287
- const result = command.execute(createCommandExecutionContext(createNode('node')));
288
- const element = result.children[0];
289
- (0, chai_1.expect)(element.isContainableElement('node:task:automated')).to.be.true;
290
- });
291
- });
292
- });
293
- describe('EdgeTypeHint', () => {
294
- const allEnabledHint = {
295
- elementTypeId: 'edge',
296
- deletable: true,
297
- repositionable: true,
298
- routable: true
299
- };
300
- const allDisabledHint = {
301
- elementTypeId: 'edge',
302
- deletable: false,
303
- repositionable: false,
304
- routable: false
305
- };
306
- it('should not modify feature set of model element with no applicable type hint', () => {
307
- typeHintProviderMock.getEdgeTypeHint.returns(undefined);
308
- const result = command.execute(createCommandExecutionContext(createEdge()));
309
- const element = result.children[0];
310
- (0, chai_1.expect)(model_1.GEdge.DEFAULT_FEATURES, 'Element should have default feature set').to.have.same.members([
311
- ...element.features
312
- ]);
313
- });
314
- it('should add all enabled (`true`) features, derived from the applied type hint, to the model', () => {
315
- typeHintProviderMock.getEdgeTypeHint.returns(allEnabledHint);
316
- const result = command.execute(createCommandExecutionContext(createEdge()));
317
- const element = result.children[0];
318
- (0, chai_1.expect)((0, sprotty_1.isDeletable)(element), 'Element should have deletable feature').to.be.true;
319
- (0, chai_1.expect)(element.hasFeature(sprotty_1.editFeature), 'Element should have edit feature').to.be.true;
320
- (0, chai_1.expect)((0, model_3.isReconnectable)(element), 'Element should have reconnectable feature').to.be.true;
321
- });
322
- it('should remove all disabled (`false`) features, derived from the applied type hint, from the model', () => {
323
- typeHintProviderMock.getEdgeTypeHint.returns(allDisabledHint);
324
- const result = command.execute(createCommandExecutionContext(createEdge()));
325
- const element = result.children[0];
326
- (0, chai_1.expect)((0, sprotty_1.isDeletable)(element), 'Element should not have deletable feature').to.be.false;
327
- (0, chai_1.expect)(element.hasFeature(sprotty_1.editFeature), 'Element should not have edit feature').to.be.false;
328
- (0, chai_1.expect)((0, model_3.isReconnectable)(element), 'Element should not have reconnectable feature').to.be.false;
329
- });
330
- });
331
- });
332
- });
333
- //# sourceMappingURL=type-hint-provider.spec.js.map