kritzel-stencil 0.0.139 → 0.0.140

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 (159) hide show
  1. package/dist/cjs/{index-DgZMn9B_.js → index-Clh2g9JM.js} +162 -103
  2. package/dist/cjs/index-Clh2g9JM.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/kritzel-color_22.cjs.entry.js +182 -135
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/stencil.cjs.js +1 -1
  7. package/dist/collection/classes/commands/add-selection-group.command.js +4 -4
  8. package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
  9. package/dist/collection/classes/commands/move-selection-group.command.js +2 -2
  10. package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -1
  11. package/dist/collection/classes/commands/remove-selection-group.command.js +2 -2
  12. package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
  13. package/dist/collection/classes/commands/resize-selection-group.command.js +2 -2
  14. package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -1
  15. package/dist/collection/classes/commands/rotate-selection-group.command.js +2 -2
  16. package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
  17. package/dist/collection/classes/commands/update-viewport.command.js +6 -6
  18. package/dist/collection/classes/commands/update-viewport.command.js.map +1 -1
  19. package/dist/collection/classes/core/core.class.js +43 -27
  20. package/dist/collection/classes/core/core.class.js.map +1 -1
  21. package/dist/collection/classes/core/history.class.js +3 -3
  22. package/dist/collection/classes/core/history.class.js.map +1 -1
  23. package/dist/collection/classes/core/store.class.js +4 -1
  24. package/dist/collection/classes/core/store.class.js.map +1 -1
  25. package/dist/collection/classes/core/viewport.class.js +63 -44
  26. package/dist/collection/classes/core/viewport.class.js.map +1 -1
  27. package/dist/collection/classes/handlers/context-menu.handler.js +16 -8
  28. package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
  29. package/dist/collection/classes/handlers/key.handler.js +2 -2
  30. package/dist/collection/classes/handlers/key.handler.js.map +1 -1
  31. package/dist/collection/classes/handlers/move.handler.js +30 -8
  32. package/dist/collection/classes/handlers/move.handler.js.map +1 -1
  33. package/dist/collection/classes/handlers/resize.handler.js +6 -6
  34. package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
  35. package/dist/collection/classes/handlers/rotation.handler.js +6 -6
  36. package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
  37. package/dist/collection/classes/handlers/selection.handler.js +56 -28
  38. package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
  39. package/dist/collection/classes/objects/base-object.class.js +9 -3
  40. package/dist/collection/classes/objects/base-object.class.js.map +1 -1
  41. package/dist/collection/classes/objects/selection-group.class.js +3 -1
  42. package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
  43. package/dist/collection/classes/objects/text.class.js +5 -4
  44. package/dist/collection/classes/objects/text.class.js.map +1 -1
  45. package/dist/collection/classes/tools/brush-tool.class.js +16 -16
  46. package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
  47. package/dist/collection/classes/tools/eraser-tool.class.js +4 -4
  48. package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
  49. package/dist/collection/classes/tools/selection-tool.class.js +7 -7
  50. package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
  51. package/dist/collection/classes/tools/text-tool.class.js +6 -6
  52. package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
  53. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  54. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +1 -1
  55. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +18 -16
  56. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  57. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  58. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
  59. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  60. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +1 -1
  61. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  62. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -1
  63. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -2
  64. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
  65. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -1
  66. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  67. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +4 -4
  68. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +1 -1
  69. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
  70. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
  71. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +3 -3
  72. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  73. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +1 -1
  74. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
  75. package/dist/components/index.js +2 -2
  76. package/dist/components/kritzel-color-palette.js +1 -1
  77. package/dist/components/kritzel-color.js +1 -1
  78. package/dist/components/kritzel-context-menu.js +1 -1
  79. package/dist/components/kritzel-control-brush-config.js +1 -1
  80. package/dist/components/kritzel-control-text-config.js +1 -1
  81. package/dist/components/kritzel-controls.js +1 -1
  82. package/dist/components/kritzel-cursor-trail.js +1 -1
  83. package/dist/components/kritzel-editor.js +20 -20
  84. package/dist/components/kritzel-engine.js +1 -1
  85. package/dist/components/kritzel-font-family.js +1 -1
  86. package/dist/components/kritzel-font-size.js +1 -1
  87. package/dist/components/kritzel-font.js +1 -1
  88. package/dist/components/kritzel-menu-item.js +1 -1
  89. package/dist/components/kritzel-menu.js +1 -1
  90. package/dist/components/kritzel-portal.js +1 -1
  91. package/dist/components/kritzel-split-button.js +1 -1
  92. package/dist/components/kritzel-stroke-size.js +1 -1
  93. package/dist/components/kritzel-tooltip.js +1 -1
  94. package/dist/components/kritzel-utility-panel.js +1 -1
  95. package/dist/components/kritzel-workspace-manager.js +1 -1
  96. package/dist/components/{p-DjU7p3od.js → p-BFLXutiB.js} +9 -9
  97. package/dist/components/{p-DjU7p3od.js.map → p-BFLXutiB.js.map} +1 -1
  98. package/dist/components/{p-B7kZ1_RH.js → p-BJZudenH.js} +4 -4
  99. package/dist/components/{p-B7kZ1_RH.js.map → p-BJZudenH.js.map} +1 -1
  100. package/dist/components/{p-B7w19kIk.js → p-BLc8TzcU.js} +7 -7
  101. package/dist/components/{p-B7w19kIk.js.map → p-BLc8TzcU.js.map} +1 -1
  102. package/dist/components/{p-BlPlPpUy.js → p-BQJhnpY3.js} +3 -3
  103. package/dist/components/{p-BlPlPpUy.js.map → p-BQJhnpY3.js.map} +1 -1
  104. package/dist/components/{p-KudVTtHk.js → p-BV5iL9W6.js} +283 -184
  105. package/dist/components/p-BV5iL9W6.js.map +1 -0
  106. package/dist/components/{p-DOPuq6gn.js → p-C-ozL_Es.js} +3 -3
  107. package/dist/components/{p-DOPuq6gn.js.map → p-C-ozL_Es.js.map} +1 -1
  108. package/dist/components/{p-BbGgijCS.js → p-C5sTCwe3.js} +38 -31
  109. package/dist/components/p-C5sTCwe3.js.map +1 -0
  110. package/dist/components/{p-BM9IjvnD.js → p-C7UWRUAy.js} +3 -3
  111. package/dist/components/{p-BM9IjvnD.js.map → p-C7UWRUAy.js.map} +1 -1
  112. package/dist/components/{p-sreNwi0N.js → p-CE_sOMS2.js} +4 -4
  113. package/dist/components/{p-sreNwi0N.js.map → p-CE_sOMS2.js.map} +1 -1
  114. package/dist/components/{p-BPsQrpzN.js → p-D2eJXNMx.js} +6 -6
  115. package/dist/components/{p-BPsQrpzN.js.map → p-D2eJXNMx.js.map} +1 -1
  116. package/dist/components/{p-DCx3703u.js → p-D6FeQRzi.js} +3 -3
  117. package/dist/components/{p-DCx3703u.js.map → p-D6FeQRzi.js.map} +1 -1
  118. package/dist/components/{p-Ddlbt3Bj.js → p-DbmQ5DrU.js} +3 -3
  119. package/dist/components/{p-Ddlbt3Bj.js.map → p-DbmQ5DrU.js.map} +1 -1
  120. package/dist/components/{p-BehchtaT.js → p-Dh61W3GT.js} +6 -6
  121. package/dist/components/{p-BehchtaT.js.map → p-Dh61W3GT.js.map} +1 -1
  122. package/dist/components/{p-CsyM5q2M.js → p-IgPm36bH.js} +4 -4
  123. package/dist/components/{p-CsyM5q2M.js.map → p-IgPm36bH.js.map} +1 -1
  124. package/dist/components/{p-BgpsMYcw.js → p-JYqCBcMd.js} +6 -6
  125. package/dist/components/p-JYqCBcMd.js.map +1 -0
  126. package/dist/components/{p-CHdJi6b4.js → p-SKH0G2nM.js} +16 -16
  127. package/dist/components/{p-CHdJi6b4.js.map → p-SKH0G2nM.js.map} +1 -1
  128. package/dist/components/{p-Db3kxVe2.js → p-bC64Ng59.js} +3 -3
  129. package/dist/components/{p-Db3kxVe2.js.map → p-bC64Ng59.js.map} +1 -1
  130. package/dist/components/{p-BorT6g39.js → p-sHDCqDbD.js} +5 -5
  131. package/dist/components/{p-BorT6g39.js.map → p-sHDCqDbD.js.map} +1 -1
  132. package/dist/components/{p-0iJh9Z6m.js → p-vNnVlsJt.js} +4 -4
  133. package/dist/components/{p-0iJh9Z6m.js.map → p-vNnVlsJt.js.map} +1 -1
  134. package/dist/esm/{index-CxieEK_G.js → index-BAbkwyRx.js} +163 -104
  135. package/dist/esm/index-BAbkwyRx.js.map +1 -0
  136. package/dist/esm/index.js +1 -1
  137. package/dist/esm/kritzel-color_22.entry.js +182 -135
  138. package/dist/esm/loader.js +1 -1
  139. package/dist/esm/stencil.js +1 -1
  140. package/dist/stencil/index.esm.js +1 -1
  141. package/dist/stencil/p-BAbkwyRx.js +2 -0
  142. package/dist/stencil/p-BAbkwyRx.js.map +1 -0
  143. package/dist/stencil/p-fe465059.entry.js +2 -0
  144. package/dist/stencil/p-fe465059.entry.js.map +1 -0
  145. package/dist/stencil/stencil.esm.js +1 -1
  146. package/dist/types/classes/core/store.class.d.ts +2 -1
  147. package/dist/types/classes/core/viewport.class.d.ts +3 -0
  148. package/dist/types/classes/handlers/move.handler.d.ts +2 -0
  149. package/dist/types/classes/handlers/selection.handler.d.ts +3 -0
  150. package/package.json +1 -1
  151. package/dist/cjs/index-DgZMn9B_.js.map +0 -1
  152. package/dist/components/p-BbGgijCS.js.map +0 -1
  153. package/dist/components/p-BgpsMYcw.js.map +0 -1
  154. package/dist/components/p-KudVTtHk.js.map +0 -1
  155. package/dist/esm/index-CxieEK_G.js.map +0 -1
  156. package/dist/stencil/p-CxieEK_G.js +0 -2
  157. package/dist/stencil/p-CxieEK_G.js.map +0 -1
  158. package/dist/stencil/p-ab074e87.entry.js +0 -2
  159. package/dist/stencil/p-ab074e87.entry.js.map +0 -1
@@ -19,17 +19,17 @@ export class KritzelBrushTool extends KritzelBaseTool {
19
19
  }
20
20
  if (event.pointerType === 'mouse') {
21
21
  if (KritzelEventHelper.isLeftClick(event)) {
22
- this._core.store.setState('isDrawing', true);
22
+ this._core.store.state.isDrawing = true;
23
23
  const x = event.clientX - this._core.store.offsetX;
24
24
  const y = event.clientY - this._core.store.offsetY;
25
- this._core.store.setState('currentPath', KritzelPath.create(this._core, {
25
+ this._core.store.state.currentPath = KritzelPath.create(this._core, {
26
26
  points: [[x, y]],
27
27
  translateX: -this._core.store.state.translateX,
28
28
  translateY: -this._core.store.state.translateY,
29
29
  scale: this._core.store.state.scale,
30
30
  fill: this.color,
31
31
  strokeWidth: this.size,
32
- }));
32
+ });
33
33
  }
34
34
  }
35
35
  if (event.pointerType === 'touch') {
@@ -37,15 +37,15 @@ export class KritzelBrushTool extends KritzelBaseTool {
37
37
  if (activePointers.length === 1) {
38
38
  const x = Math.round(activePointers[0].clientX - this._core.store.offsetX);
39
39
  const y = Math.round(activePointers[0].clientY - this._core.store.offsetY);
40
- this._core.store.setState('isDrawing', true);
41
- this._core.store.setState('currentPath', KritzelPath.create(this._core, {
40
+ this._core.store.state.isDrawing = true;
41
+ this._core.store.state.currentPath = KritzelPath.create(this._core, {
42
42
  points: [[x, y]],
43
43
  translateX: -this._core.store.state.translateX,
44
44
  translateY: -this._core.store.state.translateY,
45
45
  scale: this._core.store.state.scale,
46
46
  fill: this.color,
47
47
  strokeWidth: this.size,
48
- }));
48
+ });
49
49
  this._core.rerender();
50
50
  }
51
51
  }
@@ -58,14 +58,14 @@ export class KritzelBrushTool extends KritzelBaseTool {
58
58
  if (this._core.store.state.isDrawing) {
59
59
  const x = event.clientX - this._core.store.offsetX;
60
60
  const y = event.clientY - this._core.store.offsetY;
61
- this._core.store.setState('currentPath', KritzelPath.create(this._core, {
61
+ this._core.store.state.currentPath = KritzelPath.create(this._core, {
62
62
  points: [...this._core.store.state.currentPath.points, [x, y]],
63
63
  translateX: -this._core.store.state.translateX,
64
64
  translateY: -this._core.store.state.translateY,
65
65
  scale: this._core.store.state.scale,
66
66
  fill: this.color,
67
67
  strokeWidth: this.size,
68
- }));
68
+ });
69
69
  this._core.rerender();
70
70
  }
71
71
  }
@@ -74,14 +74,14 @@ export class KritzelBrushTool extends KritzelBaseTool {
74
74
  if (activePointers.length === 1) {
75
75
  const x = Math.round(activePointers[0].clientX - this._core.store.offsetX);
76
76
  const y = Math.round(activePointers[0].clientY - this._core.store.offsetY);
77
- this._core.store.setState('currentPath', KritzelPath.create(this._core, {
77
+ this._core.store.state.currentPath = KritzelPath.create(this._core, {
78
78
  points: [...this._core.store.state.currentPath.points, [x, y]],
79
79
  translateX: -this._core.store.state.translateX,
80
80
  translateY: -this._core.store.state.translateY,
81
81
  scale: this._core.store.state.scale,
82
82
  fill: this.color,
83
83
  strokeWidth: this.size,
84
- }));
84
+ });
85
85
  this._core.rerender();
86
86
  }
87
87
  }
@@ -92,26 +92,26 @@ export class KritzelBrushTool extends KritzelBaseTool {
92
92
  }
93
93
  if (event.pointerType === 'mouse') {
94
94
  if (this._core.store.state.isDrawing) {
95
- this._core.store.setState('isDrawing', false);
95
+ this._core.store.state.isDrawing = false;
96
96
  if (this._core.store.state.currentPath) {
97
97
  const currentPath = this._core.store.state.currentPath;
98
98
  currentPath.zIndex = this._core.store.currentZIndex;
99
- this._core.store.setState('currentPath', currentPath);
99
+ this._core.store.state.currentPath = currentPath;
100
100
  this._core.history.executeCommand(new AddObjectCommand(this._core, this, this._core.store.state.currentPath));
101
101
  }
102
- this._core.store.setState('currentPath', undefined);
102
+ this._core.store.state.currentPath = undefined;
103
103
  }
104
104
  }
105
105
  if (event.pointerType === 'touch') {
106
106
  if (this._core.store.state.isDrawing) {
107
- this._core.store.setState('isDrawing', false);
107
+ this._core.store.state.isDrawing = false;
108
108
  if (this._core.store.state.currentPath) {
109
109
  const currentPath = this._core.store.state.currentPath;
110
110
  currentPath.zIndex = this._core.store.currentZIndex;
111
- this._core.store.setState('currentPath', currentPath);
111
+ this._core.store.state.currentPath = currentPath;
112
112
  this._core.history.executeCommand(new AddObjectCommand(this._core, this, currentPath));
113
113
  }
114
- this._core.store.setState('currentPath', undefined);
114
+ this._core.store.state.currentPath = undefined;
115
115
  this._core.rerender();
116
116
  }
117
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"brush-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/brush-tool.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { AddObjectCommand } from '../commands/add-object.command';\r\nimport { KritzelPath } from '../objects/path.class';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\nimport { KritzelCore } from '../core/core.class';\r\n\r\nexport class KritzelBrushTool extends KritzelBaseTool {\r\n type: 'pen' | 'highlighter' = 'pen';\r\n\r\n color: string = '#000000';\r\n\r\n size: number = 6;\r\n\r\n palettes: {\r\n [brushType: string]: string[];\r\n } = {\r\n pen: ['#000000', '#FFFFFF', '#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#00FFFF', '#808080', '#C0C0C0', '#800000', '#008000', '#000080', '#808000', '#800080'],\r\n highlighter: ['#ffff00', '#ffb347', '#b4ffb4'],\r\n };\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n this._core.store.setState('isDrawing', true);\r\n const x = event.clientX - this._core.store.offsetX;\r\n const y = event.clientY - this._core.store.offsetY;\r\n\r\n this._core.store.setState('currentPath', KritzelPath.create(this._core, {\r\n points: [[x, y]],\r\n translateX: -this._core.store.state.translateX,\r\n translateY: -this._core.store.state.translateY,\r\n scale: this._core.store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n }));\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._core.store.state.pointers.values());\r\n\r\n if (activePointers.length === 1) {\r\n const x = Math.round(activePointers[0].clientX - this._core.store.offsetX);\r\n const y = Math.round(activePointers[0].clientY - this._core.store.offsetY);\r\n\r\n this._core.store.setState('isDrawing', true);\r\n\r\n this._core.store.setState('currentPath', KritzelPath.create(this._core, {\r\n points: [[x, y]],\r\n translateX: -this._core.store.state.translateX,\r\n translateY: -this._core.store.state.translateY,\r\n scale: this._core.store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n }));\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (this._core.store.state.isDrawing) {\r\n const x = event.clientX - this._core.store.offsetX;\r\n const y = event.clientY - this._core.store.offsetY;\r\n\r\n this._core.store.setState('currentPath', KritzelPath.create(this._core, {\r\n points: [...this._core.store.state.currentPath.points, [x, y]],\r\n translateX: -this._core.store.state.translateX,\r\n translateY: -this._core.store.state.translateY,\r\n scale: this._core.store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n }));\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._core.store.state.pointers.values());\r\n\r\n if (activePointers.length === 1) {\r\n const x = Math.round(activePointers[0].clientX - this._core.store.offsetX);\r\n const y = Math.round(activePointers[0].clientY - this._core.store.offsetY);\r\n\r\n this._core.store.setState('currentPath', KritzelPath.create(this._core, {\r\n points: [...this._core.store.state.currentPath.points, [x, y]],\r\n translateX: -this._core.store.state.translateX,\r\n translateY: -this._core.store.state.translateY,\r\n scale: this._core.store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n }));\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (this._core.store.state.isDrawing) {\r\n this._core.store.setState('isDrawing', false);\r\n\r\n if (this._core.store.state.currentPath) {\r\n \r\n const currentPath = this._core.store.state.currentPath;\r\n currentPath.zIndex = this._core.store.currentZIndex;\r\n\r\n this._core.store.setState('currentPath', currentPath);\r\n\r\n this._core.history.executeCommand(new AddObjectCommand(this._core, this, this._core.store.state.currentPath));\r\n }\r\n\r\n this._core.store.setState('currentPath', undefined);\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isDrawing) {\r\n this._core.store.setState('isDrawing', false);\r\n\r\n if (this._core.store.state.currentPath) {\r\n const currentPath = this._core.store.state.currentPath;\r\n currentPath.zIndex = this._core.store.currentZIndex;\r\n\r\n this._core.store.setState('currentPath', currentPath);\r\n \r\n this._core.history.executeCommand(new AddObjectCommand(this._core, this, currentPath));\r\n }\r\n\r\n this._core.store.setState('currentPath', undefined);\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"brush-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/brush-tool.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { AddObjectCommand } from '../commands/add-object.command';\r\nimport { KritzelPath } from '../objects/path.class';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\nimport { KritzelCore } from '../core/core.class';\r\n\r\nexport class KritzelBrushTool extends KritzelBaseTool {\r\n type: 'pen' | 'highlighter' = 'pen';\r\n\r\n color: string = '#000000';\r\n\r\n size: number = 6;\r\n\r\n palettes: {\r\n [brushType: string]: string[];\r\n } = {\r\n pen: ['#000000', '#FFFFFF', '#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#00FFFF', '#808080', '#C0C0C0', '#800000', '#008000', '#000080', '#808000', '#800080'],\r\n highlighter: ['#ffff00', '#ffb347', '#b4ffb4'],\r\n };\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n this._core.store.state.isDrawing = true;\r\n const x = event.clientX - this._core.store.offsetX;\r\n const y = event.clientY - this._core.store.offsetY;\r\n\r\n this._core.store.state.currentPath = KritzelPath.create(this._core, {\r\n points: [[x, y]],\r\n translateX: -this._core.store.state.translateX,\r\n translateY: -this._core.store.state.translateY,\r\n scale: this._core.store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n });\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._core.store.state.pointers.values());\r\n\r\n if (activePointers.length === 1) {\r\n const x = Math.round(activePointers[0].clientX - this._core.store.offsetX);\r\n const y = Math.round(activePointers[0].clientY - this._core.store.offsetY);\r\n\r\n this._core.store.state.isDrawing = true;\r\n\r\n this._core.store.state.currentPath = KritzelPath.create(this._core, {\r\n points: [[x, y]],\r\n translateX: -this._core.store.state.translateX,\r\n translateY: -this._core.store.state.translateY,\r\n scale: this._core.store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n });\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (this._core.store.state.isDrawing) {\r\n const x = event.clientX - this._core.store.offsetX;\r\n const y = event.clientY - this._core.store.offsetY;\r\n\r\n this._core.store.state.currentPath = KritzelPath.create(this._core, {\r\n points: [...this._core.store.state.currentPath.points, [x, y]],\r\n translateX: -this._core.store.state.translateX,\r\n translateY: -this._core.store.state.translateY,\r\n scale: this._core.store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n });\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._core.store.state.pointers.values());\r\n\r\n if (activePointers.length === 1) {\r\n const x = Math.round(activePointers[0].clientX - this._core.store.offsetX);\r\n const y = Math.round(activePointers[0].clientY - this._core.store.offsetY);\r\n\r\n this._core.store.state.currentPath = KritzelPath.create(this._core, {\r\n points: [...this._core.store.state.currentPath.points, [x, y]],\r\n translateX: -this._core.store.state.translateX,\r\n translateY: -this._core.store.state.translateY,\r\n scale: this._core.store.state.scale,\r\n fill: this.color,\r\n strokeWidth: this.size,\r\n });\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (this._core.store.state.isDrawing) {\r\n this._core.store.state.isDrawing = false;\r\n\r\n if (this._core.store.state.currentPath) {\r\n \r\n const currentPath = this._core.store.state.currentPath;\r\n currentPath.zIndex = this._core.store.currentZIndex;\r\n\r\n this._core.store.state.currentPath = currentPath;\r\n\r\n this._core.history.executeCommand(new AddObjectCommand(this._core, this, this._core.store.state.currentPath));\r\n }\r\n\r\n this._core.store.state.currentPath = undefined;\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isDrawing) {\r\n this._core.store.state.isDrawing = false;\r\n\r\n if (this._core.store.state.currentPath) {\r\n const currentPath = this._core.store.state.currentPath;\r\n currentPath.zIndex = this._core.store.currentZIndex;\r\n\r\n this._core.store.state.currentPath = currentPath;\r\n \r\n this._core.history.executeCommand(new AddObjectCommand(this._core, this, currentPath));\r\n }\r\n\r\n this._core.store.state.currentPath = undefined;\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -10,13 +10,13 @@ export class KritzelEraserTool extends KritzelBaseTool {
10
10
  handlePointerDown(event) {
11
11
  if (event.pointerType === 'mouse') {
12
12
  if (KritzelEventHelper.isLeftClick(event)) {
13
- this._core.store.setState('isErasing', true);
13
+ this._core.store.state.isErasing = true;
14
14
  }
15
15
  }
16
16
  if (event.pointerType === 'touch') {
17
17
  this.touchStartTimeout = setTimeout(() => {
18
18
  if (this._core.store.state.pointers.size === 1 && !this._core.store.state.isScaling) {
19
- this._core.store.setState('isErasing', true);
19
+ this._core.store.state.isErasing = true;
20
20
  }
21
21
  }, 80);
22
22
  }
@@ -62,7 +62,7 @@ export class KritzelEraserTool extends KritzelBaseTool {
62
62
  if (removeCommands.length > 0) {
63
63
  this._core.history.executeCommand(new BatchCommand(this._core, this, removeCommands));
64
64
  }
65
- this._core.store.setState('isErasing', false);
65
+ this._core.store.state.isErasing = false;
66
66
  }
67
67
  }
68
68
  if (event.pointerType === 'touch') {
@@ -77,7 +77,7 @@ export class KritzelEraserTool extends KritzelBaseTool {
77
77
  if (removeCommands.length > 0) {
78
78
  this._core.history.executeCommand(new BatchCommand(this._core, this, removeCommands));
79
79
  }
80
- this._core.store.setState('isErasing', false);
80
+ this._core.store.state.isErasing = false;
81
81
  }
82
82
  }
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eraser-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/eraser-tool.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { BatchCommand } from '../commands/batch.command';\r\nimport { RemoveObjectCommand } from '../commands/remove-object.command';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\nimport { KritzelCore } from '../core/core.class';\r\n\r\nexport class KritzelEraserTool extends KritzelBaseTool {\r\n touchStartTimeout: any = null;\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n this._core.store.setState('isErasing', true);\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n this.touchStartTimeout = setTimeout(() => {\r\n if (this._core.store.state.pointers.size === 1 && !this._core.store.state.isScaling) {\r\n this._core.store.setState('isErasing', true);\r\n }\r\n }, 80);\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n if (this._core.store.state.isErasing) {\r\n \r\n const selectedObjects = this._core.getObjectsFromPointerEvent(event, '.object');\r\n\r\n if (selectedObjects.length === 0) return;\r\n\r\n const x = this._core.store.state.pointerX;\r\n const y = this._core.store.state.pointerY;\r\n\r\n selectedObjects.forEach(selectedObject => {\r\n selectedObject.markedForRemoval = selectedObject.hitTest(x, y);\r\n });\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.pointers.size === 1 && this._core.store.state.isErasing) {\r\n const shadowRoot = this._core.store.state.host?.shadowRoot;\r\n if (!shadowRoot) return;\r\n \r\n const selectedObjects = this._core.getObjectsFromPointerEvent(event, '.object');\r\n\r\n if (selectedObjects.length === 0) return;\r\n\r\n const x = this._core.store.state.pointerX;\r\n const y = this._core.store.state.pointerY;\r\n\r\n selectedObjects.forEach(selectedObject => {\r\n selectedObject.markedForRemoval = selectedObject.hitTest(x, y);\r\n });\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n if (this._core.store.state.isErasing) {\r\n const removeCommands = this._core.store.allObjects.filter(object => object.markedForRemoval).map(object => {\r\n object.markedForRemoval = false;\r\n return new RemoveObjectCommand(this._core, this, object);\r\n });\r\n\r\n if (removeCommands.length > 0) {\r\n this._core.history.executeCommand(new BatchCommand(this._core, this, removeCommands));\r\n }\r\n\r\n this._core.store.setState('isErasing', false);\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n clearTimeout(this.touchStartTimeout);\r\n\r\n if (this._core.store.state.isErasing) {\r\n const removeCommands = this._core.store.allObjects\r\n .filter(object => object.markedForRemoval)\r\n .map(object => {\r\n object.markedForRemoval = false;\r\n return new RemoveObjectCommand(this._core, this, object);\r\n });\r\n\r\n if (removeCommands.length > 0) {\r\n this._core.history.executeCommand(new BatchCommand(this._core, this, removeCommands));\r\n }\r\n\r\n this._core.store.setState('isErasing', false);\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"eraser-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/eraser-tool.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { BatchCommand } from '../commands/batch.command';\r\nimport { RemoveObjectCommand } from '../commands/remove-object.command';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\nimport { KritzelCore } from '../core/core.class';\r\n\r\nexport class KritzelEraserTool extends KritzelBaseTool {\r\n touchStartTimeout: any = null;\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n this._core.store.state.isErasing = true;\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n this.touchStartTimeout = setTimeout(() => {\r\n if (this._core.store.state.pointers.size === 1 && !this._core.store.state.isScaling) {\r\n this._core.store.state.isErasing = true;\r\n }\r\n }, 80);\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n if (this._core.store.state.isErasing) {\r\n \r\n const selectedObjects = this._core.getObjectsFromPointerEvent(event, '.object');\r\n\r\n if (selectedObjects.length === 0) return;\r\n\r\n const x = this._core.store.state.pointerX;\r\n const y = this._core.store.state.pointerY;\r\n\r\n selectedObjects.forEach(selectedObject => {\r\n selectedObject.markedForRemoval = selectedObject.hitTest(x, y);\r\n });\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.pointers.size === 1 && this._core.store.state.isErasing) {\r\n const shadowRoot = this._core.store.state.host?.shadowRoot;\r\n if (!shadowRoot) return;\r\n \r\n const selectedObjects = this._core.getObjectsFromPointerEvent(event, '.object');\r\n\r\n if (selectedObjects.length === 0) return;\r\n\r\n const x = this._core.store.state.pointerX;\r\n const y = this._core.store.state.pointerY;\r\n\r\n selectedObjects.forEach(selectedObject => {\r\n selectedObject.markedForRemoval = selectedObject.hitTest(x, y);\r\n });\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n if (this._core.store.state.isErasing) {\r\n const removeCommands = this._core.store.allObjects.filter(object => object.markedForRemoval).map(object => {\r\n object.markedForRemoval = false;\r\n return new RemoveObjectCommand(this._core, this, object);\r\n });\r\n\r\n if (removeCommands.length > 0) {\r\n this._core.history.executeCommand(new BatchCommand(this._core, this, removeCommands));\r\n }\r\n\r\n this._core.store.state.isErasing = false;\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n clearTimeout(this.touchStartTimeout);\r\n\r\n if (this._core.store.state.isErasing) {\r\n const removeCommands = this._core.store.allObjects\r\n .filter(object => object.markedForRemoval)\r\n .map(object => {\r\n object.markedForRemoval = false;\r\n return new RemoveObjectCommand(this._core, this, object);\r\n });\r\n\r\n if (removeCommands.length > 0) {\r\n this._core.history.executeCommand(new BatchCommand(this._core, this, removeCommands));\r\n }\r\n\r\n this._core.store.state.isErasing = false;\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -27,9 +27,9 @@ export class KritzelSelectionTool extends KritzelBaseTool {
27
27
  }
28
28
  if (event.pointerType === 'mouse') {
29
29
  if (KritzelEventHelper.isLeftClick(event)) {
30
- this._core.store.setState('isResizeHandleSelected', this.isHandleSelected(event));
31
- this._core.store.setState('isRotationHandleSelected', this.isRotationHandleSelected(event));
32
- this._core.store.setState('resizeHandleType', this.getHandleType(event));
30
+ this._core.store.state.isResizeHandleSelected = this.isHandleSelected(event);
31
+ this._core.store.state.isRotationHandleSelected = this.isRotationHandleSelected(event);
32
+ this._core.store.state.resizeHandleType = this.getHandleType(event);
33
33
  const selectedObject = this.getSelectedObject(event);
34
34
  const isDifferentObject = selectedObject && this._core.store.state.selectionGroup && selectedObject.id !== this._core.store.state.selectionGroup.id;
35
35
  if ((selectedObject === null || isDifferentObject) &&
@@ -53,13 +53,13 @@ export class KritzelSelectionTool extends KritzelBaseTool {
53
53
  return;
54
54
  }
55
55
  if (this._core.store.state.pointers.size === 1) {
56
- this._core.store.setState('isResizeHandleSelected', this.isHandleSelected(event));
57
- this._core.store.setState('isRotationHandleSelected', this.isRotationHandleSelected(event));
58
- this._core.store.setState('resizeHandleType', this.getHandleType(event));
56
+ this._core.store.state.isResizeHandleSelected = this.isHandleSelected(event);
57
+ this._core.store.state.isRotationHandleSelected = this.isRotationHandleSelected(event);
58
+ this._core.store.state.resizeHandleType = this.getHandleType(event);
59
59
  const selectedObject = this.getSelectedObject(event);
60
60
  const isDifferentObject = selectedObject && this._core.store.state.selectionGroup && selectedObject.id !== this._core.store.state.selectionGroup.id;
61
61
  if (!this._core.store.state.selectionGroup && selectedObject) {
62
- this._core.store.setState('skipContextMenu', true);
62
+ this._core.store.state.skipContextMenu = true;
63
63
  }
64
64
  if ((selectedObject === null || isDifferentObject) &&
65
65
  this._core.store.state.selectionGroup &&
@@ -1 +1 @@
1
- {"version":3,"file":"selection-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/selection-tool.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelHandleType } from '../../enums/handle-type.enum';\r\nimport { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { RemoveSelectionGroupCommand } from '../commands/remove-selection-group.command';\r\nimport { KritzelMoveHandler } from '../handlers/move.handler';\r\nimport { KritzelResizeHandler } from '../handlers/resize.handler';\r\nimport { KritzelRotationHandler } from '../handlers/rotation.handler';\r\nimport { KritzelSelectionHandler } from '../handlers/selection.handler';\r\nimport { KritzelSelectionGroup } from '../objects/selection-group.class';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\nimport { KritzelHoverHandler } from '../handlers/hover.handler';\r\nimport { KritzelCore } from '../core/core.class';\r\n\r\nexport class KritzelSelectionTool extends KritzelBaseTool {\r\n selectionHandler: KritzelSelectionHandler;\r\n moveHandler: KritzelMoveHandler;\r\n hoverHandler: KritzelHoverHandler;\r\n resizeHandler: KritzelResizeHandler;\r\n rotationHandler: KritzelRotationHandler;\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n this.selectionHandler = new KritzelSelectionHandler(this._core);\r\n this.moveHandler = new KritzelMoveHandler(this._core);\r\n this.hoverHandler = new KritzelHoverHandler(this._core);\r\n this.resizeHandler = new KritzelResizeHandler(this._core);\r\n this.rotationHandler = new KritzelRotationHandler(this._core);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n this._core.store.setState('isResizeHandleSelected', this.isHandleSelected(event));\r\n this._core.store.setState('isRotationHandleSelected', this.isRotationHandleSelected(event));\r\n this._core.store.setState('resizeHandleType', this.getHandleType(event));\r\n\r\n const selectedObject = this.getSelectedObject(event);\r\n const isDifferentObject = selectedObject && this._core.store.state.selectionGroup && selectedObject.id !== this._core.store.state.selectionGroup.id;\r\n\r\n if (\r\n (selectedObject === null || isDifferentObject) &&\r\n this._core.store.state.selectionGroup &&\r\n !this._core.store.state.isResizeHandleSelected &&\r\n !this._core.store.state.isRotationHandleSelected\r\n ) {\r\n this._core.history.executeCommand(new RemoveSelectionGroupCommand(this._core, this._core.store.state.selectionGroup));\r\n }\r\n\r\n if (selectedObject && selectedObject.isSelected === false && selectedObject?.objects.length === 1 && selectedObject.objects[0].isInteractive) {\r\n return;\r\n }\r\n }\r\n\r\n this.moveHandler.handlePointerDown(event);\r\n this.selectionHandler.handlePointerDown(event);\r\n this.resizeHandler.handlePointerDown(event);\r\n this.rotationHandler.handlePointerDown(event);\r\n\r\n this._core.rerender();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isScaling === true) {\r\n return;\r\n }\r\n\r\n if (this._core.store.state.pointers.size === 1) {\r\n this._core.store.setState('isResizeHandleSelected', this.isHandleSelected(event));\r\n this._core.store.setState('isRotationHandleSelected', this.isRotationHandleSelected(event));\r\n this._core.store.setState('resizeHandleType', this.getHandleType(event));\r\n\r\n const selectedObject = this.getSelectedObject(event);\r\n const isDifferentObject = selectedObject && this._core.store.state.selectionGroup && selectedObject.id !== this._core.store.state.selectionGroup.id;\r\n\r\n if (!this._core.store.state.selectionGroup && selectedObject) {\r\n this._core.store.setState('skipContextMenu', true);\r\n }\r\n\r\n if (\r\n (selectedObject === null || isDifferentObject) &&\r\n this._core.store.state.selectionGroup &&\r\n !this._core.store.state.isResizeHandleSelected &&\r\n !this._core.store.state.isRotationHandleSelected\r\n ) {\r\n this._core.history.executeCommand(new RemoveSelectionGroupCommand(this._core, this._core.store.state.selectionGroup));\r\n }\r\n }\r\n\r\n this.rotationHandler.handlePointerDown(event);\r\n this.resizeHandler.handlePointerDown(event);\r\n this.moveHandler.handlePointerDown(event);\r\n this.selectionHandler.handlePointerDown(event);\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n this.moveHandler.handlePointerMove(event);\r\n this.hoverHandler.handlePointerMove(event);\r\n this.selectionHandler.handlePointerMove(event);\r\n this.resizeHandler.handlePointerMove(event);\r\n this.rotationHandler.handlePointerMove(event);\r\n\r\n this._core.rerender();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isScaling === true) {\r\n return;\r\n }\r\n\r\n this.rotationHandler.handlePointerMove(event);\r\n this.resizeHandler.handlePointerMove(event);\r\n this.moveHandler.handlePointerMove(event);\r\n this.selectionHandler.handlePointerMove(event);\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n this.moveHandler.handlePointerUp(event);\r\n this.resizeHandler.handlePointerUp(event);\r\n this.rotationHandler.handlePointerUp(event);\r\n this.selectionHandler.handlePointerUp(event);\r\n\r\n this._core.rerender();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isScaling === true) {\r\n return;\r\n }\r\n \r\n this.rotationHandler.handlePointerUp(event);\r\n this.resizeHandler.handlePointerUp(event);\r\n this.moveHandler.handlePointerUp(event);\r\n this.selectionHandler.handlePointerUp(event);\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n private getSelectedObject(event: PointerEvent): KritzelSelectionGroup | null {\r\n const path = event.composedPath().slice(1) as HTMLElement[];\r\n const objectElement = path.find(element => element.classList && element.classList.contains('object'));\r\n const object = this._core.findObjectById(objectElement?.id);\r\n\r\n if (!object) {\r\n return null;\r\n }\r\n\r\n if (object instanceof KritzelSelectionGroup) {\r\n return object;\r\n } else {\r\n const group = KritzelSelectionGroup.create(this._core);\r\n group.translateX = 0;\r\n group.translateY = 0;\r\n group.addOrRemove(object);\r\n return group;\r\n }\r\n }\r\n\r\n private getHandleType(event: PointerEvent): KritzelHandleType | undefined {\r\n const shadowRoot = this._core.store.state.host?.shadowRoot;\r\n if (!shadowRoot) return;\r\n\r\n const elementAtPoint = shadowRoot.elementFromPoint(event.clientX, event.clientY);\r\n\r\n const handle = elementAtPoint?.closest('.resize-handle-overlay') as HTMLElement | null;\r\n\r\n return handle?.classList[1] as KritzelHandleType;\r\n }\r\n\r\n private isHandleSelected(event: PointerEvent): boolean {\r\n const shadowRoot = this._core.store.state.host?.shadowRoot;\r\n if (!shadowRoot) return false;\r\n\r\n const elementAtPoint = shadowRoot.elementFromPoint(event.clientX, event.clientY);\r\n\r\n return !!elementAtPoint?.classList.contains('resize-handle-overlay');\r\n }\r\n\r\n private isRotationHandleSelected(event: PointerEvent): boolean {\r\n const path = event.composedPath() as HTMLElement[];\r\n\r\n return !!path.find(element => element.classList && element.classList.contains('rotation-handle-overlay'));\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"selection-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/selection-tool.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelHandleType } from '../../enums/handle-type.enum';\r\nimport { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { RemoveSelectionGroupCommand } from '../commands/remove-selection-group.command';\r\nimport { KritzelMoveHandler } from '../handlers/move.handler';\r\nimport { KritzelResizeHandler } from '../handlers/resize.handler';\r\nimport { KritzelRotationHandler } from '../handlers/rotation.handler';\r\nimport { KritzelSelectionHandler } from '../handlers/selection.handler';\r\nimport { KritzelSelectionGroup } from '../objects/selection-group.class';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\nimport { KritzelHoverHandler } from '../handlers/hover.handler';\r\nimport { KritzelCore } from '../core/core.class';\r\n\r\nexport class KritzelSelectionTool extends KritzelBaseTool {\r\n selectionHandler: KritzelSelectionHandler;\r\n moveHandler: KritzelMoveHandler;\r\n hoverHandler: KritzelHoverHandler;\r\n resizeHandler: KritzelResizeHandler;\r\n rotationHandler: KritzelRotationHandler;\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n this.selectionHandler = new KritzelSelectionHandler(this._core);\r\n this.moveHandler = new KritzelMoveHandler(this._core);\r\n this.hoverHandler = new KritzelHoverHandler(this._core);\r\n this.resizeHandler = new KritzelResizeHandler(this._core);\r\n this.rotationHandler = new KritzelRotationHandler(this._core);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n this._core.store.state.isResizeHandleSelected = this.isHandleSelected(event);\r\n this._core.store.state.isRotationHandleSelected = this.isRotationHandleSelected(event);\r\n this._core.store.state.resizeHandleType = this.getHandleType(event);\r\n\r\n const selectedObject = this.getSelectedObject(event);\r\n const isDifferentObject = selectedObject && this._core.store.state.selectionGroup && selectedObject.id !== this._core.store.state.selectionGroup.id;\r\n\r\n if (\r\n (selectedObject === null || isDifferentObject) &&\r\n this._core.store.state.selectionGroup &&\r\n !this._core.store.state.isResizeHandleSelected &&\r\n !this._core.store.state.isRotationHandleSelected\r\n ) {\r\n this._core.history.executeCommand(new RemoveSelectionGroupCommand(this._core, this._core.store.state.selectionGroup));\r\n }\r\n\r\n if (selectedObject && selectedObject.isSelected === false && selectedObject?.objects.length === 1 && selectedObject.objects[0].isInteractive) {\r\n return;\r\n }\r\n }\r\n\r\n this.moveHandler.handlePointerDown(event);\r\n this.selectionHandler.handlePointerDown(event);\r\n this.resizeHandler.handlePointerDown(event);\r\n this.rotationHandler.handlePointerDown(event);\r\n\r\n this._core.rerender();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isScaling === true) {\r\n return;\r\n }\r\n\r\n if (this._core.store.state.pointers.size === 1) {\r\n this._core.store.state.isResizeHandleSelected = this.isHandleSelected(event);\r\n this._core.store.state.isRotationHandleSelected = this.isRotationHandleSelected(event);\r\n this._core.store.state.resizeHandleType = this.getHandleType(event);\r\n\r\n const selectedObject = this.getSelectedObject(event);\r\n const isDifferentObject = selectedObject && this._core.store.state.selectionGroup && selectedObject.id !== this._core.store.state.selectionGroup.id;\r\n\r\n if (!this._core.store.state.selectionGroup && selectedObject) {\r\n this._core.store.state.skipContextMenu = true;\r\n }\r\n\r\n if (\r\n (selectedObject === null || isDifferentObject) &&\r\n this._core.store.state.selectionGroup &&\r\n !this._core.store.state.isResizeHandleSelected &&\r\n !this._core.store.state.isRotationHandleSelected\r\n ) {\r\n this._core.history.executeCommand(new RemoveSelectionGroupCommand(this._core, this._core.store.state.selectionGroup));\r\n }\r\n }\r\n\r\n this.rotationHandler.handlePointerDown(event);\r\n this.resizeHandler.handlePointerDown(event);\r\n this.moveHandler.handlePointerDown(event);\r\n this.selectionHandler.handlePointerDown(event);\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n this.moveHandler.handlePointerMove(event);\r\n this.hoverHandler.handlePointerMove(event);\r\n this.selectionHandler.handlePointerMove(event);\r\n this.resizeHandler.handlePointerMove(event);\r\n this.rotationHandler.handlePointerMove(event);\r\n\r\n this._core.rerender();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isScaling === true) {\r\n return;\r\n }\r\n\r\n this.rotationHandler.handlePointerMove(event);\r\n this.resizeHandler.handlePointerMove(event);\r\n this.moveHandler.handlePointerMove(event);\r\n this.selectionHandler.handlePointerMove(event);\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n this.moveHandler.handlePointerUp(event);\r\n this.resizeHandler.handlePointerUp(event);\r\n this.rotationHandler.handlePointerUp(event);\r\n this.selectionHandler.handlePointerUp(event);\r\n\r\n this._core.rerender();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isScaling === true) {\r\n return;\r\n }\r\n \r\n this.rotationHandler.handlePointerUp(event);\r\n this.resizeHandler.handlePointerUp(event);\r\n this.moveHandler.handlePointerUp(event);\r\n this.selectionHandler.handlePointerUp(event);\r\n\r\n this._core.rerender();\r\n }\r\n }\r\n\r\n private getSelectedObject(event: PointerEvent): KritzelSelectionGroup | null {\r\n const path = event.composedPath().slice(1) as HTMLElement[];\r\n const objectElement = path.find(element => element.classList && element.classList.contains('object'));\r\n const object = this._core.findObjectById(objectElement?.id);\r\n\r\n if (!object) {\r\n return null;\r\n }\r\n\r\n if (object instanceof KritzelSelectionGroup) {\r\n return object;\r\n } else {\r\n const group = KritzelSelectionGroup.create(this._core);\r\n group.translateX = 0;\r\n group.translateY = 0;\r\n group.addOrRemove(object);\r\n return group;\r\n }\r\n }\r\n\r\n private getHandleType(event: PointerEvent): KritzelHandleType | undefined {\r\n const shadowRoot = this._core.store.state.host?.shadowRoot;\r\n if (!shadowRoot) return;\r\n\r\n const elementAtPoint = shadowRoot.elementFromPoint(event.clientX, event.clientY);\r\n\r\n const handle = elementAtPoint?.closest('.resize-handle-overlay') as HTMLElement | null;\r\n\r\n return handle?.classList[1] as KritzelHandleType;\r\n }\r\n\r\n private isHandleSelected(event: PointerEvent): boolean {\r\n const shadowRoot = this._core.store.state.host?.shadowRoot;\r\n if (!shadowRoot) return false;\r\n\r\n const elementAtPoint = shadowRoot.elementFromPoint(event.clientX, event.clientY);\r\n\r\n return !!elementAtPoint?.classList.contains('resize-handle-overlay');\r\n }\r\n\r\n private isRotationHandleSelected(event: PointerEvent): boolean {\r\n const path = event.composedPath() as HTMLElement[];\r\n\r\n return !!path.find(element => element.classList && element.classList.contains('rotation-handle-overlay'));\r\n }\r\n}\r\n"]}
@@ -37,12 +37,12 @@ export class KritzelTextTool extends KritzelBaseTool {
37
37
  const objectElement = path.find(element => element.classList && element.classList.contains('object'));
38
38
  const object = this._core.findObjectById(objectElement?.id);
39
39
  if (object instanceof KritzelText) {
40
- this._core.store.setState('activeText', object);
40
+ this._core.store.state.activeText = object;
41
41
  object.focus();
42
42
  return;
43
43
  }
44
44
  if (this._core.store.state.activeText !== null && object instanceof KritzelText) {
45
- this._core.store.setState('activeText', object);
45
+ this._core.store.state.activeText = object;
46
46
  object.focus();
47
47
  return;
48
48
  }
@@ -61,7 +61,7 @@ export class KritzelTextTool extends KritzelBaseTool {
61
61
  text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
62
62
  text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
63
63
  text.zIndex = this._core.store.currentZIndex;
64
- this._core.store.setState('activeText', text);
64
+ this._core.store.state.activeText = text;
65
65
  this._core.history.executeCommand(new AddObjectCommand(this._core, this, text));
66
66
  }
67
67
  if (event.pointerType === 'touch') {
@@ -70,12 +70,12 @@ export class KritzelTextTool extends KritzelBaseTool {
70
70
  const objectElement = path.find(element => element.classList && element.classList.contains('object'));
71
71
  const object = this._core.findObjectById(objectElement?.id);
72
72
  if (object instanceof KritzelText) {
73
- this._core.store.setState('activeText', object);
73
+ this._core.store.state.activeText = object;
74
74
  object.focus();
75
75
  return;
76
76
  }
77
77
  if (this._core.store.state.activeText !== null && object instanceof KritzelText) {
78
- this._core.store.setState('activeText', object);
78
+ this._core.store.state.activeText = object;
79
79
  object.focus();
80
80
  return;
81
81
  }
@@ -95,7 +95,7 @@ export class KritzelTextTool extends KritzelBaseTool {
95
95
  text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
96
96
  text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
97
97
  text.zIndex = this._core.store.currentZIndex;
98
- this._core.store.setState('activeText', text);
98
+ this._core.store.state.activeText = text;
99
99
  this._core.history.executeCommand(new AddObjectCommand(this._core, this, text));
100
100
  }
101
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"text-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/text-tool.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelText } from '../objects/text.class';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\nimport { AddObjectCommand } from '../commands/add-object.command';\r\nimport { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { KritzelToolRegistry } from '../registries/tool.registry';\r\nimport { KritzelKeyboardHelper } from '../../helpers/keyboard.helper';\r\nimport { KritzelCore } from '../core/core.class';\r\n\r\nexport class KritzelTextTool extends KritzelBaseTool {\r\n fontFamily: string = 'Arial';\r\n fontSize: number = 16;\r\n fontColor: string = '#000000';\r\n\r\n palette: string[] = [\r\n '#000000',\r\n '#FFFFFF',\r\n '#FF0000',\r\n '#00FF00',\r\n '#0000FF',\r\n '#FFFF00',\r\n '#FF00FF',\r\n '#00FFFF',\r\n '#808080',\r\n '#C0C0C0',\r\n '#800000',\r\n '#008000',\r\n '#000080',\r\n '#808000',\r\n '#800080',\r\n ];\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n const path = event.composedPath().slice(1) as HTMLElement[];\r\n const objectElement = path.find(element => element.classList && element.classList.contains('object'));\r\n const object = this._core.findObjectById(objectElement?.id);\r\n\r\n if (object instanceof KritzelText) {\r\n this._core.store.setState('activeText', object);\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null && object instanceof KritzelText) {\r\n this._core.store.setState('activeText', object);\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null && object instanceof KritzelText === false) {\r\n this._core.resetActiveText();\r\n this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));\r\n return;\r\n }\r\n\r\n if (KritzelEventHelper.isLeftClick(event) === false) {\r\n return;\r\n }\r\n\r\n const clientX = event.clientX - this._core.store.offsetX;\r\n const clientY = event.clientY - this._core.store.offsetY;\r\n const text = KritzelText.create(this._core, this.fontSize, this.fontFamily);\r\n\r\n text.fontColor = this.fontColor;\r\n text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;\r\n text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;\r\n text.zIndex = this._core.store.currentZIndex;\r\n\r\n this._core.store.setState('activeText', text);\r\n\r\n this._core.history.executeCommand(new AddObjectCommand(this._core, this, text));\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._core.store.state.pointers.values());\r\n\r\n const path = event.composedPath().slice(1) as HTMLElement[];\r\n const objectElement = path.find(element => element.classList && element.classList.contains('object'));\r\n const object = this._core.findObjectById(objectElement?.id);\r\n\r\n if (object instanceof KritzelText) {\r\n this._core.store.setState('activeText', object);\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null && object instanceof KritzelText) {\r\n this._core.store.setState('activeText', object);\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null && object instanceof KritzelText === false) {\r\n this._core.resetActiveText();\r\n this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));\r\n return;\r\n }\r\n\r\n if (activePointers.length > 1) {\r\n return;\r\n }\r\n\r\n KritzelKeyboardHelper.disableInteractiveWidget();\r\n\r\n const clientX = Math.round(activePointers[0].clientX - this._core.store.offsetX);\r\n const clientY = Math.round(activePointers[0].clientY - this._core.store.offsetY);\r\n const text = KritzelText.create(this._core, this.fontSize, this.fontFamily);\r\n\r\n text.fontColor = this.fontColor;\r\n text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;\r\n text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;\r\n text.zIndex = this._core.store.currentZIndex;\r\n\r\n this._core.store.setState('activeText', text);\r\n\r\n this._core.history.executeCommand(new AddObjectCommand(this._core, this, text));\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n this._core.store.state.activeText?.updateTextareaDimensions();\r\n this._core.store.state.activeText?.focus();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n this._core.store.state.activeText?.updateTextareaDimensions();\r\n this._core.store.state.activeText?.focus();\r\n\r\n KritzelKeyboardHelper.enableInteractiveWidget();\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"text-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/text-tool.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelText } from '../objects/text.class';\r\nimport { KritzelBaseTool } from './base-tool.class';\r\nimport { AddObjectCommand } from '../commands/add-object.command';\r\nimport { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { KritzelToolRegistry } from '../registries/tool.registry';\r\nimport { KritzelKeyboardHelper } from '../../helpers/keyboard.helper';\r\nimport { KritzelCore } from '../core/core.class';\r\n\r\nexport class KritzelTextTool extends KritzelBaseTool {\r\n fontFamily: string = 'Arial';\r\n fontSize: number = 16;\r\n fontColor: string = '#000000';\r\n\r\n palette: string[] = [\r\n '#000000',\r\n '#FFFFFF',\r\n '#FF0000',\r\n '#00FF00',\r\n '#0000FF',\r\n '#FFFF00',\r\n '#FF00FF',\r\n '#00FFFF',\r\n '#808080',\r\n '#C0C0C0',\r\n '#800000',\r\n '#008000',\r\n '#000080',\r\n '#808000',\r\n '#800080',\r\n ];\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n const path = event.composedPath().slice(1) as HTMLElement[];\r\n const objectElement = path.find(element => element.classList && element.classList.contains('object'));\r\n const object = this._core.findObjectById(objectElement?.id);\r\n\r\n if (object instanceof KritzelText) {\r\n this._core.store.state.activeText = object;\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null && object instanceof KritzelText) {\r\n this._core.store.state.activeText = object;\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null && object instanceof KritzelText === false) {\r\n this._core.resetActiveText();\r\n this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));\r\n return;\r\n }\r\n\r\n if (KritzelEventHelper.isLeftClick(event) === false) {\r\n return;\r\n }\r\n\r\n const clientX = event.clientX - this._core.store.offsetX;\r\n const clientY = event.clientY - this._core.store.offsetY;\r\n const text = KritzelText.create(this._core, this.fontSize, this.fontFamily);\r\n\r\n text.fontColor = this.fontColor;\r\n text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;\r\n text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;\r\n text.zIndex = this._core.store.currentZIndex;\r\n\r\n this._core.store.state.activeText = text;\r\n\r\n this._core.history.executeCommand(new AddObjectCommand(this._core, this, text));\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._core.store.state.pointers.values());\r\n\r\n const path = event.composedPath().slice(1) as HTMLElement[];\r\n const objectElement = path.find(element => element.classList && element.classList.contains('object'));\r\n const object = this._core.findObjectById(objectElement?.id);\r\n\r\n if (object instanceof KritzelText) {\r\n this._core.store.state.activeText = object;\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null && object instanceof KritzelText) {\r\n this._core.store.state.activeText = object;\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null && object instanceof KritzelText === false) {\r\n this._core.resetActiveText();\r\n this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));\r\n return;\r\n }\r\n\r\n if (activePointers.length > 1) {\r\n return;\r\n }\r\n\r\n KritzelKeyboardHelper.disableInteractiveWidget();\r\n\r\n const clientX = Math.round(activePointers[0].clientX - this._core.store.offsetX);\r\n const clientY = Math.round(activePointers[0].clientY - this._core.store.offsetY);\r\n const text = KritzelText.create(this._core, this.fontSize, this.fontFamily);\r\n\r\n text.fontColor = this.fontColor;\r\n text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;\r\n text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;\r\n text.zIndex = this._core.store.currentZIndex;\r\n\r\n this._core.store.state.activeText = text;\r\n\r\n this._core.history.executeCommand(new AddObjectCommand(this._core, this, text));\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent): void {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n this._core.store.state.activeText?.updateTextareaDimensions();\r\n this._core.store.state.activeText?.focus();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n this._core.store.state.activeText?.updateTextareaDimensions();\r\n this._core.store.state.activeText?.focus();\r\n\r\n KritzelKeyboardHelper.enableInteractiveWidget();\r\n }\r\n }\r\n}\r\n"]}
@@ -63,7 +63,7 @@ export class KritzelCursorTrail {
63
63
  }
64
64
  }
65
65
  render() {
66
- return (h(Host, { key: '87003b14680b3cbca302e7b31ff57e74cc774e25' }, this.cursorTrailPoints.length > 1 && (h("svg", { key: 'aa6460089c9f3157d2dea9396405b14ab8cc1710', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
66
+ return (h(Host, { key: '10ef620f19d72a8a5c3a12d0d98686bc69308a30' }, this.cursorTrailPoints.length > 1 && (h("svg", { key: 'd03403051e53422aaa28d6360aaa9c0391e3ef6a', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
67
67
  position: 'absolute',
68
68
  left: '0',
69
69
  top: '0',
@@ -207,7 +207,7 @@ export class KritzelEditor {
207
207
  }
208
208
  }
209
209
  render() {
210
- return (h(Host, { key: 'f4f7cb5fbb6b28bac0735d05c2d1ed788c8ef2a7' }, h("kritzel-workspace-manager", { key: 'bef6f248a06b7a6576687a82a5ea3eb81d3340c3', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), h("kritzel-engine", { key: '8ee352db87d94c367389059074842148e43d8d11', ref: el => (this.engineRef = el), workspace: this.activeWorkspace, scaleMax: this.scaleMax, scaleMin: this.scaleMin, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => (this.workspaces = event.detail) }), h("kritzel-controls", { key: '3e5bfa0fd473a551ba4ab7a7137aedbb3d22db19', class: { 'keyboard-open': this.isVirtualKeyboardOpen }, style: { display: this.isControlsVisible ? 'flex' : 'none' }, ref: el => (this.controlsRef = el), controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, onIsControlsReady: () => (this.isControlsReady = true) })));
210
+ return (h(Host, { key: '8dc4fa4d4c3512d3a0ac40d5ab67566720b8a3e4' }, h("kritzel-workspace-manager", { key: 'b7a032b8bb01b27af192719b46a3891037770a28', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), h("kritzel-engine", { key: '163c4aea9d07290c89e63931ed4a4cf0184757be', ref: el => (this.engineRef = el), workspace: this.activeWorkspace, scaleMax: this.scaleMax, scaleMin: this.scaleMin, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => (this.workspaces = event.detail) }), h("kritzel-controls", { key: '4c9307c3831f2b179a446265f3226b0ae1541afc', class: { 'keyboard-open': this.isVirtualKeyboardOpen }, style: { display: this.isControlsVisible ? 'flex' : 'none' }, ref: el => (this.controlsRef = el), controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, onIsControlsReady: () => (this.isControlsReady = true) })));
211
211
  }
212
212
  static get is() { return "kritzel-editor"; }
213
213
  static get originalStyleUrls() {
@@ -31,10 +31,10 @@ export class KritzelEngine {
31
31
  if (newValue > ABSOLUTE_SCALE_MAX) {
32
32
  console.warn(`scaleMax cannot be greater than ${ABSOLUTE_SCALE_MAX}.`);
33
33
  this.scaleMax = ABSOLUTE_SCALE_MAX;
34
- this.core.store.setState('scaleMax', this.scaleMax);
34
+ this.core.store.state.scaleMax = this.scaleMax;
35
35
  }
36
36
  else {
37
- this.core.store.setState('scaleMax', newValue);
37
+ this.core.store.state.scaleMax = newValue;
38
38
  }
39
39
  }
40
40
  scaleMin = ABSOLUTE_SCALE_MIN;
@@ -42,10 +42,10 @@ export class KritzelEngine {
42
42
  if (newValue < ABSOLUTE_SCALE_MIN) {
43
43
  console.warn(`scaleMin cannot be less than ${ABSOLUTE_SCALE_MIN}.`);
44
44
  this.scaleMin = ABSOLUTE_SCALE_MIN;
45
- this.core.store.setState('scaleMin', this.scaleMin);
45
+ this.core.store.state.scaleMin = this.scaleMin;
46
46
  }
47
47
  else {
48
- this.core.store.setState('scaleMin', newValue);
48
+ this.core.store.state.scaleMin = newValue;
49
49
  }
50
50
  }
51
51
  isEngineReady;
@@ -152,11 +152,11 @@ export class KritzelEngine {
152
152
  tool?.onActivate();
153
153
  }
154
154
  async disable() {
155
- this.core.store.setState('isEnabled', false);
155
+ this.core.store.state.isEnabled = false;
156
156
  this.core.rerender();
157
157
  }
158
158
  async enable() {
159
- this.core.store.setState('isEnabled', true);
159
+ this.core.store.state.isEnabled = true;
160
160
  this.core.rerender();
161
161
  }
162
162
  async delete() {
@@ -188,10 +188,10 @@ export class KritzelEngine {
188
188
  }
189
189
  async hideContextMenu() {
190
190
  this.core.store.state.pointers.clear();
191
- this.core.store.setState('isContextMenuVisible', false);
192
- this.core.store.setState('selectionBox', null);
193
- this.core.store.setState('isSelecting', false);
194
- this.core.store.setState('isEnabled', true);
191
+ this.core.store.state.isContextMenuVisible = false;
192
+ this.core.store.state.selectionBox = null;
193
+ this.core.store.state.isSelecting = false;
194
+ this.core.store.state.isEnabled = true;
195
195
  this.core.rerender();
196
196
  }
197
197
  async getObjectById(id) {
@@ -293,7 +293,7 @@ export class KritzelEngine {
293
293
  await this.core.initializeWorkspace(this.workspace);
294
294
  this._registerStateChangeListeners();
295
295
  if (this.core.store.state.isReady === false) {
296
- this.core.store.setState('isReady', true);
296
+ this.core.store.state.isReady = true;
297
297
  this.isEngineReady.emit(this.core.store.state);
298
298
  }
299
299
  }
@@ -304,8 +304,8 @@ export class KritzelEngine {
304
304
  if (!(activeTool instanceof KritzelSelectionTool)) {
305
305
  this.core.clearSelection();
306
306
  }
307
- this.core.store.setState('skipContextMenu', false);
308
- this.core.store.setState('copiedObjects', null);
307
+ this.core.store.state.skipContextMenu = false;
308
+ this.core.store.state.copiedObjects = null;
309
309
  this.activeToolChange.emit(activeTool);
310
310
  KritzelKeyboardHelper.forceHideKeyboard();
311
311
  }
@@ -314,7 +314,9 @@ export class KritzelEngine {
314
314
  const baseHandleSizePx = computedStyle.getPropertyValue('--kritzel-selection-handle-size').trim() || '6px';
315
315
  const baseHandleSize = parseFloat(baseHandleSizePx);
316
316
  const baseHandleTouchSize = baseHandleSize * 2 < 14 ? 14 : baseHandleSize;
317
- return (h(Host, { key: 'b65542448b46000bfb0f467b503b2c9d9e603eaa' }, h("div", { key: '8197e8fe5e768f89d5861cc04d4343d5753b8f88', class: "debug-panel", style: { display: this.core.store.state.debugInfo.showViewportInfo ? 'block' : 'none' } }, h("div", { key: '97b720f029fb8034453f28df04779011d641105e' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), h("div", { key: 'e4601378a7d3dc92e66edcd5b7ff0022f890c1e3' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), h("div", { key: '2506d664411df86fd4d59ee703dc1487c7394f15' }, "TranslateX: ", this.core.store.state?.translateX), h("div", { key: 'cada25c03ba66f54433cd09b83d9826f79c94c43' }, "TranslateY: ", this.core.store.state?.translateY), h("div", { key: '91853038c5c83116e9ffc296e9acc3b525bbed21' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), h("div", { key: '0d3f9d47a5c5f9adab73a44436b214b537f5dd57' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), h("div", { key: '079f2314aed15ea9b95ace2be564ff8e0f60acaa' }, "Scale: ", this.core.store.state?.scale), h("div", { key: '7d83d8ef32077e9b8d3bd1ddf23e5e1bcb187d0c' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), h("div", { key: 'a63d135300e0a24b20e4ea4b631e123a0c492947' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), h("div", { key: '258d3b009ea75024fc0d2d06000c7c4228312640' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), h("div", { key: 'c4dcff04abf12c675d995bad82407d0f5047ebd7' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), h("div", { key: 'fcd7bc6d221d0d3eb294ec7f6526a604ccc539d2' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), h("div", { key: '416ac549246b7a43bf644c536acbff1fb292eb52' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), h("div", { key: '7d061a0515e33ce836bb550250330c4e2819bc14' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), h("div", { key: '1debb3ee3e6a8297d427d09f61c8df8827bcfa37' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), h("div", { key: '7d0fbcbc3e4c40ba21d144afd7d7b56b14227ddc' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), h("div", { key: '90f5c8d1cf60eb90bb5d136d3457a97d831e361c' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), h("div", { key: '122a2ad39d27d6f242a286bb2a8298687ab8cbb2' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), h("div", { key: 'f5515be35f5037ec256198f2f916c61b78ab4ec2' }, "PointerX: ", this.core.store.state?.pointerX), h("div", { key: '2c16ecb22f4063450ef7d17be93ec1a0434a5abd' }, "PointerY: ", this.core.store.state?.pointerY), h("div", { key: '69b531a94a9b7430d70ce80ef3247211c67a516e' }, "SelectedObjects: ", this.core.store.state.selectionGroup?.objects.length || 0)), h("div", { key: '52b6e44b6fb2b59743f3c48fb1cc2616b19308c7', id: "origin", class: "origin", style: {
317
+ const viewportCenterX = (this.core.store.state.viewportWidth / 2) + this.core.store.state.translateX;
318
+ const viewportCenterY = (this.core.store.state.viewportHeight / 2) + this.core.store.state.translateY;
319
+ return (h(Host, { key: 'e14b9b0d5ece944a28dbdfd55cd15d3889d344ca' }, h("div", { key: '5bb0cf225392a46c81ccc3fc9cecf08ccf5451dd', class: "debug-panel", style: { display: this.core.store.state.debugInfo.showViewportInfo ? 'block' : 'none' } }, h("div", { key: '49c54b5c2cf67a3bf98319a87cc6bf43738e260a' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), h("div", { key: 'c094fbdee828a5699901e5ba09981fdd2970533a' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), h("div", { key: '0b260c50045a2dc90f5131bdec5007c5260f435f' }, "TranslateX: ", this.core.store.state?.translateX), h("div", { key: '36ac3660b4dbc902cc6ec4c042f63b03a8b5f38e' }, "TranslateY: ", this.core.store.state?.translateY), h("div", { key: '4d74e2b8b8df35a8f2423e8210662d614e98c9f3' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), h("div", { key: '2c583b35f9b975191bd30f5bcc44a847d442a75b' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), h("div", { key: 'b8f4de7566c250e637f7fb161ee5d4afcf55a862' }, "Scale: ", this.core.store.state?.scale), h("div", { key: '615063733b8a598d24c090397cbda94196f77861' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), h("div", { key: '66f5d805c6a824bccef568b137a4674007050a1e' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), h("div", { key: '91f0313f2cfbc7f123be53d8611d0e5f3cfadfae' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), h("div", { key: '944af3ec28b0e7dcf4696477adbd3182d2371196' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), h("div", { key: '82cfb1b949a3612f786a2d41074286996c9b18e7' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), h("div", { key: '743ced0847a98b34c404216e888fc24445e291d5' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), h("div", { key: '56f7de0f7eb99ee11f4e9c30f14b961c6498415a' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), h("div", { key: '41c55a52a4a3cb1a04e0bb0249e7095a57c52f78' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), h("div", { key: 'f02fbeae6e0e0cb9aca887314f4a5753712373fa' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), h("div", { key: '1ff7b7f138a51c5cc16894483c908f7bde31be40' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), h("div", { key: '25b4a1c609dc968e70636fcf73d330996a137342' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), h("div", { key: 'd9de8d6553664633a0462130ee71fbbb80984ff4' }, "PointerX: ", this.core.store.state?.pointerX), h("div", { key: '3f7d3604c3da89fc3c98fb4704474d41773a51fa' }, "PointerY: ", this.core.store.state?.pointerY), h("div", { key: 'e32a4265b7ca234766e4ceb5d98c7898917423ef' }, "SelectedObjects: ", this.core.store.state.selectionGroup?.objects.length || 0), h("div", { key: 'c0d4bd0aab851c1ab4c1b1d2fd99db7397538dcd' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")")), h("div", { key: '47cdf9bd5ae9e88ac39376852b4fcf8ebbf44626', id: "origin", class: "origin", style: {
318
320
  transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
319
321
  } }, this.core.store.state.objectsMap.allObjects()?.map(object => {
320
322
  return (h("div", { key: object.id, style: {
@@ -433,7 +435,7 @@ export class KritzelEngine {
433
435
  transform: this.core.store.state.currentPath?.transformationMatrix,
434
436
  transformOrigin: 'top left',
435
437
  overflow: 'visible',
436
- }, viewBox: this.core.store.state.currentPath?.viewBox }, h("path", { key: '2fa37f509acc3573049fc01f22e41fdda6e4acd9', d: this.core.store.state.currentPath?.d, fill: this.core.store.state.currentPath?.fill, stroke: this.core.store.state.currentPath?.stroke }))), this.core.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: 'a17f9ff108cf509f3d6e20fc434cffb7a4d72530', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.state.selectionGroup?.objects || [], style: {
438
+ }, viewBox: this.core.store.state.currentPath?.viewBox }, h("path", { key: '318e360ef363dd90e613e2bc35233d6b045fe6df', d: this.core.store.state.currentPath?.d, fill: this.core.store.state.currentPath?.fill, stroke: this.core.store.state.currentPath?.stroke }))), this.core.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: '455cd5c01932246ef318e83934b7869edd063a99', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.state.selectionGroup?.objects || [], style: {
437
439
  position: 'fixed',
438
440
  left: `${this.core.store.state.contextMenuX}px`,
439
441
  top: `${this.core.store.state.contextMenuY}px`,
@@ -444,7 +446,7 @@ export class KritzelEngine {
444
446
  y: (-this.core.store.state.translateY + this.core.store.state.contextMenuY) / this.core.store.state.scale,
445
447
  }, this.core.store.state.selectionGroup?.objects);
446
448
  this.hideContextMenu();
447
- }, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof KritzelEraserTool && !this.core.store.state.isScaling && h("kritzel-cursor-trail", { key: 'a22fa1dba0442fa77a7660ca230d4bb0236e10ea', core: this.core })));
449
+ }, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof KritzelEraserTool && !this.core.store.state.isScaling && h("kritzel-cursor-trail", { key: 'a70d8765402f0938e9df4c1cc2f8c9a13dfa4445', core: this.core })));
448
450
  }
449
451
  static get is() { return "kritzel-engine"; }
450
452
  static get encapsulation() { return "shadow"; }