kritzel-stencil 0.2.0 → 0.2.2
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 +1 -1
- package/dist/cjs/kritzel-active-users_42.cjs.entry.js +177 -52
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/cjs/{workspace.migrations-CPncKohl.js → workspace.migrations-BPwtowiJ.js} +208 -24
- package/dist/collection/classes/core/core.class.js +27 -19
- package/dist/collection/classes/core/viewport.class.js +3 -0
- package/dist/collection/classes/handlers/key.handler.js +73 -6
- package/dist/collection/classes/handlers/selection.handler.js +36 -2
- package/dist/collection/classes/objects/group.class.js +69 -12
- package/dist/collection/classes/objects/shape.class.js +24 -0
- package/dist/collection/classes/objects/text.class.js +23 -0
- package/dist/collection/classes/tools/text-tool.class.js +46 -10
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +28 -7
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +64 -18
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +23 -1
- package/dist/collection/constants/version.js +1 -1
- package/dist/collection/themes/dark-theme.js +5 -0
- package/dist/collection/themes/light-theme.js +5 -0
- package/dist/components/index.js +1 -1
- package/dist/components/kritzel-awareness-cursors.js +1 -1
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-color.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +1 -1
- package/dist/components/kritzel-engine.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-split-button.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-tool-config.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-CFzvz-B2.js → p-0YBCp8Wh.js} +1 -1
- package/dist/components/{p-DkT0CXfN.js → p-574MVXxi.js} +1 -1
- package/dist/components/p-BCzbwL4m.js +1 -0
- package/dist/components/p-BLjdzUzs.js +1 -0
- package/dist/components/{p-BFQVg_eQ.js → p-BSEdLfq2.js} +1 -1
- package/dist/components/{p-C3Dwuqka.js → p-BWrxz4mM.js} +1 -1
- package/dist/components/{p-ChqeIKg_.js → p-BYOIzv_f.js} +1 -1
- package/dist/components/{p-CekG3_ce.js → p-Bfa-Amjn.js} +1 -1
- package/dist/components/{p-9ASFIqd0.js → p-BmcAX-1k.js} +1 -1
- package/dist/components/{p-CzIuqMQA.js → p-BtJB7FsW.js} +1 -1
- package/dist/components/{p-C_yfHS4F.js → p-C6Td7I4k.js} +1 -1
- package/dist/components/{p-ChQNi67Z.js → p-D9ifYAtg.js} +1 -1
- package/dist/components/{p-B_rHzy0t.js → p-DE2xDwUM.js} +1 -1
- package/dist/components/{p-CaDBSaxZ.js → p-DFeyobdy.js} +2 -2
- package/dist/components/{p-BHSRRiEg.js → p-DfB7uJ0N.js} +1 -1
- package/dist/components/{p-B2kHVHa_.js → p-u-827ZX7.js} +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-active-users_42.entry.js +177 -52
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/esm/{workspace.migrations-ytjzXm9B.js → workspace.migrations-C_uxbvuH.js} +208 -24
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-4d28c496.entry.js +9 -0
- package/dist/stencil/p-C_uxbvuH.js +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/handlers/selection.handler.d.ts +15 -0
- package/dist/types/classes/objects/group.class.d.ts +15 -0
- package/dist/types/classes/objects/shape.class.d.ts +10 -0
- package/dist/types/classes/objects/text.class.d.ts +9 -0
- package/dist/types/classes/tools/text-tool.class.d.ts +26 -8
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +1 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -0
- package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +1 -0
- package/dist/types/components.d.ts +7 -2
- package/dist/types/constants/version.d.ts +1 -1
- package/dist/types/interfaces/theme.interface.d.ts +12 -4
- package/package.json +1 -1
- package/dist/components/p-BYX50YSd.js +0 -1
- package/dist/components/p-CjazGGq3.js +0 -1
- package/dist/stencil/p-19e04f32.entry.js +0 -9
- package/dist/stencil/p-ytjzXm9B.js +0 -1
package/dist/esm/loader.js
CHANGED
|
@@ -5,7 +5,7 @@ import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await globalScripts();
|
|
8
|
-
return bootstrapLazy(JSON.parse("[[\"kritzel-active-users_42\",[[512,\"kritzel-editor\",{\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"lockDrawingScale\":[1028,\"lock-drawing-scale\"],\"viewportBoundaryLeft\":[1026,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[1026,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[1026,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[1026,\"viewport-boundary-bottom\"],\"wheelEnabled\":[1028,\"wheel-enabled\"],\"debugInfo\":[1040],\"user\":[16],\"activeUsers\":[16],\"controls\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"customSvgIcons\":[16],\"isControlsVisible\":[4,\"is-controls-visible\"],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"isWorkspaceManagerVisible\":[4,\"is-workspace-manager-visible\"],\"isMoreMenuVisible\":[4,\"is-more-menu-visible\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"cursorTarget\":[16],\"loginConfig\":[16],\"isLoading\":[4,\"is-loading\"],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"isEngineReady\":[32],\"isControlsReady\":[32],\"isWorkspaceManagerReady\":[32],\"workspaces\":[32],\"activeWorkspace\":[32],\"isVirtualKeyboardOpen\":[32],\"undoState\":[32],\"isBackToContentButtonVisible\":[32],\"currentTheme\":[32],\"shortcuts\":[32],\"currentIsPublic\":[32],\"getObjectById\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"copy\":[64],\"paste\":[64],\"delete\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"loadObjectsFromJson\":[64],\"getObjectsTotalCount\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"hideContextMenu\":[64],\"triggerSelectionChange\":[64],\"getDisplayableShortcuts\":[64],\"openLoginDialog\":[64],\"setLoginLoading\":[64]},[[0,\"dblclick\",\"onTouchStart\"]],{\"isEngineReady\":[{\"onIsEngineReady\":0}],\"isControlsReady\":[{\"onIsControlsReady\":0}],\"workspaces\":[{\"onWorkspacesChange\":0}],\"activeWorkspace\":[{\"onActiveWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"currentTheme\":[{\"onCurrentThemeChange\":0}]}],[513,\"kritzel-controls\",{\"controls\":[16],\"activeControl\":[1040],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"undoState\":[16],\"theme\":[1],\"firstConfig\":[32],\"isTouchDevice\":[32],\"selectedSubOptions\":[32],\"canScrollLeft\":[32],\"canScrollRight\":[32],\"needsScrolling\":[32],\"displayValues\":[32],\"closeTooltip\":[64]},[[8,\"keydown\",\"handleKeyDown\"],[4,\"activeToolChange\",\"handleActiveToolChange\"],[4,\"objectsSelectionChange\",\"handleSelectionChange\"]],{\"theme\":[{\"onThemeChange\":0}]}],[513,\"kritzel-export\",{\"workspaceName\":[1,\"workspace-name\"],\"isDialogOpen\":[32],\"previewUrl\":[32],\"isLoading\":[32],\"activeTab\":[32],\"exportFilename\":[32],\"viewportExportFormat\":[32],\"open\":[64]}],[513,\"kritzel-settings\",{\"shortcuts\":[16],\"editorId\":[1,\"editor-id\"],\"isDialogOpen\":[32],\"selectedCategoryId\":[32],\"scaleMin\":[32],\"scaleMax\":[32],\"lockDrawingScale\":[32],\"currentTheme\":[32],\"viewportBoundaryLeft\":[32],\"viewportBoundaryRight\":[32],\"viewportBoundaryTop\":[32],\"viewportBoundaryBottom\":[32],\"debugInfo\":[32],\"open\":[64]}],[513,\"kritzel-workspace-manager\",{\"visible\":[4],\"activeWorkspace\":[1040],\"workspaces\":[16],\"childMenuAnchor\":[32],\"openChildMenuItem\":[32],\"newWorkspace\":[32],\"editingItemId\":[32]},[[8,\"wheel\",\"handleWheel\"]]],[513,\"kritzel-engine\",{\"workspace\":[16],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"user\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"cursorTarget\":[16],\"lockDrawingScale\":[4,\"lock-drawing-scale\"],\"theme\":[1],\"viewportBoundaryLeft\":[2,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[2,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[2,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[2,\"viewport-boundary-bottom\"],\"debugInfo\":[16],\"wheelEnabled\":[4,\"wheel-enabled\"],\"isLoading\":[4,\"is-loading\"],\"forceUpdate\":[32],\"triggerSelectionChange\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"delete\":[64],\"copy\":[64],\"paste\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"hideContextMenu\":[64],\"getObjectById\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsTotalCount\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"getDisplayableShortcuts\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectsAsSvgString\":[64],\"exportSelectedObjectsAsSvg\":[64],\"getSelectedObjectsAsPngDataUrl\":[64],\"exportSelectedObjectsAsPng\":[64],\"exportAsJson\":[64],\"importFromJson\":[64],\"loadObjectsFromJson\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"getIsPublic\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64]},[[1,\"wheel\",\"handleWheel\"],[0,\"pointerdown\",\"handlePointerDown\"],[0,\"pointermove\",\"handlePointerMove\"],[0,\"pointerup\",\"handlePointerUp\"],[0,\"pointercancel\",\"handlePointerCancel\"],[1,\"pointerleave\",\"handlePointerLeave\"],[1,\"longpress\",\"handleLongPress\"],[0,\"contextmenu\",\"handleContextMenu\"],[9,\"resize\",\"handleResize\"],[8,\"keydown\",\"handleKeyDown\"],[8,\"keyup\",\"handleKeyUp\"],[4,\"dblclick\",\"preventDoubleTapZoomOnTouchDevices\"]],{\"workspace\":[{\"onWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"assetStorageConfig\":[{\"onAssetStorageConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"scaleMax\":[{\"validateScaleMax\":0}],\"scaleMin\":[{\"validateScaleMin\":0}],\"cursorTarget\":[{\"onCursorTargetChange\":0}],\"lockDrawingScale\":[{\"onLockDrawingScaleChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"viewportBoundaryLeft\":[{\"onViewportBoundaryLeftChange\":0}],\"viewportBoundaryRight\":[{\"onViewportBoundaryRightChange\":0}],\"viewportBoundaryTop\":[{\"onViewportBoundaryTopChange\":0}],\"viewportBoundaryBottom\":[{\"onViewportBoundaryBottomChange\":0}],\"debugInfo\":[{\"onDebugInfoChange\":0}],\"isLoading\":[{\"onIsLoadingChange\":0}]}],[513,\"kritzel-more-menu\",{\"visible\":[4],\"items\":[16],\"icon\":[1],\"iconSize\":[2,\"icon-size\"],\"offsetY\":[2,\"offset-y\"],\"menuAnchor\":[32],\"isTouchDevice\":[32]}],[513,\"kritzel-current-user\",{\"user\":[16],\"avatarSize\":[2,\"avatar-size\"]}],[513,\"kritzel-share-dialog\",{\"isPublic\":[4,\"is-public\"],\"workspaceId\":[1,\"workspace-id\"],\"isDialogOpen\":[32],\"internalIsPublic\":[32],\"copySuccess\":[32],\"open\":[64],\"close\":[64]},null,{\"isPublic\":[{\"onIsPublicChange\":0}]}],[513,\"kritzel-login-dialog\",{\"providers\":[16],\"dialogTitle\":[1,\"dialog-title\"],\"subtitle\":[1],\"isDialogOpen\":[32],\"loadingProvider\":[32],\"open\":[64],\"close\":[64],\"setLoading\":[64]}],[513,\"kritzel-active-users\",{\"users\":[16],\"avatarSize\":[2,\"avatar-size\"],\"maxVisible\":[2,\"max-visible\"],\"overlap\":[2]}],[513,\"kritzel-back-to-content\",{\"visible\":[4],\"text\":[1]}],[769,\"kritzel-button\",{\"variant\":[1],\"disabled\":[4],\"type\":[1]}],[513,\"kritzel-tool-config\",{\"tool\":[1040],\"isExpanded\":[1028,\"is-expanded\"],\"theme\":[1],\"config\":[32],\"palette\":[32],\"currentOpacity\":[32],\"updateTrigger\":[32]},[[4,\"objectsSelectionChange\",\"handleSelectionChange\"]],{\"tool\":[{\"handleToolChange\":0}],\"theme\":[{\"onThemeChange\":0}]}],[513,\"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]}],[513,\"kritzel-current-user-dialog\",{\"user\":[16],\"isDialogOpen\":[32],\"open\":[64],\"close\":[64]}],[513,\"kritzel-context-menu\",{\"items\":[16],\"objects\":[16],\"processedItems\":[32],\"openSubmenuIndex\":[32],\"submenuPosition\":[32]},[[9,\"pointerdown\",\"handleOutsideClick\"]],{\"items\":[{\"onItemsChanged\":0}]}],[769,\"kritzel-master-detail\",{\"items\":[16],\"selectedItemId\":[1,\"selected-item-id\"],\"focusedIndex\":[32],\"showMobileDetail\":[32]},null,{\"selectedItemId\":[{\"watchSelectedItemId\":0}]}],[513,\"kritzel-pill-tabs\",{\"tabs\":[16],\"value\":[1025]}],[513,\"kritzel-utility-panel\",{\"undoState\":[16]}],[513,\"kritzel-awareness-cursors\",{\"core\":[16],\"showEdgeIndicators\":[4,\"show-edge-indicators\"],\"edgeIndicatorPadding\":[2,\"edge-indicator-padding\"],\"remoteCursors\":[32],\"objectVersion\":[32]}],[513,\"kritzel-cursor-trail\",{\"core\":[16],\"cursorTrailPoints\":[32],\"isLeftButtonDown\":[32]},[[9,\"pointerdown\",\"handleMouseDown\"],[9,\"pointermove\",\"handlePointerMove\"],[9,\"pointerup\",\"handlePointerUp\"]]],[513,\"kritzel-input\",{\"value\":[1025],\"label\":[1],\"placeholder\":[1],\"suffix\":[1],\"type\":[1],\"disabled\":[4],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[513,\"kritzel-numeric-input\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"label\":[1],\"placeholder\":[1],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[769,\"kritzel-tooltip\",{\"isVisible\":[1028,\"is-visible\"],\"anchorElement\":[16],\"triggerElement\":[16],\"offsetY\":[2,\"offset-y\"],\"positionX\":[32],\"positionY\":[32],\"open\":[64],\"close\":[64],\"toggle\":[64],\"focusContent\":[64]},[[4,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[4,\"kritzelTooltipCloseAll\",\"handleCloseAll\"],[9,\"resize\",\"handleWindowResize\"]],{\"triggerElement\":[{\"handleTriggerElementChange\":0}],\"isVisible\":[{\"handleVisibilityChange\":0}]}],[513,\"kritzel-color-palette\",{\"colors\":[16],\"selectedColor\":[1040],\"isExpanded\":[4,\"is-expanded\"],\"isOpaque\":[4,\"is-opaque\"],\"opacity\":[2],\"theme\":[1]}],[513,\"kritzel-font-family\",{\"fontOptions\":[16],\"selectedFontFamily\":[1025,\"selected-font-family\"]}],[513,\"kritzel-font-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"],\"fontFamily\":[1,\"font-family\"]}],[513,\"kritzel-stroke-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"]}],[513,\"kritzel-line-endings\",{\"styles\":[16],\"value\":[1040]}],[513,\"kritzel-opacity-slider\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"previewColor\":[1,\"preview-color\"]}],[513,\"kritzel-shape-fill\",{\"value\":[1025]}],[513,\"kritzel-slide-toggle\",{\"checked\":[1028],\"disabled\":[4],\"label\":[1]}],[513,\"kritzel-avatar\",{\"user\":[16],\"name\":[1],\"size\":[2],\"color\":[1],\"imageError\":[32]},null,{\"user\":[{\"userChanged\":0}],\"profileImageUrl\":[{\"profileImageUrlChanged\":0}]}],[513,\"kritzel-font\",{\"fontFamily\":[1,\"font-family\"],\"size\":[2],\"color\":[1]}],[513,\"kritzel-color\",{\"value\":[1],\"theme\":[1],\"size\":[2]}],[513,\"kritzel-menu\",{\"items\":[16],\"parent\":[16],\"selectedIndex\":[32],\"setScrollTop\":[64],\"setFocus\":[64]}],[513,\"kritzel-menu-item\",{\"item\":[16],\"parent\":[16],\"isDirty\":[32]},null,{\"item\":[{\"onItemChange\":0}]}],[769,\"kritzel-dropdown\",{\"options\":[16],\"value\":[1],\"width\":[1],\"selectStyles\":[16],\"forceOpenDirection\":[1,\"force-open-direction\"],\"internalValue\":[32],\"hasSuffixContent\":[32],\"hasPrefixContent\":[32],\"isOpen\":[32],\"focusedIndex\":[32],\"openDirection\":[32]},[[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleDocumentKeydown\"]],{\"options\":[{\"optionsChanged\":0}],\"value\":[{\"externalValueChanged\":0}]}],[769,\"kritzel-portal\",{\"anchor\":[16],\"offsetX\":[2,\"offset-x\"],\"offsetY\":[2,\"offset-y\"],\"autoFocus\":[4,\"auto-focus\"]},[[8,\"kritzel-dismiss-menus\",\"handleDismissMenus\"],[8,\"click\",\"handleOutsideClick\"],[8,\"keydown\",\"handleKeyDown\"],[11,\"resize\",\"handleResize\"],[11,\"scroll\",\"handleWindowScroll\"]],{\"anchor\":[{\"anchorChanged\":0}]}],[769,\"kritzel-dialog\",{\"isOpen\":[516,\"is-open\"],\"dialogTitle\":[1,\"dialog-title\"],\"closable\":[4],\"closeOnBackdrop\":[4,\"close-on-backdrop\"],\"closeOnEscape\":[4,\"close-on-escape\"],\"autoFocus\":[4,\"auto-focus\"],\"trapFocus\":[4,\"trap-focus\"],\"size\":[1],\"fullscreenOnMobile\":[4,\"fullscreen-on-mobile\"],\"isAnimating\":[32],\"mobileLockedHeight\":[32],\"open\":[64],\"close\":[64],\"focusFirstElement\":[64]},[[8,\"keydown\",\"handleKeyDown\"]],{\"isOpen\":[{\"handleIsOpenChange\":0}]}],[513,\"kritzel-icon\",{\"name\":[1],\"label\":[1],\"size\":[2]}]]],[\"kritzel-brush-style\",[[513,\"kritzel-brush-style\",{\"type\":[1],\"brushOptions\":[16]}]]]]"), options);
|
|
8
|
+
return bootstrapLazy(JSON.parse("[[\"kritzel-active-users_42\",[[512,\"kritzel-editor\",{\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"lockDrawingScale\":[1028,\"lock-drawing-scale\"],\"viewportBoundaryLeft\":[1026,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[1026,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[1026,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[1026,\"viewport-boundary-bottom\"],\"wheelEnabled\":[1028,\"wheel-enabled\"],\"debugInfo\":[1040],\"user\":[16],\"activeUsers\":[16],\"controls\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"customSvgIcons\":[16],\"isControlsVisible\":[4,\"is-controls-visible\"],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"isWorkspaceManagerVisible\":[4,\"is-workspace-manager-visible\"],\"isMoreMenuVisible\":[4,\"is-more-menu-visible\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"cursorTarget\":[16],\"loginConfig\":[16],\"isLoading\":[4,\"is-loading\"],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"isEngineReady\":[32],\"isControlsReady\":[32],\"isWorkspaceManagerReady\":[32],\"workspaces\":[32],\"activeWorkspace\":[32],\"isVirtualKeyboardOpen\":[32],\"undoState\":[32],\"isBackToContentButtonVisible\":[32],\"currentTheme\":[32],\"shortcuts\":[32],\"currentIsPublic\":[32],\"getObjectById\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"delete\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"loadObjectsFromJson\":[64],\"getObjectsTotalCount\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"hideContextMenu\":[64],\"triggerSelectionChange\":[64],\"getDisplayableShortcuts\":[64],\"openLoginDialog\":[64],\"setLoginLoading\":[64]},[[0,\"dblclick\",\"onTouchStart\"]],{\"isEngineReady\":[{\"onIsEngineReady\":0}],\"isControlsReady\":[{\"onIsControlsReady\":0}],\"workspaces\":[{\"onWorkspacesChange\":0}],\"activeWorkspace\":[{\"onActiveWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"currentTheme\":[{\"onCurrentThemeChange\":0}]}],[513,\"kritzel-controls\",{\"controls\":[16],\"activeControl\":[1040],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"undoState\":[16],\"theme\":[1],\"firstConfig\":[32],\"isTouchDevice\":[32],\"selectedSubOptions\":[32],\"canScrollLeft\":[32],\"canScrollRight\":[32],\"needsScrolling\":[32],\"displayValues\":[32],\"closeTooltip\":[64]},[[8,\"keydown\",\"handleKeyDown\"],[4,\"activeToolChange\",\"handleActiveToolChange\"],[4,\"objectsSelectionChange\",\"handleSelectionChange\"]],{\"theme\":[{\"onThemeChange\":0}]}],[513,\"kritzel-export\",{\"workspaceName\":[1,\"workspace-name\"],\"isDialogOpen\":[32],\"previewUrl\":[32],\"isLoading\":[32],\"activeTab\":[32],\"exportFilename\":[32],\"viewportExportFormat\":[32],\"open\":[64]}],[513,\"kritzel-settings\",{\"shortcuts\":[16],\"editorId\":[1,\"editor-id\"],\"isDialogOpen\":[32],\"selectedCategoryId\":[32],\"scaleMin\":[32],\"scaleMax\":[32],\"lockDrawingScale\":[32],\"currentTheme\":[32],\"viewportBoundaryLeft\":[32],\"viewportBoundaryRight\":[32],\"viewportBoundaryTop\":[32],\"viewportBoundaryBottom\":[32],\"debugInfo\":[32],\"open\":[64]}],[513,\"kritzel-workspace-manager\",{\"visible\":[4],\"activeWorkspace\":[1040],\"workspaces\":[16],\"childMenuAnchor\":[32],\"openChildMenuItem\":[32],\"newWorkspace\":[32],\"editingItemId\":[32]},[[8,\"wheel\",\"handleWheel\"]]],[513,\"kritzel-engine\",{\"workspace\":[16],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"user\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"cursorTarget\":[16],\"lockDrawingScale\":[4,\"lock-drawing-scale\"],\"theme\":[1],\"viewportBoundaryLeft\":[2,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[2,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[2,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[2,\"viewport-boundary-bottom\"],\"debugInfo\":[16],\"wheelEnabled\":[4,\"wheel-enabled\"],\"isLoading\":[4,\"is-loading\"],\"forceUpdate\":[32],\"triggerSelectionChange\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"delete\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"hideContextMenu\":[64],\"getObjectById\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsTotalCount\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"getDisplayableShortcuts\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectsAsSvgString\":[64],\"exportSelectedObjectsAsSvg\":[64],\"getSelectedObjectsAsPngDataUrl\":[64],\"exportSelectedObjectsAsPng\":[64],\"exportAsJson\":[64],\"importFromJson\":[64],\"loadObjectsFromJson\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"getIsPublic\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64]},[[1,\"wheel\",\"handleWheel\"],[0,\"pointerdown\",\"handlePointerDown\"],[0,\"pointermove\",\"handlePointerMove\"],[0,\"pointerup\",\"handlePointerUp\"],[0,\"pointercancel\",\"handlePointerCancel\"],[1,\"pointerleave\",\"handlePointerLeave\"],[1,\"longpress\",\"handleLongPress\"],[0,\"contextmenu\",\"handleContextMenu\"],[9,\"resize\",\"handleResize\"],[8,\"keydown\",\"handleKeyDown\"],[8,\"keyup\",\"handleKeyUp\"],[4,\"dblclick\",\"preventDoubleTapZoomOnTouchDevices\"]],{\"workspace\":[{\"onWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"assetStorageConfig\":[{\"onAssetStorageConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"scaleMax\":[{\"validateScaleMax\":0}],\"scaleMin\":[{\"validateScaleMin\":0}],\"cursorTarget\":[{\"onCursorTargetChange\":0}],\"lockDrawingScale\":[{\"onLockDrawingScaleChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"viewportBoundaryLeft\":[{\"onViewportBoundaryLeftChange\":0}],\"viewportBoundaryRight\":[{\"onViewportBoundaryRightChange\":0}],\"viewportBoundaryTop\":[{\"onViewportBoundaryTopChange\":0}],\"viewportBoundaryBottom\":[{\"onViewportBoundaryBottomChange\":0}],\"debugInfo\":[{\"onDebugInfoChange\":0}],\"isLoading\":[{\"onIsLoadingChange\":0}]}],[513,\"kritzel-more-menu\",{\"visible\":[4],\"items\":[16],\"icon\":[1],\"iconSize\":[2,\"icon-size\"],\"offsetY\":[2,\"offset-y\"],\"menuAnchor\":[32],\"isTouchDevice\":[32]}],[513,\"kritzel-current-user\",{\"user\":[16],\"avatarSize\":[2,\"avatar-size\"]}],[513,\"kritzel-share-dialog\",{\"isPublic\":[4,\"is-public\"],\"workspaceId\":[1,\"workspace-id\"],\"isDialogOpen\":[32],\"internalIsPublic\":[32],\"copySuccess\":[32],\"open\":[64],\"close\":[64]},null,{\"isPublic\":[{\"onIsPublicChange\":0}]}],[513,\"kritzel-login-dialog\",{\"providers\":[16],\"dialogTitle\":[1,\"dialog-title\"],\"subtitle\":[1],\"isDialogOpen\":[32],\"loadingProvider\":[32],\"open\":[64],\"close\":[64],\"setLoading\":[64]}],[513,\"kritzel-active-users\",{\"users\":[16],\"avatarSize\":[2,\"avatar-size\"],\"maxVisible\":[2,\"max-visible\"],\"overlap\":[2]}],[513,\"kritzel-back-to-content\",{\"visible\":[4],\"text\":[1]}],[769,\"kritzel-button\",{\"variant\":[1],\"disabled\":[4],\"type\":[1]}],[513,\"kritzel-tool-config\",{\"tool\":[1040],\"isExpanded\":[1028,\"is-expanded\"],\"theme\":[1],\"config\":[32],\"palette\":[32],\"currentOpacity\":[32],\"updateTrigger\":[32]},[[4,\"objectsSelectionChange\",\"handleSelectionChange\"]],{\"tool\":[{\"handleToolChange\":0}],\"theme\":[{\"onThemeChange\":0}]}],[513,\"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]}],[513,\"kritzel-current-user-dialog\",{\"user\":[16],\"isDialogOpen\":[32],\"open\":[64],\"close\":[64]}],[513,\"kritzel-context-menu\",{\"items\":[16],\"objects\":[16],\"processedItems\":[32],\"openSubmenuIndex\":[32],\"submenuPosition\":[32]},[[9,\"pointerdown\",\"handleOutsideClick\"]],{\"items\":[{\"onItemsChanged\":0}]}],[769,\"kritzel-master-detail\",{\"items\":[16],\"selectedItemId\":[1,\"selected-item-id\"],\"focusedIndex\":[32],\"showMobileDetail\":[32]},null,{\"selectedItemId\":[{\"watchSelectedItemId\":0}]}],[513,\"kritzel-pill-tabs\",{\"tabs\":[16],\"value\":[1025]}],[513,\"kritzel-utility-panel\",{\"undoState\":[16]}],[513,\"kritzel-awareness-cursors\",{\"core\":[16],\"showEdgeIndicators\":[4,\"show-edge-indicators\"],\"edgeIndicatorPadding\":[2,\"edge-indicator-padding\"],\"remoteCursors\":[32],\"objectVersion\":[32]}],[513,\"kritzel-cursor-trail\",{\"core\":[16],\"cursorTrailPoints\":[32],\"isLeftButtonDown\":[32]},[[9,\"pointerdown\",\"handleMouseDown\"],[9,\"pointermove\",\"handlePointerMove\"],[9,\"pointerup\",\"handlePointerUp\"]]],[513,\"kritzel-input\",{\"value\":[1025],\"label\":[1],\"placeholder\":[1],\"suffix\":[1],\"type\":[1],\"disabled\":[4],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[513,\"kritzel-numeric-input\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"label\":[1],\"placeholder\":[1],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[769,\"kritzel-tooltip\",{\"isVisible\":[1028,\"is-visible\"],\"anchorElement\":[16],\"triggerElement\":[16],\"offsetY\":[2,\"offset-y\"],\"positionX\":[32],\"positionY\":[32],\"open\":[64],\"close\":[64],\"toggle\":[64],\"focusContent\":[64]},[[4,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[4,\"kritzelTooltipCloseAll\",\"handleCloseAll\"],[9,\"resize\",\"handleWindowResize\"]],{\"triggerElement\":[{\"handleTriggerElementChange\":0}],\"isVisible\":[{\"handleVisibilityChange\":0}]}],[513,\"kritzel-color-palette\",{\"colors\":[16],\"selectedColor\":[1040],\"isExpanded\":[4,\"is-expanded\"],\"isOpaque\":[4,\"is-opaque\"],\"opacity\":[2],\"theme\":[1]}],[513,\"kritzel-font-family\",{\"fontOptions\":[16],\"selectedFontFamily\":[1025,\"selected-font-family\"]}],[513,\"kritzel-font-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"],\"fontFamily\":[1,\"font-family\"]}],[513,\"kritzel-stroke-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"]}],[513,\"kritzel-line-endings\",{\"styles\":[16],\"value\":[1040]}],[513,\"kritzel-opacity-slider\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"previewColor\":[1,\"preview-color\"]}],[513,\"kritzel-shape-fill\",{\"value\":[1025]}],[513,\"kritzel-slide-toggle\",{\"checked\":[1028],\"disabled\":[4],\"label\":[1]}],[513,\"kritzel-avatar\",{\"user\":[16],\"name\":[1],\"size\":[2],\"color\":[1],\"imageError\":[32]},null,{\"user\":[{\"userChanged\":0}],\"profileImageUrl\":[{\"profileImageUrlChanged\":0}]}],[513,\"kritzel-font\",{\"fontFamily\":[1,\"font-family\"],\"size\":[2],\"color\":[1]}],[513,\"kritzel-color\",{\"value\":[1],\"theme\":[1],\"size\":[2]}],[513,\"kritzel-menu\",{\"items\":[16],\"parent\":[16],\"selectedIndex\":[32],\"setScrollTop\":[64],\"setFocus\":[64]}],[513,\"kritzel-menu-item\",{\"item\":[16],\"parent\":[16],\"isDirty\":[32]},null,{\"item\":[{\"onItemChange\":0}]}],[769,\"kritzel-dropdown\",{\"options\":[16],\"value\":[1],\"width\":[1],\"selectStyles\":[16],\"forceOpenDirection\":[1,\"force-open-direction\"],\"internalValue\":[32],\"hasSuffixContent\":[32],\"hasPrefixContent\":[32],\"isOpen\":[32],\"focusedIndex\":[32],\"openDirection\":[32]},[[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleDocumentKeydown\"]],{\"options\":[{\"optionsChanged\":0}],\"value\":[{\"externalValueChanged\":0}]}],[769,\"kritzel-portal\",{\"anchor\":[16],\"offsetX\":[2,\"offset-x\"],\"offsetY\":[2,\"offset-y\"],\"autoFocus\":[4,\"auto-focus\"]},[[8,\"kritzel-dismiss-menus\",\"handleDismissMenus\"],[8,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[8,\"keydown\",\"handleKeyDown\"],[11,\"resize\",\"handleResize\"],[11,\"scroll\",\"handleWindowScroll\"]],{\"anchor\":[{\"anchorChanged\":0}]}],[769,\"kritzel-dialog\",{\"isOpen\":[516,\"is-open\"],\"dialogTitle\":[1,\"dialog-title\"],\"closable\":[4],\"closeOnBackdrop\":[4,\"close-on-backdrop\"],\"closeOnEscape\":[4,\"close-on-escape\"],\"autoFocus\":[4,\"auto-focus\"],\"trapFocus\":[4,\"trap-focus\"],\"size\":[1],\"fullscreenOnMobile\":[4,\"fullscreen-on-mobile\"],\"isAnimating\":[32],\"mobileLockedHeight\":[32],\"open\":[64],\"close\":[64],\"focusFirstElement\":[64]},[[8,\"keydown\",\"handleKeyDown\"]],{\"isOpen\":[{\"handleIsOpenChange\":0}]}],[513,\"kritzel-icon\",{\"name\":[1],\"label\":[1],\"size\":[2]}]]],[\"kritzel-brush-style\",[[513,\"kritzel-brush-style\",{\"type\":[1],\"brushOptions\":[16]}]]]]"), options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { defineCustomElements };
|
package/dist/esm/stencil.js
CHANGED
|
@@ -17,5 +17,5 @@ var patchBrowser = () => {
|
|
|
17
17
|
|
|
18
18
|
patchBrowser().then(async (options) => {
|
|
19
19
|
await globalScripts();
|
|
20
|
-
return bootstrapLazy(JSON.parse("[[\"kritzel-active-users_42\",[[512,\"kritzel-editor\",{\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"lockDrawingScale\":[1028,\"lock-drawing-scale\"],\"viewportBoundaryLeft\":[1026,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[1026,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[1026,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[1026,\"viewport-boundary-bottom\"],\"wheelEnabled\":[1028,\"wheel-enabled\"],\"debugInfo\":[1040],\"user\":[16],\"activeUsers\":[16],\"controls\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"customSvgIcons\":[16],\"isControlsVisible\":[4,\"is-controls-visible\"],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"isWorkspaceManagerVisible\":[4,\"is-workspace-manager-visible\"],\"isMoreMenuVisible\":[4,\"is-more-menu-visible\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"cursorTarget\":[16],\"loginConfig\":[16],\"isLoading\":[4,\"is-loading\"],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"isEngineReady\":[32],\"isControlsReady\":[32],\"isWorkspaceManagerReady\":[32],\"workspaces\":[32],\"activeWorkspace\":[32],\"isVirtualKeyboardOpen\":[32],\"undoState\":[32],\"isBackToContentButtonVisible\":[32],\"currentTheme\":[32],\"shortcuts\":[32],\"currentIsPublic\":[32],\"getObjectById\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"copy\":[64],\"paste\":[64],\"delete\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"loadObjectsFromJson\":[64],\"getObjectsTotalCount\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"hideContextMenu\":[64],\"triggerSelectionChange\":[64],\"getDisplayableShortcuts\":[64],\"openLoginDialog\":[64],\"setLoginLoading\":[64]},[[0,\"dblclick\",\"onTouchStart\"]],{\"isEngineReady\":[{\"onIsEngineReady\":0}],\"isControlsReady\":[{\"onIsControlsReady\":0}],\"workspaces\":[{\"onWorkspacesChange\":0}],\"activeWorkspace\":[{\"onActiveWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"currentTheme\":[{\"onCurrentThemeChange\":0}]}],[513,\"kritzel-controls\",{\"controls\":[16],\"activeControl\":[1040],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"undoState\":[16],\"theme\":[1],\"firstConfig\":[32],\"isTouchDevice\":[32],\"selectedSubOptions\":[32],\"canScrollLeft\":[32],\"canScrollRight\":[32],\"needsScrolling\":[32],\"displayValues\":[32],\"closeTooltip\":[64]},[[8,\"keydown\",\"handleKeyDown\"],[4,\"activeToolChange\",\"handleActiveToolChange\"],[4,\"objectsSelectionChange\",\"handleSelectionChange\"]],{\"theme\":[{\"onThemeChange\":0}]}],[513,\"kritzel-export\",{\"workspaceName\":[1,\"workspace-name\"],\"isDialogOpen\":[32],\"previewUrl\":[32],\"isLoading\":[32],\"activeTab\":[32],\"exportFilename\":[32],\"viewportExportFormat\":[32],\"open\":[64]}],[513,\"kritzel-settings\",{\"shortcuts\":[16],\"editorId\":[1,\"editor-id\"],\"isDialogOpen\":[32],\"selectedCategoryId\":[32],\"scaleMin\":[32],\"scaleMax\":[32],\"lockDrawingScale\":[32],\"currentTheme\":[32],\"viewportBoundaryLeft\":[32],\"viewportBoundaryRight\":[32],\"viewportBoundaryTop\":[32],\"viewportBoundaryBottom\":[32],\"debugInfo\":[32],\"open\":[64]}],[513,\"kritzel-workspace-manager\",{\"visible\":[4],\"activeWorkspace\":[1040],\"workspaces\":[16],\"childMenuAnchor\":[32],\"openChildMenuItem\":[32],\"newWorkspace\":[32],\"editingItemId\":[32]},[[8,\"wheel\",\"handleWheel\"]]],[513,\"kritzel-engine\",{\"workspace\":[16],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"user\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"cursorTarget\":[16],\"lockDrawingScale\":[4,\"lock-drawing-scale\"],\"theme\":[1],\"viewportBoundaryLeft\":[2,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[2,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[2,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[2,\"viewport-boundary-bottom\"],\"debugInfo\":[16],\"wheelEnabled\":[4,\"wheel-enabled\"],\"isLoading\":[4,\"is-loading\"],\"forceUpdate\":[32],\"triggerSelectionChange\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"delete\":[64],\"copy\":[64],\"paste\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"hideContextMenu\":[64],\"getObjectById\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsTotalCount\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"getDisplayableShortcuts\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectsAsSvgString\":[64],\"exportSelectedObjectsAsSvg\":[64],\"getSelectedObjectsAsPngDataUrl\":[64],\"exportSelectedObjectsAsPng\":[64],\"exportAsJson\":[64],\"importFromJson\":[64],\"loadObjectsFromJson\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"getIsPublic\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64]},[[1,\"wheel\",\"handleWheel\"],[0,\"pointerdown\",\"handlePointerDown\"],[0,\"pointermove\",\"handlePointerMove\"],[0,\"pointerup\",\"handlePointerUp\"],[0,\"pointercancel\",\"handlePointerCancel\"],[1,\"pointerleave\",\"handlePointerLeave\"],[1,\"longpress\",\"handleLongPress\"],[0,\"contextmenu\",\"handleContextMenu\"],[9,\"resize\",\"handleResize\"],[8,\"keydown\",\"handleKeyDown\"],[8,\"keyup\",\"handleKeyUp\"],[4,\"dblclick\",\"preventDoubleTapZoomOnTouchDevices\"]],{\"workspace\":[{\"onWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"assetStorageConfig\":[{\"onAssetStorageConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"scaleMax\":[{\"validateScaleMax\":0}],\"scaleMin\":[{\"validateScaleMin\":0}],\"cursorTarget\":[{\"onCursorTargetChange\":0}],\"lockDrawingScale\":[{\"onLockDrawingScaleChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"viewportBoundaryLeft\":[{\"onViewportBoundaryLeftChange\":0}],\"viewportBoundaryRight\":[{\"onViewportBoundaryRightChange\":0}],\"viewportBoundaryTop\":[{\"onViewportBoundaryTopChange\":0}],\"viewportBoundaryBottom\":[{\"onViewportBoundaryBottomChange\":0}],\"debugInfo\":[{\"onDebugInfoChange\":0}],\"isLoading\":[{\"onIsLoadingChange\":0}]}],[513,\"kritzel-more-menu\",{\"visible\":[4],\"items\":[16],\"icon\":[1],\"iconSize\":[2,\"icon-size\"],\"offsetY\":[2,\"offset-y\"],\"menuAnchor\":[32],\"isTouchDevice\":[32]}],[513,\"kritzel-current-user\",{\"user\":[16],\"avatarSize\":[2,\"avatar-size\"]}],[513,\"kritzel-share-dialog\",{\"isPublic\":[4,\"is-public\"],\"workspaceId\":[1,\"workspace-id\"],\"isDialogOpen\":[32],\"internalIsPublic\":[32],\"copySuccess\":[32],\"open\":[64],\"close\":[64]},null,{\"isPublic\":[{\"onIsPublicChange\":0}]}],[513,\"kritzel-login-dialog\",{\"providers\":[16],\"dialogTitle\":[1,\"dialog-title\"],\"subtitle\":[1],\"isDialogOpen\":[32],\"loadingProvider\":[32],\"open\":[64],\"close\":[64],\"setLoading\":[64]}],[513,\"kritzel-active-users\",{\"users\":[16],\"avatarSize\":[2,\"avatar-size\"],\"maxVisible\":[2,\"max-visible\"],\"overlap\":[2]}],[513,\"kritzel-back-to-content\",{\"visible\":[4],\"text\":[1]}],[769,\"kritzel-button\",{\"variant\":[1],\"disabled\":[4],\"type\":[1]}],[513,\"kritzel-tool-config\",{\"tool\":[1040],\"isExpanded\":[1028,\"is-expanded\"],\"theme\":[1],\"config\":[32],\"palette\":[32],\"currentOpacity\":[32],\"updateTrigger\":[32]},[[4,\"objectsSelectionChange\",\"handleSelectionChange\"]],{\"tool\":[{\"handleToolChange\":0}],\"theme\":[{\"onThemeChange\":0}]}],[513,\"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]}],[513,\"kritzel-current-user-dialog\",{\"user\":[16],\"isDialogOpen\":[32],\"open\":[64],\"close\":[64]}],[513,\"kritzel-context-menu\",{\"items\":[16],\"objects\":[16],\"processedItems\":[32],\"openSubmenuIndex\":[32],\"submenuPosition\":[32]},[[9,\"pointerdown\",\"handleOutsideClick\"]],{\"items\":[{\"onItemsChanged\":0}]}],[769,\"kritzel-master-detail\",{\"items\":[16],\"selectedItemId\":[1,\"selected-item-id\"],\"focusedIndex\":[32],\"showMobileDetail\":[32]},null,{\"selectedItemId\":[{\"watchSelectedItemId\":0}]}],[513,\"kritzel-pill-tabs\",{\"tabs\":[16],\"value\":[1025]}],[513,\"kritzel-utility-panel\",{\"undoState\":[16]}],[513,\"kritzel-awareness-cursors\",{\"core\":[16],\"showEdgeIndicators\":[4,\"show-edge-indicators\"],\"edgeIndicatorPadding\":[2,\"edge-indicator-padding\"],\"remoteCursors\":[32],\"objectVersion\":[32]}],[513,\"kritzel-cursor-trail\",{\"core\":[16],\"cursorTrailPoints\":[32],\"isLeftButtonDown\":[32]},[[9,\"pointerdown\",\"handleMouseDown\"],[9,\"pointermove\",\"handlePointerMove\"],[9,\"pointerup\",\"handlePointerUp\"]]],[513,\"kritzel-input\",{\"value\":[1025],\"label\":[1],\"placeholder\":[1],\"suffix\":[1],\"type\":[1],\"disabled\":[4],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[513,\"kritzel-numeric-input\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"label\":[1],\"placeholder\":[1],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[769,\"kritzel-tooltip\",{\"isVisible\":[1028,\"is-visible\"],\"anchorElement\":[16],\"triggerElement\":[16],\"offsetY\":[2,\"offset-y\"],\"positionX\":[32],\"positionY\":[32],\"open\":[64],\"close\":[64],\"toggle\":[64],\"focusContent\":[64]},[[4,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[4,\"kritzelTooltipCloseAll\",\"handleCloseAll\"],[9,\"resize\",\"handleWindowResize\"]],{\"triggerElement\":[{\"handleTriggerElementChange\":0}],\"isVisible\":[{\"handleVisibilityChange\":0}]}],[513,\"kritzel-color-palette\",{\"colors\":[16],\"selectedColor\":[1040],\"isExpanded\":[4,\"is-expanded\"],\"isOpaque\":[4,\"is-opaque\"],\"opacity\":[2],\"theme\":[1]}],[513,\"kritzel-font-family\",{\"fontOptions\":[16],\"selectedFontFamily\":[1025,\"selected-font-family\"]}],[513,\"kritzel-font-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"],\"fontFamily\":[1,\"font-family\"]}],[513,\"kritzel-stroke-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"]}],[513,\"kritzel-line-endings\",{\"styles\":[16],\"value\":[1040]}],[513,\"kritzel-opacity-slider\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"previewColor\":[1,\"preview-color\"]}],[513,\"kritzel-shape-fill\",{\"value\":[1025]}],[513,\"kritzel-slide-toggle\",{\"checked\":[1028],\"disabled\":[4],\"label\":[1]}],[513,\"kritzel-avatar\",{\"user\":[16],\"name\":[1],\"size\":[2],\"color\":[1],\"imageError\":[32]},null,{\"user\":[{\"userChanged\":0}],\"profileImageUrl\":[{\"profileImageUrlChanged\":0}]}],[513,\"kritzel-font\",{\"fontFamily\":[1,\"font-family\"],\"size\":[2],\"color\":[1]}],[513,\"kritzel-color\",{\"value\":[1],\"theme\":[1],\"size\":[2]}],[513,\"kritzel-menu\",{\"items\":[16],\"parent\":[16],\"selectedIndex\":[32],\"setScrollTop\":[64],\"setFocus\":[64]}],[513,\"kritzel-menu-item\",{\"item\":[16],\"parent\":[16],\"isDirty\":[32]},null,{\"item\":[{\"onItemChange\":0}]}],[769,\"kritzel-dropdown\",{\"options\":[16],\"value\":[1],\"width\":[1],\"selectStyles\":[16],\"forceOpenDirection\":[1,\"force-open-direction\"],\"internalValue\":[32],\"hasSuffixContent\":[32],\"hasPrefixContent\":[32],\"isOpen\":[32],\"focusedIndex\":[32],\"openDirection\":[32]},[[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleDocumentKeydown\"]],{\"options\":[{\"optionsChanged\":0}],\"value\":[{\"externalValueChanged\":0}]}],[769,\"kritzel-portal\",{\"anchor\":[16],\"offsetX\":[2,\"offset-x\"],\"offsetY\":[2,\"offset-y\"],\"autoFocus\":[4,\"auto-focus\"]},[[8,\"kritzel-dismiss-menus\",\"handleDismissMenus\"],[8,\"click\",\"handleOutsideClick\"],[8,\"keydown\",\"handleKeyDown\"],[11,\"resize\",\"handleResize\"],[11,\"scroll\",\"handleWindowScroll\"]],{\"anchor\":[{\"anchorChanged\":0}]}],[769,\"kritzel-dialog\",{\"isOpen\":[516,\"is-open\"],\"dialogTitle\":[1,\"dialog-title\"],\"closable\":[4],\"closeOnBackdrop\":[4,\"close-on-backdrop\"],\"closeOnEscape\":[4,\"close-on-escape\"],\"autoFocus\":[4,\"auto-focus\"],\"trapFocus\":[4,\"trap-focus\"],\"size\":[1],\"fullscreenOnMobile\":[4,\"fullscreen-on-mobile\"],\"isAnimating\":[32],\"mobileLockedHeight\":[32],\"open\":[64],\"close\":[64],\"focusFirstElement\":[64]},[[8,\"keydown\",\"handleKeyDown\"]],{\"isOpen\":[{\"handleIsOpenChange\":0}]}],[513,\"kritzel-icon\",{\"name\":[1],\"label\":[1],\"size\":[2]}]]],[\"kritzel-brush-style\",[[513,\"kritzel-brush-style\",{\"type\":[1],\"brushOptions\":[16]}]]]]"), options);
|
|
20
|
+
return bootstrapLazy(JSON.parse("[[\"kritzel-active-users_42\",[[512,\"kritzel-editor\",{\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"lockDrawingScale\":[1028,\"lock-drawing-scale\"],\"viewportBoundaryLeft\":[1026,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[1026,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[1026,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[1026,\"viewport-boundary-bottom\"],\"wheelEnabled\":[1028,\"wheel-enabled\"],\"debugInfo\":[1040],\"user\":[16],\"activeUsers\":[16],\"controls\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"customSvgIcons\":[16],\"isControlsVisible\":[4,\"is-controls-visible\"],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"isWorkspaceManagerVisible\":[4,\"is-workspace-manager-visible\"],\"isMoreMenuVisible\":[4,\"is-more-menu-visible\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"cursorTarget\":[16],\"loginConfig\":[16],\"isLoading\":[4,\"is-loading\"],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"isEngineReady\":[32],\"isControlsReady\":[32],\"isWorkspaceManagerReady\":[32],\"workspaces\":[32],\"activeWorkspace\":[32],\"isVirtualKeyboardOpen\":[32],\"undoState\":[32],\"isBackToContentButtonVisible\":[32],\"currentTheme\":[32],\"shortcuts\":[32],\"currentIsPublic\":[32],\"getObjectById\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"delete\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"loadObjectsFromJson\":[64],\"getObjectsTotalCount\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"hideContextMenu\":[64],\"triggerSelectionChange\":[64],\"getDisplayableShortcuts\":[64],\"openLoginDialog\":[64],\"setLoginLoading\":[64]},[[0,\"dblclick\",\"onTouchStart\"]],{\"isEngineReady\":[{\"onIsEngineReady\":0}],\"isControlsReady\":[{\"onIsControlsReady\":0}],\"workspaces\":[{\"onWorkspacesChange\":0}],\"activeWorkspace\":[{\"onActiveWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"currentTheme\":[{\"onCurrentThemeChange\":0}]}],[513,\"kritzel-controls\",{\"controls\":[16],\"activeControl\":[1040],\"isUtilityPanelVisible\":[4,\"is-utility-panel-visible\"],\"undoState\":[16],\"theme\":[1],\"firstConfig\":[32],\"isTouchDevice\":[32],\"selectedSubOptions\":[32],\"canScrollLeft\":[32],\"canScrollRight\":[32],\"needsScrolling\":[32],\"displayValues\":[32],\"closeTooltip\":[64]},[[8,\"keydown\",\"handleKeyDown\"],[4,\"activeToolChange\",\"handleActiveToolChange\"],[4,\"objectsSelectionChange\",\"handleSelectionChange\"]],{\"theme\":[{\"onThemeChange\":0}]}],[513,\"kritzel-export\",{\"workspaceName\":[1,\"workspace-name\"],\"isDialogOpen\":[32],\"previewUrl\":[32],\"isLoading\":[32],\"activeTab\":[32],\"exportFilename\":[32],\"viewportExportFormat\":[32],\"open\":[64]}],[513,\"kritzel-settings\",{\"shortcuts\":[16],\"editorId\":[1,\"editor-id\"],\"isDialogOpen\":[32],\"selectedCategoryId\":[32],\"scaleMin\":[32],\"scaleMax\":[32],\"lockDrawingScale\":[32],\"currentTheme\":[32],\"viewportBoundaryLeft\":[32],\"viewportBoundaryRight\":[32],\"viewportBoundaryTop\":[32],\"viewportBoundaryBottom\":[32],\"debugInfo\":[32],\"open\":[64]}],[513,\"kritzel-workspace-manager\",{\"visible\":[4],\"activeWorkspace\":[1040],\"workspaces\":[16],\"childMenuAnchor\":[32],\"openChildMenuItem\":[32],\"newWorkspace\":[32],\"editingItemId\":[32]},[[8,\"wheel\",\"handleWheel\"]]],[513,\"kritzel-engine\",{\"workspace\":[16],\"editorId\":[1,\"editor-id\"],\"activeWorkspaceId\":[1,\"active-workspace-id\"],\"syncConfig\":[16],\"assetStorageConfig\":[16],\"user\":[16],\"globalContextMenuItems\":[16],\"objectContextMenuItems\":[16],\"scaleMax\":[1026,\"scale-max\"],\"scaleMin\":[1026,\"scale-min\"],\"cursorTarget\":[16],\"lockDrawingScale\":[4,\"lock-drawing-scale\"],\"theme\":[1],\"viewportBoundaryLeft\":[2,\"viewport-boundary-left\"],\"viewportBoundaryRight\":[2,\"viewport-boundary-right\"],\"viewportBoundaryTop\":[2,\"viewport-boundary-top\"],\"viewportBoundaryBottom\":[2,\"viewport-boundary-bottom\"],\"debugInfo\":[16],\"wheelEnabled\":[4,\"wheel-enabled\"],\"isLoading\":[4,\"is-loading\"],\"forceUpdate\":[32],\"triggerSelectionChange\":[64],\"registerTool\":[64],\"changeActiveTool\":[64],\"disable\":[64],\"enable\":[64],\"delete\":[64],\"copy\":[64],\"cut\":[64],\"paste\":[64],\"bringForward\":[64],\"sendBackward\":[64],\"bringToFront\":[64],\"sendToBack\":[64],\"alignObjects\":[64],\"group\":[64],\"ungroup\":[64],\"undo\":[64],\"redo\":[64],\"hideContextMenu\":[64],\"getObjectById\":[64],\"getAllObjects\":[64],\"findObjects\":[64],\"getObjectsTotalCount\":[64],\"addObject\":[64],\"updateObject\":[64],\"removeObject\":[64],\"getSelectedObjects\":[64],\"getDisplayableShortcuts\":[64],\"selectObjects\":[64],\"selectAllObjectsInViewport\":[64],\"clearSelection\":[64],\"centerObjectInViewport\":[64],\"backToContent\":[64],\"centerAllObjects\":[64],\"setViewport\":[64],\"panTo\":[64],\"zoomTo\":[64],\"getViewport\":[64],\"screenToWorld\":[64],\"worldToScreen\":[64],\"getCopiedObjects\":[64],\"getObjectsInViewport\":[64],\"getScreenshot\":[64],\"exportViewportAsPng\":[64],\"exportViewportAsSvg\":[64],\"getSelectedObjectsAsSvgString\":[64],\"exportSelectedObjectsAsSvg\":[64],\"getSelectedObjectsAsPngDataUrl\":[64],\"exportSelectedObjectsAsPng\":[64],\"exportAsJson\":[64],\"importFromJson\":[64],\"loadObjectsFromJson\":[64],\"downloadAsJson\":[64],\"importFromFile\":[64],\"createWorkspace\":[64],\"updateWorkspace\":[64],\"deleteWorkspace\":[64],\"getWorkspaces\":[64],\"getActiveWorkspace\":[64],\"getIsPublic\":[64],\"loadSharedWorkspace\":[64],\"reinitSync\":[64]},[[1,\"wheel\",\"handleWheel\"],[0,\"pointerdown\",\"handlePointerDown\"],[0,\"pointermove\",\"handlePointerMove\"],[0,\"pointerup\",\"handlePointerUp\"],[0,\"pointercancel\",\"handlePointerCancel\"],[1,\"pointerleave\",\"handlePointerLeave\"],[1,\"longpress\",\"handleLongPress\"],[0,\"contextmenu\",\"handleContextMenu\"],[9,\"resize\",\"handleResize\"],[8,\"keydown\",\"handleKeyDown\"],[8,\"keyup\",\"handleKeyUp\"],[4,\"dblclick\",\"preventDoubleTapZoomOnTouchDevices\"]],{\"workspace\":[{\"onWorkspaceChange\":0}],\"activeWorkspaceId\":[{\"onActiveWorkspaceIdChange\":0}],\"syncConfig\":[{\"onSyncConfigChange\":0}],\"assetStorageConfig\":[{\"onAssetStorageConfigChange\":0}],\"user\":[{\"onUserChange\":0}],\"scaleMax\":[{\"validateScaleMax\":0}],\"scaleMin\":[{\"validateScaleMin\":0}],\"cursorTarget\":[{\"onCursorTargetChange\":0}],\"lockDrawingScale\":[{\"onLockDrawingScaleChange\":0}],\"theme\":[{\"onThemeChange\":0}],\"viewportBoundaryLeft\":[{\"onViewportBoundaryLeftChange\":0}],\"viewportBoundaryRight\":[{\"onViewportBoundaryRightChange\":0}],\"viewportBoundaryTop\":[{\"onViewportBoundaryTopChange\":0}],\"viewportBoundaryBottom\":[{\"onViewportBoundaryBottomChange\":0}],\"debugInfo\":[{\"onDebugInfoChange\":0}],\"isLoading\":[{\"onIsLoadingChange\":0}]}],[513,\"kritzel-more-menu\",{\"visible\":[4],\"items\":[16],\"icon\":[1],\"iconSize\":[2,\"icon-size\"],\"offsetY\":[2,\"offset-y\"],\"menuAnchor\":[32],\"isTouchDevice\":[32]}],[513,\"kritzel-current-user\",{\"user\":[16],\"avatarSize\":[2,\"avatar-size\"]}],[513,\"kritzel-share-dialog\",{\"isPublic\":[4,\"is-public\"],\"workspaceId\":[1,\"workspace-id\"],\"isDialogOpen\":[32],\"internalIsPublic\":[32],\"copySuccess\":[32],\"open\":[64],\"close\":[64]},null,{\"isPublic\":[{\"onIsPublicChange\":0}]}],[513,\"kritzel-login-dialog\",{\"providers\":[16],\"dialogTitle\":[1,\"dialog-title\"],\"subtitle\":[1],\"isDialogOpen\":[32],\"loadingProvider\":[32],\"open\":[64],\"close\":[64],\"setLoading\":[64]}],[513,\"kritzel-active-users\",{\"users\":[16],\"avatarSize\":[2,\"avatar-size\"],\"maxVisible\":[2,\"max-visible\"],\"overlap\":[2]}],[513,\"kritzel-back-to-content\",{\"visible\":[4],\"text\":[1]}],[769,\"kritzel-button\",{\"variant\":[1],\"disabled\":[4],\"type\":[1]}],[513,\"kritzel-tool-config\",{\"tool\":[1040],\"isExpanded\":[1028,\"is-expanded\"],\"theme\":[1],\"config\":[32],\"palette\":[32],\"currentOpacity\":[32],\"updateTrigger\":[32]},[[4,\"objectsSelectionChange\",\"handleSelectionChange\"]],{\"tool\":[{\"handleToolChange\":0}],\"theme\":[{\"onThemeChange\":0}]}],[513,\"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]}],[513,\"kritzel-current-user-dialog\",{\"user\":[16],\"isDialogOpen\":[32],\"open\":[64],\"close\":[64]}],[513,\"kritzel-context-menu\",{\"items\":[16],\"objects\":[16],\"processedItems\":[32],\"openSubmenuIndex\":[32],\"submenuPosition\":[32]},[[9,\"pointerdown\",\"handleOutsideClick\"]],{\"items\":[{\"onItemsChanged\":0}]}],[769,\"kritzel-master-detail\",{\"items\":[16],\"selectedItemId\":[1,\"selected-item-id\"],\"focusedIndex\":[32],\"showMobileDetail\":[32]},null,{\"selectedItemId\":[{\"watchSelectedItemId\":0}]}],[513,\"kritzel-pill-tabs\",{\"tabs\":[16],\"value\":[1025]}],[513,\"kritzel-utility-panel\",{\"undoState\":[16]}],[513,\"kritzel-awareness-cursors\",{\"core\":[16],\"showEdgeIndicators\":[4,\"show-edge-indicators\"],\"edgeIndicatorPadding\":[2,\"edge-indicator-padding\"],\"remoteCursors\":[32],\"objectVersion\":[32]}],[513,\"kritzel-cursor-trail\",{\"core\":[16],\"cursorTrailPoints\":[32],\"isLeftButtonDown\":[32]},[[9,\"pointerdown\",\"handleMouseDown\"],[9,\"pointermove\",\"handlePointerMove\"],[9,\"pointerup\",\"handlePointerUp\"]]],[513,\"kritzel-input\",{\"value\":[1025],\"label\":[1],\"placeholder\":[1],\"suffix\":[1],\"type\":[1],\"disabled\":[4],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[513,\"kritzel-numeric-input\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"label\":[1],\"placeholder\":[1],\"inputValue\":[32]},null,{\"value\":[{\"onValueChange\":0}]}],[769,\"kritzel-tooltip\",{\"isVisible\":[1028,\"is-visible\"],\"anchorElement\":[16],\"triggerElement\":[16],\"offsetY\":[2,\"offset-y\"],\"positionX\":[32],\"positionY\":[32],\"open\":[64],\"close\":[64],\"toggle\":[64],\"focusContent\":[64]},[[4,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[4,\"kritzelTooltipCloseAll\",\"handleCloseAll\"],[9,\"resize\",\"handleWindowResize\"]],{\"triggerElement\":[{\"handleTriggerElementChange\":0}],\"isVisible\":[{\"handleVisibilityChange\":0}]}],[513,\"kritzel-color-palette\",{\"colors\":[16],\"selectedColor\":[1040],\"isExpanded\":[4,\"is-expanded\"],\"isOpaque\":[4,\"is-opaque\"],\"opacity\":[2],\"theme\":[1]}],[513,\"kritzel-font-family\",{\"fontOptions\":[16],\"selectedFontFamily\":[1025,\"selected-font-family\"]}],[513,\"kritzel-font-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"],\"fontFamily\":[1,\"font-family\"]}],[513,\"kritzel-stroke-size\",{\"sizes\":[16],\"selectedSize\":[1026,\"selected-size\"]}],[513,\"kritzel-line-endings\",{\"styles\":[16],\"value\":[1040]}],[513,\"kritzel-opacity-slider\",{\"value\":[1026],\"min\":[2],\"max\":[2],\"step\":[2],\"previewColor\":[1,\"preview-color\"]}],[513,\"kritzel-shape-fill\",{\"value\":[1025]}],[513,\"kritzel-slide-toggle\",{\"checked\":[1028],\"disabled\":[4],\"label\":[1]}],[513,\"kritzel-avatar\",{\"user\":[16],\"name\":[1],\"size\":[2],\"color\":[1],\"imageError\":[32]},null,{\"user\":[{\"userChanged\":0}],\"profileImageUrl\":[{\"profileImageUrlChanged\":0}]}],[513,\"kritzel-font\",{\"fontFamily\":[1,\"font-family\"],\"size\":[2],\"color\":[1]}],[513,\"kritzel-color\",{\"value\":[1],\"theme\":[1],\"size\":[2]}],[513,\"kritzel-menu\",{\"items\":[16],\"parent\":[16],\"selectedIndex\":[32],\"setScrollTop\":[64],\"setFocus\":[64]}],[513,\"kritzel-menu-item\",{\"item\":[16],\"parent\":[16],\"isDirty\":[32]},null,{\"item\":[{\"onItemChange\":0}]}],[769,\"kritzel-dropdown\",{\"options\":[16],\"value\":[1],\"width\":[1],\"selectStyles\":[16],\"forceOpenDirection\":[1,\"force-open-direction\"],\"internalValue\":[32],\"hasSuffixContent\":[32],\"hasPrefixContent\":[32],\"isOpen\":[32],\"focusedIndex\":[32],\"openDirection\":[32]},[[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleDocumentKeydown\"]],{\"options\":[{\"optionsChanged\":0}],\"value\":[{\"externalValueChanged\":0}]}],[769,\"kritzel-portal\",{\"anchor\":[16],\"offsetX\":[2,\"offset-x\"],\"offsetY\":[2,\"offset-y\"],\"autoFocus\":[4,\"auto-focus\"]},[[8,\"kritzel-dismiss-menus\",\"handleDismissMenus\"],[8,\"click\",\"handleOutsideClick\"],[6,\"pointerdown\",\"handleOutsidePointerDown\"],[8,\"keydown\",\"handleKeyDown\"],[11,\"resize\",\"handleResize\"],[11,\"scroll\",\"handleWindowScroll\"]],{\"anchor\":[{\"anchorChanged\":0}]}],[769,\"kritzel-dialog\",{\"isOpen\":[516,\"is-open\"],\"dialogTitle\":[1,\"dialog-title\"],\"closable\":[4],\"closeOnBackdrop\":[4,\"close-on-backdrop\"],\"closeOnEscape\":[4,\"close-on-escape\"],\"autoFocus\":[4,\"auto-focus\"],\"trapFocus\":[4,\"trap-focus\"],\"size\":[1],\"fullscreenOnMobile\":[4,\"fullscreen-on-mobile\"],\"isAnimating\":[32],\"mobileLockedHeight\":[32],\"open\":[64],\"close\":[64],\"focusFirstElement\":[64]},[[8,\"keydown\",\"handleKeyDown\"]],{\"isOpen\":[{\"handleIsOpenChange\":0}]}],[513,\"kritzel-icon\",{\"name\":[1],\"label\":[1],\"size\":[2]}]]],[\"kritzel-brush-style\",[[513,\"kritzel-brush-style\",{\"type\":[1],\"brushOptions\":[16]}]]]]"), options);
|
|
21
21
|
});
|
|
@@ -14490,6 +14490,11 @@ const lightTheme = {
|
|
|
14490
14490
|
engine: {
|
|
14491
14491
|
backgroundColor: '#ffffff',
|
|
14492
14492
|
},
|
|
14493
|
+
snap: {
|
|
14494
|
+
indicatorFill: 'rgba(59, 130, 246, 0.3)',
|
|
14495
|
+
indicatorStroke: '#007bff',
|
|
14496
|
+
lineStroke: 'rgba(0, 0, 0, 0.2)',
|
|
14497
|
+
},
|
|
14493
14498
|
fontSize: {
|
|
14494
14499
|
hoverBackgroundColor: '#ebebeb',
|
|
14495
14500
|
selectedBackgroundColor: '#ebebeb',
|
|
@@ -14754,6 +14759,11 @@ const darkTheme = {
|
|
|
14754
14759
|
engine: {
|
|
14755
14760
|
backgroundColor: '#1a1a1a',
|
|
14756
14761
|
},
|
|
14762
|
+
snap: {
|
|
14763
|
+
indicatorFill: 'rgba(10, 132, 255, 0.35)',
|
|
14764
|
+
indicatorStroke: '#0A84FF',
|
|
14765
|
+
lineStroke: 'rgba(255, 255, 255, 0.35)',
|
|
14766
|
+
},
|
|
14757
14767
|
fontSize: {
|
|
14758
14768
|
hoverBackgroundColor: '#3a3a3a',
|
|
14759
14769
|
selectedBackgroundColor: '#3a3a3a',
|
|
@@ -15546,6 +15556,29 @@ class KritzelText extends KritzelBaseObject {
|
|
|
15546
15556
|
this._core.store.objects.update(this);
|
|
15547
15557
|
this._core.engine.emitObjectsChange();
|
|
15548
15558
|
}
|
|
15559
|
+
/**
|
|
15560
|
+
* Handles the Escape key while the text object is in edit mode.
|
|
15561
|
+
* Implements a two-stage behavior: if the editor currently has a non-empty
|
|
15562
|
+
* text selection, the selection is collapsed to a caret without exiting
|
|
15563
|
+
* edit mode. If the selection is already collapsed, edit mode is exited
|
|
15564
|
+
* (saving the current content or deleting the object if it is empty) and
|
|
15565
|
+
* the canvas selection is cleared so subsequent tool actions start fresh.
|
|
15566
|
+
*/
|
|
15567
|
+
handleEscape() {
|
|
15568
|
+
if (!this.editor || !this.isEditing) {
|
|
15569
|
+
return;
|
|
15570
|
+
}
|
|
15571
|
+
const { state } = this.editor;
|
|
15572
|
+
if (!state.selection.empty) {
|
|
15573
|
+
const pos = state.selection.head;
|
|
15574
|
+
this.editor.dispatch(state.tr.setSelection(TextSelection.create(state.doc, pos)));
|
|
15575
|
+
this.editor.focus();
|
|
15576
|
+
return;
|
|
15577
|
+
}
|
|
15578
|
+
this._core.resetActiveText();
|
|
15579
|
+
this._core.clearSelection();
|
|
15580
|
+
this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
|
|
15581
|
+
}
|
|
15549
15582
|
/**
|
|
15550
15583
|
* Handles pointer down events during text editing.
|
|
15551
15584
|
* Stops event propagation to prevent canvas interaction while editing.
|
|
@@ -18223,6 +18256,23 @@ class KritzelGroup extends KritzelBaseObject {
|
|
|
18223
18256
|
}
|
|
18224
18257
|
return null;
|
|
18225
18258
|
}
|
|
18259
|
+
/**
|
|
18260
|
+
* Recursively collects the IDs of all descendants of the given group (children,
|
|
18261
|
+
* grandchildren, etc.). Useful for detecting when a selection contains both an
|
|
18262
|
+
* ancestor group and one of its descendants — a configuration that would otherwise
|
|
18263
|
+
* cause the descendant to be transformed twice (once via the ancestor, once directly).
|
|
18264
|
+
* @param group - The group whose descendants should be collected.
|
|
18265
|
+
* @param out - A set that will be populated with all descendant object IDs.
|
|
18266
|
+
*/
|
|
18267
|
+
static collectDescendantIds(group, out = new Set()) {
|
|
18268
|
+
for (const child of group.children) {
|
|
18269
|
+
out.add(child.id);
|
|
18270
|
+
if (child instanceof KritzelGroup) {
|
|
18271
|
+
KritzelGroup.collectDescendantIds(child, out);
|
|
18272
|
+
}
|
|
18273
|
+
}
|
|
18274
|
+
return out;
|
|
18275
|
+
}
|
|
18226
18276
|
/**
|
|
18227
18277
|
* Adds a child object to this group.
|
|
18228
18278
|
* If the object is already a child, no action is taken.
|
|
@@ -18266,8 +18316,19 @@ class KritzelGroup extends KritzelBaseObject {
|
|
|
18266
18316
|
* Finalizes the group after children have been positioned (e.g., after paste).
|
|
18267
18317
|
* Refreshes the bounding box to encompass all children and captures
|
|
18268
18318
|
* child snapshots for subsequent transformation operations.
|
|
18319
|
+
*
|
|
18320
|
+
* Recursively finalizes nested child groups first, so that when a transform
|
|
18321
|
+
* (rotate/resize) cascades through nested groups, every group's snapshots are
|
|
18322
|
+
* aligned with the current visual state. Without this, a nested group's
|
|
18323
|
+
* `snapshotRotation` could be stale, causing the inner group to be offset
|
|
18324
|
+
* relative to its parent during rotation.
|
|
18269
18325
|
*/
|
|
18270
18326
|
finalize() {
|
|
18327
|
+
for (const child of this.children) {
|
|
18328
|
+
if (child instanceof KritzelGroup) {
|
|
18329
|
+
child.finalize();
|
|
18330
|
+
}
|
|
18331
|
+
}
|
|
18271
18332
|
this.refreshBoundingBox();
|
|
18272
18333
|
this.captureChildSnapshots();
|
|
18273
18334
|
}
|
|
@@ -18424,11 +18485,23 @@ class KritzelGroup extends KritzelBaseObject {
|
|
|
18424
18485
|
* @param height - The new height of the group's content area.
|
|
18425
18486
|
*/
|
|
18426
18487
|
resize(x, y, width, height) {
|
|
18427
|
-
|
|
18428
|
-
|
|
18429
|
-
//
|
|
18430
|
-
const
|
|
18431
|
-
|
|
18488
|
+
// Use snapshot dimensions (stable across the gesture) instead of `this.*`,
|
|
18489
|
+
// which mutates each frame and gets distorted by descendants like KritzelText
|
|
18490
|
+
// that clamp to a uniform scale, causing the cascade factor to drift.
|
|
18491
|
+
const baseWidth = this.snapshotTotalWidth > 0
|
|
18492
|
+
? this.snapshotTotalWidth - this.padding * 2
|
|
18493
|
+
: this.width;
|
|
18494
|
+
const baseHeight = this.snapshotTotalHeight > 0
|
|
18495
|
+
? this.snapshotTotalHeight - this.padding * 2
|
|
18496
|
+
: this.height;
|
|
18497
|
+
const baseScale = this.snapshotScale || this.scale || 1;
|
|
18498
|
+
const widthScaleFactor = baseWidth !== 0 ? width / baseWidth : 1;
|
|
18499
|
+
const heightScaleFactor = baseHeight !== 0 ? height / baseHeight : 1;
|
|
18500
|
+
// Calculate old center from snapshot (stable across the gesture)
|
|
18501
|
+
const snapshotTotalWidth = this.snapshotTotalWidth || (this.width + this.padding * 2);
|
|
18502
|
+
const snapshotTotalHeight = this.snapshotTotalHeight || (this.height + this.padding * 2);
|
|
18503
|
+
const oldCenterX = this.snapshotTranslateX + snapshotTotalWidth / 2 / baseScale;
|
|
18504
|
+
const oldCenterY = this.snapshotTranslateY + snapshotTotalHeight / 2 / baseScale;
|
|
18432
18505
|
// Calculate new center
|
|
18433
18506
|
const newTotalWidth = width + this.padding * 2;
|
|
18434
18507
|
const newTotalHeight = height + this.padding * 2;
|
|
@@ -18441,9 +18514,20 @@ class KritzelGroup extends KritzelBaseObject {
|
|
|
18441
18514
|
const sinR = Math.sin(rotation);
|
|
18442
18515
|
this._core.store.objects.transaction(() => {
|
|
18443
18516
|
this.children.forEach(child => {
|
|
18444
|
-
//
|
|
18445
|
-
|
|
18446
|
-
const
|
|
18517
|
+
// Use snapshot values for the child to avoid compounding distortions caused
|
|
18518
|
+
// by descendants like text that cannot honour requested aspect ratios.
|
|
18519
|
+
const snapshot = this.unchangedChildSnapshots.get(child.id);
|
|
18520
|
+
const childTranslateX = snapshot ? snapshot.translateX : child.translateX;
|
|
18521
|
+
const childTranslateY = snapshot ? snapshot.translateY : child.translateY;
|
|
18522
|
+
const childTotalWidth = snapshot ? snapshot.totalWidth : child.totalWidth;
|
|
18523
|
+
const childTotalHeight = snapshot ? snapshot.totalHeight : child.totalHeight;
|
|
18524
|
+
const childWidth = snapshot ? snapshot.width : child.width;
|
|
18525
|
+
const childHeight = snapshot ? snapshot.height : child.height;
|
|
18526
|
+
const childRotation = snapshot ? snapshot.rotation : child.rotation;
|
|
18527
|
+
const childScale = (snapshot ? snapshot.scale : child.scale) || 1;
|
|
18528
|
+
// Calculate child center from snapshot
|
|
18529
|
+
const childCenterX = childTranslateX + childTotalWidth / 2 / childScale;
|
|
18530
|
+
const childCenterY = childTranslateY + childTotalHeight / 2 / childScale;
|
|
18447
18531
|
// Vector from old group center to child center
|
|
18448
18532
|
const dx = childCenterX - oldCenterX;
|
|
18449
18533
|
const dy = childCenterY - oldCenterY;
|
|
@@ -18460,13 +18544,13 @@ class KritzelGroup extends KritzelBaseObject {
|
|
|
18460
18544
|
const newChildCenterX = newCenterX + rotatedX;
|
|
18461
18545
|
const newChildCenterY = newCenterY + rotatedY;
|
|
18462
18546
|
// Calculate relative rotation for scaling
|
|
18463
|
-
const relativeRotation =
|
|
18547
|
+
const relativeRotation = childRotation - rotation;
|
|
18464
18548
|
const cosRel = Math.cos(relativeRotation);
|
|
18465
18549
|
const sinRel = Math.sin(relativeRotation);
|
|
18466
18550
|
const newChildWidthScale = Math.sqrt(Math.pow(widthScaleFactor * cosRel, 2) + Math.pow(heightScaleFactor * sinRel, 2));
|
|
18467
18551
|
const newChildHeightScale = Math.sqrt(Math.pow(widthScaleFactor * sinRel, 2) + Math.pow(heightScaleFactor * cosRel, 2));
|
|
18468
|
-
const updatedWidth =
|
|
18469
|
-
const updatedHeight =
|
|
18552
|
+
const updatedWidth = childWidth * newChildWidthScale;
|
|
18553
|
+
const updatedHeight = childHeight * newChildHeightScale;
|
|
18470
18554
|
const updatedTotalWidth = updatedWidth + child.padding * 2;
|
|
18471
18555
|
const updatedTotalHeight = updatedHeight + child.padding * 2;
|
|
18472
18556
|
const updatedX = newChildCenterX - updatedTotalWidth / 2 / child.scale;
|
|
@@ -18476,7 +18560,13 @@ class KritzelGroup extends KritzelBaseObject {
|
|
|
18476
18560
|
this._core.anchorManager.updateAnchorsForObject(child.id);
|
|
18477
18561
|
});
|
|
18478
18562
|
this.refreshBoundingBox();
|
|
18479
|
-
|
|
18563
|
+
// Don't recapture snapshots while an interactive resize is in progress —
|
|
18564
|
+
// recapturing each frame would defeat the purpose of using stable snapshots
|
|
18565
|
+
// and re-introduce the compounding distortion described above. Snapshots are
|
|
18566
|
+
// refreshed at the start of the next gesture via beginTransform/finalize.
|
|
18567
|
+
if (!this._core.store.state.isResizing) {
|
|
18568
|
+
this.captureChildSnapshots();
|
|
18569
|
+
}
|
|
18480
18570
|
this._core.store.objects.update(this);
|
|
18481
18571
|
});
|
|
18482
18572
|
}
|
|
@@ -18975,6 +19065,30 @@ class KritzelShape extends KritzelBaseObject {
|
|
|
18975
19065
|
this._core.store.objects.update(this);
|
|
18976
19066
|
this._core.engine.emitObjectsChange();
|
|
18977
19067
|
}
|
|
19068
|
+
/**
|
|
19069
|
+
* Handles the Escape key while the shape's text editor is in edit mode.
|
|
19070
|
+
* Implements a two-stage behavior: if the editor currently has a non-empty
|
|
19071
|
+
* text selection, the selection is collapsed to a caret without exiting
|
|
19072
|
+
* edit mode. If the selection is already collapsed, edit mode is exited
|
|
19073
|
+
* (saving the current content), the canvas selection is cleared and the
|
|
19074
|
+
* active tool is switched back to the selection tool so subsequent
|
|
19075
|
+
* interactions start fresh.
|
|
19076
|
+
*/
|
|
19077
|
+
handleEscape() {
|
|
19078
|
+
if (!this.editor || !this.isEditing) {
|
|
19079
|
+
return;
|
|
19080
|
+
}
|
|
19081
|
+
const { state } = this.editor;
|
|
19082
|
+
if (!state.selection.empty) {
|
|
19083
|
+
const pos = state.selection.head;
|
|
19084
|
+
this.editor.dispatch(state.tr.setSelection(TextSelection.create(state.doc, pos)));
|
|
19085
|
+
this.editor.focus();
|
|
19086
|
+
return;
|
|
19087
|
+
}
|
|
19088
|
+
this._core.resetActiveShape();
|
|
19089
|
+
this._core.clearSelection();
|
|
19090
|
+
this._core.store.setState('activeTool', KritzelToolRegistry.getTool('selection'));
|
|
19091
|
+
}
|
|
18978
19092
|
/**
|
|
18979
19093
|
* Handles pointer down events when the shape is in edit mode.
|
|
18980
19094
|
* This method stops event propagation for untracked pointers to prevent
|
|
@@ -20748,14 +20862,38 @@ class KritzelImageTool extends KritzelBaseTool {
|
|
|
20748
20862
|
* Supports configurable font family, size, color, and opacity.
|
|
20749
20863
|
*/
|
|
20750
20864
|
class KritzelTextTool extends KritzelBaseTool {
|
|
20751
|
-
/**
|
|
20752
|
-
|
|
20753
|
-
/**
|
|
20754
|
-
|
|
20755
|
-
/**
|
|
20756
|
-
|
|
20757
|
-
/**
|
|
20758
|
-
|
|
20865
|
+
/** Backing field for {@link fontFamily}. */
|
|
20866
|
+
_fontFamily = 'Arial';
|
|
20867
|
+
/** Backing field for {@link fontSize}. */
|
|
20868
|
+
_fontSize = 16;
|
|
20869
|
+
/** Backing field for {@link fontColor}. */
|
|
20870
|
+
_fontColor = DEFAULT_COLOR_PALETTE[0];
|
|
20871
|
+
/** Backing field for {@link opacity}. */
|
|
20872
|
+
_opacity = 1;
|
|
20873
|
+
/** The font family for new text objects. */
|
|
20874
|
+
get fontFamily() { return this._fontFamily; }
|
|
20875
|
+
set fontFamily(value) {
|
|
20876
|
+
this._fontFamily = value;
|
|
20877
|
+
this.applyToActiveText({ fontFamily: value });
|
|
20878
|
+
}
|
|
20879
|
+
/** The font size for new text objects in pixels. */
|
|
20880
|
+
get fontSize() { return this._fontSize; }
|
|
20881
|
+
set fontSize(value) {
|
|
20882
|
+
this._fontSize = value;
|
|
20883
|
+
this.applyToActiveText({ fontSize: value });
|
|
20884
|
+
}
|
|
20885
|
+
/** The font color for new text objects (supports theme-aware light/dark colors). */
|
|
20886
|
+
get fontColor() { return this._fontColor; }
|
|
20887
|
+
set fontColor(value) {
|
|
20888
|
+
this._fontColor = value;
|
|
20889
|
+
this.applyToActiveText({ fontColor: value });
|
|
20890
|
+
}
|
|
20891
|
+
/** The opacity of new text objects (0-1). */
|
|
20892
|
+
get opacity() { return this._opacity; }
|
|
20893
|
+
set opacity(value) {
|
|
20894
|
+
this._opacity = value;
|
|
20895
|
+
this.applyToActiveText({ opacity: value });
|
|
20896
|
+
}
|
|
20759
20897
|
/** Available color palette for the text tool */
|
|
20760
20898
|
palette = [...DEFAULT_COLOR_PALETTE];
|
|
20761
20899
|
/**
|
|
@@ -20765,6 +20903,18 @@ class KritzelTextTool extends KritzelBaseTool {
|
|
|
20765
20903
|
constructor(core) {
|
|
20766
20904
|
super(core);
|
|
20767
20905
|
}
|
|
20906
|
+
/**
|
|
20907
|
+
* Propagates a property change to the text object that is currently being edited, if any.
|
|
20908
|
+
* Mirrors the selection tool pattern of pushing tool-config changes down to live objects,
|
|
20909
|
+
* but scoped to the single text in edit mode rather than the current selection.
|
|
20910
|
+
*/
|
|
20911
|
+
applyToActiveText(updatedProperties) {
|
|
20912
|
+
const activeText = this._core?.store?.activeText;
|
|
20913
|
+
if (!activeText)
|
|
20914
|
+
return;
|
|
20915
|
+
this._core.updateObject(activeText, updatedProperties);
|
|
20916
|
+
this._core.rerender();
|
|
20917
|
+
}
|
|
20768
20918
|
/**
|
|
20769
20919
|
* Handles pointer down events for text creation and editing.
|
|
20770
20920
|
* If clicking on an existing text object, enters edit mode for that object.
|
|
@@ -20780,7 +20930,7 @@ class KritzelTextTool extends KritzelBaseTool {
|
|
|
20780
20930
|
if (event.pointerType === 'mouse') {
|
|
20781
20931
|
const path = event.composedPath().slice(1);
|
|
20782
20932
|
const objectElement = path.find(element => element.classList && element.classList.contains('object'));
|
|
20783
|
-
const object = this._core.findObjectById(objectElement
|
|
20933
|
+
const object = objectElement?.id ? this._core.findObjectById(objectElement.id) : null;
|
|
20784
20934
|
const activeText = this._core.store.activeText;
|
|
20785
20935
|
if (activeText === null && object instanceof KritzelText) {
|
|
20786
20936
|
object.edit(event);
|
|
@@ -20817,7 +20967,7 @@ class KritzelTextTool extends KritzelBaseTool {
|
|
|
20817
20967
|
const activePointers = Array.from(this._core.store.state.pointers.values());
|
|
20818
20968
|
const path = event.composedPath().slice(1);
|
|
20819
20969
|
const objectElement = path.find(element => element.classList && element.classList.contains('object'));
|
|
20820
|
-
const object = this._core.findObjectById(objectElement
|
|
20970
|
+
const object = objectElement?.id ? this._core.findObjectById(objectElement.id) : null;
|
|
20821
20971
|
const activeText = this._core.store.activeText;
|
|
20822
20972
|
if (activeText === null && object instanceof KritzelText) {
|
|
20823
20973
|
object.edit(event);
|
|
@@ -22492,6 +22642,7 @@ class KritzelSelectionHandler extends KritzelBaseHandler {
|
|
|
22492
22642
|
const existingGroup = this._core.store.selectionGroup;
|
|
22493
22643
|
if (shiftKey && existingGroup) {
|
|
22494
22644
|
existingGroup.addOrRemove(objectToSelect);
|
|
22645
|
+
this.removeDescendantsOfSelectedGroups(existingGroup);
|
|
22495
22646
|
if (existingGroup.objects.length === 0) {
|
|
22496
22647
|
this._core.removeSelectionGroup();
|
|
22497
22648
|
}
|
|
@@ -22537,15 +22688,17 @@ class KritzelSelectionHandler extends KritzelBaseHandler {
|
|
|
22537
22688
|
obj.isSelected = false;
|
|
22538
22689
|
}
|
|
22539
22690
|
const unrolledObjects = Array.from(resolvedObjects.values());
|
|
22691
|
+
const filteredObjects = this.filterDescendantsOfSelectedGroups(unrolledObjects);
|
|
22540
22692
|
const existingGroup = this._core.store.selectionGroup;
|
|
22541
22693
|
if (shiftKey && existingGroup) {
|
|
22542
|
-
existingGroup.addObjects(
|
|
22694
|
+
existingGroup.addObjects(filteredObjects);
|
|
22695
|
+
this.removeDescendantsOfSelectedGroups(existingGroup);
|
|
22543
22696
|
this._core.rerender();
|
|
22544
22697
|
}
|
|
22545
22698
|
else {
|
|
22546
22699
|
// Create selection group and set all IDs at once (no per-item refresh)
|
|
22547
22700
|
const selectionGroup = KritzelSelectionGroup.create(this._core);
|
|
22548
|
-
selectionGroup.objectIds =
|
|
22701
|
+
selectionGroup.objectIds = filteredObjects.map(o => o.id);
|
|
22549
22702
|
// Only refresh dimensions and capture snapshots ONCE at the end - O(n) instead of O(n²)
|
|
22550
22703
|
if (selectionGroup.length === 1) {
|
|
22551
22704
|
selectionGroup.rotation = selectionGroup.objects[0].rotation;
|
|
@@ -22557,6 +22710,37 @@ class KritzelSelectionHandler extends KritzelBaseHandler {
|
|
|
22557
22710
|
this._core.rerender();
|
|
22558
22711
|
}
|
|
22559
22712
|
}
|
|
22713
|
+
/**
|
|
22714
|
+
* Removes objects that are descendants of any KritzelGroup also present in the list.
|
|
22715
|
+
* Prevents an ancestor group and one of its descendants from coexisting in a selection,
|
|
22716
|
+
* which would otherwise cause the descendant to be transformed twice (once via the
|
|
22717
|
+
* ancestor group, and once directly).
|
|
22718
|
+
* @param objects - The candidate objects for the selection.
|
|
22719
|
+
* @returns A new array with descendants of selected groups removed.
|
|
22720
|
+
*/
|
|
22721
|
+
filterDescendantsOfSelectedGroups(objects) {
|
|
22722
|
+
const descendantIds = new Set();
|
|
22723
|
+
for (const obj of objects) {
|
|
22724
|
+
if (obj instanceof KritzelGroup) {
|
|
22725
|
+
KritzelGroup.collectDescendantIds(obj, descendantIds);
|
|
22726
|
+
}
|
|
22727
|
+
}
|
|
22728
|
+
if (descendantIds.size === 0) {
|
|
22729
|
+
return objects;
|
|
22730
|
+
}
|
|
22731
|
+
return objects.filter(o => !descendantIds.has(o.id));
|
|
22732
|
+
}
|
|
22733
|
+
/**
|
|
22734
|
+
* Mutates an existing selection group to remove any descendants of groups
|
|
22735
|
+
* already present in it. See {@link filterDescendantsOfSelectedGroups}.
|
|
22736
|
+
* @param selectionGroup - The selection group to clean up in place.
|
|
22737
|
+
*/
|
|
22738
|
+
removeDescendantsOfSelectedGroups(selectionGroup) {
|
|
22739
|
+
const filtered = this.filterDescendantsOfSelectedGroups(selectionGroup.objects);
|
|
22740
|
+
if (filtered.length !== selectionGroup.objects.length) {
|
|
22741
|
+
selectionGroup.objectIds = filtered.map(o => o.id);
|
|
22742
|
+
}
|
|
22743
|
+
}
|
|
22560
22744
|
}
|
|
22561
22745
|
|
|
22562
22746
|
/**
|