@eclipse-glsp/client 1.1.0-RC09 → 1.1.0-RC10
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/{src/base/actions/sprotty-actions.ts → css/autocomplete-palette.css} +7 -11
- package/css/glsp-sprotty.css +16 -1
- package/lib/base/action-dispatcher.d.ts +1 -17
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +6 -7
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +2 -2
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +3 -3
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/argumentable.d.ts +2 -3
- package/lib/base/argumentable.d.ts.map +1 -1
- package/lib/base/argumentable.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.d.ts +2 -2
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js +3 -3
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +9 -4
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +33 -32
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts +16 -1
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +6 -7
- 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 +2 -2
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts +1 -1
- package/lib/base/container-modules.d.ts.map +1 -1
- package/lib/base/container-modules.js +40 -41
- package/lib/base/container-modules.js.map +1 -1
- package/lib/base/di.config.d.ts +1 -1
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +14 -16
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +2 -3
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js +17 -2
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +1 -17
- package/lib/base/editor-context-service.d.ts.map +1 -1
- package/lib/base/editor-context-service.js +10 -12
- package/lib/base/editor-context-service.js.map +1 -1
- package/lib/base/focus-tracker.d.ts +1 -17
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +17 -2
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.d.ts +1 -1
- package/lib/base/model/model-registry.d.ts.map +1 -1
- package/lib/base/model/model-registry.js +3 -3
- package/lib/base/model/model-registry.js.map +1 -1
- package/lib/base/model/update-model-command.d.ts +1 -17
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +12 -14
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +1 -16
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +5 -6
- 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 +3 -3
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.js +3 -3
- package/lib/base/source-uri-aware.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +14 -16
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/view/view-registry.d.ts +1 -1
- package/lib/base/view/view-registry.d.ts.map +1 -1
- package/lib/base/view/view-registry.js +3 -3
- package/lib/base/view/view-registry.js.map +1 -1
- package/lib/features/accessibility/di.config.d.ts +21 -0
- package/lib/features/accessibility/di.config.d.ts.map +1 -0
- package/lib/features/accessibility/di.config.js +34 -0
- package/lib/features/accessibility/di.config.js.map +1 -0
- package/lib/features/accessibility/move-zoom/di.config.d.ts +23 -0
- package/lib/features/accessibility/move-zoom/di.config.d.ts.map +1 -0
- package/lib/features/accessibility/move-zoom/di.config.js +41 -0
- package/lib/features/accessibility/move-zoom/di.config.js.map +1 -0
- package/lib/features/accessibility/move-zoom/move-handler.d.ts +80 -0
- package/lib/features/accessibility/move-zoom/move-handler.d.ts.map +1 -0
- package/lib/features/accessibility/move-zoom/move-handler.js +171 -0
- package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -0
- package/lib/features/accessibility/move-zoom/zoom-handler.d.ts +73 -0
- package/lib/features/accessibility/move-zoom/zoom-handler.d.ts.map +1 -0
- package/lib/features/accessibility/move-zoom/zoom-handler.js +157 -0
- package/lib/features/accessibility/move-zoom/zoom-handler.js.map +1 -0
- package/lib/features/accessibility/resize-key-tool/di.config.d.ts +23 -0
- package/lib/features/accessibility/resize-key-tool/di.config.d.ts.map +1 -0
- package/lib/features/accessibility/resize-key-tool/di.config.js +36 -0
- package/lib/features/accessibility/resize-key-tool/di.config.js.map +1 -0
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts +54 -0
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts.map +1 -0
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +124 -0
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -0
- package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts +43 -0
- package/lib/features/accessibility/resize-key-tool/resize-key-tool.d.ts.map +1 -0
- package/lib/features/accessibility/resize-key-tool/resize-key-tool.js +126 -0
- package/lib/features/accessibility/resize-key-tool/resize-key-tool.js.map +1 -0
- package/lib/features/accessibility/search/di.config.d.ts +20 -0
- package/lib/features/accessibility/search/di.config.d.ts.map +1 -0
- package/lib/features/accessibility/search/di.config.js +32 -0
- package/lib/features/accessibility/search/di.config.js.map +1 -0
- package/lib/features/accessibility/search/search-palette.d.ts +46 -0
- package/lib/features/accessibility/search/search-palette.d.ts.map +1 -0
- package/lib/features/accessibility/search/search-palette.js +162 -0
- package/lib/features/accessibility/search/search-palette.js.map +1 -0
- package/lib/features/accessibility/search/search-tool.d.ts +29 -0
- package/lib/features/accessibility/search/search-tool.d.ts.map +1 -0
- package/lib/features/accessibility/search/search-tool.js +73 -0
- package/lib/features/accessibility/search/search-tool.js.map +1 -0
- package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts +34 -0
- package/lib/features/accessibility/view-key-tools/deselect-key-tool.d.ts.map +1 -0
- package/lib/features/accessibility/view-key-tools/deselect-key-tool.js +86 -0
- package/lib/features/accessibility/view-key-tools/deselect-key-tool.js.map +1 -0
- package/lib/features/accessibility/view-key-tools/di.config.d.ts +20 -0
- package/lib/features/accessibility/view-key-tools/di.config.d.ts.map +1 -0
- package/lib/features/accessibility/view-key-tools/di.config.js +34 -0
- package/lib/features/accessibility/view-key-tools/di.config.js.map +1 -0
- package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +48 -0
- package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -0
- package/lib/features/accessibility/view-key-tools/movement-key-tool.js +130 -0
- package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -0
- package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts +42 -0
- package/lib/features/accessibility/view-key-tools/zoom-key-tool.d.ts.map +1 -0
- package/lib/features/accessibility/view-key-tools/zoom-key-tool.js +107 -0
- package/lib/features/accessibility/view-key-tools/zoom-key-tool.js.map +1 -0
- package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.d.ts +35 -0
- package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.d.ts.map +1 -0
- package/lib/{base/actions/sprotty-actions.js → features/autocomplete-palette/autocomplete-suggestion-providers.js} +3 -6
- package/lib/features/autocomplete-palette/autocomplete-suggestion-providers.js.map +1 -0
- package/lib/features/autocomplete-palette/base-autocomplete-palette.d.ts +40 -0
- package/lib/features/autocomplete-palette/base-autocomplete-palette.d.ts.map +1 -0
- package/lib/features/autocomplete-palette/base-autocomplete-palette.js +82 -0
- package/lib/features/autocomplete-palette/base-autocomplete-palette.js.map +1 -0
- package/lib/features/bounds/di.config.d.ts +15 -0
- package/lib/features/bounds/di.config.d.ts.map +1 -1
- package/lib/features/bounds/di.config.js +10 -12
- package/lib/features/bounds/di.config.js.map +1 -1
- package/lib/features/bounds/freeform-layout.d.ts +1 -19
- package/lib/features/bounds/freeform-layout.d.ts.map +1 -1
- package/lib/features/bounds/freeform-layout.js +3 -4
- package/lib/features/bounds/freeform-layout.js.map +1 -1
- package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts +1 -2
- package/lib/features/bounds/glsp-hidden-bounds-updater.d.ts.map +1 -1
- package/lib/features/bounds/glsp-hidden-bounds-updater.js +6 -7
- package/lib/features/bounds/glsp-hidden-bounds-updater.js.map +1 -1
- package/lib/features/bounds/hbox-layout.d.ts +1 -17
- package/lib/features/bounds/hbox-layout.d.ts.map +1 -1
- package/lib/features/bounds/hbox-layout.js +9 -10
- package/lib/features/bounds/hbox-layout.js.map +1 -1
- package/lib/features/bounds/layouter.d.ts +1 -17
- package/lib/features/bounds/layouter.d.ts.map +1 -1
- package/lib/features/bounds/layouter.js +8 -9
- package/lib/features/bounds/layouter.js.map +1 -1
- package/lib/features/bounds/vbox-layout.d.ts +1 -17
- package/lib/features/bounds/vbox-layout.d.ts.map +1 -1
- package/lib/features/bounds/vbox-layout.js +9 -10
- package/lib/features/bounds/vbox-layout.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +2 -2
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +7 -7
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +1 -17
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +19 -4
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +1 -17
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +17 -2
- 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 +4 -4
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +15 -0
- package/lib/features/command-palette/di.config.d.ts.map +1 -1
- package/lib/features/command-palette/di.config.js +5 -7
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +1 -17
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +5 -6
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +1 -17
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +4 -5
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +15 -0
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +7 -9
- 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 +1 -17
- 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 +21 -7
- 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 +1 -17
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +6 -8
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +1 -17
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +7 -9
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +1 -17
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +7 -8
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +1 -1
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +6 -7
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +1 -17
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +6 -7
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +15 -0
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +2 -3
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +15 -0
- package/lib/features/edit-label/di.config.d.ts.map +1 -1
- package/lib/features/edit-label/di.config.js +5 -7
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-tool.js +4 -4
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +1 -17
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +7 -8
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/export/di.config.d.ts +15 -0
- package/lib/features/export/di.config.d.ts.map +1 -1
- package/lib/features/export/di.config.js +5 -6
- package/lib/features/export/di.config.js.map +1 -1
- package/lib/features/export/glsp-svg-exporter.d.ts +1 -17
- package/lib/features/export/glsp-svg-exporter.d.ts.map +1 -1
- package/lib/features/export/glsp-svg-exporter.js +18 -3
- package/lib/features/export/glsp-svg-exporter.js.map +1 -1
- package/lib/features/hints/di.config.d.ts +15 -0
- package/lib/features/hints/di.config.d.ts.map +1 -1
- package/lib/features/hints/di.config.js +5 -7
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/model.d.ts +2 -3
- package/lib/features/hints/model.d.ts.map +1 -1
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +1 -17
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +14 -16
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +15 -0
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +18 -20
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +1 -17
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +9 -12
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.js +3 -3
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/layout-elements-action.d.ts +1 -17
- package/lib/features/layout/layout-elements-action.d.ts.map +1 -1
- package/lib/features/layout/layout-elements-action.js +15 -19
- package/lib/features/layout/layout-elements-action.js.map +1 -1
- package/lib/features/mouse-tool/di.config.d.ts +1 -1
- package/lib/features/mouse-tool/di.config.d.ts.map +1 -1
- package/lib/features/mouse-tool/di.config.js +4 -5
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +5 -7
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.d.ts +15 -0
- package/lib/features/navigation/di.config.d.ts.map +1 -1
- package/lib/features/navigation/di.config.js +5 -6
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +1 -17
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +19 -20
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +1 -17
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +9 -10
- package/lib/features/navigation/navigation-target-resolver.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 +7 -7
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +15 -0
- package/lib/features/save/di.config.d.ts.map +1 -1
- package/lib/features/save/di.config.js +2 -3
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/model.d.ts +2 -2
- package/lib/features/save/model.d.ts.map +1 -1
- package/lib/features/save/save-keylistener.d.ts +2 -3
- package/lib/features/save/save-keylistener.d.ts.map +1 -1
- package/lib/features/save/save-keylistener.js +5 -7
- package/lib/features/save/save-keylistener.js.map +1 -1
- package/lib/features/select/di.config.d.ts +15 -0
- package/lib/features/select/di.config.d.ts.map +1 -1
- package/lib/features/select/di.config.js +7 -9
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts +1 -17
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +7 -9
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +2 -3
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +23 -26
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +1 -17
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +20 -22
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/source-model-watcher/di.config.d.ts +15 -0
- package/lib/features/source-model-watcher/di.config.d.ts.map +1 -1
- package/lib/features/source-model-watcher/di.config.js +3 -4
- package/lib/features/source-model-watcher/di.config.js.map +1 -1
- package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts +1 -17
- package/lib/features/source-model-watcher/source-model-changed-action-handler.d.ts.map +1 -1
- package/lib/features/source-model-watcher/source-model-changed-action-handler.js +7 -8
- package/lib/features/source-model-watcher/source-model-changed-action-handler.js.map +1 -1
- package/lib/features/svg-metadata/di.config.js +2 -2
- package/lib/features/svg-metadata/di.config.js.map +1 -1
- package/lib/features/svg-metadata/metadata-placer.d.ts +1 -2
- package/lib/features/svg-metadata/metadata-placer.d.ts.map +1 -1
- package/lib/features/svg-metadata/metadata-placer.js +11 -13
- package/lib/features/svg-metadata/metadata-placer.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +1 -18
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +14 -16
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +1 -17
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +22 -24
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +1 -17
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +4 -6
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +15 -0
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +18 -20
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +1 -17
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +27 -29
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +1 -17
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +18 -3
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +1 -17
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +7 -8
- 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.d.ts.map +1 -1
- package/lib/features/tool-feedback/model.js +3 -3
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +1 -17
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +5 -6
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +15 -0
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +4 -6
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +1 -17
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +19 -22
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +1 -17
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +21 -7
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +1 -17
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +22 -24
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +1 -17
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +15 -18
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +1 -1
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +14 -16
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +1 -17
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +14 -15
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +1 -17
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +18 -20
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts +1 -17
- package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -1
- package/lib/features/tools/enable-default-tools-on-focus-loss.js +17 -2
- package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -1
- package/lib/features/tools/glsp-manhattan-edge-router.d.ts +1 -1
- package/lib/features/tools/glsp-manhattan-edge-router.d.ts.map +1 -1
- package/lib/features/tools/glsp-manhattan-edge-router.js +5 -6
- package/lib/features/tools/glsp-manhattan-edge-router.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +2 -2
- package/lib/features/tools/marquee-behavior.d.ts.map +1 -1
- package/lib/features/tools/marquee-behavior.js +4 -4
- package/lib/features/tools/marquee-behavior.js.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.d.ts +1 -18
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +15 -18
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +1 -17
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +20 -5
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +2 -3
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +18 -3
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +1 -17
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +10 -11
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts +1 -1
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +4 -4
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +15 -0
- package/lib/features/validation/di.config.d.ts.map +1 -1
- package/lib/features/validation/di.config.js +7 -9
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +2 -3
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +9 -10
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +1 -17
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +17 -20
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/validate.d.ts +1 -17
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +11 -13
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +15 -0
- package/lib/features/viewport/di.config.d.ts.map +1 -1
- package/lib/features/viewport/di.config.js +10 -11
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +1 -17
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +19 -4
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/{base/tool-manager/tool-actions.d.ts → glsp-sprotty/augmented-actions.d.ts} +7 -2
- package/lib/glsp-sprotty/augmented-actions.d.ts.map +1 -0
- package/lib/{base/tool-manager/tool-actions.js → glsp-sprotty/augmented-actions.js} +6 -2
- package/lib/glsp-sprotty/augmented-actions.js.map +1 -0
- package/lib/{sprotty-reexport.d.ts → glsp-sprotty/index.d.ts} +31 -15
- package/lib/glsp-sprotty/index.d.ts.map +1 -0
- package/lib/{sprotty-reexport.js → glsp-sprotty/index.js} +70 -37
- package/lib/glsp-sprotty/index.js.map +1 -0
- package/lib/glsp-sprotty/types.d.ts.map +1 -0
- package/lib/{base → glsp-sprotty}/types.js +2 -1
- package/lib/glsp-sprotty/types.js.map +1 -0
- package/lib/index.d.ts +14 -6
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +64 -51
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +1 -2
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +8 -9
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +1 -17
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +10 -11
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/utils/argument-utils.d.ts +2 -2
- package/lib/utils/argument-utils.d.ts.map +1 -1
- package/lib/utils/argument-utils.js +1 -1
- package/lib/utils/argument-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +2 -3
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/marker.d.ts +16 -1
- package/lib/utils/marker.d.ts.map +1 -1
- package/lib/utils/marker.js +6 -7
- package/lib/utils/marker.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +1 -3
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +11 -12
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +2 -3
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +5 -6
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts +1 -1
- package/lib/views/base-view-module.d.ts.map +1 -1
- package/lib/views/base-view-module.js +21 -22
- package/lib/views/base-view-module.js.map +1 -1
- package/lib/views/compartments.d.ts +1 -1
- package/lib/views/compartments.d.ts.map +1 -1
- package/lib/views/compartments.js +4 -4
- package/lib/views/compartments.js.map +1 -1
- package/lib/views/glsp-edge-view.d.ts +1 -17
- package/lib/views/glsp-edge-view.d.ts.map +1 -1
- package/lib/views/glsp-edge-view.js +18 -3
- package/lib/views/glsp-edge-view.js.map +1 -1
- package/lib/views/glsp-projection-view.d.ts +2 -4
- package/lib/views/glsp-projection-view.d.ts.map +1 -1
- package/lib/views/glsp-projection-view.js +11 -9
- package/lib/views/glsp-projection-view.js.map +1 -1
- package/lib/views/issue-marker-view.d.ts +1 -1
- package/lib/views/issue-marker-view.d.ts.map +1 -1
- package/lib/views/issue-marker-view.js +5 -5
- package/lib/views/issue-marker-view.js.map +1 -1
- package/lib/views/rounded-corner-view.d.ts +1 -1
- package/lib/views/rounded-corner-view.d.ts.map +1 -1
- package/lib/views/rounded-corner-view.js +4 -4
- package/lib/views/rounded-corner-view.js.map +1 -1
- package/lib/views/rounded-corner.d.ts +1 -2
- package/lib/views/rounded-corner.d.ts.map +1 -1
- package/lib/views/rounded-corner.js.map +1 -1
- package/package.json +9 -6
- package/src/base/action-dispatcher.ts +2 -3
- package/src/base/actions/focus-change-action.ts +2 -2
- package/src/base/argumentable.ts +2 -3
- package/src/base/auto-complete/auto-complete-actions.ts +2 -2
- package/src/base/auto-complete/auto-complete-widget.ts +32 -11
- package/src/base/auto-complete/validation-decorator.ts +2 -3
- package/src/base/command-stack.ts +1 -1
- package/src/base/container-modules.ts +4 -3
- package/src/base/di.config.ts +12 -3
- package/src/base/drag-aware-mouse-listener.ts +2 -3
- package/src/base/editor-context-service.ts +15 -3
- package/src/base/focus-tracker.ts +2 -4
- package/src/base/model/model-registry.ts +2 -2
- package/src/base/model/update-model-command.ts +8 -5
- package/src/base/model-initialization-constraint.ts +2 -3
- package/src/base/selection-clearing-mouse-listener.ts +2 -2
- package/src/base/source-uri-aware.ts +2 -2
- package/src/base/tool-manager/glsp-tool-manager.ts +1 -3
- package/src/base/view/view-registry.ts +2 -2
- package/src/features/accessibility/README.md +65 -0
- package/src/features/accessibility/di.config.ts +32 -0
- package/src/features/accessibility/move-zoom/di.config.ts +42 -0
- package/src/features/accessibility/move-zoom/move-handler.ts +209 -0
- package/src/features/accessibility/move-zoom/zoom-handler.ts +182 -0
- package/src/features/accessibility/resize-key-tool/di.config.ts +35 -0
- package/src/features/accessibility/resize-key-tool/resize-key-handler.ts +129 -0
- package/src/features/accessibility/resize-key-tool/resize-key-tool.ts +106 -0
- package/src/features/accessibility/search/di.config.ts +30 -0
- package/src/features/accessibility/search/search-palette.ts +193 -0
- package/src/features/accessibility/search/search-tool.ts +59 -0
- package/src/features/accessibility/view-key-tools/deselect-key-tool.ts +88 -0
- package/src/features/accessibility/view-key-tools/di.config.ts +32 -0
- package/src/features/accessibility/view-key-tools/movement-key-tool.ts +113 -0
- package/src/features/accessibility/view-key-tools/zoom-key-tool.ts +92 -0
- package/src/features/autocomplete-palette/autocomplete-suggestion-providers.ts +37 -0
- package/src/features/autocomplete-palette/base-autocomplete-palette.ts +87 -0
- package/src/features/bounds/di.config.ts +7 -7
- package/src/features/bounds/freeform-layout.spec.ts +2 -2
- package/src/features/bounds/freeform-layout.ts +12 -4
- package/src/features/bounds/glsp-hidden-bounds-updater.ts +13 -2
- package/src/features/bounds/hbox-layout.spec.ts +2 -3
- package/src/features/bounds/hbox-layout.ts +8 -6
- package/src/features/bounds/layouter-test-util.spec.ts +6 -5
- package/src/features/bounds/layouter.ts +6 -6
- package/src/features/bounds/vbox-layout.spec.ts +2 -3
- package/src/features/bounds/vbox-layout.ts +7 -5
- package/src/features/change-bounds/model.ts +2 -2
- package/src/features/change-bounds/movement-restrictor.ts +3 -4
- package/src/features/change-bounds/snap.spec.ts +2 -2
- package/src/features/change-bounds/snap.ts +2 -3
- package/src/features/command-palette/command-palette-tool.ts +1 -1
- package/src/features/command-palette/di.config.ts +1 -3
- package/src/features/command-palette/server-command-palette-provider.ts +11 -4
- package/src/features/context-menu/delete-element-context-menu.ts +2 -4
- package/src/features/context-menu/di.config.ts +1 -3
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +2 -4
- package/src/features/context-menu/server-context-menu-provider.ts +12 -4
- package/src/features/copy-paste/copy-paste-context-menu.ts +15 -4
- package/src/features/copy-paste/copy-paste-handler.ts +9 -3
- package/src/features/copy-paste/di.config.ts +2 -3
- package/src/features/decoration/decoration-placer.ts +2 -3
- package/src/features/decoration/di.config.ts +1 -2
- package/src/features/edit-label/di.config.ts +1 -3
- package/src/features/edit-label/edit-label-tool.ts +2 -2
- package/src/features/edit-label/edit-label-validator.ts +9 -6
- package/src/features/export/di.config.ts +1 -2
- package/src/features/export/glsp-svg-exporter.ts +1 -2
- package/src/features/hints/di.config.ts +2 -4
- package/src/features/hints/model.ts +2 -3
- package/src/features/hints/type-hints.ts +13 -9
- package/src/features/hover/di.config.ts +6 -6
- package/src/features/hover/hover.ts +14 -9
- package/src/features/layout/di.config.ts +1 -1
- package/src/features/layout/layout-elements-action.spec.ts +13 -15
- package/src/features/layout/layout-elements-action.ts +13 -11
- package/src/features/mouse-tool/di.config.ts +2 -3
- package/src/features/mouse-tool/mouse-tool.ts +2 -4
- package/src/features/navigation/di.config.ts +1 -2
- package/src/features/navigation/navigation-action-handler.ts +11 -7
- package/src/features/navigation/navigation-target-resolver.spec.ts +2 -3
- package/src/features/navigation/navigation-target-resolver.ts +10 -4
- package/src/features/reconnect/model.ts +2 -2
- package/src/features/save/di.config.ts +1 -2
- package/src/features/save/model.ts +2 -2
- package/src/features/save/save-keylistener.ts +2 -4
- package/src/features/select/di.config.ts +1 -3
- package/src/features/select/select-feedback-action.ts +11 -4
- package/src/features/select/select-mouse-listener.ts +11 -10
- package/src/features/select/selection-service.spec.ts +1 -4
- package/src/features/select/selection-service.ts +14 -9
- package/src/features/source-model-watcher/di.config.ts +2 -3
- package/src/features/source-model-watcher/source-model-changed-action-handler.ts +11 -4
- package/src/features/svg-metadata/di.config.ts +1 -1
- package/src/features/svg-metadata/metadata-placer.ts +2 -4
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +11 -9
- package/src/features/tool-feedback/creation-tool-feedback.ts +11 -8
- package/src/features/tool-feedback/css-feedback.ts +2 -5
- package/src/features/tool-feedback/di.config.ts +1 -3
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +13 -10
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +2 -4
- package/src/features/tool-feedback/marquee-tool-feedback.ts +6 -4
- package/src/features/tool-feedback/model.ts +2 -2
- package/src/features/tool-feedback/view.tsx +2 -3
- package/src/features/tool-palette/di.config.ts +1 -3
- package/src/features/tool-palette/tool-palette.ts +10 -5
- package/src/features/tools/base-glsp-tool.ts +2 -4
- package/src/features/tools/change-bounds-tool.ts +14 -16
- package/src/features/tools/delete-tool.ts +10 -9
- package/src/features/tools/di.config.ts +11 -3
- package/src/features/tools/edge-creation-tool.ts +9 -7
- package/src/features/tools/edge-edit-tool.ts +13 -11
- package/src/features/tools/enable-default-tools-on-focus-loss.ts +2 -3
- package/src/features/tools/glsp-manhattan-edge-router.ts +1 -2
- package/src/features/tools/marquee-behavior.ts +2 -3
- package/src/features/tools/marquee-mouse-tool.ts +9 -8
- package/src/features/tools/marquee-tool.ts +2 -3
- package/src/features/tools/model.ts +2 -3
- package/src/features/tools/node-creation-tool.ts +8 -6
- package/src/features/tools/view.tsx +2 -2
- package/src/features/validation/di.config.ts +1 -3
- package/src/features/validation/issue-marker.ts +13 -3
- package/src/features/validation/marker-navigator.spec.ts +7 -8
- package/src/features/validation/marker-navigator.ts +16 -11
- package/src/features/validation/validate.ts +16 -4
- package/src/features/viewport/di.config.ts +2 -2
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +10 -3
- package/src/{base/tool-manager/tool-actions.ts → glsp-sprotty/augmented-actions.ts} +14 -3
- package/src/{sprotty-reexport.ts → glsp-sprotty/index.ts} +81 -41
- package/src/{base → glsp-sprotty}/types.ts +2 -1
- package/src/index.ts +19 -6
- package/src/lib/model.ts +12 -2
- package/src/model-source/glsp-diagram-server.ts +10 -5
- package/src/utils/argument-utils.ts +2 -2
- package/src/utils/layout-utils.ts +2 -3
- package/src/utils/marker.ts +2 -3
- package/src/utils/smodel-util.ts +9 -11
- package/src/utils/viewpoint-util.ts +13 -3
- package/src/views/base-view-module.ts +8 -7
- package/src/views/compartments.tsx +2 -2
- package/src/views/glsp-edge-view.tsx +1 -2
- package/src/views/glsp-projection-view.tsx +6 -5
- package/src/views/issue-marker-view.tsx +2 -2
- package/src/views/rounded-corner-view.tsx +1 -1
- package/src/views/rounded-corner.ts +1 -2
- package/lib/base/actions/sprotty-actions.d.ts +0 -7
- package/lib/base/actions/sprotty-actions.d.ts.map +0 -1
- package/lib/base/actions/sprotty-actions.js.map +0 -1
- package/lib/base/tool-manager/tool-actions.d.ts.map +0 -1
- package/lib/base/tool-manager/tool-actions.js.map +0 -1
- package/lib/base/types.d.ts.map +0 -1
- package/lib/base/types.js.map +0 -1
- package/lib/sprotty-reexport.d.ts.map +0 -1
- package/lib/sprotty-reexport.js.map +0 -1
- /package/lib/{base → glsp-sprotty}/types.d.ts +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2023 Business Informatics Group (TU Wien) and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { ContainerModule } from 'inversify';
|
|
18
|
+
import { bindAsService, BindingContext, configureActionHandler, TYPES } from '~glsp-sprotty';
|
|
19
|
+
import { ResizeElementAction, ResizeElementHandler } from './resize-key-handler';
|
|
20
|
+
import { ResizeKeyTool } from './resize-key-tool';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Handles resize actions.
|
|
24
|
+
*/
|
|
25
|
+
export const glspResizeKeyModule = new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
26
|
+
const context = { bind, unbind, isBound, rebind };
|
|
27
|
+
configureResizeTools(context);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export function configureResizeTools(context: BindingContext): void {
|
|
31
|
+
context.bind(ResizeElementHandler).toSelf().inSingletonScope();
|
|
32
|
+
|
|
33
|
+
configureActionHandler(context, ResizeElementAction.KIND, ResizeElementHandler);
|
|
34
|
+
bindAsService(context, TYPES.IDefaultTool, ResizeKeyTool);
|
|
35
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2023 Business Informatics Group (TU Wien) and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { inject, injectable, optional } from 'inversify';
|
|
18
|
+
import {
|
|
19
|
+
Action,
|
|
20
|
+
ChangeBoundsOperation,
|
|
21
|
+
Dimension,
|
|
22
|
+
IActionDispatcher,
|
|
23
|
+
IActionHandler,
|
|
24
|
+
ICommand,
|
|
25
|
+
ISnapper,
|
|
26
|
+
Point,
|
|
27
|
+
SModelElement,
|
|
28
|
+
SParentElement,
|
|
29
|
+
TYPES
|
|
30
|
+
} from '~glsp-sprotty';
|
|
31
|
+
import { EditorContextService } from '../../../base/editor-context-service';
|
|
32
|
+
import { isValidMove, isValidSize, minHeight, minWidth } from '../../../utils/layout-utils';
|
|
33
|
+
import { SelectableBoundsAware, getElements, isSelectableAndBoundsAware, toElementAndBounds } from '../../../utils/smodel-util';
|
|
34
|
+
import { Resizable } from '../../change-bounds/model';
|
|
35
|
+
import { GridSnapper } from '../../change-bounds/snap';
|
|
36
|
+
|
|
37
|
+
export enum ResizeType {
|
|
38
|
+
Increase,
|
|
39
|
+
Decrease,
|
|
40
|
+
MinSize
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Action for triggering resizing of elements.
|
|
45
|
+
*/
|
|
46
|
+
export interface ResizeElementAction extends Action {
|
|
47
|
+
kind: typeof ResizeElementAction.KIND;
|
|
48
|
+
elementIds: string[];
|
|
49
|
+
resizeType: ResizeType;
|
|
50
|
+
}
|
|
51
|
+
export namespace ResizeElementAction {
|
|
52
|
+
export const KIND = 'resizeElementAction';
|
|
53
|
+
|
|
54
|
+
export function is(object: any): object is ResizeElementAction {
|
|
55
|
+
return Action.hasKind(object, KIND);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function create(elementIds: string[], resizeType: ResizeType): ResizeElementAction {
|
|
59
|
+
return { kind: KIND, elementIds, resizeType };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* The ResizeElementHandler class is an implementation of the IActionHandler interface that handles
|
|
64
|
+
resizing of elements. */
|
|
65
|
+
@injectable()
|
|
66
|
+
export class ResizeElementHandler implements IActionHandler {
|
|
67
|
+
@inject(EditorContextService)
|
|
68
|
+
protected editorContextService: EditorContextService;
|
|
69
|
+
|
|
70
|
+
@inject(TYPES.IActionDispatcher) protected dispatcher: IActionDispatcher;
|
|
71
|
+
|
|
72
|
+
// Default x resize used if GridSnapper is not provided
|
|
73
|
+
static readonly defaultResizeX = 20;
|
|
74
|
+
|
|
75
|
+
// Default y resize used if GridSnapper is not provided
|
|
76
|
+
static readonly defaultResizeY = 20;
|
|
77
|
+
protected grid = { x: ResizeElementHandler.defaultResizeX, y: ResizeElementHandler.defaultResizeY };
|
|
78
|
+
|
|
79
|
+
protected isEditMode = false;
|
|
80
|
+
|
|
81
|
+
constructor(@inject(TYPES.ISnapper) @optional() protected readonly snapper?: ISnapper) {
|
|
82
|
+
if (snapper instanceof GridSnapper) {
|
|
83
|
+
this.grid = snapper.grid;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
handle(action: Action): void | Action | ICommand {
|
|
88
|
+
if (ResizeElementAction.is(action)) {
|
|
89
|
+
this.handleResizeElement(action);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
handleResizeElement(action: ResizeElementAction): void {
|
|
94
|
+
const elements = getElements(this.editorContextService.modelRoot.index, action.elementIds, isSelectableAndBoundsAware);
|
|
95
|
+
this.dispatcher.dispatchAll(this.resize(elements, action));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
protected resize(elements: SelectableBoundsAware[], action: ResizeElementAction): Action[] {
|
|
99
|
+
const actions: Action[] = [];
|
|
100
|
+
|
|
101
|
+
elements.forEach(element => {
|
|
102
|
+
const { x, y, width: oldWidth, height: oldHeight } = element.bounds;
|
|
103
|
+
let width = 0;
|
|
104
|
+
let height = 0;
|
|
105
|
+
|
|
106
|
+
if (action.resizeType === ResizeType.Decrease) {
|
|
107
|
+
width = oldWidth - this.grid.x;
|
|
108
|
+
height = oldHeight - this.grid.y;
|
|
109
|
+
} else if (action.resizeType === ResizeType.Increase) {
|
|
110
|
+
width = oldWidth + this.grid.x;
|
|
111
|
+
height = oldHeight + this.grid.y;
|
|
112
|
+
} else if (action.resizeType === ResizeType.MinSize) {
|
|
113
|
+
width = minWidth(element);
|
|
114
|
+
height = minHeight(element);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (this.isValidBoundChange(element, { x, y }, { width, height })) {
|
|
118
|
+
const resizeElement = { id: element.id, bounds: { x, y, width, height } } as SModelElement & SParentElement & Resizable;
|
|
119
|
+
actions.push(ChangeBoundsOperation.create([toElementAndBounds(resizeElement)]));
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
return actions;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
protected isValidBoundChange(element: SelectableBoundsAware, newPosition: Point, newSize: Dimension): boolean {
|
|
127
|
+
return isValidSize(element, newSize) && isValidMove(element, newPosition);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2023 Business Informatics Group (TU Wien) and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { inject, injectable, optional } from 'inversify';
|
|
18
|
+
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
19
|
+
import { Action, EnableDefaultToolsAction, EnableToolsAction, ISnapper, KeyListener, KeyTool, SModelElement, TYPES } from '~glsp-sprotty';
|
|
20
|
+
import { GLSPTool } from '../../../base/tool-manager/glsp-tool-manager';
|
|
21
|
+
import { IMovementRestrictor } from '../../change-bounds/movement-restrictor';
|
|
22
|
+
import { SelectionService } from '../../select/selection-service';
|
|
23
|
+
import { ResizeElementAction, ResizeType } from './resize-key-handler';
|
|
24
|
+
|
|
25
|
+
@injectable()
|
|
26
|
+
export class ResizeKeyTool implements GLSPTool {
|
|
27
|
+
static ID = 'glsp.resize-key-tool';
|
|
28
|
+
|
|
29
|
+
isEditTool = true;
|
|
30
|
+
|
|
31
|
+
@inject(KeyTool) protected readonly keytool: KeyTool;
|
|
32
|
+
@inject(TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor;
|
|
33
|
+
@inject(TYPES.ISnapper) @optional() readonly snapper?: ISnapper;
|
|
34
|
+
@inject(TYPES.SelectionService) readonly selectionService: SelectionService;
|
|
35
|
+
|
|
36
|
+
protected resizeKeyListener: ResizeKeyListener = new ResizeKeyListener(this);
|
|
37
|
+
|
|
38
|
+
get id(): string {
|
|
39
|
+
return ResizeKeyTool.ID;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
enable(): void {
|
|
43
|
+
this.keytool.register(this.resizeKeyListener);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
disable(): void {
|
|
47
|
+
this.keytool.deregister(this.resizeKeyListener);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
@injectable()
|
|
51
|
+
export class ResizeKeyListener extends KeyListener {
|
|
52
|
+
protected isEditMode = false;
|
|
53
|
+
|
|
54
|
+
constructor(protected readonly tool: ResizeKeyTool) {
|
|
55
|
+
super();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
override keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
59
|
+
const actions = [];
|
|
60
|
+
const selectedElementsIds = this.tool.selectionService.getSelectedElementIDs();
|
|
61
|
+
|
|
62
|
+
if (this.isEditMode && this.matchesDeactivateResizeModeKeystroke(event)) {
|
|
63
|
+
this.isEditMode = false;
|
|
64
|
+
actions.push(EnableDefaultToolsAction.create());
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (selectedElementsIds.length > 0) {
|
|
68
|
+
if (!this.isEditMode && this.matchesActivateResizeModeKeystroke(event)) {
|
|
69
|
+
this.isEditMode = true;
|
|
70
|
+
actions.push(EnableToolsAction.create([ResizeKeyTool.ID]));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (this.isEditMode) {
|
|
74
|
+
if (this.matchesIncreaseSizeKeystroke(event)) {
|
|
75
|
+
actions.push(ResizeElementAction.create(selectedElementsIds, ResizeType.Increase));
|
|
76
|
+
} else if (this.matchesDecreaseSizeKeystroke(event)) {
|
|
77
|
+
actions.push(ResizeElementAction.create(selectedElementsIds, ResizeType.Decrease));
|
|
78
|
+
} else if (this.matchesMinSizeKeystroke(event)) {
|
|
79
|
+
actions.push(ResizeElementAction.create(selectedElementsIds, ResizeType.MinSize));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return actions;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
protected matchesIncreaseSizeKeystroke(event: KeyboardEvent): boolean {
|
|
87
|
+
/** here event.key is used for '+', as keycode 187 is already declared for 'Equals' in {@link matchesKeystroke}.*/
|
|
88
|
+
return event.key === '+' || matchesKeystroke(event, 'NumpadAdd');
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
protected matchesActivateResizeModeKeystroke(event: KeyboardEvent): boolean {
|
|
92
|
+
return matchesKeystroke(event, 'KeyA', 'alt');
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
protected matchesDeactivateResizeModeKeystroke(event: KeyboardEvent): boolean {
|
|
96
|
+
return matchesKeystroke(event, 'Escape');
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
protected matchesMinSizeKeystroke(event: KeyboardEvent): boolean {
|
|
100
|
+
return matchesKeystroke(event, 'Digit0', 'ctrl') || matchesKeystroke(event, 'Numpad0', 'ctrl');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
protected matchesDecreaseSizeKeystroke(event: KeyboardEvent): boolean {
|
|
104
|
+
return matchesKeystroke(event, 'Minus') || matchesKeystroke(event, 'NumpadSubtract');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2023 Business Informatics Group (TU Wien) and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { ContainerModule } from 'inversify';
|
|
18
|
+
import { bindAsService, BindingContext, TYPES } from '~glsp-sprotty';
|
|
19
|
+
import { SearchAutocompletePalette } from './search-palette';
|
|
20
|
+
import { SearchAutocompletePaletteTool } from './search-tool';
|
|
21
|
+
|
|
22
|
+
export const glspSearchPaletteModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
23
|
+
const context = { bind, isBound, rebind };
|
|
24
|
+
configureSearchPaletteModule(context);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export function configureSearchPaletteModule(context: Pick<BindingContext, 'bind'>): void {
|
|
28
|
+
bindAsService(context, TYPES.IUIExtension, SearchAutocompletePalette);
|
|
29
|
+
bindAsService(context, TYPES.IDefaultTool, SearchAutocompletePaletteTool);
|
|
30
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2023 Business Informatics Group (TU Wien) and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { injectable } from 'inversify';
|
|
18
|
+
import { isEqual } from 'lodash';
|
|
19
|
+
import { toArray } from 'sprotty/lib/utils/iterable';
|
|
20
|
+
import {
|
|
21
|
+
Action,
|
|
22
|
+
CenterAction,
|
|
23
|
+
LabeledAction,
|
|
24
|
+
SEdge,
|
|
25
|
+
SModelElement,
|
|
26
|
+
SModelRoot,
|
|
27
|
+
SNode,
|
|
28
|
+
SelectAction,
|
|
29
|
+
SelectAllAction,
|
|
30
|
+
codiconCSSString,
|
|
31
|
+
isNameable,
|
|
32
|
+
name
|
|
33
|
+
} from '~glsp-sprotty';
|
|
34
|
+
import { AutocompleteSuggestion, IAutocompleteSuggestionProvider } from '../../autocomplete-palette/autocomplete-suggestion-providers';
|
|
35
|
+
import { BaseAutocompletePalette } from '../../autocomplete-palette/base-autocomplete-palette';
|
|
36
|
+
|
|
37
|
+
import { applyCssClasses, deleteCssClasses } from '../../tool-feedback/css-feedback';
|
|
38
|
+
|
|
39
|
+
const CSS_SEARCH_HIDDEN = 'search-hidden';
|
|
40
|
+
const CSS_SEARCH_HIGHLIGHTED = 'search-highlighted';
|
|
41
|
+
|
|
42
|
+
export class RevealNamedElementAutocompleteSuggestionProvider implements IAutocompleteSuggestionProvider {
|
|
43
|
+
async retrieveSuggestions(root: Readonly<SModelRoot>, text: string): Promise<AutocompleteSuggestion[]> {
|
|
44
|
+
const nameables = toArray(root.index.all().filter(element => isNameable(element)));
|
|
45
|
+
return nameables.map(nameable => ({
|
|
46
|
+
element: nameable,
|
|
47
|
+
action: {
|
|
48
|
+
label: `[${nameable.type}] ${name(nameable) ?? '<no-name>'}`,
|
|
49
|
+
actions: this.getActions(nameable),
|
|
50
|
+
icon: codiconCSSString('eye')
|
|
51
|
+
}
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
protected getActions(nameable: SModelElement): Action[] {
|
|
56
|
+
return [SelectAction.create({ selectedElementsIDs: [nameable.id] }), CenterAction.create([nameable.id], { retainZoom: true })];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export class RevealEdgeElementAutocompleteSuggestionProvider implements IAutocompleteSuggestionProvider {
|
|
61
|
+
async retrieveSuggestions(root: Readonly<SModelRoot>, text: string): Promise<AutocompleteSuggestion[]> {
|
|
62
|
+
const edges = toArray(root.index.all().filter(element => element instanceof SEdge)) as SEdge[];
|
|
63
|
+
return edges.map(edge => ({
|
|
64
|
+
element: edge,
|
|
65
|
+
action: {
|
|
66
|
+
label: `[${edge.type}] ${this.getEdgeLabel(root, edge)}`,
|
|
67
|
+
actions: this.getActions(edge),
|
|
68
|
+
icon: codiconCSSString('arrow-both')
|
|
69
|
+
}
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
protected getActions(edge: SEdge): Action[] {
|
|
73
|
+
return [SelectAction.create({ selectedElementsIDs: [edge.id] }), CenterAction.create([edge.sourceId, edge.targetId])];
|
|
74
|
+
}
|
|
75
|
+
protected getEdgeLabel(root: Readonly<SModelRoot>, edge: SEdge): string {
|
|
76
|
+
let sourceName = '';
|
|
77
|
+
let targetName = '';
|
|
78
|
+
|
|
79
|
+
const sourceNode = root.index.getById(edge.sourceId);
|
|
80
|
+
const targetNode = root.index.getById(edge.targetId);
|
|
81
|
+
|
|
82
|
+
if (sourceNode !== undefined) {
|
|
83
|
+
sourceName = name(sourceNode) ?? sourceNode.type;
|
|
84
|
+
}
|
|
85
|
+
if (targetNode !== undefined) {
|
|
86
|
+
targetName = name(targetNode) ?? targetNode.type;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return sourceName + ' -> ' + targetName;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
@injectable()
|
|
93
|
+
export class SearchAutocompletePalette extends BaseAutocompletePalette {
|
|
94
|
+
static readonly ID = 'search-autocomplete-palette';
|
|
95
|
+
|
|
96
|
+
protected cachedSuggestions: AutocompleteSuggestion[] = [];
|
|
97
|
+
|
|
98
|
+
id(): string {
|
|
99
|
+
return SearchAutocompletePalette.ID;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
protected override initializeContents(containerElement: HTMLElement): void {
|
|
103
|
+
super.initializeContents(containerElement);
|
|
104
|
+
|
|
105
|
+
this.autocompleteWidget.inputField.placeholder = 'Search for elements';
|
|
106
|
+
}
|
|
107
|
+
protected getSuggestionProviders(root: Readonly<SModelRoot>, input: string): IAutocompleteSuggestionProvider[] {
|
|
108
|
+
return [new RevealNamedElementAutocompleteSuggestionProvider(), new RevealEdgeElementAutocompleteSuggestionProvider()];
|
|
109
|
+
}
|
|
110
|
+
protected async retrieveSuggestions(root: Readonly<SModelRoot>, input: string): Promise<LabeledAction[]> {
|
|
111
|
+
const providers = this.getSuggestionProviders(root, input);
|
|
112
|
+
const suggestions = (await Promise.all(providers.map(provider => provider.retrieveSuggestions(root, input)))).flat(1);
|
|
113
|
+
|
|
114
|
+
this.cachedSuggestions = suggestions;
|
|
115
|
+
|
|
116
|
+
return suggestions.map(s => s.action);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
protected override async visibleSuggestionsChanged(root: Readonly<SModelRoot>, labeledActions: LabeledAction[]): Promise<void> {
|
|
120
|
+
await this.applyCSS(this.getHiddenElements(root, this.getSuggestionsFromLabeledActions(labeledActions)), CSS_SEARCH_HIDDEN);
|
|
121
|
+
await this.deleteCSS(
|
|
122
|
+
this.getSuggestionsFromLabeledActions(labeledActions).map(s => s.element),
|
|
123
|
+
CSS_SEARCH_HIDDEN
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
protected override async selectedSuggestionChanged(
|
|
128
|
+
root: Readonly<SModelRoot>,
|
|
129
|
+
labeledAction?: LabeledAction | undefined
|
|
130
|
+
): Promise<void> {
|
|
131
|
+
await this.deleteAllCSS(root, CSS_SEARCH_HIGHLIGHTED);
|
|
132
|
+
if (labeledAction !== undefined) {
|
|
133
|
+
const suggestions = this.getSuggestionsFromLabeledActions([labeledAction]);
|
|
134
|
+
|
|
135
|
+
const actions: CenterAction[] = [];
|
|
136
|
+
suggestions.map(currElem => actions.push(CenterAction.create([currElem.element.id], { animate: true, retainZoom: true })));
|
|
137
|
+
|
|
138
|
+
this.actionDispatcher.dispatchAll(actions);
|
|
139
|
+
await this.applyCSS(
|
|
140
|
+
suggestions.map(s => s.element),
|
|
141
|
+
CSS_SEARCH_HIGHLIGHTED
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
public override show(root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
|
|
147
|
+
this.actionDispatcher.dispatch(SelectAllAction.create(false));
|
|
148
|
+
|
|
149
|
+
super.show(root, ...contextElementIds);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
public override hide(): void {
|
|
153
|
+
if (this.root !== undefined) {
|
|
154
|
+
this.deleteAllCSS(this.root, CSS_SEARCH_HIDDEN);
|
|
155
|
+
this.deleteAllCSS(this.root, CSS_SEARCH_HIGHLIGHTED);
|
|
156
|
+
this.autocompleteWidget.inputField.value = '';
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
super.hide();
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
protected applyCSS(elements: SModelElement[], cssClass: string): Promise<void> {
|
|
163
|
+
const actions = elements.map(element => applyCssClasses(element, cssClass));
|
|
164
|
+
return this.actionDispatcher.dispatchAll(actions);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
protected deleteCSS(elements: SModelElement[], cssClass: string): Promise<void> {
|
|
168
|
+
const actions = elements.map(element => deleteCssClasses(element, cssClass));
|
|
169
|
+
return this.actionDispatcher.dispatchAll(actions);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
protected deleteAllCSS(root: Readonly<SModelRoot>, cssClass: string): Promise<void> {
|
|
173
|
+
const actions = toArray(root.index.all().map(element => deleteCssClasses(element, cssClass)));
|
|
174
|
+
return this.actionDispatcher.dispatchAll(actions);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
protected getSuggestionsFromLabeledActions(labeledActions: LabeledAction[]): AutocompleteSuggestion[] {
|
|
178
|
+
return this.cachedSuggestions.filter(c => labeledActions.find(s => isEqual(s, c.action)));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
protected getHiddenSuggestionsFromLabeledActions(labeledActions: LabeledAction[]): AutocompleteSuggestion[] {
|
|
182
|
+
return this.cachedSuggestions.filter(c => !labeledActions.find(s => isEqual(s, c.action)));
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
protected getHiddenElements(root: Readonly<SModelRoot>, suggestions: AutocompleteSuggestion[]): SModelElement[] {
|
|
186
|
+
return toArray(
|
|
187
|
+
root.index
|
|
188
|
+
.all()
|
|
189
|
+
.filter(element => element instanceof SNode || element instanceof SEdge)
|
|
190
|
+
.filter(element => suggestions.find(suggestion => suggestion.element.id === element.id) === undefined)
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2023 Business Informatics Group (TU Wien) and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
19
|
+
import { Action, KeyListener, KeyTool, SModelElement, SetUIExtensionVisibilityAction, Tool } from '~glsp-sprotty';
|
|
20
|
+
import { SearchAutocompletePalette } from './search-palette';
|
|
21
|
+
|
|
22
|
+
@injectable()
|
|
23
|
+
export class SearchAutocompletePaletteTool implements Tool {
|
|
24
|
+
static readonly ID = 'glsp.search-autocomplete-palette-tool';
|
|
25
|
+
|
|
26
|
+
protected readonly keyListener = new SearchAutocompletePaletteKeyListener();
|
|
27
|
+
|
|
28
|
+
@inject(KeyTool) protected keyTool: KeyTool;
|
|
29
|
+
|
|
30
|
+
get id(): string {
|
|
31
|
+
return SearchAutocompletePaletteTool.ID;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
enable(): void {
|
|
35
|
+
this.keyTool.register(this.keyListener);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
disable(): void {
|
|
39
|
+
this.keyTool.deregister(this.keyListener);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export class SearchAutocompletePaletteKeyListener extends KeyListener {
|
|
44
|
+
override keyDown(element: SModelElement, event: KeyboardEvent): Action[] {
|
|
45
|
+
if (this.matchesSearchActivateKeystroke(event)) {
|
|
46
|
+
return [
|
|
47
|
+
SetUIExtensionVisibilityAction.create({
|
|
48
|
+
extensionId: SearchAutocompletePalette.ID,
|
|
49
|
+
visible: true
|
|
50
|
+
})
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
protected matchesSearchActivateKeystroke(event: KeyboardEvent): boolean {
|
|
57
|
+
return matchesKeystroke(event, 'KeyF', 'ctrl');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2023 Business Informatics Group (TU Wien) and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { toArray } from 'sprotty/lib/utils/iterable';
|
|
19
|
+
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
20
|
+
import {
|
|
21
|
+
Action,
|
|
22
|
+
KeyListener,
|
|
23
|
+
KeyTool,
|
|
24
|
+
SModelElement,
|
|
25
|
+
SRoutableElement,
|
|
26
|
+
SelectAction,
|
|
27
|
+
SwitchEditModeAction,
|
|
28
|
+
isSelectable
|
|
29
|
+
} from '~glsp-sprotty';
|
|
30
|
+
import { GLSPTool } from '../../../base/tool-manager/glsp-tool-manager';
|
|
31
|
+
import { SResizeHandle } from '../../change-bounds/model';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Deselects the element if there is no interaction possible with element.
|
|
35
|
+
*/
|
|
36
|
+
@injectable()
|
|
37
|
+
export class DeselectKeyTool implements GLSPTool {
|
|
38
|
+
static ID = 'glsp.deselect-key-tool';
|
|
39
|
+
|
|
40
|
+
isEditTool = true;
|
|
41
|
+
|
|
42
|
+
protected readonly deselectKeyListener = new DeselectKeyListener();
|
|
43
|
+
|
|
44
|
+
@inject(KeyTool) protected readonly keytool: KeyTool;
|
|
45
|
+
|
|
46
|
+
get id(): string {
|
|
47
|
+
return DeselectKeyTool.ID;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
enable(): void {
|
|
51
|
+
this.keytool.register(this.deselectKeyListener);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
disable(): void {
|
|
55
|
+
this.keytool.deregister(this.deselectKeyListener);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export class DeselectKeyListener extends KeyListener {
|
|
60
|
+
override keyDown(target: SModelElement, event: KeyboardEvent): Action[] {
|
|
61
|
+
if (this.matchesDeselectKeystroke(event)) {
|
|
62
|
+
const isResizeHandleActive = toArray(target.root.index.all().filter(el => el instanceof SResizeHandle)).length > 0;
|
|
63
|
+
|
|
64
|
+
if (isResizeHandleActive) {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const deselect = toArray(target.root.index.all().filter(element => isSelectable(element) && element.selected));
|
|
69
|
+
const actions: Action[] = [];
|
|
70
|
+
|
|
71
|
+
if (deselect.length > 0) {
|
|
72
|
+
actions.push(SelectAction.create({ deselectedElementsIDs: deselect.map(e => e.id) }));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const routableDeselect = deselect.filter(e => e instanceof SRoutableElement).map(e => e.id);
|
|
76
|
+
if (routableDeselect.length > 0) {
|
|
77
|
+
actions.push(SwitchEditModeAction.create({ elementsToDeactivate: routableDeselect }));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return actions;
|
|
81
|
+
}
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
protected matchesDeselectKeystroke(event: KeyboardEvent): boolean {
|
|
86
|
+
return matchesKeystroke(event, 'Escape');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2019-2023 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { ContainerModule } from 'inversify';
|
|
18
|
+
import { bindAsService, BindingContext, TYPES } from '~glsp-sprotty';
|
|
19
|
+
import { DeselectKeyTool } from '../view-key-tools/deselect-key-tool';
|
|
20
|
+
import { MovementKeyTool } from './movement-key-tool';
|
|
21
|
+
import { ZoomKeyTool } from './zoom-key-tool';
|
|
22
|
+
|
|
23
|
+
export const glspViewKeyToolsModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
|
|
24
|
+
const context = { bind, isBound, rebind };
|
|
25
|
+
configureViewKeyTools(context);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export function configureViewKeyTools(context: Pick<BindingContext, 'bind'>): void {
|
|
29
|
+
bindAsService(context, TYPES.IDefaultTool, MovementKeyTool);
|
|
30
|
+
bindAsService(context, TYPES.IDefaultTool, ZoomKeyTool);
|
|
31
|
+
bindAsService(context, TYPES.IDefaultTool, DeselectKeyTool);
|
|
32
|
+
}
|