kritzel-stencil 0.0.161 → 0.0.162
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.
- package/dist/cjs/{default-text-tool.config-zB3FPuXq.js → default-line-tool.config-D1Ns0NmM.js} +3156 -1052
- package/dist/cjs/default-line-tool.config-D1Ns0NmM.js.map +1 -0
- package/dist/cjs/index.cjs.js +131 -127
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/kritzel-color_22.cjs.entry.js +480 -147
- package/dist/collection/classes/core/core.class.js +140 -3
- package/dist/collection/classes/core/core.class.js.map +1 -1
- package/dist/collection/classes/core/reviver.class.js +8 -0
- package/dist/collection/classes/core/reviver.class.js.map +1 -1
- package/dist/collection/classes/core/store.class.js +5 -0
- package/dist/collection/classes/core/store.class.js.map +1 -1
- package/dist/collection/classes/handlers/line-handle.handler.js +383 -0
- package/dist/collection/classes/handlers/line-handle.handler.js.map +1 -0
- package/dist/collection/classes/handlers/move.handler.js +2 -2
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/managers/anchor.manager.js +874 -0
- package/dist/collection/classes/managers/anchor.manager.js.map +1 -0
- package/dist/collection/classes/managers/cursor.manager.js +117 -0
- package/dist/collection/classes/managers/cursor.manager.js.map +1 -0
- package/dist/collection/classes/objects/base-object.class.js +4 -2
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/line.class.js +564 -0
- package/dist/collection/classes/objects/line.class.js.map +1 -0
- package/dist/collection/classes/objects/selection-group.class.js +4 -0
- package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
- package/dist/collection/classes/registries/icon-registry.class.js +1 -0
- package/dist/collection/classes/registries/icon-registry.class.js.map +1 -1
- package/dist/collection/classes/tools/line-tool.class.js +172 -0
- package/dist/collection/classes/tools/line-tool.class.js.map +1 -0
- package/dist/collection/classes/tools/selection-tool.class.js +41 -8
- package/dist/collection/classes/tools/selection-tool.class.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +11 -2
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +130 -58
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/configs/default-engine-config.js +4 -0
- package/dist/collection/configs/default-engine-config.js.map +1 -1
- package/dist/collection/configs/default-line-tool.config.js +34 -0
- package/dist/collection/configs/default-line-tool.config.js.map +1 -0
- package/dist/collection/helpers/geometry.helper.js +42 -0
- package/dist/collection/helpers/geometry.helper.js.map +1 -1
- package/dist/collection/index.js +5 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/interfaces/anchor.interface.js +2 -0
- package/dist/collection/interfaces/anchor.interface.js.map +1 -0
- package/dist/collection/interfaces/arrow-head.interface.js +2 -0
- package/dist/collection/interfaces/arrow-head.interface.js.map +1 -0
- package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
- package/dist/collection/interfaces/line-options.interface.js +2 -0
- package/dist/collection/interfaces/line-options.interface.js.map +1 -0
- package/dist/collection/interfaces/toolbar-control.interface.js.map +1 -1
- package/dist/components/index.js +4 -4
- package/dist/components/kritzel-brush-style.js +1 -1
- package/dist/components/kritzel-context-menu.js +1 -1
- package/dist/components/kritzel-control-brush-config.js +1 -1
- package/dist/components/kritzel-control-text-config.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +54 -13
- package/dist/components/kritzel-editor.js.map +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-icon.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-BdZKPKnx.js → p-7_lwv0zQ.js} +4 -4
- package/dist/components/{p-BdZKPKnx.js.map → p-7_lwv0zQ.js.map} +1 -1
- package/dist/components/{p-DbKKCHKd.js → p-BixlbUD7.js} +3 -2
- package/dist/components/p-BixlbUD7.js.map +1 -0
- package/dist/components/{p-Doixm8-N.js → p-CDteBYm9.js} +3 -3
- package/dist/components/{p-Doixm8-N.js.map → p-CDteBYm9.js.map} +1 -1
- package/dist/components/{p-58y59Acb.js → p-CkD1PQQX.js} +5 -5
- package/dist/components/{p-58y59Acb.js.map → p-CkD1PQQX.js.map} +1 -1
- package/dist/components/{p-DxNbcUzt.js → p-Cqr0Bah5.js} +3 -3
- package/dist/components/{p-DxNbcUzt.js.map → p-Cqr0Bah5.js.map} +1 -1
- package/dist/components/{p-D7BLVRXX.js → p-CuhOrcET.js} +2726 -380
- package/dist/components/p-CuhOrcET.js.map +1 -0
- package/dist/components/{p-i0IlGLv2.js → p-CvLFRlQU.js} +3 -3
- package/dist/components/{p-i0IlGLv2.js.map → p-CvLFRlQU.js.map} +1 -1
- package/dist/components/{p-BpXgwgnV.js → p-DKwJJuFb.js} +7 -7
- package/dist/components/{p-BpXgwgnV.js.map → p-DKwJJuFb.js.map} +1 -1
- package/dist/components/{p-CC8KFHSe.js → p-DZ7kxJUx.js} +3 -3
- package/dist/components/{p-CC8KFHSe.js.map → p-DZ7kxJUx.js.map} +1 -1
- package/dist/components/{p-D_ygcWSz.js → p-dMCB4tJA.js} +3 -3
- package/dist/components/{p-D_ygcWSz.js.map → p-dMCB4tJA.js.map} +1 -1
- package/dist/components/{p-CBYBurdY.js → p-sokRZ7Vn.js} +49 -5
- package/dist/components/p-sokRZ7Vn.js.map +1 -0
- package/dist/esm/{default-text-tool.config-BvCgOiKA.js → default-line-tool.config-C35m-d1Y.js} +3152 -1053
- package/dist/esm/default-line-tool.config-C35m-d1Y.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-color_22.entry.js +399 -66
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-C35m-d1Y.js +2 -0
- package/dist/stencil/p-C35m-d1Y.js.map +1 -0
- package/dist/stencil/p-d142ef46.entry.js +10 -0
- package/dist/stencil/p-d142ef46.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/core/core.class.d.ts +18 -0
- package/dist/types/classes/core/store.class.d.ts +2 -0
- package/dist/types/classes/handlers/line-handle.handler.d.ts +34 -0
- package/dist/types/classes/managers/anchor.manager.d.ts +160 -0
- package/dist/types/classes/managers/cursor.manager.d.ts +43 -0
- package/dist/types/classes/objects/line.class.d.ts +98 -0
- package/dist/types/classes/tools/line-tool.class.d.ts +17 -0
- package/dist/types/classes/tools/selection-tool.class.d.ts +4 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -4
- package/dist/types/components.d.ts +5 -5
- package/dist/types/configs/default-line-tool.config.d.ts +2 -0
- package/dist/types/helpers/geometry.helper.d.ts +10 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/interfaces/anchor.interface.d.ts +137 -0
- package/dist/types/interfaces/arrow-head.interface.d.ts +26 -0
- package/dist/types/interfaces/engine-state.interface.d.ts +8 -0
- package/dist/types/interfaces/line-options.interface.d.ts +21 -0
- package/dist/types/interfaces/toolbar-control.interface.d.ts +17 -1
- package/package.json +1 -1
- package/dist/cjs/default-text-tool.config-zB3FPuXq.js.map +0 -1
- package/dist/components/p-CBYBurdY.js.map +0 -1
- package/dist/components/p-D7BLVRXX.js.map +0 -1
- package/dist/components/p-DbKKCHKd.js.map +0 -1
- package/dist/esm/default-text-tool.config-BvCgOiKA.js.map +0 -1
- package/dist/stencil/p-6d9756d9.entry.js +0 -10
- package/dist/stencil/p-6d9756d9.entry.js.map +0 -1
- package/dist/stencil/p-BvCgOiKA.js +0 -2
- package/dist/stencil/p-BvCgOiKA.js.map +0 -1
|
@@ -14,7 +14,6 @@ import { ABSOLUTE_SCALE_MAX, ABSOLUTE_SCALE_MIN } from "../../../constants/engin
|
|
|
14
14
|
import { KritzelCore } from "../../../classes/core/core.class";
|
|
15
15
|
import { KritzelDevicesHelper } from "../../../helpers/devices.helper";
|
|
16
16
|
import { throttle } from "lodash";
|
|
17
|
-
import { KritzelCursorHelper } from "../../../helpers/cursor.helper";
|
|
18
17
|
export class KritzelEngine {
|
|
19
18
|
host;
|
|
20
19
|
workspace;
|
|
@@ -54,12 +53,7 @@ export class KritzelEngine {
|
|
|
54
53
|
}
|
|
55
54
|
cursorTarget;
|
|
56
55
|
onCursorTargetChange(newValue) {
|
|
57
|
-
|
|
58
|
-
if (this.cursorTargetElement) {
|
|
59
|
-
this.cursorTargetElement.style.cursor = '';
|
|
60
|
-
}
|
|
61
|
-
// Set new target (defaults to document.body)
|
|
62
|
-
this.cursorTargetElement = newValue || document.body;
|
|
56
|
+
this.core.cursorManager.setTargetElement(newValue || document.body);
|
|
63
57
|
}
|
|
64
58
|
isEngineReady;
|
|
65
59
|
activeToolChange;
|
|
@@ -107,6 +101,8 @@ export class KritzelEngine {
|
|
|
107
101
|
if (this.core.store.state.pointers.size > 1) {
|
|
108
102
|
this.throttledPointerMoveMulti(ev);
|
|
109
103
|
}
|
|
104
|
+
// Update cursor for handle hover states using elementsFromPoint
|
|
105
|
+
this.core.cursorManager.updateHoverState(ev);
|
|
110
106
|
this.viewport.handlePointerMove(ev);
|
|
111
107
|
this.core.store.state?.activeTool?.handlePointerMove(ev);
|
|
112
108
|
}
|
|
@@ -118,7 +114,7 @@ export class KritzelEngine {
|
|
|
118
114
|
this.host.releasePointerCapture(ev.pointerId);
|
|
119
115
|
// Reset cursor to default when all pointers are released
|
|
120
116
|
if (this.core.store.state.pointers.size === 0) {
|
|
121
|
-
this.core.
|
|
117
|
+
this.core.cursorManager.resetToDefault();
|
|
122
118
|
}
|
|
123
119
|
this.viewport.handlePointerUp(ev);
|
|
124
120
|
this.core.store.state?.activeTool?.handlePointerUp(ev);
|
|
@@ -131,7 +127,7 @@ export class KritzelEngine {
|
|
|
131
127
|
this.core.store.state.pointers.delete(ev.pointerId);
|
|
132
128
|
// Reset cursor to default when all pointers are released
|
|
133
129
|
if (this.core.store.state.pointers.size === 0) {
|
|
134
|
-
this.core.
|
|
130
|
+
this.core.cursorManager.resetToDefault();
|
|
135
131
|
}
|
|
136
132
|
this.viewport.handlePointerUp(ev);
|
|
137
133
|
this.core.store.state?.activeTool?.handlePointerUp(ev);
|
|
@@ -307,7 +303,6 @@ export class KritzelEngine {
|
|
|
307
303
|
contextMenuHandler;
|
|
308
304
|
keyHandler;
|
|
309
305
|
contextMenuElement = null;
|
|
310
|
-
cursorTargetElement = null;
|
|
311
306
|
get isSelecting() {
|
|
312
307
|
return this.core.store.state.activeTool instanceof KritzelSelectionTool && this.core.store.state.isSelecting;
|
|
313
308
|
}
|
|
@@ -320,12 +315,7 @@ export class KritzelEngine {
|
|
|
320
315
|
disconnectedCallback() {
|
|
321
316
|
this.throttledWheel.cancel();
|
|
322
317
|
this.throttledPointerMoveMulti.cancel();
|
|
323
|
-
|
|
324
|
-
if (this.cursorTargetElement) {
|
|
325
|
-
this.cursorTargetElement.style.cursor = '';
|
|
326
|
-
this.cursorTargetElement.style.removeProperty('--kritzel-pointer-cursor');
|
|
327
|
-
this.cursorTargetElement = null;
|
|
328
|
-
}
|
|
318
|
+
this.core.cursorManager.cleanup();
|
|
329
319
|
}
|
|
330
320
|
componentWillLoad() {
|
|
331
321
|
this.validateScaleMax(this.scaleMax);
|
|
@@ -335,10 +325,9 @@ export class KritzelEngine {
|
|
|
335
325
|
this.contextMenuHandler = new KritzelContextMenuHandler(this.core, this.globalContextMenuItems, this.objectContextMenuItems);
|
|
336
326
|
this.keyHandler = new KritzelKeyHandler(this.core);
|
|
337
327
|
this.viewport = new KritzelViewport(this.core, this.host);
|
|
338
|
-
//
|
|
339
|
-
this.
|
|
340
|
-
|
|
341
|
-
this.cursorTargetElement.style.setProperty('--kritzel-pointer-cursor', KritzelCursorHelper.getPointerCursor());
|
|
328
|
+
// Initialize cursor manager with target element and shadow root
|
|
329
|
+
this.core.cursorManager.setTargetElement(this.cursorTarget || document.body);
|
|
330
|
+
this.core.cursorManager.setShadowRoot(this.host.shadowRoot);
|
|
342
331
|
// Set sync configuration if provided
|
|
343
332
|
if (this.syncConfig) {
|
|
344
333
|
this.core.setSyncConfig(this.syncConfig);
|
|
@@ -380,20 +369,6 @@ export class KritzelEngine {
|
|
|
380
369
|
KritzelKeyboardHelper.forceHideKeyboard();
|
|
381
370
|
this.core.rerender();
|
|
382
371
|
}
|
|
383
|
-
updateCursor() {
|
|
384
|
-
const state = this.core.store.state;
|
|
385
|
-
const isPointerDown = this.core.store.isPointerDown;
|
|
386
|
-
const icon = state.cursor?.icon;
|
|
387
|
-
const iconActive = state.cursor?.iconActive ?? icon;
|
|
388
|
-
const rotation = state.cursor?.rotation;
|
|
389
|
-
const cursor = KritzelCursorHelper.getCursor({
|
|
390
|
-
iconName: isPointerDown ? iconActive : icon,
|
|
391
|
-
rotation: rotation,
|
|
392
|
-
});
|
|
393
|
-
if (this.cursorTargetElement) {
|
|
394
|
-
this.cursorTargetElement.style.cursor = cursor;
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
372
|
render() {
|
|
398
373
|
const computedStyle = window.getComputedStyle(this.host);
|
|
399
374
|
const baseHandleSizePx = computedStyle.getPropertyValue('--kritzel-selection-handle-size').trim() || '6px';
|
|
@@ -410,17 +385,17 @@ export class KritzelEngine {
|
|
|
410
385
|
depth: 100,
|
|
411
386
|
};
|
|
412
387
|
const visibleObjects = this.core.store.state.objects.query(viewportBounds);
|
|
413
|
-
this.
|
|
414
|
-
return (h(Host, { key: '
|
|
388
|
+
this.core.cursorManager.applyCursor();
|
|
389
|
+
return (h(Host, { key: '4a7e8c72ad1f80c3c31aa37eff33e78634cb37d1' }, this.core.store.state.debugInfo.showViewportInfo && (h("div", { key: '3c8981ce6cafbc49f4f04189d27809c511bf45c4', class: "debug-panel" }, h("div", { key: '428d483a87b98cde24446a0a26ba790ec2a6358b' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), h("div", { key: '3ec597c219109c026f78e5018a885e88e51aa5c4' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), h("div", { key: '803c0d009b19fdc7c465ef14f3b5f278a954a912' }, "TranslateX: ", this.core.store.state?.translateX), h("div", { key: '8b1aef0ae845cdf4b93afe59d8c78c84dd181a2d' }, "TranslateY: ", this.core.store.state?.translateY), h("div", { key: '137ead0c39a2fba55b4c4dde53fb09d0832439e1' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), h("div", { key: 'b19f710385e4306620176551853eb2645b96ca7a' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), h("div", { key: '943b55daada95aa37b759e45a15ffcfca76fba72' }, "PointerCount: ", this.core.store.state.pointers.size), h("div", { key: 'd001782dd4bc48c84c08477b26e5f3fce8df0b47' }, "Scale: ", this.core.store.state?.scale), h("div", { key: 'ed640d3905b39a995ba40a1cbf38f10a4aa1b400' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), h("div", { key: '154888aabbb56365aaf4584b0b991be848629e3e' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), h("div", { key: 'c0c39e988940baf20137de8a0eeda2c085da2810' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), h("div", { key: 'abd5a79b27bc75e898877d33097597c057dc3f2b' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), h("div", { key: '9c49bf3246525c9a755bb293bec8a143ade97158' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), h("div", { key: '88ff8ab48af31bf036719f72a5a3726780ab9720' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), h("div", { key: '9650075f855fcf91b7303d3ace14242075fc523d' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), h("div", { key: '911acb1f90f9812d30dc0aebceb207aecf9b4248' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), h("div", { key: 'b65db638d3cefbd74e2d03b639ee5fe86a2a858b' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), h("div", { key: 'c53ca259dadc656762733119b4086c1f82235a7e' }, "IsRotationHandleHovered: ", this.core.store.state.isRotationHandleHovered ? 'true' : 'false'), h("div", { key: 'ae2d7a8917af450eb3bfd8e171a87530f337c0c2' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), h("div", { key: '5633cd9901ec028e4f5433c84b07321932beea66' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), h("div", { key: '82232a8eec470562e5658dee9713c855e78ca6a3' }, "IsPointerDown: ", this.core.store.isPointerDown ? 'true' : 'false'), h("div", { key: '5b6b04b323a21ef37ddb144721ea01dccc7aec8b' }, "PointerX: ", this.core.store.state?.pointerX), h("div", { key: '3287f804515cfa31eaa755332e2043fce4feb7a9' }, "PointerY: ", this.core.store.state?.pointerY), h("div", { key: '3a59fd4db60f6f05d419de39149ea10e482875d4' }, "SelectedObjects: ", this.core.store.selectionGroup?.objects.length || 0), h("div", { key: 'f91a8ea9dfc50e5f1ae89d66c7609a103e3263a4' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")"))), h("div", { key: '40ba8fb5530243c18e0b0c3ad68dadb2cbc615a1', id: "origin", class: "origin", style: {
|
|
415
390
|
transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
|
|
416
391
|
} }, visibleObjects?.map(object => {
|
|
417
392
|
return (h("div", { key: object.id, style: {
|
|
418
393
|
transform: object?.transformationMatrix,
|
|
419
394
|
transformOrigin: 'top left',
|
|
420
|
-
zIndex: object.zIndex.toString(),
|
|
421
395
|
position: 'absolute',
|
|
422
396
|
pointerEvents: this.core.store.state.isScaling ? 'none' : 'auto',
|
|
423
397
|
} }, h("svg", { xmlns: "http://www.w3.org/2000/svg", id: object.id, class: "object", style: {
|
|
398
|
+
zIndex: object.zIndex.toString(),
|
|
424
399
|
height: object?.totalHeight.toString(),
|
|
425
400
|
width: object?.totalWidth.toString(),
|
|
426
401
|
left: '0',
|
|
@@ -430,7 +405,7 @@ export class KritzelEngine {
|
|
|
430
405
|
transformOrigin: `${object.totalWidth / 2}px ${object.totalHeight / 2}px`,
|
|
431
406
|
opacity: object.markedForRemoval ? '0.5' : object.opacity.toString(),
|
|
432
407
|
pointerEvents: object.markedForRemoval ? 'none' : 'auto',
|
|
433
|
-
} }, h("foreignObject", { x: "0", y: "0", width: object.totalWidth.toString(), height: object.totalHeight.toString(), style: {
|
|
408
|
+
} }, KritzelClassHelper.isInstanceOf(object, 'KritzelPath') && (h("svg", { ref: el => object.mount(el), xmlns: "http://www.w3.org/2000/svg", style: { overflow: 'visible' }, viewBox: object?.viewBox }, h("path", { d: object?.d, fill: object.fill, stroke: object?.stroke, "shape-rendering": object.isLowRes() ? 'optimizeSpeed' : 'auto' }))), KritzelClassHelper.isInstanceOf(object, 'KritzelLine') && (h("svg", { ref: el => object.mount(el), xmlns: "http://www.w3.org/2000/svg", style: { overflow: 'visible' }, viewBox: object?.viewBox }, h("defs", null, object.hasStartArrow && (h("marker", { id: object.startMarkerId, markerWidth: object.getArrowSize('start'), markerHeight: object.getArrowSize('start'), refX: 0, refY: object.getArrowSize('start') / 2, orient: "auto-start-reverse", markerUnits: "userSpaceOnUse" }, h("path", { d: object.getArrowPath(object.arrows?.start?.style), fill: object.getArrowFill('start'), transform: `scale(${object.getArrowSize('start') / 10})` }))), object.hasEndArrow && (h("marker", { id: object.endMarkerId, markerWidth: object.getArrowSize('end'), markerHeight: object.getArrowSize('end'), refX: 0, refY: object.getArrowSize('end') / 2, orient: "auto", markerUnits: "userSpaceOnUse" }, h("path", { d: object.getArrowPath(object.arrows?.end?.style), fill: object.getArrowFill('end'), transform: `scale(${object.getArrowSize('end') / 10})` })))), h("path", { d: this.core.anchorManager.computeClippedLinePath(object), fill: "none", stroke: object?.stroke, "stroke-width": object?.strokeWidth, "stroke-linecap": "round", "marker-start": object.hasStartArrow ? `url(#${object.startMarkerId})` : undefined, "marker-end": object.hasEndArrow ? `url(#${object.endMarkerId})` : undefined }))), h("foreignObject", { x: "0", y: "0", width: object.totalWidth.toString(), height: object.totalHeight.toString(), style: {
|
|
434
409
|
minHeight: '0',
|
|
435
410
|
minWidth: '0',
|
|
436
411
|
backgroundColor: object.backgroundColor,
|
|
@@ -439,18 +414,14 @@ export class KritzelEngine {
|
|
|
439
414
|
borderStyle: 'solid',
|
|
440
415
|
padding: object.padding + 'px',
|
|
441
416
|
overflow: 'visible',
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
width: object?.width.toString(),
|
|
445
|
-
position: 'absolute',
|
|
446
|
-
overflow: 'visible',
|
|
447
|
-
}, viewBox: object?.viewBox }, h("path", { d: object?.d, fill: object.fill, stroke: object?.stroke, "shape-rendering": object.isLowRes() ? 'optimizeSpeed' : 'auto' }))), KritzelClassHelper.isInstanceOf(object, 'KritzelImage') && (h("img", { ref: el => object.mount(el), src: object.src, style: {
|
|
417
|
+
display: KritzelClassHelper.isInstanceOf(object, 'KritzelLine') || KritzelClassHelper.isInstanceOf(object, 'KritzelPath') ? 'none' : 'block'
|
|
418
|
+
} }, KritzelClassHelper.isInstanceOf(object, 'KritzelImage') && (h("img", { ref: el => object.mount(el), src: object.src, style: {
|
|
448
419
|
width: '100%',
|
|
449
420
|
height: '100%',
|
|
450
421
|
userSelect: 'none',
|
|
451
422
|
pointerEvents: 'none',
|
|
452
423
|
imageRendering: this.core.store.state.isScaling || this.core.store.state.isPanning ? 'pixelated' : 'auto',
|
|
453
|
-
}, draggable: false, onDragStart: e => e.preventDefault() })), KritzelClassHelper.isInstanceOf(object, 'KritzelText') && (h("div", { ref: el => object.mount(el), onPointerDown: e => object.handlePointerDown(e), onPointerMove: e => object.handlePointerMove(e), onPointerUp: e => object.handlePointerUp(e), style: {
|
|
424
|
+
}, draggable: false, onDragStart: e => e.preventDefault() })), KritzelClassHelper.isInstanceOf(object, 'KritzelText') && (h("div", { id: "text-object", ref: el => object.mount(el), onPointerDown: e => object.handlePointerDown(e), onPointerMove: e => object.handlePointerMove(e), onPointerUp: e => object.handlePointerUp(e), style: {
|
|
454
425
|
minWidth: object.initialWidth + 'px',
|
|
455
426
|
minHeight: object.initialHeight + 'px',
|
|
456
427
|
maxWidth: '500px',
|
|
@@ -467,7 +438,7 @@ export class KritzelEngine {
|
|
|
467
438
|
pointerEvents: 'auto',
|
|
468
439
|
overflow: 'hidden',
|
|
469
440
|
display: 'block',
|
|
470
|
-
} })), KritzelClassHelper.isInstanceOf(object, 'KritzelSelectionGroup') && (h("div", { ref: el => object.mount(el), style: {
|
|
441
|
+
} })), KritzelClassHelper.isInstanceOf(object, 'KritzelSelectionGroup') && !this.core.displaySelectionLineUI(object) && (h("div", { ref: el => object.mount(el), style: {
|
|
471
442
|
width: '100%',
|
|
472
443
|
height: '100%',
|
|
473
444
|
} })), KritzelClassHelper.isInstanceOf(object, 'KritzelSelectionBox') && (h("div", { ref: el => object.mount(el), style: {
|
|
@@ -477,7 +448,8 @@ export class KritzelEngine {
|
|
|
477
448
|
borderWidth: KritzelDevicesHelper.isFirefox() ? object.borderWidth + 'px' : '0',
|
|
478
449
|
borderStyle: KritzelDevicesHelper.isFirefox() ? 'solid' : 'none',
|
|
479
450
|
borderColor: KritzelDevicesHelper.isFirefox() ? object.borderColor : 'transparent',
|
|
480
|
-
} }))), this.core.store.state.debugInfo.showObjectInfo && object.isDebugInfoVisible && (h("g", { style: { pointerEvents: 'none' } }, h("foreignObject", { x: object.totalWidth.toString(), y: "0", width: "400px", height: "160px", style: { minHeight: '0', minWidth: '0' } }, h("div", { style: { width: '100%', height: '100%' } }, h("div", { style: { whiteSpace: 'nowrap' } }, "Id: ", object.id), h("div", { style: { whiteSpace: 'nowrap' } }, "width: ", object.width), h("div", { style: { whiteSpace: 'nowrap' } }, "height: ", object.height), h("div", { style: { whiteSpace: 'nowrap' } }, "translateX: ", object.translateX), h("div", { style: { whiteSpace: 'nowrap' } }, "translateY: ", object.translateY)))))), h("svg", { xmlns: "http://www.w3.org/2000/svg", style: {
|
|
451
|
+
} }))), this.core.store.state.debugInfo.showObjectInfo && object.isDebugInfoVisible && (h("g", { style: { pointerEvents: 'none' } }, h("foreignObject", { x: object.totalWidth.toString(), y: "0", width: "400px", height: "160px", style: { minHeight: '0', minWidth: '0' } }, h("div", { style: { width: '100%', height: '100%' } }, h("div", { style: { whiteSpace: 'nowrap' } }, "Id: ", object.id), h("div", { style: { whiteSpace: 'nowrap' } }, "width: ", object.width), h("div", { style: { whiteSpace: 'nowrap' } }, "height: ", object.height), h("div", { style: { whiteSpace: 'nowrap' } }, "translateX: ", object.translateX), h("div", { style: { whiteSpace: 'nowrap' } }, "translateY: ", object.translateY), h("div", { style: { whiteSpace: 'nowrap' } }, "rotationDegrees: ", object.rotationDegrees)))))), h("svg", { xmlns: "http://www.w3.org/2000/svg", style: {
|
|
452
|
+
zIndex: (object.zIndex + 1).toString(),
|
|
481
453
|
height: object?.totalHeight.toString(),
|
|
482
454
|
width: object?.totalWidth.toString(),
|
|
483
455
|
left: '0',
|
|
@@ -487,7 +459,7 @@ export class KritzelEngine {
|
|
|
487
459
|
transformOrigin: `${object.totalWidth / 2}px ${object.totalHeight / 2}px`,
|
|
488
460
|
overflow: 'visible',
|
|
489
461
|
pointerEvents: 'none',
|
|
490
|
-
} }, object
|
|
462
|
+
} }, this.core.displaySelectionGroupUI(object) && (h("g", { class: "selection-group-ui", style: { pointerEvents: 'none' } }, h("g", { class: "selection-group-borders" }, h("line", { x1: "0", y1: "0", x2: object.totalWidth, y2: "0", style: {
|
|
491
463
|
stroke: 'var(--kritzel-selection-border-color, #007AFF)',
|
|
492
464
|
strokeWidth: `calc(var(--kritzel-selection-border-width, 2px) * ${object.scale} / ${this.core.store.state?.scale})`,
|
|
493
465
|
strokeLinecap: 'square',
|
|
@@ -503,31 +475,31 @@ export class KritzelEngine {
|
|
|
503
475
|
stroke: 'var(--kritzel-selection-border-color, #007AFF)',
|
|
504
476
|
strokeWidth: `calc(var(--kritzel-selection-border-width, 2px) * ${object.scale} / ${this.core.store.state?.scale})`,
|
|
505
477
|
strokeLinecap: 'square',
|
|
506
|
-
} }))
|
|
478
|
+
} })), !this.isSelecting && (h("g", { class: "selection-group-handles", style: { pointerEvents: 'auto' } }, h("circle", { class: "resize-handle top-left", cx: "0", cy: "0", r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
507
479
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
508
480
|
paintOrder: 'fill',
|
|
509
481
|
} }), h("circle", { class: "resize-handle-overlay top-left", cx: "0", cy: "0", r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
510
482
|
fill: 'transparent',
|
|
511
483
|
paintOrder: 'fill',
|
|
512
|
-
}
|
|
484
|
+
} }), h("circle", { class: "resize-handle top-right", cx: object.totalWidth, cy: "0", r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
513
485
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
514
486
|
paintOrder: 'fill',
|
|
515
487
|
} }), h("circle", { class: "resize-handle-overlay top-right", cx: object.totalWidth, cy: "0", r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
516
488
|
fill: 'transparent',
|
|
517
489
|
paintOrder: 'fill',
|
|
518
|
-
}
|
|
490
|
+
} }), h("circle", { class: "resize-handle bottom-left", cx: "0", cy: object.totalHeight, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
519
491
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
520
492
|
paintOrder: 'fill',
|
|
521
493
|
} }), h("circle", { class: "resize-handle-overlay bottom-left", cx: "0", cy: object.totalHeight, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
522
494
|
fill: 'transparent',
|
|
523
495
|
paintOrder: 'fill',
|
|
524
|
-
}
|
|
496
|
+
} }), h("circle", { class: "resize-handle bottom-right", cx: object.totalWidth, cy: object.totalHeight, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
525
497
|
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
526
498
|
paintOrder: 'fill',
|
|
527
499
|
} }), h("circle", { class: "resize-handle-overlay bottom-right", cx: object.totalWidth, cy: object.totalHeight, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
528
500
|
fill: 'transparent',
|
|
529
501
|
paintOrder: 'fill',
|
|
530
|
-
}
|
|
502
|
+
} }), h("line", { x1: object.totalWidth / 2, y1: "0", x2: object.totalWidth / 2, y2: -((15 * object.scale) / this.core.store.state?.scale), style: {
|
|
531
503
|
stroke: 'var(--kritzel-selection-border-color, #007AFF)',
|
|
532
504
|
strokeWidth: `calc(var(--kritzel-selection-border-width, 2px) * ${object.scale} / ${this.core.store.state?.scale})`,
|
|
533
505
|
} }), h("circle", { class: "rotation-handle", cx: object.totalWidth / 2, cy: -((15 * object.scale) / this.core.store.state?.scale), r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
@@ -536,8 +508,103 @@ export class KritzelEngine {
|
|
|
536
508
|
} }), h("circle", { class: "rotation-handle-overlay", cx: object.totalWidth / 2, cy: -((15 * object.scale) / this.core.store.state?.scale), r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
537
509
|
fill: 'transparent',
|
|
538
510
|
paintOrder: 'fill',
|
|
539
|
-
}
|
|
540
|
-
|
|
511
|
+
} }))))), this.core.displaySelectionLineUI(object) && KritzelClassHelper.isInstanceOf(object, 'KritzelLine') && (h("g", { class: "selection-line-ui", style: { pointerEvents: 'none' } }, h("g", { class: "selection-line-borders" }, h("path", { class: "selection-line-border", d: this.core.anchorManager.computeClippedLinePath(object, true), style: {
|
|
512
|
+
stroke: 'var(--kritzel-selection-border-color, #007AFF)',
|
|
513
|
+
strokeWidth: `calc(var(--kritzel-selection-border-width, 2px) * ${object.scale} / ${this.core.store.state?.scale})`,
|
|
514
|
+
strokeLinecap: 'round',
|
|
515
|
+
fill: 'none',
|
|
516
|
+
} })), !this.isSelecting && (h("g", { class: "selection-line-handles", style: { pointerEvents: 'auto' } }, h("circle", { class: "selection-line-handle start", cx: object.startX - object.x, cy: object.startY - object.y, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
517
|
+
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
518
|
+
paintOrder: 'fill',
|
|
519
|
+
} }), h("circle", { class: "selection-line-handle-overlay start", cx: object.startX - object.x, cy: object.startY - object.y, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
520
|
+
fill: 'transparent',
|
|
521
|
+
paintOrder: 'fill',
|
|
522
|
+
} }), h("circle", { class: "selection-line-handle center", cx: object.controlX !== undefined ? (object.startX + 2 * object.controlX + object.endX) / 4 - object.x : (object.startX - object.x + object.endX - object.x) / 2, cy: object.controlY !== undefined ? (object.startY + 2 * object.controlY + object.endY) / 4 - object.y : (object.startY - object.y + object.endY - object.y) / 2, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
523
|
+
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
524
|
+
paintOrder: 'fill',
|
|
525
|
+
} }), h("circle", { class: "selection-line-handle-overlay center", cx: object.controlX !== undefined ? (object.startX + 2 * object.controlX + object.endX) / 4 - object.x : (object.startX - object.x + object.endX - object.x) / 2, cy: object.controlY !== undefined ? (object.startY + 2 * object.controlY + object.endY) / 4 - object.y : (object.startY - object.y + object.endY - object.y) / 2, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
526
|
+
fill: 'transparent',
|
|
527
|
+
paintOrder: 'fill',
|
|
528
|
+
} }), h("circle", { class: "selection-line-handle end", cx: object.endX - object.x, cy: object.endY - object.y, r: `${(baseHandleSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
529
|
+
fill: 'var(--kritzel-selection-handle-color, #000000)',
|
|
530
|
+
paintOrder: 'fill',
|
|
531
|
+
} }), h("circle", { class: "selection-line-handle-overlay end", cx: object.endX - object.x, cy: object.endY - object.y, r: `${(baseHandleTouchSize * object.scale) / this.core.store.state?.scale}`, style: {
|
|
532
|
+
fill: 'transparent',
|
|
533
|
+
paintOrder: 'fill',
|
|
534
|
+
} }))))))));
|
|
535
|
+
}), (() => {
|
|
536
|
+
const data = this.core.anchorManager.getAnchorLinesRenderData();
|
|
537
|
+
if (!data)
|
|
538
|
+
return null;
|
|
539
|
+
return (h("svg", { xmlns: "http://www.w3.org/2000/svg", class: "anchor-lines", style: {
|
|
540
|
+
position: 'absolute',
|
|
541
|
+
left: '0',
|
|
542
|
+
top: '0',
|
|
543
|
+
width: '1px',
|
|
544
|
+
height: '1px',
|
|
545
|
+
pointerEvents: 'none',
|
|
546
|
+
zIndex: '9998',
|
|
547
|
+
overflow: 'visible',
|
|
548
|
+
} }, data.startAnchorViz && (h("g", { class: "anchor-line-start" }, data.startAnchorViz.pathD ? (h("path", { d: data.startAnchorViz.pathD, style: {
|
|
549
|
+
stroke: 'var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.3))',
|
|
550
|
+
strokeWidth: `${data.lineStrokeWidth}`,
|
|
551
|
+
strokeDasharray: data.dashArray,
|
|
552
|
+
strokeLinecap: 'round',
|
|
553
|
+
fill: 'none',
|
|
554
|
+
} })) : (h("line", { x1: data.startAnchorViz.edgeX, y1: data.startAnchorViz.edgeY, x2: data.startAnchorViz.centerX, y2: data.startAnchorViz.centerY, style: {
|
|
555
|
+
stroke: 'var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.3))',
|
|
556
|
+
strokeWidth: `${data.lineStrokeWidth}`,
|
|
557
|
+
strokeDasharray: data.dashArray,
|
|
558
|
+
strokeLinecap: 'round',
|
|
559
|
+
} })), h("circle", { cx: data.startAnchorViz.centerX, cy: data.startAnchorViz.centerY, r: data.indicatorRadius, style: {
|
|
560
|
+
fill: 'var(--kritzel-snap-indicator-fill, rgba(0, 0, 0))',
|
|
561
|
+
stroke: 'var(--kritzel-snap-indicator-stroke, #3b82f6)',
|
|
562
|
+
strokeWidth: data.indicatorStrokeWidth,
|
|
563
|
+
} }))), data.endAnchorViz && (h("g", { class: "anchor-line-end" }, data.endAnchorViz.pathD ? (h("path", { d: data.endAnchorViz.pathD, style: {
|
|
564
|
+
stroke: 'var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))',
|
|
565
|
+
strokeWidth: `${data.lineStrokeWidth}`,
|
|
566
|
+
strokeDasharray: data.dashArray,
|
|
567
|
+
strokeLinecap: 'round',
|
|
568
|
+
fill: 'none',
|
|
569
|
+
} })) : (h("line", { x1: data.endAnchorViz.edgeX, y1: data.endAnchorViz.edgeY, x2: data.endAnchorViz.centerX, y2: data.endAnchorViz.centerY, style: {
|
|
570
|
+
stroke: 'var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))',
|
|
571
|
+
strokeWidth: `${data.lineStrokeWidth}`,
|
|
572
|
+
strokeDasharray: data.dashArray,
|
|
573
|
+
strokeLinecap: 'round',
|
|
574
|
+
} })), h("circle", { cx: data.endAnchorViz.centerX, cy: data.endAnchorViz.centerY, r: data.indicatorRadius, style: {
|
|
575
|
+
fill: 'var(--kritzel-snap-indicator-fill, rgba(59, 130, 246, 0.3))',
|
|
576
|
+
stroke: 'var(--kritzel-snap-indicator-stroke, #3b82f6)',
|
|
577
|
+
strokeWidth: data.indicatorStrokeWidth,
|
|
578
|
+
} })))));
|
|
579
|
+
})(), (() => {
|
|
580
|
+
const data = this.core.anchorManager.getSnapIndicatorRenderData();
|
|
581
|
+
if (!data)
|
|
582
|
+
return null;
|
|
583
|
+
return (h("svg", { xmlns: "http://www.w3.org/2000/svg", class: "snap-indicator", style: {
|
|
584
|
+
position: 'absolute',
|
|
585
|
+
left: '0',
|
|
586
|
+
top: '0',
|
|
587
|
+
width: '1px',
|
|
588
|
+
height: '1px',
|
|
589
|
+
pointerEvents: 'none',
|
|
590
|
+
zIndex: '9999',
|
|
591
|
+
overflow: 'visible',
|
|
592
|
+
} }, h("g", null, data.snapLinePath ? (h("path", { d: data.snapLinePath, fill: "none", style: {
|
|
593
|
+
stroke: 'var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))',
|
|
594
|
+
strokeWidth: data.lineStrokeWidth,
|
|
595
|
+
strokeDasharray: data.dashArray,
|
|
596
|
+
strokeLinecap: 'round',
|
|
597
|
+
} })) : (data.edgeX !== undefined && data.edgeY !== undefined && (h("line", { x1: data.edgeX, y1: data.edgeY, x2: data.centerX, y2: data.centerY, style: {
|
|
598
|
+
stroke: 'var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))',
|
|
599
|
+
strokeWidth: data.lineStrokeWidth,
|
|
600
|
+
strokeDasharray: data.dashArray,
|
|
601
|
+
strokeLinecap: 'round',
|
|
602
|
+
} }))), h("circle", { cx: data.centerX, cy: data.centerY, r: data.indicatorRadius, style: {
|
|
603
|
+
fill: 'var(--kritzel-snap-indicator-fill, rgba(59, 130, 246, 0.3))',
|
|
604
|
+
stroke: 'var(--kritzel-snap-indicator-stroke, #3b82f6)',
|
|
605
|
+
strokeWidth: data.indicatorStrokeWidth,
|
|
606
|
+
} }))));
|
|
607
|
+
})()), this.core.store.state.isContextMenuVisible && (h("kritzel-context-menu", { key: '7e350c48da76c54a223f23ead9dea8018b0bc36c', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.selectionGroup?.objects || [], style: {
|
|
541
608
|
position: 'fixed',
|
|
542
609
|
left: `${this.core.store.state.contextMenuX}px`,
|
|
543
610
|
top: `${this.core.store.state.contextMenuY}px`,
|
|
@@ -548,7 +615,7 @@ export class KritzelEngine {
|
|
|
548
615
|
y: (-this.core.store.state.translateY + this.core.store.state.contextMenuY) / this.core.store.state.scale,
|
|
549
616
|
}, this.core.store.selectionGroup?.objects);
|
|
550
617
|
this.hideContextMenu();
|
|
551
|
-
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof KritzelEraserTool && !this.core.store.state.isScaling && h("kritzel-cursor-trail", { key: '
|
|
618
|
+
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof KritzelEraserTool && !this.core.store.state.isScaling && h("kritzel-cursor-trail", { key: '7923a3f6a92fa71911c971166171317b5bc421bf', core: this.core })));
|
|
552
619
|
}
|
|
553
620
|
static get is() { return "kritzel-engine"; }
|
|
554
621
|
static get encapsulation() { return "shadow"; }
|
|
@@ -880,7 +947,7 @@ export class KritzelEngine {
|
|
|
880
947
|
return {
|
|
881
948
|
"registerTool": {
|
|
882
949
|
"complexType": {
|
|
883
|
-
"signature": "(toolName: string, toolClass: any, toolConfig?: KritzelTextToolConfig | KritzelBrushToolConfig) => Promise<KritzelBaseTool>",
|
|
950
|
+
"signature": "(toolName: string, toolClass: any, toolConfig?: KritzelTextToolConfig | KritzelBrushToolConfig | KritzelLineToolConfig) => Promise<KritzelBaseTool>",
|
|
884
951
|
"parameters": [{
|
|
885
952
|
"name": "toolName",
|
|
886
953
|
"type": "string",
|
|
@@ -891,7 +958,7 @@ export class KritzelEngine {
|
|
|
891
958
|
"docs": ""
|
|
892
959
|
}, {
|
|
893
960
|
"name": "toolConfig",
|
|
894
|
-
"type": "KritzelTextToolConfig | KritzelBrushToolConfig",
|
|
961
|
+
"type": "KritzelTextToolConfig | KritzelBrushToolConfig | KritzelLineToolConfig",
|
|
895
962
|
"docs": ""
|
|
896
963
|
}],
|
|
897
964
|
"references": {
|
|
@@ -913,6 +980,11 @@ export class KritzelEngine {
|
|
|
913
980
|
"location": "import",
|
|
914
981
|
"path": "../../../interfaces/toolbar-control.interface",
|
|
915
982
|
"id": "src/interfaces/toolbar-control.interface.ts::KritzelBrushToolConfig"
|
|
983
|
+
},
|
|
984
|
+
"KritzelLineToolConfig": {
|
|
985
|
+
"location": "import",
|
|
986
|
+
"path": "../../../interfaces/toolbar-control.interface",
|
|
987
|
+
"id": "src/interfaces/toolbar-control.interface.ts::KritzelLineToolConfig"
|
|
916
988
|
}
|
|
917
989
|
},
|
|
918
990
|
"return": "Promise<KritzelBaseTool>"
|