@eclipse-glsp/client 0.9.0-next.fd1a8bb6 → 0.10.0-next.5dad48d.159
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/LICENSE +642 -277
- package/README.md +4 -2
- package/css/command-palette.css +9 -5
- package/css/decoration.css +3 -2
- package/css/glsp-sprotty.css +125 -14
- package/css/tool-palette.css +44 -27
- package/lib/base/action-dispatcher.d.ts +19 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +11 -8
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +1 -1
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/{args.d.ts → argumentable.d.ts} +2 -4
- package/lib/base/argumentable.d.ts.map +1 -0
- package/lib/base/{args.js → argumentable.js} +1 -1
- package/lib/base/argumentable.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +2 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +20 -4
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +9 -8
- 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 +3 -3
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts +40 -0
- package/lib/base/container-modules.d.ts.map +1 -0
- package/lib/base/container-modules.js +100 -0
- package/lib/base/container-modules.js.map +1 -0
- package/lib/base/di.config.d.ts +4 -2
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +10 -8
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +2 -1
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js +0 -15
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/{editor-context.d.ts → editor-context-service.d.ts} +18 -22
- package/lib/base/editor-context-service.d.ts.map +1 -0
- package/lib/base/{editor-context.js → editor-context-service.js} +6 -7
- package/lib/base/editor-context-service.js.map +1 -0
- package/lib/base/focus-tracker.d.ts +17 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +0 -15
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +19 -5
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +8 -12
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +16 -1
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +3 -2
- package/lib/base/model-initialization-constraint.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 +6 -7
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/types.d.ts +3 -1
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +4 -2
- package/lib/base/types.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +2 -0
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +6 -0
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +17 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +0 -15
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +17 -1
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +0 -15
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +18 -2
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +6 -6
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -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 +3 -3
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- 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 +16 -0
- 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 +36 -8
- 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 +18 -2
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +6 -6
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +17 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +6 -6
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +17 -2
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +7 -7
- 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 -5
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +17 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +0 -15
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +16 -1
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +5 -5
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.d.ts +0 -15
- package/lib/features/hints/di.config.d.ts.map +1 -1
- package/lib/features/hints/di.config.js +3 -3
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/model.d.ts +2 -1
- package/lib/features/hints/model.d.ts.map +1 -1
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +17 -45
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +3 -20
- 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 +4 -2
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +28 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +24 -3
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +1 -1
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +6 -2
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +16 -0
- package/lib/features/layout/freeform-layout.d.ts.map +1 -0
- package/lib/features/layout/freeform-layout.js +107 -0
- package/lib/features/layout/freeform-layout.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +17 -1
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +3 -3
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts +0 -15
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +4 -4
- package/lib/features/layout/layout-commands.spec.js.map +1 -1
- package/lib/features/layout/vbox-layout.d.ts +25 -0
- package/lib/features/layout/vbox-layout.d.ts.map +1 -0
- package/lib/features/layout/vbox-layout.js +188 -0
- package/lib/features/layout/vbox-layout.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.d.ts +0 -15
- package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +4 -4
- 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 +17 -2
- 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 +7 -8
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +2 -1
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.d.ts +0 -15
- package/lib/features/navigation/di.config.d.ts.map +1 -1
- package/lib/features/navigation/di.config.js +7 -6
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +19 -38
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +12 -67
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +6 -83
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -15
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +16 -16
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/save/di.config.js +2 -2
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +3 -9
- package/lib/features/save/save-keylistener.d.ts.map +1 -0
- package/lib/features/save/{save.js → save-keylistener.js} +4 -15
- package/lib/features/save/save-keylistener.js.map +1 -0
- package/lib/features/select/selection-service.d.ts +17 -1
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +5 -5
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +0 -16
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +18 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +16 -18
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +18 -2
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +30 -19
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +20 -2
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +5 -3
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +17 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +0 -15
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +17 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +0 -15
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +17 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +0 -15
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +17 -1
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +0 -15
- 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 +1 -1
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/palette-item.d.ts +1 -2
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
- package/lib/features/tool-palette/palette-item.js +3 -4
- package/lib/features/tool-palette/palette-item.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +19 -3
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +38 -31
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +18 -2
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +3 -18
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +20 -3
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +28 -13
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +17 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +3 -3
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +0 -15
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +4 -4
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +17 -2
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +4 -4
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +17 -1
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +5 -4
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +42 -0
- package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.js +128 -0
- package/lib/features/tools/marquee-behavior.js.map +1 -0
- package/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
- package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.spec.js +165 -0
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +24 -13
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +33 -121
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +17 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +0 -15
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +17 -2
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +4 -4
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +2 -2
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +5 -5
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +17 -1
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +2 -1
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts +0 -15
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +9 -9
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +18 -29
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +11 -49
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +18 -2
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +0 -15
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +6 -12
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -12
- package/lib/index.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +2 -4
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +21 -6
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/protocol-reexport.d.ts +45 -0
- package/lib/protocol-reexport.d.ts.map +1 -0
- package/lib/protocol-reexport.js +75 -0
- package/lib/protocol-reexport.js.map +1 -0
- package/lib/utils/argument-utils.d.ts.map +1 -1
- package/lib/utils/argument-utils.js +6 -6
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +2 -1
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/marker.d.ts +0 -38
- package/lib/utils/marker.d.ts.map +1 -1
- package/lib/utils/marker.js +6 -11
- package/lib/utils/marker.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +1 -1
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +0 -15
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +2 -1
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +0 -15
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts +0 -15
- package/lib/views/base-view-module.d.ts.map +1 -1
- package/lib/views/base-view-module.js +20 -20
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.d.ts +6 -0
- package/lib/views/compartments.d.ts.map +1 -0
- package/lib/{base/actions/edit-mode-action.js → views/compartments.js} +18 -26
- package/lib/views/compartments.js.map +1 -0
- package/lib/views/glsp-edge-view.d.ts +17 -1
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +0 -15
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/index.d.ts +1 -1
- package/lib/views/index.d.ts.map +1 -1
- package/lib/views/index.js +1 -1
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts +1 -0
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +17 -8
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner.d.ts +2 -1
- package/lib/views/rounded-corner.d.ts.map +1 -1
- package/package.json +8 -5
- package/src/base/action-dispatcher.ts +11 -10
- package/src/base/actions/focus-change-action.ts +1 -1
- package/src/base/{args.ts → argumentable.ts} +1 -4
- package/src/base/auto-complete/auto-complete-actions.ts +1 -1
- package/src/base/auto-complete/auto-complete-widget.ts +3 -4
- package/src/base/auto-complete/validation-decorator.ts +7 -6
- package/src/base/command-stack.ts +1 -2
- package/src/base/container-modules.ts +112 -0
- package/src/base/di.config.ts +6 -7
- package/src/base/drag-aware-mouse-listener.ts +2 -1
- package/src/base/{editor-context.ts → editor-context-service.ts} +2 -27
- package/src/base/focus-tracker.ts +2 -2
- package/src/base/model/update-model-command.ts +5 -12
- package/src/base/model-initialization-constraint.ts +3 -2
- package/src/base/tool-manager/glsp-tool-manager.ts +3 -5
- package/src/base/types.ts +4 -2
- package/src/features/change-bounds/model.ts +9 -1
- package/src/features/change-bounds/movement-restrictor.ts +2 -2
- package/src/features/change-bounds/snap.ts +3 -2
- package/src/features/command-palette/server-command-palette-provider.ts +3 -4
- package/src/features/context-menu/delete-element-context-menu.ts +3 -4
- package/src/features/context-menu/di.config.ts +0 -1
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +40 -11
- package/src/features/context-menu/server-context-menu-provider.ts +3 -4
- package/src/features/copy-paste/copy-paste-context-menu.ts +2 -13
- package/src/features/copy-paste/copy-paste-handler.ts +3 -4
- package/src/features/copy-paste/di.config.ts +2 -3
- package/src/features/decoration/decoration-placer.ts +2 -1
- package/src/features/edit-label/edit-label-validator.ts +1 -1
- package/src/features/hints/di.config.ts +2 -3
- package/src/features/hints/model.ts +2 -1
- package/src/features/hints/type-hints.ts +1 -64
- package/src/features/hover/di.config.ts +4 -3
- package/src/features/hover/hover.ts +27 -7
- package/src/features/layout/di.config.ts +8 -4
- package/src/features/layout/freeform-layout.ts +133 -0
- package/src/features/layout/layout-commands.spec.ts +3 -8
- package/src/features/layout/layout-commands.ts +1 -3
- package/src/features/layout/vbox-layout.ts +256 -0
- package/src/features/model-source-watcher/di.config.ts +3 -4
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +8 -4
- package/src/features/mouse-tool/mouse-tool.ts +2 -1
- package/src/features/navigation/di.config.ts +4 -10
- package/src/features/navigation/navigation-action-handler.ts +16 -62
- package/src/features/navigation/navigation-target-resolver.spec.ts +2 -4
- package/src/features/navigation/navigation-target-resolver.ts +8 -88
- package/src/features/save/di.config.ts +1 -1
- package/src/features/save/{save.ts → save-keylistener.ts} +2 -10
- package/src/features/select/selection-service.spec.ts +2 -2
- package/src/features/select/selection-service.ts +1 -5
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +19 -6
- package/src/features/tool-feedback/creation-tool-feedback.ts +34 -8
- package/src/features/tool-feedback/css-feedback.ts +5 -3
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +1 -3
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +2 -1
- package/src/features/tool-feedback/marquee-tool-feedback.ts +1 -3
- package/src/features/tool-feedback/view.tsx +2 -2
- package/src/features/tool-palette/di.config.ts +1 -3
- package/src/features/tool-palette/palette-item.ts +1 -3
- package/src/features/tool-palette/tool-palette.ts +32 -26
- package/src/features/tools/base-glsp-tool.ts +4 -4
- package/src/features/tools/change-bounds-tool.ts +36 -18
- package/src/features/tools/delete-tool.ts +1 -3
- package/src/features/tools/di.config.ts +2 -3
- package/src/features/tools/edge-creation-tool.ts +1 -3
- package/src/features/tools/edge-edit-tool.ts +3 -4
- package/src/features/tools/marquee-behavior.spec.ts +175 -0
- package/src/features/tools/marquee-behavior.ts +158 -0
- package/src/features/tools/marquee-mouse-tool.ts +35 -146
- package/src/features/tools/marquee-tool.ts +2 -2
- package/src/features/tools/node-creation-tool.ts +1 -3
- package/src/features/validation/issue-marker.ts +2 -3
- package/src/features/validation/marker-navigator.spec.ts +3 -5
- package/src/features/validation/marker-navigator.ts +1 -4
- package/src/features/validation/validate.ts +4 -33
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +3 -3
- package/src/index.ts +6 -12
- package/src/model-source/glsp-diagram-server.ts +12 -14
- package/src/protocol-reexport.ts +64 -0
- package/src/utils/argument-utils.ts +1 -2
- package/src/utils/layout-utils.ts +2 -2
- package/src/utils/marker.ts +2 -26
- package/src/utils/smodel-util.ts +1 -1
- package/src/utils/viewpoint-util.ts +1 -2
- package/src/views/base-view-module.ts +1 -2
- package/src/{base/actions/edit-mode-action.ts → views/compartments.tsx} +18 -13
- package/src/views/glsp-edge-view.tsx +2 -2
- package/src/views/index.ts +1 -1
- package/src/views/issue-marker-view.tsx +18 -8
- package/src/views/rounded-corner.ts +2 -2
- package/lib/base/actions/context-actions.d.ts +0 -36
- package/lib/base/actions/context-actions.d.ts.map +0 -1
- package/lib/base/actions/context-actions.js +0 -44
- package/lib/base/actions/context-actions.js.map +0 -1
- package/lib/base/actions/edit-mode-action.d.ts +0 -13
- package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
- package/lib/base/actions/edit-mode-action.js.map +0 -1
- package/lib/base/actions/edit-validation-actions.d.ts +0 -78
- package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
- package/lib/base/actions/edit-validation-actions.js +0 -80
- package/lib/base/actions/edit-validation-actions.js.map +0 -1
- package/lib/base/args.d.ts.map +0 -1
- package/lib/base/args.js.map +0 -1
- package/lib/base/editor-context.d.ts.map +0 -1
- package/lib/base/editor-context.js.map +0 -1
- package/lib/base/operations/operation.d.ts +0 -135
- package/lib/base/operations/operation.d.ts.map +0 -1
- package/lib/base/operations/operation.js +0 -191
- package/lib/base/operations/operation.js.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.js +0 -58
- package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
- package/lib/features/hints/request-type-hints-action.d.ts +0 -32
- package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
- package/lib/features/hints/request-type-hints-action.js +0 -28
- package/lib/features/hints/request-type-hints-action.js.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts +0 -24
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.js +0 -16
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
- package/lib/features/save/save.d.ts.map +0 -1
- package/lib/features/save/save.js.map +0 -1
- package/lib/features/undo-redo/model.d.ts +0 -27
- package/lib/features/undo-redo/model.d.ts.map +0 -1
- package/lib/features/undo-redo/model.js +0 -18
- package/lib/features/undo-redo/model.js.map +0 -1
- package/lib/model-source/glsp-server-status.d.ts +0 -30
- package/lib/model-source/glsp-server-status.d.ts.map +0 -1
- package/lib/model-source/glsp-server-status.js +0 -44
- package/lib/model-source/glsp-server-status.js.map +0 -1
- package/lib/utils/array-utils.d.ts +0 -28
- package/lib/utils/array-utils.d.ts.map +0 -1
- package/lib/utils/array-utils.js +0 -56
- package/lib/utils/array-utils.js.map +0 -1
- package/lib/views/default-types.d.ts +0 -37
- package/lib/views/default-types.d.ts.map +0 -1
- package/lib/views/default-types.js +0 -47
- package/lib/views/default-types.js.map +0 -1
- package/src/base/actions/context-actions.ts +0 -43
- package/src/base/actions/edit-validation-actions.ts +0 -115
- package/src/base/operations/operation.ts +0 -205
- package/src/features/copy-paste/copy-paste-actions.ts +0 -63
- package/src/features/hints/request-type-hints-action.ts +0 -41
- package/src/features/model-source-watcher/model-source-changed-action.ts +0 -26
- package/src/model-source/glsp-server-status.ts +0 -38
- package/src/utils/array-utils.ts +0 -57
- package/src/views/default-types.ts +0 -48
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, isSetModelAction, UpdateModelAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
ActionHandlerRegistry,
|
|
20
20
|
Command,
|
|
21
21
|
CommandActionHandler,
|
|
@@ -23,13 +23,10 @@ import {
|
|
|
23
23
|
CommandReturn,
|
|
24
24
|
IActionHandler,
|
|
25
25
|
ILogger,
|
|
26
|
-
SetModelAction,
|
|
27
|
-
SetModelCommand,
|
|
28
26
|
SModelRoot,
|
|
29
|
-
TYPES
|
|
27
|
+
TYPES,
|
|
28
|
+
UpdateModelCommand
|
|
30
29
|
} from 'sprotty';
|
|
31
|
-
import { UpdateModelAction, UpdateModelCommand } from 'sprotty/lib/features/update/update-model';
|
|
32
|
-
|
|
33
30
|
import { IFeedbackActionDispatcher } from '../../features/tool-feedback/feedback-action-dispatcher';
|
|
34
31
|
import { FeedbackCommand } from '../../features/tool-feedback/model';
|
|
35
32
|
import { GLSP_TYPES } from '../types';
|
|
@@ -45,17 +42,13 @@ export class SetModelActionHandler implements IActionHandler {
|
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
|
|
48
|
-
export function isSetModelAction(action: Action): action is SetModelAction {
|
|
49
|
-
return action !== undefined && action.kind === SetModelCommand.KIND && (action as SetModelAction).newRoot !== undefined;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
45
|
export interface SModelRootListener {
|
|
53
46
|
modelRootChanged(root: Readonly<SModelRoot>): void;
|
|
54
47
|
}
|
|
55
48
|
|
|
56
49
|
/**
|
|
57
|
-
* A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their
|
|
58
|
-
* to the `newRoot` before performing the update
|
|
50
|
+
* A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their
|
|
51
|
+
* feedback to the `newRoot` before performing the update
|
|
59
52
|
*/
|
|
60
53
|
@injectable()
|
|
61
54
|
export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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,8 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, UpdateModelAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
+
import { InitializeCanvasBoundsAction } from 'sprotty';
|
|
18
19
|
import { Deferred } from 'sprotty/lib/utils/async';
|
|
19
20
|
|
|
20
21
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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,12 +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 { distinctAdd, EditMode } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
17
18
|
import { Tool, ToolManager } from 'sprotty';
|
|
18
|
-
|
|
19
|
-
import { distinctAdd } from '../../utils/array-utils';
|
|
20
|
-
import { EditMode } from '../actions/edit-mode-action';
|
|
21
|
-
import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context';
|
|
19
|
+
import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context-service';
|
|
22
20
|
import { GLSP_TYPES } from '../types';
|
|
23
21
|
|
|
24
22
|
export interface IGLSPToolManager extends ToolManager {
|
package/src/base/types.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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
|
|
@@ -33,5 +33,7 @@ export const GLSP_TYPES = {
|
|
|
33
33
|
IGLSPToolManager: Symbol.for('IGLSPToolManager'),
|
|
34
34
|
ITool: Symbol.for('ITool'),
|
|
35
35
|
IDefaultTool: Symbol.for('IDefaultTool'),
|
|
36
|
-
IEditModeListener: Symbol.for('IEditModeListener')
|
|
36
|
+
IEditModeListener: Symbol.for('IEditModeListener'),
|
|
37
|
+
LayoutRegistration: Symbol.for('LayoutRegistration'),
|
|
38
|
+
IMarqueeBehavior: Symbol.for('IMarqueeBehavior')
|
|
37
39
|
};
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
|
|
30
30
|
export const resizeFeature = Symbol('resizeFeature');
|
|
31
31
|
|
|
32
|
-
export interface Resizable extends BoundsAware, Selectable {
|
|
32
|
+
export interface Resizable extends BoundsAware, Selectable {}
|
|
33
33
|
|
|
34
34
|
export function isResizable(element: SModelElement): element is SParentElement & Resizable {
|
|
35
35
|
return isBoundsAware(element) && isSelectable(element) && element instanceof SParentElement && element.hasFeature(resizeFeature);
|
|
@@ -61,6 +61,14 @@ export class SResizeHandle extends SChildElement implements Hoverable {
|
|
|
61
61
|
hasFeature(feature: symbol): boolean {
|
|
62
62
|
return feature === hoverFeedbackFeature;
|
|
63
63
|
}
|
|
64
|
+
|
|
65
|
+
isNwSeResize(): boolean {
|
|
66
|
+
return this.location === ResizeHandleLocation.TopLeft || this.location === ResizeHandleLocation.BottomRight;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
isNeSwResize(): boolean {
|
|
70
|
+
return this.location === ResizeHandleLocation.TopRight || this.location === ResizeHandleLocation.BottomLeft;
|
|
71
|
+
}
|
|
64
72
|
}
|
|
65
73
|
|
|
66
74
|
export function addResizeHandles(element: SParentElement): void {
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable } from 'inversify';
|
|
17
|
-
import { BoundsAware,
|
|
18
|
-
|
|
18
|
+
import { BoundsAware, SModelElement, SNode, SParentElement } from 'sprotty';
|
|
19
19
|
import { toAbsoluteBounds } from '../../utils/viewpoint-util';
|
|
20
20
|
import { ModifyCSSFeedbackAction } from '../tool-feedback/css-feedback';
|
|
21
21
|
import { isBoundsAwareMoveable, SResizeHandle } from './model';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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,8 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable } from 'inversify';
|
|
17
|
-
import { ISnapper,
|
|
18
|
+
import { ISnapper, SModelElement } from 'sprotty';
|
|
18
19
|
|
|
19
20
|
@injectable()
|
|
20
21
|
export class GridSnapper implements ISnapper {
|
|
@@ -13,12 +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, isSetContextActionsAction, LabeledAction, Point, RequestContextActions } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
18
|
+
import { ICommandPaletteActionProvider, SModelElement, TYPES } from 'sprotty';
|
|
19
19
|
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
20
|
-
import {
|
|
21
|
-
import { EditorContextService } from '../../base/editor-context';
|
|
20
|
+
import { EditorContextService } from '../../base/editor-context-service';
|
|
22
21
|
|
|
23
22
|
export namespace ServerCommandPalette {
|
|
24
23
|
export const CONTEXT_ID = 'command-palette';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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,11 +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 { DeleteElementOperation } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import { IContextMenuItemProvider, MenuItem, Point, SModelRoot } from 'sprotty';
|
|
18
|
-
|
|
19
|
-
import { EditorContextService, EditorContextServiceProvider } from '../../base/editor-context';
|
|
20
|
-
import { DeleteElementOperation } from '../../base/operations/operation';
|
|
19
|
+
import { EditorContextService, EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
21
20
|
import { GLSP_TYPES } from '../../base/types';
|
|
22
21
|
|
|
23
22
|
@injectable()
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
17
|
import { ContextMenuProviderRegistry, IContextMenuService, TYPES } from 'sprotty';
|
|
18
|
-
|
|
19
18
|
import { SelectionServiceAwareContextMenuMouseListener } from './selection-service-aware-context-menu-mouse-listener';
|
|
20
19
|
import { ServerContextMenuItemProvider } from './server-context-menu-provider';
|
|
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
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
SModelElement,
|
|
25
25
|
TYPES
|
|
26
26
|
} from 'sprotty';
|
|
27
|
-
|
|
27
|
+
import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
|
|
28
28
|
import { GLSP_TYPES } from '../../base/types';
|
|
29
29
|
import { SelectionService } from '../select/selection-service';
|
|
30
30
|
|
|
@@ -34,18 +34,47 @@ export class SelectionServiceAwareContextMenuMouseListener extends MouseListener
|
|
|
34
34
|
@inject(TYPES.IContextMenuProviderRegistry) @optional() protected readonly menuProvider: ContextMenuProviderRegistry;
|
|
35
35
|
@inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
|
|
36
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Opens the context menu on right-click.
|
|
39
|
+
*/
|
|
37
40
|
mouseDown(target: SModelElement, event: MouseEvent): (Action | Promise<Action>)[] {
|
|
38
41
|
if (event.button === 2 && this.contextMenuService && this.menuProvider) {
|
|
39
|
-
|
|
40
|
-
const selectableTarget = findParentByFeature(target, isSelectable);
|
|
41
|
-
if (selectableTarget) {
|
|
42
|
-
selectableTarget.selected = true;
|
|
43
|
-
this.selectionService.updateSelection(target.root, [selectableTarget.id], []);
|
|
44
|
-
}
|
|
45
|
-
Promise.all([this.contextMenuService(), this.menuProvider.getItems(target.root, mousePosition)]).then(
|
|
46
|
-
([menuService, menuItems]) => menuService.show(menuItems, mousePosition)
|
|
47
|
-
);
|
|
42
|
+
return this.openContextMenu(event, target);
|
|
48
43
|
}
|
|
49
44
|
return [];
|
|
50
45
|
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Opens the context menu.
|
|
49
|
+
*
|
|
50
|
+
* - query the element on the click-target
|
|
51
|
+
* - select the element
|
|
52
|
+
* - query the context menu service and the context menu elements
|
|
53
|
+
* - show the context menu
|
|
54
|
+
* - send a focus state change to indicate that the diagram becomes inactive, once the context menu is shown
|
|
55
|
+
*
|
|
56
|
+
* When the context menu is closed, we focus the diagram element again.
|
|
57
|
+
*/
|
|
58
|
+
protected openContextMenu(event: MouseEvent, target: SModelElement): Promise<Action>[] {
|
|
59
|
+
const mousePosition = { x: event.x, y: event.y };
|
|
60
|
+
const selectableTarget = findParentByFeature(target, isSelectable);
|
|
61
|
+
if (selectableTarget) {
|
|
62
|
+
selectableTarget.selected = true;
|
|
63
|
+
this.selectionService.updateSelection(target.root, [selectableTarget.id], []);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const result = Promise.all([this.contextMenuService(), this.menuProvider.getItems(target.root, mousePosition)])
|
|
67
|
+
.then(([menuService, menuItems]) => menuService.show(menuItems, mousePosition, () => this.focusEventTarget(event)))
|
|
68
|
+
.then((): Action => new FocusStateChangedAction(false));
|
|
69
|
+
|
|
70
|
+
return [result];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
protected focusEventTarget(event: MouseEvent): void {
|
|
74
|
+
const targetElement = event.target instanceof SVGElement ? event.target : undefined;
|
|
75
|
+
const svgParentElement = targetElement?.closest('svg');
|
|
76
|
+
if (svgParentElement) {
|
|
77
|
+
svgParentElement.focus();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
51
80
|
}
|
|
@@ -13,12 +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, isSetContextActionsAction, LabeledAction, Point, RequestContextActions } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
18
|
+
import { IContextMenuItemProvider, isSelected, SModelElement, TYPES } from 'sprotty';
|
|
19
19
|
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
20
|
-
import {
|
|
21
|
-
import { EditorContextService } from '../../base/editor-context';
|
|
20
|
+
import { EditorContextService } from '../../base/editor-context-service';
|
|
22
21
|
|
|
23
22
|
export namespace ServerContextMenu {
|
|
24
23
|
export const CONTEXT_ID = 'context-menu';
|
|
@@ -13,20 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, GLSPServerStatusAction, Point, ServerMessageAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
Action,
|
|
19
|
-
IActionDispatcher,
|
|
20
|
-
IActionHandler,
|
|
21
|
-
IContextMenuItemProvider,
|
|
22
|
-
isSelected,
|
|
23
|
-
MenuItem,
|
|
24
|
-
Point,
|
|
25
|
-
SModelRoot,
|
|
26
|
-
TYPES
|
|
27
|
-
} from 'sprotty/lib';
|
|
28
|
-
|
|
29
|
-
import { GLSPServerStatusAction, ServerMessageAction } from '../../model-source/glsp-server-status';
|
|
18
|
+
import { IActionDispatcher, IActionHandler, IContextMenuItemProvider, isSelected, MenuItem, SModelRoot, TYPES } from 'sprotty';
|
|
30
19
|
|
|
31
20
|
export class InvokeCopyAction implements Action {
|
|
32
21
|
static readonly KIND = 'invoke-copy';
|
|
@@ -13,14 +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 { ClipboardData, CutOperation, PasteOperation, RequestClipboardDataAction, SetClipboardDataAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import { TYPES, ViewerOptions } from 'sprotty';
|
|
18
19
|
import { v4 as uuid } from 'uuid';
|
|
19
|
-
|
|
20
20
|
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
21
|
-
import { EditorContextService } from '../../base/editor-context';
|
|
21
|
+
import { EditorContextService } from '../../base/editor-context-service';
|
|
22
22
|
import { GLSP_TYPES } from '../../base/types';
|
|
23
|
-
import { ClipboardData, CutOperation, PasteOperation, RequestClipboardDataAction } from './copy-paste-actions';
|
|
24
23
|
|
|
25
24
|
export interface ICopyPasteHandler {
|
|
26
25
|
handleCopy(event: ClipboardEvent): void;
|
|
@@ -105,7 +104,7 @@ export class ServerCopyPasteHandler implements ICopyPasteHandler {
|
|
|
105
104
|
const clipboardId = uuid();
|
|
106
105
|
event.clipboardData.setData(CLIPBOARD_DATA_FORMAT, toClipboardId(clipboardId));
|
|
107
106
|
this.actionDispatcher
|
|
108
|
-
.request(RequestClipboardDataAction.create(this.editorContext.get()))
|
|
107
|
+
.request<SetClipboardDataAction>(RequestClipboardDataAction.create(this.editorContext.get()))
|
|
109
108
|
.then(action => this.clipboadService.put(action.clipboardData, clipboardId));
|
|
110
109
|
event.preventDefault();
|
|
111
110
|
} else {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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 { configureActionHandler } from 'sprotty
|
|
18
|
-
|
|
17
|
+
import { configureActionHandler } from 'sprotty';
|
|
19
18
|
import { GLSP_TYPES } from '../../base/types';
|
|
20
19
|
import {
|
|
21
20
|
CopyPasteContextMenuItemProvider,
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable } from 'inversify';
|
|
17
|
-
import { Decoration, DecorationPlacer, isSizeable, ORIGIN_POINT,
|
|
18
|
+
import { Decoration, DecorationPlacer, isSizeable, ORIGIN_POINT, SChildElement, SModelElement, SRoutableElement } from 'sprotty';
|
|
18
19
|
|
|
19
20
|
@injectable()
|
|
20
21
|
export class GlspDecorationPlacer extends DecorationPlacer {
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { isSetEditValidationResultAction, RequestEditValidationAction, ValidationStatus } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
19
|
Action,
|
|
@@ -26,7 +27,6 @@ import {
|
|
|
26
27
|
} from 'sprotty';
|
|
27
28
|
|
|
28
29
|
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
29
|
-
import { isSetEditValidationResultAction, RequestEditValidationAction, ValidationStatus } from '../../base/actions/edit-validation-actions';
|
|
30
30
|
|
|
31
31
|
export namespace LabelEditValidation {
|
|
32
32
|
export const CONTEXT_ID = 'label-edit';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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,11 +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 { SetTypeHintsAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { ContainerModule } from 'inversify';
|
|
17
18
|
import { configureActionHandler, configureCommand } from 'sprotty';
|
|
18
|
-
|
|
19
19
|
import { GLSP_TYPES } from '../../base/types';
|
|
20
|
-
import { SetTypeHintsAction } from './request-type-hints-action';
|
|
21
20
|
import { ApplyTypeHintsCommand, TypeHintProvider } from './type-hints';
|
|
22
21
|
|
|
23
22
|
const modelHintsModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { SModelElementSchema } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { SModelElement, SModelExtension } from 'sprotty';
|
|
17
18
|
|
|
18
19
|
export const containerFeature = Symbol('containable');
|
|
19
20
|
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, EdgeTypeHint, isSetTypeHintsAction, ShapeTypeHint, TypeHint } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
CommandExecutionContext,
|
|
20
20
|
CommandReturn,
|
|
21
21
|
Connectable,
|
|
@@ -28,12 +28,10 @@ import {
|
|
|
28
28
|
moveFeature,
|
|
29
29
|
SEdge,
|
|
30
30
|
SModelElement,
|
|
31
|
-
SModelElementSchema,
|
|
32
31
|
SModelRoot,
|
|
33
32
|
SShapeElement,
|
|
34
33
|
TYPES
|
|
35
34
|
} from 'sprotty';
|
|
36
|
-
|
|
37
35
|
import { GLSP_TYPES } from '../../base/types';
|
|
38
36
|
import { getElementTypeId, hasCompatibleType } from '../../utils/smodel-util';
|
|
39
37
|
import { resizeFeature } from '../change-bounds/model';
|
|
@@ -41,67 +39,6 @@ import { reconnectFeature } from '../reconnect/model';
|
|
|
41
39
|
import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
|
|
42
40
|
import { FeedbackCommand } from '../tool-feedback/model';
|
|
43
41
|
import { Containable, containerFeature, reparentFeature } from './model';
|
|
44
|
-
import { isSetTypeHintsAction } from './request-type-hints-action';
|
|
45
|
-
|
|
46
|
-
export abstract class TypeHint {
|
|
47
|
-
/**
|
|
48
|
-
The id of the element.
|
|
49
|
-
*/
|
|
50
|
-
readonly elementTypeId: string;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Specifies whether the element can be relocated.
|
|
54
|
-
*/
|
|
55
|
-
readonly repositionable: boolean;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Specifices wheter the element can be deleted
|
|
59
|
-
*/
|
|
60
|
-
readonly deletable: boolean;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export class ShapeTypeHint extends TypeHint {
|
|
64
|
-
/**
|
|
65
|
-
* Specifies whether the element can be resized.
|
|
66
|
-
*/
|
|
67
|
-
readonly resizable: boolean;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Specifies whether the element can be moved to another parent
|
|
71
|
-
*/
|
|
72
|
-
readonly reparentable: boolean;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* The types of elements that can be contained by this element (if any)
|
|
76
|
-
*/
|
|
77
|
-
readonly containableElementTypeIds?: string[];
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export class EdgeTypeHint extends TypeHint {
|
|
81
|
-
/**
|
|
82
|
-
* Specifies whether the routing of this element can be changed.
|
|
83
|
-
*/
|
|
84
|
-
readonly routable: boolean;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Allowed source element types for this edge type
|
|
88
|
-
*/
|
|
89
|
-
readonly sourceElementTypeIds: string[];
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Allowed targe element types for this edge type
|
|
93
|
-
*/
|
|
94
|
-
readonly targetElementTypeIds: string[];
|
|
95
|
-
|
|
96
|
-
isAllowedSource(input: SModelElement | SModelElementSchema | string): boolean {
|
|
97
|
-
const type = getElementTypeId(input);
|
|
98
|
-
return this.sourceElementTypeIds.includes(type);
|
|
99
|
-
}
|
|
100
|
-
isAllowedTarget(input: SModelElement | SModelElementSchema | string): boolean {
|
|
101
|
-
const type = getElementTypeId(input);
|
|
102
|
-
return this.targetElementTypeIds.includes(type);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
42
|
|
|
106
43
|
@injectable()
|
|
107
44
|
export class ApplyTypeHintsAction implements Action {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
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
|
|
@@ -30,13 +30,13 @@ import {
|
|
|
30
30
|
TYPES
|
|
31
31
|
} from 'sprotty';
|
|
32
32
|
import { PopupPositionUpdater } from 'sprotty/lib/features/hover/popup-position-updater';
|
|
33
|
-
|
|
34
33
|
import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
|
|
35
34
|
import { GlspHoverMouseListener } from './hover';
|
|
36
35
|
|
|
37
36
|
const glspHoverModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
38
37
|
bind(TYPES.PopupVNodePostprocessor).to(PopupPositionUpdater).inSingletonScope();
|
|
39
|
-
bind(
|
|
38
|
+
bind(GlspHoverMouseListener).toSelf().inSingletonScope();
|
|
39
|
+
bind(TYPES.MouseListener).toService(GlspHoverMouseListener);
|
|
40
40
|
bind(TYPES.PopupMouseListener).to(PopupHoverMouseListener);
|
|
41
41
|
bind(TYPES.KeyListener).to(HoverKeyListener);
|
|
42
42
|
bind<HoverState>(TYPES.HoverState).toConstantValue({
|
|
@@ -56,6 +56,7 @@ const glspHoverModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
|
56
56
|
configureActionHandler(context, SetViewportCommand.KIND, ClosePopupActionHandler);
|
|
57
57
|
configureActionHandler(context, MoveCommand.KIND, ClosePopupActionHandler);
|
|
58
58
|
configureActionHandler(context, FocusStateChangedAction.KIND, ClosePopupActionHandler);
|
|
59
|
+
configureActionHandler(context, FocusStateChangedAction.KIND, GlspHoverMouseListener);
|
|
59
60
|
});
|
|
60
61
|
|
|
61
62
|
export default glspHoverModule;
|
|
@@ -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,26 +13,46 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, Bounds, RequestPopupModelAction, SetPopupModelAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
|
-
Bounds,
|
|
20
19
|
EMPTY_ROOT,
|
|
20
|
+
HoverFeedbackAction,
|
|
21
21
|
HoverMouseListener,
|
|
22
|
+
IActionHandler,
|
|
23
|
+
ICommand,
|
|
22
24
|
PreRenderedElementSchema,
|
|
23
|
-
RequestPopupModelAction,
|
|
24
|
-
SetPopupModelAction,
|
|
25
25
|
SIssueMarker,
|
|
26
26
|
SIssueSeverity,
|
|
27
27
|
SModelElement,
|
|
28
28
|
SModelElementSchema,
|
|
29
29
|
SModelRootSchema
|
|
30
30
|
} from 'sprotty';
|
|
31
|
-
|
|
31
|
+
import { isFocusStateChangedAction } from '../../base/actions/focus-change-action';
|
|
32
32
|
import { GIssueMarker } from '../validation/issue-marker';
|
|
33
33
|
|
|
34
34
|
@injectable()
|
|
35
|
-
export class GlspHoverMouseListener extends HoverMouseListener {
|
|
35
|
+
export class GlspHoverMouseListener extends HoverMouseListener implements IActionHandler {
|
|
36
|
+
/**
|
|
37
|
+
* Stops mouse over timer and remove hover feedback, if focus is lost.
|
|
38
|
+
*
|
|
39
|
+
* This fixes strange effects that appear if the mouse left the element via e.g. a context menu,
|
|
40
|
+
* which explicitly removes the focus of the diagram.
|
|
41
|
+
* @see SelectionServiceAwareContextMenuMouseListener
|
|
42
|
+
* @param action should be a `FocusStateChangedAction`
|
|
43
|
+
* @returns a `HoverFeedbackAction` resetting the state, if the specified action indicates lost focus
|
|
44
|
+
*/
|
|
45
|
+
handle(action: Action): void | Action | ICommand {
|
|
46
|
+
if (isFocusStateChangedAction(action) && !action.hasFocus) {
|
|
47
|
+
this.stopMouseOverTimer();
|
|
48
|
+
if (this.lastHoverFeedbackElementId) {
|
|
49
|
+
const previousTargetId = this.lastHoverFeedbackElementId;
|
|
50
|
+
this.lastHoverFeedbackElementId = undefined;
|
|
51
|
+
return new HoverFeedbackAction(previousTargetId, false);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
36
56
|
protected startMouseOverTimer(target: SModelElement, event: MouseEvent): Promise<Action> {
|
|
37
57
|
this.stopMouseOverTimer();
|
|
38
58
|
return new Promise(resolve => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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,13 +14,17 @@
|
|
|
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 } from 'sprotty';
|
|
18
|
-
|
|
17
|
+
import { configureCommand, configureLayout, VBoxLayouter } from 'sprotty';
|
|
18
|
+
import { FreeFormLayouter } from './freeform-layout';
|
|
19
19
|
import { AlignElementsCommand, ResizeElementsCommand } from './layout-commands';
|
|
20
|
+
import { VBoxLayouterExt } from './vbox-layout';
|
|
20
21
|
|
|
21
|
-
const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
22
|
+
const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
22
23
|
configureCommand({ bind, isBound }, ResizeElementsCommand);
|
|
23
24
|
configureCommand({ bind, isBound }, AlignElementsCommand);
|
|
25
|
+
|
|
26
|
+
rebind(VBoxLayouter).to(VBoxLayouterExt);
|
|
27
|
+
configureLayout({ bind, isBound }, FreeFormLayouter.KIND, FreeFormLayouter);
|
|
24
28
|
});
|
|
25
29
|
|
|
26
30
|
export default layoutCommandsModule;
|