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
@@ -264,16 +264,17 @@ class KritzelTextTool extends KritzelBaseTool {
264
264
  const path = event.composedPath().slice(1);
265
265
  const objectElement = path.find(element => element.classList && element.classList.contains('object'));
266
266
  const object = this._core.findObjectById(objectElement?.id);
267
- if (this._core.store.state.activeText === null && object && object instanceof KritzelText) {
267
+ if (object instanceof KritzelText) {
268
268
  this._core.store.setState('activeText', object);
269
269
  object.focus();
270
270
  return;
271
271
  }
272
272
  if (this._core.store.state.activeText !== null && object instanceof KritzelText) {
273
+ this._core.store.setState('activeText', object);
273
274
  object.focus();
274
275
  return;
275
276
  }
276
- if (this._core.store.state.activeText !== null) {
277
+ if (this._core.store.state.activeText !== null && object instanceof KritzelText === false) {
277
278
  this._core.resetActiveText();
278
279
  this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
279
280
  return;
@@ -296,16 +297,17 @@ class KritzelTextTool extends KritzelBaseTool {
296
297
  const path = event.composedPath().slice(1);
297
298
  const objectElement = path.find(element => element.classList && element.classList.contains('object'));
298
299
  const object = this._core.findObjectById(objectElement?.id);
299
- if (this._core.store.state.activeText === null && object && object instanceof KritzelText) {
300
+ if (object instanceof KritzelText) {
300
301
  this._core.store.setState('activeText', object);
301
302
  object.focus();
302
303
  return;
303
304
  }
304
305
  if (this._core.store.state.activeText !== null && object instanceof KritzelText) {
306
+ this._core.store.setState('activeText', object);
305
307
  object.focus();
306
308
  return;
307
309
  }
308
- if (this._core.store.state.activeText !== null) {
310
+ if (this._core.store.state.activeText !== null && object instanceof KritzelText === false) {
309
311
  this._core.resetActiveText();
310
312
  this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
311
313
  return;
@@ -761,13 +763,12 @@ class KritzelText extends KritzelBaseObject {
761
763
  }
762
764
  }
763
765
  edit() {
766
+ KritzelKeyboardHelper.disableInteractiveWidget();
764
767
  this._core.store.setState('activeTool', KritzelToolRegistry.getTool('text'));
765
- this._core.store.setState('selectionGroup', null);
766
- this._core.store.setState('selectionBox', null);
767
768
  this._core.store.setState('activeText', this);
768
- setTimeout(() => {
769
- this.focus();
770
- }, 300);
769
+ this._core.clearSelection();
770
+ this.focus();
771
+ KritzelKeyboardHelper.enableInteractiveWidget();
771
772
  }
772
773
  }
773
774
 
@@ -1534,7 +1535,6 @@ class KritzelMoveHandler extends KritzelBaseHandler {
1534
1535
  this._core.store.setState('isDragging', true);
1535
1536
  this.endX = x;
1536
1537
  this.endY = y;
1537
- this.hasMoved = true;
1538
1538
  const moveDeltaX = Math.abs(x - this.startX);
1539
1539
  const moveDeltaY = Math.abs(y - this.startY);
1540
1540
  const moveThreshold = 5;
@@ -1543,6 +1543,7 @@ class KritzelMoveHandler extends KritzelBaseHandler {
1543
1543
  this._core.store.state.selectionGroup.move(x, y, this.dragStartX, this.dragStartY);
1544
1544
  this.dragStartX = x;
1545
1545
  this.dragStartY = y;
1546
+ this.hasMoved = true;
1546
1547
  }
1547
1548
  }
1548
1549
  }
@@ -1553,6 +1554,7 @@ class KritzelMoveHandler extends KritzelBaseHandler {
1553
1554
  this._core.store.setState('isDragging', false);
1554
1555
  if (this.hasMoved) {
1555
1556
  this._core.history.executeCommand(new MoveSelectionGroupCommand(this._core, this, this.endX, this.endY, this.startX, this.startY, true));
1557
+ this._core.store.setState('hasObjectsChanged', true);
1556
1558
  }
1557
1559
  this.reset();
1558
1560
  }
@@ -1562,6 +1564,7 @@ class KritzelMoveHandler extends KritzelBaseHandler {
1562
1564
  this._core.store.setState('isDragging', false);
1563
1565
  if (this.hasMoved) {
1564
1566
  this._core.history.executeCommand(new MoveSelectionGroupCommand(this._core, this, this.endX, this.endY, this.startX, this.startY, true));
1567
+ this._core.store.setState('hasObjectsChanged', true);
1565
1568
  }
1566
1569
  this.reset();
1567
1570
  }
@@ -1740,6 +1743,7 @@ class KritzelResizeHandler extends KritzelBaseHandler {
1740
1743
  if (this._core.store.state.isResizing) {
1741
1744
  this._core.history.executeCommand(new ResizeSelectionGroupCommand(this._core, this, structuredClone(this.initialSize), structuredClone(this.newSize)));
1742
1745
  this._core.store.setState('isResizing', false);
1746
+ this._core.store.setState('hasObjectsChanged', true);
1743
1747
  this.reset();
1744
1748
  }
1745
1749
  }
@@ -1747,6 +1751,7 @@ class KritzelResizeHandler extends KritzelBaseHandler {
1747
1751
  if (this._core.store.state.isResizing) {
1748
1752
  this._core.history.executeCommand(new ResizeSelectionGroupCommand(this._core, this, structuredClone(this.initialSize), structuredClone(this.newSize)));
1749
1753
  this._core.store.setState('isResizing', false);
1754
+ this._core.store.setState('hasObjectsChanged', true);
1750
1755
  this.reset();
1751
1756
  clearTimeout(this._core.store.state.longTouchTimeout);
1752
1757
  }
@@ -1874,6 +1879,7 @@ class KritzelRotationHandler extends KritzelBaseHandler {
1874
1879
  if (this._core.store.state.isRotating) {
1875
1880
  this._core.history.executeCommand(new RotateSelectionGroupCommand(this._core, this, this.rotation, this.initialSelectionGroupRotation));
1876
1881
  this._core.store.setState('isRotating', false);
1882
+ this._core.store.setState('hasObjectsChanged', true);
1877
1883
  this.reset();
1878
1884
  }
1879
1885
  }
@@ -1881,6 +1887,7 @@ class KritzelRotationHandler extends KritzelBaseHandler {
1881
1887
  if (this._core.store.state.isRotating) {
1882
1888
  this._core.history.executeCommand(new RotateSelectionGroupCommand(this._core, this, this.rotation, this.initialSelectionGroupRotation));
1883
1889
  this._core.store.setState('isRotating', false);
1890
+ this._core.store.setState('hasObjectsChanged', true);
1884
1891
  this.reset();
1885
1892
  clearTimeout(this._core.store.state.longTouchTimeout);
1886
1893
  }
@@ -1979,23 +1986,35 @@ class KritzelSelectionHandler extends KritzelBaseHandler {
1979
1986
  }
1980
1987
  handlePointerUp(event) {
1981
1988
  if (event.pointerType === 'mouse') {
1982
- if (KritzelEventHelper.isLeftClick(event) && this._core.store.state.isSelecting) {
1983
- if (this.isSelectionClick) {
1984
- const x = this._core.store.state.pointerX;
1985
- const y = this._core.store.state.pointerY;
1986
- const selectedObject = this._core.getObjectsFromPointerEvent(event, '.object').find(obj => obj.hitTest(x, y));
1987
- this.addObjectToSelectionGroup(selectedObject);
1988
- this.removeSelectionBox();
1989
+ if (KritzelEventHelper.isLeftClick(event)) {
1990
+ const hasObjectsMoved = this._core.store.state.hasObjectsChanged;
1991
+ if (this._core.store.state.selectionGroup?.objects.length === 1 && hasObjectsMoved === false) {
1992
+ this._core.store.state.selectionGroup.objects[0].edit();
1989
1993
  }
1990
- if (this.isSelectionDrag) {
1991
- this.updateMouseSelection(event);
1992
- this.addSelectedObjectsToSelectionGroup();
1993
- this.removeSelectionBox();
1994
+ this._core.store.setState('hasObjectsChanged', false);
1995
+ if (this._core.store.state.isSelecting) {
1996
+ if (this.isSelectionClick) {
1997
+ const x = this._core.store.state.pointerX;
1998
+ const y = this._core.store.state.pointerY;
1999
+ const selectedObject = this._core.getObjectsFromPointerEvent(event, '.object').find(obj => obj.hitTest(x, y));
2000
+ this.addObjectToSelectionGroup(selectedObject);
2001
+ this.removeSelectionBox();
2002
+ }
2003
+ if (this.isSelectionDrag) {
2004
+ this.updateMouseSelection(event);
2005
+ this.addSelectedObjectsToSelectionGroup();
2006
+ this.removeSelectionBox();
2007
+ }
1994
2008
  }
1995
2009
  }
1996
2010
  }
1997
2011
  if (event.pointerType === 'touch') {
1998
2012
  clearTimeout(this.touchStartTimeout);
2013
+ const hasObjectsMoved = this._core.store.state.hasObjectsChanged;
2014
+ if (this._core.store.state.selectionGroup?.objects.length === 1 && hasObjectsMoved === false) {
2015
+ this._core.store.state.selectionGroup.objects[0].edit();
2016
+ }
2017
+ this._core.store.setState('hasObjectsChanged', false);
1999
2018
  if (this._core.store.state.isSelecting) {
2000
2019
  if (this.isSelectionClick) {
2001
2020
  const x = this._core.store.state.pointerX;
@@ -2099,12 +2118,12 @@ class KritzelSelectionHandler extends KritzelBaseHandler {
2099
2118
  if (!object) {
2100
2119
  return;
2101
2120
  }
2121
+ object.isSelected = false;
2102
2122
  const selectionGroup = KritzelSelectionGroup.create(this._core);
2103
2123
  selectionGroup.addOrRemove(object);
2104
2124
  selectionGroup.isSelected = true;
2105
2125
  selectionGroup.rotation = object.rotation;
2106
- this._core.store.setState('selectionGroup', selectionGroup);
2107
- this._core.history.executeCommand(new AddSelectionGroupCommand(this._core, this, this._core.store.state.selectionGroup));
2126
+ this._core.history.executeCommand(new AddSelectionGroupCommand(this._core, this, selectionGroup));
2108
2127
  }
2109
2128
  addSelectedObjectsToSelectionGroup() {
2110
2129
  const selectedObjects = this._core.store.selectedObjects;
@@ -2113,16 +2132,15 @@ class KritzelSelectionHandler extends KritzelBaseHandler {
2113
2132
  }
2114
2133
  this._core.store.setState('selectionGroup', KritzelSelectionGroup.create(this._core));
2115
2134
  selectedObjects.forEach(o => {
2116
- o.isSelected = false;
2117
2135
  this._core.store.state.selectionGroup.addOrRemove(o);
2136
+ o.isSelected = false;
2118
2137
  });
2119
2138
  const selectionGroup = this._core.store.state.selectionGroup;
2120
2139
  selectionGroup.isSelected = true;
2121
2140
  if (selectionGroup.length === 1) {
2122
2141
  selectionGroup.rotation = selectionGroup.objects[0].rotation;
2123
2142
  }
2124
- this._core.store.setState('selectionGroup', selectionGroup);
2125
- this._core.history.executeCommand(new AddSelectionGroupCommand(this._core, this, this._core.store.state.selectionGroup));
2143
+ this._core.history.executeCommand(new AddSelectionGroupCommand(this._core, this, selectionGroup));
2126
2144
  }
2127
2145
  }
2128
2146
 
@@ -2239,9 +2257,9 @@ class KritzelSelectionTool extends KritzelBaseTool {
2239
2257
  }
2240
2258
  if (event.pointerType === 'mouse') {
2241
2259
  this.moveHandler.handlePointerUp(event);
2242
- this.selectionHandler.handlePointerUp(event);
2243
2260
  this.resizeHandler.handlePointerUp(event);
2244
2261
  this.rotationHandler.handlePointerUp(event);
2262
+ this.selectionHandler.handlePointerUp(event);
2245
2263
  this._core.rerender();
2246
2264
  }
2247
2265
  if (event.pointerType === 'touch') {
@@ -2768,6 +2786,6 @@ exports.ObjectHelper = ObjectHelper;
2768
2786
  exports.RemoveObjectCommand = RemoveObjectCommand;
2769
2787
  exports.RemoveSelectionGroupCommand = RemoveSelectionGroupCommand;
2770
2788
  exports.UpdateObjectCommand = UpdateObjectCommand;
2771
- //# sourceMappingURL=index-CZcU_Jdl.js.map
2789
+ //# sourceMappingURL=index-DgZMn9B_.js.map
2772
2790
 
2773
- //# sourceMappingURL=index-CZcU_Jdl.js.map
2791
+ //# sourceMappingURL=index-DgZMn9B_.js.map