@eclipse-glsp/client 2.2.0-next.336 → 2.2.0-next.338
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/css/ghost-element.css +7 -0
- package/lib/base/default.module.js +4 -4
- package/lib/base/default.module.js.map +1 -1
- package/lib/base/drag-aware-mouse-listener.d.ts +5 -2
- package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
- package/lib/base/drag-aware-mouse-listener.js +13 -3
- package/lib/base/drag-aware-mouse-listener.js.map +1 -1
- package/lib/base/feedback/feedback-action-dispatcher-default.d.ts +34 -0
- package/lib/base/feedback/feedback-action-dispatcher-default.d.ts.map +1 -0
- package/lib/base/feedback/feedback-action-dispatcher-default.js +120 -0
- package/lib/base/feedback/feedback-action-dispatcher-default.js.map +1 -0
- package/lib/base/feedback/feedback-action-dispatcher.d.ts +2 -17
- package/lib/base/feedback/feedback-action-dispatcher.d.ts.map +1 -1
- package/lib/base/feedback/feedback-action-dispatcher.js +1 -100
- package/lib/base/feedback/feedback-action-dispatcher.js.map +1 -1
- package/lib/base/feedback/{feeback-emitter.d.ts → feedback-emitter.d.ts} +8 -1
- package/lib/base/feedback/feedback-emitter.d.ts.map +1 -0
- package/lib/base/feedback/{feeback-emitter.js → feedback-emitter.js} +21 -6
- package/lib/base/feedback/feedback-emitter.js.map +1 -0
- package/lib/base/selection-service.d.ts +1 -1
- package/lib/base/selection-service.d.ts.map +1 -1
- package/lib/base/tool-manager/tool-manager.d.ts +1 -1
- package/lib/base/tool-manager/tool-manager.d.ts.map +1 -1
- package/lib/base/ui-extension/ui-extension-registry.d.ts +1 -1
- package/lib/base/ui-extension/ui-extension-registry.d.ts.map +1 -1
- package/lib/base/view/key-tool.d.ts +1 -1
- package/lib/base/view/key-tool.d.ts.map +1 -1
- package/lib/base/view/mouse-tool.d.ts +1 -1
- package/lib/base/view/mouse-tool.d.ts.map +1 -1
- package/lib/features/accessibility/move-zoom/move-handler.d.ts +2 -2
- package/lib/features/accessibility/move-zoom/move-handler.d.ts.map +1 -1
- package/lib/features/accessibility/move-zoom/move-handler.js +1 -1
- package/lib/features/accessibility/move-zoom/move-handler.js.map +1 -1
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts +3 -3
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.d.ts.map +1 -1
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.js +1 -1
- package/lib/features/accessibility/resize-key-tool/resize-key-handler.js.map +1 -1
- package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts +3 -3
- package/lib/features/accessibility/view-key-tools/movement-key-tool.d.ts.map +1 -1
- package/lib/features/accessibility/view-key-tools/movement-key-tool.js +4 -4
- package/lib/features/accessibility/view-key-tools/movement-key-tool.js.map +1 -1
- package/lib/features/bounds/set-bounds-feedback-command.d.ts.map +1 -1
- package/lib/features/bounds/set-bounds-feedback-command.js +2 -2
- package/lib/features/bounds/set-bounds-feedback-command.js.map +1 -1
- package/lib/features/change-bounds/model.d.ts +7 -3
- package/lib/features/change-bounds/model.d.ts.map +1 -1
- package/lib/features/change-bounds/model.js +46 -20
- package/lib/features/change-bounds/model.js.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.d.ts +3 -2
- package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
- package/lib/features/change-bounds/movement-restrictor.js +9 -10
- package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
- package/lib/features/debug/debug-bounds-decorator.d.ts +1 -1
- package/lib/features/debug/debug-bounds-decorator.d.ts.map +1 -1
- package/lib/features/debug/debug-bounds-decorator.js +6 -6
- package/lib/features/debug/debug-bounds-decorator.js.map +1 -1
- package/lib/features/debug/debug-manager.d.ts +2 -1
- package/lib/features/debug/debug-manager.d.ts.map +1 -1
- package/lib/features/debug/debug-manager.js.map +1 -1
- package/lib/features/debug/debug-model.d.ts +1 -1
- package/lib/features/debug/debug-model.d.ts.map +1 -1
- package/lib/features/debug/debug-model.js +5 -5
- package/lib/features/debug/debug-model.js.map +1 -1
- package/lib/features/debug/debug-module.js +1 -1
- package/lib/features/debug/debug-module.js.map +1 -1
- package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts +8 -6
- package/lib/features/element-template/mouse-tracking-element-position-listener.d.ts.map +1 -1
- package/lib/features/element-template/mouse-tracking-element-position-listener.js +14 -15
- package/lib/features/element-template/mouse-tracking-element-position-listener.js.map +1 -1
- package/lib/features/grid/grid-manager.d.ts +2 -1
- package/lib/features/grid/grid-manager.d.ts.map +1 -1
- package/lib/features/grid/grid-manager.js.map +1 -1
- package/lib/features/grid/grid-model.d.ts +1 -1
- package/lib/features/grid/grid-model.d.ts.map +1 -1
- package/lib/features/grid/grid-model.js +5 -5
- package/lib/features/grid/grid-model.js.map +1 -1
- package/lib/features/grid/grid-module.d.ts +1 -1
- package/lib/features/grid/grid-module.d.ts.map +1 -1
- package/lib/features/grid/grid-module.js +2 -2
- package/lib/features/grid/grid-module.js.map +1 -1
- package/lib/features/helper-lines/helper-line-feedback.d.ts +2 -2
- package/lib/features/helper-lines/helper-line-feedback.js +3 -3
- package/lib/features/helper-lines/helper-line-feedback.js.map +1 -1
- package/lib/features/helper-lines/helper-line-manager-default.d.ts +16 -4
- package/lib/features/helper-lines/helper-line-manager-default.d.ts.map +1 -1
- package/lib/features/helper-lines/helper-line-manager-default.js +56 -15
- package/lib/features/helper-lines/helper-line-manager-default.js.map +1 -1
- package/lib/features/hints/model.d.ts +6 -2
- package/lib/features/hints/model.d.ts.map +1 -1
- package/lib/features/hints/model.js.map +1 -1
- package/lib/features/hints/type-hint-provider.d.ts +1 -1
- package/lib/features/hints/type-hint-provider.d.ts.map +1 -1
- package/lib/features/hints/type-hint-provider.js.map +1 -1
- package/lib/features/select/select-mouse-listener.d.ts +3 -3
- package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
- package/lib/features/select/select-mouse-listener.js +6 -6
- package/lib/features/select/select-mouse-listener.js.map +1 -1
- package/lib/features/tool-palette/tool-palette.d.ts +3 -3
- package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
- package/lib/features/tool-palette/tool-palette.js +9 -9
- package/lib/features/tool-palette/tool-palette.js.map +1 -1
- package/lib/features/tools/base-tools.d.ts +2 -2
- package/lib/features/tools/base-tools.d.ts.map +1 -1
- package/lib/features/tools/base-tools.js +1 -1
- package/lib/features/tools/change-bounds/change-bounds-manager.d.ts +15 -7
- package/lib/features/tools/change-bounds/change-bounds-manager.d.ts.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-manager.js +51 -17
- package/lib/features/tools/change-bounds/change-bounds-manager.js.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool-feedback.d.ts.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js +3 -3
- package/lib/features/tools/change-bounds/change-bounds-tool-feedback.js.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool-module.d.ts +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool-module.js +2 -2
- package/lib/features/tools/change-bounds/change-bounds-tool-module.js.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.d.ts +5 -5
- package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.d.ts.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.js +9 -12
- package/lib/features/tools/change-bounds/change-bounds-tool-move-feedback.js.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool.d.ts +4 -3
- package/lib/features/tools/change-bounds/change-bounds-tool.d.ts.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tool.js +13 -32
- package/lib/features/tools/change-bounds/change-bounds-tool.js.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tracker.d.ts +11 -4
- package/lib/features/tools/change-bounds/change-bounds-tracker.d.ts.map +1 -1
- package/lib/features/tools/change-bounds/change-bounds-tracker.js +46 -28
- package/lib/features/tools/change-bounds/change-bounds-tracker.js.map +1 -1
- package/lib/features/tools/edge-creation/dangling-edge-feedback.d.ts +1 -1
- package/lib/features/tools/edge-creation/dangling-edge-feedback.js +3 -3
- package/lib/features/tools/edge-creation/dangling-edge-feedback.js.map +1 -1
- package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts +1 -1
- package/lib/features/tools/edge-creation/edge-creation-tool-feedback.d.ts.map +1 -1
- package/lib/features/tools/edge-creation/edge-creation-tool.d.ts +6 -3
- package/lib/features/tools/edge-creation/edge-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-creation/edge-creation-tool.js +13 -11
- package/lib/features/tools/edge-creation/edge-creation-tool.js.map +1 -1
- package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts +4 -3
- package/lib/features/tools/edge-edit/edge-edit-tool-feedback.d.ts.map +1 -1
- package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js +4 -4
- package/lib/features/tools/edge-edit/edge-edit-tool-feedback.js.map +1 -1
- package/lib/features/tools/edge-edit/edge-edit-tool.d.ts +3 -3
- package/lib/features/tools/edge-edit/edge-edit-tool.d.ts.map +1 -1
- package/lib/features/tools/edge-edit/edge-edit-tool.js +4 -4
- package/lib/features/tools/edge-edit/edge-edit-tool.js.map +1 -1
- package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts +2 -2
- package/lib/features/tools/marquee-selection/marquee-mouse-tool.d.ts.map +1 -1
- package/lib/features/tools/marquee-selection/marquee-mouse-tool.js +3 -3
- package/lib/features/tools/marquee-selection/marquee-mouse-tool.js.map +1 -1
- package/lib/features/tools/node-creation/container-manager.d.ts +41 -0
- package/lib/features/tools/node-creation/container-manager.d.ts.map +1 -0
- package/lib/features/tools/node-creation/container-manager.js +73 -0
- package/lib/features/tools/node-creation/container-manager.js.map +1 -0
- package/lib/{base/ui-extension/index.d.ts → features/tools/node-creation/insert-indicator.d.ts} +15 -3
- package/lib/features/tools/node-creation/insert-indicator.d.ts.map +1 -0
- package/lib/features/tools/node-creation/insert-indicator.js +40 -0
- package/lib/features/tools/node-creation/insert-indicator.js.map +1 -0
- package/lib/features/tools/node-creation/node-creation-module.d.ts +1 -1
- package/lib/features/tools/node-creation/node-creation-module.d.ts.map +1 -1
- package/lib/features/tools/node-creation/node-creation-module.js +6 -1
- package/lib/features/tools/node-creation/node-creation-module.js.map +1 -1
- package/lib/features/tools/node-creation/node-creation-tool.d.ts +26 -16
- package/lib/features/tools/node-creation/node-creation-tool.d.ts.map +1 -1
- package/lib/features/tools/node-creation/node-creation-tool.js +82 -78
- package/lib/features/tools/node-creation/node-creation-tool.js.map +1 -1
- package/lib/features/{debug/index.d.ts → tools/node-creation/node-creation-views.d.ts} +10 -5
- package/lib/features/tools/node-creation/node-creation-views.d.ts.map +1 -0
- package/lib/features/tools/node-creation/node-creation-views.js +60 -0
- package/lib/features/tools/node-creation/node-creation-views.js.map +1 -0
- package/lib/features/validation/validate.d.ts +1 -1
- package/lib/features/validation/validate.d.ts.map +1 -1
- package/lib/features/validation/validate.js.map +1 -1
- package/lib/features/viewport/viewport-handler.d.ts +1 -1
- package/lib/features/viewport/viewport-handler.d.ts.map +1 -1
- package/lib/features/viewport/viewport-handler.js +3 -3
- package/lib/features/viewport/viewport-handler.js.map +1 -1
- package/lib/index.d.ts +223 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +223 -5
- package/lib/index.js.map +1 -1
- package/lib/utils/gmodel-util.d.ts +2 -0
- package/lib/utils/gmodel-util.d.ts.map +1 -1
- package/lib/utils/gmodel-util.js.map +1 -1
- package/lib/views/ggraph-view.d.ts +1 -1
- package/lib/views/ggraph-view.d.ts.map +1 -1
- package/lib/views/ggraph-view.js +4 -4
- package/lib/views/ggraph-view.js.map +1 -1
- package/lib/views/glsp-projection-view.d.ts +2 -2
- package/lib/views/glsp-projection-view.d.ts.map +1 -1
- package/lib/views/glsp-projection-view.js +5 -5
- package/lib/views/glsp-projection-view.js.map +1 -1
- package/package.json +4 -4
- package/src/base/action-dispatcher.spec.ts +1 -1
- package/src/base/default.module.ts +2 -2
- package/src/base/drag-aware-mouse-listener.ts +18 -2
- package/src/base/feedback/feedback-action-dispatcher-default.ts +119 -0
- package/src/base/feedback/feedback-action-dispatcher.ts +2 -106
- package/src/base/feedback/feedback-emitter.spec.ts +176 -0
- package/src/base/feedback/{feeback-emitter.ts → feedback-emitter.ts} +24 -5
- package/src/base/selection-service.spec.ts +1 -1
- package/src/base/selection-service.ts +1 -1
- package/src/base/tool-manager/tool-manager.ts +1 -1
- package/src/base/ui-extension/ui-extension-registry.ts +1 -1
- package/src/base/view/key-tool.ts +1 -1
- package/src/base/view/mouse-tool.ts +1 -1
- package/src/features/accessibility/move-zoom/move-handler.ts +2 -2
- package/src/features/accessibility/resize-key-tool/resize-key-handler.ts +3 -3
- package/src/features/accessibility/view-key-tools/movement-key-tool.ts +4 -4
- package/src/features/bounds/set-bounds-feedback-command.ts +1 -1
- package/src/features/change-bounds/model.ts +41 -16
- package/src/features/change-bounds/movement-restrictor.ts +13 -13
- package/src/features/change-bounds/point-position-updater.spec.ts +1 -1
- package/src/features/debug/debug-bounds-decorator.tsx +8 -8
- package/src/features/debug/debug-manager.ts +2 -1
- package/src/features/debug/debug-model.ts +2 -2
- package/src/features/debug/debug-module.ts +1 -1
- package/src/features/element-template/mouse-tracking-element-position-listener.ts +17 -24
- package/src/features/grid/grid-manager.ts +2 -1
- package/src/features/grid/grid-model.ts +2 -2
- package/src/features/grid/grid-module.ts +3 -3
- package/src/features/helper-lines/helper-line-feedback.ts +1 -1
- package/src/features/helper-lines/helper-line-manager-default.ts +68 -12
- package/src/features/hints/model.ts +7 -2
- package/src/features/hints/type-hint-provider.spec.ts +3 -3
- package/src/features/hints/type-hint-provider.ts +1 -1
- package/src/features/select/select-mouse-listener.ts +6 -6
- package/src/features/tool-palette/tool-palette.ts +6 -7
- package/src/features/tools/base-tools.ts +2 -2
- package/src/features/tools/change-bounds/change-bounds-manager.ts +75 -17
- package/src/features/tools/change-bounds/change-bounds-tool-feedback.ts +5 -2
- package/src/features/tools/change-bounds/change-bounds-tool-module.ts +2 -2
- package/src/features/tools/change-bounds/change-bounds-tool-move-feedback.ts +13 -11
- package/src/features/tools/change-bounds/change-bounds-tool.ts +12 -57
- package/src/features/tools/change-bounds/change-bounds-tracker.ts +29 -7
- package/src/features/tools/edge-creation/dangling-edge-feedback.ts +2 -2
- package/src/features/tools/edge-creation/edge-creation-tool-feedback.ts +1 -1
- package/src/features/tools/edge-creation/edge-creation-tool.ts +15 -8
- package/src/features/tools/edge-edit/edge-edit-tool-feedback.ts +4 -3
- package/src/features/tools/edge-edit/edge-edit-tool.ts +4 -5
- package/src/features/tools/marquee-selection/marquee-mouse-tool.ts +2 -2
- package/src/features/tools/node-creation/container-manager.ts +76 -0
- package/src/features/tools/node-creation/insert-indicator.ts +41 -0
- package/src/features/tools/node-creation/node-creation-module.ts +14 -2
- package/src/features/tools/node-creation/node-creation-tool.ts +101 -92
- package/src/features/tools/node-creation/node-creation-views.tsx +49 -0
- package/src/features/validation/validate.ts +1 -1
- package/src/features/viewport/viewport-handler.ts +1 -1
- package/src/index.ts +223 -5
- package/src/utils/gmodel-util.ts +4 -1
- package/src/views/ggraph-view.tsx +4 -4
- package/src/views/glsp-projection-view.tsx +4 -5
- package/lib/base/auto-complete/index.d.ts +0 -21
- package/lib/base/auto-complete/index.d.ts.map +0 -1
- package/lib/base/auto-complete/index.js +0 -37
- package/lib/base/auto-complete/index.js.map +0 -1
- package/lib/base/feedback/feeback-emitter.d.ts.map +0 -1
- package/lib/base/feedback/feeback-emitter.js.map +0 -1
- package/lib/base/feedback/index.d.ts +0 -22
- package/lib/base/feedback/index.d.ts.map +0 -1
- package/lib/base/feedback/index.js +0 -38
- package/lib/base/feedback/index.js.map +0 -1
- package/lib/base/focus/index.d.ts +0 -18
- package/lib/base/focus/index.d.ts.map +0 -1
- package/lib/base/focus/index.js +0 -34
- package/lib/base/focus/index.js.map +0 -1
- package/lib/base/index.d.ts +0 -34
- package/lib/base/index.d.ts.map +0 -1
- package/lib/base/index.js +0 -50
- package/lib/base/index.js.map +0 -1
- package/lib/base/model/index.d.ts +0 -20
- package/lib/base/model/index.d.ts.map +0 -1
- package/lib/base/model/index.js +0 -36
- package/lib/base/model/index.js.map +0 -1
- package/lib/base/tool-manager/index.d.ts +0 -18
- package/lib/base/tool-manager/index.d.ts.map +0 -1
- package/lib/base/tool-manager/index.js +0 -34
- package/lib/base/tool-manager/index.js.map +0 -1
- package/lib/base/ui-extension/index.d.ts.map +0 -1
- package/lib/base/ui-extension/index.js +0 -34
- package/lib/base/ui-extension/index.js.map +0 -1
- package/lib/base/view/index.d.ts +0 -19
- package/lib/base/view/index.d.ts.map +0 -1
- package/lib/base/view/index.js +0 -35
- package/lib/base/view/index.js.map +0 -1
- package/lib/features/accessibility/edge-autocomplete/index.d.ts +0 -20
- package/lib/features/accessibility/edge-autocomplete/index.d.ts.map +0 -1
- package/lib/features/accessibility/edge-autocomplete/index.js +0 -36
- package/lib/features/accessibility/edge-autocomplete/index.js.map +0 -1
- package/lib/features/accessibility/element-navigation/index.d.ts +0 -22
- package/lib/features/accessibility/element-navigation/index.d.ts.map +0 -1
- package/lib/features/accessibility/element-navigation/index.js +0 -38
- package/lib/features/accessibility/element-navigation/index.js.map +0 -1
- package/lib/features/accessibility/focus-tracker/index.d.ts +0 -18
- package/lib/features/accessibility/focus-tracker/index.d.ts.map +0 -1
- package/lib/features/accessibility/focus-tracker/index.js +0 -34
- package/lib/features/accessibility/focus-tracker/index.js.map +0 -1
- package/lib/features/accessibility/index.d.ts +0 -31
- package/lib/features/accessibility/index.d.ts.map +0 -1
- package/lib/features/accessibility/index.js +0 -47
- package/lib/features/accessibility/index.js.map +0 -1
- package/lib/features/accessibility/key-shortcut/index.d.ts +0 -19
- package/lib/features/accessibility/key-shortcut/index.d.ts.map +0 -1
- package/lib/features/accessibility/key-shortcut/index.js +0 -35
- package/lib/features/accessibility/key-shortcut/index.js.map +0 -1
- package/lib/features/accessibility/keyboard-grid/index.d.ts +0 -21
- package/lib/features/accessibility/keyboard-grid/index.d.ts.map +0 -1
- package/lib/features/accessibility/keyboard-grid/index.js +0 -37
- package/lib/features/accessibility/keyboard-grid/index.js.map +0 -1
- package/lib/features/accessibility/keyboard-pointer/index.d.ts +0 -22
- package/lib/features/accessibility/keyboard-pointer/index.d.ts.map +0 -1
- package/lib/features/accessibility/keyboard-pointer/index.js +0 -38
- package/lib/features/accessibility/keyboard-pointer/index.js.map +0 -1
- package/lib/features/accessibility/keyboard-tool-palette/index.d.ts +0 -18
- package/lib/features/accessibility/keyboard-tool-palette/index.d.ts.map +0 -1
- package/lib/features/accessibility/keyboard-tool-palette/index.js +0 -34
- package/lib/features/accessibility/keyboard-tool-palette/index.js.map +0 -1
- package/lib/features/accessibility/move-zoom/index.d.ts +0 -19
- package/lib/features/accessibility/move-zoom/index.d.ts.map +0 -1
- package/lib/features/accessibility/move-zoom/index.js +0 -35
- package/lib/features/accessibility/move-zoom/index.js.map +0 -1
- package/lib/features/accessibility/resize-key-tool/index.d.ts +0 -19
- package/lib/features/accessibility/resize-key-tool/index.d.ts.map +0 -1
- package/lib/features/accessibility/resize-key-tool/index.js +0 -35
- package/lib/features/accessibility/resize-key-tool/index.js.map +0 -1
- package/lib/features/accessibility/search/index.d.ts +0 -19
- package/lib/features/accessibility/search/index.d.ts.map +0 -1
- package/lib/features/accessibility/search/index.js +0 -35
- package/lib/features/accessibility/search/index.js.map +0 -1
- package/lib/features/accessibility/toast/index.d.ts +0 -19
- package/lib/features/accessibility/toast/index.d.ts.map +0 -1
- package/lib/features/accessibility/toast/index.js +0 -35
- package/lib/features/accessibility/toast/index.js.map +0 -1
- package/lib/features/accessibility/view-key-tools/index.d.ts +0 -20
- package/lib/features/accessibility/view-key-tools/index.d.ts.map +0 -1
- package/lib/features/accessibility/view-key-tools/index.js +0 -36
- package/lib/features/accessibility/view-key-tools/index.js.map +0 -1
- package/lib/features/bounds/index.d.ts +0 -25
- package/lib/features/bounds/index.d.ts.map +0 -1
- package/lib/features/bounds/index.js +0 -41
- package/lib/features/bounds/index.js.map +0 -1
- package/lib/features/change-bounds/index.d.ts +0 -22
- package/lib/features/change-bounds/index.d.ts.map +0 -1
- package/lib/features/change-bounds/index.js +0 -38
- package/lib/features/change-bounds/index.js.map +0 -1
- package/lib/features/command-palette/index.d.ts +0 -20
- package/lib/features/command-palette/index.d.ts.map +0 -1
- package/lib/features/command-palette/index.js +0 -36
- package/lib/features/command-palette/index.js.map +0 -1
- package/lib/features/context-menu/index.d.ts +0 -20
- package/lib/features/context-menu/index.d.ts.map +0 -1
- package/lib/features/context-menu/index.js +0 -36
- package/lib/features/context-menu/index.js.map +0 -1
- package/lib/features/copy-paste/index.d.ts +0 -20
- package/lib/features/copy-paste/index.d.ts.map +0 -1
- package/lib/features/copy-paste/index.js +0 -36
- package/lib/features/copy-paste/index.js.map +0 -1
- package/lib/features/debug/index.d.ts.map +0 -1
- package/lib/features/debug/index.js +0 -36
- package/lib/features/debug/index.js.map +0 -1
- package/lib/features/decoration/index.d.ts +0 -18
- package/lib/features/decoration/index.d.ts.map +0 -1
- package/lib/features/decoration/index.js +0 -34
- package/lib/features/decoration/index.js.map +0 -1
- package/lib/features/element-template/index.d.ts +0 -20
- package/lib/features/element-template/index.d.ts.map +0 -1
- package/lib/features/element-template/index.js +0 -36
- package/lib/features/element-template/index.js.map +0 -1
- package/lib/features/export/index.d.ts +0 -19
- package/lib/features/export/index.d.ts.map +0 -1
- package/lib/features/export/index.js +0 -35
- package/lib/features/export/index.js.map +0 -1
- package/lib/features/grid/index.d.ts +0 -21
- package/lib/features/grid/index.d.ts.map +0 -1
- package/lib/features/grid/index.js +0 -37
- package/lib/features/grid/index.js.map +0 -1
- package/lib/features/helper-lines/index.d.ts +0 -22
- package/lib/features/helper-lines/index.d.ts.map +0 -1
- package/lib/features/helper-lines/index.js +0 -38
- package/lib/features/helper-lines/index.js.map +0 -1
- package/lib/features/hints/index.d.ts +0 -19
- package/lib/features/hints/index.d.ts.map +0 -1
- package/lib/features/hints/index.js +0 -35
- package/lib/features/hints/index.js.map +0 -1
- package/lib/features/hover/index.d.ts +0 -18
- package/lib/features/hover/index.d.ts.map +0 -1
- package/lib/features/hover/index.js +0 -34
- package/lib/features/hover/index.js.map +0 -1
- package/lib/features/index.d.ts +0 -46
- package/lib/features/index.d.ts.map +0 -1
- package/lib/features/index.js +0 -62
- package/lib/features/index.js.map +0 -1
- package/lib/features/label-edit/index.d.ts +0 -19
- package/lib/features/label-edit/index.d.ts.map +0 -1
- package/lib/features/label-edit/index.js +0 -35
- package/lib/features/label-edit/index.js.map +0 -1
- package/lib/features/label-edit-ui/index.d.ts +0 -18
- package/lib/features/label-edit-ui/index.d.ts.map +0 -1
- package/lib/features/label-edit-ui/index.js +0 -34
- package/lib/features/label-edit-ui/index.js.map +0 -1
- package/lib/features/layout/index.d.ts +0 -18
- package/lib/features/layout/index.d.ts.map +0 -1
- package/lib/features/layout/index.js +0 -34
- package/lib/features/layout/index.js.map +0 -1
- package/lib/features/navigation/index.d.ts +0 -19
- package/lib/features/navigation/index.d.ts.map +0 -1
- package/lib/features/navigation/index.js +0 -35
- package/lib/features/navigation/index.js.map +0 -1
- package/lib/features/reconnect/index.d.ts +0 -17
- package/lib/features/reconnect/index.d.ts.map +0 -1
- package/lib/features/reconnect/index.js +0 -33
- package/lib/features/reconnect/index.js.map +0 -1
- package/lib/features/routing/index.d.ts +0 -18
- package/lib/features/routing/index.d.ts.map +0 -1
- package/lib/features/routing/index.js +0 -34
- package/lib/features/routing/index.js.map +0 -1
- package/lib/features/save/index.d.ts +0 -18
- package/lib/features/save/index.d.ts.map +0 -1
- package/lib/features/save/index.js +0 -34
- package/lib/features/save/index.js.map +0 -1
- package/lib/features/select/index.d.ts +0 -19
- package/lib/features/select/index.d.ts.map +0 -1
- package/lib/features/select/index.js +0 -35
- package/lib/features/select/index.js.map +0 -1
- package/lib/features/source-model-watcher/index.d.ts +0 -18
- package/lib/features/source-model-watcher/index.d.ts.map +0 -1
- package/lib/features/source-model-watcher/index.js +0 -34
- package/lib/features/source-model-watcher/index.js.map +0 -1
- package/lib/features/status/index.d.ts +0 -18
- package/lib/features/status/index.d.ts.map +0 -1
- package/lib/features/status/index.js +0 -34
- package/lib/features/status/index.js.map +0 -1
- package/lib/features/svg-metadata/index.d.ts +0 -18
- package/lib/features/svg-metadata/index.d.ts.map +0 -1
- package/lib/features/svg-metadata/index.js +0 -34
- package/lib/features/svg-metadata/index.js.map +0 -1
- package/lib/features/tool-palette/index.d.ts +0 -18
- package/lib/features/tool-palette/index.d.ts.map +0 -1
- package/lib/features/tool-palette/index.js +0 -34
- package/lib/features/tool-palette/index.js.map +0 -1
- package/lib/features/tools/change-bounds/index.d.ts +0 -23
- package/lib/features/tools/change-bounds/index.d.ts.map +0 -1
- package/lib/features/tools/change-bounds/index.js +0 -39
- package/lib/features/tools/change-bounds/index.js.map +0 -1
- package/lib/features/tools/deletion/index.d.ts +0 -18
- package/lib/features/tools/deletion/index.d.ts.map +0 -1
- package/lib/features/tools/deletion/index.js +0 -34
- package/lib/features/tools/deletion/index.js.map +0 -1
- package/lib/features/tools/edge-creation/index.d.ts +0 -21
- package/lib/features/tools/edge-creation/index.d.ts.map +0 -1
- package/lib/features/tools/edge-creation/index.js +0 -37
- package/lib/features/tools/edge-creation/index.js.map +0 -1
- package/lib/features/tools/edge-edit/index.d.ts +0 -19
- package/lib/features/tools/edge-edit/index.d.ts.map +0 -1
- package/lib/features/tools/edge-edit/index.js +0 -35
- package/lib/features/tools/edge-edit/index.js.map +0 -1
- package/lib/features/tools/index.d.ts +0 -24
- package/lib/features/tools/index.d.ts.map +0 -1
- package/lib/features/tools/index.js +0 -40
- package/lib/features/tools/index.js.map +0 -1
- package/lib/features/tools/marquee-selection/index.d.ts +0 -23
- package/lib/features/tools/marquee-selection/index.d.ts.map +0 -1
- package/lib/features/tools/marquee-selection/index.js +0 -39
- package/lib/features/tools/marquee-selection/index.js.map +0 -1
- package/lib/features/tools/node-creation/index.d.ts +0 -18
- package/lib/features/tools/node-creation/index.d.ts.map +0 -1
- package/lib/features/tools/node-creation/index.js +0 -34
- package/lib/features/tools/node-creation/index.js.map +0 -1
- package/lib/features/undo-redo/index.d.ts +0 -18
- package/lib/features/undo-redo/index.d.ts.map +0 -1
- package/lib/features/undo-redo/index.js +0 -34
- package/lib/features/undo-redo/index.js.map +0 -1
- package/lib/features/validation/index.d.ts +0 -20
- package/lib/features/validation/index.d.ts.map +0 -1
- package/lib/features/validation/index.js +0 -36
- package/lib/features/validation/index.js.map +0 -1
- package/lib/features/viewport/index.d.ts +0 -21
- package/lib/features/viewport/index.d.ts.map +0 -1
- package/lib/features/viewport/index.js +0 -37
- package/lib/features/viewport/index.js.map +0 -1
- package/lib/utils/index.d.ts +0 -23
- package/lib/utils/index.d.ts.map +0 -1
- package/lib/utils/index.js +0 -39
- package/lib/utils/index.js.map +0 -1
- package/lib/views/index.d.ts +0 -24
- package/lib/views/index.d.ts.map +0 -1
- package/lib/views/index.js +0 -40
- package/lib/views/index.js.map +0 -1
- package/src/base/auto-complete/index.ts +0 -20
- package/src/base/feedback/index.ts +0 -21
- package/src/base/focus/index.ts +0 -17
- package/src/base/index.ts +0 -33
- package/src/base/model/index.ts +0 -19
- package/src/base/tool-manager/index.ts +0 -17
- package/src/base/ui-extension/index.ts +0 -17
- package/src/base/view/index.ts +0 -18
- package/src/features/accessibility/edge-autocomplete/index.ts +0 -19
- package/src/features/accessibility/element-navigation/index.ts +0 -21
- package/src/features/accessibility/focus-tracker/index.ts +0 -17
- package/src/features/accessibility/index.ts +0 -30
- package/src/features/accessibility/key-shortcut/index.ts +0 -18
- package/src/features/accessibility/keyboard-grid/index.ts +0 -20
- package/src/features/accessibility/keyboard-pointer/index.ts +0 -21
- package/src/features/accessibility/keyboard-tool-palette/index.ts +0 -17
- package/src/features/accessibility/move-zoom/index.ts +0 -18
- package/src/features/accessibility/resize-key-tool/index.ts +0 -18
- package/src/features/accessibility/search/index.ts +0 -18
- package/src/features/accessibility/toast/index.ts +0 -18
- package/src/features/accessibility/view-key-tools/index.ts +0 -19
- package/src/features/bounds/index.ts +0 -24
- package/src/features/change-bounds/index.ts +0 -21
- package/src/features/command-palette/index.ts +0 -19
- package/src/features/context-menu/index.ts +0 -19
- package/src/features/copy-paste/index.ts +0 -19
- package/src/features/debug/index.ts +0 -19
- package/src/features/decoration/index.ts +0 -17
- package/src/features/element-template/index.ts +0 -19
- package/src/features/export/index.ts +0 -18
- package/src/features/grid/index.ts +0 -20
- package/src/features/helper-lines/index.ts +0 -21
- package/src/features/hints/index.ts +0 -18
- package/src/features/hover/index.ts +0 -17
- package/src/features/index.ts +0 -45
- package/src/features/label-edit/index.ts +0 -18
- package/src/features/label-edit-ui/index.ts +0 -17
- package/src/features/layout/index.ts +0 -17
- package/src/features/navigation/index.ts +0 -18
- package/src/features/reconnect/index.ts +0 -16
- package/src/features/routing/index.ts +0 -17
- package/src/features/save/index.ts +0 -17
- package/src/features/select/index.ts +0 -18
- package/src/features/source-model-watcher/index.ts +0 -17
- package/src/features/status/index.ts +0 -17
- package/src/features/svg-metadata/index.ts +0 -17
- package/src/features/tool-palette/index.ts +0 -17
- package/src/features/tools/change-bounds/index.ts +0 -22
- package/src/features/tools/deletion/index.ts +0 -17
- package/src/features/tools/edge-creation/index.ts +0 -20
- package/src/features/tools/edge-edit/index.ts +0 -18
- package/src/features/tools/index.ts +0 -23
- package/src/features/tools/marquee-selection/index.ts +0 -22
- package/src/features/tools/node-creation/index.ts +0 -17
- package/src/features/undo-redo/index.ts +0 -17
- package/src/features/validation/index.ts +0 -19
- package/src/features/viewport/index.ts +0 -20
- package/src/utils/index.ts +0 -22
- package/src/views/index.ts +0 -23
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2024 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
|
|
@@ -37,17 +37,8 @@ import {
|
|
|
37
37
|
TYPES,
|
|
38
38
|
findParentByFeature
|
|
39
39
|
} from '@eclipse-glsp/sprotty';
|
|
40
|
-
import { CSS_RESIZE_MODE, ChangeBoundsManager, ChangeBoundsTracker, TrackedElementResize, TrackedResize } from '..';
|
|
41
40
|
import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
|
|
42
|
-
import {
|
|
43
|
-
CursorCSS,
|
|
44
|
-
ModifyCSSFeedbackAction,
|
|
45
|
-
applyCssClasses,
|
|
46
|
-
cursorFeedbackAction,
|
|
47
|
-
deleteCssClasses,
|
|
48
|
-
toggleCssClasses
|
|
49
|
-
} from '../../../base/feedback/css-feedback';
|
|
50
|
-
import { FeedbackEmitter } from '../../../base/feedback/feeback-emitter';
|
|
41
|
+
import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
|
|
51
42
|
import { ISelectionListener, SelectionService } from '../../../base/selection-service';
|
|
52
43
|
import {
|
|
53
44
|
BoundsAwareModelElement,
|
|
@@ -58,20 +49,19 @@ import {
|
|
|
58
49
|
isNonRoutableSelectedMovableBoundsAware,
|
|
59
50
|
toElementAndBounds
|
|
60
51
|
} from '../../../utils/gmodel-util';
|
|
61
|
-
import { LocalRequestBoundsAction
|
|
52
|
+
import { LocalRequestBoundsAction } from '../../bounds/local-bounds';
|
|
53
|
+
import { SetBoundsFeedbackAction } from '../../bounds/set-bounds-feedback-command';
|
|
62
54
|
import { SResizeHandle, isResizable } from '../../change-bounds/model';
|
|
63
|
-
import {
|
|
64
|
-
IMovementRestrictor,
|
|
65
|
-
movementRestrictionFeedback,
|
|
66
|
-
removeMovementRestrictionFeedback
|
|
67
|
-
} from '../../change-bounds/movement-restrictor';
|
|
55
|
+
import { IMovementRestrictor } from '../../change-bounds/movement-restrictor';
|
|
68
56
|
import { BaseEditTool } from '../base-tools';
|
|
57
|
+
import { CSS_ACTIVE_HANDLE, ChangeBoundsManager } from './change-bounds-manager';
|
|
69
58
|
import {
|
|
70
59
|
HideChangeBoundsToolResizeFeedbackAction,
|
|
71
60
|
MoveFinishedEventAction,
|
|
72
61
|
ShowChangeBoundsToolResizeFeedbackAction
|
|
73
62
|
} from './change-bounds-tool-feedback';
|
|
74
63
|
import { FeedbackMoveMouseListener } from './change-bounds-tool-move-feedback';
|
|
64
|
+
import { ChangeBoundsTracker, TrackedElementResize, TrackedResize } from './change-bounds-tracker';
|
|
75
65
|
|
|
76
66
|
/**
|
|
77
67
|
* The change bounds tool has the license to move multiple elements or resize a single element by implementing the ChangeBounds operation.
|
|
@@ -93,7 +83,7 @@ export class ChangeBoundsTool extends BaseEditTool {
|
|
|
93
83
|
@inject(SelectionService) protected selectionService: SelectionService;
|
|
94
84
|
@inject(EdgeRouterRegistry) @optional() readonly edgeRouterRegistry?: EdgeRouterRegistry;
|
|
95
85
|
@inject(TYPES.IMovementRestrictor) @optional() readonly movementRestrictor?: IMovementRestrictor;
|
|
96
|
-
@inject(
|
|
86
|
+
@inject(ChangeBoundsManager) readonly changeBoundsManager: ChangeBoundsManager;
|
|
97
87
|
|
|
98
88
|
get id(): string {
|
|
99
89
|
return ChangeBoundsTool.ID;
|
|
@@ -133,7 +123,7 @@ export class ChangeBoundsTool extends BaseEditTool {
|
|
|
133
123
|
}
|
|
134
124
|
|
|
135
125
|
export class ChangeBoundsListener extends DragAwareMouseListener implements ISelectionListener {
|
|
136
|
-
static readonly CSS_CLASS_ACTIVE =
|
|
126
|
+
static readonly CSS_CLASS_ACTIVE = CSS_ACTIVE_HANDLE;
|
|
137
127
|
|
|
138
128
|
// members for calculating the correct position change
|
|
139
129
|
protected initialBounds: ElementAndBounds | undefined;
|
|
@@ -206,15 +196,13 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements ISel
|
|
|
206
196
|
// consider resize handles ourselves
|
|
207
197
|
if (this.activeResizeHandle && this.tracker.isTracking()) {
|
|
208
198
|
const resize = this.tracker.resizeElements(this.activeResizeHandle, { snap: event, symmetric: event, restrict: event });
|
|
209
|
-
this.addResizeFeedback(resize, target, event);
|
|
210
199
|
const resizeAction = this.resizeBoundsAction(resize);
|
|
211
200
|
if (resizeAction.bounds.length > 0) {
|
|
212
201
|
this.resizeFeedback.add(resizeAction, () => this.resetBounds());
|
|
213
202
|
this.tracker.updateTrackingPosition(resize.handleMove.moveVector);
|
|
214
|
-
|
|
215
|
-
this.resizeFeedback.
|
|
203
|
+
this.addResizeFeedback(resize, target, event);
|
|
204
|
+
this.resizeFeedback.submit();
|
|
216
205
|
}
|
|
217
|
-
this.resizeFeedback.submit();
|
|
218
206
|
}
|
|
219
207
|
return super.draggingMouseMove(target, event);
|
|
220
208
|
}
|
|
@@ -234,40 +222,7 @@ export class ChangeBoundsListener extends DragAwareMouseListener implements ISel
|
|
|
234
222
|
}
|
|
235
223
|
|
|
236
224
|
protected addResizeFeedback(resize: TrackedResize, target: GModelElement, event: MouseEvent): void {
|
|
237
|
-
|
|
238
|
-
// handle feedback
|
|
239
|
-
this.resizeFeedback.add(
|
|
240
|
-
applyCssClasses(handle, ChangeBoundsListener.CSS_CLASS_ACTIVE),
|
|
241
|
-
deleteCssClasses(handle, ChangeBoundsListener.CSS_CLASS_ACTIVE)
|
|
242
|
-
);
|
|
243
|
-
|
|
244
|
-
// graph feedback
|
|
245
|
-
this.resizeFeedback.add(
|
|
246
|
-
ModifyCSSFeedbackAction.create({ add: [CSS_RESIZE_MODE] }),
|
|
247
|
-
ModifyCSSFeedbackAction.create({ remove: [CSS_RESIZE_MODE] })
|
|
248
|
-
);
|
|
249
|
-
|
|
250
|
-
// cursor feedback
|
|
251
|
-
const cursorClass = SResizeHandle.getCursorCss(resize.handleMove.element);
|
|
252
|
-
this.resizeFeedback.add(cursorFeedbackAction(cursorClass), cursorFeedbackAction(CursorCSS.DEFAULT));
|
|
253
|
-
|
|
254
|
-
const movementRestrictor = this.tool.changeBoundsManager.movementRestrictor;
|
|
255
|
-
resize.elementResizes.forEach(elementResize => {
|
|
256
|
-
if (movementRestrictor) {
|
|
257
|
-
this.resizeFeedback.add(
|
|
258
|
-
movementRestrictionFeedback(elementResize.element, movementRestrictor, elementResize.valid.move),
|
|
259
|
-
removeMovementRestrictionFeedback(elementResize.element, movementRestrictor)
|
|
260
|
-
);
|
|
261
|
-
}
|
|
262
|
-
this.resizeFeedback.add(
|
|
263
|
-
toggleCssClasses(elementResize.element, !elementResize.valid.size, 'resize-not-allowed'),
|
|
264
|
-
deleteCssClasses(elementResize.element, 'resize-not-allowed')
|
|
265
|
-
);
|
|
266
|
-
});
|
|
267
|
-
this.resizeFeedback.add(
|
|
268
|
-
toggleCssClasses(resize.handleMove.element, !resize.valid.size, 'resize-not-allowed'),
|
|
269
|
-
deleteCssClasses(resize.handleMove.element, 'resize-not-allowed')
|
|
270
|
-
);
|
|
225
|
+
this.tool.changeBoundsManager.addResizeFeedback(this.resizeFeedback, resize, target, event);
|
|
271
226
|
}
|
|
272
227
|
|
|
273
228
|
protected resetBounds(): Action[] {
|
|
@@ -27,11 +27,14 @@ import {
|
|
|
27
27
|
Vector,
|
|
28
28
|
Writable,
|
|
29
29
|
hasBooleanProp,
|
|
30
|
+
hasObjectProp,
|
|
31
|
+
isBoundsAware,
|
|
30
32
|
isMoveable
|
|
31
33
|
} from '@eclipse-glsp/sprotty';
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import { DiagramMovementCalculator
|
|
34
|
+
import { BoundsAwareModelElement, MoveableElement, ResizableModelElement, getElements } from '../../../utils/gmodel-util';
|
|
35
|
+
import { ResizeHandleLocation, SResizeHandle } from '../../change-bounds/model';
|
|
36
|
+
import { DiagramMovementCalculator } from '../../change-bounds/tracker';
|
|
37
|
+
import { ChangeBoundsManager } from './change-bounds-manager';
|
|
35
38
|
|
|
36
39
|
export interface ElementTrackingOptions {
|
|
37
40
|
/** Snap position. Default: true. */
|
|
@@ -73,6 +76,17 @@ export interface TrackedElementMove extends ResolvedElementMove {
|
|
|
73
76
|
valid: boolean;
|
|
74
77
|
}
|
|
75
78
|
|
|
79
|
+
export namespace TrackedElementMove {
|
|
80
|
+
export function is(obj: any): obj is TrackedElementMove {
|
|
81
|
+
return (
|
|
82
|
+
hasObjectProp(obj, 'element') &&
|
|
83
|
+
hasObjectProp(obj, 'fromPosition') &&
|
|
84
|
+
hasObjectProp(obj, 'toPosition') &&
|
|
85
|
+
hasBooleanProp(obj, 'valid')
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
76
90
|
export type TypedElementMove<T extends MoveableElement> = TrackedElementMove & { element: T };
|
|
77
91
|
|
|
78
92
|
export interface TrackedMove extends Movement {
|
|
@@ -134,6 +148,14 @@ export interface TrackedElementResize {
|
|
|
134
148
|
};
|
|
135
149
|
}
|
|
136
150
|
|
|
151
|
+
export namespace TrackedElementResize {
|
|
152
|
+
export function is(obj: any): obj is TrackedElementResize {
|
|
153
|
+
return (
|
|
154
|
+
isBoundsAware(obj.element) && hasObjectProp(obj, 'fromBounds') && hasObjectProp(obj, 'toBounds') && hasObjectProp(obj, 'valid')
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
137
159
|
export interface TrackedResize extends Movement {
|
|
138
160
|
handleMove: TrackedHandleMove;
|
|
139
161
|
elementResizes: TrackedElementResize[];
|
|
@@ -179,7 +201,7 @@ export class ChangeBoundsTracker {
|
|
|
179
201
|
const update = this.calculateDiagramMovement();
|
|
180
202
|
const move: TrackedMove = { ...update, elementMoves: [], valid: true, options };
|
|
181
203
|
|
|
182
|
-
if (Vector.isZero(update.vector)) {
|
|
204
|
+
if (Vector.isZero(update.vector) && options.skipStatic) {
|
|
183
205
|
// no movement detected so elements won't be moved, exit early
|
|
184
206
|
return move;
|
|
185
207
|
}
|
|
@@ -260,13 +282,13 @@ export class ChangeBoundsTracker {
|
|
|
260
282
|
const update = this.calculateDiagramMovement();
|
|
261
283
|
const handleMove = this.calculateHandleMove(new MoveableResizeHandle(handle), update.vector, options);
|
|
262
284
|
const resize: TrackedResize = { ...update, valid: { move: true, size: true }, options, handleMove, elementResizes: [] };
|
|
263
|
-
if (Vector.isZero(handleMove.moveVector)) {
|
|
285
|
+
if (Vector.isZero(handleMove.moveVector) && options.skipStatic) {
|
|
264
286
|
// no movement detected so elements won't be moved, exit early
|
|
265
287
|
return resize;
|
|
266
288
|
}
|
|
267
289
|
|
|
268
290
|
// calculate resize for each element (typically only one element is resized at a time but customizations are possible)
|
|
269
|
-
const elementsToResize = this.
|
|
291
|
+
const elementsToResize = this.getResizableElements(handle, options);
|
|
270
292
|
for (const element of elementsToResize) {
|
|
271
293
|
const elementResize = this.calculateElementResize(element, handleMove, options);
|
|
272
294
|
if (!this.skipElementResize(elementResize, options)) {
|
|
@@ -293,7 +315,7 @@ export class ChangeBoundsTracker {
|
|
|
293
315
|
return this.calculateElementMove(handle, diagramMovement, moveOptions);
|
|
294
316
|
}
|
|
295
317
|
|
|
296
|
-
protected
|
|
318
|
+
protected getResizableElements(handle: SResizeHandle, options: ResizeOptions): ResizableModelElement[] {
|
|
297
319
|
return [handle.parent];
|
|
298
320
|
}
|
|
299
321
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2024 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
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
isConnectable
|
|
33
33
|
} from '@eclipse-glsp/sprotty';
|
|
34
34
|
import { inject, injectable } from 'inversify';
|
|
35
|
-
import { feedbackFeature } from '../../../base';
|
|
35
|
+
import { feedbackFeature } from '../../../base/feedback/feedback-action-dispatcher';
|
|
36
36
|
import { FeedbackCommand } from '../../../base/feedback/feedback-command';
|
|
37
37
|
import { isRoutable } from '../../../utils/gmodel-util';
|
|
38
38
|
import { toAbsolutePosition } from '../../../utils/viewpoint-util';
|
|
@@ -29,8 +29,8 @@ import {
|
|
|
29
29
|
isBoundsAware,
|
|
30
30
|
isConnectable
|
|
31
31
|
} from '@eclipse-glsp/sprotty';
|
|
32
|
-
import { FeedbackEmitter } from '../../../base';
|
|
33
32
|
import { IFeedbackActionDispatcher } from '../../../base/feedback/feedback-action-dispatcher';
|
|
33
|
+
import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
|
|
34
34
|
import { absoluteToParent, getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
|
|
35
35
|
import { FeedbackEdgeEnd, feedbackEdgeEndId } from './dangling-edge-feedback';
|
|
36
36
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2024 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -25,13 +25,14 @@ import {
|
|
|
25
25
|
isConnectable,
|
|
26
26
|
isCtrlOrCmd
|
|
27
27
|
} from '@eclipse-glsp/sprotty';
|
|
28
|
-
import { inject, injectable } from 'inversify';
|
|
29
|
-
import { FeedbackEmitter } from '../../../base';
|
|
28
|
+
import { inject, injectable, optional } from 'inversify';
|
|
30
29
|
import { GLSPActionDispatcher } from '../../../base/action-dispatcher';
|
|
31
30
|
import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
|
|
32
31
|
import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
|
|
32
|
+
import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
|
|
33
33
|
import { EnableDefaultToolsAction } from '../../../base/tool-manager/tool';
|
|
34
34
|
import { GEdge } from '../../../model';
|
|
35
|
+
import { Grid } from '../../grid/grid';
|
|
35
36
|
import { ITypeHintProvider } from '../../hints/type-hint-provider';
|
|
36
37
|
import { BaseCreationTool } from '../base-tools';
|
|
37
38
|
import { DrawFeedbackEdgeAction, RemoveFeedbackEdgeAction } from './dangling-edge-feedback';
|
|
@@ -45,8 +46,8 @@ export class EdgeCreationTool extends BaseCreationTool<TriggerEdgeCreationAction
|
|
|
45
46
|
static ID = 'tool_create_edge';
|
|
46
47
|
|
|
47
48
|
@inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
|
|
48
|
-
|
|
49
49
|
@inject(TYPES.ITypeHintProvider) protected typeHintProvider: ITypeHintProvider;
|
|
50
|
+
@optional() @inject(TYPES.Grid) protected grid: Grid;
|
|
50
51
|
|
|
51
52
|
protected isTriggerAction = TriggerEdgeCreationAction.is;
|
|
52
53
|
|
|
@@ -59,7 +60,13 @@ export class EdgeCreationTool extends BaseCreationTool<TriggerEdgeCreationAction
|
|
|
59
60
|
const toolFeedback = this.createFeedbackEmitter()
|
|
60
61
|
.add(cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED), cursorFeedbackAction())
|
|
61
62
|
.submit();
|
|
62
|
-
const creationListener = new EdgeCreationToolMouseListener(
|
|
63
|
+
const creationListener = new EdgeCreationToolMouseListener(
|
|
64
|
+
this.triggerAction,
|
|
65
|
+
this.actionDispatcher,
|
|
66
|
+
this.typeHintProvider,
|
|
67
|
+
this,
|
|
68
|
+
this.grid?.x / 2
|
|
69
|
+
);
|
|
63
70
|
this.toDisposeOnDisable.push(
|
|
64
71
|
mouseMovingFeedback,
|
|
65
72
|
this.mouseTool.registerListener(mouseMovingFeedback),
|
|
@@ -70,7 +77,6 @@ export class EdgeCreationTool extends BaseCreationTool<TriggerEdgeCreationAction
|
|
|
70
77
|
}
|
|
71
78
|
}
|
|
72
79
|
|
|
73
|
-
@injectable()
|
|
74
80
|
export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
75
81
|
protected source?: string;
|
|
76
82
|
protected target?: string;
|
|
@@ -85,9 +91,10 @@ export class EdgeCreationToolMouseListener extends DragAwareMouseListener {
|
|
|
85
91
|
protected triggerAction: TriggerEdgeCreationAction,
|
|
86
92
|
protected actionDispatcher: GLSPActionDispatcher,
|
|
87
93
|
protected typeHintProvider: ITypeHintProvider,
|
|
88
|
-
protected tool: EdgeCreationTool
|
|
94
|
+
protected tool: EdgeCreationTool,
|
|
95
|
+
protected dragSensitivity?: number
|
|
89
96
|
) {
|
|
90
|
-
super();
|
|
97
|
+
super(dragSensitivity);
|
|
91
98
|
this.proxyEdge = new GEdge();
|
|
92
99
|
this.proxyEdge.type = triggerAction.elementTypeId;
|
|
93
100
|
this.cursorFeedback = tool.createFeedbackEmitter();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2024 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
|
|
@@ -41,13 +41,14 @@ import {
|
|
|
41
41
|
typeGuard
|
|
42
42
|
} from '@eclipse-glsp/sprotty';
|
|
43
43
|
import { inject, injectable } from 'inversify';
|
|
44
|
-
import { ChangeBoundsManager, ChangeBoundsTracker, MoveableRoutingHandle } from '..';
|
|
45
|
-
import { FeedbackEmitter } from '../../../base';
|
|
46
44
|
import { IFeedbackActionDispatcher } from '../../../base/feedback/feedback-action-dispatcher';
|
|
47
45
|
import { FeedbackCommand } from '../../../base/feedback/feedback-command';
|
|
46
|
+
import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
|
|
48
47
|
import { forEachElement, getMatchingElements, isRoutable, isRoutingHandle } from '../../../utils/gmodel-util';
|
|
49
48
|
import { getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
|
|
50
49
|
import { addReconnectHandles, removeReconnectHandles } from '../../reconnect/model';
|
|
50
|
+
import { ChangeBoundsManager } from '../change-bounds/change-bounds-manager';
|
|
51
|
+
import { ChangeBoundsTracker, MoveableRoutingHandle } from '../change-bounds/change-bounds-tracker';
|
|
51
52
|
import { FeedbackEdgeEnd, feedbackEdgeEndId, feedbackEdgeId } from '../edge-creation/dangling-edge-feedback';
|
|
52
53
|
import { FeedbackEdgeEndMovingMouseListener } from '../edge-creation/edge-creation-tool-feedback';
|
|
53
54
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2024 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
|
|
@@ -24,21 +24,20 @@ import {
|
|
|
24
24
|
GRoutableElement,
|
|
25
25
|
GRoutingHandle,
|
|
26
26
|
ReconnectEdgeOperation,
|
|
27
|
-
TYPES,
|
|
28
27
|
canEditRouting,
|
|
29
28
|
findParentByFeature,
|
|
30
29
|
isConnectable,
|
|
31
30
|
isSelected
|
|
32
31
|
} from '@eclipse-glsp/sprotty';
|
|
33
32
|
import { inject, injectable, optional } from 'inversify';
|
|
34
|
-
import { ChangeBoundsManager } from '..';
|
|
35
|
-
import { FeedbackEmitter } from '../../../base';
|
|
36
33
|
import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener';
|
|
37
34
|
import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
|
|
35
|
+
import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
|
|
38
36
|
import { ISelectionListener, SelectionService } from '../../../base/selection-service';
|
|
39
37
|
import { calcElementAndRoutingPoints, isRoutable, isRoutingHandle } from '../../../utils/gmodel-util';
|
|
40
38
|
import { GReconnectHandle, isReconnectHandle, isReconnectable, isSourceRoutingHandle, isTargetRoutingHandle } from '../../reconnect/model';
|
|
41
39
|
import { BaseEditTool } from '../base-tools';
|
|
40
|
+
import { ChangeBoundsManager } from '../change-bounds/change-bounds-manager';
|
|
42
41
|
import { DrawFeedbackEdgeAction, RemoveFeedbackEdgeAction, feedbackEdgeId } from '../edge-creation/dangling-edge-feedback';
|
|
43
42
|
import {
|
|
44
43
|
DrawFeedbackEdgeSourceAction,
|
|
@@ -57,7 +56,7 @@ export class EdgeEditTool extends BaseEditTool {
|
|
|
57
56
|
@inject(SelectionService) protected selectionService: SelectionService;
|
|
58
57
|
@inject(AnchorComputerRegistry) protected anchorRegistry: AnchorComputerRegistry;
|
|
59
58
|
@inject(EdgeRouterRegistry) @optional() readonly edgeRouterRegistry?: EdgeRouterRegistry;
|
|
60
|
-
@inject(
|
|
59
|
+
@inject(ChangeBoundsManager) readonly changeBoundsManager: ChangeBoundsManager;
|
|
61
60
|
|
|
62
61
|
protected feedbackEdgeSourceMovingListener: FeedbackEdgeSourceMovingMouseListener;
|
|
63
62
|
protected feedbackEdgeTargetMovingListener: FeedbackEdgeTargetMovingMouseListener;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2021-
|
|
2
|
+
* Copyright (c) 2021-2024 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
|
|
@@ -30,7 +30,7 @@ import { DragAwareMouseListener } from '../../../base/drag-aware-mouse-listener'
|
|
|
30
30
|
import { CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
|
|
31
31
|
import { EnableDefaultToolsAction } from '../../../base/tool-manager/tool';
|
|
32
32
|
import { GEdge } from '../../../model';
|
|
33
|
-
import { BoundsAwareModelElement, SelectableBoundsAware, isSelectableAndBoundsAware } from '../../../utils';
|
|
33
|
+
import { BoundsAwareModelElement, SelectableBoundsAware, isSelectableAndBoundsAware } from '../../../utils/gmodel-util';
|
|
34
34
|
import { getAbsolutePosition, toAbsoluteBounds } from '../../../utils/viewpoint-util';
|
|
35
35
|
import { BaseEditTool } from '../base-tools';
|
|
36
36
|
import { IMarqueeBehavior, MarqueeUtil } from './marquee-behavior';
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2024 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 { GModelElement, Point, findChildrenAtPosition } from '@eclipse-glsp/sprotty';
|
|
18
|
+
import { inject, injectable } from 'inversify';
|
|
19
|
+
import { CSS_GHOST_ELEMENT, CursorCSS, cursorFeedbackAction } from '../../../base/feedback/css-feedback';
|
|
20
|
+
import { FeedbackEmitter } from '../../../base/feedback/feedback-emitter';
|
|
21
|
+
import { ContainerElement, isContainable } from '../../hints/model';
|
|
22
|
+
import { ChangeBoundsManager } from '../change-bounds/change-bounds-manager';
|
|
23
|
+
export interface TrackedInsert {
|
|
24
|
+
elementTypeId: string;
|
|
25
|
+
location: Point;
|
|
26
|
+
container?: GModelElement;
|
|
27
|
+
valid: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface InsertOptions extends Record<string, unknown> {
|
|
31
|
+
/** Flag to indicate whether the location within a container needs to be valid. Default: false */
|
|
32
|
+
validateLocationInContainer?: boolean;
|
|
33
|
+
|
|
34
|
+
/** Overwrite for location validation if validation result is already known. Default: undefined */
|
|
35
|
+
validLocationOverwrite?: boolean;
|
|
36
|
+
|
|
37
|
+
/** Mouse event to be used for finding the container. Default: undefined */
|
|
38
|
+
evt?: MouseEvent;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export const DEFAULT_INSERT_OPTIONS: InsertOptions = {
|
|
42
|
+
validateLocationInContainer: false
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
@injectable()
|
|
46
|
+
export class ContainerManager {
|
|
47
|
+
@inject(ChangeBoundsManager) protected readonly changeBoundsManager: ChangeBoundsManager;
|
|
48
|
+
|
|
49
|
+
insert(proxy: GModelElement, location: Point, elementTypeId: string, opts?: Partial<InsertOptions>): TrackedInsert {
|
|
50
|
+
const options = { ...DEFAULT_INSERT_OPTIONS, ...opts };
|
|
51
|
+
const container = this.findContainer(location, proxy, opts?.evt);
|
|
52
|
+
let valid = !container || container.isContainableElement(elementTypeId);
|
|
53
|
+
if (valid && (!container || options.validateLocationInContainer)) {
|
|
54
|
+
// we need to check whether the location is valid either because we do not have a container or the option is set
|
|
55
|
+
valid = opts?.validLocationOverwrite ?? this.changeBoundsManager.hasValidPosition(proxy, location);
|
|
56
|
+
}
|
|
57
|
+
return { elementTypeId, container, location, valid };
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
findContainer(location: Point, ctx: GModelElement, evt?: MouseEvent): ContainerElement | undefined {
|
|
61
|
+
// reverse order of children to find the innermost, top-rendered containers first
|
|
62
|
+
return findChildrenAtPosition(ctx.root, location)
|
|
63
|
+
.reverse()
|
|
64
|
+
.find(element => isContainable(element) && !element.cssClasses?.includes(CSS_GHOST_ELEMENT)) as ContainerElement | undefined;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
addInsertFeedback(feedback: FeedbackEmitter, trackedInsert: TrackedInsert, ctx?: GModelElement, event?: MouseEvent): FeedbackEmitter {
|
|
68
|
+
// cursor feedback
|
|
69
|
+
if (!trackedInsert.valid) {
|
|
70
|
+
feedback.add(cursorFeedbackAction(CursorCSS.OPERATION_NOT_ALLOWED), cursorFeedbackAction(CursorCSS.DEFAULT));
|
|
71
|
+
} else {
|
|
72
|
+
feedback.add(cursorFeedbackAction(CursorCSS.NODE_CREATION), cursorFeedbackAction());
|
|
73
|
+
}
|
|
74
|
+
return feedback;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2024 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 { Args, Dimension, FeatureSet, GNode, boundsFeature, createFeatureSet, moveFeature } from '@eclipse-glsp/sprotty';
|
|
18
|
+
import { v4 as uuid } from 'uuid';
|
|
19
|
+
import { ArgsAware, argsFeature } from '../../../base/args-feature';
|
|
20
|
+
|
|
21
|
+
export const ARG_LENGTH = 'length';
|
|
22
|
+
|
|
23
|
+
export class InsertIndicator extends GNode implements ArgsAware {
|
|
24
|
+
static override readonly DEFAULT_FEATURES = [boundsFeature, moveFeature, argsFeature];
|
|
25
|
+
|
|
26
|
+
static TYPE = 'node:insert-indicator';
|
|
27
|
+
|
|
28
|
+
override id: string = uuid();
|
|
29
|
+
override type: string = InsertIndicator.TYPE;
|
|
30
|
+
override features?: FeatureSet = createFeatureSet(InsertIndicator.DEFAULT_FEATURES);
|
|
31
|
+
override cssClasses: string[] = ['insert-indicator', 'sprotty-node'];
|
|
32
|
+
override size: Dimension = { width: 1, height: 1 };
|
|
33
|
+
args: Args = {};
|
|
34
|
+
|
|
35
|
+
constructor(length?: number) {
|
|
36
|
+
super();
|
|
37
|
+
if (length) {
|
|
38
|
+
this.args = { [ARG_LENGTH]: length };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2019-
|
|
2
|
+
* Copyright (c) 2019-2024 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,15 +13,27 @@
|
|
|
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 {
|
|
17
|
+
FeatureModule,
|
|
18
|
+
TYPES,
|
|
19
|
+
TriggerNodeCreationAction,
|
|
20
|
+
bindAsService,
|
|
21
|
+
configureActionHandler,
|
|
22
|
+
configureModelElement
|
|
23
|
+
} from '@eclipse-glsp/sprotty';
|
|
17
24
|
import { elementTemplateModule } from '../../element-template/element-template-module';
|
|
25
|
+
import { ContainerManager } from './container-manager';
|
|
26
|
+
import { InsertIndicator } from './insert-indicator';
|
|
18
27
|
import { NodeCreationTool } from './node-creation-tool';
|
|
28
|
+
import { InsertIndicatorView } from './node-creation-views';
|
|
19
29
|
|
|
20
30
|
export const nodeCreationToolModule = new FeatureModule(
|
|
21
31
|
(bind, unbind, isBound, rebind) => {
|
|
22
32
|
const context = { bind, unbind, isBound, rebind };
|
|
33
|
+
bind(ContainerManager).toSelf().inSingletonScope();
|
|
23
34
|
bindAsService(context, TYPES.ITool, NodeCreationTool);
|
|
24
35
|
configureActionHandler(context, TriggerNodeCreationAction.KIND, NodeCreationTool);
|
|
36
|
+
configureModelElement(context, InsertIndicator.TYPE, InsertIndicator, InsertIndicatorView);
|
|
25
37
|
},
|
|
26
38
|
{ requires: elementTemplateModule }
|
|
27
39
|
);
|