@eclipse-glsp/client 0.10.0-next.bb1c2fd.157 → 0.10.0-next.e5fcffe.169
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/glsp-sprotty.css +110 -8
- package/lib/base/action-dispatcher.d.ts +2 -1
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +13 -5
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +16 -7
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +31 -12
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/actions/sprotty-actions.d.ts +7 -0
- package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
- package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
- package/lib/base/actions/sprotty-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +24 -5
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +16 -9
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +2 -2
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +6 -5
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/di.config.d.ts +1 -1
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +13 -14
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +13 -1
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +23 -10
- package/lib/base/editor-context-service.js.map +1 -1
- package/lib/base/focus-tracker.d.ts +1 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +4 -4
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.d.ts.map +1 -1
- package/lib/base/model/model-registry.js +2 -2
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +1 -1
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +15 -15
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +4 -5
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +11 -13
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +1 -1
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/tool-manager/tool-actions.d.ts +14 -0
- package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
- package/lib/base/tool-manager/tool-actions.js +25 -0
- package/lib/base/tool-manager/tool-actions.js.map +1 -0
- package/lib/base/types.d.ts +144 -20
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +14 -26
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts.map +1 -1
- package/lib/base/view/view-registry.js +2 -2
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +1 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +3 -3
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +6 -6
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +42 -1
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +78 -2
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/change-bounds/snap.spec.d.ts +17 -0
- package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.spec.js +82 -0
- package/lib/features/change-bounds/snap.spec.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +3 -3
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +2 -2
- package/lib/features/command-palette/di.config.d.ts.map +1 -1
- package/lib/features/command-palette/di.config.js +6 -6
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +13 -10
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +4 -4
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +1 -1
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +8 -7
- package/lib/features/context-menu/di.config.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +17 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +8 -23
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +8 -7
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +10 -11
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +5 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +19 -3
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -4
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.d.ts.map +1 -1
- package/lib/features/edit-label/di.config.js +5 -5
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +2 -2
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +11 -13
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +4 -4
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +15 -5
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +29 -26
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +11 -9
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +4 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +23 -5
- 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 -4
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +17 -1
- package/lib/features/layout/freeform-layout.d.ts.map +1 -1
- package/lib/features/layout/freeform-layout.js +4 -4
- package/lib/features/layout/freeform-layout.js.map +1 -1
- package/lib/features/layout/hbox-layout.d.ts +41 -0
- package/lib/features/layout/hbox-layout.d.ts.map +1 -0
- package/lib/features/layout/hbox-layout.js +189 -0
- package/lib/features/layout/hbox-layout.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +65 -38
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +90 -67
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +35 -23
- package/lib/features/layout/layout-commands.spec.js.map +1 -1
- package/lib/features/layout/vbox-layout.d.ts +17 -1
- package/lib/features/layout/vbox-layout.d.ts.map +1 -1
- package/lib/features/layout/vbox-layout.js +9 -8
- package/lib/features/layout/vbox-layout.js.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +1 -1
- package/lib/features/model-source-watcher/di.config.js.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +11 -11
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/mouse-tool/di.config.d.ts +1 -1
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
- package/lib/features/mouse-tool/di.config.js +2 -2
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +9 -5
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +11 -53
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.js +4 -4
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +52 -68
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +8 -9
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/reconnect/model.d.ts +1 -1
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +1 -1
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +1 -1
- package/lib/features/save/di.config.d.ts.map +1 -1
- package/lib/features/save/di.config.js +3 -3
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/save-keylistener.d.ts +1 -1
- package/lib/features/save/save-keylistener.d.ts.map +1 -1
- package/lib/features/save/save-keylistener.js +3 -3
- package/lib/features/save/save-keylistener.js.map +1 -1
- package/lib/features/select/di.config.d.ts +1 -1
- package/lib/features/select/di.config.d.ts.map +1 -1
- package/lib/features/select/di.config.js +7 -8
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts +26 -22
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +19 -46
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +1 -1
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +1 -1
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +3 -3
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +28 -23
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +28 -25
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +67 -37
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +23 -11
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +62 -35
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +42 -38
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +1 -1
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +18 -18
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +44 -22
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +140 -114
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +1 -2
- package/lib/features/tool-feedback/model.d.ts.map +1 -1
- package/lib/features/tool-feedback/model.js +1 -1
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +1 -1
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +22 -5
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +1 -1
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +5 -4
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +10 -7
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +39 -32
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +3 -3
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +11 -11
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +7 -9
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +48 -71
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +1 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +17 -17
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.js +12 -12
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +28 -21
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +3 -2
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +41 -36
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +1 -1
- package/lib/features/tools/marquee-behavior.js +2 -2
- package/lib/features/tools/marquee-behavior.js.map +1 -1
- package/lib/features/tools/marquee-behavior.spec.js +63 -63
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +20 -20
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +1 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +4 -4
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +3 -2
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +0 -15
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +1 -1
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +17 -17
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +2 -2
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +1 -1
- package/lib/features/validation/di.config.d.ts.map +1 -1
- package/lib/features/validation/di.config.js +7 -7
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +16 -8
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +39 -37
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +23 -37
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +10 -12
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +42 -41
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +1 -1
- package/lib/features/viewport/di.config.d.ts.map +1 -1
- package/lib/features/viewport/di.config.js +7 -7
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +4 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +11 -8
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -2
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +0 -15
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +5 -5
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +7 -6
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/sprotty-reexport.d.ts +174 -0
- package/lib/sprotty-reexport.d.ts.map +1 -0
- package/lib/sprotty-reexport.js +299 -0
- package/lib/sprotty-reexport.js.map +1 -0
- package/lib/utils/argument-utils.js +5 -5
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +3 -3
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/smodel-util.d.ts +117 -11
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +142 -37
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -3
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +19 -3
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.js +19 -19
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.js +1 -1
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -1
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +1 -1
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/index.js +6 -2
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +3 -3
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +2 -2
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/package.json +8 -18
- package/src/base/action-dispatcher.ts +17 -8
- package/src/base/actions/focus-change-action.ts +25 -8
- package/{lib/features/tool-palette/palette-item.d.ts → src/base/actions/sprotty-actions.ts} +11 -11
- package/src/base/auto-complete/auto-complete-actions.ts +7 -5
- package/src/base/auto-complete/auto-complete-widget.ts +15 -13
- package/src/base/command-stack.ts +7 -6
- package/src/base/di.config.ts +4 -5
- package/src/base/drag-aware-mouse-listener.ts +4 -4
- package/src/base/editor-context-service.ts +19 -7
- package/src/base/focus-tracker.ts +5 -4
- package/src/base/model/model-registry.ts +2 -2
- package/src/base/model/update-model-command.ts +9 -10
- package/src/base/model-initialization-constraint.ts +9 -11
- package/src/base/selection-clearing-mouse-listener.ts +1 -1
- package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
- package/src/base/tool-manager/tool-actions.ts +37 -0
- package/src/base/types.ts +31 -24
- package/src/base/view/view-registry.ts +2 -2
- package/src/features/change-bounds/model.ts +5 -5
- package/src/features/change-bounds/movement-restrictor.ts +3 -3
- package/src/features/change-bounds/snap.spec.ts +89 -0
- package/src/features/change-bounds/snap.ts +86 -2
- package/src/features/command-palette/di.config.ts +5 -7
- package/src/features/command-palette/server-command-palette-provider.ts +9 -8
- package/src/features/context-menu/delete-element-context-menu.ts +6 -6
- package/src/features/context-menu/di.config.ts +3 -2
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +6 -7
- package/src/features/context-menu/server-context-menu-provider.ts +7 -6
- package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
- package/src/features/copy-paste/copy-paste-handler.ts +6 -6
- package/src/features/copy-paste/di.config.ts +7 -15
- package/src/features/decoration/decoration-placer.ts +4 -4
- package/src/features/decoration/di.config.ts +3 -5
- package/src/features/edit-label/di.config.ts +4 -5
- package/src/features/edit-label/edit-label-tool.ts +1 -2
- package/src/features/edit-label/edit-label-validator.ts +6 -10
- package/src/features/hints/di.config.ts +3 -3
- package/src/features/hints/type-hints.ts +33 -18
- package/src/features/hover/di.config.ts +4 -0
- package/src/features/hover/hover.ts +30 -12
- package/src/features/layout/di.config.ts +4 -2
- package/src/features/layout/freeform-layout.ts +6 -15
- package/src/features/layout/hbox-layout.ts +256 -0
- package/src/features/layout/layout-commands.spec.ts +38 -22
- package/src/features/layout/layout-commands.ts +134 -60
- package/src/features/layout/vbox-layout.ts +20 -20
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
- package/src/features/mouse-tool/di.config.ts +3 -4
- package/src/features/mouse-tool/mouse-tool.ts +18 -59
- package/src/features/navigation/navigation-action-handler.ts +76 -42
- package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
- package/src/features/navigation/navigation-target-resolver.ts +8 -13
- package/src/features/reconnect/model.ts +2 -2
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/save-keylistener.ts +3 -3
- package/src/features/select/di.config.ts +6 -8
- package/src/features/select/select-feedback-action.ts +18 -46
- package/src/features/select/select-mouse-listener.ts +1 -2
- package/src/features/select/selection-service.spec.ts +11 -8
- package/src/features/select/selection-service.ts +17 -12
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +51 -21
- package/src/features/tool-feedback/creation-tool-feedback.ts +52 -31
- package/src/features/tool-feedback/css-feedback.ts +40 -37
- package/src/features/tool-feedback/di.config.ts +4 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +132 -88
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
- package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
- package/src/features/tool-feedback/model.ts +1 -3
- package/src/features/tool-feedback/view.tsx +3 -3
- package/src/features/tool-palette/di.config.ts +3 -2
- package/src/features/tool-palette/tool-palette.ts +35 -19
- package/src/features/tools/base-glsp-tool.ts +11 -11
- package/src/features/tools/change-bounds-tool.ts +37 -67
- package/src/features/tools/delete-tool.ts +9 -9
- package/src/features/tools/di.config.ts +10 -10
- package/src/features/tools/edge-creation-tool.ts +21 -12
- package/src/features/tools/edge-edit-tool.ts +25 -21
- package/src/features/tools/marquee-behavior.ts +2 -2
- package/src/features/tools/marquee-mouse-tool.ts +13 -14
- package/src/features/tools/marquee-tool.ts +3 -3
- package/src/features/tools/model.ts +4 -3
- package/src/features/tools/node-creation-tool.ts +8 -8
- package/src/features/tools/view.tsx +2 -3
- package/src/features/validation/di.config.ts +4 -5
- package/src/features/validation/marker-navigator.spec.ts +4 -2
- package/src/features/validation/marker-navigator.ts +47 -25
- package/src/features/validation/validate.ts +31 -24
- package/src/features/viewport/di.config.ts +1 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +4 -5
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +14 -14
- package/src/sprotty-reexport.ts +283 -0
- package/src/utils/layout-utils.ts +3 -3
- package/src/utils/smodel-util.ts +139 -43
- package/src/utils/viewpoint-util.ts +5 -14
- package/src/views/glsp-edge-view.tsx +4 -4
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-view.tsx +2 -3
- package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
- package/lib/features/tool-palette/palette-item.js.map +0 -1
- package/lib/protocol-reexport.d.ts +0 -45
- package/lib/protocol-reexport.d.ts.map +0 -1
- package/lib/protocol-reexport.js +0 -75
- package/lib/protocol-reexport.js.map +0 -1
- package/src/features/tool-palette/palette-item.ts +0 -38
- package/src/protocol-reexport.ts +0 -64
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,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 {
|
|
16
|
+
import { Action, PaletteItem, RequestContextActions, RequestMarkersAction, SetContextActions } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
18
18
|
import {
|
|
19
19
|
AbstractUIExtension,
|
|
20
|
-
Action,
|
|
21
20
|
EnableDefaultToolsAction,
|
|
22
21
|
EnableToolsAction,
|
|
23
22
|
IActionHandler,
|
|
@@ -33,7 +32,6 @@ import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
|
33
32
|
import { EditModeListener, EditorContextService } from '../../base/editor-context-service';
|
|
34
33
|
import { MouseDeleteTool } from '../tools/delete-tool';
|
|
35
34
|
import { MarqueeMouseTool } from '../tools/marquee-mouse-tool';
|
|
36
|
-
import { PaletteItem } from './palette-item';
|
|
37
35
|
|
|
38
36
|
const CLICKED_CSS_CLASS = 'clicked';
|
|
39
37
|
const SEARCH_ICON_ID = 'search';
|
|
@@ -41,12 +39,21 @@ const PALETTE_ICON_ID = 'symbol-color';
|
|
|
41
39
|
const CHEVRON_DOWN_ICON_ID = 'chevron-right';
|
|
42
40
|
const PALETTE_HEIGHT = '500px';
|
|
43
41
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
static readonly KIND = 'enableToolPalette';
|
|
47
|
-
readonly kind = EnableToolPaletteAction.KIND;
|
|
42
|
+
export interface EnableToolPaletteAction extends Action {
|
|
43
|
+
kind: typeof EnableToolPaletteAction.KIND;
|
|
48
44
|
}
|
|
49
45
|
|
|
46
|
+
export namespace EnableToolPaletteAction {
|
|
47
|
+
export const KIND = 'enableToolPalette';
|
|
48
|
+
|
|
49
|
+
export function is(object: any): object is EnableToolPaletteAction {
|
|
50
|
+
return Action.hasKind(object, KIND);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function create(): EnableToolPaletteAction {
|
|
54
|
+
return { kind: KIND };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
50
57
|
@injectable()
|
|
51
58
|
export class ToolPalette extends AbstractUIExtension implements IActionHandler, EditModeListener {
|
|
52
59
|
static readonly ID = 'tool-palette';
|
|
@@ -75,7 +82,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
75
82
|
this.editorContext.register(this);
|
|
76
83
|
}
|
|
77
84
|
|
|
78
|
-
initialize(): boolean {
|
|
85
|
+
override initialize(): boolean {
|
|
79
86
|
if (!this.paletteItems) {
|
|
80
87
|
return false;
|
|
81
88
|
}
|
|
@@ -88,7 +95,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
88
95
|
this.lastActivebutton = this.defaultToolsButton;
|
|
89
96
|
}
|
|
90
97
|
|
|
91
|
-
protected onBeforeShow(_containerElement: HTMLElement, root: Readonly<SModelRoot>): void {
|
|
98
|
+
protected override onBeforeShow(_containerElement: HTMLElement, root: Readonly<SModelRoot>): void {
|
|
92
99
|
this.modelRootId = root.id;
|
|
93
100
|
this.containerElement.style.maxHeight = PALETTE_HEIGHT;
|
|
94
101
|
}
|
|
@@ -215,7 +222,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
215
222
|
validateActionButton.title = 'Validate model';
|
|
216
223
|
validateActionButton.onclick = _event => {
|
|
217
224
|
const modelIds: string[] = [this.modelRootId];
|
|
218
|
-
this.actionDispatcher.dispatch(
|
|
225
|
+
this.actionDispatcher.dispatch(RequestMarkersAction.create(modelIds));
|
|
219
226
|
};
|
|
220
227
|
return validateActionButton;
|
|
221
228
|
}
|
|
@@ -284,7 +291,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
284
291
|
protected onClickStaticToolButton(button: HTMLElement, toolId?: string) {
|
|
285
292
|
return (_ev: MouseEvent) => {
|
|
286
293
|
if (!this.editorContext.isReadonly) {
|
|
287
|
-
const action = toolId ?
|
|
294
|
+
const action = toolId ? EnableToolsAction.create([toolId]) : EnableDefaultToolsAction.create();
|
|
288
295
|
this.actionDispatcher.dispatch(action);
|
|
289
296
|
this.changeActiveButton(button);
|
|
290
297
|
button.focus();
|
|
@@ -307,23 +314,30 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
307
314
|
|
|
308
315
|
handle(action: Action): ICommand | Action | void {
|
|
309
316
|
if (action.kind === EnableToolPaletteAction.KIND) {
|
|
310
|
-
const requestAction =
|
|
311
|
-
|
|
317
|
+
const requestAction = RequestContextActions.create({
|
|
318
|
+
contextId: ToolPalette.ID,
|
|
319
|
+
editorContext: {
|
|
320
|
+
selectedElementIds: []
|
|
321
|
+
}
|
|
312
322
|
});
|
|
313
323
|
this.actionDispatcher.requestUntil(requestAction).then(response => {
|
|
314
|
-
if (
|
|
324
|
+
if (SetContextActions.is(response)) {
|
|
315
325
|
this.paletteItems = response.actions.map(e => e as PaletteItem);
|
|
316
|
-
this.actionDispatcher.dispatch(
|
|
326
|
+
this.actionDispatcher.dispatch(
|
|
327
|
+
SetUIExtensionVisibilityAction.create({ extensionId: ToolPalette.ID, visible: !this.editorContext.isReadonly })
|
|
328
|
+
);
|
|
317
329
|
}
|
|
318
330
|
});
|
|
319
|
-
} else if (action
|
|
331
|
+
} else if (action.kind === EnableDefaultToolsAction.KIND) {
|
|
320
332
|
this.changeActiveButton();
|
|
321
333
|
this.restoreFocus();
|
|
322
334
|
}
|
|
323
335
|
}
|
|
324
336
|
|
|
325
337
|
editModeChanged(_oldValue: string, _newValue: string): void {
|
|
326
|
-
this.actionDispatcher.dispatch(
|
|
338
|
+
this.actionDispatcher.dispatch(
|
|
339
|
+
SetUIExtensionVisibilityAction.create({ extensionId: ToolPalette.ID, visible: !this.editorContext.isReadonly })
|
|
340
|
+
);
|
|
327
341
|
}
|
|
328
342
|
|
|
329
343
|
protected clearOnEscape(event: KeyboardEvent): void {
|
|
@@ -335,7 +349,7 @@ export class ToolPalette extends AbstractUIExtension implements IActionHandler,
|
|
|
335
349
|
|
|
336
350
|
protected clearToolOnEscape(event: KeyboardEvent): void {
|
|
337
351
|
if (matchesKeystroke(event, 'Escape')) {
|
|
338
|
-
this.actionDispatcher.dispatch(
|
|
352
|
+
this.actionDispatcher.dispatch(EnableDefaultToolsAction.create());
|
|
339
353
|
}
|
|
340
354
|
}
|
|
341
355
|
|
|
@@ -410,10 +424,12 @@ export function createToolGroup(item: PaletteItem): HTMLElement {
|
|
|
410
424
|
}
|
|
411
425
|
|
|
412
426
|
export function changeCSSClass(element: Element, css: string): void {
|
|
427
|
+
// eslint-disable-next-line chai-friendly/no-unused-expressions
|
|
413
428
|
element.classList.contains(css) ? element.classList.remove(css) : element.classList.add(css);
|
|
414
429
|
}
|
|
415
430
|
|
|
416
431
|
export function changeCodiconClass(element: Element, codiconId: string): void {
|
|
432
|
+
// eslint-disable-next-line chai-friendly/no-unused-expressions
|
|
417
433
|
element.classList.contains(codiconCSSClasses(codiconId)[1])
|
|
418
434
|
? element.classList.remove(codiconCSSClasses(codiconId)[1])
|
|
419
435
|
: element.classList.add(codiconCSSClasses(codiconId)[1]);
|
|
@@ -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
|
|
@@ -15,18 +15,18 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { Action } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
|
-
import { IActionDispatcher, KeyTool
|
|
18
|
+
import { IActionDispatcher, KeyTool } from 'sprotty';
|
|
19
19
|
import { EditorContextService } from '../../base/editor-context-service';
|
|
20
20
|
import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
|
|
21
|
-
import {
|
|
21
|
+
import { TYPES } from '../../base/types';
|
|
22
22
|
import { IMouseTool } from '../mouse-tool/mouse-tool';
|
|
23
23
|
import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
|
|
24
24
|
|
|
25
25
|
@injectable()
|
|
26
26
|
export abstract class BaseGLSPTool implements GLSPTool {
|
|
27
|
-
@inject(
|
|
27
|
+
@inject(TYPES.IFeedbackActionDispatcher) protected feedbackDispatcher: IFeedbackActionDispatcher;
|
|
28
28
|
@inject(TYPES.IActionDispatcher) protected actionDispatcher: IActionDispatcher;
|
|
29
|
-
@inject(
|
|
29
|
+
@inject(TYPES.MouseTool) protected mouseTool: IMouseTool;
|
|
30
30
|
@inject(KeyTool) protected keyTool: KeyTool;
|
|
31
31
|
@inject(EditorContextService) protected readonly editorContext: EditorContextService;
|
|
32
32
|
|
|
@@ -39,15 +39,15 @@ export abstract class BaseGLSPTool implements GLSPTool {
|
|
|
39
39
|
return true;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
dispatchFeedback(actions: Action[], feedbackeEmitter?: IFeedbackEmitter): void {
|
|
43
|
-
this.feedbackDispatcher.registerFeedback(feedbackeEmitter ? feedbackeEmitter : this, actions);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
42
|
dispatchActions(actions: Action[]): void {
|
|
47
43
|
this.actionDispatcher.dispatchAll(actions);
|
|
48
44
|
}
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
this.feedbackDispatcher.
|
|
46
|
+
dispatchFeedback(actions: Action[], feedbackEmitter?: IFeedbackEmitter): void {
|
|
47
|
+
this.feedbackDispatcher.registerFeedback(feedbackEmitter ?? this, actions);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
deregisterFeedback(actions: Action[], feedbackEmitter?: IFeedbackEmitter): void {
|
|
51
|
+
this.feedbackDispatcher.deregisterFeedback(feedbackEmitter ?? this, actions);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -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
|
|
@@ -19,32 +19,30 @@ import {
|
|
|
19
19
|
ChangeBoundsOperation,
|
|
20
20
|
ChangeRoutingPointsOperation,
|
|
21
21
|
CompoundOperation,
|
|
22
|
+
Dimension,
|
|
23
|
+
ElementAndBounds,
|
|
22
24
|
ElementAndRoutingPoints,
|
|
23
25
|
Operation,
|
|
24
|
-
Point
|
|
26
|
+
Point,
|
|
27
|
+
SetBoundsAction
|
|
25
28
|
} from '@eclipse-glsp/protocol';
|
|
26
29
|
import { inject, injectable, optional } from 'inversify';
|
|
27
30
|
import {
|
|
28
31
|
BoundsAware,
|
|
29
|
-
Dimension,
|
|
30
32
|
EdgeRouterRegistry,
|
|
31
|
-
ElementAndBounds,
|
|
32
33
|
findParentByFeature,
|
|
33
34
|
ISnapper,
|
|
34
35
|
isSelected,
|
|
35
|
-
isViewport,
|
|
36
36
|
MouseListener,
|
|
37
37
|
SChildElement,
|
|
38
38
|
SConnectableElement,
|
|
39
|
-
SetBoundsAction,
|
|
40
39
|
SModelElement,
|
|
41
40
|
SModelRoot,
|
|
42
|
-
SParentElement
|
|
43
|
-
TYPES
|
|
41
|
+
SParentElement
|
|
44
42
|
} from 'sprotty';
|
|
45
43
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
46
|
-
import {
|
|
47
|
-
import { isValidMove, isValidSize
|
|
44
|
+
import { TYPES } from '../../base/types';
|
|
45
|
+
import { isValidMove, isValidSize } from '../../utils/layout-utils';
|
|
48
46
|
import {
|
|
49
47
|
forEachElement,
|
|
50
48
|
isNonRoutableSelectedMovableBoundsAware,
|
|
@@ -57,6 +55,7 @@ import {
|
|
|
57
55
|
IMovementRestrictor,
|
|
58
56
|
removeMovementRestrictionFeedback
|
|
59
57
|
} from '../change-bounds/movement-restrictor';
|
|
58
|
+
import { PointPositionUpdater } from '../change-bounds/snap';
|
|
60
59
|
import { SelectionListener, SelectionService } from '../select/selection-service';
|
|
61
60
|
import {
|
|
62
61
|
FeedbackMoveMouseListener,
|
|
@@ -83,10 +82,10 @@ import { BaseGLSPTool } from './base-glsp-tool';
|
|
|
83
82
|
export class ChangeBoundsTool extends BaseGLSPTool {
|
|
84
83
|
static ID = 'glsp.change-bounds-tool';
|
|
85
84
|
|
|
86
|
-
@inject(
|
|
85
|
+
@inject(TYPES.SelectionService) protected selectionService: SelectionService;
|
|
87
86
|
@inject(EdgeRouterRegistry) @optional() readonly edgeRouterRegistry?: EdgeRouterRegistry;
|
|
88
87
|
@inject(TYPES.ISnapper) @optional() readonly snapper?: ISnapper;
|
|
89
|
-
@inject(
|
|
88
|
+
@inject(TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor;
|
|
90
89
|
protected feedbackMoveMouseListener: MouseListener;
|
|
91
90
|
protected changeBoundsListener: MouseListener & SelectionListener;
|
|
92
91
|
|
|
@@ -118,7 +117,7 @@ export class ChangeBoundsTool extends BaseGLSPTool {
|
|
|
118
117
|
this.selectionService.deregister(this.changeBoundsListener);
|
|
119
118
|
this.mouseTool.deregister(this.feedbackMoveMouseListener);
|
|
120
119
|
this.deregisterFeedback([], this.feedbackMoveMouseListener);
|
|
121
|
-
this.deregisterFeedback([
|
|
120
|
+
this.deregisterFeedback([HideChangeBoundsToolResizeFeedbackAction.create()], this.changeBoundsListener);
|
|
122
121
|
}
|
|
123
122
|
}
|
|
124
123
|
|
|
@@ -127,8 +126,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
127
126
|
|
|
128
127
|
// members for calculating the correct position change
|
|
129
128
|
protected initialBounds: Bounds | undefined;
|
|
130
|
-
protected
|
|
131
|
-
protected positionDelta: WriteablePoint = { x: 0, y: 0 };
|
|
129
|
+
protected pointPositionUpdater: PointPositionUpdater;
|
|
132
130
|
|
|
133
131
|
// members for resize mode
|
|
134
132
|
protected activeResizeElement?: SModelElement;
|
|
@@ -136,11 +134,14 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
136
134
|
|
|
137
135
|
constructor(protected tool: ChangeBoundsTool) {
|
|
138
136
|
super();
|
|
137
|
+
this.pointPositionUpdater = new PointPositionUpdater(tool.snapper);
|
|
139
138
|
}
|
|
140
139
|
|
|
141
|
-
mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
140
|
+
override mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
142
141
|
super.mouseDown(target, event);
|
|
143
|
-
|
|
142
|
+
// If another button than the left mouse button was clicked or we are
|
|
143
|
+
// still on the root element we don't need to execute the tool behavior
|
|
144
|
+
if (event.button !== 0 || target instanceof SModelRoot) {
|
|
144
145
|
return [];
|
|
145
146
|
}
|
|
146
147
|
// check if we have a resize handle (only single-selection)
|
|
@@ -157,7 +158,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
157
158
|
return [];
|
|
158
159
|
}
|
|
159
160
|
|
|
160
|
-
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
161
|
+
override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
161
162
|
super.mouseMove(target, event);
|
|
162
163
|
if (this.isMouseDrag && this.activeResizeHandle) {
|
|
163
164
|
// rely on the FeedbackMoveMouseListener to update the element bounds of selected elements
|
|
@@ -166,7 +167,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
166
167
|
cursorFeedbackAction(this.activeResizeHandle.isNwSeResize() ? CursorCSS.RESIZE_NWSE : CursorCSS.RESIZE_NESW),
|
|
167
168
|
applyCssClasses(this.activeResizeHandle, ChangeBoundsListener.CSS_CLASS_ACTIVE)
|
|
168
169
|
];
|
|
169
|
-
const positionUpdate = this.updatePosition(target, event);
|
|
170
|
+
const positionUpdate = this.pointPositionUpdater.updatePosition(target, { x: event.pageX, y: event.pageY }, !event.altKey);
|
|
170
171
|
if (positionUpdate) {
|
|
171
172
|
const resizeActions = this.handleResizeOnClient(positionUpdate);
|
|
172
173
|
actions.push(...resizeActions);
|
|
@@ -176,8 +177,8 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
176
177
|
return [];
|
|
177
178
|
}
|
|
178
179
|
|
|
179
|
-
draggingMouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
180
|
-
if (this.
|
|
180
|
+
override draggingMouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
181
|
+
if (this.pointPositionUpdater.isLastDragPositionUndefined()) {
|
|
181
182
|
this.resetPosition();
|
|
182
183
|
return [];
|
|
183
184
|
}
|
|
@@ -200,16 +201,16 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
200
201
|
operations.push(...this.handleMoveElementsOnServer(target));
|
|
201
202
|
operations.push(...this.handleMoveRoutingPointsOnServer(target));
|
|
202
203
|
if (operations.length > 0) {
|
|
203
|
-
return [
|
|
204
|
+
return [CompoundOperation.create(operations)];
|
|
204
205
|
}
|
|
205
206
|
return operations;
|
|
206
207
|
}
|
|
207
208
|
|
|
208
|
-
protected handleMoveElementsOnServer(target: SModelElement):
|
|
209
|
+
protected handleMoveElementsOnServer(target: SModelElement): Operation[] {
|
|
209
210
|
const result: Operation[] = [];
|
|
210
211
|
const newBounds: ElementAndBounds[] = [];
|
|
211
212
|
const selectedElements: (SModelElement & BoundsAware)[] = [];
|
|
212
|
-
forEachElement(target, isNonRoutableSelectedMovableBoundsAware, element => {
|
|
213
|
+
forEachElement(target.index, isNonRoutableSelectedMovableBoundsAware, element => {
|
|
213
214
|
selectedElements.push(element);
|
|
214
215
|
});
|
|
215
216
|
|
|
@@ -220,7 +221,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
220
221
|
.forEach(bounds => newBounds.push(...bounds));
|
|
221
222
|
|
|
222
223
|
if (newBounds.length > 0) {
|
|
223
|
-
result.push(
|
|
224
|
+
result.push(ChangeBoundsOperation.create(newBounds));
|
|
224
225
|
}
|
|
225
226
|
return result;
|
|
226
227
|
}
|
|
@@ -235,10 +236,10 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
235
236
|
return false;
|
|
236
237
|
}
|
|
237
238
|
|
|
238
|
-
protected handleMoveRoutingPointsOnServer(target: SModelElement):
|
|
239
|
+
protected handleMoveRoutingPointsOnServer(target: SModelElement): Operation[] {
|
|
239
240
|
const result: Operation[] = [];
|
|
240
241
|
const newRoutingPoints: ElementAndRoutingPoints[] = [];
|
|
241
|
-
forEachElement(target, isNonRoutableSelectedMovableBoundsAware, element => {
|
|
242
|
+
forEachElement(target.index, isNonRoutableSelectedMovableBoundsAware, element => {
|
|
242
243
|
// If client routing is enabled -> delegate routingpoints of connected edges to server
|
|
243
244
|
if (this.tool.edgeRouterRegistry && element instanceof SConnectableElement) {
|
|
244
245
|
element.incomingEdges.map(toElementAndRoutingPoints).forEach(ear => newRoutingPoints.push(ear));
|
|
@@ -246,7 +247,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
246
247
|
}
|
|
247
248
|
});
|
|
248
249
|
if (newRoutingPoints.length > 0) {
|
|
249
|
-
result.push(
|
|
250
|
+
result.push(ChangeRoutingPointsOperation.create(newRoutingPoints));
|
|
250
251
|
}
|
|
251
252
|
return result;
|
|
252
253
|
}
|
|
@@ -287,7 +288,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
287
288
|
// only allow one element to have the element resize handles
|
|
288
289
|
this.activeResizeElement = moveableElement;
|
|
289
290
|
if (isResizable(this.activeResizeElement)) {
|
|
290
|
-
this.tool.dispatchFeedback([
|
|
291
|
+
this.tool.dispatchFeedback([ShowChangeBoundsToolResizeFeedbackAction.create(this.activeResizeElement.id)], this);
|
|
291
292
|
}
|
|
292
293
|
return true;
|
|
293
294
|
}
|
|
@@ -299,7 +300,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
299
300
|
}
|
|
300
301
|
|
|
301
302
|
protected initPosition(event: MouseEvent): void {
|
|
302
|
-
this.
|
|
303
|
+
this.pointPositionUpdater.updateLastDragPosition({ x: event.pageX, y: event.pageY });
|
|
303
304
|
if (this.activeResizeHandle) {
|
|
304
305
|
const resizeElement = findParentByFeature(this.activeResizeHandle, isResizable);
|
|
305
306
|
this.initialBounds = {
|
|
@@ -311,39 +312,9 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
311
312
|
}
|
|
312
313
|
}
|
|
313
314
|
|
|
314
|
-
protected updatePosition(target: SModelElement, event: MouseEvent): Point | undefined {
|
|
315
|
-
if (this.lastDragPosition) {
|
|
316
|
-
const newDragPosition = { x: event.pageX, y: event.pageY };
|
|
317
|
-
|
|
318
|
-
const viewport = findParentByFeature(target, isViewport);
|
|
319
|
-
const zoom = viewport ? viewport.zoom : 1;
|
|
320
|
-
const dx = (event.pageX - this.lastDragPosition.x) / zoom;
|
|
321
|
-
const dy = (event.pageY - this.lastDragPosition.y) / zoom;
|
|
322
|
-
const deltaToLastPosition = { x: dx, y: dy };
|
|
323
|
-
this.lastDragPosition = newDragPosition;
|
|
324
|
-
|
|
325
|
-
// update position delta with latest delta
|
|
326
|
-
this.positionDelta.x += deltaToLastPosition.x;
|
|
327
|
-
this.positionDelta.y += deltaToLastPosition.y;
|
|
328
|
-
|
|
329
|
-
// snap our delta and only send update if the position actually changes
|
|
330
|
-
// otherwise accumulate delta until we do snap to an update
|
|
331
|
-
const positionUpdate = this.snap(this.positionDelta, target, !event.altKey);
|
|
332
|
-
if (positionUpdate.x === 0 && positionUpdate.y === 0) {
|
|
333
|
-
return undefined;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
// we update our position so we update our delta by the snapped position
|
|
337
|
-
this.positionDelta.x -= positionUpdate.x;
|
|
338
|
-
this.positionDelta.y -= positionUpdate.y;
|
|
339
|
-
return positionUpdate;
|
|
340
|
-
}
|
|
341
|
-
return undefined;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
315
|
protected reset(): void {
|
|
345
316
|
if (this.activeResizeElement && isResizable(this.activeResizeElement)) {
|
|
346
|
-
this.tool.dispatchFeedback([
|
|
317
|
+
this.tool.dispatchFeedback([HideChangeBoundsToolResizeFeedbackAction.create()], this);
|
|
347
318
|
}
|
|
348
319
|
this.tool.dispatchActions([cursorFeedbackAction(CursorCSS.DEFAULT)]);
|
|
349
320
|
this.resetPosition();
|
|
@@ -351,8 +322,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
351
322
|
|
|
352
323
|
protected resetPosition(): void {
|
|
353
324
|
this.activeResizeHandle = undefined;
|
|
354
|
-
this.
|
|
355
|
-
this.positionDelta = { x: 0, y: 0 };
|
|
325
|
+
this.pointPositionUpdater.resetPosition();
|
|
356
326
|
}
|
|
357
327
|
|
|
358
328
|
protected handleResizeOnClient(positionUpdate: Point): Action[] {
|
|
@@ -418,13 +388,13 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
418
388
|
|
|
419
389
|
protected createChangeBoundsAction(element: SModelElement & BoundsAware): Action[] {
|
|
420
390
|
if (this.isValidBoundChange(element, element.bounds, element.bounds)) {
|
|
421
|
-
return [
|
|
391
|
+
return [ChangeBoundsOperation.create([toElementAndBounds(element)])];
|
|
422
392
|
} else if (this.initialBounds) {
|
|
423
393
|
const actions: Action[] = [];
|
|
424
394
|
if (this.tool.movementRestrictor) {
|
|
425
395
|
actions.push(removeMovementRestrictionFeedback(element, this.tool.movementRestrictor));
|
|
426
396
|
}
|
|
427
|
-
actions.push(
|
|
397
|
+
actions.push(SetBoundsAction.create([{ elementId: element.id, newPosition: this.initialBounds, newSize: this.initialBounds }]));
|
|
428
398
|
return actions;
|
|
429
399
|
}
|
|
430
400
|
return [];
|
|
@@ -446,12 +416,12 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
446
416
|
if (this.tool.movementRestrictor) {
|
|
447
417
|
result.push(removeMovementRestrictionFeedback(element, this.tool.movementRestrictor));
|
|
448
418
|
}
|
|
449
|
-
result.push(
|
|
419
|
+
result.push(SetBoundsAction.create([{ elementId: element.id, newPosition, newSize }]));
|
|
450
420
|
} else if (this.isValidSize(element, newSize)) {
|
|
451
421
|
if (this.tool.movementRestrictor) {
|
|
452
422
|
result.push(createMovementRestrictionFeedback(element, this.tool.movementRestrictor));
|
|
453
423
|
}
|
|
454
|
-
result.push(
|
|
424
|
+
result.push(SetBoundsAction.create([{ elementId: element.id, newPosition, newSize }]));
|
|
455
425
|
}
|
|
456
426
|
|
|
457
427
|
return result;
|
|
@@ -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
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
} from 'sprotty';
|
|
29
29
|
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
30
30
|
import { GLSPTool } from '../../base/tool-manager/glsp-tool-manager';
|
|
31
|
-
import {
|
|
31
|
+
import { TYPES } from '../../base/types';
|
|
32
32
|
import { IMouseTool } from '../mouse-tool/mouse-tool';
|
|
33
33
|
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
34
34
|
import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
|
|
@@ -60,7 +60,7 @@ export class DelKeyDeleteTool implements GLSPTool {
|
|
|
60
60
|
|
|
61
61
|
@injectable()
|
|
62
62
|
export class DeleteKeyListener extends KeyListener {
|
|
63
|
-
keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
63
|
+
override keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
64
64
|
if (matchesKeystroke(event, 'Delete')) {
|
|
65
65
|
const deleteElementIds = Array.from(
|
|
66
66
|
element.root.index
|
|
@@ -70,7 +70,7 @@ export class DeleteKeyListener extends KeyListener {
|
|
|
70
70
|
.map(e => e.id)
|
|
71
71
|
);
|
|
72
72
|
if (deleteElementIds.length > 0) {
|
|
73
|
-
return [
|
|
73
|
+
return [DeleteElementOperation.create(deleteElementIds)];
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
return [];
|
|
@@ -88,8 +88,8 @@ export class MouseDeleteTool implements GLSPTool {
|
|
|
88
88
|
|
|
89
89
|
protected deleteToolMouseListener: DeleteToolMouseListener = new DeleteToolMouseListener();
|
|
90
90
|
|
|
91
|
-
@inject(
|
|
92
|
-
@inject(
|
|
91
|
+
@inject(TYPES.MouseTool) protected mouseTool: IMouseTool;
|
|
92
|
+
@inject(TYPES.IFeedbackActionDispatcher) protected readonly feedbackDispatcher: IFeedbackActionDispatcher;
|
|
93
93
|
|
|
94
94
|
get id(): string {
|
|
95
95
|
return MouseDeleteTool.ID;
|
|
@@ -108,15 +108,15 @@ export class MouseDeleteTool implements GLSPTool {
|
|
|
108
108
|
|
|
109
109
|
@injectable()
|
|
110
110
|
export class DeleteToolMouseListener extends MouseListener {
|
|
111
|
-
mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
111
|
+
override mouseUp(target: SModelElement, event: MouseEvent): Action[] {
|
|
112
112
|
const deletableParent = findParentByFeature(target, isDeletable);
|
|
113
113
|
if (deletableParent === undefined) {
|
|
114
114
|
return [];
|
|
115
115
|
}
|
|
116
116
|
const result: Action[] = [];
|
|
117
|
-
result.push(
|
|
117
|
+
result.push(DeleteElementOperation.create([deletableParent.id]));
|
|
118
118
|
if (!isCtrlOrCmd(event)) {
|
|
119
|
-
result.push(
|
|
119
|
+
result.push(EnableDefaultToolsAction.create());
|
|
120
120
|
}
|
|
121
121
|
return result;
|
|
122
122
|
}
|
|
@@ -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
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { TriggerEdgeCreationAction, TriggerNodeCreationAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { ContainerModule, interfaces } from 'inversify';
|
|
18
18
|
import { configureActionHandler, configureModelElement } from 'sprotty';
|
|
19
|
-
import {
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
20
20
|
import { MARQUEE } from '../tool-feedback/marquee-tool-feedback';
|
|
21
21
|
import { ChangeBoundsTool } from './change-bounds-tool';
|
|
22
22
|
import { DelKeyDeleteTool, MouseDeleteTool } from './delete-tool';
|
|
@@ -30,16 +30,16 @@ import { MarqueeView } from './view';
|
|
|
30
30
|
|
|
31
31
|
const toolsModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
32
32
|
// Register default tools
|
|
33
|
-
bind(
|
|
34
|
-
bind(
|
|
35
|
-
bind(
|
|
33
|
+
bind(TYPES.IDefaultTool).to(ChangeBoundsTool);
|
|
34
|
+
bind(TYPES.IDefaultTool).to(EdgeEditTool);
|
|
35
|
+
bind(TYPES.IDefaultTool).to(DelKeyDeleteTool);
|
|
36
36
|
|
|
37
37
|
// Register tools
|
|
38
|
-
bind(
|
|
38
|
+
bind(TYPES.ITool).to(MouseDeleteTool);
|
|
39
39
|
bind(NodeCreationTool).toSelf().inSingletonScope();
|
|
40
40
|
bind(EdgeCreationTool).toSelf().inSingletonScope();
|
|
41
|
-
bind(
|
|
42
|
-
bind(
|
|
41
|
+
bind(TYPES.ITool).toService(EdgeCreationTool);
|
|
42
|
+
bind(TYPES.ITool).toService(NodeCreationTool);
|
|
43
43
|
|
|
44
44
|
configureMarqueeTool({ bind, isBound });
|
|
45
45
|
configureActionHandler({ bind, isBound }, TriggerNodeCreationAction.KIND, NodeCreationTool);
|
|
@@ -48,8 +48,8 @@ const toolsModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
|
48
48
|
|
|
49
49
|
export function configureMarqueeTool(context: { bind: interfaces.Bind; isBound: interfaces.IsBound }): void {
|
|
50
50
|
configureModelElement(context, MARQUEE, MarqueeNode, MarqueeView);
|
|
51
|
-
context.bind(
|
|
52
|
-
context.bind(
|
|
51
|
+
context.bind(TYPES.IDefaultTool).to(MarqueeTool);
|
|
52
|
+
context.bind(TYPES.ITool).to(MarqueeMouseTool);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
export default toolsModule;
|