kritzel-stencil 0.3.22 → 0.3.23
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/index.cjs.js +3 -1
- package/dist/cjs/kritzel-active-users_45.cjs.entry.js +507 -288
- package/dist/cjs/{schema.constants-IBG5VW_J.js → schema.constants-Lr_zNkox.js} +713 -47
- package/dist/collection/classes/core/core.class.js +83 -5
- package/dist/collection/classes/core/store.class.js +9 -0
- package/dist/collection/classes/handlers/key.handler.js +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +13 -9
- package/dist/collection/classes/objects/base-object.class.js +20 -8
- package/dist/collection/classes/objects/custom-element.class.js +330 -8
- package/dist/collection/classes/objects/image.class.js +0 -1
- package/dist/collection/classes/objects/selection-group.class.js +12 -0
- package/dist/collection/classes/providers/assets/asset-resolver.class.js +24 -14
- package/dist/collection/classes/providers/assets/indexeddb-asset-provider.class.js +0 -8
- package/dist/collection/classes/registries/custom-element-renderer.registry.js +52 -0
- package/dist/collection/classes/structures/app-state-map.structure.js +17 -3
- package/dist/collection/classes/structures/object-map.structure.js +17 -3
- package/dist/collection/classes/tools/selection-tool.class.js +34 -6
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +9 -8
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +211 -78
- package/dist/collection/components/ui/kritzel-settings/kritzel-settings.js +2 -1
- package/dist/collection/configs/default-engine-config.js +3 -2
- package/dist/collection/constants/version.js +1 -1
- package/dist/collection/helpers/html.helper.js +52 -0
- package/dist/collection/helpers/object.helper.js +3 -0
- package/dist/collection/helpers/svg-export.helper.js +35 -0
- package/dist/collection/helpers/wheel.helper.js +113 -0
- package/dist/collection/index.js +3 -0
- package/dist/collection/interfaces/custom-element-renderer.interface.js +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/kritzel-awareness-cursors.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-current-user-dialog.js +1 -1
- package/dist/components/kritzel-current-user.js +1 -1
- package/dist/components/kritzel-dialog.js +1 -1
- package/dist/components/kritzel-editor.js +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-export.js +1 -1
- package/dist/components/kritzel-login-dialog.js +1 -1
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-more-menu.js +1 -1
- package/dist/components/kritzel-portal.js +1 -1
- package/dist/components/kritzel-settings.js +1 -1
- package/dist/components/kritzel-share-dialog.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-tool-config.js +1 -1
- package/dist/components/kritzel-tooltip.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-BwuemYET.js → p-B4WfPDj0.js} +1 -1
- package/dist/components/p-BNu3Akp5.js +1 -0
- package/dist/components/p-BYveczcb.js +1 -0
- package/dist/components/{p-D28ZylHn.js → p-BixEMVtW.js} +1 -1
- package/dist/components/{p-Ndib1Jb3.js → p-BntMEYss.js} +1 -1
- package/dist/components/p-C48bv_0f.js +9 -0
- package/dist/components/{p-BO1CnEOT.js → p-CPMpf9ku.js} +1 -1
- package/dist/components/{p-BhODnvMO.js → p-CZQz_mul.js} +1 -1
- package/dist/components/{p-COj8EVzL.js → p-Ckpa5tHF.js} +1 -1
- package/dist/components/{p-BPoDE87Q.js → p-DJ3KI725.js} +1 -1
- package/dist/components/{p-DRsD38Nl.js → p-DPlEzPKO.js} +1 -1
- package/dist/components/{p-C-RiEw9X.js → p-DSd5xTAH.js} +1 -1
- package/dist/components/{p-CbMLbDou.js → p-DTqMF94b.js} +1 -1
- package/dist/components/{p-CHrSFOSI.js → p-DX2nriaq.js} +1 -1
- package/dist/components/{p-BAN5dnHX.js → p-Dd-pMvlr.js} +1 -1
- package/dist/components/{p-C5TZjIE1.js → p-M9m9-OEY.js} +1 -1
- package/dist/components/p-WUdQqYnu.js +1 -0
- package/dist/components/{p-YFR180v-.js → p-XDNjFYRB.js} +1 -1
- package/dist/components/{p-CJEIUs0x.js → p-X_pyPCe8.js} +1 -1
- package/dist/components/{p-CpR9lc-o.js → p-meY80XnF.js} +1 -1
- package/dist/components/{p-6Ca7Eolf.js → p-y5T0_Wvi.js} +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-active-users_45.entry.js +500 -281
- package/dist/esm/{schema.constants-D35cwCYd.js → schema.constants-DMPBDrZh.js} +711 -47
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-27d41f6f.entry.js +9 -0
- package/dist/stencil/p-DMPBDrZh.js +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/core/core.class.d.ts +15 -0
- package/dist/types/classes/core/store.class.d.ts +6 -0
- package/dist/types/classes/objects/base-object.class.d.ts +3 -2
- package/dist/types/classes/objects/custom-element.class.d.ts +87 -21
- package/dist/types/classes/objects/image.class.d.ts +0 -1
- package/dist/types/classes/objects/selection-group.class.d.ts +1 -0
- package/dist/types/classes/providers/assets/asset-resolver.class.d.ts +3 -0
- package/dist/types/classes/providers/assets/indexeddb-asset-provider.class.d.ts +0 -1
- package/dist/types/classes/registries/custom-element-renderer.registry.d.ts +32 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +7 -1
- package/dist/types/components.d.ts +2 -2
- package/dist/types/constants/version.d.ts +1 -1
- package/dist/types/helpers/html.helper.d.ts +2 -0
- package/dist/types/helpers/object.helper.d.ts +1 -0
- package/dist/types/helpers/svg-export.helper.d.ts +9 -0
- package/dist/types/helpers/wheel.helper.d.ts +9 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/interfaces/asset-storage-config.interface.d.ts +0 -4
- package/dist/types/interfaces/custom-element-renderer.interface.d.ts +40 -0
- package/dist/types/interfaces/debug-info.interface.d.ts +1 -0
- package/dist/types/interfaces/object.interface.d.ts +0 -1
- package/package.json +1 -1
- package/dist/components/p-BML28BJR.js +0 -1
- package/dist/components/p-CVV-HzFR.js +0 -1
- package/dist/components/p-DWhWFDcC.js +0 -9
- package/dist/components/p-Dd_EODkk.js +0 -1
- package/dist/stencil/p-D35cwCYd.js +0 -1
- package/dist/stencil/p-fcbf7965.entry.js +0 -9
|
@@ -68,7 +68,8 @@ export class KritzelAppStateMap {
|
|
|
68
68
|
const docName = core.editorId ? `kritzel-app-state-${core.editorId}-${instanceId}` : `kritzel-app-state-${instanceId}`;
|
|
69
69
|
const finalConfig = config ?? DEFAULT_SYNC_CONFIG;
|
|
70
70
|
// Instantiate providers from configuration
|
|
71
|
-
const
|
|
71
|
+
const showSyncProviderInfo = !!core.store.state.debugInfo.showSyncProviderInfo;
|
|
72
|
+
const quiet = !showSyncProviderInfo;
|
|
72
73
|
for (const providerConfig of finalConfig.providers) {
|
|
73
74
|
let provider;
|
|
74
75
|
// Check if it's a class constructor or a factory
|
|
@@ -82,6 +83,10 @@ export class KritzelAppStateMap {
|
|
|
82
83
|
}
|
|
83
84
|
this._providers.push(provider);
|
|
84
85
|
}
|
|
86
|
+
if (showSyncProviderInfo) {
|
|
87
|
+
const providerList = this._providers.map(p => `${p.constructor.name} (${p.type})`).join(', ');
|
|
88
|
+
console.info(`[Kritzel] App-state sync providers initialized for ${docName}: ${providerList || 'none'}`);
|
|
89
|
+
}
|
|
85
90
|
// Observe changes to workspaces and sync with application state
|
|
86
91
|
this._workspacesObserver = event => {
|
|
87
92
|
this.handleWorkspacesChange(event);
|
|
@@ -94,15 +99,24 @@ export class KritzelAppStateMap {
|
|
|
94
99
|
const networkProviders = this._providers.filter(p => p.type === 'network');
|
|
95
100
|
// Await local providers for immediate data availability
|
|
96
101
|
const localResults = await Promise.allSettled(localProviders.map(p => p.connect()));
|
|
102
|
+
if (showSyncProviderInfo) {
|
|
103
|
+
const connectedLocalCount = localResults.filter(result => result.status === 'fulfilled').length;
|
|
104
|
+
console.info(`[Kritzel] App-state local providers connected: ${connectedLocalCount}/${localProviders.length}`);
|
|
105
|
+
}
|
|
97
106
|
localResults.forEach((result, i) => {
|
|
98
|
-
if (result.status === 'rejected') {
|
|
107
|
+
if (showSyncProviderInfo && result.status === 'rejected') {
|
|
99
108
|
console.error(`[Kritzel] Sync provider "${localProviders[i]?.constructor.name}" failed to connect:`, result.reason);
|
|
100
109
|
}
|
|
101
110
|
});
|
|
102
111
|
// Connect network providers in the background (remote data arrives via Yjs observers)
|
|
112
|
+
if (showSyncProviderInfo && networkProviders.length > 0) {
|
|
113
|
+
console.info(`[Kritzel] App-state network providers connecting in background: ${networkProviders.length}`);
|
|
114
|
+
}
|
|
103
115
|
for (const provider of networkProviders) {
|
|
104
116
|
provider.connect().catch(err => {
|
|
105
|
-
|
|
117
|
+
if (showSyncProviderInfo) {
|
|
118
|
+
console.error(`[Kritzel] Network sync provider "${provider.constructor.name}" failed to connect:`, err);
|
|
119
|
+
}
|
|
106
120
|
});
|
|
107
121
|
}
|
|
108
122
|
this._isReady = true;
|
|
@@ -274,7 +274,8 @@ export class KritzelObjectMap {
|
|
|
274
274
|
const docName = core.editorId ? `kritzel-workspace-${core.editorId}-${workspaceId}` : `kritzel-workspace-${workspaceId}`;
|
|
275
275
|
const finalConfig = config ?? DEFAULT_SYNC_CONFIG;
|
|
276
276
|
// Instantiate providers from configuration
|
|
277
|
-
const
|
|
277
|
+
const showSyncProviderInfo = !!core.store?.state?.debugInfo?.showSyncProviderInfo;
|
|
278
|
+
const quiet = !showSyncProviderInfo;
|
|
278
279
|
for (const providerConfig of finalConfig.providers) {
|
|
279
280
|
let provider;
|
|
280
281
|
// Check if it's a class constructor or a factory
|
|
@@ -288,6 +289,10 @@ export class KritzelObjectMap {
|
|
|
288
289
|
}
|
|
289
290
|
this._providers.push(provider);
|
|
290
291
|
}
|
|
292
|
+
if (showSyncProviderInfo) {
|
|
293
|
+
const providerList = this._providers.map(p => `${p.constructor.name} (${p.type})`).join(', ');
|
|
294
|
+
console.info(`[Kritzel] Workspace sync providers initialized for ${docName}: ${providerList || 'none'}`);
|
|
295
|
+
}
|
|
291
296
|
// captureTimeout is effectively infinite — undo-step boundaries are
|
|
292
297
|
// marked explicitly via markUndoBoundary() in insert/remove/reset and
|
|
293
298
|
// at stroke/gesture boundaries in the tools. This prevents a single
|
|
@@ -328,15 +333,24 @@ export class KritzelObjectMap {
|
|
|
328
333
|
const networkProviders = this._providers.filter(p => p.type === 'network');
|
|
329
334
|
// Await local providers for immediate data availability
|
|
330
335
|
const localResults = await Promise.allSettled(localProviders.map(p => p.connect()));
|
|
336
|
+
if (showSyncProviderInfo) {
|
|
337
|
+
const connectedLocalCount = localResults.filter(result => result.status === 'fulfilled').length;
|
|
338
|
+
console.info(`[Kritzel] Workspace local providers connected: ${connectedLocalCount}/${localProviders.length}`);
|
|
339
|
+
}
|
|
331
340
|
localResults.forEach((result, i) => {
|
|
332
|
-
if (result.status === 'rejected') {
|
|
341
|
+
if (showSyncProviderInfo && result.status === 'rejected') {
|
|
333
342
|
console.error(`[Kritzel] Sync provider "${localProviders[i]?.constructor.name}" failed to connect:`, result.reason);
|
|
334
343
|
}
|
|
335
344
|
});
|
|
336
345
|
// Connect network providers in the background (remote data arrives via Yjs observers)
|
|
346
|
+
if (showSyncProviderInfo && networkProviders.length > 0) {
|
|
347
|
+
console.info(`[Kritzel] Workspace network providers connecting in background: ${networkProviders.length}`);
|
|
348
|
+
}
|
|
337
349
|
for (const provider of networkProviders) {
|
|
338
350
|
provider.connect().catch(err => {
|
|
339
|
-
|
|
351
|
+
if (showSyncProviderInfo) {
|
|
352
|
+
console.error(`[Kritzel] Network sync provider "${provider.constructor.name}" failed to connect:`, err);
|
|
353
|
+
}
|
|
340
354
|
});
|
|
341
355
|
}
|
|
342
356
|
this._isReady = true;
|
|
@@ -370,8 +370,18 @@ export class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
370
370
|
this._core.removeSelectionGroup();
|
|
371
371
|
this._core.rerender();
|
|
372
372
|
}
|
|
373
|
-
if (selectedObject && selectedObject.isSelected === false && selectedObject?.objects.length === 1
|
|
374
|
-
|
|
373
|
+
if (selectedObject && selectedObject.isSelected === false && selectedObject?.objects.length === 1) {
|
|
374
|
+
const firstObj = selectedObject.objects[0];
|
|
375
|
+
if (KritzelClassHelper.isInstanceOf(firstObj, 'KritzelCustomElement')) {
|
|
376
|
+
// Selected single custom elements hand pointer interaction to their
|
|
377
|
+
// embedded DOM content. Unselected custom elements remain selectable.
|
|
378
|
+
if (firstObj.isSelected && this._core.store.selectionGroup?.objects.length === 1)
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
else if (firstObj.isInteractive) {
|
|
382
|
+
// Preserve existing behavior for text/shape edit mode
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
375
385
|
}
|
|
376
386
|
}
|
|
377
387
|
this.lineHandleHandler.handlePointerDown(event);
|
|
@@ -383,6 +393,14 @@ export class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
383
393
|
}
|
|
384
394
|
if (event.pointerType === 'touch' || event.pointerType === 'pen') {
|
|
385
395
|
if (this._core.store.state.isScaling === true) {
|
|
396
|
+
const activePointerCount = this._core.store.state.pointers.size;
|
|
397
|
+
// During a real pinch (two active pointers), keep touch handling suspended.
|
|
398
|
+
// If only one pointer is active, scaling is stale (debounce window after pinch),
|
|
399
|
+
// so resume normal touch selection behavior immediately.
|
|
400
|
+
if (activePointerCount === 1) {
|
|
401
|
+
this._core.store.state.isScaling = false;
|
|
402
|
+
this._savedSelectionGroupForPinch = null;
|
|
403
|
+
}
|
|
386
404
|
// A second finger has arrived to start a pinch-zoom gesture. If we
|
|
387
405
|
// cleared a selection group on the first finger-down, restore it now
|
|
388
406
|
// so the user's selection is preserved while zooming.
|
|
@@ -391,7 +409,10 @@ export class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
391
409
|
this._savedSelectionGroupForPinch = null;
|
|
392
410
|
this._core.rerender();
|
|
393
411
|
}
|
|
394
|
-
|
|
412
|
+
if (this._core.store.state.isScaling === true) {
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
// Continue with normal touch handling when scaling was stale.
|
|
395
416
|
}
|
|
396
417
|
if (this._core.store.state.pointers.size === 1) {
|
|
397
418
|
this._core.store.state.isResizeHandleSelected = this.isHandleSelected(event);
|
|
@@ -423,7 +444,10 @@ export class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
423
444
|
this.rotationHandler.handlePointerDown(event);
|
|
424
445
|
this.resizeHandler.handlePointerDown(event);
|
|
425
446
|
this.moveHandler.handlePointerDown(event);
|
|
426
|
-
|
|
447
|
+
// Only process selection handler if we are not scaling (2 pointers)
|
|
448
|
+
if (this._core.store.state.pointers.size === 1) {
|
|
449
|
+
this.selectionHandler.handlePointerDown(event);
|
|
450
|
+
}
|
|
427
451
|
this._core.rerender();
|
|
428
452
|
}
|
|
429
453
|
}
|
|
@@ -497,7 +521,7 @@ export class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
497
521
|
* @returns A KritzelSelectionGroup containing the object, or null if no object at that location
|
|
498
522
|
*/
|
|
499
523
|
getSelectedObject(event) {
|
|
500
|
-
const path = event.composedPath()
|
|
524
|
+
const path = event.composedPath();
|
|
501
525
|
const objectElement = path.find(element => element.classList && element.classList.contains('object'));
|
|
502
526
|
const object = objectElement?.id ? this._core.findObjectById(objectElement.id) : null;
|
|
503
527
|
if (!object) {
|
|
@@ -507,6 +531,10 @@ export class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
507
531
|
if (!object.hitTest(x, y)) {
|
|
508
532
|
return null;
|
|
509
533
|
}
|
|
534
|
+
const currentSelectionGroup = this._core.store.selectionGroup;
|
|
535
|
+
if (currentSelectionGroup?.objects.some(selectedObject => selectedObject.id === object.id)) {
|
|
536
|
+
return currentSelectionGroup;
|
|
537
|
+
}
|
|
510
538
|
if (object instanceof KritzelSelectionGroup) {
|
|
511
539
|
return object;
|
|
512
540
|
}
|
|
@@ -514,7 +542,7 @@ export class KritzelSelectionTool extends KritzelBaseTool {
|
|
|
514
542
|
const group = KritzelSelectionGroup.create(this._core);
|
|
515
543
|
group.translateX = 0;
|
|
516
544
|
group.translateY = 0;
|
|
517
|
-
group.
|
|
545
|
+
group.objectIds = [object.id];
|
|
518
546
|
return group;
|
|
519
547
|
}
|
|
520
548
|
}
|
|
@@ -38,6 +38,7 @@ export class KritzelEditor {
|
|
|
38
38
|
showObjectInfo: false,
|
|
39
39
|
showSyncProviderInfo: true,
|
|
40
40
|
showMigrationInfo: true,
|
|
41
|
+
showAssetResolverInfo: false,
|
|
41
42
|
};
|
|
42
43
|
user;
|
|
43
44
|
activeUsers;
|
|
@@ -949,31 +950,31 @@ export class KritzelEditor {
|
|
|
949
950
|
const isLoggedIn = this.isLoggedIn;
|
|
950
951
|
const shouldShowCurrentUser = isLoggedIn;
|
|
951
952
|
const shouldShowLoginButton = this.isReady && !!this.loginConfig && !isLoggedIn;
|
|
952
|
-
return (h(Host, { key: '
|
|
953
|
+
return (h(Host, { key: '56b172459e6d940229dc1d4f409157e403ad5f27', style: {
|
|
953
954
|
opacity: this.isEditorVisible ? '1' : '0',
|
|
954
955
|
visibility: this.isEditorVisible ? 'visible' : 'hidden',
|
|
955
956
|
transition: 'opacity 0.2s ease-in-out, visibility 0.2s ease-in-out',
|
|
956
|
-
} }, h("div", { key: '
|
|
957
|
+
} }, h("div", { key: '93a2195c14402f38416b2d377c684e2650418edb', class: "top-left-buttons" }, h("kritzel-workspace-manager", { key: '1b42b21bc35e1fc56202e19a78053e46d87ca51a', visible: this.isWorkspaceManagerVisible, workspaces: this.workspaces, activeWorkspace: this.activeWorkspace, terms: this.resolvedTerms, onWorkspaceChange: event => (this.activeWorkspace = event.detail), onIsWorkspaceManagerReady: () => (this.isWorkspaceManagerReady = true) }), h("kritzel-back-to-content", { key: '3b90b69a5b83a6e5593d4f752c4094a2a3af8c4d', visible: this.isBackToContentButtonVisible, text: this.resolvedTerms['backToContent.label'] ?? 'Back to content', onBackToContent: () => this.backToContent() })), this.activeNotification && (h("div", { key: '9c2ee1e10212145bf2f97a1a7f27746aa18cfc98', class: "top-center-notification-layer", role: "presentation" }, h("div", { key: 'a77b025329da64e1f1223a2f749aa2fc60e5c469', class: { 'top-center-notification-container': true, 'is-dismissing': this.isNotificationDismissing }, role: "presentation" }, h("kritzel-notification-card", { key: '9ced0bc5213ec8c3387915cd71272a1f56161405', notification: this.activeNotification, locale: this.locale, onDismiss: this.dismissNotification, onHoverChange: event => this.handleNotificationHoverChange(event) })))), h("kritzel-engine", { key: '884b7f088e164a51c49158c409904ca5419f2d55', ref: el => {
|
|
957
958
|
if (el) {
|
|
958
959
|
this.engineRef = el;
|
|
959
960
|
}
|
|
960
|
-
}, workspace: this.activeWorkspace, activeWorkspaceId: this.activeWorkspaceId, editorId: this.editorId, syncConfig: this.syncConfig, assetStorageConfig: this.assetStorageConfig, user: this.user, scaleMax: this.scaleMax, lockDrawingScale: this.lockDrawingScale, isObjectDistanceFadingActive: this.isObjectDistanceFadingActive, scaleMin: this.scaleMin, cursorTarget: this.cursorTarget, isLoading: this.isLoading, viewportBoundaryLeft: this.viewportBoundaryLeft, viewportBoundaryRight: this.viewportBoundaryRight, viewportBoundaryTop: this.viewportBoundaryTop, viewportBoundaryBottom: this.viewportBoundaryBottom, isPanningEnabled: this.isPanningEnabled, isZoomingEnabled: this.isZoomingEnabled, theme: this.theme, themes: this.themes, licenseKey: this.licenseKey, locale: this.locale, locales: this.locales, fallbackLocale: this.fallbackLocale, debugInfo: this.debugInfo, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onActiveWorkspaceChange: event => this.handleActiveWorkspaceChange(event), onObjectsChange: event => this.handleObjectsChange(event), onObjectsAdded: event => this.handleObjectsAdded(event), onObjectsRemoved: event => this.handleObjectsRemoved(event), onObjectsUpdated: event => this.handleObjectsUpdated(event), onUndoStateChange: event => this.handleUndoStateChange(event), onObjectsInViewportChange: event => this.handleObjectsInViewportChange(event), onViewportChange: event => this.handleViewportChange(event), onAwarenessChange: event => this.handleAwarenessChange(event), onNotificationsChange: event => this.handleNotificationsChange(event) }), h("kritzel-controls", { key: '
|
|
961
|
+
}, workspace: this.activeWorkspace, activeWorkspaceId: this.activeWorkspaceId, editorId: this.editorId, syncConfig: this.syncConfig, assetStorageConfig: this.assetStorageConfig, user: this.user, scaleMax: this.scaleMax, lockDrawingScale: this.lockDrawingScale, isObjectDistanceFadingActive: this.isObjectDistanceFadingActive, scaleMin: this.scaleMin, cursorTarget: this.cursorTarget, isLoading: this.isLoading, viewportBoundaryLeft: this.viewportBoundaryLeft, viewportBoundaryRight: this.viewportBoundaryRight, viewportBoundaryTop: this.viewportBoundaryTop, viewportBoundaryBottom: this.viewportBoundaryBottom, isPanningEnabled: this.isPanningEnabled, isZoomingEnabled: this.isZoomingEnabled, theme: this.theme, themes: this.themes, licenseKey: this.licenseKey, locale: this.locale, locales: this.locales, fallbackLocale: this.fallbackLocale, debugInfo: this.debugInfo, globalContextMenuItems: this.globalContextMenuItems, objectContextMenuItems: this.objectContextMenuItems, onIsEngineReady: event => this.onEngineReady(event), onWorkspacesChange: event => this.handleWorkspacesChange(event), onActiveWorkspaceChange: event => this.handleActiveWorkspaceChange(event), onObjectsChange: event => this.handleObjectsChange(event), onObjectsAdded: event => this.handleObjectsAdded(event), onObjectsRemoved: event => this.handleObjectsRemoved(event), onObjectsUpdated: event => this.handleObjectsUpdated(event), onUndoStateChange: event => this.handleUndoStateChange(event), onObjectsInViewportChange: event => this.handleObjectsInViewportChange(event), onViewportChange: event => this.handleViewportChange(event), onAwarenessChange: event => this.handleAwarenessChange(event), onNotificationsChange: event => this.handleNotificationsChange(event) }), h("kritzel-controls", { key: '3a7c22f037d551636c53190eb07b318c2b857162', visible: this.isControlsVisible, class: { 'keyboard-open': this.isVirtualKeyboardOpen }, ref: el => {
|
|
961
962
|
if (el) {
|
|
962
963
|
this.controlsRef = el;
|
|
963
964
|
}
|
|
964
|
-
}, controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState ?? undefined, theme: this.theme, terms: this.resolvedTerms, onIsControlsReady: () => (this.isControlsReady = true) }), h("div", { key: '
|
|
965
|
+
}, controls: this.controls, isUtilityPanelVisible: this.isUtilityPanelVisible, undoState: this.undoState ?? undefined, theme: this.theme, terms: this.resolvedTerms, onIsControlsReady: () => (this.isControlsReady = true) }), h("div", { key: 'c0dad9086679397c46f5550c38686a9b7d8bae6c', class: "bottom-left-buttons" }, h("kritzel-zoom-panel", { key: '1639d6d2092ecd3fbc657dfdcfc3f12c02539329', visible: this.isZoomPanelVisible, disabled: !this.isZoomingEnabled, zoomPercent: this.currentZoomPercent, terms: this.resolvedTerms, onZoomIn: () => this.zoomIn(), onZoomOut: () => this.zoomOut() })), h("div", { key: '45313b28a5e4bd75d09980e4765c2241d54fe1df', class: "top-right-buttons" }, h("kritzel-settings", { key: '33737a005cd6580505ee741be0dc40bd69873276', ref: el => {
|
|
965
966
|
if (el) {
|
|
966
967
|
this.settingsRef = el;
|
|
967
968
|
}
|
|
968
|
-
}, shortcuts: this.shortcuts, availableThemes: this.themes && this.themes.length > 0 ? this.themes.map(t => t.name) : ['light', 'dark'], availableLocales: this.availableLocaleOptions, settings: this.currentSettingsConfig, terms: this.resolvedTerms, onSettingsChange: event => this.handleSettingsChange(event) }), h("kritzel-export", { key: '
|
|
969
|
+
}, shortcuts: this.shortcuts, availableThemes: this.themes && this.themes.length > 0 ? this.themes.map(t => t.name) : ['light', 'dark'], availableLocales: this.availableLocaleOptions, settings: this.currentSettingsConfig, terms: this.resolvedTerms, onSettingsChange: event => this.handleSettingsChange(event) }), h("kritzel-export", { key: '9e13001850b15b9ce9d8a502466ed9fa05ac1518', ref: el => {
|
|
969
970
|
if (el) {
|
|
970
971
|
this.exportRef = el;
|
|
971
972
|
}
|
|
972
|
-
}, workspaceName: this.activeWorkspace?.name || 'workspace', terms: this.resolvedTerms, onExportPng: () => this.engineRef.exportViewportAsPng(), onExportSvg: () => this.engineRef.exportViewportAsSvg(), onExportJson: event => this.engineRef.downloadAsJson(event.detail) }), h("kritzel-active-users", { key: '
|
|
973
|
+
}, workspaceName: this.activeWorkspace?.name || 'workspace', terms: this.resolvedTerms, onExportPng: () => this.engineRef.exportViewportAsPng(), onExportSvg: () => this.engineRef.exportViewportAsSvg(), onExportJson: event => this.engineRef.downloadAsJson(event.detail) }), h("kritzel-active-users", { key: 'f2494af1241ecc068ace09b23cfd405c76bd1273', users: this.activeUsers }), shouldShowCurrentUser && h("kritzel-current-user", { key: '7f199e3493805977b5e5b8d2c736f31729919f96', user: this.user, terms: this.resolvedTerms }), shouldShowLoginButton && (h("kritzel-button", { key: 'c6c192ddb1245acc771ac550c1fe3e4f9bc08eab', onButtonClick: () => this.loginDialogRef?.open() }, this.resolvedTerms['login.dialogTitle'] ?? 'Sign in')), h("kritzel-more-menu", { key: '869194078a4c90d42c5ebd604bc58b4f55fc4cb6', items: this.moreMenuItems, visible: this.isMoreMenuVisible, terms: this.resolvedTerms }), h("kritzel-share-dialog", { key: '8daed8fd7267aca056b6a53626c721e2f23cead4', ref: el => {
|
|
973
974
|
if (el) {
|
|
974
975
|
this.shareDialogRef = el;
|
|
975
976
|
}
|
|
976
|
-
}, isPublic: this.currentIsPublic, workspaceId: this.activeWorkspace?.id, terms: this.resolvedTerms, onToggleIsPublic: this.handleToggleIsPublic }), this.loginConfig && (h("kritzel-login-dialog", { key: '
|
|
977
|
+
}, isPublic: this.currentIsPublic, workspaceId: this.activeWorkspace?.id, terms: this.resolvedTerms, onToggleIsPublic: this.handleToggleIsPublic }), this.loginConfig && (h("kritzel-login-dialog", { key: 'b65ea0940cee31b152b60881180fab2445c92b0c', ref: el => {
|
|
977
978
|
if (el) {
|
|
978
979
|
this.loginDialogRef = el;
|
|
979
980
|
}
|
|
@@ -1155,7 +1156,7 @@ export class KritzelEditor {
|
|
|
1155
1156
|
},
|
|
1156
1157
|
"getter": false,
|
|
1157
1158
|
"setter": false,
|
|
1158
|
-
"defaultValue": "{\n showViewportInfo: false,\n showObjectInfo: false,\n showSyncProviderInfo: true,\n showMigrationInfo: true,\n }"
|
|
1159
|
+
"defaultValue": "{\n showViewportInfo: false,\n showObjectInfo: false,\n showSyncProviderInfo: true,\n showMigrationInfo: true,\n showAssetResolverInfo: false,\n }"
|
|
1159
1160
|
},
|
|
1160
1161
|
"user": {
|
|
1161
1162
|
"type": "unknown",
|