@dxos/plugin-space 0.8.2-main.f11618f → 0.8.2-main.fbd8ed0
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-7X3SIPCD.mjs +328 -0
- package/dist/lib/browser/app-graph-builder-7X3SIPCD.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-UUJH7JRN.mjs → app-graph-serializer-VRU57AEZ.mjs} +6 -6
- package/dist/lib/browser/app-graph-serializer-VRU57AEZ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-4226DMDP.mjs → chunk-43UQWMD3.mjs} +298 -504
- package/dist/lib/browser/chunk-43UQWMD3.mjs.map +7 -0
- package/dist/lib/browser/chunk-AR5R2F6B.mjs +88 -0
- package/dist/lib/browser/chunk-AR5R2F6B.mjs.map +7 -0
- package/dist/lib/browser/chunk-CY35NLWL.mjs +296 -0
- package/dist/lib/browser/chunk-CY35NLWL.mjs.map +7 -0
- package/dist/lib/browser/{chunk-JS6ZV4GV.mjs → chunk-IQFFOAWD.mjs} +24 -38
- package/dist/lib/browser/chunk-IQFFOAWD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-DIJ7LMCS.mjs → chunk-UBSVH2NQ.mjs} +3 -4
- package/dist/lib/browser/chunk-UBSVH2NQ.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-NRVE4XLL.mjs → identity-created-ANRJHNMQ.mjs} +3 -3
- package/dist/lib/browser/identity-created-ANRJHNMQ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +23 -19
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-NP55M7C7.mjs → intent-resolver-KRINV5QI.mjs} +15 -33
- package/dist/lib/browser/intent-resolver-KRINV5QI.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-XKAUZ3X2.mjs → react-root-J3SP2HVW.mjs} +5 -4
- package/dist/lib/browser/{react-surface-2DW2UDRX.mjs → react-surface-J7T2IMH4.mjs} +5 -12
- package/dist/lib/browser/react-surface-J7T2IMH4.mjs.map +7 -0
- package/dist/lib/browser/schema-defs-OCBY7APN.mjs +26 -0
- package/dist/lib/browser/schema-defs-OCBY7APN.mjs.map +7 -0
- package/dist/lib/browser/{schema-tools-YAXPRIXP.mjs → schema-tools-MYC4LTQD.mjs} +22 -22
- package/dist/lib/browser/schema-tools-MYC4LTQD.mjs.map +7 -0
- package/dist/lib/browser/{settings-MVT32NP6.mjs → settings-G24447B7.mjs} +2 -2
- package/dist/lib/browser/{spaces-ready-ERNSICUW.mjs → spaces-ready-5I3RKYTT.mjs} +16 -15
- package/dist/lib/browser/spaces-ready-5I3RKYTT.mjs.map +7 -0
- package/dist/lib/browser/{state-CYV6QCTN.mjs → state-SI4B5GHC.mjs} +2 -2
- package/dist/lib/browser/state-SI4B5GHC.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/app-graph-builder-C2ISDMSL.cjs +328 -0
- package/dist/lib/node/app-graph-builder-C2ISDMSL.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-M6Z2OPA4.cjs → app-graph-serializer-VLBCR3IX.cjs} +22 -22
- package/dist/lib/node/app-graph-serializer-VLBCR3IX.cjs.map +7 -0
- package/dist/lib/node/{chunk-UOCR4G2D.cjs → chunk-5YHUQJVB.cjs} +7 -8
- package/dist/lib/node/chunk-5YHUQJVB.cjs.map +7 -0
- package/dist/lib/node/chunk-DQN4ZQDW.cjs +119 -0
- package/dist/lib/node/chunk-DQN4ZQDW.cjs.map +7 -0
- package/dist/lib/node/chunk-K6ZO4WDJ.cjs +324 -0
- package/dist/lib/node/chunk-K6ZO4WDJ.cjs.map +7 -0
- package/dist/lib/node/{chunk-ZMQO74LX.cjs → chunk-MXBE2VET.cjs} +338 -535
- package/dist/lib/node/chunk-MXBE2VET.cjs.map +7 -0
- package/dist/lib/node/{chunk-XADZLQAJ.cjs → chunk-SCATWJKX.cjs} +46 -61
- package/dist/lib/node/chunk-SCATWJKX.cjs.map +7 -0
- package/dist/lib/node/{identity-created-YDTRMOMX.cjs → identity-created-NIPYGVG3.cjs} +7 -7
- package/dist/lib/node/identity-created-NIPYGVG3.cjs.map +7 -0
- package/dist/lib/node/index.cjs +73 -70
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-3J52ARFL.cjs → intent-resolver-MJVRY6YE.cjs} +63 -80
- package/dist/lib/node/intent-resolver-MJVRY6YE.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-XUE2J7HT.cjs → react-root-M4BZ6VXB.cjs} +9 -8
- package/dist/lib/node/{react-root-XUE2J7HT.cjs.map → react-root-M4BZ6VXB.cjs.map} +1 -1
- package/dist/lib/node/{react-surface-IWSTOZ2E.cjs → react-surface-RYKSYYKM.cjs} +42 -47
- package/dist/lib/node/react-surface-RYKSYYKM.cjs.map +7 -0
- package/dist/lib/node/{schema-PPJ5BZ3A.cjs → schema-defs-2HJLXSNK.cjs} +13 -11
- package/dist/lib/node/schema-defs-2HJLXSNK.cjs.map +7 -0
- package/dist/lib/node/{schema-tools-BLIMOZYY.cjs → schema-tools-OE3MFYYH.cjs} +24 -24
- package/dist/lib/node/schema-tools-OE3MFYYH.cjs.map +7 -0
- package/dist/lib/node/{settings-JLV7YT6Q.cjs → settings-AFWO4AWK.cjs} +6 -6
- package/dist/lib/node/{spaces-ready-6EBR4SM4.cjs → spaces-ready-BMPXSFHF.cjs} +24 -23
- package/dist/lib/node/spaces-ready-BMPXSFHF.cjs.map +7 -0
- package/dist/lib/node/{state-JLN7TGRR.cjs → state-L2ZSDKLS.cjs} +5 -5
- package/dist/lib/node/state-L2ZSDKLS.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +15 -15
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/app-graph-builder-WVCQZ324.mjs +329 -0
- package/dist/lib/node-esm/app-graph-builder-WVCQZ324.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-J3B4WSXU.mjs → app-graph-serializer-GEUYYXKD.mjs} +6 -6
- package/dist/lib/node-esm/app-graph-serializer-GEUYYXKD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OLISVDCF.mjs → chunk-5NIBYPVF.mjs} +3 -4
- package/dist/lib/node-esm/chunk-5NIBYPVF.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CLRCW6PU.mjs +297 -0
- package/dist/lib/node-esm/chunk-CLRCW6PU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PQI4D4SH.mjs → chunk-FI3WV22Y.mjs} +298 -504
- package/dist/lib/node-esm/chunk-FI3WV22Y.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HNKAG5CX.mjs +90 -0
- package/dist/lib/node-esm/chunk-HNKAG5CX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ABTVMAG5.mjs → chunk-S2W6HS4A.mjs} +24 -38
- package/dist/lib/node-esm/chunk-S2W6HS4A.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-EC6SVYB5.mjs → identity-created-O5X2FFWU.mjs} +3 -3
- package/dist/lib/node-esm/identity-created-O5X2FFWU.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +23 -19
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-MXQIFIRC.mjs → intent-resolver-JT6EB47M.mjs} +15 -33
- package/dist/lib/node-esm/intent-resolver-JT6EB47M.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-ZBCJCEFS.mjs → react-root-S2LW4FS7.mjs} +5 -4
- package/dist/lib/{browser/react-root-XKAUZ3X2.mjs.map → node-esm/react-root-S2LW4FS7.mjs.map} +1 -1
- package/dist/lib/node-esm/{react-surface-JCHDAPGM.mjs → react-surface-ZNNMO7QQ.mjs} +5 -12
- package/dist/lib/node-esm/react-surface-ZNNMO7QQ.mjs.map +7 -0
- package/dist/lib/node-esm/schema-defs-B74N3GQ5.mjs +27 -0
- package/dist/lib/node-esm/schema-defs-B74N3GQ5.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-tools-IU7EX5A5.mjs → schema-tools-YTJLA3NQ.mjs} +22 -22
- package/dist/lib/node-esm/schema-tools-YTJLA3NQ.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-AILIMHTE.mjs → settings-MJVSCOI4.mjs} +2 -2
- package/dist/lib/node-esm/{spaces-ready-5PXESKHX.mjs → spaces-ready-XKG57SL5.mjs} +16 -15
- package/dist/lib/node-esm/spaces-ready-XKG57SL5.mjs.map +7 -0
- package/dist/lib/node-esm/{state-YZPY5T5A.mjs → state-QUDYGEU6.mjs} +2 -2
- package/dist/lib/node-esm/state-QUDYGEU6.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +1 -1
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +2 -2
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts +2 -2
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +8 -184
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
- 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-defs.d.ts +4 -0
- package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
- package/dist/types/src/capabilities/schema-tools.d.ts +2 -2
- package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts +2 -2
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +2 -2
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
- package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.stories.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/ForeignKeys.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/PersistenceStatus.d.ts.map +1 -1
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
- package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/save-tracker.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +0 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useActiveSpace.d.ts +4 -0
- package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -0
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -2
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/usePath.d.ts +3 -2
- package/dist/types/src/hooks/usePath.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -263
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/collection.d.ts +9 -8
- package/dist/types/src/types/collection.d.ts.map +1 -1
- package/dist/types/src/types/thread.d.ts +113 -242
- package/dist/types/src/types/thread.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +145 -160
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +10 -16
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +51 -45
- package/src/SpacePlugin.tsx +8 -7
- package/src/capabilities/app-graph-builder.ts +376 -268
- package/src/capabilities/app-graph-serializer.ts +4 -4
- package/src/capabilities/identity-created.ts +3 -3
- package/src/capabilities/index.ts +2 -2
- package/src/capabilities/intent-resolver.ts +9 -28
- package/src/capabilities/react-surface.tsx +15 -23
- package/src/capabilities/schema-defs.ts +30 -0
- package/src/capabilities/schema-tool.test.ts +2 -3
- package/src/capabilities/schema-tools.ts +25 -25
- package/src/capabilities/spaces-ready.ts +14 -12
- package/src/capabilities/state.ts +3 -3
- package/src/components/AwaitingObject.tsx +1 -1
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +2 -2
- package/src/components/CreateDialog/CreateObjectDialog.tsx +1 -1
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +2 -3
- package/src/components/MembersContainer.stories.tsx +1 -5
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +2 -2
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +2 -2
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +4 -4
- package/src/components/PersistenceStatus.tsx +11 -14
- package/src/components/SpacePresence.stories.tsx +1 -1
- package/src/components/SpacePresence.tsx +34 -43
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +5 -3
- package/src/components/SyncStatus/InlineSyncStatus.tsx +10 -17
- package/src/components/index.ts +0 -1
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useActiveSpace.ts +20 -0
- package/src/hooks/useInputSurfaceLookup.tsx +2 -2
- package/src/hooks/usePath.ts +9 -6
- package/src/index.ts +1 -0
- package/src/translations.ts +1 -2
- package/src/types/collection.ts +6 -4
- package/src/types/thread.ts +14 -8
- package/src/types/types.ts +104 -112
- package/src/util.tsx +36 -73
- package/dist/lib/browser/app-graph-builder-ZWNOWRAX.mjs +0 -369
- package/dist/lib/browser/app-graph-builder-ZWNOWRAX.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-UUJH7JRN.mjs.map +0 -7
- package/dist/lib/browser/chunk-4226DMDP.mjs.map +0 -7
- package/dist/lib/browser/chunk-DIJ7LMCS.mjs.map +0 -7
- package/dist/lib/browser/chunk-JS6ZV4GV.mjs.map +0 -7
- package/dist/lib/browser/chunk-O7WGQVLQ.mjs +0 -306
- package/dist/lib/browser/chunk-O7WGQVLQ.mjs.map +0 -7
- package/dist/lib/browser/identity-created-NRVE4XLL.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-NP55M7C7.mjs.map +0 -7
- package/dist/lib/browser/react-surface-2DW2UDRX.mjs.map +0 -7
- package/dist/lib/browser/schema-FHTA26SW.mjs +0 -24
- package/dist/lib/browser/schema-FHTA26SW.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-ERNSICUW.mjs.map +0 -7
- package/dist/lib/browser/state-CYV6QCTN.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-LLIV422L.cjs +0 -371
- package/dist/lib/node/app-graph-builder-LLIV422L.cjs.map +0 -7
- package/dist/lib/node/app-graph-serializer-M6Z2OPA4.cjs.map +0 -7
- package/dist/lib/node/chunk-EQ5BPSQ7.cjs +0 -334
- package/dist/lib/node/chunk-EQ5BPSQ7.cjs.map +0 -7
- package/dist/lib/node/chunk-UOCR4G2D.cjs.map +0 -7
- package/dist/lib/node/chunk-XADZLQAJ.cjs.map +0 -7
- package/dist/lib/node/chunk-ZMQO74LX.cjs.map +0 -7
- package/dist/lib/node/identity-created-YDTRMOMX.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-3J52ARFL.cjs.map +0 -7
- package/dist/lib/node/react-surface-IWSTOZ2E.cjs.map +0 -7
- package/dist/lib/node/schema-PPJ5BZ3A.cjs.map +0 -7
- package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +0 -7
- package/dist/lib/node/spaces-ready-6EBR4SM4.cjs.map +0 -7
- package/dist/lib/node/state-JLN7TGRR.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-HSGLCS76.mjs +0 -370
- package/dist/lib/node-esm/app-graph-builder-HSGLCS76.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-J3B4WSXU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ABTVMAG5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FJPCLEKN.mjs +0 -307
- package/dist/lib/node-esm/chunk-FJPCLEKN.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OLISVDCF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PQI4D4SH.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-EC6SVYB5.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-MXQIFIRC.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-JCHDAPGM.mjs.map +0 -7
- package/dist/lib/node-esm/schema-OUZKVYM5.mjs +0 -25
- package/dist/lib/node-esm/schema-OUZKVYM5.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-5PXESKHX.mjs.map +0 -7
- package/dist/lib/node-esm/state-YZPY5T5A.mjs.map +0 -7
- package/dist/types/src/capabilities/schema.d.ts +0 -4
- package/dist/types/src/capabilities/schema.d.ts.map +0 -1
- package/dist/types/src/components/PopoverAddSpace.d.ts +0 -4
- package/dist/types/src/components/PopoverAddSpace.d.ts.map +0 -1
- package/src/capabilities/schema.ts +0 -27
- package/src/components/PopoverAddSpace.tsx +0 -52
- /package/dist/lib/{node-esm/react-root-ZBCJCEFS.mjs.map → browser/react-root-J3SP2HVW.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-MVT32NP6.mjs.map → settings-G24447B7.mjs.map} +0 -0
- /package/dist/lib/node/{settings-JLV7YT6Q.cjs.map → settings-AFWO4AWK.cjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-AILIMHTE.mjs.map → settings-MJVSCOI4.mjs.map} +0 -0
package/src/types/types.ts
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Schema } from 'effect';
|
|
6
|
+
|
|
5
7
|
import { type AnyIntentChain } from '@dxos/app-framework';
|
|
6
|
-
import {
|
|
8
|
+
import { type Expando, type BaseObject, type TypedObject } from '@dxos/echo-schema';
|
|
7
9
|
import { type PublicKey } from '@dxos/react-client';
|
|
8
10
|
// TODO(wittjosiah): This pulls in full client.
|
|
9
11
|
import { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';
|
|
@@ -63,16 +65,16 @@ export type PluginState = {
|
|
|
63
65
|
enabledEdgeReplication: boolean;
|
|
64
66
|
};
|
|
65
67
|
|
|
66
|
-
export const SpaceSettingsSchema =
|
|
67
|
-
|
|
68
|
+
export const SpaceSettingsSchema = Schema.mutable(
|
|
69
|
+
Schema.Struct({
|
|
68
70
|
/**
|
|
69
71
|
* Show closed spaces.
|
|
70
72
|
*/
|
|
71
|
-
showHidden:
|
|
73
|
+
showHidden: Schema.Boolean,
|
|
72
74
|
}),
|
|
73
75
|
);
|
|
74
76
|
|
|
75
|
-
export type SpaceSettingsProps =
|
|
77
|
+
export type SpaceSettingsProps = Schema.Schema.Type<typeof SpaceSettingsSchema>;
|
|
76
78
|
|
|
77
79
|
// TODO(wittjosiah): Reconcile with graph export serializers.
|
|
78
80
|
|
|
@@ -93,18 +95,18 @@ export interface TypedObjectSerializer<T extends Expando = Expando> {
|
|
|
93
95
|
export const IconAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Icon');
|
|
94
96
|
export const HueAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Hue');
|
|
95
97
|
|
|
96
|
-
export const SpaceForm =
|
|
97
|
-
name:
|
|
98
|
-
icon:
|
|
99
|
-
hue:
|
|
98
|
+
export const SpaceForm = Schema.Struct({
|
|
99
|
+
name: Schema.optional(Schema.String.annotations({ title: 'Name' })),
|
|
100
|
+
icon: Schema.optional(Schema.String.annotations({ title: 'Icon', [IconAnnotationId]: true })),
|
|
101
|
+
hue: Schema.optional(Schema.String.annotations({ title: 'Color', [HueAnnotationId]: true })),
|
|
100
102
|
// TODO(wittjosiah): Make optional with default value.
|
|
101
|
-
edgeReplication:
|
|
103
|
+
edgeReplication: Schema.Boolean.annotations({ title: 'Enable EDGE Replication' }),
|
|
102
104
|
});
|
|
103
105
|
|
|
104
106
|
export type ObjectForm<T extends BaseObject = BaseObject> = {
|
|
105
|
-
// TODO(dmaretskyi): Change to
|
|
107
|
+
// TODO(dmaretskyi): Change to Schema.Schema.AnyNoContext
|
|
106
108
|
objectSchema: TypedObject;
|
|
107
|
-
formSchema?:
|
|
109
|
+
formSchema?: Schema.Schema<T, any>;
|
|
108
110
|
hidden?: boolean;
|
|
109
111
|
getIntent: (props: T, options: { space: Space }) => AnyIntentChain;
|
|
110
112
|
};
|
|
@@ -114,186 +116,176 @@ export const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => f
|
|
|
114
116
|
export const SPACE_ACTION = `${SPACE_PLUGIN}/action`;
|
|
115
117
|
|
|
116
118
|
export namespace SpaceAction {
|
|
117
|
-
export class OpenCreateSpace extends
|
|
118
|
-
input:
|
|
119
|
-
output:
|
|
119
|
+
export class OpenCreateSpace extends Schema.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {
|
|
120
|
+
input: Schema.Void,
|
|
121
|
+
output: Schema.Void,
|
|
120
122
|
}) {}
|
|
121
123
|
|
|
122
|
-
export class Create extends
|
|
124
|
+
export class Create extends Schema.TaggedClass<Create>()(`${SPACE_ACTION}/create`, {
|
|
123
125
|
input: SpaceForm,
|
|
124
|
-
output:
|
|
125
|
-
id:
|
|
126
|
-
subject:
|
|
126
|
+
output: Schema.Struct({
|
|
127
|
+
id: Schema.String,
|
|
128
|
+
subject: Schema.Array(Schema.String),
|
|
127
129
|
space: SpaceSchema,
|
|
128
130
|
}),
|
|
129
131
|
}) {}
|
|
130
132
|
|
|
131
|
-
export class Join extends
|
|
132
|
-
input:
|
|
133
|
-
invitationCode:
|
|
134
|
-
onDone:
|
|
133
|
+
export class Join extends Schema.TaggedClass<Join>()(`${SPACE_ACTION}/join`, {
|
|
134
|
+
input: Schema.Struct({
|
|
135
|
+
invitationCode: Schema.optional(Schema.String),
|
|
136
|
+
onDone: Schema.optional(Schema.Any),
|
|
135
137
|
}),
|
|
136
|
-
output:
|
|
138
|
+
output: Schema.Void,
|
|
137
139
|
}) {}
|
|
138
140
|
|
|
139
|
-
export class OpenMembers extends
|
|
140
|
-
input:
|
|
141
|
+
export class OpenMembers extends Schema.TaggedClass<OpenMembers>()(`${SPACE_ACTION}/open-members`, {
|
|
142
|
+
input: Schema.Struct({
|
|
141
143
|
space: SpaceSchema,
|
|
142
144
|
}),
|
|
143
|
-
output:
|
|
145
|
+
output: Schema.Void,
|
|
144
146
|
}) {}
|
|
145
147
|
|
|
146
|
-
export class Share extends
|
|
147
|
-
input:
|
|
148
|
+
export class Share extends Schema.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {
|
|
149
|
+
input: Schema.Struct({
|
|
148
150
|
space: SpaceSchema,
|
|
149
|
-
type:
|
|
150
|
-
authMethod:
|
|
151
|
-
multiUse:
|
|
152
|
-
target:
|
|
151
|
+
type: Schema.Enums(Invitation.Type),
|
|
152
|
+
authMethod: Schema.Enums(Invitation.AuthMethod),
|
|
153
|
+
multiUse: Schema.Boolean,
|
|
154
|
+
target: Schema.optional(Schema.String),
|
|
153
155
|
}),
|
|
154
|
-
output:
|
|
156
|
+
output: Schema.instanceOf(CancellableInvitationObservable),
|
|
155
157
|
}) {}
|
|
156
158
|
|
|
157
|
-
export class GetShareLink extends
|
|
158
|
-
input:
|
|
159
|
+
export class GetShareLink extends Schema.TaggedClass<GetShareLink>()(`${SPACE_ACTION}/get-share-link`, {
|
|
160
|
+
input: Schema.Struct({
|
|
159
161
|
space: SpaceSchema,
|
|
160
|
-
target:
|
|
161
|
-
copyToClipboard:
|
|
162
|
+
target: Schema.optional(Schema.String),
|
|
163
|
+
copyToClipboard: Schema.optional(Schema.Boolean),
|
|
162
164
|
}),
|
|
163
|
-
output:
|
|
165
|
+
output: Schema.String,
|
|
164
166
|
}) {}
|
|
165
167
|
|
|
166
|
-
export class Lock extends
|
|
167
|
-
input:
|
|
168
|
+
export class Lock extends Schema.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {
|
|
169
|
+
input: Schema.Struct({
|
|
168
170
|
space: SpaceSchema,
|
|
169
171
|
}),
|
|
170
|
-
output:
|
|
172
|
+
output: Schema.Void,
|
|
171
173
|
}) {}
|
|
172
174
|
|
|
173
|
-
export class Unlock extends
|
|
174
|
-
input:
|
|
175
|
+
export class Unlock extends Schema.TaggedClass<Unlock>()(`${SPACE_ACTION}/unlock`, {
|
|
176
|
+
input: Schema.Struct({
|
|
175
177
|
space: SpaceSchema,
|
|
176
178
|
}),
|
|
177
|
-
output:
|
|
179
|
+
output: Schema.Void,
|
|
178
180
|
}) {}
|
|
179
181
|
|
|
180
|
-
export class Rename extends
|
|
181
|
-
input:
|
|
182
|
+
export class Rename extends Schema.TaggedClass<Rename>()(`${SPACE_ACTION}/rename`, {
|
|
183
|
+
input: Schema.Struct({
|
|
182
184
|
space: SpaceSchema,
|
|
183
|
-
caller:
|
|
185
|
+
caller: Schema.optional(Schema.String),
|
|
184
186
|
}),
|
|
185
|
-
output:
|
|
186
|
-
}) {}
|
|
187
|
-
|
|
188
|
-
export class AddSpace extends S.TaggedClass<AddSpace>()(`${SPACE_ACTION}/add-space`, {
|
|
189
|
-
input: S.Void,
|
|
190
|
-
output: S.Void,
|
|
191
|
-
}) {}
|
|
192
|
-
|
|
193
|
-
export class AddSpaceMenuGroup extends S.TaggedClass<AddSpaceMenuGroup>()(`${SPACE_ACTION}/add-space-menu-group`, {
|
|
194
|
-
input: S.Void,
|
|
195
|
-
output: S.Void,
|
|
187
|
+
output: Schema.Void,
|
|
196
188
|
}) {}
|
|
197
189
|
|
|
198
190
|
// TODO(wittjosiah): Handle scrolling to section.
|
|
199
191
|
// This maybe motivates making the space settings its own deck?
|
|
200
|
-
export class OpenSettings extends
|
|
201
|
-
input:
|
|
202
|
-
output:
|
|
192
|
+
export class OpenSettings extends Schema.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {
|
|
193
|
+
input: Schema.Struct({ space: SpaceSchema }),
|
|
194
|
+
output: Schema.Void,
|
|
203
195
|
}) {}
|
|
204
196
|
|
|
205
|
-
export class Open extends
|
|
206
|
-
input:
|
|
197
|
+
export class Open extends Schema.TaggedClass<Open>()(`${SPACE_ACTION}/open`, {
|
|
198
|
+
input: Schema.Struct({
|
|
207
199
|
space: SpaceSchema,
|
|
208
200
|
}),
|
|
209
|
-
output:
|
|
201
|
+
output: Schema.Void,
|
|
210
202
|
}) {}
|
|
211
203
|
|
|
212
|
-
export class Close extends
|
|
213
|
-
input:
|
|
204
|
+
export class Close extends Schema.TaggedClass<Close>()(`${SPACE_ACTION}/close`, {
|
|
205
|
+
input: Schema.Struct({
|
|
214
206
|
space: SpaceSchema,
|
|
215
207
|
}),
|
|
216
|
-
output:
|
|
208
|
+
output: Schema.Void,
|
|
217
209
|
}) {}
|
|
218
210
|
|
|
219
|
-
export class Migrate extends
|
|
220
|
-
input:
|
|
211
|
+
export class Migrate extends Schema.TaggedClass<Migrate>()(`${SPACE_ACTION}/migrate`, {
|
|
212
|
+
input: Schema.Struct({
|
|
221
213
|
space: SpaceSchema,
|
|
222
|
-
version:
|
|
214
|
+
version: Schema.optional(Schema.String),
|
|
223
215
|
}),
|
|
224
|
-
output:
|
|
216
|
+
output: Schema.Boolean,
|
|
225
217
|
}) {}
|
|
226
218
|
|
|
227
|
-
export class OpenCreateObject extends
|
|
228
|
-
input:
|
|
229
|
-
target:
|
|
230
|
-
navigable:
|
|
219
|
+
export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {
|
|
220
|
+
input: Schema.Struct({
|
|
221
|
+
target: Schema.Union(SpaceSchema, CollectionType),
|
|
222
|
+
navigable: Schema.optional(Schema.Boolean),
|
|
231
223
|
}),
|
|
232
|
-
output:
|
|
224
|
+
output: Schema.Void,
|
|
233
225
|
}) {}
|
|
234
226
|
|
|
235
|
-
export class AddObject extends
|
|
236
|
-
input:
|
|
227
|
+
export class AddObject extends Schema.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {
|
|
228
|
+
input: Schema.Struct({
|
|
237
229
|
object: ReactiveObjectSchema,
|
|
238
|
-
target:
|
|
239
|
-
hidden:
|
|
230
|
+
target: Schema.Union(SpaceSchema, CollectionType),
|
|
231
|
+
hidden: Schema.optional(Schema.Boolean),
|
|
240
232
|
}),
|
|
241
|
-
output:
|
|
242
|
-
id:
|
|
243
|
-
subject:
|
|
233
|
+
output: Schema.Struct({
|
|
234
|
+
id: Schema.String,
|
|
235
|
+
subject: Schema.Array(Schema.String),
|
|
244
236
|
object: EchoObjectSchema,
|
|
245
237
|
}),
|
|
246
238
|
}) {}
|
|
247
239
|
|
|
248
|
-
export const DeletionData =
|
|
249
|
-
objects:
|
|
240
|
+
export const DeletionData = Schema.Struct({
|
|
241
|
+
objects: Schema.Array(EchoObjectSchema),
|
|
250
242
|
parentCollection: CollectionType,
|
|
251
|
-
indices:
|
|
252
|
-
nestedObjectsList:
|
|
253
|
-
wasActive:
|
|
243
|
+
indices: Schema.Array(Schema.Number),
|
|
244
|
+
nestedObjectsList: Schema.Array(Schema.Array(EchoObjectSchema)),
|
|
245
|
+
wasActive: Schema.Array(Schema.String),
|
|
254
246
|
});
|
|
255
247
|
|
|
256
|
-
export type DeletionData =
|
|
248
|
+
export type DeletionData = Schema.Schema.Type<typeof DeletionData>;
|
|
257
249
|
|
|
258
|
-
export class RemoveObjects extends
|
|
259
|
-
input:
|
|
260
|
-
objects:
|
|
261
|
-
target:
|
|
262
|
-
deletionData:
|
|
250
|
+
export class RemoveObjects extends Schema.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {
|
|
251
|
+
input: Schema.Struct({
|
|
252
|
+
objects: Schema.Array(EchoObjectSchema),
|
|
253
|
+
target: Schema.optional(CollectionType),
|
|
254
|
+
deletionData: Schema.optional(DeletionData),
|
|
263
255
|
}),
|
|
264
|
-
output:
|
|
256
|
+
output: Schema.Void,
|
|
265
257
|
}) {}
|
|
266
258
|
|
|
267
|
-
export class RenameObject extends
|
|
268
|
-
input:
|
|
259
|
+
export class RenameObject extends Schema.TaggedClass<RenameObject>()(`${SPACE_ACTION}/rename-object`, {
|
|
260
|
+
input: Schema.Struct({
|
|
269
261
|
object: EchoObjectSchema,
|
|
270
|
-
caller:
|
|
262
|
+
caller: Schema.optional(Schema.String),
|
|
271
263
|
}),
|
|
272
|
-
output:
|
|
264
|
+
output: Schema.Void,
|
|
273
265
|
}) {}
|
|
274
266
|
|
|
275
|
-
export class DuplicateObject extends
|
|
276
|
-
input:
|
|
267
|
+
export class DuplicateObject extends Schema.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {
|
|
268
|
+
input: Schema.Struct({
|
|
277
269
|
object: EchoObjectSchema,
|
|
278
|
-
target:
|
|
270
|
+
target: Schema.Union(SpaceSchema, CollectionType),
|
|
279
271
|
}),
|
|
280
|
-
output:
|
|
272
|
+
output: Schema.Void,
|
|
281
273
|
}) {}
|
|
282
274
|
|
|
283
|
-
export class WaitForObject extends
|
|
284
|
-
input:
|
|
285
|
-
id:
|
|
275
|
+
export class WaitForObject extends Schema.TaggedClass<WaitForObject>()(`${SPACE_ACTION}/wait-for-object`, {
|
|
276
|
+
input: Schema.Struct({
|
|
277
|
+
id: Schema.optional(Schema.String),
|
|
286
278
|
}),
|
|
287
|
-
output:
|
|
279
|
+
output: Schema.Void,
|
|
288
280
|
}) {}
|
|
289
281
|
}
|
|
290
282
|
|
|
291
283
|
export namespace CollectionAction {
|
|
292
|
-
export class Create extends
|
|
293
|
-
input:
|
|
294
|
-
name:
|
|
284
|
+
export class Create extends Schema.TaggedClass<Create>()('dxos.org/plugin/collection/action/create', {
|
|
285
|
+
input: Schema.Struct({
|
|
286
|
+
name: Schema.optional(Schema.String),
|
|
295
287
|
}),
|
|
296
|
-
output:
|
|
288
|
+
output: Schema.Struct({
|
|
297
289
|
object: CollectionType,
|
|
298
290
|
}),
|
|
299
291
|
}) {}
|
package/src/util.tsx
CHANGED
|
@@ -2,36 +2,30 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Rx } from '@effect-rx/rx-react';
|
|
6
|
+
|
|
5
7
|
import { createIntent, LayoutAction, type PromiseIntentDispatcher } from '@dxos/app-framework';
|
|
6
|
-
import { EXPANDO_TYPENAME, getTypeAnnotation, getTypename, type
|
|
8
|
+
import { type BaseObject, EXPANDO_TYPENAME, getTypeAnnotation, getTypename, type Expando } from '@dxos/echo-schema';
|
|
7
9
|
import { getSchema } from '@dxos/echo-schema';
|
|
8
10
|
import { invariant } from '@dxos/invariant';
|
|
9
|
-
import {
|
|
11
|
+
import { makeRef } from '@dxos/live-object';
|
|
10
12
|
import { Migrations } from '@dxos/migrations';
|
|
11
13
|
import {
|
|
12
14
|
ACTION_GROUP_TYPE,
|
|
13
15
|
ACTION_TYPE,
|
|
14
|
-
|
|
15
|
-
getGraph,
|
|
16
|
-
memoize,
|
|
16
|
+
type ReadableGraph,
|
|
17
17
|
type ActionData,
|
|
18
|
-
type Graph,
|
|
19
18
|
type InvokeParams,
|
|
20
19
|
type Node,
|
|
21
20
|
type NodeArg,
|
|
22
21
|
} from '@dxos/plugin-graph';
|
|
23
22
|
import {
|
|
24
|
-
Filter,
|
|
25
23
|
fullyQualifiedId,
|
|
26
24
|
getSpace,
|
|
27
25
|
isEchoObject,
|
|
28
|
-
|
|
26
|
+
type QueryResult,
|
|
29
27
|
SpaceState,
|
|
30
|
-
type
|
|
31
|
-
type FilterSource,
|
|
32
|
-
type Query,
|
|
33
|
-
type QueryOptions,
|
|
34
|
-
type ReactiveEchoObject,
|
|
28
|
+
type AnyLiveObject,
|
|
35
29
|
type Space,
|
|
36
30
|
} from '@dxos/react-client/echo';
|
|
37
31
|
import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
|
|
@@ -44,36 +38,19 @@ export const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';
|
|
|
44
38
|
// TODO(wittjosiah): Remove.
|
|
45
39
|
export const SHARED = 'shared-spaces';
|
|
46
40
|
|
|
47
|
-
const EMPTY_ARRAY: never[] = [];
|
|
48
|
-
|
|
49
41
|
/**
|
|
50
|
-
*
|
|
51
|
-
* @param spaceOrEcho
|
|
52
|
-
* @param filter
|
|
53
|
-
* @param options
|
|
54
|
-
* @returns
|
|
42
|
+
* Convert a query result to an Rx value of the objects.
|
|
55
43
|
*/
|
|
56
|
-
export const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
)
|
|
61
|
-
const key = JSON.stringify({
|
|
62
|
-
space: isSpace(spaceOrEcho) ? spaceOrEcho.id : undefined,
|
|
63
|
-
filter: Filter.from(filter).toProto(),
|
|
64
|
-
});
|
|
44
|
+
export const rxFromQuery = <T extends BaseObject>(query: QueryResult<T>): Rx.Rx<T[]> => {
|
|
45
|
+
return Rx.make((get) => {
|
|
46
|
+
const unsubscribe = query.subscribe((result) => {
|
|
47
|
+
get.setSelf(result.objects);
|
|
48
|
+
});
|
|
65
49
|
|
|
66
|
-
|
|
67
|
-
() =>
|
|
68
|
-
isSpace(spaceOrEcho)
|
|
69
|
-
? spaceOrEcho.db.query(filter, options)
|
|
70
|
-
: (spaceOrEcho?.query(filter, options) as Query<T> | undefined),
|
|
71
|
-
key,
|
|
72
|
-
);
|
|
73
|
-
const unsubscribe = memoize(() => query?.subscribe(), key);
|
|
74
|
-
cleanup(() => unsubscribe?.());
|
|
50
|
+
get.addFinalizer(() => unsubscribe());
|
|
75
51
|
|
|
76
|
-
|
|
52
|
+
return query.objects;
|
|
53
|
+
});
|
|
77
54
|
};
|
|
78
55
|
|
|
79
56
|
// TODO(wittjosiah): Factor out? Expose via capability?
|
|
@@ -109,7 +86,7 @@ const getCollectionGraphNodePartials = ({
|
|
|
109
86
|
// Change on disk.
|
|
110
87
|
collection.objects = nextOrder.filter(isEchoObject).map(makeRef);
|
|
111
88
|
},
|
|
112
|
-
onTransferStart: (child: Node<
|
|
89
|
+
onTransferStart: (child: Node<AnyLiveObject<any>>, index?: number) => {
|
|
113
90
|
// TODO(wittjosiah): Support transfer between spaces.
|
|
114
91
|
// const childSpace = getSpace(child.data);
|
|
115
92
|
// if (space && childSpace && !childSpace.key.equals(space.key)) {
|
|
@@ -138,7 +115,7 @@ const getCollectionGraphNodePartials = ({
|
|
|
138
115
|
|
|
139
116
|
// }
|
|
140
117
|
},
|
|
141
|
-
onTransferEnd: (child: Node<
|
|
118
|
+
onTransferEnd: (child: Node<AnyLiveObject<any>>, destination: Node) => {
|
|
142
119
|
// Remove child from origin collection.
|
|
143
120
|
const index = collection.objects.findIndex((object) => object.target === child.data);
|
|
144
121
|
if (index > -1) {
|
|
@@ -154,7 +131,7 @@ const getCollectionGraphNodePartials = ({
|
|
|
154
131
|
// childSpace.db.remove(child.data);
|
|
155
132
|
// }
|
|
156
133
|
},
|
|
157
|
-
onCopy: async (child: Node<
|
|
134
|
+
onCopy: async (child: Node<AnyLiveObject<any>>, index?: number) => {
|
|
158
135
|
// Create clone of child and add to destination space.
|
|
159
136
|
const newObject = await cloneObject(child.data, resolve, space);
|
|
160
137
|
space.db.add(newObject);
|
|
@@ -309,8 +286,8 @@ export const constructSpaceActions = ({
|
|
|
309
286
|
{
|
|
310
287
|
id: getId(SpaceAction.Rename._tag),
|
|
311
288
|
type: ACTION_TYPE,
|
|
312
|
-
data: async (params
|
|
313
|
-
await dispatch(createIntent(SpaceAction.Rename, { space, caller: params
|
|
289
|
+
data: async (params?: InvokeParams) => {
|
|
290
|
+
await dispatch(createIntent(SpaceAction.Rename, { space, caller: params?.caller }));
|
|
314
291
|
},
|
|
315
292
|
properties: {
|
|
316
293
|
label: ['rename space label', { ns: SPACE_PLUGIN }],
|
|
@@ -333,7 +310,7 @@ export const createObjectNode = ({
|
|
|
333
310
|
navigable = false,
|
|
334
311
|
resolve,
|
|
335
312
|
}: {
|
|
336
|
-
object:
|
|
313
|
+
object: AnyLiveObject<any>;
|
|
337
314
|
space: Space;
|
|
338
315
|
navigable?: boolean;
|
|
339
316
|
resolve: (typename: string) => Record<string, any>;
|
|
@@ -371,15 +348,16 @@ export const createObjectNode = ({
|
|
|
371
348
|
};
|
|
372
349
|
|
|
373
350
|
export const constructObjectActions = ({
|
|
374
|
-
|
|
351
|
+
object,
|
|
352
|
+
graph,
|
|
375
353
|
dispatch,
|
|
376
354
|
navigable = false,
|
|
377
355
|
}: {
|
|
378
|
-
|
|
356
|
+
object: AnyLiveObject<any>;
|
|
357
|
+
graph: ReadableGraph;
|
|
379
358
|
dispatch: PromiseIntentDispatcher;
|
|
380
359
|
navigable?: boolean;
|
|
381
360
|
}) => {
|
|
382
|
-
const object = node.data;
|
|
383
361
|
const space = getSpace(object);
|
|
384
362
|
invariant(space, 'Space not found');
|
|
385
363
|
const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;
|
|
@@ -404,8 +382,8 @@ export const constructObjectActions = ({
|
|
|
404
382
|
{
|
|
405
383
|
id: getId(SpaceAction.RenameObject._tag),
|
|
406
384
|
type: ACTION_TYPE,
|
|
407
|
-
data: async (params
|
|
408
|
-
await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params
|
|
385
|
+
data: async (params?: InvokeParams) => {
|
|
386
|
+
await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params?.caller }));
|
|
409
387
|
},
|
|
410
388
|
properties: {
|
|
411
389
|
label: [
|
|
@@ -413,8 +391,10 @@ export const constructObjectActions = ({
|
|
|
413
391
|
{ ns: SPACE_PLUGIN },
|
|
414
392
|
],
|
|
415
393
|
icon: 'ph--pencil-simple-line--regular',
|
|
416
|
-
// TODO(wittjosiah):
|
|
417
|
-
|
|
394
|
+
// TODO(wittjosiah): Need's focus.
|
|
395
|
+
keyBinding: {
|
|
396
|
+
macos: 'shift+F6',
|
|
397
|
+
},
|
|
418
398
|
testId: 'spacePlugin.renameObject',
|
|
419
399
|
},
|
|
420
400
|
},
|
|
@@ -422,9 +402,8 @@ export const constructObjectActions = ({
|
|
|
422
402
|
id: getId(SpaceAction.RemoveObjects._tag),
|
|
423
403
|
type: ACTION_TYPE,
|
|
424
404
|
data: async () => {
|
|
425
|
-
const graph = getGraph(node);
|
|
426
405
|
const collection = graph
|
|
427
|
-
.
|
|
406
|
+
.getConnections(fullyQualifiedId(object), 'inbound')
|
|
428
407
|
.find(({ data }) => data instanceof CollectionType)?.data;
|
|
429
408
|
await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));
|
|
430
409
|
},
|
|
@@ -473,29 +452,13 @@ export const constructObjectActions = ({
|
|
|
473
452
|
return actions;
|
|
474
453
|
};
|
|
475
454
|
|
|
476
|
-
/**
|
|
477
|
-
* @deprecated
|
|
478
|
-
*/
|
|
479
|
-
export const getActiveSpace = (graph: Graph, active?: string) => {
|
|
480
|
-
if (!active) {
|
|
481
|
-
return;
|
|
482
|
-
}
|
|
483
|
-
|
|
484
|
-
const node = graph.findNode(active);
|
|
485
|
-
if (!node || !isLiveObject(node.data)) {
|
|
486
|
-
return;
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
return getSpace(node.data);
|
|
490
|
-
};
|
|
491
|
-
|
|
492
455
|
/**
|
|
493
456
|
* @deprecated This is a temporary solution.
|
|
494
457
|
*/
|
|
495
458
|
export const getNestedObjects = async (
|
|
496
|
-
object:
|
|
459
|
+
object: AnyLiveObject<any>,
|
|
497
460
|
resolve: (typename: string) => Record<string, any>,
|
|
498
|
-
): Promise<
|
|
461
|
+
): Promise<AnyLiveObject<any>[]> => {
|
|
499
462
|
const type = getTypename(object);
|
|
500
463
|
if (!type) {
|
|
501
464
|
return [];
|
|
@@ -507,7 +470,7 @@ export const getNestedObjects = async (
|
|
|
507
470
|
return [];
|
|
508
471
|
}
|
|
509
472
|
|
|
510
|
-
const objects:
|
|
473
|
+
const objects: AnyLiveObject<any>[] = await loadReferences(object);
|
|
511
474
|
const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));
|
|
512
475
|
return [...objects, ...nested.flat()];
|
|
513
476
|
};
|