kritzel-stencil 0.0.154 → 0.0.156

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 (412) hide show
  1. package/dist/stencil/default-text-tool.config-DKpRP4XR.js +1441 -0
  2. package/dist/stencil/default-text-tool.config-DKpRP4XR.js.map +1 -0
  3. package/dist/{components/p-l10It7Nm.js → stencil/devices.helper-l10It7Nm.js} +2 -2
  4. package/dist/stencil/devices.helper-l10It7Nm.js.map +1 -0
  5. package/dist/stencil/engine.constants-DsjjAmnl.js +7 -0
  6. package/dist/stencil/engine.constants-DsjjAmnl.js.map +1 -0
  7. package/dist/{components/p-D8W6LE-c.js → stencil/event-button.enum-D8W6LE-c.js} +2 -2
  8. package/dist/stencil/event-button.enum-D8W6LE-c.js.map +1 -0
  9. package/dist/{components/p-C6qB08BS.js → stencil/html.helper-C6qB08BS.js} +2 -2
  10. package/dist/{collection/helpers/html.helper.js.map → stencil/html.helper-C6qB08BS.js.map} +1 -1
  11. package/dist/{collection/classes/registries/icon-registry.class.js → stencil/icon-registry.class-BtT8riKh.js} +6 -2
  12. package/dist/stencil/icon-registry.class-BtT8riKh.js.map +1 -0
  13. package/dist/stencil/index-DniO_INI.js +4395 -0
  14. package/dist/stencil/index-DniO_INI.js.map +1 -0
  15. package/dist/stencil/index.esm.js +18 -2
  16. package/dist/stencil/index.esm.js.map +1 -1
  17. package/dist/{esm → stencil}/kritzel-brush-style.entry.js +3 -3
  18. package/dist/stencil/kritzel-color-palette.entry.esm.js.map +1 -0
  19. package/dist/{components/p-D1uj4A4F.js → stencil/kritzel-color-palette.entry.js} +9 -39
  20. package/dist/stencil/kritzel-color.entry.esm.js.map +1 -0
  21. package/dist/{components/p-D4yvhd1d.js → stencil/kritzel-color.entry.js} +8 -30
  22. package/dist/stencil/kritzel-context-menu-BYgOEy-i.js +66 -0
  23. package/dist/stencil/kritzel-context-menu-BYgOEy-i.js.map +1 -0
  24. package/dist/{components/p-C2sWlNsJ.js → stencil/kritzel-context-menu-GdU9xEKC.js} +12 -41
  25. package/dist/stencil/kritzel-context-menu-GdU9xEKC.js.map +1 -0
  26. package/dist/stencil/kritzel-context-menu.entry.esm.js.map +1 -0
  27. package/dist/stencil/kritzel-context-menu.entry.js +3 -0
  28. package/dist/stencil/kritzel-control-brush-config.entry.esm.js.map +1 -0
  29. package/dist/stencil/kritzel-control-brush-config.entry.js +54 -0
  30. package/dist/stencil/kritzel-control-text-config.entry.esm.js.map +1 -0
  31. package/dist/stencil/kritzel-control-text-config.entry.js +42 -0
  32. package/dist/stencil/kritzel-controls.entry.esm.js.map +1 -0
  33. package/dist/{components/p-1lIHoOlH.js → stencil/kritzel-controls.entry.js} +17 -115
  34. package/dist/stencil/kritzel-cursor-trail.entry.esm.js.map +1 -0
  35. package/dist/{components/p-CLt3HMl6.js → stencil/kritzel-cursor-trail.entry.js} +10 -33
  36. package/dist/stencil/kritzel-dropdown.entry.esm.js.map +1 -0
  37. package/dist/{components/p-CIXPLjCu.js → stencil/kritzel-dropdown.entry.js} +9 -39
  38. package/dist/stencil/kritzel-editor.entry.esm.js.map +1 -0
  39. package/dist/stencil/kritzel-editor.entry.js +248 -0
  40. package/dist/stencil/kritzel-engine.entry.esm.js.map +1 -0
  41. package/dist/{esm/kritzel-color_22.entry.js → stencil/kritzel-engine.entry.js} +287 -1844
  42. package/dist/stencil/kritzel-font-family.entry.esm.js.map +1 -0
  43. package/dist/{components/p-BgznZoBH.js → stencil/kritzel-font-family.entry.js} +9 -37
  44. package/dist/{components/p-DDmSxM5f.js.map → stencil/kritzel-font-size.entry.esm.js.map} +1 -1
  45. package/dist/stencil/kritzel-font-size.entry.js +28 -0
  46. package/dist/stencil/kritzel-font.entry.esm.js.map +1 -0
  47. package/dist/stencil/kritzel-font.entry.js +23 -0
  48. package/dist/stencil/kritzel-icon.entry.esm.js.map +1 -0
  49. package/dist/stencil/kritzel-icon.entry.js +29 -0
  50. package/dist/stencil/kritzel-menu-item.entry.esm.js.map +1 -0
  51. package/dist/{components/p-CsA9M6me.js → stencil/kritzel-menu-item.entry.js} +16 -174
  52. package/dist/stencil/kritzel-menu.entry.esm.js.map +1 -0
  53. package/dist/stencil/kritzel-menu.entry.js +72 -0
  54. package/dist/stencil/kritzel-portal.entry.esm.js.map +1 -0
  55. package/dist/{components/p-D5Wq4x4r.js → stencil/kritzel-portal.entry.js} +11 -37
  56. package/dist/stencil/kritzel-split-button.entry.esm.js.map +1 -0
  57. package/dist/{components/p-TdCTkEu0.js → stencil/kritzel-split-button.entry.js} +18 -72
  58. package/dist/stencil/kritzel-stroke-size.entry.esm.js.map +1 -0
  59. package/dist/stencil/kritzel-stroke-size.entry.js +27 -0
  60. package/dist/stencil/kritzel-tooltip.entry.esm.js.map +1 -0
  61. package/dist/{components/p-CTP479Lf.js → stencil/kritzel-tooltip.entry.js} +11 -39
  62. package/dist/stencil/kritzel-utility-panel.entry.esm.js.map +1 -0
  63. package/dist/{components/p-DAfkuR8U.js → stencil/kritzel-utility-panel.entry.js} +11 -38
  64. package/dist/stencil/kritzel-workspace-manager.entry.esm.js.map +1 -0
  65. package/dist/{components/p-CK6no3mi.js → stencil/kritzel-workspace-manager.entry.js} +13 -68
  66. package/dist/stencil/loader.esm.js.map +1 -1
  67. package/dist/{components/p-B0kd2rUI.js → stencil/object.helper-B0kd2rUI.js} +2 -2
  68. package/dist/stencil/object.helper-B0kd2rUI.js.map +1 -0
  69. package/dist/stencil/stencil.esm.js +48 -2
  70. package/dist/stencil/stencil.esm.js.map +1 -1
  71. package/dist/stencil/sync-config.interface-lKfyG1EN.js +19839 -0
  72. package/dist/stencil/sync-config.interface-lKfyG1EN.js.map +1 -0
  73. package/dist/{components/p-CBYBurdY.js → stencil/text-tool.class-C0GbC5zQ.js} +729 -25
  74. package/dist/stencil/text-tool.class-C0GbC5zQ.js.map +1 -0
  75. package/dist/{components/p-n789Y3S-.js → stencil/workspace.class-n789Y3S-.js} +2 -2
  76. package/dist/stencil/workspace.class-n789Y3S-.js.map +1 -0
  77. package/dist/types/classes/structures/object-map.structure.d.ts +9 -1
  78. package/dist/types/classes/structures/quadtree.structure.d.ts +18 -0
  79. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +1 -0
  80. package/dist/types/interfaces/bounding-box.interface.d.ts +1 -0
  81. package/package.json +1 -1
  82. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -8
  83. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
  84. package/dist/cjs/default-text-tool.config-BySzvIox.js +0 -31267
  85. package/dist/cjs/default-text-tool.config-BySzvIox.js.map +0 -1
  86. package/dist/cjs/index-Cj__YTlG.js +0 -1650
  87. package/dist/cjs/index-Cj__YTlG.js.map +0 -1
  88. package/dist/cjs/index.cjs.js +0 -1465
  89. package/dist/cjs/index.cjs.js.map +0 -1
  90. package/dist/cjs/kritzel-brush-style.cjs.entry.js +0 -32
  91. package/dist/cjs/kritzel-brush-style.entry.cjs.js.map +0 -1
  92. package/dist/cjs/kritzel-color_22.cjs.entry.js +0 -20798
  93. package/dist/cjs/loader.cjs.js +0 -14
  94. package/dist/cjs/loader.cjs.js.map +0 -1
  95. package/dist/cjs/stencil.cjs.js +0 -26
  96. package/dist/cjs/stencil.cjs.js.map +0 -1
  97. package/dist/collection/classes/core/core.class.js +0 -461
  98. package/dist/collection/classes/core/core.class.js.map +0 -1
  99. package/dist/collection/classes/core/reviver.class.js +0 -71
  100. package/dist/collection/classes/core/reviver.class.js.map +0 -1
  101. package/dist/collection/classes/core/store.class.js +0 -72
  102. package/dist/collection/classes/core/store.class.js.map +0 -1
  103. package/dist/collection/classes/core/viewport.class.js +0 -190
  104. package/dist/collection/classes/core/viewport.class.js.map +0 -1
  105. package/dist/collection/classes/core/workspace.class.js +0 -41
  106. package/dist/collection/classes/core/workspace.class.js.map +0 -1
  107. package/dist/collection/classes/handlers/base.handler.js +0 -8
  108. package/dist/collection/classes/handlers/base.handler.js.map +0 -1
  109. package/dist/collection/classes/handlers/context-menu.handler.js +0 -62
  110. package/dist/collection/classes/handlers/context-menu.handler.js.map +0 -1
  111. package/dist/collection/classes/handlers/hover.handler.js +0 -19
  112. package/dist/collection/classes/handlers/hover.handler.js.map +0 -1
  113. package/dist/collection/classes/handlers/key.handler.js +0 -58
  114. package/dist/collection/classes/handlers/key.handler.js.map +0 -1
  115. package/dist/collection/classes/handlers/move.handler.js +0 -149
  116. package/dist/collection/classes/handlers/move.handler.js.map +0 -1
  117. package/dist/collection/classes/handlers/resize.handler.js +0 -184
  118. package/dist/collection/classes/handlers/resize.handler.js.map +0 -1
  119. package/dist/collection/classes/handlers/rotation.handler.js +0 -116
  120. package/dist/collection/classes/handlers/rotation.handler.js.map +0 -1
  121. package/dist/collection/classes/handlers/selection.handler.js +0 -246
  122. package/dist/collection/classes/handlers/selection.handler.js.map +0 -1
  123. package/dist/collection/classes/objects/base-object.class.js +0 -232
  124. package/dist/collection/classes/objects/base-object.class.js.map +0 -1
  125. package/dist/collection/classes/objects/custom-element.class.js +0 -62
  126. package/dist/collection/classes/objects/custom-element.class.js.map +0 -1
  127. package/dist/collection/classes/objects/image.class.js +0 -56
  128. package/dist/collection/classes/objects/image.class.js.map +0 -1
  129. package/dist/collection/classes/objects/path.class.js +0 -284
  130. package/dist/collection/classes/objects/path.class.js.map +0 -1
  131. package/dist/collection/classes/objects/selection-box.class.js +0 -19
  132. package/dist/collection/classes/objects/selection-box.class.js.map +0 -1
  133. package/dist/collection/classes/objects/selection-group.class.js +0 -226
  134. package/dist/collection/classes/objects/selection-group.class.js.map +0 -1
  135. package/dist/collection/classes/objects/text.class.js +0 -261
  136. package/dist/collection/classes/objects/text.class.js.map +0 -1
  137. package/dist/collection/classes/providers/broadcast-sync-provider.class.js +0 -93
  138. package/dist/collection/classes/providers/broadcast-sync-provider.class.js.map +0 -1
  139. package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js +0 -232
  140. package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js.map +0 -1
  141. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js +0 -35
  142. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js.map +0 -1
  143. package/dist/collection/classes/providers/websocket-sync-provider.class.js +0 -89
  144. package/dist/collection/classes/providers/websocket-sync-provider.class.js.map +0 -1
  145. package/dist/collection/classes/registries/icon-registry.class.js.map +0 -1
  146. package/dist/collection/classes/registries/tool.registry.js +0 -18
  147. package/dist/collection/classes/registries/tool.registry.js.map +0 -1
  148. package/dist/collection/classes/structures/app-state-map.structure.js +0 -189
  149. package/dist/collection/classes/structures/app-state-map.structure.js.map +0 -1
  150. package/dist/collection/classes/structures/object-map.structure.js +0 -310
  151. package/dist/collection/classes/structures/object-map.structure.js.map +0 -1
  152. package/dist/collection/classes/tools/base-tool.class.js +0 -38
  153. package/dist/collection/classes/tools/base-tool.class.js.map +0 -1
  154. package/dist/collection/classes/tools/brush-tool.class.js +0 -133
  155. package/dist/collection/classes/tools/brush-tool.class.js.map +0 -1
  156. package/dist/collection/classes/tools/eraser-tool.class.js +0 -85
  157. package/dist/collection/classes/tools/eraser-tool.class.js.map +0 -1
  158. package/dist/collection/classes/tools/image-tool.class.js +0 -83
  159. package/dist/collection/classes/tools/image-tool.class.js.map +0 -1
  160. package/dist/collection/classes/tools/selection-tool.class.js +0 -164
  161. package/dist/collection/classes/tools/selection-tool.class.js.map +0 -1
  162. package/dist/collection/classes/tools/text-tool.class.js +0 -108
  163. package/dist/collection/classes/tools/text-tool.class.js.map +0 -1
  164. package/dist/collection/collection-manifest.json +0 -34
  165. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.css +0 -10
  166. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +0 -153
  167. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +0 -1
  168. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +0 -34
  169. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +0 -928
  170. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +0 -1
  171. package/dist/collection/components/core/kritzel-engine/kritzel-engine.css +0 -73
  172. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +0 -1593
  173. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +0 -1
  174. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.css +0 -44
  175. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +0 -98
  176. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +0 -1
  177. package/dist/collection/components/shared/kritzel-color/kritzel-color.css +0 -21
  178. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +0 -107
  179. package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +0 -1
  180. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +0 -46
  181. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +0 -145
  182. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +0 -1
  183. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +0 -53
  184. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +0 -218
  185. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +0 -1
  186. package/dist/collection/components/shared/kritzel-font/kritzel-font.css +0 -10
  187. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +0 -90
  188. package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +0 -1
  189. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +0 -48
  190. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +0 -114
  191. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +0 -1
  192. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +0 -30
  193. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +0 -110
  194. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +0 -1
  195. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +0 -18
  196. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +0 -94
  197. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +0 -1
  198. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +0 -27
  199. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +0 -291
  200. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +0 -1
  201. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +0 -145
  202. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +0 -280
  203. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +0 -1
  204. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +0 -310
  205. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +0 -1
  206. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +0 -78
  207. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +0 -406
  208. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +0 -1
  209. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +0 -28
  210. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +0 -89
  211. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +0 -1
  212. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +0 -17
  213. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +0 -251
  214. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +0 -1
  215. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +0 -55
  216. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +0 -172
  217. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +0 -1
  218. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +0 -19
  219. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +0 -135
  220. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +0 -1
  221. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.css +0 -19
  222. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +0 -115
  223. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +0 -1
  224. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +0 -127
  225. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +0 -312
  226. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +0 -1
  227. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +0 -44
  228. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +0 -111
  229. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +0 -1
  230. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css +0 -5
  231. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +0 -255
  232. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +0 -1
  233. package/dist/collection/configs/default-brush-tool.config.js +0 -60
  234. package/dist/collection/configs/default-brush-tool.config.js.map +0 -1
  235. package/dist/collection/configs/default-engine-config.js +0 -53
  236. package/dist/collection/configs/default-engine-config.js.map +0 -1
  237. package/dist/collection/configs/default-sync.config.js +0 -10
  238. package/dist/collection/configs/default-sync.config.js.map +0 -1
  239. package/dist/collection/configs/default-text-tool.config.js +0 -32
  240. package/dist/collection/configs/default-text-tool.config.js.map +0 -1
  241. package/dist/collection/constants/core.constants.js +0 -2
  242. package/dist/collection/constants/core.constants.js.map +0 -1
  243. package/dist/collection/constants/engine.constants.js +0 -3
  244. package/dist/collection/constants/engine.constants.js.map +0 -1
  245. package/dist/collection/enums/event-button.enum.js +0 -7
  246. package/dist/collection/enums/event-button.enum.js.map +0 -1
  247. package/dist/collection/enums/handle-type.enum.js +0 -8
  248. package/dist/collection/enums/handle-type.enum.js.map +0 -1
  249. package/dist/collection/helpers/class.helper.js +0 -6
  250. package/dist/collection/helpers/class.helper.js.map +0 -1
  251. package/dist/collection/helpers/devices.helper.js +0 -26
  252. package/dist/collection/helpers/devices.helper.js.map +0 -1
  253. package/dist/collection/helpers/event.helper.js +0 -51
  254. package/dist/collection/helpers/event.helper.js.map +0 -1
  255. package/dist/collection/helpers/geometry.helper.js +0 -53
  256. package/dist/collection/helpers/geometry.helper.js.map +0 -1
  257. package/dist/collection/helpers/html.helper.js +0 -64
  258. package/dist/collection/helpers/keyboard.helper.js +0 -49
  259. package/dist/collection/helpers/keyboard.helper.js.map +0 -1
  260. package/dist/collection/helpers/math.helper.js +0 -6
  261. package/dist/collection/helpers/math.helper.js.map +0 -1
  262. package/dist/collection/helpers/object.helper.js +0 -12
  263. package/dist/collection/helpers/object.helper.js.map +0 -1
  264. package/dist/collection/index.js +0 -30
  265. package/dist/collection/index.js.map +0 -1
  266. package/dist/collection/interfaces/bounding-box.interface.js +0 -2
  267. package/dist/collection/interfaces/bounding-box.interface.js.map +0 -1
  268. package/dist/collection/interfaces/clonable.interface.js +0 -2
  269. package/dist/collection/interfaces/clonable.interface.js.map +0 -1
  270. package/dist/collection/interfaces/context-menu-item.interface.js +0 -2
  271. package/dist/collection/interfaces/context-menu-item.interface.js.map +0 -1
  272. package/dist/collection/interfaces/debug-info.interface.js +0 -2
  273. package/dist/collection/interfaces/debug-info.interface.js.map +0 -1
  274. package/dist/collection/interfaces/engine-state.interface.js +0 -2
  275. package/dist/collection/interfaces/engine-state.interface.js.map +0 -1
  276. package/dist/collection/interfaces/menu-item.interface.js +0 -2
  277. package/dist/collection/interfaces/menu-item.interface.js.map +0 -1
  278. package/dist/collection/interfaces/object.interface.js +0 -2
  279. package/dist/collection/interfaces/object.interface.js.map +0 -1
  280. package/dist/collection/interfaces/path-options.interface.js +0 -2
  281. package/dist/collection/interfaces/path-options.interface.js.map +0 -1
  282. package/dist/collection/interfaces/point.interface.js +0 -2
  283. package/dist/collection/interfaces/point.interface.js.map +0 -1
  284. package/dist/collection/interfaces/polygon.interface.js +0 -2
  285. package/dist/collection/interfaces/polygon.interface.js.map +0 -1
  286. package/dist/collection/interfaces/selection-state.interface.js +0 -2
  287. package/dist/collection/interfaces/selection-state.interface.js.map +0 -1
  288. package/dist/collection/interfaces/serializable.interface.js +0 -2
  289. package/dist/collection/interfaces/serializable.interface.js.map +0 -1
  290. package/dist/collection/interfaces/shortcut.interface.js +0 -2
  291. package/dist/collection/interfaces/shortcut.interface.js.map +0 -1
  292. package/dist/collection/interfaces/sync-config.interface.js +0 -2
  293. package/dist/collection/interfaces/sync-config.interface.js.map +0 -1
  294. package/dist/collection/interfaces/sync-provider.interface.js +0 -2
  295. package/dist/collection/interfaces/sync-provider.interface.js.map +0 -1
  296. package/dist/collection/interfaces/tool.interface.js +0 -2
  297. package/dist/collection/interfaces/tool.interface.js.map +0 -1
  298. package/dist/collection/interfaces/toolbar-control.interface.js +0 -2
  299. package/dist/collection/interfaces/toolbar-control.interface.js.map +0 -1
  300. package/dist/collection/interfaces/undo-state.interface.js +0 -2
  301. package/dist/collection/interfaces/undo-state.interface.js.map +0 -1
  302. package/dist/collection/types/deep-readonly.type.js +0 -2
  303. package/dist/collection/types/deep-readonly.type.js.map +0 -1
  304. package/dist/collection/types/state.types.js +0 -2
  305. package/dist/collection/types/state.types.js.map +0 -1
  306. package/dist/components/index.js +0 -1477
  307. package/dist/components/index.js.map +0 -1
  308. package/dist/components/kritzel-brush-style.js +0 -67
  309. package/dist/components/kritzel-brush-style.js.map +0 -1
  310. package/dist/components/kritzel-color-palette.js +0 -9
  311. package/dist/components/kritzel-color-palette.js.map +0 -1
  312. package/dist/components/kritzel-color.js +0 -9
  313. package/dist/components/kritzel-color.js.map +0 -1
  314. package/dist/components/kritzel-context-menu.js +0 -9
  315. package/dist/components/kritzel-context-menu.js.map +0 -1
  316. package/dist/components/kritzel-control-brush-config.js +0 -9
  317. package/dist/components/kritzel-control-brush-config.js.map +0 -1
  318. package/dist/components/kritzel-control-text-config.js +0 -9
  319. package/dist/components/kritzel-control-text-config.js.map +0 -1
  320. package/dist/components/kritzel-controls.js +0 -9
  321. package/dist/components/kritzel-controls.js.map +0 -1
  322. package/dist/components/kritzel-cursor-trail.js +0 -9
  323. package/dist/components/kritzel-cursor-trail.js.map +0 -1
  324. package/dist/components/kritzel-dropdown.js +0 -9
  325. package/dist/components/kritzel-dropdown.js.map +0 -1
  326. package/dist/components/kritzel-editor.js +0 -516
  327. package/dist/components/kritzel-editor.js.map +0 -1
  328. package/dist/components/kritzel-engine.js +0 -9
  329. package/dist/components/kritzel-engine.js.map +0 -1
  330. package/dist/components/kritzel-font-family.js +0 -9
  331. package/dist/components/kritzel-font-family.js.map +0 -1
  332. package/dist/components/kritzel-font-size.js +0 -9
  333. package/dist/components/kritzel-font-size.js.map +0 -1
  334. package/dist/components/kritzel-font.js +0 -9
  335. package/dist/components/kritzel-font.js.map +0 -1
  336. package/dist/components/kritzel-icon.js +0 -9
  337. package/dist/components/kritzel-icon.js.map +0 -1
  338. package/dist/components/kritzel-menu-item.js +0 -9
  339. package/dist/components/kritzel-menu-item.js.map +0 -1
  340. package/dist/components/kritzel-menu.js +0 -9
  341. package/dist/components/kritzel-menu.js.map +0 -1
  342. package/dist/components/kritzel-portal.js +0 -9
  343. package/dist/components/kritzel-portal.js.map +0 -1
  344. package/dist/components/kritzel-split-button.js +0 -9
  345. package/dist/components/kritzel-split-button.js.map +0 -1
  346. package/dist/components/kritzel-stroke-size.js +0 -9
  347. package/dist/components/kritzel-stroke-size.js.map +0 -1
  348. package/dist/components/kritzel-tooltip.js +0 -9
  349. package/dist/components/kritzel-tooltip.js.map +0 -1
  350. package/dist/components/kritzel-utility-panel.js +0 -9
  351. package/dist/components/kritzel-utility-panel.js.map +0 -1
  352. package/dist/components/kritzel-workspace-manager.js +0 -9
  353. package/dist/components/kritzel-workspace-manager.js.map +0 -1
  354. package/dist/components/p-1lIHoOlH.js.map +0 -1
  355. package/dist/components/p-B0kd2rUI.js.map +0 -1
  356. package/dist/components/p-B4kxkVe-.js +0 -55
  357. package/dist/components/p-B4kxkVe-.js.map +0 -1
  358. package/dist/components/p-BQg4YML7.js +0 -106
  359. package/dist/components/p-BQg4YML7.js.map +0 -1
  360. package/dist/components/p-BfaEHdtM.js +0 -35434
  361. package/dist/components/p-BfaEHdtM.js.map +0 -1
  362. package/dist/components/p-BgznZoBH.js.map +0 -1
  363. package/dist/components/p-Bhtn9qay.js +0 -98
  364. package/dist/components/p-Bhtn9qay.js.map +0 -1
  365. package/dist/components/p-C2sWlNsJ.js.map +0 -1
  366. package/dist/components/p-C6qB08BS.js.map +0 -1
  367. package/dist/components/p-CBYBurdY.js.map +0 -1
  368. package/dist/components/p-CIXPLjCu.js.map +0 -1
  369. package/dist/components/p-CK6no3mi.js.map +0 -1
  370. package/dist/components/p-CLt3HMl6.js.map +0 -1
  371. package/dist/components/p-CTP479Lf.js.map +0 -1
  372. package/dist/components/p-CsA9M6me.js.map +0 -1
  373. package/dist/components/p-CwkUrTy1.js +0 -1367
  374. package/dist/components/p-CwkUrTy1.js.map +0 -1
  375. package/dist/components/p-D1uj4A4F.js.map +0 -1
  376. package/dist/components/p-D4yvhd1d.js.map +0 -1
  377. package/dist/components/p-D5Wq4x4r.js.map +0 -1
  378. package/dist/components/p-D8W6LE-c.js.map +0 -1
  379. package/dist/components/p-DAfkuR8U.js.map +0 -1
  380. package/dist/components/p-DDmSxM5f.js +0 -57
  381. package/dist/components/p-Ddh40W3x.js +0 -103
  382. package/dist/components/p-Ddh40W3x.js.map +0 -1
  383. package/dist/components/p-TdCTkEu0.js.map +0 -1
  384. package/dist/components/p-l10It7Nm.js.map +0 -1
  385. package/dist/components/p-n789Y3S-.js.map +0 -1
  386. package/dist/components/p-uuRJU2R1.js +0 -46
  387. package/dist/components/p-uuRJU2R1.js.map +0 -1
  388. package/dist/esm/app-globals-DQuL1Twl.js +0 -6
  389. package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
  390. package/dist/esm/default-text-tool.config-2YFQA3SF.js +0 -31208
  391. package/dist/esm/default-text-tool.config-2YFQA3SF.js.map +0 -1
  392. package/dist/esm/index-SGde3HXB.js +0 -1623
  393. package/dist/esm/index-SGde3HXB.js.map +0 -1
  394. package/dist/esm/index.js +0 -1449
  395. package/dist/esm/index.js.map +0 -1
  396. package/dist/esm/kritzel-brush-style.entry.js.map +0 -1
  397. package/dist/esm/loader.js +0 -12
  398. package/dist/esm/loader.js.map +0 -1
  399. package/dist/esm/stencil.js +0 -22
  400. package/dist/esm/stencil.js.map +0 -1
  401. package/dist/index.cjs.js +0 -1
  402. package/dist/index.js +0 -1
  403. package/dist/stencil/p-2YFQA3SF.js +0 -2
  404. package/dist/stencil/p-2YFQA3SF.js.map +0 -1
  405. package/dist/stencil/p-DQuL1Twl.js +0 -2
  406. package/dist/stencil/p-DQuL1Twl.js.map +0 -1
  407. package/dist/stencil/p-SGde3HXB.js +0 -3
  408. package/dist/stencil/p-SGde3HXB.js.map +0 -1
  409. package/dist/stencil/p-bb5b2f78.entry.js +0 -10
  410. package/dist/stencil/p-bb5b2f78.entry.js.map +0 -1
  411. package/dist/stencil/p-d702c5af.entry.js +0 -2
  412. package/dist/stencil/p-d702c5af.entry.js.map +0 -1
@@ -1,58 +0,0 @@
1
- import { KritzelToolRegistry } from "../registries/tool.registry";
2
- import { KritzelBaseHandler } from "./base.handler";
3
- export class KritzelKeyHandler extends KritzelBaseHandler {
4
- shortcuts = [
5
- // General
6
- { key: 'Escape', condition: c => !!c.store.selectionGroup, action: c => c.clearSelection() },
7
- { key: 'Delete', condition: c => !!c.store.selectionGroup, action: c => c.delete() },
8
- // Undo/Redo
9
- { key: 'z', ctrl: true, action: c => c.undo() },
10
- { key: 'y', ctrl: true, action: c => c.redo() },
11
- // Tool selection
12
- { key: 's', ctrl: true, action: () => this.switchTool('selection') },
13
- { key: 'b', ctrl: true, action: () => this.switchTool('brush') },
14
- { key: 'e', ctrl: true, action: () => this.switchTool('eraser') },
15
- { key: 'i', ctrl: true, action: () => this.switchTool('image') },
16
- { key: 'x', ctrl: true, action: () => this.switchTool('text') },
17
- // Clipboard
18
- {
19
- key: 'c',
20
- ctrl: true,
21
- condition: c => !!c.store.selectionGroup,
22
- action: c => {
23
- c.copy();
24
- c.rerender();
25
- },
26
- },
27
- { key: 'v', ctrl: true, condition: c => !!c.store.state.copiedObjects && !c.store.activeText, action: c => c.paste() },
28
- // Text editing
29
- // { key: 'a', ctrl: true, condition: c => !!c.store.activeText, action: c => c.store.activeText.selectAll() },
30
- // { key: 'v', ctrl: true, condition: c => !!c.store.activeText, action: c => c.store.activeText.insertFromClipboard() },
31
- // Object layering
32
- { key: '+', ctrl: true, condition: c => !!c.store.selectionGroup, action: c => c.bringForward() },
33
- { key: '-', ctrl: true, condition: c => !!c.store.selectionGroup, action: c => c.sendBackward() },
34
- { key: '*', shift: true, condition: c => !!c.store.selectionGroup, action: c => c.bringToFront() },
35
- { key: '_', shift: true, condition: c => !!c.store.selectionGroup, action: c => c.sendToBack() },
36
- ];
37
- constructor(core) {
38
- super(core);
39
- }
40
- switchTool(tool) {
41
- const toolInstance = KritzelToolRegistry.getTool(tool);
42
- this._core.store.setState('activeTool', toolInstance);
43
- this._core.deselectAllObjects();
44
- toolInstance.onActivate();
45
- }
46
- handleKeyDown(event) {
47
- this._core.store.state.isCtrlKeyPressed = event.ctrlKey;
48
- const shortcut = this.shortcuts.find(s => s.key === event.key && !!s.ctrl === event.ctrlKey && !!s.shift === event.shiftKey && (!s.condition || s.condition(this._core)));
49
- if (shortcut) {
50
- event.preventDefault();
51
- shortcut.action(this._core);
52
- }
53
- }
54
- handleKeyUp(event) {
55
- this._core.store.state.isCtrlKeyPressed = event.ctrlKey;
56
- }
57
- }
58
- //# sourceMappingURL=key.handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"key.handler.js","sourceRoot":"","sources":["../../../src/classes/handlers/key.handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelToolRegistry } from '../registries/tool.registry';\r\nimport { KritzelBaseHandler } from './base.handler';\r\nimport { KritzelCore } from '../core/core.class';\r\nimport { KritzelShortcut } from '../../interfaces/shortcut.interface';\r\n\r\nexport class KritzelKeyHandler extends KritzelBaseHandler {\r\n\r\n private shortcuts: KritzelShortcut[] = [\r\n // General\r\n { key: 'Escape', condition: c => !!c.store.selectionGroup, action: c => c.clearSelection() },\r\n { key: 'Delete', condition: c => !!c.store.selectionGroup, action: c => c.delete() },\r\n\r\n // Undo/Redo\r\n { key: 'z', ctrl: true, action: c => c.undo() },\r\n { key: 'y', ctrl: true, action: c => c.redo() },\r\n\r\n // Tool selection\r\n { key: 's', ctrl: true, action: () => this.switchTool('selection') },\r\n { key: 'b', ctrl: true, action: () => this.switchTool('brush') },\r\n { key: 'e', ctrl: true, action: () => this.switchTool('eraser') },\r\n { key: 'i', ctrl: true, action: () => this.switchTool('image') },\r\n { key: 'x', ctrl: true, action: () => this.switchTool('text') },\r\n\r\n // Clipboard\r\n {\r\n key: 'c',\r\n ctrl: true,\r\n condition: c => !!c.store.selectionGroup,\r\n action: c => {\r\n c.copy();\r\n c.rerender();\r\n },\r\n },\r\n { key: 'v', ctrl: true, condition: c => !!c.store.state.copiedObjects && !c.store.activeText, action: c => c.paste() },\r\n\r\n // Text editing\r\n // { key: 'a', ctrl: true, condition: c => !!c.store.activeText, action: c => c.store.activeText.selectAll() },\r\n // { key: 'v', ctrl: true, condition: c => !!c.store.activeText, action: c => c.store.activeText.insertFromClipboard() },\r\n\r\n // Object layering\r\n { key: '+', ctrl: true, condition: c => !!c.store.selectionGroup, action: c => c.bringForward() },\r\n { key: '-', ctrl: true, condition: c => !!c.store.selectionGroup, action: c => c.sendBackward() },\r\n { key: '*', shift: true, condition: c => !!c.store.selectionGroup, action: c => c.bringToFront() },\r\n { key: '_', shift: true, condition: c => !!c.store.selectionGroup, action: c => c.sendToBack() },\r\n ];\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n private switchTool(tool: string) {\r\n const toolInstance = KritzelToolRegistry.getTool(tool);\r\n this._core.store.setState('activeTool', toolInstance);\r\n this._core.deselectAllObjects();\r\n toolInstance.onActivate();\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent): void {\r\n this._core.store.state.isCtrlKeyPressed = event.ctrlKey;\r\n\r\n const shortcut = this.shortcuts.find(s => s.key === event.key && !!s.ctrl === event.ctrlKey && !!s.shift === event.shiftKey && (!s.condition || s.condition(this._core)));\r\n\r\n if (shortcut) {\r\n event.preventDefault();\r\n shortcut.action(this._core);\r\n } \r\n }\r\n\r\n handleKeyUp(event: KeyboardEvent): void {\r\n this._core.store.state.isCtrlKeyPressed = event.ctrlKey;\r\n }\r\n}\r\n"]}
@@ -1,149 +0,0 @@
1
- import { KritzelEventHelper } from "../../helpers/event.helper";
2
- import { KritzelBaseHandler } from "./base.handler";
3
- export class KritzelMoveHandler extends KritzelBaseHandler {
4
- dragStartX;
5
- dragStartY;
6
- startX;
7
- startY;
8
- endX;
9
- endY;
10
- hasMoved = false;
11
- trackedPointerId = null;
12
- constructor(core) {
13
- super(core);
14
- }
15
- reset() {
16
- this.dragStartX = 0;
17
- this.dragStartY = 0;
18
- this.startX = 0;
19
- this.startY = 0;
20
- this.endX = 0;
21
- this.endY = 0;
22
- this.hasMoved = false;
23
- this.trackedPointerId = null;
24
- }
25
- cancelPendingDrag() {
26
- this._core.store.state.isDragging = false;
27
- this.reset();
28
- }
29
- handlePointerDown(event) {
30
- if (event.pointerType === 'mouse') {
31
- if (KritzelEventHelper.isLeftClick(event)) {
32
- const selectionGroup = this._core.store.selectionGroup;
33
- if (selectionGroup?.isSelected && !this._core.store.state.isResizeHandleSelected && !this._core.store.state.isRotationHandleSelected) {
34
- const clientX = event.clientX - this._core.store.offsetX;
35
- const clientY = event.clientY - this._core.store.offsetY;
36
- this._core.store.state.isDragging = true;
37
- this.dragStartX = clientX;
38
- this.dragStartY = clientY;
39
- this.startX = this.dragStartX;
40
- this.startY = this.dragStartY;
41
- this.trackedPointerId = event.pointerId;
42
- }
43
- else {
44
- this.trackedPointerId = null;
45
- }
46
- }
47
- else {
48
- this.trackedPointerId = null;
49
- }
50
- }
51
- if (event.pointerType === 'touch') {
52
- const activePointers = Array.from(this._core.store.state.pointers.values());
53
- if (this._core.store.state.pointers.size === 1) {
54
- if (this._core.store.state.isScaling) {
55
- this.trackedPointerId = null;
56
- return;
57
- }
58
- const selectionGroup = this._core.store.selectionGroup;
59
- if (selectionGroup?.isSelected && !this._core.store.state.isResizeHandleSelected && !this._core.store.state.isRotationHandleSelected) {
60
- const x = Math.round(activePointers[0].clientX - this._core.store.offsetX);
61
- const y = Math.round(activePointers[0].clientY - this._core.store.offsetY);
62
- this.dragStartX = x;
63
- this.dragStartY = y;
64
- this.startX = x;
65
- this.startY = y;
66
- this.trackedPointerId = event.pointerId;
67
- }
68
- else {
69
- this.trackedPointerId = null;
70
- }
71
- }
72
- }
73
- }
74
- handlePointerMove(event) {
75
- if (this.trackedPointerId === null || this.trackedPointerId !== event.pointerId) {
76
- return;
77
- }
78
- if (event.pointerType === 'mouse') {
79
- const selectionGroup = this._core.store.selectionGroup;
80
- if (this._core.store.state.isDragging && selectionGroup) {
81
- const clientX = event.clientX - this._core.store.offsetX;
82
- const clientY = event.clientY - this._core.store.offsetY;
83
- this.endX = clientX;
84
- this.endY = clientY;
85
- const moveDeltaX = Math.abs(clientX - this.startX);
86
- const moveDeltaY = Math.abs(clientY - this.startY);
87
- const moveThreshold = 5;
88
- if (moveDeltaX > moveThreshold || moveDeltaY > moveThreshold) {
89
- selectionGroup.move(clientX, clientY, this.dragStartX, this.dragStartY);
90
- this.dragStartX = clientX;
91
- this.dragStartY = clientY;
92
- this.hasMoved = true;
93
- }
94
- }
95
- }
96
- if (event.pointerType === 'touch') {
97
- const activePointers = Array.from(this._core.store.state.pointers.values());
98
- const selectionGroup = this._core.store.selectionGroup;
99
- if (this._core.store.state.pointers.size === 1 &&
100
- selectionGroup &&
101
- !this._core.store.state.isResizeHandleSelected &&
102
- !this._core.store.state.isRotationHandleSelected &&
103
- !this._core.store.state.isScaling) {
104
- const x = Math.round(activePointers[0].clientX - this._core.store.offsetX);
105
- const y = Math.round(activePointers[0].clientY - this._core.store.offsetY);
106
- this._core.store.state.isDragging = true;
107
- this.endX = x;
108
- this.endY = y;
109
- const moveDeltaX = Math.abs(x - this.startX);
110
- const moveDeltaY = Math.abs(y - this.startY);
111
- const moveThreshold = 5;
112
- if (moveDeltaX > moveThreshold || moveDeltaY > moveThreshold) {
113
- clearTimeout(this._core.store.state.longTouchTimeout);
114
- selectionGroup.move(x, y, this.dragStartX, this.dragStartY);
115
- this.dragStartX = x;
116
- this.dragStartY = y;
117
- this.hasMoved = true;
118
- }
119
- }
120
- }
121
- }
122
- handlePointerUp(event) {
123
- if (this.trackedPointerId === null || this.trackedPointerId !== event.pointerId) {
124
- return;
125
- }
126
- if (event.pointerType === 'mouse') {
127
- if (this._core.store.state.isDragging) {
128
- this._core.store.state.isDragging = false;
129
- if (this.hasMoved) {
130
- this._core.store.selectionGroup.update();
131
- this._core.engine.emitObjectsChange();
132
- this._core.store.state.hasObjectsChanged = true;
133
- }
134
- }
135
- }
136
- if (event.pointerType === 'touch') {
137
- if (this._core.store.state.isDragging) {
138
- this._core.store.state.isDragging = false;
139
- if (this.hasMoved) {
140
- this._core.store.selectionGroup.update();
141
- this._core.engine.emitObjectsChange();
142
- this._core.store.state.hasObjectsChanged = true;
143
- }
144
- }
145
- }
146
- this.reset();
147
- }
148
- }
149
- //# sourceMappingURL=move.handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"move.handler.js","sourceRoot":"","sources":["../../../src/classes/handlers/move.handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { KritzelBaseHandler } from './base.handler';\r\nimport { KritzelCore } from '../core/core.class';\r\nexport class KritzelMoveHandler extends KritzelBaseHandler {\r\n dragStartX: number;\r\n dragStartY: number;\r\n\r\n startX: number;\r\n startY: number;\r\n\r\n endX: number;\r\n endY: number;\r\n\r\n hasMoved: boolean = false;\r\n private trackedPointerId: number | null = null;\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n private reset() {\r\n this.dragStartX = 0;\r\n this.dragStartY = 0;\r\n this.startX = 0;\r\n this.startY = 0;\r\n this.endX = 0;\r\n this.endY = 0;\r\n this.hasMoved = false;\r\n this.trackedPointerId = null;\r\n }\r\n\r\n cancelPendingDrag(): void {\r\n this._core.store.state.isDragging = false;\r\n this.reset();\r\n }\r\n\r\n handlePointerDown(event: PointerEvent) {\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (selectionGroup?.isSelected && !this._core.store.state.isResizeHandleSelected && !this._core.store.state.isRotationHandleSelected) {\r\n const clientX = event.clientX - this._core.store.offsetX;\r\n const clientY = event.clientY - this._core.store.offsetY;\r\n\r\n this._core.store.state.isDragging = true;\r\n this.dragStartX = clientX;\r\n this.dragStartY = clientY;\r\n this.startX = this.dragStartX;\r\n this.startY = this.dragStartY;\r\n this.trackedPointerId = event.pointerId;\r\n } else {\r\n this.trackedPointerId = null;\r\n }\r\n } else {\r\n this.trackedPointerId = null;\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 (this._core.store.state.pointers.size === 1) {\r\n if (this._core.store.state.isScaling) {\r\n this.trackedPointerId = null;\r\n return;\r\n }\r\n\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (selectionGroup?.isSelected && !this._core.store.state.isResizeHandleSelected && !this._core.store.state.isRotationHandleSelected) {\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.dragStartX = x;\r\n this.dragStartY = y;\r\n this.startX = x;\r\n this.startY = y;\r\n this.trackedPointerId = event.pointerId;\r\n } else {\r\n this.trackedPointerId = null;\r\n }\r\n }\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent) {\r\n if (this.trackedPointerId === null || this.trackedPointerId !== event.pointerId) {\r\n return;\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (this._core.store.state.isDragging && selectionGroup) {\r\n const clientX = event.clientX - this._core.store.offsetX;\r\n const clientY = event.clientY - this._core.store.offsetY;\r\n\r\n this.endX = clientX;\r\n this.endY = clientY;\r\n\r\n const moveDeltaX = Math.abs(clientX - this.startX);\r\n const moveDeltaY = Math.abs(clientY - this.startY);\r\n const moveThreshold = 5;\r\n\r\n if (moveDeltaX > moveThreshold || moveDeltaY > moveThreshold) {\r\n\r\n selectionGroup.move(clientX, clientY, this.dragStartX, this.dragStartY);\r\n\r\n this.dragStartX = clientX;\r\n this.dragStartY = clientY;\r\n this.hasMoved = true;\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 const selectionGroup = this._core.store.selectionGroup;\r\n\r\n if (\r\n this._core.store.state.pointers.size === 1 &&\r\n selectionGroup &&\r\n !this._core.store.state.isResizeHandleSelected &&\r\n !this._core.store.state.isRotationHandleSelected &&\r\n !this._core.store.state.isScaling\r\n ) {\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.isDragging = true;\r\n this.endX = x;\r\n this.endY = y;\r\n\r\n const moveDeltaX = Math.abs(x - this.startX);\r\n const moveDeltaY = Math.abs(y - this.startY);\r\n const moveThreshold = 5;\r\n\r\n if (moveDeltaX > moveThreshold || moveDeltaY > moveThreshold) {\r\n clearTimeout(this._core.store.state.longTouchTimeout);\r\n\r\n selectionGroup.move(x, y, this.dragStartX, this.dragStartY);\r\n\r\n this.dragStartX = x;\r\n this.dragStartY = y;\r\n this.hasMoved = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n handlePointerUp(event: PointerEvent) {\r\n if (this.trackedPointerId === null || this.trackedPointerId !== event.pointerId) {\r\n return;\r\n }\r\n\r\n if (event.pointerType === 'mouse') {\r\n if (this._core.store.state.isDragging) {\r\n this._core.store.state.isDragging = false;\r\n\r\n if (this.hasMoved) {\r\n this._core.store.selectionGroup.update();\r\n this._core.engine.emitObjectsChange();\r\n this._core.store.state.hasObjectsChanged = true;\r\n }\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isDragging) {\r\n this._core.store.state.isDragging = false;\r\n\r\n if (this.hasMoved) {\r\n this._core.store.selectionGroup.update();\r\n this._core.engine.emitObjectsChange();\r\n this._core.store.state.hasObjectsChanged = true;\r\n }\r\n }\r\n }\r\n\r\n this.reset();\r\n }\r\n}\r\n"]}
@@ -1,184 +0,0 @@
1
- import { KritzelHandleType } from "../../enums/handle-type.enum";
2
- import { KritzelEventHelper } from "../../helpers/event.helper";
3
- import { KritzelBaseHandler } from "./base.handler";
4
- export class KritzelResizeHandler extends KritzelBaseHandler {
5
- initialMouseX = 0;
6
- initialMouseY = 0;
7
- initialSize = { x: 0, y: 0, width: 0, height: 0 };
8
- newSize = { x: 0, y: 0, width: 0, height: 0 };
9
- hasResized = false;
10
- constructor(core) {
11
- super(core);
12
- }
13
- reset() {
14
- this.initialMouseX = 0;
15
- this.initialMouseY = 0;
16
- this.initialSize = { x: 0, y: 0, width: 0, height: 0 };
17
- this.newSize = { x: 0, y: 0, width: 0, height: 0 };
18
- this.hasResized = false;
19
- }
20
- handlePointerDown(event) {
21
- if (event.pointerType === 'mouse') {
22
- if (KritzelEventHelper.isLeftClick(event)) {
23
- const selectionGroup = this._core.store.selectionGroup;
24
- if (selectionGroup && this._core.store.state.isResizeHandleSelected) {
25
- const clientX = event.clientX - this._core.store.offsetX;
26
- const clientY = event.clientY - this._core.store.offsetY;
27
- this._core.store.state.isResizing = true;
28
- this.initialMouseX = clientX;
29
- this.initialMouseY = clientY;
30
- this.initialSize.width = selectionGroup.width;
31
- this.initialSize.height = selectionGroup.height;
32
- this.initialSize.x = selectionGroup.translateX;
33
- this.initialSize.y = selectionGroup.translateY;
34
- }
35
- }
36
- }
37
- if (event.pointerType === 'touch') {
38
- const activePointers = Array.from(this._core.store.state.pointers.values());
39
- const firstTouch = activePointers[0];
40
- if (!firstTouch) {
41
- return;
42
- }
43
- if (activePointers.length === 1) {
44
- const selectionGroup = this._core.store.selectionGroup;
45
- if (selectionGroup && this._core.store.state.isResizeHandleSelected) {
46
- const clientX = Math.round(firstTouch.clientX - this._core.store.offsetX);
47
- const clientY = Math.round(firstTouch.clientY - this._core.store.offsetY);
48
- this._core.store.state.isResizing = true;
49
- this.initialMouseX = clientX;
50
- this.initialMouseY = clientY;
51
- this.initialSize.width = selectionGroup.width;
52
- this.initialSize.height = selectionGroup.height;
53
- this.initialSize.x = selectionGroup.translateX;
54
- this.initialSize.y = selectionGroup.translateY;
55
- clearTimeout(this._core.store.state.longTouchTimeout);
56
- }
57
- }
58
- }
59
- }
60
- handlePointerMove(event) {
61
- if (event.pointerType === 'mouse') {
62
- const selectionGroup = this._core.store.selectionGroup;
63
- if (this._core.store.state.isResizing && selectionGroup) {
64
- const clientX = event.clientX - this._core.store.offsetX;
65
- const clientY = event.clientY - this._core.store.offsetY;
66
- const dx = clientX - this.initialMouseX;
67
- const dy = clientY - this.initialMouseY;
68
- const resizeDeltaX = Math.abs(dx);
69
- const resizeDeltaY = Math.abs(dy);
70
- const resizeThreshold = 5;
71
- if (resizeDeltaX > resizeThreshold || resizeDeltaY > resizeThreshold) {
72
- this.hasResized = true;
73
- }
74
- if (!this.hasResized) {
75
- return;
76
- }
77
- switch (this._core.store.state.resizeHandleType) {
78
- case KritzelHandleType.TopLeft:
79
- this.newSize.width = this.initialSize.width - dx;
80
- this.newSize.height = this.initialSize.height - dy;
81
- this.newSize.x = dx / this._core.store.state.scale + this.initialSize.x;
82
- this.newSize.y = dy / this._core.store.state.scale + this.initialSize.y;
83
- break;
84
- case KritzelHandleType.TopRight:
85
- this.newSize.width = this.initialSize.width + dx;
86
- this.newSize.height = this.initialSize.height - dy;
87
- this.newSize.x = this.initialSize.x;
88
- this.newSize.y = dy / this._core.store.state.scale + this.initialSize.y;
89
- break;
90
- case KritzelHandleType.BottomLeft:
91
- this.newSize.width = this.initialSize.width - dx;
92
- this.newSize.height = this.initialSize.height + dy;
93
- this.newSize.x = dx / this._core.store.state.scale + this.initialSize.x;
94
- this.newSize.y = this.initialSize.y;
95
- break;
96
- case KritzelHandleType.BottomRight:
97
- this.newSize.width = this.initialSize.width + dx;
98
- this.newSize.height = this.initialSize.height + dy;
99
- this.newSize.x = this.initialSize.x;
100
- this.newSize.y = this.initialSize.y;
101
- break;
102
- }
103
- selectionGroup.resize(this.newSize.x, this.newSize.y, this.newSize.width, this.newSize.height);
104
- }
105
- }
106
- if (event.pointerType === 'touch') {
107
- const activePointers = Array.from(this._core.store.state.pointers.values());
108
- const oneFingerTouch = activePointers[0];
109
- if (!oneFingerTouch) {
110
- return;
111
- }
112
- const selectionGroup = this._core.store.selectionGroup;
113
- if (this._core.store.state.isResizing && selectionGroup) {
114
- const clientX = Math.round(oneFingerTouch.clientX - this._core.store.offsetX);
115
- const clientY = Math.round(oneFingerTouch.clientY - this._core.store.offsetY);
116
- const dx = clientX - this.initialMouseX;
117
- const dy = clientY - this.initialMouseY;
118
- const resizeDeltaX = Math.abs(dx);
119
- const resizeDeltaY = Math.abs(dy);
120
- const resizeThreshold = 5;
121
- if (resizeDeltaX > resizeThreshold || resizeDeltaY > resizeThreshold) {
122
- clearTimeout(this._core.store.state.longTouchTimeout);
123
- this.hasResized = true;
124
- }
125
- if (!this.hasResized) {
126
- return;
127
- }
128
- switch (this._core.store.state.resizeHandleType) {
129
- case KritzelHandleType.TopLeft:
130
- this.newSize.width = this.initialSize.width - dx;
131
- this.newSize.height = this.initialSize.height - dy;
132
- this.newSize.x = dx / this._core.store.state.scale + this.initialSize.x;
133
- this.newSize.y = dy / this._core.store.state.scale + this.initialSize.y;
134
- break;
135
- case KritzelHandleType.TopRight:
136
- this.newSize.width = this.initialSize.width + dx;
137
- this.newSize.height = this.initialSize.height - dy;
138
- this.newSize.x = this.initialSize.x;
139
- this.newSize.y = dy / this._core.store.state.scale + this.initialSize.y;
140
- break;
141
- case KritzelHandleType.BottomLeft:
142
- this.newSize.width = this.initialSize.width - dx;
143
- this.newSize.height = this.initialSize.height + dy;
144
- this.newSize.x = dx / this._core.store.state.scale + this.initialSize.x;
145
- this.newSize.y = this.initialSize.y;
146
- break;
147
- case KritzelHandleType.BottomRight:
148
- this.newSize.width = this.initialSize.width + dx;
149
- this.newSize.height = this.initialSize.height + dy;
150
- this.newSize.x = this.initialSize.x;
151
- this.newSize.y = this.initialSize.y;
152
- break;
153
- }
154
- selectionGroup.resize(this.newSize.x, this.newSize.y, this.newSize.width, this.newSize.height);
155
- }
156
- }
157
- }
158
- handlePointerUp(event) {
159
- if (event.pointerType === 'mouse') {
160
- if (this._core.store.state.isResizing) {
161
- this._core.store.state.isResizing = false;
162
- if (this.hasResized) {
163
- this._core.store.selectionGroup.update();
164
- this._core.engine.emitObjectsChange();
165
- this._core.store.state.hasObjectsChanged = true;
166
- }
167
- this.reset();
168
- }
169
- }
170
- if (event.pointerType === 'touch') {
171
- if (this._core.store.state.isResizing) {
172
- this._core.store.state.isResizing = false;
173
- if (this.hasResized) {
174
- this._core.store.selectionGroup.update();
175
- this._core.engine.emitObjectsChange();
176
- this._core.store.state.hasObjectsChanged = true;
177
- }
178
- this.reset();
179
- clearTimeout(this._core.store.state.longTouchTimeout);
180
- }
181
- }
182
- }
183
- }
184
- //# sourceMappingURL=resize.handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resize.handler.js","sourceRoot":"","sources":["../../../src/classes/handlers/resize.handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelHandleType } from '../../enums/handle-type.enum';\r\nimport { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { KritzelCore } from '../core/core.class';\r\nimport { KritzelBaseHandler } from './base.handler';\r\n\r\nexport class KritzelResizeHandler extends KritzelBaseHandler {\r\n initialMouseX: number = 0;\r\n initialMouseY: number = 0;\r\n\r\n initialSize: { x: number; y: number; width: number; height: number } = { x: 0, y: 0, width: 0, height: 0 };\r\n\r\n newSize: { x: number; y: number; width: number; height: number } = { x: 0, y: 0, width: 0, height: 0 };\r\n\r\n hasResized: boolean = false;\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n private reset() {\r\n this.initialMouseX = 0;\r\n this.initialMouseY = 0;\r\n this.initialSize = { x: 0, y: 0, width: 0, height: 0 };\r\n this.newSize = { x: 0, y: 0, width: 0, height: 0 };\r\n this.hasResized = false;\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (selectionGroup && this._core.store.state.isResizeHandleSelected) {\r\n const clientX = event.clientX - this._core.store.offsetX;\r\n const clientY = event.clientY - this._core.store.offsetY;\r\n\r\n this._core.store.state.isResizing = true;\r\n this.initialMouseX = clientX;\r\n this.initialMouseY = clientY;\r\n this.initialSize.width = selectionGroup.width;\r\n this.initialSize.height = selectionGroup.height;\r\n this.initialSize.x = selectionGroup.translateX;\r\n this.initialSize.y = selectionGroup.translateY;\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 const firstTouch = activePointers[0];\r\n\r\n if (!firstTouch) {\r\n return;\r\n }\r\n\r\n if (activePointers.length === 1) {\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (selectionGroup && this._core.store.state.isResizeHandleSelected) {\r\n const clientX = Math.round(firstTouch.clientX - this._core.store.offsetX);\r\n const clientY = Math.round(firstTouch.clientY - this._core.store.offsetY);\r\n\r\n this._core.store.state.isResizing = true;\r\n this.initialMouseX = clientX;\r\n this.initialMouseY = clientY;\r\n this.initialSize.width = selectionGroup.width;\r\n this.initialSize.height = selectionGroup.height;\r\n this.initialSize.x = selectionGroup.translateX;\r\n this.initialSize.y = selectionGroup.translateY;\r\n\r\n clearTimeout(this._core.store.state.longTouchTimeout);\r\n }\r\n }\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (this._core.store.state.isResizing && selectionGroup) {\r\n const clientX = event.clientX - this._core.store.offsetX;\r\n const clientY = event.clientY - this._core.store.offsetY;\r\n\r\n const dx = clientX - this.initialMouseX;\r\n const dy = clientY - this.initialMouseY;\r\n\r\n const resizeDeltaX = Math.abs(dx);\r\n const resizeDeltaY = Math.abs(dy);\r\n const resizeThreshold = 5;\r\n\r\n if (resizeDeltaX > resizeThreshold || resizeDeltaY > resizeThreshold) {\r\n this.hasResized = true;\r\n }\r\n\r\n if (!this.hasResized) {\r\n return;\r\n }\r\n\r\n switch (this._core.store.state.resizeHandleType) {\r\n case KritzelHandleType.TopLeft:\r\n this.newSize.width = this.initialSize.width - dx;\r\n this.newSize.height = this.initialSize.height - dy;\r\n this.newSize.x = dx / this._core.store.state.scale + this.initialSize.x;\r\n this.newSize.y = dy / this._core.store.state.scale + this.initialSize.y;\r\n break;\r\n case KritzelHandleType.TopRight:\r\n this.newSize.width = this.initialSize.width + dx;\r\n this.newSize.height = this.initialSize.height - dy;\r\n this.newSize.x = this.initialSize.x;\r\n this.newSize.y = dy / this._core.store.state.scale + this.initialSize.y;\r\n break;\r\n case KritzelHandleType.BottomLeft:\r\n this.newSize.width = this.initialSize.width - dx;\r\n this.newSize.height = this.initialSize.height + dy;\r\n this.newSize.x = dx / this._core.store.state.scale + this.initialSize.x;\r\n this.newSize.y = this.initialSize.y;\r\n break;\r\n case KritzelHandleType.BottomRight:\r\n this.newSize.width = this.initialSize.width + dx;\r\n this.newSize.height = this.initialSize.height + dy;\r\n this.newSize.x = this.initialSize.x;\r\n this.newSize.y = this.initialSize.y;\r\n break;\r\n }\r\n\r\n selectionGroup.resize(this.newSize.x, this.newSize.y, this.newSize.width, this.newSize.height);\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 const oneFingerTouch = activePointers[0];\r\n\r\n if (!oneFingerTouch) {\r\n return;\r\n }\r\n\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (this._core.store.state.isResizing && selectionGroup) {\r\n const clientX = Math.round(oneFingerTouch.clientX - this._core.store.offsetX);\r\n const clientY = Math.round(oneFingerTouch.clientY - this._core.store.offsetY);\r\n\r\n const dx = clientX - this.initialMouseX;\r\n const dy = clientY - this.initialMouseY;\r\n\r\n const resizeDeltaX = Math.abs(dx);\r\n const resizeDeltaY = Math.abs(dy);\r\n const resizeThreshold = 5;\r\n\r\n if (resizeDeltaX > resizeThreshold || resizeDeltaY > resizeThreshold) {\r\n clearTimeout(this._core.store.state.longTouchTimeout);\r\n this.hasResized = true;\r\n }\r\n\r\n if (!this.hasResized) {\r\n return;\r\n }\r\n\r\n switch (this._core.store.state.resizeHandleType) {\r\n case KritzelHandleType.TopLeft:\r\n this.newSize.width = this.initialSize.width - dx;\r\n this.newSize.height = this.initialSize.height - dy;\r\n this.newSize.x = dx / this._core.store.state.scale + this.initialSize.x;\r\n this.newSize.y = dy / this._core.store.state.scale + this.initialSize.y;\r\n break;\r\n case KritzelHandleType.TopRight:\r\n this.newSize.width = this.initialSize.width + dx;\r\n this.newSize.height = this.initialSize.height - dy;\r\n this.newSize.x = this.initialSize.x;\r\n this.newSize.y = dy / this._core.store.state.scale + this.initialSize.y;\r\n break;\r\n case KritzelHandleType.BottomLeft:\r\n this.newSize.width = this.initialSize.width - dx;\r\n this.newSize.height = this.initialSize.height + dy;\r\n this.newSize.x = dx / this._core.store.state.scale + this.initialSize.x;\r\n this.newSize.y = this.initialSize.y;\r\n break;\r\n case KritzelHandleType.BottomRight:\r\n this.newSize.width = this.initialSize.width + dx;\r\n this.newSize.height = this.initialSize.height + dy;\r\n this.newSize.x = this.initialSize.x;\r\n this.newSize.y = this.initialSize.y;\r\n break;\r\n }\r\n\r\n selectionGroup.resize(this.newSize.x, this.newSize.y, this.newSize.width, this.newSize.height);\r\n\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.isResizing) {\r\n this._core.store.state.isResizing = false;\r\n\r\n if (this.hasResized) {\r\n this._core.store.selectionGroup.update();\r\n this._core.engine.emitObjectsChange();\r\n this._core.store.state.hasObjectsChanged = true;\r\n }\r\n\r\n this.reset();\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isResizing) {\r\n this._core.store.state.isResizing = false;\r\n\r\n if (this.hasResized) {\r\n this._core.store.selectionGroup.update();\r\n this._core.engine.emitObjectsChange();\r\n this._core.store.state.hasObjectsChanged = true;\r\n }\r\n\r\n this.reset();\r\n\r\n clearTimeout(this._core.store.state.longTouchTimeout);\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -1,116 +0,0 @@
1
- import { KritzelEventHelper } from "../../helpers/event.helper";
2
- import { KritzelBaseHandler } from "./base.handler";
3
- export class KritzelRotationHandler extends KritzelBaseHandler {
4
- initialRotation = 0;
5
- rotation = 0;
6
- unchangedObjects = [];
7
- initialSelectionGroupRotation = 0;
8
- constructor(core) {
9
- super(core);
10
- }
11
- reset() {
12
- this.initialRotation = 0;
13
- this.rotation = 0;
14
- this.unchangedObjects = [];
15
- }
16
- handlePointerDown(event) {
17
- if (event.pointerType === 'mouse') {
18
- if (KritzelEventHelper.isLeftClick(event)) {
19
- const selectionGroup = this._core.store.selectionGroup;
20
- if (selectionGroup && this._core.store.state.isRotationHandleSelected) {
21
- const clientX = event.clientX - this._core.store.offsetX;
22
- const clientY = event.clientY - this._core.store.offsetY;
23
- this._core.store.state.isRotating = true;
24
- const centerX = selectionGroup.translateX + selectionGroup.width / 2 / this._core.store.state.scale;
25
- const centerY = selectionGroup.translateY + selectionGroup.height / 2 / this._core.store.state.scale;
26
- const cursorX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
27
- const cursorY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
28
- this.initialSelectionGroupRotation = selectionGroup.rotation;
29
- this.initialRotation = Math.atan2(centerY - cursorY, centerX - cursorX) - selectionGroup.rotation;
30
- this.unchangedObjects = selectionGroup.objects.map(obj => obj.clone());
31
- }
32
- }
33
- }
34
- if (event.pointerType === 'touch') {
35
- const activePointers = Array.from(this._core.store.state.pointers.values());
36
- const firstTouch = activePointers[0];
37
- if (!firstTouch) {
38
- return;
39
- }
40
- if (activePointers.length === 1) {
41
- const selectionGroup = this._core.store.selectionGroup;
42
- if (selectionGroup && this._core.store.state.isRotationHandleSelected) {
43
- const clientX = Math.round(firstTouch.clientX - this._core.store.offsetX);
44
- const clientY = Math.round(firstTouch.clientY - this._core.store.offsetY);
45
- this._core.store.state.isRotating = true;
46
- const centerX = selectionGroup.translateX + selectionGroup.width / 2 / this._core.store.state.scale;
47
- const centerY = selectionGroup.translateY + selectionGroup.height / 2 / this._core.store.state.scale;
48
- const cursorX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
49
- const cursorY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
50
- this.initialSelectionGroupRotation = selectionGroup.rotation;
51
- this.initialRotation = Math.atan2(centerY - cursorY, centerX - cursorX) - selectionGroup.rotation;
52
- this.unchangedObjects = selectionGroup.objects.map(obj => obj.clone());
53
- clearTimeout(this._core.store.state.longTouchTimeout);
54
- }
55
- }
56
- }
57
- }
58
- handlePointerMove(event) {
59
- if (event.pointerType === 'mouse') {
60
- const selectionGroup = this._core.store.selectionGroup;
61
- if (this._core.store.state.isRotating && selectionGroup) {
62
- const clientX = event.clientX - this._core.store.offsetX;
63
- const clientY = event.clientY - this._core.store.offsetY;
64
- const groupCenterX = selectionGroup.translateX + selectionGroup.width / 2 / this._core.store.state.scale;
65
- const groupCenterY = selectionGroup.translateY + selectionGroup.height / 2 / this._core.store.state.scale;
66
- const cursorX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
67
- const cursorY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
68
- const currentRotation = Math.atan2(groupCenterY - cursorY, groupCenterX - cursorX);
69
- this.rotation = currentRotation - this.initialRotation;
70
- selectionGroup.rotate(this.rotation);
71
- }
72
- }
73
- if (event.pointerType === 'touch') {
74
- const activePointers = Array.from(this._core.store.state.pointers.values());
75
- const firstTouch = activePointers[0];
76
- if (!firstTouch) {
77
- return;
78
- }
79
- const selectionGroup = this._core.store.selectionGroup;
80
- if (this._core.store.state.isRotating && selectionGroup) {
81
- const clientX = Math.round(firstTouch.clientX - this._core.store.offsetX);
82
- const clientY = Math.round(firstTouch.clientY - this._core.store.offsetY);
83
- const groupCenterX = selectionGroup.translateX + selectionGroup.width / 2 / this._core.store.state.scale;
84
- const groupCenterY = selectionGroup.translateY + selectionGroup.height / 2 / this._core.store.state.scale;
85
- const cursorX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
86
- const cursorY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
87
- const currentRotation = Math.atan2(groupCenterY - cursorY, groupCenterX - cursorX);
88
- this.rotation = currentRotation - this.initialRotation;
89
- selectionGroup.rotate(this.rotation);
90
- clearTimeout(this._core.store.state.longTouchTimeout);
91
- }
92
- }
93
- }
94
- handlePointerUp(event) {
95
- if (event.pointerType === 'mouse') {
96
- if (this._core.store.state.isRotating) {
97
- this._core.store.selectionGroup.update();
98
- this._core.engine.emitObjectsChange();
99
- this._core.store.state.isRotating = false;
100
- this._core.store.state.hasObjectsChanged = true;
101
- this.reset();
102
- }
103
- }
104
- if (event.pointerType === 'touch') {
105
- if (this._core.store.state.isRotating) {
106
- this._core.store.selectionGroup.update();
107
- this._core.engine.emitObjectsChange();
108
- this._core.store.state.isRotating = false;
109
- this._core.store.state.hasObjectsChanged = true;
110
- this.reset();
111
- clearTimeout(this._core.store.state.longTouchTimeout);
112
- }
113
- }
114
- }
115
- }
116
- //# sourceMappingURL=rotation.handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rotation.handler.js","sourceRoot":"","sources":["../../../src/classes/handlers/rotation.handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { KritzelBaseHandler } from './base.handler';\r\nimport { KritzelCore } from '../core/core.class';\r\nimport { KritzelBaseObject } from '../objects/base-object.class';\r\n\r\nexport class KritzelRotationHandler extends KritzelBaseHandler {\r\n initialRotation: number = 0;\r\n\r\n rotation: number = 0;\r\n\r\n unchangedObjects: KritzelBaseObject<any>[] = [];\r\n\r\n initialSelectionGroupRotation: number = 0;\r\n\r\n constructor(core: KritzelCore) {\r\n super(core);\r\n }\r\n\r\n private reset() {\r\n this.initialRotation = 0;\r\n this.rotation = 0;\r\n this.unchangedObjects = [];\r\n }\r\n\r\n handlePointerDown(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n if (KritzelEventHelper.isLeftClick(event)) {\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (selectionGroup && this._core.store.state.isRotationHandleSelected) {\r\n const clientX = event.clientX - this._core.store.offsetX;\r\n const clientY = event.clientY - this._core.store.offsetY;\r\n\r\n this._core.store.state.isRotating = true;\r\n\r\n const centerX = selectionGroup.translateX + selectionGroup.width / 2 / this._core.store.state.scale;\r\n const centerY = selectionGroup.translateY + selectionGroup.height / 2 / this._core.store.state.scale;\r\n\r\n const cursorX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;\r\n const cursorY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;\r\n\r\n this.initialSelectionGroupRotation = selectionGroup.rotation;\r\n this.initialRotation = Math.atan2(centerY - cursorY, centerX - cursorX) - selectionGroup.rotation;\r\n\r\n this.unchangedObjects = selectionGroup.objects.map(obj => obj.clone());\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 const firstTouch = activePointers[0];\r\n\r\n if (!firstTouch) {\r\n return;\r\n }\r\n\r\n if (activePointers.length === 1) {\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (selectionGroup && this._core.store.state.isRotationHandleSelected) {\r\n const clientX = Math.round(firstTouch.clientX - this._core.store.offsetX);\r\n const clientY = Math.round(firstTouch.clientY - this._core.store.offsetY);\r\n\r\n this._core.store.state.isRotating = true;\r\n\r\n const centerX = selectionGroup.translateX + selectionGroup.width / 2 / this._core.store.state.scale;\r\n const centerY = selectionGroup.translateY + selectionGroup.height / 2 / this._core.store.state.scale;\r\n\r\n const cursorX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;\r\n const cursorY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;\r\n\r\n this.initialSelectionGroupRotation = selectionGroup.rotation;\r\n this.initialRotation = Math.atan2(centerY - cursorY, centerX - cursorX) - selectionGroup.rotation;\r\n\r\n this.unchangedObjects = selectionGroup.objects.map(obj => obj.clone());\r\n\r\n clearTimeout(this._core.store.state.longTouchTimeout);\r\n }\r\n }\r\n }\r\n }\r\n\r\n handlePointerMove(event: PointerEvent): void {\r\n if (event.pointerType === 'mouse') {\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (this._core.store.state.isRotating && selectionGroup) {\r\n const clientX = event.clientX - this._core.store.offsetX;\r\n const clientY = event.clientY - this._core.store.offsetY;\r\n\r\n const groupCenterX = selectionGroup.translateX + selectionGroup.width / 2 / this._core.store.state.scale;\r\n const groupCenterY = selectionGroup.translateY + selectionGroup.height / 2 / this._core.store.state.scale;\r\n\r\n const cursorX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;\r\n const cursorY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;\r\n\r\n const currentRotation = Math.atan2(groupCenterY - cursorY, groupCenterX - cursorX);\r\n\r\n this.rotation = currentRotation - this.initialRotation;\r\n\r\n selectionGroup.rotate(this.rotation);\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 const firstTouch = activePointers[0];\r\n\r\n if (!firstTouch) {\r\n return;\r\n }\r\n\r\n const selectionGroup = this._core.store.selectionGroup;\r\n if (this._core.store.state.isRotating && selectionGroup) {\r\n const clientX = Math.round(firstTouch.clientX - this._core.store.offsetX);\r\n const clientY = Math.round(firstTouch.clientY - this._core.store.offsetY);\r\n\r\n const groupCenterX = selectionGroup.translateX + selectionGroup.width / 2 / this._core.store.state.scale;\r\n const groupCenterY = selectionGroup.translateY + selectionGroup.height / 2 / this._core.store.state.scale;\r\n\r\n const cursorX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;\r\n const cursorY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;\r\n\r\n const currentRotation = Math.atan2(groupCenterY - cursorY, groupCenterX - cursorX);\r\n\r\n this.rotation = currentRotation - this.initialRotation;\r\n\r\n selectionGroup.rotate(this.rotation);\r\n\r\n clearTimeout(this._core.store.state.longTouchTimeout);\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.isRotating) {\r\n this._core.store.selectionGroup.update();\r\n this._core.engine.emitObjectsChange();\r\n this._core.store.state.isRotating = false;\r\n this._core.store.state.hasObjectsChanged = true;\r\n\r\n this.reset();\r\n }\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._core.store.state.isRotating) {\r\n this._core.store.selectionGroup.update();\r\n this._core.engine.emitObjectsChange();\r\n this._core.store.state.isRotating = false;\r\n this._core.store.state.hasObjectsChanged = true;\r\n\r\n this.reset();\r\n\r\n clearTimeout(this._core.store.state.longTouchTimeout);\r\n }\r\n }\r\n }\r\n}\r\n"]}