@eclipse-glsp/client 0.9.0-next.d9bed812 → 0.9.0-next.eb280175
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +642 -277
- package/README.md +2 -1
- package/css/command-palette.css +9 -5
- package/css/decoration.css +3 -2
- package/css/glsp-sprotty.css +16 -7
- package/css/tool-palette.css +44 -27
- package/lib/base/action-dispatcher.d.ts +18 -2
- package/lib/base/action-dispatcher.d.ts.map +1 -1
- package/lib/base/action-dispatcher.js +41 -61
- package/lib/base/action-dispatcher.js.map +1 -1
- package/lib/base/actions/focus-change-action.d.ts +1 -1
- package/lib/base/actions/focus-change-action.d.ts.map +1 -1
- package/lib/base/actions/focus-change-action.js +4 -5
- package/lib/base/actions/focus-change-action.js.map +1 -1
- package/lib/base/{args.d.ts → argumentable.d.ts} +4 -6
- package/lib/base/argumentable.d.ts.map +1 -0
- package/lib/base/{args.js → argumentable.js} +1 -1
- package/lib/base/argumentable.js.map +1 -0
- package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
- package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.d.ts +5 -5
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +121 -152
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
- package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
- package/lib/base/auto-complete/validation-decorator.js +49 -65
- package/lib/base/auto-complete/validation-decorator.js.map +1 -1
- package/lib/base/command-stack.d.ts +1 -1
- package/lib/base/command-stack.d.ts.map +1 -1
- package/lib/base/command-stack.js +19 -37
- package/lib/base/command-stack.js.map +1 -1
- package/lib/base/container-modules.d.ts +40 -0
- package/lib/base/container-modules.d.ts.map +1 -0
- package/lib/base/container-modules.js +100 -0
- package/lib/base/container-modules.js.map +1 -0
- package/lib/base/di.config.d.ts +13 -3
- package/lib/base/di.config.d.ts.map +1 -1
- package/lib/base/di.config.js +50 -33
- package/lib/base/di.config.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js +23 -62
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/editor-context-service.d.ts +42 -0
- package/lib/base/editor-context-service.d.ts.map +1 -0
- package/lib/base/editor-context-service.js +109 -0
- package/lib/base/editor-context-service.js.map +1 -0
- package/lib/base/focus-tracker.d.ts +17 -1
- package/lib/base/focus-tracker.d.ts.map +1 -1
- package/lib/base/focus-tracker.js +19 -39
- package/lib/base/focus-tracker.js.map +1 -1
- package/lib/base/model/model-registry.d.ts +5 -0
- package/lib/base/model/model-registry.d.ts.map +1 -0
- package/lib/base/model/model-registry.js +43 -0
- package/lib/base/model/model-registry.js.map +1 -0
- package/lib/base/model/update-model-command.d.ts +20 -6
- package/lib/base/model/update-model-command.d.ts.map +1 -1
- package/lib/base/model/update-model-command.js +69 -94
- package/lib/base/model/update-model-command.js.map +1 -1
- package/lib/base/model-initialization-constraint.d.ts +17 -2
- package/lib/base/model-initialization-constraint.d.ts.map +1 -1
- package/lib/base/model-initialization-constraint.js +34 -54
- package/lib/base/model-initialization-constraint.js.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
- package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
- package/lib/base/selection-clearing-mouse-listener.js +11 -28
- package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
- package/lib/base/source-uri-aware.js +2 -5
- package/lib/base/source-uri-aware.js.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.d.ts +2 -2
- package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/glsp-tool-manager.js +59 -141
- package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
- package/lib/base/types.d.ts +3 -1
- package/lib/base/types.d.ts.map +1 -1
- package/lib/base/types.js +23 -21
- package/lib/base/types.js.map +1 -1
- package/lib/base/view/view-registry.d.ts +5 -0
- package/lib/base/view/view-registry.d.ts.map +1 -0
- package/lib/base/view/view-registry.js +43 -0
- package/lib/base/view/view-registry.js.map +1 -0
- package/lib/features/change-bounds/model.d.ts +4 -2
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +21 -32
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +18 -2
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +34 -46
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/change-bounds/snap.d.ts +17 -1
- package/lib/features/change-bounds/snap.d.ts.map +1 -1
- package/lib/features/change-bounds/snap.js +13 -39
- package/lib/features/change-bounds/snap.js.map +1 -1
- package/lib/features/command-palette/command-palette-tool.d.ts +1 -1
- package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
- package/lib/features/command-palette/command-palette-tool.js +30 -38
- package/lib/features/command-palette/command-palette-tool.js.map +1 -1
- package/lib/features/command-palette/di.config.d.ts +2 -2
- package/lib/features/command-palette/di.config.js +6 -6
- package/lib/features/command-palette/di.config.js.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.d.ts +19 -3
- package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
- package/lib/features/command-palette/server-command-palette-provider.js +31 -36
- package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +2 -2
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +24 -72
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/di.config.d.ts +2 -2
- package/lib/features/context-menu/di.config.d.ts.map +1 -1
- package/lib/features/context-menu/di.config.js +14 -18
- package/lib/features/context-menu/di.config.js.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +2 -2
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +29 -67
- package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +19 -3
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +31 -32
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.d.ts +21 -4
- package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-handler.js +70 -70
- package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
- package/lib/features/copy-paste/di.config.d.ts +2 -2
- package/lib/features/copy-paste/di.config.d.ts.map +1 -1
- package/lib/features/copy-paste/di.config.js +11 -11
- package/lib/features/copy-paste/di.config.js.map +1 -1
- package/lib/features/decoration/decoration-placer.d.ts +17 -1
- package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
- package/lib/features/decoration/decoration-placer.js +14 -47
- package/lib/features/decoration/decoration-placer.js.map +1 -1
- package/lib/features/decoration/di.config.d.ts +2 -2
- package/lib/features/decoration/di.config.d.ts.map +1 -1
- package/lib/features/decoration/di.config.js +4 -6
- package/lib/features/decoration/di.config.js.map +1 -1
- package/lib/features/edit-label/di.config.d.ts +1 -1
- package/lib/features/edit-label/di.config.js +7 -7
- package/lib/features/edit-label/di.config.js.map +1 -1
- package/lib/features/edit-label/edit-label-tool.d.ts +2 -2
- package/lib/features/edit-label/edit-label-tool.js +20 -43
- package/lib/features/edit-label/edit-label-tool.js.map +1 -1
- package/lib/features/edit-label/edit-label-validator.d.ts +18 -3
- package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
- package/lib/features/edit-label/edit-label-validator.js +40 -62
- package/lib/features/edit-label/edit-label-validator.js.map +1 -1
- package/lib/features/hints/di.config.d.ts +1 -16
- package/lib/features/hints/di.config.d.ts.map +1 -1
- package/lib/features/hints/di.config.js +9 -9
- package/lib/features/hints/di.config.js.map +1 -1
- package/lib/features/hints/model.d.ts +3 -2
- package/lib/features/hints/model.d.ts.map +1 -1
- package/lib/features/hints/model.js +2 -2
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hints.d.ts +21 -49
- package/lib/features/hints/type-hints.d.ts.map +1 -1
- package/lib/features/hints/type-hints.js +83 -142
- package/lib/features/hints/type-hints.js.map +1 -1
- package/lib/features/hover/di.config.d.ts +2 -2
- package/lib/features/hover/di.config.d.ts.map +1 -1
- package/lib/features/hover/di.config.js +8 -8
- package/lib/features/hover/di.config.js.map +1 -1
- package/lib/features/hover/hover.d.ts +18 -2
- package/lib/features/hover/hover.d.ts.map +1 -1
- package/lib/features/hover/hover.js +37 -75
- package/lib/features/hover/hover.js.map +1 -1
- package/lib/features/layout/di.config.d.ts +6 -2
- package/lib/features/layout/di.config.d.ts.map +1 -1
- package/lib/features/layout/di.config.js +47 -7
- package/lib/features/layout/di.config.js.map +1 -1
- package/lib/features/layout/freeform-layout.d.ts +16 -0
- package/lib/features/layout/freeform-layout.d.ts.map +1 -0
- package/lib/features/layout/freeform-layout.js +107 -0
- package/lib/features/layout/freeform-layout.js.map +1 -0
- package/lib/features/layout/layout-commands.d.ts +26 -10
- package/lib/features/layout/layout-commands.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.js +189 -264
- package/lib/features/layout/layout-commands.js.map +1 -1
- package/lib/features/layout/layout-commands.spec.d.ts +2 -17
- package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
- package/lib/features/layout/layout-commands.spec.js +124 -117
- package/lib/features/layout/layout-commands.spec.js.map +1 -1
- package/lib/features/layout/vbox-layout.d.ts +25 -0
- package/lib/features/layout/vbox-layout.d.ts.map +1 -0
- package/lib/features/layout/vbox-layout.js +188 -0
- package/lib/features/layout/vbox-layout.js.map +1 -0
- package/lib/features/model-source-watcher/di.config.d.ts +1 -16
- package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
- package/lib/features/model-source-watcher/di.config.js +7 -7
- package/lib/features/model-source-watcher/di.config.js.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
- package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
- package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
- package/lib/features/mouse-tool/di.config.d.ts +1 -1
- package/lib/features/mouse-tool/di.config.js +5 -5
- package/lib/features/mouse-tool/di.config.js.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.d.ts +3 -2
- package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
- package/lib/features/mouse-tool/mouse-tool.js +74 -217
- package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
- package/lib/features/navigation/di.config.d.ts +1 -16
- package/lib/features/navigation/di.config.d.ts.map +1 -1
- package/lib/features/navigation/di.config.js +11 -10
- package/lib/features/navigation/di.config.js.map +1 -1
- package/lib/features/navigation/navigation-action-handler.d.ts +19 -39
- package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
- package/lib/features/navigation/navigation-action-handler.js +118 -255
- package/lib/features/navigation/navigation-action-handler.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
- package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.js +46 -188
- package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts +2 -17
- package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
- package/lib/features/navigation/navigation-target-resolver.spec.js +27 -26
- package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
- package/lib/features/rank/model.d.ts +2 -2
- package/lib/features/rank/model.d.ts.map +1 -1
- package/lib/features/rank/model.js +2 -2
- package/lib/features/rank/model.js.map +1 -1
- package/lib/features/reconnect/model.d.ts +2 -2
- package/lib/features/reconnect/model.d.ts.map +1 -1
- package/lib/features/reconnect/model.js +10 -28
- package/lib/features/reconnect/model.js.map +1 -1
- package/lib/features/save/di.config.d.ts +2 -2
- package/lib/features/save/di.config.d.ts.map +1 -1
- package/lib/features/save/di.config.js +6 -6
- package/lib/features/save/di.config.js.map +1 -1
- package/lib/features/save/model.d.ts +1 -1
- package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -10
- package/lib/features/save/save-keylistener.d.ts.map +1 -0
- package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
- package/lib/features/save/save-keylistener.js.map +1 -0
- package/lib/features/select/di.config.d.ts +1 -1
- package/lib/features/select/di.config.js +11 -11
- package/lib/features/select/di.config.js.map +1 -1
- package/lib/features/select/select-feedback-action.d.ts +1 -1
- package/lib/features/select/select-feedback-action.d.ts.map +1 -1
- package/lib/features/select/select-feedback-action.js +45 -71
- package/lib/features/select/select-feedback-action.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +2 -2
- package/lib/features/select/select-mouse-listener.js +7 -23
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/select/selection-service.d.ts +19 -3
- package/lib/features/select/selection-service.d.ts.map +1 -1
- package/lib/features/select/selection-service.js +134 -236
- package/lib/features/select/selection-service.js.map +1 -1
- package/lib/features/select/selection-service.spec.js +96 -138
- package/lib/features/select/selection-service.spec.js.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +21 -4
- package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js +117 -149
- package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts +19 -2
- package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/creation-tool-feedback.js +81 -115
- package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/css-feedback.d.ts +21 -3
- package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/css-feedback.js +37 -81
- package/lib/features/tool-feedback/css-feedback.js.map +1 -1
- package/lib/features/tool-feedback/di.config.d.ts +2 -2
- package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
- package/lib/features/tool-feedback/di.config.js +27 -27
- package/lib/features/tool-feedback/di.config.js.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +21 -4
- package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js +160 -204
- package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
- package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
- package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +18 -2
- package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
- package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -86
- package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
- package/lib/features/tool-feedback/model.d.ts +2 -2
- package/lib/features/tool-feedback/model.js +11 -27
- package/lib/features/tool-feedback/model.js.map +1 -1
- package/lib/features/tool-feedback/view.d.ts +22 -6
- package/lib/features/tool-feedback/view.d.ts.map +1 -1
- package/lib/features/tool-feedback/view.js +30 -51
- package/lib/features/tool-feedback/view.js.map +1 -1
- package/lib/features/tool-palette/di.config.d.ts +2 -2
- package/lib/features/tool-palette/di.config.d.ts.map +1 -1
- package/lib/features/tool-palette/di.config.js +6 -6
- package/lib/features/tool-palette/di.config.js.map +1 -1
- package/lib/features/tool-palette/palette-item.d.ts +2 -3
- package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
- package/lib/features/tool-palette/palette-item.js +6 -6
- package/lib/features/tool-palette/palette-item.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +22 -6
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +225 -291
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-glsp-tool.d.ts +21 -5
- package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
- package/lib/features/tools/base-glsp-tool.js +37 -59
- package/lib/features/tools/base-glsp-tool.js.map +1 -1
- package/lib/features/tools/change-bounds-tool.d.ts +26 -9
- package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds-tool.js +192 -241
- package/lib/features/tools/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/delete-tool.d.ts +20 -4
- package/lib/features/tools/delete-tool.d.ts.map +1 -1
- package/lib/features/tools/delete-tool.js +71 -104
- package/lib/features/tools/delete-tool.js.map +1 -1
- package/lib/features/tools/di.config.d.ts +1 -16
- package/lib/features/tools/di.config.d.ts.map +1 -1
- package/lib/features/tools/di.config.js +19 -19
- package/lib/features/tools/di.config.js.map +1 -1
- package/lib/features/tools/edge-creation-tool.d.ts +20 -5
- package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation-tool.js +64 -89
- package/lib/features/tools/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit-tool.d.ts +22 -6
- package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit-tool.js +125 -189
- package/lib/features/tools/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-behavior.d.ts +42 -0
- package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.js +128 -0
- package/lib/features/tools/marquee-behavior.js.map +1 -0
- package/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
- package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
- package/lib/features/tools/marquee-behavior.spec.js +165 -0
- package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
- package/lib/features/tools/marquee-mouse-tool.d.ts +27 -15
- package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-mouse-tool.js +90 -184
- package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/marquee-tool.d.ts +18 -2
- package/lib/features/tools/marquee-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-tool.js +32 -73
- package/lib/features/tools/marquee-tool.js.map +1 -1
- package/lib/features/tools/model.d.ts +1 -1
- package/lib/features/tools/model.d.ts.map +1 -1
- package/lib/features/tools/model.js +6 -24
- package/lib/features/tools/model.js.map +1 -1
- package/lib/features/tools/node-creation-tool.d.ts +20 -5
- package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation-tool.js +60 -90
- package/lib/features/tools/node-creation-tool.js.map +1 -1
- package/lib/features/tools/view.d.ts +3 -18
- package/lib/features/tools/view.d.ts.map +1 -1
- package/lib/features/tools/view.js +21 -39
- package/lib/features/tools/view.js.map +1 -1
- package/lib/features/validation/di.config.d.ts +1 -1
- package/lib/features/validation/di.config.js +12 -12
- package/lib/features/validation/di.config.js.map +1 -1
- package/lib/features/validation/issue-marker.d.ts +3 -3
- package/lib/features/validation/issue-marker.d.ts.map +1 -1
- package/lib/features/validation/issue-marker.js +18 -56
- package/lib/features/validation/issue-marker.js.map +1 -1
- package/lib/features/validation/marker-navigator.d.ts +19 -3
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +131 -164
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/validation/marker-navigator.spec.d.ts +2 -17
- package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.spec.js +84 -77
- package/lib/features/validation/marker-navigator.spec.js.map +1 -1
- package/lib/features/validation/validate.d.ts +20 -31
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js +148 -299
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/di.config.d.ts +16 -1
- package/lib/features/viewport/di.config.d.ts.map +1 -1
- package/lib/features/viewport/di.config.js +10 -10
- package/lib/features/viewport/di.config.js.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +3 -2
- package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
- package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
- package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
- package/lib/index.d.ts +32 -35
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +33 -35
- package/lib/index.js.map +1 -1
- package/lib/lib/model.d.ts +3 -3
- package/lib/lib/model.d.ts.map +1 -1
- package/lib/lib/model.js +11 -27
- package/lib/lib/model.js.map +1 -1
- package/lib/model-source/glsp-diagram-server.d.ts +4 -6
- package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
- package/lib/model-source/glsp-diagram-server.js +63 -122
- package/lib/model-source/glsp-diagram-server.js.map +1 -1
- package/lib/protocol-reexport.d.ts +45 -0
- package/lib/protocol-reexport.d.ts.map +1 -0
- package/lib/protocol-reexport.js +75 -0
- package/lib/protocol-reexport.js.map +1 -0
- package/lib/utils/argument-utils.d.ts +50 -0
- package/lib/utils/argument-utils.d.ts.map +1 -0
- package/lib/utils/argument-utils.js +110 -0
- package/lib/utils/argument-utils.js.map +1 -0
- package/lib/utils/html-utils.js +2 -2
- package/lib/utils/html-utils.js.map +1 -1
- package/lib/utils/layout-utils.d.ts +4 -3
- package/lib/utils/layout-utils.d.ts.map +1 -1
- package/lib/utils/layout-utils.js +5 -5
- package/lib/utils/layout-utils.js.map +1 -1
- package/lib/utils/marker.d.ts +1 -39
- package/lib/utils/marker.d.ts.map +1 -1
- package/lib/utils/marker.js +14 -61
- package/lib/utils/marker.js.map +1 -1
- package/lib/utils/smodel-util.d.ts +7 -17
- package/lib/utils/smodel-util.d.ts.map +1 -1
- package/lib/utils/smodel-util.js +18 -67
- package/lib/utils/smodel-util.js.map +1 -1
- package/lib/utils/viewpoint-util.d.ts +3 -2
- package/lib/utils/viewpoint-util.d.ts.map +1 -1
- package/lib/utils/viewpoint-util.js +15 -30
- package/lib/utils/viewpoint-util.js.map +1 -1
- package/lib/views/base-view-module.d.ts +9 -0
- package/lib/views/base-view-module.d.ts.map +1 -0
- package/lib/views/base-view-module.js +59 -0
- package/lib/views/base-view-module.js.map +1 -0
- package/lib/views/compartments.d.ts +6 -0
- package/lib/views/compartments.d.ts.map +1 -0
- package/lib/views/compartments.js +43 -0
- package/lib/views/compartments.js.map +1 -0
- package/lib/views/glsp-edge-view.d.ts +27 -0
- package/lib/views/glsp-edge-view.d.ts.map +1 -0
- package/lib/views/glsp-edge-view.js +55 -0
- package/lib/views/glsp-edge-view.js.map +1 -0
- package/lib/{features/model-source-watcher/model-source-changed-action.d.ts → views/index.d.ts} +8 -10
- package/lib/views/index.d.ts.map +1 -0
- package/lib/views/index.js +34 -0
- package/lib/views/index.js.map +1 -0
- package/lib/views/issue-marker-view.d.ts +9 -0
- package/lib/views/issue-marker-view.d.ts.map +1 -0
- package/lib/views/issue-marker-view.js +68 -0
- package/lib/views/issue-marker-view.js.map +1 -0
- package/lib/views/rounded-corner-view.d.ts +13 -0
- package/lib/views/rounded-corner-view.d.ts.map +1 -0
- package/lib/views/rounded-corner-view.js +82 -0
- package/lib/views/rounded-corner-view.js.map +1 -0
- package/lib/views/rounded-corner.d.ts +38 -0
- package/lib/views/rounded-corner.d.ts.map +1 -0
- package/lib/views/rounded-corner.js +62 -0
- package/lib/views/rounded-corner.js.map +1 -0
- package/package.json +24 -32
- package/src/base/action-dispatcher.ts +7 -8
- package/src/base/actions/focus-change-action.ts +2 -2
- package/src/base/{args.ts → argumentable.ts} +3 -4
- package/src/base/auto-complete/auto-complete-actions.ts +2 -2
- package/src/base/auto-complete/auto-complete-widget.ts +66 -48
- package/src/base/auto-complete/validation-decorator.ts +21 -15
- package/src/base/command-stack.ts +4 -7
- package/src/base/container-modules.ts +112 -0
- package/src/base/di.config.ts +44 -27
- package/src/base/drag-aware-mouse-listener.ts +7 -8
- package/src/base/{editor-context.ts → editor-context-service.ts} +13 -40
- package/src/base/focus-tracker.ts +4 -6
- package/src/base/model/model-registry.ts +31 -0
- package/src/base/model/update-model-command.ts +14 -22
- package/src/base/model-initialization-constraint.ts +16 -11
- package/src/base/selection-clearing-mouse-listener.ts +4 -3
- package/src/base/tool-manager/glsp-tool-manager.ts +12 -14
- package/src/base/types.ts +23 -21
- package/src/{features/model-source-watcher/model-source-changed-action.ts → base/view/view-registry.ts} +15 -10
- package/src/features/change-bounds/model.ts +23 -13
- package/src/features/change-bounds/movement-restrictor.ts +28 -18
- package/src/features/change-bounds/snap.ts +6 -5
- package/src/features/command-palette/command-palette-tool.ts +4 -4
- package/src/features/command-palette/di.config.ts +7 -7
- package/src/features/command-palette/server-command-palette-provider.ts +16 -14
- package/src/features/context-menu/delete-element-context-menu.ts +10 -11
- package/src/features/context-menu/di.config.ts +10 -12
- package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +8 -7
- package/src/features/context-menu/server-context-menu-provider.ts +13 -10
- package/src/features/copy-paste/copy-paste-context-menu.ts +66 -37
- package/src/features/copy-paste/copy-paste-handler.ts +30 -20
- package/src/features/copy-paste/di.config.ts +6 -7
- package/src/features/decoration/decoration-placer.ts +6 -15
- package/src/features/decoration/di.config.ts +4 -6
- package/src/features/edit-label/di.config.ts +5 -5
- package/src/features/edit-label/edit-label-tool.ts +4 -4
- package/src/features/edit-label/edit-label-validator.ts +18 -19
- package/src/features/hints/di.config.ts +6 -7
- package/src/features/hints/model.ts +7 -6
- package/src/features/hints/type-hints.ts +46 -113
- package/src/features/hover/di.config.ts +6 -7
- package/src/features/hover/hover.ts +11 -14
- package/src/features/layout/di.config.ts +32 -6
- package/src/features/layout/freeform-layout.ts +133 -0
- package/src/features/layout/layout-commands.spec.ts +104 -85
- package/src/features/layout/layout-commands.ts +65 -54
- package/src/features/layout/vbox-layout.ts +256 -0
- package/src/features/model-source-watcher/di.config.ts +5 -6
- package/src/features/model-source-watcher/model-source-changed-action-handler.ts +16 -12
- package/src/features/mouse-tool/di.config.ts +4 -4
- package/src/features/mouse-tool/mouse-tool.ts +44 -32
- package/src/features/navigation/di.config.ts +6 -12
- package/src/features/navigation/navigation-action-handler.ts +46 -78
- package/src/features/navigation/navigation-target-resolver.spec.ts +6 -9
- package/src/features/navigation/navigation-target-resolver.ts +16 -94
- package/src/features/rank/model.ts +3 -3
- package/src/features/reconnect/model.ts +9 -11
- package/src/features/save/di.config.ts +4 -5
- package/src/features/save/model.ts +1 -1
- package/src/features/save/{save.ts → save-keylistener.ts} +4 -12
- package/src/features/select/di.config.ts +6 -6
- package/src/features/select/select-feedback-action.ts +6 -8
- package/src/features/select/select-mouse-listener.ts +2 -2
- package/src/features/select/selection-service.spec.ts +25 -19
- package/src/features/select/selection-service.ts +25 -22
- package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -39
- package/src/features/tool-feedback/creation-tool-feedback.ts +49 -24
- package/src/features/tool-feedback/css-feedback.ts +16 -13
- package/src/features/tool-feedback/di.config.ts +12 -15
- package/src/features/tool-feedback/edge-edit-tool-feedback.ts +56 -35
- package/src/features/tool-feedback/feedback-action-dispatcher.ts +13 -14
- package/src/features/tool-feedback/marquee-tool-feedback.ts +12 -12
- package/src/features/tool-feedback/model.ts +2 -3
- package/src/features/tool-feedback/view.tsx +20 -13
- package/src/features/tool-palette/di.config.ts +5 -7
- package/src/features/tool-palette/palette-item.ts +5 -7
- package/src/features/tool-palette/tool-palette.ts +118 -110
- package/src/features/tools/base-glsp-tool.ts +12 -12
- package/src/features/tools/change-bounds-tool.ts +83 -53
- package/src/features/tools/delete-tool.ts +23 -20
- package/src/features/tools/di.config.ts +16 -17
- package/src/features/tools/edge-creation-tool.ts +20 -25
- package/src/features/tools/edge-edit-tool.ts +43 -46
- package/src/features/tools/marquee-behavior.spec.ts +175 -0
- package/src/features/tools/marquee-behavior.ts +158 -0
- package/src/features/tools/marquee-mouse-tool.ts +67 -118
- package/src/features/tools/marquee-tool.ts +6 -6
- package/src/features/tools/model.ts +1 -2
- package/src/features/tools/node-creation-tool.ts +16 -23
- package/src/features/tools/view.tsx +21 -15
- package/src/features/validation/di.config.ts +5 -5
- package/src/features/validation/issue-marker.ts +4 -5
- package/src/features/validation/marker-navigator.spec.ts +38 -33
- package/src/features/validation/marker-navigator.ts +39 -26
- package/src/features/validation/validate.ts +25 -59
- package/src/features/viewport/di.config.ts +4 -4
- package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
- package/src/index.ts +53 -38
- package/src/lib/model.ts +4 -4
- package/src/model-source/glsp-diagram-server.ts +19 -33
- package/src/protocol-reexport.ts +64 -0
- package/src/utils/argument-utils.ts +130 -0
- package/src/utils/layout-utils.ts +19 -11
- package/src/utils/marker.ts +8 -32
- package/src/utils/smodel-util.ts +28 -22
- package/src/utils/viewpoint-util.ts +5 -6
- package/src/views/base-view-module.ts +97 -0
- package/src/views/compartments.tsx +37 -0
- package/src/views/glsp-edge-view.tsx +79 -0
- package/src/views/index.ts +21 -0
- package/src/views/issue-marker-view.tsx +65 -0
- package/src/views/rounded-corner-view.tsx +103 -0
- package/src/views/rounded-corner.ts +87 -0
- package/lib/base/actions/context-actions.d.ts +0 -36
- package/lib/base/actions/context-actions.d.ts.map +0 -1
- package/lib/base/actions/context-actions.js +0 -51
- package/lib/base/actions/context-actions.js.map +0 -1
- package/lib/base/actions/edit-mode-action.d.ts +0 -13
- package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
- package/lib/base/actions/edit-mode-action.js +0 -56
- package/lib/base/actions/edit-mode-action.js.map +0 -1
- package/lib/base/actions/edit-validation-actions.d.ts +0 -78
- package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
- package/lib/base/actions/edit-validation-actions.js +0 -82
- package/lib/base/actions/edit-validation-actions.js.map +0 -1
- package/lib/base/actions/protocol-actions.d.ts +0 -41
- package/lib/base/actions/protocol-actions.d.ts.map +0 -1
- package/lib/base/actions/protocol-actions.js +0 -151
- package/lib/base/actions/protocol-actions.js.map +0 -1
- package/lib/base/args.d.ts.map +0 -1
- package/lib/base/args.js.map +0 -1
- package/lib/base/editor-context.d.ts +0 -46
- package/lib/base/editor-context.d.ts.map +0 -1
- package/lib/base/editor-context.js +0 -174
- package/lib/base/editor-context.js.map +0 -1
- package/lib/base/operations/operation.d.ts +0 -135
- package/lib/base/operations/operation.d.ts.map +0 -1
- package/lib/base/operations/operation.js +0 -231
- package/lib/base/operations/operation.js.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
- package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
- package/lib/features/copy-paste/copy-paste-actions.js +0 -68
- package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
- package/lib/features/decoration/view.d.ts +0 -8
- package/lib/features/decoration/view.d.ts.map +0 -1
- package/lib/features/decoration/view.js +0 -80
- package/lib/features/decoration/view.js.map +0 -1
- package/lib/features/hints/request-type-hints-action.d.ts +0 -32
- package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
- package/lib/features/hints/request-type-hints-action.js +0 -30
- package/lib/features/hints/request-type-hints-action.js.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
- package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
- package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
- package/lib/features/save/save.d.ts.map +0 -1
- package/lib/features/save/save.js +0 -62
- package/lib/features/save/save.js.map +0 -1
- package/lib/features/undo-redo/model.d.ts.map +0 -1
- package/lib/features/undo-redo/model.js +0 -22
- package/lib/features/undo-redo/model.js.map +0 -1
- package/lib/model-source/glsp-server-status.d.ts +0 -30
- package/lib/model-source/glsp-server-status.d.ts.map +0 -1
- package/lib/model-source/glsp-server-status.js +0 -61
- package/lib/model-source/glsp-server-status.js.map +0 -1
- package/lib/utils/array-utils.d.ts +0 -28
- package/lib/utils/array-utils.d.ts.map +0 -1
- package/lib/utils/array-utils.js +0 -61
- package/lib/utils/array-utils.js.map +0 -1
- package/src/base/actions/context-actions.ts +0 -43
- package/src/base/actions/edit-mode-action.ts +0 -33
- package/src/base/actions/edit-validation-actions.ts +0 -102
- package/src/base/actions/protocol-actions.ts +0 -82
- package/src/base/operations/operation.ts +0 -178
- package/src/features/copy-paste/copy-paste-actions.ts +0 -60
- package/src/features/decoration/view.tsx +0 -54
- package/src/features/hints/request-type-hints-action.ts +0 -36
- package/src/model-source/glsp-server-status.ts +0 -38
- package/src/utils/array-utils.ts +0 -55
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2019-2021 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -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
|
}
|
|
@@ -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 { Action } from
|
|
16
|
+
import { Action } from '@eclipse-glsp/protocol';
|
|
17
17
|
|
|
18
18
|
export class FocusStateChangedAction implements Action {
|
|
19
19
|
static KIND = 'focusStateChanged';
|
|
20
20
|
readonly kind = FocusStateChangedAction.KIND;
|
|
21
|
-
constructor(public readonly hasFocus: boolean) {
|
|
21
|
+
constructor(public readonly hasFocus: boolean) {}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export function isFocusStateChangedAction(action: Action): action is FocusStateChangedAction {
|
|
@@ -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,9 +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 {
|
|
17
|
-
|
|
18
|
-
export type Args = { [key: string]: string | number | boolean };
|
|
16
|
+
import { Args } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { SModelElement } from 'sprotty';
|
|
19
18
|
|
|
20
19
|
export interface SArgumentable {
|
|
21
20
|
args: Args;
|
|
@@ -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,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 {
|
|
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
25
|
readonly noSuggestionsMessage?: string;
|
|
@@ -49,10 +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
54
|
export class AutoCompleteWidget {
|
|
55
|
-
loadingIndicatorClasses =
|
|
55
|
+
loadingIndicatorClasses = codiconCSSClasses('loading', false, true, ['loading']);
|
|
56
56
|
|
|
57
57
|
protected containerElement: HTMLElement;
|
|
58
58
|
protected inputElement: HTMLInputElement;
|
|
@@ -70,12 +70,15 @@ export class AutoCompleteWidget {
|
|
|
70
70
|
public autoSuggestionSettings: AutoCompleteSettings,
|
|
71
71
|
public suggestionProvider: SuggestionProvider,
|
|
72
72
|
public suggestionSubmitHandler: SuggestionSubmitHandler,
|
|
73
|
-
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
74
|
+
protected notifyClose: () => void = () => {},
|
|
74
75
|
protected logger?: ILogger
|
|
75
|
-
) {
|
|
76
|
+
) {}
|
|
76
77
|
|
|
77
|
-
configureValidation(
|
|
78
|
-
|
|
78
|
+
configureValidation(
|
|
79
|
+
inputValidator: InputValidator,
|
|
80
|
+
validationDecorator: IValidationDecorator = IValidationDecorator.NO_DECORATION
|
|
81
|
+
): void {
|
|
79
82
|
this.inputValidator = inputValidator;
|
|
80
83
|
this.validationDecorator = validationDecorator;
|
|
81
84
|
}
|
|
@@ -103,7 +106,7 @@ export class AutoCompleteWidget {
|
|
|
103
106
|
return inputElement;
|
|
104
107
|
}
|
|
105
108
|
|
|
106
|
-
protected handleKeyDown(event: KeyboardEvent) {
|
|
109
|
+
protected handleKeyDown(event: KeyboardEvent): void {
|
|
107
110
|
if (matchesKeystroke(event, 'Escape')) {
|
|
108
111
|
this.notifyClose();
|
|
109
112
|
return;
|
|
@@ -127,16 +130,16 @@ export class AutoCompleteWidget {
|
|
|
127
130
|
}
|
|
128
131
|
}
|
|
129
132
|
|
|
130
|
-
protected isInputElementChanged() {
|
|
133
|
+
protected isInputElementChanged(): boolean {
|
|
131
134
|
return this.inputElement.value !== this.previousContent;
|
|
132
135
|
}
|
|
133
136
|
|
|
134
|
-
protected invalidateValidationResultAndContextActions() {
|
|
137
|
+
protected invalidateValidationResultAndContextActions(): void {
|
|
135
138
|
this.contextActions = undefined;
|
|
136
139
|
this.validationDecorator.invalidate();
|
|
137
140
|
}
|
|
138
141
|
|
|
139
|
-
open(root: Readonly<SModelRoot>, ...contextElementIds: string[]) {
|
|
142
|
+
open(root: Readonly<SModelRoot>, ...contextElementIds: string[]): void {
|
|
140
143
|
this.contextActions = undefined;
|
|
141
144
|
this.autoCompleteResult = configureAutocomplete(this.autocompleteSettings(root));
|
|
142
145
|
this.previousContent = this.inputElement.value;
|
|
@@ -152,25 +155,33 @@ export class AutoCompleteWidget {
|
|
|
152
155
|
showOnFocus: this.autoSuggestionSettings.showOnFocus,
|
|
153
156
|
debounceWaitMs: this.autoSuggestionSettings.debounceWaitMs,
|
|
154
157
|
minLength: -1,
|
|
155
|
-
fetch: (text: string, update: (items: LabeledAction[]) => void) =>
|
|
156
|
-
this.updateSuggestions(update, text, root),
|
|
158
|
+
fetch: (text: string, update: (items: LabeledAction[]) => void) => this.updateSuggestions(update, text, root),
|
|
157
159
|
onSelect: (item: LabeledAction) => this.onSelect(item),
|
|
158
|
-
render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined =>
|
|
159
|
-
this.renderSuggestions(item, currentValue),
|
|
160
|
+
render: (item: LabeledAction, currentValue: string): HTMLDivElement | undefined => this.renderSuggestions(item, currentValue),
|
|
160
161
|
customize: (input: HTMLInputElement, inputRect: ClientRect | DOMRect, container: HTMLDivElement, maxHeight: number) => {
|
|
161
162
|
this.customizeInputElement(input, inputRect, container, maxHeight);
|
|
162
163
|
}
|
|
163
164
|
};
|
|
164
165
|
}
|
|
165
166
|
|
|
166
|
-
protected customizeInputElement(
|
|
167
|
+
protected customizeInputElement(
|
|
168
|
+
input: HTMLInputElement,
|
|
169
|
+
inputRect: ClientRect | DOMRect,
|
|
170
|
+
container: HTMLDivElement,
|
|
171
|
+
maxHeight: number
|
|
172
|
+
): void {
|
|
167
173
|
// move container into our UIExtension container as this is already positioned correctly
|
|
168
174
|
if (this.containerElement) {
|
|
169
175
|
this.containerElement.appendChild(container);
|
|
170
176
|
}
|
|
171
177
|
}
|
|
172
178
|
|
|
173
|
-
protected updateSuggestions(
|
|
179
|
+
protected updateSuggestions(
|
|
180
|
+
update: (items: LabeledAction[]) => void,
|
|
181
|
+
text: string,
|
|
182
|
+
root: Readonly<SModelRoot>,
|
|
183
|
+
...contextElementIds: string[]
|
|
184
|
+
): void {
|
|
174
185
|
this.onLoading();
|
|
175
186
|
this.doUpdateSuggestions(text, root)
|
|
176
187
|
.then(actions => {
|
|
@@ -179,12 +190,14 @@ export class AutoCompleteWidget {
|
|
|
179
190
|
this.onLoaded('success');
|
|
180
191
|
})
|
|
181
192
|
.catch(reason => {
|
|
182
|
-
if (this.logger) {
|
|
193
|
+
if (this.logger) {
|
|
194
|
+
this.logger.error(this, 'Failed to obtain suggestions', reason);
|
|
195
|
+
}
|
|
183
196
|
this.onLoaded('error');
|
|
184
197
|
});
|
|
185
198
|
}
|
|
186
199
|
|
|
187
|
-
protected onLoading() {
|
|
200
|
+
protected onLoading(): void {
|
|
188
201
|
if (this.loadingIndicator && this.containerElement.contains(this.loadingIndicator)) {
|
|
189
202
|
return;
|
|
190
203
|
}
|
|
@@ -197,7 +210,7 @@ export class AutoCompleteWidget {
|
|
|
197
210
|
return this.suggestionProvider.provideSuggestions(text);
|
|
198
211
|
}
|
|
199
212
|
|
|
200
|
-
protected onLoaded(_success: 'success' | 'error') {
|
|
213
|
+
protected onLoaded(_success: 'success' | 'error'): void {
|
|
201
214
|
if (this.containerElement.contains(this.loadingIndicator)) {
|
|
202
215
|
this.containerElement.removeChild(this.loadingIndicator);
|
|
203
216
|
}
|
|
@@ -206,7 +219,7 @@ export class AutoCompleteWidget {
|
|
|
206
219
|
this.previousContent = this.inputElement.value;
|
|
207
220
|
}
|
|
208
221
|
|
|
209
|
-
protected renderSuggestions(item: LabeledAction, value: string) {
|
|
222
|
+
protected renderSuggestions(item: LabeledAction, value: string): HTMLDivElement {
|
|
210
223
|
const itemElement = document.createElement('div');
|
|
211
224
|
const wordMatcher = this.espaceForRegExp(value).split(' ').join('|');
|
|
212
225
|
const regex = new RegExp(wordMatcher, 'gi');
|
|
@@ -217,23 +230,25 @@ export class AutoCompleteWidget {
|
|
|
217
230
|
return itemElement;
|
|
218
231
|
}
|
|
219
232
|
|
|
220
|
-
protected espaceForRegExp(value: string) {
|
|
233
|
+
protected espaceForRegExp(value: string): string {
|
|
221
234
|
return value.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
|
|
222
235
|
}
|
|
223
236
|
|
|
224
|
-
protected renderIcon(itemElement: HTMLDivElement, icon: string) {
|
|
237
|
+
protected renderIcon(itemElement: HTMLDivElement, icon: string): void {
|
|
225
238
|
itemElement.innerHTML += `<span class="icon ${icon}"></span>`;
|
|
226
239
|
}
|
|
227
240
|
|
|
228
241
|
protected filterActions(filterText: string, actions: LabeledAction[]): LabeledAction[] {
|
|
229
|
-
return toArray(
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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
|
+
);
|
|
234
249
|
}
|
|
235
250
|
|
|
236
|
-
protected onSelect(item: LabeledAction) {
|
|
251
|
+
protected onSelect(item: LabeledAction): void {
|
|
237
252
|
if (isSetAutoCompleteValueAction(item)) {
|
|
238
253
|
this.inputElement.value = item.text;
|
|
239
254
|
// trigger update of suggestions with an keyup event
|
|
@@ -244,7 +259,7 @@ export class AutoCompleteWidget {
|
|
|
244
259
|
}
|
|
245
260
|
}
|
|
246
261
|
|
|
247
|
-
protected validateInputIfNoContextActions() {
|
|
262
|
+
protected validateInputIfNoContextActions(): void {
|
|
248
263
|
if (this.isNoOrExactlyOneMatchingContextAction()) {
|
|
249
264
|
this.validateInput();
|
|
250
265
|
} else {
|
|
@@ -252,27 +267,30 @@ export class AutoCompleteWidget {
|
|
|
252
267
|
}
|
|
253
268
|
}
|
|
254
269
|
|
|
255
|
-
private isNoOrExactlyOneMatchingContextAction() {
|
|
256
|
-
return
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
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
|
+
);
|
|
260
275
|
}
|
|
261
276
|
|
|
262
|
-
protected isSuggestionAvailable() {
|
|
277
|
+
protected isSuggestionAvailable(): boolean | undefined {
|
|
263
278
|
return this.contextActions && this.contextActions.length > 0;
|
|
264
279
|
}
|
|
265
280
|
|
|
266
|
-
validateInput() {
|
|
281
|
+
validateInput(): void {
|
|
267
282
|
if (this.inputValidator) {
|
|
268
|
-
this.inputValidator
|
|
283
|
+
this.inputValidator
|
|
284
|
+
.validate(this.inputElement.value)
|
|
269
285
|
.then(result => this.validationDecorator.decorateValidationResult(result))
|
|
270
286
|
.catch(error => this.handleErrorDuringValidation(error));
|
|
271
287
|
}
|
|
272
288
|
}
|
|
273
289
|
|
|
274
|
-
protected handleErrorDuringValidation(error: Error) {
|
|
275
|
-
if (this.logger) {
|
|
290
|
+
protected handleErrorDuringValidation(error: Error): void {
|
|
291
|
+
if (this.logger) {
|
|
292
|
+
this.logger.error(this, 'Failed to validate input', error);
|
|
293
|
+
}
|
|
276
294
|
this.validationDecorator.dispose();
|
|
277
295
|
}
|
|
278
296
|
|
|
@@ -290,7 +308,7 @@ export class AutoCompleteWidget {
|
|
|
290
308
|
return this.inputElement;
|
|
291
309
|
}
|
|
292
310
|
|
|
293
|
-
dispose() {
|
|
311
|
+
dispose(): void {
|
|
294
312
|
this.validationDecorator.dispose();
|
|
295
313
|
if (this.autoCompleteResult) {
|
|
296
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
|
+
}
|