kritzel-stencil 0.0.172 → 0.1.1
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-SdMGkNhv.js} +1570 -207
- 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 +3 -4
- package/dist/cjs/kritzel-color_22.cjs.entry.js +167 -110
- 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 +6 -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 +62 -16
- 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 +0 -1
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +1 -2
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +3 -4
- package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +0 -1
- package/dist/collection/components/shared/kritzel-color/kritzel-color.js +0 -1
- package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +8 -3
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +8 -20
- package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +1 -2
- package/dist/collection/components/shared/kritzel-font/kritzel-font.js +0 -1
- package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +0 -1
- 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 +0 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +0 -1
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +0 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +0 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +0 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +0 -1
- package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +0 -1
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +0 -1
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +1 -2
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +66 -0
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +66 -45
- 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-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-D4n7UbGY.js +1 -0
- package/dist/components/p-D5ZsALCP.js +1 -0
- package/dist/components/p-D8W6LE-c.js +1 -11
- 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-XGgKC_Fe.js +1 -0
- package/dist/components/p-exWKDgI8.js +9 -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-Cw8mdDpt.js} +1569 -206
- package/dist/esm/index-BqhmuUH2.js +3253 -0
- package/dist/esm/index.js +11 -8
- package/dist/esm/kritzel-brush-style.entry.js +3 -4
- package/dist/esm/kritzel-color_22.entry.js +167 -110
- 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-BqhmuUH2.js +2 -0
- package/dist/stencil/p-Cw8mdDpt.js +1 -0
- package/dist/stencil/p-DQuL1Twl.js +1 -2
- package/dist/stencil/p-d21a009f.entry.js +9 -0
- package/dist/stencil/stencil.esm.js +1 -2
- package/dist/types/classes/managers/anchor.manager.d.ts +1 -1
- package/dist/types/classes/objects/line.class.d.ts +2 -0
- package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
- package/dist/types/components/shared/kritzel-font-size/kritzel-font-size.d.ts +1 -0
- package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +6 -0
- 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-B80ry-r4.js +0 -103
- package/dist/components/p-B80ry-r4.js.map +0 -1
- package/dist/components/p-BC5-_yPs.js +0 -75
- package/dist/components/p-BC5-_yPs.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-Bo-NQ68K.js +0 -132
- package/dist/components/p-Bo-NQ68K.js.map +0 -1
- package/dist/components/p-C6qB08BS.js.map +0 -1
- package/dist/components/p-C720oASC.js +0 -201
- package/dist/components/p-C720oASC.js.map +0 -1
- package/dist/components/p-C92UCXyc.js +0 -308
- package/dist/components/p-C92UCXyc.js.map +0 -1
- package/dist/components/p-CAxHKvww.js +0 -119
- package/dist/components/p-CAxHKvww.js.map +0 -1
- package/dist/components/p-CD9cCvhR.js +0 -272
- package/dist/components/p-CD9cCvhR.js.map +0 -1
- package/dist/components/p-CIlIrPRp.js +0 -83
- package/dist/components/p-CIlIrPRp.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-Cdw55iW6.js +0 -281
- package/dist/components/p-Cdw55iW6.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-D8W6LE-c.js.map +0 -1
- package/dist/components/p-DI7JQMsC.js +0 -46
- package/dist/components/p-DI7JQMsC.js.map +0 -1
- package/dist/components/p-DmYjCy-z.js +0 -62
- package/dist/components/p-DmYjCy-z.js.map +0 -1
- package/dist/components/p-DoD6F7Y4.js +0 -157
- package/dist/components/p-DoD6F7Y4.js.map +0 -1
- package/dist/components/p-DyVWaSSc.js +0 -55
- package/dist/components/p-DyVWaSSc.js.map +0 -1
- package/dist/components/p-WLXyD_eY.js +0 -111
- package/dist/components/p-WLXyD_eY.js.map +0 -1
- package/dist/components/p-c7AGmG3p.js +0 -73
- package/dist/components/p-c7AGmG3p.js.map +0 -1
- package/dist/components/p-fm-bG_zL.js +0 -231
- package/dist/components/p-fm-bG_zL.js.map +0 -1
- package/dist/components/p-fqLbEfE0.js +0 -39586
- package/dist/components/p-fqLbEfE0.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-qWf2T62p.js +0 -57
- package/dist/components/p-qWf2T62p.js.map +0 -1
- package/dist/components/p-vLN8eXFe.js +0 -106
- package/dist/components/p-vLN8eXFe.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-0a9b6696.entry.js +0 -2
- package/dist/stencil/p-0a9b6696.entry.js.map +0 -1
- package/dist/stencil/p-0fdce6ce.entry.js +0 -10
- package/dist/stencil/p-0fdce6ce.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/stencil.esm.js.map +0 -1
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-CwkUrTy1.js';
|
|
2
|
-
import { O as ObjectHelper } from './p-B0kd2rUI.js';
|
|
3
|
-
import { K as KritzelHTMLHelper } from './p-C6qB08BS.js';
|
|
4
|
-
|
|
5
|
-
const KritzelPortal = /*@__PURE__*/ proxyCustomElement(class KritzelPortal extends H {
|
|
6
|
-
constructor(registerHost) {
|
|
7
|
-
super();
|
|
8
|
-
if (registerHost !== false) {
|
|
9
|
-
this.__registerHost();
|
|
10
|
-
}
|
|
11
|
-
this.__attachShadow();
|
|
12
|
-
this.close = createEvent(this, "close");
|
|
13
|
-
}
|
|
14
|
-
get host() { return this; }
|
|
15
|
-
anchor;
|
|
16
|
-
anchorChanged(newValue) {
|
|
17
|
-
if (newValue) {
|
|
18
|
-
this.openPortal();
|
|
19
|
-
this.calculatePosition();
|
|
20
|
-
if (this.autoFocus) {
|
|
21
|
-
this.focusFirstElement();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
this.closePortal();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
offsetX;
|
|
29
|
-
offsetY;
|
|
30
|
-
autoFocus = true;
|
|
31
|
-
close;
|
|
32
|
-
handleOutsideClick(event) {
|
|
33
|
-
event.stopPropagation();
|
|
34
|
-
const isLastPortal = this.lastAddedPortal === this.portal;
|
|
35
|
-
if (!isLastPortal)
|
|
36
|
-
return;
|
|
37
|
-
const target = event.target;
|
|
38
|
-
if (!this.host.contains(target)) {
|
|
39
|
-
this.close.emit();
|
|
40
|
-
this.closePortal();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
handleKeyDown(event) {
|
|
44
|
-
event.stopPropagation();
|
|
45
|
-
const isLastPortal = this.lastAddedPortal === this.portal;
|
|
46
|
-
if (!isLastPortal)
|
|
47
|
-
return;
|
|
48
|
-
if (event.key === 'Escape') {
|
|
49
|
-
this.anchor.focus();
|
|
50
|
-
this.close.emit();
|
|
51
|
-
this.closePortal();
|
|
52
|
-
}
|
|
53
|
-
if (event.key === 'Tab') {
|
|
54
|
-
this.trapFocus(event);
|
|
55
|
-
}
|
|
56
|
-
if (event.key === 'Enter') {
|
|
57
|
-
const activeElement = this.getDeepActiveElement();
|
|
58
|
-
if (activeElement?.click) {
|
|
59
|
-
event.preventDefault();
|
|
60
|
-
activeElement.click();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
handleResize() {
|
|
65
|
-
this.calculatePosition();
|
|
66
|
-
}
|
|
67
|
-
handleWindowScroll() {
|
|
68
|
-
const isInViewport = KritzelHTMLHelper.isElementInViewport(this.anchor);
|
|
69
|
-
if (!isInViewport) {
|
|
70
|
-
this.anchor?.blur();
|
|
71
|
-
this.closePortal();
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
this.calculatePosition();
|
|
75
|
-
}
|
|
76
|
-
portal;
|
|
77
|
-
id = `portal-${ObjectHelper.generateUUID()}`;
|
|
78
|
-
defaultOffset = 0;
|
|
79
|
-
minLeft = 0;
|
|
80
|
-
focusFirstElement() {
|
|
81
|
-
requestAnimationFrame(() => {
|
|
82
|
-
this.firstFocusableElement?.focus?.();
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
getDeepActiveElement() {
|
|
86
|
-
let activeEl = document.activeElement;
|
|
87
|
-
while (activeEl?.shadowRoot?.activeElement) {
|
|
88
|
-
activeEl = activeEl.shadowRoot.activeElement;
|
|
89
|
-
}
|
|
90
|
-
return activeEl;
|
|
91
|
-
}
|
|
92
|
-
trapFocus(event) {
|
|
93
|
-
const focusableElements = KritzelHTMLHelper.getFocusableElements(this.host);
|
|
94
|
-
if (focusableElements.length === 0)
|
|
95
|
-
return;
|
|
96
|
-
const firstFocusable = focusableElements[0];
|
|
97
|
-
const lastFocusable = focusableElements[focusableElements.length - 1];
|
|
98
|
-
const activeElement = this.getDeepActiveElement();
|
|
99
|
-
if (event.shiftKey) {
|
|
100
|
-
/* shift + tab */
|
|
101
|
-
if (activeElement === firstFocusable) {
|
|
102
|
-
lastFocusable.focus();
|
|
103
|
-
event.preventDefault();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
/* tab */
|
|
108
|
-
if (activeElement === lastFocusable) {
|
|
109
|
-
firstFocusable.focus();
|
|
110
|
-
event.preventDefault();
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
get firstFocusableElement() {
|
|
115
|
-
const slotEl = this.host.shadowRoot?.querySelector('slot');
|
|
116
|
-
const firstAssigned = slotEl?.assignedElements({ flatten: true })[0];
|
|
117
|
-
if (!firstAssigned)
|
|
118
|
-
return null;
|
|
119
|
-
const focusable = KritzelHTMLHelper.getFocusableElements(firstAssigned);
|
|
120
|
-
return focusable[0] ?? firstAssigned;
|
|
121
|
-
}
|
|
122
|
-
get lastAddedPortal() {
|
|
123
|
-
const portals = Array.from(document.querySelectorAll('[id^="portal-"]'));
|
|
124
|
-
return portals.length ? portals[portals.length - 1] : null;
|
|
125
|
-
}
|
|
126
|
-
calculateLeft() {
|
|
127
|
-
if (!this.anchor || !this.portal)
|
|
128
|
-
return 0;
|
|
129
|
-
const refRect = this.anchor.getBoundingClientRect();
|
|
130
|
-
const portalRect = this.portal.getBoundingClientRect();
|
|
131
|
-
const offset = this.offsetX ?? this.defaultOffset;
|
|
132
|
-
let left = refRect.left + offset;
|
|
133
|
-
const maxLeft = window.innerWidth - portalRect.width - this.minLeft;
|
|
134
|
-
if (left < this.minLeft)
|
|
135
|
-
left = this.minLeft;
|
|
136
|
-
if (left > maxLeft)
|
|
137
|
-
left = maxLeft;
|
|
138
|
-
return Math.round(left + window.scrollX);
|
|
139
|
-
}
|
|
140
|
-
calculateTop() {
|
|
141
|
-
if (!this.anchor || !this.portal)
|
|
142
|
-
return 0;
|
|
143
|
-
const refRect = this.anchor.getBoundingClientRect();
|
|
144
|
-
const portalRect = this.portal.getBoundingClientRect();
|
|
145
|
-
const offset = this.offsetY ?? this.defaultOffset;
|
|
146
|
-
const padding = 8; // Minimum padding from viewport edges
|
|
147
|
-
let top = refRect.bottom + offset;
|
|
148
|
-
const spaceBelow = window.innerHeight - refRect.bottom - offset - padding;
|
|
149
|
-
const spaceAbove = refRect.top - offset - padding;
|
|
150
|
-
// Reset max-height CSS custom property
|
|
151
|
-
this.host.style.removeProperty('--kritzel-portal-max-height');
|
|
152
|
-
if (portalRect.height <= spaceBelow) {
|
|
153
|
-
// Fits below the anchor
|
|
154
|
-
top = refRect.bottom + offset;
|
|
155
|
-
}
|
|
156
|
-
else if (portalRect.height <= spaceAbove) {
|
|
157
|
-
// Fits above the anchor
|
|
158
|
-
top = refRect.top - portalRect.height - offset;
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
// Doesn't fit above or below - constrain the height
|
|
162
|
-
if (spaceBelow >= spaceAbove) {
|
|
163
|
-
// More space below, keep it below with constrained height
|
|
164
|
-
top = refRect.bottom + offset;
|
|
165
|
-
this.host.style.setProperty('--kritzel-portal-max-height', `${spaceBelow}px`);
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
// More space above, position above with constrained height
|
|
169
|
-
top = padding;
|
|
170
|
-
this.host.style.setProperty('--kritzel-portal-max-height', `${spaceAbove}px`);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return Math.round(top + window.scrollY);
|
|
174
|
-
}
|
|
175
|
-
openPortal() {
|
|
176
|
-
this.portal = document.createElement('div');
|
|
177
|
-
this.portal.setAttribute('id', this.id);
|
|
178
|
-
this.portal.style.zIndex = '1';
|
|
179
|
-
this.portal.style.position = 'absolute';
|
|
180
|
-
this.portal.style.top = '0px';
|
|
181
|
-
this.portal.style.left = '0px';
|
|
182
|
-
this.portal.appendChild(this.host);
|
|
183
|
-
document.body.append(this.portal);
|
|
184
|
-
}
|
|
185
|
-
closePortal() {
|
|
186
|
-
const portal = document.getElementById(this.id);
|
|
187
|
-
if (!portal)
|
|
188
|
-
return;
|
|
189
|
-
document.body.removeChild(portal);
|
|
190
|
-
this.host.remove();
|
|
191
|
-
}
|
|
192
|
-
calculatePosition() {
|
|
193
|
-
if (!this.anchor || !this.portal)
|
|
194
|
-
return;
|
|
195
|
-
const top = this.calculateTop();
|
|
196
|
-
const left = this.calculateLeft();
|
|
197
|
-
this.portal.style.top = `${top}px`;
|
|
198
|
-
this.portal.style.left = `${left}px`;
|
|
199
|
-
}
|
|
200
|
-
render() {
|
|
201
|
-
return (h(Host, { key: '9706a815c6f49853983a0fdb68b097d62e65e90b', style: { display: this.anchor ? 'block' : 'none' } }, h("slot", { key: '1bd76deeb440cd25e3895dc8824f5200461e4ae0' })));
|
|
202
|
-
}
|
|
203
|
-
static get watchers() { return {
|
|
204
|
-
"anchor": ["anchorChanged"]
|
|
205
|
-
}; }
|
|
206
|
-
}, [769, "kritzel-portal", {
|
|
207
|
-
"anchor": [16],
|
|
208
|
-
"offsetX": [2, "offset-x"],
|
|
209
|
-
"offsetY": [2, "offset-y"],
|
|
210
|
-
"autoFocus": [4, "auto-focus"]
|
|
211
|
-
}, [[8, "click", "handleOutsideClick"], [8, "keydown", "handleKeyDown"], [11, "resize", "handleResize"], [11, "scroll", "handleWindowScroll"]], {
|
|
212
|
-
"anchor": ["anchorChanged"]
|
|
213
|
-
}]);
|
|
214
|
-
function defineCustomElement() {
|
|
215
|
-
if (typeof customElements === "undefined") {
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
const components = ["kritzel-portal"];
|
|
219
|
-
components.forEach(tagName => { switch (tagName) {
|
|
220
|
-
case "kritzel-portal":
|
|
221
|
-
if (!customElements.get(tagName)) {
|
|
222
|
-
customElements.define(tagName, KritzelPortal);
|
|
223
|
-
}
|
|
224
|
-
break;
|
|
225
|
-
} });
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
export { KritzelPortal as K, defineCustomElement as d };
|
|
229
|
-
//# sourceMappingURL=p-fm-bG_zL.js.map
|
|
230
|
-
|
|
231
|
-
//# sourceMappingURL=p-fm-bG_zL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-fm-bG_zL.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-portal/kritzel-portal.tsx"],"sourcesContent":["import { Component, Host, Listen, Prop, Watch, h, Event, EventEmitter, Element } from '@stencil/core';\r\nimport { ObjectHelper } from '../../../helpers/object.helper';\r\nimport { KritzelHTMLHelper } from '../../../helpers/html.helper';\r\n\r\n@Component({\r\n tag: 'kritzel-portal',\r\n shadow: true,\r\n})\r\nexport class KritzelPortal {\r\n @Element() host: HTMLElement;\r\n\r\n @Prop() anchor: HTMLElement;\r\n @Watch('anchor')\r\n anchorChanged(newValue: HTMLElement) {\r\n if (newValue) {\r\n this.openPortal();\r\n this.calculatePosition();\r\n if (this.autoFocus) {\r\n this.focusFirstElement();\r\n }\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n @Prop() offsetX: number;\r\n @Prop() offsetY: number;\r\n @Prop() autoFocus: boolean = true;\r\n\r\n @Event() close: EventEmitter<void>;\r\n\r\n @Listen('click', { target: 'window' })\r\n handleOutsideClick(event: MouseEvent) {\r\n event.stopPropagation();\r\n\r\n const isLastPortal = this.lastAddedPortal === this.portal;\r\n if (!isLastPortal) return;\r\n\r\n const target = event.target as HTMLElement;\r\n if (!this.host.contains(target)) {\r\n this.close.emit();\r\n this.closePortal();\r\n }\r\n }\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleKeyDown(event: KeyboardEvent) {\r\n event.stopPropagation();\r\n\r\n const isLastPortal = this.lastAddedPortal === this.portal;\r\n if (!isLastPortal) return;\r\n\r\n if (event.key === 'Escape') {\r\n this.anchor.focus();\r\n this.close.emit();\r\n this.closePortal();\r\n }\r\n\r\n if (event.key === 'Tab') {\r\n this.trapFocus(event);\r\n }\r\n\r\n if (event.key === 'Enter') {\r\n const activeElement = this.getDeepActiveElement() as HTMLElement;\r\n if (activeElement?.click) {\r\n event.preventDefault();\r\n activeElement.click();\r\n }\r\n }\r\n }\r\n\r\n @Listen('resize', { target: 'window', capture: true })\r\n handleResize() {\r\n this.calculatePosition();\r\n }\r\n\r\n @Listen('scroll', { target: 'window', capture: true })\r\n handleWindowScroll() {\r\n const isInViewport = KritzelHTMLHelper.isElementInViewport(this.anchor);\r\n\r\n if (!isInViewport) {\r\n this.anchor?.blur();\r\n this.closePortal();\r\n return;\r\n }\r\n\r\n this.calculatePosition();\r\n }\r\n\r\n private portal: HTMLElement;\r\n private id: string = `portal-${ObjectHelper.generateUUID()}`;\r\n private defaultOffset = 0;\r\n private minLeft = 0;\r\n\r\n private focusFirstElement() {\r\n requestAnimationFrame(() => {\r\n this.firstFocusableElement?.focus?.();\r\n });\r\n }\r\n\r\n private getDeepActiveElement(): Element {\r\n let activeEl = document.activeElement;\r\n while (activeEl?.shadowRoot?.activeElement) {\r\n activeEl = activeEl.shadowRoot.activeElement;\r\n }\r\n return activeEl;\r\n }\r\n\r\n private trapFocus(event: KeyboardEvent) {\r\n const focusableElements = KritzelHTMLHelper.getFocusableElements(this.host);\r\n if (focusableElements.length === 0) return;\r\n\r\n const firstFocusable = focusableElements[0];\r\n const lastFocusable = focusableElements[focusableElements.length - 1];\r\n const activeElement = this.getDeepActiveElement();\r\n\r\n if (event.shiftKey) {\r\n /* shift + tab */\r\n if (activeElement === firstFocusable) {\r\n lastFocusable.focus();\r\n event.preventDefault();\r\n }\r\n } else {\r\n /* tab */\r\n if (activeElement === lastFocusable) {\r\n firstFocusable.focus();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n private get firstFocusableElement(): HTMLElement | null {\r\n const slotEl = this.host.shadowRoot?.querySelector('slot') as HTMLSlotElement | null;\r\n const firstAssigned = slotEl?.assignedElements({ flatten: true })[0] as HTMLElement | undefined;\r\n if (!firstAssigned) return null;\r\n\r\n const focusable = KritzelHTMLHelper.getFocusableElements(firstAssigned);\r\n return focusable[0] ?? firstAssigned;\r\n }\r\n\r\n private get lastAddedPortal(): HTMLElement | null {\r\n const portals = Array.from(document.querySelectorAll<HTMLElement>('[id^=\"portal-\"]'));\r\n return portals.length ? portals[portals.length - 1] : null;\r\n }\r\n\r\n private calculateLeft() {\r\n if (!this.anchor || !this.portal) return 0;\r\n const refRect = this.anchor.getBoundingClientRect();\r\n const portalRect = this.portal.getBoundingClientRect();\r\n\r\n const offset = this.offsetX ?? this.defaultOffset;\r\n let left = refRect.left + offset;\r\n\r\n const maxLeft = window.innerWidth - portalRect.width - this.minLeft;\r\n if (left < this.minLeft) left = this.minLeft;\r\n if (left > maxLeft) left = maxLeft;\r\n\r\n return Math.round(left + window.scrollX);\r\n }\r\n\r\n private calculateTop() {\r\n if (!this.anchor || !this.portal) return 0;\r\n const refRect = this.anchor.getBoundingClientRect();\r\n const portalRect = this.portal.getBoundingClientRect();\r\n const offset = this.offsetY ?? this.defaultOffset;\r\n const padding = 8; // Minimum padding from viewport edges\r\n\r\n let top = refRect.bottom + offset;\r\n const spaceBelow = window.innerHeight - refRect.bottom - offset - padding;\r\n const spaceAbove = refRect.top - offset - padding;\r\n\r\n // Reset max-height CSS custom property \r\n this.host.style.removeProperty('--kritzel-portal-max-height');\r\n\r\n if (portalRect.height <= spaceBelow) {\r\n // Fits below the anchor\r\n top = refRect.bottom + offset;\r\n } else if (portalRect.height <= spaceAbove) {\r\n // Fits above the anchor\r\n top = refRect.top - portalRect.height - offset;\r\n } else {\r\n // Doesn't fit above or below - constrain the height\r\n if (spaceBelow >= spaceAbove) {\r\n // More space below, keep it below with constrained height\r\n top = refRect.bottom + offset;\r\n this.host.style.setProperty('--kritzel-portal-max-height', `${spaceBelow}px`);\r\n } else {\r\n // More space above, position above with constrained height\r\n top = padding;\r\n this.host.style.setProperty('--kritzel-portal-max-height', `${spaceAbove}px`);\r\n }\r\n }\r\n\r\n return Math.round(top + window.scrollY);\r\n }\r\n\r\n private openPortal() {\r\n this.portal = document.createElement('div');\r\n this.portal.setAttribute('id', this.id);\r\n this.portal.style.zIndex = '1';\r\n this.portal.style.position = 'absolute';\r\n this.portal.style.top = '0px';\r\n this.portal.style.left = '0px';\r\n this.portal.appendChild(this.host);\r\n document.body.append(this.portal);\r\n }\r\n\r\n private closePortal() {\r\n const portal = document.getElementById(this.id);\r\n if (!portal) return;\r\n document.body.removeChild(portal);\r\n this.host.remove();\r\n }\r\n\r\n private calculatePosition() {\r\n if (!this.anchor || !this.portal) return;\r\n const top = this.calculateTop();\r\n const left = this.calculateLeft();\r\n this.portal.style.top = `${top}px`;\r\n this.portal.style.left = `${left}px`;\r\n }\r\n\r\n render() {\r\n return (\r\n <Host style={{ display: this.anchor ? 'block' : 'none' }}>\r\n <slot />\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|