kritzel-react 0.1.32 → 0.1.34
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/types/components/stencil-generated/components.d.ts +1 -1
- package/package.json +2 -2
- package/dist/kritzel-react/lib/components/stencil-generated/components.js +0 -122
- package/dist/kritzel-react/lib/index.js +0 -2
- package/dist/kritzel-stencil/src/classes/core/core.class.js +0 -797
- package/dist/kritzel-stencil/src/classes/core/reviver.class.js +0 -97
- package/dist/kritzel-stencil/src/classes/core/store.class.js +0 -153
- package/dist/kritzel-stencil/src/classes/core/viewport.class.js +0 -311
- package/dist/kritzel-stencil/src/classes/core/workspace.class.js +0 -34
- package/dist/kritzel-stencil/src/classes/handlers/base.handler.js +0 -6
- package/dist/kritzel-stencil/src/classes/handlers/context-menu.handler.js +0 -63
- package/dist/kritzel-stencil/src/classes/handlers/hover.handler.js +0 -18
- package/dist/kritzel-stencil/src/classes/handlers/key.handler.js +0 -76
- package/dist/kritzel-stencil/src/classes/handlers/line-handle.handler.js +0 -382
- package/dist/kritzel-stencil/src/classes/handlers/move.handler.js +0 -213
- package/dist/kritzel-stencil/src/classes/handlers/resize.handler.js +0 -205
- package/dist/kritzel-stencil/src/classes/handlers/rotation.handler.js +0 -117
- package/dist/kritzel-stencil/src/classes/handlers/selection.handler.js +0 -313
- package/dist/kritzel-stencil/src/classes/managers/anchor.manager.js +0 -1056
- package/dist/kritzel-stencil/src/classes/managers/cursor.manager.js +0 -117
- package/dist/kritzel-stencil/src/classes/managers/theme.manager.js +0 -103
- package/dist/kritzel-stencil/src/classes/objects/base-object.class.js +0 -249
- package/dist/kritzel-stencil/src/classes/objects/custom-element.class.js +0 -60
- package/dist/kritzel-stencil/src/classes/objects/group.class.js +0 -407
- package/dist/kritzel-stencil/src/classes/objects/image.class.js +0 -55
- package/dist/kritzel-stencil/src/classes/objects/line.class.js +0 -608
- package/dist/kritzel-stencil/src/classes/objects/path.class.js +0 -401
- package/dist/kritzel-stencil/src/classes/objects/selection-box.class.js +0 -21
- package/dist/kritzel-stencil/src/classes/objects/selection-group.class.js +0 -409
- package/dist/kritzel-stencil/src/classes/objects/shape.class.js +0 -412
- package/dist/kritzel-stencil/src/classes/objects/text.class.js +0 -292
- package/dist/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.js +0 -101
- package/dist/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.js +0 -241
- package/dist/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.js +0 -43
- package/dist/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.js +0 -98
- package/dist/kritzel-stencil/src/classes/registries/icon-registry.class.js +0 -66
- package/dist/kritzel-stencil/src/classes/registries/tool.registry.js +0 -21
- package/dist/kritzel-stencil/src/classes/structures/app-state-map.structure.js +0 -212
- package/dist/kritzel-stencil/src/classes/structures/object-map.structure.js +0 -414
- package/dist/kritzel-stencil/src/classes/structures/quadtree.structure.js +0 -151
- package/dist/kritzel-stencil/src/classes/tools/base-tool.class.js +0 -36
- package/dist/kritzel-stencil/src/classes/tools/brush-tool.class.js +0 -161
- package/dist/kritzel-stencil/src/classes/tools/eraser-tool.class.js +0 -85
- package/dist/kritzel-stencil/src/classes/tools/image-tool.class.js +0 -83
- package/dist/kritzel-stencil/src/classes/tools/line-tool.class.js +0 -187
- package/dist/kritzel-stencil/src/classes/tools/selection-tool.class.js +0 -429
- package/dist/kritzel-stencil/src/classes/tools/shape-tool.class.js +0 -196
- package/dist/kritzel-stencil/src/classes/tools/text-tool.class.js +0 -100
- package/dist/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.js +0 -1343
- package/dist/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.js +0 -46
- package/dist/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.js +0 -312
- package/dist/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.js +0 -60
- package/dist/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.js +0 -105
- package/dist/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.js +0 -53
- package/dist/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.js +0 -137
- package/dist/kritzel-stencil/src/configs/default-brush-tool.config.js +0 -9
- package/dist/kritzel-stencil/src/configs/default-engine-config.js +0 -63
- package/dist/kritzel-stencil/src/configs/default-line-tool.config.js +0 -9
- package/dist/kritzel-stencil/src/configs/default-sync.config.js +0 -9
- package/dist/kritzel-stencil/src/configs/default-text-tool.config.js +0 -7
- package/dist/kritzel-stencil/src/constants/color-palette.constants.js +0 -37
- package/dist/kritzel-stencil/src/constants/engine.constants.js +0 -2
- package/dist/kritzel-stencil/src/enums/event-button.enum.js +0 -6
- package/dist/kritzel-stencil/src/enums/handle-type.enum.js +0 -7
- package/dist/kritzel-stencil/src/enums/shape-type.enum.js +0 -6
- package/dist/kritzel-stencil/src/helpers/class.helper.js +0 -5
- package/dist/kritzel-stencil/src/helpers/color.helper.js +0 -106
- package/dist/kritzel-stencil/src/helpers/cursor.helper.js +0 -57
- package/dist/kritzel-stencil/src/helpers/devices.helper.js +0 -28
- package/dist/kritzel-stencil/src/helpers/event.helper.js +0 -58
- package/dist/kritzel-stencil/src/helpers/geometry.helper.js +0 -149
- package/dist/kritzel-stencil/src/helpers/keyboard.helper.js +0 -51
- package/dist/kritzel-stencil/src/helpers/math.helper.js +0 -5
- package/dist/kritzel-stencil/src/helpers/object.helper.js +0 -11
- package/dist/kritzel-stencil/src/helpers/theme.helper.js +0 -69
- package/dist/kritzel-stencil/src/index.js +0 -41
- package/dist/kritzel-stencil/src/interfaces/anchor.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/arrow-head.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/bounding-box.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/clonable.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/context-menu-item.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/debug-info.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/dialog.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/displayable-shortcut.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/engine-state.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/line-options.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/master-detail.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/menu-item.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/object.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/path-options.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/point.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/polygon.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/serializable.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/settings.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/shortcut.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/sync-config.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/sync-provider.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/theme.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/tool-config.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/tool.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/toolbar-control.interface.js +0 -1
- package/dist/kritzel-stencil/src/interfaces/undo-state.interface.js +0 -1
- package/dist/kritzel-stencil/src/themes/dark-theme.js +0 -198
- package/dist/kritzel-stencil/src/themes/light-theme.js +0 -199
- package/dist/kritzel-stencil/src/types/shortcut.type.js +0 -1
- package/dist/kritzel-stencil/src/types/state.types.js +0 -1
- package/dist/types/kritzel-react/lib/components/stencil-generated/components.d.ts +0 -74
- package/dist/types/kritzel-react/lib/index.d.ts +0 -2
- package/dist/types/kritzel-stencil/src/classes/core/core.class.d.ts +0 -101
- package/dist/types/kritzel-stencil/src/classes/core/reviver.class.d.ts +0 -6
- package/dist/types/kritzel-stencil/src/classes/core/store.class.d.ts +0 -53
- package/dist/types/kritzel-stencil/src/classes/core/viewport.class.d.ts +0 -48
- package/dist/types/kritzel-stencil/src/classes/core/workspace.class.d.ts +0 -24
- package/dist/types/kritzel-stencil/src/classes/handlers/base.handler.d.ts +0 -5
- package/dist/types/kritzel-stencil/src/classes/handlers/context-menu.handler.d.ts +0 -8
- package/dist/types/kritzel-stencil/src/classes/handlers/hover.handler.d.ts +0 -6
- package/dist/types/kritzel-stencil/src/classes/handlers/key.handler.d.ts +0 -11
- package/dist/types/kritzel-stencil/src/classes/handlers/line-handle.handler.d.ts +0 -34
- package/dist/types/kritzel-stencil/src/classes/handlers/move.handler.d.ts +0 -29
- package/dist/types/kritzel-stencil/src/classes/handlers/resize.handler.d.ts +0 -24
- package/dist/types/kritzel-stencil/src/classes/handlers/rotation.handler.d.ts +0 -12
- package/dist/types/kritzel-stencil/src/classes/handlers/selection.handler.d.ts +0 -27
- package/dist/types/kritzel-stencil/src/classes/managers/anchor.manager.d.ts +0 -180
- package/dist/types/kritzel-stencil/src/classes/managers/cursor.manager.d.ts +0 -43
- package/dist/types/kritzel-stencil/src/classes/managers/theme.manager.d.ts +0 -56
- package/dist/types/kritzel-stencil/src/classes/objects/base-object.class.d.ts +0 -76
- package/dist/types/kritzel-stencil/src/classes/objects/custom-element.class.d.ts +0 -26
- package/dist/types/kritzel-stencil/src/classes/objects/group.class.d.ts +0 -97
- package/dist/types/kritzel-stencil/src/classes/objects/image.class.d.ts +0 -17
- package/dist/types/kritzel-stencil/src/classes/objects/line.class.d.ts +0 -101
- package/dist/types/kritzel-stencil/src/classes/objects/path.class.d.ts +0 -62
- package/dist/types/kritzel-stencil/src/classes/objects/selection-box.class.d.ts +0 -6
- package/dist/types/kritzel-stencil/src/classes/objects/selection-group.class.d.ts +0 -67
- package/dist/types/kritzel-stencil/src/classes/objects/shape.class.d.ts +0 -124
- package/dist/types/kritzel-stencil/src/classes/objects/text.class.d.ts +0 -56
- package/dist/types/kritzel-stencil/src/classes/providers/broadcast-sync-provider.class.d.ts +0 -18
- package/dist/types/kritzel-stencil/src/classes/providers/hocuspocus-sync-provider.class.d.ts +0 -120
- package/dist/types/kritzel-stencil/src/classes/providers/indexeddb-sync-provider.class.d.ts +0 -22
- package/dist/types/kritzel-stencil/src/classes/providers/websocket-sync-provider.class.d.ts +0 -52
- package/dist/types/kritzel-stencil/src/classes/registries/icon-registry.class.d.ts +0 -9
- package/dist/types/kritzel-stencil/src/classes/registries/tool.registry.d.ts +0 -8
- package/dist/types/kritzel-stencil/src/classes/structures/app-state-map.structure.d.ts +0 -31
- package/dist/types/kritzel-stencil/src/classes/structures/object-map.structure.d.ts +0 -63
- package/dist/types/kritzel-stencil/src/classes/structures/quadtree.structure.d.ts +0 -36
- package/dist/types/kritzel-stencil/src/classes/tools/base-tool.class.d.ts +0 -20
- package/dist/types/kritzel-stencil/src/classes/tools/brush-tool.class.d.ts +0 -14
- package/dist/types/kritzel-stencil/src/classes/tools/eraser-tool.class.d.ts +0 -9
- package/dist/types/kritzel-stencil/src/classes/tools/image-tool.class.d.ts +0 -15
- package/dist/types/kritzel-stencil/src/classes/tools/line-tool.class.d.ts +0 -19
- package/dist/types/kritzel-stencil/src/classes/tools/selection-tool.class.d.ts +0 -54
- package/dist/types/kritzel-stencil/src/classes/tools/shape-tool.class.d.ts +0 -39
- package/dist/types/kritzel-stencil/src/classes/tools/text-tool.class.d.ts +0 -13
- package/dist/types/kritzel-stencil/src/components/core/kritzel-engine/kritzel-engine.d.ts +0 -111
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-brush-style/kritzel-brush-style.d.ts +0 -11
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-dropdown/kritzel-dropdown.d.ts +0 -46
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-font-family/kritzel-font-family.d.ts +0 -13
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-line-endings/kritzel-line-endings.d.ts +0 -21
- package/dist/types/kritzel-stencil/src/components/shared/kritzel-shape-fill/kritzel-shape-fill.d.ts +0 -10
- package/dist/types/kritzel-stencil/src/components/ui/kritzel-context-menu/kritzel-context-menu.d.ts +0 -21
- package/dist/types/kritzel-stencil/src/configs/default-brush-tool.config.d.ts +0 -2
- package/dist/types/kritzel-stencil/src/configs/default-engine-config.d.ts +0 -2
- package/dist/types/kritzel-stencil/src/configs/default-line-tool.config.d.ts +0 -2
- package/dist/types/kritzel-stencil/src/configs/default-sync.config.d.ts +0 -5
- package/dist/types/kritzel-stencil/src/configs/default-text-tool.config.d.ts +0 -2
- package/dist/types/kritzel-stencil/src/constants/color-palette.constants.d.ts +0 -29
- package/dist/types/kritzel-stencil/src/constants/engine.constants.d.ts +0 -2
- package/dist/types/kritzel-stencil/src/enums/event-button.enum.d.ts +0 -5
- package/dist/types/kritzel-stencil/src/enums/handle-type.enum.d.ts +0 -6
- package/dist/types/kritzel-stencil/src/enums/shape-type.enum.d.ts +0 -5
- package/dist/types/kritzel-stencil/src/helpers/class.helper.d.ts +0 -3
- package/dist/types/kritzel-stencil/src/helpers/color.helper.d.ts +0 -33
- package/dist/types/kritzel-stencil/src/helpers/cursor.helper.d.ts +0 -22
- package/dist/types/kritzel-stencil/src/helpers/devices.helper.d.ts +0 -8
- package/dist/types/kritzel-stencil/src/helpers/event.helper.d.ts +0 -6
- package/dist/types/kritzel-stencil/src/helpers/geometry.helper.d.ts +0 -38
- package/dist/types/kritzel-stencil/src/helpers/keyboard.helper.d.ts +0 -6
- package/dist/types/kritzel-stencil/src/helpers/math.helper.d.ts +0 -3
- package/dist/types/kritzel-stencil/src/helpers/object.helper.d.ts +0 -4
- package/dist/types/kritzel-stencil/src/helpers/theme.helper.d.ts +0 -41
- package/dist/types/kritzel-stencil/src/index.d.ts +0 -42
- package/dist/types/kritzel-stencil/src/interfaces/anchor.interface.d.ts +0 -137
- package/dist/types/kritzel-stencil/src/interfaces/arrow-head.interface.d.ts +0 -27
- package/dist/types/kritzel-stencil/src/interfaces/bounding-box.interface.d.ts +0 -8
- package/dist/types/kritzel-stencil/src/interfaces/clonable.interface.d.ts +0 -3
- package/dist/types/kritzel-stencil/src/interfaces/context-menu-item.interface.d.ts +0 -17
- package/dist/types/kritzel-stencil/src/interfaces/debug-info.interface.d.ts +0 -4
- package/dist/types/kritzel-stencil/src/interfaces/dialog.interface.d.ts +0 -4
- package/dist/types/kritzel-stencil/src/interfaces/displayable-shortcut.interface.d.ts +0 -5
- package/dist/types/kritzel-stencil/src/interfaces/engine-state.interface.d.ts +0 -73
- package/dist/types/kritzel-stencil/src/interfaces/line-options.interface.d.ts +0 -23
- package/dist/types/kritzel-stencil/src/interfaces/master-detail.interface.d.ts +0 -14
- package/dist/types/kritzel-stencil/src/interfaces/menu-item.interface.d.ts +0 -24
- package/dist/types/kritzel-stencil/src/interfaces/object.interface.d.ts +0 -53
- package/dist/types/kritzel-stencil/src/interfaces/path-options.interface.d.ts +0 -11
- package/dist/types/kritzel-stencil/src/interfaces/point.interface.d.ts +0 -4
- package/dist/types/kritzel-stencil/src/interfaces/polygon.interface.d.ts +0 -7
- package/dist/types/kritzel-stencil/src/interfaces/serializable.interface.d.ts +0 -5
- package/dist/types/kritzel-stencil/src/interfaces/settings.interface.d.ts +0 -11
- package/dist/types/kritzel-stencil/src/interfaces/shortcut.interface.d.ts +0 -10
- package/dist/types/kritzel-stencil/src/interfaces/sync-config.interface.d.ts +0 -22
- package/dist/types/kritzel-stencil/src/interfaces/sync-provider.interface.d.ts +0 -29
- package/dist/types/kritzel-stencil/src/interfaces/theme.interface.d.ts +0 -330
- package/dist/types/kritzel-stencil/src/interfaces/tool-config.interface.d.ts +0 -26
- package/dist/types/kritzel-stencil/src/interfaces/tool.interface.d.ts +0 -7
- package/dist/types/kritzel-stencil/src/interfaces/toolbar-control.interface.d.ts +0 -58
- package/dist/types/kritzel-stencil/src/interfaces/undo-state.interface.d.ts +0 -6
- package/dist/types/kritzel-stencil/src/themes/dark-theme.d.ts +0 -5
- package/dist/types/kritzel-stencil/src/themes/light-theme.d.ts +0 -5
- package/dist/types/kritzel-stencil/src/types/shortcut.type.d.ts +0 -1
- package/dist/types/kritzel-stencil/src/types/state.types.d.ts +0 -3
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { WebsocketProvider } from 'y-websocket';
|
|
11
|
-
/**
|
|
12
|
-
* WebSocket sync provider for real-time collaboration
|
|
13
|
-
*/
|
|
14
|
-
export class WebSocketSyncProvider {
|
|
15
|
-
constructor(docName, doc, options) {
|
|
16
|
-
this.isConnected = false;
|
|
17
|
-
const url = (options === null || options === void 0 ? void 0 : options.url) || 'ws://localhost:1234';
|
|
18
|
-
const roomName = (options === null || options === void 0 ? void 0 : options.roomName) || docName;
|
|
19
|
-
this.provider = new WebsocketProvider(url, roomName, doc, {
|
|
20
|
-
params: options === null || options === void 0 ? void 0 : options.params,
|
|
21
|
-
protocols: options === null || options === void 0 ? void 0 : options.protocols,
|
|
22
|
-
WebSocketPolyfill: options === null || options === void 0 ? void 0 : options.WebSocketPolyfill,
|
|
23
|
-
awareness: options === null || options === void 0 ? void 0 : options.awareness,
|
|
24
|
-
maxBackoffTime: options === null || options === void 0 ? void 0 : options.maxBackoffTime,
|
|
25
|
-
disableBc: true,
|
|
26
|
-
});
|
|
27
|
-
this.setupEventListeners();
|
|
28
|
-
console.info(`WebSocket Provider initialized: ${url}/${roomName}`);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Static factory method for creating WebSocketSyncProvider with configuration options
|
|
32
|
-
* Returns a ProviderFactory that can be used in sync configuration
|
|
33
|
-
*/
|
|
34
|
-
static with(options) {
|
|
35
|
-
return {
|
|
36
|
-
create: (docName, doc) => {
|
|
37
|
-
return new WebSocketSyncProvider(docName, doc, options);
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
setupEventListeners() {
|
|
42
|
-
this.provider.on('status', ({ status }) => {
|
|
43
|
-
if (status === 'connected') {
|
|
44
|
-
this.isConnected = true;
|
|
45
|
-
console.info('WebSocket connected');
|
|
46
|
-
}
|
|
47
|
-
else if (status === 'disconnected') {
|
|
48
|
-
this.isConnected = false;
|
|
49
|
-
console.info('WebSocket disconnected');
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
this.provider.on('sync', (synced) => {
|
|
53
|
-
if (synced) {
|
|
54
|
-
console.info('WebSocket synced');
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
connect() {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
if (this.isConnected) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
return new Promise((resolve, reject) => {
|
|
64
|
-
const timeout = setTimeout(() => {
|
|
65
|
-
reject(new Error('WebSocket connection timeout'));
|
|
66
|
-
}, 10000); // 10 second timeout
|
|
67
|
-
const statusHandler = ({ status }) => {
|
|
68
|
-
if (status === 'connected') {
|
|
69
|
-
clearTimeout(timeout);
|
|
70
|
-
this.provider.off('status', statusHandler);
|
|
71
|
-
this.isConnected = true;
|
|
72
|
-
resolve();
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
this.provider.on('status', statusHandler);
|
|
76
|
-
// If already connected, resolve immediately
|
|
77
|
-
if (this.provider.wsconnected) {
|
|
78
|
-
clearTimeout(timeout);
|
|
79
|
-
this.provider.off('status', statusHandler);
|
|
80
|
-
this.isConnected = true;
|
|
81
|
-
resolve();
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
disconnect() {
|
|
87
|
-
if (this.provider) {
|
|
88
|
-
this.provider.disconnect();
|
|
89
|
-
}
|
|
90
|
-
this.isConnected = false;
|
|
91
|
-
}
|
|
92
|
-
destroy() {
|
|
93
|
-
if (this.provider) {
|
|
94
|
-
this.provider.destroy();
|
|
95
|
-
}
|
|
96
|
-
this.isConnected = false;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
export class KritzelIconRegistry {
|
|
2
|
-
static register(name, svgContent) {
|
|
3
|
-
if (this.registry.has(name)) {
|
|
4
|
-
console.warn(`[IconRegistry] Icon "${name}" is already registered. It will be overwritten.`);
|
|
5
|
-
}
|
|
6
|
-
this.registry.set(name, svgContent);
|
|
7
|
-
}
|
|
8
|
-
static get(name) {
|
|
9
|
-
return this.registry.get(name);
|
|
10
|
-
}
|
|
11
|
-
static registerIcons(icons) {
|
|
12
|
-
for (const name in icons) {
|
|
13
|
-
if (Object.prototype.hasOwnProperty.call(icons, name)) {
|
|
14
|
-
this.register(name, icons[name]);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
static has(name) {
|
|
19
|
-
return this.registry.has(name);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
KritzelIconRegistry.registry = new Map();
|
|
23
|
-
KritzelIconRegistry.registerIcons({
|
|
24
|
-
'cursor': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z"/></svg>',
|
|
25
|
-
'pen': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/></svg>',
|
|
26
|
-
'arrow': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="19" x2="19" y2="5"/><path d="M15 5h4v4"/></svg>',
|
|
27
|
-
'highlighter': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-highlighter-icon lucide-highlighter"><path d="m9 11-6 6v3h9l3-3"/><path d="m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4"/></svg>',
|
|
28
|
-
'eraser': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"/><path d="M22 21H7"/><path d="m5 11 9 9"/></svg>',
|
|
29
|
-
'type': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 7 4 4 20 4 20 7"/><line x1="9" x2="15" y1="20" y2="20"/><line x1="12" x2="12" y1="4" y2="20"/></svg>',
|
|
30
|
-
'shapes': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z"/><rect x="3" y="14" width="7" height="7" rx="1"/><circle cx="17.5" cy="17.5" r="3.5"/></svg>',
|
|
31
|
-
'shape-rectangle': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/></svg>',
|
|
32
|
-
'shape-ellipse': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="12" rx="10" ry="8"/></svg>',
|
|
33
|
-
'shape-triangle': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3L22 21H2L12 3Z"/></svg>',
|
|
34
|
-
'image': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></svg>',
|
|
35
|
-
'chevron-down': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>',
|
|
36
|
-
'chevron-up': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m18 15-6-6-6 6"/></svg>',
|
|
37
|
-
'chevron-left': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left-icon lucide-chevron-left"><path d="m15 18-6-6 6-6"/></svg>',
|
|
38
|
-
'chevron-right': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right-icon lucide-chevron-right"><path d="m9 18 6-6-6-6"/></svg>',
|
|
39
|
-
'chevrons-left': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevrons-left-icon lucide-chevrons-left"><path d="m11 17-5-5 5-5"/><path d="m18 17-5-5 5-5"/></svg>',
|
|
40
|
-
'copy': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy-icon lucide-copy"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>',
|
|
41
|
-
'paste': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard-paste-icon lucide-clipboard-paste"><path d="M11 14h10"/><path d="M16 4h2a2 2 0 0 1 2 2v1.344"/><path d="m17 18 4-4-4-4"/><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113"/><rect x="8" y="2" width="8" height="4" rx="1"/></svg>',
|
|
42
|
-
'cut': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scissors-icon lucide-scissors"><circle cx="6" cy="6" r="3"/><path d="M8.12 8.12 12 12"/><path d="M20 4 8.12 15.88"/><circle cx="6" cy="18" r="3"/><path d="M14.8 14.8 20 20"/></svg>',
|
|
43
|
-
'delete': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2-icon lucide-trash-2"><path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/><line x1="10" x2="10" y1="11" y2="17"/><line x1="14" x2="14" y1="11" y2="17"/></svg>',
|
|
44
|
-
'bring-to-front': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-to-line-icon lucide-arrow-up-to-line"><path d="M5 3h14"/><path d="m18 13-6-6-6 6"/><path d="M12 7v14"/></svg>',
|
|
45
|
-
'send-to-back': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-to-line-icon lucide-arrow-down-to-line"><path d="M12 17V3"/><path d="m6 11 6 6 6-6"/><path d="M19 21H5"/></svg>',
|
|
46
|
-
'select-all': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-mouse-pointer-icon lucide-square-mouse-pointer"><path d="M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z"/><path d="M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6"/></svg>',
|
|
47
|
-
'download': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download-icon lucide-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/></svg>',
|
|
48
|
-
'undo': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-undo-icon lucide-undo"><path d="M3 7v6h6"/><path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"/></svg>',
|
|
49
|
-
'redo': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-redo-icon lucide-redo"><path d="M21 7v6h-6"/><path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7"/></svg>',
|
|
50
|
-
'plus': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus-icon lucide-plus"><path d="M5 12h14"/><path d="M12 5v14"/></svg>',
|
|
51
|
-
'ellipsis-vertical': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis-vertical-icon lucide-ellipsis-vertical"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>',
|
|
52
|
-
'x': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x-icon lucide-x"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>',
|
|
53
|
-
'check': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check-icon lucide-check"><path d="M20 6 9 17l-5-5"/></svg>',
|
|
54
|
-
'group': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-group-icon lucide-group"><path d="M3 7V5c0-1.1.9-2 2-2h2"/><path d="M17 3h2c1.1 0 2 .9 2 2v2"/><path d="M21 17v2c0 1.1-.9 2-2 2h-2"/><path d="M7 21H5c-1.1 0-2-.9-2-2v-2"/><rect width="7" height="5" x="7" y="7" rx="1"/><rect width="7" height="5" x="10" y="12" rx="1"/></svg>',
|
|
55
|
-
'ungroup': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ungroup-icon lucide-ungroup"><rect width="8" height="6" x="5" y="4" rx="1"/><rect width="8" height="6" x="11" y="14" rx="1"/></svg>',
|
|
56
|
-
'move-vertical': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-move-vertical-icon lucide-move-vertical" version="1.1" id="svg3"> <defs id="defs3" /> <path d="M12 2v20" id="path1" /> <path style="fill:#ffffff;stroke-width:2.5;stroke-dasharray:none;stroke-linejoin:round;paint-order:stroke fill markers" d="m 11.735575,22.661865 c -0.09259,-0.02798 -0.204674,-0.07661 -0.249076,-0.108068 -0.04441,-0.03147 -1.167275,-0.979853 -2.4952713,-2.10755 -1.8557024,-1.57581 -2.4300904,-2.079639 -2.4817336,-2.17687 -0.086514,-0.162885 -0.089504,-0.422449 -0.00664,-0.576334 0.1483053,-0.275409 0.437667,-0.436207 0.7830634,-0.435147 0.3692925,0.0011 0.3517326,-0.01122 2.168748,1.525599 L 11.12348,20.194964 V 11.999996 3.8050256 L 9.4546663,5.2164943 C 7.6376509,6.7533118 7.6552109,6.7409594 7.2859184,6.7420935 6.6681409,6.7439906 6.253658,6.1955854 6.5159903,5.723396 6.5738626,5.6192278 7.1368766,5.1267427 9.0629381,3.4955044 11.738128,1.2298067 11.640395,1.3026868 12.00355,1.3026868 c 0.363154,0 0.265421,-0.07288 2.940611,2.1928176 1.926062,1.6312383 2.489076,2.1237234 2.546948,2.2278916 0.262332,0.4721894 -0.15215,1.0205946 -0.769928,1.0186975 -0.369293,-0.00114 -0.351733,0.011218 -2.168748,-1.5255992 L 12.88362,3.8050256 v 8.1949704 8.194968 l 1.668813,-1.411469 c 1.817015,-1.536817 1.799455,-1.524464 2.168748,-1.525599 0.617772,-0.0019 1.032269,0.546521 0.769928,1.018687 -0.103474,0.18623 -4.919006,4.273935 -5.130582,4.355136 -0.20796,0.07981 -0.425829,0.09033 -0.624952,0.03014 z" id="path4" /> </svg>',
|
|
57
|
-
'hand': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hand-icon lucide-hand" version="1.1" id="svg4"> <defs id="defs4" /> <path d="M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2" id="path1" /> <path d="M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2" id="path2" /> <path d="M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8" id="path3" /> <path d="M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15" id="path4" /> <path style="fill:#ffffff;stroke-width:0.0423032" d="M 11.478261,21.222477 C 9.6854059,21.139331 8.3341788,20.647346 7.1297169,19.639159 6.9698298,19.505327 5.949644,18.508708 4.8626374,17.42445 3.0780314,15.644357 2.8775851,15.435367 2.7968392,15.270602 2.5896561,14.847836 2.616354,14.436649 2.8771894,14.033085 c 0.136522,-0.211226 0.3837159,-0.398688 0.6367632,-0.482897 0.1529977,-0.05091 0.2326803,-0.05992 0.4470908,-0.05054 0.2250407,0.0098 0.2876577,0.02439 0.4554568,0.105827 0.1747854,0.08483 0.2933718,0.192702 1.1675186,1.062064 0.7182021,0.714271 1.0062041,0.982633 1.0998825,1.024878 0.1680197,0.07577 0.4756439,0.07817 0.6368269,0.005 0.1370772,-0.06226 0.2976691,-0.220818 0.3691296,-0.364463 0.072561,-0.145855 0.071573,-0.543545 -0.00169,-0.681911 -0.028747,-0.05429 -0.2476439,-0.296131 -0.4864385,-0.537426 l -0.4341716,-0.438718 0.00753,-3.989014 0.00753,-3.9890137 0.089246,-0.1883791 c 0.244787,-0.516692 0.7711718,-0.809716 1.3059705,-0.7269981 0.3973687,0.061462 0.7569953,0.3284904 0.9363122,0.6952277 l 0.093853,0.1919473 0.014101,2.4958872 0.014101,2.4958877 0.067385,0.149123 c 0.1186861,0.262654 0.4140438,0.457222 0.6940724,0.457222 0.2764172,0 0.5690532,-0.187563 0.6965992,-0.446482 l 0.06486,-0.131661 0.0141,-3.4970626 0.0141,-3.4970623 0.08982,-0.1896121 C 11.096301,3.0422103 11.506844,2.7755634 12,2.7755634 c 0.493156,0 0.903699,0.2666469 1.122868,0.7293016 l 0.08982,0.1896121 0.0141,3.2432432 c 0.01405,3.2315947 0.01432,3.2437077 0.07397,3.3726737 0.124721,0.269649 0.355908,0.424566 0.661411,0.443206 0.237954,0.01452 0.429018,-0.0627 0.591626,-0.239109 0.223655,-0.242637 0.208338,-0.06565 0.224113,-2.5896966 l 0.0141,-2.2561693 0.09385,-0.1919473 c 0.179317,-0.3667373 0.538944,-0.6337662 0.936313,-0.6952277 0.609359,-0.09425 1.208067,0.3054956 1.370981,0.9153772 0.03013,0.1127929 0.03773,0.6662436 0.038,2.7657391 3.74e-4,2.9328416 -0.008,2.8034316 0.197044,3.0364016 0.234927,0.266892 0.603828,0.337117 0.920407,0.175213 0.181933,-0.09304 0.329759,-0.261686 0.376309,-0.4293 0.01848,-0.06654 0.02929,-0.683932 0.0295,-1.684364 1.78e-4,-0.8783075 0.01239,-1.6530128 0.02751,-1.745346 0.08579,-0.5238478 0.505382,-0.9420803 1.039546,-1.0361716 0.607538,-0.1070155 1.25615,0.3485846 1.385876,0.973471 0.02211,0.1064847 0.02843,1.1397236 0.02169,3.5455556 -0.0093,3.324725 -0.01078,3.403075 -0.07062,3.770606 -0.126399,0.776213 -0.328814,1.41352 -0.669031,2.106456 -0.36657,0.746612 -0.72118,1.250303 -1.297841,1.843464 -1.185731,1.21966 -2.604527,1.933174 -4.300822,2.162889 -0.38234,0.05178 -2.604621,0.0785 -3.412456,0.04104 z" id="path16" /> </svg>',
|
|
58
|
-
'hand-grab': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hand-grab-icon lucide-hand-grab" version="1.1" id="svg5"> <defs id="defs5" /> <path d="M18 11.5V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4" id="path1" /> <path d="M14 10V8a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2" id="path2" /> <path d="M10 9.9V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v5" id="path3" /> <path d="M6 14a2 2 0 0 0-2-2a2 2 0 0 0-2 2" id="path4" /> <path d="M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-4a8 8 0 0 1-8-8 2 2 0 1 1 4 0" id="path5" /> <path style="fill:#ffffff;stroke-width:0.0423032" d="M 9.5887192,21.221364 C 8.0526856,21.128375 6.6533474,20.587008 5.4571093,19.622953 5.3019976,19.497947 5.0101058,19.225967 4.8084606,19.018552 4.2300382,18.423579 3.8474097,17.879011 3.4960953,17.150756 3.1017715,16.333345 2.9014937,15.633198 2.8052391,14.735605 c -0.097577,-0.909922 -0.019834,-1.263323 0.3569794,-1.622742 0.753018,-0.718257 1.9463784,-0.256949 2.0619296,0.797066 0.037839,0.345154 0.089701,0.477674 0.2472582,0.631806 0.2464521,0.241095 0.5958008,0.287445 0.9036474,0.119894 0.1478567,-0.08047 0.2303871,-0.16866 0.3266699,-0.349056 0.050118,-0.0939 0.05337,-0.2326 0.066784,-2.848413 L 6.7826087,8.7144536 6.8458627,8.559342 C 6.9736603,8.2459558 7.2463773,7.9734987 7.5581669,7.8477164 c 0.1253804,-0.050581 0.2118709,-0.062705 0.4512338,-0.063254 0.275392,-6.312e-4 0.3094658,0.00564 0.4867271,0.089609 0.264676,0.1253746 0.4771417,0.334346 0.6070085,0.5970252 l 0.1048543,0.212087 0.017338,0.7488899 c 0.019395,0.8377165 0.026343,0.8713745 0.2242006,1.0860245 0.1591067,0.172611 0.3522021,0.249908 0.5883018,0.235502 0.305503,-0.01864 0.53669,-0.173557 0.661411,-0.443206 0.05734,-0.123963 0.0605,-0.181852 0.07486,-1.3703236 0.01626,-1.3456629 0.0141,-1.3267758 0.182667,-1.5938092 0.257891,-0.4085268 0.77099,-0.6442307 1.228943,-0.5645435 0.471012,0.08196 0.850379,0.4102836 0.989676,0.8565175 0.04663,0.149383 0.0514,0.2860903 0.0514,1.4721724 0,0.8344844 0.01108,1.3591794 0.03064,1.4503554 0.04109,0.191585 0.179844,0.390224 0.342505,0.490321 0.27721,0.170587 0.693425,0.126085 0.92529,-0.09893 0.228986,-0.222224 0.234357,-0.25046 0.251582,-1.3227071 l 0.0152,-0.9463484 0.104855,-0.2120434 c 0.129872,-0.2626357 0.342372,-0.471626 0.607008,-0.5969817 0.177262,-0.083967 0.211335,-0.09024 0.486727,-0.089609 0.239363,5.486e-4 0.325854,0.012673 0.451234,0.063254 0.31179,0.1257823 0.584507,0.3982394 0.712304,0.7116256 0.0621,0.1522783 0.06351,0.1824139 0.07736,1.649824 0.01408,1.492435 0.0142,1.494914 0.07947,1.627432 0.0771,0.156535 0.2216,0.291061 0.395058,0.367789 0.09695,0.04289 0.169789,0.05275 0.325757,0.04411 0.230544,-0.01277 0.363779,-0.06826 0.506411,-0.21089 0.177062,-0.177061 0.198302,-0.25307 0.219359,-0.784959 0.02002,-0.505773 0.05012,-0.6549 0.175297,-0.868492 0.498409,-0.850471 1.728484,-0.8041941 2.173478,0.08177 0.131751,0.262312 0.134447,0.313526 0.122615,2.328965 -0.0104,1.771638 -0.01517,1.923481 -0.0714,2.273746 -0.123689,0.770512 -0.327108,1.411813 -0.668163,2.106456 -0.36657,0.746612 -0.72118,1.250303 -1.297841,1.843464 -1.180268,1.214041 -2.600612,1.930754 -4.287083,2.163284 -0.28697,0.03957 -0.685446,0.04782 -2.636536,0.05459 -1.26416,0.0044 -2.4698005,-0.0024 -2.6792012,-0.01507 z" id="path6" /> </svg>',
|
|
59
|
-
'mouse-pointer': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mouse-pointer2-icon lucide-mouse-pointer-2" version="1.1" id="svg1"> <defs id="defs1" /> <path d="M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z" id="path1" /> <path style="fill:#ffffff;stroke-width:0.0972651;stroke-linejoin:round;paint-order:stroke fill markers" d="M 7.8509196,12.314844 C 6.127071,8.1920568 4.7235325,4.8125504 4.7319449,4.8048299 c 0.01847,-0.016951 15.4787861,6.0801241 15.4610371,6.0973581 -0.0069,0.0067 -1.32633,0.341226 -2.93219,0.743509 -1.858829,0.465652 -3.011462,0.772855 -3.172161,0.845453 -0.688426,0.310999 -1.245788,0.879167 -1.498145,1.527185 -0.06251,0.160512 -0.440389,1.529576 -0.839733,3.042364 -0.399346,1.512788 -0.734966,2.750433 -0.745822,2.750322 -0.01086,-1.09e-4 -1.430163,-3.373391 -3.1540114,-7.496177 z" id="path2" /> <path style="fill:#ffffff;stroke-width:0.0705053;stroke-linejoin:round;paint-order:stroke fill markers" d="M 10.777831,19.240865 C 9.3899089,15.977493 4.7567738,4.8648478 4.7760705,4.8455511 c 0.013084,-0.013084 4.7618079,1.8507077 10.7773965,4.2299406 4.467495,1.7669453 4.558837,1.8037523 4.533848,1.8269883 -0.01183,0.011 -0.96064,0.257045 -2.108467,0.546768 -3.445281,0.869623 -3.777157,0.960825 -4.075205,1.119907 -0.597122,0.31871 -1.103666,0.864485 -1.309236,1.410635 -0.09642,0.256167 -0.312339,1.032806 -0.943226,3.392713 -0.641066,2.39798 -0.629171,2.354884 -0.649929,2.354849 -0.0091,-1.5e-5 -0.10963,-0.218934 -0.223421,-0.486487 z" id="path6" /> </svg>',
|
|
60
|
-
'pointer': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pointer-icon lucide-pointer" version="1.1" id="svg5"> <defs id="defs5" /> <path d="M22 14a8 8 0 0 1-8 8" id="path1" /> <path d="M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2" id="path2" /> <path d="M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1" id="path3" /> <path d="M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10" id="path4" /> <path d="M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15" id="path5" /> <path style="fill:#ffffff;stroke-width:0.0930233;stroke-linejoin:round;paint-order:stroke fill markers" d="M 11.2,21.203517 C 9.5092536,21.041493 8.4838422,20.667261 7.3116279,19.784423 7.1888372,19.691945 6.139155,18.670017 4.9790008,17.513473 2.5649891,15.106974 2.6562686,15.220427 2.6869266,14.664621 c 0.020277,-0.367608 0.1272548,-0.601802 0.3822766,-0.836873 0.2609241,-0.240511 0.4631523,-0.319555 0.8191689,-0.320185 0.509345,-9.02e-4 0.5815472,0.04845 1.7102825,1.168976 0.532833,0.528958 1.0223742,0.98871 1.0878697,1.021671 0.1699959,0.08555 0.4741793,0.07658 0.6733897,-0.01985 0.303161,-0.146758 0.4720469,-0.543298 0.3791811,-0.890307 -0.036373,-0.135913 -0.1250717,-0.246717 -0.506083,-0.632208 l -0.4619807,-0.467411 0.00983,-5.002356 0.00983,-5.0023561 0.080405,-0.1739784 C 6.9849846,3.2633288 7.2288893,3.0140593 7.4738043,2.8937849 7.6531903,2.8056908 7.7297209,2.7906977 8,2.7906977 c 0.2702791,0 0.3468097,0.014993 0.5261957,0.1030872 0.244915,0.1202744 0.4888197,0.3695439 0.6027014,0.6159576 0.079998,0.1730976 0.080499,0.1905559 0.09901,3.448397 0.020472,3.6031325 0.00418,3.3665775 0.2478407,3.5980265 0.2810043,0.266918 0.6822132,0.283308 1.0083162,0.04119 0.232339,-0.172501 0.25913,-0.280173 0.275933,-1.1089849 0.01456,-0.7180841 0.01869,-0.7520168 0.117805,-0.9674419 0.454637,-0.9881395 1.789759,-0.9881395 2.244396,0 0.09912,0.2154251 0.103248,0.2493578 0.117805,0.9674419 0.0168,0.8288119 0.04359,0.9364839 0.275933,1.1089849 0.326103,0.242117 0.727312,0.225727 1.008316,-0.04119 0.160426,-0.152384 0.218977,-0.294978 0.250819,-0.610832 C 14.845142,9.2502593 15.336916,8.7840275 16,8.7840275 c 0.478554,0 0.847992,0.2240614 1.082489,0.6565225 l 0.126813,0.2338686 0.01869,0.7813954 c 0.02069,0.865066 0.03258,0.913549 0.276595,1.127795 0.239244,0.210059 0.56665,0.239738 0.88018,0.07979 0.219744,-0.112104 0.324993,-0.301479 0.383515,-0.690054 0.06437,-0.427406 0.125794,-0.56694 0.357358,-0.811785 C 19.38604,9.8862229 19.614832,9.7882106 20,9.7869898 c 0.380153,-0.0012 0.636641,0.1145641 0.905451,0.4086842 0.318537,0.348531 0.317259,0.340596 0.332734,2.064791 0.02055,2.290001 -0.04576,2.983129 -0.383655,4.009983 -0.878739,2.670467 -3.284504,4.613238 -6.090273,4.918188 -0.322415,0.03504 -3.227312,0.04717 -3.564257,0.01488 z" id="path6" /> <path style="fill:#ffffff;stroke-width:0.0705053;stroke-linejoin:round;paint-order:stroke fill markers" d="m 11.942854,21.190957 c -1.015003,-0.01704 -1.131723,-0.02688 -1.806535,-0.1522 C 9.5352183,20.927122 8.8225664,20.681951 8.319624,20.413766 7.7570149,20.113766 7.3758537,19.827607 6.7836127,19.260598 5.774345,18.294328 3.1746828,15.68636 2.994305,15.459184 2.7288345,15.124838 2.6970674,15.049109 2.7026798,14.763988 c 0.00827,-0.420163 0.1162058,-0.679868 0.3844475,-0.925026 0.2382303,-0.217729 0.416008,-0.293073 0.7303102,-0.309513 0.5101451,-0.02668 0.6329728,0.04799 1.5378542,0.934977 0.8479274,0.831158 1.2429087,1.199656 1.342282,1.252283 0.11819,0.06259 0.4442817,0.06081 0.6122724,-0.0033 0.1482348,-0.05661 0.3410696,-0.248342 0.4107195,-0.408368 0.063024,-0.144802 0.06179,-0.498 -0.00216,-0.618376 C 7.6917315,14.63641 7.4736023,14.388937 7.2336742,14.136678 L 6.797441,13.678026 6.7970753,8.6903755 6.7967098,3.7027253 6.9021002,3.502167 C 7.0320375,3.2548956 7.2343175,3.0487286 7.4743519,2.9189189 c 0.1797064,-0.097185 0.1877434,-0.098707 0.5209477,-0.098707 0.3169743,0 0.349151,0.00524 0.5076381,0.082665 0.2190605,0.1070166 0.4871239,0.3748528 0.5931342,0.592632 l 0.081613,0.1676584 0.019992,1.3834579 c 0.010995,0.7609018 0.021403,2.0560783 0.023128,2.87817 0.00341,1.6233162 0.028863,2.2876938 0.093598,2.4426258 0.089047,0.213119 0.4255042,0.419889 0.683247,0.419889 0.1563141,0 0.3731941,-0.08265 0.5187231,-0.197689 0.205546,-0.162474 0.225694,-0.250142 0.256177,-1.1146856 C 10.79418,8.8613623 10.8052,8.7492253 10.85668,8.6186115 11.053264,8.1198873 11.50183,7.7978848 12,7.7978848 c 0.49817,0 0.946736,0.3220025 1.143315,0.8207259 0.05148,0.1306138 0.0625,0.2427508 0.08413,0.8563239 0.02897,0.8216044 0.05497,0.9507864 0.218548,1.0859664 0.341252,0.282005 0.756809,0.293493 1.057036,0.02922 0.169206,-0.148941 0.234219,-0.2921 0.288276,-0.6347773 0.103115,-0.6536616 0.472737,-1.0621772 1.030077,-1.1384664 0.547738,-0.074975 0.986339,0.1608863 1.276145,0.6862578 l 0.105758,0.1917223 7.68e-4,0.3699606 c 0.0011,0.553623 0.04553,1.179579 0.09141,1.289176 0.04428,0.105777 0.219161,0.276182 0.364423,0.355092 0.06913,0.03755 0.155512,0.05067 0.333059,0.05055 0.204058,-1.3e-4 0.260695,-0.01118 0.380729,-0.07426 0.239564,-0.12591 0.320531,-0.265583 0.407786,-0.703455 0.08382,-0.420648 0.125337,-0.527172 0.279883,-0.718174 0.321102,-0.3968443 0.77117,-0.5469022 1.259123,-0.4198065 0.21344,0.055594 0.39756,0.1739295 0.578279,0.3716645 0.286251,0.313205 0.299377,0.389392 0.324444,1.883099 0.02888,1.721047 -0.03379,2.808669 -0.20314,3.525265 -0.307591,1.301561 -0.970113,2.493177 -1.91312,3.440943 -1.060413,1.065767 -2.34115,1.742909 -3.849589,2.035329 -0.348478,0.06755 -0.462014,0.07524 -1.340342,0.09078 -0.527787,0.0093 -1.416154,0.0093 -1.974148,-6.4e-5 z" id="path7" /> </svg>',
|
|
61
|
-
'settings': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings-icon lucide-settings"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"/><circle cx="12" cy="12" r="3"/></svg>',
|
|
62
|
-
'share': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-share2-icon lucide-share-2"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.59" x2="15.42" y1="13.51" y2="17.49"/><line x1="15.41" x2="8.59" y1="6.51" y2="10.49"/></svg>',
|
|
63
|
-
'palette': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-palette-icon lucide-palette"><path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z"/><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/></svg>',
|
|
64
|
-
'command': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-command-icon lucide-command"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"/></svg>',
|
|
65
|
-
'info': '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info-icon lucide-info"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg>'
|
|
66
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export class KritzelToolRegistry {
|
|
2
|
-
static registerTool(toolName, constructor, core) {
|
|
3
|
-
const toolInstance = new constructor(core);
|
|
4
|
-
toolInstance.name = toolName;
|
|
5
|
-
this.registry[toolName] = toolInstance;
|
|
6
|
-
return toolInstance;
|
|
7
|
-
}
|
|
8
|
-
static getTool(toolName) {
|
|
9
|
-
const toolInstance = this.registry[toolName];
|
|
10
|
-
if (!toolInstance) {
|
|
11
|
-
console.warn(`Unknown tool: ${toolName}`);
|
|
12
|
-
return null;
|
|
13
|
-
}
|
|
14
|
-
return toolInstance;
|
|
15
|
-
}
|
|
16
|
-
static getToolByIndex(index) {
|
|
17
|
-
var _a;
|
|
18
|
-
return (_a = Object.values(this.registry)[index]) !== null && _a !== void 0 ? _a : null;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
KritzelToolRegistry.registry = {};
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import * as Y from 'yjs';
|
|
11
|
-
import { KritzelWorkspace } from '../core/workspace.class';
|
|
12
|
-
import { DEFAULT_SYNC_CONFIG } from '../../configs/default-sync.config';
|
|
13
|
-
export class KritzelAppStateMap {
|
|
14
|
-
get isReady() {
|
|
15
|
-
return this._isReady;
|
|
16
|
-
}
|
|
17
|
-
constructor() {
|
|
18
|
-
this._ydoc = null;
|
|
19
|
-
this._workspacesMap = null;
|
|
20
|
-
this._providers = [];
|
|
21
|
-
this._core = null;
|
|
22
|
-
this._isReady = false;
|
|
23
|
-
this._onRemoteChangeCallback = null;
|
|
24
|
-
this._workspacesObserver = null;
|
|
25
|
-
this.map = new Map();
|
|
26
|
-
}
|
|
27
|
-
onRemoteChange(callback) {
|
|
28
|
-
this._onRemoteChangeCallback = callback;
|
|
29
|
-
}
|
|
30
|
-
initialize(core, config) {
|
|
31
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
-
this._core = core;
|
|
33
|
-
// Create a dedicated Y.Doc for app state (workspaces)
|
|
34
|
-
this._ydoc = new Y.Doc();
|
|
35
|
-
this._workspacesMap = this._ydoc.getMap('workspaces');
|
|
36
|
-
const docName = 'kritzel-app-state';
|
|
37
|
-
const finalConfig = config !== null && config !== void 0 ? config : DEFAULT_SYNC_CONFIG;
|
|
38
|
-
// Instantiate providers from configuration
|
|
39
|
-
for (const providerConfig of finalConfig.providers) {
|
|
40
|
-
let provider;
|
|
41
|
-
// Check if it's a class constructor or a factory
|
|
42
|
-
if (typeof providerConfig === 'function') {
|
|
43
|
-
// It's a class constructor
|
|
44
|
-
provider = new providerConfig(docName, this._ydoc);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
// It's a factory with a create method
|
|
48
|
-
provider = providerConfig.create(docName, this._ydoc);
|
|
49
|
-
}
|
|
50
|
-
this._providers.push(provider);
|
|
51
|
-
}
|
|
52
|
-
// Observe changes to workspaces and sync with application state
|
|
53
|
-
this._workspacesObserver = event => {
|
|
54
|
-
this.handleWorkspacesChange(event);
|
|
55
|
-
};
|
|
56
|
-
this._workspacesMap.observe(this._workspacesObserver);
|
|
57
|
-
// Connect all providers in parallel
|
|
58
|
-
yield Promise.all(this._providers.map(p => p.connect()));
|
|
59
|
-
this._isReady = true;
|
|
60
|
-
// Load workspaces from Yjs
|
|
61
|
-
this.loadFromYjs();
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
handleWorkspacesChange(event) {
|
|
65
|
-
var _a, _b, _c;
|
|
66
|
-
// Skip Map updates for local changes (already done), but still trigger re-render
|
|
67
|
-
if (event.transaction.origin === 'local') {
|
|
68
|
-
(_a = this._core) === null || _a === void 0 ? void 0 : _a.rerender();
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
const changedKeys = Array.from(event.keysChanged);
|
|
72
|
-
const workspacesToUpdate = [];
|
|
73
|
-
const workspacesToDelete = [];
|
|
74
|
-
changedKeys.forEach(key => {
|
|
75
|
-
const change = event.changes.keys.get(key);
|
|
76
|
-
if (change && change.action === 'delete') {
|
|
77
|
-
workspacesToDelete.push(key);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
const serialized = this._workspacesMap.get(key);
|
|
81
|
-
if (serialized) {
|
|
82
|
-
const workspace = this.reviveWorkspace(serialized);
|
|
83
|
-
workspacesToUpdate.push(workspace);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
// Delete workspaces from local map
|
|
88
|
-
workspacesToDelete.forEach(workspaceId => {
|
|
89
|
-
this.map.delete(workspaceId);
|
|
90
|
-
});
|
|
91
|
-
// Update or insert workspaces
|
|
92
|
-
workspacesToUpdate.forEach(workspace => {
|
|
93
|
-
this.map.set(workspace.id, workspace);
|
|
94
|
-
});
|
|
95
|
-
// Update the store's workspace list to reflect remote changes
|
|
96
|
-
if ((_b = this._core) === null || _b === void 0 ? void 0 : _b.store) {
|
|
97
|
-
this._core.store.state.workspaces = this.allWorkspaces();
|
|
98
|
-
}
|
|
99
|
-
// Notify about remote changes
|
|
100
|
-
if (this._onRemoteChangeCallback) {
|
|
101
|
-
this._onRemoteChangeCallback();
|
|
102
|
-
}
|
|
103
|
-
(_c = this._core) === null || _c === void 0 ? void 0 : _c.rerender();
|
|
104
|
-
}
|
|
105
|
-
reviveWorkspace(serialized) {
|
|
106
|
-
const workspace = new KritzelWorkspace(serialized.id, serialized.name, serialized.viewport);
|
|
107
|
-
workspace._core = this._core;
|
|
108
|
-
workspace.createdAt = new Date(serialized.createdAt);
|
|
109
|
-
workspace.updatedAt = new Date(serialized.updatedAt);
|
|
110
|
-
return workspace;
|
|
111
|
-
}
|
|
112
|
-
transaction(callback) {
|
|
113
|
-
if (this._ydoc) {
|
|
114
|
-
this._ydoc.transact(callback, 'local');
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
loadFromYjs() {
|
|
118
|
-
if (!this._workspacesMap) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
this.map.clear();
|
|
122
|
-
this._workspacesMap.forEach((serialized, key) => {
|
|
123
|
-
const workspace = this.reviveWorkspace(serialized);
|
|
124
|
-
this.map.set(key, workspace);
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
reset() {
|
|
128
|
-
this.map.clear();
|
|
129
|
-
this._ydoc.transact(() => {
|
|
130
|
-
this._workspacesMap.clear();
|
|
131
|
-
}, 'local');
|
|
132
|
-
}
|
|
133
|
-
insert(workspace) {
|
|
134
|
-
if (!workspace.id) {
|
|
135
|
-
return false;
|
|
136
|
-
}
|
|
137
|
-
this.map.set(workspace.id, workspace);
|
|
138
|
-
if (this._workspacesMap) {
|
|
139
|
-
const serialized = workspace.serialize();
|
|
140
|
-
this._ydoc.transact(() => {
|
|
141
|
-
this._workspacesMap.set(workspace.id, serialized);
|
|
142
|
-
}, 'local');
|
|
143
|
-
}
|
|
144
|
-
return true;
|
|
145
|
-
}
|
|
146
|
-
update(workspace) {
|
|
147
|
-
if (!workspace.id || !this.map.has(workspace.id)) {
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
this.map.set(workspace.id, workspace);
|
|
151
|
-
if (this._workspacesMap) {
|
|
152
|
-
const serialized = workspace.serialize();
|
|
153
|
-
this._ydoc.transact(() => {
|
|
154
|
-
this._workspacesMap.set(workspace.id, serialized);
|
|
155
|
-
}, 'local');
|
|
156
|
-
}
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
remove(predicate) {
|
|
160
|
-
const workspaceToRemove = Array.from(this.map.values()).find(predicate);
|
|
161
|
-
if (!workspaceToRemove) {
|
|
162
|
-
return false;
|
|
163
|
-
}
|
|
164
|
-
this.map.delete(workspaceToRemove.id);
|
|
165
|
-
if (this._workspacesMap) {
|
|
166
|
-
this._ydoc.transact(() => {
|
|
167
|
-
this._workspacesMap.delete(workspaceToRemove.id);
|
|
168
|
-
}, 'local');
|
|
169
|
-
}
|
|
170
|
-
return true;
|
|
171
|
-
}
|
|
172
|
-
get(id) {
|
|
173
|
-
return this.map.get(id);
|
|
174
|
-
}
|
|
175
|
-
allWorkspaces() {
|
|
176
|
-
return Array.from(this.map.values());
|
|
177
|
-
}
|
|
178
|
-
filter(predicate) {
|
|
179
|
-
return Array.from(this.map.values()).filter(predicate);
|
|
180
|
-
}
|
|
181
|
-
find(predicate) {
|
|
182
|
-
return Array.from(this.map.values()).find(predicate);
|
|
183
|
-
}
|
|
184
|
-
has(id) {
|
|
185
|
-
return this.map.has(id);
|
|
186
|
-
}
|
|
187
|
-
destroy() {
|
|
188
|
-
// Unobserve the workspaces map
|
|
189
|
-
if (this._workspacesMap && this._workspacesObserver) {
|
|
190
|
-
this._workspacesMap.unobserve(this._workspacesObserver);
|
|
191
|
-
this._workspacesObserver = null;
|
|
192
|
-
}
|
|
193
|
-
// Disconnect and destroy all providers
|
|
194
|
-
this._providers.forEach(p => {
|
|
195
|
-
p.disconnect();
|
|
196
|
-
p.destroy();
|
|
197
|
-
});
|
|
198
|
-
this._providers = [];
|
|
199
|
-
// Clear maps
|
|
200
|
-
this.map.clear();
|
|
201
|
-
this._workspacesMap = null;
|
|
202
|
-
// Destroy Y.Doc
|
|
203
|
-
if (this._ydoc) {
|
|
204
|
-
this._ydoc.destroy();
|
|
205
|
-
this._ydoc = null;
|
|
206
|
-
}
|
|
207
|
-
// Clear remaining references
|
|
208
|
-
this._core = null;
|
|
209
|
-
this._onRemoteChangeCallback = null;
|
|
210
|
-
this._isReady = false;
|
|
211
|
-
}
|
|
212
|
-
}
|