kritzel-stencil 0.0.127 → 0.0.128

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 (291) hide show
  1. package/dist/cjs/{index-BacMQbNR.js → index-C7Read21.js} +165 -82
  2. package/dist/cjs/index-C7Read21.js.map +1 -0
  3. package/dist/cjs/{index-C05uAr89.js → index-CUSIflVf.js} +12 -6
  4. package/dist/cjs/index-CUSIflVf.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +1 -3
  6. package/dist/cjs/{kritzel-brush-style_18.cjs.entry.js → kritzel-brush-style_22.cjs.entry.js} +979 -211
  7. package/dist/cjs/loader.cjs.js +2 -4
  8. package/dist/cjs/stencil.cjs.js +3 -5
  9. package/dist/cjs/stencil.cjs.js.map +1 -1
  10. package/dist/collection/classes/commands/add-object.command.js +5 -2
  11. package/dist/collection/classes/commands/add-object.command.js.map +1 -1
  12. package/dist/collection/classes/commands/add-selection-group.command.js +2 -2
  13. package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
  14. package/dist/collection/classes/commands/base.command.js +2 -2
  15. package/dist/collection/classes/commands/base.command.js.map +1 -1
  16. package/dist/collection/classes/commands/batch.command.js +2 -2
  17. package/dist/collection/classes/commands/batch.command.js.map +1 -1
  18. package/dist/collection/classes/commands/move-selection-group.command.js +2 -2
  19. package/dist/collection/classes/commands/move-selection-group.command.js.map +1 -1
  20. package/dist/collection/classes/commands/remove-object.command.js +5 -2
  21. package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
  22. package/dist/collection/classes/commands/remove-selection-group.command.js +2 -2
  23. package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
  24. package/dist/collection/classes/commands/resize-selection-group.command.js +2 -2
  25. package/dist/collection/classes/commands/resize-selection-group.command.js.map +1 -1
  26. package/dist/collection/classes/commands/rotate-selection-group.command.js +2 -2
  27. package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
  28. package/dist/collection/classes/commands/update-object.command.js +5 -2
  29. package/dist/collection/classes/commands/update-object.command.js.map +1 -1
  30. package/dist/collection/classes/commands/update-viewport.command.js +2 -2
  31. package/dist/collection/classes/commands/update-viewport.command.js.map +1 -1
  32. package/dist/collection/classes/database.class.js +227 -0
  33. package/dist/collection/classes/database.class.js.map +1 -0
  34. package/dist/collection/classes/handlers/key.handler.js +0 -1
  35. package/dist/collection/classes/handlers/key.handler.js.map +1 -1
  36. package/dist/collection/classes/handlers/move.handler.js +18 -2
  37. package/dist/collection/classes/handlers/move.handler.js.map +1 -1
  38. package/dist/collection/classes/handlers/resize.handler.js +10 -2
  39. package/dist/collection/classes/handlers/resize.handler.js.map +1 -1
  40. package/dist/collection/classes/handlers/rotation.handler.js +18 -2
  41. package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
  42. package/dist/collection/classes/history.class.js +18 -5
  43. package/dist/collection/classes/history.class.js.map +1 -1
  44. package/dist/collection/classes/objects/base-object.class.js +1 -0
  45. package/dist/collection/classes/objects/base-object.class.js.map +1 -1
  46. package/dist/collection/classes/objects/custom-element.class.js +1 -0
  47. package/dist/collection/classes/objects/custom-element.class.js.map +1 -1
  48. package/dist/collection/classes/objects/image.class.js +1 -0
  49. package/dist/collection/classes/objects/image.class.js.map +1 -1
  50. package/dist/collection/classes/objects/path.class.js +1 -0
  51. package/dist/collection/classes/objects/path.class.js.map +1 -1
  52. package/dist/collection/classes/objects/selection-box.class.js +1 -0
  53. package/dist/collection/classes/objects/selection-box.class.js.map +1 -1
  54. package/dist/collection/classes/objects/selection-group.class.js +1 -0
  55. package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
  56. package/dist/collection/classes/objects/text.class.js +7 -4
  57. package/dist/collection/classes/objects/text.class.js.map +1 -1
  58. package/dist/collection/classes/registries/icon-registry.class.js +5 -1
  59. package/dist/collection/classes/registries/icon-registry.class.js.map +1 -1
  60. package/dist/collection/classes/store.class.js +143 -20
  61. package/dist/collection/classes/store.class.js.map +1 -1
  62. package/dist/collection/classes/structures/octree.structure.js +4 -0
  63. package/dist/collection/classes/structures/octree.structure.js.map +1 -1
  64. package/dist/collection/classes/tools/image-tool.class.js +3 -0
  65. package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
  66. package/dist/collection/classes/tools/text-tool.class.js +2 -2
  67. package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
  68. package/dist/collection/classes/viewport.class.js +4 -0
  69. package/dist/collection/classes/viewport.class.js.map +1 -1
  70. package/dist/collection/classes/workspace.class.js +10 -0
  71. package/dist/collection/classes/workspace.class.js.map +1 -0
  72. package/dist/collection/collection-manifest.json +6 -2
  73. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  74. package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +5 -0
  75. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +14 -16
  76. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
  77. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +235 -39
  78. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  79. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  80. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +1 -1
  81. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +1 -1
  82. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  83. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +1 -1
  84. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +1 -1
  85. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  86. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +166 -0
  87. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +272 -0
  88. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -0
  89. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +218 -0
  90. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -0
  91. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +74 -0
  92. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +324 -0
  93. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -0
  94. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +2 -2
  95. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  96. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +4 -4
  97. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.css +1 -1
  98. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +24 -61
  99. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
  100. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
  101. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
  102. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +3 -3
  103. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +29 -17
  104. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +1 -1
  105. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  106. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css +5 -0
  107. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +209 -0
  108. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -0
  109. package/dist/collection/configs/default-engine-state.js +5 -2
  110. package/dist/collection/configs/default-engine-state.js.map +1 -1
  111. package/dist/collection/helpers/class.helper.js +1 -1
  112. package/dist/collection/helpers/class.helper.js.map +1 -1
  113. package/dist/collection/helpers/html.helper.js +30 -1
  114. package/dist/collection/helpers/html.helper.js.map +1 -1
  115. package/dist/collection/helpers/object.helper.js +1 -1
  116. package/dist/collection/helpers/object.helper.js.map +1 -1
  117. package/dist/collection/interfaces/command.interface.js.map +1 -1
  118. package/dist/collection/interfaces/debug-info.interface.js.map +1 -1
  119. package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
  120. package/dist/collection/interfaces/menu-item.interface.js +2 -0
  121. package/dist/collection/interfaces/menu-item.interface.js.map +1 -0
  122. package/dist/collection/interfaces/object.interface.js.map +1 -1
  123. package/dist/components/index.d.ts +8 -0
  124. package/dist/components/index.js +7 -3
  125. package/dist/components/index.js.map +1 -1
  126. package/dist/components/kritzel-brush-style.js +1 -1
  127. package/dist/components/kritzel-color-palette.js +1 -1
  128. package/dist/components/kritzel-color.js +1 -1
  129. package/dist/components/kritzel-context-menu.js +1 -1
  130. package/dist/components/kritzel-control-brush-config.js +1 -1
  131. package/dist/components/kritzel-control-text-config.js +1 -1
  132. package/dist/components/kritzel-controls.js +1 -1
  133. package/dist/components/kritzel-cursor-trail.js +1 -1
  134. package/dist/components/kritzel-dropdown.js +1 -1
  135. package/dist/components/kritzel-editor.js +79 -49
  136. package/dist/components/kritzel-editor.js.map +1 -1
  137. package/dist/components/kritzel-engine.js +1 -1
  138. package/dist/components/kritzel-font-family.js +1 -1
  139. package/dist/components/kritzel-font-size.js +1 -1
  140. package/dist/components/kritzel-font.js +1 -1
  141. package/dist/components/kritzel-icon.js +1 -1
  142. package/dist/components/kritzel-menu.d.ts +11 -0
  143. package/dist/components/kritzel-menu.js +9 -0
  144. package/dist/components/kritzel-menu.js.map +1 -0
  145. package/dist/components/kritzel-portal.d.ts +11 -0
  146. package/dist/components/kritzel-portal.js +9 -0
  147. package/dist/components/kritzel-portal.js.map +1 -0
  148. package/dist/components/kritzel-split-button.d.ts +11 -0
  149. package/dist/components/kritzel-split-button.js +9 -0
  150. package/dist/components/kritzel-split-button.js.map +1 -0
  151. package/dist/components/kritzel-stroke-size.js +1 -1
  152. package/dist/components/kritzel-tooltip.js +1 -1
  153. package/dist/components/kritzel-utility-panel.js +1 -1
  154. package/dist/components/kritzel-workspace-manager.d.ts +11 -0
  155. package/dist/components/kritzel-workspace-manager.js +9 -0
  156. package/dist/components/kritzel-workspace-manager.js.map +1 -0
  157. package/dist/components/{p-DfJEh7HZ.js → p-5CJxFNEE.js} +9 -7
  158. package/dist/components/p-5CJxFNEE.js.map +1 -0
  159. package/dist/components/{p-ljdIU3DL.js → p-B7VrEdgP.js} +63 -63
  160. package/dist/components/p-B7VrEdgP.js.map +1 -0
  161. package/dist/components/{p-DJc6_PyL.js → p-BAPUTr3K.js} +10 -8
  162. package/dist/components/p-BAPUTr3K.js.map +1 -0
  163. package/dist/components/{p-DSWoCkxm.js → p-BB22cVkU.js} +42 -34
  164. package/dist/components/p-BB22cVkU.js.map +1 -0
  165. package/dist/components/{p-CtiROna-.js → p-BLmFBe2a.js} +12 -6
  166. package/dist/components/p-BLmFBe2a.js.map +1 -0
  167. package/dist/components/p-BU2q3PRS.js +84 -0
  168. package/dist/components/p-BU2q3PRS.js.map +1 -0
  169. package/dist/components/{p-Dp8hrISj.js → p-BZ-j_4CK.js} +8 -6
  170. package/dist/components/p-BZ-j_4CK.js.map +1 -0
  171. package/dist/components/{p-BhC-Et5I.js → p-BaKb8ZLg.js} +16 -14
  172. package/dist/components/p-BaKb8ZLg.js.map +1 -0
  173. package/dist/components/p-Bb6od8He.js +42 -0
  174. package/dist/components/p-Bb6od8He.js.map +1 -0
  175. package/dist/components/{p-DcvujuV_.js → p-BcQTDgzV.js} +10 -8
  176. package/dist/components/p-BcQTDgzV.js.map +1 -0
  177. package/dist/components/p-BeVv4o5c.js +14 -0
  178. package/dist/components/p-BeVv4o5c.js.map +1 -0
  179. package/dist/components/p-BmJbJwkH.js +167 -0
  180. package/dist/components/p-BmJbJwkH.js.map +1 -0
  181. package/dist/components/{p-DJN0U8pI.js → p-BqrTPNyu.js} +10 -7
  182. package/dist/components/p-BqrTPNyu.js.map +1 -0
  183. package/dist/components/{p-NZJPrwJV.js → p-BvlGgLAQ.js} +7 -5
  184. package/dist/components/p-BvlGgLAQ.js.map +1 -0
  185. package/dist/components/{p-BOUCnklW.js → p-BzSz74Ci.js} +9 -7
  186. package/dist/components/p-BzSz74Ci.js.map +1 -0
  187. package/dist/components/{p-CudOuOAW.js → p-D-zg05gA.js} +558 -126
  188. package/dist/components/p-D-zg05gA.js.map +1 -0
  189. package/dist/components/p-D8W6LE-c.js.map +1 -1
  190. package/dist/components/p-DV4ERZv5.js +112 -0
  191. package/dist/components/p-DV4ERZv5.js.map +1 -0
  192. package/dist/components/{p-EQo4-DJT.js → p-DtmZW6eP.js} +8 -6
  193. package/dist/components/p-DtmZW6eP.js.map +1 -0
  194. package/dist/components/{p-C9usqwb5.js → p-V4ui5aWj.js} +9 -7
  195. package/dist/components/p-V4ui5aWj.js.map +1 -0
  196. package/dist/components/{p-BubFkS0u.js → p-_ntxNi8v.js} +9 -7
  197. package/dist/components/p-_ntxNi8v.js.map +1 -0
  198. package/dist/components/{p-BkFzf8vg.js → p-a7KmQzo4.js} +15 -13
  199. package/dist/components/p-a7KmQzo4.js.map +1 -0
  200. package/dist/components/p-hSuNJiIq.js +152 -0
  201. package/dist/components/p-hSuNJiIq.js.map +1 -0
  202. package/dist/components/{p-CmlcJ8Kw.js → p-jG1e48OE.js} +11 -9
  203. package/dist/components/p-jG1e48OE.js.map +1 -0
  204. package/dist/components/{p-D5a8vnRF.js → p-rQeWFfPG.js} +10 -8
  205. package/dist/components/p-rQeWFfPG.js.map +1 -0
  206. package/dist/components/p-sQmW5NRu.js +156 -0
  207. package/dist/components/p-sQmW5NRu.js.map +1 -0
  208. package/dist/esm/{index-D37FADaF.js → index-J4NpPimy.js} +163 -83
  209. package/dist/esm/index-J4NpPimy.js.map +1 -0
  210. package/dist/esm/{index-BGl8znzE.js → index-NiIEUDzj.js} +12 -6
  211. package/dist/esm/index-NiIEUDzj.js.map +1 -0
  212. package/dist/esm/index.js +1 -3
  213. package/dist/esm/{kritzel-brush-style_18.entry.js → kritzel-brush-style_22.entry.js} +969 -205
  214. package/dist/esm/loader.js +3 -5
  215. package/dist/esm/stencil.js +4 -6
  216. package/dist/esm/stencil.js.map +1 -1
  217. package/dist/stencil/index.esm.js +1 -1
  218. package/dist/stencil/p-4a0009e7.entry.js +2 -0
  219. package/dist/stencil/p-4a0009e7.entry.js.map +1 -0
  220. package/dist/stencil/p-J4NpPimy.js +2 -0
  221. package/dist/stencil/p-J4NpPimy.js.map +1 -0
  222. package/dist/stencil/{p-BGl8znzE.js → p-NiIEUDzj.js} +3 -3
  223. package/dist/stencil/p-NiIEUDzj.js.map +1 -0
  224. package/dist/stencil/stencil.esm.js +1 -1
  225. package/dist/stencil/stencil.esm.js.map +1 -1
  226. package/dist/types/classes/commands/add-object.command.d.ts +1 -1
  227. package/dist/types/classes/commands/add-selection-group.command.d.ts +1 -1
  228. package/dist/types/classes/commands/base.command.d.ts +2 -2
  229. package/dist/types/classes/commands/batch.command.d.ts +1 -1
  230. package/dist/types/classes/commands/move-selection-group.command.d.ts +1 -1
  231. package/dist/types/classes/commands/remove-object.command.d.ts +1 -1
  232. package/dist/types/classes/commands/remove-selection-group.command.d.ts +1 -1
  233. package/dist/types/classes/commands/resize-selection-group.command.d.ts +1 -1
  234. package/dist/types/classes/commands/rotate-selection-group.command.d.ts +1 -1
  235. package/dist/types/classes/commands/update-object.command.d.ts +1 -1
  236. package/dist/types/classes/commands/update-viewport.command.d.ts +1 -1
  237. package/dist/types/classes/database.class.d.ts +28 -0
  238. package/dist/types/classes/history.class.d.ts +1 -0
  239. package/dist/types/classes/objects/base-object.class.d.ts +1 -0
  240. package/dist/types/classes/objects/text.class.d.ts +1 -1
  241. package/dist/types/classes/store.class.d.ts +19 -2
  242. package/dist/types/classes/structures/octree.structure.d.ts +1 -0
  243. package/dist/types/classes/workspace.class.d.ts +16 -0
  244. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +6 -1
  245. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +12 -2
  246. package/dist/types/components/shared/kritzel-menu/kritzel-menu.d.ts +24 -0
  247. package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +24 -0
  248. package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +24 -0
  249. package/dist/types/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +3 -4
  250. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +2 -1
  251. package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +25 -0
  252. package/dist/types/components.d.ts +250 -2
  253. package/dist/types/helpers/html.helper.d.ts +3 -1
  254. package/dist/types/interfaces/command.interface.d.ts +1 -1
  255. package/dist/types/interfaces/debug-info.interface.d.ts +1 -0
  256. package/dist/types/interfaces/engine-state.interface.d.ts +3 -0
  257. package/dist/types/interfaces/menu-item.interface.d.ts +9 -0
  258. package/dist/types/interfaces/object.interface.d.ts +1 -0
  259. package/dist/types/stencil-public-runtime.d.ts +21 -0
  260. package/package.json +2 -1
  261. package/dist/cjs/index-BacMQbNR.js.map +0 -1
  262. package/dist/cjs/index-C05uAr89.js.map +0 -1
  263. package/dist/cjs/kritzel-brush-style_18.cjs.entry.js.map +0 -1
  264. package/dist/components/p-2gNwfcSP.js +0 -119
  265. package/dist/components/p-2gNwfcSP.js.map +0 -1
  266. package/dist/components/p-BOUCnklW.js.map +0 -1
  267. package/dist/components/p-BhC-Et5I.js.map +0 -1
  268. package/dist/components/p-BkFzf8vg.js.map +0 -1
  269. package/dist/components/p-BubFkS0u.js.map +0 -1
  270. package/dist/components/p-C9usqwb5.js.map +0 -1
  271. package/dist/components/p-CmlcJ8Kw.js.map +0 -1
  272. package/dist/components/p-CtiROna-.js.map +0 -1
  273. package/dist/components/p-CudOuOAW.js.map +0 -1
  274. package/dist/components/p-D5a8vnRF.js.map +0 -1
  275. package/dist/components/p-DJN0U8pI.js.map +0 -1
  276. package/dist/components/p-DJc6_PyL.js.map +0 -1
  277. package/dist/components/p-DSWoCkxm.js.map +0 -1
  278. package/dist/components/p-DcvujuV_.js.map +0 -1
  279. package/dist/components/p-DfJEh7HZ.js.map +0 -1
  280. package/dist/components/p-Dp8hrISj.js.map +0 -1
  281. package/dist/components/p-EQo4-DJT.js.map +0 -1
  282. package/dist/components/p-NZJPrwJV.js.map +0 -1
  283. package/dist/components/p-ljdIU3DL.js.map +0 -1
  284. package/dist/esm/index-BGl8znzE.js.map +0 -1
  285. package/dist/esm/index-D37FADaF.js.map +0 -1
  286. package/dist/esm/kritzel-brush-style_18.entry.js.map +0 -1
  287. package/dist/stencil/p-BGl8znzE.js.map +0 -1
  288. package/dist/stencil/p-D37FADaF.js +0 -2
  289. package/dist/stencil/p-D37FADaF.js.map +0 -1
  290. package/dist/stencil/p-e6ac7fc6.entry.js +0 -2
  291. package/dist/stencil/p-e6ac7fc6.entry.js.map +0 -1
@@ -1,5 +1,88 @@
1
1
  'use strict';
2
2
 
3
+ class KritzelBaseCommand {
4
+ constructor(store, initiator, skipHistory = false) {
5
+ var _a, _b;
6
+ this._store = store;
7
+ this.initiator = (_b = (_a = initiator === null || initiator === void 0 ? void 0 : initiator.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'Unknown';
8
+ this.skipHistory = skipHistory;
9
+ }
10
+ execute() {
11
+ throw new Error('Method not implemented.');
12
+ }
13
+ undo() {
14
+ throw new Error('Method not implemented.');
15
+ }
16
+ }
17
+
18
+ var __rest = (undefined && undefined.__rest) || function (s, e) {
19
+ var t = {};
20
+ for (var p in s)
21
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
22
+ t[p] = s[p];
23
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
24
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
25
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
26
+ t[p[i]] = s[p[i]];
27
+ }
28
+ return t;
29
+ };
30
+ class ObjectHelper {
31
+ static generateUUID() {
32
+ return Math.random().toString(36).substr(2, 9);
33
+ }
34
+ static clone(objOrObjs) {
35
+ const cloneObject = (obj) => {
36
+ const _a = obj, { element } = _a, remainingProps = __rest(_a, ["_store", "_elementRef", "totalWidth", "totalHeight", "element"]);
37
+ const clonedProps = structuredClone(remainingProps);
38
+ if (element && typeof element === 'object' && 'nodeType' in element && element.nodeType === 1) {
39
+ clonedProps.element = element.cloneNode(true);
40
+ }
41
+ return clonedProps;
42
+ };
43
+ if (Array.isArray(objOrObjs)) {
44
+ return objOrObjs.map(cloneObject);
45
+ }
46
+ return cloneObject(objOrObjs);
47
+ }
48
+ static isEmpty(obj) {
49
+ if (obj === null || obj === undefined) {
50
+ return true;
51
+ }
52
+ return (Object === null || Object === void 0 ? void 0 : Object.keys(obj).length) === 0 && (obj === null || obj === void 0 ? void 0 : obj.constructor) === Object;
53
+ }
54
+ }
55
+
56
+ class UpdateObjectCommand extends KritzelBaseCommand {
57
+ constructor(store, initiator, object, updatedProperties, skipHistory = false) {
58
+ super(store, initiator, skipHistory);
59
+ this.object = object;
60
+ this.updatedProperties = updatedProperties;
61
+ this.previousProperties = {};
62
+ for (const key in updatedProperties) {
63
+ if (updatedProperties.hasOwnProperty(key)) {
64
+ this.previousProperties[key] = this.object[key];
65
+ }
66
+ }
67
+ }
68
+ execute() {
69
+ for (const key in this.updatedProperties) {
70
+ if (this.updatedProperties.hasOwnProperty(key)) {
71
+ this.object[key] = this.updatedProperties[key];
72
+ }
73
+ }
74
+ this._store.updateObjectInDatabase(ObjectHelper.clone(this.object));
75
+ }
76
+ undo() {
77
+ for (const key in this.previousProperties) {
78
+ if (this.previousProperties.hasOwnProperty(key)) {
79
+ this.object[key] = this.previousProperties[key];
80
+ }
81
+ }
82
+ this._store.updateObjectInDatabase(ObjectHelper.clone(this.object));
83
+ }
84
+ }
85
+
3
86
  class KritzelToolRegistry {
4
87
  static registerTool(toolName, constructor, store) {
5
88
  const toolInstance = new constructor(store);
@@ -48,31 +131,18 @@ class KritzelBaseTool {
48
131
  }
49
132
  }
50
133
 
51
- class KritzelBaseCommand {
52
- constructor(store, initiator) {
53
- var _a, _b;
54
- this._store = store;
55
- this.initiator = (_b = (_a = initiator === null || initiator === void 0 ? void 0 : initiator.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'Unknown';
56
- this.isUndoable = true;
57
- }
58
- execute() {
59
- throw new Error('Method not implemented.');
60
- }
61
- undo() {
62
- throw new Error('Method not implemented.');
63
- }
64
- }
65
-
66
134
  class AddObjectCommand extends KritzelBaseCommand {
67
- constructor(store, initiator, object) {
68
- super(store, initiator);
135
+ constructor(store, initiator, object, skipHistory = false) {
136
+ super(store, initiator, skipHistory);
69
137
  this.object = object;
70
138
  }
71
139
  execute() {
72
140
  this._store.state.objectsOctree.insert(this.object);
141
+ this._store.addObjectToDatabase(ObjectHelper.clone(this.object));
73
142
  }
74
143
  undo() {
75
144
  this._store.state.objectsOctree.remove(object => object.id === this.object.id);
145
+ this._store.deleteObjectFromDatabase(this.object.id);
76
146
  }
77
147
  }
78
148
 
@@ -270,54 +340,17 @@ class KritzelTextTool extends KritzelBaseTool {
270
340
  event.preventDefault();
271
341
  }
272
342
  if (event.pointerType === 'mouse') {
273
- (_a = this._store.state.activeText) === null || _a === void 0 ? void 0 : _a.adjustTextareaSize();
343
+ (_a = this._store.state.activeText) === null || _a === void 0 ? void 0 : _a.updateTextareaDimensions();
274
344
  (_b = this._store.state.activeText) === null || _b === void 0 ? void 0 : _b.focus();
275
345
  }
276
346
  if (event.pointerType === 'touch') {
277
- (_c = this._store.state.activeText) === null || _c === void 0 ? void 0 : _c.adjustTextareaSize();
347
+ (_c = this._store.state.activeText) === null || _c === void 0 ? void 0 : _c.updateTextareaDimensions();
278
348
  (_d = this._store.state.activeText) === null || _d === void 0 ? void 0 : _d.focus();
279
349
  KritzelKeyboardHelper.enableInteractiveWidget();
280
350
  }
281
351
  }
282
352
  }
283
353
 
284
- var __rest = (undefined && undefined.__rest) || function (s, e) {
285
- var t = {};
286
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
287
- t[p] = s[p];
288
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
289
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
290
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
291
- t[p[i]] = s[p[i]];
292
- }
293
- return t;
294
- };
295
- class ObjectHelper {
296
- static generateUUID() {
297
- return Math.random().toString(36).substr(2, 9);
298
- }
299
- static clone(objOrObjs) {
300
- const cloneObject = (obj) => {
301
- const _a = obj, { element } = _a, remainingProps = __rest(_a, ["_store", "_elementRef", "totalWidth", "totalHeight", "element"]);
302
- const clonedProps = structuredClone(remainingProps);
303
- if (element && element instanceof HTMLElement) {
304
- clonedProps.element = element.cloneNode(true);
305
- }
306
- return clonedProps;
307
- };
308
- if (Array.isArray(objOrObjs)) {
309
- return objOrObjs.map(cloneObject);
310
- }
311
- return cloneObject(objOrObjs);
312
- }
313
- static isEmpty(obj) {
314
- if (obj === null || obj === undefined) {
315
- return true;
316
- }
317
- return (Object === null || Object === void 0 ? void 0 : Object.keys(obj).length) === 0 && (obj === null || obj === void 0 ? void 0 : obj.constructor) === Object;
318
- }
319
- }
320
-
321
354
  class KritzelGeometryHelper {
322
355
  static doPolygonsIntersect(polygon1, polygon2) {
323
356
  // 1. Convert polygons to array of points for easier processing
@@ -478,6 +511,7 @@ class KritzelBaseObject {
478
511
  const object = new KritzelBaseObject();
479
512
  object._store = store;
480
513
  object.zIndex = store.currentZIndex;
514
+ object.workspaceId = store.state.activeWorkspace.id;
481
515
  return object;
482
516
  }
483
517
  mount(element) {
@@ -601,6 +635,8 @@ class KritzelText extends KritzelBaseObject {
601
635
  static create(store, fontSize, fontFamily) {
602
636
  const object = new KritzelText();
603
637
  object._store = store;
638
+ object.id = object.generateId();
639
+ object.workspaceId = store.state.activeWorkspace.id;
604
640
  object.fontSize = fontSize;
605
641
  object.fontFamily = fontFamily;
606
642
  object.translateX = 0;
@@ -648,9 +684,9 @@ class KritzelText extends KritzelBaseObject {
648
684
  else {
649
685
  this.value = target.value.trim();
650
686
  }
651
- this.adjustTextareaSize();
687
+ this.updateTextareaDimensions();
652
688
  }
653
- adjustTextareaSize() {
689
+ updateTextareaDimensions() {
654
690
  if (this.elementRef) {
655
691
  const span = document.createElement('span');
656
692
  span.style.position = 'absolute';
@@ -665,7 +701,7 @@ class KritzelText extends KritzelBaseObject {
665
701
  document.body.removeChild(span);
666
702
  this.width = textWidth;
667
703
  this.height = textHeight;
668
- this._store.rerender();
704
+ this._store.history.executeCommand(new UpdateObjectCommand(this._store, this, this, Object.assign({}, this)));
669
705
  }
670
706
  }
671
707
  focus() {
@@ -689,7 +725,7 @@ class KritzelText extends KritzelBaseObject {
689
725
  this.elementRef.value = value.substring(0, start) + text + value.substring(end);
690
726
  this.elementRef.selectionStart = this.elementRef.selectionEnd = start + text.length;
691
727
  this.value = this.elementRef.value;
692
- this.adjustTextareaSize();
728
+ this.updateTextareaDimensions();
693
729
  });
694
730
  }
695
731
  catch (err) {
@@ -762,6 +798,7 @@ class KritzelPath extends KritzelBaseObject {
762
798
  const object = new KritzelPath();
763
799
  object._store = store;
764
800
  object.id = object.generateId();
801
+ object.workspaceId = store.state.activeWorkspace.id;
765
802
  object.options = options;
766
803
  object.points = (_a = options === null || options === void 0 ? void 0 : options.points) !== null && _a !== void 0 ? _a : [];
767
804
  object.translateX = (_b = options === null || options === void 0 ? void 0 : options.translateX) !== null && _b !== void 0 ? _b : 0;
@@ -1013,6 +1050,7 @@ class KritzelImage extends KritzelBaseObject {
1013
1050
  const object = new KritzelImage();
1014
1051
  object._store = store;
1015
1052
  object.id = object.generateId();
1053
+ object.workspaceId = store.state.activeWorkspace.id;
1016
1054
  object.x = 0;
1017
1055
  object.y = 0;
1018
1056
  object.translateX = 0;
@@ -1158,8 +1196,8 @@ class KritzelBrushTool extends KritzelBaseTool {
1158
1196
  }
1159
1197
 
1160
1198
  class BatchCommand extends KritzelBaseCommand {
1161
- constructor(store, initiator, commands) {
1162
- super(store, initiator);
1199
+ constructor(store, initiator, commands, skipHistory = false) {
1200
+ super(store, initiator, skipHistory);
1163
1201
  this.commands = commands;
1164
1202
  }
1165
1203
  execute() {
@@ -1188,6 +1226,7 @@ class KritzelCustomElement extends KritzelBaseObject {
1188
1226
  const object = new KritzelCustomElement(config);
1189
1227
  object._store = store;
1190
1228
  object.id = object.generateId();
1229
+ object.workspaceId = store.state.activeWorkspace.id;
1191
1230
  return object;
1192
1231
  }
1193
1232
  mount(element) {
@@ -1222,17 +1261,19 @@ class KritzelCustomElement extends KritzelBaseObject {
1222
1261
  }
1223
1262
 
1224
1263
  class RemoveObjectCommand extends KritzelBaseCommand {
1225
- constructor(store, initiator, object) {
1226
- super(store, initiator);
1264
+ constructor(store, initiator, object, skipHistory = false) {
1265
+ super(store, initiator, skipHistory);
1227
1266
  this.object = object;
1228
1267
  }
1229
1268
  execute() {
1230
1269
  this._store.state.objectsOctree.remove(object => object.id === this.object.id);
1231
1270
  this._store.state.objectsOctree.filter(object => object instanceof KritzelCustomElement).forEach(object => object.remount());
1271
+ this._store.deleteObjectFromDatabase(this.object.id);
1232
1272
  }
1233
1273
  undo() {
1234
1274
  this._store.state.objectsOctree.insert(this.object);
1235
1275
  this._store.state.objectsOctree.filter(object => object instanceof KritzelCustomElement).forEach(object => object.remount());
1276
+ this._store.addObjectToDatabase(ObjectHelper.clone(this.object));
1236
1277
  }
1237
1278
  }
1238
1279
 
@@ -1319,8 +1360,8 @@ class KritzelEraserTool extends KritzelBaseTool {
1319
1360
  }
1320
1361
 
1321
1362
  class RemoveSelectionGroupCommand extends KritzelBaseCommand {
1322
- constructor(store, initiator) {
1323
- super(store, initiator);
1363
+ constructor(store, initiator, skipHistory = false) {
1364
+ super(store, initiator, skipHistory);
1324
1365
  this.previousSelectionGroup = this._store.state.selectionGroup;
1325
1366
  }
1326
1367
  execute() {
@@ -1336,8 +1377,8 @@ class RemoveSelectionGroupCommand extends KritzelBaseCommand {
1336
1377
  }
1337
1378
 
1338
1379
  class MoveSelectionGroupCommand extends KritzelBaseCommand {
1339
- constructor(store, initiator, startX, startY, endX, endY, skipFirstExecution = false) {
1340
- super(store, initiator);
1380
+ constructor(store, initiator, startX, startY, endX, endY, skipFirstExecution = false, skipHistory = false) {
1381
+ super(store, initiator, skipHistory);
1341
1382
  this.startX = startX;
1342
1383
  this.startY = startY;
1343
1384
  this.endX = endX;
@@ -1434,13 +1475,27 @@ class KritzelMoveHandler extends KritzelBaseHandler {
1434
1475
  if (event.pointerType === 'mouse') {
1435
1476
  if (this._store.state.isDragging) {
1436
1477
  this._store.state.isDragging = false;
1437
- this._store.history.executeCommand(new MoveSelectionGroupCommand(this._store, this, this.endX, this.endY, this.startX, this.startY, true));
1478
+ const moveSelectionGroupCommand = new MoveSelectionGroupCommand(this._store, this, this.endX, this.endY, this.startX, this.startY, true);
1479
+ const updateObjectsCommand = this._store.state.selectionGroup.objects.map(object => {
1480
+ return new UpdateObjectCommand(this._store, this, object, {
1481
+ translateX: object.translateX,
1482
+ translateY: object.translateY
1483
+ });
1484
+ });
1485
+ this._store.history.executeCommand(new BatchCommand(this._store, this, [moveSelectionGroupCommand, ...updateObjectsCommand]));
1438
1486
  }
1439
1487
  }
1440
1488
  if (event.pointerType === 'touch') {
1441
1489
  if (this._store.state.isDragging) {
1442
1490
  this._store.state.isDragging = false;
1443
- this._store.history.executeCommand(new MoveSelectionGroupCommand(this._store, this, this.endX, this.endY, this.startX, this.startY, true));
1491
+ const moveSelectionGroupCommand = new MoveSelectionGroupCommand(this._store, this, this.endX, this.endY, this.startX, this.startY, true);
1492
+ const updateObjectsCommand = this._store.state.selectionGroup.objects.map(object => {
1493
+ return new UpdateObjectCommand(this._store, this, object, {
1494
+ translateX: object.translateX,
1495
+ translateY: object.translateY
1496
+ });
1497
+ });
1498
+ this._store.history.executeCommand(new BatchCommand(this._store, this, [moveSelectionGroupCommand, ...updateObjectsCommand]));
1444
1499
  }
1445
1500
  }
1446
1501
  }
@@ -1455,8 +1510,8 @@ var KritzelHandleType;
1455
1510
  })(KritzelHandleType || (KritzelHandleType = {}));
1456
1511
 
1457
1512
  class ResizeSelectionGroupCommand extends KritzelBaseCommand {
1458
- constructor(store, initiator, previousSize, newSize) {
1459
- super(store, initiator);
1513
+ constructor(store, initiator, previousSize, newSize, skipHistory = false) {
1514
+ super(store, initiator, skipHistory);
1460
1515
  this.previousSize = previousSize;
1461
1516
  this.newSize = newSize;
1462
1517
  this.selectionGroup = this._store.state.selectionGroup;
@@ -1600,7 +1655,10 @@ class KritzelResizeHandler extends KritzelBaseHandler {
1600
1655
  if (event.pointerType === 'mouse') {
1601
1656
  if (this._store.state.isResizing) {
1602
1657
  const resizeSelectionGroupCommand = new ResizeSelectionGroupCommand(this._store, this, structuredClone(this.initialSize), structuredClone(this.newSize));
1603
- this._store.history.executeCommand(resizeSelectionGroupCommand);
1658
+ const updateObjectsCommand = this._store.state.selectionGroup.objects.map(object => {
1659
+ return new UpdateObjectCommand(this._store, this, object, Object.assign({}, object));
1660
+ });
1661
+ this._store.history.executeCommand(new BatchCommand(this._store, this, [resizeSelectionGroupCommand, ...updateObjectsCommand]));
1604
1662
  this._store.state.isResizing = false;
1605
1663
  this._store.rerender();
1606
1664
  }
@@ -1608,7 +1666,10 @@ class KritzelResizeHandler extends KritzelBaseHandler {
1608
1666
  if (event.pointerType === 'touch') {
1609
1667
  if (this._store.state.isResizing) {
1610
1668
  const resizeSelectionGroupCommand = new ResizeSelectionGroupCommand(this._store, this, structuredClone(this.initialSize), structuredClone(this.newSize));
1611
- this._store.history.executeCommand(resizeSelectionGroupCommand);
1669
+ const updateObjectsCommand = this._store.state.selectionGroup.objects.map(object => {
1670
+ return new UpdateObjectCommand(this._store, this, object, Object.assign({}, object));
1671
+ });
1672
+ this._store.history.executeCommand(new BatchCommand(this._store, this, [resizeSelectionGroupCommand, ...updateObjectsCommand]));
1612
1673
  this._store.state.isResizing = false;
1613
1674
  this._store.rerender();
1614
1675
  clearTimeout(this._store.state.longTouchTimeout);
@@ -1618,8 +1679,8 @@ class KritzelResizeHandler extends KritzelBaseHandler {
1618
1679
  }
1619
1680
 
1620
1681
  class RotateSelectionGroupCommand extends KritzelBaseCommand {
1621
- constructor(store, initiator, rotation) {
1622
- super(store, initiator);
1682
+ constructor(store, initiator, rotation, skipHistory = false) {
1683
+ super(store, initiator, skipHistory);
1623
1684
  this.rotation = rotation;
1624
1685
  this.initialRotation = this._store.state.selectionGroup.rotation;
1625
1686
  this.selectionGroup = this._store.state.selectionGroup;
@@ -1721,7 +1782,15 @@ class KritzelRotationHandler extends KritzelBaseHandler {
1721
1782
  handlePointerUp(event) {
1722
1783
  if (event.pointerType === 'mouse') {
1723
1784
  if (this._store.state.isRotating) {
1724
- this._store.history.executeCommand(new RotateSelectionGroupCommand(this._store, this, this.rotation));
1785
+ const rotateSelectionGroupCommand = new RotateSelectionGroupCommand(this._store, this, this.rotation);
1786
+ const updateObjectsCommand = this._store.state.selectionGroup.objects.map(object => {
1787
+ return new UpdateObjectCommand(this._store, this, object, {
1788
+ rotation: object.rotation,
1789
+ translateX: object.translateX,
1790
+ translateY: object.translateY,
1791
+ });
1792
+ });
1793
+ this._store.history.executeCommand(new BatchCommand(this._store, this, [rotateSelectionGroupCommand, ...updateObjectsCommand]));
1725
1794
  this._store.state.isRotating = false;
1726
1795
  this.initialRotation = 0;
1727
1796
  this.rotation = 0;
@@ -1729,7 +1798,13 @@ class KritzelRotationHandler extends KritzelBaseHandler {
1729
1798
  }
1730
1799
  if (event.pointerType === 'touch') {
1731
1800
  if (this._store.state.isRotating) {
1732
- this._store.history.executeCommand(new RotateSelectionGroupCommand(this._store, this, this.rotation));
1801
+ const rotateSelectionGroupCommand = new RotateSelectionGroupCommand(this._store, this, this.rotation);
1802
+ const updateObjectsCommand = this._store.state.selectionGroup.objects.map(object => {
1803
+ return new UpdateObjectCommand(this._store, this, object, {
1804
+ rotation: object.rotation,
1805
+ });
1806
+ });
1807
+ this._store.history.executeCommand(new BatchCommand(this._store, this, [rotateSelectionGroupCommand, ...updateObjectsCommand]));
1733
1808
  this._store.state.isRotating = false;
1734
1809
  this.initialRotation = 0;
1735
1810
  this.rotation = 0;
@@ -1749,6 +1824,7 @@ class KrtizelSelectionBox extends KritzelBaseObject {
1749
1824
  const object = new KrtizelSelectionBox();
1750
1825
  object._store = store;
1751
1826
  object.id = object.generateId();
1827
+ object.workspaceId = store.state.activeWorkspace.id;
1752
1828
  object.scale = store.state.scale;
1753
1829
  object.zIndex = 99999;
1754
1830
  object.backgroundColor = 'var(--kritzel-selection-box-background-color, rgba(0, 122, 255, 0.2))';
@@ -1761,8 +1837,8 @@ class KrtizelSelectionBox extends KritzelBaseObject {
1761
1837
  }
1762
1838
 
1763
1839
  class AddSelectionGroupCommand extends KritzelBaseCommand {
1764
- constructor(store, initiator, selectionGroup) {
1765
- super(store, initiator);
1840
+ constructor(store, initiator, selectionGroup, skipHistory = false) {
1841
+ super(store, initiator, skipHistory);
1766
1842
  this.selectionGroup = selectionGroup;
1767
1843
  }
1768
1844
  execute() {
@@ -2206,6 +2282,7 @@ class KritzelSelectionGroup extends KritzelBaseObject {
2206
2282
  const object = new KritzelSelectionGroup();
2207
2283
  object._store = store;
2208
2284
  object.id = object.generateId();
2285
+ object.workspaceId = store.state.activeWorkspace.id;
2209
2286
  object.scale = store.state.scale;
2210
2287
  object.zIndex = 99999;
2211
2288
  return object;
@@ -2366,6 +2443,9 @@ class KritzelImageTool extends KritzelBaseTool {
2366
2443
  this.openFilePicker();
2367
2444
  }
2368
2445
  openFilePicker() {
2446
+ if (this._store.isDisabled) {
2447
+ return;
2448
+ }
2369
2449
  this.fileInput.click();
2370
2450
  }
2371
2451
  setupFileInput() {
@@ -2542,14 +2622,17 @@ exports.KritzelImage = KritzelImage;
2542
2622
  exports.KritzelImageTool = KritzelImageTool;
2543
2623
  exports.KritzelKeyboardHelper = KritzelKeyboardHelper;
2544
2624
  exports.KritzelPath = KritzelPath;
2625
+ exports.KritzelReviver = KritzelReviver;
2545
2626
  exports.KritzelSelectionGroup = KritzelSelectionGroup;
2546
2627
  exports.KritzelSelectionTool = KritzelSelectionTool;
2547
2628
  exports.KritzelText = KritzelText;
2548
2629
  exports.KritzelTextTool = KritzelTextTool;
2549
2630
  exports.KritzelToolRegistry = KritzelToolRegistry;
2550
2631
  exports.KrtizelSelectionBox = KrtizelSelectionBox;
2632
+ exports.ObjectHelper = ObjectHelper;
2551
2633
  exports.RemoveObjectCommand = RemoveObjectCommand;
2552
2634
  exports.RemoveSelectionGroupCommand = RemoveSelectionGroupCommand;
2553
- //# sourceMappingURL=index-BacMQbNR.js.map
2635
+ exports.UpdateObjectCommand = UpdateObjectCommand;
2636
+ //# sourceMappingURL=index-C7Read21.js.map
2554
2637
 
2555
- //# sourceMappingURL=index-BacMQbNR.js.map
2638
+ //# sourceMappingURL=index-C7Read21.js.map