@eclipse-glsp/client 2.4.0-next.409 → 2.4.0-next.413

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 (207) hide show
  1. package/lib/base/default.module.d.ts.map +1 -1
  2. package/lib/base/default.module.js +3 -0
  3. package/lib/base/default.module.js.map +1 -1
  4. package/lib/{features/accessibility/key-shortcut/accessible-key-shortcut.d.ts → base/shortcuts/available-shortcuts-extension.d.ts} +7 -29
  5. package/lib/base/shortcuts/available-shortcuts-extension.d.ts.map +1 -0
  6. package/lib/{features/accessibility/key-shortcut/accessible-key-shortcut.js → base/shortcuts/available-shortcuts-extension.js} +20 -36
  7. package/lib/base/shortcuts/available-shortcuts-extension.js.map +1 -0
  8. package/lib/{features/accessibility/key-shortcut/accessible-key-shortcut-tool.d.ts → base/shortcuts/available-shortcuts-tool.d.ts} +4 -6
  9. package/lib/base/shortcuts/available-shortcuts-tool.d.ts.map +1 -0
  10. package/lib/{features/accessibility/key-shortcut/accessible-key-shortcut-tool.js → base/shortcuts/available-shortcuts-tool.js} +14 -24
  11. package/lib/base/shortcuts/available-shortcuts-tool.js.map +1 -0
  12. package/lib/base/shortcuts/shortcuts-manager.d.ts +39 -0
  13. package/lib/base/shortcuts/shortcuts-manager.d.ts.map +1 -0
  14. package/lib/base/shortcuts/shortcuts-manager.js +55 -0
  15. package/lib/base/shortcuts/shortcuts-manager.js.map +1 -0
  16. package/lib/{features/accessibility/move-zoom/move-zoom-module.d.ts → base/shortcuts/shortcuts-module.d.ts} +7 -5
  17. package/lib/base/shortcuts/shortcuts-module.d.ts.map +1 -0
  18. package/lib/{features/accessibility/resize-key-tool/resize-key-module.js → base/shortcuts/shortcuts-module.js} +12 -14
  19. package/lib/base/shortcuts/shortcuts-module.js.map +1 -0
  20. package/lib/base/ui-extension/ui-extension.d.ts +3 -1
  21. package/lib/base/ui-extension/ui-extension.d.ts.map +1 -1
  22. package/lib/base/ui-extension/ui-extension.js +8 -0
  23. package/lib/base/ui-extension/ui-extension.js.map +1 -1
  24. package/lib/default-modules.d.ts +1 -1
  25. package/lib/default-modules.d.ts.map +1 -1
  26. package/lib/default-modules.js +3 -1
  27. package/lib/default-modules.js.map +1 -1
  28. package/lib/features/accessibility/accessibility-module.d.ts.map +1 -1
  29. package/lib/features/accessibility/accessibility-module.js +0 -6
  30. package/lib/features/accessibility/accessibility-module.js.map +1 -1
  31. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.d.ts +8 -10
  32. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.d.ts.map +1 -1
  33. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js +20 -44
  34. package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js.map +1 -1
  35. package/lib/features/accessibility/global-keylistener-tool.d.ts +6 -8
  36. package/lib/features/accessibility/global-keylistener-tool.d.ts.map +1 -1
  37. package/lib/features/accessibility/global-keylistener-tool.js +10 -25
  38. package/lib/features/accessibility/global-keylistener-tool.js.map +1 -1
  39. package/lib/features/accessibility/search/search-tool.d.ts +7 -10
  40. package/lib/features/accessibility/search/search-tool.d.ts.map +1 -1
  41. package/lib/features/accessibility/search/search-tool.js +9 -20
  42. package/lib/features/accessibility/search/search-tool.js.map +1 -1
  43. package/lib/features/accessibility/view-key-tools/{zoom-key-tool.d.ts → grid-cell-zoom-key-tool.d.ts} +13 -21
  44. package/lib/features/accessibility/view-key-tools/grid-cell-zoom-key-tool.d.ts.map +1 -0
  45. package/lib/features/accessibility/view-key-tools/{zoom-key-tool.js → grid-cell-zoom-key-tool.js} +31 -82
  46. package/lib/features/accessibility/view-key-tools/grid-cell-zoom-key-tool.js.map +1 -0
  47. package/lib/features/accessibility/view-key-tools/view-key-tools-module.d.ts.map +1 -1
  48. package/lib/features/accessibility/view-key-tools/view-key-tools-module.js +7 -7
  49. package/lib/features/accessibility/view-key-tools/view-key-tools-module.js.map +1 -1
  50. package/lib/features/bounds/bounds-module.d.ts.map +1 -1
  51. package/lib/features/bounds/bounds-module.js +4 -0
  52. package/lib/features/bounds/bounds-module.js.map +1 -1
  53. package/lib/features/change-bounds/move-element-action.d.ts +52 -0
  54. package/lib/features/change-bounds/move-element-action.d.ts.map +1 -0
  55. package/lib/features/change-bounds/move-element-action.js +32 -0
  56. package/lib/features/change-bounds/move-element-action.js.map +1 -0
  57. package/lib/features/change-bounds/move-element-handler.d.ts +42 -0
  58. package/lib/features/change-bounds/move-element-handler.d.ts.map +1 -0
  59. package/lib/features/{accessibility/move-zoom/move-handler.js → change-bounds/move-element-handler.js} +12 -72
  60. package/lib/features/change-bounds/move-element-handler.js.map +1 -0
  61. package/lib/features/change-bounds/move-element-key-listener.d.ts +31 -0
  62. package/lib/features/change-bounds/move-element-key-listener.d.ts.map +1 -0
  63. package/lib/features/change-bounds/move-element-key-listener.js +71 -0
  64. package/lib/features/change-bounds/move-element-key-listener.js.map +1 -0
  65. package/lib/features/change-bounds/resize/resize-default-tool.d.ts +34 -0
  66. package/lib/features/change-bounds/resize/resize-default-tool.d.ts.map +1 -0
  67. package/lib/features/change-bounds/resize/resize-default-tool.js +89 -0
  68. package/lib/features/change-bounds/resize/resize-default-tool.js.map +1 -0
  69. package/lib/features/{accessibility/resize-key-tool/resize-key-handler.d.ts → change-bounds/resize/resize-handler.d.ts} +3 -7
  70. package/lib/features/change-bounds/resize/resize-handler.d.ts.map +1 -0
  71. package/lib/features/{accessibility/resize-key-tool/resize-key-handler.js → change-bounds/resize/resize-handler.js} +16 -24
  72. package/lib/features/change-bounds/resize/resize-handler.js.map +1 -0
  73. package/lib/features/{accessibility/resize-key-tool/resize-key-module.d.ts → change-bounds/resize/resize-module.d.ts} +9 -4
  74. package/lib/features/change-bounds/resize/resize-module.d.ts.map +1 -0
  75. package/lib/features/change-bounds/resize/resize-module.js +42 -0
  76. package/lib/features/change-bounds/resize/resize-module.js.map +1 -0
  77. package/lib/features/change-bounds/resize/resize-tool.d.ts +37 -0
  78. package/lib/features/change-bounds/resize/resize-tool.d.ts.map +1 -0
  79. package/lib/features/change-bounds/resize/resize-tool.js +123 -0
  80. package/lib/features/change-bounds/resize/resize-tool.js.map +1 -0
  81. package/lib/features/grid/grid-manager.js +1 -0
  82. package/lib/features/grid/grid-manager.js.map +1 -1
  83. package/lib/features/grid/grid-module.d.ts.map +1 -1
  84. package/lib/features/grid/grid-module.js +2 -1
  85. package/lib/features/grid/grid-module.js.map +1 -1
  86. package/lib/features/grid/grid-snapper.d.ts.map +1 -1
  87. package/lib/features/grid/grid-snapper.js +3 -2
  88. package/lib/features/grid/grid-snapper.js.map +1 -1
  89. package/lib/features/grid/grid.d.ts +3 -0
  90. package/lib/features/grid/grid.d.ts.map +1 -1
  91. package/lib/features/grid/grid.js +5 -0
  92. package/lib/features/grid/grid.js.map +1 -1
  93. package/lib/features/helper-lines/helper-line-manager.js +1 -0
  94. package/lib/features/helper-lines/helper-line-manager.js.map +1 -1
  95. package/lib/features/tools/base-tools.d.ts +8 -3
  96. package/lib/features/tools/base-tools.d.ts.map +1 -1
  97. package/lib/features/tools/base-tools.js +21 -12
  98. package/lib/features/tools/base-tools.js.map +1 -1
  99. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts +8 -2
  100. package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -1
  101. package/lib/features/tools/change-bounds/change-bounds-tool.js +23 -0
  102. package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -1
  103. package/lib/features/tools/edge-creation/edge-creation-tool.js +1 -0
  104. package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -1
  105. package/lib/features/tools/node-creation/node-creation-views.js +1 -0
  106. package/lib/features/tools/node-creation/node-creation-views.js.map +1 -1
  107. package/lib/features/viewport/viewport-handler.d.ts +20 -1
  108. package/lib/features/viewport/viewport-handler.d.ts.map +1 -1
  109. package/lib/features/viewport/viewport-handler.js +100 -1
  110. package/lib/features/viewport/viewport-handler.js.map +1 -1
  111. package/lib/features/viewport/viewport-key-listener.d.ts +36 -0
  112. package/lib/features/viewport/viewport-key-listener.d.ts.map +1 -0
  113. package/lib/features/viewport/viewport-key-listener.js +144 -0
  114. package/lib/features/viewport/viewport-key-listener.js.map +1 -0
  115. package/lib/features/viewport/viewport-modules.d.ts.map +1 -1
  116. package/lib/features/viewport/viewport-modules.js +11 -0
  117. package/lib/features/viewport/viewport-modules.js.map +1 -1
  118. package/lib/features/viewport/viewport-tool.d.ts +32 -0
  119. package/lib/features/viewport/viewport-tool.d.ts.map +1 -0
  120. package/lib/features/viewport/viewport-tool.js +67 -0
  121. package/lib/features/viewport/viewport-tool.js.map +1 -0
  122. package/lib/features/viewport/zoom-viewport-action.d.ts +50 -0
  123. package/lib/features/viewport/zoom-viewport-action.d.ts.map +1 -0
  124. package/lib/features/viewport/zoom-viewport-action.js +36 -0
  125. package/lib/features/viewport/zoom-viewport-action.js.map +1 -0
  126. package/lib/index.d.ts +13 -11
  127. package/lib/index.d.ts.map +1 -1
  128. package/lib/index.js +13 -11
  129. package/lib/index.js.map +1 -1
  130. package/lib/standalone-modules.d.ts +1 -1
  131. package/lib/standalone-modules.d.ts.map +1 -1
  132. package/lib/standalone-modules.js +4 -0
  133. package/lib/standalone-modules.js.map +1 -1
  134. package/lib/utils/viewpoint-util.js +2 -2
  135. package/lib/utils/viewpoint-util.js.map +1 -1
  136. package/package.json +3 -3
  137. package/src/base/default.module.ts +4 -0
  138. package/src/{features/accessibility/key-shortcut/accessible-key-shortcut.ts → base/shortcuts/available-shortcuts-extension.ts} +13 -46
  139. package/src/{features/accessibility/key-shortcut/accessible-key-shortcut-tool.ts → base/shortcuts/available-shortcuts-tool.ts} +9 -15
  140. package/src/base/shortcuts/shortcuts-manager.ts +64 -0
  141. package/src/{features/accessibility/resize-key-tool/resize-key-module.ts → base/shortcuts/shortcuts-module.ts} +12 -14
  142. package/src/base/ui-extension/ui-extension.ts +8 -1
  143. package/src/default-modules.ts +3 -1
  144. package/src/features/accessibility/accessibility-module.ts +0 -6
  145. package/src/features/accessibility/element-navigation/diagram-navigation-tool.ts +26 -50
  146. package/src/features/accessibility/global-keylistener-tool.ts +11 -28
  147. package/src/features/accessibility/search/search-tool.ts +15 -33
  148. package/src/features/accessibility/view-key-tools/{zoom-key-tool.ts → grid-cell-zoom-key-tool.ts} +27 -82
  149. package/src/features/accessibility/view-key-tools/view-key-tools-module.ts +7 -7
  150. package/src/features/bounds/bounds-module.ts +6 -0
  151. package/src/features/change-bounds/move-element-action.ts +55 -0
  152. package/src/features/{accessibility/move-zoom/move-handler.ts → change-bounds/move-element-handler.ts} +18 -113
  153. package/src/features/change-bounds/move-element-key-listener.ts +74 -0
  154. package/src/features/change-bounds/resize/resize-default-tool.ts +75 -0
  155. package/src/features/{accessibility/resize-key-tool/resize-key-handler.ts → change-bounds/resize/resize-handler.ts} +10 -19
  156. package/src/features/change-bounds/resize/resize-module.ts +48 -0
  157. package/src/features/change-bounds/resize/resize-tool.ts +114 -0
  158. package/src/features/grid/grid-module.ts +2 -1
  159. package/src/features/grid/grid-snapper.ts +2 -2
  160. package/src/features/grid/grid.ts +3 -0
  161. package/src/features/tools/base-tools.ts +12 -6
  162. package/src/features/tools/change-bounds/change-bounds-tool.ts +25 -1
  163. package/src/features/viewport/viewport-handler.ts +121 -1
  164. package/src/features/viewport/viewport-key-listener.ts +121 -0
  165. package/src/features/viewport/viewport-modules.ts +15 -1
  166. package/src/features/viewport/viewport-tool.ts +54 -0
  167. package/src/features/viewport/zoom-viewport-action.ts +54 -0
  168. package/src/index.ts +13 -11
  169. package/src/standalone-modules.ts +4 -0
  170. package/src/utils/viewpoint-util.ts +2 -2
  171. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut-tool.d.ts.map +0 -1
  172. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut-tool.js.map +0 -1
  173. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.d.ts.map +0 -1
  174. package/lib/features/accessibility/key-shortcut/accessible-key-shortcut.js.map +0 -1
  175. package/lib/features/accessibility/key-shortcut/shortcut-help-module.d.ts +0 -26
  176. package/lib/features/accessibility/key-shortcut/shortcut-help-module.d.ts.map +0 -1
  177. package/lib/features/accessibility/key-shortcut/shortcut-help-module.js +0 -37
  178. package/lib/features/accessibility/key-shortcut/shortcut-help-module.js.map +0 -1
  179. package/lib/features/accessibility/move-zoom/move-handler.d.ts +0 -97
  180. package/lib/features/accessibility/move-zoom/move-handler.d.ts.map +0 -1
  181. package/lib/features/accessibility/move-zoom/move-handler.js.map +0 -1
  182. package/lib/features/accessibility/move-zoom/move-zoom-module.d.ts.map +0 -1
  183. package/lib/features/accessibility/move-zoom/move-zoom-module.js +0 -40
  184. package/lib/features/accessibility/move-zoom/move-zoom-module.js.map +0 -1
  185. package/lib/features/accessibility/move-zoom/zoom-handler.d.ts +0 -73
  186. package/lib/features/accessibility/move-zoom/zoom-handler.d.ts.map +0 -1
  187. package/lib/features/accessibility/move-zoom/zoom-handler.js +0 -157
  188. package/lib/features/accessibility/move-zoom/zoom-handler.js.map +0 -1
  189. package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts.map +0 -1
  190. package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +0 -1
  191. package/lib/features/accessibility/resize-key-tool/resize-key-module.d.ts.map +0 -1
  192. package/lib/features/accessibility/resize-key-tool/resize-key-module.js.map +0 -1
  193. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts +0 -47
  194. package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts.map +0 -1
  195. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js +0 -154
  196. package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +0 -1
  197. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +0 -53
  198. package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +0 -1
  199. package/lib/features/accessibility/view-key-tools/movement-key-tool.js +0 -156
  200. package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +0 -1
  201. package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts.map +0 -1
  202. package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +0 -1
  203. package/src/features/accessibility/key-shortcut/shortcut-help-module.ts +0 -42
  204. package/src/features/accessibility/move-zoom/move-zoom-module.ts +0 -44
  205. package/src/features/accessibility/move-zoom/zoom-handler.ts +0 -182
  206. package/src/features/accessibility/resize-key-tool/resize-key-tool.ts +0 -139
  207. package/src/features/accessibility/view-key-tools/movement-key-tool.ts +0 -135
@@ -31,6 +31,7 @@ import {
31
31
  GModelElement,
32
32
  GModelRoot,
33
33
  GParentElement,
34
+ KeyListener,
34
35
  MouseListener,
35
36
  Operation,
36
37
  Point,
@@ -40,6 +41,7 @@ import {
40
41
  import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
41
42
  import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
42
43
  import { ISelectionListener, SelectionService } from '../../../base/selection-service';
44
+ import type { IShortcutManager } from '../../../base/shortcuts/shortcuts-manager';
43
45
  import {
44
46
  BoundsAwareModelElement,
45
47
  ResizableModelElement,
@@ -52,7 +54,9 @@ import {
52
54
  import { LocalRequestBoundsAction } from '../../bounds/local-bounds';
53
55
  import { SetBoundsFeedbackAction } from '../../bounds/set-bounds-feedback-command';
54
56
  import { GResizeHandle, isResizable } from '../../change-bounds/model';
57
+ import { MoveElementKeyListener } from '../../change-bounds/move-element-key-listener';
55
58
  import { IMovementRestrictor } from '../../change-bounds/movement-restrictor';
59
+ import { Grid } from '../../grid/grid';
56
60
  import { BaseEditTool } from '../base-tools';
57
61
  import { CSS_ACTIVE_HANDLE, IChangeBoundsManager } from './change-bounds-manager';
58
62
  import {
@@ -84,12 +88,15 @@ export interface IMovementOptions {
84
88
  @injectable()
85
89
  export class ChangeBoundsTool extends BaseEditTool {
86
90
  static ID = 'glsp.change-bounds-tool';
91
+ static TOKEN = Symbol.for(ChangeBoundsTool.ID);
87
92
 
88
93
  @inject(SelectionService) protected selectionService: SelectionService;
89
94
  @inject(EdgeRouterRegistry) @optional() readonly edgeRouterRegistry?: EdgeRouterRegistry;
90
95
  @inject(TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor;
91
96
  @inject(TYPES.IChangeBoundsManager) readonly changeBoundsManager: IChangeBoundsManager;
92
97
  @inject(TYPES.IMovementOptions) @optional() readonly movementOptions: IMovementOptions = { allElementsNeedToBeValid: true };
98
+ @inject(TYPES.Grid) @optional() readonly grid?: Grid;
99
+ @inject(TYPES.IShortcutManager) protected readonly shortcutManager: IShortcutManager;
93
100
 
94
101
  get id(): string {
95
102
  return ChangeBoundsTool.ID;
@@ -106,12 +113,25 @@ export class ChangeBoundsTool extends BaseEditTool {
106
113
  this.toDisposeOnDisable.push(this.selectionService.addListener(feedbackMoveMouseListener));
107
114
  }
108
115
 
116
+ // install move key listener for client-side move updates
117
+ const createMoveKeyListener = this.createMoveKeyListener();
118
+ this.toDisposeOnDisable.push(
119
+ this.keyTool.registerListener(createMoveKeyListener),
120
+ this.shortcutManager.register(ChangeBoundsTool.TOKEN, [
121
+ { shortcuts: ['⬅ ⬆ ➡ ⬇'], description: 'Move element', group: 'Move', position: 0 }
122
+ ])
123
+ );
124
+ if (Disposable.is(createMoveKeyListener)) {
125
+ this.toDisposeOnDisable.push(createMoveKeyListener);
126
+ }
127
+
109
128
  // install change bounds listener for client-side resize updates and server-side updates
110
129
  const changeBoundsListener = this.createChangeBoundsListener();
111
130
  this.toDisposeOnDisable.push(this.mouseTool.registerListener(changeBoundsListener));
112
131
  if (Disposable.is(changeBoundsListener)) {
113
132
  this.toDisposeOnDisable.push(changeBoundsListener);
114
133
  }
134
+
115
135
  if (ISelectionListener.is(changeBoundsListener)) {
116
136
  this.toDisposeOnDisable.push(this.selectionService.addListener(changeBoundsListener));
117
137
  }
@@ -125,7 +145,11 @@ export class ChangeBoundsTool extends BaseEditTool {
125
145
  return new FeedbackMoveMouseListener(this);
126
146
  }
127
147
 
128
- protected createChangeBoundsListener(): MouseListener {
148
+ protected createMoveKeyListener(): KeyListener {
149
+ return new MoveElementKeyListener(this.selectionService, this.changeBoundsManager, this.grid);
150
+ }
151
+
152
+ protected createChangeBoundsListener(): MouseListener & ISelectionListener {
129
153
  return new ChangeBoundsListener(this);
130
154
  }
131
155
  }
@@ -13,13 +13,32 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, DOMHelper, IActionHandler, TYPES } from '@eclipse-glsp/sprotty';
16
+ import {
17
+ Action,
18
+ Bounds,
19
+ DOMHelper,
20
+ findParentByFeature,
21
+ GChildElement,
22
+ GModelElement,
23
+ GModelRoot,
24
+ IActionDispatcher,
25
+ IActionHandler,
26
+ ICommand,
27
+ isViewport,
28
+ MoveViewportAction,
29
+ Point,
30
+ SetViewportAction,
31
+ TYPES,
32
+ Viewport
33
+ } from '@eclipse-glsp/sprotty';
17
34
  import { inject, injectable } from 'inversify';
18
35
  import { EditorContextService } from '../../base/editor-context-service';
19
36
  import { FocusTracker } from '../../base/focus/focus-tracker';
20
37
  import { IDiagramStartup } from '../../base/model/diagram-loader';
21
38
  import { EnableDefaultToolsAction } from '../../base/tool-manager/tool';
39
+ import { getElements, isSelectableAndBoundsAware, SelectableBoundsAware } from '../../utils/gmodel-util';
22
40
  import { FocusDomAction } from '../accessibility/actions';
41
+ import { ZoomAction } from './zoom-viewport-action';
23
42
 
24
43
  /**
25
44
  * Focuses the graph on different actions.
@@ -78,3 +97,104 @@ export class RestoreViewportHandler implements IActionHandler, IDiagramStartup {
78
97
  });
79
98
  }
80
99
  }
100
+
101
+ /**
102
+ * Handles moving the viewport.
103
+ */
104
+ @injectable()
105
+ export class MoveViewportHandler implements IActionHandler {
106
+ @inject(EditorContextService)
107
+ protected readonly editorContextService: EditorContextService;
108
+
109
+ handle(action: MoveViewportAction): void | Action | ICommand {
110
+ return this.handleMoveViewport(action);
111
+ }
112
+
113
+ protected handleMoveViewport(action: MoveViewportAction): Action | undefined {
114
+ const viewport = findParentByFeature(this.editorContextService.modelRoot, isViewport);
115
+ if (!viewport) {
116
+ return;
117
+ }
118
+ const newViewport: Viewport = {
119
+ scroll: {
120
+ x: viewport.scroll.x + action.moveX,
121
+ y: viewport.scroll.y + action.moveY
122
+ },
123
+ zoom: viewport.zoom
124
+ };
125
+
126
+ return SetViewportAction.create(viewport.id, newViewport, { animate: false });
127
+ }
128
+ }
129
+
130
+ /*
131
+ * Handles zooming in and out of the viewport.
132
+ */
133
+ @injectable()
134
+ export class ZoomHandler implements IActionHandler {
135
+ @inject(EditorContextService)
136
+ protected readonly editorContextService: EditorContextService;
137
+ @inject(TYPES.IActionDispatcher)
138
+ protected readonly actionDispatcher: IActionDispatcher;
139
+
140
+ handle(action: ZoomAction): Action | void {
141
+ if (action.elementIds) {
142
+ return this.handleZoomElement(action.elementIds, action.zoomFactor);
143
+ } else {
144
+ return this.handleZoomViewport(action.zoomFactor);
145
+ }
146
+ }
147
+
148
+ protected handleZoomViewport(zoomFactor: number): Action | undefined {
149
+ const viewport = findParentByFeature(this.editorContextService.modelRoot, isViewport);
150
+ if (!viewport) {
151
+ return;
152
+ }
153
+
154
+ const newZoom = viewport.zoom * zoomFactor;
155
+
156
+ const newViewport = {
157
+ scroll: viewport.scroll,
158
+ zoom: newZoom
159
+ };
160
+
161
+ return SetViewportAction.create(viewport.id, newViewport, { animate: false });
162
+ }
163
+
164
+ protected handleZoomElement(elementIds: string[], zoomFactor: number): Action | undefined {
165
+ const viewport = findParentByFeature(this.editorContextService.modelRoot, isViewport);
166
+ if (!viewport) {
167
+ return;
168
+ }
169
+
170
+ const elements = getElements(this.editorContextService.modelRoot.index, elementIds, isSelectableAndBoundsAware);
171
+ const center = this.getCenter(viewport, elements);
172
+
173
+ const newZoom = viewport.zoom * zoomFactor;
174
+
175
+ const newViewport = {
176
+ scroll: {
177
+ x: center.x - (0.5 * viewport.canvasBounds.width) / newZoom,
178
+ y: center.y - (0.5 * viewport.canvasBounds.height) / newZoom
179
+ },
180
+ zoom: newZoom
181
+ };
182
+
183
+ return SetViewportAction.create(viewport.id, newViewport, { animate: false });
184
+ }
185
+
186
+ protected getCenter(viewport: GModelRoot & Viewport, selectedElements: SelectableBoundsAware[]): Point {
187
+ // Get bounds of elements based on the viewport
188
+ const allBounds = selectedElements.map(e => this.boundsInViewport(viewport, e, e.bounds));
189
+ const mergedBounds = allBounds.reduce((b0, b1) => Bounds.combine(b0, b1));
190
+ return Bounds.center(mergedBounds);
191
+ }
192
+
193
+ protected boundsInViewport(viewport: GModelRoot & Viewport, element: GModelElement, bounds: Bounds): Bounds {
194
+ if (element instanceof GChildElement && element.parent !== viewport) {
195
+ return this.boundsInViewport(viewport, element.parent, element.parent.localToParent(bounds) as Bounds);
196
+ } else {
197
+ return bounds;
198
+ }
199
+ }
200
+ }
@@ -0,0 +1,121 @@
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, CenterAction, GModelElement, KeyListener, matchesKeystroke, MoveViewportAction, TYPES } from '@eclipse-glsp/sprotty';
18
+ import { inject, injectable, optional } from 'inversify';
19
+ import { SelectionService } from '../../base/selection-service';
20
+ import { Grid } from '../grid/grid';
21
+ import { IChangeBoundsManager } from '../tools/change-bounds/change-bounds-manager';
22
+ import { ZoomAction, ZoomFactors } from './zoom-viewport-action';
23
+
24
+ @injectable()
25
+ export class MoveViewportKeyListener extends KeyListener {
26
+ @inject(SelectionService)
27
+ protected readonly selectionService: SelectionService;
28
+ @inject(TYPES.IChangeBoundsManager)
29
+ protected readonly changeBoundsManager: IChangeBoundsManager;
30
+ @inject(TYPES.Grid)
31
+ @optional()
32
+ protected readonly grid = Grid.DEFAULT;
33
+
34
+ override keyDown(_element: GModelElement, event: KeyboardEvent): Action[] {
35
+ const selectedElementIds = this.selectionService.getSelectedElementIDs();
36
+ const snap = this.changeBoundsManager.usePositionSnap(event);
37
+ const offsetX = snap ? this.grid.x : 1;
38
+ const offsetY = snap ? this.grid.y : 1;
39
+
40
+ if (selectedElementIds.length === 0) {
41
+ if (this.matchesMoveUpKeystroke(event)) {
42
+ return [MoveViewportAction.create({ moveX: 0, moveY: -offsetY })];
43
+ } else if (this.matchesMoveDownKeystroke(event)) {
44
+ return [MoveViewportAction.create({ moveX: 0, moveY: offsetY })];
45
+ } else if (this.matchesMoveRightKeystroke(event)) {
46
+ return [MoveViewportAction.create({ moveX: offsetX, moveY: 0 })];
47
+ } else if (this.matchesMoveLeftKeystroke(event)) {
48
+ return [MoveViewportAction.create({ moveX: -offsetX, moveY: 0 })];
49
+ }
50
+ }
51
+ return [];
52
+ }
53
+
54
+ protected matchesMoveUpKeystroke(event: KeyboardEvent): boolean {
55
+ return matchesKeystroke(event, 'ArrowUp');
56
+ }
57
+
58
+ protected matchesMoveDownKeystroke(event: KeyboardEvent): boolean {
59
+ return matchesKeystroke(event, 'ArrowDown');
60
+ }
61
+
62
+ protected matchesMoveRightKeystroke(event: KeyboardEvent): boolean {
63
+ return matchesKeystroke(event, 'ArrowRight');
64
+ }
65
+
66
+ protected matchesMoveLeftKeystroke(event: KeyboardEvent): boolean {
67
+ return matchesKeystroke(event, 'ArrowLeft');
68
+ }
69
+ }
70
+
71
+ @injectable()
72
+ export class ZoomKeyListener extends KeyListener {
73
+ @inject(SelectionService)
74
+ protected readonly selectionService: SelectionService;
75
+
76
+ override keyDown(element: GModelElement, event: KeyboardEvent): Action[] {
77
+ const selectedElementIds = this.selectionService.getSelectedElementIDs();
78
+
79
+ if (selectedElementIds.length === 0) {
80
+ if (this.matchesZoomOutKeystroke(event)) {
81
+ return [ZoomAction.create({ zoomFactor: ZoomFactors.DEFAULT.out })];
82
+ } else if (this.matchesZoomInKeystroke(event)) {
83
+ return [ZoomAction.create({ zoomFactor: ZoomFactors.DEFAULT.in })];
84
+ } else if (this.matchesMinZoomLevelKeystroke(event)) {
85
+ return [CenterAction.create(selectedElementIds)];
86
+ }
87
+ } else {
88
+ if (this.matchesZoomOutKeystroke(event)) {
89
+ if (selectedElementIds.length > 0) {
90
+ return [
91
+ ZoomAction.create({
92
+ elementIds: selectedElementIds,
93
+ zoomFactor: ZoomFactors.DEFAULT.out
94
+ })
95
+ ];
96
+ }
97
+ } else if (this.matchesZoomInKeystroke(event)) {
98
+ if (selectedElementIds.length > 0) {
99
+ return [ZoomAction.create({ elementIds: selectedElementIds, zoomFactor: ZoomFactors.DEFAULT.in })];
100
+ }
101
+ } else if (this.matchesMinZoomLevelKeystroke(event)) {
102
+ return [CenterAction.create(selectedElementIds)];
103
+ }
104
+ }
105
+
106
+ return [];
107
+ }
108
+
109
+ protected matchesZoomInKeystroke(event: KeyboardEvent): boolean {
110
+ /** here event.key is used for '+', as keycode 187 is already declared for 'Equals' in {@link matchesKeystroke}.*/
111
+ return !event.ctrlKey && (event.key === '+' || matchesKeystroke(event, 'NumpadAdd'));
112
+ }
113
+
114
+ protected matchesMinZoomLevelKeystroke(event: KeyboardEvent): boolean {
115
+ return matchesKeystroke(event, 'Digit0', 'ctrl') || matchesKeystroke(event, 'Numpad0', 'ctrl');
116
+ }
117
+
118
+ protected matchesZoomOutKeystroke(event: KeyboardEvent): boolean {
119
+ return !event.ctrlKey && (matchesKeystroke(event, 'Minus') || matchesKeystroke(event, 'NumpadSubtract'));
120
+ }
121
+ }
@@ -22,6 +22,7 @@ import {
22
22
  FeatureModule,
23
23
  FitToScreenCommand,
24
24
  GetViewportCommand,
25
+ MoveViewportAction,
25
26
  SetViewportCommand,
26
27
  TYPES,
27
28
  ZoomMouseListener
@@ -31,7 +32,10 @@ import { FocusDomAction } from '../accessibility/actions';
31
32
  import { GLSPScrollMouseListener } from './glsp-scroll-mouse-listener';
32
33
  import { OriginViewportCommand } from './origin-viewport';
33
34
  import { RepositionCommand } from './reposition';
34
- import { RestoreViewportHandler } from './viewport-handler';
35
+ import { MoveViewportHandler, RestoreViewportHandler, ZoomHandler } from './viewport-handler';
36
+ import { MoveViewportKeyListener, ZoomKeyListener } from './viewport-key-listener';
37
+ import { ViewportKeyTool } from './viewport-tool';
38
+ import { ZoomAction, ZoomFactors } from './zoom-viewport-action';
35
39
 
36
40
  export const viewportModule = new FeatureModule(
37
41
  (bind, _unbind, isBound) => {
@@ -52,6 +56,16 @@ export const viewportModule = new FeatureModule(
52
56
  bindAsService(context, TYPES.IDiagramStartup, RestoreViewportHandler);
53
57
  configureActionHandler(context, EnableDefaultToolsAction.KIND, RestoreViewportHandler);
54
58
  configureActionHandler(context, FocusDomAction.KIND, RestoreViewportHandler);
59
+
60
+ bind(TYPES.ZoomFactors).toConstantValue(ZoomFactors.DEFAULT);
61
+
62
+ bindAsService(context, TYPES.IDefaultTool, ViewportKeyTool);
63
+ bind(MoveViewportHandler).toSelf().inSingletonScope();
64
+ bind(MoveViewportKeyListener).toSelf();
65
+ configureActionHandler(context, MoveViewportAction.KIND, MoveViewportHandler);
66
+ bind(ZoomHandler).toSelf().inSingletonScope();
67
+ bind(ZoomKeyListener).toSelf();
68
+ configureActionHandler(context, ZoomAction.KIND, ZoomHandler);
55
69
  },
56
70
  { featureId: Symbol('viewport') }
57
71
  );
@@ -0,0 +1,54 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2025 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 { TYPES } from '@eclipse-glsp/sprotty';
18
+ import { inject, injectable } from 'inversify';
19
+ import type { IShortcutManager } from '../../base/shortcuts/shortcuts-manager';
20
+ import { BaseTool } from '../tools/base-tools';
21
+ import { MoveViewportKeyListener, ZoomKeyListener } from './viewport-key-listener';
22
+
23
+ /**
24
+ * This only handles keyboard events for the viewport.
25
+ * Mouse specific events are handled directly by MouseListeners without any tool.
26
+ */
27
+ @injectable()
28
+ export class ViewportKeyTool extends BaseTool {
29
+ static readonly ID = 'glsp.viewport-key-tool';
30
+ static readonly TOKEN = Symbol.for(ViewportKeyTool.ID);
31
+
32
+ get id(): string {
33
+ return ViewportKeyTool.ID;
34
+ }
35
+
36
+ @inject(TYPES.IShortcutManager)
37
+ protected readonly shortcutManager: IShortcutManager;
38
+ @inject(ZoomKeyListener)
39
+ protected readonly zoomKeyListener: ZoomKeyListener;
40
+ @inject(MoveViewportKeyListener)
41
+ protected readonly moveKeyListener: MoveViewportKeyListener;
42
+
43
+ enable(): void {
44
+ this.toDisposeOnDisable.push(
45
+ this.keyTool.registerListener(this.moveKeyListener),
46
+ this.keyTool.registerListener(this.zoomKeyListener),
47
+ this.shortcutManager.register(ViewportKeyTool.TOKEN, [
48
+ { shortcuts: ['⬅ ⬆ ➡ ⬇'], description: 'Move viewport', group: 'Move', position: 0 },
49
+ { shortcuts: ['+ -'], description: 'Zoom viewport', group: 'Zoom', position: 0 },
50
+ { shortcuts: ['+ -'], description: 'Zoom element', group: 'Zoom', position: 0 }
51
+ ])
52
+ );
53
+ }
54
+ }
@@ -0,0 +1,54 @@
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 } from '@eclipse-glsp/sprotty';
18
+
19
+ export interface ZoomFactors {
20
+ in: number;
21
+ out: number;
22
+ }
23
+
24
+ export namespace ZoomFactors {
25
+ export const DEFAULT = { in: 1.2, out: 0.8 };
26
+ }
27
+
28
+ /**
29
+ * Zooms the diagram canvas.
30
+ * If `elementIds` is provided, the zoom is centered on the elements with the given identifiers.
31
+ */
32
+ export interface ZoomAction extends Action {
33
+ kind: typeof ZoomAction.KIND;
34
+ /**
35
+ * Specifies the elements to be zoomed in/out
36
+ */
37
+ elementIds?: string[];
38
+ /**
39
+ * Specifies the amount by which the viewport should be zoomed
40
+ */
41
+ zoomFactor: number;
42
+ }
43
+
44
+ export namespace ZoomAction {
45
+ export const KIND = 'zoom';
46
+
47
+ export function is(object: any): object is ZoomAction {
48
+ return Action.hasKind(object, KIND);
49
+ }
50
+
51
+ export function create(options: { elementIds?: string[]; zoomFactor: number }): ZoomAction {
52
+ return { kind: KIND, ...options };
53
+ }
54
+ }
package/src/index.ts CHANGED
@@ -41,6 +41,10 @@ export * from './base/mouse-position-tracker';
41
41
  export * from './base/ranked';
42
42
  export * from './base/selection-clearing-mouse-listener';
43
43
  export * from './base/selection-service';
44
+ export * from './base/shortcuts/available-shortcuts-extension';
45
+ export * from './base/shortcuts/available-shortcuts-tool';
46
+ export * from './base/shortcuts/shortcuts-manager';
47
+ export * from './base/shortcuts/shortcuts-module';
44
48
  export * from './base/tool-manager/tool';
45
49
  export * from './base/tool-manager/tool-manager';
46
50
  export * from './base/ui-extension/ui-extension';
@@ -64,9 +68,6 @@ export * from './features/accessibility/element-navigation/position-navigator';
64
68
  export * from './features/accessibility/focus-tracker/focus-tracker-module';
65
69
  export * from './features/accessibility/focus-tracker/focus-tracker-tool';
66
70
  export * from './features/accessibility/global-keylistener-tool';
67
- export * from './features/accessibility/key-shortcut/accessible-key-shortcut';
68
- export * from './features/accessibility/key-shortcut/accessible-key-shortcut-tool';
69
- export * from './features/accessibility/key-shortcut/shortcut-help-module';
70
71
  export * from './features/accessibility/keyboard-grid/action';
71
72
  export * from './features/accessibility/keyboard-grid/constants';
72
73
  export * from './features/accessibility/keyboard-grid/keyboard-grid';
@@ -80,12 +81,6 @@ export * from './features/accessibility/keyboard-pointer/keyboard-pointer-module
80
81
  export * from './features/accessibility/keyboard-pointer/keyboard-pointer-position';
81
82
  export * from './features/accessibility/keyboard-tool-palette/keyboard-tool-palette';
82
83
  export * from './features/accessibility/keyboard-tool-palette/keyboard-tool-palette-module';
83
- export * from './features/accessibility/move-zoom/move-handler';
84
- export * from './features/accessibility/move-zoom/move-zoom-module';
85
- export * from './features/accessibility/move-zoom/zoom-handler';
86
- export * from './features/accessibility/resize-key-tool/resize-key-handler';
87
- export * from './features/accessibility/resize-key-tool/resize-key-module';
88
- export * from './features/accessibility/resize-key-tool/resize-key-tool';
89
84
  export * from './features/accessibility/search/search-palette';
90
85
  export * from './features/accessibility/search/search-palette-module';
91
86
  export * from './features/accessibility/search/search-tool';
@@ -93,9 +88,8 @@ export * from './features/accessibility/toast/toast-handler';
93
88
  export * from './features/accessibility/toast/toast-module';
94
89
  export * from './features/accessibility/toast/toast-tool';
95
90
  export * from './features/accessibility/view-key-tools/deselect-key-tool';
96
- export * from './features/accessibility/view-key-tools/movement-key-tool';
91
+ export * from './features/accessibility/view-key-tools/grid-cell-zoom-key-tool';
97
92
  export * from './features/accessibility/view-key-tools/view-key-tools-module';
98
- export * from './features/accessibility/view-key-tools/zoom-key-tool';
99
93
  export * from './features/bounds/bounds-module';
100
94
  export * from './features/bounds/freeform-layout';
101
95
  export * from './features/bounds/glsp-hidden-bounds-updater';
@@ -106,9 +100,15 @@ export * from './features/bounds/local-bounds';
106
100
  export * from './features/bounds/set-bounds-feedback-command';
107
101
  export * from './features/bounds/vbox-layout';
108
102
  export * from './features/change-bounds/model';
103
+ export * from './features/change-bounds/move-element-action';
104
+ export * from './features/change-bounds/move-element-handler';
109
105
  export * from './features/change-bounds/movement-restrictor';
110
106
  export * from './features/change-bounds/point-position-updater';
111
107
  export * from './features/change-bounds/position-snapper';
108
+ export * from './features/change-bounds/resize/resize-default-tool';
109
+ export * from './features/change-bounds/resize/resize-handler';
110
+ export * from './features/change-bounds/resize/resize-module';
111
+ export * from './features/change-bounds/resize/resize-tool';
112
112
  export * from './features/change-bounds/snap';
113
113
  export * from './features/change-bounds/tracker';
114
114
  export * from './features/command-palette/command-palette';
@@ -219,7 +219,9 @@ export * from './features/viewport/glsp-scroll-mouse-listener';
219
219
  export * from './features/viewport/origin-viewport';
220
220
  export * from './features/viewport/reposition';
221
221
  export * from './features/viewport/viewport-handler';
222
+ export * from './features/viewport/viewport-key-listener';
222
223
  export * from './features/viewport/viewport-modules';
224
+ export * from './features/viewport/zoom-viewport-action';
223
225
  export * from './model';
224
226
  export * from './re-exports';
225
227
  export * from './standalone-modules';
@@ -34,6 +34,8 @@ import {
34
34
  matchesKeystroke
35
35
  } from '@eclipse-glsp/sprotty';
36
36
  import { inject, injectable } from 'inversify';
37
+ import { standaloneShortcutsModule } from './base/shortcuts/shortcuts-module';
38
+ import { standaloneResizeModule } from './features/change-bounds/resize/resize-module';
37
39
  import { standaloneCopyPasteModule } from './features/copy-paste/copy-paste-modules';
38
40
  import { standaloneExportModule } from './features/export/export-modules';
39
41
  import { saveModule } from './features/save/save-module';
@@ -97,6 +99,8 @@ export const STANDALONE_MODULES = [
97
99
  standaloneSelectModule,
98
100
  standaloneExportModule,
99
101
  standaloneDefaultModule,
102
+ standaloneShortcutsModule,
103
+ standaloneResizeModule,
100
104
  saveModule,
101
105
  undoRedoModule
102
106
  ] as const;
@@ -140,8 +140,8 @@ export function absoluteToLocal(element: BoundsAwareModelElement, absolutePoint:
140
140
  export function outsideOfViewport(point: Point, viewport: GModelRoot & Viewport): boolean {
141
141
  return (
142
142
  point.x < viewport.scroll.x ||
143
- point.x > viewport.scroll.x + viewport.canvasBounds.width ||
143
+ point.x > viewport.scroll.x + viewport.canvasBounds.width / viewport.zoom ||
144
144
  point.y < viewport.scroll.y ||
145
- point.y > viewport.scroll.y + viewport.canvasBounds.height
145
+ point.y > viewport.scroll.y + viewport.canvasBounds.height / viewport.zoom
146
146
  );
147
147
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessible-key-shortcut-tool.d.ts","sourceRoot":"","sources":["../../../../src/features/accessibility/key-shortcut/accessible-key-shortcut-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAGlF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAoD,MAAM,uBAAuB,CAAC;AACtI,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,qBACa,yBAA0B,SAAQ,YAAY;IACvD,MAAM,CAAC,EAAE,SAAkC;IAE1B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAErD,SAAS,CAAC,mBAAmB,gCAAuC;IAEpE,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,MAAM,IAAI,IAAI;IAIL,OAAO,IAAI,IAAI;CAG3B;AAED,qBAAa,6BAA8B,SAAQ,WAAW;IAC1D,SAAS,CAAC,QAAQ,CAAC,KAAK,SAA8C;IAC7D,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE;IAOxE,SAAS,CAAC,oCAAoC,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;CAGhF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessible-key-shortcut-tool.js","sourceRoot":"","sources":["../../../../src/features/accessibility/key-shortcut/accessible-key-shortcut-tool.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;;AAElF,yCAA+C;AAC/C,mDAAsI;AACtI,uDAAsD;AACtD,uEAAmE;AAG5D,IAAM,yBAAyB,iCAA/B,MAAM,yBAA0B,SAAQ,yBAAY;IAApD;;QAKO,wBAAmB,GAAG,IAAI,6BAA6B,EAAE,CAAC;IAaxE,CAAC;IAXG,IAAI,EAAE;QACF,OAAO,2BAAyB,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,MAAM;QACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAEQ,OAAO;QACZ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACtD,CAAC;;AAjBQ,8DAAyB;AAC3B,4BAAE,GAAG,8BAA8B,AAAjC,CAAkC;AAEP;IAAnC,IAAA,kBAAM,EAAC,iBAAO,CAAC;8BAA6B,iBAAO;0DAAC;oCAH5C,yBAAyB;IADrC,IAAA,sBAAU,GAAE;GACA,yBAAyB,CAkBrC;AAED,MAAa,6BAA8B,SAAQ,qBAAW;IAA9D;;QACuB,UAAK,GAAG,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;IAW1E,CAAC;IAVY,OAAO,CAAC,OAAsB,EAAE,KAAoB;QACzD,IAAI,IAAI,CAAC,oCAAoC,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,wCAA8B,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gDAAsB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAES,oCAAoC,CAAC,KAAoB;QAC/D,OAAO,IAAA,0BAAgB,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;CACJ;AAZD,sEAYC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessible-key-shortcut.d.ts","sourceRoot":"","sources":["../../../../src/features/accessibility/key-shortcut/accessible-key-shortcut.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AAGvG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF,MAAM,WAAW,6BAA6B;IAC1C,mBAAmB,IAAI,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,8BAA+B,SAAQ,MAAM;IAC1D,IAAI,EAAE,OAAO,8BAA8B,CAAC,IAAI,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAED,yBAAiB,8BAA8B,CAAC;IACrC,MAAM,IAAI,6BAA6B,CAAC;IAE/C,SAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,8BAA8B,CAExE;IAED,SAAgB,MAAM,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,qBAAqB,EAAE,CAAA;KAAE,GAAG,8BAA8B,CAEhH;CACJ;AAED,qBACa,sBAAuB,SAAQ,uBAAwB,YAAW,cAAc;IACzF,MAAM,CAAC,QAAQ,CAAC,EAAE,kBAAkB;IACpC,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC;IACpC,SAAS,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC7C,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAM;IAEtE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI;IAQhD,EAAE,IAAI,MAAM;IAIZ,cAAc,IAAI,MAAM;IAIf,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI;IAK/E,SAAS,CAAC,SAAS,IAAI,IAAI;IAgD3B,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAcvD,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,WAAW;IAO3D,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,qBAAqB,GAAG,cAAc;IAe1E,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI;CAmCpE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessible-key-shortcut.js","sourceRoot":"","sources":["../../../../src/features/accessibility/key-shortcut/accessible-key-shortcut.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /********************************************************************************
2
- * Copyright (c) 2023-2024 Business Informatics Group (TU Wien) 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 { BindingContext, FeatureModule } from '@eclipse-glsp/sprotty';
17
- import '../../../../css/key-shortcut.css';
18
- /**
19
- * Handles actions for displaying help/information about keyboard shortcuts.
20
- */
21
- export declare const shortcutHelpModule: FeatureModule;
22
- export declare function configureShortcutHelpTool(context: BindingContext): void;
23
- export {
24
- /** Deprecated use {@link shortcutHelpModule} instead */
25
- shortcutHelpModule as glspShortcutHelpModule };
26
- //# sourceMappingURL=shortcut-help-module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shortcut-help-module.d.ts","sourceRoot":"","sources":["../../../../src/features/accessibility/key-shortcut/shortcut-help-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAiB,cAAc,EAA0B,aAAa,EAAS,MAAM,uBAAuB,CAAC;AACpH,OAAO,kCAAkC,CAAC;AAI1C;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAM9B,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAIvE;AAED,OAAO;AACH,wDAAwD;AACxD,kBAAkB,IAAI,sBAAsB,EAC/C,CAAC"}