@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) 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,16 +13,11 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
isSetResolvedNavigationTargets,
|
|
18
|
-
NavigationTarget,
|
|
19
|
-
ResolveNavigationTargetAction,
|
|
20
|
-
SetResolvedNavigationTargetAction
|
|
21
|
-
} from '@eclipse-glsp/protocol';
|
|
16
|
+
import { NavigationTarget, ResolveNavigationTargetAction, ResponseAction, SetResolvedNavigationTargetAction } from '@eclipse-glsp/protocol';
|
|
22
17
|
import { inject, injectable } from 'inversify';
|
|
23
|
-
import { IActionDispatcher, ILogger
|
|
18
|
+
import { IActionDispatcher, ILogger } from 'sprotty';
|
|
24
19
|
import { EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
25
|
-
import {
|
|
20
|
+
import { TYPES } from '../../base/types';
|
|
26
21
|
|
|
27
22
|
/**
|
|
28
23
|
* Resolves `NavigationTargets` to element ids.
|
|
@@ -32,7 +27,7 @@ import { GLSP_TYPES } from '../../base/types';
|
|
|
32
27
|
*/
|
|
33
28
|
@injectable()
|
|
34
29
|
export class NavigationTargetResolver {
|
|
35
|
-
@inject(
|
|
30
|
+
@inject(TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
|
|
36
31
|
@inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
|
|
37
32
|
@inject(TYPES.ILogger) protected readonly logger: ILogger;
|
|
38
33
|
|
|
@@ -53,16 +48,16 @@ export class NavigationTargetResolver {
|
|
|
53
48
|
return undefined;
|
|
54
49
|
}
|
|
55
50
|
if (NavigationTarget.getElementIds(target).length > 0) {
|
|
56
|
-
return
|
|
51
|
+
return SetResolvedNavigationTargetAction.create(NavigationTarget.getElementIds(target));
|
|
57
52
|
}
|
|
58
53
|
const response = await this.requestResolution(target);
|
|
59
|
-
if (
|
|
54
|
+
if (SetResolvedNavigationTargetAction.is(response)) {
|
|
60
55
|
return response;
|
|
61
56
|
}
|
|
62
57
|
return undefined;
|
|
63
58
|
}
|
|
64
59
|
|
|
65
60
|
protected requestResolution(target: NavigationTarget): Promise<ResponseAction> {
|
|
66
|
-
return this.dispatcher.request(
|
|
61
|
+
return this.dispatcher.request(ResolveNavigationTargetAction.create(target));
|
|
67
62
|
}
|
|
68
63
|
}
|
|
@@ -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,8 +14,7 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
|
-
import { TYPES } from '
|
|
18
|
-
|
|
17
|
+
import { TYPES } from '../../base/types';
|
|
19
18
|
import { SaveModelKeyboardListener } from './save-keylistener';
|
|
20
19
|
|
|
21
20
|
/**
|
|
@@ -20,7 +20,7 @@ import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
|
20
20
|
export class SaveModelKeyboardListener extends KeyListener {
|
|
21
21
|
override keyDown(_element: SModelRoot, event: KeyboardEvent): Action[] {
|
|
22
22
|
if (matchesKeystroke(event, 'KeyS', 'ctrlCmd')) {
|
|
23
|
-
return [
|
|
23
|
+
return [SaveModelAction.create()];
|
|
24
24
|
}
|
|
25
25
|
return [];
|
|
26
26
|
}
|
|
@@ -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,22 +14,20 @@
|
|
|
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
|
|
18
|
-
|
|
19
|
-
import {
|
|
20
|
-
import { SelectAllFeedbackCommand, SelectFeedbackCommand } from './select-feedback-action';
|
|
17
|
+
import { configureCommand } from 'sprotty';
|
|
18
|
+
import { TYPES } from '../../base/types';
|
|
19
|
+
import { SelectFeedbackCommand } from './select-feedback-action';
|
|
21
20
|
import { RankedSelectMouseListener } from './select-mouse-listener';
|
|
22
21
|
import { SelectAllCommand, SelectCommand, SelectionService } from './selection-service';
|
|
23
22
|
|
|
24
23
|
const glspSelectModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
25
24
|
bind(SelectionService).toSelf().inSingletonScope();
|
|
26
|
-
bind(
|
|
25
|
+
bind(TYPES.SelectionService).toService(SelectionService);
|
|
27
26
|
configureCommand({ bind, isBound }, SelectCommand);
|
|
28
27
|
configureCommand({ bind, isBound }, SelectAllCommand);
|
|
29
28
|
configureCommand({ bind, isBound }, SelectFeedbackCommand);
|
|
30
|
-
configureCommand({ bind, isBound }, SelectAllFeedbackCommand);
|
|
31
29
|
bind(TYPES.MouseListener).to(RankedSelectMouseListener);
|
|
32
|
-
bind(
|
|
30
|
+
bind(TYPES.SModelRootListener).toService(SelectionService);
|
|
33
31
|
});
|
|
34
32
|
|
|
35
33
|
export default glspSelectModule;
|
|
@@ -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,39 +13,34 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, hasArrayProp, SelectAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
CommandExecutionContext,
|
|
20
|
-
SelectAllCommand as SprottySelectAllCommand,
|
|
21
|
-
SelectCommand as SprottySelectCommand,
|
|
22
|
-
SModelRoot,
|
|
23
|
-
TYPES
|
|
24
|
-
} from 'sprotty';
|
|
18
|
+
import { Command, CommandExecutionContext, SelectCommand as SprottySelectCommand, SModelRoot } from 'sprotty';
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
25
20
|
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
public readonly selectedElementsIDs: string[] = [],
|
|
29
|
-
public readonly deselectedElementsIDs: string[] = [],
|
|
30
|
-
public readonly kind: string = SelectFeedbackCommand.KIND
|
|
31
|
-
) {}
|
|
21
|
+
export interface SelectFeedbackAction extends Omit<SelectAction, 'kind'>, Action {
|
|
22
|
+
kind: typeof SelectFeedbackAction.KIND;
|
|
32
23
|
}
|
|
33
24
|
|
|
34
|
-
export
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
25
|
+
export namespace SelectFeedbackAction {
|
|
26
|
+
export const KIND = 'selectFeedback';
|
|
27
|
+
|
|
28
|
+
export function is(object: any): object is SelectFeedbackAction {
|
|
29
|
+
return Action.hasKind(object, KIND) && hasArrayProp(object, 'selectedElementsIDs') && hasArrayProp(object, 'deselectedElementsIDs');
|
|
30
|
+
}
|
|
40
31
|
|
|
32
|
+
export function create(options?: { selectedElementsIDs?: string[]; deselectedElementsIDs?: string[] }): SelectFeedbackAction {
|
|
33
|
+
return { ...SelectAction.create(options), kind: KIND };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
41
36
|
@injectable()
|
|
42
37
|
export class SelectFeedbackCommand extends Command {
|
|
43
|
-
static readonly KIND =
|
|
38
|
+
static readonly KIND = SelectFeedbackAction.KIND;
|
|
44
39
|
private sprottySelectCommand: SprottySelectCommand;
|
|
45
40
|
|
|
46
41
|
constructor(@inject(TYPES.Action) public action: SelectFeedbackAction) {
|
|
47
42
|
super();
|
|
48
|
-
this.sprottySelectCommand = new SprottySelectCommand(action);
|
|
43
|
+
this.sprottySelectCommand = new SprottySelectCommand({ ...action, kind: SelectAction.KIND });
|
|
49
44
|
}
|
|
50
45
|
|
|
51
46
|
execute(context: CommandExecutionContext): SModelRoot {
|
|
@@ -60,26 +55,3 @@ export class SelectFeedbackCommand extends Command {
|
|
|
60
55
|
return this.sprottySelectCommand.redo(context);
|
|
61
56
|
}
|
|
62
57
|
}
|
|
63
|
-
|
|
64
|
-
@injectable()
|
|
65
|
-
export class SelectAllFeedbackCommand extends Command {
|
|
66
|
-
static readonly KIND = 'allSelectedFeedback';
|
|
67
|
-
private sprottySelectAllCommand: SprottySelectAllCommand;
|
|
68
|
-
|
|
69
|
-
constructor(@inject(TYPES.Action) public action: SelectAllFeedbackAction) {
|
|
70
|
-
super();
|
|
71
|
-
this.sprottySelectAllCommand = new SprottySelectAllCommand(action);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
execute(context: CommandExecutionContext): SModelRoot {
|
|
75
|
-
return this.sprottySelectAllCommand.execute(context);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
undo(context: CommandExecutionContext): SModelRoot {
|
|
79
|
-
return this.sprottySelectAllCommand.undo(context);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
redo(context: CommandExecutionContext): SModelRoot {
|
|
83
|
-
return this.sprottySelectAllCommand.redo(context);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
@@ -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,7 +14,6 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { SelectMouseListener } from 'sprotty';
|
|
17
|
-
|
|
18
17
|
import { DEFAULT_RANK, Ranked } from '../rank/model';
|
|
19
18
|
|
|
20
19
|
/**
|
|
@@ -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
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
/* eslint-disable import/no-deprecated,no-unused-expressions */
|
|
17
|
-
import { Action } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { Action, SModelElementSchema } from '@eclipse-glsp/protocol';
|
|
18
18
|
import { AssertionError, expect } from 'chai';
|
|
19
19
|
import { Container, injectable } from 'inversify';
|
|
20
|
-
import { defaultModule, SGraphFactory,
|
|
21
|
-
import {
|
|
20
|
+
import { defaultModule, SGraphFactory, SModelRoot } from 'sprotty';
|
|
21
|
+
import { TYPES } from '../../base/types';
|
|
22
22
|
import { IFeedbackActionDispatcher, IFeedbackEmitter } from '../tool-feedback/feedback-action-dispatcher';
|
|
23
23
|
import { SelectFeedbackAction } from './select-feedback-action';
|
|
24
24
|
import { SelectionListener, SelectionService } from './selection-service';
|
|
@@ -74,14 +74,16 @@ class MockSelectionListener implements SelectionListener {
|
|
|
74
74
|
function createContainer(): Container {
|
|
75
75
|
const container = new Container();
|
|
76
76
|
container.load(defaultModule);
|
|
77
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
77
78
|
container.rebind(TYPES.IModelFactory).to(SGraphFactory).inSingletonScope();
|
|
78
|
-
container.bind(
|
|
79
|
+
container.bind(TYPES.IFeedbackActionDispatcher).to(MockFeedbackActionDispatcher).inSingletonScope();
|
|
79
80
|
container.bind(SelectionService).toSelf().inSingletonScope();
|
|
80
|
-
container.bind(
|
|
81
|
+
container.bind(TYPES.SelectionService).toService(SelectionService);
|
|
81
82
|
return container;
|
|
82
83
|
}
|
|
83
84
|
|
|
84
85
|
describe('SelectionService', () => {
|
|
86
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
85
87
|
let graphFactory: SGraphFactory;
|
|
86
88
|
let root: SModelRoot;
|
|
87
89
|
let selectionService: SelectionService;
|
|
@@ -89,10 +91,11 @@ describe('SelectionService', () => {
|
|
|
89
91
|
|
|
90
92
|
beforeEach(() => {
|
|
91
93
|
const container = createContainer();
|
|
94
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
92
95
|
graphFactory = container.get<SGraphFactory>(TYPES.IModelFactory);
|
|
93
96
|
root = createRoot('node1', 'node2', 'node3', 'node4', 'node5');
|
|
94
|
-
selectionService = container.get<SelectionService>(
|
|
95
|
-
feedbackDispatcher = container.get<MockFeedbackActionDispatcher>(
|
|
97
|
+
selectionService = container.get<SelectionService>(TYPES.SelectionService);
|
|
98
|
+
feedbackDispatcher = container.get<MockFeedbackActionDispatcher>(TYPES.IFeedbackActionDispatcher);
|
|
96
99
|
});
|
|
97
100
|
|
|
98
101
|
describe('Initial State', () => {
|
|
@@ -26,12 +26,11 @@ import {
|
|
|
26
26
|
SelectCommand as SprottySelectCommand,
|
|
27
27
|
SModelElement,
|
|
28
28
|
SModelRoot,
|
|
29
|
-
SParentElement
|
|
30
|
-
TYPES
|
|
29
|
+
SParentElement
|
|
31
30
|
} from 'sprotty';
|
|
32
31
|
import { SModelRootListener } from '../../base/model/update-model-command';
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
32
|
+
import { TYPES } from '../../base/types';
|
|
33
|
+
import { getElements } from '../../utils/smodel-util';
|
|
35
34
|
import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-dispatcher';
|
|
36
35
|
import { SelectFeedbackAction } from './select-feedback-action';
|
|
37
36
|
|
|
@@ -44,10 +43,10 @@ export class SelectionService implements SModelRootListener {
|
|
|
44
43
|
private root: Readonly<SModelRoot>;
|
|
45
44
|
private selectedElementIDs: Set<string> = new Set();
|
|
46
45
|
|
|
47
|
-
@inject(
|
|
46
|
+
@inject(TYPES.IFeedbackActionDispatcher) protected feedbackDispatcher: IFeedbackActionDispatcher;
|
|
48
47
|
@inject(TYPES.ILogger) protected logger: ILogger;
|
|
49
48
|
|
|
50
|
-
constructor(@multiInject(
|
|
49
|
+
constructor(@multiInject(TYPES.SelectionListener) @optional() protected selectionListeners: SelectionListener[] = []) {}
|
|
51
50
|
|
|
52
51
|
register(selectionListener: SelectionListener): void {
|
|
53
52
|
distinctAdd(this.selectionListeners, selectionListener);
|
|
@@ -101,7 +100,12 @@ export class SelectionService implements SModelRootListener {
|
|
|
101
100
|
![...prevSelectedElementIDs].every(value => this.selectedElementIDs.has(value));
|
|
102
101
|
if (selectionChanged) {
|
|
103
102
|
// aggregate to feedback action handling all elements as only the last feedback is restored
|
|
104
|
-
this.dispatchFeedback([
|
|
103
|
+
this.dispatchFeedback([
|
|
104
|
+
SelectFeedbackAction.create({
|
|
105
|
+
selectedElementsIDs: [...this.selectedElementIDs],
|
|
106
|
+
deselectedElementsIDs: [...deselectedElementIDs]
|
|
107
|
+
})
|
|
108
|
+
]);
|
|
105
109
|
}
|
|
106
110
|
|
|
107
111
|
const rootChanged = prevRoot !== root;
|
|
@@ -124,7 +128,7 @@ export class SelectionService implements SModelRootListener {
|
|
|
124
128
|
}
|
|
125
129
|
|
|
126
130
|
getSelectedElements(): Readonly<SModelElement & Selectable>[] {
|
|
127
|
-
return
|
|
131
|
+
return getElements(this.root.index, Array.from(this.selectedElementIDs), isSelectable);
|
|
128
132
|
}
|
|
129
133
|
|
|
130
134
|
/**
|
|
@@ -157,7 +161,7 @@ export class SelectCommand extends Command {
|
|
|
157
161
|
|
|
158
162
|
constructor(
|
|
159
163
|
@inject(TYPES.Action) public action: SelectAction,
|
|
160
|
-
@inject(
|
|
164
|
+
@inject(TYPES.SelectionService) public selectionService: SelectionService
|
|
161
165
|
) {
|
|
162
166
|
super();
|
|
163
167
|
}
|
|
@@ -201,7 +205,7 @@ export class SelectAllCommand extends Command {
|
|
|
201
205
|
|
|
202
206
|
constructor(
|
|
203
207
|
@inject(TYPES.Action) public action: SelectAllAction,
|
|
204
|
-
@inject(
|
|
208
|
+
@inject(TYPES.SelectionService) public selectionService: SelectionService
|
|
205
209
|
) {
|
|
206
210
|
super();
|
|
207
211
|
}
|
|
@@ -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, hasStringProp, Point } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import { VNode } from 'snabbdom';
|
|
19
19
|
import {
|
|
@@ -31,24 +31,53 @@ import {
|
|
|
31
31
|
SModelRoot,
|
|
32
32
|
TYPES
|
|
33
33
|
} from 'sprotty';
|
|
34
|
-
import { forEachElement
|
|
34
|
+
import { forEachElement } from '../../utils/smodel-util';
|
|
35
35
|
import { addResizeHandles, isResizable, removeResizeHandles, SResizeHandle } from '../change-bounds/model';
|
|
36
36
|
import { createMovementRestrictionFeedback, removeMovementRestrictionFeedback } from '../change-bounds/movement-restrictor';
|
|
37
37
|
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
38
38
|
import { ChangeBoundsTool } from '../tools/change-bounds-tool';
|
|
39
39
|
import { FeedbackCommand } from './model';
|
|
40
40
|
|
|
41
|
-
export
|
|
42
|
-
|
|
41
|
+
export interface ShowChangeBoundsToolResizeFeedbackAction extends Action {
|
|
42
|
+
kind: typeof ShowChangeBoundsToolResizeFeedbackAction.KIND;
|
|
43
|
+
|
|
44
|
+
elementId: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export namespace ShowChangeBoundsToolResizeFeedbackAction {
|
|
48
|
+
export const KIND = 'showChangeBoundsToolResizeFeedback';
|
|
49
|
+
|
|
50
|
+
export function is(object: any): object is ShowChangeBoundsToolResizeFeedbackAction {
|
|
51
|
+
return Action.hasKind(object, KIND) && hasStringProp(object, 'elementId');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function create(elementId: string): ShowChangeBoundsToolResizeFeedbackAction {
|
|
55
|
+
return {
|
|
56
|
+
kind: KIND,
|
|
57
|
+
elementId
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface HideChangeBoundsToolResizeFeedbackAction extends Action {
|
|
63
|
+
kind: typeof HideChangeBoundsToolResizeFeedbackAction.KIND;
|
|
43
64
|
}
|
|
44
65
|
|
|
45
|
-
export
|
|
46
|
-
|
|
66
|
+
export namespace HideChangeBoundsToolResizeFeedbackAction {
|
|
67
|
+
export const KIND = 'hideChangeBoundsToolResizeFeedback';
|
|
68
|
+
|
|
69
|
+
export function is(object: any): object is HideChangeBoundsToolResizeFeedbackAction {
|
|
70
|
+
return Action.hasKind(object, KIND);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function create(): HideChangeBoundsToolResizeFeedbackAction {
|
|
74
|
+
return { kind: KIND };
|
|
75
|
+
}
|
|
47
76
|
}
|
|
48
77
|
|
|
49
78
|
@injectable()
|
|
50
79
|
export class ShowChangeBoundsToolResizeFeedbackCommand extends FeedbackCommand {
|
|
51
|
-
static readonly KIND =
|
|
80
|
+
static readonly KIND = ShowChangeBoundsToolResizeFeedbackAction.KIND;
|
|
52
81
|
|
|
53
82
|
@inject(TYPES.Action) protected action: ShowChangeBoundsToolResizeFeedbackAction;
|
|
54
83
|
|
|
@@ -57,9 +86,9 @@ export class ShowChangeBoundsToolResizeFeedbackCommand extends FeedbackCommand {
|
|
|
57
86
|
|
|
58
87
|
forEachElement(index, isResizable, removeResizeHandles);
|
|
59
88
|
|
|
60
|
-
if (
|
|
89
|
+
if (this.action.elementId) {
|
|
61
90
|
const resizeElement = index.getById(this.action.elementId);
|
|
62
|
-
if (
|
|
91
|
+
if (resizeElement && isResizable(resizeElement)) {
|
|
63
92
|
addResizeHandles(resizeElement);
|
|
64
93
|
}
|
|
65
94
|
}
|
|
@@ -69,7 +98,7 @@ export class ShowChangeBoundsToolResizeFeedbackCommand extends FeedbackCommand {
|
|
|
69
98
|
|
|
70
99
|
@injectable()
|
|
71
100
|
export class HideChangeBoundsToolResizeFeedbackCommand extends FeedbackCommand {
|
|
72
|
-
static readonly KIND =
|
|
101
|
+
static readonly KIND = HideChangeBoundsToolResizeFeedbackAction.KIND;
|
|
73
102
|
|
|
74
103
|
@inject(TYPES.Action) protected action: HideChangeBoundsToolResizeFeedbackAction;
|
|
75
104
|
|
|
@@ -149,7 +178,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
|
|
|
149
178
|
return false;
|
|
150
179
|
}
|
|
151
180
|
|
|
152
|
-
protected getElementMoves(target: SModelElement, event: MouseEvent,
|
|
181
|
+
protected getElementMoves(target: SModelElement, event: MouseEvent, finished: boolean): MoveAction | undefined {
|
|
153
182
|
if (!this.startDragPosition) {
|
|
154
183
|
return undefined;
|
|
155
184
|
}
|
|
@@ -173,7 +202,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
|
|
|
173
202
|
);
|
|
174
203
|
|
|
175
204
|
if (isMoveable(element)) {
|
|
176
|
-
toPosition = this.validateMove(startPosition, toPosition, element,
|
|
205
|
+
toPosition = this.validateMove(startPosition, toPosition, element, finished);
|
|
177
206
|
elementMoves.push({
|
|
178
207
|
elementId: element.id,
|
|
179
208
|
fromPosition: {
|
|
@@ -186,7 +215,7 @@ export class FeedbackMoveMouseListener extends MouseListener {
|
|
|
186
215
|
}
|
|
187
216
|
});
|
|
188
217
|
if (elementMoves.length > 0) {
|
|
189
|
-
return
|
|
218
|
+
return MoveAction.create(elementMoves, { animate: false, finished });
|
|
190
219
|
} else {
|
|
191
220
|
return undefined;
|
|
192
221
|
}
|
|
@@ -13,15 +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, Point } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { Action, Bounds, Point } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import {
|
|
19
|
-
add,
|
|
20
19
|
AnchorComputerRegistry,
|
|
21
|
-
center,
|
|
22
20
|
CommandExecutionContext,
|
|
23
21
|
CommandReturn,
|
|
24
|
-
euclideanDistance,
|
|
25
22
|
findChildrenAtPosition,
|
|
26
23
|
findParentByFeature,
|
|
27
24
|
isBoundsAware,
|
|
@@ -32,7 +29,7 @@ import {
|
|
|
32
29
|
SChildElement,
|
|
33
30
|
SConnectableElement,
|
|
34
31
|
SDanglingAnchor,
|
|
35
|
-
SEdgeSchema,
|
|
32
|
+
SEdge as SEdgeSchema,
|
|
36
33
|
SModelElement,
|
|
37
34
|
SModelRoot,
|
|
38
35
|
SRoutableElement,
|
|
@@ -41,19 +38,31 @@ import {
|
|
|
41
38
|
import { BoundsAwareModelElement, isRoutable } from '../../utils/smodel-util';
|
|
42
39
|
import { getAbsolutePosition, toAbsoluteBounds, toAbsolutePosition } from '../../utils/viewpoint-util';
|
|
43
40
|
import { FeedbackCommand } from './model';
|
|
41
|
+
export interface DrawFeedbackEdgeAction extends Action {
|
|
42
|
+
kind: typeof DrawFeedbackEdgeAction.KIND;
|
|
43
|
+
elementTypeId: string;
|
|
44
|
+
sourceId: string;
|
|
45
|
+
edgeSchema?: SEdgeSchema;
|
|
46
|
+
}
|
|
44
47
|
|
|
45
|
-
export
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
export namespace DrawFeedbackEdgeAction {
|
|
49
|
+
export const KIND = 'drawFeedbackEdge';
|
|
50
|
+
|
|
51
|
+
export function is(object: any): object is DrawFeedbackEdgeAction {
|
|
52
|
+
return Action.hasKind(object, KIND);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function create(options: { elementTypeId: string; sourceId: string; edgeSchema?: SEdgeSchema }): DrawFeedbackEdgeAction {
|
|
56
|
+
return {
|
|
57
|
+
kind: KIND,
|
|
58
|
+
...options
|
|
59
|
+
};
|
|
60
|
+
}
|
|
52
61
|
}
|
|
53
62
|
|
|
54
63
|
@injectable()
|
|
55
64
|
export class DrawFeedbackEdgeCommand extends FeedbackCommand {
|
|
56
|
-
static readonly KIND =
|
|
65
|
+
static readonly KIND = DrawFeedbackEdgeAction.KIND;
|
|
57
66
|
|
|
58
67
|
constructor(@inject(TYPES.Action) protected action: DrawFeedbackEdgeAction) {
|
|
59
68
|
super();
|
|
@@ -66,13 +75,25 @@ export class DrawFeedbackEdgeCommand extends FeedbackCommand {
|
|
|
66
75
|
}
|
|
67
76
|
}
|
|
68
77
|
|
|
69
|
-
export
|
|
70
|
-
|
|
78
|
+
export interface RemoveFeedbackEdgeAction extends Action {
|
|
79
|
+
kind: typeof RemoveFeedbackEdgeAction.KIND;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export namespace RemoveFeedbackEdgeAction {
|
|
83
|
+
export const KIND = 'removeFeedbackEdgeCommand';
|
|
84
|
+
|
|
85
|
+
export function is(object: any): object is RemoveFeedbackEdgeAction {
|
|
86
|
+
return Action.hasKind(object, KIND);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function create(): RemoveFeedbackEdgeAction {
|
|
90
|
+
return { kind: KIND };
|
|
91
|
+
}
|
|
71
92
|
}
|
|
72
93
|
|
|
73
94
|
@injectable()
|
|
74
95
|
export class RemoveFeedbackEdgeCommand extends FeedbackCommand {
|
|
75
|
-
static readonly KIND =
|
|
96
|
+
static readonly KIND = RemoveFeedbackEdgeAction.KIND;
|
|
76
97
|
|
|
77
98
|
execute(context: CommandExecutionContext): CommandReturn {
|
|
78
99
|
removeFeedbackEdge(context.root);
|
|
@@ -111,12 +132,12 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
|
|
|
111
132
|
.find(element => isConnectable(element) && element.canConnect(edge, 'target'));
|
|
112
133
|
|
|
113
134
|
if (endAtMousePosition instanceof SConnectableElement && edge.source && isBoundsAware(edge.source)) {
|
|
114
|
-
const anchor = this.computeAbsoluteAnchor(endAtMousePosition, center(toAbsoluteBounds(edge.source)));
|
|
115
|
-
if (euclideanDistance(anchor, edgeEnd.position) > 1) {
|
|
116
|
-
return [
|
|
135
|
+
const anchor = this.computeAbsoluteAnchor(endAtMousePosition, Bounds.center(toAbsoluteBounds(edge.source)));
|
|
136
|
+
if (Point.euclideanDistance(anchor, edgeEnd.position) > 1) {
|
|
137
|
+
return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: anchor }], { animate: false })];
|
|
117
138
|
}
|
|
118
139
|
} else {
|
|
119
|
-
return [
|
|
140
|
+
return [MoveAction.create([{ elementId: edgeEnd.id, toPosition: position }], { animate: false })];
|
|
120
141
|
}
|
|
121
142
|
|
|
122
143
|
return [];
|
|
@@ -132,7 +153,7 @@ export class FeedbackEdgeEndMovingMouseListener extends MouseListener {
|
|
|
132
153
|
const parent = findParentByFeature(element.parent, isBoundsAware);
|
|
133
154
|
if (parent) {
|
|
134
155
|
const absoluteParentPosition = toAbsoluteBounds(parent);
|
|
135
|
-
anchor = add(absoluteParentPosition, anchor);
|
|
156
|
+
anchor = Point.add(absoluteParentPosition, anchor);
|
|
136
157
|
}
|
|
137
158
|
}
|
|
138
159
|
return anchor;
|