@eclipse-glsp/client 0.9.0-next.c5944e10
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 +277 -0
- package/README.md +12 -0
- package/css/command-palette.css +58 -0
- package/css/decoration.css +37 -0
- package/css/glsp-sprotty.css +106 -0
- package/css/tool-palette.css +138 -0
- package/lib/base/action-dispatcher.d.ts +25 -0
- package/lib/base/action-dispatcher.d.ts.map +1 -0
- package/lib/base/action-dispatcher.js +110 -0
- package/lib/base/action-dispatcher.js.map +1 -0
- package/lib/base/actions/context-actions.d.ts +36 -0
- package/lib/base/actions/context-actions.d.ts.map +1 -0
- package/lib/base/actions/context-actions.js +45 -0
- package/lib/base/actions/context-actions.js.map +1 -0
- package/lib/base/actions/edit-mode-action.d.ts +13 -0
- package/lib/base/actions/edit-mode-action.d.ts.map +1 -0
- package/lib/base/actions/edit-mode-action.js +52 -0
- package/lib/base/actions/edit-mode-action.js.map +1 -0
- package/lib/base/actions/edit-validation-actions.d.ts +78 -0
- package/lib/base/actions/edit-validation-actions.d.ts.map +1 -0
- package/lib/base/actions/edit-validation-actions.js +77 -0
- package/lib/base/actions/edit-validation-actions.js.map +1 -0
- package/lib/base/actions/focus-change-action.d.ts +24 -0
- package/lib/base/actions/focus-change-action.d.ts.map +1 -0
- package/lib/base/actions/focus-change-action.js +16 -0
- package/lib/base/actions/focus-change-action.js.map +1 -0
- package/lib/base/args.d.ts +24 -0
- package/lib/base/args.d.ts.map +1 -0
- package/lib/base/args.js +8 -0
- package/lib/base/args.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +21 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.js +8 -0
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-widget.d.ts +88 -0
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -0
- package/lib/base/auto-complete/auto-complete-widget.js +233 -0
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -0
- package/lib/base/auto-complete/validation-decorator.d.ts +47 -0
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -0
- package/lib/base/auto-complete/validation-decorator.js +113 -0
- package/lib/base/auto-complete/validation-decorator.js.map +1 -0
- package/lib/base/command-stack.d.ts +7 -0
- package/lib/base/command-stack.d.ts.map +1 -0
- package/lib/base/command-stack.js +49 -0
- package/lib/base/command-stack.js.map +1 -0
- package/lib/base/di.config.d.ts +28 -0
- package/lib/base/di.config.d.ts.map +1 -0
- package/lib/base/di.config.js +81 -0
- package/lib/base/di.config.js.map +1 -0
- package/lib/base/drag-aware-mouse-listener.d.ts +36 -0
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -0
- package/lib/base/drag-aware-mouse-listener.js +66 -0
- package/lib/base/drag-aware-mouse-listener.js.map +1 -0
- package/lib/base/editor-context.d.ts +46 -0
- package/lib/base/editor-context.d.ts.map +1 -0
- package/lib/base/editor-context.js +110 -0
- package/lib/base/editor-context.js.map +1 -0
- package/lib/base/focus-tracker.d.ts +9 -0
- package/lib/base/focus-tracker.d.ts.map +1 -0
- package/lib/base/focus-tracker.js +65 -0
- package/lib/base/focus-tracker.js.map +1 -0
- 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 +26 -0
- package/lib/base/model/update-model-command.d.ts.map +1 -0
- package/lib/base/model/update-model-command.js +132 -0
- package/lib/base/model/update-model-command.js.map +1 -0
- package/lib/base/model-initialization-constraint.d.ts +39 -0
- package/lib/base/model-initialization-constraint.d.ts.map +1 -0
- package/lib/base/model-initialization-constraint.js +106 -0
- package/lib/base/model-initialization-constraint.js.map +1 -0
- package/lib/base/operations/operation.d.ts +135 -0
- package/lib/base/operations/operation.d.ts.map +1 -0
- package/lib/base/operations/operation.js +182 -0
- package/lib/base/operations/operation.js.map +1 -0
- package/lib/base/selection-clearing-mouse-listener.d.ts +17 -0
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -0
- package/lib/base/selection-clearing-mouse-listener.js +55 -0
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -0
- package/lib/base/source-uri-aware.d.ts +20 -0
- package/lib/base/source-uri-aware.d.ts.map +1 -0
- package/lib/base/source-uri-aware.js +26 -0
- package/lib/base/source-uri-aware.js.map +1 -0
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +22 -0
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -0
- package/lib/base/tool-manager/glsp-tool-manager.js +110 -0
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -0
- package/lib/base/types.d.ts +38 -0
- package/lib/base/types.d.ts.map +1 -0
- package/lib/base/types.js +41 -0
- package/lib/base/types.js.map +1 -0
- 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 +38 -0
- package/lib/features/change-bounds/model.d.ts.map +1 -0
- package/lib/features/change-bounds/model.js +61 -0
- package/lib/features/change-bounds/model.js.map +1 -0
- package/lib/features/change-bounds/movement-restrictor.d.ts +14 -0
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -0
- package/lib/features/change-bounds/movement-restrictor.js +90 -0
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -0
- package/lib/features/change-bounds/snap.d.ts +7 -0
- package/lib/features/change-bounds/snap.d.ts.map +1 -0
- package/lib/features/change-bounds/snap.js +44 -0
- package/lib/features/change-bounds/snap.js.map +1 -0
- package/lib/features/command-palette/command-palette-tool.d.ts +12 -0
- package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -0
- package/lib/features/command-palette/command-palette-tool.js +63 -0
- package/lib/features/command-palette/command-palette-tool.js.map +1 -0
- package/lib/features/command-palette/di.config.d.ts +20 -0
- package/lib/features/command-palette/di.config.d.ts.map +1 -0
- package/lib/features/command-palette/di.config.js +33 -0
- package/lib/features/command-palette/di.config.js.map +1 -0
- package/lib/features/command-palette/server-command-palette-provider.d.ts +15 -0
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -0
- package/lib/features/command-palette/server-command-palette-provider.js +66 -0
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -0
- package/lib/features/context-menu/delete-element-context-menu.d.ts +8 -0
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -0
- package/lib/features/context-menu/delete-element-context-menu.js +55 -0
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -0
- package/lib/features/context-menu/di.config.d.ts +19 -0
- package/lib/features/context-menu/di.config.d.ts.map +1 -0
- package/lib/features/context-menu/di.config.js +36 -0
- package/lib/features/context-menu/di.config.js.map +1 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +9 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +65 -0
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -0
- package/lib/features/context-menu/server-context-menu-provider.d.ts +13 -0
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -0
- package/lib/features/context-menu/server-context-menu-provider.js +63 -0
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -0
- package/lib/features/copy-paste/copy-paste-actions.d.ts +50 -0
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +1 -0
- package/lib/features/copy-paste/copy-paste-actions.js +58 -0
- package/lib/features/copy-paste/copy-paste-actions.js.map +1 -0
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +32 -0
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -0
- package/lib/features/copy-paste/copy-paste-context-menu.js +151 -0
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -0
- package/lib/features/copy-paste/copy-paste-handler.d.ts +50 -0
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -0
- package/lib/features/copy-paste/copy-paste-handler.js +149 -0
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -0
- package/lib/features/copy-paste/di.config.d.ts +24 -0
- package/lib/features/copy-paste/di.config.d.ts.map +1 -0
- package/lib/features/copy-paste/di.config.js +40 -0
- package/lib/features/copy-paste/di.config.js.map +1 -0
- package/lib/features/decoration/decoration-placer.d.ts +6 -0
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -0
- package/lib/features/decoration/decoration-placer.js +47 -0
- package/lib/features/decoration/decoration-placer.js.map +1 -0
- package/lib/features/decoration/di.config.d.ts +20 -0
- package/lib/features/decoration/di.config.d.ts.map +1 -0
- package/lib/features/decoration/di.config.js +27 -0
- package/lib/features/decoration/di.config.js.map +1 -0
- package/lib/features/edit-label/di.config.d.ts +19 -0
- package/lib/features/edit-label/di.config.d.ts.map +1 -0
- package/lib/features/edit-label/di.config.js +30 -0
- package/lib/features/edit-label/di.config.js.map +1 -0
- package/lib/features/edit-label/edit-label-tool.d.ts +13 -0
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -0
- package/lib/features/edit-label/edit-label-tool.js +55 -0
- package/lib/features/edit-label/edit-label-tool.js.map +1 -0
- package/lib/features/edit-label/edit-label-validator.d.ts +20 -0
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -0
- package/lib/features/edit-label/edit-label-validator.js +111 -0
- package/lib/features/edit-label/edit-label-validator.js.map +1 -0
- package/lib/features/hints/di.config.d.ts +19 -0
- package/lib/features/hints/di.config.d.ts.map +1 -0
- package/lib/features/hints/di.config.js +30 -0
- package/lib/features/hints/di.config.js.map +1 -0
- package/lib/features/hints/model.d.ts +26 -0
- package/lib/features/hints/model.d.ts.map +1 -0
- package/lib/features/hints/model.js +14 -0
- package/lib/features/hints/model.js.map +1 -0
- package/lib/features/hints/request-type-hints-action.d.ts +32 -0
- package/lib/features/hints/request-type-hints-action.d.ts.map +1 -0
- package/lib/features/hints/request-type-hints-action.js +26 -0
- package/lib/features/hints/request-type-hints-action.js.map +1 -0
- package/lib/features/hints/type-hints.d.ts +75 -0
- package/lib/features/hints/type-hints.d.ts.map +1 -0
- package/lib/features/hints/type-hints.js +199 -0
- package/lib/features/hints/type-hints.js.map +1 -0
- package/lib/features/hover/di.config.d.ts +19 -0
- package/lib/features/hover/di.config.d.ts.map +1 -0
- package/lib/features/hover/di.config.js +46 -0
- package/lib/features/hover/di.config.js.map +1 -0
- package/lib/features/hover/hover.d.ts +11 -0
- package/lib/features/hover/hover.d.ts.map +1 -0
- package/lib/features/hover/hover.js +88 -0
- package/lib/features/hover/hover.js.map +1 -0
- package/lib/features/layout/di.config.d.ts +19 -0
- package/lib/features/layout/di.config.d.ts.map +1 -0
- package/lib/features/layout/di.config.js +26 -0
- package/lib/features/layout/di.config.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +137 -0
- package/lib/features/layout/layout-commands.d.ts.map +1 -0
- package/lib/features/layout/layout-commands.js +411 -0
- package/lib/features/layout/layout-commands.js.map +1 -0
- package/lib/features/layout/layout-commands.spec.d.ts +18 -0
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -0
- package/lib/features/layout/layout-commands.spec.js +297 -0
- package/lib/features/layout/layout-commands.spec.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.d.ts +19 -0
- package/lib/features/model-source-watcher/di.config.d.ts.map +1 -0
- package/lib/features/model-source-watcher/di.config.js +26 -0
- package/lib/features/model-source-watcher/di.config.js.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +23 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +83 -0
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts +24 -0
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +1 -0
- package/lib/features/model-source-watcher/model-source-changed-action.js +16 -0
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +1 -0
- package/lib/features/mouse-tool/di.config.d.ts +19 -0
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -0
- package/lib/features/mouse-tool/di.config.js +28 -0
- package/lib/features/mouse-tool/di.config.js.map +1 -0
- package/lib/features/mouse-tool/mouse-tool.d.ts +19 -0
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -0
- package/lib/features/mouse-tool/mouse-tool.js +140 -0
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -0
- package/lib/features/navigation/di.config.d.ts +18 -0
- package/lib/features/navigation/di.config.d.ts.map +1 -0
- package/lib/features/navigation/di.config.js +31 -0
- package/lib/features/navigation/di.config.js.map +1 -0
- package/lib/features/navigation/navigation-action-handler.d.ts +117 -0
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -0
- package/lib/features/navigation/navigation-action-handler.js +293 -0
- package/lib/features/navigation/navigation-action-handler.js.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.d.ts +55 -0
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.js +157 -0
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +18 -0
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -0
- package/lib/features/navigation/navigation-target-resolver.spec.js +54 -0
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -0
- package/lib/features/rank/model.d.ts +22 -0
- package/lib/features/rank/model.d.ts.map +1 -0
- package/lib/features/rank/model.js +28 -0
- package/lib/features/rank/model.js.map +1 -0
- package/lib/features/reconnect/model.d.ts +30 -0
- package/lib/features/reconnect/model.d.ts.map +1 -0
- package/lib/features/reconnect/model.js +66 -0
- package/lib/features/reconnect/model.js.map +1 -0
- package/lib/features/save/di.config.d.ts +23 -0
- package/lib/features/save/di.config.d.ts.map +1 -0
- package/lib/features/save/di.config.js +29 -0
- package/lib/features/save/di.config.js.map +1 -0
- package/lib/features/save/model.d.ts +22 -0
- package/lib/features/save/model.d.ts.map +1 -0
- package/lib/features/save/model.js +9 -0
- package/lib/features/save/model.js.map +1 -0
- package/lib/features/save/save.d.ts +27 -0
- package/lib/features/save/save.d.ts.map +1 -0
- package/lib/features/save/save.js +42 -0
- package/lib/features/save/save.js.map +1 -0
- package/lib/features/select/di.config.d.ts +19 -0
- package/lib/features/select/di.config.d.ts.map +1 -0
- package/lib/features/select/di.config.js +35 -0
- package/lib/features/select/di.config.js.map +1 -0
- package/lib/features/select/select-feedback-action.d.ts +34 -0
- package/lib/features/select/select-feedback-action.d.ts.map +1 -0
- package/lib/features/select/select-feedback-action.js +97 -0
- package/lib/features/select/select-feedback-action.js.map +1 -0
- package/lib/features/select/select-mouse-listener.d.ts +25 -0
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -0
- package/lib/features/select/select-mouse-listener.js +32 -0
- package/lib/features/select/select-mouse-listener.js.map +1 -0
- package/lib/features/select/selection-service.d.ts +52 -0
- package/lib/features/select/selection-service.d.ts.map +1 -0
- package/lib/features/select/selection-service.js +226 -0
- package/lib/features/select/selection-service.js.map +1 -0
- package/lib/features/select/selection-service.spec.d.ts +2 -0
- package/lib/features/select/selection-service.spec.d.ts.map +1 -0
- package/lib/features/select/selection-service.spec.js +360 -0
- package/lib/features/select/selection-service.spec.js.map +1 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +47 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +236 -0
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +43 -0
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/creation-tool-feedback.js +181 -0
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/css-feedback.d.ts +32 -0
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/css-feedback.js +111 -0
- package/lib/features/tool-feedback/css-feedback.js.map +1 -0
- package/lib/features/tool-feedback/di.config.d.ts +19 -0
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -0
- package/lib/features/tool-feedback/di.config.js +53 -0
- package/lib/features/tool-feedback/di.config.js.map +1 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +82 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +315 -0
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +50 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +75 -0
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +32 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.js +111 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/model.d.ts +23 -0
- package/lib/features/tool-feedback/model.d.ts.map +1 -0
- package/lib/features/tool-feedback/model.js +34 -0
- package/lib/features/tool-feedback/model.js.map +1 -0
- package/lib/features/tool-feedback/view.d.ts +16 -0
- package/lib/features/tool-feedback/view.d.ts.map +1 -0
- package/lib/features/tool-feedback/view.js +81 -0
- package/lib/features/tool-feedback/view.js.map +1 -0
- package/lib/features/tool-palette/di.config.d.ts +20 -0
- package/lib/features/tool-palette/di.config.d.ts.map +1 -0
- package/lib/features/tool-palette/di.config.js +29 -0
- package/lib/features/tool-palette/di.config.js.map +1 -0
- package/lib/features/tool-palette/palette-item.d.ts +27 -0
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -0
- package/lib/features/tool-palette/palette-item.js +37 -0
- package/lib/features/tool-palette/palette-item.js.map +1 -0
- package/lib/features/tool-palette/tool-palette.d.ts +56 -0
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -0
- package/lib/features/tool-palette/tool-palette.js +401 -0
- package/lib/features/tool-palette/tool-palette.js.map +1 -0
- package/lib/features/tools/base-glsp-tool.d.ts +20 -0
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -0
- package/lib/features/tools/base-glsp-tool.js +70 -0
- package/lib/features/tools/base-glsp-tool.js.map +1 -0
- package/lib/features/tools/change-bounds-tool.d.ts +71 -0
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -0
- package/lib/features/tools/change-bounds-tool.js +371 -0
- package/lib/features/tools/change-bounds-tool.js.map +1 -0
- package/lib/features/tools/delete-tool.d.ts +36 -0
- package/lib/features/tools/delete-tool.d.ts.map +1 -0
- package/lib/features/tools/delete-tool.js +129 -0
- package/lib/features/tools/delete-tool.js.map +1 -0
- package/lib/features/tools/di.config.d.ts +23 -0
- package/lib/features/tools/di.config.d.ts.map +1 -0
- package/lib/features/tools/di.config.js +55 -0
- package/lib/features/tools/di.config.js.map +1 -0
- package/lib/features/tools/edge-creation-tool.d.ts +37 -0
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -0
- package/lib/features/tools/edge-creation-tool.js +158 -0
- package/lib/features/tools/edge-creation-tool.js.map +1 -0
- package/lib/features/tools/edge-edit-tool.d.ts +50 -0
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -0
- package/lib/features/tools/edge-edit-tool.js +281 -0
- package/lib/features/tools/edge-edit-tool.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +37 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.js +226 -0
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -0
- package/lib/features/tools/marquee-tool.d.ts +14 -0
- package/lib/features/tools/marquee-tool.d.ts.map +1 -0
- package/lib/features/tools/marquee-tool.js +69 -0
- package/lib/features/tools/marquee-tool.js.map +1 -0
- package/lib/features/tools/model.d.ts +22 -0
- package/lib/features/tools/model.d.ts.map +1 -0
- package/lib/features/tools/model.js +24 -0
- package/lib/features/tools/model.js.map +1 -0
- package/lib/features/tools/node-creation-tool.d.ts +26 -0
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -0
- package/lib/features/tools/node-creation-tool.js +117 -0
- package/lib/features/tools/node-creation-tool.js.map +1 -0
- package/lib/features/tools/view.d.ts +7 -0
- package/lib/features/tools/view.d.ts.map +1 -0
- package/lib/features/tools/view.js +40 -0
- package/lib/features/tools/view.js.map +1 -0
- package/lib/features/undo-redo/model.d.ts +27 -0
- package/lib/features/undo-redo/model.d.ts.map +1 -0
- package/lib/features/undo-redo/model.js +18 -0
- package/lib/features/undo-redo/model.js.map +1 -0
- package/lib/features/validation/di.config.d.ts +25 -0
- package/lib/features/validation/di.config.d.ts.map +1 -0
- package/lib/features/validation/di.config.js +44 -0
- package/lib/features/validation/di.config.js.map +1 -0
- package/lib/features/validation/issue-marker.d.ts +43 -0
- package/lib/features/validation/issue-marker.d.ts.map +1 -0
- package/lib/features/validation/issue-marker.js +89 -0
- package/lib/features/validation/issue-marker.js.map +1 -0
- package/lib/features/validation/marker-navigator.d.ts +55 -0
- package/lib/features/validation/marker-navigator.d.ts.map +1 -0
- package/lib/features/validation/marker-navigator.js +247 -0
- package/lib/features/validation/marker-navigator.js.map +1 -0
- package/lib/features/validation/marker-navigator.spec.d.ts +18 -0
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -0
- package/lib/features/validation/marker-navigator.spec.js +177 -0
- package/lib/features/validation/marker-navigator.spec.js.map +1 -0
- package/lib/features/validation/validate.d.ts +111 -0
- package/lib/features/validation/validate.d.ts.map +1 -0
- package/lib/features/validation/validate.js +290 -0
- package/lib/features/validation/validate.js.map +1 -0
- package/lib/features/viewport/di.config.d.ts +19 -0
- package/lib/features/viewport/di.config.d.ts.map +1 -0
- package/lib/features/viewport/di.config.js +34 -0
- package/lib/features/viewport/di.config.js.map +1 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +7 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +54 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -0
- package/lib/index.d.ts +110 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +144 -0
- package/lib/index.js.map +1 -0
- package/lib/lib/model.d.ts +24 -0
- package/lib/lib/model.d.ts.map +1 -0
- package/lib/lib/model.js +33 -0
- package/lib/lib/model.js.map +1 -0
- package/lib/model-source/glsp-diagram-server.d.ts +38 -0
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -0
- package/lib/model-source/glsp-diagram-server.js +88 -0
- package/lib/model-source/glsp-diagram-server.js.map +1 -0
- package/lib/model-source/glsp-server-status.d.ts +30 -0
- package/lib/model-source/glsp-server-status.d.ts.map +1 -0
- package/lib/model-source/glsp-server-status.js +44 -0
- package/lib/model-source/glsp-server-status.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 +112 -0
- package/lib/utils/argument-utils.js.map +1 -0
- package/lib/utils/array-utils.d.ts +28 -0
- package/lib/utils/array-utils.d.ts.map +1 -0
- package/lib/utils/array-utils.js +56 -0
- package/lib/utils/array-utils.js.map +1 -0
- package/lib/utils/html-utils.d.ts +17 -0
- package/lib/utils/html-utils.d.ts.map +1 -0
- package/lib/utils/html-utils.js +30 -0
- package/lib/utils/html-utils.js.map +1 -0
- package/lib/utils/layout-utils.d.ts +41 -0
- package/lib/utils/layout-utils.d.ts.map +1 -0
- package/lib/utils/layout-utils.js +61 -0
- package/lib/utils/layout-utils.js.map +1 -0
- package/lib/utils/marker.d.ts +48 -0
- package/lib/utils/marker.d.ts.map +1 -0
- package/lib/utils/marker.js +48 -0
- package/lib/utils/marker.js.map +1 -0
- package/lib/utils/smodel-util.d.ts +41 -0
- package/lib/utils/smodel-util.d.ts.map +1 -0
- package/lib/utils/smodel-util.js +134 -0
- package/lib/utils/smodel-util.js.map +1 -0
- package/lib/utils/viewpoint-util.d.ts +52 -0
- package/lib/utils/viewpoint-util.d.ts.map +1 -0
- package/lib/utils/viewpoint-util.js +89 -0
- package/lib/utils/viewpoint-util.js.map +1 -0
- package/lib/views/base-view-module.d.ts +24 -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/default-types.d.ts +37 -0
- package/lib/views/default-types.d.ts.map +1 -0
- package/lib/views/default-types.js +47 -0
- package/lib/views/default-types.js.map +1 -0
- package/lib/views/glsp-edge-view.d.ts +11 -0
- package/lib/views/glsp-edge-view.d.ts.map +1 -0
- package/lib/views/glsp-edge-view.js +70 -0
- package/lib/views/glsp-edge-view.js.map +1 -0
- package/lib/views/index.d.ts +22 -0
- 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 +8 -0
- package/lib/views/issue-marker-view.d.ts.map +1 -0
- package/lib/views/issue-marker-view.js +59 -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 +37 -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 +68 -0
- package/src/base/action-dispatcher.ts +103 -0
- package/src/base/actions/context-actions.ts +43 -0
- package/src/base/actions/edit-mode-action.ts +33 -0
- package/src/base/actions/edit-validation-actions.ts +103 -0
- package/src/base/actions/focus-change-action.ts +26 -0
- package/src/base/args.ts +26 -0
- package/src/base/auto-complete/auto-complete-actions.ts +24 -0
- package/src/base/auto-complete/auto-complete-widget.ts +314 -0
- package/src/base/auto-complete/validation-decorator.ts +126 -0
- package/src/base/command-stack.ts +36 -0
- package/src/base/di.config.ts +96 -0
- package/src/base/drag-aware-mouse-listener.ts +69 -0
- package/src/base/editor-context.ts +124 -0
- package/src/base/focus-tracker.ts +50 -0
- package/src/base/model/model-registry.ts +31 -0
- package/src/base/model/update-model-command.ts +118 -0
- package/src/base/model-initialization-constraint.ts +94 -0
- package/src/base/operations/operation.ts +178 -0
- package/src/base/selection-clearing-mouse-listener.ts +43 -0
- package/src/base/source-uri-aware.ts +22 -0
- package/src/base/tool-manager/glsp-tool-manager.ts +97 -0
- package/src/base/types.ts +37 -0
- package/src/base/view/view-registry.ts +31 -0
- package/src/features/change-bounds/model.ts +74 -0
- package/src/features/change-bounds/movement-restrictor.ts +89 -0
- package/src/features/change-bounds/snap.ts +35 -0
- package/src/features/command-palette/command-palette-tool.ts +46 -0
- package/src/features/command-palette/di.config.ts +34 -0
- package/src/features/command-palette/server-command-palette-provider.ts +48 -0
- package/src/features/context-menu/delete-element-context-menu.ts +42 -0
- package/src/features/context-menu/di.config.ts +35 -0
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +50 -0
- package/src/features/context-menu/server-context-menu-provider.ts +46 -0
- package/src/features/copy-paste/copy-paste-actions.ts +60 -0
- package/src/features/copy-paste/copy-paste-context-menu.ts +138 -0
- package/src/features/copy-paste/copy-paste-handler.ts +152 -0
- package/src/features/copy-paste/di.config.ts +45 -0
- package/src/features/decoration/decoration-placer.ts +46 -0
- package/src/features/decoration/di.config.ts +28 -0
- package/src/features/edit-label/di.config.ts +30 -0
- package/src/features/edit-label/edit-label-tool.ts +51 -0
- package/src/features/edit-label/edit-label-validator.ts +104 -0
- package/src/features/hints/di.config.ts +30 -0
- package/src/features/hints/model.ts +34 -0
- package/src/features/hints/request-type-hints-action.ts +36 -0
- package/src/features/hints/type-hints.ts +257 -0
- package/src/features/hover/di.config.ts +61 -0
- package/src/features/hover/hover.ts +95 -0
- package/src/features/layout/di.config.ts +26 -0
- package/src/features/layout/layout-commands.spec.ts +366 -0
- package/src/features/layout/layout-commands.ts +415 -0
- package/src/features/model-source-watcher/di.config.ts +26 -0
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +70 -0
- package/src/features/model-source-watcher/model-source-changed-action.ts +26 -0
- package/src/features/mouse-tool/di.config.ts +28 -0
- package/src/features/mouse-tool/mouse-tool.ts +139 -0
- package/src/features/navigation/di.config.ts +35 -0
- package/src/features/navigation/navigation-action-handler.ts +272 -0
- package/src/features/navigation/navigation-target-resolver.spec.ts +61 -0
- package/src/features/navigation/navigation-target-resolver.ts +146 -0
- package/src/features/rank/model.ts +29 -0
- package/src/features/reconnect/model.ts +76 -0
- package/src/features/save/di.config.ts +30 -0
- package/src/features/save/model.ts +26 -0
- package/src/features/save/save.ts +35 -0
- package/src/features/select/di.config.ts +35 -0
- package/src/features/select/select-feedback-action.ts +87 -0
- package/src/features/select/select-mouse-listener.ts +26 -0
- package/src/features/select/selection-service.spec.ts +372 -0
- package/src/features/select/selection-service.ts +239 -0
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +244 -0
- package/src/features/tool-feedback/creation-tool-feedback.ts +190 -0
- package/src/features/tool-feedback/css-feedback.ts +98 -0
- package/src/features/tool-feedback/di.config.ts +69 -0
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +327 -0
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +101 -0
- package/src/features/tool-feedback/marquee-tool-feedback.ts +104 -0
- package/src/features/tool-feedback/model.ts +32 -0
- package/src/features/tool-feedback/view.tsx +70 -0
- package/src/features/tool-palette/di.config.ts +30 -0
- package/src/features/tool-palette/palette-item.ts +40 -0
- package/src/features/tool-palette/tool-palette.ts +416 -0
- package/src/features/tools/base-glsp-tool.ts +53 -0
- package/src/features/tools/change-bounds-tool.ts +445 -0
- package/src/features/tools/delete-tool.ts +120 -0
- package/src/features/tools/di.config.ts +56 -0
- package/src/features/tools/edge-creation-tool.ts +171 -0
- package/src/features/tools/edge-edit-tool.ts +325 -0
- package/src/features/tools/marquee-mouse-tool.ts +244 -0
- package/src/features/tools/marquee-tool.ts +52 -0
- package/src/features/tools/model.ts +22 -0
- package/src/features/tools/node-creation-tool.ts +123 -0
- package/src/features/tools/view.tsx +38 -0
- package/src/features/undo-redo/model.ts +26 -0
- package/src/features/validation/di.config.ts +51 -0
- package/src/features/validation/issue-marker.ts +93 -0
- package/src/features/validation/marker-navigator.spec.ts +207 -0
- package/src/features/validation/marker-navigator.ts +249 -0
- package/src/features/validation/validate.ts +274 -0
- package/src/features/viewport/di.config.ts +47 -0
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +50 -0
- package/src/index.ts +115 -0
- package/src/lib/model.ts +27 -0
- package/src/model-source/glsp-diagram-server.ts +114 -0
- package/src/model-source/glsp-server-status.ts +38 -0
- package/src/utils/argument-utils.ts +127 -0
- package/src/utils/array-utils.ts +55 -0
- package/src/utils/html-utils.ts +25 -0
- package/src/utils/layout-utils.ts +97 -0
- package/src/utils/marker.ts +63 -0
- package/src/utils/smodel-util.ts +149 -0
- package/src/utils/viewpoint-util.ts +99 -0
- package/src/views/base-view-module.ts +98 -0
- package/src/views/default-types.ts +48 -0
- package/src/views/glsp-edge-view.tsx +70 -0
- package/src/views/index.ts +21 -0
- package/src/views/issue-marker-view.tsx +55 -0
- package/src/views/rounded-corner-view.tsx +88 -0
- package/src/views/rounded-corner.ts +88 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2020 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
|
+
import { Action, ApplyLabelEditAction, ElementAndBounds, isAction, LayoutAction, Point } from 'sprotty';
|
|
17
|
+
|
|
18
|
+
import { Args } from '../args';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Operations are actions that denote requests from the client to _modify_ the model. Model modifications are always performed by the server.
|
|
22
|
+
* After a successful modification, the server sends the updated model back to the client using the `UpdateModelAction`.
|
|
23
|
+
*/
|
|
24
|
+
export interface Operation extends Action { }
|
|
25
|
+
|
|
26
|
+
export interface CreateOperation extends Operation {
|
|
27
|
+
elementTypeId: string;
|
|
28
|
+
args?: Args;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function isCreateOperation(object?: any): object is CreateOperation {
|
|
32
|
+
return isAction(object) && 'elementTypeId' in object;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export class CreateNodeOperation implements CreateOperation {
|
|
36
|
+
static readonly KIND = 'createNode';
|
|
37
|
+
|
|
38
|
+
constructor(public readonly elementTypeId: string,
|
|
39
|
+
public location?: Point,
|
|
40
|
+
public containerId?: string,
|
|
41
|
+
public args?: Args,
|
|
42
|
+
public readonly kind: string = CreateNodeOperation.KIND) { }
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function isCreateNodeOperation(object?: any): object is CreateNodeOperation {
|
|
46
|
+
return isCreateOperation() && object.kind === CreateNodeOperation.KIND;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export class CreateEdgeOperation implements CreateOperation {
|
|
50
|
+
static readonly KIND = 'createEdge';
|
|
51
|
+
|
|
52
|
+
constructor(public readonly elementTypeId: string,
|
|
53
|
+
public sourceElementId: string,
|
|
54
|
+
public targetElementId: string,
|
|
55
|
+
public args?: Args,
|
|
56
|
+
public readonly kind: string = CreateEdgeOperation.KIND) { }
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function isCreateConnectionOperation(object?: any): object is CreateEdgeOperation {
|
|
60
|
+
return isCreateOperation() && object.kind === CreateEdgeOperation.KIND;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export class DeleteElementOperation implements Operation {
|
|
64
|
+
static readonly KIND = 'deleteElement';
|
|
65
|
+
constructor(readonly elementIds: string[], public readonly kind: string = DeleteElementOperation.KIND) { }
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function isDeleteElementOperation(object?: any): object is DeleteElementOperation {
|
|
69
|
+
return isAction(object) && object.kind === DeleteElementOperation.KIND && 'elementIds' in object;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export class ChangeBoundsOperation implements Operation {
|
|
73
|
+
static readonly KIND = 'changeBounds';
|
|
74
|
+
constructor(public newBounds: ElementAndBounds[], public readonly kind: string = ChangeBoundsOperation.KIND) { }
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function isChangeBoundsOperation(object?: any): object is ChangeBoundsOperation {
|
|
78
|
+
return isAction(object) && object.kind === ChangeBoundsOperation.KIND && 'newBounds' in object;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export class ChangeContainerOperation implements Operation {
|
|
82
|
+
static readonly KIND = 'changeContainer';
|
|
83
|
+
constructor(public readonly elementId: string,
|
|
84
|
+
public readonly targetContainerId: string,
|
|
85
|
+
public readonly location?: Point,
|
|
86
|
+
public readonly kind: string = ChangeContainerOperation.KIND) { }
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function isChangeContainerOperation(object?: any): object is ChangeContainerOperation {
|
|
90
|
+
return isAction(object) && object.kind === ChangeContainerOperation.KIND
|
|
91
|
+
&& 'elementId' in object && typeof object['elementId'] === 'string'
|
|
92
|
+
&& 'targetContainerId' in object && typeof object['targetContainerId'] === 'string';
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export class ReconnectEdgeOperation implements Operation {
|
|
96
|
+
static readonly KIND = 'reconnectEdge';
|
|
97
|
+
constructor(public readonly edgeElementId: string,
|
|
98
|
+
public readonly sourceElementId: string,
|
|
99
|
+
public readonly targetElementId: string,
|
|
100
|
+
public readonly kind: string = ReconnectEdgeOperation.KIND) { }
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function isReconnectEdgeOperation(object?: any): object is ReconnectEdgeOperation {
|
|
104
|
+
return isAction(object) && object.kind === ReconnectEdgeOperation.KIND
|
|
105
|
+
&& 'edgeElementId' in object && typeof object['edgeElementId'] === 'string'
|
|
106
|
+
&& 'sourceElementId' in object && typeof object['sourceElementId'] === 'string'
|
|
107
|
+
&& 'targetElementId' in object && typeof object['targetElementId'] === 'string';
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export class ChangeRoutingPointsOperation implements Operation {
|
|
111
|
+
static readonly KIND = 'changeRoutingPoints';
|
|
112
|
+
constructor(public newRoutingPoints: ElementAndRoutingPoints[], public readonly kind: string = ChangeRoutingPointsOperation.KIND) { }
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export function isChangeRoutingsPointsOperation(object?: any): object is ChangeRoutingPointsOperation {
|
|
116
|
+
return isAction(object) && object.kind === ChangeRoutingPointsOperation.KIND
|
|
117
|
+
&& 'newRoutingPoints' in object && typeof object['newRoutingPoints'] === 'string';
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export class CompoundOperation implements Operation {
|
|
121
|
+
static readonly KIND = 'compound';
|
|
122
|
+
constructor(public operationList: Operation[], public readonly kind: string = CompoundOperation.KIND) { }
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export function isCompoundOperation(object?: any): object is CompoundOperation {
|
|
126
|
+
return isAction(object) && object.kind === CompoundOperation.KIND && 'operationList' in object;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* The `ElementAndRoutingPoints` type is used to associate an edge with specific routing points.
|
|
131
|
+
*/
|
|
132
|
+
export interface ElementAndRoutingPoints {
|
|
133
|
+
/**
|
|
134
|
+
* The identifier of an element.
|
|
135
|
+
*/
|
|
136
|
+
elementId: string;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* The new list of routing points.
|
|
140
|
+
*/
|
|
141
|
+
newRoutingPoints?: Point[];
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export abstract class TriggerElementCreationAction implements Action {
|
|
145
|
+
constructor(public readonly elementTypeId: string, readonly args?: Args, public readonly kind: string = 'unknown') { }
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export class TriggerNodeCreationAction extends TriggerElementCreationAction {
|
|
149
|
+
static readonly KIND = 'triggerNodeCreation';
|
|
150
|
+
|
|
151
|
+
constructor(public readonly elementTypeId: string, readonly args?: Args, public readonly kind = TriggerNodeCreationAction.KIND) {
|
|
152
|
+
super(elementTypeId, args, kind);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export class TriggerEdgeCreationAction extends TriggerElementCreationAction {
|
|
157
|
+
static readonly KIND = 'triggerEdgeCreation';
|
|
158
|
+
|
|
159
|
+
constructor(public readonly elementTypeId: string, readonly args?: Args, public readonly kind: string = TriggerEdgeCreationAction.KIND) {
|
|
160
|
+
super(elementTypeId, args, kind);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export function isTriggerElementTypeCreationAction(object?: any): object is TriggerElementCreationAction {
|
|
165
|
+
return isAction(object) && 'elementTypeId' in object;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export function isTriggerNodeCreationAction(object?: any): object is TriggerNodeCreationAction {
|
|
169
|
+
return isTriggerElementTypeCreationAction(object) && object.kind === TriggerNodeCreationAction.KIND;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export function isTriggerEdgeCreationAction(object?: any): object is TriggerEdgeCreationAction {
|
|
173
|
+
return isTriggerElementTypeCreationAction(object) && object.kind === TriggerEdgeCreationAction.KIND;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export class LayoutOperation extends LayoutAction implements Operation { }
|
|
177
|
+
|
|
178
|
+
export class ApplyLabelEditOperation extends ApplyLabelEditAction implements Operation { }
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2020 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
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { MouseListener, SModelElement } from 'sprotty';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A mouse listener that clears the document selection on click
|
|
21
|
+
*
|
|
22
|
+
* Clicking on SVG elements doesn't update the document selection. In the context of diagramming
|
|
23
|
+
* with GLSP, this is unnatural, as the user would expect that clicking in the diagram (e.g. to
|
|
24
|
+
* select a diagram element) would clear any other selection state in the DOM. From a technical
|
|
25
|
+
* point of view, an active selection in the document after clicking into the diagram may also
|
|
26
|
+
* lead to bogus target elements in certain browser events, such as clipboard events, etc.
|
|
27
|
+
*
|
|
28
|
+
* This listener helps to overcome this problem by actively clearing any existing selection in
|
|
29
|
+
* the document, if the user clicks into the diagram.
|
|
30
|
+
*/
|
|
31
|
+
@injectable()
|
|
32
|
+
export class SelectionClearingMouseListener extends MouseListener {
|
|
33
|
+
mouseDown(_target: SModelElement, event: MouseEvent): never[] {
|
|
34
|
+
const selection = document.getSelection();
|
|
35
|
+
// eslint-disable-next-line no-null/no-null
|
|
36
|
+
if (selection === null) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
selection.removeAllRanges();
|
|
40
|
+
selection.addRange(document.createRange());
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2020 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
|
+
export abstract class SourceUriAware {
|
|
17
|
+
abstract getSourceURI(): string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function isSourceUriAware(obj: any): obj is SourceUriAware {
|
|
21
|
+
return obj !== undefined && typeof obj.getSourceURI === 'function';
|
|
22
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2020 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
|
+
import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
|
|
17
|
+
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';
|
|
22
|
+
import { GLSP_TYPES } from '../types';
|
|
23
|
+
|
|
24
|
+
export interface IGLSPToolManager extends ToolManager {
|
|
25
|
+
/* Disables all actives tools and activates only default tool with non-edit function*/
|
|
26
|
+
disableEditTools(): void;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@injectable()
|
|
30
|
+
export class GLSPToolManager extends ToolManager implements IGLSPToolManager, EditModeListener {
|
|
31
|
+
protected editorContext?: EditorContextService;
|
|
32
|
+
|
|
33
|
+
@multiInject(GLSP_TYPES.ITool) @optional() tools: Tool[];
|
|
34
|
+
@multiInject(GLSP_TYPES.IDefaultTool) @optional() defaultTools: Tool[];
|
|
35
|
+
@inject(GLSP_TYPES.IEditorContextServiceProvider) contextServiceProvider: EditorContextServiceProvider;
|
|
36
|
+
|
|
37
|
+
@postConstruct()
|
|
38
|
+
protected initialize(): void {
|
|
39
|
+
this.registerTools(...this.tools);
|
|
40
|
+
this.registerDefaultTools(...this.defaultTools);
|
|
41
|
+
this.enableDefaultTools();
|
|
42
|
+
this.contextServiceProvider().then(editorContext => {
|
|
43
|
+
editorContext.register(this);
|
|
44
|
+
this.editorContext = editorContext;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
registerDefaultTools(...tools: Tool[]): void {
|
|
49
|
+
for (const tool of tools) {
|
|
50
|
+
distinctAdd(this.defaultTools, tool);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
registerTools(...tools: Tool[]): void {
|
|
55
|
+
for (const tool of tools) {
|
|
56
|
+
distinctAdd(this.tools, tool);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
enable(toolIds: string[]): void {
|
|
61
|
+
this.disableActiveTools();
|
|
62
|
+
let tools = toolIds.map(id => this.tool(id));
|
|
63
|
+
if (this.editorContext && this.editorContext.isReadonly) {
|
|
64
|
+
tools = tools.filter(tool => tool && (!isGLSPTool(tool) || tool.isEditTool === false));
|
|
65
|
+
}
|
|
66
|
+
tools.forEach(tool => {
|
|
67
|
+
if (tool !== undefined) {
|
|
68
|
+
tool.enable();
|
|
69
|
+
this.actives.push(tool);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
disableEditTools(): void {
|
|
75
|
+
this.disableActiveTools();
|
|
76
|
+
this.enable(this.defaultTools.filter(tool => !isGLSPTool(tool) || tool.isEditTool === false).map(tool => tool.id));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
editModeChanged(oldValue: string, newValue: string): void {
|
|
80
|
+
if (oldValue === newValue) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (newValue === EditMode.READONLY) {
|
|
84
|
+
this.disableEditTools();
|
|
85
|
+
} else if (newValue === EditMode.EDITABLE) {
|
|
86
|
+
this.enableDefaultTools();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface GLSPTool extends Tool {
|
|
92
|
+
isEditTool: boolean;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export function isGLSPTool(tool: Tool): tool is GLSPTool {
|
|
96
|
+
return 'isEditTool' in tool && typeof tool['isEditTool'] === 'boolean';
|
|
97
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019 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
|
+
export const GLSP_TYPES = {
|
|
17
|
+
IAsyncClipboardService: Symbol.for('IAsyncClipboardService'),
|
|
18
|
+
ICommandPaletteActionProviderRegistry: Symbol.for('ICommandPaletteActionProviderRegistry'),
|
|
19
|
+
IEditorContextServiceProvider: Symbol.for('IEditorContextProvider'),
|
|
20
|
+
IFeedbackActionDispatcher: Symbol.for('IFeedbackActionDispatcher'),
|
|
21
|
+
IToolFactory: Symbol.for('Factory<Tool>'),
|
|
22
|
+
ITypeHintProvider: Symbol.for('ITypeHintProvider'),
|
|
23
|
+
IMovementRestrictor: Symbol.for('IMovmementRestrictor'),
|
|
24
|
+
SelectionService: Symbol.for('SelectionService'),
|
|
25
|
+
SelectionListener: Symbol.for('SelectionListener'),
|
|
26
|
+
SModelRootListener: Symbol.for('SModelRootListener'),
|
|
27
|
+
MouseTool: Symbol.for('MouseTool'),
|
|
28
|
+
IContextMenuService: Symbol.for('IContextMenuService'),
|
|
29
|
+
IContextMenuServiceProvider: Symbol.for('IContextMenuServiceProvider'),
|
|
30
|
+
IContextMenuProviderRegistry: Symbol.for('IContextMenuProviderRegistry'),
|
|
31
|
+
IContextMenuProvider: Symbol.for('IContextMenuProvider'),
|
|
32
|
+
ICopyPasteHandler: Symbol.for('ICopyPasteHandler'),
|
|
33
|
+
IGLSPToolManager: Symbol.for('IGLSPToolManager'),
|
|
34
|
+
ITool: Symbol.for('ITool'),
|
|
35
|
+
IDefaultTool: Symbol.for('IDefaultTool'),
|
|
36
|
+
IEditModeListener: Symbol.for('IEditModeListener')
|
|
37
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { IView, ViewRegistry } from 'sprotty';
|
|
18
|
+
|
|
19
|
+
@injectable()
|
|
20
|
+
export class GLSPViewRegistry extends ViewRegistry {
|
|
21
|
+
register(key: string, instance: IView): void {
|
|
22
|
+
if (key === undefined) {
|
|
23
|
+
throw new Error('Key is undefined');
|
|
24
|
+
}
|
|
25
|
+
if (this.hasKey(key)) {
|
|
26
|
+
// do not throw error but log overwriting
|
|
27
|
+
console.log(`View instance for type '${key}' will be overwritten.`);
|
|
28
|
+
}
|
|
29
|
+
this.elements.set(key, instance);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019 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
|
+
import {
|
|
17
|
+
BoundsAware,
|
|
18
|
+
Hoverable,
|
|
19
|
+
hoverFeedbackFeature,
|
|
20
|
+
isBoundsAware,
|
|
21
|
+
isMoveable,
|
|
22
|
+
isSelectable,
|
|
23
|
+
Locateable,
|
|
24
|
+
SChildElement,
|
|
25
|
+
Selectable,
|
|
26
|
+
SModelElement,
|
|
27
|
+
SParentElement
|
|
28
|
+
} from 'sprotty';
|
|
29
|
+
|
|
30
|
+
export const resizeFeature = Symbol('resizeFeature');
|
|
31
|
+
|
|
32
|
+
export interface Resizable extends BoundsAware, Selectable {
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function isResizable(element: SModelElement): element is SParentElement & Resizable {
|
|
36
|
+
return isBoundsAware(element) && isSelectable(element) && element instanceof SParentElement && element.hasFeature(resizeFeature);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export enum ResizeHandleLocation {
|
|
40
|
+
TopLeft = 'top-left',
|
|
41
|
+
TopRight = 'top-right',
|
|
42
|
+
BottomLeft = 'bottom-left',
|
|
43
|
+
BottomRight = 'bottom-right'
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function isBoundsAwareMoveable(element: SModelElement): element is SModelElement & Locateable & BoundsAware {
|
|
47
|
+
return isMoveable(element) && isBoundsAware(element);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export class SResizeHandle extends SChildElement implements Hoverable {
|
|
51
|
+
static readonly TYPE = 'resize-handle';
|
|
52
|
+
|
|
53
|
+
constructor(public readonly location?: ResizeHandleLocation,
|
|
54
|
+
public readonly type: string = SResizeHandle.TYPE,
|
|
55
|
+
public readonly hoverFeedback: boolean = false) {
|
|
56
|
+
super();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
hasFeature(feature: symbol): boolean {
|
|
60
|
+
return feature === hoverFeedbackFeature;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function addResizeHandles(element: SParentElement): void {
|
|
65
|
+
removeResizeHandles(element);
|
|
66
|
+
element.add(new SResizeHandle(ResizeHandleLocation.TopLeft));
|
|
67
|
+
element.add(new SResizeHandle(ResizeHandleLocation.TopRight));
|
|
68
|
+
element.add(new SResizeHandle(ResizeHandleLocation.BottomLeft));
|
|
69
|
+
element.add(new SResizeHandle(ResizeHandleLocation.BottomRight));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export function removeResizeHandles(element: SParentElement): void {
|
|
73
|
+
element.removeAll(child => child instanceof SResizeHandle);
|
|
74
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019 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
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { BoundsAware, Point, SModelElement, SNode, SParentElement } from 'sprotty';
|
|
18
|
+
|
|
19
|
+
import { toAbsoluteBounds } from '../../utils/viewpoint-util';
|
|
20
|
+
import { ModifyCSSFeedbackAction } from '../tool-feedback/css-feedback';
|
|
21
|
+
import { isBoundsAwareMoveable, SResizeHandle } from './model';
|
|
22
|
+
|
|
23
|
+
export interface IMovementRestrictor {
|
|
24
|
+
validate(newLocation: Point, element: SModelElement): boolean;
|
|
25
|
+
cssClasses?: string[];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function createMovementRestrictionFeedback(element: SModelElement, movementRestrictor: IMovementRestrictor): ModifyCSSFeedbackAction {
|
|
29
|
+
const elements: SModelElement[] = [element];
|
|
30
|
+
if (element instanceof SParentElement) {
|
|
31
|
+
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
32
|
+
}
|
|
33
|
+
return new ModifyCSSFeedbackAction(elements, movementRestrictor.cssClasses);
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function removeMovementRestrictionFeedback(element: SModelElement, movementRestrictor: IMovementRestrictor): ModifyCSSFeedbackAction {
|
|
38
|
+
const elements: SModelElement[] = [element];
|
|
39
|
+
if (element instanceof SParentElement) {
|
|
40
|
+
element.children.filter(child => child instanceof SResizeHandle).forEach(e => elements.push(e));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return new ModifyCSSFeedbackAction(elements, undefined, movementRestrictor.cssClasses);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@injectable()
|
|
47
|
+
export class NoOverlapMovmentRestrictor implements IMovementRestrictor {
|
|
48
|
+
cssClasses = ['movement-not-allowed'];
|
|
49
|
+
|
|
50
|
+
validate(newLocation: Point, element: SModelElement): boolean {
|
|
51
|
+
if (!isBoundsAwareMoveable(element)) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
// Create ghost element at the newLocation
|
|
55
|
+
const ghostElement = Object.create(element) as SModelElement & BoundsAware;
|
|
56
|
+
ghostElement.bounds = {
|
|
57
|
+
x: newLocation.x,
|
|
58
|
+
y: newLocation.y,
|
|
59
|
+
width: element.bounds.width,
|
|
60
|
+
height: element.bounds.height
|
|
61
|
+
};
|
|
62
|
+
ghostElement.type = 'Ghost';
|
|
63
|
+
ghostElement.id = element.id;
|
|
64
|
+
return !Array.from(element.root.index.all().filter(e => e.id !== ghostElement.id && e !== ghostElement.root && (e instanceof SNode))
|
|
65
|
+
.map(e => e as SModelElement & BoundsAware)).some(e => areOverlapping(e, ghostElement));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function areOverlapping(element1: SModelElement & BoundsAware, element2: SModelElement & BoundsAware): boolean {
|
|
70
|
+
const b1 = toAbsoluteBounds(element1);
|
|
71
|
+
const b2 = toAbsoluteBounds(element2);
|
|
72
|
+
const r1TopLeft: Point = b1;
|
|
73
|
+
const r1BottomRight = { x: b1.x + b1.width, y: b1.y + b1.height };
|
|
74
|
+
const r2TopLeft: Point = b2;
|
|
75
|
+
const r2BottomRight = { x: b2.x + b2.width, y: b2.y + b2.height };
|
|
76
|
+
|
|
77
|
+
// If one rectangle is on left side of other
|
|
78
|
+
if (r1TopLeft.x > r2BottomRight.x || r2TopLeft.x > r1BottomRight.x) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// If one rectangle is above other
|
|
83
|
+
if (r1BottomRight.y < r2TopLeft.y || r2BottomRight.y < r1TopLeft.y) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return true;
|
|
88
|
+
|
|
89
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2020 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
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { ISnapper, Point, SModelElement } from 'sprotty';
|
|
18
|
+
|
|
19
|
+
@injectable()
|
|
20
|
+
export class GridSnapper implements ISnapper {
|
|
21
|
+
get gridX(): number {
|
|
22
|
+
return 10;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
get gridY(): number {
|
|
26
|
+
return 10;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
snap(position: Point, element: SModelElement): Point {
|
|
30
|
+
return {
|
|
31
|
+
x: Math.round(position.x / this.gridX) * this.gridX,
|
|
32
|
+
y: Math.round(position.y / this.gridY) * this.gridY
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2020 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
|
+
import { inject, injectable, postConstruct } from 'inversify';
|
|
17
|
+
import { CommandPaletteKeyListener, KeyListener, KeyTool, Tool } from 'sprotty';
|
|
18
|
+
|
|
19
|
+
@injectable()
|
|
20
|
+
export class CommandPaletteTool implements Tool {
|
|
21
|
+
static ID = 'glsp.command-palette-tool';
|
|
22
|
+
|
|
23
|
+
protected commandPaletteKeyListener: KeyListener;
|
|
24
|
+
@inject(KeyTool) protected keyTool: KeyTool;
|
|
25
|
+
|
|
26
|
+
@postConstruct()
|
|
27
|
+
protected postConstruct(): void {
|
|
28
|
+
this.commandPaletteKeyListener = this.createCommandPaleteKeyListener();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
get id(): string {
|
|
32
|
+
return CommandPaletteTool.ID;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
enable(): void {
|
|
36
|
+
this.keyTool.register(this.commandPaletteKeyListener);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
disable(): void {
|
|
40
|
+
this.keyTool.deregister(this.commandPaletteKeyListener);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
protected createCommandPaleteKeyListener(): KeyListener {
|
|
44
|
+
return new CommandPaletteKeyListener();
|
|
45
|
+
}
|
|
46
|
+
}
|