@dxos/plugin-space 0.8.3-main.672df60 → 0.8.3-main.7f5a14c
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/lib/browser/{app-graph-builder-DCWUULKX.mjs → app-graph-builder-UNXUTH53.mjs} +11 -10
- package/dist/lib/browser/app-graph-builder-UNXUTH53.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-MLU7XI2P.mjs → app-graph-serializer-KPKPMC4M.mjs} +6 -6
- package/dist/lib/browser/app-graph-serializer-KPKPMC4M.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZQEIXWBK.mjs → chunk-CF4FBDGP.mjs} +26 -24
- package/dist/lib/browser/chunk-CF4FBDGP.mjs.map +7 -0
- package/dist/lib/browser/{chunk-W46VVHFM.mjs → chunk-LGEIVEYC.mjs} +8 -7
- package/dist/lib/browser/chunk-LGEIVEYC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-N5QMRLKI.mjs → chunk-RRJIDXPY.mjs} +18 -18
- package/dist/lib/browser/chunk-RRJIDXPY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VEBKN45O.mjs → chunk-TQPBDRXV.mjs} +2 -2
- package/dist/lib/browser/{identity-created-O63SIYOF.mjs → identity-created-EM6GZDNF.mjs} +4 -4
- package/dist/lib/browser/identity-created-EM6GZDNF.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +7 -7
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-PG473BRV.mjs → intent-resolver-K3ULKQ6V.mjs} +25 -28
- package/dist/lib/browser/intent-resolver-K3ULKQ6V.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-FRDC4UXB.mjs → react-root-ECO7G77L.mjs} +4 -4
- package/dist/lib/browser/{react-surface-QOP7T66K.mjs → react-surface-Y5AZBYA7.mjs} +12 -12
- package/dist/lib/browser/react-surface-Y5AZBYA7.mjs.map +7 -0
- package/dist/lib/browser/{schema-tools-JIEMHUXV.mjs → schema-tools-ILTVSSS3.mjs} +7 -6
- package/dist/lib/browser/schema-tools-ILTVSSS3.mjs.map +7 -0
- package/dist/lib/browser/{settings-2IN2WLUK.mjs → settings-MU7O6JDD.mjs} +4 -4
- package/dist/lib/browser/settings-MU7O6JDD.mjs.map +7 -0
- package/dist/lib/browser/{spaces-ready-L4QAGTDE.mjs → spaces-ready-NXZAWHGI.mjs} +9 -10
- package/dist/lib/browser/spaces-ready-NXZAWHGI.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{app-graph-builder-WC445X77.cjs → app-graph-builder-6QDQEYHS.cjs} +38 -37
- package/dist/lib/node/app-graph-builder-6QDQEYHS.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-UPQOQVMJ.cjs → app-graph-serializer-6SWKHDE2.cjs} +21 -21
- package/dist/lib/node/app-graph-serializer-6SWKHDE2.cjs.map +7 -0
- package/dist/lib/node/{chunk-COQYISES.cjs → chunk-KDBPQ6L3.cjs} +54 -54
- package/dist/lib/node/chunk-KDBPQ6L3.cjs.map +7 -0
- package/dist/lib/node/{chunk-USFHJG7C.cjs → chunk-QCANR24R.cjs} +67 -65
- package/dist/lib/node/chunk-QCANR24R.cjs.map +7 -0
- package/dist/lib/node/{chunk-DXL5TDFP.cjs → chunk-SF3NU7EW.cjs} +6 -6
- package/dist/lib/node/{chunk-FXHI7JNY.cjs → chunk-UUBPYP7E.cjs} +33 -32
- package/dist/lib/node/chunk-UUBPYP7E.cjs.map +7 -0
- package/dist/lib/node/{identity-created-UXEAUGC7.cjs → identity-created-KCJAOFZC.cjs} +7 -7
- package/dist/lib/node/identity-created-KCJAOFZC.cjs.map +7 -0
- package/dist/lib/node/index.cjs +61 -61
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-VPVZSSIL.cjs → intent-resolver-XR4S7LME.cjs} +65 -68
- package/dist/lib/node/intent-resolver-XR4S7LME.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-JXLRINF3.cjs → react-root-Z2YM6JYC.cjs} +8 -8
- package/dist/lib/node/{react-surface-ZIYDBL3C.cjs → react-surface-H6XNU6DS.cjs} +56 -56
- package/dist/lib/node/react-surface-H6XNU6DS.cjs.map +7 -0
- package/dist/lib/node/{schema-tools-ZG6Z2QRC.cjs → schema-tools-IYREN4IH.cjs} +9 -8
- package/dist/lib/node/schema-tools-IYREN4IH.cjs.map +7 -0
- package/dist/lib/node/{settings-FOH7EB5C.cjs → settings-XRAT3YMN.cjs} +7 -7
- package/dist/lib/node/settings-XRAT3YMN.cjs.map +7 -0
- package/dist/lib/node/{spaces-ready-VXQYCBII.cjs → spaces-ready-KKFEN2MM.cjs} +22 -23
- package/dist/lib/node/spaces-ready-KKFEN2MM.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +12 -12
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{app-graph-builder-E7CCGPQJ.mjs → app-graph-builder-5EAV4CDH.mjs} +11 -10
- package/dist/lib/node-esm/app-graph-builder-5EAV4CDH.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-UCMSLPIA.mjs → app-graph-serializer-BRLVJW6I.mjs} +6 -6
- package/dist/lib/node-esm/app-graph-serializer-BRLVJW6I.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FTELJGEG.mjs → chunk-226REPOB.mjs} +8 -7
- package/dist/lib/node-esm/chunk-226REPOB.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OSPEGYX3.mjs → chunk-55OOAFBS.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-BE2BLE7K.mjs → chunk-AVONUBZO.mjs} +26 -24
- package/dist/lib/node-esm/chunk-AVONUBZO.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-XAZNQ3QN.mjs → chunk-FTL5AMXF.mjs} +18 -18
- package/dist/lib/node-esm/chunk-FTL5AMXF.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-ZECO4NH3.mjs → identity-created-FOFH2WPI.mjs} +4 -4
- package/dist/lib/node-esm/identity-created-FOFH2WPI.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +7 -7
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-SK5LP5ZK.mjs → intent-resolver-72KTB4S2.mjs} +25 -28
- package/dist/lib/node-esm/intent-resolver-72KTB4S2.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-K2KRGIT7.mjs → react-root-FU2I5U2M.mjs} +4 -4
- package/dist/lib/node-esm/{react-surface-XNUWZCSH.mjs → react-surface-L4SMKRYF.mjs} +12 -12
- package/dist/lib/node-esm/react-surface-L4SMKRYF.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-tools-2Y4D42PD.mjs → schema-tools-SRLCRZ3B.mjs} +7 -6
- package/dist/lib/node-esm/schema-tools-SRLCRZ3B.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-Q4XDFSYD.mjs → settings-C7GQAEDU.mjs} +4 -4
- package/dist/lib/node-esm/settings-C7GQAEDU.mjs.map +7 -0
- package/dist/lib/node-esm/{spaces-ready-JHKPD4PH.mjs → spaces-ready-WTISHKEH.mjs} +9 -10
- package/dist/lib/node-esm/spaces-ready-WTISHKEH.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/MenuFooter.d.ts +2 -2
- package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +2 -2
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SchemaContainer.d.ts +2 -2
- package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.d.ts +2 -2
- package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/types/collection.d.ts +5 -5
- package/dist/types/src/types/collection.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +5 -4
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +10 -10
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +45 -45
- package/src/SpacePlugin.tsx +4 -4
- package/src/capabilities/app-graph-builder.ts +8 -17
- package/src/capabilities/app-graph-serializer.ts +3 -3
- package/src/capabilities/identity-created.ts +2 -2
- package/src/capabilities/intent-resolver.ts +30 -26
- package/src/capabilities/react-surface.tsx +10 -22
- package/src/capabilities/schema-tools.ts +3 -2
- package/src/capabilities/settings.ts +6 -2
- package/src/capabilities/spaces-ready.ts +5 -6
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +3 -2
- package/src/components/CreateDialog/CreateObjectDialog.tsx +9 -16
- package/src/components/CreateDialog/CreateObjectPanel.tsx +3 -2
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +1 -1
- package/src/components/MenuFooter.tsx +3 -2
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -4
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +5 -4
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -3
- package/src/components/SchemaContainer.tsx +3 -3
- package/src/components/SpacePresence.tsx +22 -15
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +2 -1
- package/src/types/collection.ts +13 -4
- package/src/types/types.ts +5 -4
- package/src/util.tsx +26 -35
- package/dist/lib/browser/app-graph-builder-DCWUULKX.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-MLU7XI2P.mjs.map +0 -7
- package/dist/lib/browser/chunk-N5QMRLKI.mjs.map +0 -7
- package/dist/lib/browser/chunk-W46VVHFM.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZQEIXWBK.mjs.map +0 -7
- package/dist/lib/browser/identity-created-O63SIYOF.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-PG473BRV.mjs.map +0 -7
- package/dist/lib/browser/react-surface-QOP7T66K.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-JIEMHUXV.mjs.map +0 -7
- package/dist/lib/browser/settings-2IN2WLUK.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-L4QAGTDE.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-WC445X77.cjs.map +0 -7
- package/dist/lib/node/app-graph-serializer-UPQOQVMJ.cjs.map +0 -7
- package/dist/lib/node/chunk-COQYISES.cjs.map +0 -7
- package/dist/lib/node/chunk-FXHI7JNY.cjs.map +0 -7
- package/dist/lib/node/chunk-USFHJG7C.cjs.map +0 -7
- package/dist/lib/node/identity-created-UXEAUGC7.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-VPVZSSIL.cjs.map +0 -7
- package/dist/lib/node/react-surface-ZIYDBL3C.cjs.map +0 -7
- package/dist/lib/node/schema-tools-ZG6Z2QRC.cjs.map +0 -7
- package/dist/lib/node/settings-FOH7EB5C.cjs.map +0 -7
- package/dist/lib/node/spaces-ready-VXQYCBII.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-E7CCGPQJ.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-UCMSLPIA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BE2BLE7K.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FTELJGEG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XAZNQ3QN.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-ZECO4NH3.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-SK5LP5ZK.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-XNUWZCSH.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-2Y4D42PD.mjs.map +0 -7
- package/dist/lib/node-esm/settings-Q4XDFSYD.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-JHKPD4PH.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-VEBKN45O.mjs.map → chunk-TQPBDRXV.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-FRDC4UXB.mjs.map → react-root-ECO7G77L.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-DXL5TDFP.cjs.map → chunk-SF3NU7EW.cjs.map} +0 -0
- /package/dist/lib/node/{react-root-JXLRINF3.cjs.map → react-root-Z2YM6JYC.cjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-OSPEGYX3.mjs.map → chunk-55OOAFBS.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-K2KRGIT7.mjs.map → react-root-FU2I5U2M.mjs.map} +0 -0
package/src/util.tsx
CHANGED
|
@@ -5,10 +5,9 @@
|
|
|
5
5
|
import { Rx } from '@effect-rx/rx-react';
|
|
6
6
|
|
|
7
7
|
import { createIntent, LayoutAction, type PromiseIntentDispatcher } from '@dxos/app-framework';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { Obj, Ref, Type } from '@dxos/echo';
|
|
9
|
+
import { EXPANDO_TYPENAME } from '@dxos/echo-schema';
|
|
10
10
|
import { invariant } from '@dxos/invariant';
|
|
11
|
-
import { makeRef } from '@dxos/live-object';
|
|
12
11
|
import { Migrations } from '@dxos/migrations';
|
|
13
12
|
import {
|
|
14
13
|
ACTION_GROUP_TYPE,
|
|
@@ -19,15 +18,7 @@ import {
|
|
|
19
18
|
type Node,
|
|
20
19
|
type NodeArg,
|
|
21
20
|
} from '@dxos/plugin-graph';
|
|
22
|
-
import {
|
|
23
|
-
fullyQualifiedId,
|
|
24
|
-
getSpace,
|
|
25
|
-
isEchoObject,
|
|
26
|
-
type QueryResult,
|
|
27
|
-
SpaceState,
|
|
28
|
-
type AnyLiveObject,
|
|
29
|
-
type Space,
|
|
30
|
-
} from '@dxos/react-client/echo';
|
|
21
|
+
import { fullyQualifiedId, getSpace, type QueryResult, SpaceState, type Space } from '@dxos/react-client/echo';
|
|
31
22
|
import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
|
|
32
23
|
|
|
33
24
|
import { SPACE_PLUGIN } from './meta';
|
|
@@ -41,14 +32,13 @@ export const SHARED = 'shared-spaces';
|
|
|
41
32
|
/**
|
|
42
33
|
* Convert a query result to an Rx value of the objects.
|
|
43
34
|
*/
|
|
44
|
-
export const rxFromQuery = <T extends
|
|
35
|
+
export const rxFromQuery = <T extends Obj.Any>(query: QueryResult<T>): Rx.Rx<T[]> => {
|
|
45
36
|
return Rx.make((get) => {
|
|
46
37
|
const unsubscribe = query.subscribe((result) => {
|
|
47
38
|
get.setSelf(result.objects);
|
|
48
39
|
});
|
|
49
40
|
|
|
50
41
|
get.addFinalizer(() => unsubscribe());
|
|
51
|
-
|
|
52
42
|
return query.objects;
|
|
53
43
|
});
|
|
54
44
|
};
|
|
@@ -84,9 +74,9 @@ const getCollectionGraphNodePartials = ({
|
|
|
84
74
|
role: 'branch',
|
|
85
75
|
onRearrangeChildren: (nextOrder: unknown[]) => {
|
|
86
76
|
// Change on disk.
|
|
87
|
-
collection.objects = nextOrder.filter(
|
|
77
|
+
collection.objects = nextOrder.filter(Obj.isObject).map(Ref.make);
|
|
88
78
|
},
|
|
89
|
-
onTransferStart: (child: Node<
|
|
79
|
+
onTransferStart: (child: Node<Obj.Any>, index?: number) => {
|
|
90
80
|
// TODO(wittjosiah): Support transfer between spaces.
|
|
91
81
|
// const childSpace = getSpace(child.data);
|
|
92
82
|
// if (space && childSpace && !childSpace.key.equals(space.key)) {
|
|
@@ -107,15 +97,15 @@ const getCollectionGraphNodePartials = ({
|
|
|
107
97
|
// TODO(dmaretskyi): Compare by id.
|
|
108
98
|
if (!collection.objects.find((object) => object.target === child.data)) {
|
|
109
99
|
if (typeof index !== 'undefined') {
|
|
110
|
-
collection.objects.splice(index, 0,
|
|
100
|
+
collection.objects.splice(index, 0, Ref.make(child.data));
|
|
111
101
|
} else {
|
|
112
|
-
collection.objects.push(
|
|
102
|
+
collection.objects.push(Ref.make(child.data));
|
|
113
103
|
}
|
|
114
104
|
}
|
|
115
105
|
|
|
116
106
|
// }
|
|
117
107
|
},
|
|
118
|
-
onTransferEnd: (child: Node<
|
|
108
|
+
onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {
|
|
119
109
|
// Remove child from origin collection.
|
|
120
110
|
const index = collection.objects.findIndex((object) => object.target === child.data);
|
|
121
111
|
if (index > -1) {
|
|
@@ -131,14 +121,14 @@ const getCollectionGraphNodePartials = ({
|
|
|
131
121
|
// childSpace.db.remove(child.data);
|
|
132
122
|
// }
|
|
133
123
|
},
|
|
134
|
-
onCopy: async (child: Node<
|
|
124
|
+
onCopy: async (child: Node<Obj.Any>, index?: number) => {
|
|
135
125
|
// Create clone of child and add to destination space.
|
|
136
126
|
const newObject = await cloneObject(child.data, resolve, space);
|
|
137
127
|
space.db.add(newObject);
|
|
138
128
|
if (typeof index !== 'undefined') {
|
|
139
|
-
collection.objects.splice(index, 0,
|
|
129
|
+
collection.objects.splice(index, 0, Ref.make(newObject));
|
|
140
130
|
} else {
|
|
141
|
-
collection.objects.push(
|
|
131
|
+
collection.objects.push(Ref.make(newObject));
|
|
142
132
|
}
|
|
143
133
|
},
|
|
144
134
|
};
|
|
@@ -305,17 +295,17 @@ export const constructSpaceActions = ({
|
|
|
305
295
|
};
|
|
306
296
|
|
|
307
297
|
export const createObjectNode = ({
|
|
308
|
-
object,
|
|
309
298
|
space,
|
|
299
|
+
object,
|
|
310
300
|
navigable = false,
|
|
311
301
|
resolve,
|
|
312
302
|
}: {
|
|
313
|
-
object: AnyLiveObject<any>;
|
|
314
303
|
space: Space;
|
|
304
|
+
object: Obj.Any;
|
|
315
305
|
navigable?: boolean;
|
|
316
306
|
resolve: (typename: string) => Record<string, any>;
|
|
317
307
|
}) => {
|
|
318
|
-
const type = getTypename(object);
|
|
308
|
+
const type = Obj.getTypename(object);
|
|
319
309
|
if (!type) {
|
|
320
310
|
return undefined;
|
|
321
311
|
}
|
|
@@ -337,8 +327,9 @@ export const createObjectNode = ({
|
|
|
337
327
|
data: object,
|
|
338
328
|
properties: {
|
|
339
329
|
...partials,
|
|
330
|
+
// TODO(burdon): Use annotation to get the name field.
|
|
340
331
|
label: metadata.label?.(object) ||
|
|
341
|
-
object.name || ['object name placeholder', { ns: type, default: 'New object' }],
|
|
332
|
+
(object as any).name || ['object name placeholder', { ns: type, default: 'New object' }],
|
|
342
333
|
icon: metadata.icon ?? 'ph--placeholder--regular',
|
|
343
334
|
testId: 'spacePlugin.object',
|
|
344
335
|
persistenceClass: 'echo',
|
|
@@ -353,7 +344,7 @@ export const constructObjectActions = ({
|
|
|
353
344
|
dispatch,
|
|
354
345
|
navigable = false,
|
|
355
346
|
}: {
|
|
356
|
-
object:
|
|
347
|
+
object: Obj.Any;
|
|
357
348
|
graph: ReadableGraph;
|
|
358
349
|
dispatch: PromiseIntentDispatcher;
|
|
359
350
|
navigable?: boolean;
|
|
@@ -456,10 +447,10 @@ export const constructObjectActions = ({
|
|
|
456
447
|
* @deprecated This is a temporary solution.
|
|
457
448
|
*/
|
|
458
449
|
export const getNestedObjects = async (
|
|
459
|
-
object:
|
|
450
|
+
object: Obj.Any,
|
|
460
451
|
resolve: (typename: string) => Record<string, any>,
|
|
461
|
-
): Promise<
|
|
462
|
-
const type = getTypename(object);
|
|
452
|
+
): Promise<Obj.Any[]> => {
|
|
453
|
+
const type = Obj.getTypename(object);
|
|
463
454
|
if (!type) {
|
|
464
455
|
return [];
|
|
465
456
|
}
|
|
@@ -470,7 +461,7 @@ export const getNestedObjects = async (
|
|
|
470
461
|
return [];
|
|
471
462
|
}
|
|
472
463
|
|
|
473
|
-
const objects:
|
|
464
|
+
const objects: Obj.Any[] = await loadReferences(object);
|
|
474
465
|
const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));
|
|
475
466
|
return [...objects, ...nested.flat()];
|
|
476
467
|
};
|
|
@@ -480,12 +471,12 @@ export const getNestedObjects = async (
|
|
|
480
471
|
*/
|
|
481
472
|
// TODO(burdon): Remove.
|
|
482
473
|
export const cloneObject = async (
|
|
483
|
-
object: Expando,
|
|
474
|
+
object: Type.Expando,
|
|
484
475
|
resolve: (typename: string) => Record<string, any>,
|
|
485
476
|
newSpace: Space,
|
|
486
|
-
): Promise<Expando> => {
|
|
487
|
-
const schema = getSchema(object);
|
|
488
|
-
const typename = schema ?
|
|
477
|
+
): Promise<Type.Expando> => {
|
|
478
|
+
const schema = Obj.getSchema(object);
|
|
479
|
+
const typename = schema ? Type.getTypename(schema) ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;
|
|
489
480
|
const metadata = resolve(typename);
|
|
490
481
|
const serializer = metadata.serializer;
|
|
491
482
|
invariant(serializer, `No serializer for type: ${typename}`);
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Array, Option, pipe } from 'effect';\n\nimport { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';\nimport {\n Expando,\n Filter,\n getSpace,\n isEchoObject,\n SpaceState,\n type Space,\n isSpace,\n type QueryResult,\n} from '@dxos/client/echo';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport { createExtension, rxFromObservable, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { getActiveSpace } from '../hooks';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, SPACE_TYPE, SpaceAction, type SpaceSettingsProps } from '../types';\nimport {\n constructObjectActions,\n constructSpaceActions,\n constructSpaceNode,\n createObjectNode,\n rxFromQuery,\n SHARED,\n SPACES,\n} from '../util';\n\nexport default (context: PluginContext) => {\n const resolve = (typename: string) =>\n context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n const spacesNode = {\n id: SPACES,\n type: SPACES,\n cacheable: ['label', 'role'],\n properties: {\n label: ['spaces label', { ns: SPACE_PLUGIN }],\n icon: 'ph--planet--regular',\n testId: 'spacePlugin.spaces',\n role: 'branch',\n disposition: 'collection',\n disabled: true,\n childrenPersistenceClass: 'echo',\n onRearrangeChildren: async (nextOrder: Space[]) => {\n const { graph } = context.getCapability(Capabilities.AppGraph);\n const client = context.getCapability(ClientCapabilities.Client);\n\n // NOTE: This is needed to ensure order is updated by next animation frame.\n // TODO(wittjosiah): Is there a better way to do this?\n // If not, graph should be passed as an argument to the extension.\n graph.sortEdges(\n SPACES,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n const {\n objects: [spacesOrder],\n } = await client.spaces.default.db.query(Filter.type(Expando, { key: SHARED })).run();\n if (spacesOrder) {\n spacesOrder.order = nextOrder.map(({ id }) => id);\n } else {\n log.warn('spaces order object not found');\n }\n },\n },\n };\n\n return contributes(Capabilities.AppGraphBuilder, [\n // Primary actions.\n createExtension({\n id: `${SPACE_PLUGIN}/primary-actions`,\n position: 'hoist',\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: SpaceAction.OpenCreateSpace._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.OpenCreateSpace));\n },\n properties: {\n label: ['create space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.createSpace',\n disposition: 'menu',\n },\n },\n {\n id: SpaceAction.Join._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.Join));\n },\n properties: {\n label: ['join space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sign-in--regular',\n testId: 'spacePlugin.joinSpace',\n disposition: 'menu',\n },\n },\n {\n id: SpaceAction.OpenMembers._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const space = getActiveSpace(context) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenMembers, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: SpaceAction.OpenSettings._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const space = getActiveSpace(context) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open current space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n keyBinding: {\n macos: 'meta+shift+,',\n windows: 'ctrl+shift+,',\n },\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create spaces group node.\n createExtension({\n id: `${SPACE_PLUGIN}/root`,\n position: 'hoist',\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [spacesNode]),\n Option.getOrElse(() => []),\n ),\n ),\n // resolver: ({ id }) => (id === SPACES ? spacesNode : undefined),\n }),\n\n // Create space nodes.\n createExtension({\n id: SPACES,\n connector: (node) => {\n let query: QueryResult<Expando> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === SPACES ? Option.some(node) : Option.none())),\n Option.map(() => {\n const state = context.getCapability(SpaceCapabilities.State);\n const client = context.getCapability(ClientCapabilities.Client);\n const spacesRx = rxFromObservable(client.spaces);\n const isReadyRx = rxFromObservable(client.spaces.isReady);\n\n const spaces = get(spacesRx);\n const isReady = get(isReadyRx);\n\n if (!spaces || !isReady) {\n return [];\n }\n\n const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore<SpaceSettingsProps>(\n SPACE_PLUGIN,\n )?.value;\n\n // TODO(wittjosiah): During client reset, accessing default space throws.\n try {\n if (!query) {\n query = client.spaces.default.db.query(Filter.type(Expando, { key: SHARED }));\n }\n const [spacesOrder] = get(rxFromQuery(query));\n return get(\n rxFromSignal(() => {\n const order: string[] = spacesOrder?.order ?? [];\n const orderMap = new Map(order.map((id, index) => [id, index]));\n return [\n ...spaces\n .filter((space) => orderMap.has(space.id))\n .sort((a, b) => orderMap.get(a.id)! - orderMap.get(b.id)!),\n ...spaces.filter((space) => !orderMap.has(space.id)),\n ]\n .filter((space) =>\n settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE,\n )\n .map((space) =>\n constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n }),\n );\n }),\n );\n } catch {\n return [];\n }\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n // resolver: ({ id }) => {\n // if (id.length !== SPACE_ID_LENGTH) {\n // return;\n // }\n\n // const client = context.requestCapability(ClientCapabilities.Client);\n // const spaces = toSignal(\n // (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n // () => client.spaces.get(),\n // );\n\n // const isReady = toSignal(\n // (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n // () => client.spaces.isReady.get(),\n // );\n\n // if (!spaces || !isReady) {\n // return;\n // }\n\n // const space = spaces.find((space) => space.id === id);\n // if (!space) {\n // return;\n // }\n\n // if (space.state.get() === SpaceState.SPACE_INACTIVE) {\n // return false;\n // } else if (space.state.get() !== SpaceState.SPACE_READY) {\n // return undefined;\n // } else {\n // const state = context.requestCapability(SpaceCapabilities.State);\n // return constructSpaceNode({\n // space,\n // navigable: state.navigableCollections,\n // personal: space === client.spaces.default,\n // namesCache: state.spaceNames,\n // resolve,\n // });\n // }\n // },\n }),\n\n // Create space actions.\n createExtension({\n id: `${SPACE_PLUGIN}/actions`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.flatMap((space) => {\n const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));\n const [client] = get(context.capabilities(ClientCapabilities.Client));\n const [state] = get(context.capabilities(SpaceCapabilities.State));\n\n if (!dispatcher || !client || !state) {\n return Option.none();\n } else {\n return Option.some({\n space,\n dispatch: dispatcher.dispatchPromise,\n personal: space === client.spaces.default,\n migrating: state.sdkMigrationRunning[space.id],\n });\n }\n }),\n Option.map((params) => constructSpaceActions(params)),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create nodes for objects in the root collection of a space.\n createExtension({\n id: `${SPACE_PLUGIN}/root-collection`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((space) => {\n const state = context.getCapability(SpaceCapabilities.State);\n\n const spaceState = get(rxFromObservable(space.state));\n if (spaceState !== SpaceState.SPACE_READY) {\n return [];\n }\n\n const collection = get(\n rxFromSignal(() => space.properties[CollectionType.typename]?.target as CollectionType | undefined),\n );\n if (!collection) {\n return [];\n }\n\n return get(\n rxFromSignal(() =>\n pipe(\n collection.objects,\n Array.map((object) => object.target),\n Array.filter(isNonNullable),\n Array.map((object) =>\n createObjectNode({\n object,\n space,\n resolve,\n navigable: state.navigableCollections,\n }),\n ),\n Array.filter(isNonNullable),\n ),\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create nodes for objects in a collection or by its fully qualified id.\n createExtension({\n id: `${SPACE_PLUGIN}/objects`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.data instanceof CollectionType ? Option.some(node.data) : Option.none())),\n Option.map((collection) => {\n const state = context.getCapability(SpaceCapabilities.State);\n const space = getSpace(collection);\n\n return get(\n rxFromSignal(() =>\n pipe(\n collection.objects,\n Array.map((object) => object.target),\n Array.filter(isNonNullable),\n Array.map(\n (object) =>\n space && createObjectNode({ object, space, resolve, navigable: state.navigableCollections }),\n ),\n Array.filter(isNonNullable),\n ),\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n // resolver: ({ id }) => {\n // if (id.length !== FQ_ID_LENGTH) {\n // return;\n // }\n\n // const [spaceId, objectId] = id.split(':');\n // if (spaceId.length !== SPACE_ID_LENGTH && objectId.length !== OBJECT_ID_LENGTH) {\n // return;\n // }\n\n // const client = context.requestCapability(ClientCapabilities.Client);\n // const space = client.spaces.get().find((space) => space.id === spaceId);\n // if (!space) {\n // return;\n // }\n\n // const spaceState = toSignal(\n // (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n // () => space.state.get(),\n // space.id,\n // );\n // if (spaceState !== SpaceState.SPACE_READY) {\n // return;\n // }\n\n // const [object] = memoizeQuery(space, Query.select(Filter.ids(objectId)));\n // if (!object) {\n // return;\n // }\n\n // if (isDeleted(object)) {\n // return false;\n // } else {\n // const state = context.requestCapability(SpaceCapabilities.State);\n // return createObjectNode({ object, space, resolve, navigable: state.navigableCollections });\n // }\n // },\n }),\n\n // Create collection actions and action groups.\n createExtension({\n id: `${SPACE_PLUGIN}/object-actions`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (isEchoObject(node.data) ? Option.some(node.data) : Option.none())),\n Option.flatMap((object) => {\n const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));\n const [appGraph] = get(context.capabilities(Capabilities.AppGraph));\n const [state] = get(context.capabilities(SpaceCapabilities.State));\n\n if (!dispatcher || !appGraph || !state) {\n return Option.none();\n } else {\n return Option.some({\n object,\n graph: appGraph.graph,\n dispatch: dispatcher.dispatchPromise,\n navigable: get(rxFromSignal(() => state.navigableCollections)),\n });\n }\n }),\n Option.map((params) => constructObjectActions(params)),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Object settings plank companion.\n createExtension({\n id: `${SPACE_PLUGIN}/settings`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (isEchoObject(node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'settings'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'settings',\n properties: {\n label: ['object settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n disposition: 'hidden',\n position: 'fallback',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Rx", "Array", "Option", "pipe", "Capabilities", "contributes", "createIntent", "Expando", "Filter", "getSpace", "isEchoObject", "SpaceState", "isSpace", "log", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "createExtension", "rxFromObservable", "ROOT_ID", "rxFromSignal", "isNonNullable", "context", "resolve", "typename", "getCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "SPACE_PLUGIN", "icon", "testId", "role", "disposition", "disabled", "childrenPersistenceClass", "onRearrangeChildren", "nextOrder", "graph", "getCapability", "AppGraph", "client", "ClientCapabilities", "Client", "sortEdges", "map", "objects", "spacesOrder", "spaces", "default", "db", "query", "Filter", "Expando", "key", "SHARED", "run", "order", "log", "warn", "contributes", "AppGraphBuilder", "createExtension", "position", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "SpaceAction", "OpenCreateSpace", "_tag", "data", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "Join", "OpenMembers", "space", "getActiveSpace", "keyBinding", "macos", "windows", "OpenSettings", "getOrElse", "connector", "state", "SpaceCapabilities", "State", "spacesRx", "rxFromObservable", "isReadyRx", "isReady", "settings", "capabilities", "SettingsStore", "getStore", "value", "rxFromQuery", "rxFromSignal", "orderMap", "Map", "index", "filter", "has", "sort", "a", "b", "showHidden", "SpaceState", "SPACE_INACTIVE", "constructSpaceNode", "navigable", "navigableCollections", "personal", "namesCache", "spaceNames", "SPACE_TYPE", "isSpace", "dispatcher", "migrating", "sdkMigrationRunning", "params", "constructSpaceActions", "spaceState", "SPACE_READY", "collection", "CollectionType", "target", "Array", "object", "isNonNullable", "createObjectNode", "getSpace", "isEchoObject", "appGraph", "constructObjectActions", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/app-graph-serializer.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';\nimport { isSpace } from '@dxos/client/echo';\nimport { live } from '@dxos/live-object';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport translations from '../translations';\nimport { CollectionType, SpaceAction, SPACE_TYPE } from '../types';\nimport { SPACES } from '../util';\n\n// https://stackoverflow.com/a/19016910\nconst DIRECTORY_TYPE = 'text/directory';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphSerializer, [\n {\n inputType: SPACES,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'],\n data: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: () => {\n // No-op.\n },\n },\n {\n inputType: SPACE_TYPE,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n data: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data) => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(createIntent(SpaceAction.Create, { name: data.name, edgeReplication: true }));\n return result.data?.space;\n },\n },\n {\n inputType: CollectionType.typename,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.name ?? translations[0]['en-US'][CollectionType.typename]['object name placeholder'],\n data: node.data.name ?? translations[0]['en-US'][CollectionType.typename]['object name placeholder'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const collection =\n ancestors.findLast((ancestor) => ancestor instanceof CollectionType) ??\n space?.properties[CollectionType.typename]?.target;\n if (!space || !collection) {\n return;\n }\n\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(\n createIntent(SpaceAction.AddObject, {\n target: collection,\n object: live(CollectionType, { name: data.name, objects: [], views: {} }),\n }),\n );\n\n return result.data?.object;\n },\n },\n ]);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,oBAAwC;AAC5E,SAASC,eAAe;AACxB,SAASC,YAAY;AAQrB,IAAMC,iBAAiB;AAEvB,IAAA,+BAAe,CAACC,YACdC,YAAYC,aAAaC,oBAAoB;EAC3C;IACEC,WAAWC;IACXC,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA;MAC7CC,MAAMF,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA;MAC7CE,MAAMd;IACR;IACAe,aAAa,MAAA;IAEb;EACF;EACA;IACEV,WAAWW;IACXT,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKI,WAAWP,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EC,MAAMJ,KAAKI,KAAKI,WAAWP,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EE,MAAMd;IACR;IACAe,aAAa,OAAOF,SAAAA;AAClB,YAAM,EAAEK,iBAAiBC,SAAQ,IAAKlB,QAAQmB,cAAcjB,aAAakB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SAASI,aAAaC,YAAYC,QAAQ;QAAEf,MAAMG,KAAKH;QAAMgB,iBAAiB;MAAK,CAAA,CAAA;AACxG,aAAOJ,OAAOT,MAAMc;IACtB;EACF;EACA;IACEtB,WAAWuB,eAAeC;IAC1BtB,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKH,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASiB,eAAeC,QAAQ,EAAE,yBAAA;MAC1EhB,MAAMJ,KAAKI,KAAKH,QAAQC,qBAAa,CAAA,EAAG,OAAA,EAASiB,eAAeC,QAAQ,EAAE,yBAAA;MAC1Ef,MAAMd;IACR;IACAe,aAAa,OAAOF,MAAMiB,cAAAA;AACxB,YAAMH,QAAQG,UAAUC,KAAKC,OAAAA;AAC7B,YAAMC,aACJH,UAAUI,SAAS,CAACC,aAAaA,oBAAoBP,cAAAA,KACrDD,OAAOV,WAAWW,eAAeC,QAAQ,GAAGO;AAC9C,UAAI,CAACT,SAAS,CAACM,YAAY;AACzB;MACF;AAEA,YAAM,EAAEf,iBAAiBC,SAAQ,IAAKlB,QAAQmB,cAAcjB,aAAakB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SACnBI,aAAaC,YAAYa,WAAW;QAClCD,QAAQH;QACRK,QAAQC,KAAKX,gBAAgB;UAAElB,MAAMG,KAAKH;UAAM8B,SAAS,CAAA;UAAIC,OAAO,CAAC;QAAE,CAAA;MACzE,CAAA,CAAA;AAGF,aAAOnB,OAAOT,MAAMyB;IACtB;EACF;CACD;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "createIntent", "isSpace", "live", "DIRECTORY_TYPE", "context", "contributes", "Capabilities", "AppGraphSerializer", "inputType", "SPACES", "outputType", "serialize", "node", "name", "translations", "SPACE_PLUGIN", "data", "type", "deserialize", "SPACE_TYPE", "properties", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "result", "createIntent", "SpaceAction", "Create", "edgeReplication", "space", "CollectionType", "typename", "ancestors", "find", "isSpace", "collection", "findLast", "ancestor", "target", "AddObject", "object", "live", "objects", "views"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/util.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\n\nimport { createIntent, LayoutAction, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { type BaseObject, EXPANDO_TYPENAME, getTypeAnnotation, getTypename, type Expando } from '@dxos/echo-schema';\nimport { getSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n type ReadableGraph,\n type ActionData,\n type InvokeParams,\n type Node,\n type NodeArg,\n} from '@dxos/plugin-graph';\nimport {\n fullyQualifiedId,\n getSpace,\n isEchoObject,\n type QueryResult,\n SpaceState,\n type AnyLiveObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { CollectionType, SpaceAction, SPACE_TYPE } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\n/**\n * Convert a query result to an Rx value of the objects.\n */\nexport const rxFromQuery = <T extends BaseObject>(query: QueryResult<T>): Rx.Rx<T[]> => {\n return Rx.make((get) => {\n const unsubscribe = query.subscribe((result) => {\n get.setSelf(result.objects);\n });\n\n get.addFinalizer(() => unsubscribe());\n\n return query.objects;\n });\n};\n\n// TODO(wittjosiah): Factor out? Expose via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): string | [string, { ns: string }] => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? ['personal space label', { ns: SPACE_PLUGIN }]\n : ['unnamed space label', { ns: SPACE_PLUGIN }];\n};\n\nconst getCollectionGraphNodePartials = ({\n navigable,\n collection,\n space,\n resolve,\n}: {\n navigable: boolean;\n collection: CollectionType;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n onRearrangeChildren: (nextOrder: unknown[]) => {\n // Change on disk.\n collection.objects = nextOrder.filter(isEchoObject).map(makeRef);\n },\n onTransferStart: (child: Node<AnyLiveObject<any>>, index?: number) => {\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // if (space && childSpace && !childSpace.key.equals(space.key)) {\n // // Create clone of child and add to destination space.\n // const newObject = clone(child.data, {\n // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.\n // additional: [\n // child.data.content,\n // ...(child.data.objects ?? []),\n // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),\n // ],\n // });\n // space.db.add(newObject);\n // collection.objects.push(newObject);\n // } else {\n\n // Add child to destination collection.\n // TODO(dmaretskyi): Compare by id.\n if (!collection.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(child.data));\n } else {\n collection.objects.push(makeRef(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<AnyLiveObject<any>>, destination: Node) => {\n // Remove child from origin collection.\n const index = collection.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n collection.objects.splice(index, 1);\n }\n\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // const destinationSpace =\n // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);\n // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {\n // // Mark child as deleted in origin space.\n // childSpace.db.remove(child.data);\n // }\n },\n onCopy: async (child: Node<AnyLiveObject<any>>, index?: number) => {\n // Create clone of child and add to destination space.\n const newObject = await cloneObject(child.data, resolve, space);\n space.db.add(newObject);\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(newObject));\n } else {\n collection.objects.push(makeRef(newObject));\n }\n },\n };\n};\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[CollectionType.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && collection instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection, space, resolve, navigable })\n : {};\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: ['label', 'icon', 'role'],\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n testId: 'spacePlugin.space',\n },\n nodes: [\n {\n id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/settings`,\n data: null,\n properties: {\n label: ['settings panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n disposition: 'alternate-tree',\n },\n nodes: [\n {\n id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/properties`,\n data: `${SPACE_PLUGIN}/properties`,\n properties: {\n label: ['space settings properties label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n position: 'hoist',\n },\n },\n {\n id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/members`,\n data: `${SPACE_PLUGIN}/members`,\n properties: {\n label: ['members panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n position: 'hoist',\n },\n },\n {\n id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/schema`,\n data: `${SPACE_PLUGIN}/schema`,\n properties: {\n label: ['space settings schema label', { ns: SPACE_PLUGIN }],\n icon: 'ph--shapes--regular',\n },\n },\n ],\n },\n ],\n };\n};\n\nexport const constructSpaceActions = ({\n space,\n dispatch,\n personal,\n migrating,\n}: {\n space: Space;\n dispatch: PromiseIntentDispatcher;\n personal?: boolean;\n migrating?: boolean;\n}) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: NodeArg<ActionData>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Migrate._tag),\n type: ACTION_GROUP_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n },\n properties: {\n label: ['migrate space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--database--regular',\n disposition: 'list-item-primary',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n actions.push(\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));\n },\n properties: {\n label: ['create object in space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'item',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceAction.Rename._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.Rename, { space, caller: params?.caller }));\n },\n properties: {\n label: ['rename space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n );\n }\n\n return actions;\n};\n\nexport const createObjectNode = ({\n object,\n space,\n navigable = false,\n resolve,\n}: {\n object: AnyLiveObject<any>;\n space: Space;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = getTypename(object);\n if (!type) {\n return undefined;\n }\n\n const metadata = resolve(type);\n if (Object.keys(metadata).length === 0) {\n return undefined;\n }\n\n const partials =\n object instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection: object, space, resolve, navigable })\n : metadata.graphProps;\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n ...partials,\n label: metadata.label?.(object) ||\n object.name || ['object name placeholder', { ns: type, default: 'New object' }],\n icon: metadata.icon ?? 'ph--placeholder--regular',\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n },\n };\n};\n\nexport const constructObjectActions = ({\n object,\n graph,\n dispatch,\n navigable = false,\n}: {\n object: AnyLiveObject<any>;\n graph: ReadableGraph;\n dispatch: PromiseIntentDispatcher;\n navigable?: boolean;\n}) => {\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n const actions: NodeArg<ActionData>[] = [\n ...(object instanceof CollectionType\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));\n },\n properties: {\n label: ['create object in collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params?.caller }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'rename collection label' : 'rename object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--pencil-simple-line--regular',\n // TODO(wittjosiah): Need's focus.\n keyBinding: {\n macos: 'shift+F6',\n },\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const collection = graph\n .getConnections(fullyQualifiedId(object), 'inbound')\n .find(({ data }) => data instanceof CollectionType)?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'delete collection label' : 'delete object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--trash--regular',\n keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable || !(object instanceof CollectionType)\n ? [\n {\n id: getId('copy-link'),\n type: ACTION_TYPE,\n data: async () => {\n const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;\n await navigator.clipboard.writeText(url);\n },\n properties: {\n label: ['copy link label', { ns: SPACE_PLUGIN }],\n icon: 'ph--link--regular',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutAction.Expose._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));\n },\n properties: {\n label: ['expose object label', { ns: SPACE_PLUGIN }],\n icon: 'ph--eye--regular',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: AnyLiveObject<any>,\n resolve: (typename: string) => Record<string, any>,\n): Promise<AnyLiveObject<any>[]> => {\n const type = getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: AnyLiveObject<any>[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Expando> => {\n const schema = getSchema(object);\n const typename = schema ? getTypeAnnotation(schema)?.typename ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, space: newSpace, newId: true });\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Rx", "createIntent", "LayoutAction", "EXPANDO_TYPENAME", "getTypeAnnotation", "getTypename", "getSchema", "invariant", "makeRef", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "fullyQualifiedId", "getSpace", "isEchoObject", "SpaceState", "ATTENDABLE_PATH_SEPARATOR", "SPACES", "SPACE_PLUGIN", "COMPOSER_SPACE_LOCK", "SHARED", "rxFromQuery", "query", "Rx", "make", "get", "unsubscribe", "subscribe", "result", "setSelf", "objects", "addFinalizer", "getSpaceDisplayName", "space", "personal", "namesCache", "state", "SpaceState", "SPACE_READY", "properties", "name", "length", "id", "ns", "getCollectionGraphNodePartials", "navigable", "collection", "resolve", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "filter", "isEchoObject", "map", "makeRef", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "db", "add", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "hasPendingMigration", "CollectionType", "typename", "partials", "type", "SPACE_TYPE", "cacheable", "label", "description", "hue", "icon", "undefined", "disabled", "testId", "nodes", "ATTENDABLE_PATH_SEPARATOR", "disposition", "position", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "running", "OpenCreateObject", "ACTION_TYPE", "Rename", "params", "caller", "keyBinding", "macos", "windows", "createObjectNode", "getTypename", "metadata", "Object", "keys", "graphProps", "fullyQualifiedId", "default", "persistenceClass", "persistenceKey", "constructObjectActions", "graph", "getSpace", "invariant", "RenameObject", "RemoveObjects", "getConnections", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "LayoutAction", "Expose", "part", "subject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "schema", "getSchema", "getTypeAnnotation", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/collection.ts", "../../../src/types/types.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Expando, Ref, TypedObject } from '@dxos/echo-schema';\n\nexport class CollectionType extends TypedObject({ typename: 'dxos.org/type/Collection', version: '0.1.0' })({\n name: Schema.optional(Schema.String),\n objects: Schema.mutable(Schema.Array(Ref(Expando))),\n // Key is schema typename and value is reference to a view object of the associated schema.\n // Having collection reference the views rather than vice versa ensures that the state converges to a single view per key (i.e. type).\n // This also leaves open a future where this key could be changed to allow for multiple stack views per section.\n // TODO(wittjosiah): Any way to make this more type safe?\n // TODO(wittjosiah): Should the views be separate objects or just be schemas for view data in this record?\n views: Schema.mutable(Schema.Record({ key: Schema.String, value: Ref(Expando) })),\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { type AnyIntentChain } from '@dxos/app-framework';\nimport { Expando, type BaseObject, type TypedObject } from '@dxos/echo-schema';\nimport { type PublicKey } from '@dxos/react-client';\n// TODO(wittjosiah): This pulls in full client.\nimport { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';\nimport { CancellableInvitationObservable, Invitation } from '@dxos/react-client/invitations';\nimport { type ComplexMap } from '@dxos/util';\n\nimport { CollectionType } from './collection';\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const SPACE_DIRECTORY_HANDLE = 'dxos.org/plugin/space/directory';\nexport const SPACE_TYPE = 'dxos.org/type/Space';\n\nexport type ObjectViewerProps = {\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type ObjectId = string;\n\nexport type PluginState = {\n /**\n * Which objects are currently being viewed by which peers.\n */\n viewersByObject: Record<ObjectId, ComplexMap<PublicKey, ObjectViewerProps>>;\n\n /**\n * Which peers are currently viewing which objects.\n */\n viewersByIdentity: ComplexMap<PublicKey, Set<ObjectId>>;\n\n /**\n * Object that was linked to directly but not found and is being awaited.\n */\n awaiting: string | undefined;\n\n /**\n * Cached space names, used when spaces are closed or loading.\n */\n spaceNames: Record<string, string>;\n\n /**\n * Which spaces have an SDK migration running currently.\n */\n // TODO(wittjosiah): Factor out to sdk. Migration running should probably be a space state.\n sdkMigrationRunning: Record<string, boolean>;\n\n /**\n * Whether or not the user can navigate to collections in the graph.\n * Determined by whether or not there is an available plugin that can render a collection.\n */\n navigableCollections: boolean;\n\n /**\n * Tracks whether setting edge replication as default has been run on spaces.\n */\n // TODO(wittjosiah): Systematic way to handle migrations of state outside of spaces.\n enabledEdgeReplication: boolean;\n};\n\nexport const SpaceSettingsSchema = Schema.mutable(\n Schema.Struct({\n /**\n * Show closed spaces.\n */\n showHidden: Schema.Boolean,\n }),\n);\n\nexport type SpaceSettingsProps = Schema.Schema.Type<typeof SpaceSettingsSchema>;\n\n// TODO(wittjosiah): Reconcile with graph export serializers.\n\nexport type SerializerMap = Record<string, TypedObjectSerializer>;\n\nexport interface TypedObjectSerializer<T extends Expando = Expando> {\n serialize(params: { object: T }): Promise<string>;\n\n /**\n * @param params.content\n * @param params.space Space to use for deserializing schema references.\n * @param params.newId Generate new ID for deserialized object.\n */\n deserialize(params: { content: string; space: Space; newId?: boolean }): Promise<T>;\n}\n\n// TODO(burdon): Move to FormatEnum or SDK.\nexport const IconAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Icon');\nexport const HueAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Hue');\n\nexport const SpaceForm = Schema.Struct({\n name: Schema.optional(Schema.String.annotations({ title: 'Name' })),\n icon: Schema.optional(Schema.String.annotations({ title: 'Icon', [IconAnnotationId]: true })),\n hue: Schema.optional(Schema.String.annotations({ title: 'Color', [HueAnnotationId]: true })),\n // TODO(wittjosiah): Make optional with default value.\n edgeReplication: Schema.Boolean.annotations({ title: 'Enable EDGE Replication' }),\n});\n\nexport type ObjectForm<T extends BaseObject = BaseObject> = {\n // TODO(dmaretskyi): Change to Schema.Schema.AnyNoContext\n objectSchema: TypedObject;\n formSchema?: Schema.Schema<T, any>;\n hidden?: boolean;\n getIntent: (props: T, options: { space: Space }) => AnyIntentChain;\n};\n\nexport const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => form;\n\nexport const SPACE_ACTION = `${SPACE_PLUGIN}/action`;\n\nexport namespace SpaceAction {\n export class OpenCreateSpace extends Schema.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class Create extends Schema.TaggedClass<Create>()(`${SPACE_ACTION}/create`, {\n input: SpaceForm,\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n space: SpaceSchema,\n }),\n }) {}\n\n export class Join extends Schema.TaggedClass<Join>()(`${SPACE_ACTION}/join`, {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n onDone: Schema.optional(Schema.Any),\n }),\n output: Schema.Void,\n }) {}\n\n export class OpenMembers extends Schema.TaggedClass<OpenMembers>()(`${SPACE_ACTION}/open-members`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Share extends Schema.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {\n input: Schema.Struct({\n space: SpaceSchema,\n type: Schema.Enums(Invitation.Type),\n authMethod: Schema.Enums(Invitation.AuthMethod),\n multiUse: Schema.Boolean,\n target: Schema.optional(Schema.String),\n }),\n output: Schema.instanceOf(CancellableInvitationObservable),\n }) {}\n\n export class GetShareLink extends Schema.TaggedClass<GetShareLink>()(`${SPACE_ACTION}/get-share-link`, {\n input: Schema.Struct({\n space: SpaceSchema,\n target: Schema.optional(Schema.String),\n copyToClipboard: Schema.optional(Schema.Boolean),\n }),\n output: Schema.String,\n }) {}\n\n export class Lock extends Schema.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Unlock extends Schema.TaggedClass<Unlock>()(`${SPACE_ACTION}/unlock`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Rename extends Schema.TaggedClass<Rename>()(`${SPACE_ACTION}/rename`, {\n input: Schema.Struct({\n space: SpaceSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n // TODO(wittjosiah): Handle scrolling to section.\n // This maybe motivates making the space settings its own deck?\n export class OpenSettings extends Schema.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {\n input: Schema.Struct({ space: SpaceSchema }),\n output: Schema.Void,\n }) {}\n\n export class Open extends Schema.TaggedClass<Open>()(`${SPACE_ACTION}/open`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Close extends Schema.TaggedClass<Close>()(`${SPACE_ACTION}/close`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Migrate extends Schema.TaggedClass<Migrate>()(`${SPACE_ACTION}/migrate`, {\n input: Schema.Struct({\n space: SpaceSchema,\n version: Schema.optional(Schema.String),\n }),\n output: Schema.Boolean,\n }) {}\n\n export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {\n input: Schema.Struct({\n target: Schema.Union(SpaceSchema, CollectionType),\n navigable: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Void,\n }) {}\n\n export class AddObject extends Schema.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {\n input: Schema.Struct({\n object: ReactiveObjectSchema,\n target: Schema.Union(SpaceSchema, CollectionType),\n hidden: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n object: EchoObjectSchema,\n }),\n }) {}\n\n export class AddRelation extends Schema.TaggedClass<AddRelation>()(`${SPACE_ACTION}/add-relation`, {\n input: Schema.Struct({\n space: SpaceSchema,\n // TODO(wittjosiah): Relation schema.\n schema: Schema.Any,\n source: Expando,\n target: Expando,\n // TODO(wittjosiah): Type based on relation schema.\n fields: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n output: Schema.Struct({\n relation: Schema.Any,\n }),\n }) {}\n\n export const DeletionData = Schema.Struct({\n objects: Schema.Array(EchoObjectSchema),\n parentCollection: CollectionType,\n indices: Schema.Array(Schema.Number),\n nestedObjectsList: Schema.Array(Schema.Array(EchoObjectSchema)),\n wasActive: Schema.Array(Schema.String),\n });\n\n export type DeletionData = Schema.Schema.Type<typeof DeletionData>;\n\n export class RemoveObjects extends Schema.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {\n input: Schema.Struct({\n objects: Schema.Array(EchoObjectSchema),\n target: Schema.optional(CollectionType),\n deletionData: Schema.optional(DeletionData),\n }),\n output: Schema.Void,\n }) {}\n\n export class RenameObject extends Schema.TaggedClass<RenameObject>()(`${SPACE_ACTION}/rename-object`, {\n input: Schema.Struct({\n object: EchoObjectSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class DuplicateObject extends Schema.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {\n input: Schema.Struct({\n object: EchoObjectSchema,\n target: Schema.Union(SpaceSchema, CollectionType),\n }),\n output: Schema.Void,\n }) {}\n\n export class WaitForObject extends Schema.TaggedClass<WaitForObject>()(`${SPACE_ACTION}/wait-for-object`, {\n input: Schema.Struct({\n id: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport namespace CollectionAction {\n export class Create extends Schema.TaggedClass<Create>()('dxos.org/plugin/collection/action/create', {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: CollectionType,\n }),\n }) {}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Schema", "Expando", "Ref", "TypedObject", "CollectionType", "TypedObject", "typename", "version", "name", "Schema", "optional", "String", "objects", "mutable", "Array", "Ref", "Expando", "views", "Record", "key", "value", "Schema", "Expando", "EchoObjectSchema", "ReactiveObjectSchema", "SpaceSchema", "CancellableInvitationObservable", "Invitation", "SPACE_DIRECTORY_HANDLE", "SPACE_TYPE", "SpaceSettingsSchema", "Schema", "mutable", "Struct", "showHidden", "Boolean", "IconAnnotationId", "Symbol", "for", "HueAnnotationId", "SpaceForm", "name", "optional", "String", "annotations", "title", "icon", "hue", "edgeReplication", "defineObjectForm", "form", "SPACE_ACTION", "SPACE_PLUGIN", "SpaceAction", "OpenCreateSpace", "TaggedClass", "input", "Void", "output", "Create", "id", "subject", "Array", "space", "SpaceSchema", "Join", "invitationCode", "onDone", "Any", "OpenMembers", "Share", "type", "Enums", "Invitation", "Type", "authMethod", "AuthMethod", "multiUse", "target", "instanceOf", "CancellableInvitationObservable", "GetShareLink", "copyToClipboard", "Lock", "Unlock", "Rename", "caller", "OpenSettings", "Open", "Close", "Migrate", "version", "OpenCreateObject", "Union", "CollectionType", "navigable", "AddObject", "object", "ReactiveObjectSchema", "hidden", "EchoObjectSchema", "AddRelation", "schema", "source", "Expando", "fields", "Record", "key", "value", "relation", "DeletionData", "objects", "parentCollection", "indices", "Number", "nestedObjectsList", "wasActive", "RemoveObjects", "deletionData", "RenameObject", "DuplicateObject", "WaitForObject", "CollectionAction"]
|
|
7
|
-
}
|