redhotmagma-graphics-editor 1.27.1 → 1.27.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redhotmagma-graphics-editor",
3
- "version": "1.27.1",
3
+ "version": "1.27.2",
4
4
  "license": "UNLICENSED",
5
5
  "private": false,
6
6
  "main": "./lib/index.js",
@@ -204,9 +204,10 @@ export abstract class AbstractCanvas {
204
204
  }
205
205
 
206
206
  getState(): any {
207
- const { selectedObject } = this;
207
+ const { selectedObject, size } = this;
208
208
  return {
209
209
  selectedObject: selectedObject ? selectedObject.getState() : null,
210
+ size,
210
211
  };
211
212
  }
212
213
 
@@ -35,6 +35,8 @@ export abstract class AbstractCanvasObject {
35
35
  protected _locked = false;
36
36
  protected _autoFit = false;
37
37
  protected _grabbed = false;
38
+ protected _activeAction = '';
39
+ protected _userData = {};
38
40
  protected _canvas: AbstractCanvas = null;
39
41
  protected _observable: Observable = new Observable(this);
40
42
 
@@ -173,6 +175,15 @@ export abstract class AbstractCanvasObject {
173
175
  return this._autoFit;
174
176
  }
175
177
 
178
+ get userData(): Record<string, unknown> {
179
+ return this._userData;
180
+ }
181
+
182
+ set userData(userDataObject: Record<string, unknown>) {
183
+ this._userData = userDataObject;
184
+ this._observable.triggerEvent(CanvasObjectEvents.OnChange);
185
+ }
186
+
176
187
  set grabbed(grabbed) {
177
188
  this._grabbed = grabbed;
178
189
  this._observable.triggerEvent(CanvasObjectEvents.OnChange);
@@ -182,6 +193,15 @@ export abstract class AbstractCanvasObject {
182
193
  return this._grabbed;
183
194
  }
184
195
 
196
+ set activeAction(action: string) {
197
+ this._activeAction = action;
198
+ this._observable.triggerEvent(CanvasObjectEvents.OnChange);
199
+ }
200
+
201
+ get activeAction(): string {
202
+ return this._activeAction;
203
+ }
204
+
185
205
  set canvas(canvas: AbstractCanvas) {
186
206
  this._canvas = canvas;
187
207
  }
@@ -269,7 +289,7 @@ export abstract class AbstractCanvasObject {
269
289
  }
270
290
 
271
291
  toObject(includeWrappedObject = false) {
272
- const { type, x, y, rotation, scaling, locked, autoFit, uuid } = this;
292
+ const { type, x, y, rotation, scaling, locked, autoFit, userData, uuid } = this;
273
293
  const obj = {
274
294
  type,
275
295
  x,
@@ -278,6 +298,7 @@ export abstract class AbstractCanvasObject {
278
298
  scaling,
279
299
  locked,
280
300
  autoFit,
301
+ userData,
281
302
  uuid,
282
303
  };
283
304
  if (includeWrappedObject) {
@@ -38,6 +38,7 @@ export class Editor extends React.Component {
38
38
  canvas: PropTypes.instanceOf(AbstractCanvas).isRequired,
39
39
  classes: PropTypes.object.isRequired,
40
40
  containerClassName: PropTypes.string,
41
+ renderInCanvasContainer: PropTypes.func,
41
42
  };
42
43
 
43
44
  static defaultProps = {
@@ -163,6 +164,7 @@ export class Editor extends React.Component {
163
164
  Rulers,
164
165
  SelectionToolbox,
165
166
  StandardToolbox,
167
+ renderInCanvasContainer,
166
168
  } = props;
167
169
  if (typeof children === 'function') {
168
170
  return children({
@@ -222,6 +224,7 @@ export class Editor extends React.Component {
222
224
  Rulers,
223
225
  },
224
226
  })}
227
+ {renderInCanvasContainer && renderInCanvasContainer()}
225
228
  </CanvasContainer>
226
229
  </EditorContainer>
227
230
  {this.renderSelectionToolbox({
@@ -75,6 +75,8 @@ class InlineToolBox extends React.Component {
75
75
  return;
76
76
  }
77
77
 
78
+ selectedObject.activeAction = 'scale';
79
+
78
80
  const clientPosition = this.getClientPositionFromEvent(evt);
79
81
 
80
82
  let iDistance = selectedObject.getDistanceToCenter(clientPosition.x, clientPosition.y);
@@ -99,6 +101,7 @@ class InlineToolBox extends React.Component {
99
101
  this.updateToolbarTransform();
100
102
  };
101
103
  const mouseUp = evt => {
104
+ selectedObject.activeAction = '';
102
105
  const clientPosition = this.getClientPositionFromEvent(evt);
103
106
  evt.preventDefault();
104
107
  document.removeEventListener(clientPosition.isTouchEvent ? 'touchmove' : 'mousemove', mouseMove, {
@@ -118,6 +121,8 @@ class InlineToolBox extends React.Component {
118
121
  return;
119
122
  }
120
123
 
124
+ selectedObject.activeAction = 'rotate';
125
+
121
126
  const clientPosition = this.getClientPositionFromEvent(evt);
122
127
 
123
128
  // const { canvasPosition } = this.props;
@@ -140,6 +145,7 @@ class InlineToolBox extends React.Component {
140
145
  this.updateToolbarTransform();
141
146
  };
142
147
  const mouseUp = evt => {
148
+ selectedObject.activeAction = '';
143
149
  const clientPosition = this.getClientPositionFromEvent(evt);
144
150
  evt.preventDefault();
145
151