kritzel-stencil 0.1.1 → 0.1.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/{default-line-tool.config-SdMGkNhv.js → default-line-tool.config-MA02HCrH.js} +635 -118
- package/dist/cjs/{index-BeKMS-Zt.js → index-Bj0n7fQQ.js} +84 -7
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/kritzel-brush-style.cjs.entry.js +1 -1
- package/dist/cjs/{kritzel-color_22.cjs.entry.js → kritzel-color_24.cjs.entry.js} +870 -769
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stencil.cjs.js +3 -3
- package/dist/collection/classes/core/core.class.js +2 -0
- package/dist/collection/classes/core/viewport.class.js +43 -3
- package/dist/collection/classes/objects/line.class.js +1 -0
- package/dist/collection/classes/objects/path.class.js +1 -0
- package/dist/collection/classes/objects/shape.class.js +1 -0
- package/dist/collection/classes/objects/text.class.js +4 -3
- package/dist/collection/classes/providers/indexeddb-sync-provider.class.js +0 -1
- package/dist/collection/classes/tools/brush-tool.class.js +5 -0
- package/dist/collection/classes/tools/line-tool.class.js +31 -1
- package/dist/collection/classes/tools/selection-tool.class.js +193 -0
- package/dist/collection/classes/tools/shape-tool.class.js +2 -0
- package/dist/collection/classes/tools/text-tool.class.js +3 -0
- package/dist/collection/collection-manifest.json +5 -3
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +3 -2
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +37 -19
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +108 -36
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -2
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.css +1 -1
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +24 -2
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -1
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.css +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.css +1 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +1 -1
- package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.css +60 -0
- package/dist/collection/components/shared/kritzel-line-endings/kritzel-line-endings.js +187 -0
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +15 -8
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +16 -9
- package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.css +85 -0
- package/dist/collection/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.js +163 -0
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -1
- package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.css +47 -0
- package/dist/collection/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +93 -0
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +13 -7
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.css +11 -2
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +2 -2
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.css +1 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +6 -4
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +6 -3
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +95 -14
- package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.css +38 -0
- package/dist/collection/components/ui/kritzel-tool-config/kritzel-tool-config.js +321 -0
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +3 -2
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +6 -3
- package/dist/collection/configs/default-brush-tool.config.js +2 -52
- package/dist/collection/configs/default-line-tool.config.js +2 -26
- package/dist/collection/configs/default-shape-tool.config.js +2 -15
- package/dist/collection/configs/default-text-tool.config.js +2 -26
- package/dist/collection/constants/color-palette.constants.js +30 -0
- package/dist/collection/helpers/color.helper.js +31 -0
- package/dist/collection/helpers/tool-config.helper.js +65 -0
- package/dist/collection/interfaces/tool-config.interface.js +1 -0
- package/dist/components/index.d.ts +8 -4
- package/dist/components/index.js +1 -1
- package/dist/components/kritzel-brush-style.js +1 -1
- package/dist/components/kritzel-color-palette.js +1 -1
- package/dist/components/kritzel-color.js +1 -1
- package/dist/components/kritzel-context-menu.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-cursor-trail.js +1 -1
- package/dist/components/kritzel-dropdown.js +1 -1
- package/dist/components/kritzel-editor.js +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-font-family.js +1 -1
- package/dist/components/kritzel-font-size.js +1 -1
- package/dist/components/kritzel-font.js +1 -1
- package/dist/components/kritzel-icon.js +1 -1
- package/dist/components/kritzel-line-endings.d.ts +11 -0
- package/dist/components/kritzel-line-endings.js +1 -0
- package/dist/components/kritzel-menu-item.js +1 -1
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-opacity-slider.d.ts +11 -0
- package/dist/components/kritzel-opacity-slider.js +1 -0
- package/dist/components/kritzel-portal.js +1 -1
- package/dist/components/kritzel-shape-fill.d.ts +11 -0
- package/dist/components/kritzel-shape-fill.js +1 -0
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-tool-config.d.ts +11 -0
- package/dist/components/kritzel-tool-config.js +1 -0
- package/dist/components/kritzel-tooltip.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/p-83YX0-FS.js +1 -0
- package/dist/components/p-8iEiCuEN.js +1 -0
- package/dist/components/p-9XZbc_qK.js +1 -0
- package/dist/components/p-B3P64-gH.js +9 -0
- package/dist/components/p-B8QjTqOY.js +1 -0
- package/dist/components/p-BF6MdW17.js +1 -0
- package/dist/components/p-BVIY50lR.js +1 -0
- package/dist/components/p-BbqT9o1F.js +1 -0
- package/dist/components/{p-CXzfYQ_u.js → p-BnidlyU0.js} +1 -1
- package/dist/components/{p-Bj_Og27M.js → p-BxS4Pdpz.js} +1 -1
- package/dist/components/{p-g0N9j_uT.js → p-CCj8nmQH.js} +1 -1
- package/dist/components/{p-1z-ds26_.js → p-CLOnpu42.js} +1 -1
- package/dist/components/{p-D1tfzpy8.js → p-CSGeDE4f.js} +1 -1
- package/dist/components/p-CbuHMNa9.js +1 -0
- package/dist/components/p-ClMFs3KI.js +1 -0
- package/dist/components/{p-IAqZFssU.js → p-Cnpk2hfo.js} +1 -1
- package/dist/components/{p-Cy77SpWt.js → p-Ctv4NAxk.js} +1 -1
- package/dist/components/p-CyHZWbkS.js +1 -0
- package/dist/components/{p-C4krHoUl.js → p-D8GeJNUv.js} +1 -1
- package/dist/components/{p-XGgKC_Fe.js → p-DKgqzi2Y.js} +1 -1
- package/dist/components/p-DOF5fWDU.js +1 -0
- package/dist/components/{p-4FEa4ADy.js → p-DV_h5Jo2.js} +1 -1
- package/dist/components/{p-DTezr6w9.js → p-DgCGSL2Q.js} +1 -1
- package/dist/components/{p-D5ZsALCP.js → p-wRXL928z.js} +1 -1
- package/dist/esm/{default-line-tool.config-Cw8mdDpt.js → default-line-tool.config-DLpNl6R9.js} +634 -110
- package/dist/esm/{index-BqhmuUH2.js → index-OLdaFN6W.js} +84 -7
- package/dist/esm/index.js +2 -2
- package/dist/esm/kritzel-brush-style.entry.js +1 -1
- package/dist/esm/{kritzel-color_22.entry.js → kritzel-color_24.entry.js} +859 -760
- package/dist/esm/loader.js +3 -3
- package/dist/esm/stencil.js +4 -4
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/{p-09295079.entry.js → p-802bc7cf.entry.js} +1 -1
- package/dist/stencil/p-DLpNl6R9.js +1 -0
- package/dist/stencil/p-OLdaFN6W.js +2 -0
- package/dist/stencil/p-caf30edb.entry.js +9 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/core/viewport.class.d.ts +6 -0
- package/dist/types/classes/objects/shape.class.d.ts +1 -0
- package/dist/types/classes/tools/brush-tool.class.d.ts +1 -0
- package/dist/types/classes/tools/line-tool.class.d.ts +2 -1
- package/dist/types/classes/tools/selection-tool.class.d.ts +22 -0
- package/dist/types/classes/tools/shape-tool.class.d.ts +1 -0
- package/dist/types/classes/tools/text-tool.class.d.ts +1 -0
- package/dist/types/components/core/kritzel-engine/kritzel-engine.d.ts +2 -0
- package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
- package/dist/types/components/shared/kritzel-line-endings/kritzel-line-endings.d.ts +23 -0
- package/dist/types/components/shared/kritzel-opacity-slider/kritzel-opacity-slider.d.ts +17 -0
- package/dist/types/components/shared/kritzel-shape-fill/kritzel-shape-fill.d.ts +10 -0
- package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +9 -0
- package/dist/types/components/ui/kritzel-tool-config/kritzel-tool-config.d.ts +25 -0
- package/dist/types/components.d.ts +235 -82
- package/dist/types/constants/color-palette.constants.d.ts +5 -0
- package/dist/types/helpers/color.helper.d.ts +9 -0
- package/dist/types/helpers/tool-config.helper.d.ts +4 -0
- package/dist/types/interfaces/line-options.interface.d.ts +1 -0
- package/dist/types/interfaces/path-options.interface.d.ts +1 -0
- package/dist/types/interfaces/tool-config.interface.d.ts +26 -0
- package/dist/types/stencil-public-runtime.d.ts +29 -0
- package/package.json +5 -3
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.css +0 -19
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +0 -134
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.css +0 -19
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +0 -114
- package/dist/components/kritzel-control-brush-config.d.ts +0 -11
- package/dist/components/kritzel-control-brush-config.js +0 -1
- package/dist/components/kritzel-control-text-config.d.ts +0 -11
- package/dist/components/kritzel-control-text-config.js +0 -1
- package/dist/components/p-BXaWhpO2.js +0 -1
- package/dist/components/p-BtuXeItZ.js +0 -1
- package/dist/components/p-C-d2IH4v.js +0 -1
- package/dist/components/p-C3UriJh7.js +0 -1
- package/dist/components/p-CF5L2Gdl.js +0 -1
- package/dist/components/p-CeKT_dTd.js +0 -1
- package/dist/components/p-Cp15toXH.js +0 -1
- package/dist/components/p-D4n7UbGY.js +0 -1
- package/dist/components/p-Du1vxHy8.js +0 -1
- package/dist/components/p-exWKDgI8.js +0 -9
- package/dist/stencil/p-BqhmuUH2.js +0 -2
- package/dist/stencil/p-Cw8mdDpt.js +0 -1
- package/dist/stencil/p-d21a009f.entry.js +0 -9
- package/dist/types/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.d.ts +0 -15
- package/dist/types/components/ui/kritzel-control-text-config/kritzel-control-text-config.d.ts +0 -12
package/dist/esm/loader.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { b as bootstrapLazy } from './index-
|
|
2
|
-
export { s as setNonce } from './index-
|
|
1
|
+
import { b as bootstrapLazy } from './index-OLdaFN6W.js';
|
|
2
|
+
export { s as setNonce } from './index-OLdaFN6W.js';
|
|
3
3
|
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
4
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await globalScripts();
|
|
8
|
-
return bootstrapLazy([["kritzel-
|
|
8
|
+
return bootstrapLazy([["kritzel-color_24",[[512,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"customSvgIcons":[16],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"syncConfig":[16],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":[{"onIsEngineReady":0}],"isControlsReady":[{"onIsControlsReady":0}],"workspaces":[{"onWorkspacesChange":0}]}],[513,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"openSubMenuControl":[32],"canScrollLeft":[32],"canScrollRight":[32],"displayValues":[32],"closeTooltip":[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"],[4,"objectsSelectionChange","handleSelectionChange"]]],[513,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[513,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"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],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"getCopiedObjects":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":[{"onWorkspaceChange":0}],"scaleMax":[{"validateScaleMax":0}],"scaleMin":[{"validateScaleMin":0}],"cursorTarget":[{"onCursorTargetChange":0}]}],[513,"kritzel-tool-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"config":[32],"palette":[32],"currentOpacity":[32],"updateTrigger":[32]},[[4,"objectsSelectionChange","handleSelectionChange"]],{"tool":[{"handleToolChange":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-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":[{"onItemsChanged":0}]}],[513,"kritzel-utility-panel",{"undoState":[16]}],[513,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[769,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16],"offsetY":[2,"offset-y"],"positionX":[32],"positionY":[32],"focusContent":[64]},[[4,"click","handleOutsideClick"],[9,"resize","handleWindowResize"]]],[513,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"],"opacity":[2]}],[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],"strokeColor":[1,"stroke-color"]}],[513,"kritzel-opacity-slider",{"value":[1026],"min":[2],"max":[2],"step":[2],"previewColor":[1,"preview-color"]}],[513,"kritzel-shape-fill",{"value":[1025]}],[513,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[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}]}],[513,"kritzel-color",{"value":[1],"size":[2]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[16],"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,"click","handleOutsideClick"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":[{"anchorChanged":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
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { p as promiseResolve, b as bootstrapLazy } from './index-
|
|
2
|
-
export { s as setNonce } from './index-
|
|
1
|
+
import { p as promiseResolve, b as bootstrapLazy } from './index-OLdaFN6W.js';
|
|
2
|
+
export { s as setNonce } from './index-OLdaFN6W.js';
|
|
3
3
|
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
4
|
|
|
5
5
|
/*
|
|
6
|
-
Stencil Client Patch Browser v4.
|
|
6
|
+
Stencil Client Patch Browser v4.41.0 | MIT Licensed | https://stenciljs.com
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
var patchBrowser = () => {
|
|
@@ -17,5 +17,5 @@ var patchBrowser = () => {
|
|
|
17
17
|
|
|
18
18
|
patchBrowser().then(async (options) => {
|
|
19
19
|
await globalScripts();
|
|
20
|
-
return bootstrapLazy([["kritzel-
|
|
20
|
+
return bootstrapLazy([["kritzel-color_24",[[512,"kritzel-editor",{"scaleMax":[2,"scale-max"],"scaleMin":[2,"scale-min"],"controls":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"customSvgIcons":[16],"isControlsVisible":[4,"is-controls-visible"],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"syncConfig":[16],"isEngineReady":[32],"isControlsReady":[32],"isWorkspaceManagerReady":[32],"workspaces":[32],"activeWorkspace":[32],"isVirtualKeyboardOpen":[32],"undoState":[32],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"dblclick","onTouchStart"]],{"isEngineReady":[{"onIsEngineReady":0}],"isControlsReady":[{"onIsControlsReady":0}],"workspaces":[{"onWorkspacesChange":0}]}],[513,"kritzel-controls",{"controls":[16],"activeControl":[1040],"isUtilityPanelVisible":[4,"is-utility-panel-visible"],"undoState":[16],"firstConfig":[32],"isTooltipVisible":[32],"isTouchDevice":[32],"selectedSubOptions":[32],"openSubMenuControl":[32],"canScrollLeft":[32],"canScrollRight":[32],"displayValues":[32],"closeTooltip":[64]},[[4,"click","handleDocumentClick"],[8,"keydown","handleKeyDown"],[4,"activeToolChange","handleActiveToolChange"],[4,"objectsSelectionChange","handleSelectionChange"]]],[513,"kritzel-workspace-manager",{"activeWorkspace":[1040],"workspaces":[16],"childMenuAnchor":[32],"openChildMenuItem":[32],"newWorkspace":[32],"editingItemId":[32]},[[8,"wheel","handleWheel"]]],[513,"kritzel-engine",{"workspace":[16],"syncConfig":[16],"activeTool":[16],"globalContextMenuItems":[16],"objectContextMenuItems":[16],"scaleMax":[1026,"scale-max"],"scaleMin":[1026,"scale-min"],"cursorTarget":[16],"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],"group":[64],"ungroup":[64],"undo":[64],"redo":[64],"hideContextMenu":[64],"getObjectById":[64],"addObject":[64],"updateObject":[64],"removeObject":[64],"getSelectedObjects":[64],"selectObjects":[64],"selectAllObjectsInViewport":[64],"clearSelection":[64],"centerObjectInViewport":[64],"getCopiedObjects":[64],"createWorkspace":[64],"updateWorkspace":[64],"deleteWorkspace":[64],"getWorkspaces":[64],"getActiveWorkspace":[64]},[[0,"wheel","handleWheel"],[0,"pointerdown","handlePointerDown"],[0,"pointermove","handlePointerMove"],[0,"pointerup","handlePointerUp"],[0,"pointercancel","handlePointerCancel"],[0,"longpress","handleLongPress"],[0,"contextmenu","handleContextMenu"],[9,"resize","handleResize"],[8,"keydown","handleKeyDown"],[8,"keyup","handleKeyUp"],[4,"dblclick","preventDoubleTapZoomOnTouchDevices"]],{"workspace":[{"onWorkspaceChange":0}],"scaleMax":[{"validateScaleMax":0}],"scaleMin":[{"validateScaleMin":0}],"cursorTarget":[{"onCursorTargetChange":0}]}],[513,"kritzel-tool-config",{"tool":[1040],"isExpanded":[1028,"is-expanded"],"config":[32],"palette":[32],"currentOpacity":[32],"updateTrigger":[32]},[[4,"objectsSelectionChange","handleSelectionChange"]],{"tool":[{"handleToolChange":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-context-menu",{"items":[16],"objects":[16],"processedItems":[32]},[[9,"pointerdown","handleOutsideClick"]],{"items":[{"onItemsChanged":0}]}],[513,"kritzel-utility-panel",{"undoState":[16]}],[513,"kritzel-cursor-trail",{"core":[16],"cursorTrailPoints":[32],"isLeftButtonDown":[32]},[[9,"pointerdown","handleMouseDown"],[9,"pointermove","handlePointerMove"],[9,"pointerup","handlePointerUp"]]],[769,"kritzel-tooltip",{"isVisible":[4,"is-visible"],"anchorElement":[16],"offsetY":[2,"offset-y"],"positionX":[32],"positionY":[32],"focusContent":[64]},[[4,"click","handleOutsideClick"],[9,"resize","handleWindowResize"]]],[513,"kritzel-color-palette",{"colors":[16],"selectedColor":[1025,"selected-color"],"isExpanded":[4,"is-expanded"],"isOpaque":[4,"is-opaque"],"opacity":[2]}],[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],"strokeColor":[1,"stroke-color"]}],[513,"kritzel-opacity-slider",{"value":[1026],"min":[2],"max":[2],"step":[2],"previewColor":[1,"preview-color"]}],[513,"kritzel-shape-fill",{"value":[1025]}],[513,"kritzel-font",{"fontFamily":[1,"font-family"],"size":[2],"color":[1]}],[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}]}],[513,"kritzel-color",{"value":[1],"size":[2]}],[769,"kritzel-dropdown",{"options":[16],"value":[1],"width":[1],"selectStyles":[16],"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,"click","handleOutsideClick"],[8,"keydown","handleKeyDown"],[11,"resize","handleResize"],[11,"scroll","handleWindowScroll"]],{"anchor":[{"anchorChanged":0}]}],[513,"kritzel-icon",{"name":[1],"label":[1],"size":[2]}]]],["kritzel-brush-style",[[513,"kritzel-brush-style",{"type":[1],"brushOptions":[16]}]]]], options);
|
|
21
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{w as t,a as s,t as e,r as i,b as n,e as o,c,d as h,f as a,g as r,s as l,h as d,i as u,v as p,j as m,o as y,k as f,l as w,m as k,O as v,n as b,p as g,q as z,u as C,x as $,y as x,z as B,A as H,B as A,C as D,H as O,D as _}from"./p-Cw8mdDpt.js";export{W as DEFAULT_BRUSH_CONFIG,Y as DEFAULT_LINE_TOOL_CONFIG,X as DEFAULT_TEXT_CONFIG,S as IndexedDBSyncProvider,V as KritzelAnchorManager,T as KritzelAppStateMap,J as KritzelBrushTool,Q as KritzelCursorHelper,M as KritzelEraserTool,I as KritzelGroup,F as KritzelImage,N as KritzelImageTool,G as KritzelLine,L as KritzelLineTool,E as KritzelPath,R as KritzelSelectionTool,K as KritzelText,P as KritzelTextTool,U as KritzelWorkspace}from"./p-Cw8mdDpt.js";class j{doc;channel;_synced=!1;constructor(t,s,e){this.doc=s,this.channel=new BroadcastChannel(t),this.channel.onmessage=t=>{this.handleMessage(t.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),console.info(`BroadcastChannel Provider initialized: ${t}`)}handleDocUpdate=(i,n)=>{if(n!==this){const n=a();t(n,0),s(n,i),this.channel.postMessage(e(n))}};handleMessage(h){const l=r(new Uint8Array(h));switch(i(l)){case 0:const i=n(l);c(this.doc,i,this);break;case 1:this.broadcastSync();break;case 2:const h=n(l),r=o(this.doc,h);if(r.length>0){const i=a();t(i,0),s(i,r),this.channel.postMessage(e(i))}}}broadcastSync(){const i=a();t(i,2),s(i,h(this.doc)),this.channel.postMessage(e(i))}async connect(){if(!this._synced)return new Promise((t=>{const s=()=>{this._synced?t():setTimeout(s,50)};s()}))}disconnect(){}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}const q=new Map,Z="undefined"==typeof BroadcastChannel?class{constructor(t){this.room=t,this.onmessage=null,this._onChange=s=>s.key===t&&null!==this.onmessage&&this.onmessage({data:u(s.newValue||"")}),y(this._onChange)}postMessage(t){p.setItem(this.room,m(f(t)))}close(){w(this._onChange)}}:BroadcastChannel,tt=t=>l(q,t,(()=>{const s=d(),e=new Z(t);return e.onmessage=t=>s.forEach((s=>s(t.data,"broadcastchannel"))),{bc:e,subs:s}})),st=(t,s,e=null)=>{const i=tt(t);i.bc.postMessage(s),i.subs.forEach((t=>t(s,e)))},et=(e,i)=>{t(e,0);const n=h(i);s(e,n)},it=(e,i,n)=>{t(e,1),s(e,o(i,n))},nt=(t,s,e,i)=>{try{c(s,n(t),e)}catch(t){null!=i&&i(t),console.error("Caught error while handling a Yjs update",t)}},ot=nt;class ct extends v{constructor(t){super(),this.doc=t,this.clientID=t.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const t=g();null!==this.getLocalState()&&15e3<=t-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const s=[];this.meta.forEach(((e,i)=>{i!==this.clientID&&3e4<=t-e.lastUpdated&&this.states.has(i)&&s.push(i)})),s.length>0&&ht(this,s,"timeout")}),b(3e3)),t.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(t){const s=this.clientID,e=this.meta.get(s),i=void 0===e?0:e.clock+1,n=this.states.get(s);null===t?this.states.delete(s):this.states.set(s,t),this.meta.set(s,{clock:i,lastUpdated:g()});const o=[],c=[],h=[],a=[];null===t?a.push(s):null==n?null!=t&&o.push(s):(c.push(s),z(n,t)||h.push(s)),(o.length>0||h.length>0||a.length>0)&&this.emit("change",[{added:o,updated:h,removed:a},"local"]),this.emit("update",[{added:o,updated:c,removed:a},"local"])}setLocalStateField(t,s){const e=this.getLocalState();null!==e&&this.setLocalState({...e,[t]:s})}getStates(){return this.states}}const ht=(t,s,e)=>{const i=[];for(let e=0;e<s.length;e++){const n=s[e];if(t.states.has(n)){if(t.states.delete(n),n===t.clientID){const s=t.meta.get(n);t.meta.set(n,{clock:s.clock+1,lastUpdated:g()})}i.push(n)}}i.length>0&&(t.emit("change",[{added:[],updated:[],removed:i},e]),t.emit("update",[{added:[],updated:[],removed:i},e]))},at=(s,i,n=s.states)=>{const o=i.length,c=a();t(c,o);for(let e=0;e<o;e++){const o=i[e],h=n.get(o)||null,a=s.meta.get(o).clock;t(c,o),t(c,a),C(c,JSON.stringify(h))}return e(c)},rt=[];rt[0]=(s,e,o,c)=>{t(s,0);const h=((t,s,e,o,c)=>{const h=i(t);switch(h){case 0:((t,s,e)=>{it(s,e,n(t))})(t,s,e);break;case 1:nt(t,e,o,c);break;case 2:ot(t,e,o,c);break;default:throw new Error("Unknown message type")}return h})(e,s,o.doc,o);c&&1===h&&!o.synced&&(o.synced=!0)},rt[3]=(e,i,n)=>{t(e,1),s(e,at(n.awareness,Array.from(n.awareness.getStates().keys())))},rt[1]=(t,s,e)=>{((t,s,e)=>{const n=r(s),o=g(),c=[],h=[],a=[],l=[],d=i(n);for(let s=0;s<d;s++){const s=i(n);let e=i(n);const r=JSON.parse(k(n)),d=t.meta.get(s),u=t.states.get(s),p=void 0===d?0:d.clock;(p<e||p===e&&null===r&&t.states.has(s))&&(null===r?s===t.clientID&&null!=t.getLocalState()?e++:t.states.delete(s):t.states.set(s,r),t.meta.set(s,{clock:e,lastUpdated:o}),void 0===d&&null!==r?c.push(s):void 0!==d&&null===r?l.push(s):null!==r&&(z(r,u)||a.push(s),h.push(s)))}(c.length>0||a.length>0||l.length>0)&&t.emit("change",[{added:c,updated:a,removed:l},e]),(c.length>0||h.length>0||l.length>0)&&t.emit("update",[{added:c,updated:h,removed:l},e])})(e.awareness,n(s),e)},rt[2]=(t,s,e)=>{((t,s,e)=>{0===i(t)&&e(0,k(t))})(s,0,((t,s)=>lt(e,s)))};const lt=(t,s)=>console.warn(`Permission denied to access ${t.url}.\n${s}`),dt=(t,s,e)=>{const n=r(s),o=a(),c=i(n),h=t.messageHandlers[c];return h?h(o,n,t,e,c):console.error("Unable to compute message"),o},ut=(t,s,e)=>{s===t.ws&&(t.emit("connection-close",[e,t]),t.ws=null,s.close(),t.wsconnecting=!1,t.wsconnected?(t.wsconnected=!1,t.synced=!1,ht(t.awareness,Array.from(t.awareness.getStates().keys()).filter((s=>s!==t.doc.clientID)),t),t.emit("status",[{status:"disconnected"}])):t.wsUnsuccessfulReconnects++,setTimeout(pt,A(100*D(2,t.wsUnsuccessfulReconnects),t.maxBackoffTime),t))},pt=i=>{if(i.shouldConnect&&null===i.ws){const n=new i._WS(i.url,i.protocols);n.binaryType="arraybuffer",i.ws=n,i.wsconnecting=!0,i.wsconnected=!1,i.synced=!1,n.onmessage=t=>{i.wsLastMessageReceived=g();const s=dt(i,new Uint8Array(t.data),!0);B(s)>1&&n.send(e(s))},n.onerror=t=>{i.emit("connection-error",[t,i])},n.onclose=t=>{ut(i,n,t)},n.onopen=()=>{i.wsLastMessageReceived=g(),i.wsconnecting=!1,i.wsconnected=!0,i.wsUnsuccessfulReconnects=0,i.emit("status",[{status:"connected"}]);const o=a();if(t(o,0),et(o,i.doc),n.send(e(o)),null!==i.awareness.getLocalState()){const o=a();t(o,1),s(o,at(i.awareness,[i.doc.clientID])),n.send(e(o))}},i.emit("status",[{status:"connecting"}])}},mt=(t,s)=>{const e=t.ws;t.wsconnected&&e&&e.readyState===e.OPEN&&e.send(s),t.bcconnected&&st(t.bcChannel,s,t)};class yt extends x{constructor(i,n,o,{connect:c=!0,awareness:h=new ct(o),params:r={},protocols:l=[],WebSocketPolyfill:d=WebSocket,resyncInterval:u=-1,maxBackoffTime:p=2500,disableBc:m=!1}={}){for(super();"/"===i[i.length-1];)i=i.slice(0,i.length-1);this.serverUrl=i,this.bcChannel=i+"/"+n,this.maxBackoffTime=p,this.params=r,this.protocols=l,this.roomname=n,this.doc=o,this._WS=d,this.awareness=h,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=m,this.wsUnsuccessfulReconnects=0,this.messageHandlers=rt.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=c,this._resyncInterval=0,u>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const s=a();t(s,0),et(s,o),this.ws.send(e(s))}}),u)),this._bcSubscriber=(t,s)=>{if(s!==this){const s=dt(this,new Uint8Array(t),!1);B(s)>1&&st(this.bcChannel,e(s),this)}},this._updateHandler=(i,n)=>{if(n!==this){const n=a();t(n,0),((e,i)=>{t(e,2),s(e,i)})(n,i),mt(this,e(n))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:i,updated:n,removed:o})=>{const c=i.concat(n).concat(o),r=a();t(r,1),s(r,at(h,c)),mt(this,e(r))},this._exitHandler=()=>{ht(this.awareness,[o.clientID],"app closed")},H&&"undefined"!=typeof process&&process.on("exit",this._exitHandler),h.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<g()-this.wsLastMessageReceived&&ut(this,this.ws,null)}),3e3),c&&this.connect()}get url(){const t=$(this.params,((t,s)=>`${encodeURIComponent(s)}=${encodeURIComponent(t)}`)).join("&");return this.serverUrl+"/"+this.roomname+(0===t.length?"":"?"+t)}get synced(){return this._synced}set synced(t){this._synced!==t&&(this._synced=t,this.emit("synced",[t]),this.emit("sync",[t]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),H&&"undefined"!=typeof process&&process.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var i;this.bcconnected||(i=this._bcSubscriber,tt(this.bcChannel).subs.add(i),this.bcconnected=!0);const n=a();t(n,0),et(n,this.doc),st(this.bcChannel,e(n),this);const o=a();t(o,0),it(o,this.doc),st(this.bcChannel,e(o),this);const c=a();t(c,3),st(this.bcChannel,e(c),this);const h=a();t(h,1),s(h,at(this.awareness,[this.doc.clientID])),st(this.bcChannel,e(h),this)}disconnectBc(){const i=a();t(i,1),s(i,at(this.awareness,[this.doc.clientID],new Map)),mt(this,e(i)),this.bcconnected&&(((t,s)=>{const e=tt(t);e.subs.delete(s)&&0===e.subs.size&&(e.bc.close(),q.delete(t))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&ut(this,this.ws,null)}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(pt(this),this.connectBc())}}class St{provider;isConnected=!1;constructor(t,s,e){const i=e?.url||"ws://localhost:1234",n=e?.roomName||t;this.provider=new yt(i,n,s,{params:e?.params,protocols:e?.protocols,WebSocketPolyfill:e?.WebSocketPolyfill,awareness:e?.awareness,maxBackoffTime:e?.maxBackoffTime,disableBc:!0}),this.setupEventListeners(),console.info(`WebSocket Provider initialized: ${i}/${n}`)}static with(t){return{create:(s,e)=>new St(s,e,t)}}setupEventListeners(){this.provider.on("status",(({status:t})=>{"connected"===t?(this.isConnected=!0,console.info("WebSocket connected")):"disconnected"===t&&(this.isConnected=!1,console.info("WebSocket disconnected"))})),this.provider.on("sync",(t=>{t&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((t,s)=>{const e=setTimeout((()=>{s(new Error("WebSocket connection timeout"))}),1e4),i=({status:s})=>{"connected"===s&&(clearTimeout(e),this.provider.off("status",i),this.isConnected=!0,t())};this.provider.on("status",i),this.provider.wsconnected&&(clearTimeout(e),this.provider.off("status",i),this.isConnected=!0,t())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}class ft{provider;isConnected=!1;isSynced=!1;usesSharedSocket=!1;static sharedWebSocketProvider=null;constructor(t,s,e){const i=e?.name||t,n=e?.url||"ws://localhost:1234",o=e?.websocketProvider||ft.sharedWebSocketProvider;if(o){this.usesSharedSocket=!0;const t={websocketProvider:o,name:i,document:s,token:e?.token||null,onConnect:()=>{this.isConnected=!0,e?.quiet||console.info(`Hocuspocus connected: ${i}`),e?.onConnect&&e.onConnect()},onDisconnect:()=>{this.isConnected=!1,this.isSynced=!1,e?.quiet||console.info(`Hocuspocus disconnected: ${i}`),e?.onDisconnect&&e.onDisconnect()},onSynced:()=>{this.isSynced=!0,e?.quiet||console.info(`Hocuspocus synced: ${i}`),e?.onSynced&&e.onSynced()}};void 0!==e?.forceSyncInterval&&(t.forceSyncInterval=e.forceSyncInterval),e?.onAuthenticationFailed&&(t.onAuthenticationFailed=e.onAuthenticationFailed),e?.onStatus&&(t.onStatus=e.onStatus),this.provider=new O(t),this.provider.attach(),e?.quiet||console.info(`Hocuspocus Provider initialized (multiplexed): ${i}`)}else{this.usesSharedSocket=!1;const t={url:n,name:i,document:s,token:e?.token||null,onConnect:()=>{this.isConnected=!0,e?.quiet||console.info(`Hocuspocus connected: ${i}`),e?.onConnect&&e.onConnect()},onDisconnect:()=>{this.isConnected=!1,this.isSynced=!1,e?.quiet||console.info(`Hocuspocus disconnected: ${i}`),e?.onDisconnect&&e.onDisconnect()},onSynced:()=>{this.isSynced=!0,e?.quiet||console.info(`Hocuspocus synced: ${i}`),e?.onSynced&&e.onSynced()}};void 0!==e?.forceSyncInterval&&(t.forceSyncInterval=e.forceSyncInterval),e?.onAuthenticationFailed&&(t.onAuthenticationFailed=e.onAuthenticationFailed),e?.onStatus&&(t.onStatus=e.onStatus),e?.WebSocketPolyfill&&(t.WebSocketPolyfill=e.WebSocketPolyfill),this.provider=new O(t),e?.quiet||console.info(`Hocuspocus Provider initialized: ${n}/${i}`)}}static createSharedWebSocket(t){if(ft.sharedWebSocketProvider)return console.warn("Shared WebSocket already exists. Returning existing instance."),ft.sharedWebSocketProvider;const s={url:t.url};return t.WebSocketPolyfill&&(s.WebSocketPolyfill=t.WebSocketPolyfill),t.onConnect&&(s.onConnect=t.onConnect),t.onDisconnect&&(s.onDisconnect=t.onDisconnect),t.onStatus&&(s.onStatus=t.onStatus),ft.sharedWebSocketProvider=new _(s),console.info(`Shared Hocuspocus WebSocket created: ${t.url}`),ft.sharedWebSocketProvider}static destroySharedWebSocket(){ft.sharedWebSocketProvider&&(ft.sharedWebSocketProvider.destroy(),ft.sharedWebSocketProvider=null,console.info("Shared Hocuspocus WebSocket destroyed"))}static getSharedWebSocket(){return ft.sharedWebSocketProvider}static with(t){return{create:(s,e)=>new ft(s,e,t)}}async connect(){if(!this.isSynced)return new Promise(((t,s)=>{const e=setTimeout((()=>{s(new Error("Hocuspocus connection timeout"))}),1e4),i=()=>{clearTimeout(e),this.provider.off("synced",i),t()};if(this.provider.on("synced",i),this.provider.isSynced)return clearTimeout(e),this.provider.off("synced",i),void t();this.isConnected||this.usesSharedSocket||this.provider.connect()}))}disconnect(){this.provider&&(this.usesSharedSocket?this.provider.detach():this.provider.disconnect()),this.isConnected=!1,this.isSynced=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1,this.isSynced=!1}}export{j as BroadcastSyncProvider,ft as HocuspocusSyncProvider,St as WebSocketSyncProvider}
|
|
1
|
+
import{w as t,a as s,t as e,r as i,b as n,e as o,c,d as h,f as a,g as r,s as l,h as d,i as u,v as p,j as m,o as y,k as f,l as w,m as k,O as v,n as b,p as g,q as z,u as $,x as C,y as x,z as B,A as H,B as A,C as D,H as O,D as _}from"./p-DLpNl6R9.js";export{W as DEFAULT_BRUSH_CONFIG,Y as DEFAULT_LINE_TOOL_CONFIG,X as DEFAULT_TEXT_CONFIG,S as IndexedDBSyncProvider,V as KritzelAnchorManager,T as KritzelAppStateMap,J as KritzelBrushTool,Q as KritzelCursorHelper,M as KritzelEraserTool,I as KritzelGroup,F as KritzelImage,N as KritzelImageTool,G as KritzelLine,L as KritzelLineTool,E as KritzelPath,R as KritzelSelectionTool,K as KritzelText,P as KritzelTextTool,U as KritzelWorkspace}from"./p-DLpNl6R9.js";class j{doc;channel;_synced=!1;constructor(t,s,e){this.doc=s,this.channel=new BroadcastChannel(t),this.channel.onmessage=t=>{this.handleMessage(t.data)},this.doc.on("update",this.handleDocUpdate),this.broadcastSync(),setTimeout((()=>{this._synced=!0}),100),console.info(`BroadcastChannel Provider initialized: ${t}`)}handleDocUpdate=(i,n)=>{if(n!==this){const n=a();t(n,0),s(n,i),this.channel.postMessage(e(n))}};handleMessage(h){const l=r(new Uint8Array(h));switch(i(l)){case 0:const i=n(l);c(this.doc,i,this);break;case 1:this.broadcastSync();break;case 2:const h=n(l),r=o(this.doc,h);if(r.length>0){const i=a();t(i,0),s(i,r),this.channel.postMessage(e(i))}}}broadcastSync(){const i=a();t(i,2),s(i,h(this.doc)),this.channel.postMessage(e(i))}async connect(){if(!this._synced)return new Promise((t=>{const s=()=>{this._synced?t():setTimeout(s,50)};s()}))}disconnect(){}destroy(){this.doc.off("update",this.handleDocUpdate),this.channel.close()}}const q=new Map,Z="undefined"==typeof BroadcastChannel?class{constructor(t){this.room=t,this.onmessage=null,this._onChange=s=>s.key===t&&null!==this.onmessage&&this.onmessage({data:u(s.newValue||"")}),y(this._onChange)}postMessage(t){p.setItem(this.room,m(f(t)))}close(){w(this._onChange)}}:BroadcastChannel,tt=t=>l(q,t,(()=>{const s=d(),e=new Z(t);return e.onmessage=t=>s.forEach((s=>s(t.data,"broadcastchannel"))),{bc:e,subs:s}})),st=(t,s,e=null)=>{const i=tt(t);i.bc.postMessage(s),i.subs.forEach((t=>t(s,e)))},et=(e,i)=>{t(e,0);const n=h(i);s(e,n)},it=(e,i,n)=>{t(e,1),s(e,o(i,n))},nt=(t,s,e,i)=>{try{c(s,n(t),e)}catch(t){null!=i&&i(t),console.error("Caught error while handling a Yjs update",t)}},ot=nt;class ct extends v{constructor(t){super(),this.doc=t,this.clientID=t.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const t=g();null!==this.getLocalState()&&15e3<=t-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const s=[];this.meta.forEach(((e,i)=>{i!==this.clientID&&3e4<=t-e.lastUpdated&&this.states.has(i)&&s.push(i)})),s.length>0&&ht(this,s,"timeout")}),b(3e3)),t.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(t){const s=this.clientID,e=this.meta.get(s),i=void 0===e?0:e.clock+1,n=this.states.get(s);null===t?this.states.delete(s):this.states.set(s,t),this.meta.set(s,{clock:i,lastUpdated:g()});const o=[],c=[],h=[],a=[];null===t?a.push(s):null==n?null!=t&&o.push(s):(c.push(s),z(n,t)||h.push(s)),(o.length>0||h.length>0||a.length>0)&&this.emit("change",[{added:o,updated:h,removed:a},"local"]),this.emit("update",[{added:o,updated:c,removed:a},"local"])}setLocalStateField(t,s){const e=this.getLocalState();null!==e&&this.setLocalState({...e,[t]:s})}getStates(){return this.states}}const ht=(t,s,e)=>{const i=[];for(let e=0;e<s.length;e++){const n=s[e];if(t.states.has(n)){if(t.states.delete(n),n===t.clientID){const s=t.meta.get(n);t.meta.set(n,{clock:s.clock+1,lastUpdated:g()})}i.push(n)}}i.length>0&&(t.emit("change",[{added:[],updated:[],removed:i},e]),t.emit("update",[{added:[],updated:[],removed:i},e]))},at=(s,i,n=s.states)=>{const o=i.length,c=a();t(c,o);for(let e=0;e<o;e++){const o=i[e],h=n.get(o)||null,a=s.meta.get(o).clock;t(c,o),t(c,a),$(c,JSON.stringify(h))}return e(c)},rt=[];rt[0]=(s,e,o,c)=>{t(s,0);const h=((t,s,e,o,c)=>{const h=i(t);switch(h){case 0:((t,s,e)=>{it(s,e,n(t))})(t,s,e);break;case 1:nt(t,e,o,c);break;case 2:ot(t,e,o,c);break;default:throw new Error("Unknown message type")}return h})(e,s,o.doc,o);c&&1===h&&!o.synced&&(o.synced=!0)},rt[3]=(e,i,n)=>{t(e,1),s(e,at(n.awareness,Array.from(n.awareness.getStates().keys())))},rt[1]=(t,s,e)=>{((t,s,e)=>{const n=r(s),o=g(),c=[],h=[],a=[],l=[],d=i(n);for(let s=0;s<d;s++){const s=i(n);let e=i(n);const r=JSON.parse(k(n)),d=t.meta.get(s),u=t.states.get(s),p=void 0===d?0:d.clock;(p<e||p===e&&null===r&&t.states.has(s))&&(null===r?s===t.clientID&&null!=t.getLocalState()?e++:t.states.delete(s):t.states.set(s,r),t.meta.set(s,{clock:e,lastUpdated:o}),void 0===d&&null!==r?c.push(s):void 0!==d&&null===r?l.push(s):null!==r&&(z(r,u)||a.push(s),h.push(s)))}(c.length>0||a.length>0||l.length>0)&&t.emit("change",[{added:c,updated:a,removed:l},e]),(c.length>0||h.length>0||l.length>0)&&t.emit("update",[{added:c,updated:h,removed:l},e])})(e.awareness,n(s),e)},rt[2]=(t,s,e)=>{((t,s,e)=>{0===i(t)&&e(0,k(t))})(s,0,((t,s)=>lt(e,s)))};const lt=(t,s)=>console.warn(`Permission denied to access ${t.url}.\n${s}`),dt=(t,s,e)=>{const n=r(s),o=a(),c=i(n),h=t.messageHandlers[c];return h?h(o,n,t,e,c):console.error("Unable to compute message"),o},ut=(t,s,e)=>{s===t.ws&&(t.emit("connection-close",[e,t]),t.ws=null,s.close(),t.wsconnecting=!1,t.wsconnected?(t.wsconnected=!1,t.synced=!1,ht(t.awareness,Array.from(t.awareness.getStates().keys()).filter((s=>s!==t.doc.clientID)),t),t.emit("status",[{status:"disconnected"}])):t.wsUnsuccessfulReconnects++,setTimeout(pt,A(100*D(2,t.wsUnsuccessfulReconnects),t.maxBackoffTime),t))},pt=i=>{if(i.shouldConnect&&null===i.ws){const n=new i._WS(i.url,i.protocols);n.binaryType="arraybuffer",i.ws=n,i.wsconnecting=!0,i.wsconnected=!1,i.synced=!1,n.onmessage=t=>{i.wsLastMessageReceived=g();const s=dt(i,new Uint8Array(t.data),!0);B(s)>1&&n.send(e(s))},n.onerror=t=>{i.emit("connection-error",[t,i])},n.onclose=t=>{ut(i,n,t)},n.onopen=()=>{i.wsLastMessageReceived=g(),i.wsconnecting=!1,i.wsconnected=!0,i.wsUnsuccessfulReconnects=0,i.emit("status",[{status:"connected"}]);const o=a();if(t(o,0),et(o,i.doc),n.send(e(o)),null!==i.awareness.getLocalState()){const o=a();t(o,1),s(o,at(i.awareness,[i.doc.clientID])),n.send(e(o))}},i.emit("status",[{status:"connecting"}])}},mt=(t,s)=>{const e=t.ws;t.wsconnected&&e&&e.readyState===e.OPEN&&e.send(s),t.bcconnected&&st(t.bcChannel,s,t)};class yt extends x{constructor(i,n,o,{connect:c=!0,awareness:h=new ct(o),params:r={},protocols:l=[],WebSocketPolyfill:d=WebSocket,resyncInterval:u=-1,maxBackoffTime:p=2500,disableBc:m=!1}={}){for(super();"/"===i[i.length-1];)i=i.slice(0,i.length-1);this.serverUrl=i,this.bcChannel=i+"/"+n,this.maxBackoffTime=p,this.params=r,this.protocols=l,this.roomname=n,this.doc=o,this._WS=d,this.awareness=h,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=m,this.wsUnsuccessfulReconnects=0,this.messageHandlers=rt.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=c,this._resyncInterval=0,u>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const s=a();t(s,0),et(s,o),this.ws.send(e(s))}}),u)),this._bcSubscriber=(t,s)=>{if(s!==this){const s=dt(this,new Uint8Array(t),!1);B(s)>1&&st(this.bcChannel,e(s),this)}},this._updateHandler=(i,n)=>{if(n!==this){const n=a();t(n,0),((e,i)=>{t(e,2),s(e,i)})(n,i),mt(this,e(n))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:i,updated:n,removed:o})=>{const c=i.concat(n).concat(o),r=a();t(r,1),s(r,at(h,c)),mt(this,e(r))},this._exitHandler=()=>{ht(this.awareness,[o.clientID],"app closed")},H&&"undefined"!=typeof process&&process.on("exit",this._exitHandler),h.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<g()-this.wsLastMessageReceived&&ut(this,this.ws,null)}),3e3),c&&this.connect()}get url(){const t=C(this.params,((t,s)=>`${encodeURIComponent(s)}=${encodeURIComponent(t)}`)).join("&");return this.serverUrl+"/"+this.roomname+(0===t.length?"":"?"+t)}get synced(){return this._synced}set synced(t){this._synced!==t&&(this._synced=t,this.emit("synced",[t]),this.emit("sync",[t]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),H&&"undefined"!=typeof process&&process.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var i;this.bcconnected||(i=this._bcSubscriber,tt(this.bcChannel).subs.add(i),this.bcconnected=!0);const n=a();t(n,0),et(n,this.doc),st(this.bcChannel,e(n),this);const o=a();t(o,0),it(o,this.doc),st(this.bcChannel,e(o),this);const c=a();t(c,3),st(this.bcChannel,e(c),this);const h=a();t(h,1),s(h,at(this.awareness,[this.doc.clientID])),st(this.bcChannel,e(h),this)}disconnectBc(){const i=a();t(i,1),s(i,at(this.awareness,[this.doc.clientID],new Map)),mt(this,e(i)),this.bcconnected&&(((t,s)=>{const e=tt(t);e.subs.delete(s)&&0===e.subs.size&&(e.bc.close(),q.delete(t))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&ut(this,this.ws,null)}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(pt(this),this.connectBc())}}class St{provider;isConnected=!1;constructor(t,s,e){const i=e?.url||"ws://localhost:1234",n=e?.roomName||t;this.provider=new yt(i,n,s,{params:e?.params,protocols:e?.protocols,WebSocketPolyfill:e?.WebSocketPolyfill,awareness:e?.awareness,maxBackoffTime:e?.maxBackoffTime,disableBc:!0}),this.setupEventListeners(),console.info(`WebSocket Provider initialized: ${i}/${n}`)}static with(t){return{create:(s,e)=>new St(s,e,t)}}setupEventListeners(){this.provider.on("status",(({status:t})=>{"connected"===t?(this.isConnected=!0,console.info("WebSocket connected")):"disconnected"===t&&(this.isConnected=!1,console.info("WebSocket disconnected"))})),this.provider.on("sync",(t=>{t&&console.info("WebSocket synced")}))}async connect(){if(!this.isConnected)return new Promise(((t,s)=>{const e=setTimeout((()=>{s(new Error("WebSocket connection timeout"))}),1e4),i=({status:s})=>{"connected"===s&&(clearTimeout(e),this.provider.off("status",i),this.isConnected=!0,t())};this.provider.on("status",i),this.provider.wsconnected&&(clearTimeout(e),this.provider.off("status",i),this.isConnected=!0,t())}))}disconnect(){this.provider&&this.provider.disconnect(),this.isConnected=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1}}class ft{provider;isConnected=!1;isSynced=!1;usesSharedSocket=!1;static sharedWebSocketProvider=null;constructor(t,s,e){const i=e?.name||t,n=e?.url||"ws://localhost:1234",o=e?.websocketProvider||ft.sharedWebSocketProvider;if(o){this.usesSharedSocket=!0;const t={websocketProvider:o,name:i,document:s,token:e?.token||null,onConnect:()=>{this.isConnected=!0,e?.quiet||console.info(`Hocuspocus connected: ${i}`),e?.onConnect&&e.onConnect()},onDisconnect:()=>{this.isConnected=!1,this.isSynced=!1,e?.quiet||console.info(`Hocuspocus disconnected: ${i}`),e?.onDisconnect&&e.onDisconnect()},onSynced:()=>{this.isSynced=!0,e?.quiet||console.info(`Hocuspocus synced: ${i}`),e?.onSynced&&e.onSynced()}};void 0!==e?.forceSyncInterval&&(t.forceSyncInterval=e.forceSyncInterval),e?.onAuthenticationFailed&&(t.onAuthenticationFailed=e.onAuthenticationFailed),e?.onStatus&&(t.onStatus=e.onStatus),this.provider=new O(t),this.provider.attach(),e?.quiet||console.info(`Hocuspocus Provider initialized (multiplexed): ${i}`)}else{this.usesSharedSocket=!1;const t={url:n,name:i,document:s,token:e?.token||null,onConnect:()=>{this.isConnected=!0,e?.quiet||console.info(`Hocuspocus connected: ${i}`),e?.onConnect&&e.onConnect()},onDisconnect:()=>{this.isConnected=!1,this.isSynced=!1,e?.quiet||console.info(`Hocuspocus disconnected: ${i}`),e?.onDisconnect&&e.onDisconnect()},onSynced:()=>{this.isSynced=!0,e?.quiet||console.info(`Hocuspocus synced: ${i}`),e?.onSynced&&e.onSynced()}};void 0!==e?.forceSyncInterval&&(t.forceSyncInterval=e.forceSyncInterval),e?.onAuthenticationFailed&&(t.onAuthenticationFailed=e.onAuthenticationFailed),e?.onStatus&&(t.onStatus=e.onStatus),e?.WebSocketPolyfill&&(t.WebSocketPolyfill=e.WebSocketPolyfill),this.provider=new O(t),e?.quiet||console.info(`Hocuspocus Provider initialized: ${n}/${i}`)}}static createSharedWebSocket(t){if(ft.sharedWebSocketProvider)return console.warn("Shared WebSocket already exists. Returning existing instance."),ft.sharedWebSocketProvider;const s={url:t.url};return t.WebSocketPolyfill&&(s.WebSocketPolyfill=t.WebSocketPolyfill),t.onConnect&&(s.onConnect=t.onConnect),t.onDisconnect&&(s.onDisconnect=t.onDisconnect),t.onStatus&&(s.onStatus=t.onStatus),ft.sharedWebSocketProvider=new _(s),console.info(`Shared Hocuspocus WebSocket created: ${t.url}`),ft.sharedWebSocketProvider}static destroySharedWebSocket(){ft.sharedWebSocketProvider&&(ft.sharedWebSocketProvider.destroy(),ft.sharedWebSocketProvider=null,console.info("Shared Hocuspocus WebSocket destroyed"))}static getSharedWebSocket(){return ft.sharedWebSocketProvider}static with(t){return{create:(s,e)=>new ft(s,e,t)}}async connect(){if(!this.isSynced)return new Promise(((t,s)=>{const e=setTimeout((()=>{s(new Error("Hocuspocus connection timeout"))}),1e4),i=()=>{clearTimeout(e),this.provider.off("synced",i),t()};if(this.provider.on("synced",i),this.provider.isSynced)return clearTimeout(e),this.provider.off("synced",i),void t();this.isConnected||this.usesSharedSocket||this.provider.connect()}))}disconnect(){this.provider&&(this.usesSharedSocket?this.provider.detach():this.provider.disconnect()),this.isConnected=!1,this.isSynced=!1}destroy(){this.provider&&this.provider.destroy(),this.isConnected=!1,this.isSynced=!1}}export{j as BroadcastSyncProvider,ft as HocuspocusSyncProvider,St as WebSocketSyncProvider}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,c as t,h as o,H as n}from"./p-
|
|
1
|
+
import{r as e,c as t,h as o,H as n}from"./p-OLdaFN6W.js";const r=class{constructor(o){e(this,o),this.typeChange=t(this,"typeChange")}type="pen";brushOptions=[{value:"pen",label:"Pen"},{value:"highlighter",label:"Highlighter"}];typeChange;handleDropdownValueChange(e){this.typeChange.emit(e.detail)}render(){const e=this.brushOptions.map((e=>({value:e.value,label:e.label})));return o(n,{key:"51a7f84685032fd8fc967b22bee7c0711e811a54"},o("kritzel-dropdown",{key:"e49d7062c695458d345738d88a0adfc96b575e61",options:e,value:this.type,onValueChanged:e=>this.handleDropdownValueChange(e)},o("button",{key:"ebbbf1a55b89e91012ca44c5cf30acfb77332b50",class:"brush-style-button",slot:"prefix"},o("kritzel-icon",{key:"dae002c9ab5e3486c726202426eb076a8f33b109",name:this.type,size:16}))))}};r.style=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.brush-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}";export{r as kritzel_brush_style}
|