@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,97 +13,17 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import {
|
|
17
|
+
isSetResolvedNavigationTargets,
|
|
18
|
+
NavigationTarget,
|
|
19
|
+
ResolveNavigationTargetAction,
|
|
20
|
+
SetResolvedNavigationTargetAction
|
|
21
|
+
} from '@eclipse-glsp/protocol';
|
|
16
22
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { Args } from '../../base/args';
|
|
20
|
-
import { EditorContextServiceProvider } from '../../base/editor-context';
|
|
23
|
+
import { IActionDispatcher, ILogger, ResponseAction, TYPES } from 'sprotty';
|
|
24
|
+
import { EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
21
25
|
import { GLSP_TYPES } from '../../base/types';
|
|
22
26
|
|
|
23
|
-
export interface NavigationTarget {
|
|
24
|
-
uri: string;
|
|
25
|
-
label?: string;
|
|
26
|
-
args?: Args;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export namespace NavigationTarget {
|
|
30
|
-
export const ELEMENT_IDS = 'elementIds';
|
|
31
|
-
export const ELEMENT_IDS_SEPARATOR = '&';
|
|
32
|
-
export const TEXT_LINE = 'line';
|
|
33
|
-
export const TEXT_COLUMN = 'column';
|
|
34
|
-
|
|
35
|
-
export function hasArguments(target: NavigationTarget): boolean {
|
|
36
|
-
return target.args !== undefined && Object.keys(target.args).length > 0;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function addArgument(target: NavigationTarget, key: string, value: string | number | boolean): void {
|
|
40
|
-
if (target.args === undefined) {
|
|
41
|
-
target.args = {};
|
|
42
|
-
}
|
|
43
|
-
target.args[key] = value;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function getElementIds(target: NavigationTarget): string[] {
|
|
47
|
-
if (target.args === undefined || target.args[NavigationTarget.ELEMENT_IDS] === undefined) {
|
|
48
|
-
return [];
|
|
49
|
-
}
|
|
50
|
-
const elementIdsValue = target.args[NavigationTarget.ELEMENT_IDS].toString();
|
|
51
|
-
return elementIdsValue.split(NavigationTarget.ELEMENT_IDS_SEPARATOR);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export function setElementIds(target: NavigationTarget, elementIds: string[]): string {
|
|
55
|
-
if (target.args === undefined) {
|
|
56
|
-
target.args = {};
|
|
57
|
-
}
|
|
58
|
-
return (target.args[NavigationTarget.ELEMENT_IDS] = elementIds.join(NavigationTarget.ELEMENT_IDS_SEPARATOR));
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export function setTextPosition(target: NavigationTarget, position: TextPosition | undefined): void {
|
|
62
|
-
if (position) {
|
|
63
|
-
if (target.args === undefined) {
|
|
64
|
-
target.args = {};
|
|
65
|
-
}
|
|
66
|
-
target.args[NavigationTarget.TEXT_LINE] = position.line;
|
|
67
|
-
target.args[NavigationTarget.TEXT_COLUMN] = position.character;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export function getTextPosition(target: NavigationTarget): TextPosition | undefined {
|
|
72
|
-
if (
|
|
73
|
-
target.args === undefined ||
|
|
74
|
-
target.args[NavigationTarget.TEXT_LINE] === undefined ||
|
|
75
|
-
target.args[NavigationTarget.TEXT_COLUMN] === undefined
|
|
76
|
-
) {
|
|
77
|
-
return undefined;
|
|
78
|
-
}
|
|
79
|
-
return {
|
|
80
|
-
line: Number(target.args[NavigationTarget.TEXT_LINE]),
|
|
81
|
-
character: Number(target.args[NavigationTarget.TEXT_COLUMN])
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export interface TextPosition {
|
|
87
|
-
line: number;
|
|
88
|
-
character: number;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export class ResolveNavigationTargetAction implements RequestAction<SetResolvedNavigationTargetAction> {
|
|
92
|
-
static readonly KIND = 'resolveNavigationTarget';
|
|
93
|
-
kind = ResolveNavigationTargetAction.KIND;
|
|
94
|
-
constructor(readonly navigationTarget: NavigationTarget, public readonly requestId: string = generateRequestId()) {}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export class SetResolvedNavigationTargetAction implements ResponseAction {
|
|
98
|
-
static readonly KIND = 'setResolvedNavigationTarget';
|
|
99
|
-
kind = SetResolvedNavigationTargetAction.KIND;
|
|
100
|
-
constructor(readonly elementIds: string[] = [], readonly args?: Args, readonly responseId: string = '') {}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export function isSetResolvedNavigationTargets(action: Action): action is SetResolvedNavigationTargetAction {
|
|
104
|
-
return action !== undefined && action.kind === SetResolvedNavigationTargetAction.KIND;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
27
|
/**
|
|
108
28
|
* Resolves `NavigationTargets` to element ids.
|
|
109
29
|
*
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
17
|
import { TYPES } from 'sprotty';
|
|
18
18
|
|
|
19
|
-
import { SaveModelKeyboardListener } from './save';
|
|
19
|
+
import { SaveModelKeyboardListener } from './save-keylistener';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* This module is not required the diagram is deployed in Theia with the `GLSPDiagramWidget`
|
|
@@ -13,18 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action,
|
|
16
|
+
import { Action, SaveModelAction } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { KeyListener, SModelRoot } from 'sprotty';
|
|
17
18
|
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
18
19
|
|
|
19
|
-
export class SaveModelAction implements Action {
|
|
20
|
-
static readonly KIND = 'saveModel';
|
|
21
|
-
constructor(public readonly fileUri?: string, public readonly kind: string = SaveModelAction.KIND) {}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function isSaveModelAction(action: Action): action is SaveModelAction {
|
|
25
|
-
return action.kind === SaveModelAction.KIND;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
20
|
export class SaveModelKeyboardListener extends KeyListener {
|
|
29
21
|
keyDown(_element: SModelRoot, event: KeyboardEvent): Action[] {
|
|
30
22
|
if (matchesKeystroke(event, 'KeyS', 'ctrlCmd')) {
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
/* eslint-disable import/no-deprecated,no-unused-expressions */
|
|
17
|
+
import { Action } from '@eclipse-glsp/protocol';
|
|
17
18
|
import { AssertionError, expect } from 'chai';
|
|
18
19
|
import { Container, injectable } from 'inversify';
|
|
19
|
-
import {
|
|
20
|
-
|
|
20
|
+
import { defaultModule, SGraphFactory, SModelElementSchema, SModelRoot, TYPES } from 'sprotty';
|
|
21
21
|
import { GLSP_TYPES } from '../../base/types';
|
|
22
22
|
import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
|
|
23
23
|
import { SelectFeedbackAction } from './select-feedback-action';
|
|
@@ -13,17 +13,15 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, distinctAdd, remove, SelectAction, SelectAllAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable, multiInject, optional } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
Command,
|
|
20
20
|
CommandExecutionContext,
|
|
21
21
|
ILogger,
|
|
22
22
|
isSelectable,
|
|
23
23
|
isSelected,
|
|
24
24
|
SChildElement,
|
|
25
|
-
SelectAction,
|
|
26
|
-
SelectAllAction,
|
|
27
25
|
SelectAllCommand as SprottySelectAllCommand,
|
|
28
26
|
SelectCommand as SprottySelectCommand,
|
|
29
27
|
SModelElement,
|
|
@@ -31,10 +29,8 @@ import {
|
|
|
31
29
|
SParentElement,
|
|
32
30
|
TYPES
|
|
33
31
|
} from 'sprotty';
|
|
34
|
-
|
|
35
32
|
import { SModelRootListener } from '../../base/model/update-model-command';
|
|
36
33
|
import { GLSP_TYPES } from '../../base/types';
|
|
37
|
-
import { distinctAdd, remove } from '../../utils/array-utils';
|
|
38
34
|
import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
|
|
39
35
|
import { SelectFeedbackAction } from './select-feedback-action';
|
|
40
36
|
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import { VNode } from 'snabbdom';
|
|
18
19
|
import {
|
|
19
|
-
Action,
|
|
20
20
|
CommandExecutionContext,
|
|
21
21
|
CommandReturn,
|
|
22
22
|
ElementMove,
|
|
@@ -26,15 +26,15 @@ import {
|
|
|
26
26
|
isViewport,
|
|
27
27
|
MouseListener,
|
|
28
28
|
MoveAction,
|
|
29
|
-
|
|
29
|
+
SChildElement,
|
|
30
30
|
SModelElement,
|
|
31
31
|
SModelRoot,
|
|
32
32
|
TYPES
|
|
33
33
|
} from 'sprotty';
|
|
34
|
-
|
|
35
34
|
import { isNotUndefined } from '../../utils/smodel-util';
|
|
36
35
|
import { addResizeHandles, isResizable, removeResizeHandles, SResizeHandle } from '../change-bounds/model';
|
|
37
36
|
import { createMovementRestrictionFeedback, removeMovementRestrictionFeedback } from '../change-bounds/movement-restrictor';
|
|
37
|
+
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
38
38
|
import { ChangeBoundsTool } from '../tools/change-bounds-tool';
|
|
39
39
|
import { FeedbackCommand } from './model';
|
|
40
40
|
|
|
@@ -120,15 +120,17 @@ export class FeedbackMoveMouseListener extends MouseListener {
|
|
|
120
120
|
const moveAction = this.getElementMoves(target, event, false);
|
|
121
121
|
if (moveAction) {
|
|
122
122
|
result.push(moveAction);
|
|
123
|
+
result.push(cursorFeedbackAction(CursorCSS.MOVE));
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
return result;
|
|
126
127
|
}
|
|
127
128
|
|
|
128
129
|
protected collectStartPositions(root: SModelRoot): void {
|
|
129
|
-
root.index
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
const selectedElements = root.index.all().filter(element => isSelectable(element) && element.selected);
|
|
131
|
+
const elementsSet = new Set(selectedElements);
|
|
132
|
+
selectedElements
|
|
133
|
+
.filter(element => !this.isChildOfSelected(elementsSet, element))
|
|
132
134
|
.forEach(element => {
|
|
133
135
|
if (isMoveable(element)) {
|
|
134
136
|
this.elementId2startPos.set(element.id, element.position);
|
|
@@ -136,6 +138,16 @@ export class FeedbackMoveMouseListener extends MouseListener {
|
|
|
136
138
|
});
|
|
137
139
|
}
|
|
138
140
|
|
|
141
|
+
protected isChildOfSelected(selectedElements: Set<SModelElement>, element: SModelElement): boolean {
|
|
142
|
+
while (element instanceof SChildElement) {
|
|
143
|
+
element = element.parent;
|
|
144
|
+
if (selectedElements.has(element)) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
|
|
139
151
|
protected getElementMoves(target: SModelElement, event: MouseEvent, isFinished: boolean): MoveAction | undefined {
|
|
140
152
|
if (!this.startDragPosition) {
|
|
141
153
|
return undefined;
|
|
@@ -224,6 +236,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
|
|
|
224
236
|
if (this.tool.movementRestrictor) {
|
|
225
237
|
this.tool.deregisterFeedback([removeMovementRestrictionFeedback(target, this.tool.movementRestrictor)], this);
|
|
226
238
|
}
|
|
239
|
+
result.push(cursorFeedbackAction(CursorCSS.DEFAULT));
|
|
227
240
|
}
|
|
228
241
|
this.hasDragged = false;
|
|
229
242
|
this.startDragPosition = undefined;
|
|
@@ -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, Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
add,
|
|
20
20
|
AnchorComputerRegistry,
|
|
21
21
|
center,
|
|
@@ -28,7 +28,6 @@ import {
|
|
|
28
28
|
isConnectable,
|
|
29
29
|
MouseListener,
|
|
30
30
|
MoveAction,
|
|
31
|
-
Point,
|
|
32
31
|
PolylineEdgeRouter,
|
|
33
32
|
SChildElement,
|
|
34
33
|
SConnectableElement,
|
|
@@ -39,8 +38,7 @@ import {
|
|
|
39
38
|
SRoutableElement,
|
|
40
39
|
TYPES
|
|
41
40
|
} from 'sprotty';
|
|
42
|
-
|
|
43
|
-
import { isRoutable } from '../../utils/smodel-util';
|
|
41
|
+
import { isRoutable, BoundsAwareModelElement } from '../../utils/smodel-util';
|
|
44
42
|
import { getAbsolutePosition, toAbsoluteBounds, toAbsolutePosition } from '../../utils/viewpoint-util';
|
|
45
43
|
import { FeedbackCommand } from './model';
|
|
46
44
|
|
|
@@ -108,12 +106,12 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
|
|
|
108
106
|
|
|
109
107
|
const edge = edgeEnd.feedbackEdge;
|
|
110
108
|
const position = getAbsolutePosition(edgeEnd, event);
|
|
111
|
-
const endAtMousePosition = findChildrenAtPosition(target.root, position).find(
|
|
109
|
+
const endAtMousePosition = findChildrenAtPosition(target.root, position).reverse().find(
|
|
112
110
|
element => isConnectable(element) && element.canConnect(edge, 'target')
|
|
113
111
|
);
|
|
114
112
|
|
|
115
113
|
if (endAtMousePosition instanceof SConnectableElement && edge.source && isBoundsAware(edge.source)) {
|
|
116
|
-
const anchor = this.computeAbsoluteAnchor(endAtMousePosition, center(edge.source
|
|
114
|
+
const anchor = this.computeAbsoluteAnchor(endAtMousePosition, center(toAbsoluteBounds(edge.source)));
|
|
117
115
|
if (euclideanDistance(anchor, edgeEnd.position) > 1) {
|
|
118
116
|
return [new MoveAction([{ elementId: edgeEnd.id, toPosition: anchor }], false)];
|
|
119
117
|
}
|
|
@@ -124,9 +122,10 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
|
|
|
124
122
|
return [];
|
|
125
123
|
}
|
|
126
124
|
|
|
127
|
-
protected computeAbsoluteAnchor(element: SConnectableElement,
|
|
125
|
+
protected computeAbsoluteAnchor(element: SConnectableElement, absoluteReferencePoint: Point, offset?: number): Point {
|
|
126
|
+
const referencePointInParent = absoluteToParent(element, absoluteReferencePoint);
|
|
128
127
|
const anchorComputer = this.anchorRegistry.get(PolylineEdgeRouter.KIND, element.anchorKind);
|
|
129
|
-
let anchor = anchorComputer.getAnchor(element,
|
|
128
|
+
let anchor = anchorComputer.getAnchor(element, referencePointInParent, offset);
|
|
130
129
|
// The anchor is computed in the local coordinate system of the element.
|
|
131
130
|
// If the element is a nested child element we have to add the absolute position of its parent to the anchor.
|
|
132
131
|
if (element.parent !== element.root) {
|
|
@@ -140,6 +139,33 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
|
|
|
140
139
|
}
|
|
141
140
|
}
|
|
142
141
|
|
|
142
|
+
/**
|
|
143
|
+
* Convert a point, specified in absolute coordinates, to a point relative
|
|
144
|
+
* to the parent of the specified child element.
|
|
145
|
+
* @param element the child element
|
|
146
|
+
* @param absolutePoint a point in absolute coordinates
|
|
147
|
+
* @returns the equivalent point, relative to the element's parent coordinates
|
|
148
|
+
*/
|
|
149
|
+
function absoluteToParent(element: BoundsAwareModelElement & SChildElement, absolutePoint: Point): Point{
|
|
150
|
+
if (isBoundsAware(element.parent)){
|
|
151
|
+
return absoluteToLocal(element.parent, absolutePoint);
|
|
152
|
+
}
|
|
153
|
+
// If the parent is not bounds-aware, assume it's at 0; 0 and proceed
|
|
154
|
+
return absoluteToLocal(element, absolutePoint);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Convert a point, specified in absolute coordinates, to a point relative
|
|
159
|
+
* to the specified element.
|
|
160
|
+
* @param element the element
|
|
161
|
+
* @param absolutePoint a point in absolute coordinates
|
|
162
|
+
* @returns the equivalent point, relative to the element's coordinates
|
|
163
|
+
*/
|
|
164
|
+
function absoluteToLocal(element: BoundsAwareModelElement, absolutePoint: Point): Point {
|
|
165
|
+
const absoluteElementBounds = toAbsoluteBounds(element);
|
|
166
|
+
return {x: absolutePoint.x - absoluteElementBounds.x, y: absolutePoint.y - absoluteElementBounds.y};
|
|
167
|
+
}
|
|
168
|
+
|
|
143
169
|
export function feedbackEdgeId(root: SModelRoot): string {
|
|
144
170
|
return root.id + '_feedback_edge';
|
|
145
171
|
}
|
|
@@ -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, isStringArray } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
import { isStringArray } from '../../utils/array-utils';
|
|
18
|
+
import { CommandExecutionContext, SModelElement, SModelRoot, TYPES } from 'sprotty';
|
|
19
19
|
import { addCssClasses, removeCssClasses } from '../../utils/smodel-util';
|
|
20
20
|
import { FeedbackCommand } from './model';
|
|
21
21
|
|
|
@@ -78,7 +78,9 @@ export enum CursorCSS {
|
|
|
78
78
|
EDGE_RECONNECT = 'edge-reconnect-select-target-mode',
|
|
79
79
|
OPERATION_NOT_ALLOWED = 'edge-modification-not-allowed-mode',
|
|
80
80
|
ELEMENT_DELETION = 'element-deletion-mode',
|
|
81
|
-
|
|
81
|
+
RESIZE_NESW = 'resize-nesw-mode',
|
|
82
|
+
RESIZE_NWSE = 'resize-nwse-mode',
|
|
83
|
+
MOVE = 'move-mode',
|
|
82
84
|
MARQUEE = 'marquee-mode'
|
|
83
85
|
}
|
|
84
86
|
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import { VNode } from 'snabbdom';
|
|
18
19
|
import {
|
|
19
|
-
Action,
|
|
20
20
|
add,
|
|
21
21
|
AnchorComputerRegistry,
|
|
22
22
|
center,
|
|
@@ -33,7 +33,6 @@ import {
|
|
|
33
33
|
isViewport,
|
|
34
34
|
MouseListener,
|
|
35
35
|
MoveAction,
|
|
36
|
-
Point,
|
|
37
36
|
PolylineEdgeRouter,
|
|
38
37
|
SConnectableElement,
|
|
39
38
|
SModelElement,
|
|
@@ -43,7 +42,6 @@ import {
|
|
|
43
42
|
SwitchEditModeCommand,
|
|
44
43
|
TYPES
|
|
45
44
|
} from 'sprotty';
|
|
46
|
-
|
|
47
45
|
import { isNotUndefined, isRoutable, isRoutingHandle } from '../../utils/smodel-util';
|
|
48
46
|
import { getAbsolutePosition, toAbsoluteBounds } from '../../utils/viewpoint-util';
|
|
49
47
|
import { addReconnectHandles, removeReconnectHandles } from '../reconnect/model';
|
|
@@ -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 } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
+
import { IActionDispatcher, ILogger, TYPES } from 'sprotty';
|
|
18
19
|
|
|
19
20
|
export interface IFeedbackEmitter {}
|
|
20
21
|
|
|
@@ -13,20 +13,18 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
AnchorComputerRegistry,
|
|
20
20
|
CommandExecutionContext,
|
|
21
21
|
CommandReturn,
|
|
22
22
|
MouseListener,
|
|
23
|
-
Point,
|
|
24
23
|
SChildElement,
|
|
25
24
|
SModelElement,
|
|
26
25
|
SModelRoot,
|
|
27
26
|
TYPES
|
|
28
27
|
} from 'sprotty';
|
|
29
|
-
|
|
30
28
|
import { FeedbackCommand } from './model';
|
|
31
29
|
|
|
32
30
|
export class DrawMarqueeAction implements Action {
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable } from 'inversify';
|
|
17
18
|
import { VNode } from 'snabbdom';
|
|
18
|
-
import { IView, ORIGIN_POINT,
|
|
19
|
-
|
|
19
|
+
import { IView, ORIGIN_POINT, RenderingContext, setAttr, SModelElement, svg } from 'sprotty';
|
|
20
20
|
import { isResizable, ResizeHandleLocation, SResizeHandle } from '../change-bounds/model';
|
|
21
21
|
|
|
22
22
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -13,11 +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 '../../../css/tool-palette.css';
|
|
17
|
-
|
|
18
16
|
import { ContainerModule } from 'inversify';
|
|
19
17
|
import { configureActionHandler, EnableDefaultToolsAction, TYPES } from 'sprotty';
|
|
20
|
-
|
|
18
|
+
import '../../../css/tool-palette.css';
|
|
21
19
|
import { EnableToolPaletteAction, ToolPalette } from './tool-palette';
|
|
22
20
|
|
|
23
21
|
const toolPaletteModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
@@ -13,9 +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 { isLabeledAction, LabeledAction } from '
|
|
17
|
-
|
|
18
|
-
import { isTriggerElementTypeCreationAction, TriggerElementCreationAction } from '../../base/operations/operation';
|
|
16
|
+
import { isLabeledAction, isTriggerElementTypeCreationAction, LabeledAction, TriggerElementCreationAction } from '@eclipse-glsp/protocol';
|
|
19
17
|
|
|
20
18
|
export interface PaletteItem extends LabeledAction {
|
|
21
19
|
readonly id: string;
|
|
@@ -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 { isSetContextActionsAction, RequestContextActions, RequestMarkersAction, SetContextActions } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
17
18
|
import {
|
|
18
19
|
AbstractUIExtension,
|
|
@@ -26,20 +27,18 @@ import {
|
|
|
26
27
|
SModelRoot,
|
|
27
28
|
TYPES
|
|
28
29
|
} from 'sprotty';
|
|
30
|
+
import { codiconCSSClasses } from 'sprotty/lib/utils/codicon';
|
|
29
31
|
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
30
|
-
|
|
31
32
|
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
32
|
-
import {
|
|
33
|
-
import { EditModeListener, EditorContextService } from '../../base/editor-context';
|
|
33
|
+
import { EditModeListener, EditorContextService } from '../../base/editor-context-service';
|
|
34
34
|
import { MouseDeleteTool } from '../tools/delete-tool';
|
|
35
35
|
import { MarqueeMouseTool } from '../tools/marquee-mouse-tool';
|
|
36
|
-
import { RequestMarkersAction } from '../validation/validate';
|
|
37
36
|
import { PaletteItem } from './palette-item';
|
|
38
37
|
|
|
39
38
|
const CLICKED_CSS_CLASS = 'clicked';
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const
|
|
39
|
+
const SEARCH_ICON_ID = 'search';
|
|
40
|
+
const PALETTE_ICON_ID = 'symbol-color';
|
|
41
|
+
const CHEVRON_DOWN_ICON_ID = 'chevron-right';
|
|
43
42
|
const PALETTE_HEIGHT = '500px';
|
|
44
43
|
|
|
45
44
|
@injectable()
|
|
@@ -101,7 +100,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
101
100
|
this.containerElement.classList.add('collapsible-palette');
|
|
102
101
|
if (baseDiv) {
|
|
103
102
|
const insertedDiv = baseDiv.insertBefore(minPaletteDiv, baseDiv.firstChild);
|
|
104
|
-
const minimizeIcon = createIcon(
|
|
103
|
+
const minimizeIcon = createIcon(CHEVRON_DOWN_ICON_ID);
|
|
105
104
|
this.updateMinimizePaletteButtonTooltip(minPaletteDiv);
|
|
106
105
|
minimizeIcon.onclick = _event => {
|
|
107
106
|
if (this.isPaletteMaximized()) {
|
|
@@ -110,10 +109,8 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
110
109
|
this.containerElement.style.maxHeight = PALETTE_HEIGHT;
|
|
111
110
|
}
|
|
112
111
|
this.updateMinimizePaletteButtonTooltip(minPaletteDiv);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
changeCSSClass(minimizeIcon, 'fas');
|
|
116
|
-
changeCSSClass(minimizeIcon, CHEVRON_DOWN);
|
|
112
|
+
changeCodiconClass(minimizeIcon, PALETTE_ICON_ID);
|
|
113
|
+
changeCodiconClass(minimizeIcon, CHEVRON_DOWN_ICON_ID);
|
|
117
114
|
};
|
|
118
115
|
insertedDiv.appendChild(minimizeIcon);
|
|
119
116
|
}
|
|
@@ -192,7 +189,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
192
189
|
}
|
|
193
190
|
|
|
194
191
|
protected createDefaultToolButton(): HTMLElement {
|
|
195
|
-
const button = createIcon(
|
|
192
|
+
const button = createIcon('inspect');
|
|
196
193
|
button.id = 'btn_default_tools';
|
|
197
194
|
button.title = 'Enable selection tool';
|
|
198
195
|
button.onclick = this.onClickStaticToolButton(this.defaultToolsButton);
|
|
@@ -200,21 +197,21 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
200
197
|
}
|
|
201
198
|
|
|
202
199
|
protected createMouseDeleteToolButton(): HTMLElement {
|
|
203
|
-
const deleteToolButton = createIcon(
|
|
200
|
+
const deleteToolButton = createIcon('chrome-close');
|
|
204
201
|
deleteToolButton.title = 'Enable deletion tool';
|
|
205
202
|
deleteToolButton.onclick = this.onClickStaticToolButton(deleteToolButton, MouseDeleteTool.ID);
|
|
206
203
|
return deleteToolButton;
|
|
207
204
|
}
|
|
208
205
|
|
|
209
206
|
protected createMarqueeToolButton(): HTMLElement {
|
|
210
|
-
const marqueeToolButton = createIcon(
|
|
207
|
+
const marqueeToolButton = createIcon('screen-full');
|
|
211
208
|
marqueeToolButton.title = 'Enable marquee tool';
|
|
212
209
|
marqueeToolButton.onclick = this.onClickStaticToolButton(marqueeToolButton, MarqueeMouseTool.ID);
|
|
213
210
|
return marqueeToolButton;
|
|
214
211
|
}
|
|
215
212
|
|
|
216
213
|
protected createValidateButton(): HTMLElement {
|
|
217
|
-
const validateActionButton = createIcon(
|
|
214
|
+
const validateActionButton = createIcon('pass');
|
|
218
215
|
validateActionButton.title = 'Validate model';
|
|
219
216
|
validateActionButton.onclick = _event => {
|
|
220
217
|
const modelIds: string[] = [this.modelRootId];
|
|
@@ -224,15 +221,15 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
224
221
|
}
|
|
225
222
|
|
|
226
223
|
protected createSearchButton(): HTMLElement {
|
|
227
|
-
const searchIcon = createIcon(
|
|
224
|
+
const searchIcon = createIcon(SEARCH_ICON_ID);
|
|
228
225
|
searchIcon.onclick = _ev => {
|
|
229
226
|
const searchField = document.getElementById(this.containerElement.id + '_search_field');
|
|
230
227
|
if (searchField) {
|
|
231
|
-
if (searchField.style.display === '
|
|
232
|
-
searchField.style.display = '
|
|
233
|
-
} else {
|
|
234
|
-
searchField.style.display = 'inline';
|
|
228
|
+
if (searchField.style.display === 'none') {
|
|
229
|
+
searchField.style.display = '';
|
|
235
230
|
searchField.focus();
|
|
231
|
+
} else {
|
|
232
|
+
searchField.style.display = 'none';
|
|
236
233
|
}
|
|
237
234
|
}
|
|
238
235
|
};
|
|
@@ -256,7 +253,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
256
253
|
protected createHeaderTitle(): HTMLElement {
|
|
257
254
|
const header = document.createElement('div');
|
|
258
255
|
header.classList.add('header-icon');
|
|
259
|
-
header.appendChild(createIcon(
|
|
256
|
+
header.appendChild(createIcon(PALETTE_ICON_ID));
|
|
260
257
|
header.insertAdjacentText('beforeend', 'Palette');
|
|
261
258
|
return header;
|
|
262
259
|
}
|
|
@@ -265,7 +262,10 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
265
262
|
const button = document.createElement('div');
|
|
266
263
|
button.tabIndex = index;
|
|
267
264
|
button.classList.add('tool-button');
|
|
268
|
-
|
|
265
|
+
if (item.icon) {
|
|
266
|
+
button.appendChild(createIcon(item.icon));
|
|
267
|
+
}
|
|
268
|
+
button.insertAdjacentText('beforeend', item.label);
|
|
269
269
|
button.onclick = this.onClickCreateToolButton(button, item);
|
|
270
270
|
button.onkeydown = ev => this.clearToolOnEscape(ev);
|
|
271
271
|
return button;
|
|
@@ -382,9 +382,9 @@ export function compare(a: PaletteItem, b: PaletteItem): number {
|
|
|
382
382
|
return a.label.localeCompare(b.label);
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
-
export function createIcon(
|
|
385
|
+
export function createIcon(codiconId: string): HTMLElement {
|
|
386
386
|
const icon = document.createElement('i');
|
|
387
|
-
icon.classList.add(...
|
|
387
|
+
icon.classList.add(...codiconCSSClasses(codiconId));
|
|
388
388
|
return icon;
|
|
389
389
|
}
|
|
390
390
|
|
|
@@ -395,7 +395,7 @@ export function createToolGroup(item: PaletteItem): HTMLElement {
|
|
|
395
395
|
const header = document.createElement('div');
|
|
396
396
|
header.classList.add('group-header');
|
|
397
397
|
if (item.icon) {
|
|
398
|
-
header.appendChild(createIcon(
|
|
398
|
+
header.appendChild(createIcon(item.icon));
|
|
399
399
|
}
|
|
400
400
|
header.insertAdjacentText('beforeend', item.label);
|
|
401
401
|
header.ondblclick = _ev => {
|
|
@@ -412,3 +412,9 @@ export function createToolGroup(item: PaletteItem): HTMLElement {
|
|
|
412
412
|
export function changeCSSClass(element: Element, css: string): void {
|
|
413
413
|
element.classList.contains(css) ? element.classList.remove(css) : element.classList.add(css);
|
|
414
414
|
}
|
|
415
|
+
|
|
416
|
+
export function changeCodiconClass(element: Element, codiconId: string): void {
|
|
417
|
+
element.classList.contains(codiconCSSClasses(codiconId)[1])
|
|
418
|
+
? element.classList.remove(codiconCSSClasses(codiconId)[1])
|
|
419
|
+
: element.classList.add(codiconCSSClasses(codiconId)[1]);
|
|
420
|
+
}
|
|
@@ -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,10 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { EditorContextService } from '../../base/editor-context';
|
|
18
|
+
import { IActionDispatcher, KeyTool, TYPES } from 'sprotty';
|
|
19
|
+
import { EditorContextService } from '../../base/editor-context-service';
|
|
20
20
|
import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
|
|
21
21
|
import { GLSP_TYPES } from '../../base/types';
|
|
22
22
|
import { IMouseTool } from '../mouse-tool/mouse-tool';
|