kritzel-stencil 0.0.171 → 0.1.0
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/app-globals-V2Kpy_OQ.js +0 -3
- package/dist/cjs/{default-line-tool.config-JuTDR6PF.js → default-line-tool.config-7eJND6Jb.js} +1516 -206
- package/dist/cjs/index-BeKMS-Zt.js +3280 -0
- package/dist/cjs/index.cjs.js +10 -7
- package/dist/cjs/kritzel-brush-style.cjs.entry.js +4 -5
- package/dist/cjs/kritzel-color_22.cjs.entry.js +291 -106
- package/dist/cjs/loader.cjs.js +2 -3
- package/dist/cjs/stencil.cjs.js +3 -4
- package/dist/collection/classes/core/core.class.js +0 -1
- package/dist/collection/classes/core/reviver.class.js +0 -1
- package/dist/collection/classes/core/store.class.js +0 -1
- package/dist/collection/classes/core/viewport.class.js +0 -1
- package/dist/collection/classes/core/workspace.class.js +0 -1
- package/dist/collection/classes/handlers/base.handler.js +0 -1
- package/dist/collection/classes/handlers/context-menu.handler.js +0 -1
- package/dist/collection/classes/handlers/hover.handler.js +0 -1
- package/dist/collection/classes/handlers/key.handler.js +0 -1
- package/dist/collection/classes/handlers/line-handle.handler.js +0 -1
- package/dist/collection/classes/handlers/move.handler.js +0 -1
- package/dist/collection/classes/handlers/resize.handler.js +0 -1
- package/dist/collection/classes/handlers/rotation.handler.js +0 -1
- package/dist/collection/classes/handlers/selection.handler.js +0 -1
- package/dist/collection/classes/managers/anchor.manager.js +0 -1
- package/dist/collection/classes/managers/cursor.manager.js +0 -1
- package/dist/collection/classes/objects/base-object.class.js +0 -1
- package/dist/collection/classes/objects/custom-element.class.js +0 -1
- package/dist/collection/classes/objects/group.class.js +0 -1
- package/dist/collection/classes/objects/image.class.js +0 -1
- package/dist/collection/classes/objects/line.class.js +0 -1
- package/dist/collection/classes/objects/path.class.js +0 -1
- package/dist/collection/classes/objects/selection-box.class.js +0 -1
- package/dist/collection/classes/objects/selection-group.class.js +0 -1
- package/dist/collection/classes/objects/shape.class.js +0 -1
- package/dist/collection/classes/objects/text.class.js +0 -1
- package/dist/collection/classes/providers/broadcast-sync-provider.class.js +0 -1
- package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js +0 -1
- package/dist/collection/classes/providers/indexeddb-sync-provider.class.js +0 -1
- package/dist/collection/classes/providers/websocket-sync-provider.class.js +0 -1
- package/dist/collection/classes/registries/icon-registry.class.js +0 -1
- package/dist/collection/classes/registries/tool.registry.js +0 -1
- package/dist/collection/classes/structures/app-state-map.structure.js +0 -1
- package/dist/collection/classes/structures/object-map.structure.js +0 -1
- package/dist/collection/classes/structures/quadtree.structure.js +0 -1
- package/dist/collection/classes/tools/base-tool.class.js +0 -1
- package/dist/collection/classes/tools/brush-tool.class.js +0 -1
- package/dist/collection/classes/tools/eraser-tool.class.js +0 -1
- package/dist/collection/classes/tools/image-tool.class.js +0 -1
- package/dist/collection/classes/tools/line-tool.class.js +0 -1
- package/dist/collection/classes/tools/selection-tool.class.js +0 -1
- package/dist/collection/classes/tools/shape-tool.class.js +0 -1
- package/dist/collection/classes/tools/text-tool.class.js +0 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +1 -2
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +2 -3
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +6 -7
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +1 -2
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +2 -3
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +8 -3
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +151 -21
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +192 -23
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +1 -2
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +1 -2
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +8 -3
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +0 -1
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +1 -2
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +2 -3
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +1 -2
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +1 -2
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -2
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +2 -3
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +1 -2
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -3
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -3
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +1 -2
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +3 -4
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -2
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +0 -1
- package/dist/collection/configs/default-brush-tool.config.js +0 -1
- package/dist/collection/configs/default-engine-config.js +0 -1
- package/dist/collection/configs/default-line-tool.config.js +0 -1
- package/dist/collection/configs/default-shape-tool.config.js +0 -1
- package/dist/collection/configs/default-sync.config.js +0 -1
- package/dist/collection/configs/default-text-tool.config.js +0 -1
- package/dist/collection/constants/core.constants.js +0 -1
- package/dist/collection/constants/engine.constants.js +0 -1
- package/dist/collection/enums/event-button.enum.js +0 -1
- package/dist/collection/enums/handle-type.enum.js +0 -1
- package/dist/collection/enums/shape-type.enum.js +0 -1
- package/dist/collection/helpers/class.helper.js +0 -1
- package/dist/collection/helpers/cursor.helper.js +0 -1
- package/dist/collection/helpers/devices.helper.js +0 -1
- package/dist/collection/helpers/event.helper.js +0 -1
- package/dist/collection/helpers/geometry.helper.js +0 -1
- package/dist/collection/helpers/html.helper.js +0 -1
- package/dist/collection/helpers/keyboard.helper.js +0 -1
- package/dist/collection/helpers/math.helper.js +0 -1
- package/dist/collection/helpers/object.helper.js +0 -1
- package/dist/collection/index.js +0 -1
- package/dist/collection/interfaces/anchor.interface.js +0 -1
- package/dist/collection/interfaces/arrow-head.interface.js +0 -1
- package/dist/collection/interfaces/bounding-box.interface.js +0 -1
- package/dist/collection/interfaces/clonable.interface.js +0 -1
- package/dist/collection/interfaces/context-menu-item.interface.js +0 -1
- package/dist/collection/interfaces/debug-info.interface.js +0 -1
- package/dist/collection/interfaces/engine-state.interface.js +0 -1
- package/dist/collection/interfaces/line-options.interface.js +0 -1
- package/dist/collection/interfaces/menu-item.interface.js +0 -1
- package/dist/collection/interfaces/object.interface.js +0 -1
- package/dist/collection/interfaces/path-options.interface.js +0 -1
- package/dist/collection/interfaces/point.interface.js +0 -1
- package/dist/collection/interfaces/polygon.interface.js +0 -1
- package/dist/collection/interfaces/selection-state.interface.js +0 -1
- package/dist/collection/interfaces/serializable.interface.js +0 -1
- package/dist/collection/interfaces/shortcut.interface.js +0 -1
- package/dist/collection/interfaces/sync-config.interface.js +0 -1
- package/dist/collection/interfaces/sync-provider.interface.js +0 -1
- package/dist/collection/interfaces/tool.interface.js +0 -1
- package/dist/collection/interfaces/toolbar-control.interface.js +0 -1
- package/dist/collection/interfaces/undo-state.interface.js +0 -1
- package/dist/collection/types/deep-readonly.type.js +0 -1
- package/dist/collection/types/state.types.js +0 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -1477
- package/dist/components/kritzel-brush-style.js +1 -67
- package/dist/components/kritzel-color-palette.js +1 -9
- package/dist/components/kritzel-color.js +1 -9
- package/dist/components/kritzel-context-menu.js +1 -9
- package/dist/components/kritzel-control-brush-config.js +1 -9
- package/dist/components/kritzel-control-text-config.js +1 -9
- package/dist/components/kritzel-controls.js +1 -9
- package/dist/components/kritzel-cursor-trail.js +1 -9
- package/dist/components/kritzel-dropdown.js +1 -9
- package/dist/components/kritzel-editor.js +1 -605
- package/dist/components/kritzel-engine.js +1 -9
- package/dist/components/kritzel-font-family.js +1 -9
- package/dist/components/kritzel-font-size.js +1 -9
- package/dist/components/kritzel-font.js +1 -9
- package/dist/components/kritzel-icon.js +1 -9
- package/dist/components/kritzel-menu-item.js +1 -9
- package/dist/components/kritzel-menu.js +1 -9
- package/dist/components/kritzel-portal.js +1 -9
- package/dist/components/kritzel-split-button.js +1 -9
- package/dist/components/kritzel-stroke-size.js +1 -9
- package/dist/components/kritzel-tooltip.js +1 -9
- package/dist/components/kritzel-utility-panel.js +1 -9
- package/dist/components/kritzel-workspace-manager.js +1 -9
- package/dist/components/p-1z-ds26_.js +1 -0
- package/dist/components/p-4FEa4ADy.js +1 -0
- package/dist/components/p-B0kd2rUI.js +1 -16
- package/dist/components/p-B7Fdo5QJ.js +1 -0
- package/dist/components/p-BXaWhpO2.js +1 -0
- package/dist/components/p-Bj_Og27M.js +1 -0
- package/dist/components/p-BtuXeItZ.js +1 -0
- package/dist/components/p-C-d2IH4v.js +1 -0
- package/dist/components/p-C3UriJh7.js +1 -0
- package/dist/components/p-C4krHoUl.js +1 -0
- package/dist/components/p-C6qB08BS.js +1 -68
- package/dist/components/p-CF5L2Gdl.js +1 -0
- package/dist/components/p-CXzfYQ_u.js +1 -0
- package/dist/components/p-CeKT_dTd.js +1 -0
- package/dist/components/p-Cp15toXH.js +1 -0
- package/dist/components/p-Cy77SpWt.js +1 -0
- package/dist/components/p-D1tfzpy8.js +1 -0
- package/dist/components/p-D3LRBk2t.js +9 -0
- package/dist/components/p-D5ZsALCP.js +1 -0
- package/dist/components/p-D8W6LE-c.js +1 -11
- package/dist/components/p-DB5s1NY4.js +1 -0
- package/dist/components/p-DTezr6w9.js +1 -0
- package/dist/components/p-Du1vxHy8.js +1 -0
- package/dist/components/p-IAqZFssU.js +1 -0
- package/dist/components/p-g0N9j_uT.js +1 -0
- package/dist/components/p-l10It7Nm.js +1 -30
- package/dist/components/p-n789Y3S-.js +1 -45
- package/dist/esm/app-globals-DQuL1Twl.js +0 -3
- package/dist/esm/{default-line-tool.config-CuBm2vpW.js → default-line-tool.config-CD5sTKH-.js} +1515 -205
- package/dist/esm/index-BqhmuUH2.js +3253 -0
- package/dist/esm/index.js +11 -8
- package/dist/esm/kritzel-brush-style.entry.js +4 -5
- package/dist/esm/kritzel-color_22.entry.js +291 -106
- package/dist/esm/loader.js +3 -4
- package/dist/esm/stencil.js +4 -5
- package/dist/stencil/index.esm.js +1 -2
- package/dist/stencil/p-09295079.entry.js +1 -0
- package/dist/stencil/p-381c0e9c.entry.js +9 -0
- package/dist/stencil/p-BqhmuUH2.js +2 -0
- package/dist/stencil/p-CD5sTKH-.js +1 -0
- package/dist/stencil/p-DQuL1Twl.js +1 -2
- package/dist/stencil/stencil.esm.js +1 -2
- package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
- package/dist/types/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +22 -3
- package/dist/types/components/shared/kritzel-font-size/kritzel-font-size.d.ts +1 -0
- package/dist/types/components.d.ts +2 -2
- package/dist/types/stencil-public-runtime.d.ts +57 -3
- package/package.json +6 -1
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
- package/dist/cjs/default-line-tool.config-JuTDR6PF.js.map +0 -1
- package/dist/cjs/index-Cj__YTlG.js +0 -1650
- package/dist/cjs/index-Cj__YTlG.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/kritzel-brush-style.entry.cjs.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/stencil.cjs.js.map +0 -1
- package/dist/collection/classes/core/core.class.js.map +0 -1
- package/dist/collection/classes/core/reviver.class.js.map +0 -1
- package/dist/collection/classes/core/store.class.js.map +0 -1
- package/dist/collection/classes/core/viewport.class.js.map +0 -1
- package/dist/collection/classes/core/workspace.class.js.map +0 -1
- package/dist/collection/classes/handlers/base.handler.js.map +0 -1
- package/dist/collection/classes/handlers/context-menu.handler.js.map +0 -1
- package/dist/collection/classes/handlers/hover.handler.js.map +0 -1
- package/dist/collection/classes/handlers/key.handler.js.map +0 -1
- package/dist/collection/classes/handlers/line-handle.handler.js.map +0 -1
- package/dist/collection/classes/handlers/move.handler.js.map +0 -1
- package/dist/collection/classes/handlers/resize.handler.js.map +0 -1
- package/dist/collection/classes/handlers/rotation.handler.js.map +0 -1
- package/dist/collection/classes/handlers/selection.handler.js.map +0 -1
- package/dist/collection/classes/managers/anchor.manager.js.map +0 -1
- package/dist/collection/classes/managers/cursor.manager.js.map +0 -1
- package/dist/collection/classes/objects/base-object.class.js.map +0 -1
- package/dist/collection/classes/objects/custom-element.class.js.map +0 -1
- package/dist/collection/classes/objects/group.class.js.map +0 -1
- package/dist/collection/classes/objects/image.class.js.map +0 -1
- package/dist/collection/classes/objects/line.class.js.map +0 -1
- package/dist/collection/classes/objects/path.class.js.map +0 -1
- package/dist/collection/classes/objects/selection-box.class.js.map +0 -1
- package/dist/collection/classes/objects/selection-group.class.js.map +0 -1
- package/dist/collection/classes/objects/shape.class.js.map +0 -1
- package/dist/collection/classes/objects/text.class.js.map +0 -1
- package/dist/collection/classes/providers/broadcast-sync-provider.class.js.map +0 -1
- package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js.map +0 -1
- package/dist/collection/classes/providers/indexeddb-sync-provider.class.js.map +0 -1
- package/dist/collection/classes/providers/websocket-sync-provider.class.js.map +0 -1
- package/dist/collection/classes/registries/icon-registry.class.js.map +0 -1
- package/dist/collection/classes/registries/tool.registry.js.map +0 -1
- package/dist/collection/classes/structures/app-state-map.structure.js.map +0 -1
- package/dist/collection/classes/structures/object-map.structure.js.map +0 -1
- package/dist/collection/classes/structures/quadtree.structure.js.map +0 -1
- package/dist/collection/classes/tools/base-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/brush-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/eraser-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/image-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/line-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/selection-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/shape-tool.class.js.map +0 -1
- package/dist/collection/classes/tools/text-tool.class.js.map +0 -1
- package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +0 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +0 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +0 -1
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +0 -1
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +0 -1
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +0 -1
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +0 -1
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +0 -1
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +0 -1
- package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +0 -1
- package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +0 -1
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +0 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +0 -1
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +0 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +0 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +0 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +0 -1
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +0 -1
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +0 -1
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +0 -1
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +0 -1
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +0 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +0 -1
- package/dist/collection/configs/default-brush-tool.config.js.map +0 -1
- package/dist/collection/configs/default-engine-config.js.map +0 -1
- package/dist/collection/configs/default-line-tool.config.js.map +0 -1
- package/dist/collection/configs/default-shape-tool.config.js.map +0 -1
- package/dist/collection/configs/default-sync.config.js.map +0 -1
- package/dist/collection/configs/default-text-tool.config.js.map +0 -1
- package/dist/collection/constants/core.constants.js.map +0 -1
- package/dist/collection/constants/engine.constants.js.map +0 -1
- package/dist/collection/enums/event-button.enum.js.map +0 -1
- package/dist/collection/enums/handle-type.enum.js.map +0 -1
- package/dist/collection/enums/shape-type.enum.js.map +0 -1
- package/dist/collection/helpers/class.helper.js.map +0 -1
- package/dist/collection/helpers/cursor.helper.js.map +0 -1
- package/dist/collection/helpers/devices.helper.js.map +0 -1
- package/dist/collection/helpers/event.helper.js.map +0 -1
- package/dist/collection/helpers/geometry.helper.js.map +0 -1
- package/dist/collection/helpers/html.helper.js.map +0 -1
- package/dist/collection/helpers/keyboard.helper.js.map +0 -1
- package/dist/collection/helpers/math.helper.js.map +0 -1
- package/dist/collection/helpers/object.helper.js.map +0 -1
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/interfaces/anchor.interface.js.map +0 -1
- package/dist/collection/interfaces/arrow-head.interface.js.map +0 -1
- package/dist/collection/interfaces/bounding-box.interface.js.map +0 -1
- package/dist/collection/interfaces/clonable.interface.js.map +0 -1
- package/dist/collection/interfaces/context-menu-item.interface.js.map +0 -1
- package/dist/collection/interfaces/debug-info.interface.js.map +0 -1
- package/dist/collection/interfaces/engine-state.interface.js.map +0 -1
- package/dist/collection/interfaces/line-options.interface.js.map +0 -1
- package/dist/collection/interfaces/menu-item.interface.js.map +0 -1
- package/dist/collection/interfaces/object.interface.js.map +0 -1
- package/dist/collection/interfaces/path-options.interface.js.map +0 -1
- package/dist/collection/interfaces/point.interface.js.map +0 -1
- package/dist/collection/interfaces/polygon.interface.js.map +0 -1
- package/dist/collection/interfaces/selection-state.interface.js.map +0 -1
- package/dist/collection/interfaces/serializable.interface.js.map +0 -1
- package/dist/collection/interfaces/shortcut.interface.js.map +0 -1
- package/dist/collection/interfaces/sync-config.interface.js.map +0 -1
- package/dist/collection/interfaces/sync-provider.interface.js.map +0 -1
- package/dist/collection/interfaces/tool.interface.js.map +0 -1
- package/dist/collection/interfaces/toolbar-control.interface.js.map +0 -1
- package/dist/collection/interfaces/undo-state.interface.js.map +0 -1
- package/dist/collection/types/deep-readonly.type.js.map +0 -1
- package/dist/collection/types/state.types.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/kritzel-brush-style.js.map +0 -1
- package/dist/components/kritzel-color-palette.js.map +0 -1
- package/dist/components/kritzel-color.js.map +0 -1
- package/dist/components/kritzel-context-menu.js.map +0 -1
- package/dist/components/kritzel-control-brush-config.js.map +0 -1
- package/dist/components/kritzel-control-text-config.js.map +0 -1
- package/dist/components/kritzel-controls.js.map +0 -1
- package/dist/components/kritzel-cursor-trail.js.map +0 -1
- package/dist/components/kritzel-dropdown.js.map +0 -1
- package/dist/components/kritzel-editor.js.map +0 -1
- package/dist/components/kritzel-engine.js.map +0 -1
- package/dist/components/kritzel-font-family.js.map +0 -1
- package/dist/components/kritzel-font-size.js.map +0 -1
- package/dist/components/kritzel-font.js.map +0 -1
- package/dist/components/kritzel-icon.js.map +0 -1
- package/dist/components/kritzel-menu-item.js.map +0 -1
- package/dist/components/kritzel-menu.js.map +0 -1
- package/dist/components/kritzel-portal.js.map +0 -1
- package/dist/components/kritzel-split-button.js.map +0 -1
- package/dist/components/kritzel-stroke-size.js.map +0 -1
- package/dist/components/kritzel-tooltip.js.map +0 -1
- package/dist/components/kritzel-utility-panel.js.map +0 -1
- package/dist/components/kritzel-workspace-manager.js.map +0 -1
- package/dist/components/p-B0kd2rUI.js.map +0 -1
- package/dist/components/p-B6r22FSC.js +0 -57
- package/dist/components/p-B6r22FSC.js.map +0 -1
- package/dist/components/p-BUsg2vtg.js +0 -14897
- package/dist/components/p-BUsg2vtg.js.map +0 -1
- package/dist/components/p-B_3OZeom.js +0 -119
- package/dist/components/p-B_3OZeom.js.map +0 -1
- package/dist/components/p-BdwB-S9G.js +0 -130
- package/dist/components/p-BdwB-S9G.js.map +0 -1
- package/dist/components/p-BhLtP5Cg.js +0 -308
- package/dist/components/p-BhLtP5Cg.js.map +0 -1
- package/dist/components/p-Brd9SxWS.js +0 -73
- package/dist/components/p-Brd9SxWS.js.map +0 -1
- package/dist/components/p-C29Efgmc.js +0 -106
- package/dist/components/p-C29Efgmc.js.map +0 -1
- package/dist/components/p-C6-tSCMR.js +0 -272
- package/dist/components/p-C6-tSCMR.js.map +0 -1
- package/dist/components/p-C6qB08BS.js.map +0 -1
- package/dist/components/p-CFH6XRL5.js +0 -75
- package/dist/components/p-CFH6XRL5.js.map +0 -1
- package/dist/components/p-CIts5Uma.js +0 -110
- package/dist/components/p-CIts5Uma.js.map +0 -1
- package/dist/components/p-CO8bwl_3.js +0 -103
- package/dist/components/p-CO8bwl_3.js.map +0 -1
- package/dist/components/p-CRGwaUcp.js +0 -55
- package/dist/components/p-CRGwaUcp.js.map +0 -1
- package/dist/components/p-Ck4lGnmt.js +0 -46
- package/dist/components/p-Ck4lGnmt.js.map +0 -1
- package/dist/components/p-CwkUrTy1.js +0 -1367
- package/dist/components/p-CwkUrTy1.js.map +0 -1
- package/dist/components/p-D0UgEnEL.js +0 -39586
- package/dist/components/p-D0UgEnEL.js.map +0 -1
- package/dist/components/p-D8W6LE-c.js.map +0 -1
- package/dist/components/p-DGnDUmrk.js +0 -62
- package/dist/components/p-DGnDUmrk.js.map +0 -1
- package/dist/components/p-DO4auCYf.js +0 -111
- package/dist/components/p-DO4auCYf.js.map +0 -1
- package/dist/components/p-LAsVgL2e.js +0 -83
- package/dist/components/p-LAsVgL2e.js.map +0 -1
- package/dist/components/p-aeYt0bPO.js +0 -231
- package/dist/components/p-aeYt0bPO.js.map +0 -1
- package/dist/components/p-l10It7Nm.js.map +0 -1
- package/dist/components/p-n789Y3S-.js.map +0 -1
- package/dist/components/p-nIBAWFcK.js +0 -132
- package/dist/components/p-nIBAWFcK.js.map +0 -1
- package/dist/components/p-nZdy-Ii5.js +0 -157
- package/dist/components/p-nZdy-Ii5.js.map +0 -1
- package/dist/components/p-y25EBKEA.js +0 -201
- package/dist/components/p-y25EBKEA.js.map +0 -1
- package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
- package/dist/esm/default-line-tool.config-CuBm2vpW.js.map +0 -1
- package/dist/esm/index-SGde3HXB.js +0 -1623
- package/dist/esm/index-SGde3HXB.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/kritzel-brush-style.entry.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/stencil.js.map +0 -1
- package/dist/stencil/index.esm.js.map +0 -1
- package/dist/stencil/kritzel-brush-style.entry.esm.js.map +0 -1
- package/dist/stencil/loader.esm.js.map +0 -1
- package/dist/stencil/p-385bab97.entry.js +0 -2
- package/dist/stencil/p-385bab97.entry.js.map +0 -1
- package/dist/stencil/p-CuBm2vpW.js +0 -2
- package/dist/stencil/p-CuBm2vpW.js.map +0 -1
- package/dist/stencil/p-DQuL1Twl.js.map +0 -1
- package/dist/stencil/p-SGde3HXB.js +0 -3
- package/dist/stencil/p-SGde3HXB.js.map +0 -1
- package/dist/stencil/p-d3f7214e.entry.js +0 -10
- package/dist/stencil/p-d3f7214e.entry.js.map +0 -1
- package/dist/stencil/stencil.esm.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kritzel-controls.js","sourceRoot":"","sources":["../../../../src/components/ui/kritzel-controls/kritzel-controls.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, State, Element, Host, Listen, Event, EventEmitter, Method } from '@stencil/core';\r\nimport { KritzelBrushTool } from '../../../classes/tools/brush-tool.class';\r\nimport { KritzelTextTool } from '../../../classes/tools/text-tool.class';\r\nimport { KritzelToolbarControl, KritzelToolbarSubOption } from '../../../interfaces/toolbar-control.interface';\r\nimport { KritzelBaseTool } from '../../../classes/tools/base-tool.class';\r\nimport { KritzelDevicesHelper } from '../../../helpers/devices.helper';\r\nimport { KritzelUndoState } from '../../../interfaces/undo-state.interface';\r\n\r\ntype ToolConfig = Record<string, any>;\r\n\r\n@Component({\r\n tag: 'kritzel-controls',\r\n styleUrl: 'kritzel-controls.css',\r\n shadow: true,\r\n assetsDirs: ['../assets'],\r\n})\r\nexport class KritzelControls {\r\n @Element() host!: HTMLElement;\r\n\r\n @Prop() controls: KritzelToolbarControl[] = [];\r\n @Prop({ mutable: true }) activeControl: KritzelToolbarControl | null = null;\r\n @Prop() isUtilityPanelVisible: boolean = true;\r\n @Prop() undoState: KritzelUndoState = null;\r\n\r\n @Event() isControlsReady: EventEmitter<void>;\r\n\r\n @State() firstConfig: ToolConfig | null = null;\r\n @State() isTooltipVisible: boolean = false;\r\n @State() isTouchDevice: boolean = KritzelDevicesHelper.isTouchDevice();\r\n @State() selectedSubOptions: Map<string, KritzelToolbarSubOption> = new Map();\r\n @State() openSubMenuControl: KritzelToolbarControl | null = null;\r\n\r\n @Listen('click', { target: 'document' })\r\n handleDocumentClick(event: MouseEvent) {\r\n const element = event.target as HTMLElement;\r\n\r\n if (!this.kritzelEngine || element.closest('.kritzel-tooltip')) {\r\n return;\r\n }\r\n\r\n this.isTooltipVisible = false;\r\n }\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.closeTooltip();\r\n this.openSubMenuControl = null;\r\n this.kritzelEngine?.enable();\r\n }\r\n }\r\n\r\n @Listen('activeToolChange', { target: 'document' })\r\n async handleActiveToolChange(event: CustomEvent) {\r\n this.activeControl = this.controls.find(control => control.tool === event.detail) || null;\r\n }\r\n\r\n @Method()\r\n async closeTooltip() {\r\n this.isTooltipVisible = false;\r\n }\r\n\r\n kritzelEngine: HTMLKritzelEngineElement | null = null;\r\n tooltipRef: HTMLKritzelTooltipElement | null = null;\r\n\r\n get activeToolAsTextTool() {\r\n return this.activeControl?.tool as KritzelTextTool;\r\n }\r\n\r\n get activeToolAsBrushTool() {\r\n return this.activeControl?.tool as KritzelBrushTool;\r\n }\r\n\r\n async componentWillLoad() {\r\n await this.initializeEngine();\r\n await this.initializeTools();\r\n this.isControlsReady.emit();\r\n }\r\n\r\n private async initializeEngine() {\r\n await customElements.whenDefined('kritzel-engine');\r\n this.kritzelEngine = this.host.parentElement.querySelector('kritzel-engine');\r\n\r\n if (!this.kritzelEngine) {\r\n throw new Error('kritzel-engine not found in parent element.');\r\n }\r\n }\r\n\r\n private async initializeTools() {\r\n for (const c of this.controls) {\r\n if (c.type === 'tool' && c.tool) {\r\n c.tool = await this.kritzelEngine.registerTool(c.name, c.tool, c.config);\r\n }\r\n\r\n if (c.type === 'tool' && c.isDefault && c.tool) {\r\n await this.kritzelEngine.changeActiveTool(c.tool as KritzelBaseTool);\r\n this.activeControl = c;\r\n }\r\n\r\n if (c.type === 'config') {\r\n if (this.firstConfig === null) {\r\n this.firstConfig = c;\r\n } else {\r\n console.warn('Only one config control is allowed. The first one will be used.');\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async handleControlClick(control: KritzelToolbarControl) {\r\n this.activeControl = control;\r\n\r\n if (this.activeControl.type === 'tool') {\r\n await this.kritzelEngine.changeActiveTool(this.activeControl.tool as KritzelBaseTool);\r\n }\r\n }\r\n\r\n private handleConfigClick(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.isTooltipVisible = !this.isTooltipVisible;\r\n if(this.isTooltipVisible){\r\n this.kritzelEngine?.disable();\r\n } else {\r\n this.kritzelEngine?.enable();\r\n }\r\n\r\n setTimeout(() => {\r\n this.tooltipRef?.focusContent();\r\n }, 100);\r\n }\r\n\r\n private async handleToolChange(event: CustomEvent) {\r\n this.activeControl = { ...this.activeControl, tool: event.detail };\r\n await this.kritzelEngine.changeActiveTool((this.activeControl as any).tool);\r\n }\r\n\r\n private handleTooltipClosed() {\r\n this.isTooltipVisible = false;\r\n this.kritzelEngine?.enable();\r\n }\r\n\r\n /**\r\n * Get the currently selected sub-option for a control.\r\n * Returns the first sub-option as default if none is selected.\r\n */\r\n private getSelectedSubOption(control: KritzelToolbarControl): KritzelToolbarSubOption | undefined {\r\n if (!control.subOptions?.length) return undefined;\r\n return this.selectedSubOptions.get(control.name) || control.subOptions[0];\r\n }\r\n\r\n /**\r\n * Toggle the submenu for a split-button control\r\n */\r\n private toggleSubMenu(event: MouseEvent, control: KritzelToolbarControl) {\r\n event.stopPropagation();\r\n if (this.openSubMenuControl?.name === control.name) {\r\n this.openSubMenuControl = null;\r\n } else {\r\n this.openSubMenuControl = control;\r\n }\r\n }\r\n\r\n /**\r\n * Select a sub-option and update the tool property\r\n */\r\n private async selectSubOption(control: KritzelToolbarControl, option: KritzelToolbarSubOption) {\r\n // Update the selected sub-options map (create new Map for reactivity)\r\n const newMap = new Map(this.selectedSubOptions);\r\n newMap.set(control.name, option);\r\n this.selectedSubOptions = newMap;\r\n\r\n // Update the tool property if the tool is instantiated\r\n if (control.tool && typeof control.tool !== 'function') {\r\n (control.tool as any)[option.toolProperty] = option.value;\r\n }\r\n\r\n // Close the submenu\r\n this.openSubMenuControl = null;\r\n\r\n // Activate this control\r\n await this.handleControlClick(control);\r\n }\r\n\r\n render() {\r\n const hasConfigUI = this.activeControl?.tool instanceof KritzelBrushTool || \r\n this.activeControl?.tool instanceof KritzelTextTool;\r\n\r\n return (\r\n <Host\r\n class={{\r\n mobile: this.isTouchDevice,\r\n }}\r\n >\r\n {this.isUtilityPanelVisible && (\r\n <kritzel-utility-panel\r\n style={{\r\n position: 'absolute',\r\n bottom: '56px',\r\n left: '12px',\r\n }}\r\n undoState={this.undoState}\r\n onUndo={() => this.kritzelEngine?.undo()}\r\n onRedo={() => this.kritzelEngine?.redo()}\r\n onDelete={() => this.kritzelEngine?.delete()}\r\n ></kritzel-utility-panel>\r\n )}\r\n\r\n <div class=\"kritzel-controls\">\r\n {this.controls.map(control => {\r\n if (control.type === 'tool') {\r\n // Check if this control has sub-options (split-button)\r\n if (control.subOptions?.length) {\r\n const selectedSubOption = this.getSelectedSubOption(control);\r\n const isActive = this.activeControl?.name === control.name;\r\n const isSubMenuOpen = this.openSubMenuControl?.name === control.name;\r\n\r\n return (\r\n <div\r\n class={{\r\n 'kritzel-control-split': true,\r\n 'selected': isActive,\r\n }}\r\n key={control.name}\r\n ref={el => { if (el) (control as any)._anchorRef = el; }}\r\n >\r\n <button\r\n class=\"kritzel-control-main\"\r\n onClick={() => this.handleControlClick(control)}\r\n title={selectedSubOption?.label}\r\n >\r\n <kritzel-icon name={selectedSubOption?.icon || control.icon}></kritzel-icon>\r\n </button>\r\n <button\r\n class={{\r\n 'kritzel-control-dropdown': true,\r\n 'visible': isActive,\r\n }}\r\n onClick={(e) => this.toggleSubMenu(e, control)}\r\n aria-label=\"Select shape type\"\r\n aria-expanded={isSubMenuOpen ? 'true' : 'false'}\r\n tabIndex={isActive ? 0 : -1}\r\n >\r\n <kritzel-icon name=\"chevron-down\" size={12}></kritzel-icon>\r\n </button>\r\n\r\n <kritzel-tooltip\r\n isVisible={isSubMenuOpen}\r\n anchorElement={(control as any)._anchorRef}\r\n onTooltipClosed={() => { this.openSubMenuControl = null; }}\r\n >\r\n <div class=\"kritzel-submenu-content\">\r\n {control.subOptions.map(option => (\r\n <button\r\n class={{\r\n 'kritzel-submenu-item': true,\r\n 'active': option.id === selectedSubOption?.id,\r\n }}\r\n key={option.id}\r\n onClick={() => this.selectSubOption(control, option)}\r\n >\r\n <kritzel-icon name={option.icon} size={20}></kritzel-icon>\r\n <span>{option.label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n </kritzel-tooltip>\r\n </div>\r\n );\r\n }\r\n\r\n // Regular tool control (no sub-options)\r\n return (\r\n <button\r\n class={{\r\n 'kritzel-control': true,\r\n 'selected': this.activeControl?.name === control?.name,\r\n }}\r\n key={control.name}\r\n onClick={_event => this.handleControlClick?.(control)}\r\n >\r\n <kritzel-icon name={control.icon}></kritzel-icon>\r\n </button>\r\n );\r\n }\r\n\r\n if (control.type === 'config' && control.name === this.firstConfig?.name && this.activeControl) {\r\n return (\r\n <div \r\n class={{\r\n 'kritzel-config-container': true,\r\n 'visible': hasConfigUI,\r\n }}\r\n key={control.name}\r\n >\r\n <kritzel-tooltip\r\n ref={el => (this.tooltipRef = el)}\r\n isVisible={this.isTooltipVisible}\r\n anchorElement={this.host.shadowRoot?.querySelector('.kritzel-config-container') as HTMLElement}\r\n onTooltipClosed={() => this.handleTooltipClosed()}\r\n >\r\n <div style={{ width: '294px', height: '100%' }}>\r\n {this.activeControl.name === 'brush' && (\r\n <kritzel-control-brush-config tool={this.activeToolAsBrushTool} onToolChange={event => this.handleToolChange?.(event)}></kritzel-control-brush-config>\r\n )}\r\n\r\n {this.activeControl.name === 'text' && (\r\n <kritzel-control-text-config tool={this.activeToolAsTextTool} onToolChange={event => this.handleToolChange?.(event)}></kritzel-control-text-config>\r\n )}\r\n </div>\r\n </kritzel-tooltip>\r\n\r\n <div\r\n tabIndex={hasConfigUI ? 0 : -1}\r\n class=\"kritzel-config\"\r\n onClick={event => this.handleConfigClick?.(event)}\r\n onKeyDown={event => {\r\n if (event.key === 'Enter') {\r\n this.handleConfigClick?.(event as any);\r\n }\r\n }}\r\n style={{\r\n cursor: 'pointer',\r\n }}\r\n >\r\n {this.activeControl.tool instanceof KritzelBrushTool && (\r\n <div class=\"color-container\">\r\n <kritzel-color\r\n value={this.activeToolAsBrushTool?.color}\r\n size={this.activeToolAsBrushTool?.size}\r\n style={{\r\n borderRadius: '50%',\r\n border: 'none',\r\n }}\r\n ></kritzel-color>\r\n </div>\r\n )}\r\n\r\n {this.activeControl.tool instanceof KritzelTextTool && (\r\n <div class=\"font-container\">\r\n <kritzel-font\r\n fontFamily={this.activeToolAsTextTool?.fontFamily}\r\n size={this.activeToolAsTextTool?.fontSize}\r\n color={this.activeToolAsTextTool?.fontColor}\r\n ></kritzel-font>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n })}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kritzel-utility-panel.js","sourceRoot":"","sources":["../../../../src/components/ui/kritzel-utility-panel/kritzel-utility-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAgB,IAAI,EAAE,MAAM,eAAe,CAAC;AAQ9E,MAAM,OAAO,mBAAmB;IACtB,SAAS,GAAqB,IAAI,CAAC;IAElC,IAAI,CAAqB;IACzB,IAAI,CAAqB;IACzB,MAAM,CAAqB;IAEpC,UAAU,CAAC,KAAY;QACrB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAY;QACrB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,+DAAQ,KAAK,EAAC,gBAAgB,EAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACzG,qEAAc,IAAI,EAAC,MAAM,GAAgB,CAClC;YACT,+DAAQ,KAAK,EAAC,gBAAgB,EAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACzG,qEAAc,IAAI,EAAC,MAAM,GAAgB,CAClC;YAET,4DAAK,KAAK,EAAC,mBAAmB,GAAO;YAErC,+DAAQ,KAAK,EAAC,gBAAgB;gBAC5B,qEAAc,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAiB,CACvE,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Event, EventEmitter, Prop } from '@stencil/core';\r\nimport { KritzelUndoState } from '../../../interfaces/undo-state.interface';\r\n\r\n@Component({\r\n tag: 'kritzel-utility-panel',\r\n styleUrl: 'kritzel-utility-panel.css',\r\n shadow: true,\r\n})\r\nexport class KritzelUtilityPanel {\r\n @Prop() undoState: KritzelUndoState = null;\r\n\r\n @Event() undo: EventEmitter<void>;\r\n @Event() redo: EventEmitter<void>;\r\n @Event() delete: EventEmitter<void>;\r\n\r\n handleUndo(event: Event) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.undo.emit();\r\n }\r\n }\r\n\r\n handleRedo(event: Event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.redo.emit();\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <button class=\"utility-button\" disabled={!this.undoState?.canUndo} onClick={event => this.handleUndo(event)}>\r\n <kritzel-icon name=\"undo\"></kritzel-icon>\r\n </button>\r\n <button class=\"utility-button\" disabled={!this.undoState?.canRedo} onClick={event => this.handleRedo(event)}>\r\n <kritzel-icon name=\"redo\"></kritzel-icon>\r\n </button>\r\n\r\n <div class=\"utility-separator\"></div>\r\n\r\n <button class=\"utility-button\">\r\n <kritzel-icon name=\"delete\" onClick={() => this.delete.emit()}></kritzel-icon>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
|
package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kritzel-workspace-manager.js","sourceRoot":"","sources":["../../../../src/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.tsx"],"names":[],"mappings":"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","sourcesContent":["import { KritzelWorkspace } from '../../../classes/core/workspace.class';\r\nimport { ObjectHelper } from '../../../helpers/object.helper';\r\nimport { IKritzelMenuItem } from '../../../interfaces/menu-item.interface';\r\nimport { Host, h, Component, State, Prop, Event, EventEmitter, Element, Listen } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'kritzel-workspace-manager',\r\n styleUrl: 'kritzel-workspace-manager.css',\r\n shadow: true,\r\n})\r\nexport class KritzelWorkspaceManager {\r\n @Element() host!: HTMLElement;\r\n\r\n @Prop({ mutable: true }) activeWorkspace: KritzelWorkspace;\r\n @Prop() workspaces: KritzelWorkspace[] = [];\r\n\r\n @Event() isWorkspaceManagerReady: EventEmitter<void>;\r\n @Event() workspaceChange: EventEmitter<KritzelWorkspace>;\r\n\r\n @State() childMenuAnchor: HTMLElement = null;\r\n @State() openChildMenuItem: IKritzelMenuItem = null;\r\n @State() newWorkspace: KritzelWorkspace | null = null;\r\n @State() editingItemId: string | null = null;\r\n\r\n @Listen('wheel', { target: 'window', passive: false })\r\n handleWheel(event: WheelEvent) {\r\n if(event.ctrlKey){\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n kritzelEngineRef: HTMLKritzelEngineElement | null = null;\r\n splitButtonRef!: HTMLKritzelSplitButtonElement;\r\n\r\n get sortedWorkspaces() {\r\n return [this.newWorkspace, ...this.workspaces].filter(ws => ws != null).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());\r\n }\r\n\r\n async componentWillLoad() {\r\n await this.initializeEngine();\r\n this.isWorkspaceManagerReady.emit();\r\n }\r\n\r\n private async initializeEngine() {\r\n await customElements.whenDefined('kritzel-engine');\r\n this.kritzelEngineRef = this.host.parentElement.querySelector('kritzel-engine');\r\n\r\n if (!this.kritzelEngineRef) {\r\n throw new Error('kritzel-engine not found in parent element.');\r\n }\r\n }\r\n\r\n private async select(item: IKritzelMenuItem, parent: IKritzelMenuItem) {\r\n if (this.editingItemId) {\r\n return;\r\n }\r\n\r\n if (item.action) {\r\n item.action(item, parent);\r\n return;\r\n }\r\n\r\n this.workspaceChange.emit(item.value);\r\n }\r\n\r\n private async add() {\r\n await this.splitButtonRef.open();\r\n this.newWorkspace = new KritzelWorkspace(ObjectHelper.generateUUID(), 'New Workspace');\r\n this.editingItemId = this.newWorkspace.id;\r\n }\r\n\r\n private edit(item: IKritzelMenuItem) {\r\n this.openChildMenuItem = null;\r\n this.childMenuAnchor = null;\r\n requestAnimationFrame(() => {\r\n this.editingItemId = item.id;\r\n });\r\n }\r\n\r\n private async save(item: IKritzelMenuItem) {\r\n if (this.newWorkspace) {\r\n this.newWorkspace.name = item.label;\r\n await this.kritzelEngineRef.createWorkspace(this.newWorkspace);\r\n this.workspaceChange.emit(this.newWorkspace);\r\n } else {\r\n const workspace = item.value;\r\n workspace.name = item.label;\r\n await this.kritzelEngineRef.updateWorkspace(workspace);\r\n }\r\n\r\n this.editingItemId = null;\r\n this.newWorkspace = null;\r\n }\r\n\r\n private cancel() {\r\n this.newWorkspace = null;\r\n this.editingItemId = null;\r\n }\r\n\r\n private async delete(item: IKritzelMenuItem) {\r\n this.openChildMenuItem = null;\r\n this.childMenuAnchor = null;\r\n\r\n await this.kritzelEngineRef.deleteWorkspace(item.value);\r\n\r\n if (item.value.id === this.activeWorkspace?.id) {\r\n this.activeWorkspace = this.sortedWorkspaces.find(ws => ws.id !== item.value.id) || null;\r\n this.workspaceChange.emit(this.activeWorkspace);\r\n }\r\n\r\n await this.splitButtonRef.focusMenu();\r\n }\r\n\r\n private toggleChildMenu(item: IKritzelMenuItem, anchor: HTMLElement) {\r\n this.openChildMenuItem = item;\r\n this.childMenuAnchor = anchor;\r\n }\r\n\r\n private closeChildMenu() {\r\n this.openChildMenuItem = null;\r\n this.childMenuAnchor = null;\r\n }\r\n\r\n private handleMenuOpen() {\r\n this.kritzelEngineRef.disable();\r\n }\r\n\r\n private handleMenuClose() {\r\n this.cancel();\r\n this.closeChildMenu();\r\n this.kritzelEngineRef.enable();\r\n }\r\n\r\n render() {\r\n const menuItems = this.sortedWorkspaces\r\n .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())\r\n .filter(ws => ws !== null)\r\n .map(ws => {\r\n return {\r\n id: ws.id,\r\n label: ws.name,\r\n value: ws,\r\n isEditing: this.editingItemId === ws.id,\r\n isSelected: this.activeWorkspace?.id === ws.id,\r\n isNewItem: this.newWorkspace?.id === ws.id,\r\n isChildMenuOpen: this.openChildMenuItem?.id === ws.id,\r\n childMenuAnchor: this.openChildMenuItem?.id === ws.id ? this.childMenuAnchor : null,\r\n children: [\r\n {\r\n id: `${ws.id}-rename`,\r\n label: 'Rename',\r\n value: 'rename',\r\n action: (_item, parent) => this.edit(parent),\r\n },\r\n {\r\n id: `${ws.id}-delete`,\r\n label: 'Delete',\r\n value: 'delete',\r\n isDisabled: this.sortedWorkspaces.length <= 1,\r\n action: (_item, parent) => this.delete(parent),\r\n },\r\n ],\r\n };\r\n });\r\n\r\n return (\r\n <Host>\r\n <kritzel-split-button\r\n ref={el => (this.splitButtonRef = el)}\r\n items={menuItems}\r\n mainButtonDisabled={this.editingItemId != null}\r\n onMainButtonClick={() => this.add()}\r\n onItemSelect={event => this.select(event.detail.item, event.detail.parent)}\r\n onItemToggleChildMenu={event => this.toggleChildMenu(event.detail.item, event.detail.childMenuAnchor)}\r\n onItemSave={event => this.save(event.detail)}\r\n onItemCancel={() => this.cancel()}\r\n onItemCloseChildMenu={() => this.closeChildMenu()}\r\n onMenuOpen={() => this.handleMenuOpen()}\r\n onMenuClose={() => this.handleMenuClose()}\r\n ></kritzel-split-button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-brush-tool.config.js","sourceRoot":"","sources":["../../src/configs/default-brush-tool.config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE;QACR,GAAG,EAAE;YACH,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACV;QACD,WAAW,EAAE;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;SACZ;KACF;CACF,CAAC","sourcesContent":["import { KritzelBrushToolConfig } from '../interfaces/toolbar-control.interface';\r\n\r\nexport const DEFAULT_BRUSH_CONFIG: KritzelBrushToolConfig = {\r\n type: 'pen',\r\n color: '#000000',\r\n size: 16,\r\n palettes: {\r\n pen: [\r\n '#000000',\r\n '#ff5252',\r\n '#ffbc00',\r\n '#00c853',\r\n '#0000FF',\r\n '#d500f9',\r\n '#fafafa',\r\n '#a52714',\r\n '#ee8100',\r\n '#558b2f',\r\n '#01579b',\r\n '#8e24aa',\r\n '#90a4ae',\r\n '#ff4081',\r\n '#ff6e40',\r\n '#aeea00',\r\n '#304ffe',\r\n '#7c4dff',\r\n '#cfd8dc',\r\n '#f8bbd0',\r\n '#ffccbc',\r\n '#f0f4c3',\r\n '#9fa8da',\r\n '#d1c4e9',\r\n ],\r\n highlighter: [\r\n '#0000006e',\r\n '#ff52526e',\r\n '#ffbb006e',\r\n '#00c8536e',\r\n '#0000FF6e',\r\n '#d500f96e',\r\n '#fafafa6e',\r\n '#a527146e',\r\n '#ee81006e',\r\n '#558b2f6e',\r\n '#01579b6e',\r\n '#8e24aa6e',\r\n '#90a4ae6e',\r\n '#ff40816e',\r\n '#ff6e406e',\r\n '#aeea006e',\r\n '#304ffe6e',\r\n '#7c4dff6e',\r\n '#cfd8dc6e',\r\n '#f8bbd06e',\r\n '#ffccbc6e',\r\n '#f0f4c36e',\r\n '#9fa8da6e',\r\n '#d1c4e96e',\r\n ],\r\n },\r\n};\r\n\r\n\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-engine-config.js","sourceRoot":"","sources":["../../src/configs/default-engine-config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,IAAI;IACnB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,kBAAkB,EAAE,KAAK;IACzB,iBAAiB,EAAE,KAAK;IACxB,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,qBAAqB,EAAE,KAAK;IAC5B,sBAAsB,EAAE,KAAK;IAC7B,UAAU,EAAE,KAAK;IACjB,uBAAuB,EAAE,KAAK;IAC9B,wBAAwB,EAAE,KAAK;IAC/B,oBAAoB,EAAE,KAAK;IAC3B,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,KAAK;IACvB,oBAAoB,EAAE,KAAK;IAC3B,gBAAgB,EAAE,EAAE;IACpB,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,eAAe,EAAE,KAAK;IACtB,SAAS,EAAE;QACT,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,KAAK;KACxB;IACD,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,GAAG;IACnB,QAAQ,EAAE,IAAI,GAAG,EAAwB;IACzC,UAAU,EAAE,EAAE;IACd,MAAM,EAAE;QACN,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS;KACtB;CACF,CAAC","sourcesContent":["import { KritzelEngineState } from \"../interfaces/engine-state.interface\";\r\n\r\nexport const DEFAULT_ENGINE_CONFIG: KritzelEngineState = {\r\n activeWorkspace: null,\r\n activeTool: null,\r\n copiedObjects: null,\r\n objects: null,\r\n snapCandidate: null,\r\n resizeHandleType: null,\r\n lineHandleType: null,\r\n hasViewportChanged: false,\r\n hasObjectsChanged: false,\r\n isReady: false,\r\n isEnabled: true,\r\n isScaling: false,\r\n isPanning: false,\r\n isSelecting: false,\r\n isResizing: false,\r\n isResizeHandleHovered: false,\r\n isResizeHandleSelected: false,\r\n isRotating: false,\r\n isRotationHandleHovered: false,\r\n isRotationHandleSelected: false,\r\n isLineHandleSelected: false,\r\n isLineHandleDragging: false,\r\n isDragging: false,\r\n isDrawing: false,\r\n isErasing: false,\r\n isWriting: false,\r\n isCtrlKeyPressed: false,\r\n isContextMenuVisible: false,\r\n contextMenuItems: [],\r\n contextMenuX: 0,\r\n contextMenuY: 0,\r\n skipContextMenu: false,\r\n debugInfo: {\r\n showObjectInfo: false,\r\n showViewportInfo: false\r\n },\r\n host: null,\r\n pointerX: 0,\r\n pointerY: 0,\r\n scale: 1,\r\n scaleMax: 1,\r\n scaleMin: 1,\r\n startX: 0,\r\n startY: 0,\r\n translateX: 0,\r\n translateXMax: 400,\r\n translateXMin: 0,\r\n translateY: 0,\r\n translateYMax: 400,\r\n translateYMin: 0,\r\n viewportWidth: 0,\r\n viewportHeight: 0,\r\n longTouchTimeout: null,\r\n longTouchDelay: 300,\r\n pointers: new Map<number, PointerEvent>(),\r\n workspaces: [],\r\n cursor: {\r\n icon: 'default',\r\n iconActive: 'default'\r\n }\r\n};"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-line-tool.config.js","sourceRoot":"","sources":["../../src/configs/default-line-tool.config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAA0B;IAC7D,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,CAAC;IACP,OAAO,EAAE;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,MAAM,EAAE;QACN,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;KAC1C;CACF,CAAC","sourcesContent":["import { KritzelLineToolConfig } from '../interfaces/toolbar-control.interface';\r\n\r\nexport const DEFAULT_LINE_TOOL_CONFIG: KritzelLineToolConfig = {\r\n color: '#000000',\r\n size: 4,\r\n palette: [\r\n '#000000',\r\n '#ff5252',\r\n '#ffbc00',\r\n '#00c853',\r\n '#0000FF',\r\n '#d500f9',\r\n '#fafafa',\r\n '#a52714',\r\n '#ee8100',\r\n '#558b2f',\r\n '#01579b',\r\n '#8e24aa',\r\n '#90a4ae',\r\n '#ff4081',\r\n '#ff6e40',\r\n '#aeea00',\r\n '#304ffe',\r\n '#7c4dff',\r\n '#cfd8dc',\r\n '#f8bbd0',\r\n '#ffccbc',\r\n '#f0f4c3',\r\n '#b3e5fc',\r\n '#e1bee7',\r\n ],\r\n arrows: {\r\n end: { enabled: true, style: 'triangle' },\r\n },\r\n};\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-shape-tool.config.js","sourceRoot":"","sources":["../../src/configs/default-shape-tool.config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,SAAS,EAAE,SAAS,CAAC,SAAS;IAC9B,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;CACF,CAAC","sourcesContent":["import { KritzelShapeToolConfig } from \"../interfaces/toolbar-control.interface\";\r\nimport { ShapeType } from \"../enums/shape-type.enum\";\r\n\r\nexport const DEFAULT_SHAPE_CONFIG: KritzelShapeToolConfig = {\r\n shapeType: ShapeType.Rectangle,\r\n fillColor: 'transparent',\r\n strokeColor: '#000000',\r\n strokeWidth: 4,\r\n fontColor: '#000000',\r\n fontSize: 16,\r\n fontFamily: 'Arial',\r\n palette: [\r\n '#000000',\r\n '#ff5252',\r\n '#ffbc00',\r\n '#00c853',\r\n '#0000FF',\r\n '#d500f9',\r\n '#fafafa',\r\n '#a52714',\r\n '#ee8100',\r\n '#558b2f',\r\n '#01579b',\r\n '#8e24aa',\r\n '#90a4ae',\r\n ],\r\n};\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-sync.config.js","sourceRoot":"","sources":["../../src/configs/default-sync.config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,SAAS,EAAE;QACT,qBAAqB;KACtB;CACF,CAAC","sourcesContent":["import { KritzelSyncConfig } from '../interfaces/sync-config.interface';\r\nimport { IndexedDBSyncProvider } from '../classes/providers/indexeddb-sync-provider.class';\r\n\r\n/**\r\n * Default sync configuration - IndexedDB + BroadcastChannel\r\n */\r\nexport const DEFAULT_SYNC_CONFIG: KritzelSyncConfig = {\r\n providers: [\r\n IndexedDBSyncProvider\r\n ],\r\n};\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-text-tool.config.js","sourceRoot":"","sources":["../../src/configs/default-text-tool.config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAA0B;IACxD,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,CAAC;IACP,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;CACF,CAAC","sourcesContent":["import { KritzelTextToolConfig } from \"../interfaces/toolbar-control.interface\";\r\n\r\nexport const DEFAULT_TEXT_CONFIG: KritzelTextToolConfig = {\r\n color: '#000000',\r\n size: 8,\r\n fontFamily: 'Arial',\r\n palette: [\r\n '#000000',\r\n '#ff5252',\r\n '#ffbc00',\r\n '#00c853',\r\n '#0000FF',\r\n '#d500f9',\r\n '#fafafa',\r\n '#a52714',\r\n '#ee8100',\r\n '#558b2f',\r\n '#01579b',\r\n '#8e24aa',\r\n '#90a4ae',\r\n '#ff4081',\r\n '#ff6e40',\r\n '#aeea00',\r\n '#304ffe',\r\n '#7c4dff',\r\n '#cfd8dc',\r\n '#f8bbd0',\r\n '#ffccbc',\r\n '#f0f4c3',\r\n '#9fa8da',\r\n '#d1c4e9',\r\n ],\r\n};"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.constants.js","sourceRoot":"","sources":["../../src/constants/core.constants.ts"],"names":[],"mappings":"AAAA,mHAAmH","sourcesContent":["// YJS_DOCUMENT_NAME removed - now each workspace has its own Y.Doc with naming: 'kritzel-workspace-${workspaceId}'"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine.constants.js","sourceRoot":"","sources":["../../src/constants/engine.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC","sourcesContent":["export const ABSOLUTE_SCALE_MAX = 1000;\r\nexport const ABSOLUTE_SCALE_MIN = 0.0001;"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-button.enum.js","sourceRoot":"","sources":["../../src/enums/event-button.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,2DAAQ,CAAA;IACR,+DAAU,CAAA;IACV,6DAAS,CAAA;AACX,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["export enum KritzelMouseButton {\r\n Left = 0,\r\n Middle = 1,\r\n Right = 2\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handle-type.enum.js","sourceRoot":"","sources":["../../src/enums/handle-type.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,yCAAoB,CAAA;IACpB,2CAAsB,CAAA;IACtB,+CAA0B,CAAA;IAC1B,iDAA4B,CAAA;AAChC,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B","sourcesContent":["export enum KritzelHandleType {\r\n TopLeft = \"top-left\",\r\n TopRight = \"top-right\",\r\n BottomLeft = \"bottom-left\",\r\n BottomRight = \"bottom-right\"\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shape-type.enum.js","sourceRoot":"","sources":["../../src/enums/shape-type.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,oCAAuB,CAAA;IACvB,gCAAmB,CAAA;IACnB,kCAAqB,CAAA;AACvB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB","sourcesContent":["export enum ShapeType {\r\n Rectangle = 'rectangle',\r\n Ellipse = 'ellipse',\r\n Triangle = 'triangle',\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"class.helper.js","sourceRoot":"","sources":["../../src/helpers/class.helper.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CAAC,YAAY,CAAI,MAAW,EAAE,SAAiB;QACnD,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;IACpD,CAAC;CACF","sourcesContent":["export class KritzelClassHelper {\r\n static isInstanceOf<T>(object: any, className: string): object is T {\r\n return !!object && object.__class__ === className;\r\n }\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.helper.js","sourceRoot":"","sources":["../../src/helpers/cursor.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAC,cAAc,GAAkB,IAAI,CAAC;IAEpD;;;OAGG;IACH,MAAM,CAAC,gBAAgB;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,SAAS,CACd,OAMC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACrF,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,SAAS,QAAQ,0BAA0B,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;QACvC,yEAAyE;QACzE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;QAEpH,8CAA8C;QAC9C,0DAA0D;QAC1D,mDAAmD;QACnD,IAAI,OAAO,GAAG,OAAO;aAChB,OAAO,CAAC,aAAa,EAAE,UAAU,IAAI,GAAG,CAAC;aACzC,OAAO,CAAC,cAAc,EAAE,WAAW,IAAI,GAAG,CAAC;aAC3C,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAErC,wBAAwB;QACxB,gDAAgD;QAChD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QAExB,uCAAuC;QACvC,MAAM,GAAG,GAAG;uDACuC,IAAI,aAAa,IAAI,kBAAkB,IAAI,IAAI,IAAI;+BAC3E,QAAQ,IAAI,MAAM,IAAI,MAAM;YAC/C,OAAO;;;KAGd,CAAC;QAEF,uCAAuC;QACvC,yEAAyE;QACzE,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;aACjE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;aACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE1B,MAAM,OAAO,GAAG,oCAAoC,UAAU,EAAE,CAAC;QAEjE,iCAAiC;QACjC,OAAO,QAAQ,OAAO,MAAM,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC;IAC7D,CAAC","sourcesContent":["import { KritzelIconRegistry } from '../classes/registries/icon-registry.class';\r\n\r\nexport class KritzelCursorHelper {\r\n private static _pointerCursor: string | null = null;\r\n\r\n /**\r\n * Returns the custom pointer cursor CSS value.\r\n * This can be used instead of `cursor: pointer` for consistent styling.\r\n */\r\n static getPointerCursor(): string {\r\n if (!this._pointerCursor) {\r\n this._pointerCursor = this.getCursor({ iconName: 'pointer' });\r\n }\r\n return this._pointerCursor;\r\n }\r\n\r\n /**\r\n * Returns a custom cursor CSS value with support for rotation.\r\n * The icon is retrieved from the KritzelIconRegistry.\r\n */\r\n static getCursor(\r\n options: {\r\n iconName: string;\r\n rotation?: number;\r\n color?: string;\r\n size?: number;\r\n hotspot?: { x: number; y: number };\r\n }\r\n ): string {\r\n const iconName = options.iconName === 'default' ? 'mouse-pointer' : options.iconName;\r\n const iconSvg = KritzelIconRegistry.get(iconName);\r\n if (!iconSvg) {\r\n console.warn(`Icon \"${iconName}\" not found in registry.`);\r\n return 'auto';\r\n }\r\n\r\n const size = options.size || 24;\r\n const rotation = options.rotation || 0;\r\n const color = options.color || 'black';\r\n // Default cursor (mouse-pointer) has hotspot at (4, 4), others at center\r\n const hotspot = options.hotspot || (options.iconName === 'default' ? { x: 4, y: 4 } : { x: size / 2, y: size / 2 });\r\n\r\n // Modify the SVG string to set size and color\r\n // We replace width and height to match the requested size\r\n // We replace currentColor with the requested color\r\n let content = iconSvg\r\n .replace(/width=\"\\d+\"/, `width=\"${size}\"`)\r\n .replace(/height=\"\\d+\"/, `height=\"${size}\"`)\r\n .replace(/currentColor/g, color);\r\n\r\n // Create the SVG string\r\n // We rotate around the center of the SVG canvas\r\n const center = size / 2;\r\n \r\n // We use a group to apply the rotation\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <g transform=\"rotate(${rotation} ${center} ${center})\">\r\n ${content}\r\n </g>\r\n </svg>\r\n `;\r\n\r\n // Encode the SVG for use in a data URI\r\n // We need to be careful with encoding to ensure it works across browsers\r\n const encodedSvg = encodeURIComponent(svg.replace(/\\s+/g, ' ').trim())\r\n .replace(/'/g, '%27')\r\n .replace(/\"/g, '%22');\r\n\r\n const dataUri = `data:image/svg+xml;charset=utf-8,${encodedSvg}`;\r\n\r\n // Return the cursor style string\r\n return `url('${dataUri}') ${hotspot.x} ${hotspot.y}, auto`;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devices.helper.js","sourceRoot":"","sources":["../../src/helpers/devices.helper.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAoB;IAC/B,MAAM,CAAC,aAAa;QAClB,OAAO,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,SAAS;QACd,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,KAAK;QACV,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,QAAQ;QACb,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAS;QACd,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;CACF","sourcesContent":["export class KritzelDevicesHelper {\r\n static isTouchDevice(): boolean {\r\n return window.matchMedia('(any-pointer: coarse)').matches;\r\n }\r\n\r\n static isAndroid(): boolean {\r\n return /android/i.test(navigator.userAgent);\r\n }\r\n\r\n static isIOS(): boolean {\r\n return /iPad|iPhone|iPod/.test(navigator.userAgent);\r\n }\r\n\r\n static detectOS(): 'iOS' | 'Android' | 'Other' {\r\n if (this.isIOS()) {\r\n return 'iOS';\r\n } else if (this.isAndroid()) {\r\n return 'Android';\r\n } else {\r\n return 'Other';\r\n }\r\n }\r\n\r\n static isFirefox(): boolean {\r\n return /firefox/i.test(navigator.userAgent);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event.helper.js","sourceRoot":"","sources":["../../src/helpers/event.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,OAAO,kBAAkB;IACtB,MAAM,CAAC,YAAY,CAAC,EAAc;QACvC,OAAO,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,KAAK,CAAC;IAChD,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,EAAc;QACtC,OAAO,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,IAAI,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,2BAA2B,CAAC,KAAmB;QAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAmB,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1G,OAAO,CAAC,CAAC,WAAW,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,WAAW,CACvB,KAAmB,EACnB,SAAwC,EACxC,QAAqB;QAErB,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;YAClC,QAAQ,EAAE,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,QAAQ,EAAE,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,gBAAgB,GAAG,GAAG,CAAC;QAC7B,MAAM,aAAa,GAAG,EAAE,CAAC;QAEzB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,eAAe,EAAE,CAAC;YAClB,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAErB,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE,EAAE,CAAC;QACf,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,CAAe,EAAE,EAAE;YACxC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;gBACjG,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,MAAM,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,eAAe,GAAG,GAAG,EAAE;YAC3B,MAAM,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,eAAe,GAAG,GAAG,EAAE;YAC3B,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACzD,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACrD,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAC/D,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1E,OAAO,MAAM,CAAC;IAChB,CAAC;CAEF","sourcesContent":["import { KritzelMouseButton } from '../enums/event-button.enum';\r\n\r\nexport class KritzelEventHelper {\r\n public static isRightClick(ev: MouseEvent): boolean {\r\n return ev.button === KritzelMouseButton.Right;\r\n }\r\n\r\n public static isLeftClick(ev: MouseEvent): boolean {\r\n return ev.button === KritzelMouseButton.Left;\r\n }\r\n\r\n public static isPointerEventOnContextMenu(event: PointerEvent): boolean {\r\n const path = event.composedPath() as HTMLElement[];\r\n const contextMenu = path.find(element => element.classList && element.classList.contains('context-menu'));\r\n return !!contextMenu;\r\n }\r\n\r\n public static onLongPress(\r\n event: PointerEvent,\r\n onSuccess: (event: PointerEvent) => void,\r\n onCancel?: () => void\r\n ): () => void {\r\n if (event.pointerType !== 'touch') {\r\n onCancel?.();\r\n return () => { };\r\n }\r\n\r\n const startX = event.clientX;\r\n const startY = event.clientY;\r\n const target = event.target as HTMLElement;\r\n\r\n if (!target) {\r\n onCancel?.();\r\n return () => { };\r\n }\r\n\r\n const longPressTimeout = 400;\r\n const moveThreshold = 10;\r\n\r\n const timer = setTimeout(() => {\r\n removeListeners();\r\n onSuccess(event);\r\n }, longPressTimeout);\r\n\r\n const cancel = () => {\r\n clearTimeout(timer);\r\n removeListeners();\r\n onCancel?.();\r\n };\r\n\r\n const onPointerMove = (e: PointerEvent) => {\r\n if (Math.abs(e.clientX - startX) > moveThreshold || Math.abs(e.clientY - startY) > moveThreshold) {\r\n cancel();\r\n }\r\n };\r\n\r\n const onPointerUp = () => {\r\n cancel();\r\n };\r\n\r\n const onPointerCancel = () => {\r\n cancel();\r\n };\r\n\r\n const removeListeners = () => {\r\n target.removeEventListener('pointermove', onPointerMove);\r\n target.removeEventListener('pointerup', onPointerUp);\r\n target.removeEventListener('pointercancel', onPointerCancel);\r\n };\r\n\r\n target.addEventListener('pointermove', onPointerMove, { passive: true });\r\n target.addEventListener('pointerup', onPointerUp, { once: true });\r\n target.addEventListener('pointercancel', onPointerCancel, { once: true });\r\n\r\n return cancel;\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.helper.js","sourceRoot":"","sources":["../../src/helpers/geometry.helper.ts"],"names":[],"mappings":"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","sourcesContent":["import { KritzelPoint } from \"../interfaces/point.interface\";\r\nimport { KritzelPolygon } from \"../interfaces/polygon.interface\";\r\n\r\nexport class KritzelGeometryHelper {\r\n\tstatic doPolygonsIntersect(polygon1: KritzelPolygon, polygon2: KritzelPolygon): boolean {\r\n\t\t// 1. Convert polygons to array of points for easier processing\r\n\t\tconst points1 = [polygon1.bottomLeft, polygon1.bottomRight, polygon1.topRight, polygon1.topLeft];\r\n\t\tconst points2 = [polygon2.bottomLeft, polygon2.bottomRight, polygon2.topRight, polygon2.topLeft];\r\n\r\n\t\t// 2. Check if any point of polygon1 is inside polygon2\r\n\t\tfor (const point of points1) {\r\n\t\t\tif (this.isPointInPolygon(point, points2)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// 3. Check if any point of polygon2 is inside polygon1\r\n\t\tfor (const point of points2) {\r\n\t\t\tif (this.isPointInPolygon(point, points1)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// 4. Check for edge intersections (more complex)\r\n\t\tfor (let i = 0; i < points1.length; i++) {\r\n\t\t\tconst p1a = points1[i];\r\n\t\t\tconst p1b = points1[(i + 1) % points1.length]; // Wrap around to the first point\r\n\r\n\t\t\tfor (let j = 0; j < points2.length; j++) {\r\n\t\t\t\tconst p2a = points2[j];\r\n\t\t\t\tconst p2b = points2[(j + 1) % points2.length];\r\n\r\n\t\t\t\tif (this.intersectLines(p1a, p1b, p2a, p2b)) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false; // No intersection found\r\n\t}\r\n\r\n\tstatic isPointInPolygon(point: KritzelPoint, polygon: KritzelPoint[]): boolean {\r\n\t\tlet inside = false;\r\n\t\tfor (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\r\n\t\t\tconst xi = polygon[i].x,\r\n\t\t\t\tyi = polygon[i].y;\r\n\t\t\tconst xj = polygon[j].x,\r\n\t\t\t\tyj = polygon[j].y;\r\n\r\n\t\t\tconst intersect = yi > point.y !== yj > point.y && point.x < ((xj - xi) * (point.y - yi)) / (yj - yi) + xi;\r\n\t\t\tif (intersect) inside = !inside;\r\n\t\t}\r\n\t\treturn inside;\r\n\t}\r\n\r\n\tstatic intersectLines(p1a: KritzelPoint, p1b: KritzelPoint, p2a: KritzelPoint, p2b: KritzelPoint): boolean {\r\n\t\tconst det = (p1b.x - p1a.x) * (p2b.y - p2a.y) - (p1b.y - p1a.y) * (p2b.x - p2a.x);\r\n\t\tif (det === 0) {\r\n\t\t\treturn false; // Lines are parallel\r\n\t\t}\r\n\r\n\t\tconst t = ((p2a.x - p1a.x) * (p2b.y - p2a.y) - (p2a.y - p1a.y) * (p2b.x - p2a.x)) / det;\r\n\t\tconst u = -((p1a.x - p2a.x) * (p1b.y - p1a.y) - (p1a.y - p2a.y) * (p1b.x - p1a.x)) / det;\r\n\r\n\t\treturn t >= 0 && t <= 1 && u >= 0 && u <= 1;\r\n\t}\r\n\r\n\t/**\r\n\t * Finds the intersection point between a line segment and a line segment.\r\n\t * Returns the intersection point or null if no intersection.\r\n\t */\r\n\tstatic getLineIntersectionPoint(p1a: KritzelPoint, p1b: KritzelPoint, p2a: KritzelPoint, p2b: KritzelPoint): KritzelPoint | null {\r\n\t\tconst det = (p1b.x - p1a.x) * (p2b.y - p2a.y) - (p1b.y - p1a.y) * (p2b.x - p2a.x);\r\n\t\tif (det === 0) {\r\n\t\t\treturn null; // Lines are parallel\r\n\t\t}\r\n\r\n\t\tconst t = ((p2a.x - p1a.x) * (p2b.y - p2a.y) - (p2a.y - p1a.y) * (p2b.x - p2a.x)) / det;\r\n\t\tconst u = -((p1a.x - p2a.x) * (p1b.y - p1a.y) - (p1a.y - p2a.y) * (p1b.x - p1a.x)) / det;\r\n\r\n\t\tif (t >= 0 && t <= 1 && u >= 0 && u <= 1) {\r\n\t\t\treturn {\r\n\t\t\t\tx: p1a.x + t * (p1b.x - p1a.x),\r\n\t\t\t\ty: p1a.y + t * (p1b.y - p1a.y)\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t * Finds the closest intersection point between a line segment (from lineStart to lineEnd)\r\n\t * and a polygon. Returns the intersection point closest to lineStart, or null if no intersection.\r\n\t */\r\n\tstatic getLinePolygonIntersection(lineStart: KritzelPoint, lineEnd: KritzelPoint, polygon: KritzelPolygon): KritzelPoint | null {\r\n\t\tconst points = [polygon.topLeft, polygon.topRight, polygon.bottomRight, polygon.bottomLeft];\r\n\t\tlet closestIntersection: KritzelPoint | null = null;\r\n\t\tlet closestDistance = Infinity;\r\n\r\n\t\tfor (let i = 0; i < points.length; i++) {\r\n\t\t\tconst edgeStart = points[i];\r\n\t\t\tconst edgeEnd = points[(i + 1) % points.length];\r\n\r\n\t\t\tconst intersection = this.getLineIntersectionPoint(lineStart, lineEnd, edgeStart, edgeEnd);\r\n\t\t\tif (intersection) {\r\n\t\t\t\tconst distance = Math.sqrt(\r\n\t\t\t\t\tMath.pow(intersection.x - lineStart.x, 2) +\r\n\t\t\t\t\tMath.pow(intersection.y - lineStart.y, 2)\r\n\t\t\t\t);\r\n\t\t\t\tif (distance < closestDistance) {\r\n\t\t\t\t\tclosestDistance = distance;\r\n\t\t\t\t\tclosestIntersection = intersection;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn closestIntersection;\r\n\t}\r\n\r\n\t/**\r\n\t * Generates a polygon approximation of an ellipse.\r\n\t * @param centerX - X coordinate of ellipse center\r\n\t * @param centerY - Y coordinate of ellipse center \r\n\t * @param rx - Horizontal radius\r\n\t * @param ry - Vertical radius\r\n\t * @param segments - Number of segments (more = smoother approximation)\r\n\t * @param rotation - Optional rotation angle in radians\r\n\t */\r\n\tstatic getEllipsePolygonApproximation(\r\n\t\tcenterX: number,\r\n\t\tcenterY: number,\r\n\t\trx: number,\r\n\t\try: number,\r\n\t\tsegments: number = 32,\r\n\t\trotation: number = 0\r\n\t): KritzelPoint[] {\r\n\t\tconst points: KritzelPoint[] = [];\r\n\t\tconst cos = Math.cos(rotation);\r\n\t\tconst sin = Math.sin(rotation);\r\n\r\n\t\tfor (let i = 0; i < segments; i++) {\r\n\t\t\tconst angle = (2 * Math.PI * i) / segments;\r\n\t\t\t// Point on unrotated ellipse\r\n\t\t\tconst px = rx * Math.cos(angle);\r\n\t\t\tconst py = ry * Math.sin(angle);\r\n\t\t\t// Apply rotation around center\r\n\t\t\tconst rotatedX = centerX + px * cos - py * sin;\r\n\t\t\tconst rotatedY = centerY + px * sin + py * cos;\r\n\t\t\tpoints.push({ x: rotatedX, y: rotatedY });\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\t/**\r\n\t * Finds the closest intersection point between a line segment and a polygon \r\n\t * defined as an array of points. Returns the intersection closest to lineStart,\r\n\t * or null if no intersection.\r\n\t */\r\n\tstatic getLinePointsArrayIntersection(\r\n\t\tlineStart: KritzelPoint,\r\n\t\tlineEnd: KritzelPoint,\r\n\t\tpolygonPoints: KritzelPoint[]\r\n\t): KritzelPoint | null {\r\n\t\tlet closestIntersection: KritzelPoint | null = null;\r\n\t\tlet closestDistance = Infinity;\r\n\r\n\t\tfor (let i = 0; i < polygonPoints.length; i++) {\r\n\t\t\tconst edgeStart = polygonPoints[i];\r\n\t\t\tconst edgeEnd = polygonPoints[(i + 1) % polygonPoints.length];\r\n\r\n\t\t\tconst intersection = this.getLineIntersectionPoint(lineStart, lineEnd, edgeStart, edgeEnd);\r\n\t\t\tif (intersection) {\r\n\t\t\t\tconst distance = Math.sqrt(\r\n\t\t\t\t\tMath.pow(intersection.x - lineStart.x, 2) +\r\n\t\t\t\t\tMath.pow(intersection.y - lineStart.y, 2)\r\n\t\t\t\t);\r\n\t\t\t\tif (distance < closestDistance) {\r\n\t\t\t\t\tclosestDistance = distance;\r\n\t\t\t\t\tclosestIntersection = intersection;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn closestIntersection;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if a point is inside a polygon defined as an array of points.\r\n\t * This is a convenience wrapper that works with arbitrary polygon point arrays.\r\n\t */\r\n\tstatic isPointInPolygonPoints(point: KritzelPoint, polygonPoints: KritzelPoint[]): boolean {\r\n\t\treturn this.isPointInPolygon(point, polygonPoints);\r\n\t}\r\n}\r\n\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"html.helper.js","sourceRoot":"","sources":["../../src/helpers/html.helper.ts"],"names":[],"mappings":"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","sourcesContent":["export class KritzelHTMLHelper {\r\n static getNumericValueFromStyle(element: HTMLElement, property: string): number {\r\n const value = window.getComputedStyle(element).getPropertyValue(property);\r\n return parseFloat(value) || 0;\r\n }\r\n\r\n static getScrollableParent(element: HTMLElement): HTMLElement | Window {\r\n if (!element) {\r\n return window;\r\n }\r\n\r\n const parent = ((element.parentNode as ShadowRoot)?.host as HTMLElement) ?? element.parentElement;\r\n\r\n if (!parent || parent.tagName === 'BODY') {\r\n return window;\r\n }\r\n\r\n const style = window.getComputedStyle(parent);\r\n if (style.overflow === 'auto' || style.overflowY === 'auto' || style.overflow === 'scroll' || style.overflowY === 'scroll') {\r\n return parent;\r\n }\r\n\r\n return this.getScrollableParent(parent);\r\n }\r\n\r\n static isElementInViewport(element: HTMLElement): boolean {\r\n if (!element) {\r\n return false;\r\n }\r\n\r\n const scrollableParent = this.getScrollableParent(element);\r\n const rect = element.getBoundingClientRect();\r\n\r\n if (scrollableParent === window) {\r\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\r\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\r\n\r\n return rect.top >= 0 && rect.left >= 0 && rect.bottom <= viewportHeight && rect.right <= viewportWidth;\r\n }\r\n\r\n const parentRect = (scrollableParent as HTMLElement).getBoundingClientRect();\r\n\r\n return rect.top >= parentRect.top && rect.left >= parentRect.left && rect.bottom <= parentRect.bottom && rect.right <= parentRect.right;\r\n }\r\n\r\n static getFocusableElements(root: HTMLElement): HTMLElement[] {\r\n if (!root) return [];\r\n \r\n const focusableElements: HTMLElement[] = [];\r\n const focusableSelector = 'a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), details, [tabindex]:not([tabindex=\"-1\"])';\r\n \r\n const isVisible = (el: HTMLElement) => {\r\n return el.offsetParent !== null;\r\n };\r\n \r\n const find = (element: Element) => {\r\n // Check if the element itself is focusable\r\n if (element instanceof HTMLElement && element.matches(focusableSelector) && !element.hasAttribute('disabled') && isVisible(element)) {\r\n focusableElements.push(element);\r\n }\r\n \r\n // Traverse shadow DOM\r\n if (element.shadowRoot) {\r\n Array.from(element.shadowRoot.children).forEach(find);\r\n }\r\n \r\n // Traverse slotted content\r\n if (element.tagName === 'SLOT') {\r\n (element as HTMLSlotElement).assignedElements({ flatten: true }).forEach(find);\r\n }\r\n \r\n // Traverse light DOM children if there is no shadow root\r\n if (!element.shadowRoot) {\r\n Array.from(element.children).forEach(find);\r\n }\r\n };\r\n \r\n find(root);\r\n \r\n return focusableElements;\r\n }\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard.helper.js","sourceRoot":"","sources":["../../src/helpers/keyboard.helper.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAqB;IAChC,MAAM,CAAC,iBAAiB;QACtB,IAAI,QAAQ,CAAC,aAAa,YAAY,WAAW,EAAE,CAAC;YAClD,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,sEAAsE,CAAC,CAAC;QAC5G,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAAE,CAAC;gBACnE,cAAc,IAAI,sCAAsC,CAAC;YAC3D,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,wBAAwB;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,sEAAsE,CAAC,CAAC;QAC5G,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,gDAAgD,EAAE,EAAE,CAAC,CAAC;YAC9F,UAAU,GAAG,UAAU;iBACpB,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;iBACzB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;iBACjB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;iBACjB,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,QAAmC;QACjE,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,+BAA+B,GAAG,IAAI,CAAC;YAC7C,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAwB,CAAC;gBAC9C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,+BAA+B,CAAC;gBACvG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC;YAEF,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC3D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,iFAAiF;YACjF,OAAO,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;YACrG,mCAAmC;YACnC,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF","sourcesContent":["export class KritzelKeyboardHelper {\r\n static forceHideKeyboard(): void {\r\n if (document.activeElement instanceof HTMLElement) {\r\n document.activeElement.blur();\r\n }\r\n }\r\n\r\n static enableInteractiveWidget(): void {\r\n const meta = document.querySelector('meta[name=\"viewport\"][content*=\"interactive-widget=resizes-content\"]');\r\n if (meta) {\r\n let currentContent = meta.getAttribute('content');\r\n if (!currentContent.includes('interactive-widget=resizes-content')) {\r\n currentContent += ', interactive-widget=resizes-content';\r\n }\r\n meta.setAttribute('content', currentContent);\r\n }\r\n }\r\n\r\n static disableInteractiveWidget(): void {\r\n const meta = document.querySelector('meta[name=\"viewport\"][content*=\"interactive-widget=resizes-content\"]');\r\n if (meta) {\r\n let currentContent = meta.getAttribute('content');\r\n let newContent = currentContent.replace(/\\s*interactive-widget=resizes-content\\s*[,;]?/g, '');\r\n newContent = newContent\r\n .replace(/,(\\s*,)+/g, ',')\r\n .replace(/^,/, '')\r\n .replace(/,$/, '')\r\n .trim();\r\n meta.setAttribute('content', newContent);\r\n }\r\n }\r\n\r\n static onKeyboardVisibleChanged(callback: (isOpen: boolean) => void): () => void {\r\n if ('visualViewport' in window) {\r\n const VIEWPORT_VS_CLIENT_HEIGHT_RATIO = 0.75;\r\n const onResize = (event: Event) => {\r\n const target = event.target as VisualViewport;\r\n const isOpen = (target.height * target.scale) / window.screen.height < VIEWPORT_VS_CLIENT_HEIGHT_RATIO;\r\n callback(isOpen);\r\n };\r\n\r\n window.visualViewport.addEventListener('resize', onResize);\r\n return () => window.visualViewport.removeEventListener('resize', onResize);\r\n } else {\r\n // Fallback for older browsers does not provide a reliable event-based mechanism.\r\n console.warn('Listening for keyboard visibility changes is not reliably supported in this browser.');\r\n // Return a no-op cleanup function.\r\n return () => {};\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"math.helper.js","sourceRoot":"","sources":["../../src/helpers/math.helper.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IACrB,MAAM,CAAC,OAAO,CAAC,CAAS,EAAE,CAAS;QACxC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;CACF","sourcesContent":["export class KritzelMathHelper {\r\n public static average(a: number, b: number): number {\r\n return (a + b) / 2;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object.helper.js","sourceRoot":"","sources":["../../src/helpers/object.helper.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAQ;QACrB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,EAAE,WAAW,KAAK,MAAM,CAAC;IACvE,CAAC;CACF","sourcesContent":["export class ObjectHelper {\r\n static generateUUID(): string {\r\n return Math.random().toString(36).substr(2, 9);\r\n }\r\n\r\n static isEmpty(obj: any): boolean {\r\n if (obj === null || obj === undefined) {\r\n return true;\r\n }\r\n return Object?.keys(obj).length === 0 && obj?.constructor === Object;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAEhD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AAErD,cAAc,mDAAmD,CAAC;AAClE,cAAc,mDAAmD,CAAC;AAClE,cAAc,mDAAmD,CAAC;AAClE,cAAc,oDAAoD,CAAC;AAEnE,cAAc,8CAA8C,CAAC;AAE7D,cAAc,gCAAgC,CAAC;AAE/C,cAAc,mCAAmC,CAAC;AAElD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAE9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC","sourcesContent":["/**\r\n * @fileoverview entry point for your component library\r\n *\r\n * This is the entry point for your component library. Use this file to export utilities,\r\n * constants or data structure that accompany your components.\r\n *\r\n * DO NOT use this file to export your components. Instead, use the recommended approaches\r\n * to consume components of this package as outlined in the `README.md`.\r\n */\r\n\r\nexport type * from './components';\r\n\r\nexport * from './classes/objects/text.class';\r\nexport * from './classes/objects/path.class';\r\nexport * from './classes/objects/image.class';\r\nexport * from './classes/objects/line.class';\r\nexport * from './classes/objects/group.class';\r\n\r\nexport * from './classes/tools/brush-tool.class';\r\nexport * from './classes/tools/line-tool.class';\r\nexport * from './classes/tools/eraser-tool.class';\r\nexport * from './classes/tools/image-tool.class';\r\nexport * from './classes/tools/text-tool.class';\r\n\r\nexport * from './helpers/cursor.helper';\r\nexport * from './classes/tools/selection-tool.class';\r\n\r\nexport * from './classes/providers/broadcast-sync-provider.class';\r\nexport * from './classes/providers/indexeddb-sync-provider.class';\r\nexport * from './classes/providers/websocket-sync-provider.class';\r\nexport * from './classes/providers/hocuspocus-sync-provider.class';\r\n\r\nexport * from './classes/structures/app-state-map.structure';\r\n\r\nexport * from './classes/core/workspace.class';\r\n\r\nexport * from './classes/managers/anchor.manager';\r\n\r\nexport * from './interfaces/toolbar-control.interface';\r\nexport * from './interfaces/menu-item.interface';\r\nexport * from './interfaces/sync-provider.interface';\r\nexport * from './interfaces/sync-config.interface';\r\nexport * from './interfaces/anchor.interface';\r\n\r\nexport * from './configs/default-brush-tool.config';\r\nexport * from './configs/default-text-tool.config';\r\nexport * from './configs/default-line-tool.config';\r\n\r\n\r\n\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.interface.js","sourceRoot":"","sources":["../../src/interfaces/anchor.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\r\n * Represents an anchor connection from a line endpoint to another object's center.\r\n */\r\nexport interface LineAnchor {\r\n /** The ID of the object that this line endpoint is anchored to */\r\n objectId: string;\r\n}\r\n\r\n/**\r\n * Entry in the anchor index that tracks which lines are anchored to an object.\r\n */\r\nexport interface AnchorIndexEntry {\r\n /** The ID of the line that has an anchor */\r\n lineId: string;\r\n /** Which endpoint of the line is anchored */\r\n endpoint: 'start' | 'end';\r\n}\r\n\r\n/**\r\n * Represents a potential snap target during line endpoint dragging.\r\n */\r\nexport interface SnapTarget {\r\n /** The ID of the object that can be snapped to */\r\n objectId: string;\r\n /** The center X coordinate of the snap target in world coordinates */\r\n centerX: number;\r\n /** The center Y coordinate of the snap target in world coordinates */\r\n centerY: number;\r\n}\r\n\r\n/**\r\n * Represents the current snap candidate state during dragging.\r\n */\r\nexport interface SnapCandidate {\r\n /** The ID of the object being snapped to */\r\n objectId: string;\r\n /** Which endpoint of the line is being snapped */\r\n endpoint: 'start' | 'end';\r\n /** The center X coordinate for the snap indicator */\r\n centerX: number;\r\n /** The center Y coordinate for the snap indicator */\r\n centerY: number;\r\n /** The X coordinate of the line endpoint (world coords) */\r\n lineEndpointX: number;\r\n /** The Y coordinate of the line endpoint (world coords) */\r\n lineEndpointY: number;\r\n /** The X coordinate where the line intersects the object's edge (world coords) */\r\n edgeX?: number;\r\n /** The Y coordinate where the line intersects the object's edge (world coords) */\r\n edgeY?: number;\r\n /** The stroke color of the line being snapped */\r\n lineStroke?: string;\r\n /** The stroke width of the line being snapped */\r\n lineStrokeWidth?: number;\r\n /** Arrow offset to apply to the edge point (in world coords) */\r\n arrowOffset?: number;\r\n /** Arrow style for the snapping endpoint */\r\n arrowStyle?: 'triangle' | 'open' | 'diamond' | 'circle';\r\n /** Arrow fill color */\r\n arrowFill?: string;\r\n /** The X coordinate of the control point (world coords), if any */\r\n controlX?: number;\r\n /** The Y coordinate of the control point (world coords), if any */\r\n controlY?: number;\r\n /** The t parameter on the curve where the edge intersection occurs (0-1) */\r\n t?: number;\r\n}\r\n\r\n/**\r\n * Visualization data for rendering anchor indicator lines.\r\n */\r\nexport interface AnchorVisualization {\r\n /** The X coordinate where the line intersects the object's edge */\r\n edgeX: number;\r\n /** The Y coordinate where the line intersects the object's edge */\r\n edgeY: number;\r\n /** The center X coordinate of the anchored object */\r\n centerX: number;\r\n /** The center Y coordinate of the anchored object */\r\n centerY: number;\r\n /** Optional SVG path describing the curved dashed segment */\r\n pathD?: string;\r\n}\r\n\r\n/**\r\n * Render data for anchor lines visualization (dashed lines from edge to center).\r\n */\r\nexport interface AnchorLinesRenderData {\r\n /** The stroke width of the line */\r\n lineStrokeWidth: number;\r\n /** The stroke width for the indicator circle */\r\n indicatorStrokeWidth: string;\r\n /** The dash array for the dashed line */\r\n dashArray: string;\r\n /** The radius of the indicator circle */\r\n indicatorRadius: number;\r\n /** Visualization data for the start anchor, if any */\r\n startAnchorViz: AnchorVisualization | null;\r\n /** Visualization data for the end anchor, if any */\r\n endAnchorViz: AnchorVisualization | null;\r\n}\r\n\r\n/**\r\n * Render data for snap indicator visualization.\r\n */\r\nexport interface SnapIndicatorRenderData {\r\n /** The radius of the indicator circle */\r\n indicatorRadius: number;\r\n /** The stroke width for the indicator circle */\r\n indicatorStrokeWidth: string;\r\n /** The stroke width for the line */\r\n lineStrokeWidth: string;\r\n /** The dash array for the dashed line */\r\n dashArray: string;\r\n /** The stroke color of the line */\r\n lineStroke: string;\r\n /** The center X coordinate */\r\n centerX: number;\r\n /** The center Y coordinate */\r\n centerY: number;\r\n /** The X coordinate of the line endpoint */\r\n lineEndpointX: number;\r\n /** The Y coordinate of the line endpoint */\r\n lineEndpointY: number;\r\n /** The X coordinate where the line intersects the object's edge */\r\n edgeX?: number;\r\n /** The Y coordinate where the line intersects the object's edge */\r\n edgeY?: number;\r\n /** Arrow offset to apply to the edge point */\r\n arrowOffset?: number;\r\n /** Arrow style for the snapping endpoint */\r\n arrowStyle?: 'triangle' | 'open' | 'diamond' | 'circle';\r\n /** Arrow fill color */\r\n arrowFill?: string;\r\n /** The X coordinate for the end of the solid line part (accounting for arrow offset) */\r\n solidLineEndX?: number;\r\n /** The Y coordinate for the end of the solid line part (accounting for arrow offset) */\r\n solidLineEndY?: number;\r\n /** SVG points string for the arrow head at the edge */\r\n arrowPoints?: string;\r\n /** SVG path d string for the dashed line part (if curved) */\r\n snapLinePath?: string;\r\n}\r\n\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arrow-head.interface.js","sourceRoot":"","sources":["../../src/interfaces/arrow-head.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\r\n * Arrow head style types\r\n */\r\nexport type ArrowHeadStyle = 'triangle' | 'open' | 'diamond' | 'circle';\r\n\r\n/**\r\n * Configuration for a single arrow head\r\n */\r\nexport interface ArrowHeadConfig {\r\n /** Whether to display the arrow head */\r\n enabled: boolean;\r\n /** Arrow head style (defaults to 'triangle') */\r\n style?: ArrowHeadStyle;\r\n /** Size of the arrow head in pixels (defaults to strokeWidth * 3) */\r\n size?: number;\r\n /** Fill color (defaults to stroke color of the line) */\r\n fill?: string;\r\n}\r\n\r\n/**\r\n * Configuration for arrow heads at both ends of a line\r\n */\r\nexport interface LineArrowConfig {\r\n /** Arrow head at the start of the line */\r\n start?: ArrowHeadConfig;\r\n /** Arrow head at the end of the line */\r\n end?: ArrowHeadConfig;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bounding-box.interface.js","sourceRoot":"","sources":["../../src/interfaces/bounding-box.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface KritzelBoundingBox {\r\n x: number;\r\n y: number;\r\n z: number;\r\n width: number;\r\n height: number;\r\n depth?: number;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clonable.interface.js","sourceRoot":"","sources":["../../src/interfaces/clonable.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface KritzelClonable<T> {\r\n clone(): T;\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-menu-item.interface.js","sourceRoot":"","sources":["../../src/interfaces/context-menu-item.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { KritzelBaseObject } from \"../classes/objects/base-object.class\";\r\n\r\nexport interface ContextMenuItem {\r\n label: string;\r\n action: (menu: { x: number; y: number }, objects: KritzelBaseObject[]) => void;\r\n icon?: string;\r\n visible?: boolean | ((menu: { x: number; y: number }, objects: KritzelBaseObject[]) => boolean | Promise<boolean>);\r\n disabled?: boolean | ((menu: { x: number; y: number }, objects: KritzelBaseObject[]) => boolean | Promise<boolean>);\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug-info.interface.js","sourceRoot":"","sources":["../../src/interfaces/debug-info.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface KritzelDebugInfo {\r\n showViewportInfo: boolean;\r\n showObjectInfo: boolean;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"engine-state.interface.js","sourceRoot":"","sources":["../../src/interfaces/engine-state.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { KritzelBaseObject } from \"../classes/objects/base-object.class\";\r\nimport { KritzelObjectMap } from \"../classes/structures/object-map.structure\";\r\nimport { KritzelBaseTool } from \"../classes/tools/base-tool.class\";\r\nimport { KritzelWorkspace } from \"../classes/core/workspace.class\";\r\nimport { KritzelHandleType } from \"../enums/handle-type.enum\";\r\nimport { ContextMenuItem } from \"./context-menu-item.interface\";\r\nimport { KritzelDebugInfo } from \"./debug-info.interface\";\r\nimport { LineHandleType } from \"../classes/handlers/line-handle.handler\";\r\nimport { SnapCandidate } from \"./anchor.interface\";\r\n\r\nexport interface KritzelEngineState {\r\n activeWorkspace: KritzelWorkspace;\r\n activeTool: KritzelBaseTool;\r\n copiedObjects?: KritzelBaseObject<any>[];\r\n /** Maps copied object IDs to their original source object IDs (for anchor remapping during paste) */\r\n copiedObjectIdMapping?: Map<string, string>;\r\n objects: KritzelObjectMap<KritzelBaseObject<Element>>;\r\n snapCandidate?: SnapCandidate | null;\r\n resizeHandleType: KritzelHandleType;\r\n lineHandleType: LineHandleType;\r\n hasViewportChanged: boolean;\r\n hasObjectsChanged: boolean;\r\n isReady: boolean;\r\n isEnabled: boolean;\r\n isScaling: boolean;\r\n isPanning: boolean;\r\n isSelecting: boolean;\r\n isResizing: boolean;\r\n isResizeHandleHovered: boolean;\r\n isResizeHandleSelected: boolean;\r\n isRotating: boolean;\r\n isRotationHandleHovered: boolean;\r\n isRotationHandleSelected: boolean;\r\n isLineHandleSelected: boolean;\r\n isLineHandleDragging: boolean;\r\n isDragging: boolean;\r\n isDrawing: boolean;\r\n isErasing: boolean;\r\n isWriting: boolean;\r\n isCtrlKeyPressed: boolean;\r\n isContextMenuVisible: boolean;\r\n contextMenuItems: ContextMenuItem[];\r\n contextMenuX: number;\r\n contextMenuY: number;\r\n skipContextMenu: boolean;\r\n debugInfo: KritzelDebugInfo;\r\n host: HTMLElement;\r\n pointerX: number;\r\n pointerY: number;\r\n scale: number;\r\n scaleMax: number;\r\n scaleMin: number;\r\n startX: number;\r\n startY: number;\r\n translateX: number;\r\n translateXMax: number;\r\n translateXMin: number;\r\n translateY: number;\r\n translateYMax: number;\r\n translateYMin: number;\r\n viewportWidth: number;\r\n viewportHeight: number;\r\n longTouchTimeout: number;\r\n longTouchDelay: number;\r\n pointers: Map<number, PointerEvent>;\r\n workspaces: KritzelWorkspace[];\r\n cursor: {\r\n icon: string;\r\n iconActive?: string;\r\n rotation?: number;\r\n }\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"line-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/line-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { LineAnchor } from './anchor.interface';\r\nimport { LineArrowConfig } from './arrow-head.interface';\r\n\r\nexport interface KritzelLineOptions {\r\n startX: number;\r\n startY: number;\r\n endX: number;\r\n endY: number;\r\n controlX?: number;\r\n controlY?: number;\r\n translateX?: number;\r\n translateY?: number;\r\n scale?: number;\r\n stroke?: string;\r\n strokeWidth?: number;\r\n /** Anchor connection for the start point */\r\n startAnchor?: LineAnchor;\r\n /** Anchor connection for the end point */\r\n endAnchor?: LineAnchor;\r\n /** Arrow head configuration for start and end of line */\r\n arrows?: LineArrowConfig;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.interface.js","sourceRoot":"","sources":["../../src/interfaces/menu-item.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface IKritzelMenuItem<T = any> {\r\n id: string;\r\n label: string;\r\n value?: T;\r\n children?: IKritzelMenuItem[];\r\n isSelectable?: boolean;\r\n isSelected?: boolean;\r\n isEditing?: boolean;\r\n isDisabled?: boolean;\r\n isChildMenuOpen?: boolean;\r\n isNewItem?: boolean;\r\n childMenuAnchor?: HTMLElement;\r\n unchangedState?: Partial<IKritzelMenuItem>;\r\n action?: (item: IKritzelMenuItem, parent: IKritzelMenuItem) => void;\r\n}\r\n\r\nexport interface IKritzelMenuItemSelectEvent {\r\n item: IKritzelMenuItem;\r\n parent: IKritzelMenuItem;\r\n}\r\n\r\nexport interface IKritzelMenuItemToggleChildMenuEvent {\r\n item: IKritzelMenuItem;\r\n childMenuAnchor: HTMLElement;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object.interface.js","sourceRoot":"","sources":["../../src/interfaces/object.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { KritzelBaseObject } from '../classes/objects/base-object.class';\r\nimport { KritzelBoundingBox } from './bounding-box.interface';\r\nimport { KritzelPolygon } from './polygon.interface';\r\n\r\nexport interface KritzelObject<T = Element> {\r\n _elementRef: T;\r\n\r\n id: string;\r\n workspaceId: string;\r\n x: number;\r\n y: number;\r\n translateX: number;\r\n translateY: number;\r\n height: number;\r\n width: number;\r\n backgroundColor: string;\r\n borderColor: string;\r\n borderWidth: number;\r\n opacity: number;\r\n scale: number;\r\n resizing: boolean;\r\n rotation: number;\r\n markedForRemoval: boolean;\r\n zIndex: number;\r\n\r\n isVisible: boolean;\r\n isSelected: boolean;\r\n isHovered: boolean;\r\n isMounted: boolean;\r\n isEditable: boolean;\r\n isInteractive: boolean;\r\n isDebugInfoVisible: boolean;\r\n\r\n set elementRef(element: T);\r\n get elementRef(): T;\r\n get boundingBox(): KritzelBoundingBox;\r\n get totalWidth(): number;\r\n get totalHeight(): number;\r\n get rotationDegrees(): number;\r\n get centerX(): number;\r\n get centerY(): number;\r\n\r\n mount(element: T): void;\r\n generateId(): string;\r\n isInViewport(viewport: KritzelBoundingBox, scale: number): boolean;\r\n centerInViewport(): void;\r\n update(): void;\r\n move(startX: number, startY: number, endX: number, endY: number): void;\r\n resize(x: number, y: number, width: number, height: number): void;\r\n rotate(value: number): void;\r\n copy(): KritzelBaseObject<Element>;\r\n isClass<T extends KritzelBaseObject>(this: T, type: string): this is T;\r\n edit(event?: PointerEvent): void;\r\n hitTest(x: number, y: number): boolean;\r\n hitTestPolygon(polygon: KritzelPolygon): boolean;\r\n updatePosition(x: number, y: number): void;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/path-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface KritzelPathOptions {\r\n points: number[][];\r\n translateX?: number;\r\n translateY?: number;\r\n scale?: number;\r\n stroke?: string;\r\n strokeWidth?: number;\r\n fill?: string;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"point.interface.js","sourceRoot":"","sources":["../../src/interfaces/point.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface KritzelPoint {\r\n\tx: number;\r\n\ty: number;\r\n }\r\n "]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.interface.js","sourceRoot":"","sources":["../../src/interfaces/polygon.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { KritzelPoint } from \"./point.interface\";\r\n\r\nexport interface KritzelPolygon {\r\n bottomLeft: KritzelPoint;\r\n bottomRight: KritzelPoint;\r\n topLeft: KritzelPoint;\r\n topRight: KritzelPoint;\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection-state.interface.js","sourceRoot":"","sources":["../../src/interfaces/selection-state.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface KritzelSelectionState {\r\n \tisSelecting: boolean;\r\n\tisResizing: boolean;\r\n\tisRotating: boolean;\r\n\tisDragging: boolean;\r\n\tisCtrlKeyPressed: boolean;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializable.interface.js","sourceRoot":"","sources":["../../src/interfaces/serializable.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface KritzelSerializable {\r\n __class__: string;\r\n serialize(): any;\r\n deserialize(object: any): KritzelSerializable;\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shortcut.interface.js","sourceRoot":"","sources":["../../src/interfaces/shortcut.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { KritzelCore } from '..';\r\n\r\nexport interface KritzelShortcut {\r\n key: string;\r\n ctrl?: boolean;\r\n shift?: boolean;\r\n condition?: (core: KritzelCore) => boolean;\r\n action: (core: KritzelCore) => void;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-config.interface.js","sourceRoot":"","sources":["../../src/interfaces/sync-config.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ProviderConfig } from './sync-provider.interface';\r\n\r\n/**\r\n * Configuration for workspace synchronization providers\r\n */\r\nexport interface KritzelSyncConfig {\r\n /**\r\n * Array of provider configurations to enable for synchronization.\r\n * Can include provider classes directly or factory functions with options.\r\n * \r\n * @example\r\n * // Simple providers\r\n * providers: [IndexedDBSyncProvider, BroadcastSyncProvider]\r\n * \r\n * @example\r\n * // Provider with options using factory\r\n * providers: [\r\n * IndexedDBSyncProvider,\r\n * WebSocketSyncProvider.with({ url: 'wss://example.com' })\r\n * ]\r\n */\r\n providers: ProviderConfig[];\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-provider.interface.js","sourceRoot":"","sources":["../../src/interfaces/sync-provider.interface.ts"],"names":[],"mappings":"","sourcesContent":["import * as Y from 'yjs';\r\n\r\n/**\r\n * Interface for sync providers that handle data synchronization across different mediums\r\n * (IndexedDB, BroadcastChannel, WebSocket, etc.)\r\n */\r\nexport interface ISyncProvider {\r\n /**\r\n * Initialize and connect the provider\r\n */\r\n connect(): Promise<void>;\r\n\r\n /**\r\n * Disconnect the provider (can be reconnected later)\r\n */\r\n disconnect(): void;\r\n\r\n /**\r\n * Destroy the provider and clean up all resources\r\n */\r\n destroy(): void;\r\n}\r\n\r\n/**\r\n * Factory function type for creating provider instances\r\n */\r\nexport interface ProviderFactory {\r\n create(docName: string, doc: Y.Doc): ISyncProvider;\r\n}\r\n\r\n/**\r\n * Type for provider configuration - either a class constructor or a factory\r\n */\r\nexport type ProviderConfig = (new (docName: string, doc: Y.Doc, options?: any) => ISyncProvider) | ProviderFactory;\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool.interface.js","sourceRoot":"","sources":["../../src/interfaces/tool.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface KritzelTool {\r\n name: string;\r\n handlePointerDown(event: PointerEvent): void;\r\n handlePointerMove(event: PointerEvent): void;\r\n handlePointerUp(event: PointerEvent): void;\r\n handleWheel(event: WheelEvent): void;\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar-control.interface.js","sourceRoot":"","sources":["../../src/interfaces/toolbar-control.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { KritzelBaseTool } from '../classes/tools/base-tool.class';\r\nimport { ShapeType } from '../enums/shape-type.enum';\r\n\r\nexport interface KritzelToolbarSubOption {\r\n id: string;\r\n icon: string;\r\n label: string;\r\n value: any;\r\n toolProperty: string;\r\n}\r\n\r\nexport interface KritzelToolbarControl {\r\n type: 'tool' | 'config';\r\n tool?: (new (...args: any[]) => KritzelBaseTool) | KritzelBaseTool;\r\n icon?: string;\r\n isDefault?: boolean;\r\n name: string;\r\n config?: KritzelTextToolConfig | KritzelBrushToolConfig | KritzelLineToolConfig | KritzelShapeToolConfig;\r\n subOptions?: KritzelToolbarSubOption[];\r\n}\r\n\r\nexport interface KritzelTextToolConfig {\r\n color: string;\r\n size: number;\r\n fontFamily: string;\r\n palette: string[];\r\n}\r\n\r\nexport interface KritzelBrushToolConfig {\r\n type: 'pen' | 'highlighter';\r\n color: string;\r\n size: number;\r\n palettes: {\r\n [brushType: string]: string[];\r\n }\r\n}\r\n\r\nexport interface KritzelLineToolConfig {\r\n color: string;\r\n size: number;\r\n palette: string[];\r\n arrows?: {\r\n start?: { enabled: boolean; style?: 'triangle' | 'open' | 'diamond' | 'circle' };\r\n end?: { enabled: boolean; style?: 'triangle' | 'open' | 'diamond' | 'circle' };\r\n };\r\n}\r\n\r\nexport interface KritzelShapeToolConfig {\r\n shapeType: ShapeType;\r\n fillColor: string;\r\n strokeColor: string;\r\n strokeWidth: number;\r\n fontColor: string;\r\n fontSize: number;\r\n fontFamily: string;\r\n palette: string[];\r\n}\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"undo-state.interface.js","sourceRoot":"","sources":["../../src/interfaces/undo-state.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface KritzelUndoState {\r\n canUndo: boolean;\r\n canRedo: boolean;\r\n undoStackSize: number;\r\n redoStackSize: number;\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deep-readonly.type.js","sourceRoot":"","sources":["../../src/types/deep-readonly.type.ts"],"names":[],"mappings":"","sourcesContent":["export type DeepReadonly<T> =\r\n T extends (infer R)[] ? DeepReadonlyArray<R> :\r\n T extends Function ? T :\r\n T extends object ? DeepReadonlyObject<T> :\r\n T;\r\n\r\ninterface DeepReadonlyArray<T> extends ReadonlyArray<DeepReadonly<T>> {}\r\n\r\ntype DeepReadonlyObject<T> = {\r\n readonly [P in keyof T]: DeepReadonly<T[P]>;\r\n};"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.types.js","sourceRoot":"","sources":["../../src/types/state.types.ts"],"names":[],"mappings":"","sourcesContent":["import { KritzelEngineState } from \"../interfaces/engine-state.interface\";\r\n\r\nexport type StatePropertyKey = keyof KritzelEngineState;\r\nexport type StateChangeListener<T = any> = (newValue: T, oldValue: T, propertyName: string) => void;"]}
|