@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) 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
|
|
@@ -36,14 +36,14 @@ export abstract class ExternalModelSourceChangedHandler {
|
|
|
36
36
|
|
|
37
37
|
@injectable()
|
|
38
38
|
export class ModelSourceChangedActionHandler implements IActionHandler {
|
|
39
|
-
|
|
40
39
|
@inject(TYPES.IActionDispatcher)
|
|
41
40
|
protected dispatcher: IActionDispatcher;
|
|
42
41
|
|
|
43
42
|
@inject(TYPES.ViewerOptions)
|
|
44
43
|
protected options: ViewerOptions;
|
|
45
44
|
|
|
46
|
-
@inject(ExternalModelSourceChangedHandler)
|
|
45
|
+
@inject(ExternalModelSourceChangedHandler)
|
|
46
|
+
@optional()
|
|
47
47
|
protected externalModelSourceChangedHandler?: ExternalModelSourceChangedHandler;
|
|
48
48
|
|
|
49
49
|
handle(action: Action): void {
|
|
@@ -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
|
|
@@ -18,7 +18,7 @@ import { Action } from 'sprotty';
|
|
|
18
18
|
export class ModelSourceChangedAction implements Action {
|
|
19
19
|
static KIND = 'modelSourceChanged';
|
|
20
20
|
readonly kind = ModelSourceChangedAction.KIND;
|
|
21
|
-
constructor(public readonly modelSourceName: string) {
|
|
21
|
+
constructor(public readonly modelSourceName: string) {}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export function isModelSourceChangedAction(action: Action): action is ModelSourceChangedAction {
|
|
@@ -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
|
|
@@ -14,9 +14,8 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { injectable, multiInject, optional } from 'inversify';
|
|
17
|
-
import { VNode, VNodeData } from 'snabbdom
|
|
17
|
+
import { On, VNode, VNodeData } from 'snabbdom';
|
|
18
18
|
import { Action, isAction, MouseListener, MouseTool, SModelElement, SModelRoot, TYPES } from 'sprotty';
|
|
19
|
-
|
|
20
19
|
import { getRank } from '../rank/model';
|
|
21
20
|
|
|
22
21
|
export interface IMouseTool {
|
|
@@ -46,25 +45,25 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
|
46
45
|
decorate(vnode: VNode, element: SModelElement): VNode {
|
|
47
46
|
// we need to overwrite the existing event handlers registered by the original mouse tool
|
|
48
47
|
if (element instanceof SModelRoot) {
|
|
49
|
-
overwriteOn(vnode, 'mouseover', this.mouseOver.bind(this), element);
|
|
50
|
-
overwriteOn(vnode, 'mouseout', this.mouseOut.bind(this), element);
|
|
51
|
-
overwriteOn(vnode, 'mouseenter', this.mouseEnter.bind(this), element);
|
|
52
|
-
overwriteOn(vnode, 'mouseleave', this.mouseLeave.bind(this), element);
|
|
53
|
-
overwriteOn(vnode, 'mousedown', this.mouseDown.bind(this), element);
|
|
54
|
-
overwriteOn(vnode, 'mouseup', this.mouseUp.bind(this), element);
|
|
55
|
-
overwriteOn(vnode, 'mousemove', this.mouseMove.bind(this), element);
|
|
56
|
-
overwriteOn(vnode, 'wheel', this.wheel.bind(this), element);
|
|
57
|
-
overwriteOn(vnode, 'contextmenu', (
|
|
58
|
-
|
|
59
|
-
}, element);
|
|
60
|
-
overwriteOn(vnode, 'dblclick', this.doubleClick.bind(this), element);
|
|
48
|
+
overwriteOn(vnode, 'mouseover', this.mouseOver.bind(this, element), element);
|
|
49
|
+
overwriteOn(vnode, 'mouseout', this.mouseOut.bind(this, element), element);
|
|
50
|
+
overwriteOn(vnode, 'mouseenter', this.mouseEnter.bind(this, element), element);
|
|
51
|
+
overwriteOn(vnode, 'mouseleave', this.mouseLeave.bind(this, element), element);
|
|
52
|
+
overwriteOn(vnode, 'mousedown', this.mouseDown.bind(this, element), element);
|
|
53
|
+
overwriteOn(vnode, 'mouseup', this.mouseUp.bind(this, element), element);
|
|
54
|
+
overwriteOn(vnode, 'mousemove', this.mouseMove.bind(this, element), element);
|
|
55
|
+
overwriteOn(vnode, 'wheel', this.wheel.bind(this, element), element);
|
|
56
|
+
overwriteOn(vnode, 'contextmenu', this.contextMenu.bind(this, element), element);
|
|
57
|
+
overwriteOn(vnode, 'dblclick', this.doubleClick.bind(this, element), element);
|
|
61
58
|
}
|
|
62
|
-
vnode = this.mouseListeners.reduce(
|
|
63
|
-
(n: VNode, listener: MouseListener) => listener.decorate(n, element),
|
|
64
|
-
vnode);
|
|
59
|
+
vnode = this.mouseListeners.reduce((n: VNode, listener: MouseListener) => listener.decorate(n, element), vnode);
|
|
65
60
|
return vnode;
|
|
66
61
|
}
|
|
67
62
|
|
|
63
|
+
contextMenu(model: SModelRoot, event: MouseEvent): void {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
}
|
|
66
|
+
|
|
68
67
|
protected handleEvent<K extends keyof MouseListener>(methodName: K, model: SModelRoot, event: MouseEvent): void {
|
|
69
68
|
this.focusOnMouseEvent(methodName, model);
|
|
70
69
|
const element = this.getTargetElement(model, event);
|
|
@@ -74,13 +73,23 @@ export class RankingMouseTool extends MouseTool implements IMouseTool {
|
|
|
74
73
|
this.notifyListenersByRank(element, methodName, model, event);
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
async notifyListenersByRank<K extends keyof MouseListener>(
|
|
76
|
+
async notifyListenersByRank<K extends keyof MouseListener>(
|
|
77
|
+
element: SModelElement,
|
|
78
|
+
methodName: K,
|
|
79
|
+
model: SModelRoot,
|
|
80
|
+
event: MouseEvent
|
|
81
|
+
): Promise<void> {
|
|
78
82
|
for (const rank of this.rankedMouseListeners) {
|
|
79
83
|
await this.dispatchActions(rank[1], methodName, element, event);
|
|
80
84
|
}
|
|
81
85
|
}
|
|
82
86
|
|
|
83
|
-
async dispatchActions<K extends keyof MouseListener>(
|
|
87
|
+
async dispatchActions<K extends keyof MouseListener>(
|
|
88
|
+
mouseListeners: MouseListener[],
|
|
89
|
+
methodName: K,
|
|
90
|
+
element: SModelElement,
|
|
91
|
+
event: MouseEvent
|
|
92
|
+
): Promise<void> {
|
|
84
93
|
const actions = mouseListeners
|
|
85
94
|
.map(listener => listener[methodName].apply(listener, [element, event]))
|
|
86
95
|
.reduce((a, b) => a.concat(b));
|
|
@@ -115,13 +124,13 @@ function groupBy<K, T>(array: Array<T>, keyFunction: (x: T) => K): Map<K, T[]> {
|
|
|
115
124
|
return new Map<K, T[]>([...unsortedMap.entries()].sort());
|
|
116
125
|
}
|
|
117
126
|
|
|
118
|
-
function overwriteOn(vnode: VNode, event: string, listener: (model: SModelElement,
|
|
127
|
+
function overwriteOn(vnode: VNode, event: string, listener: (model: SModelElement, _event: Event) => void, element: SModelElement): void {
|
|
119
128
|
const val = getOn(vnode);
|
|
120
129
|
// ignore any previous val[event] registrations
|
|
121
130
|
(val as any)[event] = [listener, element];
|
|
122
131
|
}
|
|
123
132
|
|
|
124
|
-
function getOn(vnode: VNode):
|
|
133
|
+
function getOn(vnode: VNode): On {
|
|
125
134
|
const data = getData(vnode);
|
|
126
135
|
if (!data.on) {
|
|
127
136
|
data.on = {};
|
|
@@ -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
|
|
@@ -50,55 +50,58 @@ import { NavigationTarget, NavigationTargetResolver, SetResolvedNavigationTarget
|
|
|
50
50
|
export class NavigateAction implements Action {
|
|
51
51
|
static readonly KIND = 'navigate';
|
|
52
52
|
readonly kind = NavigateAction.KIND;
|
|
53
|
-
constructor(readonly targetTypeId: string, readonly args?: Args) {
|
|
53
|
+
constructor(readonly targetTypeId: string, readonly args?: Args) {}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
export function isNavigateAction(action: Action): action is NavigateAction {
|
|
57
|
-
return action !== undefined &&
|
|
58
|
-
&& (action as NavigateAction).targetTypeId !== undefined;
|
|
57
|
+
return action !== undefined && action.kind === NavigateAction.KIND && (action as NavigateAction).targetTypeId !== undefined;
|
|
59
58
|
}
|
|
60
59
|
|
|
61
60
|
/** Action that is usually sent to the server to request navigation targets for a navigation type. */
|
|
62
61
|
export class RequestNavigationTargetsAction implements RequestAction<SetNavigationTargetsAction> {
|
|
63
62
|
static readonly KIND = 'requestNavigationTargets';
|
|
64
63
|
kind = RequestNavigationTargetsAction.KIND;
|
|
65
|
-
constructor(readonly targetTypeId: string, readonly editorContext: EditorContext,
|
|
66
|
-
readonly requestId: string = generateRequestId()) { }
|
|
64
|
+
constructor(readonly targetTypeId: string, readonly editorContext: EditorContext, readonly requestId: string = generateRequestId()) {}
|
|
67
65
|
}
|
|
68
66
|
|
|
69
67
|
/** Action that is usually sent from the server to the client as a repsonse to a `RequestNavigationTargetsAction`. */
|
|
70
68
|
export class SetNavigationTargetsAction implements ResponseAction {
|
|
71
69
|
static readonly KIND = 'setNavigationTargets';
|
|
72
70
|
kind = SetNavigationTargetsAction.KIND;
|
|
73
|
-
constructor(readonly targets: NavigationTarget[], readonly responseId: string = '', readonly args?: Args) {
|
|
71
|
+
constructor(readonly targets: NavigationTarget[], readonly responseId: string = '', readonly args?: Args) {}
|
|
74
72
|
}
|
|
75
73
|
|
|
76
74
|
export function isSetNavigationTargetsAction(action: Action): action is SetNavigationTargetsAction {
|
|
77
|
-
return
|
|
78
|
-
|
|
75
|
+
return (
|
|
76
|
+
action !== undefined &&
|
|
77
|
+
action.kind === SetNavigationTargetsAction.KIND &&
|
|
78
|
+
(action as SetNavigationTargetsAction).targets !== undefined
|
|
79
|
+
);
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
/** Action that triggers the navigation to a particular navigation target, such as element IDs, queries, etc.. */
|
|
82
83
|
export class NavigateToTargetAction implements Action {
|
|
83
84
|
static readonly KIND = 'navigateToTarget';
|
|
84
85
|
readonly kind = NavigateToTargetAction.KIND;
|
|
85
|
-
constructor(readonly target: NavigationTarget) {
|
|
86
|
+
constructor(readonly target: NavigationTarget) {}
|
|
86
87
|
}
|
|
87
88
|
|
|
88
89
|
export function isNavigateToTargetAction(action: Action): action is NavigateToTargetAction {
|
|
89
|
-
return action !== undefined &&
|
|
90
|
-
&& (action as NavigateToTargetAction).target !== undefined;
|
|
90
|
+
return action !== undefined && action.kind === NavigateToTargetAction.KIND && (action as NavigateToTargetAction).target !== undefined;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
export class NavigateToExternalTargetAction implements Action {
|
|
94
94
|
static readonly KIND = 'navigateToExternalTarget';
|
|
95
95
|
readonly kind = NavigateToExternalTargetAction.KIND;
|
|
96
|
-
constructor(readonly target: NavigationTarget) {
|
|
96
|
+
constructor(readonly target: NavigationTarget) {}
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
export function isNavigateToExternalTargetAction(action: Action): action is NavigateToExternalTargetAction {
|
|
100
|
-
return
|
|
101
|
-
|
|
100
|
+
return (
|
|
101
|
+
action !== undefined &&
|
|
102
|
+
action.kind === NavigateToExternalTargetAction.KIND &&
|
|
103
|
+
(action as NavigateToExternalTargetAction).target !== undefined
|
|
104
|
+
);
|
|
102
105
|
}
|
|
103
106
|
|
|
104
107
|
/** Action to trigger the processing of additional navigation arguments.
|
|
@@ -112,12 +115,15 @@ export function isNavigateToExternalTargetAction(action: Action): action is Navi
|
|
|
112
115
|
export class ProcessNavigationArgumentsAction implements Action {
|
|
113
116
|
static readonly KIND = 'processNavigationArguments';
|
|
114
117
|
readonly kind = ProcessNavigationArgumentsAction.KIND;
|
|
115
|
-
constructor(readonly args: Args) {
|
|
118
|
+
constructor(readonly args: Args) {}
|
|
116
119
|
}
|
|
117
120
|
|
|
118
121
|
export function isProcessNavigationArgumentsAction(action: Action): action is ProcessNavigationArgumentsAction {
|
|
119
|
-
return
|
|
120
|
-
|
|
122
|
+
return (
|
|
123
|
+
action !== undefined &&
|
|
124
|
+
action.kind === ProcessNavigationArgumentsAction.KIND &&
|
|
125
|
+
(action as ProcessNavigationArgumentsAction).args !== undefined
|
|
126
|
+
);
|
|
121
127
|
}
|
|
122
128
|
|
|
123
129
|
/**
|
|
@@ -144,7 +150,6 @@ export function isProcessNavigationArgumentsAction(action: Action): action is Pr
|
|
|
144
150
|
*/
|
|
145
151
|
@injectable()
|
|
146
152
|
export class NavigationActionHandler implements IActionHandler {
|
|
147
|
-
|
|
148
153
|
readonly notificationTimeout = 5000;
|
|
149
154
|
|
|
150
155
|
@inject(TYPES.ILogger) protected logger: ILogger;
|
|
@@ -172,8 +177,11 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
172
177
|
const response = await this.dispatcher.request(new RequestNavigationTargetsAction(action.targetTypeId, context));
|
|
173
178
|
if (isSetNavigationTargetsAction(response) && response.targets && response.targets.length === 1) {
|
|
174
179
|
if (response.targets.length > 1) {
|
|
175
|
-
this.logger.warn(
|
|
176
|
-
|
|
180
|
+
this.logger.warn(
|
|
181
|
+
this,
|
|
182
|
+
'Processing of multiple targets is not supported yet. ' + 'Only the first is being processed.',
|
|
183
|
+
response.targets
|
|
184
|
+
);
|
|
177
185
|
}
|
|
178
186
|
return this.dispatcher.dispatch(new NavigateToTargetAction(response.targets[0]));
|
|
179
187
|
}
|
|
@@ -203,7 +211,9 @@ export class NavigationActionHandler implements IActionHandler {
|
|
|
203
211
|
return this.resolver.resolve(action.target);
|
|
204
212
|
}
|
|
205
213
|
|
|
206
|
-
protected containsElementIdsOrArguments(
|
|
214
|
+
protected containsElementIdsOrArguments(
|
|
215
|
+
target: SetResolvedNavigationTargetAction | undefined
|
|
216
|
+
): target is SetResolvedNavigationTargetAction {
|
|
207
217
|
return target !== undefined && (this.containsElementIds(target.elementIds) || this.containsArguments(target.args));
|
|
208
218
|
}
|
|
209
219
|
|
|
@@ -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
|
|
@@ -22,7 +22,6 @@ import { expect } from 'chai';
|
|
|
22
22
|
import { NavigationTarget } from './navigation-target-resolver';
|
|
23
23
|
|
|
24
24
|
describe('NavigationTarget', () => {
|
|
25
|
-
|
|
26
25
|
it('should be able to set and get element IDs', () => {
|
|
27
26
|
const navigationTarget: NavigationTarget = { uri: 'uri' };
|
|
28
27
|
NavigationTarget.setElementIds(navigationTarget, ['id1', 'id2']);
|
|
@@ -57,5 +56,4 @@ describe('NavigationTarget', () => {
|
|
|
57
56
|
NavigationTarget.setTextPosition(navigationTarget, { line: 1, character: 2 });
|
|
58
57
|
expect(NavigationTarget.hasArguments(navigationTarget)).to.be.true;
|
|
59
58
|
});
|
|
60
|
-
|
|
61
59
|
});
|
|
@@ -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
|
|
@@ -27,7 +27,6 @@ export interface NavigationTarget {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export namespace NavigationTarget {
|
|
30
|
-
|
|
31
30
|
export const ELEMENT_IDS = 'elementIds';
|
|
32
31
|
export const ELEMENT_IDS_SEPARATOR = '&';
|
|
33
32
|
export const TEXT_LINE = 'line';
|
|
@@ -56,7 +55,7 @@ export namespace NavigationTarget {
|
|
|
56
55
|
if (target.args === undefined) {
|
|
57
56
|
target.args = {};
|
|
58
57
|
}
|
|
59
|
-
return target.args[NavigationTarget.ELEMENT_IDS] = elementIds.join(NavigationTarget.ELEMENT_IDS_SEPARATOR);
|
|
58
|
+
return (target.args[NavigationTarget.ELEMENT_IDS] = elementIds.join(NavigationTarget.ELEMENT_IDS_SEPARATOR));
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
export function setTextPosition(target: NavigationTarget, position: TextPosition | undefined): void {
|
|
@@ -70,9 +69,11 @@ export namespace NavigationTarget {
|
|
|
70
69
|
}
|
|
71
70
|
|
|
72
71
|
export function getTextPosition(target: NavigationTarget): TextPosition | undefined {
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
if (
|
|
73
|
+
target.args === undefined ||
|
|
74
|
+
target.args[NavigationTarget.TEXT_LINE] === undefined ||
|
|
75
|
+
target.args[NavigationTarget.TEXT_COLUMN] === undefined
|
|
76
|
+
) {
|
|
76
77
|
return undefined;
|
|
77
78
|
}
|
|
78
79
|
return {
|
|
@@ -90,17 +91,17 @@ export interface TextPosition {
|
|
|
90
91
|
export class ResolveNavigationTargetAction implements RequestAction<SetResolvedNavigationTargetAction> {
|
|
91
92
|
static readonly KIND = 'resolveNavigationTarget';
|
|
92
93
|
kind = ResolveNavigationTargetAction.KIND;
|
|
93
|
-
constructor(readonly navigationTarget: NavigationTarget, public readonly requestId: string = generateRequestId()) {
|
|
94
|
+
constructor(readonly navigationTarget: NavigationTarget, public readonly requestId: string = generateRequestId()) {}
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
export class SetResolvedNavigationTargetAction implements ResponseAction {
|
|
97
98
|
static readonly KIND = 'setResolvedNavigationTarget';
|
|
98
99
|
kind = SetResolvedNavigationTargetAction.KIND;
|
|
99
|
-
constructor(readonly elementIds: string[] = [], readonly args?: Args, readonly responseId: string = '') {
|
|
100
|
+
constructor(readonly elementIds: string[] = [], readonly args?: Args, readonly responseId: string = '') {}
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
export function isSetResolvedNavigationTargets(action: Action): action is SetResolvedNavigationTargetAction {
|
|
103
|
-
return action !== undefined &&
|
|
104
|
+
return action !== undefined && action.kind === SetResolvedNavigationTargetAction.KIND;
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
/**
|
|
@@ -111,7 +112,6 @@ export function isSetResolvedNavigationTargets(action: Action): action is SetRes
|
|
|
111
112
|
*/
|
|
112
113
|
@injectable()
|
|
113
114
|
export class NavigationTargetResolver {
|
|
114
|
-
|
|
115
115
|
@inject(GLSP_TYPES.IEditorContextServiceProvider) protected editorContextService: EditorContextServiceProvider;
|
|
116
116
|
@inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
|
|
117
117
|
@inject(TYPES.ILogger) protected readonly logger: ILogger;
|
|
@@ -122,7 +122,10 @@ export class NavigationTargetResolver {
|
|
|
122
122
|
return this.resolveWithSourceUri(sourceUri, navigationTarget);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
async resolveWithSourceUri(
|
|
125
|
+
async resolveWithSourceUri(
|
|
126
|
+
sourceUri: string | undefined,
|
|
127
|
+
target: NavigationTarget
|
|
128
|
+
): Promise<SetResolvedNavigationTargetAction | undefined> {
|
|
126
129
|
const targetUri = decodeURIComponent(target.uri);
|
|
127
130
|
if (sourceUri && sourceUri !== targetUri && `file://${sourceUri}` !== targetUri) {
|
|
128
131
|
// different URI, so we can't resolve it locally
|
|
@@ -143,4 +146,3 @@ export class NavigationTargetResolver {
|
|
|
143
146
|
return this.dispatcher.request(new ResolveNavigationTargetAction(target));
|
|
144
147
|
}
|
|
145
148
|
}
|
|
146
|
-
|
|
@@ -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
|
|
@@ -21,7 +21,7 @@ export interface Ranked {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export function isRanked(arg: any): arg is Ranked {
|
|
24
|
-
return arg !== undefined && arg.rank !== undefined && typeof
|
|
24
|
+
return arg !== undefined && arg.rank !== undefined && typeof arg.rank === 'number';
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export function getRank(arg: any): number {
|
|
@@ -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
|
|
@@ -26,8 +26,7 @@ import {
|
|
|
26
26
|
|
|
27
27
|
export const reconnectFeature = Symbol('reconnectFeature');
|
|
28
28
|
|
|
29
|
-
export interface Reconnectable extends SModelExtension {
|
|
30
|
-
}
|
|
29
|
+
export interface Reconnectable extends SModelExtension {}
|
|
31
30
|
|
|
32
31
|
export function isReconnectable(element: SModelElement): element is SRoutableElement & Reconnectable {
|
|
33
32
|
return element instanceof SRoutableElement && element.hasFeature(reconnectFeature);
|
|
@@ -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
|
|
@@ -24,7 +24,6 @@ import { SaveModelKeyboardListener } from './save';
|
|
|
24
24
|
*/
|
|
25
25
|
const saveModule = new ContainerModule(bind => {
|
|
26
26
|
bind(TYPES.KeyListener).to(SaveModelKeyboardListener);
|
|
27
|
-
|
|
28
27
|
});
|
|
29
28
|
|
|
30
29
|
export default saveModule;
|
|
@@ -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
|
|
@@ -18,7 +18,7 @@ import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
|
18
18
|
|
|
19
19
|
export class SaveModelAction implements Action {
|
|
20
20
|
static readonly KIND = 'saveModel';
|
|
21
|
-
constructor(public readonly fileUri?: string, public readonly kind: string = SaveModelAction.KIND) {
|
|
21
|
+
constructor(public readonly fileUri?: string, public readonly kind: string = SaveModelAction.KIND) {}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export function isSaveModelAction(action: Action): action is SaveModelAction {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
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,16 +27,15 @@ export class SelectFeedbackAction {
|
|
|
27
27
|
constructor(
|
|
28
28
|
public readonly selectedElementsIDs: string[] = [],
|
|
29
29
|
public readonly deselectedElementsIDs: string[] = [],
|
|
30
|
-
public readonly kind: string = SelectFeedbackCommand.KIND
|
|
31
|
-
}
|
|
30
|
+
public readonly kind: string = SelectFeedbackCommand.KIND
|
|
31
|
+
) {}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
export class SelectAllFeedbackAction {
|
|
35
35
|
/**
|
|
36
36
|
* If `select` is true, all elements are selected, othewise they are deselected.
|
|
37
37
|
*/
|
|
38
|
-
constructor(public readonly select: boolean = true, public readonly kind: string = SelectFeedbackCommand.KIND) {
|
|
39
|
-
}
|
|
38
|
+
constructor(public readonly select: boolean = true, public readonly kind: string = SelectFeedbackCommand.KIND) {}
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
@injectable()
|
|
@@ -84,4 +83,3 @@ export class SelectAllFeedbackCommand extends Command {
|
|
|
84
83
|
return this.sprottySelectAllCommand.redo(context);
|
|
85
84
|
}
|
|
86
85
|
}
|
|
87
|
-
|
|
@@ -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
|
|
@@ -25,7 +25,7 @@ import { SelectionListener, SelectionService } from './selection-service';
|
|
|
25
25
|
|
|
26
26
|
@injectable()
|
|
27
27
|
class MockFeedbackActionDispatcher implements IFeedbackActionDispatcher {
|
|
28
|
-
protected feedbackEmitters: Map<IFeedbackEmitter, Action[]> = new Map;
|
|
28
|
+
protected feedbackEmitters: Map<IFeedbackEmitter, Action[]> = new Map();
|
|
29
29
|
|
|
30
30
|
registerFeedback(feedbackEmitter: IFeedbackEmitter, actions: Action[]): void {
|
|
31
31
|
this.feedbackEmitters.set(feedbackEmitter, actions);
|
|
@@ -43,7 +43,7 @@ class MockFeedbackActionDispatcher implements IFeedbackActionDispatcher {
|
|
|
43
43
|
|
|
44
44
|
getSingleFeedbackAction(): SelectFeedbackAction | undefined {
|
|
45
45
|
const actions = this.getRegisteredFeedback();
|
|
46
|
-
return actions.length === 1 ? actions[0] as SelectFeedbackAction : undefined;
|
|
46
|
+
return actions.length === 1 ? (actions[0] as SelectFeedbackAction) : undefined;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -363,7 +363,12 @@ describe('SelectionService', () => {
|
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
|
|
366
|
-
function assertListener(
|
|
366
|
+
function assertListener(
|
|
367
|
+
listener: MockSelectionListener,
|
|
368
|
+
expectedRoot: SModelRoot | undefined,
|
|
369
|
+
expectedSelection: string[],
|
|
370
|
+
expectedCalled: number
|
|
371
|
+
): void {
|
|
367
372
|
expect(listener.getRoot()).to.equal(expectedRoot);
|
|
368
373
|
expect(listener.getSelectedElements()).to.have.lengthOf(expectedSelection.length);
|
|
369
374
|
expect(listener.getSelectedElements()).to.have.ordered.members(expectedSelection);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
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
|
|
@@ -50,7 +50,7 @@ export class SelectionService implements SModelRootListener {
|
|
|
50
50
|
@inject(GLSP_TYPES.IFeedbackActionDispatcher) protected feedbackDispatcher: IFeedbackActionDispatcher;
|
|
51
51
|
@inject(TYPES.ILogger) protected logger: ILogger;
|
|
52
52
|
|
|
53
|
-
constructor(@multiInject(GLSP_TYPES.SelectionListener) @optional() protected selectionListeners: SelectionListener[] = []) {
|
|
53
|
+
constructor(@multiInject(GLSP_TYPES.SelectionListener) @optional() protected selectionListeners: SelectionListener[] = []) {}
|
|
54
54
|
|
|
55
55
|
register(selectionListener: SelectionListener): void {
|
|
56
56
|
distinctAdd(this.selectionListeners, selectionListener);
|
|
@@ -99,7 +99,9 @@ export class SelectionService implements SModelRootListener {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
// only send out changes if there actually are changes, i.e., the root or the selected elements changed
|
|
102
|
-
const selectionChanged =
|
|
102
|
+
const selectionChanged =
|
|
103
|
+
prevSelectedElementIDs.size !== this.selectedElementIDs.size ||
|
|
104
|
+
![...prevSelectedElementIDs].every(value => this.selectedElementIDs.has(value));
|
|
103
105
|
if (selectionChanged) {
|
|
104
106
|
// aggregate to feedback action handling all elements as only the last feedback is restored
|
|
105
107
|
this.dispatchFeedback([new SelectFeedbackAction([...this.selectedElementIDs], [...deselectedElementIDs])]);
|
|
@@ -156,7 +158,10 @@ export class SelectCommand extends Command {
|
|
|
156
158
|
protected selected: SModelElement[] = [];
|
|
157
159
|
protected deselected: SModelElement[] = [];
|
|
158
160
|
|
|
159
|
-
constructor(
|
|
161
|
+
constructor(
|
|
162
|
+
@inject(TYPES.Action) public action: SelectAction,
|
|
163
|
+
@inject(GLSP_TYPES.SelectionService) public selectionService: SelectionService
|
|
164
|
+
) {
|
|
160
165
|
super();
|
|
161
166
|
}
|
|
162
167
|
|
|
@@ -197,7 +202,10 @@ export class SelectAllCommand extends Command {
|
|
|
197
202
|
static readonly KIND = SprottySelectAllCommand.KIND;
|
|
198
203
|
protected previousSelection: Map<string, boolean> = new Map<string, boolean>();
|
|
199
204
|
|
|
200
|
-
constructor(
|
|
205
|
+
constructor(
|
|
206
|
+
@inject(TYPES.Action) public action: SelectAllAction,
|
|
207
|
+
@inject(GLSP_TYPES.SelectionService) public selectionService: SelectionService
|
|
208
|
+
) {
|
|
201
209
|
super();
|
|
202
210
|
}
|
|
203
211
|
|