kritzel-stencil 0.0.137 → 0.0.139
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/dist/cjs/{index-CZcU_Jdl.js → index-DgZMn9B_.js} +47 -29
- package/dist/cjs/index-DgZMn9B_.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-color_22.cjs.entry.js +10 -18
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/core/core.class.js +1 -0
- package/dist/collection/classes/core/core.class.js.map +1 -1
- package/dist/collection/classes/handlers/move.handler.js +3 -1
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/handlers/resize.handler.js +2 -0
- package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
- package/dist/collection/classes/handlers/rotation.handler.js +2 -0
- package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +27 -16
- package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
- package/dist/collection/classes/objects/text.class.js +5 -5
- package/dist/collection/classes/objects/text.class.js.map +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js +1 -1
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/classes/tools/text-tool.class.js +6 -4
- package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +2 -15
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +12 -3
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/configs/default-engine-state.js +1 -0
- package/dist/collection/configs/default-engine-state.js.map +1 -1
- package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
- package/dist/components/index.js +2 -2
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +4 -17
- package/dist/components/kritzel-editor.js.map +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/{p-obTL5Wl7.js → p-BbGgijCS.js} +12 -11
- package/dist/components/p-BbGgijCS.js.map +1 -0
- package/dist/components/{p-RKMcsakE.js → p-CHdJi6b4.js} +3 -3
- package/dist/components/{p-RKMcsakE.js.map → p-CHdJi6b4.js.map} +1 -1
- package/dist/components/{p-CZqusfWQ.js → p-KudVTtHk.js} +47 -25
- package/dist/components/p-KudVTtHk.js.map +1 -0
- package/dist/esm/{index-CeerFGiM.js → index-CxieEK_G.js} +47 -29
- package/dist/esm/index-CxieEK_G.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/kritzel-color_22.entry.js +10 -18
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-CxieEK_G.js +2 -0
- package/dist/stencil/p-CxieEK_G.js.map +1 -0
- package/dist/stencil/p-ab074e87.entry.js +2 -0
- package/dist/stencil/p-ab074e87.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +1 -0
- package/dist/types/components.d.ts +2 -2
- package/dist/types/interfaces/engine-state.interface.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/index-CZcU_Jdl.js.map +0 -1
- package/dist/components/p-CZqusfWQ.js.map +0 -1
- package/dist/components/p-obTL5Wl7.js.map +0 -1
- package/dist/esm/index-CeerFGiM.js.map +0 -1
- package/dist/stencil/p-CeerFGiM.js +0 -2
- package/dist/stencil/p-CeerFGiM.js.map +0 -1
- package/dist/stencil/p-c77cc675.entry.js +0 -2
- package/dist/stencil/p-c77cc675.entry.js.map +0 -1
|
@@ -262,16 +262,17 @@ class KritzelTextTool extends KritzelBaseTool {
|
|
|
262
262
|
const path = event.composedPath().slice(1);
|
|
263
263
|
const objectElement = path.find(element => element.classList && element.classList.contains('object'));
|
|
264
264
|
const object = this._core.findObjectById(objectElement?.id);
|
|
265
|
-
if (
|
|
265
|
+
if (object instanceof KritzelText) {
|
|
266
266
|
this._core.store.setState('activeText', object);
|
|
267
267
|
object.focus();
|
|
268
268
|
return;
|
|
269
269
|
}
|
|
270
270
|
if (this._core.store.state.activeText !== null && object instanceof KritzelText) {
|
|
271
|
+
this._core.store.setState('activeText', object);
|
|
271
272
|
object.focus();
|
|
272
273
|
return;
|
|
273
274
|
}
|
|
274
|
-
if (this._core.store.state.activeText !== null) {
|
|
275
|
+
if (this._core.store.state.activeText !== null && object instanceof KritzelText === false) {
|
|
275
276
|
this._core.resetActiveText();
|
|
276
277
|
this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
|
|
277
278
|
return;
|
|
@@ -294,16 +295,17 @@ class KritzelTextTool extends KritzelBaseTool {
|
|
|
294
295
|
const path = event.composedPath().slice(1);
|
|
295
296
|
const objectElement = path.find(element => element.classList && element.classList.contains('object'));
|
|
296
297
|
const object = this._core.findObjectById(objectElement?.id);
|
|
297
|
-
if (
|
|
298
|
+
if (object instanceof KritzelText) {
|
|
298
299
|
this._core.store.setState('activeText', object);
|
|
299
300
|
object.focus();
|
|
300
301
|
return;
|
|
301
302
|
}
|
|
302
303
|
if (this._core.store.state.activeText !== null && object instanceof KritzelText) {
|
|
304
|
+
this._core.store.setState('activeText', object);
|
|
303
305
|
object.focus();
|
|
304
306
|
return;
|
|
305
307
|
}
|
|
306
|
-
if (this._core.store.state.activeText !== null) {
|
|
308
|
+
if (this._core.store.state.activeText !== null && object instanceof KritzelText === false) {
|
|
307
309
|
this._core.resetActiveText();
|
|
308
310
|
this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
|
|
309
311
|
return;
|
|
@@ -759,13 +761,12 @@ class KritzelText extends KritzelBaseObject {
|
|
|
759
761
|
}
|
|
760
762
|
}
|
|
761
763
|
edit() {
|
|
764
|
+
KritzelKeyboardHelper.disableInteractiveWidget();
|
|
762
765
|
this._core.store.setState('activeTool', KritzelToolRegistry.getTool('text'));
|
|
763
|
-
this._core.store.setState('selectionGroup', null);
|
|
764
|
-
this._core.store.setState('selectionBox', null);
|
|
765
766
|
this._core.store.setState('activeText', this);
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
767
|
+
this._core.clearSelection();
|
|
768
|
+
this.focus();
|
|
769
|
+
KritzelKeyboardHelper.enableInteractiveWidget();
|
|
769
770
|
}
|
|
770
771
|
}
|
|
771
772
|
|
|
@@ -1532,7 +1533,6 @@ class KritzelMoveHandler extends KritzelBaseHandler {
|
|
|
1532
1533
|
this._core.store.setState('isDragging', true);
|
|
1533
1534
|
this.endX = x;
|
|
1534
1535
|
this.endY = y;
|
|
1535
|
-
this.hasMoved = true;
|
|
1536
1536
|
const moveDeltaX = Math.abs(x - this.startX);
|
|
1537
1537
|
const moveDeltaY = Math.abs(y - this.startY);
|
|
1538
1538
|
const moveThreshold = 5;
|
|
@@ -1541,6 +1541,7 @@ class KritzelMoveHandler extends KritzelBaseHandler {
|
|
|
1541
1541
|
this._core.store.state.selectionGroup.move(x, y, this.dragStartX, this.dragStartY);
|
|
1542
1542
|
this.dragStartX = x;
|
|
1543
1543
|
this.dragStartY = y;
|
|
1544
|
+
this.hasMoved = true;
|
|
1544
1545
|
}
|
|
1545
1546
|
}
|
|
1546
1547
|
}
|
|
@@ -1551,6 +1552,7 @@ class KritzelMoveHandler extends KritzelBaseHandler {
|
|
|
1551
1552
|
this._core.store.setState('isDragging', false);
|
|
1552
1553
|
if (this.hasMoved) {
|
|
1553
1554
|
this._core.history.executeCommand(new MoveSelectionGroupCommand(this._core, this, this.endX, this.endY, this.startX, this.startY, true));
|
|
1555
|
+
this._core.store.setState('hasObjectsChanged', true);
|
|
1554
1556
|
}
|
|
1555
1557
|
this.reset();
|
|
1556
1558
|
}
|
|
@@ -1560,6 +1562,7 @@ class KritzelMoveHandler extends KritzelBaseHandler {
|
|
|
1560
1562
|
this._core.store.setState('isDragging', false);
|
|
1561
1563
|
if (this.hasMoved) {
|
|
1562
1564
|
this._core.history.executeCommand(new MoveSelectionGroupCommand(this._core, this, this.endX, this.endY, this.startX, this.startY, true));
|
|
1565
|
+
this._core.store.setState('hasObjectsChanged', true);
|
|
1563
1566
|
}
|
|
1564
1567
|
this.reset();
|
|
1565
1568
|
}
|
|
@@ -1738,6 +1741,7 @@ class KritzelResizeHandler extends KritzelBaseHandler {
|
|
|
1738
1741
|
if (this._core.store.state.isResizing) {
|
|
1739
1742
|
this._core.history.executeCommand(new ResizeSelectionGroupCommand(this._core, this, structuredClone(this.initialSize), structuredClone(this.newSize)));
|
|
1740
1743
|
this._core.store.setState('isResizing', false);
|
|
1744
|
+
this._core.store.setState('hasObjectsChanged', true);
|
|
1741
1745
|
this.reset();
|
|
1742
1746
|
}
|
|
1743
1747
|
}
|
|
@@ -1745,6 +1749,7 @@ class KritzelResizeHandler extends KritzelBaseHandler {
|
|
|
1745
1749
|
if (this._core.store.state.isResizing) {
|
|
1746
1750
|
this._core.history.executeCommand(new ResizeSelectionGroupCommand(this._core, this, structuredClone(this.initialSize), structuredClone(this.newSize)));
|
|
1747
1751
|
this._core.store.setState('isResizing', false);
|
|
1752
|
+
this._core.store.setState('hasObjectsChanged', true);
|
|
1748
1753
|
this.reset();
|
|
1749
1754
|
clearTimeout(this._core.store.state.longTouchTimeout);
|
|
1750
1755
|
}
|
|
@@ -1872,6 +1877,7 @@ class KritzelRotationHandler extends KritzelBaseHandler {
|
|
|
1872
1877
|
if (this._core.store.state.isRotating) {
|
|
1873
1878
|
this._core.history.executeCommand(new RotateSelectionGroupCommand(this._core, this, this.rotation, this.initialSelectionGroupRotation));
|
|
1874
1879
|
this._core.store.setState('isRotating', false);
|
|
1880
|
+
this._core.store.setState('hasObjectsChanged', true);
|
|
1875
1881
|
this.reset();
|
|
1876
1882
|
}
|
|
1877
1883
|
}
|
|
@@ -1879,6 +1885,7 @@ class KritzelRotationHandler extends KritzelBaseHandler {
|
|
|
1879
1885
|
if (this._core.store.state.isRotating) {
|
|
1880
1886
|
this._core.history.executeCommand(new RotateSelectionGroupCommand(this._core, this, this.rotation, this.initialSelectionGroupRotation));
|
|
1881
1887
|
this._core.store.setState('isRotating', false);
|
|
1888
|
+
this._core.store.setState('hasObjectsChanged', true);
|
|
1882
1889
|
this.reset();
|
|
1883
1890
|
clearTimeout(this._core.store.state.longTouchTimeout);
|
|
1884
1891
|
}
|
|
@@ -1977,23 +1984,35 @@ class KritzelSelectionHandler extends KritzelBaseHandler {
|
|
|
1977
1984
|
}
|
|
1978
1985
|
handlePointerUp(event) {
|
|
1979
1986
|
if (event.pointerType === 'mouse') {
|
|
1980
|
-
if (KritzelEventHelper.isLeftClick(event)
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
const selectedObject = this._core.getObjectsFromPointerEvent(event, '.object').find(obj => obj.hitTest(x, y));
|
|
1985
|
-
this.addObjectToSelectionGroup(selectedObject);
|
|
1986
|
-
this.removeSelectionBox();
|
|
1987
|
+
if (KritzelEventHelper.isLeftClick(event)) {
|
|
1988
|
+
const hasObjectsMoved = this._core.store.state.hasObjectsChanged;
|
|
1989
|
+
if (this._core.store.state.selectionGroup?.objects.length === 1 && hasObjectsMoved === false) {
|
|
1990
|
+
this._core.store.state.selectionGroup.objects[0].edit();
|
|
1987
1991
|
}
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
this.
|
|
1991
|
-
|
|
1992
|
+
this._core.store.setState('hasObjectsChanged', false);
|
|
1993
|
+
if (this._core.store.state.isSelecting) {
|
|
1994
|
+
if (this.isSelectionClick) {
|
|
1995
|
+
const x = this._core.store.state.pointerX;
|
|
1996
|
+
const y = this._core.store.state.pointerY;
|
|
1997
|
+
const selectedObject = this._core.getObjectsFromPointerEvent(event, '.object').find(obj => obj.hitTest(x, y));
|
|
1998
|
+
this.addObjectToSelectionGroup(selectedObject);
|
|
1999
|
+
this.removeSelectionBox();
|
|
2000
|
+
}
|
|
2001
|
+
if (this.isSelectionDrag) {
|
|
2002
|
+
this.updateMouseSelection(event);
|
|
2003
|
+
this.addSelectedObjectsToSelectionGroup();
|
|
2004
|
+
this.removeSelectionBox();
|
|
2005
|
+
}
|
|
1992
2006
|
}
|
|
1993
2007
|
}
|
|
1994
2008
|
}
|
|
1995
2009
|
if (event.pointerType === 'touch') {
|
|
1996
2010
|
clearTimeout(this.touchStartTimeout);
|
|
2011
|
+
const hasObjectsMoved = this._core.store.state.hasObjectsChanged;
|
|
2012
|
+
if (this._core.store.state.selectionGroup?.objects.length === 1 && hasObjectsMoved === false) {
|
|
2013
|
+
this._core.store.state.selectionGroup.objects[0].edit();
|
|
2014
|
+
}
|
|
2015
|
+
this._core.store.setState('hasObjectsChanged', false);
|
|
1997
2016
|
if (this._core.store.state.isSelecting) {
|
|
1998
2017
|
if (this.isSelectionClick) {
|
|
1999
2018
|
const x = this._core.store.state.pointerX;
|
|
@@ -2097,12 +2116,12 @@ class KritzelSelectionHandler extends KritzelBaseHandler {
|
|
|
2097
2116
|
if (!object) {
|
|
2098
2117
|
return;
|
|
2099
2118
|
}
|
|
2119
|
+
object.isSelected = false;
|
|
2100
2120
|
const selectionGroup = KritzelSelectionGroup.create(this._core);
|
|
2101
2121
|
selectionGroup.addOrRemove(object);
|
|
2102
2122
|
selectionGroup.isSelected = true;
|
|
2103
2123
|
selectionGroup.rotation = object.rotation;
|
|
2104
|
-
this._core.
|
|
2105
|
-
this._core.history.executeCommand(new AddSelectionGroupCommand(this._core, this, this._core.store.state.selectionGroup));
|
|
2124
|
+
this._core.history.executeCommand(new AddSelectionGroupCommand(this._core, this, selectionGroup));
|
|
2106
2125
|
}
|
|
2107
2126
|
addSelectedObjectsToSelectionGroup() {
|
|
2108
2127
|
const selectedObjects = this._core.store.selectedObjects;
|
|
@@ -2111,16 +2130,15 @@ class KritzelSelectionHandler extends KritzelBaseHandler {
|
|
|
2111
2130
|
}
|
|
2112
2131
|
this._core.store.setState('selectionGroup', KritzelSelectionGroup.create(this._core));
|
|
2113
2132
|
selectedObjects.forEach(o => {
|
|
2114
|
-
o.isSelected = false;
|
|
2115
2133
|
this._core.store.state.selectionGroup.addOrRemove(o);
|
|
2134
|
+
o.isSelected = false;
|
|
2116
2135
|
});
|
|
2117
2136
|
const selectionGroup = this._core.store.state.selectionGroup;
|
|
2118
2137
|
selectionGroup.isSelected = true;
|
|
2119
2138
|
if (selectionGroup.length === 1) {
|
|
2120
2139
|
selectionGroup.rotation = selectionGroup.objects[0].rotation;
|
|
2121
2140
|
}
|
|
2122
|
-
this._core.
|
|
2123
|
-
this._core.history.executeCommand(new AddSelectionGroupCommand(this._core, this, this._core.store.state.selectionGroup));
|
|
2141
|
+
this._core.history.executeCommand(new AddSelectionGroupCommand(this._core, this, selectionGroup));
|
|
2124
2142
|
}
|
|
2125
2143
|
}
|
|
2126
2144
|
|
|
@@ -2237,9 +2255,9 @@ class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
2237
2255
|
}
|
|
2238
2256
|
if (event.pointerType === 'mouse') {
|
|
2239
2257
|
this.moveHandler.handlePointerUp(event);
|
|
2240
|
-
this.selectionHandler.handlePointerUp(event);
|
|
2241
2258
|
this.resizeHandler.handlePointerUp(event);
|
|
2242
2259
|
this.rotationHandler.handlePointerUp(event);
|
|
2260
|
+
this.selectionHandler.handlePointerUp(event);
|
|
2243
2261
|
this._core.rerender();
|
|
2244
2262
|
}
|
|
2245
2263
|
if (event.pointerType === 'touch') {
|
|
@@ -2740,6 +2758,6 @@ class KritzelImageTool extends KritzelBaseTool {
|
|
|
2740
2758
|
}
|
|
2741
2759
|
|
|
2742
2760
|
export { AddSelectionGroupCommand as A, BatchCommand as B, DEFAULT_BRUSH_CONFIG as D, KritzelBrushTool as K, ObjectHelper as O, RemoveSelectionGroupCommand as R, UpdateObjectCommand as U, KritzelTextTool as a, KritzelMouseButton as b, KritzelSelectionTool as c, KritzelEraserTool as d, DEFAULT_TEXT_CONFIG as e, KritzelImageTool as f, KritzelWorkspace as g, KritzelKeyboardHelper as h, KritzelEventHelper as i, KritzelBaseHandler as j, KritzelToolRegistry as k, KritzelSelectionGroup as l, KritzelBaseCommand as m, KrtizelSelectionBox as n, KritzelReviver as o, RemoveObjectCommand as p, AddObjectCommand as q, KritzelBaseTool as r, KritzelText as s, KritzelPath as t, KritzelImage as u };
|
|
2743
|
-
//# sourceMappingURL=index-
|
|
2761
|
+
//# sourceMappingURL=index-CxieEK_G.js.map
|
|
2744
2762
|
|
|
2745
|
-
//# sourceMappingURL=index-
|
|
2763
|
+
//# sourceMappingURL=index-CxieEK_G.js.map
|