@eclipse-glsp/client 0.9.0 → 0.10.0-next.15853de.178
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.
- package/css/decoration.css +5 -1
- package/css/glsp-sprotty.css +149 -8
- package/css/tool-palette.css +2 -2
- package/lib/base/action-dispatcher.d.ts +4 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +22 -12
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +16 -7
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +31 -12
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/actions/sprotty-actions.d.ts +7 -0
- package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
- package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
- package/lib/base/actions/sprotty-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +24 -5
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +16 -9
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +2 -2
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +6 -5
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts.map +1 -1
- package/lib/base/container-modules.js +2 -1
- package/lib/base/container-modules.js.map +1 -1
- package/lib/base/di.config.d.ts +1 -1
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +13 -14
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +15 -4
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +31 -19
- package/lib/base/editor-context-service.js.map +1 -1
- package/lib/base/focus-tracker.d.ts +1 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +4 -4
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.d.ts.map +1 -1
- package/lib/base/model/model-registry.js +2 -2
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +15 -8
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +43 -53
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +4 -5
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +11 -13
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +1 -1
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.d.ts +2 -17
- package/lib/base/source-uri-aware.d.ts.map +1 -1
- package/lib/base/source-uri-aware.js +4 -6
- package/lib/base/source-uri-aware.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/tool-manager/tool-actions.d.ts +14 -0
- package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
- package/lib/base/tool-manager/tool-actions.js +25 -0
- package/lib/base/tool-manager/tool-actions.js.map +1 -0
- package/lib/base/types.d.ts +144 -20
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +14 -26
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts.map +1 -1
- package/lib/base/view/view-registry.js +2 -2
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +1 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +3 -3
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +37 -7
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +55 -40
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +60 -4
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +96 -9
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/change-bounds/snap.spec.d.ts +17 -0
- package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.spec.js +82 -0
- package/lib/features/change-bounds/snap.spec.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +3 -3
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +2 -2
- package/lib/features/command-palette/di.config.d.ts.map +1 -1
- package/lib/features/command-palette/di.config.js +6 -6
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +13 -10
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +4 -4
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +1 -1
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +8 -7
- package/lib/features/context-menu/di.config.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +34 -4
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +37 -31
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +8 -7
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +10 -11
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +5 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +19 -3
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -4
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.d.ts.map +1 -1
- package/lib/features/edit-label/di.config.js +5 -5
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +2 -2
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +11 -13
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +4 -4
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +15 -5
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +29 -26
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +1 -1
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +14 -10
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +16 -4
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +42 -4
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +3 -3
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +10 -7
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +17 -1
- package/lib/features/layout/freeform-layout.d.ts.map +1 -1
- package/lib/features/layout/freeform-layout.js +4 -4
- package/lib/features/layout/freeform-layout.js.map +1 -1
- package/lib/features/layout/hbox-layout.d.ts +41 -0
- package/lib/features/layout/hbox-layout.d.ts.map +1 -0
- package/lib/features/layout/hbox-layout.js +189 -0
- package/lib/features/layout/hbox-layout.js.map +1 -0
- package/lib/features/layout/layout-elements-action.d.ts +198 -0
- package/lib/features/layout/layout-elements-action.d.ts.map +1 -0
- package/lib/features/layout/layout-elements-action.js +391 -0
- package/lib/features/layout/layout-elements-action.js.map +1 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts +3 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -0
- package/lib/features/layout/{layout-commands.spec.js → layout-elements-action.spec.js} +81 -62
- package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
- package/lib/features/layout/vbox-layout.d.ts +17 -1
- package/lib/features/layout/vbox-layout.d.ts.map +1 -1
- package/lib/features/layout/vbox-layout.js +9 -8
- package/lib/features/layout/vbox-layout.js.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +1 -1
- package/lib/features/model-source-watcher/di.config.js.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +11 -11
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/mouse-tool/di.config.d.ts +1 -1
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
- package/lib/features/mouse-tool/di.config.js +2 -2
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +9 -6
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +10 -48
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.js +4 -4
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +52 -68
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +8 -9
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/reconnect/model.d.ts +1 -1
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +1 -1
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +1 -1
- package/lib/features/save/di.config.d.ts.map +1 -1
- package/lib/features/save/di.config.js +3 -3
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/save-keylistener.d.ts +1 -1
- package/lib/features/save/save-keylistener.d.ts.map +1 -1
- package/lib/features/save/save-keylistener.js +3 -3
- package/lib/features/save/save-keylistener.js.map +1 -1
- package/lib/features/select/di.config.d.ts +1 -1
- package/lib/features/select/di.config.d.ts.map +1 -1
- package/lib/features/select/di.config.js +7 -8
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts +26 -22
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +19 -46
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +4 -2
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +63 -1
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +14 -5
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +55 -64
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +28 -25
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +68 -38
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +42 -38
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +1 -1
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +18 -18
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +45 -22
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +147 -114
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +1 -2
- package/lib/features/tool-feedback/model.d.ts.map +1 -1
- package/lib/features/tool-feedback/model.js +1 -1
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +1 -1
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +22 -5
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +1 -1
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +5 -4
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +10 -7
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +39 -32
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +3 -3
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +11 -11
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +7 -9
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +48 -71
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +1 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +17 -17
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +9 -2
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +26 -15
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +28 -21
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +3 -2
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +41 -36
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/{tool-palette/palette-item.d.ts → tools/enable-default-tools-on-focus-loss.d.ts} +11 -11
- package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js +29 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -0
- package/lib/features/tools/marquee-behavior.d.ts +1 -1
- package/lib/features/tools/marquee-behavior.js +2 -2
- package/lib/features/tools/marquee-behavior.js.map +1 -1
- package/lib/features/tools/marquee-behavior.spec.js +63 -63
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +20 -20
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +1 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +4 -4
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +3 -2
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +0 -15
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +1 -1
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +17 -17
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +2 -2
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +0 -15
- package/lib/features/validation/di.config.d.ts.map +1 -1
- package/lib/features/validation/di.config.js +9 -7
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +10 -5
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +12 -4
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +27 -25
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +64 -91
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +23 -37
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +17 -30
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +66 -90
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +1 -1
- package/lib/features/viewport/di.config.d.ts.map +1 -1
- package/lib/features/viewport/di.config.js +7 -7
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +8 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +15 -11
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -2
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +3 -18
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +6 -6
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +8 -7
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/sprotty-reexport.d.ts +174 -0
- package/lib/sprotty-reexport.d.ts.map +1 -0
- package/lib/sprotty-reexport.js +299 -0
- package/lib/sprotty-reexport.js.map +1 -0
- package/lib/utils/argument-utils.js +5 -5
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +6 -22
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +1 -1
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +117 -11
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +142 -37
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -3
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +19 -3
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts.map +1 -1
- package/lib/views/base-view-module.js +21 -19
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.js +2 -2
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -1
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +1 -1
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/glsp-projection-view.d.ts +30 -0
- package/lib/views/glsp-projection-view.d.ts.map +1 -0
- package/lib/views/glsp-projection-view.js +142 -0
- package/lib/views/glsp-projection-view.js.map +1 -0
- package/lib/views/index.d.ts +1 -0
- package/lib/views/index.d.ts.map +1 -1
- package/lib/views/index.js +7 -2
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +3 -3
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +2 -2
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/package.json +8 -18
- package/src/base/action-dispatcher.ts +26 -16
- package/src/base/actions/focus-change-action.ts +25 -8
- package/src/base/actions/sprotty-actions.ts +26 -0
- package/src/base/auto-complete/auto-complete-actions.ts +7 -5
- package/src/base/auto-complete/auto-complete-widget.ts +15 -13
- package/src/base/command-stack.ts +7 -6
- package/src/base/container-modules.ts +4 -3
- package/src/base/di.config.ts +4 -5
- package/src/base/drag-aware-mouse-listener.ts +4 -4
- package/src/base/editor-context-service.ts +32 -12
- package/src/base/focus-tracker.ts +5 -4
- package/src/base/model/model-registry.ts +2 -2
- package/src/base/model/update-model-command.ts +54 -41
- package/src/base/model-initialization-constraint.ts +9 -11
- package/src/base/selection-clearing-mouse-listener.ts +1 -1
- package/src/base/source-uri-aware.ts +5 -4
- package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
- package/src/base/tool-manager/tool-actions.ts +37 -0
- package/src/base/types.ts +31 -24
- package/src/base/view/view-registry.ts +2 -2
- package/src/features/change-bounds/model.ts +5 -5
- package/src/features/change-bounds/movement-restrictor.ts +74 -44
- package/src/features/change-bounds/snap.spec.ts +89 -0
- package/src/features/change-bounds/snap.ts +99 -12
- package/src/features/command-palette/di.config.ts +5 -7
- package/src/features/command-palette/server-command-palette-provider.ts +9 -8
- package/src/features/context-menu/delete-element-context-menu.ts +6 -6
- package/src/features/context-menu/di.config.ts +3 -2
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +51 -29
- package/src/features/context-menu/server-context-menu-provider.ts +7 -6
- package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
- package/src/features/copy-paste/copy-paste-handler.ts +6 -6
- package/src/features/copy-paste/di.config.ts +7 -15
- package/src/features/decoration/decoration-placer.ts +4 -4
- package/src/features/decoration/di.config.ts +3 -5
- package/src/features/edit-label/di.config.ts +4 -5
- package/src/features/edit-label/edit-label-tool.ts +1 -2
- package/src/features/edit-label/edit-label-validator.ts +6 -10
- package/src/features/hints/di.config.ts +3 -3
- package/src/features/hints/type-hints.ts +33 -18
- package/src/features/hover/di.config.ts +8 -2
- package/src/features/hover/hover.ts +53 -11
- package/src/features/layout/di.config.ts +15 -7
- package/src/features/layout/freeform-layout.ts +6 -15
- package/src/features/layout/hbox-layout.ts +256 -0
- package/src/features/layout/{layout-commands.spec.ts → layout-elements-action.spec.ts} +89 -65
- package/src/features/layout/layout-elements-action.ts +486 -0
- package/src/features/layout/vbox-layout.ts +20 -20
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
- package/src/features/mouse-tool/di.config.ts +3 -4
- package/src/features/mouse-tool/mouse-tool.ts +18 -57
- package/src/features/navigation/navigation-action-handler.ts +76 -42
- package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
- package/src/features/navigation/navigation-target-resolver.ts +8 -13
- package/src/features/reconnect/model.ts +2 -2
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/save-keylistener.ts +3 -3
- package/src/features/select/di.config.ts +6 -8
- package/src/features/select/select-feedback-action.ts +18 -46
- package/src/features/select/select-mouse-listener.ts +82 -3
- package/src/features/select/selection-service.spec.ts +12 -9
- package/src/features/select/selection-service.ts +52 -60
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +52 -22
- package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
- package/src/features/tool-feedback/css-feedback.ts +40 -37
- package/src/features/tool-feedback/di.config.ts +4 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +140 -88
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
- package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
- package/src/features/tool-feedback/model.ts +1 -3
- package/src/features/tool-feedback/view.tsx +3 -3
- package/src/features/tool-palette/di.config.ts +3 -2
- package/src/features/tool-palette/tool-palette.ts +35 -19
- package/src/features/tools/base-glsp-tool.ts +11 -11
- package/src/features/tools/change-bounds-tool.ts +37 -67
- package/src/features/tools/delete-tool.ts +9 -9
- package/src/features/tools/di.config.ts +23 -12
- package/src/features/tools/edge-creation-tool.ts +21 -12
- package/src/features/tools/edge-edit-tool.ts +25 -21
- package/src/features/tools/enable-default-tools-on-focus-loss.ts +33 -0
- package/src/features/tools/marquee-behavior.ts +2 -2
- package/src/features/tools/marquee-mouse-tool.ts +13 -14
- package/src/features/tools/marquee-tool.ts +3 -3
- package/src/features/tools/model.ts +4 -3
- package/src/features/tools/node-creation-tool.ts +8 -8
- package/src/features/tools/view.tsx +2 -3
- package/src/features/validation/di.config.ts +13 -11
- package/src/features/validation/issue-marker.ts +22 -12
- package/src/features/validation/marker-navigator.spec.ts +4 -2
- package/src/features/validation/marker-navigator.ts +67 -82
- package/src/features/validation/validate.ts +62 -89
- package/src/features/viewport/di.config.ts +1 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +9 -9
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +15 -15
- package/src/sprotty-reexport.ts +283 -0
- package/src/utils/layout-utils.ts +9 -29
- package/src/utils/smodel-util.ts +139 -43
- package/src/utils/viewpoint-util.ts +5 -14
- package/src/views/base-view-module.ts +5 -1
- package/src/views/compartments.tsx +1 -1
- package/src/views/glsp-edge-view.tsx +4 -4
- package/src/views/glsp-projection-view.tsx +166 -0
- package/src/views/index.ts +2 -0
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-view.tsx +2 -3
- package/lib/features/layout/layout-commands.d.ts +0 -153
- package/lib/features/layout/layout-commands.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.js +0 -412
- package/lib/features/layout/layout-commands.js.map +0 -1
- package/lib/features/layout/layout-commands.spec.d.ts +0 -3
- package/lib/features/layout/layout-commands.spec.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.spec.js.map +0 -1
- package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
- package/lib/features/tool-palette/palette-item.js.map +0 -1
- package/lib/protocol-reexport.d.ts +0 -45
- package/lib/protocol-reexport.d.ts.map +0 -1
- package/lib/protocol-reexport.js +0 -75
- package/lib/protocol-reexport.js.map +0 -1
- package/src/features/layout/layout-commands.ts +0 -424
- package/src/features/tool-palette/palette-item.ts +0 -38
- package/src/protocol-reexport.ts +0 -64
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action
|
|
16
|
+
import { Action } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { injectable, multiInject, optional } from 'inversify';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
18
|
+
import { MouseListener, MouseTool, SModelElement, SModelRoot } from 'sprotty';
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
20
20
|
import { getRank } from '../rank/model';
|
|
21
21
|
|
|
22
22
|
export interface IMouseTool {
|
|
@@ -24,48 +24,32 @@ export interface IMouseTool {
|
|
|
24
24
|
deregister(mouseListener: MouseListener): void;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Custom helper type to declare the explicit mouse listener methods
|
|
29
|
+
* of {@link MouseListener} i.e. omitting the `decorate` method.
|
|
30
|
+
*/
|
|
31
|
+
type MouseListenerMethods = keyof Omit<MouseListener, 'decorate'>;
|
|
32
|
+
|
|
27
33
|
@injectable()
|
|
28
34
|
export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
29
35
|
protected rankedMouseListeners: Map<number, MouseListener[]>;
|
|
30
36
|
|
|
31
|
-
constructor(@multiInject(TYPES.MouseListener) @optional() protected mouseListeners: MouseListener[] = []) {
|
|
37
|
+
constructor(@multiInject(TYPES.MouseListener) @optional() protected override mouseListeners: MouseListener[] = []) {
|
|
32
38
|
super(mouseListeners);
|
|
33
39
|
this.rankedMouseListeners = groupBy(mouseListeners, listener => getRank(listener));
|
|
34
40
|
}
|
|
35
41
|
|
|
36
|
-
register(mouseListener: MouseListener): void {
|
|
42
|
+
override register(mouseListener: MouseListener): void {
|
|
37
43
|
super.register(mouseListener);
|
|
38
44
|
this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
|
|
39
45
|
}
|
|
40
46
|
|
|
41
|
-
deregister(mouseListener: MouseListener): void {
|
|
47
|
+
override deregister(mouseListener: MouseListener): void {
|
|
42
48
|
super.deregister(mouseListener);
|
|
43
49
|
this.rankedMouseListeners = groupBy(this.mouseListeners, listener => getRank(listener));
|
|
44
50
|
}
|
|
45
51
|
|
|
46
|
-
|
|
47
|
-
// we need to overwrite the existing event handlers registered by the original mouse tool
|
|
48
|
-
if (element instanceof SModelRoot) {
|
|
49
|
-
overwriteOn(vnode, 'mouseover', this.mouseOver.bind(this, element), element);
|
|
50
|
-
overwriteOn(vnode, 'mouseout', this.mouseOut.bind(this, element), element);
|
|
51
|
-
overwriteOn(vnode, 'mouseenter', this.mouseEnter.bind(this, element), element);
|
|
52
|
-
overwriteOn(vnode, 'mouseleave', this.mouseLeave.bind(this, element), element);
|
|
53
|
-
overwriteOn(vnode, 'mousedown', this.mouseDown.bind(this, element), element);
|
|
54
|
-
overwriteOn(vnode, 'mouseup', this.mouseUp.bind(this, element), element);
|
|
55
|
-
overwriteOn(vnode, 'mousemove', this.mouseMove.bind(this, element), element);
|
|
56
|
-
overwriteOn(vnode, 'wheel', this.wheel.bind(this, element), element);
|
|
57
|
-
overwriteOn(vnode, 'contextmenu', this.contextMenu.bind(this, element), element);
|
|
58
|
-
overwriteOn(vnode, 'dblclick', this.doubleClick.bind(this, element), element);
|
|
59
|
-
}
|
|
60
|
-
vnode = this.mouseListeners.reduce((n: VNode, listener: MouseListener) => listener.decorate(n, element), vnode);
|
|
61
|
-
return vnode;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
contextMenu(model: SModelRoot, event: MouseEvent): void {
|
|
65
|
-
event.preventDefault();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
protected handleEvent<K extends keyof MouseListener>(methodName: K, model: SModelRoot, event: MouseEvent): void {
|
|
52
|
+
protected override handleEvent<K extends MouseListenerMethods>(methodName: K, model: SModelRoot, event: MouseEvent): void {
|
|
69
53
|
this.focusOnMouseEvent(methodName, model);
|
|
70
54
|
const element = this.getTargetElement(model, event);
|
|
71
55
|
if (!element) {
|
|
@@ -74,7 +58,7 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
|
74
58
|
this.notifyListenersByRank(element, methodName, model, event);
|
|
75
59
|
}
|
|
76
60
|
|
|
77
|
-
async notifyListenersByRank<K extends
|
|
61
|
+
async notifyListenersByRank<K extends MouseListenerMethods>(
|
|
78
62
|
element: SModelElement,
|
|
79
63
|
methodName: K,
|
|
80
64
|
model: SModelRoot,
|
|
@@ -85,19 +69,17 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
|
85
69
|
}
|
|
86
70
|
}
|
|
87
71
|
|
|
88
|
-
async dispatchActions<K extends
|
|
72
|
+
async dispatchActions<K extends MouseListenerMethods>(
|
|
89
73
|
mouseListeners: MouseListener[],
|
|
90
74
|
methodName: K,
|
|
91
75
|
element: SModelElement,
|
|
92
76
|
event: MouseEvent
|
|
93
77
|
): Promise<void> {
|
|
94
|
-
const actions = mouseListeners
|
|
95
|
-
.map(listener => listener[methodName].apply(listener, [element, event]))
|
|
96
|
-
.reduce((a, b) => a.concat(b));
|
|
78
|
+
const actions = mouseListeners.map(listener => listener[methodName](element, event as WheelEvent)).reduce((a, b) => a.concat(b));
|
|
97
79
|
if (actions.length > 0) {
|
|
98
80
|
event.preventDefault();
|
|
99
81
|
for (const actionOrPromise of actions) {
|
|
100
|
-
if (
|
|
82
|
+
if (Action.is(actionOrPromise)) {
|
|
101
83
|
await this.actionDispatcher.dispatch(actionOrPromise);
|
|
102
84
|
} else {
|
|
103
85
|
actionOrPromise.then((action: Action) => {
|
|
@@ -124,24 +106,3 @@ function groupBy<K, T>(array: Array<T>, keyFunction: (x: T) => K): Map<K, T[]> {
|
|
|
124
106
|
}, new Map<K, T[]>());
|
|
125
107
|
return new Map<K, T[]>([...unsortedMap.entries()].sort());
|
|
126
108
|
}
|
|
127
|
-
|
|
128
|
-
function overwriteOn(vnode: VNode, event: string, listener: (model: SModelElement, _event: Event) => void, element: SModelElement): void {
|
|
129
|
-
const val = getOn(vnode);
|
|
130
|
-
// ignore any previous val[event] registrations
|
|
131
|
-
(val as any)[event] = [listener, element];
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
function getOn(vnode: VNode): On {
|
|
135
|
-
const data = getData(vnode);
|
|
136
|
-
if (!data.on) {
|
|
137
|
-
data.on = {};
|
|
138
|
-
}
|
|
139
|
-
return data.on;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function getData(vnode: VNode): VNodeData {
|
|
143
|
-
if (!vnode.data) {
|
|
144
|
-
vnode.data = {};
|
|
145
|
-
}
|
|
146
|
-
return vnode.data;
|
|
147
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -17,10 +17,8 @@ import {
|
|
|
17
17
|
Action,
|
|
18
18
|
Args,
|
|
19
19
|
CenterAction,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
isNavigateToTargetAction,
|
|
23
|
-
isSetNavigationTargetsAction,
|
|
20
|
+
hasObjectProp,
|
|
21
|
+
hasStringProp,
|
|
24
22
|
NavigateToExternalTargetAction,
|
|
25
23
|
NavigateToTargetAction,
|
|
26
24
|
NavigationTarget,
|
|
@@ -28,13 +26,15 @@ import {
|
|
|
28
26
|
SelectAction,
|
|
29
27
|
SelectAllAction,
|
|
30
28
|
ServerMessageAction,
|
|
29
|
+
ServerSeverity,
|
|
30
|
+
ServerStatusAction,
|
|
31
|
+
SetNavigationTargetsAction,
|
|
31
32
|
SetResolvedNavigationTargetAction
|
|
32
33
|
} from '@eclipse-glsp/protocol';
|
|
33
34
|
import { inject, injectable } from 'inversify';
|
|
34
|
-
import { ActionHandlerRegistry, IActionDispatcher, IActionHandler, ICommand, ILogger
|
|
35
|
-
|
|
35
|
+
import { ActionHandlerRegistry, IActionDispatcher, IActionHandler, ICommand, ILogger } from 'sprotty';
|
|
36
36
|
import { EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
37
|
-
import {
|
|
37
|
+
import { TYPES } from '../../base/types';
|
|
38
38
|
import { NavigationTargetResolver } from './navigation-target-resolver';
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -48,38 +48,66 @@ import { NavigationTargetResolver } from './navigation-target-resolver';
|
|
|
48
48
|
*
|
|
49
49
|
* This action is typically triggered by a user action.
|
|
50
50
|
*/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
|
|
52
|
+
export interface NavigateAction extends Action {
|
|
53
|
+
kind: typeof NavigateAction.KIND;
|
|
54
|
+
/**
|
|
55
|
+
* Navigation target type, such as `documentation`, `implementation`, etc.
|
|
56
|
+
*/
|
|
57
|
+
targetTypeId: string;
|
|
58
|
+
/**
|
|
59
|
+
* Additional arguments for customization.
|
|
60
|
+
*/
|
|
61
|
+
args?: Args;
|
|
55
62
|
}
|
|
56
63
|
|
|
57
|
-
export
|
|
58
|
-
|
|
64
|
+
export namespace NavigateAction {
|
|
65
|
+
export const KIND = 'navigate';
|
|
66
|
+
|
|
67
|
+
export function is(object: any): object is NavigateAction {
|
|
68
|
+
return Action.hasKind(object, KIND) && hasStringProp(object, 'targetTypeId');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export function create(targetTypeId: string, options: { args?: Args } = {}): NavigateAction {
|
|
72
|
+
return {
|
|
73
|
+
kind: KIND,
|
|
74
|
+
targetTypeId,
|
|
75
|
+
...options
|
|
76
|
+
};
|
|
77
|
+
}
|
|
59
78
|
}
|
|
60
79
|
|
|
61
|
-
/**
|
|
62
|
-
*
|
|
80
|
+
/**
|
|
81
|
+
* Action to trigger the processing of additional navigation arguments.
|
|
63
82
|
* The resolution of a `NavigationTarget` may entail additional arguments. In this case, this action is
|
|
64
83
|
* triggered allowing the client to react to those arguments. The default `NavigationActionHandler` will
|
|
65
84
|
* only process the arguments' keys `info`, `warning`, and `error` to present them to the user.
|
|
66
85
|
* Customizations, however, may add domain-specific arguments and register custom handler to also process
|
|
67
86
|
* other arguments and trigger some additional behavior (e.g. update other views, etc.).
|
|
68
87
|
*/
|
|
69
|
-
export class ProcessNavigationArgumentsAction implements Action {
|
|
70
|
-
static readonly KIND = 'processNavigationArguments';
|
|
71
|
-
readonly kind = ProcessNavigationArgumentsAction.KIND;
|
|
72
|
-
constructor(readonly args: Args) {}
|
|
73
|
-
}
|
|
74
88
|
|
|
75
|
-
export
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
89
|
+
export interface ProcessNavigationArgumentsAction extends Action {
|
|
90
|
+
kind: typeof ProcessNavigationArgumentsAction.KIND;
|
|
91
|
+
/**
|
|
92
|
+
* The navigation arguments.
|
|
93
|
+
*/
|
|
94
|
+
args: Args;
|
|
81
95
|
}
|
|
82
96
|
|
|
97
|
+
export namespace ProcessNavigationArgumentsAction {
|
|
98
|
+
export const KIND = 'processNavigationArguments';
|
|
99
|
+
|
|
100
|
+
export function is(object: any): object is ProcessNavigationArgumentsAction {
|
|
101
|
+
return Action.hasKind(object, KIND) && hasObjectProp(object, 'args');
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function create(args: Args): ProcessNavigationArgumentsAction {
|
|
105
|
+
return {
|
|
106
|
+
kind: KIND,
|
|
107
|
+
args
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
83
111
|
/**
|
|
84
112
|
* Default handler for all actions that are related to the navigation.
|
|
85
113
|
*
|
|
@@ -109,17 +137,17 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
109
137
|
@inject(TYPES.ILogger) protected logger: ILogger;
|
|
110
138
|
@inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
|
|
111
139
|
@inject(TYPES.ActionHandlerRegistryProvider) protected actionHandlerRegistryProvider: () => Promise<ActionHandlerRegistry>;
|
|
112
|
-
@inject(
|
|
140
|
+
@inject(TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
|
|
113
141
|
@inject(NavigationTargetResolver) protected resolver: NavigationTargetResolver;
|
|
114
142
|
|
|
115
143
|
handle(action: Action): ICommand | Action | void {
|
|
116
|
-
if (
|
|
144
|
+
if (NavigateAction.is(action)) {
|
|
117
145
|
this.handleNavigateAction(action);
|
|
118
|
-
} else if (
|
|
146
|
+
} else if (NavigateToTargetAction.is(action)) {
|
|
119
147
|
this.handleNavigateToTarget(action);
|
|
120
|
-
} else if (
|
|
148
|
+
} else if (ProcessNavigationArgumentsAction.is(action)) {
|
|
121
149
|
this.processNavigationArguments(action.args);
|
|
122
|
-
} else if (
|
|
150
|
+
} else if (NavigateToExternalTargetAction.is(action)) {
|
|
123
151
|
this.handleNavigateToExternalTarget(action);
|
|
124
152
|
}
|
|
125
153
|
}
|
|
@@ -127,9 +155,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
127
155
|
protected async handleNavigateAction(action: NavigateAction): Promise<void> {
|
|
128
156
|
try {
|
|
129
157
|
const editorContextService = await this.editorContextService();
|
|
130
|
-
const
|
|
131
|
-
const response = await this.dispatcher.request(
|
|
132
|
-
|
|
158
|
+
const editorContext = editorContextService.get(action.args);
|
|
159
|
+
const response = await this.dispatcher.request(
|
|
160
|
+
RequestNavigationTargetsAction.create({ targetTypeId: action.targetTypeId, editorContext })
|
|
161
|
+
);
|
|
162
|
+
if (SetNavigationTargetsAction.is(response) && response.targets && response.targets.length === 1) {
|
|
133
163
|
if (response.targets.length > 1) {
|
|
134
164
|
this.logger.warn(
|
|
135
165
|
this,
|
|
@@ -137,7 +167,7 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
137
167
|
response.targets
|
|
138
168
|
);
|
|
139
169
|
}
|
|
140
|
-
return this.dispatcher.dispatch(
|
|
170
|
+
return this.dispatcher.dispatch(NavigateToTargetAction.create(response.targets[0]));
|
|
141
171
|
}
|
|
142
172
|
this.warnAboutFailedNavigation('No valid navigation target found');
|
|
143
173
|
} catch (reason) {
|
|
@@ -184,7 +214,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
184
214
|
if (!this.containsElementIds(elementIds)) {
|
|
185
215
|
return;
|
|
186
216
|
}
|
|
187
|
-
this.dispatcher.dispatchAll([
|
|
217
|
+
this.dispatcher.dispatchAll([
|
|
218
|
+
SelectAllAction.create(false),
|
|
219
|
+
SelectAction.create({ selectedElementsIDs: elementIds }),
|
|
220
|
+
CenterAction.create(elementIds)
|
|
221
|
+
]);
|
|
188
222
|
}
|
|
189
223
|
|
|
190
224
|
protected handleResolutionArguments(target: SetResolvedNavigationTargetAction): void {
|
|
@@ -192,11 +226,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
192
226
|
if (!this.containsArguments(args)) {
|
|
193
227
|
return;
|
|
194
228
|
}
|
|
195
|
-
this.dispatcher.dispatch(
|
|
229
|
+
this.dispatcher.dispatch(ProcessNavigationArgumentsAction.create(args));
|
|
196
230
|
}
|
|
197
231
|
|
|
198
232
|
protected navigateToExternal(target: NavigationTarget): Promise<void> {
|
|
199
|
-
return this.dispatcher.dispatch(
|
|
233
|
+
return this.dispatcher.dispatch(NavigateToExternalTargetAction.create(target));
|
|
200
234
|
}
|
|
201
235
|
|
|
202
236
|
protected processNavigationArguments(args: Args): void {
|
|
@@ -226,11 +260,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
226
260
|
this.notify('WARNING', message);
|
|
227
261
|
}
|
|
228
262
|
|
|
229
|
-
private notify(severity:
|
|
263
|
+
private notify(severity: ServerSeverity, message: string): void {
|
|
230
264
|
const timeout = this.notificationTimeout;
|
|
231
265
|
this.dispatcher.dispatchAll([
|
|
232
|
-
|
|
233
|
-
|
|
266
|
+
ServerStatusAction.create(message, { severity, timeout }),
|
|
267
|
+
ServerMessageAction.create(message, { severity, timeout })
|
|
234
268
|
]);
|
|
235
269
|
}
|
|
236
270
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -22,7 +22,7 @@ import 'reflect-metadata';
|
|
|
22
22
|
describe('NavigationTarget', () => {
|
|
23
23
|
it('should be able to set and get element IDs', () => {
|
|
24
24
|
const navigationTarget: NavigationTarget = { uri: 'uri' };
|
|
25
|
-
NavigationTarget.setElementIds(navigationTarget,
|
|
25
|
+
NavigationTarget.setElementIds(navigationTarget, 'id1', 'id2');
|
|
26
26
|
expect(NavigationTarget.getElementIds(navigationTarget)).to.be.eql(['id1', 'id2']);
|
|
27
27
|
});
|
|
28
28
|
|
|
@@ -46,7 +46,7 @@ describe('NavigationTarget', () => {
|
|
|
46
46
|
|
|
47
47
|
navigationTarget = { uri: 'uri' };
|
|
48
48
|
expect(NavigationTarget.hasArguments(navigationTarget)).to.be.false;
|
|
49
|
-
NavigationTarget.setElementIds(navigationTarget,
|
|
49
|
+
NavigationTarget.setElementIds(navigationTarget, 'id1', 'id2');
|
|
50
50
|
expect(NavigationTarget.hasArguments(navigationTarget)).to.be.true;
|
|
51
51
|
|
|
52
52
|
navigationTarget = { uri: 'uri' };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,16 +13,11 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
isSetResolvedNavigationTargets,
|
|
18
|
-
NavigationTarget,
|
|
19
|
-
ResolveNavigationTargetAction,
|
|
20
|
-
SetResolvedNavigationTargetAction
|
|
21
|
-
} from '@eclipse-glsp/protocol';
|
|
16
|
+
import { NavigationTarget, ResolveNavigationTargetAction, ResponseAction, SetResolvedNavigationTargetAction } from '@eclipse-glsp/protocol';
|
|
22
17
|
import { inject, injectable } from 'inversify';
|
|
23
|
-
import { IActionDispatcher, ILogger
|
|
18
|
+
import { IActionDispatcher, ILogger } from 'sprotty';
|
|
24
19
|
import { EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
25
|
-
import {
|
|
20
|
+
import { TYPES } from '../../base/types';
|
|
26
21
|
|
|
27
22
|
/**
|
|
28
23
|
* Resolves `NavigationTargets` to element ids.
|
|
@@ -32,7 +27,7 @@ import { GLSP_TYPES } from '../../base/types';
|
|
|
32
27
|
*/
|
|
33
28
|
@injectable()
|
|
34
29
|
export class NavigationTargetResolver {
|
|
35
|
-
@inject(
|
|
30
|
+
@inject(TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
|
|
36
31
|
@inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
|
|
37
32
|
@inject(TYPES.ILogger) protected readonly logger: ILogger;
|
|
38
33
|
|
|
@@ -53,16 +48,16 @@ export class NavigationTargetResolver {
|
|
|
53
48
|
return undefined;
|
|
54
49
|
}
|
|
55
50
|
if (NavigationTarget.getElementIds(target).length > 0) {
|
|
56
|
-
return
|
|
51
|
+
return SetResolvedNavigationTargetAction.create(NavigationTarget.getElementIds(target));
|
|
57
52
|
}
|
|
58
53
|
const response = await this.requestResolution(target);
|
|
59
|
-
if (
|
|
54
|
+
if (SetResolvedNavigationTargetAction.is(response)) {
|
|
60
55
|
return response;
|
|
61
56
|
}
|
|
62
57
|
return undefined;
|
|
63
58
|
}
|
|
64
59
|
|
|
65
60
|
protected requestResolution(target: NavigationTarget): Promise<ResponseAction> {
|
|
66
|
-
return this.dispatcher.request(
|
|
61
|
+
return this.dispatcher.request(ResolveNavigationTargetAction.create(target));
|
|
67
62
|
}
|
|
68
63
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -69,7 +69,7 @@ export function createReconnectHandle(edge: SRoutableElement, kind: RoutingHandl
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
export class SReconnectHandle extends SRoutingHandle {
|
|
72
|
-
hasFeature(feature: symbol): boolean {
|
|
72
|
+
override hasFeature(feature: symbol): boolean {
|
|
73
73
|
return feature !== selectFeature && super.hasFeature(feature);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -14,8 +14,7 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import { TYPES } from '
|
|
18
|
-
|
|
17
|
+
import { TYPES } from '../../base/types';
|
|
19
18
|
import { SaveModelKeyboardListener } from './save-keylistener';
|
|
20
19
|
|
|
21
20
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -18,9 +18,9 @@ import { KeyListener, SModelRoot } from 'sprotty';
|
|
|
18
18
|
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
19
19
|
|
|
20
20
|
export class SaveModelKeyboardListener extends KeyListener {
|
|
21
|
-
keyDown(_element: SModelRoot, event: KeyboardEvent): Action[] {
|
|
21
|
+
override keyDown(_element: SModelRoot, event: KeyboardEvent): Action[] {
|
|
22
22
|
if (matchesKeystroke(event, 'KeyS', 'ctrlCmd')) {
|
|
23
|
-
return [
|
|
23
|
+
return [SaveModelAction.create()];
|
|
24
24
|
}
|
|
25
25
|
return [];
|
|
26
26
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -14,22 +14,20 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import { configureCommand
|
|
18
|
-
|
|
19
|
-
import {
|
|
20
|
-
import { SelectAllFeedbackCommand, SelectFeedbackCommand } from './select-feedback-action';
|
|
17
|
+
import { configureCommand } from 'sprotty';
|
|
18
|
+
import { TYPES } from '../../base/types';
|
|
19
|
+
import { SelectFeedbackCommand } from './select-feedback-action';
|
|
21
20
|
import { RankedSelectMouseListener } from './select-mouse-listener';
|
|
22
21
|
import { SelectAllCommand, SelectCommand, SelectionService } from './selection-service';
|
|
23
22
|
|
|
24
23
|
const glspSelectModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
25
24
|
bind(SelectionService).toSelf().inSingletonScope();
|
|
26
|
-
bind(
|
|
25
|
+
bind(TYPES.SelectionService).toService(SelectionService);
|
|
27
26
|
configureCommand({ bind, isBound }, SelectCommand);
|
|
28
27
|
configureCommand({ bind, isBound }, SelectAllCommand);
|
|
29
28
|
configureCommand({ bind, isBound }, SelectFeedbackCommand);
|
|
30
|
-
configureCommand({ bind, isBound }, SelectAllFeedbackCommand);
|
|
31
29
|
bind(TYPES.MouseListener).to(RankedSelectMouseListener);
|
|
32
|
-
bind(
|
|
30
|
+
bind(TYPES.SModelRootListener).toService(SelectionService);
|
|
33
31
|
});
|
|
34
32
|
|
|
35
33
|
export default glspSelectModule;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,39 +13,34 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, hasArrayProp, SelectAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
CommandExecutionContext,
|
|
20
|
-
SelectAllCommand as SprottySelectAllCommand,
|
|
21
|
-
SelectCommand as SprottySelectCommand,
|
|
22
|
-
SModelRoot,
|
|
23
|
-
TYPES
|
|
24
|
-
} from 'sprotty';
|
|
18
|
+
import { Command, CommandExecutionContext, SelectCommand as SprottySelectCommand, SModelRoot } from 'sprotty';
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
25
20
|
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
public readonly selectedElementsIDs: string[] = [],
|
|
29
|
-
public readonly deselectedElementsIDs: string[] = [],
|
|
30
|
-
public readonly kind: string = SelectFeedbackCommand.KIND
|
|
31
|
-
) {}
|
|
21
|
+
export interface SelectFeedbackAction extends Omit<SelectAction, 'kind'>, Action {
|
|
22
|
+
kind: typeof SelectFeedbackAction.KIND;
|
|
32
23
|
}
|
|
33
24
|
|
|
34
|
-
export
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
25
|
+
export namespace SelectFeedbackAction {
|
|
26
|
+
export const KIND = 'selectFeedback';
|
|
27
|
+
|
|
28
|
+
export function is(object: any): object is SelectFeedbackAction {
|
|
29
|
+
return Action.hasKind(object, KIND) && hasArrayProp(object, 'selectedElementsIDs') && hasArrayProp(object, 'deselectedElementsIDs');
|
|
30
|
+
}
|
|
40
31
|
|
|
32
|
+
export function create(options?: { selectedElementsIDs?: string[]; deselectedElementsIDs?: string[] }): SelectFeedbackAction {
|
|
33
|
+
return { ...SelectAction.create(options), kind: KIND };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
41
36
|
@injectable()
|
|
42
37
|
export class SelectFeedbackCommand extends Command {
|
|
43
|
-
static readonly KIND =
|
|
38
|
+
static readonly KIND = SelectFeedbackAction.KIND;
|
|
44
39
|
private sprottySelectCommand: SprottySelectCommand;
|
|
45
40
|
|
|
46
41
|
constructor(@inject(TYPES.Action) public action: SelectFeedbackAction) {
|
|
47
42
|
super();
|
|
48
|
-
this.sprottySelectCommand = new SprottySelectCommand(action);
|
|
43
|
+
this.sprottySelectCommand = new SprottySelectCommand({ ...action, kind: SelectAction.KIND });
|
|
49
44
|
}
|
|
50
45
|
|
|
51
46
|
execute(context: CommandExecutionContext): SModelRoot {
|
|
@@ -60,26 +55,3 @@ export class SelectFeedbackCommand extends Command {
|
|
|
60
55
|
return this.sprottySelectCommand.redo(context);
|
|
61
56
|
}
|
|
62
57
|
}
|
|
63
|
-
|
|
64
|
-
@injectable()
|
|
65
|
-
export class SelectAllFeedbackCommand extends Command {
|
|
66
|
-
static readonly KIND = 'allSelectedFeedback';
|
|
67
|
-
private sprottySelectAllCommand: SprottySelectAllCommand;
|
|
68
|
-
|
|
69
|
-
constructor(@inject(TYPES.Action) public action: SelectAllFeedbackAction) {
|
|
70
|
-
super();
|
|
71
|
-
this.sprottySelectAllCommand = new SprottySelectAllCommand(action);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
execute(context: CommandExecutionContext): SModelRoot {
|
|
75
|
-
return this.sprottySelectAllCommand.execute(context);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
undo(context: CommandExecutionContext): SModelRoot {
|
|
79
|
-
return this.sprottySelectAllCommand.undo(context);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
redo(context: CommandExecutionContext): SModelRoot {
|
|
83
|
-
return this.sprottySelectAllCommand.redo(context);
|
|
84
|
-
}
|
|
85
|
-
}
|