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.
- package/README.md +4 -4
- package/dist/bundle.js +1 -1
- package/dist/cjs/image/EditorImage.js +8 -8
- package/dist/cjs/toolbar/widgets/BaseWidget.js +3 -3
- package/dist/cjs/tools/SelectionTool/Selection.js +7 -5
- package/dist/cjs/version.js +1 -1
- package/dist/mjs/image/EditorImage.mjs +8 -8
- package/dist/mjs/toolbar/widgets/BaseWidget.mjs +3 -3
- package/dist/mjs/tools/SelectionTool/Selection.mjs +7 -5
- package/dist/mjs/version.mjs +1 -1
- package/docs/img/readme-images/js-draw.png +0 -0
- package/package.json +6 -6
@@ -212,11 +212,11 @@ class EditorImage {
|
|
212
212
|
* @see {@link Display.flatten}
|
213
213
|
*/
|
214
214
|
static addElement(elem, applyByFlattening = false) {
|
215
|
-
return new
|
215
|
+
return new _a.AddElementCommand(elem, applyByFlattening);
|
216
216
|
}
|
217
217
|
/** @see EditorImage.addElement */
|
218
218
|
addElement(elem, applyByFlattening) {
|
219
|
-
return
|
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
|
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
|
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
|
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(
|
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
|
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
|
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 !==
|
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
|
161
|
-
|
162
|
-
|
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
|
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
|
package/dist/cjs/version.js
CHANGED
@@ -182,11 +182,11 @@ class EditorImage {
|
|
182
182
|
* @see {@link Display.flatten}
|
183
183
|
*/
|
184
184
|
static addElement(elem, applyByFlattening = false) {
|
185
|
-
return new
|
185
|
+
return new _a.AddElementCommand(elem, applyByFlattening);
|
186
186
|
}
|
187
187
|
/** @see EditorImage.addElement */
|
188
188
|
addElement(elem, applyByFlattening) {
|
189
|
-
return
|
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
|
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
|
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
|
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(
|
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
|
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
|
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 !==
|
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
|
133
|
-
|
134
|
-
|
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
|
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
|
package/dist/mjs/version.mjs
CHANGED
Binary file
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "js-draw",
|
3
|
-
"version": "1.6.
|
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.
|
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.
|
72
|
-
"@types/jest": "29.5.
|
73
|
-
"@types/jsdom": "21.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": "
|
89
|
+
"gitHead": "00f1a0ab34de40bec100d5c18657f947895bfaed"
|
90
90
|
}
|