kritzel-stencil 0.0.105 → 0.0.107

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 (152) hide show
  1. package/dist/cjs/kritzel-brush-style_18.cjs.entry.js +251 -124
  2. package/dist/cjs/kritzel-brush-style_18.cjs.entry.js.map +1 -1
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/stencil.cjs.js +1 -1
  5. package/dist/collection/classes/handlers/context-menu.handler.js +1 -1
  6. package/dist/collection/classes/handlers/context-menu.handler.js.map +1 -1
  7. package/dist/collection/classes/handlers/selection.handler.js +4 -4
  8. package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
  9. package/dist/collection/classes/objects/base-object.class.js +7 -2
  10. package/dist/collection/classes/objects/base-object.class.js.map +1 -1
  11. package/dist/collection/classes/objects/image.class.js +14 -7
  12. package/dist/collection/classes/objects/image.class.js.map +1 -1
  13. package/dist/collection/classes/objects/path.class.js +22 -16
  14. package/dist/collection/classes/objects/path.class.js.map +1 -1
  15. package/dist/collection/classes/objects/selection-box.class.js +15 -9
  16. package/dist/collection/classes/objects/selection-box.class.js.map +1 -1
  17. package/dist/collection/classes/objects/selection-group.class.js +11 -5
  18. package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
  19. package/dist/collection/classes/objects/text.class.js +29 -12
  20. package/dist/collection/classes/objects/text.class.js.map +1 -1
  21. package/dist/collection/classes/reviver.class.js +4 -4
  22. package/dist/collection/classes/reviver.class.js.map +1 -1
  23. package/dist/collection/classes/store.class.js +30 -14
  24. package/dist/collection/classes/store.class.js.map +1 -1
  25. package/dist/collection/classes/tools/brush-tool.class.js +4 -4
  26. package/dist/collection/classes/tools/brush-tool.class.js.map +1 -1
  27. package/dist/collection/classes/tools/image-tool.class.js +2 -2
  28. package/dist/collection/classes/tools/image-tool.class.js.map +1 -1
  29. package/dist/collection/classes/tools/selection-tool.class.js +1 -1
  30. package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
  31. package/dist/collection/classes/tools/text-tool.class.js +5 -2
  32. package/dist/collection/classes/tools/text-tool.class.js.map +1 -1
  33. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.css +10 -10
  34. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -1
  35. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +1 -1
  36. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +1 -1
  37. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
  38. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +235 -22
  39. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
  40. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.css +43 -43
  41. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +2 -2
  42. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +1 -1
  43. package/dist/collection/components/shared/kritzel-color/kritzel-color.css +20 -20
  44. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
  45. package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +1 -1
  46. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +53 -53
  47. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +1 -1
  48. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +1 -1
  49. package/dist/collection/components/shared/kritzel-font/kritzel-font.css +10 -10
  50. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
  51. package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +1 -1
  52. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +48 -48
  53. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +2 -2
  54. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +1 -1
  55. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +30 -30
  56. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
  57. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +1 -1
  58. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.css +17 -17
  59. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +17 -17
  60. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +4 -4
  61. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +1 -1
  62. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +1 -1
  63. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +1 -1
  64. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +18 -18
  65. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
  66. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +1 -1
  67. package/dist/collection/helpers/keyboard.helper.js +23 -0
  68. package/dist/collection/helpers/keyboard.helper.js.map +1 -1
  69. package/dist/collection/interfaces/object.interface.js.map +1 -1
  70. package/dist/components/kritzel-brush-style.js +1 -1
  71. package/dist/components/kritzel-color-palette.js +1 -1
  72. package/dist/components/kritzel-color.js +1 -1
  73. package/dist/components/kritzel-context-menu.js +1 -1
  74. package/dist/components/kritzel-control-brush-config.js +1 -1
  75. package/dist/components/kritzel-control-text-config.js +1 -1
  76. package/dist/components/kritzel-controls.js +1 -1
  77. package/dist/components/kritzel-cursor-trail.js +1 -1
  78. package/dist/components/kritzel-dropdown.js +1 -1
  79. package/dist/components/kritzel-editor.js +17 -17
  80. package/dist/components/kritzel-editor.js.map +1 -1
  81. package/dist/components/kritzel-engine.js +1 -1
  82. package/dist/components/kritzel-font-family.js +1 -1
  83. package/dist/components/kritzel-font-size.js +1 -1
  84. package/dist/components/kritzel-font.js +1 -1
  85. package/dist/components/kritzel-stroke-size.js +1 -1
  86. package/dist/components/kritzel-tooltip.js +1 -1
  87. package/dist/components/{p-D06w3u84.js → p-B7P9QBiE.js} +4 -4
  88. package/dist/components/p-B7P9QBiE.js.map +1 -0
  89. package/dist/components/{p-BjqfG-5H.js → p-BXJ8s30N.js} +8 -8
  90. package/dist/components/{p-BjqfG-5H.js.map → p-BXJ8s30N.js.map} +1 -1
  91. package/dist/components/{p-BYH2jNAX.js → p-CPjl7Inl.js} +3 -3
  92. package/dist/components/{p-BYH2jNAX.js.map → p-CPjl7Inl.js.map} +1 -1
  93. package/dist/components/p-CZkSABuJ.js.map +1 -1
  94. package/dist/components/{p-BYt7-mGK.js → p-Cbu5RSmC.js} +3 -3
  95. package/dist/components/{p-BYt7-mGK.js.map → p-Cbu5RSmC.js.map} +1 -1
  96. package/dist/components/{p-DT8_Rz-o.js → p-CesjDLvT.js} +100 -39
  97. package/dist/components/p-CesjDLvT.js.map +1 -0
  98. package/dist/components/{p-DaeIjoQm.js → p-Ck2d5Wd1.js} +4 -4
  99. package/dist/components/p-Ck2d5Wd1.js.map +1 -0
  100. package/dist/components/{p-C8KDwUb7.js → p-CmckGlXt.js} +3 -3
  101. package/dist/components/p-CmckGlXt.js.map +1 -0
  102. package/dist/components/{p-_wFpvzNp.js → p-DFhbw-Fr.js} +4 -4
  103. package/dist/components/p-DFhbw-Fr.js.map +1 -0
  104. package/dist/components/{p-BJ5xxphF.js → p-DHT5gK0E.js} +3 -3
  105. package/dist/components/{p-BJ5xxphF.js.map → p-DHT5gK0E.js.map} +1 -1
  106. package/dist/components/{p-X3xYsp4r.js → p-DInF8Iby.js} +6 -6
  107. package/dist/components/p-DInF8Iby.js.map +1 -0
  108. package/dist/components/{p-D31-QJwi.js → p-DTcfnx4-.js} +14 -14
  109. package/dist/components/{p-D31-QJwi.js.map → p-DTcfnx4-.js.map} +1 -1
  110. package/dist/components/{p-BgUIonZF.js → p-DfMdBA8L.js} +4 -4
  111. package/dist/components/p-DfMdBA8L.js.map +1 -0
  112. package/dist/components/{p-CDhTT8u8.js → p-Ds3FhuuO.js} +3 -3
  113. package/dist/components/p-Ds3FhuuO.js.map +1 -0
  114. package/dist/components/{p-C3vo4rx8.js → p-_3gCPfqz.js} +151 -79
  115. package/dist/components/p-_3gCPfqz.js.map +1 -0
  116. package/dist/components/{p-DQHNxDS7.js → p-c6tIpE_t.js} +3 -3
  117. package/dist/components/p-c6tIpE_t.js.map +1 -0
  118. package/dist/components/{p-BqUM5gV3.js → p-maiDeBe9.js} +9 -9
  119. package/dist/components/p-maiDeBe9.js.map +1 -0
  120. package/dist/esm/kritzel-brush-style_18.entry.js +251 -124
  121. package/dist/esm/kritzel-brush-style_18.entry.js.map +1 -1
  122. package/dist/esm/loader.js +1 -1
  123. package/dist/esm/stencil.js +1 -1
  124. package/dist/stencil/p-e596d004.entry.js +2 -0
  125. package/dist/stencil/p-e596d004.entry.js.map +1 -0
  126. package/dist/stencil/stencil.esm.js +1 -1
  127. package/dist/types/classes/objects/base-object.class.d.ts +4 -3
  128. package/dist/types/classes/objects/image.class.d.ts +1 -1
  129. package/dist/types/classes/objects/path.class.d.ts +1 -1
  130. package/dist/types/classes/objects/selection-box.class.d.ts +1 -1
  131. package/dist/types/classes/objects/selection-group.class.d.ts +1 -1
  132. package/dist/types/classes/objects/text.class.d.ts +12 -1
  133. package/dist/types/classes/store.class.d.ts +3 -3
  134. package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +2 -0
  135. package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +8 -1
  136. package/dist/types/components.d.ts +11 -3
  137. package/dist/types/helpers/keyboard.helper.d.ts +2 -0
  138. package/dist/types/interfaces/object.interface.d.ts +1 -1
  139. package/package.json +1 -1
  140. package/dist/components/p-BgUIonZF.js.map +0 -1
  141. package/dist/components/p-BqUM5gV3.js.map +0 -1
  142. package/dist/components/p-C3vo4rx8.js.map +0 -1
  143. package/dist/components/p-C8KDwUb7.js.map +0 -1
  144. package/dist/components/p-CDhTT8u8.js.map +0 -1
  145. package/dist/components/p-D06w3u84.js.map +0 -1
  146. package/dist/components/p-DQHNxDS7.js.map +0 -1
  147. package/dist/components/p-DT8_Rz-o.js.map +0 -1
  148. package/dist/components/p-DaeIjoQm.js.map +0 -1
  149. package/dist/components/p-X3xYsp4r.js.map +0 -1
  150. package/dist/components/p-_wFpvzNp.js.map +0 -1
  151. package/dist/stencil/p-d0394bb5.entry.js +0 -2
  152. package/dist/stencil/p-d0394bb5.entry.js.map +0 -1
@@ -14,6 +14,9 @@ import { KritzelToolRegistry } from "../../../classes/tool.registry";
14
14
  import { KritzelKeyboardHelper } from "../../../helpers/keyboard.helper";
15
15
  import { KritzelContextMenuHandler } from "../../../classes/handlers/context-menu.handler";
16
16
  import { KritzelEventHelper } from "../../../helpers/event.helper";
17
+ import { AddObjectCommand } from "../../../classes/commands/add-object.command";
18
+ import { UpdateObjectCommand } from "../../../classes/commands/update-object.command";
19
+ import { RemoveObjectCommand } from "../../../classes/commands/remove-object.command";
17
20
  export class KritzelEngine {
18
21
  get isSelecting() {
19
22
  return this.store.state.activeTool instanceof KritzelSelectionTool && this.store.state.isSelecting;
@@ -33,7 +36,7 @@ export class KritzelEngine {
33
36
  this.paste(x, y);
34
37
  },
35
38
  },
36
- { label: 'Select All', icon: 'select-all', action: () => this.selectAllInViewport() },
39
+ { label: 'Select All', icon: 'select-all', action: () => this.selectAllObjectsInViewport() },
37
40
  ];
38
41
  this.objectContextMenuItems = [
39
42
  { label: 'Copy', icon: 'copy', action: () => this.copy() },
@@ -58,7 +61,7 @@ export class KritzelEngine {
58
61
  this.keyHandler = new KritzelKeyHandler(this.store);
59
62
  this.store.onStateChange('activeTool', (activeTool) => {
60
63
  if (!(activeTool instanceof KritzelSelectionTool)) {
61
- this.store.resetSelection();
64
+ this.store.clearSelection();
62
65
  }
63
66
  this.store.state.skipContextMenu = false;
64
67
  this.activeToolChange.emit(activeTool);
@@ -244,9 +247,6 @@ export class KritzelEngine {
244
247
  async moveToBottom() {
245
248
  this.store.moveToBottom();
246
249
  }
247
- async selectAllInViewport() {
248
- this.store.selectAllInViewport();
249
- }
250
250
  async undo() {
251
251
  this.store.history.undo();
252
252
  }
@@ -258,21 +258,63 @@ export class KritzelEngine {
258
258
  this.store.state.selectionBox = null;
259
259
  this.store.state.isSelecting = false;
260
260
  }
261
+ async getObjectById(id) {
262
+ const object = this.store.objects.find(obj => obj.id === id);
263
+ return object || null;
264
+ }
265
+ async addObject(object) {
266
+ this.store.deselectAllObjects();
267
+ object.id = object.generateId();
268
+ object._store = this.store;
269
+ object.zIndex = this.store.currentZIndex;
270
+ const command = new AddObjectCommand(this.store, this, object);
271
+ this.store.history.executeCommand(command);
272
+ return object;
273
+ }
274
+ async updateObject(object, updatedProperties) {
275
+ this.store.deselectAllObjects();
276
+ const command = new UpdateObjectCommand(this.store, this, object, updatedProperties);
277
+ this.store.history.executeCommand(command);
278
+ return object;
279
+ }
280
+ async removeObject(object) {
281
+ this.store.deselectAllObjects();
282
+ const command = new RemoveObjectCommand(this.store, this, object);
283
+ this.store.history.executeCommand(command);
284
+ return object;
285
+ }
286
+ async selectObjects(objects) {
287
+ var _a;
288
+ (_a = this.store.state.activeTool) === null || _a === void 0 ? void 0 : _a.onDeactivate();
289
+ this.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
290
+ this.store.deselectAllObjects();
291
+ this.store.selectObjects(objects);
292
+ }
293
+ async selectAllObjectsInViewport() {
294
+ var _a;
295
+ (_a = this.store.state.activeTool) === null || _a === void 0 ? void 0 : _a.onDeactivate();
296
+ this.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
297
+ this.store.deselectAllObjects();
298
+ this.store.selectAllObjectsInViewport();
299
+ }
300
+ async clearSelection() {
301
+ this.store.clearSelection();
302
+ }
261
303
  render() {
262
304
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
263
305
  const computedStyle = window.getComputedStyle(this.host);
264
306
  const baseHandleSizePx = computedStyle.getPropertyValue('--kritzel-selection-handle-size').trim() || '6px';
265
307
  const baseHandleSize = parseFloat(baseHandleSizePx);
266
308
  const baseHandleTouchSize = baseHandleSize * 2 < 14 ? 14 : baseHandleSize;
267
- return (h(Host, { key: '81d2f8efadded214fde44f3dbaea3b678d0b182b' }, h("div", { key: '6657555d40bff3b5d44733e286c4076a82ca2e98', class: "debug-panel", style: { display: this.store.state.debugInfo.showViewportInfo ? 'block' : 'none' } }, h("div", { key: 'e0cf766f7e8c8e7856a6b55c9c24272fa865c86e' }, "TranslateX: ", (_a = this.store.state) === null || _a === void 0 ? void 0 :
268
- _a.translateX), h("div", { key: '6c979eb953d01507fd29013d9186618f8f14588b' }, "TranslateY: ", (_b = this.store.state) === null || _b === void 0 ? void 0 :
269
- _b.translateY), h("div", { key: '3be6ea4a5b5eef5d07ddc48aa8ac2e57edbe0887' }, "ViewportWidth: ", (_c = this.store.state) === null || _c === void 0 ? void 0 :
270
- _c.viewportWidth), h("div", { key: '70aed9d3ee1227ba2a4f54a95eda27cb748f4b9f' }, "ViewportHeight: ", (_d = this.store.state) === null || _d === void 0 ? void 0 :
271
- _d.viewportHeight), h("div", { key: 'c2e79c4245e9f107e5512472030684e0ed617d1a' }, "ObjectsInViewport. ", this.store.objects.length), h("div", { key: '66f4284c2d4fd5dae03ffa9b641a28b2528ea117' }, "Scale: ", (_e = this.store.state) === null || _e === void 0 ? void 0 :
272
- _e.scale), h("div", { key: 'e4518d18cf923b57dceb38c07f409471bc178e9d' }, "ActiveTool: ", (_g = (_f = this.store.state) === null || _f === void 0 ? void 0 : _f.activeTool) === null || _g === void 0 ? void 0 :
273
- _g.name), h("div", { key: '47ea576f9c78f3bfb3e03649a88ec0f7b544f2d7' }, "HasViewportChanged: ", ((_h = this.store.state) === null || _h === void 0 ? void 0 : _h.hasViewportChanged) ? 'true' : 'false'), h("div", { key: 'fe92910fd861170651688fedbdc2f15829c15a58' }, "IsEnabled: ", ((_j = this.store.state) === null || _j === void 0 ? void 0 : _j.isEnabled) ? 'true' : 'false'), h("div", { key: 'cbe7e87d9a3be8acd47dd45f1b69314a8a9c536a' }, "IsScaling: ", ((_k = this.store.state) === null || _k === void 0 ? void 0 : _k.isScaling) ? 'true' : 'false'), h("div", { key: '722a58415ae67530dfe611e03a34f30e4c1db64e' }, "IsPanning: ", ((_l = this.store.state) === null || _l === void 0 ? void 0 : _l.isPanning) ? 'true' : 'false'), h("div", { key: 'd9686a405ee05480c17358afb865a39bd64a2346' }, "IsFocused: ", this.store.state.isFocused ? 'true' : 'false'), h("div", { key: '383f8e4a9e98b891507ff95416a20279e4d79431' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), h("div", { key: 'fbda2b9f1ba4fe9daefb7f8b36d25d297b47a764' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), h("div", { key: 'c1bb88c228cd6bbd2bdb0fe6bb3fd9b47d92bc2e' }, "IsResizeHandleSelected: ", this.store.state.isResizeHandleSelected ? 'true' : 'false'), h("div", { key: '26c77aadc8cda5f27f746d0c38049d830127c81e' }, "IsRotationHandleSelected: ", this.store.state.isRotationHandleSelected ? 'true' : 'false'), h("div", { key: '885725248c47714a49769b94ba48a3a0f59a7f97' }, "IsDrawing: ", this.store.state.isDrawing ? 'true' : 'false'), h("div", { key: '035d1c72d476ea9f8110145a25084eca59cfbedc' }, "IsWriting: ", this.store.state.isWriting ? 'true' : 'false'), h("div", { key: 'd6ac0024bec7d64ca327e6a5760e427e88269b8d' }, "CursorX: ", (_m = this.store.state) === null || _m === void 0 ? void 0 :
274
- _m.cursorX), h("div", { key: 'b3bdd26eb7d5ac0fdfda0f13b7d4cde9f3712954' }, "CursorY: ", (_o = this.store.state) === null || _o === void 0 ? void 0 :
275
- _o.cursorY)), h("div", { key: '186591f736514dcdb96f22d5ab3d14347a4c51ae', class: "origin", style: {
309
+ return (h(Host, { key: '0c20c50e3ad8ac088902881c35c406ad2f0787d5' }, h("div", { key: 'a89d76b5f6a10cbc54c40d034a08b3ceb99be063', class: "debug-panel", style: { display: this.store.state.debugInfo.showViewportInfo ? 'block' : 'none' } }, h("div", { key: '94345439d02de7d005bb92abb377b7ebeb91fcdb' }, "TranslateX: ", (_a = this.store.state) === null || _a === void 0 ? void 0 :
310
+ _a.translateX), h("div", { key: '1e2e3ffc6ad760f089f4d02d94dfeb09bb5725cb' }, "TranslateY: ", (_b = this.store.state) === null || _b === void 0 ? void 0 :
311
+ _b.translateY), h("div", { key: '36d6170934959e19b95326d84b32c9abe2385edc' }, "ViewportWidth: ", (_c = this.store.state) === null || _c === void 0 ? void 0 :
312
+ _c.viewportWidth), h("div", { key: '57e5d37af3fd1f6ad24ea89ca525a6f0bc8e014b' }, "ViewportHeight: ", (_d = this.store.state) === null || _d === void 0 ? void 0 :
313
+ _d.viewportHeight), h("div", { key: '8281e788e350db75bbf1fe12dd8c17b91b429135' }, "ObjectsInViewport. ", this.store.objects.length), h("div", { key: '9f42aad27d0a266cbc720d1e13292bea5be84770' }, "Scale: ", (_e = this.store.state) === null || _e === void 0 ? void 0 :
314
+ _e.scale), h("div", { key: '76848c1a0eb2379ee0d0314523a540dbeb3d0697' }, "ActiveTool: ", (_g = (_f = this.store.state) === null || _f === void 0 ? void 0 : _f.activeTool) === null || _g === void 0 ? void 0 :
315
+ _g.name), h("div", { key: '77f8ff0b660227f7b25c12b74d70946bc1f66e78' }, "HasViewportChanged: ", ((_h = this.store.state) === null || _h === void 0 ? void 0 : _h.hasViewportChanged) ? 'true' : 'false'), h("div", { key: '229e94fee90a847a853419ae61bc131221313fc6' }, "IsEnabled: ", ((_j = this.store.state) === null || _j === void 0 ? void 0 : _j.isEnabled) ? 'true' : 'false'), h("div", { key: 'f31784916ab54f9a5eda02cffebe55a1f9aaa51f' }, "IsScaling: ", ((_k = this.store.state) === null || _k === void 0 ? void 0 : _k.isScaling) ? 'true' : 'false'), h("div", { key: '4611a6dd48f1033d42fc3b7813634cbc16bf9b3b' }, "IsPanning: ", ((_l = this.store.state) === null || _l === void 0 ? void 0 : _l.isPanning) ? 'true' : 'false'), h("div", { key: '14388f4b5cca60d8a2d8d474f941b53a78ad327d' }, "IsFocused: ", this.store.state.isFocused ? 'true' : 'false'), h("div", { key: '2f3dcd488855413e392f56718af640e369d99fae' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), h("div", { key: '2cd0e44a1d13eaf5d3a942f75a727a074bf37622' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), h("div", { key: '99d51cf25e02c9d06865bf1f847c704ad8a32110' }, "IsResizeHandleSelected: ", this.store.state.isResizeHandleSelected ? 'true' : 'false'), h("div", { key: '87ab9908a318b238ad1fb00e91dba9c485038443' }, "IsRotationHandleSelected: ", this.store.state.isRotationHandleSelected ? 'true' : 'false'), h("div", { key: '20f291bf45ba06b4107002e288b93f8f61ef9520' }, "IsDrawing: ", this.store.state.isDrawing ? 'true' : 'false'), h("div", { key: '52244f4f0d368e7bc183eed4c65abe536d134f44' }, "IsWriting: ", this.store.state.isWriting ? 'true' : 'false'), h("div", { key: '641edd47e7bccc7514ed6aeac3ecbead95568dde' }, "CursorX: ", (_m = this.store.state) === null || _m === void 0 ? void 0 :
316
+ _m.cursorX), h("div", { key: 'bf0826a9cbc800ca0f13d4de4da7dbb21241498f' }, "CursorY: ", (_o = this.store.state) === null || _o === void 0 ? void 0 :
317
+ _o.cursorY)), h("div", { key: '5659cb254f57b79ca8e33ab11a8087d5ca5088dc', class: "origin", style: {
276
318
  transform: `matrix(${(_p = this.store.state) === null || _p === void 0 ? void 0 : _p.scale}, 0, 0, ${(_q = this.store.state) === null || _q === void 0 ? void 0 : _q.scale}, ${(_r = this.store.state) === null || _r === void 0 ? void 0 : _r.translateX}, ${(_s = this.store.state) === null || _s === void 0 ? void 0 : _s.translateY})`,
277
319
  } }, (_t = this.store.objects) === null || _t === void 0 ? void 0 :
278
320
  _t.map(object => {
@@ -369,7 +411,7 @@ export class KritzelEngine {
369
411
  fill: 'transparent',
370
412
  cursor: 'grab',
371
413
  }, visibility: object.selected && !this.isSelecting ? 'visible' : 'hidden' }), h("g", { style: { display: this.store.state.debugInfo.showObjectInfo ? 'block' : 'none', pointerEvents: 'none' } }, h("foreignObject", { x: object.totalWidth.toString(), y: "0", width: "400px", height: "160px", style: { minHeight: '0', minWidth: '0', display: object.debugInfoVisible ? 'block' : 'none' } }, h("div", { style: { width: '100%', height: '100%' } }, h("div", { style: { whiteSpace: 'nowrap' } }, "zIndex: ", object.zIndex), h("div", { style: { whiteSpace: 'nowrap' } }, "translateX: ", object.translateX), h("div", { style: { whiteSpace: 'nowrap' } }, "translateY: ", object.translateY), h("div", { style: { whiteSpace: 'nowrap' } }, "width: ", object.width), h("div", { style: { whiteSpace: 'nowrap' } }, "height: ", object.height), h("div", { style: { whiteSpace: 'nowrap' } }, "scale: ", object.scale), h("div", { style: { whiteSpace: 'nowrap' } }, "rotation: ", object.rotation)))))));
372
- }), h("svg", { key: '9f862215ce2de4cc0745942bc946897f5f5e24b7', class: "object", xmlns: "http://www.w3.org/2000/svg", style: {
414
+ }), h("svg", { key: '05a35ebb17312d00a4065dc6dc76f3a93a72eff4', class: "object", xmlns: "http://www.w3.org/2000/svg", style: {
373
415
  height: (_u = this.store.state.currentPath) === null || _u === void 0 ? void 0 : _u.height.toString(),
374
416
  width: (_v = this.store.state.currentPath) === null || _v === void 0 ? void 0 : _v.width.toString(),
375
417
  left: '0',
@@ -379,12 +421,12 @@ export class KritzelEngine {
379
421
  transform: (_x = this.store.state.currentPath) === null || _x === void 0 ? void 0 : _x.transformationMatrix,
380
422
  transformOrigin: 'top left',
381
423
  overflow: 'visible',
382
- }, viewBox: (_y = this.store.state.currentPath) === null || _y === void 0 ? void 0 : _y.viewBox }, h("path", { key: 'e1f0ea5ee56c8fb753438c978750151c688e9330', d: (_z = this.store.state.currentPath) === null || _z === void 0 ? void 0 : _z.d, fill: (_0 = this.store.state.currentPath) === null || _0 === void 0 ? void 0 : _0.fill, stroke: (_1 = this.store.state.currentPath) === null || _1 === void 0 ? void 0 : _1.stroke }))), this.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: '89184b62326fcfde61ee4922ec5d640b16a191a7', ref: el => (this.contextMenuElement = el), items: this.store.state.contextMenuItems, style: {
424
+ }, viewBox: (_y = this.store.state.currentPath) === null || _y === void 0 ? void 0 : _y.viewBox }, h("path", { key: 'cb232e2697ce6ede2e4d9ed2e1b433ccde3961b5', d: (_z = this.store.state.currentPath) === null || _z === void 0 ? void 0 : _z.d, fill: (_0 = this.store.state.currentPath) === null || _0 === void 0 ? void 0 : _0.fill, stroke: (_1 = this.store.state.currentPath) === null || _1 === void 0 ? void 0 : _1.stroke }))), this.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: 'e41b88a78bbd25f692fbdba88fda80993055a078', ref: el => (this.contextMenuElement = el), items: this.store.state.contextMenuItems, style: {
383
425
  position: 'fixed',
384
426
  left: `${this.store.state.contextMenuX}px`,
385
427
  top: `${this.store.state.contextMenuY}px`,
386
428
  zIndex: '10000',
387
- }, onActionSelected: event => this.handleContextMenuAction(event) })), ((_2 = this.store.state) === null || _2 === void 0 ? void 0 : _2.activeTool) instanceof KritzelEraserTool && !this.store.state.isScaling && h("kritzel-cursor-trail", { key: '8797da3afce7d97e0f94ec9f90522b9ad35bb71b' })));
429
+ }, onActionSelected: event => this.handleContextMenuAction(event) })), ((_2 = this.store.state) === null || _2 === void 0 ? void 0 : _2.activeTool) instanceof KritzelEraserTool && !this.store.state.isScaling && h("kritzel-cursor-trail", { key: '1d96c0d7fa94ddcf5820fd76fbaf69c54b1face2' })));
388
430
  }
389
431
  static get is() { return "kritzel-engine"; }
390
432
  static get encapsulation() { return "shadow"; }
@@ -447,7 +489,7 @@ export class KritzelEngine {
447
489
  },
448
490
  "getter": false,
449
491
  "setter": false,
450
- "defaultValue": "[\r\n {\r\n label: 'Paste',\r\n icon: 'paste',\r\n disabled: () => this.store.state.copiedObjects === null,\r\n action: () => {\r\n const x = (-this.store.state.translateX + this.store.state.contextMenuX) / this.store.state.scale;\r\n const y = (-this.store.state.translateY + this.store.state.contextMenuY) / this.store.state.scale;\r\n this.paste(x, y);\r\n },\r\n },\r\n { label: 'Select All', icon: 'select-all', action: () => this.selectAllInViewport() },\r\n ]"
492
+ "defaultValue": "[\r\n {\r\n label: 'Paste',\r\n icon: 'paste',\r\n disabled: () => this.store.state.copiedObjects === null,\r\n action: () => {\r\n const x = (-this.store.state.translateX + this.store.state.contextMenuX) / this.store.state.scale;\r\n const y = (-this.store.state.translateY + this.store.state.contextMenuY) / this.store.state.scale;\r\n this.paste(x, y);\r\n },\r\n },\r\n { label: 'Select All', icon: 'select-all', action: () => this.selectAllObjectsInViewport() },\r\n ]"
451
493
  },
452
494
  "objectContextMenuItems": {
453
495
  "type": "unknown",
@@ -736,7 +778,7 @@ export class KritzelEngine {
736
778
  "tags": []
737
779
  }
738
780
  },
739
- "selectAllInViewport": {
781
+ "undo": {
740
782
  "complexType": {
741
783
  "signature": "() => Promise<void>",
742
784
  "parameters": [],
@@ -753,7 +795,7 @@ export class KritzelEngine {
753
795
  "tags": []
754
796
  }
755
797
  },
756
- "undo": {
798
+ "redo": {
757
799
  "complexType": {
758
800
  "signature": "() => Promise<void>",
759
801
  "parameters": [],
@@ -770,7 +812,7 @@ export class KritzelEngine {
770
812
  "tags": []
771
813
  }
772
814
  },
773
- "redo": {
815
+ "hideContextMenu": {
774
816
  "complexType": {
775
817
  "signature": "() => Promise<void>",
776
818
  "parameters": [],
@@ -787,7 +829,178 @@ export class KritzelEngine {
787
829
  "tags": []
788
830
  }
789
831
  },
790
- "hideContextMenu": {
832
+ "getObjectById": {
833
+ "complexType": {
834
+ "signature": "<T extends KritzelBaseObject>(id: string) => Promise<T | null>",
835
+ "parameters": [{
836
+ "name": "id",
837
+ "type": "string",
838
+ "docs": ""
839
+ }],
840
+ "references": {
841
+ "Promise": {
842
+ "location": "global",
843
+ "id": "global::Promise"
844
+ },
845
+ "T": {
846
+ "location": "global",
847
+ "id": "global::T"
848
+ },
849
+ "KritzelBaseObject": {
850
+ "location": "import",
851
+ "path": "../../../classes/objects/base-object.class",
852
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
853
+ }
854
+ },
855
+ "return": "Promise<T>"
856
+ },
857
+ "docs": {
858
+ "text": "",
859
+ "tags": []
860
+ }
861
+ },
862
+ "addObject": {
863
+ "complexType": {
864
+ "signature": "<T extends KritzelBaseObject>(object: T) => Promise<T | null>",
865
+ "parameters": [{
866
+ "name": "object",
867
+ "type": "T",
868
+ "docs": ""
869
+ }],
870
+ "references": {
871
+ "Promise": {
872
+ "location": "global",
873
+ "id": "global::Promise"
874
+ },
875
+ "T": {
876
+ "location": "global",
877
+ "id": "global::T"
878
+ },
879
+ "KritzelBaseObject": {
880
+ "location": "import",
881
+ "path": "../../../classes/objects/base-object.class",
882
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
883
+ }
884
+ },
885
+ "return": "Promise<T>"
886
+ },
887
+ "docs": {
888
+ "text": "",
889
+ "tags": []
890
+ }
891
+ },
892
+ "updateObject": {
893
+ "complexType": {
894
+ "signature": "<T extends KritzelBaseObject>(object: T, updatedProperties: Partial<T>) => Promise<T | null>",
895
+ "parameters": [{
896
+ "name": "object",
897
+ "type": "T",
898
+ "docs": ""
899
+ }, {
900
+ "name": "updatedProperties",
901
+ "type": "{ [P in keyof T]?: T[P]; }",
902
+ "docs": ""
903
+ }],
904
+ "references": {
905
+ "Promise": {
906
+ "location": "global",
907
+ "id": "global::Promise"
908
+ },
909
+ "T": {
910
+ "location": "global",
911
+ "id": "global::T"
912
+ },
913
+ "KritzelBaseObject": {
914
+ "location": "import",
915
+ "path": "../../../classes/objects/base-object.class",
916
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
917
+ },
918
+ "Partial": {
919
+ "location": "global",
920
+ "id": "global::Partial"
921
+ }
922
+ },
923
+ "return": "Promise<T>"
924
+ },
925
+ "docs": {
926
+ "text": "",
927
+ "tags": []
928
+ }
929
+ },
930
+ "removeObject": {
931
+ "complexType": {
932
+ "signature": "<T extends KritzelBaseObject>(object: T) => Promise<T | null>",
933
+ "parameters": [{
934
+ "name": "object",
935
+ "type": "T",
936
+ "docs": ""
937
+ }],
938
+ "references": {
939
+ "Promise": {
940
+ "location": "global",
941
+ "id": "global::Promise"
942
+ },
943
+ "T": {
944
+ "location": "global",
945
+ "id": "global::T"
946
+ },
947
+ "KritzelBaseObject": {
948
+ "location": "import",
949
+ "path": "../../../classes/objects/base-object.class",
950
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
951
+ }
952
+ },
953
+ "return": "Promise<T>"
954
+ },
955
+ "docs": {
956
+ "text": "",
957
+ "tags": []
958
+ }
959
+ },
960
+ "selectObjects": {
961
+ "complexType": {
962
+ "signature": "(objects: KritzelBaseObject[]) => Promise<void>",
963
+ "parameters": [{
964
+ "name": "objects",
965
+ "type": "KritzelBaseObject<HTMLElement>[]",
966
+ "docs": ""
967
+ }],
968
+ "references": {
969
+ "Promise": {
970
+ "location": "global",
971
+ "id": "global::Promise"
972
+ },
973
+ "KritzelBaseObject": {
974
+ "location": "import",
975
+ "path": "../../../classes/objects/base-object.class",
976
+ "id": "src/classes/objects/base-object.class.ts::KritzelBaseObject"
977
+ }
978
+ },
979
+ "return": "Promise<void>"
980
+ },
981
+ "docs": {
982
+ "text": "",
983
+ "tags": []
984
+ }
985
+ },
986
+ "selectAllObjectsInViewport": {
987
+ "complexType": {
988
+ "signature": "() => Promise<void>",
989
+ "parameters": [],
990
+ "references": {
991
+ "Promise": {
992
+ "location": "global",
993
+ "id": "global::Promise"
994
+ }
995
+ },
996
+ "return": "Promise<void>"
997
+ },
998
+ "docs": {
999
+ "text": "",
1000
+ "tags": []
1001
+ }
1002
+ },
1003
+ "clearSelection": {
791
1004
  "complexType": {
792
1005
  "signature": "() => Promise<void>",
793
1006
  "parameters": [],