@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
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { Action, generateRequestId, RequestAction, ResponseAction } from 'sprotty';
|
|
17
|
-
|
|
18
17
|
import { Args } from '../args';
|
|
19
18
|
|
|
20
19
|
export class RequestEditValidationAction implements RequestAction<SetEditValidationResultAction> {
|
|
@@ -24,7 +23,8 @@ export class RequestEditValidationAction implements RequestAction<SetEditValidat
|
|
|
24
23
|
public readonly modelElementId: string,
|
|
25
24
|
public readonly text: string,
|
|
26
25
|
public readonly requestId: string = generateRequestId(),
|
|
27
|
-
public readonly kind: string = RequestEditValidationAction.KIND
|
|
26
|
+
public readonly kind: string = RequestEditValidationAction.KIND
|
|
27
|
+
) {}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export class SetEditValidationResultAction implements ResponseAction {
|
|
@@ -33,12 +33,16 @@ export class SetEditValidationResultAction implements ResponseAction {
|
|
|
33
33
|
public readonly status: ValidationStatus,
|
|
34
34
|
public readonly responseId: string = '',
|
|
35
35
|
public readonly args?: Args,
|
|
36
|
-
public readonly kind: string = SetEditValidationResultAction.KIND
|
|
36
|
+
public readonly kind: string = SetEditValidationResultAction.KIND
|
|
37
|
+
) {}
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
export function isSetEditValidationResultAction(action: Action): action is SetEditValidationResultAction {
|
|
40
|
-
return
|
|
41
|
-
|
|
41
|
+
return (
|
|
42
|
+
action !== undefined &&
|
|
43
|
+
action.kind === SetEditValidationResultAction.KIND &&
|
|
44
|
+
(action as SetEditValidationResultAction).status !== undefined
|
|
45
|
+
);
|
|
42
46
|
}
|
|
43
47
|
|
|
44
48
|
export interface ValidationStatus {
|
|
@@ -76,20 +80,29 @@ export interface ResponseError {
|
|
|
76
80
|
}
|
|
77
81
|
|
|
78
82
|
export namespace ValidationStatus {
|
|
79
|
-
|
|
83
|
+
// eslint-disable-next-line no-shadow
|
|
80
84
|
export enum Severity {
|
|
85
|
+
FATAL,
|
|
86
|
+
ERROR,
|
|
87
|
+
WARNING,
|
|
88
|
+
INFO,
|
|
89
|
+
OK,
|
|
81
90
|
// eslint-disable-next-line no-shadow
|
|
82
|
-
|
|
91
|
+
NONE
|
|
83
92
|
}
|
|
84
93
|
|
|
85
94
|
export const NONE: ValidationStatus = {
|
|
86
|
-
severity: Severity.NONE,
|
|
95
|
+
severity: Severity.NONE,
|
|
96
|
+
message: '',
|
|
97
|
+
error: { code: -1, message: '', data: {} }
|
|
87
98
|
};
|
|
88
99
|
|
|
89
100
|
export function isOk(validationStatus: ValidationStatus): boolean {
|
|
90
|
-
return
|
|
91
|
-
|
|
92
|
-
|
|
101
|
+
return (
|
|
102
|
+
validationStatus.severity === Severity.OK ||
|
|
103
|
+
validationStatus.severity === Severity.INFO ||
|
|
104
|
+
validationStatus.severity === Severity.NONE
|
|
105
|
+
);
|
|
93
106
|
}
|
|
94
107
|
|
|
95
108
|
export function isWarning(validationStatus: ValidationStatus): boolean {
|
|
@@ -97,7 +110,6 @@ export namespace ValidationStatus {
|
|
|
97
110
|
}
|
|
98
111
|
|
|
99
112
|
export function isError(validationStatus: ValidationStatus): boolean {
|
|
100
|
-
return validationStatus.severity === Severity.ERROR
|
|
101
|
-
|| validationStatus.severity === Severity.FATAL;
|
|
113
|
+
return validationStatus.severity === Severity.ERROR || validationStatus.severity === Severity.FATAL;
|
|
102
114
|
}
|
|
103
115
|
}
|
|
@@ -18,7 +18,7 @@ import { Action } from 'sprotty';
|
|
|
18
18
|
export class FocusStateChangedAction implements Action {
|
|
19
19
|
static KIND = 'focusStateChanged';
|
|
20
20
|
readonly kind = FocusStateChangedAction.KIND;
|
|
21
|
-
constructor(public readonly hasFocus: boolean) {
|
|
21
|
+
constructor(public readonly hasFocus: boolean) {}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export function isFocusStateChangedAction(action: Action): action is FocusStateChangedAction {
|
package/src/base/args.ts
CHANGED
|
@@ -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
|
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { SModelElement } from 'sprotty';
|
|
17
17
|
|
|
18
|
-
export interface Args {
|
|
18
|
+
export interface Args {
|
|
19
|
+
[key: string]: string | number | boolean;
|
|
20
|
+
}
|
|
19
21
|
|
|
20
22
|
export interface SArgumentable {
|
|
21
23
|
args: Args;
|
|
@@ -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
|
|
@@ -72,12 +72,14 @@ export class AutoCompleteWidget {
|
|
|
72
72
|
public suggestionProvider: SuggestionProvider,
|
|
73
73
|
public suggestionSubmitHandler: SuggestionSubmitHandler,
|
|
74
74
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
75
|
-
protected notifyClose: () => void = () => {
|
|
75
|
+
protected notifyClose: () => void = () => {},
|
|
76
76
|
protected logger?: ILogger
|
|
77
|
-
) {
|
|
77
|
+
) {}
|
|
78
78
|
|
|
79
|
-
configureValidation(
|
|
80
|
-
|
|
79
|
+
configureValidation(
|
|
80
|
+
inputValidator: InputValidator,
|
|
81
|
+
validationDecorator: IValidationDecorator = IValidationDecorator.NO_DECORATION
|
|
82
|
+
): void {
|
|
81
83
|
this.inputValidator = inputValidator;
|
|
82
84
|
this.validationDecorator = validationDecorator;
|
|
83
85
|
}
|
|
@@ -154,25 +156,33 @@ export class AutoCompleteWidget {
|
|
|
154
156
|
showOnFocus: this.autoSuggestionSettings.showOnFocus,
|
|
155
157
|
debounceWaitMs: this.autoSuggestionSettings.debounceWaitMs,
|
|
156
158
|
minLength: -1,
|
|
157
|
-
fetch: (text: string, update: (items: LabeledAction[]) => void) =>
|
|
158
|
-
this.updateSuggestions(update, text, root),
|
|
159
|
+
fetch: (text: string, update: (items: LabeledAction[]) => void) => this.updateSuggestions(update, text, root),
|
|
159
160
|
onSelect: (item: LabeledAction) => this.onSelect(item),
|
|
160
|
-
render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined =>
|
|
161
|
-
this.renderSuggestions(item, currentValue),
|
|
161
|
+
render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined => this.renderSuggestions(item, currentValue),
|
|
162
162
|
customize: (input: HTMLInputElement, inputRect: ClientRect | DOMRect, container: HTMLDivElement, maxHeight: number) => {
|
|
163
163
|
this.customizeInputElement(input, inputRect, container, maxHeight);
|
|
164
164
|
}
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
protected customizeInputElement(
|
|
168
|
+
protected customizeInputElement(
|
|
169
|
+
input: HTMLInputElement,
|
|
170
|
+
inputRect: ClientRect | DOMRect,
|
|
171
|
+
container: HTMLDivElement,
|
|
172
|
+
maxHeight: number
|
|
173
|
+
): void {
|
|
169
174
|
// move container into our UIExtension container as this is already positioned correctly
|
|
170
175
|
if (this.containerElement) {
|
|
171
176
|
this.containerElement.appendChild(container);
|
|
172
177
|
}
|
|
173
178
|
}
|
|
174
179
|
|
|
175
|
-
protected updateSuggestions(
|
|
180
|
+
protected updateSuggestions(
|
|
181
|
+
update: (items: LabeledAction[]) => void,
|
|
182
|
+
text: string,
|
|
183
|
+
root: Readonly<SModelRoot>,
|
|
184
|
+
...contextElementIds: string[]
|
|
185
|
+
): void {
|
|
176
186
|
this.onLoading();
|
|
177
187
|
this.doUpdateSuggestions(text, root)
|
|
178
188
|
.then(actions => {
|
|
@@ -230,11 +240,13 @@ export class AutoCompleteWidget {
|
|
|
230
240
|
}
|
|
231
241
|
|
|
232
242
|
protected filterActions(filterText: string, actions: LabeledAction[]): LabeledAction[] {
|
|
233
|
-
return toArray(
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
243
|
+
return toArray(
|
|
244
|
+
actions.filter(action => {
|
|
245
|
+
const label = action.label.toLowerCase();
|
|
246
|
+
const searchWords = filterText.split(' ');
|
|
247
|
+
return searchWords.every(word => label.indexOf(word.toLowerCase()) !== -1);
|
|
248
|
+
})
|
|
249
|
+
);
|
|
238
250
|
}
|
|
239
251
|
|
|
240
252
|
protected onSelect(item: LabeledAction): void {
|
|
@@ -257,10 +269,10 @@ export class AutoCompleteWidget {
|
|
|
257
269
|
}
|
|
258
270
|
|
|
259
271
|
private isNoOrExactlyOneMatchingContextAction(): boolean | undefined {
|
|
260
|
-
return
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
272
|
+
return (
|
|
273
|
+
!this.isSuggestionAvailable() ||
|
|
274
|
+
(this.contextActions && this.contextActions.length === 1 && this.inputElement.value.endsWith(this.contextActions[0].label))
|
|
275
|
+
);
|
|
264
276
|
}
|
|
265
277
|
|
|
266
278
|
protected isSuggestionAvailable(): boolean | undefined {
|
|
@@ -269,7 +281,8 @@ export class AutoCompleteWidget {
|
|
|
269
281
|
|
|
270
282
|
validateInput(): void {
|
|
271
283
|
if (this.inputValidator) {
|
|
272
|
-
this.inputValidator
|
|
284
|
+
this.inputValidator
|
|
285
|
+
.validate(this.inputElement.value)
|
|
273
286
|
.then(result => this.validationDecorator.decorateValidationResult(result))
|
|
274
287
|
.catch(error => this.handleErrorDuringValidation(error));
|
|
275
288
|
}
|
|
@@ -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,14 +25,14 @@ export interface IValidationDecorator {
|
|
|
25
25
|
export namespace IValidationDecorator {
|
|
26
26
|
export const NO_DECORATION: IValidationDecorator = {
|
|
27
27
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
28
|
-
decorateValidationResult(_status: ValidationStatus) {
|
|
28
|
+
decorateValidationResult(_status: ValidationStatus) {},
|
|
29
29
|
isValidatedOk(): boolean {
|
|
30
30
|
return false;
|
|
31
31
|
},
|
|
32
32
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
33
|
-
invalidate() {
|
|
33
|
+
invalidate() {},
|
|
34
34
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
35
|
-
dispose() {
|
|
35
|
+
dispose() {}
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -47,7 +47,7 @@ export class ValidationDecorator implements IValidationDecorator {
|
|
|
47
47
|
|
|
48
48
|
protected decorationDiv?: HTMLDivElement;
|
|
49
49
|
|
|
50
|
-
constructor(protected containerElement: HTMLElement) {
|
|
50
|
+
constructor(protected containerElement: HTMLElement) {}
|
|
51
51
|
|
|
52
52
|
decorateValidationResult(status: ValidationStatus): void {
|
|
53
53
|
if (ValidationStatus.isError(status)) {
|
|
@@ -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
|
|
@@ -20,7 +20,6 @@ import { RedoOperation, UndoOperation } from '../features/undo-redo/model';
|
|
|
20
20
|
|
|
21
21
|
@injectable()
|
|
22
22
|
export class GLSPCommandStack extends CommandStack {
|
|
23
|
-
|
|
24
23
|
@inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
|
|
25
24
|
|
|
26
25
|
undo(): Promise<SModelRoot> {
|
|
@@ -33,4 +32,3 @@ export class GLSPCommandStack extends CommandStack {
|
|
|
33
32
|
return this.thenUpdate();
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
|
-
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { Container, ContainerModule } from 'inversify';
|
|
18
|
+
import { defaultModule } from 'sprotty';
|
|
19
|
+
import {
|
|
20
|
+
boundsModule,
|
|
21
|
+
buttonModule,
|
|
22
|
+
edgeIntersectionModule,
|
|
23
|
+
edgeLayoutModule,
|
|
24
|
+
expandModule,
|
|
25
|
+
exportModule,
|
|
26
|
+
fadeModule,
|
|
27
|
+
glspCommandPaletteModule,
|
|
28
|
+
glspContextMenuModule,
|
|
29
|
+
glspDecorationModule,
|
|
30
|
+
glspEditLabelModule,
|
|
31
|
+
glspHoverModule,
|
|
32
|
+
glspMouseToolModule,
|
|
33
|
+
glspSelectModule,
|
|
34
|
+
glspServerCopyPasteModule,
|
|
35
|
+
glspViewportModule,
|
|
36
|
+
labelEditUiModule,
|
|
37
|
+
layoutCommandsModule,
|
|
38
|
+
markerNavigatorModule,
|
|
39
|
+
modelHintsModule,
|
|
40
|
+
modelSourceModule,
|
|
41
|
+
modelSourceWatcherModule,
|
|
42
|
+
navigationModule,
|
|
43
|
+
openModule,
|
|
44
|
+
paletteModule,
|
|
45
|
+
routingModule,
|
|
46
|
+
toolFeedbackModule,
|
|
47
|
+
toolsModule,
|
|
48
|
+
validationModule,
|
|
49
|
+
zorderModule
|
|
50
|
+
} from '../';
|
|
51
|
+
import defaultGLSPModule from './di.config';
|
|
52
|
+
|
|
53
|
+
export const DEFAULT_MODULES = [
|
|
54
|
+
defaultModule,
|
|
55
|
+
defaultGLSPModule,
|
|
56
|
+
boundsModule,
|
|
57
|
+
buttonModule,
|
|
58
|
+
edgeIntersectionModule,
|
|
59
|
+
edgeLayoutModule,
|
|
60
|
+
expandModule,
|
|
61
|
+
exportModule,
|
|
62
|
+
fadeModule,
|
|
63
|
+
glspCommandPaletteModule,
|
|
64
|
+
glspContextMenuModule,
|
|
65
|
+
glspDecorationModule,
|
|
66
|
+
glspEditLabelModule,
|
|
67
|
+
glspHoverModule,
|
|
68
|
+
glspMouseToolModule,
|
|
69
|
+
glspSelectModule,
|
|
70
|
+
glspServerCopyPasteModule,
|
|
71
|
+
glspViewportModule,
|
|
72
|
+
labelEditUiModule,
|
|
73
|
+
layoutCommandsModule,
|
|
74
|
+
markerNavigatorModule,
|
|
75
|
+
modelHintsModule,
|
|
76
|
+
modelSourceModule,
|
|
77
|
+
modelSourceWatcherModule,
|
|
78
|
+
navigationModule,
|
|
79
|
+
openModule,
|
|
80
|
+
paletteModule,
|
|
81
|
+
routingModule,
|
|
82
|
+
toolFeedbackModule,
|
|
83
|
+
toolsModule,
|
|
84
|
+
validationModule,
|
|
85
|
+
zorderModule
|
|
86
|
+
];
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Creates a GLSP Client container with the GLSP default modules and the specified custom `modules`.
|
|
90
|
+
*
|
|
91
|
+
* You can still customize the default modules in two ways.
|
|
92
|
+
*
|
|
93
|
+
* First, you can unload default modules and load them again with your custom code.
|
|
94
|
+
*
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const container = createClientContainer(myModule1, myModule2);
|
|
97
|
+
* container.unload(modelSourceWatcherModule);
|
|
98
|
+
* container.load(myModelSourceWatcherModule);
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* Second, you can unbind or rebind implementations that are originally bound in one of the default modules.
|
|
102
|
+
*
|
|
103
|
+
* ```typescript
|
|
104
|
+
* rebind(NavigationTargetResolver).to(MyNavigationTargetResolver);
|
|
105
|
+
* ```
|
|
106
|
+
* @param modules Custom modules to be loaded in addition to the default modules.
|
|
107
|
+
* @returns The created container.
|
|
108
|
+
*/
|
|
109
|
+
export function createClientContainer(...modules: ContainerModule[]): Container {
|
|
110
|
+
const container = new Container();
|
|
111
|
+
container.load(...DEFAULT_MODULES, ...modules);
|
|
112
|
+
return container;
|
|
113
|
+
}
|
package/src/base/di.config.ts
CHANGED
|
@@ -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
|
|
@@ -13,15 +13,13 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { InitializeResult } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { Container, ContainerModule } from 'inversify';
|
|
18
|
+
import { ActionHandlerRegistry, configureActionHandler, configureCommand, ModelSource, SetModelCommand, TYPES } from 'sprotty';
|
|
16
19
|
import '../../css/glsp-sprotty.css';
|
|
17
|
-
|
|
18
|
-
import { ContainerModule } from 'inversify';
|
|
19
|
-
import { configureActionHandler, configureCommand, SetModelCommand, TYPES } from 'sprotty';
|
|
20
|
-
|
|
21
20
|
import { GLSPActionDispatcher } from './action-dispatcher';
|
|
22
21
|
import { SetEditModeAction } from './actions/edit-mode-action';
|
|
23
22
|
import { FocusStateChangedAction } from './actions/focus-change-action';
|
|
24
|
-
import { ConfigureServerHandlersAction, ConfigureServerHandlersActionHandler } from './actions/protocol-actions';
|
|
25
23
|
import { GLSPCommandStack } from './command-stack';
|
|
26
24
|
import { EditorContextService } from './editor-context';
|
|
27
25
|
import { FocusTracker } from './focus-tracker';
|
|
@@ -36,13 +34,16 @@ import { GLSPViewRegistry } from './view/view-registry';
|
|
|
36
34
|
const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
37
35
|
const context = { bind, _unbind, isBound, rebind };
|
|
38
36
|
bind(EditorContextService).toSelf().inSingletonScope();
|
|
39
|
-
bind(GLSP_TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
bind(GLSP_TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(
|
|
38
|
+
ctx => () =>
|
|
39
|
+
new Promise<EditorContextService>((resolve, reject) => {
|
|
40
|
+
if (ctx.container.isBound(EditorContextService)) {
|
|
41
|
+
resolve(ctx.container.get<EditorContextService>(EditorContextService));
|
|
42
|
+
} else {
|
|
43
|
+
reject();
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
);
|
|
46
47
|
|
|
47
48
|
configureActionHandler(context, SetEditModeAction.KIND, EditorContextService);
|
|
48
49
|
|
|
@@ -53,9 +54,6 @@ const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) =
|
|
|
53
54
|
configureCommand(context, FeedbackAwareUpdateModelCommand);
|
|
54
55
|
configureActionHandler(context, SetModelCommand.KIND, SetModelActionHandler);
|
|
55
56
|
|
|
56
|
-
// Dynamically register all server-side action/operation handlers
|
|
57
|
-
configureActionHandler(context, ConfigureServerHandlersAction.KIND, ConfigureServerHandlersActionHandler);
|
|
58
|
-
|
|
59
57
|
bind(TYPES.MouseListener).to(SelectionClearingMouseListener);
|
|
60
58
|
|
|
61
59
|
rebind(TYPES.ICommandStack).to(GLSPCommandStack);
|
|
@@ -73,3 +71,20 @@ const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) =
|
|
|
73
71
|
});
|
|
74
72
|
|
|
75
73
|
export default defaultGLSPModule;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Utility function to configure the {@link ModelSource}, i.e. the `DiagramServer`, as action handler for all server actions for the given
|
|
77
|
+
* diagramType.
|
|
78
|
+
* @param result A promise that resolves after all server actions have been registered.
|
|
79
|
+
* @param diagramType The diagram type.
|
|
80
|
+
* @param container The di container.
|
|
81
|
+
*/
|
|
82
|
+
export async function configureServerActions(result: InitializeResult, diagramType: string, container: Container): Promise<void> {
|
|
83
|
+
const modelSource = container.get<ModelSource>(TYPES.ModelSource);
|
|
84
|
+
const actionHandlerRegistry = container.get<ActionHandlerRegistry>(ActionHandlerRegistry);
|
|
85
|
+
const serverActions = result.serverActions[diagramType];
|
|
86
|
+
if (serverActions.length === 0) {
|
|
87
|
+
throw new Error(`No server-handled actions could be derived from the initialize result for diagramType: ${diagramType}!`);
|
|
88
|
+
}
|
|
89
|
+
serverActions.forEach(actionKind => actionHandlerRegistry.register(actionKind, modelSource));
|
|
90
|
+
}
|
|
@@ -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 { Action, MouseListener, SModelElement } from 'sprotty';
|
|
|
24
24
|
* of mouse up events.
|
|
25
25
|
*/
|
|
26
26
|
export class DragAwareMouseListener extends MouseListener {
|
|
27
|
-
|
|
28
27
|
private _isMouseDown = false;
|
|
29
28
|
private _isMouseDrag = false;
|
|
30
29
|
|
|
@@ -65,5 +64,4 @@ export class DragAwareMouseListener extends MouseListener {
|
|
|
65
64
|
get isMouseDown(): boolean {
|
|
66
65
|
return this._isMouseDown;
|
|
67
66
|
}
|
|
68
|
-
|
|
69
67
|
}
|
|
@@ -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
|
|
@@ -51,13 +51,12 @@ export interface EditModeListener {
|
|
|
51
51
|
|
|
52
52
|
@injectable()
|
|
53
53
|
export class EditorContextService implements IActionHandler {
|
|
54
|
-
|
|
55
54
|
@inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
|
|
56
55
|
@inject(MousePositionTracker) protected mousePositionTracker: MousePositionTracker;
|
|
57
56
|
@inject(TYPES.ModelSourceProvider) protected modelSource: () => Promise<ModelSource>;
|
|
58
57
|
protected _editMode: string;
|
|
59
58
|
|
|
60
|
-
constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) {
|
|
59
|
+
constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) {}
|
|
61
60
|
|
|
62
61
|
register(editModeListener: EditModeListener): void {
|
|
63
62
|
distinctAdd(this.editModeListeners, editModeListener);
|
|
@@ -121,4 +120,3 @@ export class EditorContextService implements IActionHandler {
|
|
|
121
120
|
}
|
|
122
121
|
|
|
123
122
|
export type EditorContextServiceProvider = () => Promise<EditorContextService>;
|
|
124
|
-
|
|
@@ -20,7 +20,6 @@ import { isFocusStateChangedAction } from './actions/focus-change-action';
|
|
|
20
20
|
|
|
21
21
|
@injectable()
|
|
22
22
|
export class FocusTracker implements IActionHandler {
|
|
23
|
-
|
|
24
23
|
protected inActiveCssClass = 'inactive';
|
|
25
24
|
protected _hasFocus = true;
|
|
26
25
|
|
|
@@ -46,5 +45,4 @@ export class FocusTracker implements IActionHandler {
|
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
|
-
|
|
50
48
|
}
|
|
@@ -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
|
|
@@ -29,13 +29,12 @@ import {
|
|
|
29
29
|
TYPES
|
|
30
30
|
} from 'sprotty';
|
|
31
31
|
import { UpdateModelAction, UpdateModelCommand } from 'sprotty/lib/features/update/update-model';
|
|
32
|
-
|
|
33
32
|
import { IFeedbackActionDispatcher } from '../../features/tool-feedback/feedback-action-dispatcher';
|
|
34
33
|
import { FeedbackCommand } from '../../features/tool-feedback/model';
|
|
35
34
|
import { GLSP_TYPES } from '../types';
|
|
36
35
|
|
|
37
36
|
/* ActionHandler that transforms a SetModelAction into an (feedback-aware) UpdateModelAction. This can be done because in sprotty
|
|
38
|
-
* UpdateModel behaves the same as SetModel if no model is present yet.*/
|
|
37
|
+
* UpdateModel behaves the same as SetModel if no model is present yet.*/
|
|
39
38
|
@injectable()
|
|
40
39
|
export class SetModelActionHandler implements IActionHandler {
|
|
41
40
|
handle(action: Action): Action | void {
|
|
@@ -46,8 +45,7 @@ export class SetModelActionHandler implements IActionHandler {
|
|
|
46
45
|
}
|
|
47
46
|
|
|
48
47
|
export function isSetModelAction(action: Action): action is SetModelAction {
|
|
49
|
-
return action !== undefined &&
|
|
50
|
-
&& (action as SetModelAction).newRoot !== undefined;
|
|
48
|
+
return action !== undefined && action.kind === SetModelCommand.KIND && (action as SetModelAction).newRoot !== undefined;
|
|
51
49
|
}
|
|
52
50
|
|
|
53
51
|
export interface SModelRootListener {
|
|
@@ -55,8 +53,8 @@ export interface SModelRootListener {
|
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
/**
|
|
58
|
-
* A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their
|
|
59
|
-
* to the `newRoot` before performing the update
|
|
56
|
+
* A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their
|
|
57
|
+
* feedback to the `newRoot` before performing the update
|
|
60
58
|
*/
|
|
61
59
|
@injectable()
|
|
62
60
|
export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
|
|
@@ -73,7 +71,7 @@ export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
|
|
|
73
71
|
|
|
74
72
|
@postConstruct()
|
|
75
73
|
protected initialize(): void {
|
|
76
|
-
this.actionHandlerRegistryProvider().then(registry => this.actionHandlerRegistry = registry);
|
|
74
|
+
this.actionHandlerRegistryProvider().then(registry => (this.actionHandlerRegistry = registry));
|
|
77
75
|
}
|
|
78
76
|
|
|
79
77
|
protected performUpdate(oldRoot: SModelRoot, newRoot: SModelRoot, context: CommandExecutionContext): CommandReturn {
|