kritzel-stencil 0.0.129 → 0.0.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index-CUSIflVf.js +2 -2
- package/dist/cjs/{index-C7Read21.js → index-CfXjPLHb.js} +46 -28
- package/dist/cjs/index-CfXjPLHb.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/{kritzel-brush-style_22.cjs.entry.js → kritzel-brush-style_23.cjs.entry.js} +500 -454
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/stencil.cjs.js +1 -1
- package/dist/collection/classes/commands/add-object.command.js +2 -2
- package/dist/collection/classes/commands/add-object.command.js.map +1 -1
- package/dist/collection/classes/commands/add-selection-group.command.js +3 -3
- package/dist/collection/classes/commands/add-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/remove-object.command.js +4 -4
- package/dist/collection/classes/commands/remove-object.command.js.map +1 -1
- package/dist/collection/classes/commands/remove-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/remove-selection-group.command.js.map +1 -1
- package/dist/collection/classes/commands/rotate-selection-group.command.js +2 -2
- package/dist/collection/classes/commands/rotate-selection-group.command.js.map +1 -1
- package/dist/collection/classes/handlers/selection.handler.js +5 -5
- package/dist/collection/classes/handlers/selection.handler.js.map +1 -1
- package/dist/collection/classes/objects/base-object.class.js +1 -1
- package/dist/collection/classes/objects/base-object.class.js.map +1 -1
- package/dist/collection/classes/objects/path.class.js +1 -1
- package/dist/collection/classes/objects/path.class.js.map +1 -1
- package/dist/collection/classes/objects/selection-group.class.js +6 -6
- package/dist/collection/classes/objects/selection-group.class.js.map +1 -1
- package/dist/collection/classes/store.class.js +9 -22
- package/dist/collection/classes/store.class.js.map +1 -1
- package/dist/collection/classes/structures/object-map.structure.js +42 -0
- package/dist/collection/classes/structures/object-map.structure.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.css +7 -0
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +12 -2
- package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +1 -1
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +17 -17
- package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +1 -1
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.css +15 -168
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +167 -193
- package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +1 -1
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.css +129 -0
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +261 -0
- package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +1 -0
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +160 -43
- package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +1 -1
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.css +83 -78
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +139 -118
- package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +1 -1
- package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
- package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +4 -4
- package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +2 -2
- package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +2 -2
- package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +3 -3
- package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +110 -91
- package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +1 -1
- package/dist/collection/configs/default-engine-state.js +1 -1
- package/dist/collection/configs/default-engine-state.js.map +1 -1
- package/dist/collection/helpers/keyboard.helper.js +18 -0
- package/dist/collection/helpers/keyboard.helper.js.map +1 -1
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/interfaces/engine-state.interface.js.map +1 -1
- package/dist/collection/interfaces/menu-item.interface.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +3 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/kritzel-control-brush-config.js +1 -1
- package/dist/components/kritzel-control-text-config.js +1 -1
- package/dist/components/kritzel-controls.js +1 -1
- package/dist/components/kritzel-editor.js +53 -39
- package/dist/components/kritzel-editor.js.map +1 -1
- package/dist/components/kritzel-engine.js +1 -1
- package/dist/components/kritzel-menu-item.d.ts +11 -0
- package/dist/components/kritzel-menu-item.js +9 -0
- package/dist/components/kritzel-menu-item.js.map +1 -0
- package/dist/components/kritzel-menu.js +1 -1
- package/dist/components/kritzel-portal.js +1 -1
- package/dist/components/kritzel-split-button.js +1 -1
- package/dist/components/kritzel-stroke-size.js +1 -1
- package/dist/components/kritzel-tooltip.js +1 -1
- package/dist/components/kritzel-utility-panel.js +1 -1
- package/dist/components/kritzel-workspace-manager.js +1 -1
- package/dist/components/{p-jG1e48OE.js → p-26poIWa_.js} +6 -6
- package/dist/components/{p-jG1e48OE.js.map → p-26poIWa_.js.map} +1 -1
- package/dist/components/{p-rQeWFfPG.js → p-BGccckxP.js} +3 -3
- package/dist/components/{p-rQeWFfPG.js.map → p-BGccckxP.js.map} +1 -1
- package/dist/components/p-BcQWRzsB.js +183 -0
- package/dist/components/p-BcQWRzsB.js.map +1 -0
- package/dist/components/p-C-DqsDXz.js +238 -0
- package/dist/components/p-C-DqsDXz.js.map +1 -0
- package/dist/components/{p-B7VrEdgP.js → p-C9-70hiF.js} +25 -7
- package/dist/components/p-C9-70hiF.js.map +1 -0
- package/dist/components/{p-Dozs0Zfn.js → p-CaPdvVd4.js} +62 -50
- package/dist/components/p-CaPdvVd4.js.map +1 -0
- package/dist/components/{p-a7KmQzo4.js → p-Cb1IUD_g.js} +5 -5
- package/dist/components/{p-a7KmQzo4.js.map → p-Cb1IUD_g.js.map} +1 -1
- package/dist/components/{p-BaKb8ZLg.js → p-Crni2OI4.js} +4 -4
- package/dist/components/{p-BaKb8ZLg.js.map → p-Crni2OI4.js.map} +1 -1
- package/dist/components/{p-yZFrTtMQ.js → p-D_Uh-xv_.js} +11 -11
- package/dist/components/{p-yZFrTtMQ.js.map → p-D_Uh-xv_.js.map} +1 -1
- package/dist/components/{p-BzSz74Ci.js → p-fyfT6A5K.js} +3 -3
- package/dist/components/{p-BzSz74Ci.js.map → p-fyfT6A5K.js.map} +1 -1
- package/dist/components/{p-D-zg05gA.js → p-jGaWxggY.js} +93 -179
- package/dist/components/p-jGaWxggY.js.map +1 -0
- package/dist/components/p-jpGLgpoq.js +237 -0
- package/dist/components/p-jpGLgpoq.js.map +1 -0
- package/dist/esm/{index-J4NpPimy.js → index-DqqxAoZI.js} +47 -29
- package/dist/esm/index-DqqxAoZI.js.map +1 -0
- package/dist/esm/index-NiIEUDzj.js +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/{kritzel-brush-style_22.entry.js → kritzel-brush-style_23.entry.js} +500 -455
- package/dist/esm/loader.js +1 -1
- package/dist/esm/stencil.js +1 -1
- package/dist/stencil/index.esm.js +1 -1
- package/dist/stencil/p-DqqxAoZI.js +2 -0
- package/dist/stencil/p-DqqxAoZI.js.map +1 -0
- package/dist/stencil/p-eebdbf65.entry.js +2 -0
- package/dist/stencil/p-eebdbf65.entry.js.map +1 -0
- package/dist/stencil/stencil.esm.js +1 -1
- package/dist/types/classes/structures/object-map.structure.d.ts +11 -0
- package/dist/types/components/core/kritzel-editor/kritzel-editor.d.ts +3 -0
- package/dist/types/components/shared/kritzel-menu/kritzel-menu.d.ts +18 -20
- package/dist/types/components/shared/kritzel-menu-item/kritzel-menu-item.d.ts +26 -0
- package/dist/types/components/shared/kritzel-portal/kritzel-portal.d.ts +15 -10
- package/dist/types/components/shared/kritzel-split-button/kritzel-split-button.d.ts +23 -15
- package/dist/types/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.d.ts +18 -14
- package/dist/types/components.d.ts +90 -61
- package/dist/types/helpers/keyboard.helper.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interfaces/engine-state.interface.d.ts +2 -2
- package/dist/types/interfaces/menu-item.interface.d.ts +21 -7
- package/package.json +1 -1
- package/dist/cjs/index-C7Read21.js.map +0 -1
- package/dist/collection/classes/structures/octree.structure.js +0 -115
- package/dist/collection/classes/structures/octree.structure.js.map +0 -1
- package/dist/components/p-B7VrEdgP.js.map +0 -1
- package/dist/components/p-BmJbJwkH.js +0 -167
- package/dist/components/p-BmJbJwkH.js.map +0 -1
- package/dist/components/p-C6OxvITm.js +0 -168
- package/dist/components/p-C6OxvITm.js.map +0 -1
- package/dist/components/p-D-zg05gA.js.map +0 -1
- package/dist/components/p-Dozs0Zfn.js.map +0 -1
- package/dist/components/p-aaxf-h5S.js +0 -159
- package/dist/components/p-aaxf-h5S.js.map +0 -1
- package/dist/esm/index-J4NpPimy.js.map +0 -1
- package/dist/stencil/p-43202395.entry.js +0 -2
- package/dist/stencil/p-43202395.entry.js.map +0 -1
- package/dist/stencil/p-J4NpPimy.js +0 -2
- package/dist/stencil/p-J4NpPimy.js.map +0 -1
- package/dist/types/classes/structures/octree.structure.d.ts +0 -18
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-Dozs0Zfn.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/shared/kritzel-split-button/kritzel-split-button.css?tag=kritzel-split-button&encapsulation=shadow","src/components/shared/kritzel-split-button/kritzel-split-button.tsx"],"sourcesContent":[":host {\n position: relative;\n display: flex;\n align-items: center;\n font-family: sans-serif;\n z-index: 1;\n padding: var(--kritzel-controls-padding, 4px);\n background-color: var(--kritzel-controls-background-color, #ffffff);\n border-radius: var(--kritzel-controls-border-radius, 12px);\n box-shadow: var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));\n border: var(--kritzel-controls-border, 1px solid #ebebeb);\n gap: var(--kritzel-context-menu-item-gap, 4px);\n}\n\n:host(:focus) {\n outline: none;\n}\n\n:host(.mobile){\n --kritzel-context-menu-item-hover-background-color: transparent;\n}\n\nbutton {\n border: none;\n background-color: transparent;\n padding: 0;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: all;\n -webkit-tap-highlight-color: transparent;\n}\n\n.split-main-button,\n.split-menu-button {\n height: auto;\n display: flex;\n align-items: center;\n padding: var(--kritzel-controls-padding, 8px);\n background-color: var(--kritzel-controls-background-color, #ffffff);\n border-radius: var(--kritzel-controls-border-radius, 12px);\n font-size: var(--kritzel-context-menu-item-font-size, 14px);\n}\n\n.split-main-button:hover,\n.split-menu-button:hover {\n background-color: var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%));\n}\n\n.split-main-button:focus,\n.split-menu-button:focus {\n outline: none;\n background-color: var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%));\n}\n\n.split-main-button {\n gap: var(--kritzel-context-menu-item-gap, 4px);\n}\n\n.split-menu-button {\n border-left: none;\n justify-content: center;\n}\n\n.split-divider {\n width: var(--kritzel-controls-divider-width, 1px);\n height: 24px;\n background-color: var(--kritzel-controls-divider-background-color, hsl(0, 0%, 0%, 4.3%));\n}\n","import { Component, h, Prop, State, Event, EventEmitter, Host, Element, Method } from '@stencil/core';\r\nimport { KritzelMenuItem } from '../../../interfaces/menu-item.interface';\r\nimport { KritzelDevicesHelper } from '../../../helpers/devices.helper';\r\n\r\n@Component({\r\n tag: 'kritzel-split-button',\r\n styleUrl: 'kritzel-split-button.css',\r\n shadow: true,\r\n})\r\nexport class KritzelSplitButton {\r\n @Prop()\r\n buttonText: string;\r\n\r\n @Prop()\r\n buttonIcon: string;\r\n\r\n @Prop()\r\n dropdownIcon = 'chevron-down';\r\n\r\n @Prop()\r\n options: KritzelMenuItem[] = [];\r\n\r\n @Prop()\r\n disabled = false;\r\n\r\n @Prop()\r\n activeItemIndex: number | null = null;\r\n\r\n @Prop()\r\n editingIndex: number | null = null;\r\n\r\n @Event()\r\n buttonClick: EventEmitter<void>;\r\n\r\n @Event()\r\n optionSelect: EventEmitter<KritzelMenuItem>;\r\n\r\n @Event()\r\n menuOpened: EventEmitter<void>;\r\n\r\n @Event()\r\n menuClosed: EventEmitter<void>;\r\n\r\n @Element()\r\n host!: HTMLElement;\r\n\r\n @State()\r\n isMenuOpen = false;\r\n\r\n @State()\r\n isTouchDevice: boolean = KritzelDevicesHelper.isTouchDevice();\r\n\r\n splitMenuButton: HTMLButtonElement;\r\n\r\n @Method()\r\n async openMenu() {\r\n if (this.disabled || this.isMenuOpen) return;\r\n\r\n this.isMenuOpen = true;\r\n this.menuOpened.emit();\r\n document.addEventListener('click', this.handleDocumentClick, { once: true });\r\n }\r\n\r\n @Method()\r\n async closeMenu() {\r\n if (this.disabled || !this.isMenuOpen) return;\r\n\r\n this.isMenuOpen = false;\r\n this.menuClosed.emit();\r\n\r\n this.host.focus();\r\n }\r\n\r\n private handleDocumentClick = (event: MouseEvent) => {\r\n const path = (event.composedPath && event.composedPath()) || [];\r\n const clickedInside = path.some(node => (node as HTMLElement)?.tagName === 'KRITZEL-SPLIT-BUTTON' || (node as HTMLElement)?.tagName === 'KRITZEL-MENU');\r\n\r\n if (!clickedInside) {\r\n this.closeMenu();\r\n } else if (this.isMenuOpen) {\r\n document.addEventListener('click', this.handleDocumentClick, { once: true });\r\n }\r\n };\r\n\r\n private toggleMenu = () => {\r\n if (this.isMenuOpen) {\r\n this.closeMenu();\r\n } else {\r\n this.openMenu();\r\n }\r\n };\r\n\r\n private handleButtonClick = () => {\r\n if (!this.disabled) {\r\n this.buttonClick.emit();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host tabIndex={0} class={{ mobile: this.isTouchDevice }}>\r\n <button class=\"split-main-button\" tabIndex={0} onClick={this.handleButtonClick} disabled={this.disabled}>\r\n {this.buttonIcon && <kritzel-icon name={this.buttonIcon}></kritzel-icon>}\r\n {this.buttonText && (\r\n <span>\r\n {this.buttonText} ({this.options.length})\r\n </span>\r\n )}\r\n </button>\r\n\r\n <div class=\"split-divider\"></div>\r\n\r\n <button ref={el => (this.splitMenuButton = el)} class=\"split-menu-button\" tabIndex={0} onClick={this.toggleMenu} disabled={this.disabled}>\r\n <kritzel-icon name={this.dropdownIcon}></kritzel-icon>\r\n </button>\r\n\r\n <kritzel-portal anchor={this.host} offsetY={4}>\r\n {this.isMenuOpen && (\r\n <kritzel-menu\r\n style={{ maxHeight: '300px', width: '180px' }}\r\n items={this.options}\r\n activeItemIndex={this.activeItemIndex}\r\n editingIndex={this.editingIndex}\r\n onClose={() => this.closeMenu()}\r\n ></kritzel-menu>\r\n )}\r\n </kritzel-portal>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-BqrTPNyu.js';
|
|
2
|
-
import { K as KritzelWorkspace } from './p-BeVv4o5c.js';
|
|
3
|
-
import { O as ObjectHelper } from './p-Bb6od8He.js';
|
|
4
|
-
import { d as defineCustomElement$4 } from './p-BLmFBe2a.js';
|
|
5
|
-
import { d as defineCustomElement$3 } from './p-C6OxvITm.js';
|
|
6
|
-
import { d as defineCustomElement$2 } from './p-BmJbJwkH.js';
|
|
7
|
-
import { d as defineCustomElement$1 } from './p-Dozs0Zfn.js';
|
|
8
|
-
|
|
9
|
-
const kritzelWorkspaceManagerCss = ":host{display:flex;flex-direction:column;z-index:1}";
|
|
10
|
-
|
|
11
|
-
const KritzelWorkspaceManager = /*@__PURE__*/ proxyCustomElement(class KritzelWorkspaceManager extends H {
|
|
12
|
-
constructor(registerHost) {
|
|
13
|
-
super();
|
|
14
|
-
if (registerHost !== false) {
|
|
15
|
-
this.__registerHost();
|
|
16
|
-
}
|
|
17
|
-
this.__attachShadow();
|
|
18
|
-
this.isWorkspaceManagerReady = createEvent(this, "isWorkspaceManagerReady");
|
|
19
|
-
this.workspaceChange = createEvent(this, "workspaceChange");
|
|
20
|
-
this.workspaces = [];
|
|
21
|
-
this.editingIndex = null;
|
|
22
|
-
this.newWorkspace = null;
|
|
23
|
-
this.kritzelEngine = null;
|
|
24
|
-
this.handleNewWorkspace = async () => {
|
|
25
|
-
var _a;
|
|
26
|
-
await ((_a = this.splitButtonRef) === null || _a === void 0 ? void 0 : _a.openMenu());
|
|
27
|
-
requestAnimationFrame(() => {
|
|
28
|
-
this.newWorkspace = new KritzelWorkspace(ObjectHelper.generateUUID(), 'New Workspace');
|
|
29
|
-
this.editingIndex = 0;
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
this.handleMenuClosed = () => {
|
|
33
|
-
this.editingIndex = null;
|
|
34
|
-
this.newWorkspace = null;
|
|
35
|
-
};
|
|
36
|
-
this.handleSave = async (item) => {
|
|
37
|
-
const workspace = item.value;
|
|
38
|
-
const updatedWorkspace = Object.assign(Object.assign({}, workspace), { name: item.label });
|
|
39
|
-
if (this.newWorkspace) {
|
|
40
|
-
await this.kritzelEngine.createWorkspace(updatedWorkspace);
|
|
41
|
-
this.editingIndex = null;
|
|
42
|
-
this.newWorkspace = null;
|
|
43
|
-
this.selectWorkspace(updatedWorkspace);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
await this.kritzelEngine.updateWorkspace(updatedWorkspace);
|
|
47
|
-
this.editingIndex = null;
|
|
48
|
-
this.newWorkspace = null;
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
this.handleRename = (index) => {
|
|
52
|
-
this.editingIndex = index;
|
|
53
|
-
};
|
|
54
|
-
this.handleDelete = async (workspaceToDelete) => {
|
|
55
|
-
var _a;
|
|
56
|
-
await this.kritzelEngine.deleteWorkspace(workspaceToDelete);
|
|
57
|
-
if (((_a = this.activeWorkspace) === null || _a === void 0 ? void 0 : _a.id) === workspaceToDelete.id) {
|
|
58
|
-
const newActiveWorkspace = this.sortedWorkspaces.find(w => w.id !== workspaceToDelete.id) || null;
|
|
59
|
-
this.selectWorkspace(newActiveWorkspace);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
get sortedWorkspaces() {
|
|
64
|
-
const uniqueWorkspaces = [...new Map(this.workspaces.map(workspace => [workspace.id, workspace])).values()];
|
|
65
|
-
return [this.newWorkspace, ...uniqueWorkspaces].filter(ws => ws !== null).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
|
|
66
|
-
}
|
|
67
|
-
get activeItemIndex() {
|
|
68
|
-
return this.sortedWorkspaces.findIndex(ws => { var _a; return ws.id === ((_a = this.activeWorkspace) === null || _a === void 0 ? void 0 : _a.id); });
|
|
69
|
-
}
|
|
70
|
-
async componentWillLoad() {
|
|
71
|
-
await this.initializeEngine();
|
|
72
|
-
this.isWorkspaceManagerReady.emit();
|
|
73
|
-
}
|
|
74
|
-
async initializeEngine() {
|
|
75
|
-
await customElements.whenDefined('kritzel-engine');
|
|
76
|
-
this.kritzelEngine = this.host.parentElement.querySelector('kritzel-engine');
|
|
77
|
-
if (!this.kritzelEngine) {
|
|
78
|
-
throw new Error('kritzel-engine not found in parent element.');
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
handleSelect(workspace) {
|
|
82
|
-
this.selectWorkspace(workspace);
|
|
83
|
-
}
|
|
84
|
-
selectWorkspace(workspace) {
|
|
85
|
-
debugger;
|
|
86
|
-
if (this.editingIndex !== null)
|
|
87
|
-
return;
|
|
88
|
-
this.activeWorkspace = this.sortedWorkspaces.find(ws => ws.id === workspace.id);
|
|
89
|
-
this.workspaceChange.emit(workspace);
|
|
90
|
-
}
|
|
91
|
-
render() {
|
|
92
|
-
const workspaceSelectionOptions = this.sortedWorkspaces.map((ws, index) => ({
|
|
93
|
-
label: ws.name,
|
|
94
|
-
value: ws,
|
|
95
|
-
select: () => this.handleSelect(ws),
|
|
96
|
-
cancel: this.handleMenuClosed,
|
|
97
|
-
save: this.handleSave,
|
|
98
|
-
children: [
|
|
99
|
-
{
|
|
100
|
-
label: 'Rename',
|
|
101
|
-
value: 'rename',
|
|
102
|
-
select: () => this.handleRename(index),
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
label: 'Delete',
|
|
106
|
-
value: 'delete',
|
|
107
|
-
disabled: this.sortedWorkspaces.length <= 1,
|
|
108
|
-
select: () => this.handleDelete(ws),
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
}));
|
|
112
|
-
return (h(Host, { key: '4d060aee853a47ea451f707c6de345b6efcbd678' }, h("kritzel-split-button", { key: 'cb52b41b25c7ddc8584e96a2151efc6406166e99', ref: el => (this.splitButtonRef = el), buttonIcon: "plus", options: workspaceSelectionOptions, activeItemIndex: this.activeItemIndex, editingIndex: this.editingIndex, onButtonClick: this.handleNewWorkspace, onMenuClosed: this.handleMenuClosed })));
|
|
113
|
-
}
|
|
114
|
-
get host() { return this; }
|
|
115
|
-
static get style() { return kritzelWorkspaceManagerCss; }
|
|
116
|
-
}, [257, "kritzel-workspace-manager", {
|
|
117
|
-
"workspaces": [16],
|
|
118
|
-
"activeWorkspace": [1040, "active-workspace"],
|
|
119
|
-
"editingIndex": [32],
|
|
120
|
-
"newWorkspace": [32]
|
|
121
|
-
}]);
|
|
122
|
-
function defineCustomElement() {
|
|
123
|
-
if (typeof customElements === "undefined") {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
const components = ["kritzel-workspace-manager", "kritzel-icon", "kritzel-menu", "kritzel-portal", "kritzel-split-button"];
|
|
127
|
-
components.forEach(tagName => { switch (tagName) {
|
|
128
|
-
case "kritzel-workspace-manager":
|
|
129
|
-
if (!customElements.get(tagName)) {
|
|
130
|
-
customElements.define(tagName, KritzelWorkspaceManager);
|
|
131
|
-
}
|
|
132
|
-
break;
|
|
133
|
-
case "kritzel-icon":
|
|
134
|
-
if (!customElements.get(tagName)) {
|
|
135
|
-
defineCustomElement$4();
|
|
136
|
-
}
|
|
137
|
-
break;
|
|
138
|
-
case "kritzel-menu":
|
|
139
|
-
if (!customElements.get(tagName)) {
|
|
140
|
-
defineCustomElement$3();
|
|
141
|
-
}
|
|
142
|
-
break;
|
|
143
|
-
case "kritzel-portal":
|
|
144
|
-
if (!customElements.get(tagName)) {
|
|
145
|
-
defineCustomElement$2();
|
|
146
|
-
}
|
|
147
|
-
break;
|
|
148
|
-
case "kritzel-split-button":
|
|
149
|
-
if (!customElements.get(tagName)) {
|
|
150
|
-
defineCustomElement$1();
|
|
151
|
-
}
|
|
152
|
-
break;
|
|
153
|
-
} });
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
export { KritzelWorkspaceManager as K, defineCustomElement as d };
|
|
157
|
-
//# sourceMappingURL=p-aaxf-h5S.js.map
|
|
158
|
-
|
|
159
|
-
//# sourceMappingURL=p-aaxf-h5S.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-aaxf-h5S.js","mappings":";;;;;;;;AAAA,MAAM,0BAA0B,GAAG,qDAAqD;;MCU3E,uBAAuB,iBAAAA,kBAAA,CAAA,MAAA,uBAAA,SAAAC,CAAA,CAAA;AALpC,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;;AAOE,QAAA,IAAU,CAAA,UAAA,GAAuB,EAAE;AAMnC,QAAA,IAAY,CAAA,YAAA,GAAkB,IAAI;AAGlC,QAAA,IAAY,CAAA,YAAA,GAA4B,IAAI;AAW5C,QAAA,IAAa,CAAA,aAAA,GAAoC,IAAI;AA+B7C,QAAA,IAAkB,CAAA,kBAAA,GAAG,YAAW;;AACtC,YAAA,OAAM,MAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAA;YAErC,qBAAqB,CAAC,MAAK;AACzB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,eAAe,CAAC;AACtF,gBAAA,IAAI,CAAC,YAAY,GAAG,CAAC;AACvB,aAAC,CAAC;AACJ,SAAC;AAEO,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAK;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAC1B,SAAC;AAEO,QAAA,IAAA,CAAA,UAAU,GAAG,OAAO,IAAuC,KAAI;AACrE,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK;YAC5B,MAAM,gBAAgB,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,SAAS,CAAE,EAAA,EAAA,IAAI,EAAE,IAAI,CAAC,KAAK,EAAA,CAAE;AAE3D,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC;AAE1D,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAExB,gBAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;;iBACjC;gBACL,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC;AAE1D,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;;AAE5B,SAAC;AAEO,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAa,KAAI;AACvC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC3B,SAAC;AAEO,QAAA,IAAA,CAAA,YAAY,GAAG,OAAO,iBAAmC,KAAI;;YACnE,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC;AAE3D,YAAA,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,EAAE,MAAK,iBAAiB,CAAC,EAAE,EAAE;gBACrD,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,CAAC,IAAI,IAAI;AACjG,gBAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;;AAE5C,SAAC;AA6CF;AApHC,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC3G,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;;AAGzI,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAG,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,EAAE,CAAC,EAAE,MAAK,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,EAAE,CAAA,CAAA,EAAA,CAAC;;AAGlF,IAAA,MAAM,iBAAiB,GAAA;AACrB,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE;AAC7B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE;;AAG7B,IAAA,MAAM,gBAAgB,GAAA;AAC5B,QAAA,MAAM,cAAc,CAAC,WAAW,CAAC,gBAAgB,CAAC;AAClD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC;AAE5E,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;;;AAI1D,IAAA,YAAY,CAAC,SAA2B,EAAA;AAC9C,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;;AAiDzB,IAAA,eAAe,CAAC,SAA2B,EAAA;AACjD,QAAA;AACA,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;YAAE;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;AAC/E,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGtC,MAAM,GAAA;AACJ,QAAA,MAAM,yBAAyB,GAAwC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,MAAM;YAC/G,KAAK,EAAE,EAAE,CAAC,IAAI;AACd,YAAA,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,gBAAgB;YAC7B,IAAI,EAAE,IAAI,CAAC,UAAU;AACrB,YAAA,QAAQ,EAAE;AACR,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACvC,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC;oBAC3C,MAAM,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;AACpC,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,CAAC;AAEH,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CACE,CAAA,sBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,EACrC,UAAU,EAAC,MAAM,EACjB,OAAO,EAAE,yBAAyB,EAClC,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,aAAa,EAAE,IAAI,CAAC,kBAAkB,EACtC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAA,CACb,CACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.css?tag=kritzel-workspace-manager&encapsulation=shadow","src/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.tsx"],"sourcesContent":[":host {\r\n display: flex;\r\n flex-direction: column;\r\n z-index: 1;\r\n}\r\n","import { Component, Element, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\r\nimport { KritzelWorkspace } from '../../../classes/workspace.class';\r\nimport { ObjectHelper } from '../../../helpers/object.helper';\r\nimport { KritzelMenuItem } from '../../../interfaces/menu-item.interface';\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 @Prop()\r\n workspaces: KritzelWorkspace[] = [];\r\n\r\n @Prop({ mutable: true })\r\n activeWorkspace: KritzelWorkspace;\r\n\r\n @State()\r\n editingIndex: number | null = null;\r\n\r\n @State()\r\n newWorkspace: KritzelWorkspace | null = null;\r\n\r\n @Event()\r\n isWorkspaceManagerReady: EventEmitter<void>;\r\n\r\n @Event()\r\n workspaceChange: EventEmitter<KritzelWorkspace>;\r\n\r\n @Element()\r\n host!: HTMLElement;\r\n\r\n kritzelEngine: HTMLKritzelEngineElement | null = null;\r\n\r\n splitButtonRef!: HTMLKritzelSplitButtonElement;\r\n\r\n get sortedWorkspaces() {\r\n const uniqueWorkspaces = [...new Map(this.workspaces.map(workspace => [workspace.id, workspace])).values()];\r\n return [this.newWorkspace, ...uniqueWorkspaces].filter(ws => ws !== null).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());\r\n }\r\n\r\n get activeItemIndex() {\r\n return this.sortedWorkspaces.findIndex(ws => ws.id === this.activeWorkspace?.id);\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.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 handleSelect(workspace: KritzelWorkspace) {\r\n this.selectWorkspace(workspace);\r\n }\r\n\r\n private handleNewWorkspace = async () => {\r\n await this.splitButtonRef?.openMenu();\r\n\r\n requestAnimationFrame(() => {\r\n this.newWorkspace = new KritzelWorkspace(ObjectHelper.generateUUID(), 'New Workspace');\r\n this.editingIndex = 0;\r\n });\r\n };\r\n\r\n private handleMenuClosed = () => {\r\n this.editingIndex = null;\r\n this.newWorkspace = null;\r\n };\r\n\r\n private handleSave = async (item: KritzelMenuItem<KritzelWorkspace>) => {\r\n const workspace = item.value;\r\n const updatedWorkspace = { ...workspace, name: item.label };\r\n\r\n if (this.newWorkspace) {\r\n await this.kritzelEngine.createWorkspace(updatedWorkspace);\r\n\r\n this.editingIndex = null;\r\n this.newWorkspace = null;\r\n\r\n this.selectWorkspace(updatedWorkspace);\r\n } else {\r\n await this.kritzelEngine.updateWorkspace(updatedWorkspace);\r\n\r\n this.editingIndex = null;\r\n this.newWorkspace = null;\r\n }\r\n };\r\n\r\n private handleRename = (index: number) => {\r\n this.editingIndex = index;\r\n };\r\n\r\n private handleDelete = async (workspaceToDelete: KritzelWorkspace) => {\r\n await this.kritzelEngine.deleteWorkspace(workspaceToDelete);\r\n\r\n if (this.activeWorkspace?.id === workspaceToDelete.id) {\r\n const newActiveWorkspace = this.sortedWorkspaces.find(w => w.id !== workspaceToDelete.id) || null;\r\n this.selectWorkspace(newActiveWorkspace);\r\n }\r\n };\r\n\r\n private selectWorkspace(workspace: KritzelWorkspace) {\r\n debugger;\r\n if (this.editingIndex !== null) return;\r\n this.activeWorkspace = this.sortedWorkspaces.find(ws => ws.id === workspace.id);\r\n this.workspaceChange.emit(workspace);\r\n }\r\n\r\n render() {\r\n const workspaceSelectionOptions: KritzelMenuItem<KritzelWorkspace>[] = this.sortedWorkspaces.map((ws, index) => ({\r\n label: ws.name,\r\n value: ws,\r\n select: () => this.handleSelect(ws),\r\n cancel: this.handleMenuClosed,\r\n save: this.handleSave,\r\n children: [\r\n {\r\n label: 'Rename',\r\n value: 'rename',\r\n select: () => this.handleRename(index),\r\n },\r\n {\r\n label: 'Delete',\r\n value: 'delete',\r\n disabled: this.sortedWorkspaces.length <= 1,\r\n select: () => this.handleDelete(ws),\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 buttonIcon=\"plus\"\r\n options={workspaceSelectionOptions}\r\n activeItemIndex={this.activeItemIndex}\r\n editingIndex={this.editingIndex}\r\n onButtonClick={this.handleNewWorkspace}\r\n onMenuClosed={this.handleMenuClosed}\r\n ></kritzel-split-button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|