kritzel-stencil 0.0.169 → 0.0.170
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-line-tool.config-Bs88k0jE.js → default-line-tool.config-JuTDR6PF.js} +514 -13
- package/dist/cjs/default-line-tool.config-JuTDR6PF.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/kritzel-color_22.cjs.entry.js +120 -6
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/core/core.class.js +89 -1
- package/dist/collection/classes/core/core.class.js.map +1 -1
- package/dist/collection/classes/core/reviver.class.js +4 -0
- package/dist/collection/classes/core/reviver.class.js.map +1 -1
- package/dist/collection/classes/handlers/key.handler.js +3 -0
- package/dist/collection/classes/handlers/key.handler.js.map +1 -1
- package/dist/collection/classes/handlers/move.handler.js +63 -0
- package/dist/collection/classes/handlers/move.handler.js.map +1 -1
- package/dist/collection/classes/handlers/rotation.handler.js +2 -0
- package/dist/collection/classes/handlers/rotation.handler.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +23 -5
- package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
- package/dist/collection/classes/objects/group.class.js +394 -0
- package/dist/collection/classes/objects/group.class.js.map +1 -0
- package/dist/collection/classes/objects/line.class.js +2 -1
- package/dist/collection/classes/objects/line.class.js.map +1 -1
- package/dist/collection/classes/objects/selection-group.class.js +19 -3
- package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
- package/dist/collection/classes/registries/icon-registry.class.js +2 -0
- package/dist/collection/classes/registries/icon-registry.class.js.map +1 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +17 -2
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +43 -3
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/helpers/event.helper.js +10 -2
- package/dist/collection/helpers/event.helper.js.map +1 -1
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/components/index.js +3 -3
- 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 +27 -12
- 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-f_ut_1_F.js → p-9Sbn9-7-.js} +610 -19
- package/dist/components/p-9Sbn9-7-.js.map +1 -0
- package/dist/components/{p-Bwv1dxAB.js → p-BUsg2vtg.js} +12 -4
- package/dist/components/{p-Bwv1dxAB.js.map → p-BUsg2vtg.js.map} +1 -1
- package/dist/components/{p-BoazmhlG.js → p-C6-tSCMR.js} +3 -3
- package/dist/components/{p-BoazmhlG.js.map → p-C6-tSCMR.js.map} +1 -1
- package/dist/components/{p-Cv4BGNPb.js → p-CIts5Uma.js} +4 -2
- package/dist/components/p-CIts5Uma.js.map +1 -0
- package/dist/components/{p-BSBMBjhq.js → p-CQd5oYXp.js} +3 -3
- package/dist/components/{p-BSBMBjhq.js.map → p-CQd5oYXp.js.map} +1 -1
- package/dist/components/{p-D8L0t-Ro.js → p-Co5HWjr6.js} +3 -3
- package/dist/components/{p-D8L0t-Ro.js.map → p-Co5HWjr6.js.map} +1 -1
- package/dist/components/{p-5OECjGHq.js → p-DG7VXGxX.js} +3 -3
- package/dist/components/{p-5OECjGHq.js.map → p-DG7VXGxX.js.map} +1 -1
- package/dist/components/{p-D1YAsWrL.js → p-D_uh1RUI.js} +3 -3
- package/dist/components/{p-D1YAsWrL.js.map → p-D_uh1RUI.js.map} +1 -1
- package/dist/components/{p-xcQV8l_c.js → p-cv2RCdI1.js} +7 -7
- package/dist/components/{p-xcQV8l_c.js.map → p-cv2RCdI1.js.map} +1 -1
- package/dist/components/{p-BmdYFhLx.js → p-nZdy-Ii5.js} +4 -4
- package/dist/components/{p-BmdYFhLx.js.map → p-nZdy-Ii5.js.map} +1 -1
- package/dist/components/{p-CiM-IPaD.js → p-y25EBKEA.js} +5 -5
- package/dist/components/{p-CiM-IPaD.js.map → p-y25EBKEA.js.map} +1 -1
- package/dist/esm/{default-line-tool.config-PvsWHpO2.js → default-line-tool.config-CuBm2vpW.js} +514 -14
- package/dist/esm/default-line-tool.config-CuBm2vpW.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-color_22.entry.js +120 -6
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-CuBm2vpW.js +2 -0
- package/dist/stencil/p-CuBm2vpW.js.map +1 -0
- package/dist/stencil/p-c9201236.entry.js +10 -0
- package/dist/stencil/p-c9201236.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/core/core.class.d.ts +11 -1
- package/dist/types/classes/handlers/move.handler.d.ts +11 -0
- package/dist/types/classes/objects/group.class.d.ts +97 -0
- package/dist/types/classes/objects/selection-group.class.d.ts +5 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -0
- package/dist/types/components.d.ts +4 -2
- package/dist/types/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/default-line-tool.config-Bs88k0jE.js.map +0 -1
- package/dist/components/p-Cv4BGNPb.js.map +0 -1
- package/dist/components/p-f_ut_1_F.js.map +0 -1
- package/dist/esm/default-line-tool.config-PvsWHpO2.js.map +0 -1
- package/dist/stencil/p-9913896b.entry.js +0 -10
- package/dist/stencil/p-9913896b.entry.js.map +0 -1
- package/dist/stencil/p-PvsWHpO2.js +0 -2
- package/dist/stencil/p-PvsWHpO2.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-Cj__YTlG.js');
|
|
4
|
-
var defaultLineTool_config = require('./default-line-tool.config-
|
|
4
|
+
var defaultLineTool_config = require('./default-line-tool.config-JuTDR6PF.js');
|
|
5
5
|
|
|
6
6
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
7
7
|
|
|
@@ -1319,6 +1319,21 @@ const KritzelEditor = class {
|
|
|
1319
1319
|
{ label: 'Delete', icon: 'delete', action: () => this.engineRef.delete() },
|
|
1320
1320
|
{ label: 'Bring to Front', icon: 'bring-to-front', action: () => this.engineRef.bringToFront() },
|
|
1321
1321
|
{ label: 'Send to Back', icon: 'send-to-back', action: () => this.engineRef.sendToBack() },
|
|
1322
|
+
{
|
|
1323
|
+
label: 'Group',
|
|
1324
|
+
icon: 'group',
|
|
1325
|
+
disabled: async () => (await this.engineRef.getSelectedObjects()).length < 2,
|
|
1326
|
+
action: () => this.engineRef.group(),
|
|
1327
|
+
},
|
|
1328
|
+
{
|
|
1329
|
+
label: 'Ungroup',
|
|
1330
|
+
icon: 'ungroup',
|
|
1331
|
+
disabled: async () => {
|
|
1332
|
+
const selectedObjects = await this.engineRef.getSelectedObjects();
|
|
1333
|
+
return !selectedObjects.some(obj => obj.__class__ === 'KritzelGroup');
|
|
1334
|
+
},
|
|
1335
|
+
action: () => this.engineRef.ungroup(),
|
|
1336
|
+
},
|
|
1322
1337
|
];
|
|
1323
1338
|
customSvgIcons = {};
|
|
1324
1339
|
isControlsVisible = true;
|
|
@@ -1470,7 +1485,7 @@ const KritzelEditor = class {
|
|
|
1470
1485
|
}
|
|
1471
1486
|
}
|
|
1472
1487
|
render() {
|
|
1473
|
-
return (index.h(index.Host, { key: '
|
|
1488
|
+
return (index.h(index.Host, { key: '497c7c69759c966dd2132007d80c5c772258a6c9' }, index.h("kritzel-workspace-manager", { key: '169e10c9b338283e1be32868aa0e354e7a149749', workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), index.h("kritzel-engine", { key: 'c8cf58aa8bfc9a5d4a2e4a4499c60938b0d55758', ref: el => (this.engineRef = el), workspace: this.activeWorkspace, syncConfig: this.syncConfig, scaleMax: this.scaleMax, scaleMin: this.scaleMin, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onObjectsChange: event => this.handleObjectsChange(event), onUndoStateChange: event => this.handleUndoStateChange(event) }), index.h("kritzel-controls", { key: '68f2bce210dab937080618a2a4f069bf8103449f', class: { 'keyboard-open': this.isVirtualKeyboardOpen }, style: { display: this.isControlsVisible ? 'flex' : 'none' }, ref: el => (this.controlsRef = el), controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState, onIsControlsReady: () => (this.isControlsReady = true) })));
|
|
1474
1489
|
}
|
|
1475
1490
|
static get watchers() { return {
|
|
1476
1491
|
"isEngineReady": ["onIsEngineReady"],
|
|
@@ -18920,6 +18935,9 @@ class KritzelKeyHandler extends defaultLineTool_config.KritzelBaseHandler {
|
|
|
18920
18935
|
{ key: '-', ctrl: true, condition: c => !!c.store.selectionGroup, action: c => c.sendBackward() },
|
|
18921
18936
|
{ key: '*', shift: true, condition: c => !!c.store.selectionGroup, action: c => c.bringToFront() },
|
|
18922
18937
|
{ key: '_', shift: true, condition: c => !!c.store.selectionGroup, action: c => c.sendToBack() },
|
|
18938
|
+
// Grouping
|
|
18939
|
+
{ key: 'g', ctrl: true, condition: c => !!c.store.selectionGroup && c.store.selectionGroup.objects.length >= 2, action: c => c.group() },
|
|
18940
|
+
{ key: 'G', ctrl: true, shift: true, condition: c => !!c.store.selectionGroup, action: c => c.ungroup() },
|
|
18923
18941
|
];
|
|
18924
18942
|
constructor(core) {
|
|
18925
18943
|
super(core);
|
|
@@ -19164,6 +19182,9 @@ class KritzelReviver {
|
|
|
19164
19182
|
case 'KritzelSelectionGroup':
|
|
19165
19183
|
revivedObj = defaultLineTool_config.KritzelSelectionGroup.create(this._core).deserialize(obj);
|
|
19166
19184
|
break;
|
|
19185
|
+
case 'KritzelGroup':
|
|
19186
|
+
revivedObj = defaultLineTool_config.KritzelGroup.create(this._core).deserialize(obj);
|
|
19187
|
+
break;
|
|
19167
19188
|
case 'KritzelWorkspace':
|
|
19168
19189
|
revivedObj = defaultLineTool_config.KritzelWorkspace.create(this._core, obj).deserialize(obj);
|
|
19169
19190
|
break;
|
|
@@ -19999,7 +20020,15 @@ class KritzelCore {
|
|
|
19999
20020
|
addObject(object) {
|
|
20000
20021
|
this._store.state.objects.insert(object);
|
|
20001
20022
|
}
|
|
20002
|
-
removeObject(object) {
|
|
20023
|
+
removeObject(object, preserveChildren = false) {
|
|
20024
|
+
// Handle KritzelGroup: recursively delete all children first (unless preserveChildren is true)
|
|
20025
|
+
if (object instanceof defaultLineTool_config.KritzelGroup && !preserveChildren) {
|
|
20026
|
+
// Get children before removing the group
|
|
20027
|
+
const children = [...object.children];
|
|
20028
|
+
children.forEach(child => {
|
|
20029
|
+
this.removeObject(child);
|
|
20030
|
+
});
|
|
20031
|
+
}
|
|
20003
20032
|
// Handle anchor cleanup
|
|
20004
20033
|
if (object instanceof defaultLineTool_config.KritzelLine) {
|
|
20005
20034
|
// If removing a line, clean up its anchor index entries
|
|
@@ -20136,6 +20165,28 @@ class KritzelCore {
|
|
|
20136
20165
|
obj.updatePosition(obj.translateX + offsetX, obj.translateY + offsetY);
|
|
20137
20166
|
// Update z-index
|
|
20138
20167
|
obj.zIndex = this._store.currentZIndex + i;
|
|
20168
|
+
// Handle KritzelGroup: also add pending children with offset
|
|
20169
|
+
if (obj instanceof defaultLineTool_config.KritzelGroup) {
|
|
20170
|
+
const pendingChildren = obj._pendingChildren;
|
|
20171
|
+
if (pendingChildren) {
|
|
20172
|
+
pendingChildren.forEach((child, childIndex) => {
|
|
20173
|
+
// Update workspace
|
|
20174
|
+
if (child.workspaceId !== activeWorkspace.id) {
|
|
20175
|
+
child.workspaceId = activeWorkspace.id;
|
|
20176
|
+
}
|
|
20177
|
+
// Update position with offset
|
|
20178
|
+
child.updatePosition(child.translateX + offsetX, child.translateY + offsetY);
|
|
20179
|
+
// Update z-index
|
|
20180
|
+
child.zIndex = this._store.currentZIndex + i + childIndex;
|
|
20181
|
+
// Add child to store
|
|
20182
|
+
this.addObject(child);
|
|
20183
|
+
});
|
|
20184
|
+
// Clear pending children
|
|
20185
|
+
delete obj._pendingChildren;
|
|
20186
|
+
// Finalize the group's bounding box and snapshots
|
|
20187
|
+
obj.finalize();
|
|
20188
|
+
}
|
|
20189
|
+
}
|
|
20139
20190
|
// Add to objectsMap
|
|
20140
20191
|
this.addObject(obj);
|
|
20141
20192
|
// Add to selection group
|
|
@@ -20247,6 +20298,63 @@ class KritzelCore {
|
|
|
20247
20298
|
});
|
|
20248
20299
|
this.rerender();
|
|
20249
20300
|
}
|
|
20301
|
+
/**
|
|
20302
|
+
* Groups the currently selected objects into a KritzelGroup.
|
|
20303
|
+
* Requires at least 2 objects to be selected.
|
|
20304
|
+
*/
|
|
20305
|
+
group() {
|
|
20306
|
+
const selectionGroup = this._store.selectionGroup;
|
|
20307
|
+
if (!selectionGroup || selectionGroup.objects.length < 2) {
|
|
20308
|
+
return;
|
|
20309
|
+
}
|
|
20310
|
+
// Create a group from the selected objects
|
|
20311
|
+
const group = defaultLineTool_config.KritzelGroup.createFromObjects(this, selectionGroup.objects);
|
|
20312
|
+
// Add the group to the object store
|
|
20313
|
+
this.addObject(group);
|
|
20314
|
+
// Remove the selection group and create a new one with just the group
|
|
20315
|
+
this.removeSelectionGroup();
|
|
20316
|
+
const newSelectionGroup = defaultLineTool_config.KritzelSelectionGroup.create(this);
|
|
20317
|
+
newSelectionGroup.addOrRemove(group);
|
|
20318
|
+
newSelectionGroup.isSelected = true;
|
|
20319
|
+
newSelectionGroup.rotation = group.rotation;
|
|
20320
|
+
this.addSelectionGroup(newSelectionGroup);
|
|
20321
|
+
this.engine.emitObjectsChange();
|
|
20322
|
+
this.rerender();
|
|
20323
|
+
}
|
|
20324
|
+
/**
|
|
20325
|
+
* Ungroups any KritzelGroup objects in the current selection.
|
|
20326
|
+
* Children are extracted and become top-level objects.
|
|
20327
|
+
*/
|
|
20328
|
+
ungroup() {
|
|
20329
|
+
const selectionGroup = this._store.selectionGroup;
|
|
20330
|
+
if (!selectionGroup) {
|
|
20331
|
+
return;
|
|
20332
|
+
}
|
|
20333
|
+
const groups = selectionGroup.objects.filter(obj => obj instanceof defaultLineTool_config.KritzelGroup);
|
|
20334
|
+
if (groups.length === 0) {
|
|
20335
|
+
return;
|
|
20336
|
+
}
|
|
20337
|
+
// Collect all children from all groups
|
|
20338
|
+
const allChildren = [];
|
|
20339
|
+
const nonGroupObjects = selectionGroup.objects.filter(obj => !(obj instanceof defaultLineTool_config.KritzelGroup));
|
|
20340
|
+
groups.forEach(group => {
|
|
20341
|
+
// Get children before removing the group
|
|
20342
|
+
const children = group.ungroup();
|
|
20343
|
+
allChildren.push(...children);
|
|
20344
|
+
// Remove the group from the store (but keep children)
|
|
20345
|
+
this.removeObject(group, true);
|
|
20346
|
+
});
|
|
20347
|
+
// Create a new selection group with all the ungrouped children and non-group objects
|
|
20348
|
+
this.removeSelectionGroup();
|
|
20349
|
+
const newSelectionGroup = defaultLineTool_config.KritzelSelectionGroup.create(this);
|
|
20350
|
+
[...allChildren, ...nonGroupObjects].forEach(child => {
|
|
20351
|
+
newSelectionGroup.addOrRemove(child);
|
|
20352
|
+
});
|
|
20353
|
+
newSelectionGroup.isSelected = true;
|
|
20354
|
+
this.addSelectionGroup(newSelectionGroup);
|
|
20355
|
+
this.engine.emitObjectsChange();
|
|
20356
|
+
this.rerender();
|
|
20357
|
+
}
|
|
20250
20358
|
selectObjects(objects) {
|
|
20251
20359
|
if (objects.length === 0) {
|
|
20252
20360
|
return;
|
|
@@ -20645,6 +20753,12 @@ const KritzelEngine = class {
|
|
|
20645
20753
|
async sendToBack(object) {
|
|
20646
20754
|
this.core.sendToBack(object);
|
|
20647
20755
|
}
|
|
20756
|
+
async group() {
|
|
20757
|
+
this.core.group();
|
|
20758
|
+
}
|
|
20759
|
+
async ungroup() {
|
|
20760
|
+
this.core.ungroup();
|
|
20761
|
+
}
|
|
20648
20762
|
async undo() {
|
|
20649
20763
|
this.core.undo();
|
|
20650
20764
|
}
|
|
@@ -20827,7 +20941,7 @@ const KritzelEngine = class {
|
|
|
20827
20941
|
};
|
|
20828
20942
|
const visibleObjects = this.core.store.state.objects.query(viewportBounds).sort((a, b) => a.zIndex - b.zIndex);
|
|
20829
20943
|
this.core.cursorManager.applyCursor();
|
|
20830
|
-
return (index.h(index.Host, { key: '
|
|
20944
|
+
return (index.h(index.Host, { key: 'd0f13eb1d34a6edcba439a501edbaab1875112f1' }, this.core.store.state.debugInfo.showViewportInfo && (index.h("div", { key: 'f722474cfd43ab13e306cea908871af77015d015', class: "debug-panel" }, index.h("div", { key: 'efd483bc92223d78f6a0f661a1911820de83682a' }, "ActiveWorkspaceId: ", this.core.store.state?.activeWorkspace?.id), index.h("div", { key: '37c213c1e3d57cb79ccb99ff65404fa3e03f07e0' }, "ActiveWorkspaceName: ", this.core.store.state?.activeWorkspace?.name), index.h("div", { key: '68bcdc9e10d89a6a4284dbdc11d679f6c8bed6df' }, "TranslateX: ", this.core.store.state?.translateX), index.h("div", { key: 'c653966e412a801d536bfdcf8ab79176376693a5' }, "TranslateY: ", this.core.store.state?.translateY), index.h("div", { key: 'db83b7d58514296daa1465926867d099df6988f9' }, "ViewportWidth: ", this.core.store.state?.viewportWidth), index.h("div", { key: '1f15e3edec3165920207ba8f1b2886aa72049d08' }, "ViewportHeight: ", this.core.store.state?.viewportHeight), index.h("div", { key: 'c4e468e3c602f1fd62d4b13de1ec39dd1302768f' }, "PointerCount: ", this.core.store.state.pointers.size), index.h("div", { key: '8eae67aac27495a611ba125e029473119665bb7e' }, "Scale: ", this.core.store.state?.scale), index.h("div", { key: '8b22934652db52d915cb21f48f8340ceb2fe1327' }, "ActiveTool: ", this.core.store.state?.activeTool?.name), index.h("div", { key: 'd4d1872b8e1c33f0925a2f3cfcf4bc652cc5637e' }, "HasViewportChanged: ", this.core.store.state?.hasViewportChanged ? 'true' : 'false'), index.h("div", { key: '76fc159e2f38324248db21cab17fe76dd7add144' }, "IsEnabled: ", this.core.store.state?.isEnabled ? 'true' : 'false'), index.h("div", { key: 'aa5a5a7c5faac899492f9c87cb9bf5cf960329cb' }, "IsScaling: ", this.core.store.state?.isScaling ? 'true' : 'false'), index.h("div", { key: '21d4d43e7fc91a187055906c9f38529407f4ec6f' }, "IsPanning: ", this.core.store.state?.isPanning ? 'true' : 'false'), index.h("div", { key: 'b43ba7bafd3ac52f5622e7d980456e7cbf5ff0fb' }, "IsSelecting: ", this.isSelecting ? 'true' : 'false'), index.h("div", { key: 'ecf9749bf4eece2970a62230d323fc205ce62fed' }, "IsSelectionActive: ", this.isSelectionActive ? 'true' : 'false'), index.h("div", { key: '6f9c7b7fa357f86c05aa76c02428ab0584856f3d' }, "IsResizeHandleSelected: ", this.core.store.state.isResizeHandleSelected ? 'true' : 'false'), index.h("div", { key: '7b61ed971fd7b4a029204861b19677421c049a33' }, "IsRotationHandleSelected: ", this.core.store.state.isRotationHandleSelected ? 'true' : 'false'), index.h("div", { key: '875ed8cdf18b46c362b6b0c331a8f9fcba6bc1e2' }, "IsRotationHandleHovered: ", this.core.store.state.isRotationHandleHovered ? 'true' : 'false'), index.h("div", { key: 'f56f27eff2c7e715528a32b4fe874da5220bc1ef' }, "IsDrawing: ", this.core.store.state.isDrawing ? 'true' : 'false'), index.h("div", { key: '7831c3571031b029766b0fa16fe2b0e29e8c19b5' }, "IsWriting: ", this.core.store.state.isWriting ? 'true' : 'false'), index.h("div", { key: 'd4167e465da2f690b9d1f6d3cb8778f4a618843f' }, "IsPointerDown: ", this.core.store.isPointerDown ? 'true' : 'false'), index.h("div", { key: '00dfeba01da344a0e3c40f2f92ca539ef59d5da5' }, "PointerX: ", this.core.store.state?.pointerX), index.h("div", { key: '30948e66636501df9863caa67da468d45517a44f' }, "PointerY: ", this.core.store.state?.pointerY), index.h("div", { key: '9ee2c0bb69e9a150b7ab7c0ca9881897b5ec2a72' }, "SelectedObjects: ", this.core.store.selectionGroup?.objects.length || 0), index.h("div", { key: '9d470ca319b0c32de7565c46b28c6483d4b9c1cb' }, "ViewportCenter: (", viewportCenterX.toFixed(2), ", ", viewportCenterY.toFixed(2), ")"))), index.h("div", { key: '4eaaf1e928e62c872b354523e55f33f01c25c5e7', id: "origin", class: "origin", style: {
|
|
20831
20945
|
transform: `matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`,
|
|
20832
20946
|
} }, visibleObjects?.map(object => {
|
|
20833
20947
|
return (index.h("div", { key: object.id, style: {
|
|
@@ -21076,7 +21190,7 @@ const KritzelEngine = class {
|
|
|
21076
21190
|
stroke: 'var(--kritzel-snap-indicator-stroke, #3b82f6)',
|
|
21077
21191
|
strokeWidth: data.indicatorStrokeWidth,
|
|
21078
21192
|
} }))));
|
|
21079
|
-
})()), this.core.store.state.isContextMenuVisible && (index.h("kritzel-context-menu", { key: '
|
|
21193
|
+
})()), this.core.store.state.isContextMenuVisible && (index.h("kritzel-context-menu", { key: 'f726cabc77f66c24618dc0b54cca8bd681608dde', class: "context-menu", ref: el => (this.contextMenuElement = el), items: this.core.store.state.contextMenuItems, objects: this.core.store.selectionGroup?.objects || [], style: {
|
|
21080
21194
|
position: 'fixed',
|
|
21081
21195
|
left: `${this.core.store.state.contextMenuX}px`,
|
|
21082
21196
|
top: `${this.core.store.state.contextMenuY}px`,
|
|
@@ -21087,7 +21201,7 @@ const KritzelEngine = class {
|
|
|
21087
21201
|
y: (-this.core.store.state.translateY + this.core.store.state.contextMenuY) / this.core.store.state.scale,
|
|
21088
21202
|
}, this.core.store.selectionGroup?.objects);
|
|
21089
21203
|
this.hideContextMenu();
|
|
21090
|
-
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof defaultLineTool_config.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: '
|
|
21204
|
+
}, onClose: () => this.hideContextMenu() })), this.core.store.state?.activeTool instanceof defaultLineTool_config.KritzelEraserTool && !this.core.store.state.isScaling && index.h("kritzel-cursor-trail", { key: 'bf42f27e52c03f9d00a5459883ac45ed39bb1dcd', core: this.core })));
|
|
21091
21205
|
}
|
|
21092
21206
|
static get watchers() { return {
|
|
21093
21207
|
"workspace": ["onWorkspaceChange"],
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -6,7 +6,7 @@ var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
|
6
6
|
const defineCustomElements = async (win, options) => {
|
|
7
7
|
if (typeof window === 'undefined') return undefined;
|
|
8
8
|
await appGlobals.globalScripts();
|
|
9
|
-
return index.bootstrapLazy([["kritzel-color_22.cjs",[[768,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"customSvgIcons":[16],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"syncConfig":[16],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":["onIsEngineReady"],"isControlsReady":["onIsControlsReady"],"workspaces":["onWorkspacesChange"]}],[769,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"openSubMenuControl":[32],"closeTooltip":[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"]]],[769,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[769,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"forceUpdate":[32],"registerTool":[64],"changeActiveTool":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"getCopiedObjects":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":["onWorkspaceChange"],"scaleMax":["validateScaleMax"],"scaleMin":["validateScaleMin"],"cursorTarget":["onCursorTargetChange"]}],[769,"kritzel-control-text-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"]}],[769,"kritzel-control-brush-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"palette":[32]},null,{"tool":["handleToolChange"]}],[769,"kritzel-split-button",{"buttonIcon":[1,"button-icon"],"dropdownIcon":[1,"dropdown-icon"],"items":[16],"mainButtonDisabled":[4,"main-button-disabled"],"menuButtonDisabled":[4,"menu-button-disabled"],"isMenuOpen":[32],"isTouchDevice":[32],"anchorElement":[32],"menuScrollTop":[32],"open":[64],"focusMenu":[64]}],[769,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":["onItemsChanged"]}],[769,"kritzel-utility-panel",{"undoState":[16]}],[769,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[769,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16],"arrowSize":[2,"arrow-size"],"offsetY":[2,"offset-y"],"showArrow":[4,"show-arrow"],"positionX":[32],"positionY":[32],"arrowOffset":[32],"focusContent":[64]},[[4,"click","handleOutsideClick"],[9,"resize","handleWindowResize"]]],[769,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[769,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[769,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[769,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"]}],[769,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[769,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[769,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":["onItemChange"]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[8,"select-styles"],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32]},null,{"options":["optionsChanged"],"value":["externalValueChanged"]}],[769,"kritzel-portal",{"anchor":[16],"offsetX":[2,"offset-x"],"offsetY":[2,"offset-y"],"autoFocus":[4,"auto-focus"]},[[8,"click","handleOutsideClick"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":["anchorChanged"]}],[769,"kritzel-color",{"value":[1],"size":[2]}],[769,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["kritzel-brush-style.cjs",[[769,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]], options);
|
|
9
|
+
return index.bootstrapLazy([["kritzel-color_22.cjs",[[768,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"customSvgIcons":[16],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"syncConfig":[16],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":["onIsEngineReady"],"isControlsReady":["onIsControlsReady"],"workspaces":["onWorkspacesChange"]}],[769,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"openSubMenuControl":[32],"closeTooltip":[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"]]],[769,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[769,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"forceUpdate":[32],"registerTool":[64],"changeActiveTool":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"getCopiedObjects":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":["onWorkspaceChange"],"scaleMax":["validateScaleMax"],"scaleMin":["validateScaleMin"],"cursorTarget":["onCursorTargetChange"]}],[769,"kritzel-control-text-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"]}],[769,"kritzel-control-brush-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"palette":[32]},null,{"tool":["handleToolChange"]}],[769,"kritzel-split-button",{"buttonIcon":[1,"button-icon"],"dropdownIcon":[1,"dropdown-icon"],"items":[16],"mainButtonDisabled":[4,"main-button-disabled"],"menuButtonDisabled":[4,"menu-button-disabled"],"isMenuOpen":[32],"isTouchDevice":[32],"anchorElement":[32],"menuScrollTop":[32],"open":[64],"focusMenu":[64]}],[769,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":["onItemsChanged"]}],[769,"kritzel-utility-panel",{"undoState":[16]}],[769,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[769,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16],"arrowSize":[2,"arrow-size"],"offsetY":[2,"offset-y"],"showArrow":[4,"show-arrow"],"positionX":[32],"positionY":[32],"arrowOffset":[32],"focusContent":[64]},[[4,"click","handleOutsideClick"],[9,"resize","handleWindowResize"]]],[769,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[769,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[769,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[769,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"]}],[769,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[769,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[769,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":["onItemChange"]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[8,"select-styles"],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32]},null,{"options":["optionsChanged"],"value":["externalValueChanged"]}],[769,"kritzel-portal",{"anchor":[16],"offsetX":[2,"offset-x"],"offsetY":[2,"offset-y"],"autoFocus":[4,"auto-focus"]},[[8,"click","handleOutsideClick"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":["anchorChanged"]}],[769,"kritzel-color",{"value":[1],"size":[2]}],[769,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["kritzel-brush-style.cjs",[[769,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]], options);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
exports.setNonce = index.setNonce;
|
package/dist/cjs/stencil.cjs.js
CHANGED
|
@@ -19,7 +19,7 @@ var patchBrowser = () => {
|
|
|
19
19
|
|
|
20
20
|
patchBrowser().then(async (options) => {
|
|
21
21
|
await appGlobals.globalScripts();
|
|
22
|
-
return index.bootstrapLazy([["kritzel-color_22.cjs",[[768,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"customSvgIcons":[16],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"syncConfig":[16],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":["onIsEngineReady"],"isControlsReady":["onIsControlsReady"],"workspaces":["onWorkspacesChange"]}],[769,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"openSubMenuControl":[32],"closeTooltip":[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"]]],[769,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[769,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"forceUpdate":[32],"registerTool":[64],"changeActiveTool":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"getCopiedObjects":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":["onWorkspaceChange"],"scaleMax":["validateScaleMax"],"scaleMin":["validateScaleMin"],"cursorTarget":["onCursorTargetChange"]}],[769,"kritzel-control-text-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"]}],[769,"kritzel-control-brush-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"palette":[32]},null,{"tool":["handleToolChange"]}],[769,"kritzel-split-button",{"buttonIcon":[1,"button-icon"],"dropdownIcon":[1,"dropdown-icon"],"items":[16],"mainButtonDisabled":[4,"main-button-disabled"],"menuButtonDisabled":[4,"menu-button-disabled"],"isMenuOpen":[32],"isTouchDevice":[32],"anchorElement":[32],"menuScrollTop":[32],"open":[64],"focusMenu":[64]}],[769,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":["onItemsChanged"]}],[769,"kritzel-utility-panel",{"undoState":[16]}],[769,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[769,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16],"arrowSize":[2,"arrow-size"],"offsetY":[2,"offset-y"],"showArrow":[4,"show-arrow"],"positionX":[32],"positionY":[32],"arrowOffset":[32],"focusContent":[64]},[[4,"click","handleOutsideClick"],[9,"resize","handleWindowResize"]]],[769,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[769,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[769,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[769,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"]}],[769,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[769,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[769,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":["onItemChange"]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[8,"select-styles"],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32]},null,{"options":["optionsChanged"],"value":["externalValueChanged"]}],[769,"kritzel-portal",{"anchor":[16],"offsetX":[2,"offset-x"],"offsetY":[2,"offset-y"],"autoFocus":[4,"auto-focus"]},[[8,"click","handleOutsideClick"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":["anchorChanged"]}],[769,"kritzel-color",{"value":[1],"size":[2]}],[769,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["kritzel-brush-style.cjs",[[769,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]], options);
|
|
22
|
+
return index.bootstrapLazy([["kritzel-color_22.cjs",[[768,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"customSvgIcons":[16],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"syncConfig":[16],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":["onIsEngineReady"],"isControlsReady":["onIsControlsReady"],"workspaces":["onWorkspacesChange"]}],[769,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"openSubMenuControl":[32],"closeTooltip":[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"]]],[769,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[769,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"forceUpdate":[32],"registerTool":[64],"changeActiveTool":[64],"disable":[64],"enable":[64],"delete":[64],"copy":[64],"paste":[64],"bringForward":[64],"sendBackward":[64],"bringToFront":[64],"sendToBack":[64],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"getCopiedObjects":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":["onWorkspaceChange"],"scaleMax":["validateScaleMax"],"scaleMin":["validateScaleMin"],"cursorTarget":["onCursorTargetChange"]}],[769,"kritzel-control-text-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"]}],[769,"kritzel-control-brush-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"palette":[32]},null,{"tool":["handleToolChange"]}],[769,"kritzel-split-button",{"buttonIcon":[1,"button-icon"],"dropdownIcon":[1,"dropdown-icon"],"items":[16],"mainButtonDisabled":[4,"main-button-disabled"],"menuButtonDisabled":[4,"menu-button-disabled"],"isMenuOpen":[32],"isTouchDevice":[32],"anchorElement":[32],"menuScrollTop":[32],"open":[64],"focusMenu":[64]}],[769,"kritzel-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":["onItemsChanged"]}],[769,"kritzel-utility-panel",{"undoState":[16]}],[769,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[769,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16],"arrowSize":[2,"arrow-size"],"offsetY":[2,"offset-y"],"showArrow":[4,"show-arrow"],"positionX":[32],"positionY":[32],"arrowOffset":[32],"focusContent":[64]},[[4,"click","handleOutsideClick"],[9,"resize","handleWindowResize"]]],[769,"kritzel-font-family",{"fontOptions":[16],"selectedFontFamily":[1025,"selected-font-family"]}],[769,"kritzel-font-size",{"sizes":[16],"selectedSize":[1026,"selected-size"],"fontFamily":[1,"font-family"]}],[769,"kritzel-stroke-size",{"sizes":[16],"selectedSize":[1026,"selected-size"]}],[769,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"]}],[769,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[769,"kritzel-menu",{"items":[16],"parent":[16],"selectedIndex":[32],"setScrollTop":[64],"setFocus":[64]}],[769,"kritzel-menu-item",{"item":[16],"parent":[16],"isDirty":[32]},null,{"item":["onItemChange"]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[8,"select-styles"],"internalValue":[32],"hasSuffixContent":[32],"hasPrefixContent":[32]},null,{"options":["optionsChanged"],"value":["externalValueChanged"]}],[769,"kritzel-portal",{"anchor":[16],"offsetX":[2,"offset-x"],"offsetY":[2,"offset-y"],"autoFocus":[4,"auto-focus"]},[[8,"click","handleOutsideClick"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":["anchorChanged"]}],[769,"kritzel-color",{"value":[1],"size":[2]}],[769,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["kritzel-brush-style.cjs",[[769,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]], options);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.setNonce = index.setNonce;
|
|
@@ -3,6 +3,7 @@ import { DEFAULT_ENGINE_CONFIG } from "../../configs/default-engine-config";
|
|
|
3
3
|
import { ObjectHelper } from "../../helpers/object.helper";
|
|
4
4
|
import { KritzelSelectionBox } from "../objects/selection-box.class";
|
|
5
5
|
import { KritzelSelectionGroup } from "../objects/selection-group.class";
|
|
6
|
+
import { KritzelGroup } from "../objects/group.class";
|
|
6
7
|
import { KritzelLine } from "../objects/line.class";
|
|
7
8
|
import { KritzelToolRegistry } from "../registries/tool.registry";
|
|
8
9
|
import { KritzelStore } from "./store.class";
|
|
@@ -183,7 +184,15 @@ export class KritzelCore {
|
|
|
183
184
|
addObject(object) {
|
|
184
185
|
this._store.state.objects.insert(object);
|
|
185
186
|
}
|
|
186
|
-
removeObject(object) {
|
|
187
|
+
removeObject(object, preserveChildren = false) {
|
|
188
|
+
// Handle KritzelGroup: recursively delete all children first (unless preserveChildren is true)
|
|
189
|
+
if (object instanceof KritzelGroup && !preserveChildren) {
|
|
190
|
+
// Get children before removing the group
|
|
191
|
+
const children = [...object.children];
|
|
192
|
+
children.forEach(child => {
|
|
193
|
+
this.removeObject(child);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
187
196
|
// Handle anchor cleanup
|
|
188
197
|
if (object instanceof KritzelLine) {
|
|
189
198
|
// If removing a line, clean up its anchor index entries
|
|
@@ -320,6 +329,28 @@ export class KritzelCore {
|
|
|
320
329
|
obj.updatePosition(obj.translateX + offsetX, obj.translateY + offsetY);
|
|
321
330
|
// Update z-index
|
|
322
331
|
obj.zIndex = this._store.currentZIndex + i;
|
|
332
|
+
// Handle KritzelGroup: also add pending children with offset
|
|
333
|
+
if (obj instanceof KritzelGroup) {
|
|
334
|
+
const pendingChildren = obj._pendingChildren;
|
|
335
|
+
if (pendingChildren) {
|
|
336
|
+
pendingChildren.forEach((child, childIndex) => {
|
|
337
|
+
// Update workspace
|
|
338
|
+
if (child.workspaceId !== activeWorkspace.id) {
|
|
339
|
+
child.workspaceId = activeWorkspace.id;
|
|
340
|
+
}
|
|
341
|
+
// Update position with offset
|
|
342
|
+
child.updatePosition(child.translateX + offsetX, child.translateY + offsetY);
|
|
343
|
+
// Update z-index
|
|
344
|
+
child.zIndex = this._store.currentZIndex + i + childIndex;
|
|
345
|
+
// Add child to store
|
|
346
|
+
this.addObject(child);
|
|
347
|
+
});
|
|
348
|
+
// Clear pending children
|
|
349
|
+
delete obj._pendingChildren;
|
|
350
|
+
// Finalize the group's bounding box and snapshots
|
|
351
|
+
obj.finalize();
|
|
352
|
+
}
|
|
353
|
+
}
|
|
323
354
|
// Add to objectsMap
|
|
324
355
|
this.addObject(obj);
|
|
325
356
|
// Add to selection group
|
|
@@ -431,6 +462,63 @@ export class KritzelCore {
|
|
|
431
462
|
});
|
|
432
463
|
this.rerender();
|
|
433
464
|
}
|
|
465
|
+
/**
|
|
466
|
+
* Groups the currently selected objects into a KritzelGroup.
|
|
467
|
+
* Requires at least 2 objects to be selected.
|
|
468
|
+
*/
|
|
469
|
+
group() {
|
|
470
|
+
const selectionGroup = this._store.selectionGroup;
|
|
471
|
+
if (!selectionGroup || selectionGroup.objects.length < 2) {
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
// Create a group from the selected objects
|
|
475
|
+
const group = KritzelGroup.createFromObjects(this, selectionGroup.objects);
|
|
476
|
+
// Add the group to the object store
|
|
477
|
+
this.addObject(group);
|
|
478
|
+
// Remove the selection group and create a new one with just the group
|
|
479
|
+
this.removeSelectionGroup();
|
|
480
|
+
const newSelectionGroup = KritzelSelectionGroup.create(this);
|
|
481
|
+
newSelectionGroup.addOrRemove(group);
|
|
482
|
+
newSelectionGroup.isSelected = true;
|
|
483
|
+
newSelectionGroup.rotation = group.rotation;
|
|
484
|
+
this.addSelectionGroup(newSelectionGroup);
|
|
485
|
+
this.engine.emitObjectsChange();
|
|
486
|
+
this.rerender();
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Ungroups any KritzelGroup objects in the current selection.
|
|
490
|
+
* Children are extracted and become top-level objects.
|
|
491
|
+
*/
|
|
492
|
+
ungroup() {
|
|
493
|
+
const selectionGroup = this._store.selectionGroup;
|
|
494
|
+
if (!selectionGroup) {
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
const groups = selectionGroup.objects.filter(obj => obj instanceof KritzelGroup);
|
|
498
|
+
if (groups.length === 0) {
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
// Collect all children from all groups
|
|
502
|
+
const allChildren = [];
|
|
503
|
+
const nonGroupObjects = selectionGroup.objects.filter(obj => !(obj instanceof KritzelGroup));
|
|
504
|
+
groups.forEach(group => {
|
|
505
|
+
// Get children before removing the group
|
|
506
|
+
const children = group.ungroup();
|
|
507
|
+
allChildren.push(...children);
|
|
508
|
+
// Remove the group from the store (but keep children)
|
|
509
|
+
this.removeObject(group, true);
|
|
510
|
+
});
|
|
511
|
+
// Create a new selection group with all the ungrouped children and non-group objects
|
|
512
|
+
this.removeSelectionGroup();
|
|
513
|
+
const newSelectionGroup = KritzelSelectionGroup.create(this);
|
|
514
|
+
[...allChildren, ...nonGroupObjects].forEach(child => {
|
|
515
|
+
newSelectionGroup.addOrRemove(child);
|
|
516
|
+
});
|
|
517
|
+
newSelectionGroup.isSelected = true;
|
|
518
|
+
this.addSelectionGroup(newSelectionGroup);
|
|
519
|
+
this.engine.emitObjectsChange();
|
|
520
|
+
this.rerender();
|
|
521
|
+
}
|
|
434
522
|
selectObjects(objects) {
|
|
435
523
|
if (objects.length === 0) {
|
|
436
524
|
return;
|