@floegence/floe-webapp-core 0.36.42 → 0.36.44
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/components/icons/index.d.ts +2 -0
- package/dist/components/icons/index.js +419 -397
- package/dist/components/workbench/WorkbenchCanvas.d.ts +45 -2
- package/dist/components/workbench/WorkbenchCanvas.js +265 -66
- package/dist/components/workbench/WorkbenchCanvasField.d.ts +47 -2
- package/dist/components/workbench/WorkbenchCanvasField.js +258 -78
- package/dist/components/workbench/WorkbenchFilterBar.d.ts +9 -7
- package/dist/components/workbench/WorkbenchFilterBar.js +233 -145
- package/dist/components/workbench/WorkbenchLayerObjects.d.ts +136 -0
- package/dist/components/workbench/WorkbenchLayerObjects.js +999 -0
- package/dist/components/workbench/WorkbenchOverlay.d.ts +4 -1
- package/dist/components/workbench/WorkbenchOverlay.js +59 -29
- package/dist/components/workbench/WorkbenchSurface.d.ts +23 -11
- package/dist/components/workbench/WorkbenchSurface.js +315 -195
- package/dist/components/workbench/WorkbenchWidget.js +37 -37
- package/dist/components/workbench/index.d.ts +2 -1
- package/dist/components/workbench/types.d.ts +96 -1
- package/dist/components/workbench/types.js +12 -4
- package/dist/components/workbench/useWorkbenchModel.d.ts +62 -4
- package/dist/components/workbench/useWorkbenchModel.js +790 -253
- package/dist/components/workbench/widgets/widgetRegistry.d.ts +1 -1
- package/dist/components/workbench/workbenchHelpers.d.ts +5 -5
- package/dist/components/workbench/workbenchHelpers.js +345 -154
- package/dist/components/workbench/workbenchOptions.d.ts +43 -0
- package/dist/components/workbench/workbenchOptions.js +112 -0
- package/dist/full.js +620 -618
- package/dist/icons.js +71 -69
- package/dist/styles.css +1 -1
- package/dist/workbench.css +1122 -26
- package/dist/workbench.js +52 -36
- package/package.json +1 -1
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import { type InfiniteCanvasContextMenuEvent } from '../../ui';
|
|
2
2
|
import { type ResolvedWorkbenchInteractionAdapter } from './workbenchInteractionAdapter';
|
|
3
|
-
import type
|
|
3
|
+
import { type WorkbenchAnnotationItem, type WorkbenchBackgroundLayer, type WorkbenchInteractionMode, type WorkbenchInteractionAdapter, type WorkbenchSelection, type WorkbenchStickyNoteItem, type WorkbenchTextAnnotationPatch, type WorkbenchViewport, type WorkbenchWidgetDefinition, type WorkbenchWidgetItem } from './types';
|
|
4
4
|
export interface WorkbenchCanvasProps {
|
|
5
5
|
widgetDefinitions: readonly WorkbenchWidgetDefinition[];
|
|
6
6
|
widgets: readonly WorkbenchWidgetItem[];
|
|
7
|
+
stickyNotes?: readonly WorkbenchStickyNoteItem[];
|
|
8
|
+
annotations?: readonly WorkbenchAnnotationItem[];
|
|
9
|
+
backgroundLayers?: readonly WorkbenchBackgroundLayer[];
|
|
7
10
|
viewport: WorkbenchViewport;
|
|
8
11
|
canvasFrameSize: {
|
|
9
12
|
width: number;
|
|
10
13
|
height: number;
|
|
11
14
|
};
|
|
12
15
|
selectedWidgetId: string | null;
|
|
16
|
+
selectedObject?: WorkbenchSelection | null;
|
|
17
|
+
mode?: WorkbenchInteractionMode;
|
|
13
18
|
optimisticFrontWidgetId: string | null;
|
|
14
19
|
locked: boolean;
|
|
15
|
-
filters: Record<
|
|
20
|
+
filters: Record<string, boolean>;
|
|
16
21
|
interactionAdapter?: WorkbenchInteractionAdapter | ResolvedWorkbenchInteractionAdapter;
|
|
17
22
|
setCanvasFrameRef: (el: HTMLDivElement | undefined) => void;
|
|
18
23
|
onViewportCommit: (viewport: WorkbenchViewport) => void;
|
|
@@ -31,6 +36,44 @@ export interface WorkbenchCanvasProps {
|
|
|
31
36
|
width: number;
|
|
32
37
|
height: number;
|
|
33
38
|
}) => void;
|
|
39
|
+
onSelectStickyNote?: (noteId: string) => void;
|
|
40
|
+
onStickyNoteContextMenu?: (event: MouseEvent, item: WorkbenchStickyNoteItem) => void;
|
|
41
|
+
onStartStickyOptimisticFront?: (noteId: string) => void;
|
|
42
|
+
onCommitStickyFront?: (noteId: string) => void;
|
|
43
|
+
onCommitStickyMove?: (noteId: string, position: {
|
|
44
|
+
x: number;
|
|
45
|
+
y: number;
|
|
46
|
+
}) => void;
|
|
47
|
+
onCommitStickyResize?: (noteId: string, size: {
|
|
48
|
+
width: number;
|
|
49
|
+
height: number;
|
|
50
|
+
}) => void;
|
|
51
|
+
onUpdateStickyNote?: (noteId: string, patch: Partial<Pick<WorkbenchStickyNoteItem, 'body' | 'color'>>) => void;
|
|
52
|
+
onDeleteStickyNote?: (noteId: string) => void;
|
|
53
|
+
onSelectAnnotation?: (annotationId: string) => void;
|
|
54
|
+
onAnnotationContextMenu?: (event: MouseEvent, item: WorkbenchAnnotationItem) => void;
|
|
55
|
+
onCommitAnnotationMove?: (annotationId: string, position: {
|
|
56
|
+
x: number;
|
|
57
|
+
y: number;
|
|
58
|
+
}) => void;
|
|
59
|
+
onCommitAnnotationResize?: (annotationId: string, size: {
|
|
60
|
+
width: number;
|
|
61
|
+
height: number;
|
|
62
|
+
}) => void;
|
|
63
|
+
onUpdateTextAnnotation?: (annotationId: string, patch: WorkbenchTextAnnotationPatch) => void;
|
|
64
|
+
onDeleteAnnotation?: (annotationId: string) => void;
|
|
65
|
+
onSelectBackgroundLayer?: (layerId: string) => void;
|
|
66
|
+
onBackgroundLayerContextMenu?: (event: MouseEvent, item: WorkbenchBackgroundLayer) => void;
|
|
67
|
+
onCommitBackgroundMove?: (layerId: string, position: {
|
|
68
|
+
x: number;
|
|
69
|
+
y: number;
|
|
70
|
+
}) => void;
|
|
71
|
+
onCommitBackgroundResize?: (layerId: string, size: {
|
|
72
|
+
width: number;
|
|
73
|
+
height: number;
|
|
74
|
+
}) => void;
|
|
75
|
+
onUpdateBackgroundLayer?: (layerId: string, patch: Partial<Pick<WorkbenchBackgroundLayer, 'fill' | 'opacity' | 'material' | 'name'>>) => void;
|
|
76
|
+
onDeleteBackgroundLayer?: (layerId: string) => void;
|
|
34
77
|
onRequestOverview: (item: WorkbenchWidgetItem) => void;
|
|
35
78
|
onRequestFit: (item: WorkbenchWidgetItem) => void;
|
|
36
79
|
onRequestDelete: (widgetId: string) => void;
|
|
@@ -1,48 +1,50 @@
|
|
|
1
|
-
import { use as
|
|
2
|
-
import { createMemo as
|
|
3
|
-
import { resolveWorkbenchInteractionAdapter as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { use as b, insert as k, createComponent as a, memo as y, effect as R, template as F } from "solid-js/web";
|
|
2
|
+
import { createMemo as c, Show as M, For as s } from "solid-js";
|
|
3
|
+
import { resolveWorkbenchInteractionAdapter as N } from "./workbenchInteractionAdapter.js";
|
|
4
|
+
import { WORKBENCH_STICKY_FILTER_ID as O } from "./types.js";
|
|
5
|
+
import { WorkbenchCanvasField as j } from "./WorkbenchCanvasField.js";
|
|
6
|
+
import { WorkbenchStickyNote as D } from "./WorkbenchLayerObjects.js";
|
|
7
|
+
import { WorkbenchWidget as x } from "./WorkbenchWidget.js";
|
|
8
|
+
import { createWorkbenchRenderLayerMap as V, resolveWorkbenchWidgetRenderMode as L, WORKBENCH_MIN_SCALE as z } from "./workbenchHelpers.js";
|
|
9
|
+
import { getWidgetEntry as S } from "./widgets/widgetRegistry.js";
|
|
10
|
+
import { InfiniteCanvas as A } from "../ui/InfiniteCanvas.js";
|
|
11
|
+
var E = /* @__PURE__ */ F("<div class=workbench-canvas><div class=workbench-canvas__atmosphere aria-hidden=true>"), _ = /* @__PURE__ */ F("<div class=workbench-canvas__projected-layer>");
|
|
12
|
+
function q(e) {
|
|
13
|
+
const r = c((o) => {
|
|
14
|
+
const l = e.widgetById().get(e.widgetId);
|
|
15
|
+
if (l) return l;
|
|
16
|
+
if (o) return o;
|
|
15
17
|
throw new Error(`Workbench widget ${e.widgetId} is missing from the projected render map.`);
|
|
16
|
-
}),
|
|
17
|
-
return a(
|
|
18
|
+
}), t = c(() => S(r().type, e.widgetDefinitions));
|
|
19
|
+
return a(x, {
|
|
18
20
|
get definition() {
|
|
19
|
-
return
|
|
21
|
+
return t();
|
|
20
22
|
},
|
|
21
23
|
get widgetId() {
|
|
22
24
|
return e.widgetId;
|
|
23
25
|
},
|
|
24
26
|
get widgetTitle() {
|
|
25
|
-
return
|
|
27
|
+
return r().title;
|
|
26
28
|
},
|
|
27
29
|
get widgetType() {
|
|
28
|
-
return
|
|
30
|
+
return r().type;
|
|
29
31
|
},
|
|
30
32
|
get x() {
|
|
31
|
-
return
|
|
33
|
+
return r().x;
|
|
32
34
|
},
|
|
33
35
|
get y() {
|
|
34
|
-
return
|
|
36
|
+
return r().y;
|
|
35
37
|
},
|
|
36
38
|
get width() {
|
|
37
|
-
return
|
|
39
|
+
return r().width;
|
|
38
40
|
},
|
|
39
41
|
get height() {
|
|
40
|
-
return
|
|
42
|
+
return r().height;
|
|
41
43
|
},
|
|
42
44
|
get renderLayer() {
|
|
43
45
|
return e.renderLayers().byWidgetId.get(e.widgetId) ?? 1;
|
|
44
46
|
},
|
|
45
|
-
itemSnapshot:
|
|
47
|
+
itemSnapshot: r,
|
|
46
48
|
get selected() {
|
|
47
49
|
return e.selectedWidgetId === e.widgetId;
|
|
48
50
|
},
|
|
@@ -59,7 +61,7 @@ function b(e) {
|
|
|
59
61
|
return e.locked;
|
|
60
62
|
},
|
|
61
63
|
get filtered() {
|
|
62
|
-
return
|
|
64
|
+
return y(() => e.mode !== "background")() && e.filters[r().type] === !1;
|
|
63
65
|
},
|
|
64
66
|
get interactionAdapter() {
|
|
65
67
|
return e.interactionAdapter;
|
|
@@ -115,24 +117,79 @@ function b(e) {
|
|
|
115
117
|
}
|
|
116
118
|
});
|
|
117
119
|
}
|
|
118
|
-
function
|
|
119
|
-
const
|
|
120
|
-
const o =
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
120
|
+
function B(e) {
|
|
121
|
+
const r = c((t) => {
|
|
122
|
+
const o = e.stickyNoteById().get(e.noteId);
|
|
123
|
+
if (o) return o;
|
|
124
|
+
if (t) return t;
|
|
125
|
+
throw new Error(`Workbench sticky note ${e.noteId} is missing from the projected render map.`);
|
|
126
|
+
});
|
|
127
|
+
return a(D, {
|
|
128
|
+
get item() {
|
|
129
|
+
return r();
|
|
130
|
+
},
|
|
131
|
+
get selected() {
|
|
132
|
+
return y(() => e.selectedObject?.kind === "sticky_note")() && e.selectedObject.id === e.noteId;
|
|
133
|
+
},
|
|
134
|
+
get viewportScale() {
|
|
135
|
+
return e.projectedViewport().scale;
|
|
136
|
+
},
|
|
137
|
+
get projectedViewport() {
|
|
138
|
+
return e.projectedViewport;
|
|
139
|
+
},
|
|
140
|
+
get surfaceReady() {
|
|
141
|
+
return e.surfaceReady;
|
|
142
|
+
},
|
|
143
|
+
get renderLayer() {
|
|
144
|
+
return e.renderLayers().byWidgetId.get(e.noteId) ?? e.renderLayers().topRenderLayer;
|
|
145
|
+
},
|
|
146
|
+
get topRenderLayer() {
|
|
147
|
+
return e.renderLayers().topRenderLayer;
|
|
148
|
+
},
|
|
149
|
+
get locked() {
|
|
150
|
+
return e.locked;
|
|
151
|
+
},
|
|
152
|
+
get filtered() {
|
|
153
|
+
return e.filtered;
|
|
154
|
+
},
|
|
155
|
+
get optimisticFront() {
|
|
156
|
+
return e.optimisticFrontWidgetId === e.noteId;
|
|
157
|
+
},
|
|
158
|
+
onSelect: (t) => e.onSelectStickyNote?.(t),
|
|
159
|
+
onContextMenu: (t, o) => e.onStickyNoteContextMenu?.(t, o),
|
|
160
|
+
onStartOptimisticFront: (t) => e.onStartStickyOptimisticFront?.(t),
|
|
161
|
+
onCommitFront: (t) => e.onCommitStickyFront?.(t),
|
|
162
|
+
onCommitMove: (t, o) => e.onCommitStickyMove?.(t, o),
|
|
163
|
+
onCommitResize: (t, o) => e.onCommitStickyResize?.(t, o),
|
|
164
|
+
onUpdate: (t, o) => e.onUpdateStickyNote?.(t, o),
|
|
165
|
+
onDelete: (t) => e.onDeleteStickyNote?.(t),
|
|
166
|
+
get onLayoutInteractionStart() {
|
|
167
|
+
return e.onLayoutInteractionStart;
|
|
168
|
+
},
|
|
169
|
+
get onLayoutInteractionEnd() {
|
|
170
|
+
return e.onLayoutInteractionEnd;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
function Q(e) {
|
|
175
|
+
const r = c(() => N(e.interactionAdapter)), t = c(() => new Map(e.widgets.map((n) => [n.id, n]))), o = c(() => (e.stickyNotes ?? []).map((n) => n.id)), l = c(() => new Map((e.stickyNotes ?? []).map((n) => [n.id, n]))), C = c(() => V([...e.widgets, ...e.stickyNotes ?? []])), u = c(() => e.mode === "background"), w = c(() => e.mode === "background"), W = c(() => e.widgets.filter((n) => {
|
|
176
|
+
const g = S(n.type, e.widgetDefinitions);
|
|
177
|
+
return L(g) === "canvas_scaled";
|
|
178
|
+
})), v = c(() => e.widgets.filter((n) => {
|
|
179
|
+
const g = S(n.type, e.widgetDefinitions);
|
|
180
|
+
return L(g) === "projected_surface";
|
|
181
|
+
}).map((n) => n.id)), I = c(() => v().length > 0), h = c(() => I() ? [] : e.stickyNotes ?? []), f = () => e.canvasFrameSize.width > 0 && e.canvasFrameSize.height > 0;
|
|
126
182
|
return (() => {
|
|
127
|
-
var
|
|
128
|
-
|
|
129
|
-
var
|
|
130
|
-
return typeof
|
|
183
|
+
var n = E();
|
|
184
|
+
n.firstChild;
|
|
185
|
+
var g = e.setCanvasFrameRef;
|
|
186
|
+
return typeof g == "function" ? b(g, n) : e.setCanvasFrameRef = n, k(n, a(A, {
|
|
131
187
|
ariaLabel: "Workbench canvas",
|
|
132
188
|
class: "workbench-canvas__infinite",
|
|
133
189
|
get viewport() {
|
|
134
190
|
return e.viewport;
|
|
135
191
|
},
|
|
192
|
+
minScale: z,
|
|
136
193
|
get onViewportChange() {
|
|
137
194
|
return e.onViewportCommit;
|
|
138
195
|
},
|
|
@@ -145,54 +202,54 @@ function A(e) {
|
|
|
145
202
|
get onCanvasPointerDown() {
|
|
146
203
|
return e.onCanvasPointerDown;
|
|
147
204
|
},
|
|
148
|
-
resolveTargetRole: (
|
|
149
|
-
target:
|
|
150
|
-
interactiveSelector:
|
|
151
|
-
panSurfaceSelector:
|
|
205
|
+
resolveTargetRole: (i) => r().resolveSurfaceTargetRole({
|
|
206
|
+
target: i.target,
|
|
207
|
+
interactiveSelector: i.interactiveSelector,
|
|
208
|
+
panSurfaceSelector: i.panSurfaceSelector
|
|
152
209
|
}),
|
|
153
|
-
resolveWheelRouting: (
|
|
154
|
-
target:
|
|
155
|
-
disablePanZoom:
|
|
156
|
-
selectedWidgetId: e.selectedWidgetId,
|
|
157
|
-
wheelInteractiveSelector:
|
|
210
|
+
resolveWheelRouting: (i) => r().resolveWheelRouting({
|
|
211
|
+
target: i.target,
|
|
212
|
+
disablePanZoom: i.disablePanZoom,
|
|
213
|
+
selectedWidgetId: e.selectedObject?.kind === "widget" || e.selectedObject?.kind === "sticky_note" ? e.selectedObject.id : e.selectedWidgetId,
|
|
214
|
+
wheelInteractiveSelector: i.wheelInteractiveSelector
|
|
158
215
|
}),
|
|
159
216
|
get disablePanZoom() {
|
|
160
217
|
return e.locked;
|
|
161
218
|
},
|
|
162
|
-
overlay: (
|
|
219
|
+
overlay: (i) => a(M, {
|
|
163
220
|
get when() {
|
|
164
|
-
return
|
|
221
|
+
return I();
|
|
165
222
|
},
|
|
166
223
|
get children() {
|
|
167
|
-
var
|
|
168
|
-
return
|
|
224
|
+
var d = _();
|
|
225
|
+
return k(d, a(s, {
|
|
169
226
|
get each() {
|
|
170
|
-
return
|
|
227
|
+
return v();
|
|
171
228
|
},
|
|
172
|
-
children: (
|
|
173
|
-
widgetId:
|
|
229
|
+
children: (m) => a(q, {
|
|
230
|
+
widgetId: m,
|
|
174
231
|
get widgetDefinitions() {
|
|
175
232
|
return e.widgetDefinitions;
|
|
176
233
|
},
|
|
177
234
|
get canvasFrameSize() {
|
|
178
235
|
return e.canvasFrameSize;
|
|
179
236
|
},
|
|
180
|
-
widgetById:
|
|
181
|
-
renderLayers:
|
|
237
|
+
widgetById: t,
|
|
238
|
+
renderLayers: C,
|
|
182
239
|
get selectedWidgetId() {
|
|
183
|
-
return e.selectedWidgetId;
|
|
240
|
+
return y(() => e.selectedObject?.kind === "widget")() ? e.selectedObject.id : e.selectedWidgetId;
|
|
184
241
|
},
|
|
185
242
|
get optimisticFrontWidgetId() {
|
|
186
243
|
return e.optimisticFrontWidgetId;
|
|
187
244
|
},
|
|
188
245
|
get locked() {
|
|
189
|
-
return e.locked;
|
|
246
|
+
return e.locked || u();
|
|
190
247
|
},
|
|
191
248
|
get filters() {
|
|
192
249
|
return e.filters;
|
|
193
250
|
},
|
|
194
251
|
get interactionAdapter() {
|
|
195
|
-
return
|
|
252
|
+
return r();
|
|
196
253
|
},
|
|
197
254
|
get setCanvasFrameRef() {
|
|
198
255
|
return e.setCanvasFrameRef;
|
|
@@ -236,21 +293,85 @@ function A(e) {
|
|
|
236
293
|
get onLayoutInteractionEnd() {
|
|
237
294
|
return e.onLayoutInteractionEnd;
|
|
238
295
|
},
|
|
239
|
-
projectedViewport:
|
|
296
|
+
projectedViewport: i,
|
|
297
|
+
get surfaceReady() {
|
|
298
|
+
return f();
|
|
299
|
+
}
|
|
300
|
+
})
|
|
301
|
+
}), null), k(d, a(s, {
|
|
302
|
+
get each() {
|
|
303
|
+
return o();
|
|
304
|
+
},
|
|
305
|
+
children: (m) => a(B, {
|
|
306
|
+
noteId: m,
|
|
307
|
+
stickyNoteById: l,
|
|
308
|
+
get selectedObject() {
|
|
309
|
+
return e.selectedObject;
|
|
310
|
+
},
|
|
311
|
+
renderLayers: C,
|
|
312
|
+
projectedViewport: i,
|
|
313
|
+
get optimisticFrontWidgetId() {
|
|
314
|
+
return e.optimisticFrontWidgetId;
|
|
315
|
+
},
|
|
316
|
+
get locked() {
|
|
317
|
+
return e.locked || u();
|
|
318
|
+
},
|
|
319
|
+
get filtered() {
|
|
320
|
+
return y(() => !u())() && e.filters[O] === !1;
|
|
321
|
+
},
|
|
322
|
+
get onSelectStickyNote() {
|
|
323
|
+
return e.onSelectStickyNote;
|
|
324
|
+
},
|
|
325
|
+
get onStickyNoteContextMenu() {
|
|
326
|
+
return e.onStickyNoteContextMenu;
|
|
327
|
+
},
|
|
328
|
+
get onStartStickyOptimisticFront() {
|
|
329
|
+
return e.onStartStickyOptimisticFront;
|
|
330
|
+
},
|
|
331
|
+
get onCommitStickyFront() {
|
|
332
|
+
return e.onCommitStickyFront;
|
|
333
|
+
},
|
|
334
|
+
get onCommitStickyMove() {
|
|
335
|
+
return e.onCommitStickyMove;
|
|
336
|
+
},
|
|
337
|
+
get onCommitStickyResize() {
|
|
338
|
+
return e.onCommitStickyResize;
|
|
339
|
+
},
|
|
340
|
+
get onUpdateStickyNote() {
|
|
341
|
+
return e.onUpdateStickyNote;
|
|
342
|
+
},
|
|
343
|
+
get onDeleteStickyNote() {
|
|
344
|
+
return e.onDeleteStickyNote;
|
|
345
|
+
},
|
|
346
|
+
get onLayoutInteractionStart() {
|
|
347
|
+
return e.onLayoutInteractionStart;
|
|
348
|
+
},
|
|
349
|
+
get onLayoutInteractionEnd() {
|
|
350
|
+
return e.onLayoutInteractionEnd;
|
|
351
|
+
},
|
|
240
352
|
get surfaceReady() {
|
|
241
|
-
return
|
|
353
|
+
return f();
|
|
242
354
|
}
|
|
243
355
|
})
|
|
244
|
-
})),
|
|
356
|
+
}), null), R(() => d.classList.toggle("is-work-layer-locked", !!u())), d;
|
|
245
357
|
}
|
|
246
358
|
}),
|
|
247
359
|
get children() {
|
|
248
|
-
return a(
|
|
360
|
+
return a(j, {
|
|
249
361
|
get widgetDefinitions() {
|
|
250
362
|
return e.widgetDefinitions;
|
|
251
363
|
},
|
|
252
364
|
get widgets() {
|
|
253
|
-
return
|
|
365
|
+
return W();
|
|
366
|
+
},
|
|
367
|
+
get stickyNotes() {
|
|
368
|
+
return h();
|
|
369
|
+
},
|
|
370
|
+
get annotations() {
|
|
371
|
+
return e.annotations ?? [];
|
|
372
|
+
},
|
|
373
|
+
get backgroundLayers() {
|
|
374
|
+
return e.backgroundLayers ?? [];
|
|
254
375
|
},
|
|
255
376
|
get viewport() {
|
|
256
377
|
return e.viewport;
|
|
@@ -258,9 +379,21 @@ function A(e) {
|
|
|
258
379
|
get selectedWidgetId() {
|
|
259
380
|
return e.selectedWidgetId;
|
|
260
381
|
},
|
|
382
|
+
get selectedObject() {
|
|
383
|
+
return e.selectedObject;
|
|
384
|
+
},
|
|
261
385
|
get optimisticFrontWidgetId() {
|
|
262
386
|
return e.optimisticFrontWidgetId;
|
|
263
387
|
},
|
|
388
|
+
get workLayerLocked() {
|
|
389
|
+
return u();
|
|
390
|
+
},
|
|
391
|
+
get annotationLayerEditable() {
|
|
392
|
+
return w();
|
|
393
|
+
},
|
|
394
|
+
get backgroundLayerEditable() {
|
|
395
|
+
return w();
|
|
396
|
+
},
|
|
264
397
|
get viewportScale() {
|
|
265
398
|
return e.viewport.scale;
|
|
266
399
|
},
|
|
@@ -271,7 +404,7 @@ function A(e) {
|
|
|
271
404
|
return e.filters;
|
|
272
405
|
},
|
|
273
406
|
get interactionAdapter() {
|
|
274
|
-
return
|
|
407
|
+
return r();
|
|
275
408
|
},
|
|
276
409
|
get onSelectWidget() {
|
|
277
410
|
return e.onSelectWidget;
|
|
@@ -291,6 +424,66 @@ function A(e) {
|
|
|
291
424
|
get onCommitResize() {
|
|
292
425
|
return e.onCommitResize;
|
|
293
426
|
},
|
|
427
|
+
get onSelectStickyNote() {
|
|
428
|
+
return e.onSelectStickyNote;
|
|
429
|
+
},
|
|
430
|
+
get onStickyNoteContextMenu() {
|
|
431
|
+
return e.onStickyNoteContextMenu;
|
|
432
|
+
},
|
|
433
|
+
get onStartStickyOptimisticFront() {
|
|
434
|
+
return e.onStartStickyOptimisticFront;
|
|
435
|
+
},
|
|
436
|
+
get onCommitStickyFront() {
|
|
437
|
+
return e.onCommitStickyFront;
|
|
438
|
+
},
|
|
439
|
+
get onCommitStickyMove() {
|
|
440
|
+
return e.onCommitStickyMove;
|
|
441
|
+
},
|
|
442
|
+
get onCommitStickyResize() {
|
|
443
|
+
return e.onCommitStickyResize;
|
|
444
|
+
},
|
|
445
|
+
get onUpdateStickyNote() {
|
|
446
|
+
return e.onUpdateStickyNote;
|
|
447
|
+
},
|
|
448
|
+
get onDeleteStickyNote() {
|
|
449
|
+
return e.onDeleteStickyNote;
|
|
450
|
+
},
|
|
451
|
+
get onSelectAnnotation() {
|
|
452
|
+
return e.onSelectAnnotation;
|
|
453
|
+
},
|
|
454
|
+
get onAnnotationContextMenu() {
|
|
455
|
+
return e.onAnnotationContextMenu;
|
|
456
|
+
},
|
|
457
|
+
get onCommitAnnotationMove() {
|
|
458
|
+
return e.onCommitAnnotationMove;
|
|
459
|
+
},
|
|
460
|
+
get onCommitAnnotationResize() {
|
|
461
|
+
return e.onCommitAnnotationResize;
|
|
462
|
+
},
|
|
463
|
+
get onUpdateTextAnnotation() {
|
|
464
|
+
return e.onUpdateTextAnnotation;
|
|
465
|
+
},
|
|
466
|
+
get onDeleteAnnotation() {
|
|
467
|
+
return e.onDeleteAnnotation;
|
|
468
|
+
},
|
|
469
|
+
get onSelectBackgroundLayer() {
|
|
470
|
+
return e.onSelectBackgroundLayer;
|
|
471
|
+
},
|
|
472
|
+
get onBackgroundLayerContextMenu() {
|
|
473
|
+
return e.onBackgroundLayerContextMenu;
|
|
474
|
+
},
|
|
475
|
+
get onCommitBackgroundMove() {
|
|
476
|
+
return e.onCommitBackgroundMove;
|
|
477
|
+
},
|
|
478
|
+
get onCommitBackgroundResize() {
|
|
479
|
+
return e.onCommitBackgroundResize;
|
|
480
|
+
},
|
|
481
|
+
get onUpdateBackgroundLayer() {
|
|
482
|
+
return e.onUpdateBackgroundLayer;
|
|
483
|
+
},
|
|
484
|
+
get onDeleteBackgroundLayer() {
|
|
485
|
+
return e.onDeleteBackgroundLayer;
|
|
486
|
+
},
|
|
294
487
|
get onViewportCommit() {
|
|
295
488
|
return e.onViewportCommit;
|
|
296
489
|
},
|
|
@@ -314,9 +507,15 @@ function A(e) {
|
|
|
314
507
|
}
|
|
315
508
|
});
|
|
316
509
|
}
|
|
317
|
-
}), null),
|
|
510
|
+
}), null), R((i) => {
|
|
511
|
+
var d = !!e.locked, m = !!u();
|
|
512
|
+
return d !== i.e && n.classList.toggle("is-locked", i.e = d), m !== i.t && n.classList.toggle("is-background-mode", i.t = m), i;
|
|
513
|
+
}, {
|
|
514
|
+
e: void 0,
|
|
515
|
+
t: void 0
|
|
516
|
+
}), n;
|
|
318
517
|
})();
|
|
319
518
|
}
|
|
320
519
|
export {
|
|
321
|
-
|
|
520
|
+
Q as WorkbenchCanvas
|
|
322
521
|
};
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { type ResolvedWorkbenchInteractionAdapter } from './workbenchInteractionAdapter';
|
|
2
|
-
import type
|
|
2
|
+
import { type WorkbenchWidgetItem, type WorkbenchAnnotationItem, type WorkbenchBackgroundLayer, type WorkbenchInteractionAdapter, type WorkbenchSelection, type WorkbenchStickyNoteItem, type WorkbenchTextAnnotationPatch, type WorkbenchViewport, type WorkbenchWidgetDefinition } from './types';
|
|
3
3
|
export interface WorkbenchCanvasFieldProps {
|
|
4
4
|
widgetDefinitions: readonly WorkbenchWidgetDefinition[];
|
|
5
5
|
widgets: readonly WorkbenchWidgetItem[];
|
|
6
|
+
stickyNotes?: readonly WorkbenchStickyNoteItem[];
|
|
7
|
+
annotations?: readonly WorkbenchAnnotationItem[];
|
|
8
|
+
backgroundLayers?: readonly WorkbenchBackgroundLayer[];
|
|
6
9
|
viewport: WorkbenchViewport;
|
|
10
|
+
selectedObject?: WorkbenchSelection | null;
|
|
7
11
|
selectedWidgetId: string | null;
|
|
8
12
|
optimisticFrontWidgetId: string | null;
|
|
13
|
+
workLayerLocked?: boolean;
|
|
14
|
+
annotationLayerEditable?: boolean;
|
|
15
|
+
backgroundLayerEditable?: boolean;
|
|
9
16
|
viewportScale: number;
|
|
10
17
|
locked: boolean;
|
|
11
|
-
filters: Record<
|
|
18
|
+
filters: Record<string, boolean>;
|
|
12
19
|
interactionAdapter?: WorkbenchInteractionAdapter | ResolvedWorkbenchInteractionAdapter;
|
|
13
20
|
onSelectWidget: (widgetId: string) => void;
|
|
14
21
|
onWidgetContextMenu: (event: MouseEvent, item: WorkbenchWidgetItem) => void;
|
|
@@ -22,6 +29,44 @@ export interface WorkbenchCanvasFieldProps {
|
|
|
22
29
|
width: number;
|
|
23
30
|
height: number;
|
|
24
31
|
}) => void;
|
|
32
|
+
onSelectStickyNote?: (noteId: string) => void;
|
|
33
|
+
onStickyNoteContextMenu?: (event: MouseEvent, item: WorkbenchStickyNoteItem) => void;
|
|
34
|
+
onStartStickyOptimisticFront?: (noteId: string) => void;
|
|
35
|
+
onCommitStickyFront?: (noteId: string) => void;
|
|
36
|
+
onCommitStickyMove?: (noteId: string, position: {
|
|
37
|
+
x: number;
|
|
38
|
+
y: number;
|
|
39
|
+
}) => void;
|
|
40
|
+
onCommitStickyResize?: (noteId: string, size: {
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
}) => void;
|
|
44
|
+
onUpdateStickyNote?: (noteId: string, patch: Partial<Pick<WorkbenchStickyNoteItem, 'body' | 'color'>>) => void;
|
|
45
|
+
onDeleteStickyNote?: (noteId: string) => void;
|
|
46
|
+
onSelectAnnotation?: (annotationId: string) => void;
|
|
47
|
+
onAnnotationContextMenu?: (event: MouseEvent, item: WorkbenchAnnotationItem) => void;
|
|
48
|
+
onCommitAnnotationMove?: (annotationId: string, position: {
|
|
49
|
+
x: number;
|
|
50
|
+
y: number;
|
|
51
|
+
}) => void;
|
|
52
|
+
onCommitAnnotationResize?: (annotationId: string, size: {
|
|
53
|
+
width: number;
|
|
54
|
+
height: number;
|
|
55
|
+
}) => void;
|
|
56
|
+
onUpdateTextAnnotation?: (annotationId: string, patch: WorkbenchTextAnnotationPatch) => void;
|
|
57
|
+
onDeleteAnnotation?: (annotationId: string) => void;
|
|
58
|
+
onSelectBackgroundLayer?: (layerId: string) => void;
|
|
59
|
+
onBackgroundLayerContextMenu?: (event: MouseEvent, item: WorkbenchBackgroundLayer) => void;
|
|
60
|
+
onCommitBackgroundMove?: (layerId: string, position: {
|
|
61
|
+
x: number;
|
|
62
|
+
y: number;
|
|
63
|
+
}) => void;
|
|
64
|
+
onCommitBackgroundResize?: (layerId: string, size: {
|
|
65
|
+
width: number;
|
|
66
|
+
height: number;
|
|
67
|
+
}) => void;
|
|
68
|
+
onUpdateBackgroundLayer?: (layerId: string, patch: Partial<Pick<WorkbenchBackgroundLayer, 'fill' | 'opacity' | 'material' | 'name'>>) => void;
|
|
69
|
+
onDeleteBackgroundLayer?: (layerId: string) => void;
|
|
25
70
|
onViewportCommit: (viewport: WorkbenchViewport) => void;
|
|
26
71
|
onViewportInteractionStart?: (kind: 'pan') => void;
|
|
27
72
|
onRequestOverview: (item: WorkbenchWidgetItem) => void;
|