js-draw 1.6.0 → 1.6.1

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.
@@ -212,11 +212,11 @@ class EditorImage {
212
212
  * @see {@link Display.flatten}
213
213
  */
214
214
  static addElement(elem, applyByFlattening = false) {
215
- return new EditorImage.AddElementCommand(elem, applyByFlattening);
215
+ return new _a.AddElementCommand(elem, applyByFlattening);
216
216
  }
217
217
  /** @see EditorImage.addElement */
218
218
  addElement(elem, applyByFlattening) {
219
- return EditorImage.addElement(elem, applyByFlattening);
219
+ return _a.addElement(elem, applyByFlattening);
220
220
  }
221
221
  /**
222
222
  * @returns a `Viewport` for rendering the image when importing/exporting.
@@ -235,7 +235,7 @@ class EditorImage {
235
235
  * autoresize (if it was previously enabled).
236
236
  */
237
237
  setImportExportRect(imageRect) {
238
- return EditorImage.SetImportExportRectCommand.of(this, imageRect, false);
238
+ return _a.SetImportExportRectCommand.of(this, imageRect, false);
239
239
  }
240
240
  getAutoresizeEnabled() {
241
241
  return this.shouldAutoresizeExportViewport;
@@ -246,7 +246,7 @@ class EditorImage {
246
246
  return Command_1.default.empty;
247
247
  }
248
248
  const newBBox = this.root.getBBox();
249
- return EditorImage.SetImportExportRectCommand.of(this, newBBox, autoresize);
249
+ return _a.SetImportExportRectCommand.of(this, newBBox, autoresize);
250
250
  }
251
251
  setAutoresizeEnabledDirectly(shouldAutoresize) {
252
252
  if (shouldAutoresize !== this.shouldAutoresizeExportViewport) {
@@ -352,7 +352,7 @@ EditorImage.AddElementCommand = (_b = class extends SerializableCommand_1.defaul
352
352
  const id = json.elemData.id;
353
353
  const foundElem = editor.image.lookupElement(id);
354
354
  const elem = foundElem ?? AbstractComponent_1.default.deserialize(json.elemData);
355
- const result = new EditorImage.AddElementCommand(elem);
355
+ const result = new _a.AddElementCommand(elem);
356
356
  result.serializedElem = json.elemData;
357
357
  return result;
358
358
  });
@@ -361,7 +361,7 @@ EditorImage.AddElementCommand = (_b = class extends SerializableCommand_1.defaul
361
361
  // Handles resizing the background import/export region of the image.
362
362
  EditorImage.SetImportExportRectCommand = (_c = class extends SerializableCommand_1.default {
363
363
  constructor(originalSize, originalTransform, originalAutoresize, newExportRect, newAutoresize) {
364
- super(EditorImage.SetImportExportRectCommand.commandId);
364
+ super(_a.SetImportExportRectCommand.commandId);
365
365
  this.originalSize = originalSize;
366
366
  this.originalTransform = originalTransform;
367
367
  this.originalAutoresize = originalAutoresize;
@@ -374,7 +374,7 @@ EditorImage.SetImportExportRectCommand = (_c = class extends SerializableCommand
374
374
  const originalSize = importExportViewport.visibleRect.size;
375
375
  const originalTransform = importExportViewport.canvasToScreenTransform;
376
376
  const originalAutoresize = image.getAutoresizeEnabled();
377
- return new EditorImage.SetImportExportRectCommand(originalSize, originalTransform, originalAutoresize, newExportRect, newAutoresize);
377
+ return new _a.SetImportExportRectCommand(originalSize, originalTransform, originalAutoresize, newExportRect, newAutoresize);
378
378
  }
379
379
  apply(editor) {
380
380
  editor.image.setAutoresizeEnabledDirectly(this.newAutoresize);
@@ -435,7 +435,7 @@ EditorImage.SetImportExportRectCommand = (_c = class extends SerializableCommand
435
435
  const finalRect = new math_1.Rect2(json.newRegion.x, json.newRegion.y, json.newRegion.w, json.newRegion.h);
436
436
  const autoresize = json.autoresize ?? false;
437
437
  const originalAutoresize = json.originalAutoresize ?? false;
438
- return new EditorImage.SetImportExportRectCommand(originalSize, originalTransform, originalAutoresize, finalRect, autoresize);
438
+ return new _a.SetImportExportRectCommand(originalSize, originalTransform, originalAutoresize, finalRect, autoresize);
439
439
  });
440
440
  })(),
441
441
  _c);
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
- var _BaseWidget_instances, _BaseWidget_hasDropdown, _BaseWidget_disabledDueToReadOnlyEditor, _BaseWidget_tags, _BaseWidget_removeEditorListeners, _BaseWidget_addEditorListeners;
16
+ var _BaseWidget_instances, _a, _BaseWidget_hasDropdown, _BaseWidget_disabledDueToReadOnlyEditor, _BaseWidget_tags, _BaseWidget_removeEditorListeners, _BaseWidget_addEditorListeners;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.ToolbarWidgetTag = void 0;
19
19
  const ToolbarShortcutHandler_1 = __importDefault(require("../../tools/ToolbarShortcutHandler"));
@@ -428,13 +428,13 @@ class BaseWidget {
428
428
  }
429
429
  }
430
430
  }
431
- _BaseWidget_hasDropdown = new WeakMap(), _BaseWidget_disabledDueToReadOnlyEditor = new WeakMap(), _BaseWidget_tags = new WeakMap(), _BaseWidget_removeEditorListeners = new WeakMap(), _BaseWidget_instances = new WeakSet(), _BaseWidget_addEditorListeners = function _BaseWidget_addEditorListeners() {
431
+ _a = BaseWidget, _BaseWidget_hasDropdown = new WeakMap(), _BaseWidget_disabledDueToReadOnlyEditor = new WeakMap(), _BaseWidget_tags = new WeakMap(), _BaseWidget_removeEditorListeners = new WeakMap(), _BaseWidget_instances = new WeakSet(), _BaseWidget_addEditorListeners = function _BaseWidget_addEditorListeners() {
432
432
  __classPrivateFieldGet(this, _BaseWidget_removeEditorListeners, "f")?.call(this);
433
433
  const toolbarShortcutHandlers = this.editor.toolController.getMatchingTools(ToolbarShortcutHandler_1.default);
434
434
  let removeKeyPressListener = null;
435
435
  // If the onKeyPress function has been extended and the editor is configured to send keypress events to
436
436
  // toolbar widgets,
437
- if (toolbarShortcutHandlers.length > 0 && this.onKeyPress !== BaseWidget.prototype.onKeyPress) {
437
+ if (toolbarShortcutHandlers.length > 0 && this.onKeyPress !== _a.prototype.onKeyPress) {
438
438
  const keyPressListener = (event) => this.onKeyPress(event);
439
439
  const handler = toolbarShortcutHandlers[0];
440
440
  handler.registerListener(keyPressListener);
@@ -157,10 +157,12 @@ class Selection {
157
157
  // Reset for the next drag
158
158
  this.originalRegion = this.originalRegion.transformedBoundingBox(this.transform);
159
159
  this.transform = math_1.Mat33.identity;
160
- // Make the commands undo-able, but only if the transform is non-empty.
161
- if (!fullTransform.eq(math_1.Mat33.identity)) {
162
- await this.editor.dispatch(new Selection.ApplyTransformationCommand(this, selectedElems, fullTransform));
163
- }
160
+ // Make the commands undo-able.
161
+ // Don't check for non-empty transforms because this breaks changing the
162
+ // z-index of the just-transformed commands.
163
+ //
164
+ // TODO: Check whether the selectedElems are already all toplevel.
165
+ await this.editor.dispatch(new _a.ApplyTransformationCommand(this, selectedElems, fullTransform));
164
166
  // Clear renderings of any in-progress transformations
165
167
  const wetInkRenderer = this.editor.display.getWetInkRenderer();
166
168
  wetInkRenderer.clear();
@@ -410,7 +412,7 @@ class Selection {
410
412
  if (wasTransforming) {
411
413
  // Don't update the selection's focus when redoing/undoing
412
414
  const selectionToUpdate = null;
413
- tmpApplyCommand = new Selection.ApplyTransformationCommand(selectionToUpdate, this.selectedElems, this.transform);
415
+ tmpApplyCommand = new _a.ApplyTransformationCommand(selectionToUpdate, this.selectedElems, this.transform);
414
416
  // Transform to ensure that the duplicates are in the correct location
415
417
  await tmpApplyCommand.apply(this.editor);
416
418
  // Show items again
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
- number: '1.6.0',
4
+ number: '1.6.1',
5
5
  };
@@ -182,11 +182,11 @@ class EditorImage {
182
182
  * @see {@link Display.flatten}
183
183
  */
184
184
  static addElement(elem, applyByFlattening = false) {
185
- return new EditorImage.AddElementCommand(elem, applyByFlattening);
185
+ return new _a.AddElementCommand(elem, applyByFlattening);
186
186
  }
187
187
  /** @see EditorImage.addElement */
188
188
  addElement(elem, applyByFlattening) {
189
- return EditorImage.addElement(elem, applyByFlattening);
189
+ return _a.addElement(elem, applyByFlattening);
190
190
  }
191
191
  /**
192
192
  * @returns a `Viewport` for rendering the image when importing/exporting.
@@ -205,7 +205,7 @@ class EditorImage {
205
205
  * autoresize (if it was previously enabled).
206
206
  */
207
207
  setImportExportRect(imageRect) {
208
- return EditorImage.SetImportExportRectCommand.of(this, imageRect, false);
208
+ return _a.SetImportExportRectCommand.of(this, imageRect, false);
209
209
  }
210
210
  getAutoresizeEnabled() {
211
211
  return this.shouldAutoresizeExportViewport;
@@ -216,7 +216,7 @@ class EditorImage {
216
216
  return Command.empty;
217
217
  }
218
218
  const newBBox = this.root.getBBox();
219
- return EditorImage.SetImportExportRectCommand.of(this, newBBox, autoresize);
219
+ return _a.SetImportExportRectCommand.of(this, newBBox, autoresize);
220
220
  }
221
221
  setAutoresizeEnabledDirectly(shouldAutoresize) {
222
222
  if (shouldAutoresize !== this.shouldAutoresizeExportViewport) {
@@ -322,7 +322,7 @@ EditorImage.AddElementCommand = (_b = class extends SerializableCommand {
322
322
  const id = json.elemData.id;
323
323
  const foundElem = editor.image.lookupElement(id);
324
324
  const elem = foundElem ?? AbstractComponent.deserialize(json.elemData);
325
- const result = new EditorImage.AddElementCommand(elem);
325
+ const result = new _a.AddElementCommand(elem);
326
326
  result.serializedElem = json.elemData;
327
327
  return result;
328
328
  });
@@ -331,7 +331,7 @@ EditorImage.AddElementCommand = (_b = class extends SerializableCommand {
331
331
  // Handles resizing the background import/export region of the image.
332
332
  EditorImage.SetImportExportRectCommand = (_c = class extends SerializableCommand {
333
333
  constructor(originalSize, originalTransform, originalAutoresize, newExportRect, newAutoresize) {
334
- super(EditorImage.SetImportExportRectCommand.commandId);
334
+ super(_a.SetImportExportRectCommand.commandId);
335
335
  this.originalSize = originalSize;
336
336
  this.originalTransform = originalTransform;
337
337
  this.originalAutoresize = originalAutoresize;
@@ -344,7 +344,7 @@ EditorImage.SetImportExportRectCommand = (_c = class extends SerializableCommand
344
344
  const originalSize = importExportViewport.visibleRect.size;
345
345
  const originalTransform = importExportViewport.canvasToScreenTransform;
346
346
  const originalAutoresize = image.getAutoresizeEnabled();
347
- return new EditorImage.SetImportExportRectCommand(originalSize, originalTransform, originalAutoresize, newExportRect, newAutoresize);
347
+ return new _a.SetImportExportRectCommand(originalSize, originalTransform, originalAutoresize, newExportRect, newAutoresize);
348
348
  }
349
349
  apply(editor) {
350
350
  editor.image.setAutoresizeEnabledDirectly(this.newAutoresize);
@@ -405,7 +405,7 @@ EditorImage.SetImportExportRectCommand = (_c = class extends SerializableCommand
405
405
  const finalRect = new Rect2(json.newRegion.x, json.newRegion.y, json.newRegion.w, json.newRegion.h);
406
406
  const autoresize = json.autoresize ?? false;
407
407
  const originalAutoresize = json.originalAutoresize ?? false;
408
- return new EditorImage.SetImportExportRectCommand(originalSize, originalTransform, originalAutoresize, finalRect, autoresize);
408
+ return new _a.SetImportExportRectCommand(originalSize, originalTransform, originalAutoresize, finalRect, autoresize);
409
409
  });
410
410
  })(),
411
411
  _c);
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _BaseWidget_instances, _BaseWidget_hasDropdown, _BaseWidget_disabledDueToReadOnlyEditor, _BaseWidget_tags, _BaseWidget_removeEditorListeners, _BaseWidget_addEditorListeners;
12
+ var _BaseWidget_instances, _a, _BaseWidget_hasDropdown, _BaseWidget_disabledDueToReadOnlyEditor, _BaseWidget_tags, _BaseWidget_removeEditorListeners, _BaseWidget_addEditorListeners;
13
13
  import ToolbarShortcutHandler from '../../tools/ToolbarShortcutHandler.mjs';
14
14
  import { keyPressEventFromHTMLEvent, keyUpEventFromHTMLEvent } from '../../inputEvents.mjs';
15
15
  import { toolbarCSSPrefix } from '../constants.mjs';
@@ -422,13 +422,13 @@ class BaseWidget {
422
422
  }
423
423
  }
424
424
  }
425
- _BaseWidget_hasDropdown = new WeakMap(), _BaseWidget_disabledDueToReadOnlyEditor = new WeakMap(), _BaseWidget_tags = new WeakMap(), _BaseWidget_removeEditorListeners = new WeakMap(), _BaseWidget_instances = new WeakSet(), _BaseWidget_addEditorListeners = function _BaseWidget_addEditorListeners() {
425
+ _a = BaseWidget, _BaseWidget_hasDropdown = new WeakMap(), _BaseWidget_disabledDueToReadOnlyEditor = new WeakMap(), _BaseWidget_tags = new WeakMap(), _BaseWidget_removeEditorListeners = new WeakMap(), _BaseWidget_instances = new WeakSet(), _BaseWidget_addEditorListeners = function _BaseWidget_addEditorListeners() {
426
426
  __classPrivateFieldGet(this, _BaseWidget_removeEditorListeners, "f")?.call(this);
427
427
  const toolbarShortcutHandlers = this.editor.toolController.getMatchingTools(ToolbarShortcutHandler);
428
428
  let removeKeyPressListener = null;
429
429
  // If the onKeyPress function has been extended and the editor is configured to send keypress events to
430
430
  // toolbar widgets,
431
- if (toolbarShortcutHandlers.length > 0 && this.onKeyPress !== BaseWidget.prototype.onKeyPress) {
431
+ if (toolbarShortcutHandlers.length > 0 && this.onKeyPress !== _a.prototype.onKeyPress) {
432
432
  const keyPressListener = (event) => this.onKeyPress(event);
433
433
  const handler = toolbarShortcutHandlers[0];
434
434
  handler.registerListener(keyPressListener);
@@ -129,10 +129,12 @@ class Selection {
129
129
  // Reset for the next drag
130
130
  this.originalRegion = this.originalRegion.transformedBoundingBox(this.transform);
131
131
  this.transform = Mat33.identity;
132
- // Make the commands undo-able, but only if the transform is non-empty.
133
- if (!fullTransform.eq(Mat33.identity)) {
134
- await this.editor.dispatch(new Selection.ApplyTransformationCommand(this, selectedElems, fullTransform));
135
- }
132
+ // Make the commands undo-able.
133
+ // Don't check for non-empty transforms because this breaks changing the
134
+ // z-index of the just-transformed commands.
135
+ //
136
+ // TODO: Check whether the selectedElems are already all toplevel.
137
+ await this.editor.dispatch(new _a.ApplyTransformationCommand(this, selectedElems, fullTransform));
136
138
  // Clear renderings of any in-progress transformations
137
139
  const wetInkRenderer = this.editor.display.getWetInkRenderer();
138
140
  wetInkRenderer.clear();
@@ -382,7 +384,7 @@ class Selection {
382
384
  if (wasTransforming) {
383
385
  // Don't update the selection's focus when redoing/undoing
384
386
  const selectionToUpdate = null;
385
- tmpApplyCommand = new Selection.ApplyTransformationCommand(selectionToUpdate, this.selectedElems, this.transform);
387
+ tmpApplyCommand = new _a.ApplyTransformationCommand(selectionToUpdate, this.selectedElems, this.transform);
386
388
  // Transform to ensure that the duplicates are in the correct location
387
389
  await tmpApplyCommand.apply(this.editor);
388
390
  // Show items again
@@ -1,3 +1,3 @@
1
1
  export default {
2
- number: '1.6.0',
2
+ number: '1.6.1',
3
3
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "js-draw",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "Draw pictures using a pen, touchscreen, or mouse! JS-draw is a drawing library for JavaScript and TypeScript. ",
5
5
  "types": "./dist/mjs/lib.d.ts",
6
6
  "main": "./dist/cjs/lib.js",
@@ -64,13 +64,13 @@
64
64
  "postpack": "ts-node tools/copyREADME.ts revert"
65
65
  },
66
66
  "dependencies": {
67
- "@js-draw/math": "^1.6.0",
67
+ "@js-draw/math": "^1.6.1",
68
68
  "@melloware/coloris": "0.21.0"
69
69
  },
70
70
  "devDependencies": {
71
- "@js-draw/build-tool": "^1.4.0",
72
- "@types/jest": "29.5.3",
73
- "@types/jsdom": "21.1.1"
71
+ "@js-draw/build-tool": "^1.6.1",
72
+ "@types/jest": "29.5.5",
73
+ "@types/jsdom": "21.1.3"
74
74
  },
75
75
  "bugs": {
76
76
  "url": "https://github.com/personalizedrefrigerator/js-draw/issues"
@@ -86,5 +86,5 @@
86
86
  "freehand",
87
87
  "svg"
88
88
  ],
89
- "gitHead": "c2278b6819ca0e464e4e7d2c3c2045e3394b1fe8"
89
+ "gitHead": "00f1a0ab34de40bec100d5c18657f947895bfaed"
90
90
  }