@eclipse-glsp/client 0.10.0-next.ca17587.154 → 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 +4 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +22 -12
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +16 -7
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +31 -12
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/actions/sprotty-actions.d.ts +7 -0
- package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
- package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
- package/lib/base/actions/sprotty-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +24 -5
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +16 -9
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +2 -2
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +6 -5
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/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 +33 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +41 -28
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +8 -7
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +10 -11
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +5 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +19 -3
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -4
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.d.ts.map +1 -1
- package/lib/features/edit-label/di.config.js +5 -5
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +2 -2
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +11 -13
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +4 -4
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +15 -5
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +29 -26
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +1 -1
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +14 -10
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +16 -4
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +42 -4
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +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 +24 -12
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +42 -38
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +1 -1
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +18 -18
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +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 +2 -2
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -1
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +1 -1
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/index.js +6 -2
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +3 -3
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +2 -2
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/package.json +8 -18
- package/src/base/action-dispatcher.ts +26 -16
- package/src/base/actions/focus-change-action.ts +25 -8
- package/{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 +45 -17
- package/src/features/context-menu/server-context-menu-provider.ts +7 -6
- package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
- package/src/features/copy-paste/copy-paste-handler.ts +6 -6
- package/src/features/copy-paste/di.config.ts +7 -15
- package/src/features/decoration/decoration-placer.ts +4 -4
- package/src/features/decoration/di.config.ts +3 -5
- package/src/features/edit-label/di.config.ts +4 -5
- package/src/features/edit-label/edit-label-tool.ts +1 -2
- package/src/features/edit-label/edit-label-validator.ts +6 -10
- package/src/features/hints/di.config.ts +3 -3
- package/src/features/hints/type-hints.ts +33 -18
- package/src/features/hover/di.config.ts +8 -2
- package/src/features/hover/hover.ts +53 -11
- package/src/features/layout/di.config.ts +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 +79 -30
- package/src/features/tool-feedback/css-feedback.ts +40 -37
- package/src/features/tool-feedback/di.config.ts +4 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +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/compartments.tsx +1 -1
- package/src/views/glsp-edge-view.tsx +4 -4
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-view.tsx +2 -3
- package/lib/features/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
|
@@ -30,7 +30,7 @@ import { MouseListener, SModelElement } from 'sprotty';
|
|
|
30
30
|
*/
|
|
31
31
|
@injectable()
|
|
32
32
|
export class SelectionClearingMouseListener extends MouseListener {
|
|
33
|
-
mouseDown(_target: SModelElement, event: MouseEvent): never[] {
|
|
33
|
+
override mouseDown(_target: SModelElement, event: MouseEvent): never[] {
|
|
34
34
|
const selection = document.getSelection();
|
|
35
35
|
// eslint-disable-next-line no-null/no-null
|
|
36
36
|
if (selection === null) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -17,7 +17,7 @@ import { distinctAdd, EditMode } from '@eclipse-glsp/protocol';
|
|
|
17
17
|
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
18
18
|
import { Tool, ToolManager } from 'sprotty';
|
|
19
19
|
import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context-service';
|
|
20
|
-
import {
|
|
20
|
+
import { TYPES } from '../types';
|
|
21
21
|
|
|
22
22
|
export interface IGLSPToolManager extends ToolManager {
|
|
23
23
|
/* Disables all actives tools and activates only default tool with non-edit function*/
|
|
@@ -28,9 +28,9 @@ export interface IGLSPToolManager extends ToolManager {
|
|
|
28
28
|
export class GLSPToolManager extends ToolManager implements IGLSPToolManager, EditModeListener {
|
|
29
29
|
protected editorContext?: EditorContextService;
|
|
30
30
|
|
|
31
|
-
@multiInject(
|
|
32
|
-
@multiInject(
|
|
33
|
-
@inject(
|
|
31
|
+
@multiInject(TYPES.ITool) @optional() override tools: Tool[];
|
|
32
|
+
@multiInject(TYPES.IDefaultTool) @optional() override defaultTools: Tool[];
|
|
33
|
+
@inject(TYPES.IEditorContextServiceProvider) contextServiceProvider: EditorContextServiceProvider;
|
|
34
34
|
|
|
35
35
|
@postConstruct()
|
|
36
36
|
protected initialize(): void {
|
|
@@ -43,19 +43,19 @@ export class GLSPToolManager extends ToolManager implements IGLSPToolManager, Ed
|
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
registerDefaultTools(...tools: Tool[]): void {
|
|
46
|
+
override registerDefaultTools(...tools: Tool[]): void {
|
|
47
47
|
for (const tool of tools) {
|
|
48
48
|
distinctAdd(this.defaultTools, tool);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
registerTools(...tools: Tool[]): void {
|
|
52
|
+
override registerTools(...tools: Tool[]): void {
|
|
53
53
|
for (const tool of tools) {
|
|
54
54
|
distinctAdd(this.tools, tool);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
enable(toolIds: string[]): void {
|
|
58
|
+
override enable(toolIds: string[]): void {
|
|
59
59
|
this.disableActiveTools();
|
|
60
60
|
let tools = toolIds.map(id => this.tool(id));
|
|
61
61
|
if (this.editorContext && this.editorContext.isReadonly) {
|
|
@@ -90,6 +90,6 @@ export interface GLSPTool extends Tool {
|
|
|
90
90
|
isEditTool: boolean;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
export function isGLSPTool(tool:
|
|
93
|
+
export function isGLSPTool(tool: any): tool is GLSPTool {
|
|
94
94
|
return 'isEditTool' in tool && typeof tool['isEditTool'] === 'boolean';
|
|
95
95
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { Action, hasArrayProp } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { EnableDefaultToolsAction, EnableToolsAction } from 'sprotty/lib/base/tool-manager/tool';
|
|
18
|
+
/* eslint-disable no-shadow */
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Use module augmentation to add the `is` utility function to the tool action namespaces provided by sprotty
|
|
22
|
+
*/
|
|
23
|
+
declare module 'sprotty/lib/base/tool-manager/tool' {
|
|
24
|
+
export namespace EnableDefaultToolsAction {
|
|
25
|
+
export function is(object: any): object is EnableDefaultToolsAction;
|
|
26
|
+
}
|
|
27
|
+
export namespace EnableToolsAction {
|
|
28
|
+
export function is(object: any): object is EnableToolsAction;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
EnableDefaultToolsAction.is = (object: any): object is EnableDefaultToolsAction => Action.hasKind(object, EnableDefaultToolsAction.KIND);
|
|
33
|
+
|
|
34
|
+
EnableToolsAction.is = (object: any): object is EnableToolsAction =>
|
|
35
|
+
Action.hasKind(object, EnableToolsAction.KIND) && hasArrayProp(object, 'toolIds');
|
|
36
|
+
|
|
37
|
+
export { EnableDefaultToolsAction, EnableToolsAction };
|
package/src/base/types.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,27 +13,34 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
IMarqueeBehavior: Symbol
|
|
16
|
+
import { TYPES as SprottyTYPES } from 'sprotty';
|
|
17
|
+
/**
|
|
18
|
+
* Reexport of the TYPES namespace of sprotty augments with additional GLSP specific service
|
|
19
|
+
* identifiers.
|
|
20
|
+
*/
|
|
21
|
+
export const TYPES = {
|
|
22
|
+
...SprottyTYPES,
|
|
23
|
+
IAsyncClipboardService: Symbol('IAsyncClipboardService'),
|
|
24
|
+
IEditorContextServiceProvider: Symbol('IEditorContextProvider'),
|
|
25
|
+
IFeedbackActionDispatcher: Symbol('IFeedbackActionDispatcher'),
|
|
26
|
+
IToolFactory: Symbol('Factory<Tool>'),
|
|
27
|
+
ITypeHintProvider: Symbol('ITypeHintProvider'),
|
|
28
|
+
IMovementRestrictor: Symbol('IMovementRestrictor'),
|
|
29
|
+
SelectionService: Symbol('SelectionService'),
|
|
30
|
+
SelectionListener: Symbol('SelectionListener'),
|
|
31
|
+
SModelRootListener: Symbol('SModelRootListener'),
|
|
32
|
+
MouseTool: Symbol('MouseTool'),
|
|
33
|
+
IContextMenuProvider: Symbol('IContextMenuProvider'),
|
|
34
|
+
ICopyPasteHandler: Symbol('ICopyPasteHandler'),
|
|
35
|
+
ITool: Symbol('ITool'),
|
|
36
|
+
IDefaultTool: Symbol('IDefaultTool'),
|
|
37
|
+
IEditModeListener: Symbol('IEditModeListener'),
|
|
38
|
+
IMarqueeBehavior: Symbol('IMarqueeBehavior')
|
|
39
39
|
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Keep a reexport under the old deprecated namespace to avoid hard API breaks.
|
|
43
|
+
* This gives adopters a grace period but all deprecated API will be removed before the 1.0.0 release.
|
|
44
|
+
* @deprecated Please use `TYPES` from `@eclipse-glsp/client` instead
|
|
45
|
+
*/
|
|
46
|
+
export const GLSP_TYPES = TYPES;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -18,7 +18,7 @@ import { IView, ViewRegistry } from 'sprotty';
|
|
|
18
18
|
|
|
19
19
|
@injectable()
|
|
20
20
|
export class GLSPViewRegistry extends ViewRegistry {
|
|
21
|
-
register(key: string, instance: IView): void {
|
|
21
|
+
override register(key: string, instance: IView): void {
|
|
22
22
|
if (key === undefined) {
|
|
23
23
|
throw new Error('Key is undefined');
|
|
24
24
|
}
|
|
@@ -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
|
|
@@ -51,14 +51,14 @@ export class SResizeHandle extends SChildElement implements Hoverable {
|
|
|
51
51
|
static readonly TYPE = 'resize-handle';
|
|
52
52
|
|
|
53
53
|
constructor(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
readonly location?: ResizeHandleLocation,
|
|
55
|
+
override readonly type: string = SResizeHandle.TYPE,
|
|
56
|
+
readonly hoverFeedback: boolean = false
|
|
57
57
|
) {
|
|
58
58
|
super();
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
hasFeature(feature: symbol): boolean {
|
|
61
|
+
override hasFeature(feature: symbol): boolean {
|
|
62
62
|
return feature === hoverFeedbackFeature;
|
|
63
63
|
}
|
|
64
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
|
|
@@ -33,7 +33,7 @@ export function createMovementRestrictionFeedback(
|
|
|
33
33
|
if (element instanceof SParentElement) {
|
|
34
34
|
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
35
35
|
}
|
|
36
|
-
return
|
|
36
|
+
return ModifyCSSFeedbackAction.create({ elements, add: movementRestrictor.cssClasses });
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
export function removeMovementRestrictionFeedback(
|
|
@@ -45,7 +45,7 @@ export function removeMovementRestrictionFeedback(
|
|
|
45
45
|
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
return
|
|
48
|
+
return ModifyCSSFeedbackAction.create({ elements, remove: movementRestrictor.cssClasses });
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
@injectable()
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { expect } from 'chai';
|
|
18
|
+
import { SModelElement } from 'sprotty';
|
|
19
|
+
import { GridSnapper, PointPositionUpdater } from './snap';
|
|
20
|
+
|
|
21
|
+
describe('GridSnapper', () => {
|
|
22
|
+
it('snap', () => {
|
|
23
|
+
const element = new SModelElement();
|
|
24
|
+
const snapper = new GridSnapper();
|
|
25
|
+
expect(snapper.snap({ x: 0, y: 0 }, element)).to.be.deep.equals({ x: 0, y: 0 });
|
|
26
|
+
expect(snapper.snap({ x: 4, y: 5 }, element)).to.be.deep.equals({ x: 0, y: 10 });
|
|
27
|
+
expect(snapper.snap({ x: 8, y: 11 }, element)).to.be.deep.equals({ x: 10, y: 10 });
|
|
28
|
+
expect(snapper.snap({ x: -7, y: -4 }, element)).to.be.deep.equals({ x: -10, y: -0 });
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
describe('PointPositionUpdater', () => {
|
|
33
|
+
it('updatePosition with no last drag position', () => {
|
|
34
|
+
const element = new SModelElement();
|
|
35
|
+
const updater = new PointPositionUpdater();
|
|
36
|
+
expect(updater.updatePosition(element, { x: 0, y: 0 }, false)).to.be.undefined;
|
|
37
|
+
expect(updater.updatePosition(element, { x: 0, y: 0 }, true)).to.be.undefined;
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('update last position and reset', () => {
|
|
41
|
+
const updater = new PointPositionUpdater();
|
|
42
|
+
expect(updater.isLastDragPositionUndefined()).to.be.true;
|
|
43
|
+
updater.updateLastDragPosition({ x: 0, y: 0 });
|
|
44
|
+
expect(updater.isLastDragPositionUndefined()).to.be.false;
|
|
45
|
+
updater.resetPosition();
|
|
46
|
+
expect(updater.isLastDragPositionUndefined()).to.be.true;
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('updatePosition with no snapper', () => {
|
|
50
|
+
const element = new SModelElement();
|
|
51
|
+
const updater = new PointPositionUpdater();
|
|
52
|
+
resetUpdater(updater);
|
|
53
|
+
expect(updater.updatePosition(element, { x: 0, y: 0 }, false)).to.be.undefined;
|
|
54
|
+
expect(updater.updatePosition(element, { x: 0, y: 0 }, true)).to.be.undefined;
|
|
55
|
+
|
|
56
|
+
resetUpdater(updater);
|
|
57
|
+
expect(updater.updatePosition(element, { x: 5, y: 3 }, false)).to.be.deep.equals({ x: 5, y: 3 });
|
|
58
|
+
expect(updater.updatePosition(element, { x: 5, y: 3 }, true)).to.be.undefined;
|
|
59
|
+
expect(updater.updatePosition(element, { x: 11, y: 6 }, false)).to.be.deep.equals({ x: 6, y: 3 });
|
|
60
|
+
expect(updater.updatePosition(element, { x: -3, y: 2 }, true)).to.be.deep.equals({ x: -14, y: -4 });
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('updatePosition with snapper', () => {
|
|
64
|
+
const element = new SModelElement();
|
|
65
|
+
const snapper = new GridSnapper();
|
|
66
|
+
const updater = new PointPositionUpdater(snapper);
|
|
67
|
+
resetUpdater(updater);
|
|
68
|
+
expect(updater.updatePosition(element, { x: 0, y: 0 }, false)).to.be.undefined;
|
|
69
|
+
expect(updater.updatePosition(element, { x: 0, y: 0 }, true)).to.be.undefined;
|
|
70
|
+
|
|
71
|
+
resetUpdater(updater);
|
|
72
|
+
expect(updater.updatePosition(element, { x: 5, y: 3 }, true)).to.be.deep.equals({ x: 10, y: 0 });
|
|
73
|
+
expect(updater.updatePosition(element, { x: 5, y: 3 }, true)).to.be.undefined;
|
|
74
|
+
expect(updater.updatePosition(element, { x: 11, y: 6 }, true)).to.be.deep.equals({ x: 0, y: 10 });
|
|
75
|
+
expect(updater.updatePosition(element, { x: -3, y: 2 }, true)).to.be.deep.equals({ x: -10, y: -10 });
|
|
76
|
+
|
|
77
|
+
// disable snapping (alt key)
|
|
78
|
+
resetUpdater(updater);
|
|
79
|
+
expect(updater.updatePosition(element, { x: 5, y: 3 }, false)).to.be.deep.equals({ x: 5, y: 3 });
|
|
80
|
+
expect(updater.updatePosition(element, { x: 5, y: 3 }, false)).to.be.undefined;
|
|
81
|
+
expect(updater.updatePosition(element, { x: 11, y: 6 }, false)).to.be.deep.equals({ x: 6, y: 3 });
|
|
82
|
+
expect(updater.updatePosition(element, { x: -3, y: 2 }, false)).to.be.deep.equals({ x: -14, y: -4 });
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
function resetUpdater(updater: PointPositionUpdater): void {
|
|
86
|
+
updater.resetPosition();
|
|
87
|
+
updater.updateLastDragPosition({ x: 0, y: 0 });
|
|
88
|
+
}
|
|
89
|
+
});
|
|
@@ -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,7 +15,8 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { Point } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { injectable } from 'inversify';
|
|
18
|
-
import { ISnapper, SModelElement } from 'sprotty';
|
|
18
|
+
import { findParentByFeature, ISnapper, isViewport, SModelElement } from 'sprotty';
|
|
19
|
+
import { WriteablePoint } from '../../utils/layout-utils';
|
|
19
20
|
|
|
20
21
|
@injectable()
|
|
21
22
|
export class GridSnapper implements ISnapper {
|
|
@@ -34,3 +35,86 @@ export class GridSnapper implements ISnapper {
|
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
37
|
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* This class can be used to calculate the current position, when an element is
|
|
41
|
+
* moved. This includes node movements, node resizing (resize handle movement)
|
|
42
|
+
* or edge routing-point movements.
|
|
43
|
+
*
|
|
44
|
+
* You can initialize a this class with a optional {@link ISnapper}. If a
|
|
45
|
+
* snapper is present, the positions will be snapped to the defined grid.
|
|
46
|
+
*/
|
|
47
|
+
export class PointPositionUpdater {
|
|
48
|
+
protected lastDragPosition?: Point;
|
|
49
|
+
protected positionDelta: WriteablePoint = { x: 0, y: 0 };
|
|
50
|
+
|
|
51
|
+
constructor(protected snapper?: ISnapper) {}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Init the position with the {@link Point} of your mouse cursor.
|
|
55
|
+
* This method is normally called in the `mouseDown` event.
|
|
56
|
+
* @param mousePosition current mouse position e.g `{x: event.pageX, y: event.pageY }`
|
|
57
|
+
*/
|
|
58
|
+
public updateLastDragPosition(mousePosition: Point): void {
|
|
59
|
+
this.lastDragPosition = mousePosition;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Check if the mouse is currently not in a drag mode.
|
|
64
|
+
* @returns true if the last drag position is undefined
|
|
65
|
+
*/
|
|
66
|
+
public isLastDragPositionUndefined(): boolean {
|
|
67
|
+
return this.lastDragPosition === undefined;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Reset the updater for new movements.
|
|
72
|
+
* This method is normally called in the `mouseUp` event.
|
|
73
|
+
*/
|
|
74
|
+
public resetPosition(): void {
|
|
75
|
+
this.lastDragPosition = undefined;
|
|
76
|
+
this.positionDelta = { x: 0, y: 0 };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Calculate the current position of your movement.
|
|
81
|
+
* This method is normally called in the `mouseMove` event.
|
|
82
|
+
* @param target node which is moved around
|
|
83
|
+
* @param mousePosition current mouse position e.g `{x: event.pageX, y: event.pageY }`
|
|
84
|
+
* @param isSnapEnabled if a snapper is defined you can disable it, e.g when a specific key is pressed `!event.altKey`
|
|
85
|
+
* @returns current position or undefined if updater has no last drag position initialized
|
|
86
|
+
*/
|
|
87
|
+
public updatePosition(target: SModelElement, mousePosition: Point, isSnapEnabled: boolean): Point | undefined {
|
|
88
|
+
if (this.lastDragPosition) {
|
|
89
|
+
const newDragPosition = mousePosition;
|
|
90
|
+
|
|
91
|
+
const viewport = findParentByFeature(target, isViewport);
|
|
92
|
+
const zoom = viewport?.zoom ?? 1;
|
|
93
|
+
const dx = (mousePosition.x - this.lastDragPosition.x) / zoom;
|
|
94
|
+
const dy = (mousePosition.y - this.lastDragPosition.y) / zoom;
|
|
95
|
+
const deltaToLastPosition = { x: dx, y: dy };
|
|
96
|
+
this.lastDragPosition = newDragPosition;
|
|
97
|
+
|
|
98
|
+
// update position delta with latest delta
|
|
99
|
+
this.positionDelta.x += deltaToLastPosition.x;
|
|
100
|
+
this.positionDelta.y += deltaToLastPosition.y;
|
|
101
|
+
|
|
102
|
+
// snap our delta and only send update if the position actually changes
|
|
103
|
+
// otherwise accumulate delta until we do snap to an update
|
|
104
|
+
const positionUpdate = this.snap(this.positionDelta, target, isSnapEnabled);
|
|
105
|
+
if (positionUpdate.x === 0 && positionUpdate.y === 0) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// we update our position so we update our delta by the snapped position
|
|
110
|
+
this.positionDelta.x -= positionUpdate.x;
|
|
111
|
+
this.positionDelta.y -= positionUpdate.y;
|
|
112
|
+
return positionUpdate;
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
protected snap(position: Point, element: SModelElement, isSnap: boolean): Point {
|
|
118
|
+
return isSnap && this.snapper ? this.snapper.snap(position, element) : { x: position.x, y: position.y };
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,12 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import '../../../css/command-palette.css';
|
|
17
|
-
|
|
18
16
|
import { ContainerModule } from 'inversify';
|
|
19
|
-
import { CommandPalette, CommandPaletteActionProviderRegistry
|
|
20
|
-
|
|
21
|
-
import {
|
|
17
|
+
import { CommandPalette, CommandPaletteActionProviderRegistry } from 'sprotty';
|
|
18
|
+
import '../../../css/command-palette.css';
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
22
20
|
import { CommandPaletteTool } from './command-palette-tool';
|
|
23
21
|
import { ServerCommandPaletteActionProvider } from './server-command-palette-provider';
|
|
24
22
|
|
|
@@ -28,7 +26,7 @@ const glspCommandPaletteModule = new ContainerModule(bind => {
|
|
|
28
26
|
bind(CommandPaletteActionProviderRegistry).toSelf().inSingletonScope();
|
|
29
27
|
bind(TYPES.ICommandPaletteActionProviderRegistry).toService(CommandPaletteActionProviderRegistry);
|
|
30
28
|
bind(TYPES.ICommandPaletteActionProvider).to(ServerCommandPaletteActionProvider);
|
|
31
|
-
bind(
|
|
29
|
+
bind(TYPES.IDefaultTool).to(CommandPaletteTool);
|
|
32
30
|
});
|
|
33
31
|
|
|
34
32
|
export default glspCommandPaletteModule;
|
|
@@ -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,12 @@
|
|
|
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, LabeledAction, Point, RequestContextActions, SetContextActions } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
|
-
import { ICommandPaletteActionProvider, SModelElement
|
|
18
|
+
import { ICommandPaletteActionProvider, SModelElement } from 'sprotty';
|
|
19
19
|
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
20
20
|
import { EditorContextService } from '../../base/editor-context-service';
|
|
21
|
+
import { TYPES } from '../../base/types';
|
|
21
22
|
|
|
22
23
|
export namespace ServerCommandPalette {
|
|
23
24
|
export const CONTEXT_ID = 'command-palette';
|
|
@@ -31,18 +32,18 @@ export class ServerCommandPaletteActionProvider implements ICommandPaletteAction
|
|
|
31
32
|
@inject(EditorContextService) protected editorContext: EditorContextService;
|
|
32
33
|
|
|
33
34
|
getActions(_root: Readonly<SModelElement>, text: string, _lastMousePosition?: Point, index?: number): Promise<LabeledAction[]> {
|
|
34
|
-
const requestAction =
|
|
35
|
-
ServerCommandPalette.CONTEXT_ID,
|
|
36
|
-
this.editorContext.get({
|
|
35
|
+
const requestAction = RequestContextActions.create({
|
|
36
|
+
contextId: ServerCommandPalette.CONTEXT_ID,
|
|
37
|
+
editorContext: this.editorContext.get({
|
|
37
38
|
[ServerCommandPalette.TEXT]: text,
|
|
38
39
|
[ServerCommandPalette.INDEX]: index ? index : 0
|
|
39
40
|
})
|
|
40
|
-
);
|
|
41
|
+
});
|
|
41
42
|
return this.actionDispatcher.requestUntil(requestAction).then(response => this.getPaletteActionsFromResponse(response));
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
getPaletteActionsFromResponse(action: Action): LabeledAction[] {
|
|
45
|
-
if (
|
|
46
|
+
if (SetContextActions.is(action)) {
|
|
46
47
|
return action.actions;
|
|
47
48
|
}
|
|
48
49
|
return [];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,15 +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 { DeleteElementOperation } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { DeleteElementOperation, Point } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
|
-
import { IContextMenuItemProvider, MenuItem,
|
|
18
|
+
import { IContextMenuItemProvider, MenuItem, SModelRoot } from 'sprotty';
|
|
19
19
|
import { EditorContextService, EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
20
|
-
import {
|
|
20
|
+
import { TYPES } from '../../base/types';
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export class DeleteElementContextMenuItemProvider implements IContextMenuItemProvider {
|
|
24
|
-
@inject(
|
|
24
|
+
@inject(TYPES.IEditorContextServiceProvider) editorContextServiceProvider: EditorContextServiceProvider;
|
|
25
25
|
|
|
26
26
|
async getItems(_root: Readonly<SModelRoot>, _lastMousePosition?: Point): Promise<MenuItem[]> {
|
|
27
27
|
const editorContextService = await this.editorContextServiceProvider();
|
|
@@ -34,7 +34,7 @@ export class DeleteElementContextMenuItemProvider implements IContextMenuItemPro
|
|
|
34
34
|
label: 'Delete',
|
|
35
35
|
sortString: 'd',
|
|
36
36
|
group: 'edit',
|
|
37
|
-
actions: [
|
|
37
|
+
actions: [DeleteElementOperation.create(editorContextService.selectedElements.map(e => e.id))],
|
|
38
38
|
isEnabled: () => !editorContextService.isReadonly && editorContextService.selectedElements.length > 0
|
|
39
39
|
};
|
|
40
40
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import { ContextMenuProviderRegistry, IContextMenuService
|
|
17
|
+
import { ContextMenuProviderRegistry, IContextMenuService } from 'sprotty';
|
|
18
|
+
import { TYPES } from '../../base/types';
|
|
18
19
|
import { SelectionServiceAwareContextMenuMouseListener } from './selection-service-aware-context-menu-mouse-listener';
|
|
19
20
|
import { ServerContextMenuItemProvider } from './server-context-menu-provider';
|
|
20
21
|
|