@eclipse-glsp/client 0.9.0 → 0.10.0-next.17bfb07.173
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/glsp-sprotty.css +110 -8
- 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 +18 -5
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +39 -22
- 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 +1 -1
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +15 -15
- 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 +42 -2
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +78 -2
- 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 +33 -1
- 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 +41 -28
- 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 +11 -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 -5
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +11 -53
- 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 +9 -10
- 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 +1 -1
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +1 -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/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 +16 -30
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +61 -92
- 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/index.js +6 -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 +38 -16
- 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 +9 -10
- 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 +86 -3
- 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 +45 -17
- 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 +11 -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 -59
- 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 +9 -14
- 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 +1 -2
- 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/marker-navigator.spec.ts +4 -2
- package/src/features/validation/marker-navigator.ts +67 -82
- package/src/features/validation/validate.ts +57 -91
- 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/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) 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,45 +13,60 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, CenterAction, Point } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { Action, CenterAction, hasArrayProp, hasStringProp, Point, SelectAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import {
|
|
19
|
+
ActionDispatcher,
|
|
19
20
|
BoundsAware,
|
|
20
|
-
CenterCommand,
|
|
21
|
-
Command,
|
|
22
|
-
CommandExecutionContext,
|
|
23
|
-
CommandReturn,
|
|
24
21
|
findParentByFeature,
|
|
22
|
+
IActionHandler,
|
|
25
23
|
IContextMenuItemProvider,
|
|
26
24
|
isBoundsAware,
|
|
27
25
|
isSelectable,
|
|
28
26
|
KeyListener,
|
|
29
27
|
MenuItem,
|
|
30
28
|
Selectable,
|
|
31
|
-
SelectAction,
|
|
32
29
|
SIssueMarker,
|
|
33
30
|
SIssueSeverity,
|
|
34
31
|
SModelElement,
|
|
35
|
-
SModelRoot
|
|
36
|
-
TYPES
|
|
32
|
+
SModelRoot
|
|
37
33
|
} from 'sprotty';
|
|
38
34
|
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
39
|
-
import {
|
|
35
|
+
import { TYPES } from '../../base/types';
|
|
40
36
|
import { collectIssueMarkers, MarkerPredicates } from '../../utils/marker';
|
|
41
|
-
import { isSelectableAndBoundsAware } from '../../utils/smodel-util';
|
|
42
|
-
import {
|
|
37
|
+
import { getElements, isSelectableAndBoundsAware } from '../../utils/smodel-util';
|
|
38
|
+
import { SelectionService } from '../select/selection-service';
|
|
43
39
|
|
|
44
|
-
export
|
|
45
|
-
|
|
40
|
+
export interface NavigateToMarkerAction extends Action {
|
|
41
|
+
kind: typeof NavigateToMarkerAction.KIND;
|
|
46
42
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
public readonly severities: SIssueSeverity[] = MarkerNavigator.ALL_SEVERITIES,
|
|
51
|
-
public kind = NavigateToMarkerAction.KIND
|
|
52
|
-
) {}
|
|
43
|
+
direction: MarkerNavigationDirection;
|
|
44
|
+
selectedElementIds?: string[];
|
|
45
|
+
severities: SIssueSeverity[];
|
|
53
46
|
}
|
|
54
47
|
|
|
48
|
+
export type MarkerNavigationDirection = 'next' | 'previous';
|
|
49
|
+
|
|
50
|
+
export namespace NavigateToMarkerAction {
|
|
51
|
+
export const KIND = 'navigateToMarker';
|
|
52
|
+
|
|
53
|
+
export function is(object: any): object is NavigateToMarkerAction {
|
|
54
|
+
return Action.hasKind(object, KIND) && hasStringProp(object, 'direction') && hasArrayProp(object, 'severities');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function create(options: {
|
|
58
|
+
direction?: MarkerNavigationDirection;
|
|
59
|
+
selectedElementIds?: string[];
|
|
60
|
+
severities?: SIssueSeverity[];
|
|
61
|
+
}): NavigateToMarkerAction {
|
|
62
|
+
return {
|
|
63
|
+
kind: KIND,
|
|
64
|
+
direction: 'next',
|
|
65
|
+
severities: MarkerNavigator.ALL_SEVERITIES,
|
|
66
|
+
...options
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
55
70
|
export class SModelElementComparator {
|
|
56
71
|
compare(_one: SModelElement, _other: SModelElement): number {
|
|
57
72
|
return 0;
|
|
@@ -89,7 +104,7 @@ export class MarkerNavigator {
|
|
|
89
104
|
protected markerComparator: SModelElementComparator;
|
|
90
105
|
|
|
91
106
|
next(
|
|
92
|
-
root: SModelRoot
|
|
107
|
+
root: Readonly<SModelRoot>,
|
|
93
108
|
current?: SModelElement & BoundsAware,
|
|
94
109
|
predicate: (marker: SIssueMarker) => boolean = MarkerPredicates.ALL
|
|
95
110
|
): SIssueMarker | undefined {
|
|
@@ -101,7 +116,7 @@ export class MarkerNavigator {
|
|
|
101
116
|
}
|
|
102
117
|
|
|
103
118
|
previous(
|
|
104
|
-
root: SModelRoot
|
|
119
|
+
root: Readonly<SModelRoot>,
|
|
105
120
|
current?: SModelElement & BoundsAware,
|
|
106
121
|
predicate: (marker: SIssueMarker) => boolean = MarkerPredicates.ALL
|
|
107
122
|
): SIssueMarker | undefined {
|
|
@@ -112,7 +127,7 @@ export class MarkerNavigator {
|
|
|
112
127
|
return markers[this.getPreviousIndex(current, markers) % markers.length];
|
|
113
128
|
}
|
|
114
129
|
|
|
115
|
-
protected getMarkers(root: SModelRoot
|
|
130
|
+
protected getMarkers(root: Readonly<SModelRoot>, predicate: (marker: SIssueMarker) => boolean): SIssueMarker[] {
|
|
116
131
|
const markers = collectIssueMarkers(root);
|
|
117
132
|
return markers.filter(predicate).sort(this.markerComparator.compare);
|
|
118
133
|
}
|
|
@@ -137,86 +152,56 @@ export class MarkerNavigator {
|
|
|
137
152
|
}
|
|
138
153
|
|
|
139
154
|
@injectable()
|
|
140
|
-
export class
|
|
141
|
-
static KIND = NavigateToMarkerAction.KIND;
|
|
142
|
-
|
|
155
|
+
export class NavigateToMarkerActionHandler implements IActionHandler {
|
|
143
156
|
@inject(SModelElementComparator)
|
|
144
157
|
protected markerComparator: SModelElementComparator;
|
|
145
158
|
|
|
146
159
|
@inject(MarkerNavigator)
|
|
147
160
|
protected markerNavigator: MarkerNavigator;
|
|
148
161
|
|
|
149
|
-
@inject(
|
|
162
|
+
@inject(TYPES.SelectionService)
|
|
150
163
|
protected selectionService: SelectionService;
|
|
151
164
|
|
|
152
|
-
|
|
153
|
-
protected
|
|
165
|
+
@inject(TYPES.IActionDispatcher)
|
|
166
|
+
protected actionDispatcher: ActionDispatcher;
|
|
154
167
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
168
|
+
handle(action: NavigateToMarkerAction): void {
|
|
169
|
+
const selected = this.getSelectedElements(action);
|
|
170
|
+
const target = this.getTarget(action, selected);
|
|
158
171
|
|
|
159
|
-
|
|
160
|
-
const root = context.root;
|
|
161
|
-
const selected = this.getSelectedElements(root);
|
|
162
|
-
const target = this.getTarget(selected, root);
|
|
163
|
-
if (target === undefined) {
|
|
164
|
-
return root;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
const selectableTarget = findParentByFeature(target, isSelectable);
|
|
172
|
+
const selectableTarget = target ? findParentByFeature(target, isSelectable) : undefined;
|
|
168
173
|
if (selectableTarget) {
|
|
169
|
-
const
|
|
170
|
-
this.
|
|
171
|
-
this.
|
|
172
|
-
this.centerCommand.execute(context);
|
|
173
|
-
return this.selectCommand.execute(context);
|
|
174
|
+
const deselectedElementsIDs = selected.map(e => e.id).filter(id => id !== selectableTarget.id);
|
|
175
|
+
this.actionDispatcher.dispatch(SelectAction.create({ selectedElementsIDs: [selectableTarget.id], deselectedElementsIDs }));
|
|
176
|
+
this.actionDispatcher.dispatch(CenterAction.create([selectableTarget.id]));
|
|
174
177
|
}
|
|
175
|
-
return root;
|
|
176
178
|
}
|
|
177
179
|
|
|
178
|
-
protected getSelectedElements(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
selectedIds = this.action.selectedElementIds;
|
|
182
|
-
} else {
|
|
183
|
-
selectedIds = Array.from(this.selectionService.getSelectedElementIDs());
|
|
180
|
+
protected getSelectedElements(action: NavigateToMarkerAction): (SModelElement & Selectable)[] {
|
|
181
|
+
if (action.selectedElementIds && action.selectedElementIds.length > 0) {
|
|
182
|
+
return getElements(this.selectionService.getModelRoot().index, action.selectedElementIds, isSelectable);
|
|
184
183
|
}
|
|
185
|
-
return
|
|
184
|
+
return this.selectionService.getSelectedElements();
|
|
186
185
|
}
|
|
187
186
|
|
|
188
|
-
protected getTarget(selected: SModelElement[]
|
|
189
|
-
const
|
|
190
|
-
const
|
|
191
|
-
if (
|
|
192
|
-
return this.markerNavigator.previous(root,
|
|
187
|
+
protected getTarget(action: NavigateToMarkerAction, selected: SModelElement[]): SIssueMarker | undefined {
|
|
188
|
+
const root = this.selectionService.getModelRoot();
|
|
189
|
+
const target = selected.sort(this.markerComparator.compare).find(isBoundsAware);
|
|
190
|
+
if (action.direction === 'previous') {
|
|
191
|
+
return this.markerNavigator.previous(root, target, marker => this.matchesSeverities(action, marker));
|
|
193
192
|
} else {
|
|
194
|
-
return this.markerNavigator.next(root,
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
protected matchesSeverities(marker: SIssueMarker): boolean {
|
|
199
|
-
return marker.issues.find(issue => this.action.severities.includes(issue.severity)) !== undefined;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
203
|
-
if (this.selectCommand) {
|
|
204
|
-
context.root = this.selectCommand.undo(context);
|
|
193
|
+
return this.markerNavigator.next(root, target, marker => this.matchesSeverities(action, marker));
|
|
205
194
|
}
|
|
206
|
-
return this.centerCommand ? this.centerCommand.undo(context) : context.root;
|
|
207
195
|
}
|
|
208
196
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
context.root = this.selectCommand.redo(context);
|
|
212
|
-
}
|
|
213
|
-
return this.centerCommand ? this.centerCommand.redo(context) : context.root;
|
|
197
|
+
protected matchesSeverities(action: NavigateToMarkerAction, marker: SIssueMarker): boolean {
|
|
198
|
+
return marker.issues.find(issue => action.severities.includes(issue.severity)) !== undefined;
|
|
214
199
|
}
|
|
215
200
|
}
|
|
216
201
|
|
|
217
202
|
@injectable()
|
|
218
203
|
export class MarkerNavigatorContextMenuItemProvider implements IContextMenuItemProvider {
|
|
219
|
-
@inject(
|
|
204
|
+
@inject(TYPES.SelectionService) protected selectionService: SelectionService;
|
|
220
205
|
|
|
221
206
|
getItems(root: Readonly<SModelRoot>, lastMousePosition?: Point): Promise<MenuItem[]> {
|
|
222
207
|
const selectedElementIds = Array.from(this.selectionService.getSelectedElementIDs());
|
|
@@ -232,14 +217,14 @@ export class MarkerNavigatorContextMenuItemProvider implements IContextMenuItemP
|
|
|
232
217
|
id: 'next-marker',
|
|
233
218
|
label: 'Next marker',
|
|
234
219
|
group: 'marker',
|
|
235
|
-
actions: [
|
|
220
|
+
actions: [NavigateToMarkerAction.create({ direction: 'next', selectedElementIds })],
|
|
236
221
|
isEnabled: () => hasMarkers
|
|
237
222
|
},
|
|
238
223
|
{
|
|
239
224
|
id: 'previous-marker',
|
|
240
225
|
label: 'Previous marker',
|
|
241
226
|
group: 'marker',
|
|
242
|
-
actions: [
|
|
227
|
+
actions: [NavigateToMarkerAction.create({ direction: 'previous', selectedElementIds })],
|
|
243
228
|
isEnabled: () => hasMarkers
|
|
244
229
|
}
|
|
245
230
|
]
|
|
@@ -250,11 +235,11 @@ export class MarkerNavigatorContextMenuItemProvider implements IContextMenuItemP
|
|
|
250
235
|
|
|
251
236
|
@injectable()
|
|
252
237
|
export class MarkerNavigatorKeyListener extends KeyListener {
|
|
253
|
-
keyDown(_element: SModelElement, event: KeyboardEvent): Action[] {
|
|
238
|
+
override keyDown(_element: SModelElement, event: KeyboardEvent): Action[] {
|
|
254
239
|
if (matchesKeystroke(event, 'Period', 'ctrl')) {
|
|
255
|
-
return [
|
|
240
|
+
return [NavigateToMarkerAction.create({ direction: 'next' })];
|
|
256
241
|
} else if (matchesKeystroke(event, 'Comma', 'ctrl')) {
|
|
257
|
-
return [
|
|
242
|
+
return [NavigateToMarkerAction.create({ direction: 'previous' })];
|
|
258
243
|
}
|
|
259
244
|
return [];
|
|
260
245
|
}
|
|
@@ -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,22 +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 { Action, DeleteMarkersAction, Marker, SetMarkersAction } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { Action, DeleteMarkersAction, hasArrayProp, Marker, SetMarkersAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable, optional } from 'inversify';
|
|
18
|
-
import {
|
|
19
|
-
Command,
|
|
20
|
-
CommandExecutionContext,
|
|
21
|
-
CommandReturn,
|
|
22
|
-
IActionDispatcher,
|
|
23
|
-
SIssue,
|
|
24
|
-
SIssueMarker,
|
|
25
|
-
SModelElement,
|
|
26
|
-
SModelRoot,
|
|
27
|
-
SParentElement,
|
|
28
|
-
TYPES
|
|
29
|
-
} from 'sprotty';
|
|
18
|
+
import { CommandExecutionContext, CommandReturn, IActionDispatcher, IActionHandler, ICommand, SIssueMarker, SParentElement } from 'sprotty';
|
|
30
19
|
import { EditorContextService } from '../../base/editor-context-service';
|
|
31
|
-
import {
|
|
20
|
+
import { TYPES } from '../../base/types';
|
|
32
21
|
import { removeCssClasses } from '../../utils/smodel-util';
|
|
33
22
|
import { getSeverity } from '../hover/hover';
|
|
34
23
|
import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
|
|
@@ -41,11 +30,11 @@ import { createSIssue, getOrCreateSIssueMarker, getSIssueMarker } from './issue-
|
|
|
41
30
|
*/
|
|
42
31
|
@injectable()
|
|
43
32
|
export class ValidationFeedbackEmitter implements IFeedbackEmitter {
|
|
44
|
-
@inject(
|
|
33
|
+
@inject(TYPES.IFeedbackActionDispatcher) protected feedbackActionDispatcher: IFeedbackActionDispatcher;
|
|
45
34
|
|
|
46
35
|
@inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
|
|
47
36
|
|
|
48
|
-
private registeredAction:
|
|
37
|
+
private registeredAction: ApplyMarkersAction;
|
|
49
38
|
|
|
50
39
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
51
40
|
private constructor() {}
|
|
@@ -54,13 +43,13 @@ export class ValidationFeedbackEmitter implements IFeedbackEmitter {
|
|
|
54
43
|
* Register the action that should be emitted for visualizing validation feedback.
|
|
55
44
|
* @param action the action that should be emitted when the model is updated and that will visualize the model validation feedback.
|
|
56
45
|
*/
|
|
57
|
-
registerValidationFeedbackAction(action:
|
|
46
|
+
registerValidationFeedbackAction(action: ApplyMarkersAction): void {
|
|
58
47
|
// De-register old action responsible for applying markers and re-applying them when the model is updated
|
|
59
48
|
this.feedbackActionDispatcher.deregisterFeedback(this, []);
|
|
60
49
|
|
|
61
50
|
// Clear existing markers
|
|
62
51
|
if (this.registeredAction !== undefined) {
|
|
63
|
-
const deleteMarkersAction =
|
|
52
|
+
const deleteMarkersAction = DeleteMarkersAction.create(this.registeredAction.markers);
|
|
64
53
|
this.actionDispatcher().then(dispatcher => dispatcher.dispatch(deleteMarkersAction));
|
|
65
54
|
}
|
|
66
55
|
|
|
@@ -88,96 +77,81 @@ export abstract class ExternalMarkerManager {
|
|
|
88
77
|
|
|
89
78
|
removeMarkers(markers: Marker[]): void {
|
|
90
79
|
if (this.actionDispatcher) {
|
|
91
|
-
this.actionDispatcher.dispatch(
|
|
80
|
+
this.actionDispatcher.dispatch(DeleteMarkersAction.create(markers));
|
|
92
81
|
}
|
|
93
82
|
}
|
|
94
83
|
|
|
95
84
|
abstract setMarkers(markers: Marker[], sourceUri?: string): void;
|
|
96
85
|
}
|
|
97
86
|
|
|
98
|
-
/**
|
|
99
|
-
* Command for handling `SetMarkersAction`
|
|
100
|
-
*/
|
|
101
87
|
@injectable()
|
|
102
|
-
export class
|
|
103
|
-
@inject(ValidationFeedbackEmitter)
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const markers: Marker[] =
|
|
115
|
-
const uri =
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
const applyMarkersAction: ApplyMarkersAction = new ApplyMarkersAction(markers);
|
|
88
|
+
export class SetMarkersActionHandler implements IActionHandler {
|
|
89
|
+
@inject(ValidationFeedbackEmitter)
|
|
90
|
+
protected validationFeedbackEmitter: ValidationFeedbackEmitter;
|
|
91
|
+
|
|
92
|
+
@inject(ExternalMarkerManager)
|
|
93
|
+
@optional()
|
|
94
|
+
protected externalMarkerManager?: ExternalMarkerManager;
|
|
95
|
+
|
|
96
|
+
@inject(EditorContextService)
|
|
97
|
+
protected editorContextService: EditorContextService;
|
|
98
|
+
|
|
99
|
+
handle(action: SetMarkersAction): void | Action | ICommand {
|
|
100
|
+
const markers: Marker[] = action.markers;
|
|
101
|
+
const uri = this.editorContextService.sourceUri;
|
|
102
|
+
this.externalMarkerManager?.setMarkers(markers, uri);
|
|
103
|
+
const applyMarkersAction = ApplyMarkersAction.create(markers);
|
|
120
104
|
this.validationFeedbackEmitter.registerValidationFeedbackAction(applyMarkersAction);
|
|
121
|
-
return context.root;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
125
|
-
return context.root;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
redo(context: CommandExecutionContext): CommandReturn {
|
|
129
|
-
return this.execute(context);
|
|
130
105
|
}
|
|
131
106
|
}
|
|
132
107
|
|
|
133
108
|
/**
|
|
134
|
-
*
|
|
109
|
+
* Action for applying makers to the graphical model.
|
|
135
110
|
*/
|
|
136
|
-
export interface
|
|
137
|
-
|
|
111
|
+
export interface ApplyMarkersAction extends Action {
|
|
112
|
+
kind: typeof ApplyMarkersAction.KIND;
|
|
113
|
+
markers: Marker[];
|
|
138
114
|
}
|
|
139
115
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
116
|
+
export namespace ApplyMarkersAction {
|
|
117
|
+
export const KIND = 'applyMarkers';
|
|
118
|
+
|
|
119
|
+
export function is(object: any): object is ApplyMarkersAction {
|
|
120
|
+
return Action.hasKind(object, KIND) && hasArrayProp(object, 'markers');
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function create(markers: Marker[]): ApplyMarkersAction {
|
|
124
|
+
return {
|
|
125
|
+
kind: KIND,
|
|
126
|
+
markers
|
|
127
|
+
};
|
|
128
|
+
}
|
|
146
129
|
}
|
|
147
130
|
|
|
148
131
|
/**
|
|
149
|
-
*
|
|
132
|
+
* Handles {@link ApplyMarkersAction}s by creating the corresponding {@link SIssueMarker}s and
|
|
133
|
+
* adding them to the graphical model.
|
|
150
134
|
*/
|
|
151
135
|
@injectable()
|
|
152
136
|
export class ApplyMarkersCommand extends FeedbackCommand {
|
|
153
|
-
static KIND =
|
|
154
|
-
readonly priority = 0;
|
|
137
|
+
static KIND = ApplyMarkersAction.KIND;
|
|
155
138
|
|
|
156
139
|
constructor(@inject(TYPES.Action) protected action: ApplyMarkersAction) {
|
|
157
140
|
super();
|
|
158
141
|
}
|
|
159
142
|
|
|
160
143
|
execute(context: CommandExecutionContext): CommandReturn {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
const modelElement: SModelElement | undefined = context.root.index.getById(marker.elementId);
|
|
144
|
+
this.action.markers.forEach(marker => {
|
|
145
|
+
const modelElement = context.root.index.getById(marker.elementId);
|
|
164
146
|
if (modelElement instanceof SParentElement) {
|
|
165
|
-
const issueMarker
|
|
166
|
-
const issue
|
|
147
|
+
const issueMarker = getOrCreateSIssueMarker(modelElement);
|
|
148
|
+
const issue = createSIssue(marker);
|
|
167
149
|
issueMarker.issues.push(issue);
|
|
168
150
|
addMaxSeverityCSSClassToIssueParent(modelElement, issueMarker);
|
|
169
151
|
}
|
|
170
|
-
}
|
|
171
|
-
return context.root;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
152
|
+
});
|
|
175
153
|
return context.root;
|
|
176
154
|
}
|
|
177
|
-
|
|
178
|
-
redo(context: CommandExecutionContext): CommandReturn {
|
|
179
|
-
return this.execute(context);
|
|
180
|
-
}
|
|
181
155
|
}
|
|
182
156
|
|
|
183
157
|
function addMaxSeverityCSSClassToIssueParent(modelElement: SParentElement, issueMarker: SIssueMarker): void {
|
|
@@ -199,7 +173,7 @@ function removeCSSClassFromIssueParent(modelElement: SParentElement, issueMarker
|
|
|
199
173
|
* Command for handling `DeleteMarkersAction`
|
|
200
174
|
*/
|
|
201
175
|
@injectable()
|
|
202
|
-
export class DeleteMarkersCommand extends
|
|
176
|
+
export class DeleteMarkersCommand extends FeedbackCommand {
|
|
203
177
|
static KIND = DeleteMarkersAction.KIND;
|
|
204
178
|
|
|
205
179
|
constructor(@inject(TYPES.Action) protected action: DeleteMarkersAction) {
|
|
@@ -207,15 +181,14 @@ export class DeleteMarkersCommand extends Command {
|
|
|
207
181
|
}
|
|
208
182
|
|
|
209
183
|
execute(context: CommandExecutionContext): CommandReturn {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const modelElement: SModelElement | undefined = context.root.index.getById(marker.elementId);
|
|
184
|
+
this.action.markers.forEach(marker => {
|
|
185
|
+
const modelElement = context.root.index.getById(marker.elementId);
|
|
213
186
|
if (modelElement instanceof SParentElement) {
|
|
214
|
-
const issueMarker
|
|
215
|
-
if (issueMarker
|
|
187
|
+
const issueMarker = getSIssueMarker(modelElement);
|
|
188
|
+
if (issueMarker) {
|
|
216
189
|
removeCSSClassFromIssueParent(modelElement, issueMarker);
|
|
217
190
|
for (let index = 0; index < issueMarker.issues.length; ++index) {
|
|
218
|
-
const issue
|
|
191
|
+
const issue = issueMarker.issues[index];
|
|
219
192
|
if (issue.message === marker.description) {
|
|
220
193
|
issueMarker.issues.splice(index--, 1);
|
|
221
194
|
}
|
|
@@ -227,15 +200,8 @@ export class DeleteMarkersCommand extends Command {
|
|
|
227
200
|
}
|
|
228
201
|
}
|
|
229
202
|
}
|
|
230
|
-
}
|
|
231
|
-
return context.root;
|
|
232
|
-
}
|
|
203
|
+
});
|
|
233
204
|
|
|
234
|
-
undo(context: CommandExecutionContext): CommandReturn {
|
|
235
205
|
return context.root;
|
|
236
206
|
}
|
|
237
|
-
|
|
238
|
-
redo(context: CommandExecutionContext): CommandReturn {
|
|
239
|
-
return this.execute(context);
|
|
240
|
-
}
|
|
241
207
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-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
|
|
@@ -27,7 +27,6 @@ import {
|
|
|
27
27
|
TYPES,
|
|
28
28
|
ZoomMouseListener
|
|
29
29
|
} from 'sprotty';
|
|
30
|
-
|
|
31
30
|
import { GLSPScrollMouseListener } from './glsp-scroll-mouse-listener';
|
|
32
31
|
|
|
33
32
|
const glspViewportModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-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
|
|
@@ -23,16 +23,16 @@ export class GLSPScrollMouseListener extends ScrollMouseListener implements IAct
|
|
|
23
23
|
preventScrolling = false;
|
|
24
24
|
|
|
25
25
|
handle(action: Action): void | Action | ICommand {
|
|
26
|
-
if (action
|
|
27
|
-
if (action.toolIds.includes(MarqueeMouseTool.ID)) {
|
|
26
|
+
if (action.kind === EnableToolsAction.KIND) {
|
|
27
|
+
if ((action as EnableToolsAction).toolIds.includes(MarqueeMouseTool.ID)) {
|
|
28
28
|
this.preventScrolling = true;
|
|
29
29
|
}
|
|
30
|
-
} else if (action
|
|
30
|
+
} else if (action.kind === EnableDefaultToolsAction.KIND) {
|
|
31
31
|
this.preventScrolling = false;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
mouseDown(target: SModelElement, event: MouseEvent): (Action | Promise<Action>)[] {
|
|
35
|
+
override mouseDown(target: SModelElement, event: MouseEvent): (Action | Promise<Action>)[] {
|
|
36
36
|
if (this.preventScrolling) {
|
|
37
37
|
return [];
|
|
38
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -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
|
|
@@ -21,7 +21,7 @@ import glspDecorationModule from './features/decoration/di.config';
|
|
|
21
21
|
import glspEditLabelModule from './features/edit-label/di.config';
|
|
22
22
|
import modelHintsModule from './features/hints/di.config';
|
|
23
23
|
import glspHoverModule from './features/hover/di.config';
|
|
24
|
-
import
|
|
24
|
+
import layoutModule from './features/layout/di.config';
|
|
25
25
|
import modelSourceWatcherModule from './features/model-source-watcher/di.config';
|
|
26
26
|
import glspMouseToolModule from './features/mouse-tool/di.config';
|
|
27
27
|
import { navigationModule } from './features/navigation/di.config';
|
|
@@ -29,11 +29,10 @@ import saveModule from './features/save/di.config';
|
|
|
29
29
|
import glspSelectModule from './features/select/di.config';
|
|
30
30
|
import toolFeedbackModule from './features/tool-feedback/di.config';
|
|
31
31
|
import paletteModule from './features/tool-palette/di.config';
|
|
32
|
-
import toolsModule from './features/tools/di.config';
|
|
32
|
+
import { enableDefaultToolsOnFocusLossModule, toolsModule } from './features/tools/di.config';
|
|
33
33
|
import { markerNavigatorModule, validationModule } from './features/validation/di.config';
|
|
34
34
|
import glspViewportModule from './features/viewport/di.config';
|
|
35
35
|
|
|
36
|
-
export * from 'sprotty';
|
|
37
36
|
export * from './base/action-dispatcher';
|
|
38
37
|
export * from './base/actions/focus-change-action';
|
|
39
38
|
export * from './base/argumentable';
|
|
@@ -51,6 +50,7 @@ export * from './base/model/model-registry';
|
|
|
51
50
|
export * from './base/model/update-model-command';
|
|
52
51
|
export * from './base/selection-clearing-mouse-listener';
|
|
53
52
|
export * from './base/source-uri-aware';
|
|
53
|
+
export * from './base/tool-manager/tool-actions';
|
|
54
54
|
export * from './base/types';
|
|
55
55
|
export * from './base/view/view-registry';
|
|
56
56
|
export * from './features/change-bounds/model';
|
|
@@ -65,7 +65,7 @@ export * from './features/edit-label/edit-label-validator';
|
|
|
65
65
|
export * from './features/hints/model';
|
|
66
66
|
export * from './features/hints/type-hints';
|
|
67
67
|
export * from './features/hover/hover';
|
|
68
|
-
export * from './features/layout/layout-
|
|
68
|
+
export * from './features/layout/layout-elements-action';
|
|
69
69
|
export * from './features/model-source-watcher/model-source-changed-action-handler';
|
|
70
70
|
export * from './features/mouse-tool/mouse-tool';
|
|
71
71
|
export * from './features/navigation/navigation-action-handler';
|
|
@@ -80,22 +80,21 @@ export * from './features/tool-feedback/css-feedback';
|
|
|
80
80
|
export * from './features/tool-feedback/edge-edit-tool-feedback';
|
|
81
81
|
export * from './features/tool-feedback/feedback-action-dispatcher';
|
|
82
82
|
export * from './features/tool-feedback/model';
|
|
83
|
-
export * from './features/tool-palette/palette-item';
|
|
84
83
|
export * from './features/tool-palette/tool-palette';
|
|
85
84
|
export * from './features/tools/base-glsp-tool';
|
|
86
85
|
export * from './features/tools/change-bounds-tool';
|
|
87
86
|
export * from './features/tools/delete-tool';
|
|
88
87
|
export * from './features/tools/edge-creation-tool';
|
|
89
88
|
export * from './features/tools/edge-edit-tool';
|
|
90
|
-
export * from './features/tools/node-creation-tool';
|
|
91
89
|
export * from './features/tools/marquee-behavior';
|
|
90
|
+
export * from './features/tools/node-creation-tool';
|
|
92
91
|
export * from './features/validation/issue-marker';
|
|
93
92
|
export * from './features/validation/marker-navigator';
|
|
94
93
|
export * from './features/validation/validate';
|
|
95
94
|
export * from './features/viewport/glsp-scroll-mouse-listener';
|
|
96
95
|
export * from './lib/model';
|
|
97
96
|
export * from './model-source/glsp-diagram-server';
|
|
98
|
-
export * from './
|
|
97
|
+
export * from './sprotty-reexport';
|
|
99
98
|
export * from './utils/argument-utils';
|
|
100
99
|
export * from './utils/marker';
|
|
101
100
|
export * from './utils/smodel-util';
|
|
@@ -114,10 +113,11 @@ export {
|
|
|
114
113
|
copyPasteContextMenuModule,
|
|
115
114
|
glspSelectModule,
|
|
116
115
|
glspMouseToolModule,
|
|
117
|
-
|
|
116
|
+
layoutModule,
|
|
118
117
|
glspEditLabelModule,
|
|
119
118
|
glspHoverModule,
|
|
120
119
|
toolsModule,
|
|
120
|
+
enableDefaultToolsOnFocusLossModule,
|
|
121
121
|
navigationModule,
|
|
122
122
|
markerNavigatorModule,
|
|
123
123
|
glspDecorationModule,
|
package/src/lib/model.ts
CHANGED
|
@@ -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
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
|
|
16
|
+
import { SModelElementSchema } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { exportFeature, SGraph, SModelElement, viewportFeature } from 'sprotty';
|
|
18
18
|
import { Containable, containerFeature } from '../features/hints/model';
|
|
19
19
|
import { Saveable, saveFeature } from '../features/save/model';
|
|
20
20
|
|
|
21
21
|
export class GLSPGraph extends SGraph implements Saveable, Containable {
|
|
22
|
-
static readonly DEFAULT_FEATURES = [viewportFeature, exportFeature, saveFeature, containerFeature];
|
|
22
|
+
static override readonly DEFAULT_FEATURES = [viewportFeature, exportFeature, saveFeature, containerFeature];
|
|
23
23
|
dirty = false;
|
|
24
24
|
isContainableElement(input: string | SModelElement | SModelElementSchema): boolean {
|
|
25
25
|
return true;
|