@eclipse-glsp/client 0.10.0-next.6bee8eb.163 → 0.10.0-next.88e4725.166
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/lib/base/action-dispatcher.d.ts +1 -0
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +11 -3
- 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 +2 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +4 -4
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +4 -3
- 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 +9 -10
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +1 -1
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +5 -5
- 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 +3 -3
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +9 -9
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +2 -3
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +3 -4
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +3 -3
- 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/features/change-bounds/movement-restrictor.d.ts +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +2 -2
- 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 +77 -1
- 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/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 +11 -8
- 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 +3 -3
- 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 +4 -19
- 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 +6 -5
- 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 +24 -31
- 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 +6 -7
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +5 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +17 -1
- 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 +4 -4
- 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 +1 -1
- 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 +8 -10
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +2 -2
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +14 -4
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +21 -18
- 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 +2 -0
- 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 +22 -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.js +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 +2 -2
- package/lib/features/layout/freeform-layout.js.map +1 -1
- package/lib/features/layout/layout-commands.d.ts +64 -37
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +79 -59
- 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 +29 -17
- 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 +4 -3
- package/lib/features/layout/vbox-layout.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 +7 -7
- 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.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +4 -10
- package/lib/features/mouse-tool/mouse-tool.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 +50 -66
- 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 +7 -8
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +3 -3
- package/lib/features/navigation/navigation-target-resolver.spec.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.js +1 -1
- 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 +4 -5
- 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 +18 -45
- 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.map +1 -1
- package/lib/features/select/selection-service.js +16 -13
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +9 -6
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +16 -8
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +50 -20
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +22 -10
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +46 -21
- 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 +41 -37
- 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 +4 -4
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +43 -21
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +117 -91
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +3 -3
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +20 -9
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +41 -15
- package/lib/features/tool-feedback/marquee-tool-feedback.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 +18 -1
- 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 +3 -2
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +9 -6
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +25 -20
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +3 -3
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +6 -8
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +22 -45
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +5 -5
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.js +9 -9
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +16 -9
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +2 -1
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +20 -15
- 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-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +7 -7
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.js +1 -1
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +2 -1
- 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.map +1 -1
- package/lib/features/tools/node-creation-tool.js +5 -5
- package/lib/features/tools/node-creation-tool.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 +3 -3
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +15 -7
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +21 -19
- 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 +2 -16
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +9 -11
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +27 -26
- 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 +1 -1
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +2 -2
- 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 +4 -5
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +2 -1
- 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 +4 -4
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +5 -5
- 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/layout-utils.d.ts +3 -3
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/smodel-util.d.ts +27 -18
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +30 -11
- 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 +17 -1
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/package.json +5 -4
- package/src/base/action-dispatcher.ts +13 -4
- 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 +8 -13
- package/src/base/command-stack.ts +4 -3
- package/src/base/di.config.ts +4 -5
- package/src/base/editor-context-service.ts +7 -7
- package/src/base/focus-tracker.ts +5 -4
- package/src/base/model/update-model-command.ts +7 -8
- package/src/base/model-initialization-constraint.ts +3 -4
- package/src/base/tool-manager/glsp-tool-manager.ts +4 -4
- package/src/base/tool-manager/tool-actions.ts +37 -0
- package/src/base/types.ts +31 -24
- 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 +5 -6
- 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 +2 -2
- 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 +31 -16
- package/src/features/hover/di.config.ts +4 -0
- package/src/features/hover/hover.ts +29 -11
- package/src/features/layout/di.config.ts +1 -1
- package/src/features/layout/freeform-layout.ts +3 -12
- package/src/features/layout/layout-commands.spec.ts +38 -22
- package/src/features/layout/layout-commands.ts +129 -55
- package/src/features/layout/vbox-layout.ts +4 -8
- 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 +4 -9
- 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/save/di.config.ts +2 -3
- package/src/features/save/save-keylistener.ts +1 -1
- 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 +14 -10
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +42 -13
- package/src/features/tool-feedback/creation-tool-feedback.ts +42 -21
- 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 +122 -78
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +2 -1
- package/src/features/tool-feedback/marquee-tool-feedback.ts +36 -11
- 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 +30 -16
- package/src/features/tools/base-glsp-tool.ts +4 -4
- package/src/features/tools/change-bounds-tool.ts +31 -61
- package/src/features/tools/delete-tool.ts +6 -6
- package/src/features/tools/di.config.ts +10 -10
- package/src/features/tools/edge-creation-tool.ts +18 -9
- package/src/features/tools/edge-edit-tool.ts +20 -16
- package/src/features/tools/marquee-behavior.ts +2 -2
- package/src/features/tools/marquee-mouse-tool.ts +8 -9
- package/src/features/tools/marquee-tool.ts +1 -1
- package/src/features/tools/model.ts +2 -1
- package/src/features/tools/node-creation-tool.ts +5 -5
- 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 +41 -21
- package/src/features/validation/validate.ts +27 -20
- package/src/features/viewport/di.config.ts +1 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +3 -3
- package/src/index.ts +4 -5
- package/src/lib/model.ts +2 -1
- package/src/model-source/glsp-diagram-server.ts +8 -10
- package/src/sprotty-reexport.ts +283 -0
- package/src/utils/layout-utils.ts +3 -3
- package/src/utils/smodel-util.ts +36 -20
- package/src/utils/viewpoint-util.ts +5 -14
- 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 -80
- 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,50 +13,57 @@
|
|
|
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, hasArrayProp } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
|
-
import { CommandExecutionContext, SModelElement, SModelRoot
|
|
19
|
-
import {
|
|
18
|
+
import { CommandExecutionContext, SModelElement, SModelRoot } from 'sprotty';
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
20
|
+
import { addCssClasses, getElements, removeCssClasses } from '../../utils/smodel-util';
|
|
20
21
|
import { FeedbackCommand } from './model';
|
|
21
22
|
|
|
22
|
-
export
|
|
23
|
-
|
|
23
|
+
export interface ModifyCSSFeedbackAction extends Action {
|
|
24
|
+
kind: typeof ModifyCSSFeedbackAction.KIND;
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
elementIds?: string[];
|
|
27
|
+
add?: string[];
|
|
28
|
+
remove?: string[];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export namespace ModifyCSSFeedbackAction {
|
|
32
|
+
export const KIND = 'modifyCSSFeedback';
|
|
33
|
+
|
|
34
|
+
export function is(object: any): object is ModifyCSSFeedbackAction {
|
|
35
|
+
return Action.hasKind(object, KIND) && hasArrayProp(object, 'elementIds');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function create(options: { elements?: (string | SModelElement)[]; add?: string[]; remove?: string[] }): ModifyCSSFeedbackAction {
|
|
39
|
+
const { elements, ...rest } = options;
|
|
40
|
+
const elementIds = elements ? elements.map(element => (typeof element === 'string' ? element : element.id)) : undefined;
|
|
41
|
+
return {
|
|
42
|
+
kind: KIND,
|
|
43
|
+
elementIds,
|
|
44
|
+
...rest
|
|
45
|
+
};
|
|
34
46
|
}
|
|
35
47
|
}
|
|
36
48
|
|
|
37
49
|
@injectable()
|
|
38
50
|
export class ModifyCssFeedbackCommand extends FeedbackCommand {
|
|
39
|
-
static readonly KIND =
|
|
51
|
+
static readonly KIND = ModifyCSSFeedbackAction.KIND;
|
|
40
52
|
|
|
41
53
|
constructor(@inject(TYPES.Action) readonly action: ModifyCSSFeedbackAction) {
|
|
42
54
|
super();
|
|
43
55
|
}
|
|
44
56
|
|
|
45
57
|
execute(context: CommandExecutionContext): SModelRoot {
|
|
46
|
-
const elements
|
|
47
|
-
if (this.action.elementIds) {
|
|
48
|
-
elements.push(...this.action.elementIds.map(elementId => context.root.index.getById(elementId)).filter(exists));
|
|
49
|
-
} else {
|
|
50
|
-
elements.push(context.root);
|
|
51
|
-
}
|
|
58
|
+
const elements = this.action.elementIds ? getElements(context.root.index, this.action.elementIds) : [context.root];
|
|
52
59
|
|
|
53
60
|
elements.forEach(e => {
|
|
54
|
-
if (this.action.
|
|
55
|
-
removeCssClasses(e, this.action.
|
|
61
|
+
if (this.action.remove) {
|
|
62
|
+
removeCssClasses(e, this.action.remove);
|
|
56
63
|
}
|
|
57
64
|
|
|
58
|
-
if (this.action.
|
|
59
|
-
addCssClasses(e, this.action.
|
|
65
|
+
if (this.action.add) {
|
|
66
|
+
addCssClasses(e, this.action.add);
|
|
60
67
|
}
|
|
61
68
|
});
|
|
62
69
|
|
|
@@ -64,10 +71,6 @@ export class ModifyCssFeedbackCommand extends FeedbackCommand {
|
|
|
64
71
|
}
|
|
65
72
|
}
|
|
66
73
|
|
|
67
|
-
function exists(elt?: SModelElement): elt is SModelElement {
|
|
68
|
-
return elt !== undefined;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
74
|
// eslint-disable-next-line no-shadow
|
|
72
75
|
export enum CursorCSS {
|
|
73
76
|
DEFAULT = 'default-mode',
|
|
@@ -85,17 +88,17 @@ export enum CursorCSS {
|
|
|
85
88
|
}
|
|
86
89
|
|
|
87
90
|
export function cursorFeedbackAction(cursorCss?: CursorCSS): ModifyCSSFeedbackAction {
|
|
88
|
-
const
|
|
91
|
+
const add = [];
|
|
89
92
|
if (cursorCss) {
|
|
90
|
-
|
|
93
|
+
add.push(cursorCss);
|
|
91
94
|
}
|
|
92
|
-
return
|
|
95
|
+
return ModifyCSSFeedbackAction.create({ add, remove: Object.values(CursorCSS) });
|
|
93
96
|
}
|
|
94
97
|
|
|
95
|
-
export function applyCssClasses(element: SModelElement, ...
|
|
96
|
-
return
|
|
98
|
+
export function applyCssClasses(element: SModelElement, ...add: string[]): ModifyCSSFeedbackAction {
|
|
99
|
+
return ModifyCSSFeedbackAction.create({ elements: [element], add });
|
|
97
100
|
}
|
|
98
101
|
|
|
99
|
-
export function deleteCssClasses(element: SModelElement, ...
|
|
100
|
-
return
|
|
102
|
+
export function deleteCssClasses(element: SModelElement, ...remove: string[]): ModifyCSSFeedbackAction {
|
|
103
|
+
return ModifyCSSFeedbackAction.create({ elements: [element], remove });
|
|
101
104
|
}
|
|
@@ -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,9 +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 { configureCommand, configureView, LocationPostprocessor, MoveCommand
|
|
18
|
-
|
|
19
|
-
import { GLSP_TYPES } from '../../base/types';
|
|
17
|
+
import { configureCommand, configureView, LocationPostprocessor, MoveCommand } from 'sprotty';
|
|
18
|
+
import { TYPES } from '../../base/types';
|
|
20
19
|
import { SResizeHandle } from '../change-bounds/model';
|
|
21
20
|
import { HideChangeBoundsToolResizeFeedbackCommand, ShowChangeBoundsToolResizeFeedbackCommand } from './change-bounds-tool-feedback';
|
|
22
21
|
import { DrawFeedbackEdgeCommand, FeedbackEdgeEnd, RemoveFeedbackEdgeCommand } from './creation-tool-feedback';
|
|
@@ -32,7 +31,7 @@ import { DrawMarqueeCommand, RemoveMarqueeCommand } from './marquee-tool-feedbac
|
|
|
32
31
|
import { FeedbackEdgeEndView, SResizeHandleView } from './view';
|
|
33
32
|
|
|
34
33
|
const toolFeedbackModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
35
|
-
bind(
|
|
34
|
+
bind(TYPES.IFeedbackActionDispatcher).to(FeedbackActionDispatcher).inSingletonScope();
|
|
36
35
|
|
|
37
36
|
configureCommand({ bind, isBound }, ModifyCssFeedbackCommand);
|
|
38
37
|
|
|
@@ -13,24 +13,21 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, Point } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { Action, Bounds, hasStringProp, Point } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import { VNode } from 'snabbdom';
|
|
19
19
|
import {
|
|
20
|
-
add,
|
|
21
20
|
AnchorComputerRegistry,
|
|
22
|
-
center,
|
|
23
21
|
CommandExecutionContext,
|
|
24
22
|
CommandReturn,
|
|
25
23
|
EdgeRouterRegistry,
|
|
26
24
|
ElementMove,
|
|
27
|
-
euclideanDistance,
|
|
28
25
|
findChildrenAtPosition,
|
|
29
26
|
findParentByFeature,
|
|
30
27
|
isBoundsAware,
|
|
31
28
|
isConnectable,
|
|
29
|
+
ISnapper,
|
|
32
30
|
isSelected,
|
|
33
|
-
isViewport,
|
|
34
31
|
MouseListener,
|
|
35
32
|
MoveAction,
|
|
36
33
|
PolylineEdgeRouter,
|
|
@@ -42,8 +39,9 @@ import {
|
|
|
42
39
|
SwitchEditModeCommand,
|
|
43
40
|
TYPES
|
|
44
41
|
} from 'sprotty';
|
|
45
|
-
import { forEachElement,
|
|
42
|
+
import { forEachElement, isRoutable, isRoutingHandle } from '../../utils/smodel-util';
|
|
46
43
|
import { getAbsolutePosition, toAbsoluteBounds } from '../../utils/viewpoint-util';
|
|
44
|
+
import { PointPositionUpdater } from '../change-bounds/snap';
|
|
47
45
|
import { addReconnectHandles, removeReconnectHandles } from '../reconnect/model';
|
|
48
46
|
import { FeedbackEdgeEnd, feedbackEdgeEndId, FeedbackEdgeEndMovingMouseListener, feedbackEdgeId } from './creation-tool-feedback';
|
|
49
47
|
import { FeedbackCommand } from './model';
|
|
@@ -51,18 +49,41 @@ import { FeedbackCommand } from './model';
|
|
|
51
49
|
/**
|
|
52
50
|
* RECONNECT HANDLES FEEDBACK
|
|
53
51
|
*/
|
|
52
|
+
export interface ShowEdgeReconnectHandlesFeedbackAction extends Action {
|
|
53
|
+
kind: typeof ShowEdgeReconnectHandlesFeedbackAction.KIND;
|
|
54
|
+
readonly elementId: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export namespace ShowEdgeReconnectHandlesFeedbackAction {
|
|
58
|
+
export const KIND = 'showReconnectHandlesFeedback';
|
|
54
59
|
|
|
55
|
-
export
|
|
56
|
-
|
|
60
|
+
export function is(object: any): object is ShowEdgeReconnectHandlesFeedbackAction {
|
|
61
|
+
return Action.hasKind(object, KIND);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function create(elementId: string): ShowEdgeReconnectHandlesFeedbackAction {
|
|
65
|
+
return { kind: KIND, elementId };
|
|
66
|
+
}
|
|
57
67
|
}
|
|
68
|
+
export interface HideEdgeReconnectHandlesFeedbackAction extends Action {
|
|
69
|
+
kind: typeof HideEdgeReconnectHandlesFeedbackAction.KIND;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export namespace HideEdgeReconnectHandlesFeedbackAction {
|
|
73
|
+
export const KIND = 'hideReconnectHandlesFeedback';
|
|
74
|
+
|
|
75
|
+
export function is(object: any): object is HideEdgeReconnectHandlesFeedbackAction {
|
|
76
|
+
return Action.hasKind(object, KIND);
|
|
77
|
+
}
|
|
58
78
|
|
|
59
|
-
export
|
|
60
|
-
|
|
79
|
+
export function create(): HideEdgeReconnectHandlesFeedbackAction {
|
|
80
|
+
return { kind: KIND };
|
|
81
|
+
}
|
|
61
82
|
}
|
|
62
83
|
|
|
63
84
|
@injectable()
|
|
64
85
|
export class ShowEdgeReconnectHandlesFeedbackCommand extends FeedbackCommand {
|
|
65
|
-
static readonly KIND =
|
|
86
|
+
static readonly KIND = ShowEdgeReconnectHandlesFeedbackAction.KIND;
|
|
66
87
|
|
|
67
88
|
constructor(@inject(TYPES.Action) protected action: ShowEdgeReconnectHandlesFeedbackAction) {
|
|
68
89
|
super();
|
|
@@ -72,19 +93,18 @@ export class ShowEdgeReconnectHandlesFeedbackCommand extends FeedbackCommand {
|
|
|
72
93
|
const index = context.root.index;
|
|
73
94
|
forEachElement(index, isRoutable, removeReconnectHandles);
|
|
74
95
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
addReconnectHandles(routableElement);
|
|
79
|
-
}
|
|
96
|
+
const routableElement = index.getById(this.action.elementId);
|
|
97
|
+
if (routableElement && isRoutable(routableElement)) {
|
|
98
|
+
addReconnectHandles(routableElement);
|
|
80
99
|
}
|
|
100
|
+
|
|
81
101
|
return context.root;
|
|
82
102
|
}
|
|
83
103
|
}
|
|
84
104
|
|
|
85
105
|
@injectable()
|
|
86
106
|
export class HideEdgeReconnectHandlesFeedbackCommand extends FeedbackCommand {
|
|
87
|
-
static readonly KIND =
|
|
107
|
+
static readonly KIND = HideEdgeReconnectHandlesFeedbackAction.KIND;
|
|
88
108
|
|
|
89
109
|
constructor(@inject(TYPES.Action) protected action: HideEdgeReconnectHandlesFeedbackAction) {
|
|
90
110
|
super();
|
|
@@ -100,21 +120,24 @@ export class HideEdgeReconnectHandlesFeedbackCommand extends FeedbackCommand {
|
|
|
100
120
|
* ROUTING FEEDBACK
|
|
101
121
|
*/
|
|
102
122
|
|
|
103
|
-
export
|
|
104
|
-
|
|
105
|
-
override readonly elementsToActivate: string[] = [],
|
|
106
|
-
override readonly elementsToDeactivate: string[] = [],
|
|
107
|
-
override readonly kind: string = SwitchRoutingModeCommand.KIND
|
|
108
|
-
) {
|
|
109
|
-
super(elementsToActivate, elementsToDeactivate);
|
|
110
|
-
}
|
|
123
|
+
export interface SwitchRoutingModeAction extends Omit<SwitchEditModeAction, 'kind'> {
|
|
124
|
+
kind: typeof SwitchRoutingModeAction.KIND;
|
|
111
125
|
}
|
|
112
126
|
|
|
127
|
+
export namespace SwitchRoutingModeAction {
|
|
128
|
+
export const KIND = 'switchRoutingMode';
|
|
129
|
+
export function create(options: { elementsToActivate?: string[]; elementsToDeactivate?: string[] }): SwitchRoutingModeAction {
|
|
130
|
+
return {
|
|
131
|
+
...SwitchEditModeAction.create(options),
|
|
132
|
+
kind: KIND
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
113
136
|
@injectable()
|
|
114
137
|
export class SwitchRoutingModeCommand extends SwitchEditModeCommand {
|
|
115
|
-
static override KIND =
|
|
138
|
+
static override KIND = SwitchRoutingModeAction.KIND;
|
|
116
139
|
constructor(@inject(TYPES.Action) action: SwitchRoutingModeAction) {
|
|
117
|
-
super(action);
|
|
140
|
+
super({ ...action, kind: SwitchEditModeAction.KIND });
|
|
118
141
|
}
|
|
119
142
|
}
|
|
120
143
|
|
|
@@ -122,17 +145,30 @@ export class SwitchRoutingModeCommand extends SwitchEditModeCommand {
|
|
|
122
145
|
* SOURCE AND TARGET EDGE FEEDBACK
|
|
123
146
|
*/
|
|
124
147
|
|
|
125
|
-
export
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
148
|
+
export interface DrawFeedbackEdgeSourceAction extends Action {
|
|
149
|
+
kind: typeof DrawFeedbackEdgeSourceAction.KIND;
|
|
150
|
+
elementTypeId: string;
|
|
151
|
+
targetId: string;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export namespace DrawFeedbackEdgeSourceAction {
|
|
155
|
+
export const KIND = 'drawFeedbackEdgeSource';
|
|
156
|
+
|
|
157
|
+
export function is(object: any): object is DrawFeedbackEdgeSourceAction {
|
|
158
|
+
return Action.hasKind(object, KIND) && hasStringProp(object, 'elementTypeId') && hasStringProp(object, 'targetId');
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export function create(options: { elementTypeId: string; targetId: string }): DrawFeedbackEdgeSourceAction {
|
|
162
|
+
return {
|
|
163
|
+
kind: KIND,
|
|
164
|
+
...options
|
|
165
|
+
};
|
|
166
|
+
}
|
|
131
167
|
}
|
|
132
168
|
|
|
133
169
|
@injectable()
|
|
134
170
|
export class DrawFeedbackEdgeSourceCommand extends FeedbackCommand {
|
|
135
|
-
static readonly KIND =
|
|
171
|
+
static readonly KIND = DrawFeedbackEdgeSourceAction.KIND;
|
|
136
172
|
|
|
137
173
|
constructor(@inject(TYPES.Action) protected action: DrawFeedbackEdgeSourceAction) {
|
|
138
174
|
super();
|
|
@@ -173,12 +209,12 @@ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
|
|
|
173
209
|
);
|
|
174
210
|
|
|
175
211
|
if (endAtMousePosition instanceof SConnectableElement && edge.target && isBoundsAware(edge.target)) {
|
|
176
|
-
const anchor = this.computeAbsoluteAnchor(endAtMousePosition, center(edge.target.bounds));
|
|
177
|
-
if (euclideanDistance(anchor, edgeEnd.position) > 1) {
|
|
178
|
-
return [
|
|
212
|
+
const anchor = this.computeAbsoluteAnchor(endAtMousePosition, Bounds.center(edge.target.bounds));
|
|
213
|
+
if (Point.euclideanDistance(anchor, edgeEnd.position) > 1) {
|
|
214
|
+
return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: anchor }], { animate: false })];
|
|
179
215
|
}
|
|
180
216
|
} else {
|
|
181
|
-
return [
|
|
217
|
+
return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: position }], { animate: false })];
|
|
182
218
|
}
|
|
183
219
|
|
|
184
220
|
return [];
|
|
@@ -193,7 +229,7 @@ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
|
|
|
193
229
|
const parent = findParentByFeature(element.parent, isBoundsAware);
|
|
194
230
|
if (parent) {
|
|
195
231
|
const absoluteParentPosition = toAbsoluteBounds(parent);
|
|
196
|
-
anchor = add(absoluteParentPosition, anchor);
|
|
232
|
+
anchor = Point.add(absoluteParentPosition, anchor);
|
|
197
233
|
}
|
|
198
234
|
}
|
|
199
235
|
return anchor;
|
|
@@ -201,11 +237,11 @@ export class FeedbackEdgeSourceMovingMouseListener extends MouseListener {
|
|
|
201
237
|
}
|
|
202
238
|
|
|
203
239
|
export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
|
|
204
|
-
protected
|
|
205
|
-
protected lastDragPosition: Point | undefined;
|
|
240
|
+
protected pointPositionUpdater: PointPositionUpdater;
|
|
206
241
|
|
|
207
|
-
constructor(protected edgeRouterRegistry?: EdgeRouterRegistry) {
|
|
242
|
+
constructor(protected edgeRouterRegistry?: EdgeRouterRegistry, protected snapper?: ISnapper) {
|
|
208
243
|
super();
|
|
244
|
+
this.pointPositionUpdater = new PointPositionUpdater(snapper);
|
|
209
245
|
}
|
|
210
246
|
|
|
211
247
|
override mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
@@ -213,12 +249,11 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
|
|
|
213
249
|
if (event.button === 0) {
|
|
214
250
|
const routingHandle = findParentByFeature(target, isRoutingHandle);
|
|
215
251
|
if (routingHandle !== undefined) {
|
|
216
|
-
result.push(
|
|
217
|
-
this.
|
|
252
|
+
result.push(SwitchRoutingModeAction.create({ elementsToActivate: [target.id] }));
|
|
253
|
+
this.pointPositionUpdater.updateLastDragPosition({ x: event.pageX, y: event.pageY });
|
|
218
254
|
} else {
|
|
219
|
-
this.
|
|
255
|
+
this.pointPositionUpdater.resetPosition();
|
|
220
256
|
}
|
|
221
|
-
this.hasDragged = false;
|
|
222
257
|
}
|
|
223
258
|
return result;
|
|
224
259
|
}
|
|
@@ -226,40 +261,50 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
|
|
|
226
261
|
override mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
227
262
|
const result: Action[] = [];
|
|
228
263
|
if (event.buttons === 0) {
|
|
229
|
-
this.mouseUp(target, event);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
const dy = (event.pageY - this.lastDragPosition.y) / zoom;
|
|
236
|
-
const handleMoves: ElementMove[] = [];
|
|
237
|
-
target.root.index
|
|
238
|
-
.all()
|
|
239
|
-
.filter(element => isSelected(element))
|
|
240
|
-
.forEach(element => {
|
|
241
|
-
if (isRoutingHandle(element)) {
|
|
242
|
-
const point = this.getHandlePosition(element);
|
|
243
|
-
if (point !== undefined) {
|
|
244
|
-
handleMoves.push({
|
|
245
|
-
elementId: element.id,
|
|
246
|
-
fromPosition: point,
|
|
247
|
-
toPosition: {
|
|
248
|
-
x: point.x + dx,
|
|
249
|
-
y: point.y + dy
|
|
250
|
-
}
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
this.lastDragPosition = { x: event.pageX, y: event.pageY };
|
|
256
|
-
if (handleMoves.length > 0) {
|
|
257
|
-
result.push(new MoveAction(handleMoves, false));
|
|
258
|
-
}
|
|
264
|
+
return this.mouseUp(target, event);
|
|
265
|
+
}
|
|
266
|
+
const positionUpdate = this.pointPositionUpdater.updatePosition(target, { x: event.pageX, y: event.pageY }, !event.altKey);
|
|
267
|
+
if (positionUpdate) {
|
|
268
|
+
const moveActions = this.handleMoveOnClient(target, positionUpdate);
|
|
269
|
+
result.push(...moveActions);
|
|
259
270
|
}
|
|
260
271
|
return result;
|
|
261
272
|
}
|
|
262
273
|
|
|
274
|
+
protected handleMoveOnClient(target: SModelElement, positionUpdate: Point): Action[] {
|
|
275
|
+
const handleMoves: ElementMove[] = [];
|
|
276
|
+
target.root.index
|
|
277
|
+
.all()
|
|
278
|
+
.filter(element => isSelected(element))
|
|
279
|
+
.forEach(element => {
|
|
280
|
+
if (isRoutingHandle(element)) {
|
|
281
|
+
const elementMove = this.toElementMove(element, positionUpdate);
|
|
282
|
+
if (elementMove) {
|
|
283
|
+
handleMoves.push(elementMove);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
if (handleMoves.length > 0) {
|
|
288
|
+
return [MoveAction.create(handleMoves, { animate: false })];
|
|
289
|
+
}
|
|
290
|
+
return [];
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
protected toElementMove(element: SRoutingHandle, positionDelta: Point): ElementMove | undefined {
|
|
294
|
+
const point = this.getHandlePosition(element);
|
|
295
|
+
if (point !== undefined) {
|
|
296
|
+
return {
|
|
297
|
+
elementId: element.id,
|
|
298
|
+
fromPosition: point,
|
|
299
|
+
toPosition: {
|
|
300
|
+
x: point.x + positionDelta.x,
|
|
301
|
+
y: point.y + positionDelta.y
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
return undefined;
|
|
306
|
+
}
|
|
307
|
+
|
|
263
308
|
protected getHandlePosition(handle: SRoutingHandle): Point | undefined {
|
|
264
309
|
if (this.edgeRouterRegistry) {
|
|
265
310
|
const parent = handle.parent;
|
|
@@ -281,8 +326,7 @@ export class FeedbackEdgeRouteMovingMouseListener extends MouseListener {
|
|
|
281
326
|
}
|
|
282
327
|
|
|
283
328
|
override mouseUp(_target: SModelElement, event: MouseEvent): Action[] {
|
|
284
|
-
this.
|
|
285
|
-
this.lastDragPosition = undefined;
|
|
329
|
+
this.pointPositionUpdater.resetPosition();
|
|
286
330
|
return [];
|
|
287
331
|
}
|
|
288
332
|
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { Action } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
|
-
import { IActionDispatcher, ILogger
|
|
18
|
+
import { IActionDispatcher, ILogger } from 'sprotty';
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
19
20
|
|
|
20
21
|
export interface IFeedbackEmitter {}
|
|
21
22
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, Point } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { Action, hasObjectProp, Point } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import {
|
|
19
19
|
AnchorComputerRegistry,
|
|
@@ -27,17 +27,30 @@ import {
|
|
|
27
27
|
} from 'sprotty';
|
|
28
28
|
import { FeedbackCommand } from './model';
|
|
29
29
|
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
export interface DrawMarqueeAction extends Action {
|
|
31
|
+
kind: typeof DrawMarqueeAction.KIND;
|
|
32
|
+
startPoint: Point;
|
|
33
|
+
endPoint: Point;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export namespace DrawMarqueeAction {
|
|
37
|
+
export const KIND = 'drawMarquee';
|
|
38
|
+
|
|
39
|
+
export function is(object: any): object is DrawMarqueeAction {
|
|
40
|
+
return Action.hasKind(object, KIND) && hasObjectProp(object, 'startPoint') && hasObjectProp(object, 'endPoint');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function create(options: { startPoint: Point; endPoint: Point }): DrawMarqueeAction {
|
|
44
|
+
return {
|
|
45
|
+
kind: KIND,
|
|
46
|
+
...options
|
|
47
|
+
};
|
|
48
|
+
}
|
|
36
49
|
}
|
|
37
50
|
|
|
38
51
|
@injectable()
|
|
39
52
|
export class DrawMarqueeCommand extends FeedbackCommand {
|
|
40
|
-
static readonly KIND =
|
|
53
|
+
static readonly KIND = DrawMarqueeAction.KIND;
|
|
41
54
|
|
|
42
55
|
constructor(@inject(TYPES.Action) protected action: DrawMarqueeAction) {
|
|
43
56
|
super();
|
|
@@ -49,13 +62,25 @@ export class DrawMarqueeCommand extends FeedbackCommand {
|
|
|
49
62
|
}
|
|
50
63
|
}
|
|
51
64
|
|
|
52
|
-
export
|
|
53
|
-
|
|
65
|
+
export interface RemoveMarqueeAction extends Action {
|
|
66
|
+
kind: typeof RemoveMarqueeAction.KIND;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export namespace RemoveMarqueeAction {
|
|
70
|
+
export const KIND = 'removeMarquee';
|
|
71
|
+
|
|
72
|
+
export function is(object: any): object is RemoveMarqueeAction {
|
|
73
|
+
return Action.hasKind(object, KIND);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function create(): RemoveMarqueeAction {
|
|
77
|
+
return { kind: KIND };
|
|
78
|
+
}
|
|
54
79
|
}
|
|
55
80
|
|
|
56
81
|
@injectable()
|
|
57
82
|
export class RemoveMarqueeCommand extends FeedbackCommand {
|
|
58
|
-
static readonly KIND =
|
|
83
|
+
static readonly KIND = RemoveMarqueeAction.KIND;
|
|
59
84
|
|
|
60
85
|
execute(context: CommandExecutionContext): CommandReturn {
|
|
61
86
|
removeMarquee(context.root);
|
|
@@ -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 { Point } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { injectable } from 'inversify';
|
|
18
18
|
import { VNode } from 'snabbdom';
|
|
19
|
-
import { IView,
|
|
19
|
+
import { IView, RenderingContext, setAttr, SModelElement, svg } from 'sprotty';
|
|
20
20
|
import { isResizable, ResizeHandleLocation, SResizeHandle } from '../change-bounds/model';
|
|
21
21
|
|
|
22
22
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -29,7 +29,7 @@ const JSX = { createElement: svg };
|
|
|
29
29
|
@injectable()
|
|
30
30
|
export class FeedbackEdgeEndView implements IView {
|
|
31
31
|
render(model: Readonly<SModelElement>, context: RenderingContext): VNode {
|
|
32
|
-
const position: Point = (model as any).position
|
|
32
|
+
const position: Point = (model as any).position ?? Point.ORIGIN;
|
|
33
33
|
return <g x={position.x} y={position.y} />;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -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
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import { configureActionHandler, EnableDefaultToolsAction
|
|
17
|
+
import { configureActionHandler, EnableDefaultToolsAction } from 'sprotty';
|
|
18
18
|
import '../../../css/tool-palette.css';
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
19
20
|
import { EnableToolPaletteAction, ToolPalette } from './tool-palette';
|
|
20
21
|
|
|
21
22
|
const toolPaletteModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
|