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.
Files changed (64) hide show
  1. package/dist/cjs/{index-CZcU_Jdl.js → index-DgZMn9B_.js} +47 -29
  2. package/dist/cjs/index-DgZMn9B_.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/kritzel-color_22.cjs.entry.js +10 -18
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/stencil.cjs.js +1 -1
  7. package/dist/collection/classes/core/core.class.js +1 -0
  8. package/dist/collection/classes/core/core.class.js.map +1 -1
  9. package/dist/collection/classes/handlers/move.handler.js +3 -1
  10. package/dist/collection/classes/handlers/move.handler.js.map +1 -1
  11. package/dist/collection/classes/handlers/resize.handler.js +2 -0
  12. package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
  13. package/dist/collection/classes/handlers/rotation.handler.js +2 -0
  14. package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
  15. package/dist/collection/classes/handlers/selection.handler.js +27 -16
  16. package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
  17. package/dist/collection/classes/objects/text.class.js +5 -5
  18. package/dist/collection/classes/objects/text.class.js.map +1 -1
  19. package/dist/collection/classes/tools/selection-tool.class.js +1 -1
  20. package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
  21. package/dist/collection/classes/tools/text-tool.class.js +6 -4
  22. package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
  23. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +2 -15
  24. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
  25. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +12 -3
  26. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  27. package/dist/collection/configs/default-engine-state.js +1 -0
  28. package/dist/collection/configs/default-engine-state.js.map +1 -1
  29. package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
  30. package/dist/components/index.js +2 -2
  31. package/dist/components/kritzel-controls.js +1 -1
  32. package/dist/components/kritzel-editor.js +4 -17
  33. package/dist/components/kritzel-editor.js.map +1 -1
  34. package/dist/components/kritzel-engine.js +1 -1
  35. package/dist/components/{p-obTL5Wl7.js → p-BbGgijCS.js} +12 -11
  36. package/dist/components/p-BbGgijCS.js.map +1 -0
  37. package/dist/components/{p-RKMcsakE.js → p-CHdJi6b4.js} +3 -3
  38. package/dist/components/{p-RKMcsakE.js.map → p-CHdJi6b4.js.map} +1 -1
  39. package/dist/components/{p-CZqusfWQ.js → p-KudVTtHk.js} +47 -25
  40. package/dist/components/p-KudVTtHk.js.map +1 -0
  41. package/dist/esm/{index-CeerFGiM.js → index-CxieEK_G.js} +47 -29
  42. package/dist/esm/index-CxieEK_G.js.map +1 -0
  43. package/dist/esm/index.js +1 -1
  44. package/dist/esm/kritzel-color_22.entry.js +10 -18
  45. package/dist/esm/loader.js +1 -1
  46. package/dist/esm/stencil.js +1 -1
  47. package/dist/stencil/index.esm.js +1 -1
  48. package/dist/stencil/p-CxieEK_G.js +2 -0
  49. package/dist/stencil/p-CxieEK_G.js.map +1 -0
  50. package/dist/stencil/p-ab074e87.entry.js +2 -0
  51. package/dist/stencil/p-ab074e87.entry.js.map +1 -0
  52. package/dist/stencil/stencil.esm.js +1 -1
  53. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +1 -0
  54. package/dist/types/components.d.ts +2 -2
  55. package/dist/types/interfaces/engine-state.interface.d.ts +1 -0
  56. package/package.json +1 -1
  57. package/dist/cjs/index-CZcU_Jdl.js.map +0 -1
  58. package/dist/components/p-CZqusfWQ.js.map +0 -1
  59. package/dist/components/p-obTL5Wl7.js.map +0 -1
  60. package/dist/esm/index-CeerFGiM.js.map +0 -1
  61. package/dist/stencil/p-CeerFGiM.js +0 -2
  62. package/dist/stencil/p-CeerFGiM.js.map +0 -1
  63. package/dist/stencil/p-c77cc675.entry.js +0 -2
  64. 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 (this._core.store.state.activeText === null && object && object instanceof KritzelText) {
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 (this._core.store.state.activeText === null && object && object instanceof KritzelText) {
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
- setTimeout(() => {
767
- this.focus();
768
- }, 300);
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) && this._core.store.state.isSelecting) {
1981
- if (this.isSelectionClick) {
1982
- const x = this._core.store.state.pointerX;
1983
- const y = this._core.store.state.pointerY;
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
- if (this.isSelectionDrag) {
1989
- this.updateMouseSelection(event);
1990
- this.addSelectedObjectsToSelectionGroup();
1991
- this.removeSelectionBox();
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.store.setState('selectionGroup', selectionGroup);
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.store.setState('selectionGroup', selectionGroup);
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-CeerFGiM.js.map
2761
+ //# sourceMappingURL=index-CxieEK_G.js.map
2744
2762
 
2745
- //# sourceMappingURL=index-CeerFGiM.js.map
2763
+ //# sourceMappingURL=index-CxieEK_G.js.map