@eclipse-glsp/client 0.9.0-next.d0112315 → 0.9.0-next.f12e3d87
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/README.md +2 -1
- package/css/command-palette.css +6 -5
- package/css/glsp-sprotty.css +17 -8
- package/css/tool-palette.css +14 -14
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +39 -60
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/context-actions.d.ts +1 -1
- package/lib/base/actions/context-actions.d.ts.map +1 -1
- package/lib/base/actions/context-actions.js +11 -18
- package/lib/base/actions/context-actions.js.map +1 -1
- package/lib/base/actions/edit-mode-action.d.ts.map +1 -1
- package/lib/base/actions/edit-mode-action.js +12 -17
- package/lib/base/actions/edit-mode-action.js.map +1 -1
- package/lib/base/actions/edit-validation-actions.d.ts +1 -1
- package/lib/base/actions/edit-validation-actions.d.ts.map +1 -1
- package/lib/base/actions/edit-validation-actions.js +23 -26
- package/lib/base/actions/edit-validation-actions.js.map +1 -1
- package/lib/base/actions/focus-change-action.js +4 -5
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/args.d.ts +1 -1
- package/lib/base/args.d.ts.map +1 -1
- package/lib/base/args.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +100 -150
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts +1 -1
- package/lib/base/auto-complete/validation-decorator.js +38 -60
- 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 +19 -37
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts +40 -0
- package/lib/base/container-modules.d.ts.map +1 -0
- package/lib/base/container-modules.js +84 -0
- package/lib/base/container-modules.js.map +1 -0
- package/lib/base/di.config.d.ts +11 -2
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +37 -37
- 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 +24 -48
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context.d.ts.map +1 -1
- package/lib/base/editor-context.js +64 -128
- package/lib/base/editor-context.js.map +1 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +19 -24
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.js +10 -28
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +2 -2
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +67 -88
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.js +31 -52
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/operations/operation.d.ts +5 -5
- package/lib/base/operations/operation.d.ts.map +1 -1
- package/lib/base/operations/operation.js +75 -115
- package/lib/base/operations/operation.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +10 -28
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.js +2 -5
- package/lib/base/source-uri-aware.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +56 -137
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/types.d.ts +2 -1
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +3 -2
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.js +10 -28
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +3 -1
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +20 -31
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +29 -28
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.js +13 -24
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/command-palette/command-palette-tool.js +30 -38
- package/lib/features/command-palette/command-palette-tool.js.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.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +27 -32
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +19 -67
- 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 -8
- 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.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +29 -67
- 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.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +29 -30
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-actions.d.ts +1 -1
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-actions.js +20 -30
- package/lib/features/copy-paste/copy-paste-actions.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +5 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +2 -0
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +67 -67
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.js +10 -10
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +13 -32
- package/lib/features/decoration/decoration-placer.js.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.js +7 -7
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +20 -43
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +37 -59
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.js +8 -8
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/model.d.ts +1 -1
- package/lib/features/hints/model.d.ts.map +1 -1
- package/lib/features/hints/request-type-hints-action.d.ts +1 -1
- package/lib/features/hints/request-type-hints-action.d.ts.map +1 -1
- package/lib/features/hints/request-type-hints-action.js +12 -14
- package/lib/features/hints/request-type-hints-action.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +4 -4
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +91 -133
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.js +7 -7
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +35 -76
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +5 -1
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +47 -7
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +16 -0
- package/lib/features/layout/freeform-layout.d.ts.map +1 -0
- package/lib/features/layout/freeform-layout.js +107 -0
- package/lib/features/layout/freeform-layout.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +2 -2
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +187 -263
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts +1 -1
- package/lib/features/layout/layout-commands.spec.js +94 -88
- package/lib/features/layout/layout-commands.spec.js.map +1 -1
- package/lib/features/layout/vbox-layout.d.ts +25 -0
- package/lib/features/layout/vbox-layout.d.ts.map +1 -0
- package/lib/features/layout/vbox-layout.js +187 -0
- package/lib/features/layout/vbox-layout.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.js +6 -6
- 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.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -45
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action.js +4 -5
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +1 -1
- package/lib/features/mouse-tool/di.config.js +5 -5
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +2 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +69 -215
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.js +9 -9
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +136 -217
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +57 -122
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +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/rank/model.d.ts +1 -1
- package/lib/features/rank/model.js +2 -2
- package/lib/features/rank/model.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 +9 -27
- 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 +5 -5
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/save.d.ts +1 -1
- package/lib/features/save/save.js +11 -31
- package/lib/features/save/save.js.map +1 -1
- package/lib/features/select/di.config.js +11 -11
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +45 -71
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.js +7 -23
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +132 -234
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +97 -124
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +2 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +104 -127
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +69 -103
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +3 -1
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +37 -81
- 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 +27 -27
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +1 -1
- 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 -193
- 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 +36 -58
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +41 -69
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +1 -1
- package/lib/features/tool-feedback/model.js +11 -27
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +4 -4
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +30 -37
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.js +6 -6
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/palette-item.d.ts +1 -1
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
- package/lib/features/tool-palette/palette-item.js +6 -5
- package/lib/features/tool-palette/palette-item.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +182 -259
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +37 -44
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +3 -2
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +187 -237
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +69 -102
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.js +18 -18
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +60 -85
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +110 -181
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +128 -149
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +32 -58
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.js +4 -22
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +59 -89
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +12 -31
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/undo-redo/model.d.ts +1 -1
- package/lib/features/undo-redo/model.js +8 -12
- package/lib/features/undo-redo/model.js.map +1 -1
- package/lib/features/validation/di.config.js +12 -12
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.js +13 -51
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +129 -163
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts +1 -1
- package/lib/features/validation/marker-navigator.spec.js +79 -73
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +2 -2
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +161 -276
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.js +10 -10
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -32
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +5 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +25 -23
- package/lib/index.js.map +1 -1
- package/lib/lib/model.js +11 -27
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +43 -118
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/model-source/glsp-server-status.js +10 -27
- package/lib/model-source/glsp-server-status.js.map +1 -1
- package/lib/utils/argument-utils.d.ts +3 -3
- package/lib/utils/argument-utils.d.ts.map +1 -1
- package/lib/utils/argument-utils.js +27 -92
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/array-utils.d.ts +1 -1
- package/lib/utils/array-utils.d.ts.map +1 -1
- package/lib/utils/array-utils.js +10 -15
- package/lib/utils/array-utils.js.map +1 -1
- package/lib/utils/html-utils.js +2 -2
- package/lib/utils/html-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +1 -1
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +5 -5
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/marker.js +11 -53
- package/lib/utils/marker.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +3 -3
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +17 -51
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +1 -1
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +16 -16
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.js +9 -9
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.d.ts +6 -0
- package/lib/views/compartments.d.ts.map +1 -0
- package/lib/views/compartments.js +43 -0
- package/lib/views/compartments.js.map +1 -0
- package/lib/views/default-types.js +1 -1
- package/lib/views/default-types.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -2
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +32 -62
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/index.d.ts +1 -0
- package/lib/views/index.d.ts.map +1 -1
- package/lib/views/index.js +1 -0
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +19 -42
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts +2 -3
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +40 -70
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/lib/views/rounded-corner.d.ts.map +1 -1
- package/lib/views/rounded-corner.js +44 -65
- package/lib/views/rounded-corner.js.map +1 -1
- package/package.json +6 -16
- package/src/base/action-dispatcher.ts +1 -2
- package/src/base/actions/context-actions.ts +6 -6
- package/src/base/actions/edit-mode-action.ts +3 -4
- package/src/base/actions/edit-validation-actions.ts +26 -14
- package/src/base/actions/focus-change-action.ts +1 -1
- package/src/base/args.ts +4 -2
- package/src/base/auto-complete/auto-complete-widget.ts +34 -21
- package/src/base/auto-complete/validation-decorator.ts +5 -5
- package/src/base/command-stack.ts +1 -3
- package/src/base/container-modules.ts +113 -0
- package/src/base/di.config.ts +31 -16
- package/src/base/drag-aware-mouse-listener.ts +1 -3
- package/src/base/editor-context.ts +2 -4
- package/src/base/focus-tracker.ts +0 -2
- package/src/base/model/update-model-command.ts +6 -8
- package/src/base/operations/operation.ts +57 -31
- package/src/base/types.ts +3 -2
- package/src/features/change-bounds/model.ts +16 -5
- package/src/features/change-bounds/movement-restrictor.ts +15 -7
- package/src/features/command-palette/server-command-palette-provider.ts +8 -5
- package/src/features/context-menu/di.config.ts +11 -9
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +4 -3
- package/src/features/context-menu/server-context-menu-provider.ts +7 -3
- package/src/features/copy-paste/copy-paste-actions.ts +11 -8
- package/src/features/copy-paste/copy-paste-context-menu.ts +57 -17
- package/src/features/copy-paste/copy-paste-handler.ts +15 -6
- package/src/features/decoration/decoration-placer.ts +2 -13
- package/src/features/edit-label/edit-label-validator.ts +11 -12
- package/src/features/hints/model.ts +2 -2
- package/src/features/hints/request-type-hints-action.ts +10 -5
- package/src/features/hints/type-hints.ts +26 -30
- package/src/features/hover/hover.ts +1 -2
- package/src/features/layout/di.config.ts +30 -5
- package/src/features/layout/freeform-layout.ts +132 -0
- package/src/features/layout/layout-commands.spec.ts +79 -56
- package/src/features/layout/layout-commands.ts +42 -31
- package/src/features/layout/vbox-layout.ts +241 -0
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +3 -3
- package/src/features/model-source-watcher/model-source-changed-action.ts +2 -2
- package/src/features/mouse-tool/mouse-tool.ts +31 -22
- package/src/features/navigation/navigation-action-handler.ts +32 -22
- package/src/features/navigation/navigation-target-resolver.spec.ts +1 -3
- package/src/features/navigation/navigation-target-resolver.ts +14 -12
- package/src/features/rank/model.ts +2 -2
- package/src/features/reconnect/model.ts +2 -3
- package/src/features/save/di.config.ts +1 -2
- package/src/features/save/save.ts +2 -2
- package/src/features/select/select-feedback-action.ts +4 -6
- package/src/features/select/selection-service.spec.ts +9 -4
- package/src/features/select/selection-service.ts +13 -5
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +26 -17
- package/src/features/tool-feedback/creation-tool-feedback.ts +16 -7
- package/src/features/tool-feedback/css-feedback.ts +7 -4
- package/src/features/tool-feedback/di.config.ts +2 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +18 -15
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +6 -8
- package/src/features/tool-feedback/marquee-tool-feedback.ts +3 -2
- package/src/features/tool-feedback/model.ts +1 -2
- package/src/features/tool-feedback/view.tsx +16 -10
- package/src/features/tool-palette/di.config.ts +1 -1
- package/src/features/tool-palette/palette-item.ts +3 -3
- package/src/features/tool-palette/tool-palette.ts +12 -14
- package/src/features/tools/change-bounds-tool.ts +54 -25
- package/src/features/tools/delete-tool.ts +8 -3
- package/src/features/tools/edge-creation-tool.ts +5 -8
- package/src/features/tools/edge-edit-tool.ts +9 -18
- package/src/features/tools/marquee-mouse-tool.ts +57 -37
- package/src/features/tools/marquee-tool.ts +0 -1
- package/src/features/tools/node-creation-tool.ts +4 -9
- package/src/features/tools/view.tsx +17 -12
- package/src/features/undo-redo/model.ts +3 -3
- package/src/features/validation/marker-navigator.spec.ts +15 -9
- package/src/features/validation/marker-navigator.ts +23 -8
- package/src/features/validation/validate.ts +9 -13
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +1 -10
- package/src/index.ts +26 -8
- package/src/model-source/glsp-diagram-server.ts +2 -14
- package/src/utils/argument-utils.ts +13 -9
- package/src/utils/array-utils.ts +4 -2
- package/src/utils/layout-utils.ts +11 -5
- package/src/utils/smodel-util.ts +14 -10
- package/src/utils/viewpoint-util.ts +3 -2
- package/src/views/compartments.tsx +37 -0
- package/src/views/glsp-edge-view.tsx +20 -13
- package/src/views/index.ts +1 -0
- package/src/views/issue-marker-view.tsx +11 -12
- package/src/views/rounded-corner-view.tsx +38 -25
- package/src/views/rounded-corner.ts +3 -4
- package/lib/base/actions/protocol-actions.d.ts +0 -41
- package/lib/base/actions/protocol-actions.d.ts.map +0 -1
- package/lib/base/actions/protocol-actions.js +0 -151
- package/lib/base/actions/protocol-actions.js.map +0 -1
- package/src/base/actions/protocol-actions.ts +0 -82
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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
|
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
isViewport,
|
|
28
28
|
MouseListener,
|
|
29
29
|
Point,
|
|
30
|
+
SChildElement,
|
|
30
31
|
SConnectableElement,
|
|
31
32
|
SetBoundsAction,
|
|
32
33
|
SModelElement,
|
|
@@ -34,7 +35,6 @@ import {
|
|
|
34
35
|
SParentElement,
|
|
35
36
|
TYPES
|
|
36
37
|
} from 'sprotty';
|
|
37
|
-
|
|
38
38
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
39
39
|
import {
|
|
40
40
|
ChangeBoundsOperation,
|
|
@@ -76,8 +76,8 @@ import { BaseGLSPTool } from './base-glsp-tool';
|
|
|
76
76
|
* | Move | MoveAction | ChangeBoundsOperationAction
|
|
77
77
|
* | Resize | SetBoundsAction | ChangeBoundsOperationAction
|
|
78
78
|
*
|
|
79
|
-
* To provide a visual client updates during move we install the `FeedbackMoveMouseListener` and to provide visual client updates during
|
|
80
|
-
* and send the server updates we install the `ChangeBoundsListener`.
|
|
79
|
+
* To provide a visual client updates during move we install the `FeedbackMoveMouseListener` and to provide visual client updates during
|
|
80
|
+
* resize and send the server updates we install the `ChangeBoundsListener`.
|
|
81
81
|
*/
|
|
82
82
|
@injectable()
|
|
83
83
|
export class ChangeBoundsTool extends BaseGLSPTool {
|
|
@@ -118,7 +118,7 @@ export class ChangeBoundsTool extends BaseGLSPTool {
|
|
|
118
118
|
this.selectionService.deregister(this.changeBoundsListener);
|
|
119
119
|
this.mouseTool.deregister(this.feedbackMoveMouseListener);
|
|
120
120
|
this.deregisterFeedback([], this.feedbackMoveMouseListener);
|
|
121
|
-
this.deregisterFeedback([new HideChangeBoundsToolResizeFeedbackAction], this.changeBoundsListener);
|
|
121
|
+
this.deregisterFeedback([new HideChangeBoundsToolResizeFeedbackAction()], this.changeBoundsListener);
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
|
|
@@ -162,7 +162,10 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
162
162
|
if (this.isMouseDrag && this.activeResizeHandle) {
|
|
163
163
|
// rely on the FeedbackMoveMouseListener to update the element bounds of selected elements
|
|
164
164
|
// consider resize handles ourselves
|
|
165
|
-
const actions: Action[] = [
|
|
165
|
+
const actions: Action[] = [
|
|
166
|
+
cursorFeedbackAction(this.activeResizeHandle.isNwSeResize() ? CursorCSS.RESIZE_NWSE : CursorCSS.RESIZE_NESW),
|
|
167
|
+
applyCssClasses(this.activeResizeHandle, ChangeBoundsListener.CSS_CLASS_ACTIVE)
|
|
168
|
+
];
|
|
166
169
|
const positionUpdate = this.updatePosition(target, event);
|
|
167
170
|
if (positionUpdate) {
|
|
168
171
|
const resizeActions = this.handleResizeOnClient(positionUpdate);
|
|
@@ -205,15 +208,32 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
205
208
|
protected handleMoveElementsOnServer(target: SModelElement): Action[] {
|
|
206
209
|
const result: Operation[] = [];
|
|
207
210
|
const newBounds: ElementAndBounds[] = [];
|
|
211
|
+
const selectedElements: (SModelElement & BoundsAware)[] = [];
|
|
208
212
|
forEachElement(target, isNonRoutableSelectedMovableBoundsAware, element => {
|
|
209
|
-
|
|
213
|
+
selectedElements.push(element);
|
|
210
214
|
});
|
|
215
|
+
|
|
216
|
+
const selectionSet: Set<SModelElement & BoundsAware> = new Set(selectedElements);
|
|
217
|
+
selectedElements.filter(element => !this.isChildOfSelected(selectionSet, element))
|
|
218
|
+
.map(element => this.createElementAndBounds(element))
|
|
219
|
+
.forEach(bounds => newBounds.push(...bounds));
|
|
220
|
+
|
|
211
221
|
if (newBounds.length > 0) {
|
|
212
222
|
result.push(new ChangeBoundsOperation(newBounds));
|
|
213
223
|
}
|
|
214
224
|
return result;
|
|
215
225
|
}
|
|
216
226
|
|
|
227
|
+
protected isChildOfSelected(selectedElements: Set<SModelElement>, element: SModelElement): boolean {
|
|
228
|
+
while (element instanceof SChildElement) {
|
|
229
|
+
element = element.parent;
|
|
230
|
+
if (selectedElements.has(element)) {
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
|
|
217
237
|
protected handleMoveRoutingPointsOnServer(target: SModelElement): Action[] {
|
|
218
238
|
const result: Operation[] = [];
|
|
219
239
|
const newRoutingPoints: ElementAndRoutingPoints[] = [];
|
|
@@ -281,7 +301,12 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
281
301
|
this.lastDragPosition = { x: event.pageX, y: event.pageY };
|
|
282
302
|
if (this.activeResizeHandle) {
|
|
283
303
|
const resizeElement = findParentByFeature(this.activeResizeHandle, isResizable);
|
|
284
|
-
this.initialBounds = {
|
|
304
|
+
this.initialBounds = {
|
|
305
|
+
x: resizeElement!.bounds.x,
|
|
306
|
+
y: resizeElement!.bounds.y,
|
|
307
|
+
width: resizeElement!.bounds.width,
|
|
308
|
+
height: resizeElement!.bounds.height
|
|
309
|
+
};
|
|
285
310
|
}
|
|
286
311
|
}
|
|
287
312
|
|
|
@@ -302,14 +327,14 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
302
327
|
|
|
303
328
|
// snap our delta and only send update if the position actually changes
|
|
304
329
|
// otherwise accumulate delta until we do snap to an update
|
|
305
|
-
const positionUpdate = this.snap(this.positionDelta, target, !event.
|
|
330
|
+
const positionUpdate = this.snap(this.positionDelta, target, !event.altKey);
|
|
306
331
|
if (positionUpdate.x === 0 && positionUpdate.y === 0) {
|
|
307
332
|
return undefined;
|
|
308
333
|
}
|
|
309
334
|
|
|
310
|
-
// we update our position so we
|
|
311
|
-
this.positionDelta.x
|
|
312
|
-
this.positionDelta.y
|
|
335
|
+
// we update our position so we update our delta by the snapped position
|
|
336
|
+
this.positionDelta.x -= positionUpdate.x;
|
|
337
|
+
this.positionDelta.y -= positionUpdate.y;
|
|
313
338
|
return positionUpdate;
|
|
314
339
|
}
|
|
315
340
|
return undefined;
|
|
@@ -318,7 +343,6 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
318
343
|
protected reset(): void {
|
|
319
344
|
if (this.activeResizeElement && isResizable(this.activeResizeElement)) {
|
|
320
345
|
this.tool.dispatchFeedback([new HideChangeBoundsToolResizeFeedbackAction()], this);
|
|
321
|
-
|
|
322
346
|
}
|
|
323
347
|
this.tool.dispatchActions([cursorFeedbackAction(CursorCSS.DEFAULT)]);
|
|
324
348
|
this.resetPosition();
|
|
@@ -352,35 +376,43 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
352
376
|
}
|
|
353
377
|
|
|
354
378
|
protected handleTopLeftResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
355
|
-
return this.createSetBoundsAction(
|
|
379
|
+
return this.createSetBoundsAction(
|
|
380
|
+
resizeElement,
|
|
356
381
|
resizeElement.bounds.x + positionUpdate.x,
|
|
357
382
|
resizeElement.bounds.y + positionUpdate.y,
|
|
358
383
|
resizeElement.bounds.width - positionUpdate.x,
|
|
359
|
-
resizeElement.bounds.height - positionUpdate.y
|
|
384
|
+
resizeElement.bounds.height - positionUpdate.y
|
|
385
|
+
);
|
|
360
386
|
}
|
|
361
387
|
|
|
362
388
|
protected handleTopRightResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
363
|
-
return this.createSetBoundsAction(
|
|
389
|
+
return this.createSetBoundsAction(
|
|
390
|
+
resizeElement,
|
|
364
391
|
resizeElement.bounds.x,
|
|
365
392
|
resizeElement.bounds.y + positionUpdate.y,
|
|
366
393
|
resizeElement.bounds.width + positionUpdate.x,
|
|
367
|
-
resizeElement.bounds.height - positionUpdate.y
|
|
394
|
+
resizeElement.bounds.height - positionUpdate.y
|
|
395
|
+
);
|
|
368
396
|
}
|
|
369
397
|
|
|
370
398
|
protected handleBottomLeftResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
371
|
-
return this.createSetBoundsAction(
|
|
399
|
+
return this.createSetBoundsAction(
|
|
400
|
+
resizeElement,
|
|
372
401
|
resizeElement.bounds.x + positionUpdate.x,
|
|
373
402
|
resizeElement.bounds.y,
|
|
374
403
|
resizeElement.bounds.width - positionUpdate.x,
|
|
375
|
-
resizeElement.bounds.height + positionUpdate.y
|
|
404
|
+
resizeElement.bounds.height + positionUpdate.y
|
|
405
|
+
);
|
|
376
406
|
}
|
|
377
407
|
|
|
378
408
|
protected handleBottomRightResize(resizeElement: SParentElement & Resizable, positionUpdate: Point): Action[] {
|
|
379
|
-
return this.createSetBoundsAction(
|
|
409
|
+
return this.createSetBoundsAction(
|
|
410
|
+
resizeElement,
|
|
380
411
|
resizeElement.bounds.x,
|
|
381
412
|
resizeElement.bounds.y,
|
|
382
413
|
resizeElement.bounds.width + positionUpdate.x,
|
|
383
|
-
resizeElement.bounds.height + positionUpdate.y
|
|
414
|
+
resizeElement.bounds.height + positionUpdate.y
|
|
415
|
+
);
|
|
384
416
|
}
|
|
385
417
|
|
|
386
418
|
protected createChangeBoundsAction(element: SModelElement & BoundsAware): Action[] {
|
|
@@ -414,7 +446,6 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
414
446
|
result.push(removeMovementRestrictionFeedback(element, this.tool.movementRestrictor));
|
|
415
447
|
}
|
|
416
448
|
result.push(new SetBoundsAction([{ elementId: element.id, newPosition, newSize }]));
|
|
417
|
-
|
|
418
449
|
} else if (this.isValidSize(element, newSize)) {
|
|
419
450
|
if (this.tool.movementRestrictor) {
|
|
420
451
|
result.push(createMovementRestrictionFeedback(element, this.tool.movementRestrictor));
|
|
@@ -426,9 +457,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements Sele
|
|
|
426
457
|
}
|
|
427
458
|
|
|
428
459
|
protected snap(position: Point, element: SModelElement, isSnap: boolean): Point {
|
|
429
|
-
return isSnap && this.tool.snapper
|
|
430
|
-
? this.tool.snapper.snap(position, element)
|
|
431
|
-
: { x: position.x, y: position.y };
|
|
460
|
+
return isSnap && this.tool.snapper ? this.tool.snapper.snap(position, element) : { x: position.x, y: position.y };
|
|
432
461
|
}
|
|
433
462
|
|
|
434
463
|
protected isValidBoundChange(element: SModelElement & BoundsAware, newPosition: Point, newSize: Dimension): boolean {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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
|
|
@@ -64,8 +64,13 @@ export class DelKeyDeleteTool implements GLSPTool {
|
|
|
64
64
|
export class DeleteKeyListener extends KeyListener {
|
|
65
65
|
keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
66
66
|
if (matchesKeystroke(event, 'Delete')) {
|
|
67
|
-
const deleteElementIds = Array.from(
|
|
68
|
-
.
|
|
67
|
+
const deleteElementIds = Array.from(
|
|
68
|
+
element.root.index
|
|
69
|
+
.all()
|
|
70
|
+
.filter(e => isDeletable(e) && isSelectable(e) && e.selected)
|
|
71
|
+
.filter(e => e.id !== e.root.id)
|
|
72
|
+
.map(e => e.id)
|
|
73
|
+
);
|
|
69
74
|
if (deleteElementIds.length > 0) {
|
|
70
75
|
return [new DeleteElementOperation(deleteElementIds)];
|
|
71
76
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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
|
|
@@ -28,11 +28,7 @@ import {
|
|
|
28
28
|
} from 'sprotty';
|
|
29
29
|
|
|
30
30
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
31
|
-
import {
|
|
32
|
-
CreateEdgeOperation,
|
|
33
|
-
isTriggerElementTypeCreationAction,
|
|
34
|
-
TriggerEdgeCreationAction
|
|
35
|
-
} from '../../base/operations/operation';
|
|
31
|
+
import { CreateEdgeOperation, isTriggerElementTypeCreationAction, TriggerEdgeCreationAction } from '../../base/operations/operation';
|
|
36
32
|
import {
|
|
37
33
|
DrawFeedbackEdgeAction,
|
|
38
34
|
FeedbackEdgeEndMovingMouseListener,
|
|
@@ -151,8 +147,9 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
151
147
|
this.allowedTarget = this.isAllowedTarget(newCurrentTarget);
|
|
152
148
|
}
|
|
153
149
|
if (this.allowedTarget) {
|
|
154
|
-
const action = !this.isSourceSelected()
|
|
155
|
-
cursorFeedbackAction(CursorCSS.
|
|
150
|
+
const action = !this.isSourceSelected()
|
|
151
|
+
? cursorFeedbackAction(CursorCSS.EDGE_CREATION_SOURCE)
|
|
152
|
+
: cursorFeedbackAction(CursorCSS.EDGE_CREATION_TARGET);
|
|
156
153
|
return [action];
|
|
157
154
|
}
|
|
158
155
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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
|
|
@@ -28,18 +28,11 @@ import {
|
|
|
28
28
|
SRoutableElement,
|
|
29
29
|
SRoutingHandle
|
|
30
30
|
} from 'sprotty';
|
|
31
|
-
|
|
32
31
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
33
32
|
import { ChangeRoutingPointsOperation, ReconnectEdgeOperation } from '../../base/operations/operation';
|
|
34
33
|
import { GLSP_TYPES } from '../../base/types';
|
|
35
34
|
import { isRoutable, isRoutingHandle } from '../../utils/smodel-util';
|
|
36
|
-
import {
|
|
37
|
-
isReconnectable,
|
|
38
|
-
isReconnectHandle,
|
|
39
|
-
isSourceRoutingHandle,
|
|
40
|
-
isTargetRoutingHandle,
|
|
41
|
-
SReconnectHandle
|
|
42
|
-
} from '../reconnect/model';
|
|
35
|
+
import { isReconnectable, isReconnectHandle, isSourceRoutingHandle, isTargetRoutingHandle, SReconnectHandle } from '../reconnect/model';
|
|
43
36
|
import { SelectionListener, SelectionService } from '../select/selection-service';
|
|
44
37
|
import { DrawFeedbackEdgeAction, feedbackEdgeId, RemoveFeedbackEdgeAction } from '../tool-feedback/creation-tool-feedback';
|
|
45
38
|
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
@@ -239,7 +232,8 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
239
232
|
}
|
|
240
233
|
this.reset();
|
|
241
234
|
} else if (this.edge && this.routingHandle) {
|
|
242
|
-
// we need to re-retrieve the edge as it might have changed due to a server
|
|
235
|
+
// we need to re-retrieve the edge as it might have changed due to a server update since we do not reset the state between
|
|
236
|
+
// reroute actions
|
|
243
237
|
const latestEdge = target.index.getById(this.edge.id);
|
|
244
238
|
if (latestEdge && isRoutable(latestEdge)) {
|
|
245
239
|
result.push(new ChangeRoutingPointsOperation([{ elementId: latestEdge.id, newRoutingPoints: latestEdge.routingPoints }]));
|
|
@@ -255,9 +249,10 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
255
249
|
if (!this.newConnectable || currentTarget !== this.newConnectable) {
|
|
256
250
|
this.setNewConnectable(currentTarget);
|
|
257
251
|
if (currentTarget) {
|
|
258
|
-
if (
|
|
259
|
-
(this.reconnectMode === '
|
|
260
|
-
|
|
252
|
+
if (
|
|
253
|
+
(this.reconnectMode === 'NEW_SOURCE' && currentTarget.canConnect(this.edge, 'source')) ||
|
|
254
|
+
(this.reconnectMode === 'NEW_TARGET' && currentTarget.canConnect(this.edge, 'target'))
|
|
255
|
+
) {
|
|
261
256
|
this.tool.dispatchFeedback([cursorFeedbackAction(CursorCSS.EDGE_RECONNECT)]);
|
|
262
257
|
return [];
|
|
263
258
|
}
|
|
@@ -314,11 +309,7 @@ class EdgeEditListener extends DragAwareMouseListener implements SelectionListen
|
|
|
314
309
|
if (this.edge) {
|
|
315
310
|
result.push(new SwitchRoutingModeAction([], [this.edge.id]));
|
|
316
311
|
}
|
|
317
|
-
result.push(...[
|
|
318
|
-
new HideEdgeReconnectHandlesFeedbackAction(),
|
|
319
|
-
cursorFeedbackAction(),
|
|
320
|
-
new RemoveFeedbackEdgeAction()
|
|
321
|
-
]);
|
|
312
|
+
result.push(...[new HideEdgeReconnectHandlesFeedbackAction(), cursorFeedbackAction(), new RemoveFeedbackEdgeAction()]);
|
|
322
313
|
this.tool.deregisterFeedback(result);
|
|
323
314
|
this.tool.deregisterFeedbackListeners();
|
|
324
315
|
}
|
|
@@ -65,7 +65,6 @@ export class MarqueeMouseTool extends BaseGLSPTool {
|
|
|
65
65
|
|
|
66
66
|
@injectable()
|
|
67
67
|
export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
68
|
-
|
|
69
68
|
protected startPoint: Point;
|
|
70
69
|
|
|
71
70
|
protected currentPoint: Point;
|
|
@@ -84,11 +83,14 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
84
83
|
mouseDown(target: SModelElement, event: MouseEvent): Action[] {
|
|
85
84
|
this.isActive = true;
|
|
86
85
|
this.startPoint = { x: getAbsolutePosition(target, event).x, y: getAbsolutePosition(target, event).y };
|
|
87
|
-
if(event.ctrlKey){
|
|
88
|
-
this.previouslySelected = Array.from(
|
|
89
|
-
.
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
if (event.ctrlKey) {
|
|
87
|
+
this.previouslySelected = Array.from(
|
|
88
|
+
target.root.index
|
|
89
|
+
.all()
|
|
90
|
+
.map(e => e as SModelElement & BoundsAware)
|
|
91
|
+
.filter(e => isSelected(e))
|
|
92
|
+
.map(e => e.id)
|
|
93
|
+
);
|
|
92
94
|
}
|
|
93
95
|
return [];
|
|
94
96
|
}
|
|
@@ -96,18 +98,21 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
96
98
|
mouseMove(target: SModelElement, event: MouseEvent): Action[] {
|
|
97
99
|
this.currentPoint = { x: getAbsolutePosition(target, event).x, y: getAbsolutePosition(target, event).y };
|
|
98
100
|
if (this.isActive) {
|
|
99
|
-
const nodeIdsSelected = Array.from(
|
|
100
|
-
.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
const nodeIdsSelected = Array.from(
|
|
102
|
+
target.root.index
|
|
103
|
+
.all()
|
|
104
|
+
.map(e => e as SModelElement & BoundsAware)
|
|
105
|
+
.filter(e => isSelectable(e))
|
|
106
|
+
.filter(e => e instanceof SNode)
|
|
107
|
+
.filter(e => this.isNodeMarked(e))
|
|
108
|
+
.map(e => e.id)
|
|
109
|
+
);
|
|
104
110
|
const edgeIdsSelected = this.getMarkedEdges(target.root);
|
|
105
111
|
const selected = nodeIdsSelected.concat(edgeIdsSelected);
|
|
106
112
|
return [
|
|
107
113
|
new SelectAction([], Array.from(target.root.index.all().map(e => e.id))),
|
|
108
114
|
new SelectAction(selected.concat(this.previouslySelected), []),
|
|
109
|
-
new DrawMarqueeAction(this.startPoint,
|
|
110
|
-
{ x: getAbsolutePosition(target, event).x, y: getAbsolutePosition(target, event).y })
|
|
115
|
+
new DrawMarqueeAction(this.startPoint, { x: getAbsolutePosition(target, event).x, y: getAbsolutePosition(target, event).y })
|
|
111
116
|
];
|
|
112
117
|
}
|
|
113
118
|
return [];
|
|
@@ -123,10 +128,17 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
123
128
|
|
|
124
129
|
getMarkedEdges(root: SModelElement): string[] {
|
|
125
130
|
const elements = Array.from(document.querySelectorAll('g'));
|
|
126
|
-
const edges = Array.from(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
131
|
+
const edges = Array.from(
|
|
132
|
+
root.index
|
|
133
|
+
.all()
|
|
134
|
+
.filter(e => e instanceof SEdge)
|
|
135
|
+
.filter(e => isSelectable(e))
|
|
136
|
+
.map(e => e.id)
|
|
137
|
+
);
|
|
138
|
+
return elements
|
|
139
|
+
.filter(e => edges.includes(this.domHelper.findSModelIdByDOMElement(e)))
|
|
140
|
+
.filter(e => this.isEdgeMarked(e))
|
|
141
|
+
.map(e => this.domHelper.findSModelIdByDOMElement(e));
|
|
130
142
|
}
|
|
131
143
|
|
|
132
144
|
isEdgeMarked(element: SVGElement): boolean {
|
|
@@ -170,11 +182,11 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
170
182
|
}
|
|
171
183
|
|
|
172
184
|
linesIntersect(p1: Point, p2: Point, p3: Point, p4: Point): boolean {
|
|
173
|
-
const tCount = (
|
|
174
|
-
const tDenom = (
|
|
185
|
+
const tCount = (p1.x - p3.x) * (p3.y - p4.y) - (p1.y - p3.y) * (p3.x - p4.x);
|
|
186
|
+
const tDenom = (p1.x - p2.x) * (p3.y - p4.y) - (p1.y - p2.y) * (p3.x - p4.x);
|
|
175
187
|
const t = tCount / tDenom;
|
|
176
|
-
const uCount = (
|
|
177
|
-
const uDenom = (
|
|
188
|
+
const uCount = (p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x);
|
|
189
|
+
const uDenom = (p1.x - p2.x) * (p3.y - p4.y) - (p1.y - p2.y) * (p3.x - p4.x);
|
|
178
190
|
const u = uCount / uDenom;
|
|
179
191
|
if (t >= 0.0 && t <= 1.0 && u >= 0.0 && u <= 1.0) {
|
|
180
192
|
return true;
|
|
@@ -183,20 +195,26 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
183
195
|
}
|
|
184
196
|
|
|
185
197
|
pointInRect(point: Point): boolean {
|
|
186
|
-
const boolX =
|
|
187
|
-
this.
|
|
188
|
-
|
|
189
|
-
|
|
198
|
+
const boolX =
|
|
199
|
+
this.startPoint.x <= this.currentPoint.x
|
|
200
|
+
? this.isBetween(point.x, this.startPoint.x, this.currentPoint.x)
|
|
201
|
+
: this.isBetween(point.x, this.currentPoint.x, this.startPoint.x);
|
|
202
|
+
const boolY =
|
|
203
|
+
this.startPoint.y <= this.currentPoint.y
|
|
204
|
+
? this.isBetween(point.y, this.startPoint.y, this.currentPoint.y)
|
|
205
|
+
: this.isBetween(point.y, this.currentPoint.y, this.startPoint.y);
|
|
190
206
|
return boolX && boolY;
|
|
191
207
|
}
|
|
192
208
|
|
|
193
209
|
isNodeMarked(element: SModelElement & BoundsAware): boolean {
|
|
194
|
-
const horizontallyIn =
|
|
195
|
-
this.
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
this.
|
|
210
|
+
const horizontallyIn =
|
|
211
|
+
this.startPoint.x < this.currentPoint.x
|
|
212
|
+
? this.isElementBetweenXAxis(element, this.startPoint.x, this.currentPoint.x)
|
|
213
|
+
: this.isElementBetweenXAxis(element, this.currentPoint.x, this.startPoint.x);
|
|
214
|
+
const verticallyIn =
|
|
215
|
+
this.startPoint.y < this.currentPoint.y
|
|
216
|
+
? this.isElementBetweenYAxis(element, this.startPoint.y, this.currentPoint.y)
|
|
217
|
+
: this.isElementBetweenYAxis(element, this.currentPoint.y, this.startPoint.y);
|
|
200
218
|
if (horizontallyIn && verticallyIn) {
|
|
201
219
|
return true;
|
|
202
220
|
}
|
|
@@ -204,8 +222,10 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
204
222
|
}
|
|
205
223
|
|
|
206
224
|
isElementBetweenXAxis(element: SModelElement & BoundsAware, marqueeLeft: number, marqueeRight: number): boolean {
|
|
207
|
-
if (
|
|
208
|
-
|
|
225
|
+
if (
|
|
226
|
+
this.isBetween(marqueeLeft, toAbsoluteBounds(element).x, toAbsoluteBounds(element).x + toAbsoluteBounds(element).width) ||
|
|
227
|
+
this.isBetween(marqueeRight, toAbsoluteBounds(element).x, toAbsoluteBounds(element).x + toAbsoluteBounds(element).width)
|
|
228
|
+
) {
|
|
209
229
|
return true;
|
|
210
230
|
}
|
|
211
231
|
const leftEdge = this.isBetween(toAbsoluteBounds(element).x, marqueeLeft, marqueeRight);
|
|
@@ -214,8 +234,10 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
214
234
|
}
|
|
215
235
|
|
|
216
236
|
isElementBetweenYAxis(element: SModelElement & BoundsAware, marqueeTop: number, marqueeBottom: number): boolean {
|
|
217
|
-
if (
|
|
218
|
-
|
|
237
|
+
if (
|
|
238
|
+
this.isBetween(marqueeTop, toAbsoluteBounds(element).y, toAbsoluteBounds(element).y + toAbsoluteBounds(element).height) ||
|
|
239
|
+
this.isBetween(marqueeBottom, toAbsoluteBounds(element).y, toAbsoluteBounds(element).y + toAbsoluteBounds(element).height)
|
|
240
|
+
) {
|
|
219
241
|
return true;
|
|
220
242
|
}
|
|
221
243
|
const topEdge = this.isBetween(toAbsoluteBounds(element).y, marqueeTop, marqueeBottom);
|
|
@@ -229,12 +251,10 @@ export class MarqueeMouseListener extends DragAwareMouseListener {
|
|
|
229
251
|
}
|
|
230
252
|
return false;
|
|
231
253
|
}
|
|
232
|
-
|
|
233
254
|
}
|
|
234
255
|
|
|
235
256
|
@injectable()
|
|
236
257
|
export class ShiftKeyListener extends KeyListener {
|
|
237
|
-
|
|
238
258
|
keyUp(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
239
259
|
if (event.shiftKey) {
|
|
240
260
|
return [];
|
|
@@ -42,7 +42,6 @@ export class MarqueeTool extends BaseGLSPTool {
|
|
|
42
42
|
|
|
43
43
|
@injectable()
|
|
44
44
|
export class MarqueeKeyListener extends KeyListener {
|
|
45
|
-
|
|
46
45
|
keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
47
46
|
if (event.shiftKey) {
|
|
48
47
|
return [new EnableToolsAction([MarqueeMouseTool.ID])];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 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
|
|
@@ -28,11 +28,7 @@ import {
|
|
|
28
28
|
} from 'sprotty';
|
|
29
29
|
|
|
30
30
|
import { DragAwareMouseListener } from '../../base/drag-aware-mouse-listener';
|
|
31
|
-
import {
|
|
32
|
-
CreateNodeOperation,
|
|
33
|
-
isTriggerNodeCreationAction,
|
|
34
|
-
TriggerNodeCreationAction
|
|
35
|
-
} from '../../base/operations/operation';
|
|
31
|
+
import { CreateNodeOperation, isTriggerNodeCreationAction, TriggerNodeCreationAction } from '../../base/operations/operation';
|
|
36
32
|
import { getAbsolutePosition } from '../../utils/viewpoint-util';
|
|
37
33
|
import { Containable, isContainable } from '../hints/model';
|
|
38
34
|
import { CursorCSS, cursorFeedbackAction } from '../tool-feedback/css-feedback';
|
|
@@ -75,7 +71,6 @@ export class NodeCreationTool extends BaseGLSPTool implements IActionHandler {
|
|
|
75
71
|
|
|
76
72
|
@injectable()
|
|
77
73
|
export class NodeCreationToolMouseListener extends DragAwareMouseListener {
|
|
78
|
-
|
|
79
74
|
protected container?: SModelElement & Containable;
|
|
80
75
|
|
|
81
76
|
constructor(protected triggerAction: TriggerNodeCreationAction, protected tool: NodeCreationTool) {
|
|
@@ -114,8 +109,8 @@ export class NodeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
114
109
|
if (!this.container || currentContainer !== this.container) {
|
|
115
110
|
this.container = currentContainer;
|
|
116
111
|
const feedback = this.creationAllowed(this.elementTypeId)
|
|
117
|
-
? cursorFeedbackAction(CursorCSS.NODE_CREATION)
|
|
118
|
-
cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED);
|
|
112
|
+
? cursorFeedbackAction(CursorCSS.NODE_CREATION)
|
|
113
|
+
: cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED);
|
|
119
114
|
this.tool.dispatchFeedback([feedback]);
|
|
120
115
|
}
|
|
121
116
|
return [];
|
|
@@ -14,26 +14,31 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { injectable } from 'inversify';
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
19
|
-
import { RectangularNodeView, RenderingContext } from 'sprotty';
|
|
17
|
+
import { VNode } from 'snabbdom';
|
|
18
|
+
import { RectangularNodeView, RenderingContext, svg } from 'sprotty';
|
|
20
19
|
|
|
21
20
|
import { MarqueeNode } from './model';
|
|
22
21
|
|
|
23
22
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
24
|
-
const JSX = { createElement:
|
|
23
|
+
const JSX = { createElement: svg };
|
|
25
24
|
|
|
26
25
|
@injectable()
|
|
27
26
|
export class MarqueeView extends RectangularNodeView {
|
|
28
27
|
render(node: MarqueeNode, context: RenderingContext): VNode {
|
|
29
|
-
const graph =
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
const graph = (
|
|
29
|
+
<g>
|
|
30
|
+
<rect
|
|
31
|
+
class-sprotty-node={true}
|
|
32
|
+
class-marquee={true}
|
|
33
|
+
x={node.startPoint.x - node.endPoint.x <= 0 ? node.startPoint.x : node.endPoint.x}
|
|
34
|
+
y={node.startPoint.y - node.endPoint.y <= 0 ? node.startPoint.y : node.endPoint.y}
|
|
35
|
+
rx={0}
|
|
36
|
+
ry={0}
|
|
37
|
+
width={Math.abs(node.startPoint.x - node.endPoint.x)}
|
|
38
|
+
height={Math.abs(node.startPoint.y - node.endPoint.y)}
|
|
39
|
+
></rect>
|
|
40
|
+
</g>
|
|
41
|
+
);
|
|
37
42
|
return graph;
|
|
38
43
|
}
|
|
39
44
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 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,10 +17,10 @@ import { Operation } from '../../base/operations/operation';
|
|
|
17
17
|
|
|
18
18
|
export class UndoOperation implements Operation {
|
|
19
19
|
static readonly KIND = 'glspUndo';
|
|
20
|
-
constructor(public readonly kind = UndoOperation.KIND) {
|
|
20
|
+
constructor(public readonly kind = UndoOperation.KIND) {}
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export class RedoOperation implements Operation {
|
|
24
24
|
static readonly KIND = 'glspRedo';
|
|
25
|
-
constructor(public readonly kind = RedoOperation.KIND) {
|
|
25
|
+
constructor(public readonly kind = RedoOperation.KIND) {}
|
|
26
26
|
}
|