@eclipse-glsp/client 0.9.0-rc-01 → 0.10.0-next.bb1c2fd.157
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/LICENSE +642 -277
- package/README.md +4 -2
- package/css/command-palette.css +9 -5
- package/css/decoration.css +3 -2
- package/css/glsp-sprotty.css +16 -7
- package/css/tool-palette.css +44 -27
- package/lib/base/action-dispatcher.d.ts +19 -3
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +47 -65
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +1 -1
- package/lib/base/actions/focus-change-action.d.ts.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 → argumentable.d.ts} +3 -5
- package/lib/base/argumentable.d.ts.map +1 -0
- package/lib/base/{args.js → argumentable.js} +1 -1
- package/lib/base/argumentable.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +3 -3
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +119 -153
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +44 -65
- 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 +100 -0
- package/lib/base/container-modules.js.map +1 -0
- package/lib/base/di.config.d.ts +12 -2
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +43 -27
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js +23 -62
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/{editor-context.d.ts → editor-context-service.d.ts} +18 -22
- package/lib/base/editor-context-service.d.ts.map +1 -0
- package/lib/base/editor-context-service.js +109 -0
- package/lib/base/editor-context-service.js.map +1 -0
- package/lib/base/focus-tracker.d.ts +17 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +19 -39
- 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 +19 -5
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +69 -94
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +16 -1
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +34 -54
- package/lib/base/model-initialization-constraint.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.d.ts +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +58 -140
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/types.d.ts +3 -1
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +4 -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 +17 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +28 -42
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +17 -1
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +13 -39
- 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 +18 -2
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +28 -33
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +20 -68
- 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 +16 -0
- 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 +61 -71
- 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 +18 -2
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +30 -31
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
- 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 +19 -2
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +70 -70
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +11 -11
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +17 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +12 -46
- 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 +16 -1
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +40 -62
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.d.ts +0 -15
- package/lib/features/hints/di.config.d.ts.map +1 -1
- package/lib/features/hints/di.config.js +9 -9
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/model.d.ts +3 -2
- package/lib/features/hints/model.d.ts.map +1 -1
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +17 -45
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +81 -140
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +1 -1
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +11 -9
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +28 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +56 -76
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +1 -1
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +11 -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 +19 -3
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +189 -265
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts +0 -15
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +95 -89
- 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 +188 -0
- package/lib/features/layout/vbox-layout.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.d.ts +0 -15
- package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +7 -7
- 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 +17 -2
- 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 -46
- package/lib/features/model-source-watcher/model-source-changed-action-handler.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 +70 -215
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.d.ts +0 -15
- package/lib/features/navigation/di.config.d.ts.map +1 -1
- package/lib/features/navigation/di.config.js +11 -10
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +19 -38
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +118 -254
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +46 -188
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +0 -15
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +26 -26
- 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 +6 -6
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -10
- package/lib/features/save/save-keylistener.d.ts.map +1 -0
- package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
- package/lib/features/save/save-keylistener.js.map +1 -0
- 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 +17 -1
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +134 -236
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +96 -139
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +19 -2
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +102 -142
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +18 -2
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +95 -118
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +20 -2
- 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 +18 -2
- 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 -208
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +17 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +41 -84
- 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 +21 -5
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +29 -51
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +1 -1
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +6 -6
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/palette-item.d.ts +2 -3
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
- package/lib/features/tool-palette/palette-item.js +6 -6
- package/lib/features/tool-palette/palette-item.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +19 -3
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +199 -269
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +18 -2
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +37 -59
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +20 -3
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +192 -241
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +17 -1
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +71 -104
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +0 -15
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +19 -19
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +17 -2
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +62 -87
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +17 -1
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +112 -183
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +42 -0
- package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.js +128 -0
- package/lib/features/tools/marquee-behavior.js.map +1 -0
- package/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
- package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.spec.js +165 -0
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +24 -13
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +86 -195
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +17 -1
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +32 -73
- 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 +17 -2
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +60 -90
- 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/validation/di.config.js +12 -12
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +2 -2
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +17 -55
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +17 -1
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +131 -164
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts +0 -15
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +83 -77
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +18 -29
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +147 -300
- 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 +18 -2
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +9 -15
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +29 -34
- 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 +3 -5
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +60 -121
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/protocol-reexport.d.ts +45 -0
- package/lib/protocol-reexport.d.ts.map +1 -0
- package/lib/protocol-reexport.js +75 -0
- package/lib/protocol-reexport.js.map +1 -0
- 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 +32 -97
- package/lib/utils/argument-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 +3 -2
- 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.d.ts +0 -38
- package/lib/utils/marker.d.ts.map +1 -1
- package/lib/utils/marker.js +14 -61
- package/lib/utils/marker.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +4 -4
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +16 -65
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -2
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +15 -30
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts +0 -15
- package/lib/views/base-view-module.d.ts.map +1 -1
- package/lib/views/base-view-module.js +28 -28
- 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/glsp-edge-view.d.ts +18 -3
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +32 -77
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/index.d.ts +1 -1
- package/lib/views/index.d.ts.map +1 -1
- package/lib/views/index.js +1 -1
- package/lib/views/index.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts +2 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +36 -50
- 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 +2 -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 +12 -19
- package/src/base/action-dispatcher.ts +12 -12
- package/src/base/actions/focus-change-action.ts +2 -2
- package/src/base/{args.ts → argumentable.ts} +2 -3
- package/src/base/auto-complete/auto-complete-actions.ts +1 -1
- package/src/base/auto-complete/auto-complete-widget.ts +37 -25
- package/src/base/auto-complete/validation-decorator.ts +12 -11
- package/src/base/command-stack.ts +2 -5
- package/src/base/container-modules.ts +112 -0
- package/src/base/di.config.ts +33 -18
- package/src/base/drag-aware-mouse-listener.ts +3 -4
- package/src/base/{editor-context.ts → editor-context-service.ts} +4 -31
- package/src/base/focus-tracker.ts +2 -4
- package/src/base/model/update-model-command.ts +8 -16
- package/src/base/model-initialization-constraint.ts +3 -2
- package/src/base/tool-manager/glsp-tool-manager.ts +3 -5
- package/src/base/types.ts +4 -2
- package/src/features/change-bounds/model.ts +15 -5
- package/src/features/change-bounds/movement-restrictor.ts +17 -9
- package/src/features/change-bounds/snap.ts +3 -2
- package/src/features/command-palette/server-command-palette-provider.ts +11 -9
- package/src/features/context-menu/delete-element-context-menu.ts +3 -4
- package/src/features/context-menu/di.config.ts +11 -9
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +40 -10
- package/src/features/context-menu/server-context-menu-provider.ts +10 -7
- package/src/features/copy-paste/copy-paste-context-menu.ts +59 -30
- package/src/features/copy-paste/copy-paste-handler.ts +18 -10
- package/src/features/copy-paste/di.config.ts +2 -3
- package/src/features/decoration/decoration-placer.ts +3 -13
- package/src/features/edit-label/edit-label-validator.ts +11 -12
- package/src/features/hints/di.config.ts +2 -3
- package/src/features/hints/model.ts +4 -3
- package/src/features/hints/type-hints.ts +23 -90
- package/src/features/hover/di.config.ts +4 -3
- package/src/features/hover/hover.ts +26 -7
- package/src/features/layout/di.config.ts +8 -4
- package/src/features/layout/freeform-layout.ts +133 -0
- package/src/features/layout/layout-commands.spec.ts +82 -64
- package/src/features/layout/layout-commands.ts +43 -34
- package/src/features/layout/vbox-layout.ts +256 -0
- package/src/features/model-source-watcher/di.config.ts +3 -4
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +11 -7
- package/src/features/mouse-tool/mouse-tool.ts +33 -23
- package/src/features/navigation/di.config.ts +4 -10
- package/src/features/navigation/navigation-action-handler.ts +33 -69
- package/src/features/navigation/navigation-target-resolver.spec.ts +3 -7
- package/src/features/navigation/navigation-target-resolver.ts +13 -91
- package/src/features/rank/model.ts +2 -2
- package/src/features/reconnect/model.ts +2 -3
- package/src/features/save/di.config.ts +2 -3
- package/src/features/save/{save.ts → save-keylistener.ts} +3 -11
- package/src/features/select/select-feedback-action.ts +4 -6
- package/src/features/select/selection-service.spec.ts +11 -6
- package/src/features/select/selection-service.ts +14 -10
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +26 -20
- package/src/features/tool-feedback/creation-tool-feedback.ts +49 -14
- package/src/features/tool-feedback/css-feedback.ts +9 -6
- package/src/features/tool-feedback/di.config.ts +2 -5
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +19 -18
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +8 -9
- package/src/features/tool-feedback/marquee-tool-feedback.ts +4 -5
- package/src/features/tool-feedback/model.ts +1 -2
- package/src/features/tool-feedback/view.tsx +17 -11
- package/src/features/tool-palette/di.config.ts +2 -4
- package/src/features/tool-palette/palette-item.ts +4 -6
- package/src/features/tool-palette/tool-palette.ts +44 -40
- package/src/features/tools/base-glsp-tool.ts +4 -4
- package/src/features/tools/change-bounds-tool.ts +64 -34
- package/src/features/tools/delete-tool.ts +9 -6
- package/src/features/tools/di.config.ts +2 -3
- package/src/features/tools/edge-creation-tool.ts +5 -10
- package/src/features/tools/edge-edit-tool.ts +10 -20
- package/src/features/tools/marquee-behavior.spec.ts +175 -0
- package/src/features/tools/marquee-behavior.ts +158 -0
- package/src/features/tools/marquee-mouse-tool.ts +43 -134
- package/src/features/tools/marquee-tool.ts +2 -3
- package/src/features/tools/node-creation-tool.ts +4 -11
- package/src/features/tools/view.tsx +17 -12
- package/src/features/validation/issue-marker.ts +2 -3
- package/src/features/validation/marker-navigator.spec.ts +18 -14
- package/src/features/validation/marker-navigator.ts +24 -12
- package/src/features/validation/validate.ts +7 -40
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +3 -12
- package/src/index.ts +30 -19
- package/src/model-source/glsp-diagram-server.ts +12 -28
- package/src/protocol-reexport.ts +64 -0
- package/src/utils/argument-utils.ts +14 -11
- package/src/utils/layout-utils.ts +13 -7
- package/src/utils/marker.ts +2 -26
- package/src/utils/smodel-util.ts +15 -11
- package/src/utils/viewpoint-util.ts +4 -4
- package/src/views/base-view-module.ts +1 -2
- package/src/{base/actions/edit-mode-action.ts → views/compartments.tsx} +18 -14
- package/src/views/glsp-edge-view.tsx +21 -14
- package/src/views/index.ts +1 -1
- package/src/views/issue-marker-view.tsx +28 -19
- package/src/views/rounded-corner-view.tsx +38 -25
- package/src/views/rounded-corner.ts +5 -6
- package/lib/base/actions/context-actions.d.ts +0 -36
- package/lib/base/actions/context-actions.d.ts.map +0 -1
- package/lib/base/actions/context-actions.js +0 -51
- package/lib/base/actions/context-actions.js.map +0 -1
- package/lib/base/actions/edit-mode-action.d.ts +0 -13
- package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
- package/lib/base/actions/edit-mode-action.js +0 -56
- package/lib/base/actions/edit-mode-action.js.map +0 -1
- package/lib/base/actions/edit-validation-actions.d.ts +0 -78
- package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
- package/lib/base/actions/edit-validation-actions.js +0 -83
- package/lib/base/actions/edit-validation-actions.js.map +0 -1
- 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/lib/base/args.d.ts.map +0 -1
- package/lib/base/args.js.map +0 -1
- package/lib/base/editor-context.d.ts.map +0 -1
- package/lib/base/editor-context.js +0 -174
- package/lib/base/editor-context.js.map +0 -1
- package/lib/base/operations/operation.d.ts +0 -135
- package/lib/base/operations/operation.d.ts.map +0 -1
- package/lib/base/operations/operation.js +0 -231
- package/lib/base/operations/operation.js.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.js +0 -68
- package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
- package/lib/features/hints/request-type-hints-action.d.ts +0 -32
- package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
- package/lib/features/hints/request-type-hints-action.js +0 -30
- package/lib/features/hints/request-type-hints-action.js.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts +0 -24
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
- package/lib/features/save/save.d.ts.map +0 -1
- package/lib/features/save/save.js +0 -62
- package/lib/features/save/save.js.map +0 -1
- package/lib/features/undo-redo/model.d.ts.map +0 -1
- package/lib/features/undo-redo/model.js +0 -22
- package/lib/features/undo-redo/model.js.map +0 -1
- package/lib/model-source/glsp-server-status.d.ts +0 -30
- package/lib/model-source/glsp-server-status.d.ts.map +0 -1
- package/lib/model-source/glsp-server-status.js +0 -61
- package/lib/model-source/glsp-server-status.js.map +0 -1
- package/lib/utils/array-utils.d.ts +0 -28
- package/lib/utils/array-utils.d.ts.map +0 -1
- package/lib/utils/array-utils.js +0 -61
- package/lib/utils/array-utils.js.map +0 -1
- package/lib/views/default-types.d.ts +0 -37
- package/lib/views/default-types.d.ts.map +0 -1
- package/lib/views/default-types.js +0 -47
- package/lib/views/default-types.js.map +0 -1
- package/src/base/actions/context-actions.ts +0 -43
- package/src/base/actions/edit-validation-actions.ts +0 -103
- package/src/base/actions/protocol-actions.ts +0 -82
- package/src/base/operations/operation.ts +0 -178
- package/src/features/copy-paste/copy-paste-actions.ts +0 -60
- package/src/features/hints/request-type-hints-action.ts +0 -36
- package/src/features/model-source-watcher/model-source-changed-action.ts +0 -26
- package/src/model-source/glsp-server-status.ts +0 -38
- package/src/utils/array-utils.ts +0 -55
- package/src/views/default-types.ts +0 -48
|
@@ -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
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { codiconCSSString } from 'sprotty/lib/utils/codicon';
|
|
17
|
+
import { ValidationStatus } from '@eclipse-glsp/protocol';
|
|
17
18
|
|
|
18
19
|
export interface IValidationDecorator {
|
|
19
20
|
decorateValidationResult(status: ValidationStatus): void;
|
|
@@ -25,29 +26,29 @@ export interface IValidationDecorator {
|
|
|
25
26
|
export namespace IValidationDecorator {
|
|
26
27
|
export const NO_DECORATION: IValidationDecorator = {
|
|
27
28
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
28
|
-
decorateValidationResult(_status: ValidationStatus) {
|
|
29
|
+
decorateValidationResult(_status: ValidationStatus) {},
|
|
29
30
|
isValidatedOk(): boolean {
|
|
30
31
|
return false;
|
|
31
32
|
},
|
|
32
33
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
33
|
-
invalidate() {
|
|
34
|
+
invalidate() {},
|
|
34
35
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
35
|
-
dispose() {
|
|
36
|
+
dispose() {}
|
|
36
37
|
};
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
export class ValidationDecorator implements IValidationDecorator {
|
|
40
41
|
warningClasses = ['warning'];
|
|
41
|
-
warningIconClasses =
|
|
42
|
+
warningIconClasses = codiconCSSString('warning');
|
|
42
43
|
errorClasses = ['error'];
|
|
43
|
-
errorIconClasses =
|
|
44
|
+
errorIconClasses = codiconCSSString('error');
|
|
44
45
|
|
|
45
46
|
isValidated = false;
|
|
46
47
|
hasValidationError = false;
|
|
47
48
|
|
|
48
49
|
protected decorationDiv?: HTMLDivElement;
|
|
49
50
|
|
|
50
|
-
constructor(protected containerElement: HTMLElement) {
|
|
51
|
+
constructor(protected containerElement: HTMLElement) {}
|
|
51
52
|
|
|
52
53
|
decorateValidationResult(status: ValidationStatus): void {
|
|
53
54
|
if (ValidationStatus.isError(status)) {
|
|
@@ -67,7 +68,7 @@ export class ValidationDecorator implements IValidationDecorator {
|
|
|
67
68
|
this.switchCssClasses(this.containerElement, this.errorClasses);
|
|
68
69
|
const div = this.createDecorationDiv();
|
|
69
70
|
this.switchCssClasses(div, this.errorClasses);
|
|
70
|
-
div.innerHTML = `<span class="${this.errorIconClasses
|
|
71
|
+
div.innerHTML = `<span class="${this.errorIconClasses}"></span> ${message}`;
|
|
71
72
|
this.adjustPosition();
|
|
72
73
|
}
|
|
73
74
|
|
|
@@ -75,7 +76,7 @@ export class ValidationDecorator implements IValidationDecorator {
|
|
|
75
76
|
this.switchCssClasses(this.containerElement, this.warningClasses);
|
|
76
77
|
const div = this.createDecorationDiv();
|
|
77
78
|
this.switchCssClasses(div, this.warningClasses);
|
|
78
|
-
div.innerHTML = `<span class="${this.warningIconClasses
|
|
79
|
+
div.innerHTML = `<span class="${this.warningIconClasses}"></span> ${message}`;
|
|
79
80
|
this.adjustPosition();
|
|
80
81
|
}
|
|
81
82
|
|
|
@@ -96,7 +97,7 @@ export class ValidationDecorator implements IValidationDecorator {
|
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
protected decorationContainerWidth(): number {
|
|
99
|
-
return this.containerElement.clientWidth -
|
|
100
|
+
return this.containerElement.clientWidth - 5;
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
protected adjustPosition(): void {
|
|
@@ -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,14 +13,12 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { RedoOperation, UndoOperation } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
18
|
import { CommandStack, IActionDispatcher, SModelRoot, TYPES } from 'sprotty';
|
|
18
19
|
|
|
19
|
-
import { RedoOperation, UndoOperation } from '../features/undo-redo/model';
|
|
20
|
-
|
|
21
20
|
@injectable()
|
|
22
21
|
export class GLSPCommandStack extends CommandStack {
|
|
23
|
-
|
|
24
22
|
@inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
|
|
25
23
|
|
|
26
24
|
undo(): Promise<SModelRoot> {
|
|
@@ -33,4 +31,3 @@ export class GLSPCommandStack extends CommandStack {
|
|
|
33
31
|
return this.thenUpdate();
|
|
34
32
|
}
|
|
35
33
|
}
|
|
36
|
-
|
|
@@ -0,0 +1,112 @@
|
|
|
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 {
|
|
19
|
+
boundsModule,
|
|
20
|
+
buttonModule,
|
|
21
|
+
defaultModule,
|
|
22
|
+
edgeIntersectionModule,
|
|
23
|
+
edgeLayoutModule,
|
|
24
|
+
expandModule,
|
|
25
|
+
exportModule,
|
|
26
|
+
fadeModule,
|
|
27
|
+
labelEditUiModule,
|
|
28
|
+
modelSourceModule,
|
|
29
|
+
openModule,
|
|
30
|
+
routingModule,
|
|
31
|
+
zorderModule
|
|
32
|
+
} from 'sprotty';
|
|
33
|
+
import glspCommandPaletteModule from '../features/command-palette/di.config';
|
|
34
|
+
import glspContextMenuModule from '../features/context-menu/di.config';
|
|
35
|
+
import { glspServerCopyPasteModule } from '../features/copy-paste/di.config';
|
|
36
|
+
import glspDecorationModule from '../features/decoration/di.config';
|
|
37
|
+
import glspEditLabelModule from '../features/edit-label/di.config';
|
|
38
|
+
import modelHintsModule from '../features/hints/di.config';
|
|
39
|
+
import glspHoverModule from '../features/hover/di.config';
|
|
40
|
+
import layoutCommandsModule from '../features/layout/di.config';
|
|
41
|
+
import modelSourceWatcherModule from '../features/model-source-watcher/di.config';
|
|
42
|
+
import glspMouseToolModule from '../features/mouse-tool/di.config';
|
|
43
|
+
import { navigationModule } from '../features/navigation/di.config';
|
|
44
|
+
import glspSelectModule from '../features/select/di.config';
|
|
45
|
+
import toolFeedbackModule from '../features/tool-feedback/di.config';
|
|
46
|
+
import toolPaletteModule from '../features/tool-palette/di.config';
|
|
47
|
+
import toolsModule from '../features/tools/di.config';
|
|
48
|
+
import { markerNavigatorModule, validationModule } from '../features/validation/di.config';
|
|
49
|
+
import glspViewportModule from '../features/viewport/di.config';
|
|
50
|
+
import defaultGLSPModule from './di.config';
|
|
51
|
+
|
|
52
|
+
export const DEFAULT_MODULES = [
|
|
53
|
+
defaultModule,
|
|
54
|
+
defaultGLSPModule,
|
|
55
|
+
boundsModule,
|
|
56
|
+
buttonModule,
|
|
57
|
+
edgeIntersectionModule,
|
|
58
|
+
edgeLayoutModule,
|
|
59
|
+
expandModule,
|
|
60
|
+
exportModule,
|
|
61
|
+
fadeModule,
|
|
62
|
+
glspCommandPaletteModule,
|
|
63
|
+
glspContextMenuModule,
|
|
64
|
+
glspDecorationModule,
|
|
65
|
+
glspEditLabelModule,
|
|
66
|
+
glspHoverModule,
|
|
67
|
+
glspMouseToolModule,
|
|
68
|
+
glspSelectModule,
|
|
69
|
+
glspServerCopyPasteModule,
|
|
70
|
+
glspViewportModule,
|
|
71
|
+
labelEditUiModule,
|
|
72
|
+
layoutCommandsModule,
|
|
73
|
+
markerNavigatorModule,
|
|
74
|
+
modelHintsModule,
|
|
75
|
+
modelSourceModule,
|
|
76
|
+
modelSourceWatcherModule,
|
|
77
|
+
navigationModule,
|
|
78
|
+
openModule,
|
|
79
|
+
toolPaletteModule,
|
|
80
|
+
routingModule,
|
|
81
|
+
toolFeedbackModule,
|
|
82
|
+
toolsModule,
|
|
83
|
+
validationModule,
|
|
84
|
+
zorderModule
|
|
85
|
+
];
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Creates a GLSP Client container with the GLSP default modules and the specified custom `modules`.
|
|
89
|
+
*
|
|
90
|
+
* You can still customize the default modules in two ways.
|
|
91
|
+
*
|
|
92
|
+
* First, you can unload default modules and load them again with your custom code.
|
|
93
|
+
*
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const container = createClientContainer(myModule1, myModule2);
|
|
96
|
+
* container.unload(modelSourceWatcherModule);
|
|
97
|
+
* container.load(myModelSourceWatcherModule);
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* Second, you can unbind or rebind implementations that are originally bound in one of the default modules.
|
|
101
|
+
*
|
|
102
|
+
* ```typescript
|
|
103
|
+
* rebind(NavigationTargetResolver).to(MyNavigationTargetResolver);
|
|
104
|
+
* ```
|
|
105
|
+
* @param modules Custom modules to be loaded in addition to the default modules.
|
|
106
|
+
* @returns The created container.
|
|
107
|
+
*/
|
|
108
|
+
export function createClientContainer(...modules: ContainerModule[]): Container {
|
|
109
|
+
const container = new Container();
|
|
110
|
+
container.load(...DEFAULT_MODULES, ...modules);
|
|
111
|
+
return container;
|
|
112
|
+
}
|
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,17 +13,15 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { InitializeResult, SetEditModeAction } from '@eclipse-glsp/protocol';
|
|
17
|
+
import '@vscode/codicons/dist/codicon.css';
|
|
18
|
+
import { Container, ContainerModule } from 'inversify';
|
|
19
|
+
import { ActionHandlerRegistry, configureActionHandler, configureCommand, ModelSource, SetModelCommand, TYPES } from 'sprotty';
|
|
16
20
|
import '../../css/glsp-sprotty.css';
|
|
17
|
-
|
|
18
|
-
import { ContainerModule } from 'inversify';
|
|
19
|
-
import { configureActionHandler, configureCommand, SetModelCommand, TYPES } from 'sprotty';
|
|
20
|
-
|
|
21
21
|
import { GLSPActionDispatcher } from './action-dispatcher';
|
|
22
|
-
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
|
-
import { EditorContextService } from './editor-context';
|
|
24
|
+
import { EditorContextService } from './editor-context-service';
|
|
27
25
|
import { FocusTracker } from './focus-tracker';
|
|
28
26
|
import { DefaultModelInitializationConstraint, ModelInitializationConstraint } from './model-initialization-constraint';
|
|
29
27
|
import { GLSPModelRegistry } from './model/model-registry';
|
|
@@ -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
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action
|
|
16
|
+
import { Action } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { MouseListener, SModelElement } from 'sprotty';
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* A mouse listener that is aware of prior mouse dragging.
|
|
@@ -24,7 +25,6 @@ import { Action, MouseListener, SModelElement } from 'sprotty';
|
|
|
24
25
|
* of mouse up events.
|
|
25
26
|
*/
|
|
26
27
|
export class DragAwareMouseListener extends MouseListener {
|
|
27
|
-
|
|
28
28
|
private _isMouseDown = false;
|
|
29
29
|
private _isMouseDrag = false;
|
|
30
30
|
|
|
@@ -65,5 +65,4 @@ export class DragAwareMouseListener extends MouseListener {
|
|
|
65
65
|
get isMouseDown(): boolean {
|
|
66
66
|
return this._isMouseDown;
|
|
67
67
|
}
|
|
68
|
-
|
|
69
68
|
}
|
|
@@ -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
|
|
@@ -13,51 +13,25 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, Args, distinctAdd, EditMode, EditorContext, isSetEditModeAction, remove } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable, multiInject, optional } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
18
|
+
import { IActionHandler, ModelSource, MousePositionTracker, SModelElement, SModelRoot, TYPES } from 'sprotty';
|
|
19
19
|
import { SelectionService } from '../features/select/selection-service';
|
|
20
|
-
import { distinctAdd, remove } from '../utils/array-utils';
|
|
21
|
-
import { EditMode, isSetEditModeAction } from './actions/edit-mode-action';
|
|
22
|
-
import { Args } from './args';
|
|
23
20
|
import { isSourceUriAware } from './source-uri-aware';
|
|
24
21
|
import { GLSP_TYPES } from './types';
|
|
25
22
|
|
|
26
|
-
/**
|
|
27
|
-
* The `EditorContext` may be used to represent the current state of the editor for particular actions.
|
|
28
|
-
* It encompasses the last recorded mouse position, the list of selected elements, and may contain
|
|
29
|
-
* custom arguments to encode additional state information.
|
|
30
|
-
*/
|
|
31
|
-
export interface EditorContext {
|
|
32
|
-
/**
|
|
33
|
-
* The list of selected element identifiers.
|
|
34
|
-
*/
|
|
35
|
-
readonly selectedElementIds: string[];
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* The last recorded mouse position.
|
|
39
|
-
*/
|
|
40
|
-
readonly lastMousePosition?: Point;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Custom arguments.
|
|
44
|
-
*/
|
|
45
|
-
readonly args?: Args;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
23
|
export interface EditModeListener {
|
|
49
24
|
editModeChanged(newValue: string, oldvalue: string): void;
|
|
50
25
|
}
|
|
51
26
|
|
|
52
27
|
@injectable()
|
|
53
28
|
export class EditorContextService implements IActionHandler {
|
|
54
|
-
|
|
55
29
|
@inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
|
|
56
30
|
@inject(MousePositionTracker) protected mousePositionTracker: MousePositionTracker;
|
|
57
31
|
@inject(TYPES.ModelSourceProvider) protected modelSource: () => Promise<ModelSource>;
|
|
58
32
|
protected _editMode: string;
|
|
59
33
|
|
|
60
|
-
constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) {
|
|
34
|
+
constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) {}
|
|
61
35
|
|
|
62
36
|
register(editModeListener: EditModeListener): void {
|
|
63
37
|
distinctAdd(this.editModeListeners, editModeListener);
|
|
@@ -121,4 +95,3 @@ export class EditorContextService implements IActionHandler {
|
|
|
121
95
|
}
|
|
122
96
|
|
|
123
97
|
export type EditorContextServiceProvider = () => Promise<EditorContextService>;
|
|
124
|
-
|
|
@@ -13,14 +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 { Action } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
-
|
|
18
|
+
import { IActionHandler, ICommand, TYPES, ViewerOptions } from 'sprotty';
|
|
19
19
|
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
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, isSetModelAction, UpdateModelAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
17
18
|
import {
|
|
18
|
-
Action,
|
|
19
19
|
ActionHandlerRegistry,
|
|
20
20
|
Command,
|
|
21
21
|
CommandActionHandler,
|
|
@@ -23,19 +23,16 @@ import {
|
|
|
23
23
|
CommandReturn,
|
|
24
24
|
IActionHandler,
|
|
25
25
|
ILogger,
|
|
26
|
-
SetModelAction,
|
|
27
|
-
SetModelCommand,
|
|
28
26
|
SModelRoot,
|
|
29
|
-
TYPES
|
|
27
|
+
TYPES,
|
|
28
|
+
UpdateModelCommand
|
|
30
29
|
} from 'sprotty';
|
|
31
|
-
import { UpdateModelAction, UpdateModelCommand } from 'sprotty/lib/features/update/update-model';
|
|
32
|
-
|
|
33
30
|
import { IFeedbackActionDispatcher } from '../../features/tool-feedback/feedback-action-dispatcher';
|
|
34
31
|
import { FeedbackCommand } from '../../features/tool-feedback/model';
|
|
35
32
|
import { GLSP_TYPES } from '../types';
|
|
36
33
|
|
|
37
34
|
/* 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.*/
|
|
35
|
+
* UpdateModel behaves the same as SetModel if no model is present yet.*/
|
|
39
36
|
@injectable()
|
|
40
37
|
export class SetModelActionHandler implements IActionHandler {
|
|
41
38
|
handle(action: Action): Action | void {
|
|
@@ -45,18 +42,13 @@ export class SetModelActionHandler implements IActionHandler {
|
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
|
|
48
|
-
export function isSetModelAction(action: Action): action is SetModelAction {
|
|
49
|
-
return action !== undefined && (action.kind === SetModelCommand.KIND)
|
|
50
|
-
&& (action as SetModelAction).newRoot !== undefined;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
45
|
export interface SModelRootListener {
|
|
54
46
|
modelRootChanged(root: Readonly<SModelRoot>): void;
|
|
55
47
|
}
|
|
56
48
|
|
|
57
49
|
/**
|
|
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
|
|
50
|
+
* A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their
|
|
51
|
+
* feedback to the `newRoot` before performing the update
|
|
60
52
|
*/
|
|
61
53
|
@injectable()
|
|
62
54
|
export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
|
|
@@ -73,7 +65,7 @@ export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
|
|
|
73
65
|
|
|
74
66
|
@postConstruct()
|
|
75
67
|
protected initialize(): void {
|
|
76
|
-
this.actionHandlerRegistryProvider().then(registry => this.actionHandlerRegistry = registry);
|
|
68
|
+
this.actionHandlerRegistryProvider().then(registry => (this.actionHandlerRegistry = registry));
|
|
77
69
|
}
|
|
78
70
|
|
|
79
71
|
protected performUpdate(oldRoot: SModelRoot, newRoot: SModelRoot, context: CommandExecutionContext): CommandReturn {
|
|
@@ -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
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action, UpdateModelAction } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
+
import { InitializeCanvasBoundsAction } from 'sprotty';
|
|
18
19
|
import { Deferred } from 'sprotty/lib/utils/async';
|
|
19
20
|
|
|
20
21
|
/**
|
|
@@ -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
|
|
@@ -13,12 +13,10 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { distinctAdd, EditMode } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
17
18
|
import { Tool, ToolManager } from 'sprotty';
|
|
18
|
-
|
|
19
|
-
import { distinctAdd } from '../../utils/array-utils';
|
|
20
|
-
import { EditMode } from '../actions/edit-mode-action';
|
|
21
|
-
import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context';
|
|
19
|
+
import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context-service';
|
|
22
20
|
import { GLSP_TYPES } from '../types';
|
|
23
21
|
|
|
24
22
|
export interface IGLSPToolManager extends ToolManager {
|
package/src/base/types.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
|
|
@@ -33,5 +33,7 @@ export const GLSP_TYPES = {
|
|
|
33
33
|
IGLSPToolManager: Symbol.for('IGLSPToolManager'),
|
|
34
34
|
ITool: Symbol.for('ITool'),
|
|
35
35
|
IDefaultTool: Symbol.for('IDefaultTool'),
|
|
36
|
-
IEditModeListener: Symbol.for('IEditModeListener')
|
|
36
|
+
IEditModeListener: Symbol.for('IEditModeListener'),
|
|
37
|
+
LayoutRegistration: Symbol.for('LayoutRegistration'),
|
|
38
|
+
IMarqueeBehavior: Symbol.for('IMarqueeBehavior')
|
|
37
39
|
};
|
|
@@ -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,13 @@ import {
|
|
|
29
29
|
|
|
30
30
|
export const resizeFeature = Symbol('resizeFeature');
|
|
31
31
|
|
|
32
|
-
export interface Resizable extends BoundsAware, Selectable {
|
|
33
|
-
}
|
|
32
|
+
export interface Resizable extends BoundsAware, Selectable {}
|
|
34
33
|
|
|
35
34
|
export function isResizable(element: SModelElement): element is SParentElement & Resizable {
|
|
36
35
|
return isBoundsAware(element) && isSelectable(element) && element instanceof SParentElement && element.hasFeature(resizeFeature);
|
|
37
36
|
}
|
|
38
37
|
|
|
38
|
+
// eslint-disable-next-line no-shadow
|
|
39
39
|
export enum ResizeHandleLocation {
|
|
40
40
|
TopLeft = 'top-left',
|
|
41
41
|
TopRight = 'top-right',
|
|
@@ -50,15 +50,25 @@ export function isBoundsAwareMoveable(element: SModelElement): element is SModel
|
|
|
50
50
|
export class SResizeHandle extends SChildElement implements Hoverable {
|
|
51
51
|
static readonly TYPE = 'resize-handle';
|
|
52
52
|
|
|
53
|
-
constructor(
|
|
53
|
+
constructor(
|
|
54
|
+
public readonly location?: ResizeHandleLocation,
|
|
54
55
|
public readonly type: string = SResizeHandle.TYPE,
|
|
55
|
-
public readonly hoverFeedback: boolean = false
|
|
56
|
+
public readonly hoverFeedback: boolean = false
|
|
57
|
+
) {
|
|
56
58
|
super();
|
|
57
59
|
}
|
|
58
60
|
|
|
59
61
|
hasFeature(feature: symbol): boolean {
|
|
60
62
|
return feature === hoverFeedbackFeature;
|
|
61
63
|
}
|
|
64
|
+
|
|
65
|
+
isNwSeResize(): boolean {
|
|
66
|
+
return this.location === ResizeHandleLocation.TopLeft || this.location === ResizeHandleLocation.BottomRight;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
isNeSwResize(): boolean {
|
|
70
|
+
return this.location === ResizeHandleLocation.TopRight || this.location === ResizeHandleLocation.BottomLeft;
|
|
71
|
+
}
|
|
62
72
|
}
|
|
63
73
|
|
|
64
74
|
export function addResizeHandles(element: SParentElement): void {
|
|
@@ -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,9 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Point } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { injectable } from 'inversify';
|
|
17
|
-
import { BoundsAware,
|
|
18
|
-
|
|
18
|
+
import { BoundsAware, SModelElement, SNode, SParentElement } from 'sprotty';
|
|
19
19
|
import { toAbsoluteBounds } from '../../utils/viewpoint-util';
|
|
20
20
|
import { ModifyCSSFeedbackAction } from '../tool-feedback/css-feedback';
|
|
21
21
|
import { isBoundsAwareMoveable, SResizeHandle } from './model';
|
|
@@ -25,16 +25,21 @@ export interface IMovementRestrictor {
|
|
|
25
25
|
cssClasses?: string[];
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
export function createMovementRestrictionFeedback(
|
|
28
|
+
export function createMovementRestrictionFeedback(
|
|
29
|
+
element: SModelElement,
|
|
30
|
+
movementRestrictor: IMovementRestrictor
|
|
31
|
+
): ModifyCSSFeedbackAction {
|
|
29
32
|
const elements: SModelElement[] = [element];
|
|
30
33
|
if (element instanceof SParentElement) {
|
|
31
34
|
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
32
35
|
}
|
|
33
36
|
return new ModifyCSSFeedbackAction(elements, movementRestrictor.cssClasses);
|
|
34
|
-
|
|
35
37
|
}
|
|
36
38
|
|
|
37
|
-
export function removeMovementRestrictionFeedback(
|
|
39
|
+
export function removeMovementRestrictionFeedback(
|
|
40
|
+
element: SModelElement,
|
|
41
|
+
movementRestrictor: IMovementRestrictor
|
|
42
|
+
): ModifyCSSFeedbackAction {
|
|
38
43
|
const elements: SModelElement[] = [element];
|
|
39
44
|
if (element instanceof SParentElement) {
|
|
40
45
|
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
@@ -61,8 +66,12 @@ export class NoOverlapMovmentRestrictor implements IMovementRestrictor {
|
|
|
61
66
|
};
|
|
62
67
|
ghostElement.type = 'Ghost';
|
|
63
68
|
ghostElement.id = element.id;
|
|
64
|
-
return !Array.from(
|
|
65
|
-
.
|
|
69
|
+
return !Array.from(
|
|
70
|
+
element.root.index
|
|
71
|
+
.all()
|
|
72
|
+
.filter(e => e.id !== ghostElement.id && e !== ghostElement.root && e instanceof SNode)
|
|
73
|
+
.map(e => e as SModelElement & BoundsAware)
|
|
74
|
+
).some(e => areOverlapping(e, ghostElement));
|
|
66
75
|
}
|
|
67
76
|
}
|
|
68
77
|
|
|
@@ -85,5 +94,4 @@ export function areOverlapping(element1: SModelElement & BoundsAware, element2:
|
|
|
85
94
|
}
|
|
86
95
|
|
|
87
96
|
return true;
|
|
88
|
-
|
|
89
97
|
}
|