@eclipse-glsp/client 0.10.0-next.e5fcffe.169 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/css/decoration.css +5 -1
  2. package/css/glsp-sprotty.css +39 -0
  3. package/css/tool-palette.css +2 -2
  4. package/lib/base/container-modules.d.ts.map +1 -1
  5. package/lib/base/container-modules.js +10 -9
  6. package/lib/base/container-modules.js.map +1 -1
  7. package/lib/base/editor-context-service.d.ts +2 -3
  8. package/lib/base/editor-context-service.d.ts.map +1 -1
  9. package/lib/base/editor-context-service.js +11 -12
  10. package/lib/base/editor-context-service.js.map +1 -1
  11. package/lib/base/model/update-model-command.d.ts +14 -7
  12. package/lib/base/model/update-model-command.d.ts.map +1 -1
  13. package/lib/base/model/update-model-command.js +31 -41
  14. package/lib/base/model/update-model-command.js.map +1 -1
  15. package/lib/base/source-uri-aware.d.ts +2 -17
  16. package/lib/base/source-uri-aware.d.ts.map +1 -1
  17. package/lib/base/source-uri-aware.js +4 -6
  18. package/lib/base/source-uri-aware.js.map +1 -1
  19. package/lib/features/change-bounds/movement-restrictor.d.ts +36 -6
  20. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  21. package/lib/features/change-bounds/movement-restrictor.js +54 -39
  22. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  23. package/lib/features/change-bounds/snap.d.ts +20 -5
  24. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  25. package/lib/features/change-bounds/snap.js +19 -8
  26. package/lib/features/change-bounds/snap.js.map +1 -1
  27. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +5 -7
  28. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  29. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +7 -14
  30. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  31. package/lib/features/hover/hover.d.ts +1 -2
  32. package/lib/features/hover/hover.d.ts.map +1 -1
  33. package/lib/features/hover/hover.js +2 -15
  34. package/lib/features/hover/hover.js.map +1 -1
  35. package/lib/features/layout/di.config.d.ts +2 -2
  36. package/lib/features/layout/di.config.d.ts.map +1 -1
  37. package/lib/features/layout/di.config.js +6 -5
  38. package/lib/features/layout/di.config.js.map +1 -1
  39. package/lib/features/layout/{layout-commands.d.ts → layout-elements-action.d.ts} +75 -57
  40. package/lib/features/layout/layout-elements-action.d.ts.map +1 -0
  41. package/lib/features/layout/{layout-commands.js → layout-elements-action.js} +153 -197
  42. package/lib/features/layout/layout-elements-action.js.map +1 -0
  43. package/lib/features/layout/layout-elements-action.spec.d.ts +3 -0
  44. package/lib/features/layout/layout-elements-action.spec.d.ts.map +1 -0
  45. package/lib/features/layout/{layout-commands.spec.js → layout-elements-action.spec.js} +63 -56
  46. package/lib/features/layout/layout-elements-action.spec.js.map +1 -0
  47. package/lib/features/mouse-tool/mouse-tool.d.ts +0 -1
  48. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  49. package/lib/features/mouse-tool/mouse-tool.js +9 -5
  50. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  51. package/lib/features/select/select-mouse-listener.d.ts +3 -1
  52. package/lib/features/select/select-mouse-listener.d.ts.map +1 -1
  53. package/lib/features/select/select-mouse-listener.js +62 -0
  54. package/lib/features/select/select-mouse-listener.js.map +1 -1
  55. package/lib/features/select/selection-service.d.ts +12 -3
  56. package/lib/features/select/selection-service.d.ts.map +1 -1
  57. package/lib/features/select/selection-service.js +31 -45
  58. package/lib/features/select/selection-service.js.map +1 -1
  59. package/lib/features/select/selection-service.spec.js +1 -1
  60. package/lib/features/select/selection-service.spec.js.map +1 -1
  61. package/lib/features/source-model-watcher/di.config.d.ts +4 -0
  62. package/lib/features/{model-source-watcher → source-model-watcher}/di.config.d.ts.map +1 -1
  63. package/lib/features/{model-source-watcher → source-model-watcher}/di.config.js +4 -4
  64. package/lib/features/{model-source-watcher → source-model-watcher}/di.config.js.map +1 -1
  65. package/lib/features/{model-source-watcher/model-source-changed-action-handler.d.ts → source-model-watcher/source-model-changed-action-handler.d.ts} +9 -9
  66. package/lib/features/{model-source-watcher/model-source-changed-action-handler.d.ts.map → source-model-watcher/source-model-changed-action-handler.d.ts.map} +1 -1
  67. package/lib/features/{model-source-watcher/model-source-changed-action-handler.js → source-model-watcher/source-model-changed-action-handler.js} +19 -19
  68. package/lib/features/{model-source-watcher/model-source-changed-action-handler.js.map → source-model-watcher/source-model-changed-action-handler.js.map} +1 -1
  69. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +1 -1
  70. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  71. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +3 -2
  72. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  73. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +13 -6
  74. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  75. package/lib/features/tools/di.config.d.ts +9 -2
  76. package/lib/features/tools/di.config.d.ts.map +1 -1
  77. package/lib/features/tools/di.config.js +14 -3
  78. package/lib/features/tools/di.config.js.map +1 -1
  79. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts +26 -0
  80. package/lib/features/tools/enable-default-tools-on-focus-loss.d.ts.map +1 -0
  81. package/lib/features/tools/enable-default-tools-on-focus-loss.js +29 -0
  82. package/lib/features/tools/enable-default-tools-on-focus-loss.js.map +1 -0
  83. package/lib/features/validation/di.config.d.ts +0 -15
  84. package/lib/features/validation/di.config.d.ts.map +1 -1
  85. package/lib/features/validation/di.config.js +6 -4
  86. package/lib/features/validation/di.config.js.map +1 -1
  87. package/lib/features/validation/issue-marker.d.ts +11 -5
  88. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  89. package/lib/features/validation/issue-marker.js +25 -5
  90. package/lib/features/validation/issue-marker.js.map +1 -1
  91. package/lib/features/validation/marker-navigator.d.ts +11 -17
  92. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  93. package/lib/features/validation/marker-navigator.js +32 -61
  94. package/lib/features/validation/marker-navigator.js.map +1 -1
  95. package/lib/features/validation/validate.d.ts +8 -19
  96. package/lib/features/validation/validate.d.ts.map +1 -1
  97. package/lib/features/validation/validate.js +29 -55
  98. package/lib/features/validation/validate.js.map +1 -1
  99. package/lib/index.d.ts +6 -6
  100. package/lib/index.d.ts.map +1 -1
  101. package/lib/index.js +16 -15
  102. package/lib/index.js.map +1 -1
  103. package/lib/lib/model.d.ts +1 -1
  104. package/lib/lib/model.d.ts.map +1 -1
  105. package/lib/lib/model.js +3 -3
  106. package/lib/lib/model.js.map +1 -1
  107. package/lib/model-source/glsp-diagram-server.d.ts +1 -1
  108. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  109. package/lib/model-source/glsp-diagram-server.js +1 -1
  110. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  111. package/lib/utils/layout-utils.d.ts +4 -20
  112. package/lib/utils/layout-utils.d.ts.map +1 -1
  113. package/lib/utils/layout-utils.js +1 -1
  114. package/lib/utils/layout-utils.js.map +1 -1
  115. package/lib/views/base-view-module.d.ts.map +1 -1
  116. package/lib/views/base-view-module.js +3 -1
  117. package/lib/views/base-view-module.js.map +1 -1
  118. package/lib/views/glsp-projection-view.d.ts +30 -0
  119. package/lib/views/glsp-projection-view.d.ts.map +1 -0
  120. package/lib/views/glsp-projection-view.js +142 -0
  121. package/lib/views/glsp-projection-view.js.map +1 -0
  122. package/lib/views/index.d.ts +1 -0
  123. package/lib/views/index.d.ts.map +1 -1
  124. package/lib/views/index.js +1 -0
  125. package/lib/views/index.js.map +1 -1
  126. package/package.json +4 -4
  127. package/src/base/container-modules.ts +6 -5
  128. package/src/base/editor-context-service.ts +15 -7
  129. package/src/base/model/update-model-command.ts +48 -34
  130. package/src/base/source-uri-aware.ts +5 -4
  131. package/src/features/change-bounds/movement-restrictor.ts +73 -43
  132. package/src/features/change-bounds/snap.ts +15 -12
  133. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +19 -25
  134. package/src/features/hover/hover.ts +2 -24
  135. package/src/features/layout/di.config.ts +12 -6
  136. package/src/features/layout/{layout-commands.spec.ts → layout-elements-action.spec.ts} +56 -48
  137. package/src/features/layout/{layout-commands.ts → layout-elements-action.ts} +195 -207
  138. package/src/features/mouse-tool/mouse-tool.ts +8 -6
  139. package/src/features/select/select-mouse-listener.ts +81 -1
  140. package/src/features/select/selection-service.spec.ts +1 -1
  141. package/src/features/select/selection-service.ts +37 -50
  142. package/src/features/{model-source-watcher → source-model-watcher}/di.config.ts +5 -5
  143. package/src/features/{model-source-watcher/model-source-changed-action-handler.ts → source-model-watcher/source-model-changed-action-handler.ts} +12 -12
  144. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +1 -1
  145. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +14 -6
  146. package/src/features/tools/di.config.ts +13 -2
  147. package/src/features/tools/enable-default-tools-on-focus-loss.ts +33 -0
  148. package/src/features/validation/di.config.ts +10 -7
  149. package/src/features/validation/issue-marker.ts +34 -12
  150. package/src/features/validation/marker-navigator.ts +29 -66
  151. package/src/features/validation/validate.ts +36 -71
  152. package/src/index.ts +8 -7
  153. package/src/lib/model.ts +1 -1
  154. package/src/model-source/glsp-diagram-server.ts +1 -1
  155. package/src/utils/layout-utils.ts +7 -27
  156. package/src/views/base-view-module.ts +5 -1
  157. package/src/views/glsp-projection-view.tsx +166 -0
  158. package/src/views/index.ts +2 -0
  159. package/lib/features/layout/layout-commands.d.ts.map +0 -1
  160. package/lib/features/layout/layout-commands.js.map +0 -1
  161. package/lib/features/layout/layout-commands.spec.d.ts +0 -3
  162. package/lib/features/layout/layout-commands.spec.d.ts.map +0 -1
  163. package/lib/features/layout/layout-commands.spec.js.map +0 -1
  164. package/lib/features/model-source-watcher/di.config.d.ts +0 -4
@@ -8,11 +8,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AlignElementsCommand = exports.ResizeElementsCommand = exports.AlignElementsAction = exports.Select = exports.Alignment = exports.ResizeElementsAction = exports.Reduce = exports.ResizeDimension = void 0;
12
+ exports.AlignElementsActionHandler = exports.AlignElementsAction = exports.SelectFunction = exports.Alignment = exports.ResizeElementsActionHandler = exports.LayoutElementsActionHandler = exports.ResizeElementsAction = exports.ReduceFunction = exports.ResizeDimension = void 0;
16
13
  /********************************************************************************
17
14
  * Copyright (c) 2019-2022 EclipseSource and others.
18
15
  *
@@ -33,6 +30,7 @@ const inversify_1 = require("inversify");
33
30
  const sprotty_1 = require("sprotty");
34
31
  const types_1 = require("../../base/types");
35
32
  const layout_utils_1 = require("../../utils/layout-utils");
33
+ const smodel_util_1 = require("../../utils/smodel-util");
36
34
  const model_1 = require("../change-bounds/model");
37
35
  const selection_service_1 = require("../select/selection-service");
38
36
  /**
@@ -45,8 +43,8 @@ var ResizeDimension;
45
43
  ResizeDimension[ResizeDimension["Height"] = 1] = "Height";
46
44
  ResizeDimension[ResizeDimension["Width_And_Height"] = 2] = "Width_And_Height";
47
45
  })(ResizeDimension = exports.ResizeDimension || (exports.ResizeDimension = {}));
48
- var Reduce;
49
- (function (Reduce) {
46
+ var ReduceFunction;
47
+ (function (ReduceFunction) {
50
48
  /**
51
49
  * Returns the minimal value of the given numbers.
52
50
  * @param values Numbers to be evaluated.
@@ -55,7 +53,7 @@ var Reduce;
55
53
  function min(...values) {
56
54
  return Math.min(...values);
57
55
  }
58
- Reduce.min = min;
56
+ ReduceFunction.min = min;
59
57
  /**
60
58
  * Returns the maximal value of the given numbers.
61
59
  * @param values Numbers to be evaluated.
@@ -64,7 +62,7 @@ var Reduce;
64
62
  function max(...values) {
65
63
  return Math.max(...values);
66
64
  }
67
- Reduce.max = max;
65
+ ReduceFunction.max = max;
68
66
  /**
69
67
  * Computes the average of the given numbers.
70
68
  * @param values Numbers to be evaluated.
@@ -72,7 +70,7 @@ var Reduce;
72
70
  function avg(...values) {
73
71
  return values.reduce((a, b) => a + b, 0) / values.length;
74
72
  }
75
- Reduce.avg = avg;
73
+ ReduceFunction.avg = avg;
76
74
  /**
77
75
  * Returns the last value of the given numbers.
78
76
  * @param values Numbers to be evaluated.
@@ -81,7 +79,7 @@ var Reduce;
81
79
  function first(...values) {
82
80
  return values[0];
83
81
  }
84
- Reduce.first = first;
82
+ ReduceFunction.first = first;
85
83
  /**
86
84
  * Returns the minimal value of the given numbers.
87
85
  * @param values Numbers to be evaluated.
@@ -90,13 +88,17 @@ var Reduce;
90
88
  function last(...values) {
91
89
  return values[values.length - 1];
92
90
  }
93
- Reduce.last = last;
91
+ ReduceFunction.last = last;
94
92
  /**
95
- * Returns the reduce function that corresponds to the given {@link ReduceFunctionKind}.
93
+ * Returns the reduce function that corresponds to the given {@link ReduceFunctionType}.
96
94
  * @param type The reduce function kind.
97
95
  * @returns The corresponding reduce function.
98
96
  */
99
- })(Reduce = exports.Reduce || (exports.Reduce = {}));
97
+ function get(type) {
98
+ return ReduceFunction[type];
99
+ }
100
+ ReduceFunction.get = get;
101
+ })(ReduceFunction = exports.ReduceFunction || (exports.ReduceFunction = {}));
100
102
  var ResizeElementsAction;
101
103
  (function (ResizeElementsAction) {
102
104
  ResizeElementsAction.KIND = 'resizeElementAction';
@@ -104,7 +106,7 @@ var ResizeElementsAction;
104
106
  return (protocol_1.Action.hasKind(object, ResizeElementsAction.KIND) &&
105
107
  (0, protocol_1.hasArrayProp)(object, 'elementIds') &&
106
108
  (0, protocol_1.hasNumberProp)(object, 'dimension') &&
107
- 'reductionFunction' in object);
109
+ (0, protocol_1.hasStringProp)(object, 'reduceFunction'));
108
110
  }
109
111
  ResizeElementsAction.is = is;
110
112
  function create(options) {
@@ -112,69 +114,11 @@ var ResizeElementsAction;
112
114
  }
113
115
  ResizeElementsAction.create = create;
114
116
  })(ResizeElementsAction = exports.ResizeElementsAction || (exports.ResizeElementsAction = {}));
115
- // eslint-disable-next-line no-shadow
116
- var Alignment;
117
- (function (Alignment) {
118
- Alignment[Alignment["Left"] = 0] = "Left";
119
- Alignment[Alignment["Center"] = 1] = "Center";
120
- Alignment[Alignment["Right"] = 2] = "Right";
121
- Alignment[Alignment["Top"] = 3] = "Top";
122
- Alignment[Alignment["Middle"] = 4] = "Middle";
123
- Alignment[Alignment["Bottom"] = 5] = "Bottom";
124
- })(Alignment = exports.Alignment || (exports.Alignment = {}));
125
- var Select;
126
- (function (Select) {
127
- function all(elements) {
128
- return elements;
129
- }
130
- Select.all = all;
131
- function first(elements) {
132
- return [elements[0]];
133
- }
134
- Select.first = first;
135
- function last(elements) {
136
- return [elements[elements.length - 1]];
137
- }
138
- Select.last = last;
139
- })(Select = exports.Select || (exports.Select = {}));
140
- var AlignElementsAction;
141
- (function (AlignElementsAction) {
142
- AlignElementsAction.KIND = 'alignElements';
143
- function is(object) {
144
- return (protocol_1.Action.hasKind(object, AlignElementsAction.KIND) &&
145
- (0, protocol_1.hasArrayProp)(object, 'elementIds') &&
146
- (0, protocol_1.hasNumberProp)(object, 'alignment') &&
147
- 'selectionFunction' in object);
148
- }
149
- AlignElementsAction.is = is;
150
- function create(options = {}) {
151
- return Object.assign({ kind: AlignElementsAction.KIND, elementIds: [], alignment: Alignment.Left, selectionFunction: Select.all }, options);
152
- }
153
- AlignElementsAction.create = create;
154
- })(AlignElementsAction = exports.AlignElementsAction || (exports.AlignElementsAction = {}));
155
- let LayoutElementsCommand = class LayoutElementsCommand extends sprotty_1.Command {
156
- constructor(action, actionDispatcher, selectionService, movementRestrictor) {
157
- super();
158
- this.action = action;
159
- this.actionDispatcher = actionDispatcher;
160
- this.selectionService = selectionService;
161
- this.movementRestrictor = movementRestrictor;
162
- }
163
- getActionElements(context) {
164
- const model = context.root;
165
- const elementIDs = this.action.elementIds;
166
- if (elementIDs.length === 0) {
167
- // collect the selected elements from the selection service (selection order is kept by service)
168
- this.selectionService.getSelectedElementIDs().forEach(elementID => elementIDs.push(elementID));
169
- }
170
- const boundsAwareElements = [];
171
- elementIDs.forEach(id => {
172
- const element = model.index.getById(id);
173
- if (element && this.isActionElement(element)) {
174
- boundsAwareElements.push(element);
175
- }
176
- });
177
- return boundsAwareElements;
117
+ let LayoutElementsActionHandler = class LayoutElementsActionHandler {
118
+ getSelectedElements(selection) {
119
+ const index = this.selectionService.getModelRoot().index;
120
+ const selectedElements = selection.elementIds.length > 0 ? selection.elementIds : this.selectionService.getSelectedElementIDs();
121
+ return (0, smodel_util_1.getElements)(index, selectedElements, this.isActionElement);
178
122
  }
179
123
  dispatchAction(action) {
180
124
  this.actionDispatcher.dispatch(action);
@@ -183,72 +127,65 @@ let LayoutElementsCommand = class LayoutElementsCommand extends sprotty_1.Comman
183
127
  this.actionDispatcher.dispatchAll(actions);
184
128
  }
185
129
  };
186
- LayoutElementsCommand = __decorate([
187
- (0, inversify_1.injectable)(),
188
- __param(0, (0, inversify_1.inject)(types_1.TYPES.Action)),
189
- __param(1, (0, inversify_1.inject)(types_1.TYPES.IActionDispatcher)),
190
- __param(2, (0, inversify_1.inject)(types_1.TYPES.SelectionService)),
191
- __param(3, (0, inversify_1.inject)(types_1.TYPES.IMovementRestrictor)),
192
- __param(3, (0, inversify_1.optional)()),
193
- __metadata("design:paramtypes", [Object, Object, selection_service_1.SelectionService, Object])
194
- ], LayoutElementsCommand);
195
- let ResizeElementsCommand = class ResizeElementsCommand extends LayoutElementsCommand {
196
- constructor(action, actionDispatcher, selectionService, movementRestrictor) {
197
- super(action, actionDispatcher, selectionService, movementRestrictor);
198
- this.action = action;
199
- this.actionDispatcher = actionDispatcher;
200
- this.selectionService = selectionService;
201
- this.movementRestrictor = movementRestrictor;
202
- }
203
- isActionElement(element) {
204
- return (0, model_1.isResizable)(element);
205
- }
206
- execute(context) {
207
- const elements = this.getActionElements(context);
130
+ __decorate([
131
+ (0, inversify_1.inject)(types_1.TYPES.IActionDispatcher),
132
+ __metadata("design:type", Object)
133
+ ], LayoutElementsActionHandler.prototype, "actionDispatcher", void 0);
134
+ __decorate([
135
+ (0, inversify_1.inject)(types_1.TYPES.SelectionService),
136
+ __metadata("design:type", selection_service_1.SelectionService)
137
+ ], LayoutElementsActionHandler.prototype, "selectionService", void 0);
138
+ __decorate([
139
+ (0, inversify_1.inject)(types_1.TYPES.IMovementRestrictor),
140
+ (0, inversify_1.optional)(),
141
+ __metadata("design:type", Object)
142
+ ], LayoutElementsActionHandler.prototype, "movementRestrictor", void 0);
143
+ LayoutElementsActionHandler = __decorate([
144
+ (0, inversify_1.injectable)()
145
+ ], LayoutElementsActionHandler);
146
+ exports.LayoutElementsActionHandler = LayoutElementsActionHandler;
147
+ let ResizeElementsActionHandler = class ResizeElementsActionHandler extends LayoutElementsActionHandler {
148
+ handle(action) {
149
+ const elements = this.getSelectedElements(action);
208
150
  if (elements.length > 1) {
209
- switch (this.action.dimension) {
151
+ const reduceFn = ReduceFunction.get(action.reduceFunction);
152
+ switch (action.dimension) {
210
153
  case ResizeDimension.Width:
211
- this.resizeWidth(elements);
212
- break;
154
+ return this.resizeWidth(elements, reduceFn);
213
155
  case ResizeDimension.Height:
214
- this.resizeHeight(elements);
215
- break;
156
+ return this.resizeHeight(elements, reduceFn);
216
157
  case ResizeDimension.Width_And_Height:
217
- this.resizeWidthAndHeight(elements);
218
- break;
158
+ return this.resizeWidthAndHeight(elements, reduceFn);
219
159
  }
220
160
  }
221
- return context.root;
222
161
  }
223
- resizeWidth(elements) {
224
- const targetWidth = this.action.reductionFunction(...elements.map(element => element.bounds.width));
162
+ resizeWidth(elements, reduceFn) {
163
+ const targetWidth = reduceFn(...elements.map(element => element.bounds.width));
225
164
  this.dispatchResizeActions(elements, (element, bounds) => {
226
- // resize around center
165
+ // resize around center (horizontal)
227
166
  const halfDiffWidth = 0.5 * (targetWidth - element.bounds.width);
228
167
  bounds.newPosition.x = element.bounds.x - halfDiffWidth;
229
168
  bounds.newSize.width = targetWidth;
230
169
  });
231
170
  }
232
- resizeHeight(elements) {
233
- const targetHeight = this.action.reductionFunction(...elements.map(element => element.bounds.height));
171
+ resizeHeight(elements, reduceFn) {
172
+ const targetHeight = reduceFn(...elements.map(element => element.bounds.height));
234
173
  this.dispatchResizeActions(elements, (element, bounds) => {
235
- // resize around middle
174
+ // resize around middle (vertical)
236
175
  const halfDiffHeight = 0.5 * (targetHeight - element.bounds.height);
237
176
  bounds.newPosition.y = element.bounds.y - halfDiffHeight;
238
177
  bounds.newSize.height = targetHeight;
239
178
  });
240
179
  }
241
- resizeWidthAndHeight(elements) {
242
- const targetWidth = this.action.reductionFunction(...elements.map(element => element.bounds.width));
243
- const targetHeight = this.action.reductionFunction(...elements.map(element => element.bounds.height));
180
+ resizeWidthAndHeight(elements, reduceFn) {
181
+ const targetWidth = reduceFn(...elements.map(element => element.bounds.width));
182
+ const targetHeight = reduceFn(...elements.map(element => element.bounds.height));
244
183
  this.dispatchResizeActions(elements, (element, bounds) => {
245
- // resize around center and middle
184
+ // resize around center and middle (horizontal & vertical)
246
185
  const halfDiffWidth = 0.5 * (targetWidth - element.bounds.width);
247
186
  const halfDiffHeight = 0.5 * (targetHeight - element.bounds.height);
248
- bounds.newPosition.x = element.bounds.x - halfDiffWidth;
249
- bounds.newPosition.y = element.bounds.y - halfDiffHeight;
250
- bounds.newSize.width = targetWidth;
251
- bounds.newSize.height = targetHeight;
187
+ bounds.newPosition = { x: element.bounds.x - halfDiffWidth, y: element.bounds.y - halfDiffHeight };
188
+ bounds.newSize = { width: targetWidth, height: targetHeight };
252
189
  });
253
190
  }
254
191
  dispatchResizeActions(elements, change) {
@@ -277,97 +214,128 @@ let ResizeElementsCommand = class ResizeElementsCommand extends LayoutElementsCo
277
214
  change(element, bounds);
278
215
  return (0, layout_utils_1.toValidElementAndBounds)(element, bounds, this.movementRestrictor);
279
216
  }
280
- undo(context) {
281
- // we dispatch another action which can be undone, so no explicit implementation necessary
282
- return context.root;
283
- }
284
- redo(context) {
285
- // we dispatch another action which can be redone, so no explicit implementation necessary
286
- return context.root;
217
+ isActionElement(element) {
218
+ return (0, model_1.isResizable)(element);
287
219
  }
288
220
  };
289
- ResizeElementsCommand.KIND = ResizeElementsAction.KIND;
290
- ResizeElementsCommand = __decorate([
291
- (0, inversify_1.injectable)(),
292
- __param(0, (0, inversify_1.inject)(types_1.TYPES.Action)),
293
- __param(1, (0, inversify_1.inject)(types_1.TYPES.IActionDispatcher)),
294
- __param(2, (0, inversify_1.inject)(types_1.TYPES.SelectionService)),
295
- __param(3, (0, inversify_1.inject)(types_1.TYPES.IMovementRestrictor)),
296
- __param(3, (0, inversify_1.optional)()),
297
- __metadata("design:paramtypes", [Object, Object, selection_service_1.SelectionService, Object])
298
- ], ResizeElementsCommand);
299
- exports.ResizeElementsCommand = ResizeElementsCommand;
300
- let AlignElementsCommand = class AlignElementsCommand extends LayoutElementsCommand {
301
- constructor(action, actionDispatcher, selectionService, movementRestrictor) {
302
- super(action, actionDispatcher, selectionService, movementRestrictor);
303
- this.action = action;
304
- this.actionDispatcher = actionDispatcher;
305
- this.selectionService = selectionService;
306
- this.movementRestrictor = movementRestrictor;
221
+ ResizeElementsActionHandler = __decorate([
222
+ (0, inversify_1.injectable)()
223
+ ], ResizeElementsActionHandler);
224
+ exports.ResizeElementsActionHandler = ResizeElementsActionHandler;
225
+ // eslint-disable-next-line no-shadow
226
+ var Alignment;
227
+ (function (Alignment) {
228
+ Alignment[Alignment["Left"] = 0] = "Left";
229
+ Alignment[Alignment["Center"] = 1] = "Center";
230
+ Alignment[Alignment["Right"] = 2] = "Right";
231
+ Alignment[Alignment["Top"] = 3] = "Top";
232
+ Alignment[Alignment["Middle"] = 4] = "Middle";
233
+ Alignment[Alignment["Bottom"] = 5] = "Bottom";
234
+ })(Alignment = exports.Alignment || (exports.Alignment = {}));
235
+ var SelectFunction;
236
+ (function (SelectFunction) {
237
+ /**
238
+ * Select all elements from the given set of elements.
239
+ * @param elements The set of elements.
240
+ * @returns All elements.
241
+ */
242
+ function all(elements) {
243
+ return elements;
307
244
  }
308
- isActionElement(element) {
309
- return (0, model_1.isBoundsAwareMoveable)(element);
245
+ SelectFunction.all = all;
246
+ /**
247
+ * Select the first element from a given set of elements.
248
+ * @param elements The elements.
249
+ * @returns An array containing the first element of the given elements.
250
+ */
251
+ function first(elements) {
252
+ return [elements[0]];
253
+ }
254
+ SelectFunction.first = first;
255
+ /**
256
+ * Select the last element from a given set of elements.
257
+ * @param elements The elements.
258
+ * @returns An array containing the last element of the given elements.
259
+ */
260
+ function last(elements) {
261
+ return [elements[elements.length - 1]];
262
+ }
263
+ SelectFunction.last = last;
264
+ /**
265
+ * Returns the select function that corresponds to the given {@link SelectFunctionType}.
266
+ * @param type The select function type.
267
+ * @returns The corresponding select function.
268
+ */
269
+ function get(kind) {
270
+ return SelectFunction[kind];
310
271
  }
311
- execute(context) {
312
- const elements = this.getActionElements(context);
272
+ SelectFunction.get = get;
273
+ })(SelectFunction = exports.SelectFunction || (exports.SelectFunction = {}));
274
+ var AlignElementsAction;
275
+ (function (AlignElementsAction) {
276
+ AlignElementsAction.KIND = 'alignElements';
277
+ function is(object) {
278
+ return (protocol_1.Action.hasKind(object, AlignElementsAction.KIND) &&
279
+ (0, protocol_1.hasArrayProp)(object, 'elementIds') &&
280
+ (0, protocol_1.hasNumberProp)(object, 'alignment') &&
281
+ (0, protocol_1.hasStringProp)(object, 'selectFunction'));
282
+ }
283
+ AlignElementsAction.is = is;
284
+ function create(options = {}) {
285
+ return Object.assign({ kind: AlignElementsAction.KIND, elementIds: [], alignment: Alignment.Left, selectFunction: 'all' }, options);
286
+ }
287
+ AlignElementsAction.create = create;
288
+ })(AlignElementsAction = exports.AlignElementsAction || (exports.AlignElementsAction = {}));
289
+ let AlignElementsActionHandler = class AlignElementsActionHandler extends LayoutElementsActionHandler {
290
+ handle(action) {
291
+ const elements = this.getSelectedElements(action);
292
+ const selectFn = SelectFunction.get(action.selectFunction);
293
+ const calculatedElements = selectFn(elements);
313
294
  if (elements.length > 1) {
314
- switch (this.action.alignment) {
295
+ switch (action.alignment) {
315
296
  case Alignment.Left:
316
- this.alignLeft(elements);
317
- break;
297
+ return this.alignLeft(calculatedElements);
318
298
  case Alignment.Center:
319
- this.alignCenter(elements);
320
- break;
299
+ return this.alignCenter(calculatedElements);
321
300
  case Alignment.Right:
322
- this.alignRight(elements);
323
- break;
301
+ return this.alignRight(calculatedElements);
324
302
  case Alignment.Top:
325
- this.alignTop(elements);
326
- break;
303
+ return this.alignTop(calculatedElements);
327
304
  case Alignment.Middle:
328
- this.alignMiddle(elements);
329
- break;
305
+ return this.alignMiddle(calculatedElements);
330
306
  case Alignment.Bottom:
331
- this.alignBottom(elements);
332
- break;
307
+ return this.alignBottom(calculatedElements);
333
308
  }
334
309
  }
335
- return context.root;
336
310
  }
337
311
  alignLeft(elements) {
338
- const calculationElements = this.action.selectionFunction(elements);
339
- const minX = calculationElements.map(element => element.bounds.x).reduce((a, b) => Math.min(a, b));
312
+ const minX = elements.map(element => element.bounds.x).reduce((a, b) => Math.min(a, b));
340
313
  this.dispatchAlignActions(elements, (_, move) => (move.toPosition.x = minX));
341
314
  }
342
315
  alignCenter(elements) {
343
- const calculationElements = this.action.selectionFunction(elements);
344
- const minX = calculationElements.map(element => element.bounds.x).reduce((a, b) => Math.min(a, b));
345
- const maxX = calculationElements.map(element => element.bounds.x + element.bounds.width).reduce((a, b) => Math.max(a, b));
316
+ const minX = elements.map(element => element.bounds.x).reduce((a, b) => Math.min(a, b));
317
+ const maxX = elements.map(element => element.bounds.x + element.bounds.width).reduce((a, b) => Math.max(a, b));
346
318
  const diffX = maxX - minX;
347
319
  const centerX = minX + 0.5 * diffX;
348
320
  this.dispatchAlignActions(elements, (element, move) => (move.toPosition.x = centerX - 0.5 * element.bounds.width));
349
321
  }
350
322
  alignRight(elements) {
351
- const calculationElements = this.action.selectionFunction(elements);
352
- const maxX = calculationElements.map(element => element.bounds.x + element.bounds.width).reduce((a, b) => Math.max(a, b));
323
+ const maxX = elements.map(element => element.bounds.x + element.bounds.width).reduce((a, b) => Math.max(a, b));
353
324
  this.dispatchAlignActions(elements, (element, move) => (move.toPosition.x = maxX - element.bounds.width));
354
325
  }
355
326
  alignTop(elements) {
356
- const calculationElements = this.action.selectionFunction(elements);
357
- const minY = calculationElements.map(element => element.bounds.y).reduce((a, b) => Math.min(a, b));
327
+ const minY = elements.map(element => element.bounds.y).reduce((a, b) => Math.min(a, b));
358
328
  this.dispatchAlignActions(elements, (_, move) => (move.toPosition.y = minY));
359
329
  }
360
330
  alignMiddle(elements) {
361
- const calculationElements = this.action.selectionFunction(elements);
362
- const minY = calculationElements.map(element => element.bounds.y).reduce((a, b) => Math.min(a, b));
363
- const maxY = calculationElements.map(element => element.bounds.y + element.bounds.height).reduce((a, b) => Math.max(a, b));
331
+ const minY = elements.map(element => element.bounds.y).reduce((a, b) => Math.min(a, b));
332
+ const maxY = elements.map(element => element.bounds.y + element.bounds.height).reduce((a, b) => Math.max(a, b));
364
333
  const diffY = maxY - minY;
365
334
  const middleY = minY + 0.5 * diffY;
366
335
  this.dispatchAlignActions(elements, (element, move) => (move.toPosition.y = middleY - 0.5 * element.bounds.height));
367
336
  }
368
337
  alignBottom(elements) {
369
- const calculationElements = this.action.selectionFunction(elements);
370
- const maxY = calculationElements.map(element => element.bounds.y + element.bounds.height).reduce((a, b) => Math.max(a, b));
338
+ const maxY = elements.map(element => element.bounds.y + element.bounds.height).reduce((a, b) => Math.max(a, b));
371
339
  this.dispatchAlignActions(elements, (element, move) => (move.toPosition.y = maxY - element.bounds.height));
372
340
  }
373
341
  dispatchAlignActions(elements, change) {
@@ -412,24 +380,12 @@ let AlignElementsCommand = class AlignElementsCommand extends LayoutElementsComm
412
380
  }
413
381
  };
414
382
  }
415
- undo(context) {
416
- // we dispatch another action which can be undone, so no explicit implementation necessary
417
- return context.root;
418
- }
419
- redo(context) {
420
- // we dispatch another action which can be redone, so no explicit implementation necessary
421
- return context.root;
383
+ isActionElement(element) {
384
+ return (0, model_1.isBoundsAwareMoveable)(element);
422
385
  }
423
386
  };
424
- AlignElementsCommand.KIND = AlignElementsAction.KIND;
425
- AlignElementsCommand = __decorate([
426
- (0, inversify_1.injectable)(),
427
- __param(0, (0, inversify_1.inject)(types_1.TYPES.Action)),
428
- __param(1, (0, inversify_1.inject)(types_1.TYPES.IActionDispatcher)),
429
- __param(2, (0, inversify_1.inject)(types_1.TYPES.SelectionService)),
430
- __param(3, (0, inversify_1.inject)(types_1.TYPES.IMovementRestrictor)),
431
- __param(3, (0, inversify_1.optional)()),
432
- __metadata("design:paramtypes", [Object, Object, selection_service_1.SelectionService, Object])
433
- ], AlignElementsCommand);
434
- exports.AlignElementsCommand = AlignElementsCommand;
435
- //# sourceMappingURL=layout-commands.js.map
387
+ AlignElementsActionHandler = __decorate([
388
+ (0, inversify_1.injectable)()
389
+ ], AlignElementsActionHandler);
390
+ exports.AlignElementsActionHandler = AlignElementsActionHandler;
391
+ //# sourceMappingURL=layout-elements-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-elements-action.js","sourceRoot":"","sources":["../../../src/features/layout/layout-elements-action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import 'mocha';
2
+ import 'reflect-metadata';
3
+ //# sourceMappingURL=layout-elements-action.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-elements-action.spec.d.ts","sourceRoot":"","sources":["../../../src/features/layout/layout-elements-action.spec.ts"],"names":[],"mappings":"AA2BA,OAAO,OAAO,CAAC;AACf,OAAO,kBAAkB,CAAC"}