@eclipse-glsp/client 0.9.0-next.d9bed812 → 0.9.0-next.e99d24cc
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 +2 -1
- 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 +18 -2
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +41 -61
- 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} +4 -6
- 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-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +5 -5
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +121 -152
- 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 +49 -65
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts +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 +13 -3
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +50 -33
- 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-service.d.ts +42 -0
- 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.d.ts +5 -0
- package/lib/base/model/model-registry.d.ts.map +1 -0
- package/lib/base/model/model-registry.js +43 -0
- package/lib/base/model/model-registry.js.map +1 -0
- package/lib/base/model/update-model-command.d.ts +20 -6
- 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 +17 -2
- 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.d.ts +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +11 -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 +2 -2
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +59 -141
- 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 +23 -21
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts +5 -0
- package/lib/base/view/view-registry.d.ts.map +1 -0
- package/lib/base/view/view-registry.js +43 -0
- package/lib/base/view/view-registry.js.map +1 -0
- package/lib/features/change-bounds/model.d.ts +4 -2
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +21 -32
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +18 -2
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +34 -46
- 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.d.ts +1 -1
- package/lib/features/command-palette/command-palette-tool.d.ts.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.d.ts +2 -2
- 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 +19 -3
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +31 -36
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +2 -2
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +24 -72
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +2 -2
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +14 -18
- 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 +2 -2
- 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 +19 -3
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +31 -32
- 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 +21 -4
- 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 +2 -2
- 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 +14 -47
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -6
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.js +7 -7
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts +2 -2
- 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 +18 -3
- 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 +1 -16
- 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 +2 -2
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +21 -49
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +83 -142
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +2 -2
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +8 -8
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +18 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +37 -75
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +6 -2
- 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 +26 -10
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +189 -264
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts +2 -17
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +124 -117
- 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 +1 -16
- 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.d.ts +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 +3 -2
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +74 -217
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.d.ts +1 -16
- 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 -39
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +118 -255
- 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 +2 -17
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +27 -26
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/rank/model.d.ts +2 -2
- package/lib/features/rank/model.d.ts.map +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 +2 -2
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +10 -28
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +2 -2
- 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/model.d.ts +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.d.ts +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 +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.d.ts +2 -2
- 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 +19 -3
- 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 -138
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +21 -4
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +117 -149
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +19 -2
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +81 -115
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +21 -3
- 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 +2 -2
- 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 +21 -4
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +160 -204
- 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 +18 -2
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -86
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +2 -2
- 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 +22 -6
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +30 -51
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +2 -2
- 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 +22 -6
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +225 -291
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +21 -5
- 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 +26 -9
- 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 +20 -4
- 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 +1 -16
- 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 +20 -5
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +64 -89
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +22 -6
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +125 -189
- 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 +27 -15
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +90 -184
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +18 -2
- 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.d.ts +1 -1
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +6 -24
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +20 -5
- 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 +3 -18
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +21 -39
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +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 +3 -3
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +18 -56
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +19 -3
- 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 +2 -17
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +84 -77
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +20 -31
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +148 -299
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +16 -1
- package/lib/features/viewport/di.config.d.ts.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 +3 -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 +32 -35
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +33 -35
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -3
- package/lib/lib/model.d.ts.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 +4 -6
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +63 -122
- 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 +50 -0
- package/lib/utils/argument-utils.d.ts.map +1 -0
- package/lib/utils/argument-utils.js +110 -0
- package/lib/utils/argument-utils.js.map +1 -0
- package/lib/utils/html-utils.js +2 -2
- package/lib/utils/html-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +4 -3
- 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 +1 -39
- 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 +7 -17
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +18 -67
- 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 +9 -0
- package/lib/views/base-view-module.d.ts.map +1 -0
- package/lib/views/base-view-module.js +59 -0
- package/lib/views/base-view-module.js.map +1 -0
- 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 +27 -0
- package/lib/views/glsp-edge-view.d.ts.map +1 -0
- package/lib/views/glsp-edge-view.js +55 -0
- package/lib/views/glsp-edge-view.js.map +1 -0
- package/lib/{features/model-source-watcher/model-source-changed-action.d.ts → views/index.d.ts} +8 -10
- package/lib/views/index.d.ts.map +1 -0
- package/lib/views/index.js +34 -0
- package/lib/views/index.js.map +1 -0
- package/lib/views/issue-marker-view.d.ts +9 -0
- package/lib/views/issue-marker-view.d.ts.map +1 -0
- package/lib/views/issue-marker-view.js +68 -0
- package/lib/views/issue-marker-view.js.map +1 -0
- package/lib/views/rounded-corner-view.d.ts +13 -0
- package/lib/views/rounded-corner-view.d.ts.map +1 -0
- package/lib/views/rounded-corner-view.js +82 -0
- package/lib/views/rounded-corner-view.js.map +1 -0
- package/lib/views/rounded-corner.d.ts +38 -0
- package/lib/views/rounded-corner.d.ts.map +1 -0
- package/lib/views/rounded-corner.js +62 -0
- package/lib/views/rounded-corner.js.map +1 -0
- package/package.json +24 -32
- package/src/base/action-dispatcher.ts +7 -8
- package/src/base/actions/focus-change-action.ts +2 -2
- package/src/base/{args.ts → argumentable.ts} +3 -4
- package/src/base/auto-complete/auto-complete-actions.ts +2 -2
- package/src/base/auto-complete/auto-complete-widget.ts +66 -48
- package/src/base/auto-complete/validation-decorator.ts +21 -15
- package/src/base/command-stack.ts +4 -7
- package/src/base/container-modules.ts +112 -0
- package/src/base/di.config.ts +44 -27
- package/src/base/drag-aware-mouse-listener.ts +7 -8
- package/src/base/{editor-context.ts → editor-context-service.ts} +13 -40
- package/src/base/focus-tracker.ts +4 -6
- package/src/base/model/model-registry.ts +31 -0
- package/src/base/model/update-model-command.ts +14 -22
- package/src/base/model-initialization-constraint.ts +16 -11
- package/src/base/selection-clearing-mouse-listener.ts +4 -3
- package/src/base/tool-manager/glsp-tool-manager.ts +12 -14
- package/src/base/types.ts +23 -21
- package/src/{features/model-source-watcher/model-source-changed-action.ts → base/view/view-registry.ts} +15 -10
- package/src/features/change-bounds/model.ts +23 -13
- package/src/features/change-bounds/movement-restrictor.ts +28 -18
- package/src/features/change-bounds/snap.ts +6 -5
- package/src/features/command-palette/command-palette-tool.ts +4 -4
- package/src/features/command-palette/di.config.ts +7 -7
- package/src/features/command-palette/server-command-palette-provider.ts +16 -14
- package/src/features/context-menu/delete-element-context-menu.ts +10 -11
- package/src/features/context-menu/di.config.ts +10 -12
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +8 -7
- package/src/features/context-menu/server-context-menu-provider.ts +13 -10
- package/src/features/copy-paste/copy-paste-context-menu.ts +66 -37
- package/src/features/copy-paste/copy-paste-handler.ts +30 -20
- package/src/features/copy-paste/di.config.ts +6 -7
- package/src/features/decoration/decoration-placer.ts +6 -15
- package/src/features/decoration/di.config.ts +4 -6
- package/src/features/edit-label/di.config.ts +5 -5
- package/src/features/edit-label/edit-label-tool.ts +4 -4
- package/src/features/edit-label/edit-label-validator.ts +18 -19
- package/src/features/hints/di.config.ts +6 -7
- package/src/features/hints/model.ts +7 -6
- package/src/features/hints/type-hints.ts +46 -113
- package/src/features/hover/di.config.ts +6 -7
- package/src/features/hover/hover.ts +11 -14
- package/src/features/layout/di.config.ts +32 -6
- package/src/features/layout/freeform-layout.ts +133 -0
- package/src/features/layout/layout-commands.spec.ts +104 -85
- package/src/features/layout/layout-commands.ts +65 -54
- package/src/features/layout/vbox-layout.ts +256 -0
- package/src/features/model-source-watcher/di.config.ts +5 -6
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +16 -12
- package/src/features/mouse-tool/di.config.ts +4 -4
- package/src/features/mouse-tool/mouse-tool.ts +44 -32
- package/src/features/navigation/di.config.ts +6 -12
- package/src/features/navigation/navigation-action-handler.ts +46 -78
- package/src/features/navigation/navigation-target-resolver.spec.ts +6 -9
- package/src/features/navigation/navigation-target-resolver.ts +16 -94
- package/src/features/rank/model.ts +3 -3
- package/src/features/reconnect/model.ts +9 -11
- package/src/features/save/di.config.ts +4 -5
- package/src/features/save/model.ts +1 -1
- package/src/features/save/{save.ts → save-keylistener.ts} +4 -12
- package/src/features/select/di.config.ts +6 -6
- package/src/features/select/select-feedback-action.ts +6 -8
- package/src/features/select/select-mouse-listener.ts +2 -2
- package/src/features/select/selection-service.spec.ts +25 -19
- package/src/features/select/selection-service.ts +25 -22
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -39
- package/src/features/tool-feedback/creation-tool-feedback.ts +49 -24
- package/src/features/tool-feedback/css-feedback.ts +16 -13
- package/src/features/tool-feedback/di.config.ts +12 -15
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +56 -35
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +13 -14
- package/src/features/tool-feedback/marquee-tool-feedback.ts +12 -12
- package/src/features/tool-feedback/model.ts +2 -3
- package/src/features/tool-feedback/view.tsx +20 -13
- package/src/features/tool-palette/di.config.ts +5 -7
- package/src/features/tool-palette/palette-item.ts +5 -7
- package/src/features/tool-palette/tool-palette.ts +118 -110
- package/src/features/tools/base-glsp-tool.ts +12 -12
- package/src/features/tools/change-bounds-tool.ts +83 -53
- package/src/features/tools/delete-tool.ts +23 -20
- package/src/features/tools/di.config.ts +16 -17
- package/src/features/tools/edge-creation-tool.ts +20 -25
- package/src/features/tools/edge-edit-tool.ts +43 -46
- 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 +67 -118
- package/src/features/tools/marquee-tool.ts +6 -6
- package/src/features/tools/model.ts +1 -2
- package/src/features/tools/node-creation-tool.ts +16 -23
- package/src/features/tools/view.tsx +21 -15
- package/src/features/validation/di.config.ts +5 -5
- package/src/features/validation/issue-marker.ts +4 -5
- package/src/features/validation/marker-navigator.spec.ts +38 -33
- package/src/features/validation/marker-navigator.ts +39 -26
- package/src/features/validation/validate.ts +25 -59
- package/src/features/viewport/di.config.ts +4 -4
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +53 -38
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +19 -33
- package/src/protocol-reexport.ts +64 -0
- package/src/utils/argument-utils.ts +130 -0
- package/src/utils/layout-utils.ts +19 -11
- package/src/utils/marker.ts +8 -32
- package/src/utils/smodel-util.ts +28 -22
- package/src/utils/viewpoint-util.ts +5 -6
- package/src/views/base-view-module.ts +97 -0
- package/src/views/compartments.tsx +37 -0
- package/src/views/glsp-edge-view.tsx +79 -0
- package/src/views/index.ts +21 -0
- package/src/views/issue-marker-view.tsx +65 -0
- package/src/views/rounded-corner-view.tsx +103 -0
- package/src/views/rounded-corner.ts +87 -0
- 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 -82
- 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 +0 -46
- 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/decoration/view.d.ts +0 -8
- package/lib/features/decoration/view.d.ts.map +0 -1
- package/lib/features/decoration/view.js +0 -80
- package/lib/features/decoration/view.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.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/src/base/actions/context-actions.ts +0 -43
- package/src/base/actions/edit-mode-action.ts +0 -33
- package/src/base/actions/edit-validation-actions.ts +0 -102
- 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/decoration/view.tsx +0 -54
- package/src/features/hints/request-type-hints-action.ts +0 -36
- package/src/model-source/glsp-server-status.ts +0 -38
- package/src/utils/array-utils.ts +0 -55
|
@@ -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
|
|
@@ -25,22 +25,22 @@ import {
|
|
|
25
25
|
Selectable,
|
|
26
26
|
SModelElement,
|
|
27
27
|
SParentElement
|
|
28
|
-
} from
|
|
28
|
+
} from 'sprotty';
|
|
29
29
|
|
|
30
|
-
export const resizeFeature = Symbol(
|
|
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
|
-
TopLeft =
|
|
41
|
-
TopRight =
|
|
42
|
-
BottomLeft =
|
|
43
|
-
BottomRight =
|
|
40
|
+
TopLeft = 'top-left',
|
|
41
|
+
TopRight = 'top-right',
|
|
42
|
+
BottomLeft = 'bottom-left',
|
|
43
|
+
BottomRight = 'bottom-right'
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
export function isBoundsAwareMoveable(element: SModelElement): element is SModelElement & Locateable & BoundsAware {
|
|
@@ -50,18 +50,28 @@ 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
|
-
export function addResizeHandles(element: SParentElement) {
|
|
74
|
+
export function addResizeHandles(element: SParentElement): void {
|
|
65
75
|
removeResizeHandles(element);
|
|
66
76
|
element.add(new SResizeHandle(ResizeHandleLocation.TopLeft));
|
|
67
77
|
element.add(new SResizeHandle(ResizeHandleLocation.TopRight));
|
|
@@ -69,6 +79,6 @@ export function addResizeHandles(element: SParentElement) {
|
|
|
69
79
|
element.add(new SResizeHandle(ResizeHandleLocation.BottomRight));
|
|
70
80
|
}
|
|
71
81
|
|
|
72
|
-
export function removeResizeHandles(element: SParentElement) {
|
|
82
|
+
export function removeResizeHandles(element: SParentElement): void {
|
|
73
83
|
element.removeAll(child => child instanceof SResizeHandle);
|
|
74
84
|
}
|
|
@@ -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,28 +13,33 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { toAbsoluteBounds } from
|
|
20
|
-
import { ModifyCSSFeedbackAction } from
|
|
21
|
-
import { isBoundsAwareMoveable, SResizeHandle } from
|
|
16
|
+
import { Point } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { injectable } from 'inversify';
|
|
18
|
+
import { BoundsAware, SModelElement, SNode, SParentElement } from 'sprotty';
|
|
19
|
+
import { toAbsoluteBounds } from '../../utils/viewpoint-util';
|
|
20
|
+
import { ModifyCSSFeedbackAction } from '../tool-feedback/css-feedback';
|
|
21
|
+
import { isBoundsAwareMoveable, SResizeHandle } from './model';
|
|
22
22
|
|
|
23
23
|
export interface IMovementRestrictor {
|
|
24
24
|
validate(newLocation: Point, element: SModelElement): boolean;
|
|
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));
|
|
@@ -45,7 +50,7 @@ export function removeMovementRestrictionFeedback(element: SModelElement, moveme
|
|
|
45
50
|
|
|
46
51
|
@injectable()
|
|
47
52
|
export class NoOverlapMovmentRestrictor implements IMovementRestrictor {
|
|
48
|
-
cssClasses = [
|
|
53
|
+
cssClasses = ['movement-not-allowed'];
|
|
49
54
|
|
|
50
55
|
validate(newLocation: Point, element: SModelElement): boolean {
|
|
51
56
|
if (!isBoundsAwareMoveable(element)) {
|
|
@@ -59,14 +64,18 @@ export class NoOverlapMovmentRestrictor implements IMovementRestrictor {
|
|
|
59
64
|
width: element.bounds.width,
|
|
60
65
|
height: element.bounds.height
|
|
61
66
|
};
|
|
62
|
-
ghostElement.type =
|
|
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
|
|
|
69
|
-
export function areOverlapping(element1: SModelElement & BoundsAware, element2: SModelElement & BoundsAware) {
|
|
78
|
+
export function areOverlapping(element1: SModelElement & BoundsAware, element2: SModelElement & BoundsAware): boolean {
|
|
70
79
|
const b1 = toAbsoluteBounds(element1);
|
|
71
80
|
const b2 = toAbsoluteBounds(element2);
|
|
72
81
|
const r1TopLeft: Point = b1;
|
|
@@ -75,13 +84,14 @@ export function areOverlapping(element1: SModelElement & BoundsAware, element2:
|
|
|
75
84
|
const r2BottomRight = { x: b2.x + b2.width, y: b2.y + b2.height };
|
|
76
85
|
|
|
77
86
|
// If one rectangle is on left side of other
|
|
78
|
-
if (r1TopLeft.x > r2BottomRight.x || r2TopLeft.x > r1BottomRight.x)
|
|
87
|
+
if (r1TopLeft.x > r2BottomRight.x || r2TopLeft.x > r1BottomRight.x) {
|
|
79
88
|
return false;
|
|
89
|
+
}
|
|
80
90
|
|
|
81
91
|
// If one rectangle is above other
|
|
82
|
-
if (r1BottomRight.y < r2TopLeft.y || r2BottomRight.y < r1TopLeft.y)
|
|
92
|
+
if (r1BottomRight.y < r2TopLeft.y || r2BottomRight.y < r1TopLeft.y) {
|
|
83
93
|
return false;
|
|
94
|
+
}
|
|
84
95
|
|
|
85
96
|
return true;
|
|
86
|
-
|
|
87
97
|
}
|
|
@@ -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,16 +13,17 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
16
|
+
import { Point } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { injectable } from 'inversify';
|
|
18
|
+
import { ISnapper, SModelElement } from 'sprotty';
|
|
18
19
|
|
|
19
20
|
@injectable()
|
|
20
21
|
export class GridSnapper implements ISnapper {
|
|
21
|
-
get gridX() {
|
|
22
|
+
get gridX(): number {
|
|
22
23
|
return 10;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
get gridY() {
|
|
26
|
+
get gridY(): number {
|
|
26
27
|
return 10;
|
|
27
28
|
}
|
|
28
29
|
|
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { inject, injectable, postConstruct } from
|
|
17
|
-
import { CommandPaletteKeyListener, KeyListener, KeyTool, Tool } from
|
|
16
|
+
import { inject, injectable, postConstruct } from 'inversify';
|
|
17
|
+
import { CommandPaletteKeyListener, KeyListener, KeyTool, Tool } from 'sprotty';
|
|
18
18
|
|
|
19
19
|
@injectable()
|
|
20
20
|
export class CommandPaletteTool implements Tool {
|
|
21
|
-
static ID =
|
|
21
|
+
static ID = 'glsp.command-palette-tool';
|
|
22
22
|
|
|
23
23
|
protected commandPaletteKeyListener: KeyListener;
|
|
24
24
|
@inject(KeyTool) protected keyTool: KeyTool;
|
|
25
25
|
|
|
26
26
|
@postConstruct()
|
|
27
|
-
protected postConstruct() {
|
|
27
|
+
protected postConstruct(): void {
|
|
28
28
|
this.commandPaletteKeyListener = this.createCommandPaleteKeyListener();
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -13,16 +13,16 @@
|
|
|
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 '../../../css/command-palette.css';
|
|
17
17
|
|
|
18
|
-
import { ContainerModule } from
|
|
19
|
-
import { CommandPalette, CommandPaletteActionProviderRegistry, TYPES } from
|
|
18
|
+
import { ContainerModule } from 'inversify';
|
|
19
|
+
import { CommandPalette, CommandPaletteActionProviderRegistry, TYPES } from 'sprotty';
|
|
20
20
|
|
|
21
|
-
import { GLSP_TYPES } from
|
|
22
|
-
import { CommandPaletteTool } from
|
|
23
|
-
import { ServerCommandPaletteActionProvider } from
|
|
21
|
+
import { GLSP_TYPES } from '../../base/types';
|
|
22
|
+
import { CommandPaletteTool } from './command-palette-tool';
|
|
23
|
+
import { ServerCommandPaletteActionProvider } from './server-command-palette-provider';
|
|
24
24
|
|
|
25
|
-
const glspCommandPaletteModule = new ContainerModule(
|
|
25
|
+
const glspCommandPaletteModule = new ContainerModule(bind => {
|
|
26
26
|
bind(CommandPalette).toSelf().inSingletonScope();
|
|
27
27
|
bind(TYPES.IUIExtension).toService(CommandPalette);
|
|
28
28
|
bind(CommandPaletteActionProviderRegistry).toSelf().inSingletonScope();
|
|
@@ -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,16 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { GLSPActionDispatcher } from
|
|
20
|
-
import {
|
|
21
|
-
import { EditorContextService } from "../../base/editor-context";
|
|
16
|
+
import { Action, isSetContextActionsAction, LabeledAction, Point, RequestContextActions } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { ICommandPaletteActionProvider, SModelElement, TYPES } from 'sprotty';
|
|
19
|
+
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
20
|
+
import { EditorContextService } from '../../base/editor-context-service';
|
|
22
21
|
|
|
23
22
|
export namespace ServerCommandPalette {
|
|
24
|
-
export const CONTEXT_ID =
|
|
25
|
-
export const TEXT =
|
|
26
|
-
export const INDEX =
|
|
23
|
+
export const CONTEXT_ID = 'command-palette';
|
|
24
|
+
export const TEXT = 'text';
|
|
25
|
+
export const INDEX = 'index';
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
@injectable()
|
|
@@ -32,10 +31,13 @@ export class ServerCommandPaletteActionProvider implements ICommandPaletteAction
|
|
|
32
31
|
@inject(EditorContextService) protected editorContext: EditorContextService;
|
|
33
32
|
|
|
34
33
|
getActions(_root: Readonly<SModelElement>, text: string, _lastMousePosition?: Point, index?: number): Promise<LabeledAction[]> {
|
|
35
|
-
const requestAction = new RequestContextActions(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
const requestAction = new RequestContextActions(
|
|
35
|
+
ServerCommandPalette.CONTEXT_ID,
|
|
36
|
+
this.editorContext.get({
|
|
37
|
+
[ServerCommandPalette.TEXT]: text,
|
|
38
|
+
[ServerCommandPalette.INDEX]: index ? index : 0
|
|
39
|
+
})
|
|
40
|
+
);
|
|
39
41
|
return this.actionDispatcher.requestUntil(requestAction).then(response => this.getPaletteActionsFromResponse(response));
|
|
40
42
|
}
|
|
41
43
|
|
|
@@ -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,11 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { EditorContextService, EditorContextServiceProvider } from
|
|
20
|
-
import {
|
|
21
|
-
import { GLSP_TYPES } from "../../base/types";
|
|
16
|
+
import { DeleteElementOperation } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { IContextMenuItemProvider, MenuItem, Point, SModelRoot } from 'sprotty';
|
|
19
|
+
import { EditorContextService, EditorContextServiceProvider } from '../../base/editor-context-service';
|
|
20
|
+
import { GLSP_TYPES } from '../../base/types';
|
|
22
21
|
|
|
23
22
|
@injectable()
|
|
24
23
|
export class DeleteElementContextMenuItemProvider implements IContextMenuItemProvider {
|
|
@@ -31,10 +30,10 @@ export class DeleteElementContextMenuItemProvider implements IContextMenuItemPro
|
|
|
31
30
|
|
|
32
31
|
protected createDeleteMenuItem(editorContextService: EditorContextService): MenuItem {
|
|
33
32
|
return {
|
|
34
|
-
id:
|
|
35
|
-
label:
|
|
36
|
-
sortString:
|
|
37
|
-
group:
|
|
33
|
+
id: 'delete',
|
|
34
|
+
label: 'Delete',
|
|
35
|
+
sortString: 'd',
|
|
36
|
+
group: 'edit',
|
|
38
37
|
actions: [new DeleteElementOperation(editorContextService.selectedElements.map(e => e.id))],
|
|
39
38
|
isEnabled: () => !editorContextService.isReadonly && editorContextService.selectedElements.length > 0
|
|
40
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
|
|
@@ -13,24 +13,22 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { ContainerModule } from
|
|
17
|
-
import { ContextMenuProviderRegistry, IContextMenuService, TYPES } from
|
|
18
|
-
|
|
19
|
-
import {
|
|
20
|
-
import { ServerContextMenuItemProvider } from "./server-context-menu-provider";
|
|
16
|
+
import { ContainerModule } from 'inversify';
|
|
17
|
+
import { ContextMenuProviderRegistry, IContextMenuService, TYPES } from 'sprotty';
|
|
18
|
+
import { SelectionServiceAwareContextMenuMouseListener } from './selection-service-aware-context-menu-mouse-listener';
|
|
19
|
+
import { ServerContextMenuItemProvider } from './server-context-menu-provider';
|
|
21
20
|
|
|
22
21
|
const glspContextMenuModule = new ContainerModule(bind => {
|
|
23
|
-
bind(TYPES.IContextMenuServiceProvider).toProvider<IContextMenuService>(
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
bind(TYPES.IContextMenuServiceProvider).toProvider<IContextMenuService>(
|
|
23
|
+
ctx => () =>
|
|
24
|
+
new Promise<IContextMenuService>((resolve, reject) => {
|
|
26
25
|
if (ctx.container.isBound(TYPES.IContextMenuService)) {
|
|
27
26
|
resolve(ctx.container.get<IContextMenuService>(TYPES.IContextMenuService));
|
|
28
27
|
} else {
|
|
29
28
|
reject();
|
|
30
29
|
}
|
|
31
|
-
})
|
|
32
|
-
|
|
33
|
-
});
|
|
30
|
+
})
|
|
31
|
+
);
|
|
34
32
|
bind(TYPES.MouseListener).to(SelectionServiceAwareContextMenuMouseListener);
|
|
35
33
|
bind(TYPES.IContextMenuProviderRegistry).to(ContextMenuProviderRegistry);
|
|
36
34
|
bind(TYPES.IContextMenuItemProvider).to(ServerContextMenuItemProvider);
|
|
@@ -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,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { inject, injectable, optional } from
|
|
16
|
+
import { inject, injectable, optional } from 'inversify';
|
|
17
17
|
import {
|
|
18
18
|
Action,
|
|
19
19
|
ContextMenuProviderRegistry,
|
|
@@ -23,10 +23,10 @@ import {
|
|
|
23
23
|
MouseListener,
|
|
24
24
|
SModelElement,
|
|
25
25
|
TYPES
|
|
26
|
-
} from
|
|
26
|
+
} from 'sprotty';
|
|
27
27
|
|
|
28
|
-
import { GLSP_TYPES } from
|
|
29
|
-
import { SelectionService } from
|
|
28
|
+
import { GLSP_TYPES } from '../../base/types';
|
|
29
|
+
import { SelectionService } from '../select/selection-service';
|
|
30
30
|
|
|
31
31
|
@injectable()
|
|
32
32
|
export class SelectionServiceAwareContextMenuMouseListener extends MouseListener {
|
|
@@ -42,8 +42,9 @@ export class SelectionServiceAwareContextMenuMouseListener extends MouseListener
|
|
|
42
42
|
selectableTarget.selected = true;
|
|
43
43
|
this.selectionService.updateSelection(target.root, [selectableTarget.id], []);
|
|
44
44
|
}
|
|
45
|
-
Promise.all([this.contextMenuService(), this.menuProvider.getItems(target.root, mousePosition)])
|
|
46
|
-
|
|
45
|
+
Promise.all([this.contextMenuService(), this.menuProvider.getItems(target.root, mousePosition)]).then(
|
|
46
|
+
([menuService, menuItems]) => menuService.show(menuItems, mousePosition)
|
|
47
|
+
);
|
|
47
48
|
}
|
|
48
49
|
return [];
|
|
49
50
|
}
|
|
@@ -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,25 +13,28 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { GLSPActionDispatcher } from
|
|
20
|
-
import {
|
|
21
|
-
import { EditorContextService } from "../../base/editor-context";
|
|
16
|
+
import { Action, isSetContextActionsAction, LabeledAction, Point, RequestContextActions } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { IContextMenuItemProvider, isSelected, SModelElement, TYPES } from 'sprotty';
|
|
19
|
+
import { GLSPActionDispatcher } from '../../base/action-dispatcher';
|
|
20
|
+
import { EditorContextService } from '../../base/editor-context-service';
|
|
22
21
|
|
|
23
22
|
export namespace ServerContextMenu {
|
|
24
|
-
export const CONTEXT_ID =
|
|
23
|
+
export const CONTEXT_ID = 'context-menu';
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
@injectable()
|
|
28
27
|
export class ServerContextMenuItemProvider implements IContextMenuItemProvider {
|
|
29
|
-
|
|
30
28
|
@inject(TYPES.IActionDispatcher) protected actionDispatcher: GLSPActionDispatcher;
|
|
31
29
|
@inject(EditorContextService) protected editorContext: EditorContextService;
|
|
32
30
|
|
|
33
31
|
getItems(root: Readonly<SModelElement>, lastMousePosition?: Point): Promise<LabeledAction[]> {
|
|
34
|
-
const selectedElementIds = Array.from(
|
|
32
|
+
const selectedElementIds = Array.from(
|
|
33
|
+
root.index
|
|
34
|
+
.all()
|
|
35
|
+
.filter(isSelected)
|
|
36
|
+
.map(e => e.id)
|
|
37
|
+
);
|
|
35
38
|
const context = this.editorContext.getWithSelection(selectedElementIds);
|
|
36
39
|
const requestAction = new RequestContextActions(ServerContextMenu.CONTEXT_ID, context);
|
|
37
40
|
return this.actionDispatcher.requestUntil(requestAction).then(response => this.getContextActionsFromResponse(response));
|
|
@@ -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,62 +13,61 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
IActionDispatcher,
|
|
20
|
-
IActionHandler,
|
|
21
|
-
IContextMenuItemProvider,
|
|
22
|
-
isSelected,
|
|
23
|
-
MenuItem,
|
|
24
|
-
Point,
|
|
25
|
-
SModelRoot,
|
|
26
|
-
TYPES
|
|
27
|
-
} from "sprotty/lib";
|
|
28
|
-
|
|
29
|
-
import { GLSPServerStatusAction, ServerMessageAction } from "../../model-source/glsp-server-status";
|
|
16
|
+
import { Action, GLSPServerStatusAction, Point, ServerMessageAction } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { IActionDispatcher, IActionHandler, IContextMenuItemProvider, isSelected, MenuItem, SModelRoot, TYPES } from 'sprotty';
|
|
30
19
|
|
|
31
20
|
export class InvokeCopyAction implements Action {
|
|
32
|
-
static readonly KIND =
|
|
33
|
-
constructor(public readonly kind = InvokeCopyAction.KIND) {
|
|
21
|
+
static readonly KIND = 'invoke-copy';
|
|
22
|
+
constructor(public readonly kind = InvokeCopyAction.KIND) {}
|
|
34
23
|
}
|
|
35
24
|
|
|
36
25
|
export class InvokePasteAction implements Action {
|
|
37
|
-
static readonly KIND =
|
|
38
|
-
constructor(public readonly kind = InvokePasteAction.KIND) {
|
|
26
|
+
static readonly KIND = 'invoke-paste';
|
|
27
|
+
constructor(public readonly kind = InvokePasteAction.KIND) {}
|
|
39
28
|
}
|
|
40
29
|
|
|
41
30
|
export class InvokeCutAction implements Action {
|
|
42
|
-
static readonly KIND =
|
|
43
|
-
constructor(public readonly kind = InvokeCutAction.KIND) {
|
|
31
|
+
static readonly KIND = 'invoke-cut';
|
|
32
|
+
constructor(public readonly kind = InvokeCutAction.KIND) {}
|
|
44
33
|
}
|
|
45
34
|
|
|
46
35
|
@injectable()
|
|
47
36
|
export class InvokeCopyPasteActionHandler implements IActionHandler {
|
|
48
37
|
@inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
|
|
49
|
-
handle(action: Action) {
|
|
38
|
+
handle(action: Action): void {
|
|
50
39
|
switch (action.kind) {
|
|
51
40
|
case InvokeCopyAction.KIND:
|
|
52
|
-
|
|
41
|
+
if (supportsCopy()) {
|
|
42
|
+
document.execCommand('copy');
|
|
43
|
+
} else {
|
|
44
|
+
this.notifyUserToUseShortcut('copy');
|
|
45
|
+
}
|
|
53
46
|
break;
|
|
54
47
|
case InvokePasteAction.KIND:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
48
|
+
if (supportsPaste()) {
|
|
49
|
+
document.execCommand('paste');
|
|
50
|
+
} else {
|
|
51
|
+
this.notifyUserToUseShortcut('paste');
|
|
52
|
+
}
|
|
58
53
|
break;
|
|
59
54
|
case InvokeCutAction.KIND:
|
|
60
|
-
|
|
55
|
+
if (supportsCut()) {
|
|
56
|
+
document.execCommand('cut');
|
|
57
|
+
} else {
|
|
58
|
+
this.notifyUserToUseShortcut('cut');
|
|
59
|
+
}
|
|
61
60
|
break;
|
|
62
61
|
}
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
protected notifyUserToUseShortcut() {
|
|
66
|
-
const message =
|
|
64
|
+
protected notifyUserToUseShortcut(operation: string): void {
|
|
65
|
+
const message = `Please use the browser's ${operation} command or shortcut.`;
|
|
67
66
|
const timeout = 10000;
|
|
68
67
|
const severity = 'WARNING';
|
|
69
68
|
this.dispatcher.dispatchAll([
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
{ kind: GLSPServerStatusAction.KIND, severity, timeout, message } as GLSPServerStatusAction,
|
|
70
|
+
{ kind: ServerMessageAction.KIND, severity, timeout, message } as ServerMessageAction
|
|
72
71
|
]);
|
|
73
72
|
}
|
|
74
73
|
}
|
|
@@ -86,22 +85,52 @@ export class CopyPasteContextMenuItemProvider implements IContextMenuItemProvide
|
|
|
86
85
|
|
|
87
86
|
protected createPasteMenuItem(): MenuItem {
|
|
88
87
|
return {
|
|
89
|
-
id:
|
|
90
|
-
|
|
88
|
+
id: 'paste',
|
|
89
|
+
label: 'Paste',
|
|
90
|
+
group: 'copy-paste',
|
|
91
|
+
actions: [new InvokePasteAction()],
|
|
92
|
+
isEnabled: () => true
|
|
91
93
|
};
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
protected createCutMenuItem(hasSelectedElements: boolean): MenuItem {
|
|
95
97
|
return {
|
|
96
|
-
id:
|
|
97
|
-
|
|
98
|
+
id: 'cut',
|
|
99
|
+
label: 'Cut',
|
|
100
|
+
group: 'copy-paste',
|
|
101
|
+
actions: [new InvokeCutAction()],
|
|
102
|
+
isEnabled: () => hasSelectedElements
|
|
98
103
|
};
|
|
99
104
|
}
|
|
100
105
|
|
|
101
106
|
protected createCopyMenuItem(hasSelectedElements: boolean): MenuItem {
|
|
102
107
|
return {
|
|
103
|
-
id:
|
|
104
|
-
|
|
108
|
+
id: 'copy',
|
|
109
|
+
label: 'Copy',
|
|
110
|
+
group: 'copy-paste',
|
|
111
|
+
actions: [new InvokeCopyAction()],
|
|
112
|
+
isEnabled: () => hasSelectedElements
|
|
105
113
|
};
|
|
106
114
|
}
|
|
107
115
|
}
|
|
116
|
+
|
|
117
|
+
export function supportsCopy(): boolean {
|
|
118
|
+
return isNative() || document.queryCommandSupported('copy');
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export function supportsCut(): boolean {
|
|
122
|
+
return isNative() || document.queryCommandSupported('cut');
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export function supportsPaste(): boolean {
|
|
126
|
+
const isChrome = userAgent().indexOf('Chrome') >= 0;
|
|
127
|
+
return isNative() || (!isChrome && document.queryCommandSupported('paste'));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function isNative(): boolean {
|
|
131
|
+
return typeof (window as any).process !== 'undefined';
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function userAgent(): string {
|
|
135
|
+
return typeof navigator !== 'undefined' ? navigator.userAgent : '';
|
|
136
|
+
}
|