@eclipse-glsp/client 0.9.0 → 0.10.0-next.17bfb07.173
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/glsp-sprotty.css +110 -8
- package/lib/base/action-dispatcher.d.ts +4 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +22 -12
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +16 -7
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +31 -12
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/actions/sprotty-actions.d.ts +7 -0
- package/lib/base/actions/sprotty-actions.d.ts.map +1 -0
- package/lib/{features/tool-palette/palette-item.js → base/actions/sprotty-actions.js} +4 -20
- package/lib/base/actions/sprotty-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +5 -3
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +24 -5
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +16 -9
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +2 -2
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +6 -5
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts.map +1 -1
- package/lib/base/container-modules.js +2 -1
- package/lib/base/container-modules.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 +18 -5
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +39 -22
- 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/source-uri-aware.d.ts +2 -17
- package/lib/base/source-uri-aware.d.ts.map +1 -1
- package/lib/base/source-uri-aware.js +4 -6
- package/lib/base/source-uri-aware.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 +37 -7
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +55 -40
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +42 -2
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +78 -2
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/change-bounds/snap.spec.d.ts +17 -0
- package/lib/features/change-bounds/snap.spec.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.spec.js +82 -0
- package/lib/features/change-bounds/snap.spec.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +3 -3
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +2 -2
- package/lib/features/command-palette/di.config.d.ts.map +1 -1
- package/lib/features/command-palette/di.config.js +6 -6
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +13 -10
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +17 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +4 -4
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +1 -1
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +8 -7
- package/lib/features/context-menu/di.config.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +33 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +41 -28
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +8 -7
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +12 -15
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +26 -33
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +10 -11
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +5 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +19 -3
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -4
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.d.ts.map +1 -1
- package/lib/features/edit-label/di.config.js +5 -5
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +2 -2
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +4 -6
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +11 -13
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +4 -4
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +15 -5
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +29 -26
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +1 -1
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +14 -10
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +16 -4
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +42 -4
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +3 -3
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +11 -7
- 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-elements-action.d.ts +198 -0
- package/lib/features/layout/layout-elements-action.d.ts.map +1 -0
- package/lib/features/layout/layout-elements-action.js +391 -0
- package/lib/features/layout/layout-elements-action.js.map +1 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts +3 -0
- package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -0
- package/lib/features/layout/{layout-commands.spec.js → layout-elements-action.spec.js} +81 -62
- package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
- 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 +9 -10
- 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 +14 -5
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +55 -64
- 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 +68 -38
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +24 -12
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +88 -35
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +17 -10
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +42 -38
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +1 -1
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +18 -18
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +45 -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 +147 -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.d.ts +9 -2
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +26 -15
- 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/{tool-palette/palette-item.d.ts → tools/enable-default-tools-on-focus-loss.d.ts} +11 -11
- package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js +29 -0
- package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -0
- 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 +0 -15
- package/lib/features/validation/di.config.d.ts.map +1 -1
- package/lib/features/validation/di.config.js +9 -7
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +27 -25
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +64 -91
- 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 +16 -30
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +61 -92
- 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 +8 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +15 -11
- 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 +3 -18
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +6 -6
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +8 -7
- 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 +6 -22
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +1 -1
- package/lib/utils/layout-utils.js.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.d.ts.map +1 -1
- package/lib/views/base-view-module.js +21 -19
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.js +2 -2
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -1
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +1 -1
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/index.js +6 -2
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +3 -3
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +2 -2
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/package.json +8 -18
- package/src/base/action-dispatcher.ts +26 -16
- package/src/base/actions/focus-change-action.ts +25 -8
- package/src/base/actions/sprotty-actions.ts +26 -0
- 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/container-modules.ts +4 -3
- 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 +38 -16
- 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/source-uri-aware.ts +5 -4
- 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 +74 -44
- package/src/features/change-bounds/snap.spec.ts +89 -0
- package/src/features/change-bounds/snap.ts +86 -3
- package/src/features/command-palette/di.config.ts +5 -7
- package/src/features/command-palette/server-command-palette-provider.ts +9 -8
- package/src/features/context-menu/delete-element-context-menu.ts +6 -6
- package/src/features/context-menu/di.config.ts +3 -2
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +45 -17
- package/src/features/context-menu/server-context-menu-provider.ts +7 -6
- package/src/features/copy-paste/copy-paste-context-menu.ts +30 -23
- package/src/features/copy-paste/copy-paste-handler.ts +6 -6
- package/src/features/copy-paste/di.config.ts +7 -15
- package/src/features/decoration/decoration-placer.ts +4 -4
- package/src/features/decoration/di.config.ts +3 -5
- package/src/features/edit-label/di.config.ts +4 -5
- package/src/features/edit-label/edit-label-tool.ts +1 -2
- package/src/features/edit-label/edit-label-validator.ts +6 -10
- package/src/features/hints/di.config.ts +3 -3
- package/src/features/hints/type-hints.ts +33 -18
- package/src/features/hover/di.config.ts +8 -2
- package/src/features/hover/hover.ts +53 -11
- package/src/features/layout/di.config.ts +11 -7
- 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 → layout-elements-action.spec.ts} +89 -65
- package/src/features/layout/layout-elements-action.ts +486 -0
- 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 +9 -14
- 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 +12 -9
- package/src/features/select/selection-service.ts +52 -60
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +52 -22
- package/src/features/tool-feedback/creation-tool-feedback.ts +79 -30
- package/src/features/tool-feedback/css-feedback.ts +40 -37
- package/src/features/tool-feedback/di.config.ts +4 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +140 -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 +23 -12
- package/src/features/tools/edge-creation-tool.ts +21 -12
- package/src/features/tools/edge-edit-tool.ts +25 -21
- package/src/features/tools/enable-default-tools-on-focus-loss.ts +33 -0
- 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 +13 -11
- package/src/features/validation/marker-navigator.spec.ts +4 -2
- package/src/features/validation/marker-navigator.ts +67 -82
- package/src/features/validation/validate.ts +57 -91
- package/src/features/viewport/di.config.ts +1 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +9 -9
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +15 -15
- package/src/sprotty-reexport.ts +283 -0
- package/src/utils/layout-utils.ts +9 -29
- package/src/utils/smodel-util.ts +139 -43
- package/src/utils/viewpoint-util.ts +5 -14
- package/src/views/base-view-module.ts +5 -1
- package/src/views/compartments.tsx +1 -1
- package/src/views/glsp-edge-view.tsx +4 -4
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-view.tsx +2 -3
- package/lib/features/layout/layout-commands.d.ts +0 -153
- package/lib/features/layout/layout-commands.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.js +0 -412
- package/lib/features/layout/layout-commands.js.map +0 -1
- package/lib/features/layout/layout-commands.spec.d.ts +0 -3
- package/lib/features/layout/layout-commands.spec.d.ts.map +0 -1
- package/lib/features/layout/layout-commands.spec.js.map +0 -1
- 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/layout/layout-commands.ts +0 -424
- 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,25 +13,51 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, Args, distinctAdd, EditMode, EditorContext,
|
|
17
|
-
import { inject, injectable, multiInject, optional } from 'inversify';
|
|
18
|
-
import { IActionHandler, ModelSource, MousePositionTracker, SModelElement, SModelRoot
|
|
16
|
+
import { Action, Args, distinctAdd, EditMode, EditorContext, remove, SetEditModeAction } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
18
|
+
import { IActionHandler, ModelSource, MousePositionTracker, SModelElement, SModelRoot } from 'sprotty';
|
|
19
19
|
import { SelectionService } from '../features/select/selection-service';
|
|
20
20
|
import { isSourceUriAware } from './source-uri-aware';
|
|
21
|
-
import {
|
|
21
|
+
import { TYPES } from './types';
|
|
22
22
|
|
|
23
23
|
export interface EditModeListener {
|
|
24
24
|
editModeChanged(newValue: string, oldvalue: string): void;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* The `EditorContextService` is a central injectable component that gives read-only access to
|
|
29
|
+
* certain aspects of the diagram, such as the currently selected elements, the model root,
|
|
30
|
+
* the edit mode, the latest position of the mouse in the diagram.
|
|
31
|
+
*
|
|
32
|
+
* It has been introduced for two main reasons:
|
|
33
|
+
* 1. to simplify accessing the model root and the current selection from components that are
|
|
34
|
+
* not commands,
|
|
35
|
+
* 2. to conveniently create an EditorContext, which is a context object sent as part of several
|
|
36
|
+
* actions to the server to describe the current state of the editor (selection, last mouse
|
|
37
|
+
* position, etc.).
|
|
38
|
+
*/
|
|
27
39
|
@injectable()
|
|
28
40
|
export class EditorContextService implements IActionHandler {
|
|
29
|
-
@inject(
|
|
30
|
-
|
|
31
|
-
|
|
41
|
+
@inject(TYPES.SelectionService)
|
|
42
|
+
protected selectionService: SelectionService;
|
|
43
|
+
|
|
44
|
+
@inject(MousePositionTracker)
|
|
45
|
+
protected mousePositionTracker: MousePositionTracker;
|
|
46
|
+
|
|
47
|
+
@multiInject(TYPES.IEditModeListener)
|
|
48
|
+
@optional()
|
|
49
|
+
protected editModeListeners: EditModeListener[] = [];
|
|
50
|
+
|
|
51
|
+
@inject(TYPES.ModelSourceProvider)
|
|
52
|
+
protected modelSourceProvider: () => Promise<ModelSource>;
|
|
53
|
+
|
|
32
54
|
protected _editMode: string;
|
|
55
|
+
protected modelSource: ModelSource | undefined;
|
|
33
56
|
|
|
34
|
-
|
|
57
|
+
@postConstruct()
|
|
58
|
+
async initialize(): Promise<void> {
|
|
59
|
+
this.modelSource = await this.modelSourceProvider();
|
|
60
|
+
}
|
|
35
61
|
|
|
36
62
|
register(editModeListener: EditModeListener): void {
|
|
37
63
|
distinctAdd(this.editModeListeners, editModeListener);
|
|
@@ -58,7 +84,7 @@ export class EditorContextService implements IActionHandler {
|
|
|
58
84
|
}
|
|
59
85
|
|
|
60
86
|
handle(action: Action): void {
|
|
61
|
-
if (
|
|
87
|
+
if (SetEditModeAction.is(action)) {
|
|
62
88
|
const oldValue = this._editMode;
|
|
63
89
|
this._editMode = action.editMode;
|
|
64
90
|
this.notifiyEditModeListeners(oldValue);
|
|
@@ -69,12 +95,8 @@ export class EditorContextService implements IActionHandler {
|
|
|
69
95
|
this.editModeListeners.forEach(listener => listener.editModeChanged(oldValue, this.editMode));
|
|
70
96
|
}
|
|
71
97
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
if (isSourceUriAware(modelSource)) {
|
|
75
|
-
return modelSource.getSourceURI();
|
|
76
|
-
}
|
|
77
|
-
return undefined;
|
|
98
|
+
get sourceUri(): string | undefined {
|
|
99
|
+
return this.modelSource && isSourceUriAware(this.modelSource) ? this.modelSource.sourceURI : undefined;
|
|
78
100
|
}
|
|
79
101
|
|
|
80
102
|
get editMode(): string {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { Action } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
|
-
import { IActionHandler, ICommand,
|
|
19
|
-
import {
|
|
18
|
+
import { IActionHandler, ICommand, ViewerOptions } from 'sprotty';
|
|
19
|
+
import { FocusStateChangedAction } from './actions/focus-change-action';
|
|
20
|
+
import { TYPES } from './types';
|
|
20
21
|
|
|
21
22
|
@injectable()
|
|
22
23
|
export class FocusTracker implements IActionHandler {
|
|
@@ -30,7 +31,7 @@ export class FocusTracker implements IActionHandler {
|
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
handle(action: Action): void | Action | ICommand {
|
|
33
|
-
if (
|
|
34
|
+
if (FocusStateChangedAction.is(action)) {
|
|
34
35
|
this._hasFocus = action.hasFocus;
|
|
35
36
|
const placeholder = document.getElementById(this.options.baseDiv);
|
|
36
37
|
if (!placeholder) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -18,7 +18,7 @@ import { SModelElement, SModelRegistry } from 'sprotty';
|
|
|
18
18
|
|
|
19
19
|
@injectable()
|
|
20
20
|
export class GLSPModelRegistry extends SModelRegistry {
|
|
21
|
-
register(key: string, factory: (u: void) => SModelElement): void {
|
|
21
|
+
override register(key: string, factory: (u: void) => SModelElement): void {
|
|
22
22
|
if (key === undefined) {
|
|
23
23
|
throw new Error('Key is undefined');
|
|
24
24
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -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,
|
|
16
|
+
import { Action, SetModelAction, UpdateModelAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
18
18
|
import {
|
|
19
19
|
ActionHandlerRegistry,
|
|
@@ -24,20 +24,19 @@ import {
|
|
|
24
24
|
IActionHandler,
|
|
25
25
|
ILogger,
|
|
26
26
|
SModelRoot,
|
|
27
|
-
TYPES,
|
|
28
27
|
UpdateModelCommand
|
|
29
28
|
} from 'sprotty';
|
|
30
29
|
import { IFeedbackActionDispatcher } from '../../features/tool-feedback/feedback-action-dispatcher';
|
|
31
30
|
import { FeedbackCommand } from '../../features/tool-feedback/model';
|
|
32
|
-
import {
|
|
31
|
+
import { TYPES } from '../types';
|
|
33
32
|
|
|
34
33
|
/* ActionHandler that transforms a SetModelAction into an (feedback-aware) UpdateModelAction. This can be done because in sprotty
|
|
35
34
|
* UpdateModel behaves the same as SetModel if no model is present yet.*/
|
|
36
35
|
@injectable()
|
|
37
36
|
export class SetModelActionHandler implements IActionHandler {
|
|
38
37
|
handle(action: Action): Action | void {
|
|
39
|
-
if (
|
|
40
|
-
return
|
|
38
|
+
if (SetModelAction.is(action)) {
|
|
39
|
+
return UpdateModelAction.create(action.newRoot, { animate: false });
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
42
|
}
|
|
@@ -53,14 +52,14 @@ export interface SModelRootListener {
|
|
|
53
52
|
@injectable()
|
|
54
53
|
export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
|
|
55
54
|
@inject(TYPES.ILogger) protected logger: ILogger;
|
|
56
|
-
@inject(
|
|
55
|
+
@inject(TYPES.IFeedbackActionDispatcher) @optional() protected readonly feedbackActionDispatcher: IFeedbackActionDispatcher;
|
|
57
56
|
@inject(TYPES.ActionHandlerRegistryProvider) protected actionHandlerRegistryProvider: () => Promise<ActionHandlerRegistry>;
|
|
58
|
-
@multiInject(
|
|
57
|
+
@multiInject(TYPES.SModelRootListener) @optional() protected modelRootListeners: SModelRootListener[] = [];
|
|
59
58
|
|
|
60
59
|
protected actionHandlerRegistry?: ActionHandlerRegistry;
|
|
61
60
|
|
|
62
61
|
constructor(@inject(TYPES.Action) action: UpdateModelAction) {
|
|
63
|
-
super(action);
|
|
62
|
+
super({ animate: true, ...action });
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
@postConstruct()
|
|
@@ -68,7 +67,7 @@ export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
|
|
|
68
67
|
this.actionHandlerRegistryProvider().then(registry => (this.actionHandlerRegistry = registry));
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
protected performUpdate(oldRoot: SModelRoot, newRoot: SModelRoot, context: CommandExecutionContext): CommandReturn {
|
|
70
|
+
protected override performUpdate(oldRoot: SModelRoot, newRoot: SModelRoot, context: CommandExecutionContext): CommandReturn {
|
|
72
71
|
if (this.feedbackActionDispatcher && this.actionHandlerRegistry) {
|
|
73
72
|
// Create a temporary context wich defines the `newRoot` as `root`
|
|
74
73
|
// This way we do not corrupt the redo/undo behavior of the super class
|
|
@@ -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,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 { Action, UpdateModelAction } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { Action, Deferred, SetModelAction, UpdateModelAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { injectable } from 'inversify';
|
|
18
18
|
import { InitializeCanvasBoundsAction } from 'sprotty';
|
|
19
|
-
import { Deferred } from 'sprotty/lib/utils/async';
|
|
20
19
|
|
|
21
20
|
/**
|
|
22
21
|
* The constraint defining when the initialization of the GLSP model is completed.
|
|
@@ -74,21 +73,20 @@ export abstract class ModelInitializationConstraint {
|
|
|
74
73
|
*/
|
|
75
74
|
@injectable()
|
|
76
75
|
export class DefaultModelInitializationConstraint extends ModelInitializationConstraint {
|
|
77
|
-
protected
|
|
76
|
+
protected seenNonEmptyModelAction = false;
|
|
78
77
|
|
|
79
78
|
isInitializedAfter(action: Action): boolean {
|
|
80
|
-
if (this.
|
|
81
|
-
this.
|
|
82
|
-
} else if (this.
|
|
79
|
+
if (this.isNonEmptyModelAction(action)) {
|
|
80
|
+
this.seenNonEmptyModelAction = true;
|
|
81
|
+
} else if (this.seenNonEmptyModelAction && action.kind === InitializeCanvasBoundsAction.KIND) {
|
|
83
82
|
return true;
|
|
84
83
|
}
|
|
85
84
|
return false;
|
|
86
85
|
}
|
|
87
86
|
|
|
88
|
-
protected
|
|
89
|
-
if (action
|
|
90
|
-
|
|
91
|
-
return updateModelAction.newRoot !== undefined && updateModelAction.newRoot.type !== 'NONE';
|
|
87
|
+
protected isNonEmptyModelAction(action: Action): boolean {
|
|
88
|
+
if (SetModelAction.is(action) || UpdateModelAction.is(action)) {
|
|
89
|
+
return action.newRoot.type !== 'NONE';
|
|
92
90
|
}
|
|
93
91
|
return false;
|
|
94
92
|
}
|
|
@@ -30,7 +30,7 @@ import { MouseListener, SModelElement } from 'sprotty';
|
|
|
30
30
|
*/
|
|
31
31
|
@injectable()
|
|
32
32
|
export class SelectionClearingMouseListener extends MouseListener {
|
|
33
|
-
mouseDown(_target: SModelElement, event: MouseEvent): never[] {
|
|
33
|
+
override mouseDown(_target: SModelElement, event: MouseEvent): never[] {
|
|
34
34
|
const selection = document.getSelection();
|
|
35
35
|
// eslint-disable-next-line no-null/no-null
|
|
36
36
|
if (selection === null) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 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,10 +13,11 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
import { AnyObject, hasStringProp } from '@eclipse-glsp/protocol';
|
|
17
|
+
export interface SourceUriAware {
|
|
18
|
+
sourceURI: string;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
export function isSourceUriAware(obj: any): obj is SourceUriAware {
|
|
21
|
-
return obj
|
|
22
|
+
return AnyObject.is(obj) && hasStringProp(obj, 'sourceURI');
|
|
22
23
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020-
|
|
2
|
+
* Copyright (c) 2020-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -17,7 +17,7 @@ import { distinctAdd, EditMode } from '@eclipse-glsp/protocol';
|
|
|
17
17
|
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
18
18
|
import { Tool, ToolManager } from 'sprotty';
|
|
19
19
|
import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context-service';
|
|
20
|
-
import {
|
|
20
|
+
import { TYPES } from '../types';
|
|
21
21
|
|
|
22
22
|
export interface IGLSPToolManager extends ToolManager {
|
|
23
23
|
/* Disables all actives tools and activates only default tool with non-edit function*/
|
|
@@ -28,9 +28,9 @@ export interface IGLSPToolManager extends ToolManager {
|
|
|
28
28
|
export class GLSPToolManager extends ToolManager implements IGLSPToolManager, EditModeListener {
|
|
29
29
|
protected editorContext?: EditorContextService;
|
|
30
30
|
|
|
31
|
-
@multiInject(
|
|
32
|
-
@multiInject(
|
|
33
|
-
@inject(
|
|
31
|
+
@multiInject(TYPES.ITool) @optional() override tools: Tool[];
|
|
32
|
+
@multiInject(TYPES.IDefaultTool) @optional() override defaultTools: Tool[];
|
|
33
|
+
@inject(TYPES.IEditorContextServiceProvider) contextServiceProvider: EditorContextServiceProvider;
|
|
34
34
|
|
|
35
35
|
@postConstruct()
|
|
36
36
|
protected initialize(): void {
|
|
@@ -43,19 +43,19 @@ export class GLSPToolManager extends ToolManager implements IGLSPToolManager, Ed
|
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
registerDefaultTools(...tools: Tool[]): void {
|
|
46
|
+
override registerDefaultTools(...tools: Tool[]): void {
|
|
47
47
|
for (const tool of tools) {
|
|
48
48
|
distinctAdd(this.defaultTools, tool);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
registerTools(...tools: Tool[]): void {
|
|
52
|
+
override registerTools(...tools: Tool[]): void {
|
|
53
53
|
for (const tool of tools) {
|
|
54
54
|
distinctAdd(this.tools, tool);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
enable(toolIds: string[]): void {
|
|
58
|
+
override enable(toolIds: string[]): void {
|
|
59
59
|
this.disableActiveTools();
|
|
60
60
|
let tools = toolIds.map(id => this.tool(id));
|
|
61
61
|
if (this.editorContext && this.editorContext.isReadonly) {
|
|
@@ -90,6 +90,6 @@ export interface GLSPTool extends Tool {
|
|
|
90
90
|
isEditTool: boolean;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
export function isGLSPTool(tool:
|
|
93
|
+
export function isGLSPTool(tool: any): tool is GLSPTool {
|
|
94
94
|
return 'isEditTool' in tool && typeof tool['isEditTool'] === 'boolean';
|
|
95
95
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { Action, hasArrayProp } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { EnableDefaultToolsAction, EnableToolsAction } from 'sprotty/lib/base/tool-manager/tool';
|
|
18
|
+
/* eslint-disable no-shadow */
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Use module augmentation to add the `is` utility function to the tool action namespaces provided by sprotty
|
|
22
|
+
*/
|
|
23
|
+
declare module 'sprotty/lib/base/tool-manager/tool' {
|
|
24
|
+
export namespace EnableDefaultToolsAction {
|
|
25
|
+
export function is(object: any): object is EnableDefaultToolsAction;
|
|
26
|
+
}
|
|
27
|
+
export namespace EnableToolsAction {
|
|
28
|
+
export function is(object: any): object is EnableToolsAction;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
EnableDefaultToolsAction.is = (object: any): object is EnableDefaultToolsAction => Action.hasKind(object, EnableDefaultToolsAction.KIND);
|
|
33
|
+
|
|
34
|
+
EnableToolsAction.is = (object: any): object is EnableToolsAction =>
|
|
35
|
+
Action.hasKind(object, EnableToolsAction.KIND) && hasArrayProp(object, 'toolIds');
|
|
36
|
+
|
|
37
|
+
export { EnableDefaultToolsAction, EnableToolsAction };
|
package/src/base/types.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,27 +13,34 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
IMarqueeBehavior: Symbol
|
|
16
|
+
import { TYPES as SprottyTYPES } from 'sprotty';
|
|
17
|
+
/**
|
|
18
|
+
* Reexport of the TYPES namespace of sprotty augments with additional GLSP specific service
|
|
19
|
+
* identifiers.
|
|
20
|
+
*/
|
|
21
|
+
export const TYPES = {
|
|
22
|
+
...SprottyTYPES,
|
|
23
|
+
IAsyncClipboardService: Symbol('IAsyncClipboardService'),
|
|
24
|
+
IEditorContextServiceProvider: Symbol('IEditorContextProvider'),
|
|
25
|
+
IFeedbackActionDispatcher: Symbol('IFeedbackActionDispatcher'),
|
|
26
|
+
IToolFactory: Symbol('Factory<Tool>'),
|
|
27
|
+
ITypeHintProvider: Symbol('ITypeHintProvider'),
|
|
28
|
+
IMovementRestrictor: Symbol('IMovementRestrictor'),
|
|
29
|
+
SelectionService: Symbol('SelectionService'),
|
|
30
|
+
SelectionListener: Symbol('SelectionListener'),
|
|
31
|
+
SModelRootListener: Symbol('SModelRootListener'),
|
|
32
|
+
MouseTool: Symbol('MouseTool'),
|
|
33
|
+
IContextMenuProvider: Symbol('IContextMenuProvider'),
|
|
34
|
+
ICopyPasteHandler: Symbol('ICopyPasteHandler'),
|
|
35
|
+
ITool: Symbol('ITool'),
|
|
36
|
+
IDefaultTool: Symbol('IDefaultTool'),
|
|
37
|
+
IEditModeListener: Symbol('IEditModeListener'),
|
|
38
|
+
IMarqueeBehavior: Symbol('IMarqueeBehavior')
|
|
39
39
|
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Keep a reexport under the old deprecated namespace to avoid hard API breaks.
|
|
43
|
+
* This gives adopters a grace period but all deprecated API will be removed before the 1.0.0 release.
|
|
44
|
+
* @deprecated Please use `TYPES` from `@eclipse-glsp/client` instead
|
|
45
|
+
*/
|
|
46
|
+
export const GLSP_TYPES = TYPES;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2021-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -18,7 +18,7 @@ import { IView, ViewRegistry } from 'sprotty';
|
|
|
18
18
|
|
|
19
19
|
@injectable()
|
|
20
20
|
export class GLSPViewRegistry extends ViewRegistry {
|
|
21
|
-
register(key: string, instance: IView): void {
|
|
21
|
+
override register(key: string, instance: IView): void {
|
|
22
22
|
if (key === undefined) {
|
|
23
23
|
throw new Error('Key is undefined');
|
|
24
24
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -51,14 +51,14 @@ export class SResizeHandle extends SChildElement implements Hoverable {
|
|
|
51
51
|
static readonly TYPE = 'resize-handle';
|
|
52
52
|
|
|
53
53
|
constructor(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
readonly location?: ResizeHandleLocation,
|
|
55
|
+
override readonly type: string = SResizeHandle.TYPE,
|
|
56
|
+
readonly hoverFeedback: boolean = false
|
|
57
57
|
) {
|
|
58
58
|
super();
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
hasFeature(feature: symbol): boolean {
|
|
61
|
+
override hasFeature(feature: symbol): boolean {
|
|
62
62
|
return feature === hoverFeedbackFeature;
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2022 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -20,40 +20,35 @@ import { toAbsoluteBounds } from '../../utils/viewpoint-util';
|
|
|
20
20
|
import { ModifyCSSFeedbackAction } from '../tool-feedback/css-feedback';
|
|
21
21
|
import { isBoundsAwareMoveable, SResizeHandle } from './model';
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* A `MovementRestrictor` is an optional service that can be used by tools to validate
|
|
25
|
+
* whether a certain move operation (e.g. `ChangeBoundsOperation`) in the diagram is valid.
|
|
26
|
+
*/
|
|
23
27
|
export interface IMovementRestrictor {
|
|
24
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Validate whether moving the given element to a new given location is allowed.
|
|
30
|
+
* @param element The element that should be moved.
|
|
31
|
+
* @param newLocation The new location of the element.
|
|
32
|
+
* @returns `true` if the the element is movable and moving to the given location is allowed, `false` otherwise.
|
|
33
|
+
* Should also return `false` if the newLocation is `undefined`:
|
|
34
|
+
*/
|
|
35
|
+
validate(element: SModelElement, newLocation?: Point): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Feedback css-classes. Can be applied to elements that did fail the validation.
|
|
38
|
+
*/
|
|
25
39
|
cssClasses?: string[];
|
|
26
40
|
}
|
|
27
41
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const elements: SModelElement[] = [element];
|
|
33
|
-
if (element instanceof SParentElement) {
|
|
34
|
-
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
35
|
-
}
|
|
36
|
-
return new ModifyCSSFeedbackAction(elements, movementRestrictor.cssClasses);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function removeMovementRestrictionFeedback(
|
|
40
|
-
element: SModelElement,
|
|
41
|
-
movementRestrictor: IMovementRestrictor
|
|
42
|
-
): ModifyCSSFeedbackAction {
|
|
43
|
-
const elements: SModelElement[] = [element];
|
|
44
|
-
if (element instanceof SParentElement) {
|
|
45
|
-
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return new ModifyCSSFeedbackAction(elements, undefined, movementRestrictor.cssClasses);
|
|
49
|
-
}
|
|
50
|
-
|
|
42
|
+
/**
|
|
43
|
+
* A `IMovementRestrictor` that checks for overlapping elements. Move operations
|
|
44
|
+
* are only valid if the element does not collide with another element after moving.
|
|
45
|
+
*/
|
|
51
46
|
@injectable()
|
|
52
|
-
export class
|
|
47
|
+
export class NoOverlapMovementRestrictor implements IMovementRestrictor {
|
|
53
48
|
cssClasses = ['movement-not-allowed'];
|
|
54
49
|
|
|
55
|
-
validate(
|
|
56
|
-
if (!isBoundsAwareMoveable(element)) {
|
|
50
|
+
validate(element: SModelElement, newLocation?: Point): boolean {
|
|
51
|
+
if (!isBoundsAwareMoveable(element) || !newLocation) {
|
|
57
52
|
return false;
|
|
58
53
|
}
|
|
59
54
|
// Create ghost element at the newLocation
|
|
@@ -71,27 +66,62 @@ export class NoOverlapMovmentRestrictor implements IMovementRestrictor {
|
|
|
71
66
|
.all()
|
|
72
67
|
.filter(e => e.id !== ghostElement.id && e !== ghostElement.root && e instanceof SNode)
|
|
73
68
|
.map(e => e as SModelElement & BoundsAware)
|
|
74
|
-
).some(e => areOverlapping(e, ghostElement));
|
|
69
|
+
).some(e => this.areOverlapping(e, ghostElement));
|
|
75
70
|
}
|
|
76
|
-
}
|
|
77
71
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
72
|
+
protected areOverlapping(element1: SModelElement & BoundsAware, element2: SModelElement & BoundsAware): boolean {
|
|
73
|
+
const b1 = toAbsoluteBounds(element1);
|
|
74
|
+
const b2 = toAbsoluteBounds(element2);
|
|
75
|
+
const r1TopLeft: Point = b1;
|
|
76
|
+
const r1BottomRight = { x: b1.x + b1.width, y: b1.y + b1.height };
|
|
77
|
+
const r2TopLeft: Point = b2;
|
|
78
|
+
const r2BottomRight = { x: b2.x + b2.width, y: b2.y + b2.height };
|
|
79
|
+
|
|
80
|
+
// If one rectangle is on left side of other
|
|
81
|
+
if (r1TopLeft.x > r2BottomRight.x || r2TopLeft.x > r1BottomRight.x) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// If one rectangle is above other
|
|
86
|
+
if (r1BottomRight.y < r2TopLeft.y || r2BottomRight.y < r1TopLeft.y) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
85
89
|
|
|
86
|
-
|
|
87
|
-
if (r1TopLeft.x > r2BottomRight.x || r2TopLeft.x > r1BottomRight.x) {
|
|
88
|
-
return false;
|
|
90
|
+
return true;
|
|
89
91
|
}
|
|
92
|
+
}
|
|
90
93
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Utility function to create an action that applies the given {@link IMovementRestrictor.cssClasses} to the given element.
|
|
96
|
+
* @param element The element on which the css classes should be applied.
|
|
97
|
+
* @param movementRestrictor The movement restrictor whose cssClasses should be applied.
|
|
98
|
+
* @returns The corresponding {@link ModifyCSSFeedbackAction}
|
|
99
|
+
*/
|
|
100
|
+
export function createMovementRestrictionFeedback(
|
|
101
|
+
element: SModelElement,
|
|
102
|
+
movementRestrictor: IMovementRestrictor
|
|
103
|
+
): ModifyCSSFeedbackAction {
|
|
104
|
+
const elements: SModelElement[] = [element];
|
|
105
|
+
if (element instanceof SParentElement) {
|
|
106
|
+
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
107
|
+
}
|
|
108
|
+
return ModifyCSSFeedbackAction.create({ elements, add: movementRestrictor.cssClasses });
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Utility function to create an action that removes the given {@link IMovementRestrictor.cssClasses} from the given element.
|
|
113
|
+
* @param element The element from which the css classes should be removed.
|
|
114
|
+
* @param movementRestrictor The movement restrictor whose cssClasses should be removed.
|
|
115
|
+
* @returns The corresponding {@link ModifyCSSFeedbackAction}
|
|
116
|
+
*/
|
|
117
|
+
export function removeMovementRestrictionFeedback(
|
|
118
|
+
element: SModelElement,
|
|
119
|
+
movementRestrictor: IMovementRestrictor
|
|
120
|
+
): ModifyCSSFeedbackAction {
|
|
121
|
+
const elements: SModelElement[] = [element];
|
|
122
|
+
if (element instanceof SParentElement) {
|
|
123
|
+
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
94
124
|
}
|
|
95
125
|
|
|
96
|
-
return
|
|
126
|
+
return ModifyCSSFeedbackAction.create({ elements, remove: movementRestrictor.cssClasses });
|
|
97
127
|
}
|