kritzel-stencil 0.0.130 → 0.0.132

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 (388) hide show
  1. package/dist/cjs/{index-CUSIflVf.js → index-nzUNdMPh.js} +47 -17
  2. package/dist/cjs/index-nzUNdMPh.js.map +1 -0
  3. package/dist/cjs/{index-CfXjPLHb.js → index-ouFX0OVi.js} +891 -802
  4. package/dist/cjs/index-ouFX0OVi.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +2 -1
  6. package/dist/cjs/index.cjs.js.map +1 -1
  7. package/dist/cjs/kritzel-brush-style.cjs.entry.js +32 -0
  8. package/dist/cjs/kritzel-brush-style.entry.cjs.js.map +1 -0
  9. package/dist/cjs/{kritzel-brush-style_23.cjs.entry.js → kritzel-color_22.cjs.entry.js} +1539 -1325
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/stencil.cjs.js +3 -3
  12. package/dist/cjs/stencil.cjs.js.map +1 -1
  13. package/dist/collection/classes/commands/add-object.command.js +7 -7
  14. package/dist/collection/classes/commands/add-object.command.js.map +1 -1
  15. package/dist/collection/classes/commands/add-selection-group.command.js +10 -9
  16. package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
  17. package/dist/collection/classes/commands/base.command.js +6 -4
  18. package/dist/collection/classes/commands/base.command.js.map +1 -1
  19. package/dist/collection/classes/commands/batch.command.js +3 -2
  20. package/dist/collection/classes/commands/batch.command.js.map +1 -1
  21. package/dist/collection/classes/commands/move-selection-group.command.js +13 -7
  22. package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -1
  23. package/dist/collection/classes/commands/remove-object.command.js +9 -9
  24. package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
  25. package/dist/collection/classes/commands/remove-selection-group.command.js +8 -7
  26. package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
  27. package/dist/collection/classes/commands/resize-selection-group.command.js +10 -7
  28. package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -1
  29. package/dist/collection/classes/commands/rotate-selection-group.command.js +15 -12
  30. package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
  31. package/dist/collection/classes/commands/update-object.command.js +7 -5
  32. package/dist/collection/classes/commands/update-object.command.js.map +1 -1
  33. package/dist/collection/classes/commands/update-viewport.command.js +13 -11
  34. package/dist/collection/classes/commands/update-viewport.command.js.map +1 -1
  35. package/dist/collection/classes/{store.class.js → core/core.class.js} +123 -147
  36. package/dist/collection/classes/core/core.class.js.map +1 -0
  37. package/dist/collection/classes/{database.class.js → core/database.class.js} +34 -25
  38. package/dist/collection/classes/core/database.class.js.map +1 -0
  39. package/dist/collection/classes/core/history.class.js +88 -0
  40. package/dist/collection/classes/core/history.class.js.map +1 -0
  41. package/dist/collection/classes/{reviver.class.js → core/reviver.class.js} +27 -22
  42. package/dist/collection/classes/core/reviver.class.js.map +1 -0
  43. package/dist/collection/classes/core/store.class.js +51 -0
  44. package/dist/collection/classes/core/store.class.js.map +1 -0
  45. package/dist/collection/classes/core/viewport.class.js +165 -0
  46. package/dist/collection/classes/core/viewport.class.js.map +1 -0
  47. package/dist/collection/classes/core/workspace.class.js +42 -0
  48. package/dist/collection/classes/core/workspace.class.js.map +1 -0
  49. package/dist/collection/classes/handlers/base.handler.js +4 -3
  50. package/dist/collection/classes/handlers/base.handler.js.map +1 -1
  51. package/dist/collection/classes/handlers/context-menu.handler.js +26 -21
  52. package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
  53. package/dist/collection/classes/handlers/hover.handler.js +5 -5
  54. package/dist/collection/classes/handlers/hover.handler.js.map +1 -1
  55. package/dist/collection/classes/handlers/key.handler.js +38 -44
  56. package/dist/collection/classes/handlers/key.handler.js.map +1 -1
  57. package/dist/collection/classes/handlers/move.handler.js +40 -35
  58. package/dist/collection/classes/handlers/move.handler.js.map +1 -1
  59. package/dist/collection/classes/handlers/resize.handler.js +57 -60
  60. package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
  61. package/dist/collection/classes/handlers/rotation.handler.js +55 -57
  62. package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
  63. package/dist/collection/classes/handlers/selection.handler.js +78 -75
  64. package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
  65. package/dist/collection/classes/objects/base-object.class.js +49 -31
  66. package/dist/collection/classes/objects/base-object.class.js.map +1 -1
  67. package/dist/collection/classes/objects/custom-element.class.js +6 -5
  68. package/dist/collection/classes/objects/custom-element.class.js.map +1 -1
  69. package/dist/collection/classes/objects/image.class.js +17 -17
  70. package/dist/collection/classes/objects/image.class.js.map +1 -1
  71. package/dist/collection/classes/objects/path.class.js +36 -34
  72. package/dist/collection/classes/objects/path.class.js.map +1 -1
  73. package/dist/collection/classes/objects/selection-box.class.js +6 -9
  74. package/dist/collection/classes/objects/selection-box.class.js.map +1 -1
  75. package/dist/collection/classes/objects/selection-group.class.js +23 -22
  76. package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
  77. package/dist/collection/classes/objects/text.class.js +23 -23
  78. package/dist/collection/classes/objects/text.class.js.map +1 -1
  79. package/dist/collection/classes/registries/icon-registry.class.js +1 -1
  80. package/dist/collection/classes/registries/icon-registry.class.js.map +1 -1
  81. package/dist/collection/classes/registries/tool.registry.js +3 -3
  82. package/dist/collection/classes/registries/tool.registry.js.map +1 -1
  83. package/dist/collection/classes/structures/circular-buffer.structure.js +5 -3
  84. package/dist/collection/classes/structures/circular-buffer.structure.js.map +1 -1
  85. package/dist/collection/classes/structures/object-map.structure.js +1 -0
  86. package/dist/collection/classes/structures/object-map.structure.js.map +1 -1
  87. package/dist/collection/classes/tools/base-tool.class.js +13 -6
  88. package/dist/collection/classes/tools/base-tool.class.js.map +1 -1
  89. package/dist/collection/classes/tools/brush-tool.class.js +64 -60
  90. package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
  91. package/dist/collection/classes/tools/eraser-tool.class.js +27 -28
  92. package/dist/collection/classes/tools/eraser-tool.class.js.map +1 -1
  93. package/dist/collection/classes/tools/image-tool.class.js +14 -15
  94. package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
  95. package/dist/collection/classes/tools/selection-tool.class.js +48 -43
  96. package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
  97. package/dist/collection/classes/tools/text-tool.class.js +57 -58
  98. package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
  99. package/dist/collection/collection-manifest.json +1 -1
  100. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +30 -30
  101. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +1 -1
  102. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +7 -9
  103. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +267 -93
  104. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
  105. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +319 -327
  106. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  107. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +7 -8
  108. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +1 -1
  109. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +4 -5
  110. package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +1 -1
  111. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +5 -0
  112. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +8 -9
  113. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +1 -1
  114. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +53 -49
  115. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +1 -1
  116. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +4 -6
  117. package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +1 -1
  118. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +18 -18
  119. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +1 -1
  120. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +5 -6
  121. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +1 -1
  122. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +1 -0
  123. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +3 -3
  124. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +1 -1
  125. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +6 -2
  126. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +36 -30
  127. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -1
  128. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +25 -7
  129. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +61 -40
  130. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +1 -1
  131. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +22 -61
  132. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -1
  133. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +16 -20
  134. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +104 -53
  135. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -1
  136. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +4 -0
  137. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +4 -5
  138. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +1 -1
  139. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +85 -14
  140. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +1 -1
  141. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +50 -16
  142. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
  143. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +4 -0
  144. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +7 -7
  145. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +1 -1
  146. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +5 -5
  147. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +1 -1
  148. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +12 -1
  149. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +41 -32
  150. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
  151. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.css +5 -0
  152. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +4 -1
  153. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +1 -1
  154. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +40 -28
  155. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
  156. package/dist/collection/configs/default-engine-state.js +0 -1
  157. package/dist/collection/configs/default-engine-state.js.map +1 -1
  158. package/dist/collection/helpers/devices.helper.js +20 -0
  159. package/dist/collection/helpers/devices.helper.js.map +1 -1
  160. package/dist/collection/helpers/event.helper.js +2 -6
  161. package/dist/collection/helpers/event.helper.js.map +1 -1
  162. package/dist/collection/helpers/html.helper.js +30 -2
  163. package/dist/collection/helpers/html.helper.js.map +1 -1
  164. package/dist/collection/helpers/object.helper.js +2 -14
  165. package/dist/collection/helpers/object.helper.js.map +1 -1
  166. package/dist/collection/index.js +1 -0
  167. package/dist/collection/index.js.map +1 -1
  168. package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
  169. package/dist/collection/interfaces/serializable.interface.js.map +1 -1
  170. package/dist/collection/types/deep-readonly.type.js +2 -0
  171. package/dist/collection/types/deep-readonly.type.js.map +1 -0
  172. package/dist/components/index.js +4 -3
  173. package/dist/components/index.js.map +1 -1
  174. package/dist/components/kritzel-brush-style.js +59 -1
  175. package/dist/components/kritzel-brush-style.js.map +1 -1
  176. package/dist/components/kritzel-color-palette.js +1 -1
  177. package/dist/components/kritzel-color.js +1 -1
  178. package/dist/components/kritzel-context-menu.js +1 -1
  179. package/dist/components/kritzel-control-brush-config.js +1 -1
  180. package/dist/components/kritzel-control-text-config.js +1 -1
  181. package/dist/components/kritzel-controls.js +1 -1
  182. package/dist/components/kritzel-cursor-trail.js +1 -1
  183. package/dist/components/kritzel-dropdown.js +1 -1
  184. package/dist/components/kritzel-editor.js +172 -124
  185. package/dist/components/kritzel-editor.js.map +1 -1
  186. package/dist/components/kritzel-engine.js +1 -1
  187. package/dist/components/kritzel-font-family.js +1 -1
  188. package/dist/components/kritzel-font-size.js +1 -1
  189. package/dist/components/kritzel-font.js +1 -1
  190. package/dist/components/kritzel-icon.js +1 -1
  191. package/dist/components/kritzel-menu-item.js +1 -1
  192. package/dist/components/kritzel-menu.js +1 -1
  193. package/dist/components/kritzel-portal.js +1 -1
  194. package/dist/components/kritzel-split-button.js +1 -1
  195. package/dist/components/kritzel-stroke-size.js +1 -1
  196. package/dist/components/kritzel-tooltip.js +1 -1
  197. package/dist/components/kritzel-utility-panel.js +1 -1
  198. package/dist/components/kritzel-workspace-manager.js +1 -1
  199. package/dist/components/{p-BGccckxP.js → p-0iJh9Z6m.js} +9 -8
  200. package/dist/components/p-0iJh9Z6m.js.map +1 -0
  201. package/dist/components/{p-C9-70hiF.js → p-B3VQubt_.js} +268 -236
  202. package/dist/components/p-B3VQubt_.js.map +1 -0
  203. package/dist/components/{p-5CJxFNEE.js → p-B7kZ1_RH.js} +7 -6
  204. package/dist/components/p-B7kZ1_RH.js.map +1 -0
  205. package/dist/components/{p-Cb1IUD_g.js → p-B7w19kIk.js} +17 -27
  206. package/dist/components/p-B7w19kIk.js.map +1 -0
  207. package/dist/components/{p-BU2q3PRS.js → p-BGdsAz54.js} +31 -19
  208. package/dist/components/p-BGdsAz54.js.map +1 -0
  209. package/dist/components/{p-BZ-j_4CK.js → p-BM9IjvnD.js} +7 -7
  210. package/dist/components/p-BM9IjvnD.js.map +1 -0
  211. package/dist/components/{p-26poIWa_.js → p-BPsQrpzN.js} +47 -18
  212. package/dist/components/p-BPsQrpzN.js.map +1 -0
  213. package/dist/components/{p-BqrTPNyu.js → p-BYanlgdq.js} +41 -15
  214. package/dist/components/p-BYanlgdq.js.map +1 -0
  215. package/dist/components/{p-D_Uh-xv_.js → p-BiCgeOiJ.js} +60 -56
  216. package/dist/components/p-BiCgeOiJ.js.map +1 -0
  217. package/dist/components/{p-BcQWRzsB.js → p-C1-nvBx9.js} +42 -29
  218. package/dist/components/p-C1-nvBx9.js.map +1 -0
  219. package/dist/components/p-C6qB08BS.js +68 -0
  220. package/dist/components/p-C6qB08BS.js.map +1 -0
  221. package/dist/components/{p-jpGLgpoq.js → p-CTvJDYFQ.js} +26 -64
  222. package/dist/components/p-CTvJDYFQ.js.map +1 -0
  223. package/dist/components/{p-BAPUTr3K.js → p-CsyM5q2M.js} +13 -12
  224. package/dist/components/p-CsyM5q2M.js.map +1 -0
  225. package/dist/components/p-CvmWmUK9.js +149 -0
  226. package/dist/components/p-CvmWmUK9.js.map +1 -0
  227. package/dist/components/{p-fyfT6A5K.js → p-DCx3703u.js} +9 -6
  228. package/dist/components/p-DCx3703u.js.map +1 -0
  229. package/dist/components/{p-BvlGgLAQ.js → p-DFO-6kuA.js} +57 -51
  230. package/dist/components/p-DFO-6kuA.js.map +1 -0
  231. package/dist/components/p-D_907-Wd.js +267 -0
  232. package/dist/components/p-D_907-Wd.js.map +1 -0
  233. package/dist/components/{p-jGaWxggY.js → p-Davd1R_4.js} +1278 -1227
  234. package/dist/components/p-Davd1R_4.js.map +1 -0
  235. package/dist/components/{p-DtmZW6eP.js → p-Db3kxVe2.js} +27 -25
  236. package/dist/components/p-Db3kxVe2.js.map +1 -0
  237. package/dist/components/{p-_ntxNi8v.js → p-Ddlbt3Bj.js} +22 -20
  238. package/dist/components/p-Ddlbt3Bj.js.map +1 -0
  239. package/dist/components/{p-Crni2OI4.js → p-DjU7p3od.js} +15 -13
  240. package/dist/components/p-DjU7p3od.js.map +1 -0
  241. package/dist/components/p-EXPChOF6.js +30 -0
  242. package/dist/components/p-EXPChOF6.js.map +1 -0
  243. package/dist/components/p-YqK8ch2R.js +46 -0
  244. package/dist/components/p-YqK8ch2R.js.map +1 -0
  245. package/dist/components/p-l10It7Nm.js +30 -0
  246. package/dist/components/p-l10It7Nm.js.map +1 -0
  247. package/dist/components/{p-BLmFBe2a.js → p-sq9jgfX0.js} +8 -6
  248. package/dist/components/p-sq9jgfX0.js.map +1 -0
  249. package/dist/components/{p-BcQTDgzV.js → p-sreNwi0N.js} +9 -8
  250. package/dist/components/p-sreNwi0N.js.map +1 -0
  251. package/dist/esm/{index-DqqxAoZI.js → index-C_uHp-ur.js} +891 -803
  252. package/dist/esm/index-C_uHp-ur.js.map +1 -0
  253. package/dist/esm/{index-NiIEUDzj.js → index-oCOlsFCN.js} +47 -17
  254. package/dist/esm/index-oCOlsFCN.js.map +1 -0
  255. package/dist/esm/index.js +1 -1
  256. package/dist/esm/kritzel-brush-style.entry.js +30 -0
  257. package/dist/esm/kritzel-brush-style.entry.js.map +1 -0
  258. package/dist/esm/{kritzel-brush-style_23.entry.js → kritzel-color_22.entry.js} +1538 -1323
  259. package/dist/esm/loader.js +3 -3
  260. package/dist/esm/stencil.js +4 -4
  261. package/dist/esm/stencil.js.map +1 -1
  262. package/dist/stencil/index.esm.js +1 -1
  263. package/dist/stencil/kritzel-brush-style.entry.esm.js.map +1 -0
  264. package/dist/stencil/p-25d1e040.entry.js +2 -0
  265. package/dist/stencil/p-25d1e040.entry.js.map +1 -0
  266. package/dist/stencil/p-C_uHp-ur.js +2 -0
  267. package/dist/stencil/p-C_uHp-ur.js.map +1 -0
  268. package/dist/stencil/p-a6f8283e.entry.js +2 -0
  269. package/dist/stencil/p-a6f8283e.entry.js.map +1 -0
  270. package/dist/stencil/p-oCOlsFCN.js +3 -0
  271. package/dist/stencil/p-oCOlsFCN.js.map +1 -0
  272. package/dist/stencil/stencil.esm.js +1 -1
  273. package/dist/stencil/stencil.esm.js.map +1 -1
  274. package/dist/types/classes/commands/add-object.command.d.ts +2 -2
  275. package/dist/types/classes/commands/add-selection-group.command.d.ts +2 -1
  276. package/dist/types/classes/commands/base.command.d.ts +3 -3
  277. package/dist/types/classes/commands/batch.command.d.ts +2 -1
  278. package/dist/types/classes/commands/move-selection-group.command.d.ts +2 -1
  279. package/dist/types/classes/commands/remove-object.command.d.ts +2 -2
  280. package/dist/types/classes/commands/remove-selection-group.command.d.ts +2 -2
  281. package/dist/types/classes/commands/resize-selection-group.command.d.ts +2 -1
  282. package/dist/types/classes/commands/rotate-selection-group.command.d.ts +2 -1
  283. package/dist/types/classes/commands/update-object.command.d.ts +2 -2
  284. package/dist/types/classes/commands/update-viewport.command.d.ts +2 -1
  285. package/dist/types/classes/{store.class.d.ts → core/core.class.d.ts} +9 -19
  286. package/dist/types/classes/{database.class.d.ts → core/database.class.d.ts} +3 -2
  287. package/dist/types/classes/{history.class.d.ts → core/history.class.d.ts} +5 -5
  288. package/dist/types/classes/core/reviver.class.d.ts +6 -0
  289. package/dist/types/classes/core/store.class.d.ts +17 -0
  290. package/dist/types/classes/{viewport.class.d.ts → core/viewport.class.d.ts} +3 -3
  291. package/dist/types/classes/core/workspace.class.d.ts +24 -0
  292. package/dist/types/classes/handlers/base.handler.d.ts +3 -3
  293. package/dist/types/classes/handlers/context-menu.handler.d.ts +2 -2
  294. package/dist/types/classes/handlers/hover.handler.d.ts +2 -2
  295. package/dist/types/classes/handlers/key.handler.d.ts +2 -2
  296. package/dist/types/classes/handlers/move.handler.d.ts +2 -2
  297. package/dist/types/classes/handlers/resize.handler.d.ts +2 -2
  298. package/dist/types/classes/handlers/rotation.handler.d.ts +2 -2
  299. package/dist/types/classes/handlers/selection.handler.d.ts +2 -2
  300. package/dist/types/classes/objects/base-object.class.d.ts +5 -4
  301. package/dist/types/classes/objects/custom-element.class.d.ts +2 -2
  302. package/dist/types/classes/objects/image.class.d.ts +2 -2
  303. package/dist/types/classes/objects/path.class.d.ts +2 -4
  304. package/dist/types/classes/objects/selection-box.class.d.ts +2 -2
  305. package/dist/types/classes/objects/selection-group.class.d.ts +2 -2
  306. package/dist/types/classes/objects/text.class.d.ts +2 -2
  307. package/dist/types/classes/registries/tool.registry.d.ts +2 -2
  308. package/dist/types/classes/tools/base-tool.class.d.ts +8 -4
  309. package/dist/types/classes/tools/brush-tool.class.d.ts +2 -2
  310. package/dist/types/classes/tools/eraser-tool.class.d.ts +2 -2
  311. package/dist/types/classes/tools/image-tool.class.d.ts +2 -2
  312. package/dist/types/classes/tools/selection-tool.class.d.ts +2 -2
  313. package/dist/types/classes/tools/text-tool.class.d.ts +2 -2
  314. package/dist/types/components/core/kritzel-cursor-trail/kritzel-cursor-trail.d.ts +5 -5
  315. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +13 -3
  316. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +21 -22
  317. package/dist/types/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +2 -2
  318. package/dist/types/components/shared/kritzel-menu-item/kritzel-menu-item.d.ts +2 -0
  319. package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +0 -1
  320. package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +4 -2
  321. package/dist/types/components/shared/kritzel-tooltip/kritzel-tooltip.d.ts +8 -2
  322. package/dist/types/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +5 -3
  323. package/dist/types/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.d.ts +1 -1
  324. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +3 -1
  325. package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +3 -2
  326. package/dist/types/components.d.ts +41 -12
  327. package/dist/types/helpers/devices.helper.d.ts +4 -0
  328. package/dist/types/helpers/event.helper.d.ts +1 -1
  329. package/dist/types/helpers/html.helper.d.ts +1 -0
  330. package/dist/types/index.d.ts +1 -0
  331. package/dist/types/interfaces/engine-state.interface.d.ts +1 -2
  332. package/dist/types/interfaces/serializable.interface.d.ts +2 -1
  333. package/dist/types/stencil-public-runtime.d.ts +6 -4
  334. package/dist/types/types/deep-readonly.type.d.ts +7 -0
  335. package/package.json +64 -63
  336. package/dist/cjs/index-CUSIflVf.js.map +0 -1
  337. package/dist/cjs/index-CfXjPLHb.js.map +0 -1
  338. package/dist/collection/classes/database.class.js.map +0 -1
  339. package/dist/collection/classes/history.class.js +0 -84
  340. package/dist/collection/classes/history.class.js.map +0 -1
  341. package/dist/collection/classes/reviver.class.js.map +0 -1
  342. package/dist/collection/classes/store.class.js.map +0 -1
  343. package/dist/collection/classes/viewport.class.js +0 -152
  344. package/dist/collection/classes/viewport.class.js.map +0 -1
  345. package/dist/collection/classes/workspace.class.js +0 -10
  346. package/dist/collection/classes/workspace.class.js.map +0 -1
  347. package/dist/components/p-26poIWa_.js.map +0 -1
  348. package/dist/components/p-5CJxFNEE.js.map +0 -1
  349. package/dist/components/p-BAPUTr3K.js.map +0 -1
  350. package/dist/components/p-BGccckxP.js.map +0 -1
  351. package/dist/components/p-BLmFBe2a.js.map +0 -1
  352. package/dist/components/p-BU2q3PRS.js.map +0 -1
  353. package/dist/components/p-BZ-j_4CK.js.map +0 -1
  354. package/dist/components/p-Bb6od8He.js +0 -42
  355. package/dist/components/p-Bb6od8He.js.map +0 -1
  356. package/dist/components/p-BcQTDgzV.js.map +0 -1
  357. package/dist/components/p-BcQWRzsB.js.map +0 -1
  358. package/dist/components/p-BeVv4o5c.js +0 -14
  359. package/dist/components/p-BeVv4o5c.js.map +0 -1
  360. package/dist/components/p-BqrTPNyu.js.map +0 -1
  361. package/dist/components/p-BvlGgLAQ.js.map +0 -1
  362. package/dist/components/p-C-DqsDXz.js +0 -238
  363. package/dist/components/p-C-DqsDXz.js.map +0 -1
  364. package/dist/components/p-C9-70hiF.js.map +0 -1
  365. package/dist/components/p-CJKA5zIE.js +0 -10
  366. package/dist/components/p-CJKA5zIE.js.map +0 -1
  367. package/dist/components/p-CaPdvVd4.js +0 -127
  368. package/dist/components/p-CaPdvVd4.js.map +0 -1
  369. package/dist/components/p-Cb1IUD_g.js.map +0 -1
  370. package/dist/components/p-Crni2OI4.js.map +0 -1
  371. package/dist/components/p-D_Uh-xv_.js.map +0 -1
  372. package/dist/components/p-DtmZW6eP.js.map +0 -1
  373. package/dist/components/p-V4ui5aWj.js +0 -63
  374. package/dist/components/p-V4ui5aWj.js.map +0 -1
  375. package/dist/components/p-_ntxNi8v.js.map +0 -1
  376. package/dist/components/p-fyfT6A5K.js.map +0 -1
  377. package/dist/components/p-jGaWxggY.js.map +0 -1
  378. package/dist/components/p-jpGLgpoq.js.map +0 -1
  379. package/dist/esm/index-DqqxAoZI.js.map +0 -1
  380. package/dist/esm/index-NiIEUDzj.js.map +0 -1
  381. package/dist/stencil/p-DqqxAoZI.js +0 -2
  382. package/dist/stencil/p-DqqxAoZI.js.map +0 -1
  383. package/dist/stencil/p-NiIEUDzj.js +0 -3
  384. package/dist/stencil/p-NiIEUDzj.js.map +0 -1
  385. package/dist/stencil/p-eebdbf65.entry.js +0 -2
  386. package/dist/stencil/p-eebdbf65.entry.js.map +0 -1
  387. package/dist/types/classes/reviver.class.d.ts +0 -6
  388. package/dist/types/classes/workspace.class.d.ts +0 -16
@@ -8,13 +8,18 @@ import { KritzelSelectionGroup } from "../objects/selection-group.class";
8
8
  import { KritzelBaseTool } from "./base-tool.class";
9
9
  import { KritzelHoverHandler } from "../handlers/hover.handler";
10
10
  export class KritzelSelectionTool extends KritzelBaseTool {
11
- constructor(store) {
12
- super(store);
13
- this.selectionHandler = new KritzelSelectionHandler(this._store);
14
- this.moveHandler = new KritzelMoveHandler(this._store);
15
- this.hoverHandler = new KritzelHoverHandler(this._store);
16
- this.resizeHandler = new KritzelResizeHandler(this._store);
17
- this.rotationHandler = new KritzelRotationHandler(this._store);
11
+ selectionHandler;
12
+ moveHandler;
13
+ hoverHandler;
14
+ resizeHandler;
15
+ rotationHandler;
16
+ constructor(core) {
17
+ super(core);
18
+ this.selectionHandler = new KritzelSelectionHandler(this._core);
19
+ this.moveHandler = new KritzelMoveHandler(this._core);
20
+ this.hoverHandler = new KritzelHoverHandler(this._core);
21
+ this.resizeHandler = new KritzelResizeHandler(this._core);
22
+ this.rotationHandler = new KritzelRotationHandler(this._core);
18
23
  }
19
24
  handlePointerDown(event) {
20
25
  if (event.cancelable) {
@@ -22,18 +27,18 @@ export class KritzelSelectionTool extends KritzelBaseTool {
22
27
  }
23
28
  if (event.pointerType === 'mouse') {
24
29
  if (KritzelEventHelper.isLeftClick(event)) {
25
- this._store.state.isResizeHandleSelected = this.isHandleSelected(event);
26
- this._store.state.isRotationHandleSelected = this.isRotationHandleSelected(event);
27
- this._store.state.resizeHandleType = this.getHandleType(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));
28
33
  const selectedObject = this.getSelectedObject(event);
29
- const isDifferentObject = selectedObject && this._store.state.selectionGroup && selectedObject.id !== this._store.state.selectionGroup.id;
34
+ const isDifferentObject = selectedObject && this._core.store.state.selectionGroup && selectedObject.id !== this._core.store.state.selectionGroup.id;
30
35
  if ((selectedObject === null || isDifferentObject) &&
31
- this._store.state.selectionGroup &&
32
- !this._store.state.isResizeHandleSelected &&
33
- !this._store.state.isRotationHandleSelected) {
34
- this._store.history.executeCommand(new RemoveSelectionGroupCommand(this._store, this._store.state.selectionGroup));
36
+ this._core.store.state.selectionGroup &&
37
+ !this._core.store.state.isResizeHandleSelected &&
38
+ !this._core.store.state.isRotationHandleSelected) {
39
+ this._core.history.executeCommand(new RemoveSelectionGroupCommand(this._core, this._core.store.state.selectionGroup));
35
40
  }
36
- if (selectedObject && selectedObject.isSelected === false && (selectedObject === null || selectedObject === void 0 ? void 0 : selectedObject.objects.length) === 1 && selectedObject.objects[0].isInteractive) {
41
+ if (selectedObject && selectedObject.isSelected === false && selectedObject?.objects.length === 1 && selectedObject.objects[0].isInteractive) {
37
42
  return;
38
43
  }
39
44
  }
@@ -41,32 +46,33 @@ export class KritzelSelectionTool extends KritzelBaseTool {
41
46
  this.selectionHandler.handlePointerDown(event);
42
47
  this.resizeHandler.handlePointerDown(event);
43
48
  this.rotationHandler.handlePointerDown(event);
44
- this._store.rerender();
49
+ this._core.rerender();
45
50
  }
46
51
  if (event.pointerType === 'touch') {
47
- if (this._store.state.isScaling === true) {
52
+ if (this._core.store.state.isScaling === true) {
48
53
  return;
49
54
  }
50
- if (this._store.state.pointers.size === 1) {
51
- this._store.state.isResizeHandleSelected = this.isHandleSelected(event);
52
- this._store.state.isRotationHandleSelected = this.isRotationHandleSelected(event);
53
- this._store.state.resizeHandleType = this.getHandleType(event);
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));
54
59
  const selectedObject = this.getSelectedObject(event);
55
- const isDifferentObject = selectedObject && this._store.state.selectionGroup && selectedObject.id !== this._store.state.selectionGroup.id;
56
- if (!this._store.state.selectionGroup && selectedObject) {
57
- this._store.state.skipContextMenu = true;
60
+ const isDifferentObject = selectedObject && this._core.store.state.selectionGroup && selectedObject.id !== this._core.store.state.selectionGroup.id;
61
+ if (!this._core.store.state.selectionGroup && selectedObject) {
62
+ this._core.store.setState('skipContextMenu', true);
58
63
  }
59
64
  if ((selectedObject === null || isDifferentObject) &&
60
- this._store.state.selectionGroup &&
61
- !this._store.state.isResizeHandleSelected &&
62
- !this._store.state.isRotationHandleSelected) {
63
- this._store.history.executeCommand(new RemoveSelectionGroupCommand(this._store, this._store.state.selectionGroup));
65
+ this._core.store.state.selectionGroup &&
66
+ !this._core.store.state.isResizeHandleSelected &&
67
+ !this._core.store.state.isRotationHandleSelected) {
68
+ this._core.history.executeCommand(new RemoveSelectionGroupCommand(this._core, this._core.store.state.selectionGroup));
64
69
  }
65
70
  }
66
71
  this.rotationHandler.handlePointerDown(event);
67
72
  this.resizeHandler.handlePointerDown(event);
68
73
  this.moveHandler.handlePointerDown(event);
69
74
  this.selectionHandler.handlePointerDown(event);
75
+ this._core.rerender();
70
76
  }
71
77
  }
72
78
  handlePointerMove(event) {
@@ -79,17 +85,17 @@ export class KritzelSelectionTool extends KritzelBaseTool {
79
85
  this.selectionHandler.handlePointerMove(event);
80
86
  this.resizeHandler.handlePointerMove(event);
81
87
  this.rotationHandler.handlePointerMove(event);
82
- this._store.rerender();
88
+ this._core.rerender();
83
89
  }
84
90
  if (event.pointerType === 'touch') {
85
- if (this._store.state.isScaling === true) {
91
+ if (this._core.store.state.isScaling === true) {
86
92
  return;
87
93
  }
88
94
  this.rotationHandler.handlePointerMove(event);
89
95
  this.resizeHandler.handlePointerMove(event);
90
96
  this.moveHandler.handlePointerMove(event);
91
97
  this.selectionHandler.handlePointerMove(event);
92
- this._store.rerender();
98
+ this._core.rerender();
93
99
  }
94
100
  }
95
101
  handlePointerUp(event) {
@@ -101,22 +107,23 @@ export class KritzelSelectionTool extends KritzelBaseTool {
101
107
  this.selectionHandler.handlePointerUp(event);
102
108
  this.resizeHandler.handlePointerUp(event);
103
109
  this.rotationHandler.handlePointerUp(event);
104
- this._store.rerender();
110
+ this._core.rerender();
105
111
  }
106
112
  if (event.pointerType === 'touch') {
107
- if (this._store.state.isScaling === true) {
113
+ if (this._core.store.state.isScaling === true) {
108
114
  return;
109
115
  }
110
116
  this.rotationHandler.handlePointerUp(event);
111
117
  this.resizeHandler.handlePointerUp(event);
112
118
  this.moveHandler.handlePointerUp(event);
113
119
  this.selectionHandler.handlePointerUp(event);
120
+ this._core.rerender();
114
121
  }
115
122
  }
116
123
  getSelectedObject(event) {
117
124
  const path = event.composedPath().slice(1);
118
125
  const objectElement = path.find(element => element.classList && element.classList.contains('object'));
119
- const object = this._store.findObjectById(objectElement === null || objectElement === void 0 ? void 0 : objectElement.id);
126
+ const object = this._core.findObjectById(objectElement?.id);
120
127
  if (!object) {
121
128
  return null;
122
129
  }
@@ -124,7 +131,7 @@ export class KritzelSelectionTool extends KritzelBaseTool {
124
131
  return object;
125
132
  }
126
133
  else {
127
- const group = KritzelSelectionGroup.create(this._store);
134
+ const group = KritzelSelectionGroup.create(this._core);
128
135
  group.translateX = 0;
129
136
  group.translateY = 0;
130
137
  group.addOrRemove(object);
@@ -132,21 +139,19 @@ export class KritzelSelectionTool extends KritzelBaseTool {
132
139
  }
133
140
  }
134
141
  getHandleType(event) {
135
- var _a;
136
- const shadowRoot = (_a = this._store.state.host) === null || _a === void 0 ? void 0 : _a.shadowRoot;
142
+ const shadowRoot = this._core.store.state.host?.shadowRoot;
137
143
  if (!shadowRoot)
138
144
  return;
139
145
  const elementAtPoint = shadowRoot.elementFromPoint(event.clientX, event.clientY);
140
- const handle = elementAtPoint === null || elementAtPoint === void 0 ? void 0 : elementAtPoint.closest('.resize-handle-overlay');
141
- return handle === null || handle === void 0 ? void 0 : handle.classList[1];
146
+ const handle = elementAtPoint?.closest('.resize-handle-overlay');
147
+ return handle?.classList[1];
142
148
  }
143
149
  isHandleSelected(event) {
144
- var _a;
145
- const shadowRoot = (_a = this._store.state.host) === null || _a === void 0 ? void 0 : _a.shadowRoot;
150
+ const shadowRoot = this._core.store.state.host?.shadowRoot;
146
151
  if (!shadowRoot)
147
152
  return false;
148
153
  const elementAtPoint = shadowRoot.elementFromPoint(event.clientX, event.clientY);
149
- return !!(elementAtPoint === null || elementAtPoint === void 0 ? void 0 : elementAtPoint.classList.contains('resize-handle-overlay'));
154
+ return !!elementAtPoint?.classList.contains('resize-handle-overlay');
150
155
  }
151
156
  isRotationHandleSelected(event) {
152
157
  const path = event.composedPath();
@@ -1 +1 @@
1
- {"version":3,"file":"selection-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/selection-tool.class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAOvD,YAAY,KAAmB;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,gBAAgB,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,iBAAiB,CAAC,KAAmB;QAClC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBAClF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAE/D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,iBAAiB,GAAG,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAE1I,IACE,CAAC,cAAc,KAAK,IAAI,IAAI,iBAAiB,CAAC;oBAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc;oBAChC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB;oBACzC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAC3C,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;gBACrH,CAAC;gBAED,IAAG,cAAc,IAAI,cAAc,CAAC,UAAU,KAAK,KAAK,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CAAC,MAAM,MAAK,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;oBAC5I,OAAO;gBACT,CAAC;YACH,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBAClF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAE/D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,iBAAiB,GAAG,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,cAAc,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAE1I,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,cAAc,EAAE,CAAC;oBACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC3C,CAAC;gBAED,IACE,CAAC,cAAc,KAAK,IAAI,IAAI,iBAAiB,CAAC;oBAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc;oBAChC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB;oBACzC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAC3C,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;gBACrH,CAAC;YAEH,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,KAAmB;QAClC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAE/C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,eAAe,CAAC,KAAmB;QAChC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE5C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,KAAmB;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAkB,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,MAAM,YAAY,qBAAqB,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;YACrB,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;YACrB,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAmB;;QACvC,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,0CAAE,UAAU,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjF,MAAM,MAAM,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CAAC,wBAAwB,CAAuB,CAAC;QAEvF,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,CAAC,CAAsB,CAAC;IACnD,CAAC;IAEO,gBAAgB,CAAC,KAAmB;;QAC1C,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,0CAAE,UAAU,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAE9B,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjF,OAAO,CAAC,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA,CAAC;IACvE,CAAC;IAEO,wBAAwB,CAAC,KAAmB;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAmB,CAAC;QAEnD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC5G,CAAC;CACF","sourcesContent":["import { KritzelHandleType } from '../../enums/handle-type.enum';\r\nimport { KritzelEventHelper } from '../../helpers/event.helper';\r\nimport { KritzelStore } from '../store.class';\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\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(store: KritzelStore) {\r\n super(store);\r\n this.selectionHandler = new KritzelSelectionHandler(this._store);\r\n this.moveHandler = new KritzelMoveHandler(this._store);\r\n this.hoverHandler = new KritzelHoverHandler(this._store);\r\n this.resizeHandler = new KritzelResizeHandler(this._store);\r\n this.rotationHandler = new KritzelRotationHandler(this._store);\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._store.state.isResizeHandleSelected = this.isHandleSelected(event);\r\n this._store.state.isRotationHandleSelected = this.isRotationHandleSelected(event);\r\n this._store.state.resizeHandleType = this.getHandleType(event);\r\n\r\n const selectedObject = this.getSelectedObject(event);\r\n const isDifferentObject = selectedObject && this._store.state.selectionGroup && selectedObject.id !== this._store.state.selectionGroup.id;\r\n\r\n if (\r\n (selectedObject === null || isDifferentObject) &&\r\n this._store.state.selectionGroup &&\r\n !this._store.state.isResizeHandleSelected &&\r\n !this._store.state.isRotationHandleSelected\r\n ) {\r\n this._store.history.executeCommand(new RemoveSelectionGroupCommand(this._store, this._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._store.rerender();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._store.state.isScaling === true) {\r\n return;\r\n }\r\n\r\n if (this._store.state.pointers.size === 1) {\r\n this._store.state.isResizeHandleSelected = this.isHandleSelected(event);\r\n this._store.state.isRotationHandleSelected = this.isRotationHandleSelected(event);\r\n this._store.state.resizeHandleType = this.getHandleType(event);\r\n\r\n const selectedObject = this.getSelectedObject(event);\r\n const isDifferentObject = selectedObject && this._store.state.selectionGroup && selectedObject.id !== this._store.state.selectionGroup.id;\r\n\r\n if (!this._store.state.selectionGroup && selectedObject) {\r\n this._store.state.skipContextMenu = true;\r\n }\r\n\r\n if (\r\n (selectedObject === null || isDifferentObject) &&\r\n this._store.state.selectionGroup &&\r\n !this._store.state.isResizeHandleSelected &&\r\n !this._store.state.isRotationHandleSelected\r\n ) {\r\n this._store.history.executeCommand(new RemoveSelectionGroupCommand(this._store, this._store.state.selectionGroup));\r\n }\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 }\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._store.rerender();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._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._store.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.selectionHandler.handlePointerUp(event);\r\n this.resizeHandler.handlePointerUp(event);\r\n this.rotationHandler.handlePointerUp(event);\r\n\r\n this._store.rerender();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n if (this._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 }\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._store.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._store);\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._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._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\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\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.selectionHandler.handlePointerUp(event);\r\n this.resizeHandler.handlePointerUp(event);\r\n this.rotationHandler.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"]}
@@ -5,28 +5,28 @@ import { KritzelEventHelper } from "../../helpers/event.helper";
5
5
  import { KritzelToolRegistry } from "../registries/tool.registry";
6
6
  import { KritzelKeyboardHelper } from "../../helpers/keyboard.helper";
7
7
  export class KritzelTextTool extends KritzelBaseTool {
8
- constructor(store) {
9
- super(store);
10
- this.fontFamily = 'Arial';
11
- this.fontSize = 16;
12
- this.fontColor = '#000000';
13
- this.palette = [
14
- '#000000',
15
- '#FFFFFF',
16
- '#FF0000',
17
- '#00FF00',
18
- '#0000FF',
19
- '#FFFF00',
20
- '#FF00FF',
21
- '#00FFFF',
22
- '#808080',
23
- '#C0C0C0',
24
- '#800000',
25
- '#008000',
26
- '#000080',
27
- '#808000',
28
- '#800080',
29
- ];
8
+ fontFamily = 'Arial';
9
+ fontSize = 16;
10
+ fontColor = '#000000';
11
+ palette = [
12
+ '#000000',
13
+ '#FFFFFF',
14
+ '#FF0000',
15
+ '#00FF00',
16
+ '#0000FF',
17
+ '#FFFF00',
18
+ '#FF00FF',
19
+ '#00FFFF',
20
+ '#808080',
21
+ '#C0C0C0',
22
+ '#800000',
23
+ '#008000',
24
+ '#000080',
25
+ '#808000',
26
+ '#800080',
27
+ ];
28
+ constructor(core) {
29
+ super(core);
30
30
  }
31
31
  handlePointerDown(event) {
32
32
  if (event.cancelable) {
@@ -35,80 +35,79 @@ export class KritzelTextTool extends KritzelBaseTool {
35
35
  if (event.pointerType === 'mouse') {
36
36
  const path = event.composedPath().slice(1);
37
37
  const objectElement = path.find(element => element.classList && element.classList.contains('object'));
38
- const object = this._store.findObjectById(objectElement === null || objectElement === void 0 ? void 0 : objectElement.id);
39
- if (this._store.state.activeText === null && object && object instanceof KritzelText) {
40
- this._store.state.activeText = object;
38
+ const object = this._core.findObjectById(objectElement?.id);
39
+ if (this._core.store.state.activeText === null && object && object instanceof KritzelText) {
40
+ this._core.store.setState('activeText', object);
41
41
  object.focus();
42
42
  return;
43
43
  }
44
- if (this._store.state.activeText !== null && object instanceof KritzelText) {
44
+ if (this._core.store.state.activeText !== null && object instanceof KritzelText) {
45
45
  object.focus();
46
46
  return;
47
47
  }
48
- if (this._store.state.activeText !== null) {
49
- this._store.resetActiveText();
50
- this._store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
48
+ if (this._core.store.state.activeText !== null) {
49
+ this._core.resetActiveText();
50
+ this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
51
51
  return;
52
52
  }
53
53
  if (KritzelEventHelper.isLeftClick(event) === false) {
54
54
  return;
55
55
  }
56
- const clientX = event.clientX - this._store.offsetX;
57
- const clientY = event.clientY - this._store.offsetY;
58
- const text = KritzelText.create(this._store, this.fontSize, this.fontFamily);
56
+ const clientX = event.clientX - this._core.store.offsetX;
57
+ const clientY = event.clientY - this._core.store.offsetY;
58
+ const text = KritzelText.create(this._core, this.fontSize, this.fontFamily);
59
59
  text.fontColor = this.fontColor;
60
- text.translateX = (clientX - this._store.state.translateX) / this._store.state.scale;
61
- text.translateY = (clientY - this._store.state.translateY) / this._store.state.scale;
62
- text.zIndex = this._store.currentZIndex;
63
- this._store.state.activeText = text;
64
- this._store.history.executeCommand(new AddObjectCommand(this._store, this, text));
60
+ text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
61
+ text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
62
+ text.zIndex = this._core.store.currentZIndex;
63
+ this._core.store.setState('activeText', text);
64
+ this._core.history.executeCommand(new AddObjectCommand(this._core, this, text));
65
65
  }
66
66
  if (event.pointerType === 'touch') {
67
- const activePointers = Array.from(this._store.state.pointers.values());
67
+ const activePointers = Array.from(this._core.store.state.pointers.values());
68
68
  const path = event.composedPath().slice(1);
69
69
  const objectElement = path.find(element => element.classList && element.classList.contains('object'));
70
- const object = this._store.findObjectById(objectElement === null || objectElement === void 0 ? void 0 : objectElement.id);
71
- if (this._store.state.activeText === null && object && object instanceof KritzelText) {
72
- this._store.state.activeText = object;
70
+ const object = this._core.findObjectById(objectElement?.id);
71
+ if (this._core.store.state.activeText === null && object && object instanceof KritzelText) {
72
+ this._core.store.setState('activeText', object);
73
73
  object.focus();
74
74
  return;
75
75
  }
76
- if (this._store.state.activeText !== null && object instanceof KritzelText) {
76
+ if (this._core.store.state.activeText !== null && object instanceof KritzelText) {
77
77
  object.focus();
78
78
  return;
79
79
  }
80
- if (this._store.state.activeText !== null) {
81
- this._store.resetActiveText();
82
- this._store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
80
+ if (this._core.store.state.activeText !== null) {
81
+ this._core.resetActiveText();
82
+ this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
83
83
  return;
84
84
  }
85
85
  if (activePointers.length > 1) {
86
86
  return;
87
87
  }
88
88
  KritzelKeyboardHelper.disableInteractiveWidget();
89
- const clientX = Math.round(activePointers[0].clientX - this._store.offsetX);
90
- const clientY = Math.round(activePointers[0].clientY - this._store.offsetY);
91
- const text = KritzelText.create(this._store, this.fontSize, this.fontFamily);
89
+ const clientX = Math.round(activePointers[0].clientX - this._core.store.offsetX);
90
+ const clientY = Math.round(activePointers[0].clientY - this._core.store.offsetY);
91
+ const text = KritzelText.create(this._core, this.fontSize, this.fontFamily);
92
92
  text.fontColor = this.fontColor;
93
- text.translateX = (clientX - this._store.state.translateX) / this._store.state.scale;
94
- text.translateY = (clientY - this._store.state.translateY) / this._store.state.scale;
95
- text.zIndex = this._store.currentZIndex;
96
- this._store.state.activeText = text;
97
- this._store.history.executeCommand(new AddObjectCommand(this._store, this, text));
93
+ text.translateX = (clientX - this._core.store.state.translateX) / this._core.store.state.scale;
94
+ text.translateY = (clientY - this._core.store.state.translateY) / this._core.store.state.scale;
95
+ text.zIndex = this._core.store.currentZIndex;
96
+ this._core.store.setState('activeText', text);
97
+ this._core.history.executeCommand(new AddObjectCommand(this._core, this, text));
98
98
  }
99
99
  }
100
100
  handlePointerUp(event) {
101
- var _a, _b, _c, _d;
102
101
  if (event.cancelable) {
103
102
  event.preventDefault();
104
103
  }
105
104
  if (event.pointerType === 'mouse') {
106
- (_a = this._store.state.activeText) === null || _a === void 0 ? void 0 : _a.updateTextareaDimensions();
107
- (_b = this._store.state.activeText) === null || _b === void 0 ? void 0 : _b.focus();
105
+ this._core.store.state.activeText?.updateTextareaDimensions();
106
+ this._core.store.state.activeText?.focus();
108
107
  }
109
108
  if (event.pointerType === 'touch') {
110
- (_c = this._store.state.activeText) === null || _c === void 0 ? void 0 : _c.updateTextareaDimensions();
111
- (_d = this._store.state.activeText) === null || _d === void 0 ? void 0 : _d.focus();
109
+ this._core.store.state.activeText?.updateTextareaDimensions();
110
+ this._core.store.state.activeText?.focus();
112
111
  KritzelKeyboardHelper.enableInteractiveWidget();
113
112
  }
114
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"text-tool.class.js","sourceRoot":"","sources":["../../../src/classes/tools/text-tool.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAuBlD,YAAY,KAAmB;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC;QAvBf,eAAU,GAAW,OAAO,CAAC;QAC7B,aAAQ,GAAW,EAAE,CAAC;QACtB,cAAS,GAAW,SAAS,CAAC;QAE9B,YAAO,GAAa;YAClB,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACV,CAAC;IAIF,CAAC;IAED,iBAAiB,CAAC,KAAmB;QACnC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAkB,CAAC;YAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,CAAC,CAAC;YAE7D,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBACrF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;gBACtC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAC3E,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YAED,IAAI,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;gBACpD,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACpD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACrF,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACrF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAExC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YAEpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAEvE,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAkB,CAAC;YAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,CAAC,CAAC;YAE7D,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBACrF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;gBACtC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAC3E,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YAED,qBAAqB,CAAC,wBAAwB,EAAE,CAAC;YAEjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5E,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACrF,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACrF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAExC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YAEpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,eAAe,CAAC,KAAmB;;QACjC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,0CAAE,wBAAwB,EAAE,CAAC;YACzD,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,0CAAE,wBAAwB,EAAE,CAAC;YACzD,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;YAEtC,qBAAqB,CAAC,uBAAuB,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;CACF","sourcesContent":["import { KritzelText } from '../objects/text.class';\r\nimport { KritzelStore } from '../store.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\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(store: KritzelStore) {\r\n super(store);\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._store.findObjectById(objectElement?.id);\r\n\r\n if (this._store.state.activeText === null && object && object instanceof KritzelText) {\r\n this._store.state.activeText = object;\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._store.state.activeText !== null && object instanceof KritzelText) {\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._store.state.activeText !== null) {\r\n this._store.resetActiveText();\r\n this._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._store.offsetX;\r\n const clientY = event.clientY - this._store.offsetY;\r\n const text = KritzelText.create(this._store, this.fontSize, this.fontFamily);\r\n\r\n text.fontColor = this.fontColor;\r\n text.translateX = (clientX - this._store.state.translateX) / this._store.state.scale;\r\n text.translateY = (clientY - this._store.state.translateY) / this._store.state.scale;\r\n text.zIndex = this._store.currentZIndex;\r\n\r\n this._store.state.activeText = text;\r\n\r\n this._store.history.executeCommand(new AddObjectCommand(this._store, this, text));\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n const activePointers = Array.from(this._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._store.findObjectById(objectElement?.id);\r\n\r\n if (this._store.state.activeText === null && object && object instanceof KritzelText) {\r\n this._store.state.activeText = object;\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._store.state.activeText !== null && object instanceof KritzelText) {\r\n object.focus();\r\n return;\r\n }\r\n\r\n if (this._store.state.activeText !== null) {\r\n this._store.resetActiveText();\r\n this._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._store.offsetX);\r\n const clientY = Math.round(activePointers[0].clientY - this._store.offsetY);\r\n const text = KritzelText.create(this._store, this.fontSize, this.fontFamily);\r\n\r\n text.fontColor = this.fontColor;\r\n text.translateX = (clientX - this._store.state.translateX) / this._store.state.scale;\r\n text.translateY = (clientY - this._store.state.translateY) / this._store.state.scale;\r\n text.zIndex = this._store.currentZIndex;\r\n\r\n this._store.state.activeText = text;\r\n\r\n this._store.history.executeCommand(new AddObjectCommand(this._store, 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._store.state.activeText?.updateTextareaDimensions();\r\n this._store.state.activeText?.focus();\r\n }\r\n\r\n if (event.pointerType === 'touch') {\r\n this._store.state.activeText?.updateTextareaDimensions();\r\n this._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 (this._core.store.state.activeText === null && object && 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 object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null) {\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 (this._core.store.state.activeText === null && object && 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 object.focus();\r\n return;\r\n }\r\n\r\n if (this._core.store.state.activeText !== null) {\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"]}
@@ -26,7 +26,7 @@
26
26
  ],
27
27
  "compiler": {
28
28
  "name": "@stencil/core",
29
- "version": "4.37.0",
29
+ "version": "4.37.1",
30
30
  "typescriptVersion": "5.5.4"
31
31
  },
32
32
  "collections": [],
@@ -1,26 +1,9 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { KritzelMouseButton } from "../../../enums/event-button.enum";
3
3
  export class KritzelCursorTrail {
4
- constructor() {
5
- this.cursorTrailPoints = [];
6
- this.isLeftButtonDown = false;
7
- this.TRAIL_DURATION_MS = 100;
8
- this.MAX_TRAIL_POINTS = 50;
9
- }
10
- componentDidLoad() {
11
- this.trailCleanupIntervalId = window.setInterval(() => {
12
- const now = Date.now();
13
- const newTrailPoints = this.cursorTrailPoints.filter(p => now - p.timestamp < this.TRAIL_DURATION_MS);
14
- if (newTrailPoints.length !== this.cursorTrailPoints.length) {
15
- this.cursorTrailPoints = newTrailPoints;
16
- }
17
- }, 50);
18
- }
19
- disconnectedCallback() {
20
- if (this.trailCleanupIntervalId) {
21
- window.clearInterval(this.trailCleanupIntervalId);
22
- }
23
- }
4
+ core;
5
+ cursorTrailPoints = [];
6
+ isLeftButtonDown = false;
24
7
  handleMouseDown(ev) {
25
8
  if (ev.pointerType === 'mouse') {
26
9
  if (ev.button === KritzelMouseButton.Left) {
@@ -29,7 +12,7 @@ export class KritzelCursorTrail {
29
12
  }
30
13
  }
31
14
  if (ev.pointerType === 'touch') {
32
- if (this.store.state.pointers.size === 1) {
15
+ if (this.core.store.state.pointers.size === 1) {
33
16
  this.isLeftButtonDown = true;
34
17
  this.cursorTrailPoints = [];
35
18
  }
@@ -56,14 +39,31 @@ export class KritzelCursorTrail {
56
39
  }
57
40
  }
58
41
  if (ev.pointerType === 'touch') {
59
- if (this.store.state.pointers.size === 0) {
42
+ if (this.core.store.state.pointers.size === 0) {
60
43
  this.isLeftButtonDown = false;
61
44
  this.cursorTrailPoints = [];
62
45
  }
63
46
  }
64
47
  }
48
+ trailCleanupIntervalId;
49
+ TRAIL_DURATION_MS = 100;
50
+ MAX_TRAIL_POINTS = 50;
51
+ componentDidLoad() {
52
+ this.trailCleanupIntervalId = window.setInterval(() => {
53
+ const now = Date.now();
54
+ const newTrailPoints = this.cursorTrailPoints.filter(p => now - p.timestamp < this.TRAIL_DURATION_MS);
55
+ if (newTrailPoints.length !== this.cursorTrailPoints.length) {
56
+ this.cursorTrailPoints = newTrailPoints;
57
+ }
58
+ }, 50);
59
+ }
60
+ disconnectedCallback() {
61
+ if (this.trailCleanupIntervalId) {
62
+ window.clearInterval(this.trailCleanupIntervalId);
63
+ }
64
+ }
65
65
  render() {
66
- return (h(Host, { key: 'c519ab89ffb793de887a870bafe8772f7584f097' }, this.cursorTrailPoints.length > 1 && (h("svg", { key: 'db7ac0975c5a39c0b68d8fd4af4edd4d15f439f3', class: "cursor-trail-svg", xmlns: "http://www.w3.org/2000/svg", style: {
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: {
67
67
  position: 'absolute',
68
68
  left: '0',
69
69
  top: '0',
@@ -97,18 +97,18 @@ export class KritzelCursorTrail {
97
97
  }
98
98
  static get properties() {
99
99
  return {
100
- "store": {
100
+ "core": {
101
101
  "type": "unknown",
102
- "attribute": "store",
102
+ "attribute": "core",
103
103
  "mutable": false,
104
104
  "complexType": {
105
- "original": "KritzelStore",
106
- "resolved": "KritzelStore",
105
+ "original": "KritzelCore",
106
+ "resolved": "KritzelCore",
107
107
  "references": {
108
- "KritzelStore": {
108
+ "KritzelCore": {
109
109
  "location": "import",
110
- "path": "../../../classes/store.class",
111
- "id": "src/classes/store.class.ts::KritzelStore"
110
+ "path": "../../../classes/core/core.class",
111
+ "id": "src/classes/core/core.class.ts::KritzelCore"
112
112
  }
113
113
  }
114
114
  },