@eclipse-glsp/client 0.9.0-next.f54fd689 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +642 -277
- package/README.md +4 -2
- package/css/command-palette.css +9 -5
- package/css/decoration.css +3 -2
- package/css/glsp-sprotty.css +20 -7
- package/css/tool-palette.css +44 -27
- package/lib/base/action-dispatcher.d.ts +18 -2
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +41 -61
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/{features/model-source-watcher/model-source-changed-action.d.ts → base/actions/focus-change-action.d.ts} +7 -7
- 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/argumentable.d.ts +22 -0
- package/lib/base/argumentable.d.ts.map +1 -0
- package/lib/base/argumentable.js +8 -0
- package/lib/base/argumentable.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +12 -12
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +121 -152
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +49 -65
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +19 -37
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts +40 -0
- package/lib/base/container-modules.d.ts.map +1 -0
- package/lib/base/container-modules.js +100 -0
- package/lib/base/container-modules.js.map +1 -0
- package/lib/base/di.config.d.ts +13 -3
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +52 -31
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js +23 -62
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +42 -0
- package/lib/base/editor-context-service.d.ts.map +1 -0
- package/lib/base/editor-context-service.js +109 -0
- package/lib/base/editor-context-service.js.map +1 -0
- package/lib/{features/undo-redo/model.d.ts → base/focus-tracker.d.ts} +10 -12
- package/lib/base/focus-tracker.d.ts.map +1 -0
- package/lib/base/focus-tracker.js +50 -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 +20 -6
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +69 -94
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +17 -2
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +34 -54
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +11 -28
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.js +2 -5
- package/lib/base/source-uri-aware.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +2 -2
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +59 -141
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/types.d.ts +3 -1
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +23 -21
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts +5 -0
- package/lib/base/view/view-registry.d.ts.map +1 -0
- package/lib/base/view/view-registry.js +43 -0
- package/lib/base/view/view-registry.js.map +1 -0
- package/lib/features/change-bounds/model.d.ts +4 -2
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +21 -32
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +18 -2
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +34 -46
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +17 -1
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +13 -39
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/command-palette/command-palette-tool.d.ts +1 -1
- package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
- package/lib/features/command-palette/command-palette-tool.js +30 -38
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +2 -2
- package/lib/features/command-palette/di.config.js +6 -6
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +19 -3
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +31 -36
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +2 -2
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +24 -72
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +2 -2
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +14 -18
- package/lib/features/context-menu/di.config.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +2 -2
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +29 -67
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +19 -3
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +31 -32
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +21 -4
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +70 -70
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +2 -2
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +11 -11
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +17 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +14 -47
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -6
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.js +7 -7
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts +2 -2
- package/lib/features/edit-label/edit-label-tool.js +20 -43
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +18 -3
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +40 -62
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.d.ts +1 -16
- package/lib/features/hints/di.config.d.ts.map +1 -1
- package/lib/features/hints/di.config.js +9 -9
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/model.d.ts +3 -2
- package/lib/features/hints/model.d.ts.map +1 -1
- package/lib/features/hints/model.js +2 -2
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +21 -49
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +83 -142
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +2 -2
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +9 -7
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +18 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +37 -75
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +2 -2
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +11 -7
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +16 -0
- package/lib/features/layout/freeform-layout.d.ts.map +1 -0
- package/lib/features/layout/freeform-layout.js +107 -0
- package/lib/features/layout/freeform-layout.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +26 -10
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +189 -264
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts +2 -17
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +124 -117
- package/lib/features/layout/layout-commands.spec.js.map +1 -1
- package/lib/features/layout/vbox-layout.d.ts +25 -0
- package/lib/features/layout/vbox-layout.d.ts.map +1 -0
- package/lib/features/layout/vbox-layout.js +188 -0
- package/lib/features/layout/vbox-layout.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.d.ts +1 -16
- package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +7 -7
- package/lib/features/model-source-watcher/di.config.js.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/mouse-tool/di.config.d.ts +1 -1
- package/lib/features/mouse-tool/di.config.js +5 -5
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +3 -2
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +74 -217
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.d.ts +1 -16
- package/lib/features/navigation/di.config.d.ts.map +1 -1
- package/lib/features/navigation/di.config.js +11 -10
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +19 -39
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +118 -255
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +46 -188
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +2 -17
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +27 -26
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/rank/model.d.ts +2 -2
- package/lib/features/rank/model.d.ts.map +1 -1
- package/lib/features/rank/model.js +2 -2
- package/lib/features/rank/model.js.map +1 -1
- package/lib/features/reconnect/model.d.ts +2 -2
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +10 -28
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +2 -2
- package/lib/features/save/di.config.d.ts.map +1 -1
- package/lib/features/save/di.config.js +6 -6
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/model.d.ts +1 -1
- package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -8
- package/lib/features/save/save-keylistener.d.ts.map +1 -0
- package/lib/{utils/array-utils.js → features/save/save-keylistener.js} +14 -19
- package/lib/features/save/save-keylistener.js.map +1 -0
- package/lib/features/select/di.config.d.ts +1 -1
- package/lib/features/select/di.config.js +11 -11
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts +1 -1
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +45 -71
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +2 -2
- package/lib/features/select/select-mouse-listener.js +7 -23
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +19 -3
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +134 -236
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +96 -138
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +21 -4
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +117 -149
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +19 -2
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +81 -115
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +24 -5
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +40 -82
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +2 -2
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +27 -24
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +21 -4
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +160 -204
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +48 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.js +96 -0
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -0
- package/lib/features/tool-feedback/model.d.ts +2 -2
- package/lib/features/tool-feedback/model.js +11 -27
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +22 -6
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +30 -51
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +2 -2
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +6 -6
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/palette-item.d.ts +2 -3
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
- package/lib/features/tool-palette/palette-item.js +6 -6
- package/lib/features/tool-palette/palette-item.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +23 -6
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +229 -286
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +21 -5
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +37 -59
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +26 -9
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +192 -241
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +20 -4
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +71 -104
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +5 -16
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +26 -13
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +20 -5
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +64 -89
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +22 -6
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +125 -189
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +42 -0
- package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.js +128 -0
- package/lib/features/tools/marquee-behavior.js.map +1 -0
- package/{src/base/args.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -2
- package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.spec.js +165 -0
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +48 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.js +148 -0
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -0
- package/lib/features/tools/marquee-tool.d.ts +30 -0
- package/lib/features/tools/marquee-tool.d.ts.map +1 -0
- package/lib/features/tools/marquee-tool.js +54 -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 +20 -5
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +60 -90
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts +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/validation/di.config.d.ts +1 -1
- package/lib/features/validation/di.config.js +12 -12
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +3 -3
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +18 -56
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +19 -3
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +131 -164
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts +2 -17
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +84 -77
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +20 -31
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +148 -299
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/{base/args.d.ts → features/viewport/di.config.d.ts} +5 -5
- 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/{src/features/model-source-watcher/model-source-changed-action.ts → lib/features/viewport/glsp-scroll-mouse-listener.d.ts} +8 -11
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +39 -0
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -0
- package/lib/index.d.ts +37 -35
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +39 -35
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -3
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +11 -27
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +4 -6
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +63 -122
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/protocol-reexport.d.ts +45 -0
- package/lib/protocol-reexport.d.ts.map +1 -0
- package/lib/protocol-reexport.js +75 -0
- package/lib/protocol-reexport.js.map +1 -0
- package/lib/utils/argument-utils.d.ts +50 -0
- package/lib/utils/argument-utils.d.ts.map +1 -0
- package/lib/utils/argument-utils.js +110 -0
- package/lib/utils/argument-utils.js.map +1 -0
- package/lib/utils/html-utils.js +2 -2
- package/lib/utils/html-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +4 -3
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +5 -5
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/marker.d.ts +1 -39
- package/lib/utils/marker.d.ts.map +1 -1
- package/lib/utils/marker.js +14 -61
- package/lib/utils/marker.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +7 -17
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +18 -67
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -2
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +15 -30
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts +9 -0
- package/lib/views/base-view-module.d.ts.map +1 -0
- package/lib/views/base-view-module.js +59 -0
- package/lib/views/base-view-module.js.map +1 -0
- package/lib/views/compartments.d.ts +6 -0
- package/lib/views/compartments.d.ts.map +1 -0
- package/lib/views/compartments.js +43 -0
- package/lib/views/compartments.js.map +1 -0
- package/lib/views/glsp-edge-view.d.ts +27 -0
- package/lib/views/glsp-edge-view.d.ts.map +1 -0
- package/lib/views/glsp-edge-view.js +55 -0
- package/lib/views/glsp-edge-view.js.map +1 -0
- package/lib/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 +9 -0
- package/lib/views/issue-marker-view.d.ts.map +1 -0
- package/lib/views/issue-marker-view.js +68 -0
- package/lib/views/issue-marker-view.js.map +1 -0
- package/lib/views/rounded-corner-view.d.ts +13 -0
- package/lib/views/rounded-corner-view.d.ts.map +1 -0
- package/lib/views/rounded-corner-view.js +82 -0
- package/lib/views/rounded-corner-view.js.map +1 -0
- package/lib/views/rounded-corner.d.ts +38 -0
- package/lib/views/rounded-corner.d.ts.map +1 -0
- package/lib/views/rounded-corner.js +62 -0
- package/lib/views/rounded-corner.js.map +1 -0
- package/package.json +27 -34
- package/src/base/action-dispatcher.ts +7 -8
- package/src/{utils/array-utils.ts → base/actions/focus-change-action.ts} +8 -16
- package/src/{features/undo-redo/model.ts → base/argumentable.ts} +7 -8
- package/src/base/auto-complete/auto-complete-actions.ts +2 -2
- package/src/base/auto-complete/auto-complete-widget.ts +73 -57
- package/src/base/auto-complete/validation-decorator.ts +21 -15
- package/src/base/command-stack.ts +4 -7
- package/src/base/container-modules.ts +112 -0
- package/src/base/di.config.ts +47 -25
- package/src/base/drag-aware-mouse-listener.ts +7 -8
- package/src/base/{editor-context.ts → editor-context-service.ts} +13 -40
- package/src/base/focus-tracker.ts +48 -0
- package/src/base/model/model-registry.ts +31 -0
- package/src/base/model/update-model-command.ts +14 -22
- package/src/base/model-initialization-constraint.ts +16 -11
- package/src/base/selection-clearing-mouse-listener.ts +4 -3
- package/src/base/tool-manager/glsp-tool-manager.ts +12 -14
- package/src/base/types.ts +23 -21
- package/src/base/view/view-registry.ts +31 -0
- package/src/features/change-bounds/model.ts +23 -13
- package/src/features/change-bounds/movement-restrictor.ts +28 -18
- package/src/features/change-bounds/snap.ts +6 -5
- package/src/features/command-palette/command-palette-tool.ts +4 -4
- package/src/features/command-palette/di.config.ts +7 -7
- package/src/features/command-palette/server-command-palette-provider.ts +16 -14
- package/src/features/context-menu/delete-element-context-menu.ts +10 -11
- package/src/features/context-menu/di.config.ts +10 -12
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +8 -7
- package/src/features/context-menu/server-context-menu-provider.ts +13 -10
- package/src/features/copy-paste/copy-paste-context-menu.ts +66 -37
- package/src/features/copy-paste/copy-paste-handler.ts +30 -20
- package/src/features/copy-paste/di.config.ts +6 -7
- package/src/features/decoration/decoration-placer.ts +6 -15
- package/src/features/decoration/di.config.ts +4 -6
- package/src/features/edit-label/di.config.ts +5 -5
- package/src/features/edit-label/edit-label-tool.ts +4 -4
- package/src/features/edit-label/edit-label-validator.ts +18 -19
- package/src/features/hints/di.config.ts +6 -7
- package/src/features/hints/model.ts +7 -6
- package/src/features/hints/type-hints.ts +46 -113
- package/src/features/hover/di.config.ts +7 -7
- package/src/features/hover/hover.ts +11 -14
- package/src/features/layout/di.config.ts +10 -6
- package/src/features/layout/freeform-layout.ts +133 -0
- package/src/features/layout/layout-commands.spec.ts +104 -85
- package/src/features/layout/layout-commands.ts +65 -54
- package/src/features/layout/vbox-layout.ts +256 -0
- package/src/features/model-source-watcher/di.config.ts +5 -6
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +16 -12
- package/src/features/mouse-tool/di.config.ts +4 -4
- package/src/features/mouse-tool/mouse-tool.ts +44 -32
- package/src/features/navigation/di.config.ts +6 -12
- package/src/features/navigation/navigation-action-handler.ts +46 -78
- package/src/features/navigation/navigation-target-resolver.spec.ts +6 -9
- package/src/features/navigation/navigation-target-resolver.ts +16 -94
- package/src/features/rank/model.ts +3 -3
- package/src/features/reconnect/model.ts +9 -11
- package/src/features/save/di.config.ts +4 -5
- package/src/features/save/model.ts +1 -1
- package/src/features/save/{save.ts → save-keylistener.ts} +4 -8
- package/src/features/select/di.config.ts +6 -6
- package/src/features/select/select-feedback-action.ts +6 -8
- package/src/features/select/select-mouse-listener.ts +2 -2
- package/src/features/select/selection-service.spec.ts +25 -19
- package/src/features/select/selection-service.ts +25 -22
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -39
- package/src/features/tool-feedback/creation-tool-feedback.ts +49 -24
- package/src/features/tool-feedback/css-feedback.ts +19 -14
- package/src/features/tool-feedback/di.config.ts +15 -14
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +56 -35
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +13 -14
- package/src/features/tool-feedback/marquee-tool-feedback.ts +103 -0
- package/src/features/tool-feedback/model.ts +2 -3
- package/src/features/tool-feedback/view.tsx +20 -13
- package/src/features/tool-palette/di.config.ts +5 -7
- package/src/features/tool-palette/palette-item.ts +5 -7
- package/src/features/tool-palette/tool-palette.ts +126 -107
- package/src/features/tools/base-glsp-tool.ts +12 -12
- package/src/features/tools/change-bounds-tool.ts +83 -53
- package/src/features/tools/delete-tool.ts +23 -20
- package/src/features/tools/di.config.ts +22 -11
- package/src/features/tools/edge-creation-tool.ts +20 -25
- package/src/features/tools/edge-edit-tool.ts +43 -46
- package/src/features/tools/marquee-behavior.spec.ts +175 -0
- package/src/features/tools/marquee-behavior.ts +158 -0
- package/src/features/tools/marquee-mouse-tool.ts +153 -0
- package/src/features/tools/marquee-tool.ts +51 -0
- package/src/features/tools/model.ts +22 -0
- package/src/features/tools/node-creation-tool.ts +18 -22
- package/src/features/tools/view.tsx +44 -0
- package/src/features/validation/di.config.ts +5 -5
- package/src/features/validation/issue-marker.ts +4 -5
- package/src/features/validation/marker-navigator.spec.ts +38 -33
- package/src/features/validation/marker-navigator.ts +39 -26
- package/src/features/validation/validate.ts +25 -59
- package/src/features/viewport/di.config.ts +47 -0
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +41 -0
- package/src/index.ts +57 -37
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +19 -33
- package/src/protocol-reexport.ts +64 -0
- package/src/utils/argument-utils.ts +130 -0
- package/src/utils/layout-utils.ts +19 -11
- package/src/utils/marker.ts +8 -32
- package/src/utils/smodel-util.ts +28 -22
- package/src/utils/viewpoint-util.ts +5 -6
- package/src/views/base-view-module.ts +97 -0
- package/src/views/compartments.tsx +37 -0
- package/src/views/glsp-edge-view.tsx +79 -0
- package/{lib/utils/array-utils.d.ts → src/views/index.ts} +7 -4
- package/src/views/issue-marker-view.tsx +65 -0
- package/src/views/rounded-corner-view.tsx +103 -0
- package/src/views/rounded-corner.ts +87 -0
- package/lib/base/actions/context-actions.d.ts +0 -36
- package/lib/base/actions/context-actions.d.ts.map +0 -1
- package/lib/base/actions/context-actions.js +0 -51
- package/lib/base/actions/context-actions.js.map +0 -1
- package/lib/base/actions/edit-mode-action.d.ts +0 -13
- package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
- package/lib/base/actions/edit-mode-action.js +0 -56
- package/lib/base/actions/edit-mode-action.js.map +0 -1
- package/lib/base/actions/edit-validation-actions.d.ts +0 -78
- package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
- package/lib/base/actions/edit-validation-actions.js +0 -82
- package/lib/base/actions/edit-validation-actions.js.map +0 -1
- package/lib/base/actions/protocol-actions.d.ts +0 -41
- package/lib/base/actions/protocol-actions.d.ts.map +0 -1
- package/lib/base/actions/protocol-actions.js +0 -151
- package/lib/base/actions/protocol-actions.js.map +0 -1
- package/lib/base/args.d.ts.map +0 -1
- package/lib/base/args.js +0 -3
- package/lib/base/args.js.map +0 -1
- package/lib/base/editor-context.d.ts +0 -46
- package/lib/base/editor-context.d.ts.map +0 -1
- package/lib/base/editor-context.js +0 -174
- package/lib/base/editor-context.js.map +0 -1
- package/lib/base/operations/operation.d.ts +0 -129
- package/lib/base/operations/operation.d.ts.map +0 -1
- package/lib/base/operations/operation.js +0 -201
- package/lib/base/operations/operation.js.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.js +0 -68
- package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
- package/lib/features/decoration/view.d.ts +0 -8
- package/lib/features/decoration/view.d.ts.map +0 -1
- package/lib/features/decoration/view.js +0 -80
- package/lib/features/decoration/view.js.map +0 -1
- package/lib/features/hints/request-type-hints-action.d.ts +0 -32
- package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
- package/lib/features/hints/request-type-hints-action.js +0 -30
- package/lib/features/hints/request-type-hints-action.js.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
- package/lib/features/save/save.d.ts.map +0 -1
- package/lib/features/save/save.js +0 -57
- package/lib/features/save/save.js.map +0 -1
- package/lib/features/undo-redo/model.d.ts.map +0 -1
- package/lib/features/undo-redo/model.js +0 -22
- package/lib/features/undo-redo/model.js.map +0 -1
- package/lib/model-source/glsp-server-status.d.ts +0 -30
- package/lib/model-source/glsp-server-status.d.ts.map +0 -1
- package/lib/model-source/glsp-server-status.js +0 -61
- package/lib/model-source/glsp-server-status.js.map +0 -1
- package/lib/utils/array-utils.d.ts.map +0 -1
- package/lib/utils/array-utils.js.map +0 -1
- package/src/base/actions/context-actions.ts +0 -43
- package/src/base/actions/edit-mode-action.ts +0 -33
- package/src/base/actions/edit-validation-actions.ts +0 -102
- package/src/base/actions/protocol-actions.ts +0 -82
- package/src/base/operations/operation.ts +0 -148
- package/src/features/copy-paste/copy-paste-actions.ts +0 -60
- package/src/features/decoration/view.tsx +0 -54
- package/src/features/hints/request-type-hints-action.ts +0 -36
- package/src/model-source/glsp-server-status.ts +0 -38
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,13 +13,12 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { ModelInitializationConstraint } from
|
|
16
|
+
import { Action, isResponseAction, RequestAction, ResponseAction } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject } from 'inversify';
|
|
18
|
+
import { ActionDispatcher } from 'sprotty';
|
|
19
|
+
import { ModelInitializationConstraint } from './model-initialization-constraint';
|
|
20
20
|
|
|
21
21
|
export class GLSPActionDispatcher extends ActionDispatcher {
|
|
22
|
-
|
|
23
22
|
protected readonly timeouts: Map<string, NodeJS.Timeout> = new Map();
|
|
24
23
|
|
|
25
24
|
@inject(ModelInitializationConstraint) protected initiailizationConstraint: ModelInitializationConstraint;
|
|
@@ -29,7 +28,7 @@ export class GLSPActionDispatcher extends ActionDispatcher {
|
|
|
29
28
|
return super.initialize().then(() => this.startModelInitialization());
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
startModelInitialization() {
|
|
31
|
+
startModelInitialization(): void {
|
|
33
32
|
this.logger.log(this, 'Starting model initialization mode');
|
|
34
33
|
this.onModelInitialized = this.initiailizationConstraint.onInitialized();
|
|
35
34
|
this.onModelInitialized.then(() => this.logger.log(this, 'Model initialization completed'));
|
|
@@ -74,7 +73,7 @@ export class GLSPActionDispatcher extends ActionDispatcher {
|
|
|
74
73
|
* If `rejectOnTimeout` is set to false (default) the returned promise will be resolved with
|
|
75
74
|
* no value, otherwise it will be rejected.
|
|
76
75
|
*/
|
|
77
|
-
requestUntil<Res extends ResponseAction>(action: RequestAction<Res>, timeoutMs
|
|
76
|
+
requestUntil<Res extends ResponseAction>(action: RequestAction<Res>, timeoutMs = 2000, rejectOnTimeout = false): Promise<Res> {
|
|
78
77
|
if (!action.requestId) {
|
|
79
78
|
return Promise.reject(new Error('Request without requestId'));
|
|
80
79
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,22 +13,14 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { Action } from '@eclipse-glsp/protocol';
|
|
16
17
|
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
return false;
|
|
18
|
+
export class FocusStateChangedAction implements Action {
|
|
19
|
+
static KIND = 'focusStateChanged';
|
|
20
|
+
readonly kind = FocusStateChangedAction.KIND;
|
|
21
|
+
constructor(public readonly hasFocus: boolean) {}
|
|
24
22
|
}
|
|
25
23
|
|
|
26
|
-
export function
|
|
27
|
-
|
|
28
|
-
array.push(value);
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
return false;
|
|
24
|
+
export function isFocusStateChangedAction(action: Action): action is FocusStateChangedAction {
|
|
25
|
+
return action.kind === FocusStateChangedAction.KIND;
|
|
32
26
|
}
|
|
33
|
-
|
|
34
|
-
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) 2020-2021 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,14 +13,13 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { Args } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { SModelElement } from 'sprotty';
|
|
17
18
|
|
|
18
|
-
export
|
|
19
|
-
|
|
20
|
-
constructor(public readonly kind = UndoOperation.KIND) { }
|
|
19
|
+
export interface SArgumentable {
|
|
20
|
+
args: Args;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export
|
|
24
|
-
|
|
25
|
-
constructor(public readonly kind = RedoOperation.KIND) { }
|
|
23
|
+
export function hasArguments(element?: SModelElement): element is SModelElement & SArgumentable {
|
|
24
|
+
return element !== undefined && 'args' in element;
|
|
26
25
|
}
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { LabeledAction } from
|
|
16
|
+
import { LabeledAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
|
|
18
18
|
export interface SetAutoCompleteValueAction extends LabeledAction {
|
|
19
19
|
readonly text: string;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export function isSetAutoCompleteValueAction(action: LabeledAction): action is SetAutoCompleteValueAction {
|
|
23
|
-
return action !== undefined && (
|
|
23
|
+
return action !== undefined && (action as SetAutoCompleteValueAction).text !== undefined;
|
|
24
24
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,20 +13,19 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import { IValidationDecorator } from "./validation-decorator";
|
|
16
|
+
import { Action, isAction, isLabeledAction, LabeledAction, ValidationStatus } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { AutocompleteResult, AutocompleteSettings } from 'autocompleter';
|
|
18
|
+
import { codiconCSSClasses, ILogger, SModelRoot } from 'sprotty';
|
|
19
|
+
import { toArray } from 'sprotty/lib/utils/iterable';
|
|
20
|
+
import { matchesKeystroke } from 'sprotty/lib/utils/keyboard';
|
|
21
|
+
import { isSetAutoCompleteValueAction } from './auto-complete-actions';
|
|
22
|
+
import { IValidationDecorator } from './validation-decorator';
|
|
24
23
|
|
|
25
24
|
export interface AutoCompleteSettings {
|
|
26
|
-
readonly noSuggestionsMessage
|
|
27
|
-
readonly suggestionsClass
|
|
28
|
-
readonly debounceWaitMs
|
|
29
|
-
readonly showOnFocus
|
|
25
|
+
readonly noSuggestionsMessage?: string;
|
|
26
|
+
readonly suggestionsClass?: string;
|
|
27
|
+
readonly debounceWaitMs?: number;
|
|
28
|
+
readonly showOnFocus?: boolean;
|
|
30
29
|
}
|
|
31
30
|
|
|
32
31
|
export interface InputValidator {
|
|
@@ -49,12 +48,11 @@ export interface TextSubmitHandler {
|
|
|
49
48
|
executeFromTextOnlyInput(input: string): void;
|
|
50
49
|
}
|
|
51
50
|
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
52
52
|
const configureAutocomplete: (settings: AutocompleteSettings<LabeledAction>) => AutocompleteResult = require('autocompleter');
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
54
|
export class AutoCompleteWidget {
|
|
57
|
-
loadingIndicatorClasses =
|
|
55
|
+
loadingIndicatorClasses = codiconCSSClasses('loading', false, true, ['loading']);
|
|
58
56
|
|
|
59
57
|
protected containerElement: HTMLElement;
|
|
60
58
|
protected inputElement: HTMLInputElement;
|
|
@@ -69,15 +67,18 @@ export class AutoCompleteWidget {
|
|
|
69
67
|
protected textSubmitHandler?: TextSubmitHandler;
|
|
70
68
|
|
|
71
69
|
constructor(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
public autoSuggestionSettings: AutoCompleteSettings,
|
|
71
|
+
public suggestionProvider: SuggestionProvider,
|
|
72
|
+
public suggestionSubmitHandler: SuggestionSubmitHandler,
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
74
|
+
protected notifyClose: () => void = () => {},
|
|
76
75
|
protected logger?: ILogger
|
|
77
|
-
) {
|
|
76
|
+
) {}
|
|
78
77
|
|
|
79
|
-
configureValidation(
|
|
80
|
-
|
|
78
|
+
configureValidation(
|
|
79
|
+
inputValidator: InputValidator,
|
|
80
|
+
validationDecorator: IValidationDecorator = IValidationDecorator.NO_DECORATION
|
|
81
|
+
): void {
|
|
81
82
|
this.inputValidator = inputValidator;
|
|
82
83
|
this.validationDecorator = validationDecorator;
|
|
83
84
|
}
|
|
@@ -105,7 +106,7 @@ export class AutoCompleteWidget {
|
|
|
105
106
|
return inputElement;
|
|
106
107
|
}
|
|
107
108
|
|
|
108
|
-
protected handleKeyDown(event: KeyboardEvent) {
|
|
109
|
+
protected handleKeyDown(event: KeyboardEvent): void {
|
|
109
110
|
if (matchesKeystroke(event, 'Escape')) {
|
|
110
111
|
this.notifyClose();
|
|
111
112
|
return;
|
|
@@ -129,16 +130,16 @@ export class AutoCompleteWidget {
|
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
132
|
|
|
132
|
-
protected isInputElementChanged() {
|
|
133
|
+
protected isInputElementChanged(): boolean {
|
|
133
134
|
return this.inputElement.value !== this.previousContent;
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
protected invalidateValidationResultAndContextActions() {
|
|
137
|
+
protected invalidateValidationResultAndContextActions(): void {
|
|
137
138
|
this.contextActions = undefined;
|
|
138
139
|
this.validationDecorator.invalidate();
|
|
139
140
|
}
|
|
140
141
|
|
|
141
|
-
open(root: Readonly<SModelRoot>, ...contextElementIds: string[]) {
|
|
142
|
+
open(root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
|
|
142
143
|
this.contextActions = undefined;
|
|
143
144
|
this.autoCompleteResult = configureAutocomplete(this.autocompleteSettings(root));
|
|
144
145
|
this.previousContent = this.inputElement.value;
|
|
@@ -154,25 +155,33 @@ export class AutoCompleteWidget {
|
|
|
154
155
|
showOnFocus: this.autoSuggestionSettings.showOnFocus,
|
|
155
156
|
debounceWaitMs: this.autoSuggestionSettings.debounceWaitMs,
|
|
156
157
|
minLength: -1,
|
|
157
|
-
fetch: (text: string, update: (items: LabeledAction[]) => void) =>
|
|
158
|
-
this.updateSuggestions(update, text, root),
|
|
158
|
+
fetch: (text: string, update: (items: LabeledAction[]) => void) => this.updateSuggestions(update, text, root),
|
|
159
159
|
onSelect: (item: LabeledAction) => this.onSelect(item),
|
|
160
|
-
render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined =>
|
|
161
|
-
this.renderSuggestions(item, currentValue),
|
|
160
|
+
render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined => this.renderSuggestions(item, currentValue),
|
|
162
161
|
customize: (input: HTMLInputElement, inputRect: ClientRect | DOMRect, container: HTMLDivElement, maxHeight: number) => {
|
|
163
162
|
this.customizeInputElement(input, inputRect, container, maxHeight);
|
|
164
163
|
}
|
|
165
164
|
};
|
|
166
165
|
}
|
|
167
166
|
|
|
168
|
-
protected customizeInputElement(
|
|
167
|
+
protected customizeInputElement(
|
|
168
|
+
input: HTMLInputElement,
|
|
169
|
+
inputRect: ClientRect | DOMRect,
|
|
170
|
+
container: HTMLDivElement,
|
|
171
|
+
maxHeight: number
|
|
172
|
+
): void {
|
|
169
173
|
// move container into our UIExtension container as this is already positioned correctly
|
|
170
174
|
if (this.containerElement) {
|
|
171
175
|
this.containerElement.appendChild(container);
|
|
172
176
|
}
|
|
173
177
|
}
|
|
174
178
|
|
|
175
|
-
protected updateSuggestions(
|
|
179
|
+
protected updateSuggestions(
|
|
180
|
+
update: (items: LabeledAction[]) => void,
|
|
181
|
+
text: string,
|
|
182
|
+
root: Readonly<SModelRoot>,
|
|
183
|
+
...contextElementIds: string[]
|
|
184
|
+
): void {
|
|
176
185
|
this.onLoading();
|
|
177
186
|
this.doUpdateSuggestions(text, root)
|
|
178
187
|
.then(actions => {
|
|
@@ -181,12 +190,14 @@ export class AutoCompleteWidget {
|
|
|
181
190
|
this.onLoaded('success');
|
|
182
191
|
})
|
|
183
192
|
.catch(reason => {
|
|
184
|
-
if (this.logger) {
|
|
193
|
+
if (this.logger) {
|
|
194
|
+
this.logger.error(this, 'Failed to obtain suggestions', reason);
|
|
195
|
+
}
|
|
185
196
|
this.onLoaded('error');
|
|
186
197
|
});
|
|
187
198
|
}
|
|
188
199
|
|
|
189
|
-
protected onLoading() {
|
|
200
|
+
protected onLoading(): void {
|
|
190
201
|
if (this.loadingIndicator && this.containerElement.contains(this.loadingIndicator)) {
|
|
191
202
|
return;
|
|
192
203
|
}
|
|
@@ -199,7 +210,7 @@ export class AutoCompleteWidget {
|
|
|
199
210
|
return this.suggestionProvider.provideSuggestions(text);
|
|
200
211
|
}
|
|
201
212
|
|
|
202
|
-
protected onLoaded(_success: 'success' | 'error') {
|
|
213
|
+
protected onLoaded(_success: 'success' | 'error'): void {
|
|
203
214
|
if (this.containerElement.contains(this.loadingIndicator)) {
|
|
204
215
|
this.containerElement.removeChild(this.loadingIndicator);
|
|
205
216
|
}
|
|
@@ -208,7 +219,7 @@ export class AutoCompleteWidget {
|
|
|
208
219
|
this.previousContent = this.inputElement.value;
|
|
209
220
|
}
|
|
210
221
|
|
|
211
|
-
protected renderSuggestions(item: LabeledAction, value: string) {
|
|
222
|
+
protected renderSuggestions(item: LabeledAction, value: string): HTMLDivElement {
|
|
212
223
|
const itemElement = document.createElement('div');
|
|
213
224
|
const wordMatcher = this.espaceForRegExp(value).split(' ').join('|');
|
|
214
225
|
const regex = new RegExp(wordMatcher, 'gi');
|
|
@@ -219,23 +230,25 @@ export class AutoCompleteWidget {
|
|
|
219
230
|
return itemElement;
|
|
220
231
|
}
|
|
221
232
|
|
|
222
|
-
protected espaceForRegExp(value: string) {
|
|
233
|
+
protected espaceForRegExp(value: string): string {
|
|
223
234
|
return value.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
|
|
224
235
|
}
|
|
225
236
|
|
|
226
|
-
protected renderIcon(itemElement: HTMLDivElement, icon: string) {
|
|
237
|
+
protected renderIcon(itemElement: HTMLDivElement, icon: string): void {
|
|
227
238
|
itemElement.innerHTML += `<span class="icon ${icon}"></span>`;
|
|
228
239
|
}
|
|
229
240
|
|
|
230
241
|
protected filterActions(filterText: string, actions: LabeledAction[]): LabeledAction[] {
|
|
231
|
-
return toArray(
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
242
|
+
return toArray(
|
|
243
|
+
actions.filter(action => {
|
|
244
|
+
const label = action.label.toLowerCase();
|
|
245
|
+
const searchWords = filterText.split(' ');
|
|
246
|
+
return searchWords.every(word => label.indexOf(word.toLowerCase()) !== -1);
|
|
247
|
+
})
|
|
248
|
+
);
|
|
236
249
|
}
|
|
237
250
|
|
|
238
|
-
protected onSelect(item: LabeledAction) {
|
|
251
|
+
protected onSelect(item: LabeledAction): void {
|
|
239
252
|
if (isSetAutoCompleteValueAction(item)) {
|
|
240
253
|
this.inputElement.value = item.text;
|
|
241
254
|
// trigger update of suggestions with an keyup event
|
|
@@ -246,7 +259,7 @@ export class AutoCompleteWidget {
|
|
|
246
259
|
}
|
|
247
260
|
}
|
|
248
261
|
|
|
249
|
-
protected validateInputIfNoContextActions() {
|
|
262
|
+
protected validateInputIfNoContextActions(): void {
|
|
250
263
|
if (this.isNoOrExactlyOneMatchingContextAction()) {
|
|
251
264
|
this.validateInput();
|
|
252
265
|
} else {
|
|
@@ -254,27 +267,30 @@ export class AutoCompleteWidget {
|
|
|
254
267
|
}
|
|
255
268
|
}
|
|
256
269
|
|
|
257
|
-
private isNoOrExactlyOneMatchingContextAction() {
|
|
258
|
-
return
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
270
|
+
private isNoOrExactlyOneMatchingContextAction(): boolean | undefined {
|
|
271
|
+
return (
|
|
272
|
+
!this.isSuggestionAvailable() ||
|
|
273
|
+
(this.contextActions && this.contextActions.length === 1 && this.inputElement.value.endsWith(this.contextActions[0].label))
|
|
274
|
+
);
|
|
262
275
|
}
|
|
263
276
|
|
|
264
|
-
protected isSuggestionAvailable() {
|
|
277
|
+
protected isSuggestionAvailable(): boolean | undefined {
|
|
265
278
|
return this.contextActions && this.contextActions.length > 0;
|
|
266
279
|
}
|
|
267
280
|
|
|
268
|
-
validateInput() {
|
|
281
|
+
validateInput(): void {
|
|
269
282
|
if (this.inputValidator) {
|
|
270
|
-
this.inputValidator
|
|
283
|
+
this.inputValidator
|
|
284
|
+
.validate(this.inputElement.value)
|
|
271
285
|
.then(result => this.validationDecorator.decorateValidationResult(result))
|
|
272
286
|
.catch(error => this.handleErrorDuringValidation(error));
|
|
273
287
|
}
|
|
274
288
|
}
|
|
275
289
|
|
|
276
|
-
protected handleErrorDuringValidation(error: Error) {
|
|
277
|
-
if (this.logger) {
|
|
290
|
+
protected handleErrorDuringValidation(error: Error): void {
|
|
291
|
+
if (this.logger) {
|
|
292
|
+
this.logger.error(this, 'Failed to validate input', error);
|
|
293
|
+
}
|
|
278
294
|
this.validationDecorator.dispose();
|
|
279
295
|
}
|
|
280
296
|
|
|
@@ -292,7 +308,7 @@ export class AutoCompleteWidget {
|
|
|
292
308
|
return this.inputElement;
|
|
293
309
|
}
|
|
294
310
|
|
|
295
|
-
dispose() {
|
|
311
|
+
dispose(): void {
|
|
296
312
|
this.validationDecorator.dispose();
|
|
297
313
|
if (this.autoCompleteResult) {
|
|
298
314
|
this.autoCompleteResult.destroy();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2020 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2020-2021 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
16
|
+
import { codiconCSSString } from 'sprotty/lib/utils/codicon';
|
|
17
|
+
import { ValidationStatus } from '@eclipse-glsp/protocol';
|
|
17
18
|
|
|
18
19
|
export interface IValidationDecorator {
|
|
19
20
|
decorateValidationResult(status: ValidationStatus): void;
|
|
@@ -24,25 +25,30 @@ export interface IValidationDecorator {
|
|
|
24
25
|
|
|
25
26
|
export namespace IValidationDecorator {
|
|
26
27
|
export const NO_DECORATION: IValidationDecorator = {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
29
|
+
decorateValidationResult(_status: ValidationStatus) {},
|
|
30
|
+
isValidatedOk(): boolean {
|
|
31
|
+
return false;
|
|
32
|
+
},
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
34
|
+
invalidate() {},
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
36
|
+
dispose() {}
|
|
31
37
|
};
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
export class ValidationDecorator implements IValidationDecorator {
|
|
35
41
|
warningClasses = ['warning'];
|
|
36
|
-
warningIconClasses =
|
|
42
|
+
warningIconClasses = codiconCSSString('warning');
|
|
37
43
|
errorClasses = ['error'];
|
|
38
|
-
errorIconClasses =
|
|
44
|
+
errorIconClasses = codiconCSSString('error');
|
|
39
45
|
|
|
40
|
-
isValidated
|
|
41
|
-
hasValidationError
|
|
46
|
+
isValidated = false;
|
|
47
|
+
hasValidationError = false;
|
|
42
48
|
|
|
43
49
|
protected decorationDiv?: HTMLDivElement;
|
|
44
50
|
|
|
45
|
-
constructor(protected containerElement: HTMLElement) {
|
|
51
|
+
constructor(protected containerElement: HTMLElement) {}
|
|
46
52
|
|
|
47
53
|
decorateValidationResult(status: ValidationStatus): void {
|
|
48
54
|
if (ValidationStatus.isError(status)) {
|
|
@@ -62,7 +68,7 @@ export class ValidationDecorator implements IValidationDecorator {
|
|
|
62
68
|
this.switchCssClasses(this.containerElement, this.errorClasses);
|
|
63
69
|
const div = this.createDecorationDiv();
|
|
64
70
|
this.switchCssClasses(div, this.errorClasses);
|
|
65
|
-
div.innerHTML = `<span class="${this.errorIconClasses
|
|
71
|
+
div.innerHTML = `<span class="${this.errorIconClasses}"></span> ${message}`;
|
|
66
72
|
this.adjustPosition();
|
|
67
73
|
}
|
|
68
74
|
|
|
@@ -70,11 +76,11 @@ export class ValidationDecorator implements IValidationDecorator {
|
|
|
70
76
|
this.switchCssClasses(this.containerElement, this.warningClasses);
|
|
71
77
|
const div = this.createDecorationDiv();
|
|
72
78
|
this.switchCssClasses(div, this.warningClasses);
|
|
73
|
-
div.innerHTML = `<span class="${this.warningIconClasses
|
|
79
|
+
div.innerHTML = `<span class="${this.warningIconClasses}"></span> ${message}`;
|
|
74
80
|
this.adjustPosition();
|
|
75
81
|
}
|
|
76
82
|
|
|
77
|
-
protected switchCssClasses(element: HTMLElement, cssClasses: string[]) {
|
|
83
|
+
protected switchCssClasses(element: HTMLElement, cssClasses: string[]): void {
|
|
78
84
|
element.classList.remove(...this.errorClasses, ...this.warningClasses);
|
|
79
85
|
element.classList.add(...cssClasses);
|
|
80
86
|
}
|
|
@@ -91,7 +97,7 @@ export class ValidationDecorator implements IValidationDecorator {
|
|
|
91
97
|
}
|
|
92
98
|
|
|
93
99
|
protected decorationContainerWidth(): number {
|
|
94
|
-
return this.containerElement.clientWidth -
|
|
100
|
+
return this.containerElement.clientWidth - 5;
|
|
95
101
|
}
|
|
96
102
|
|
|
97
103
|
protected adjustPosition(): void {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,14 +13,12 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
import { RedoOperation, UndoOperation } from "../features/undo-redo/model";
|
|
16
|
+
import { RedoOperation, UndoOperation } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { CommandStack, IActionDispatcher, SModelRoot, TYPES } from 'sprotty';
|
|
20
19
|
|
|
21
20
|
@injectable()
|
|
22
21
|
export class GLSPCommandStack extends CommandStack {
|
|
23
|
-
|
|
24
22
|
@inject(TYPES.IActionDispatcherProvider) protected actionDispatcher: () => Promise<IActionDispatcher>;
|
|
25
23
|
|
|
26
24
|
undo(): Promise<SModelRoot> {
|
|
@@ -33,4 +31,3 @@ export class GLSPCommandStack extends CommandStack {
|
|
|
33
31
|
return this.thenUpdate();
|
|
34
32
|
}
|
|
35
33
|
}
|
|
36
|
-
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2021 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { Container, ContainerModule } from 'inversify';
|
|
18
|
+
import {
|
|
19
|
+
boundsModule,
|
|
20
|
+
buttonModule,
|
|
21
|
+
defaultModule,
|
|
22
|
+
edgeIntersectionModule,
|
|
23
|
+
edgeLayoutModule,
|
|
24
|
+
expandModule,
|
|
25
|
+
exportModule,
|
|
26
|
+
fadeModule,
|
|
27
|
+
labelEditUiModule,
|
|
28
|
+
modelSourceModule,
|
|
29
|
+
openModule,
|
|
30
|
+
routingModule,
|
|
31
|
+
zorderModule
|
|
32
|
+
} from 'sprotty';
|
|
33
|
+
import glspCommandPaletteModule from '../features/command-palette/di.config';
|
|
34
|
+
import glspContextMenuModule from '../features/context-menu/di.config';
|
|
35
|
+
import { glspServerCopyPasteModule } from '../features/copy-paste/di.config';
|
|
36
|
+
import glspDecorationModule from '../features/decoration/di.config';
|
|
37
|
+
import glspEditLabelModule from '../features/edit-label/di.config';
|
|
38
|
+
import modelHintsModule from '../features/hints/di.config';
|
|
39
|
+
import glspHoverModule from '../features/hover/di.config';
|
|
40
|
+
import layoutCommandsModule from '../features/layout/di.config';
|
|
41
|
+
import modelSourceWatcherModule from '../features/model-source-watcher/di.config';
|
|
42
|
+
import glspMouseToolModule from '../features/mouse-tool/di.config';
|
|
43
|
+
import { navigationModule } from '../features/navigation/di.config';
|
|
44
|
+
import glspSelectModule from '../features/select/di.config';
|
|
45
|
+
import toolFeedbackModule from '../features/tool-feedback/di.config';
|
|
46
|
+
import toolPaletteModule from '../features/tool-palette/di.config';
|
|
47
|
+
import toolsModule from '../features/tools/di.config';
|
|
48
|
+
import { markerNavigatorModule, validationModule } from '../features/validation/di.config';
|
|
49
|
+
import glspViewportModule from '../features/viewport/di.config';
|
|
50
|
+
import defaultGLSPModule from './di.config';
|
|
51
|
+
|
|
52
|
+
export const DEFAULT_MODULES = [
|
|
53
|
+
defaultModule,
|
|
54
|
+
defaultGLSPModule,
|
|
55
|
+
boundsModule,
|
|
56
|
+
buttonModule,
|
|
57
|
+
edgeIntersectionModule,
|
|
58
|
+
edgeLayoutModule,
|
|
59
|
+
expandModule,
|
|
60
|
+
exportModule,
|
|
61
|
+
fadeModule,
|
|
62
|
+
glspCommandPaletteModule,
|
|
63
|
+
glspContextMenuModule,
|
|
64
|
+
glspDecorationModule,
|
|
65
|
+
glspEditLabelModule,
|
|
66
|
+
glspHoverModule,
|
|
67
|
+
glspMouseToolModule,
|
|
68
|
+
glspSelectModule,
|
|
69
|
+
glspServerCopyPasteModule,
|
|
70
|
+
glspViewportModule,
|
|
71
|
+
labelEditUiModule,
|
|
72
|
+
layoutCommandsModule,
|
|
73
|
+
markerNavigatorModule,
|
|
74
|
+
modelHintsModule,
|
|
75
|
+
modelSourceModule,
|
|
76
|
+
modelSourceWatcherModule,
|
|
77
|
+
navigationModule,
|
|
78
|
+
openModule,
|
|
79
|
+
toolPaletteModule,
|
|
80
|
+
routingModule,
|
|
81
|
+
toolFeedbackModule,
|
|
82
|
+
toolsModule,
|
|
83
|
+
validationModule,
|
|
84
|
+
zorderModule
|
|
85
|
+
];
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Creates a GLSP Client container with the GLSP default modules and the specified custom `modules`.
|
|
89
|
+
*
|
|
90
|
+
* You can still customize the default modules in two ways.
|
|
91
|
+
*
|
|
92
|
+
* First, you can unload default modules and load them again with your custom code.
|
|
93
|
+
*
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const container = createClientContainer(myModule1, myModule2);
|
|
96
|
+
* container.unload(modelSourceWatcherModule);
|
|
97
|
+
* container.load(myModelSourceWatcherModule);
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* Second, you can unbind or rebind implementations that are originally bound in one of the default modules.
|
|
101
|
+
*
|
|
102
|
+
* ```typescript
|
|
103
|
+
* rebind(NavigationTargetResolver).to(MyNavigationTargetResolver);
|
|
104
|
+
* ```
|
|
105
|
+
* @param modules Custom modules to be loaded in addition to the default modules.
|
|
106
|
+
* @returns The created container.
|
|
107
|
+
*/
|
|
108
|
+
export function createClientContainer(...modules: ContainerModule[]): Container {
|
|
109
|
+
const container = new Container();
|
|
110
|
+
container.load(...DEFAULT_MODULES, ...modules);
|
|
111
|
+
return container;
|
|
112
|
+
}
|