@eclipse-glsp/client 0.10.0-next.bb1c2fd.157 → 0.10.0-next.e5fcffe.169
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/glsp-sprotty.css +110 -8
- package/lib/base/action-dispatcher.d.ts +2 -1
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +13 -5
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +16 -7
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +31 -12
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/actions/sprotty-actions.d.ts +7 -0
- package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
- package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
- package/lib/base/actions/sprotty-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +24 -5
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +16 -9
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +2 -2
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +6 -5
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/di.config.d.ts +1 -1
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +13 -14
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +13 -1
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +23 -10
- package/lib/base/editor-context-service.js.map +1 -1
- package/lib/base/focus-tracker.d.ts +1 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +4 -4
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.d.ts.map +1 -1
- package/lib/base/model/model-registry.js +2 -2
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +1 -1
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +15 -15
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +4 -5
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +11 -13
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +1 -1
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +10 -10
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/tool-manager/tool-actions.d.ts +14 -0
- package/lib/base/tool-manager/tool-actions.d.ts.map +1 -0
- package/lib/base/tool-manager/tool-actions.js +25 -0
- package/lib/base/tool-manager/tool-actions.js.map +1 -0
- package/lib/base/types.d.ts +144 -20
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +14 -26
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts.map +1 -1
- package/lib/base/view/view-registry.js +2 -2
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +1 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +3 -3
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +6 -6
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +42 -1
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +78 -2
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/change-bounds/snap.spec.d.ts +17 -0
- package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.spec.js +82 -0
- package/lib/features/change-bounds/snap.spec.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +3 -3
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +2 -2
- package/lib/features/command-palette/di.config.d.ts.map +1 -1
- package/lib/features/command-palette/di.config.js +6 -6
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +13 -10
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +4 -4
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +1 -1
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +8 -7
- package/lib/features/context-menu/di.config.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +17 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +8 -23
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +8 -7
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +10 -11
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +5 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +19 -3
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -4
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.d.ts.map +1 -1
- package/lib/features/edit-label/di.config.js +5 -5
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +2 -2
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +11 -13
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +4 -4
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +15 -5
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +29 -26
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +11 -9
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +4 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +23 -5
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +1 -1
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +6 -4
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +17 -1
- package/lib/features/layout/freeform-layout.d.ts.map +1 -1
- package/lib/features/layout/freeform-layout.js +4 -4
- package/lib/features/layout/freeform-layout.js.map +1 -1
- package/lib/features/layout/hbox-layout.d.ts +41 -0
- package/lib/features/layout/hbox-layout.d.ts.map +1 -0
- package/lib/features/layout/hbox-layout.js +189 -0
- package/lib/features/layout/hbox-layout.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +65 -38
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +90 -67
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +35 -23
- package/lib/features/layout/layout-commands.spec.js.map +1 -1
- package/lib/features/layout/vbox-layout.d.ts +17 -1
- package/lib/features/layout/vbox-layout.d.ts.map +1 -1
- package/lib/features/layout/vbox-layout.js +9 -8
- package/lib/features/layout/vbox-layout.js.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +1 -1
- package/lib/features/model-source-watcher/di.config.js.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +11 -11
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/mouse-tool/di.config.d.ts +1 -1
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
- package/lib/features/mouse-tool/di.config.js +2 -2
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +9 -5
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +11 -53
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.js +4 -4
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +31 -16
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +52 -68
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +3 -3
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +8 -9
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +12 -12
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/reconnect/model.d.ts +1 -1
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +1 -1
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +1 -1
- package/lib/features/save/di.config.d.ts.map +1 -1
- package/lib/features/save/di.config.js +3 -3
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/save-keylistener.d.ts +1 -1
- package/lib/features/save/save-keylistener.d.ts.map +1 -1
- package/lib/features/save/save-keylistener.js +3 -3
- package/lib/features/save/save-keylistener.js.map +1 -1
- package/lib/features/select/di.config.d.ts +1 -1
- package/lib/features/select/di.config.d.ts.map +1 -1
- package/lib/features/select/di.config.js +7 -8
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts +26 -22
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +19 -46
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +1 -1
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +1 -1
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +3 -3
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +28 -23
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +28 -25
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +17 -9
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +67 -37
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +23 -11
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +62 -35
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +42 -38
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +1 -1
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +18 -18
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +44 -22
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +140 -114
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +2 -2
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +4 -4
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +21 -10
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -18
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +1 -2
- package/lib/features/tool-feedback/model.d.ts.map +1 -1
- package/lib/features/tool-feedback/model.js +1 -1
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +1 -1
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +22 -5
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +1 -1
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +5 -4
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +10 -7
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +39 -32
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +3 -3
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +11 -11
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +7 -9
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +48 -71
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +1 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +17 -17
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.js +12 -12
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +28 -21
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +3 -2
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +41 -36
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +1 -1
- package/lib/features/tools/marquee-behavior.js +2 -2
- package/lib/features/tools/marquee-behavior.js.map +1 -1
- package/lib/features/tools/marquee-behavior.spec.js +63 -63
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +20 -20
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +1 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +4 -4
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +3 -2
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +0 -15
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +1 -1
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +17 -17
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +2 -2
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +1 -1
- package/lib/features/validation/di.config.d.ts.map +1 -1
- package/lib/features/validation/di.config.js +7 -7
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +16 -8
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +39 -37
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +23 -37
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +10 -12
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +42 -41
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +1 -1
- package/lib/features/viewport/di.config.d.ts.map +1 -1
- package/lib/features/viewport/di.config.js +7 -7
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +3 -3
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +4 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +11 -8
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -2
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +0 -15
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +5 -5
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +7 -6
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/sprotty-reexport.d.ts +174 -0
- package/lib/sprotty-reexport.d.ts.map +1 -0
- package/lib/sprotty-reexport.js +299 -0
- package/lib/sprotty-reexport.js.map +1 -0
- package/lib/utils/argument-utils.js +5 -5
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +3 -3
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/smodel-util.d.ts +117 -11
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +142 -37
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -3
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +19 -3
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.js +19 -19
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.js +1 -1
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -1
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +1 -1
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/index.js +6 -2
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +3 -3
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +2 -2
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/package.json +8 -18
- package/src/base/action-dispatcher.ts +17 -8
- package/src/base/actions/focus-change-action.ts +25 -8
- package/{lib/features/tool-palette/palette-item.d.ts → src/base/actions/sprotty-actions.ts} +11 -11
- package/src/base/auto-complete/auto-complete-actions.ts +7 -5
- package/src/base/auto-complete/auto-complete-widget.ts +15 -13
- package/src/base/command-stack.ts +7 -6
- package/src/base/di.config.ts +4 -5
- package/src/base/drag-aware-mouse-listener.ts +4 -4
- package/src/base/editor-context-service.ts +19 -7
- package/src/base/focus-tracker.ts +5 -4
- package/src/base/model/model-registry.ts +2 -2
- package/src/base/model/update-model-command.ts +9 -10
- package/src/base/model-initialization-constraint.ts +9 -11
- package/src/base/selection-clearing-mouse-listener.ts +1 -1
- package/src/base/tool-manager/glsp-tool-manager.ts +9 -9
- package/src/base/tool-manager/tool-actions.ts +37 -0
- package/src/base/types.ts +31 -24
- package/src/base/view/view-registry.ts +2 -2
- package/src/features/change-bounds/model.ts +5 -5
- package/src/features/change-bounds/movement-restrictor.ts +3 -3
- package/src/features/change-bounds/snap.spec.ts +89 -0
- package/src/features/change-bounds/snap.ts +86 -2
- package/src/features/command-palette/di.config.ts +5 -7
- package/src/features/command-palette/server-command-palette-provider.ts +9 -8
- package/src/features/context-menu/delete-element-context-menu.ts +6 -6
- package/src/features/context-menu/di.config.ts +3 -2
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +6 -7
- package/src/features/context-menu/server-context-menu-provider.ts +7 -6
- package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
- package/src/features/copy-paste/copy-paste-handler.ts +6 -6
- package/src/features/copy-paste/di.config.ts +7 -15
- package/src/features/decoration/decoration-placer.ts +4 -4
- package/src/features/decoration/di.config.ts +3 -5
- package/src/features/edit-label/di.config.ts +4 -5
- package/src/features/edit-label/edit-label-tool.ts +1 -2
- package/src/features/edit-label/edit-label-validator.ts +6 -10
- package/src/features/hints/di.config.ts +3 -3
- package/src/features/hints/type-hints.ts +33 -18
- package/src/features/hover/di.config.ts +4 -0
- package/src/features/hover/hover.ts +30 -12
- package/src/features/layout/di.config.ts +4 -2
- package/src/features/layout/freeform-layout.ts +6 -15
- package/src/features/layout/hbox-layout.ts +256 -0
- package/src/features/layout/layout-commands.spec.ts +38 -22
- package/src/features/layout/layout-commands.ts +134 -60
- package/src/features/layout/vbox-layout.ts +20 -20
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +7 -12
- package/src/features/mouse-tool/di.config.ts +3 -4
- package/src/features/mouse-tool/mouse-tool.ts +18 -59
- package/src/features/navigation/navigation-action-handler.ts +76 -42
- package/src/features/navigation/navigation-target-resolver.spec.ts +3 -3
- package/src/features/navigation/navigation-target-resolver.ts +8 -13
- package/src/features/reconnect/model.ts +2 -2
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/save-keylistener.ts +3 -3
- package/src/features/select/di.config.ts +6 -8
- package/src/features/select/select-feedback-action.ts +18 -46
- package/src/features/select/select-mouse-listener.ts +1 -2
- package/src/features/select/selection-service.spec.ts +11 -8
- package/src/features/select/selection-service.ts +17 -12
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +51 -21
- package/src/features/tool-feedback/creation-tool-feedback.ts +52 -31
- package/src/features/tool-feedback/css-feedback.ts +40 -37
- package/src/features/tool-feedback/di.config.ts +4 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +132 -88
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +4 -3
- package/src/features/tool-feedback/marquee-tool-feedback.ts +38 -13
- package/src/features/tool-feedback/model.ts +1 -3
- package/src/features/tool-feedback/view.tsx +3 -3
- package/src/features/tool-palette/di.config.ts +3 -2
- package/src/features/tool-palette/tool-palette.ts +35 -19
- package/src/features/tools/base-glsp-tool.ts +11 -11
- package/src/features/tools/change-bounds-tool.ts +37 -67
- package/src/features/tools/delete-tool.ts +9 -9
- package/src/features/tools/di.config.ts +10 -10
- package/src/features/tools/edge-creation-tool.ts +21 -12
- package/src/features/tools/edge-edit-tool.ts +25 -21
- package/src/features/tools/marquee-behavior.ts +2 -2
- package/src/features/tools/marquee-mouse-tool.ts +13 -14
- package/src/features/tools/marquee-tool.ts +3 -3
- package/src/features/tools/model.ts +4 -3
- package/src/features/tools/node-creation-tool.ts +8 -8
- package/src/features/tools/view.tsx +2 -3
- package/src/features/validation/di.config.ts +4 -5
- package/src/features/validation/marker-navigator.spec.ts +4 -2
- package/src/features/validation/marker-navigator.ts +47 -25
- package/src/features/validation/validate.ts +31 -24
- package/src/features/viewport/di.config.ts +1 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +4 -5
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +14 -14
- package/src/sprotty-reexport.ts +283 -0
- package/src/utils/layout-utils.ts +3 -3
- package/src/utils/smodel-util.ts +139 -43
- package/src/utils/viewpoint-util.ts +5 -14
- package/src/views/glsp-edge-view.tsx +4 -4
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-view.tsx +2 -3
- package/lib/features/tool-palette/palette-item.d.ts.map +0 -1
- package/lib/features/tool-palette/palette-item.js.map +0 -1
- package/lib/protocol-reexport.d.ts +0 -45
- package/lib/protocol-reexport.d.ts.map +0 -1
- package/lib/protocol-reexport.js +0 -75
- package/lib/protocol-reexport.js.map +0 -1
- package/src/features/tool-palette/palette-item.ts +0 -38
- package/src/protocol-reexport.ts +0 -64
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 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,45 +13,52 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
|
|
16
|
+
/* eslint-disable deprecation/deprecation */
|
|
17
|
+
import { Action, hasStringProp, Point, ServerMessageAction, ServerStatusAction } from '@eclipse-glsp/protocol';
|
|
17
18
|
import { inject, injectable } from 'inversify';
|
|
18
|
-
import { IActionDispatcher, IActionHandler, IContextMenuItemProvider, isSelected, MenuItem, SModelRoot
|
|
19
|
+
import { IActionDispatcher, IActionHandler, IContextMenuItemProvider, isSelected, MenuItem, SModelRoot } from 'sprotty';
|
|
20
|
+
import { TYPES } from '../../base/types';
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* An `InvokeCopyPasteAction` is dispatched by the client to initiate a cut, copy or paste operation.
|
|
24
|
+
*/
|
|
25
|
+
export interface InvokeCopyPasteAction extends Action {
|
|
26
|
+
kind: typeof InvokeCopyPasteAction.KIND;
|
|
27
|
+
command: 'copy' | 'cut' | 'paste';
|
|
23
28
|
}
|
|
24
29
|
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
export namespace InvokeCopyPasteAction {
|
|
31
|
+
export const KIND = 'invokeCopyPaste';
|
|
32
|
+
|
|
33
|
+
export function is(object: any): object is InvokeCopyPasteAction {
|
|
34
|
+
return Action.hasKind(object, KIND) && hasStringProp(object, 'command');
|
|
35
|
+
}
|
|
29
36
|
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
export function create(command: 'copy' | 'cut' | 'paste'): InvokeCopyPasteAction {
|
|
38
|
+
return { kind: KIND, command };
|
|
39
|
+
}
|
|
33
40
|
}
|
|
34
41
|
|
|
35
42
|
@injectable()
|
|
36
43
|
export class InvokeCopyPasteActionHandler implements IActionHandler {
|
|
37
44
|
@inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
|
|
38
|
-
handle(action:
|
|
39
|
-
switch (action.
|
|
40
|
-
case
|
|
45
|
+
handle(action: InvokeCopyPasteAction): void {
|
|
46
|
+
switch (action.command) {
|
|
47
|
+
case 'copy':
|
|
41
48
|
if (supportsCopy()) {
|
|
42
49
|
document.execCommand('copy');
|
|
43
50
|
} else {
|
|
44
51
|
this.notifyUserToUseShortcut('copy');
|
|
45
52
|
}
|
|
46
53
|
break;
|
|
47
|
-
case
|
|
54
|
+
case 'paste':
|
|
48
55
|
if (supportsPaste()) {
|
|
49
56
|
document.execCommand('paste');
|
|
50
57
|
} else {
|
|
51
58
|
this.notifyUserToUseShortcut('paste');
|
|
52
59
|
}
|
|
53
60
|
break;
|
|
54
|
-
case
|
|
61
|
+
case 'cut':
|
|
55
62
|
if (supportsCut()) {
|
|
56
63
|
document.execCommand('cut');
|
|
57
64
|
} else {
|
|
@@ -66,8 +73,8 @@ export class InvokeCopyPasteActionHandler implements IActionHandler {
|
|
|
66
73
|
const timeout = 10000;
|
|
67
74
|
const severity = 'WARNING';
|
|
68
75
|
this.dispatcher.dispatchAll([
|
|
69
|
-
|
|
70
|
-
|
|
76
|
+
ServerStatusAction.create(message, { severity, timeout }),
|
|
77
|
+
ServerMessageAction.create(message, { severity, timeout })
|
|
71
78
|
]);
|
|
72
79
|
}
|
|
73
80
|
}
|
|
@@ -88,7 +95,7 @@ export class CopyPasteContextMenuItemProvider implements IContextMenuItemProvide
|
|
|
88
95
|
id: 'paste',
|
|
89
96
|
label: 'Paste',
|
|
90
97
|
group: 'copy-paste',
|
|
91
|
-
actions: [
|
|
98
|
+
actions: [InvokeCopyPasteAction.create('paste')],
|
|
92
99
|
isEnabled: () => true
|
|
93
100
|
};
|
|
94
101
|
}
|
|
@@ -98,7 +105,7 @@ export class CopyPasteContextMenuItemProvider implements IContextMenuItemProvide
|
|
|
98
105
|
id: 'cut',
|
|
99
106
|
label: 'Cut',
|
|
100
107
|
group: 'copy-paste',
|
|
101
|
-
actions: [
|
|
108
|
+
actions: [InvokeCopyPasteAction.create('cut')],
|
|
102
109
|
isEnabled: () => hasSelectedElements
|
|
103
110
|
};
|
|
104
111
|
}
|
|
@@ -108,7 +115,7 @@ export class CopyPasteContextMenuItemProvider implements IContextMenuItemProvide
|
|
|
108
115
|
id: 'copy',
|
|
109
116
|
label: 'Copy',
|
|
110
117
|
group: 'copy-paste',
|
|
111
|
-
actions: [
|
|
118
|
+
actions: [InvokeCopyPasteAction.create('copy')],
|
|
112
119
|
isEnabled: () => hasSelectedElements
|
|
113
120
|
};
|
|
114
121
|
}
|
|
@@ -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
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ClipboardData, CutOperation, PasteOperation, RequestClipboardDataAction, SetClipboardDataAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
|
-
import {
|
|
18
|
+
import { ViewerOptions } from 'sprotty';
|
|
19
19
|
import { v4 as uuid } from 'uuid';
|
|
20
20
|
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
21
21
|
import { EditorContextService } from '../../base/editor-context-service';
|
|
22
|
-
import {
|
|
22
|
+
import { TYPES } from '../../base/types';
|
|
23
23
|
|
|
24
24
|
export interface ICopyPasteHandler {
|
|
25
25
|
handleCopy(event: ClipboardEvent): void;
|
|
@@ -96,7 +96,7 @@ const CLIPBOARD_DATA_FORMAT = 'text/plain';
|
|
|
96
96
|
export class ServerCopyPasteHandler implements ICopyPasteHandler {
|
|
97
97
|
@inject(TYPES.IActionDispatcher) protected actionDispatcher: GLSPActionDispatcher;
|
|
98
98
|
@inject(TYPES.ViewerOptions) protected viewerOptions: ViewerOptions;
|
|
99
|
-
@inject(
|
|
99
|
+
@inject(TYPES.IAsyncClipboardService) protected clipboadService: IAsyncClipboardService;
|
|
100
100
|
@inject(EditorContextService) protected editorContext: EditorContextService;
|
|
101
101
|
|
|
102
102
|
handleCopy(event: ClipboardEvent): void {
|
|
@@ -118,7 +118,7 @@ export class ServerCopyPasteHandler implements ICopyPasteHandler {
|
|
|
118
118
|
handleCut(event: ClipboardEvent): void {
|
|
119
119
|
if (event.clipboardData && this.shouldCopy(event)) {
|
|
120
120
|
this.handleCopy(event);
|
|
121
|
-
this.actionDispatcher.dispatch(
|
|
121
|
+
this.actionDispatcher.dispatch(CutOperation.create(this.editorContext.get()));
|
|
122
122
|
event.preventDefault();
|
|
123
123
|
}
|
|
124
124
|
}
|
|
@@ -128,7 +128,7 @@ export class ServerCopyPasteHandler implements ICopyPasteHandler {
|
|
|
128
128
|
const clipboardId = getClipboardIdFromDataTransfer(event.clipboardData);
|
|
129
129
|
const clipboardData = this.clipboadService.get(clipboardId);
|
|
130
130
|
if (clipboardData) {
|
|
131
|
-
this.actionDispatcher.dispatch(
|
|
131
|
+
this.actionDispatcher.dispatch(PasteOperation.create({ clipboardData, editorContext: this.editorContext.get() }));
|
|
132
132
|
}
|
|
133
133
|
event.preventDefault();
|
|
134
134
|
}
|
|
@@ -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
|
|
@@ -15,19 +15,13 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { ContainerModule } from 'inversify';
|
|
17
17
|
import { configureActionHandler } from 'sprotty';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
CopyPasteContextMenuItemProvider,
|
|
21
|
-
InvokeCopyAction,
|
|
22
|
-
InvokeCopyPasteActionHandler,
|
|
23
|
-
InvokeCutAction,
|
|
24
|
-
InvokePasteAction
|
|
25
|
-
} from './copy-paste-context-menu';
|
|
18
|
+
import { TYPES } from '../../base/types';
|
|
19
|
+
import { CopyPasteContextMenuItemProvider, InvokeCopyPasteAction, InvokeCopyPasteActionHandler } from './copy-paste-context-menu';
|
|
26
20
|
import { LocalClipboardService, ServerCopyPasteHandler } from './copy-paste-handler';
|
|
27
21
|
|
|
28
22
|
export const glspServerCopyPasteModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
29
|
-
bind(
|
|
30
|
-
bind(
|
|
23
|
+
bind(TYPES.ICopyPasteHandler).to(ServerCopyPasteHandler);
|
|
24
|
+
bind(TYPES.IAsyncClipboardService).to(LocalClipboardService).inSingletonScope();
|
|
31
25
|
});
|
|
32
26
|
|
|
33
27
|
/**
|
|
@@ -36,9 +30,7 @@ export const glspServerCopyPasteModule = new ContainerModule((bind, _unbind, isB
|
|
|
36
30
|
* `CopyPasteMenuContribution` in `glsp-theia-integration` instead.
|
|
37
31
|
*/
|
|
38
32
|
export const copyPasteContextMenuModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
39
|
-
bind(
|
|
33
|
+
bind(TYPES.IContextMenuProvider).to(CopyPasteContextMenuItemProvider).inSingletonScope();
|
|
40
34
|
bind(InvokeCopyPasteActionHandler).toSelf().inSingletonScope();
|
|
41
|
-
configureActionHandler({ bind, isBound },
|
|
42
|
-
configureActionHandler({ bind, isBound }, InvokeCutAction.KIND, InvokeCopyPasteActionHandler);
|
|
43
|
-
configureActionHandler({ bind, isBound }, InvokePasteAction.KIND, InvokeCopyPasteActionHandler);
|
|
35
|
+
configureActionHandler({ bind, isBound }, InvokeCopyPasteAction.KIND, InvokeCopyPasteActionHandler);
|
|
44
36
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { Point } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { injectable } from 'inversify';
|
|
18
|
-
import { Decoration, DecorationPlacer, isSizeable,
|
|
18
|
+
import { Decoration, DecorationPlacer, isSizeable, SChildElement, SModelElement, SRoutableElement } from 'sprotty';
|
|
19
19
|
|
|
20
20
|
@injectable()
|
|
21
21
|
export class GlspDecorationPlacer extends DecorationPlacer {
|
|
22
22
|
protected static readonly DECORATION_OFFSET: Point = { x: 12, y: 10 };
|
|
23
23
|
|
|
24
|
-
protected getPosition(element: SModelElement & Decoration): Point {
|
|
24
|
+
protected override getPosition(element: SModelElement & Decoration): Point {
|
|
25
25
|
if (element instanceof SChildElement && element.parent instanceof SRoutableElement) {
|
|
26
26
|
return super.getPosition(element);
|
|
27
27
|
}
|
|
@@ -31,6 +31,6 @@ export class GlspDecorationPlacer extends DecorationPlacer {
|
|
|
31
31
|
y: GlspDecorationPlacer.DECORATION_OFFSET.y * element.bounds.height
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
return
|
|
34
|
+
return Point.ORIGIN;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
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,11 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import '../../../css/decoration.css';
|
|
17
|
-
|
|
18
16
|
import { ContainerModule } from 'inversify';
|
|
19
|
-
import
|
|
20
|
-
|
|
17
|
+
import '../../../css/decoration.css';
|
|
18
|
+
import { TYPES } from '../../base/types';
|
|
21
19
|
import { GlspDecorationPlacer } from './decoration-placer';
|
|
22
20
|
|
|
23
21
|
const glspDecorationModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
@@ -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,16 +14,15 @@
|
|
|
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 { ApplyLabelEditCommand, configureCommand
|
|
18
|
-
|
|
19
|
-
import { GLSP_TYPES } from '../../base/types';
|
|
17
|
+
import { ApplyLabelEditCommand, configureCommand } from 'sprotty';
|
|
18
|
+
import { TYPES } from '../../base/types';
|
|
20
19
|
import { DirectLabelEditTool } from './edit-label-tool';
|
|
21
20
|
import { BalloonLabelValidationDecorator, ServerEditLabelValidator } from './edit-label-validator';
|
|
22
21
|
|
|
23
22
|
const glspEditLabelModule = new ContainerModule((bind, _unbind, isBound, _rebind) => {
|
|
24
23
|
bind(TYPES.IEditLabelValidator).to(ServerEditLabelValidator);
|
|
25
24
|
bind(TYPES.IEditLabelValidationDecorator).to(BalloonLabelValidationDecorator);
|
|
26
|
-
bind(
|
|
25
|
+
bind(TYPES.IDefaultTool).to(DirectLabelEditTool);
|
|
27
26
|
configureCommand({ bind, isBound }, ApplyLabelEditCommand);
|
|
28
27
|
});
|
|
29
28
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { injectable } from 'inversify';
|
|
17
17
|
import { EditLabelKeyListener, EditLabelMouseListener, KeyListener, MouseListener } from 'sprotty';
|
|
18
|
-
|
|
19
18
|
import { BaseGLSPTool } from '../tools/base-glsp-tool';
|
|
20
19
|
|
|
21
20
|
@injectable()
|
|
@@ -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,10 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { Action, RequestEditValidationAction, SetEditValidationResultAction, ValidationStatus } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import {
|
|
19
|
-
Action,
|
|
20
19
|
EditableLabel,
|
|
21
20
|
EditLabelValidationResult,
|
|
22
21
|
IEditLabelValidationDecorator,
|
|
@@ -25,7 +24,6 @@ import {
|
|
|
25
24
|
SModelElement,
|
|
26
25
|
TYPES
|
|
27
26
|
} from 'sprotty';
|
|
28
|
-
|
|
29
27
|
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
30
28
|
|
|
31
29
|
export namespace LabelEditValidation {
|
|
@@ -41,11 +39,9 @@ export namespace LabelEditValidation {
|
|
|
41
39
|
}
|
|
42
40
|
return { message, severity };
|
|
43
41
|
}
|
|
44
|
-
}
|
|
45
42
|
|
|
46
|
-
export
|
|
47
|
-
|
|
48
|
-
super(LabelEditValidation.CONTEXT_ID, labelId, value);
|
|
43
|
+
export function createValidationRequestAction(value: string, labelId: string): RequestEditValidationAction {
|
|
44
|
+
return RequestEditValidationAction.create({ contextId: CONTEXT_ID, modelElementId: labelId, text: value });
|
|
49
45
|
}
|
|
50
46
|
}
|
|
51
47
|
|
|
@@ -54,12 +50,12 @@ export class ServerEditLabelValidator implements IEditLabelValidator {
|
|
|
54
50
|
@inject(TYPES.IActionDispatcher) protected actionDispatcher: GLSPActionDispatcher;
|
|
55
51
|
|
|
56
52
|
validate(value: string, label: EditableLabel & SModelElement): Promise<EditLabelValidationResult> {
|
|
57
|
-
const action =
|
|
53
|
+
const action = LabelEditValidation.createValidationRequestAction(value, label.id);
|
|
58
54
|
return this.actionDispatcher.requestUntil(action).then(response => this.getValidationResultFromResponse(response));
|
|
59
55
|
}
|
|
60
56
|
|
|
61
57
|
getValidationResultFromResponse(action: Action): EditLabelValidationResult {
|
|
62
|
-
if (
|
|
58
|
+
if (SetEditValidationResultAction.is(action)) {
|
|
63
59
|
return LabelEditValidation.toEditLabelValidationResult(action.status);
|
|
64
60
|
}
|
|
65
61
|
return { severity: 'ok' as Severity };
|
|
@@ -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,12 +16,12 @@
|
|
|
16
16
|
import { SetTypeHintsAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { ContainerModule } from 'inversify';
|
|
18
18
|
import { configureActionHandler, configureCommand } from 'sprotty';
|
|
19
|
-
import {
|
|
19
|
+
import { TYPES } from '../../base/types';
|
|
20
20
|
import { ApplyTypeHintsCommand, TypeHintProvider } from './type-hints';
|
|
21
21
|
|
|
22
22
|
const modelHintsModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
23
23
|
bind(TypeHintProvider).toSelf().inSingletonScope();
|
|
24
|
-
bind(
|
|
24
|
+
bind(TYPES.ITypeHintProvider).toService(TypeHintProvider);
|
|
25
25
|
configureActionHandler({ bind, isBound }, SetTypeHintsAction.KIND, TypeHintProvider);
|
|
26
26
|
configureCommand({ bind, isBound }, ApplyTypeHintsCommand);
|
|
27
27
|
});
|
|
@@ -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,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, EdgeTypeHint,
|
|
16
|
+
import { Action, EdgeTypeHint, SetTypeHintsAction, ShapeTypeHint, TypeHint } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import {
|
|
19
19
|
CommandExecutionContext,
|
|
@@ -29,10 +29,9 @@ import {
|
|
|
29
29
|
SEdge,
|
|
30
30
|
SModelElement,
|
|
31
31
|
SModelRoot,
|
|
32
|
-
SShapeElement
|
|
33
|
-
TYPES
|
|
32
|
+
SShapeElement
|
|
34
33
|
} from 'sprotty';
|
|
35
|
-
import {
|
|
34
|
+
import { TYPES } from '../../base/types';
|
|
36
35
|
import { getElementTypeId, hasCompatibleType } from '../../utils/smodel-util';
|
|
37
36
|
import { resizeFeature } from '../change-bounds/model';
|
|
38
37
|
import { reconnectFeature } from '../reconnect/model';
|
|
@@ -40,19 +39,35 @@ import { IFeedbackActionDispatcher } from '../tool-feedback/feedback-action-disp
|
|
|
40
39
|
import { FeedbackCommand } from '../tool-feedback/model';
|
|
41
40
|
import { Containable, containerFeature, reparentFeature } from './model';
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Is dispatched by the {@link TypeHintProvider} to apply the type hints received from the server
|
|
44
|
+
* onto the graphical model. The action is dispatched as persistent feedback to ensure the applied type hints
|
|
45
|
+
* don't get lost after a server-side model update.
|
|
46
|
+
*/
|
|
47
|
+
export interface ApplyTypeHintsAction extends Action {
|
|
48
|
+
kind: typeof ApplyTypeHintsAction.KIND;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export namespace ApplyTypeHintsAction {
|
|
52
|
+
export const KIND = 'applyTypeHints';
|
|
53
|
+
|
|
54
|
+
export function is(object: any): object is ApplyTypeHintsAction {
|
|
55
|
+
return Action.hasKind(object, KIND);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function create(): ApplyTypeHintsAction {
|
|
59
|
+
return { kind: KIND };
|
|
60
|
+
}
|
|
46
61
|
}
|
|
47
62
|
|
|
48
63
|
@injectable()
|
|
49
64
|
export class ApplyTypeHintsCommand extends FeedbackCommand {
|
|
50
|
-
public static KIND =
|
|
51
|
-
public readonly priority = 10;
|
|
65
|
+
public static KIND = ApplyTypeHintsAction.KIND;
|
|
66
|
+
public override readonly priority = 10;
|
|
52
67
|
|
|
53
|
-
@inject(
|
|
68
|
+
@inject(TYPES.ITypeHintProvider) protected typeHintProvider: ITypeHintProvider;
|
|
54
69
|
|
|
55
|
-
constructor(@inject(TYPES.Action) protected action:
|
|
70
|
+
constructor(@inject(TYPES.Action) protected action: Action) {
|
|
56
71
|
super();
|
|
57
72
|
}
|
|
58
73
|
|
|
@@ -69,7 +84,7 @@ export class ApplyTypeHintsCommand extends FeedbackCommand {
|
|
|
69
84
|
|
|
70
85
|
protected applyEdgeTypeHint(element: SModelElement): void {
|
|
71
86
|
const hint = this.typeHintProvider.getEdgeTypeHint(element);
|
|
72
|
-
if (hint &&
|
|
87
|
+
if (hint && isModifiableFeatureSet(element.features)) {
|
|
73
88
|
addOrRemove(element.features, deletableFeature, hint.deletable);
|
|
74
89
|
addOrRemove(element.features, editFeature, hint.routable);
|
|
75
90
|
addOrRemove(element.features, reconnectFeature, hint.repositionable);
|
|
@@ -78,7 +93,7 @@ export class ApplyTypeHintsCommand extends FeedbackCommand {
|
|
|
78
93
|
|
|
79
94
|
protected applyShapeTypeHint(element: SModelElement): void {
|
|
80
95
|
const hint = this.typeHintProvider.getShapeTypeHint(element);
|
|
81
|
-
if (hint &&
|
|
96
|
+
if (hint && isModifiableFeatureSet(element.features)) {
|
|
82
97
|
addOrRemove(element.features, deletableFeature, hint.deletable);
|
|
83
98
|
addOrRemove(element.features, moveFeature, hint.repositionable);
|
|
84
99
|
addOrRemove(element.features, resizeFeature, hint.resizable);
|
|
@@ -119,7 +134,7 @@ function addOrRemove(features: Set<symbol>, feature: symbol, add: boolean): void
|
|
|
119
134
|
}
|
|
120
135
|
}
|
|
121
136
|
|
|
122
|
-
function
|
|
137
|
+
function isModifiableFeatureSet(featureSet?: FeatureSet): featureSet is FeatureSet & Set<symbol> {
|
|
123
138
|
return featureSet !== undefined && featureSet instanceof Set;
|
|
124
139
|
}
|
|
125
140
|
|
|
@@ -131,17 +146,17 @@ export interface ITypeHintProvider {
|
|
|
131
146
|
|
|
132
147
|
@injectable()
|
|
133
148
|
export class TypeHintProvider implements IActionHandler, ITypeHintProvider {
|
|
134
|
-
@inject(
|
|
149
|
+
@inject(TYPES.IFeedbackActionDispatcher)
|
|
135
150
|
protected feedbackActionDispatcher: IFeedbackActionDispatcher;
|
|
136
151
|
|
|
137
152
|
protected shapeHints: Map<string, ShapeTypeHint> = new Map();
|
|
138
153
|
protected edgeHints: Map<string, EdgeTypeHint> = new Map();
|
|
139
154
|
|
|
140
155
|
handle(action: Action): ICommand | Action | void {
|
|
141
|
-
if (
|
|
156
|
+
if (SetTypeHintsAction.is(action)) {
|
|
142
157
|
action.shapeHints.forEach(hint => this.shapeHints.set(hint.elementTypeId, hint));
|
|
143
158
|
action.edgeHints.forEach(hint => this.edgeHints.set(hint.elementTypeId, hint));
|
|
144
|
-
this.feedbackActionDispatcher.registerFeedback(this, [
|
|
159
|
+
this.feedbackActionDispatcher.registerFeedback(this, [ApplyTypeHintsAction.create()]);
|
|
145
160
|
}
|
|
146
161
|
}
|
|
147
162
|
|
|
@@ -19,6 +19,8 @@ import {
|
|
|
19
19
|
ClosePopupActionHandler,
|
|
20
20
|
configureActionHandler,
|
|
21
21
|
configureCommand,
|
|
22
|
+
EnableDefaultToolsAction,
|
|
23
|
+
EnableToolsAction,
|
|
22
24
|
FitToScreenCommand,
|
|
23
25
|
HoverFeedbackCommand,
|
|
24
26
|
HoverKeyListener,
|
|
@@ -56,6 +58,8 @@ const glspHoverModule = new ContainerModule((bind, _unbind, isBound) => {
|
|
|
56
58
|
configureActionHandler(context, SetViewportCommand.KIND, ClosePopupActionHandler);
|
|
57
59
|
configureActionHandler(context, MoveCommand.KIND, ClosePopupActionHandler);
|
|
58
60
|
configureActionHandler(context, FocusStateChangedAction.KIND, ClosePopupActionHandler);
|
|
61
|
+
configureActionHandler(context, EnableToolsAction.KIND, GlspHoverMouseListener);
|
|
62
|
+
configureActionHandler(context, EnableDefaultToolsAction.KIND, GlspHoverMouseListener);
|
|
59
63
|
configureActionHandler(context, FocusStateChangedAction.KIND, GlspHoverMouseListener);
|
|
60
64
|
});
|
|
61
65
|
|
|
@@ -13,7 +13,15 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
Action,
|
|
18
|
+
Bounds,
|
|
19
|
+
PreRenderedElementSchema,
|
|
20
|
+
RequestPopupModelAction,
|
|
21
|
+
SetPopupModelAction,
|
|
22
|
+
SModelElementSchema,
|
|
23
|
+
SModelRootSchema
|
|
24
|
+
} from '@eclipse-glsp/protocol';
|
|
17
25
|
import { injectable } from 'inversify';
|
|
18
26
|
import {
|
|
19
27
|
EMPTY_ROOT,
|
|
@@ -21,18 +29,17 @@ import {
|
|
|
21
29
|
HoverMouseListener,
|
|
22
30
|
IActionHandler,
|
|
23
31
|
ICommand,
|
|
24
|
-
PreRenderedElementSchema,
|
|
25
32
|
SIssueMarker,
|
|
26
33
|
SIssueSeverity,
|
|
27
|
-
SModelElement
|
|
28
|
-
SModelElementSchema,
|
|
29
|
-
SModelRootSchema
|
|
34
|
+
SModelElement
|
|
30
35
|
} from 'sprotty';
|
|
31
|
-
import {
|
|
36
|
+
import { FocusStateChangedAction } from '../../base/actions/focus-change-action';
|
|
37
|
+
import { EnableDefaultToolsAction, EnableToolsAction } from '../../base/tool-manager/tool-actions';
|
|
38
|
+
import { EdgeCreationTool } from '../tools/edge-creation-tool';
|
|
32
39
|
import { GIssueMarker } from '../validation/issue-marker';
|
|
33
|
-
|
|
34
40
|
@injectable()
|
|
35
41
|
export class GlspHoverMouseListener extends HoverMouseListener implements IActionHandler {
|
|
42
|
+
protected enableHover = true;
|
|
36
43
|
/**
|
|
37
44
|
* Stops mouse over timer and remove hover feedback, if focus is lost.
|
|
38
45
|
*
|
|
@@ -43,25 +50,36 @@ export class GlspHoverMouseListener extends HoverMouseListener implements IActio
|
|
|
43
50
|
* @returns a `HoverFeedbackAction` resetting the state, if the specified action indicates lost focus
|
|
44
51
|
*/
|
|
45
52
|
handle(action: Action): void | Action | ICommand {
|
|
46
|
-
if (
|
|
53
|
+
if (FocusStateChangedAction.is(action) && !action.hasFocus) {
|
|
47
54
|
this.stopMouseOverTimer();
|
|
48
55
|
if (this.lastHoverFeedbackElementId) {
|
|
49
56
|
const previousTargetId = this.lastHoverFeedbackElementId;
|
|
50
57
|
this.lastHoverFeedbackElementId = undefined;
|
|
51
|
-
return
|
|
58
|
+
return HoverFeedbackAction.create({ mouseoverElement: previousTargetId, mouseIsOver: false });
|
|
52
59
|
}
|
|
60
|
+
} else if (EnableToolsAction.is(action)) {
|
|
61
|
+
this.enableHover = !(action as EnableToolsAction).toolIds.includes(EdgeCreationTool.ID);
|
|
62
|
+
} else if (EnableDefaultToolsAction.is(action)) {
|
|
63
|
+
this.enableHover = true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
override mouseOver(target: SModelElement, event: MouseEvent): (Action | Promise<Action>)[] {
|
|
68
|
+
if (this.enableHover) {
|
|
69
|
+
return super.mouseOver(target, event);
|
|
53
70
|
}
|
|
71
|
+
return [];
|
|
54
72
|
}
|
|
55
73
|
|
|
56
|
-
protected startMouseOverTimer(target: SModelElement, event: MouseEvent): Promise<Action> {
|
|
74
|
+
protected override startMouseOverTimer(target: SModelElement, event: MouseEvent): Promise<Action> {
|
|
57
75
|
this.stopMouseOverTimer();
|
|
58
76
|
return new Promise(resolve => {
|
|
59
77
|
this.state.mouseOverTimer = window.setTimeout(() => {
|
|
60
78
|
const popupBounds = this.computePopupBounds(target, { x: event.pageX, y: event.pageY });
|
|
61
79
|
if (target instanceof GIssueMarker) {
|
|
62
|
-
resolve(
|
|
80
|
+
resolve(SetPopupModelAction.create(this.createPopupModel(target as GIssueMarker, popupBounds)));
|
|
63
81
|
} else {
|
|
64
|
-
resolve(
|
|
82
|
+
resolve(RequestPopupModelAction.create({ elementId: target.id, bounds: popupBounds }));
|
|
65
83
|
}
|
|
66
84
|
|
|
67
85
|
this.state.popupOpen = true;
|
|
@@ -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,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 { configureCommand, configureLayout, VBoxLayouter } from 'sprotty';
|
|
17
|
+
import { configureCommand, configureLayout, HBoxLayouter, VBoxLayouter } from 'sprotty';
|
|
18
18
|
import { FreeFormLayouter } from './freeform-layout';
|
|
19
|
+
import { HBoxLayouterExt } from './hbox-layout';
|
|
19
20
|
import { AlignElementsCommand, ResizeElementsCommand } from './layout-commands';
|
|
20
21
|
import { VBoxLayouterExt } from './vbox-layout';
|
|
21
22
|
|
|
@@ -24,6 +25,7 @@ const layoutCommandsModule = new ContainerModule((bind, _unbind, isBound, rebind
|
|
|
24
25
|
configureCommand({ bind, isBound }, AlignElementsCommand);
|
|
25
26
|
|
|
26
27
|
rebind(VBoxLayouter).to(VBoxLayouterExt);
|
|
28
|
+
rebind(HBoxLayouter).to(HBoxLayouterExt);
|
|
27
29
|
configureLayout({ bind, isBound }, FreeFormLayouter.KIND, FreeFormLayouter);
|
|
28
30
|
});
|
|
29
31
|
|