@dxos/plugin-space 0.8.1-staging.5be625a → 0.8.1-staging.9eaf14f
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-VHO33TWC.mjs → app-graph-builder-GMFCSOLG.mjs} +32 -5
- package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-F3ASSBHI.mjs → app-graph-serializer-DSF2U3A5.mjs} +4 -4
- package/dist/lib/browser/{chunk-RZ7IWZW3.mjs → chunk-5BDV575R.mjs} +18 -10
- package/dist/lib/browser/{chunk-RZ7IWZW3.mjs.map → chunk-5BDV575R.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-HSC56GUH.mjs → chunk-AYW4IDRT.mjs} +10 -4
- package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-4CTAR2NQ.mjs → chunk-JZXWPMLA.mjs} +849 -583
- package/dist/lib/browser/chunk-JZXWPMLA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-O7LODPTY.mjs → chunk-KVRYWFZU.mjs} +2 -2
- package/dist/lib/browser/chunk-KVRYWFZU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-3UOTYBKX.mjs → chunk-LO5UL6RU.mjs} +44 -12
- package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-YSJQAFUZ.mjs → identity-created-JR7BNXFH.mjs} +2 -2
- package/dist/lib/browser/index.mjs +33 -38
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-OQ243G6B.mjs → intent-resolver-RKYILWWQ.mjs} +65 -42
- package/dist/lib/browser/intent-resolver-RKYILWWQ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-5CIQKAFC.mjs → react-root-6H7NX2M2.mjs} +5 -5
- package/dist/lib/browser/{react-surface-SEBYKQD5.mjs → react-surface-7AGLOVMK.mjs} +35 -35
- package/dist/lib/browser/react-surface-7AGLOVMK.mjs.map +7 -0
- package/dist/lib/browser/{schema-UOCBWGA4.mjs → schema-FHTA26SW.mjs} +2 -2
- package/dist/lib/browser/{schema-tools-6J5ZEDBC.mjs → schema-tools-YAXPRIXP.mjs} +3 -3
- package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
- package/dist/lib/browser/{settings-C4ZEZTJF.mjs → settings-PJPTJUPE.mjs} +2 -2
- package/dist/lib/browser/{spaces-ready-EWHXCOBW.mjs → spaces-ready-BSSP7HHG.mjs} +7 -7
- package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
- package/dist/lib/browser/{state-BUM7SQUV.mjs → state-X7VLCC6E.mjs} +4 -2
- package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -1
- package/dist/lib/node/{app-graph-builder-DFCMCAMT.cjs → app-graph-builder-DPY7AUZE.cjs} +63 -36
- package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-7O35O6SV.cjs → app-graph-serializer-JELGJUAY.cjs} +20 -20
- package/dist/lib/node/{chunk-LRW6ZBDX.cjs → chunk-3GKCNADA.cjs} +903 -644
- package/dist/lib/node/chunk-3GKCNADA.cjs.map +7 -0
- package/dist/lib/node/{chunk-GRM6AGWI.cjs → chunk-IKIDS6XF.cjs} +5 -5
- package/dist/lib/node/chunk-IKIDS6XF.cjs.map +7 -0
- package/dist/lib/node/{chunk-FOYDT2Z3.cjs → chunk-PU2EYH4E.cjs} +22 -14
- package/dist/lib/node/{chunk-FOYDT2Z3.cjs.map → chunk-PU2EYH4E.cjs.map} +2 -2
- package/dist/lib/node/{chunk-K3HRT4CT.cjs → chunk-TUZWEPGX.cjs} +78 -46
- package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
- package/dist/lib/node/{chunk-MFVXBJQJ.cjs → chunk-WDEIFDTX.cjs} +12 -6
- package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
- package/dist/lib/node/{identity-created-YNPY3SHI.cjs → identity-created-XU4HFV2T.cjs} +6 -6
- package/dist/lib/node/index.cjs +80 -85
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-G5CNUJCN.cjs → intent-resolver-VJ7YV74L.cjs} +123 -99
- package/dist/lib/node/intent-resolver-VJ7YV74L.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-GUOHMGWR.cjs → react-root-TEL5RW3N.cjs} +10 -10
- package/dist/lib/node/{react-surface-NDV3KMWF.cjs → react-surface-2H3S5TY5.cjs} +66 -65
- package/dist/lib/node/react-surface-2H3S5TY5.cjs.map +7 -0
- package/dist/lib/node/{schema-EERAOETL.cjs → schema-PPJ5BZ3A.cjs} +6 -6
- package/dist/lib/node/{schema-tools-OZS4OC6X.cjs → schema-tools-BLIMOZYY.cjs} +5 -5
- package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
- package/dist/lib/node/{settings-JS6D6VHU.cjs → settings-WVFP2UEP.cjs} +6 -6
- package/dist/lib/node/{spaces-ready-WNOF2MAQ.cjs → spaces-ready-7DNZSUOG.cjs} +15 -15
- package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
- package/dist/lib/node/{state-AIETH3DE.cjs → state-5KX6WBJH.cjs} +8 -6
- package/dist/lib/node/state-5KX6WBJH.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-3VUKZI7U.mjs → app-graph-builder-42IGWRPL.mjs} +32 -5
- package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-PM4PTZK6.mjs → app-graph-serializer-FXONFKOE.mjs} +4 -4
- package/dist/lib/node-esm/{chunk-YA6FCGDI.mjs → chunk-3ZOUV4DF.mjs} +18 -10
- package/dist/lib/node-esm/{chunk-YA6FCGDI.mjs.map → chunk-3ZOUV4DF.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-5YP3LY6A.mjs → chunk-BEWBZ4Q4.mjs} +849 -583
- package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-B6QDEMFR.mjs → chunk-FC4UHDPL.mjs} +10 -4
- package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AJ4IZAKT.mjs → chunk-PIYAWT5N.mjs} +2 -2
- package/dist/lib/node-esm/chunk-PIYAWT5N.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-A4XT5SLD.mjs → chunk-ZGLK25WQ.mjs} +44 -12
- package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-SEMQDDNJ.mjs → identity-created-WJKAS2PV.mjs} +2 -2
- package/dist/lib/node-esm/index.mjs +33 -38
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-YMFEX5XN.mjs → intent-resolver-ZFNSA4CM.mjs} +65 -42
- package/dist/lib/node-esm/intent-resolver-ZFNSA4CM.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-ROENLKSY.mjs → react-root-PRBJMWLQ.mjs} +5 -5
- package/dist/lib/node-esm/{react-surface-OLDKADHX.mjs → react-surface-RCZG2PNF.mjs} +35 -35
- package/dist/lib/node-esm/react-surface-RCZG2PNF.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-LOOOBN6J.mjs → schema-OUZKVYM5.mjs} +2 -2
- package/dist/lib/node-esm/{schema-tools-KJVXGDBO.mjs → schema-tools-IU7EX5A5.mjs} +3 -3
- package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-B2AS4EGA.mjs → settings-FJZPC2TV.mjs} +2 -2
- package/dist/lib/node-esm/{spaces-ready-2SKD2XCY.mjs → spaces-ready-7X5PGB2V.mjs} +7 -7
- package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
- package/dist/lib/node-esm/{state-DWUAP6MH.mjs → state-Z6E2YTNC.mjs} +4 -2
- package/dist/lib/node-esm/state-Z6E2YTNC.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.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +4 -3
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +0 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -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/state.d.ts.map +1 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.d.ts +7 -0
- package/dist/types/src/components/MembersContainer.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer.stories.d.ts +8 -0
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts +8 -0
- package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts +8 -0
- package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/index.d.ts +2 -0
- package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +7 -0
- package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +7 -0
- package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +9 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/index.d.ts +2 -2
- package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +48 -24
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/thread.d.ts +2 -0
- package/dist/types/src/types/thread.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +8 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +12 -0
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +44 -42
- package/src/SpacePlugin.tsx +6 -10
- package/src/capabilities/app-graph-builder.ts +20 -0
- package/src/capabilities/capabilities.ts +3 -3
- package/src/capabilities/intent-resolver.ts +63 -37
- package/src/capabilities/react-surface.tsx +27 -26
- package/src/capabilities/schema-tools.ts +2 -2
- package/src/capabilities/spaces-ready.ts +3 -3
- package/src/capabilities/state.ts +2 -0
- package/src/components/CreateDialog/CreateObjectPanel.tsx +6 -6
- package/src/components/JoinDialog.tsx +43 -27
- package/src/components/MembersContainer.stories.tsx +34 -0
- package/src/components/MembersContainer.tsx +257 -0
- package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +2 -2
- package/src/components/{BaseObjectSettings.tsx → ObjectSettingsContainer/BaseObjectSettings.tsx} +16 -11
- package/src/components/ObjectSettingsContainer/ObjectSettingsContainer.tsx +36 -0
- package/src/components/ObjectSettingsContainer/index.ts +5 -0
- package/src/components/SpacePresence.tsx +25 -23
- package/src/components/SpaceSettings/{SpaceSettingsPanel.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
- package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +63 -0
- package/src/components/SpaceSettings/index.ts +2 -2
- package/src/components/SyncStatus/SyncStatus.tsx +1 -1
- package/src/components/SyncStatus/save-tracker.ts +5 -5
- package/src/components/index.ts +2 -2
- package/src/events.ts +2 -2
- package/src/translations.ts +19 -8
- package/src/types/types.ts +12 -6
- package/src/util.tsx +29 -7
- package/dist/lib/browser/app-graph-builder-VHO33TWC.mjs.map +0 -7
- package/dist/lib/browser/chunk-3UOTYBKX.mjs.map +0 -7
- package/dist/lib/browser/chunk-4CTAR2NQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-HSC56GUH.mjs.map +0 -7
- package/dist/lib/browser/chunk-O7LODPTY.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-OQ243G6B.mjs.map +0 -7
- package/dist/lib/browser/react-surface-SEBYKQD5.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-6J5ZEDBC.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-EWHXCOBW.mjs.map +0 -7
- package/dist/lib/browser/state-BUM7SQUV.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-DFCMCAMT.cjs.map +0 -7
- package/dist/lib/node/chunk-GRM6AGWI.cjs.map +0 -7
- package/dist/lib/node/chunk-K3HRT4CT.cjs.map +0 -7
- package/dist/lib/node/chunk-LRW6ZBDX.cjs.map +0 -7
- package/dist/lib/node/chunk-MFVXBJQJ.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-G5CNUJCN.cjs.map +0 -7
- package/dist/lib/node/react-surface-NDV3KMWF.cjs.map +0 -7
- package/dist/lib/node/schema-tools-OZS4OC6X.cjs.map +0 -7
- package/dist/lib/node/spaces-ready-WNOF2MAQ.cjs.map +0 -7
- package/dist/lib/node/state-AIETH3DE.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-3VUKZI7U.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5YP3LY6A.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-A4XT5SLD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AJ4IZAKT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-B6QDEMFR.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-YMFEX5XN.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-OLDKADHX.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-KJVXGDBO.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-2SKD2XCY.mjs.map +0 -7
- package/dist/lib/node-esm/state-DWUAP6MH.mjs.map +0 -7
- package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +0 -1
- package/dist/types/src/components/AdvancedObjectSettings/index.d.ts +0 -2
- package/dist/types/src/components/AdvancedObjectSettings/index.d.ts.map +0 -1
- package/dist/types/src/components/BaseObjectSettings.d.ts +0 -7
- package/dist/types/src/components/BaseObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +0 -11
- package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts +0 -7
- package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +0 -7
- package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts +0 -7
- package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +0 -1
- package/src/components/AdvancedObjectSettings/index.ts +0 -5
- package/src/components/SpaceSettings/SpaceSettingsDialog.stories.tsx +0 -43
- package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +0 -120
- package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +0 -83
- /package/dist/lib/browser/{app-graph-serializer-F3ASSBHI.mjs.map → app-graph-serializer-DSF2U3A5.mjs.map} +0 -0
- /package/dist/lib/browser/{identity-created-YSJQAFUZ.mjs.map → identity-created-JR7BNXFH.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-5CIQKAFC.mjs.map → react-root-6H7NX2M2.mjs.map} +0 -0
- /package/dist/lib/browser/{schema-UOCBWGA4.mjs.map → schema-FHTA26SW.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-C4ZEZTJF.mjs.map → settings-PJPTJUPE.mjs.map} +0 -0
- /package/dist/lib/node/{app-graph-serializer-7O35O6SV.cjs.map → app-graph-serializer-JELGJUAY.cjs.map} +0 -0
- /package/dist/lib/node/{identity-created-YNPY3SHI.cjs.map → identity-created-XU4HFV2T.cjs.map} +0 -0
- /package/dist/lib/node/{react-root-GUOHMGWR.cjs.map → react-root-TEL5RW3N.cjs.map} +0 -0
- /package/dist/lib/node/{schema-EERAOETL.cjs.map → schema-PPJ5BZ3A.cjs.map} +0 -0
- /package/dist/lib/node/{settings-JS6D6VHU.cjs.map → settings-WVFP2UEP.cjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-PM4PTZK6.mjs.map → app-graph-serializer-FXONFKOE.mjs.map} +0 -0
- /package/dist/lib/node-esm/{identity-created-SEMQDDNJ.mjs.map → identity-created-WJKAS2PV.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-ROENLKSY.mjs.map → react-root-PRBJMWLQ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{schema-LOOOBN6J.mjs.map → schema-OUZKVYM5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-B2AS4EGA.mjs.map → settings-FJZPC2TV.mjs.map} +0 -0
- /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +0 -0
- /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
- /package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { useCallback, useMemo } from 'react';
|
|
6
|
+
|
|
7
|
+
import { Surface, useCapabilities, useCapability } from '@dxos/app-framework';
|
|
8
|
+
import { type Space } from '@dxos/react-client/echo';
|
|
9
|
+
import { toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
10
|
+
import { ControlSectionHeading } from '@dxos/react-ui-form';
|
|
11
|
+
import { Accordion } from '@dxos/react-ui-list';
|
|
12
|
+
import { StackItem } from '@dxos/react-ui-stack';
|
|
13
|
+
import { byPosition } from '@dxos/util';
|
|
14
|
+
|
|
15
|
+
import { SpaceCapabilities } from '../../capabilities';
|
|
16
|
+
import { SPACE_PLUGIN } from '../../meta';
|
|
17
|
+
|
|
18
|
+
export const SPACE_SETTINGS_DIALOG = `${SPACE_PLUGIN}/SpaceSettingsDialog`;
|
|
19
|
+
|
|
20
|
+
export type SpaceSettingsTab = 'members' | 'settings';
|
|
21
|
+
|
|
22
|
+
export type SpaceSettingsContainerProps = {
|
|
23
|
+
space: Space;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) => {
|
|
27
|
+
const { t } = useTranslation(SPACE_PLUGIN);
|
|
28
|
+
const state = useCapability(SpaceCapabilities.MutableState);
|
|
29
|
+
const items = useCapabilities(SpaceCapabilities.SettingsSection).toSorted(byPosition);
|
|
30
|
+
const data = useMemo(() => ({ subject: space }), [space]);
|
|
31
|
+
|
|
32
|
+
const handleOpenSectionChange = useCallback(
|
|
33
|
+
(sections: string[]) => {
|
|
34
|
+
state.spaceSettingsOpenSections.splice(0, state.spaceSettingsOpenSections.length, ...sections);
|
|
35
|
+
},
|
|
36
|
+
[state],
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<StackItem.Content classNames='p-2 block overflow-y-auto'>
|
|
41
|
+
<Accordion.Root<SpaceCapabilities.SettingsSection>
|
|
42
|
+
items={items}
|
|
43
|
+
value={state.spaceSettingsOpenSections}
|
|
44
|
+
onValueChange={handleOpenSectionChange}
|
|
45
|
+
>
|
|
46
|
+
{({ items }) => (
|
|
47
|
+
<>
|
|
48
|
+
{items.map((item) => (
|
|
49
|
+
<Accordion.Item key={item.id} item={item} classNames='container-max-width'>
|
|
50
|
+
<Accordion.ItemHeader classNames='pie-6' asChild>
|
|
51
|
+
<ControlSectionHeading title={toLocalizedString(item.label, t)} />
|
|
52
|
+
</Accordion.ItemHeader>
|
|
53
|
+
<Accordion.ItemBody>
|
|
54
|
+
<Surface role={`space-settings--${item.id}`} data={data} />
|
|
55
|
+
</Accordion.ItemBody>
|
|
56
|
+
</Accordion.Item>
|
|
57
|
+
))}
|
|
58
|
+
</>
|
|
59
|
+
)}
|
|
60
|
+
</Accordion.Root>
|
|
61
|
+
</StackItem.Content>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
@@ -94,7 +94,7 @@ export const SyncStatusDetail = ({ classNames, state, summary, debug }: SyncStat
|
|
|
94
94
|
|
|
95
95
|
// TODO(burdon): Normalize to max document count?
|
|
96
96
|
return (
|
|
97
|
-
<div className={mx('flex flex-col gap-3 p-2 text-xs min-w-
|
|
97
|
+
<div className={mx('flex flex-col gap-3 p-2 text-xs min-w-[400px]', classNames)}>
|
|
98
98
|
<div role='none' className='flex items-center'>
|
|
99
99
|
<h1 className='flex-1'>{t('sync status title')}</h1>
|
|
100
100
|
<div className='flex items-center gap-2'>
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type
|
|
5
|
+
import { type CleanupFn } from '@dxos/async';
|
|
6
6
|
import { type Client } from '@dxos/client';
|
|
7
7
|
import { type Space, type SpaceId } from '@dxos/client/echo';
|
|
8
8
|
import { Context } from '@dxos/context';
|
|
9
9
|
|
|
10
10
|
export const createClientSaveTracker = (client: Client, cb: (state: 'saved' | 'saving') => void) => {
|
|
11
|
-
const
|
|
11
|
+
const CleanupFns: Record<SpaceId, CleanupFn> = {};
|
|
12
12
|
const state: Record<SpaceId, 'saved' | 'saving'> = {};
|
|
13
13
|
|
|
14
14
|
const install = (spaces: Space[]) => {
|
|
@@ -18,7 +18,7 @@ export const createClientSaveTracker = (client: Client, cb: (state: 'saved' | 's
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
state[space.id] = 'saved';
|
|
21
|
-
|
|
21
|
+
CleanupFns[space.id] = createSpaceSaveTracker(space, (s) => {
|
|
22
22
|
state[space.id] = s;
|
|
23
23
|
cb(Object.values(state).some((s) => s === 'saving') ? 'saving' : 'saved');
|
|
24
24
|
});
|
|
@@ -30,13 +30,13 @@ export const createClientSaveTracker = (client: Client, cb: (state: 'saved' | 's
|
|
|
30
30
|
install(client.spaces.get());
|
|
31
31
|
|
|
32
32
|
return () => {
|
|
33
|
-
for (const unsubscribe of Object.values(
|
|
33
|
+
for (const unsubscribe of Object.values(CleanupFns)) {
|
|
34
34
|
unsubscribe();
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
const createSpaceSaveTracker = (space: Space, cb: (state: 'saved' | 'saving') => void):
|
|
39
|
+
const createSpaceSaveTracker = (space: Space, cb: (state: 'saved' | 'saving') => void): CleanupFn => {
|
|
40
40
|
const ctx = new Context();
|
|
41
41
|
|
|
42
42
|
void space.waitUntilReady().then(() => {
|
package/src/components/index.ts
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
export * from './AdvancedObjectSettings';
|
|
6
5
|
export * from './AwaitingObject';
|
|
7
|
-
export * from './BaseObjectSettings';
|
|
8
6
|
export * from './CreateDialog';
|
|
9
7
|
export * from './CollectionMain';
|
|
10
8
|
export * from './CollectionSection';
|
|
11
9
|
export * from './JoinDialog';
|
|
10
|
+
export * from './MembersContainer';
|
|
12
11
|
export * from './MenuFooter';
|
|
12
|
+
export * from './ObjectSettingsContainer';
|
|
13
13
|
export * from './PersistenceStatus';
|
|
14
14
|
export * from './PopoverAddSpace';
|
|
15
15
|
export * from './PopoverRenameObject';
|
package/src/events.ts
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { defineEvent } from '@dxos/app-framework';
|
|
5
|
+
import { defineEvent, Events } from '@dxos/app-framework';
|
|
6
6
|
|
|
7
7
|
import { SPACE_PLUGIN } from './meta';
|
|
8
8
|
|
|
9
9
|
export namespace SpaceEvents {
|
|
10
|
+
export const StateReady = Events.createStateEvent(`${SPACE_PLUGIN}/event/state-ready`);
|
|
10
11
|
export const SetupSettingsPanel = defineEvent(`${SPACE_PLUGIN}/event/setup-settings-panel`);
|
|
11
|
-
export const StateReady = defineEvent(`${SPACE_PLUGIN}/event/state-ready`);
|
|
12
12
|
export const DefaultSpaceReady = defineEvent(`${SPACE_PLUGIN}/event/default-space-ready`);
|
|
13
13
|
}
|
|
14
14
|
|
package/src/translations.ts
CHANGED
|
@@ -96,18 +96,13 @@ export default [
|
|
|
96
96
|
'join success label': 'Successfully joined space',
|
|
97
97
|
'name label': 'Name',
|
|
98
98
|
'name placeholder': 'Name',
|
|
99
|
-
'
|
|
99
|
+
'object settings label': 'Settings',
|
|
100
100
|
'edge replication label': 'Enable EDGE Replication',
|
|
101
101
|
'saving locally label': 'Writing to disk',
|
|
102
102
|
'downloading label': 'Replicating from peers',
|
|
103
103
|
'uploading label': 'Replicating to peers',
|
|
104
104
|
'offline persisted label': 'Saved to disk (offline)',
|
|
105
105
|
'remote synced label': 'Synced with peers',
|
|
106
|
-
'open settings panel label': 'Show Settings',
|
|
107
|
-
'settings panel label': 'Settings',
|
|
108
|
-
'open space settings label': 'Space Settings',
|
|
109
|
-
'members tab label': 'Members',
|
|
110
|
-
'settings tab label': 'Settings',
|
|
111
106
|
'syncing label': 'Space syncing',
|
|
112
107
|
'show all label': 'Show all',
|
|
113
108
|
'no sync status label': 'No space with missing objects.',
|
|
@@ -123,8 +118,24 @@ export default [
|
|
|
123
118
|
'advanced settings label': 'Advanced',
|
|
124
119
|
'foreign keys': 'Foreign Keys',
|
|
125
120
|
'add key': 'Add Key',
|
|
126
|
-
|
|
127
|
-
'
|
|
121
|
+
|
|
122
|
+
'members panel label': 'Members',
|
|
123
|
+
'members verbose label': 'Manage space members',
|
|
124
|
+
'members description': 'You can view the current status of space members here as well as invite new members.',
|
|
125
|
+
'members label': 'Members',
|
|
126
|
+
'invitations label': 'Invitations',
|
|
127
|
+
'space invitation description': 'Manage invitations to the space.',
|
|
128
|
+
'qr code description': 'Share this QR code, or copy the URL and share it with the person you want to invite.',
|
|
129
|
+
|
|
130
|
+
'settings panel label': 'Space Settings',
|
|
131
|
+
'open space settings label': 'Space Settings',
|
|
132
|
+
'space settings properties label': 'General',
|
|
133
|
+
'display name input placeholder': 'Space name',
|
|
134
|
+
'display name description': 'Name of the space as it appears in the app.',
|
|
135
|
+
'icon description': 'Icon used to represent the space in the app.',
|
|
136
|
+
'hue description': 'Color used to represent the space in the app.',
|
|
137
|
+
'edge replication description':
|
|
138
|
+
"Only change this if you know what you're doing. Disabling this will prevent the space from replicating through Composer's EDGE services, and relies solely on peer-to-peer sync.",
|
|
128
139
|
},
|
|
129
140
|
},
|
|
130
141
|
},
|
package/src/types/types.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type AnyIntentChain } from '@dxos/app-framework';
|
|
6
|
-
import {
|
|
6
|
+
import { S, type Expando, type BaseObject, type TypedObject } from '@dxos/echo-schema';
|
|
7
7
|
import { type PublicKey } from '@dxos/react-client';
|
|
8
8
|
// TODO(wittjosiah): This pulls in full client.
|
|
9
9
|
import { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';
|
|
@@ -42,6 +42,11 @@ export type PluginState = {
|
|
|
42
42
|
*/
|
|
43
43
|
spaceNames: Record<string, string>;
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Which sections of the space settings are open.
|
|
47
|
+
*/
|
|
48
|
+
spaceSettingsOpenSections: string[];
|
|
49
|
+
|
|
45
50
|
/**
|
|
46
51
|
* Which spaces have an SDK migration running currently.
|
|
47
52
|
*/
|
|
@@ -88,9 +93,11 @@ export interface TypedObjectSerializer<T extends Expando = Expando> {
|
|
|
88
93
|
}
|
|
89
94
|
|
|
90
95
|
export const SpaceForm = S.Struct({
|
|
91
|
-
name: S.optional(S.String.annotations({
|
|
96
|
+
name: S.optional(S.String.annotations({ title: 'Name' })),
|
|
97
|
+
icon: S.optional(S.String.annotations({ title: 'Icon' })),
|
|
98
|
+
hue: S.optional(S.String.annotations({ title: 'Color' })),
|
|
92
99
|
// TODO(wittjosiah): Make optional with default value.
|
|
93
|
-
edgeReplication: S.Boolean.annotations({
|
|
100
|
+
edgeReplication: S.Boolean.annotations({ title: 'Enable EDGE Replication' }),
|
|
94
101
|
});
|
|
95
102
|
|
|
96
103
|
export type ObjectForm<T extends BaseObject = BaseObject> = {
|
|
@@ -167,10 +174,9 @@ export namespace SpaceAction {
|
|
|
167
174
|
output: S.Void,
|
|
168
175
|
}) {}
|
|
169
176
|
|
|
177
|
+
// TODO(wittjosiah): Handle scrolling to section.
|
|
170
178
|
export class OpenSettings extends S.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {
|
|
171
|
-
input: S.Struct({
|
|
172
|
-
space: SpaceSchema,
|
|
173
|
-
}),
|
|
179
|
+
input: S.Struct({ space: SpaceSchema }),
|
|
174
180
|
output: S.Void,
|
|
175
181
|
}) {}
|
|
176
182
|
|
package/src/util.tsx
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { createIntent, type PromiseIntentDispatcher, LayoutAction } from '@dxos/app-framework';
|
|
6
|
-
import { EXPANDO_TYPENAME,
|
|
6
|
+
import { EXPANDO_TYPENAME, getTypeAnnotation, getTypename, type Expando } from '@dxos/echo-schema';
|
|
7
7
|
import { invariant } from '@dxos/invariant';
|
|
8
8
|
import { getSchema, isReactiveObject, makeRef } from '@dxos/live-object';
|
|
9
9
|
import { Migrations } from '@dxos/migrations';
|
|
10
|
+
import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';
|
|
10
11
|
import {
|
|
11
12
|
ACTION_GROUP_TYPE,
|
|
12
13
|
ACTION_TYPE,
|
|
@@ -101,7 +102,6 @@ const getCollectionGraphNodePartials = ({
|
|
|
101
102
|
resolve: (typename: string) => Record<string, any>;
|
|
102
103
|
}) => {
|
|
103
104
|
return {
|
|
104
|
-
disabled: !navigable,
|
|
105
105
|
acceptPersistenceClass: new Set(['echo']),
|
|
106
106
|
acceptPersistenceKey: new Set([space.id]),
|
|
107
107
|
role: 'branch',
|
|
@@ -213,6 +213,28 @@ export const constructSpaceNode = ({
|
|
|
213
213
|
disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
|
|
214
214
|
testId: 'spacePlugin.space',
|
|
215
215
|
},
|
|
216
|
+
nodes: [
|
|
217
|
+
{
|
|
218
|
+
id: `${space.id}${ATTENDABLE_PATH_SEPARATOR}members`,
|
|
219
|
+
type: `${SPACE_PLUGIN}/members`,
|
|
220
|
+
data: space,
|
|
221
|
+
properties: {
|
|
222
|
+
label: ['members panel label', { ns: SPACE_PLUGIN }],
|
|
223
|
+
icon: 'ph--users--regular',
|
|
224
|
+
disposition: 'hidden',
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
id: `${space.id}${ATTENDABLE_PATH_SEPARATOR}settings`,
|
|
229
|
+
type: `${SPACE_PLUGIN}/settings`,
|
|
230
|
+
data: space,
|
|
231
|
+
properties: {
|
|
232
|
+
label: ['settings panel label', { ns: SPACE_PLUGIN }],
|
|
233
|
+
icon: 'ph--gear--regular',
|
|
234
|
+
disposition: 'hidden',
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
],
|
|
216
238
|
};
|
|
217
239
|
};
|
|
218
240
|
|
|
@@ -242,7 +264,7 @@ export const constructSpaceActions = ({
|
|
|
242
264
|
properties: {
|
|
243
265
|
label: ['migrate space label', { ns: SPACE_PLUGIN }],
|
|
244
266
|
icon: 'ph--database--regular',
|
|
245
|
-
disposition: '
|
|
267
|
+
disposition: 'list-item-primary',
|
|
246
268
|
disabled: migrating || Migrations.running(space),
|
|
247
269
|
},
|
|
248
270
|
});
|
|
@@ -277,7 +299,7 @@ export const constructSpaceActions = ({
|
|
|
277
299
|
label: ['share space label', { ns: SPACE_PLUGIN }],
|
|
278
300
|
icon: 'ph--users--regular',
|
|
279
301
|
disabled: locked,
|
|
280
|
-
disposition: '
|
|
302
|
+
disposition: 'list-item-primary',
|
|
281
303
|
iconOnly: false,
|
|
282
304
|
variant: 'default',
|
|
283
305
|
testId: 'spacePlugin.shareSpace',
|
|
@@ -357,7 +379,7 @@ export const constructSpaceActions = ({
|
|
|
357
379
|
properties: {
|
|
358
380
|
label: ['open space label', { ns: SPACE_PLUGIN }],
|
|
359
381
|
icon: 'ph--clock-counter-clockwise--regular',
|
|
360
|
-
disposition: '
|
|
382
|
+
disposition: 'list-item-primary',
|
|
361
383
|
},
|
|
362
384
|
});
|
|
363
385
|
}
|
|
@@ -433,7 +455,7 @@ export const constructObjectActions = ({
|
|
|
433
455
|
properties: {
|
|
434
456
|
label: ['create object in collection label', { ns: SPACE_PLUGIN }],
|
|
435
457
|
icon: 'ph--plus--regular',
|
|
436
|
-
disposition: '
|
|
458
|
+
disposition: 'list-item-primary',
|
|
437
459
|
testId: 'spacePlugin.createObject',
|
|
438
460
|
},
|
|
439
461
|
},
|
|
@@ -560,7 +582,7 @@ export const cloneObject = async (
|
|
|
560
582
|
newSpace: Space,
|
|
561
583
|
): Promise<Expando> => {
|
|
562
584
|
const schema = getSchema(object);
|
|
563
|
-
const typename = schema ?
|
|
585
|
+
const typename = schema ? getTypeAnnotation(schema)?.typename ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;
|
|
564
586
|
const metadata = resolve(typename);
|
|
565
587
|
const serializer = metadata.serializer;
|
|
566
588
|
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 { Capabilities, contributes, createIntent, type PluginsContext } from '@dxos/app-framework';\nimport {\n Expando,\n Filter,\n FQ_ID_LENGTH,\n getSpace,\n isEchoObject,\n isSpace,\n OBJECT_ID_LENGTH,\n type ReactiveEchoObject,\n SPACE_ID_LENGTH,\n SpaceState,\n type Space,\n} from '@dxos/client/echo';\nimport { isDeleted } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { createExtension, toSignal, type Node, type InvokeParams } from '@dxos/plugin-graph';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, SpaceAction, type SpaceSettingsProps } from '../types';\nimport {\n constructObjectActions,\n constructSpaceActions,\n constructSpaceNode,\n createObjectNode,\n memoizeQuery,\n SHARED,\n SPACES,\n} from '../util';\n\nexport default (context: PluginsContext) => {\n const resolve = (typename: string) =>\n context.requestCapabilities(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.requestCapability(Capabilities.AppGraph);\n const client = context.requestCapability(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.schema(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 filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id: SpaceAction.AddSpace._tag,\n data: async (params: InvokeParams) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.AddSpace));\n },\n properties: {\n label: ['add space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.addSpace',\n disposition: 'item',\n position: 'fallback',\n },\n },\n ],\n }),\n\n // Create spaces group node.\n createExtension({\n id: `${SPACE_PLUGIN}/root`,\n position: 'hoist',\n filter: (node): node is Node<null> => node.id === 'root',\n connector: () => [spacesNode],\n resolver: ({ id }) => (id === SPACES ? spacesNode : undefined),\n }),\n\n // Create space nodes.\n createExtension({\n id: SPACES,\n filter: (node): node is Node<null> => node.id === SPACES,\n connector: () => {\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 state = context.requestCapability(SpaceCapabilities.State);\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<SpaceSettingsProps>(SPACE_PLUGIN)?.value;\n\n // TODO(wittjosiah): During client reset, accessing default space throws.\n try {\n const [spacesOrder] = memoizeQuery(client.spaces.default, Filter.schema(Expando, { key: SHARED }));\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) => (settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE))\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 } catch {}\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 filter: (node): node is Node<Space> => isSpace(node.data),\n actions: ({ node }) => {\n const space = node.data;\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const client = context.requestCapability(ClientCapabilities.Client);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructSpaceActions({\n space,\n dispatch,\n personal: space === client.spaces.default,\n migrating: state.sdkMigrationRunning[space.id],\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 filter: (node): node is Node<Space> => isSpace(node.data),\n connector: ({ node }) => {\n const space = node.data;\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 collection = space.properties[CollectionType.typename]?.target as CollectionType | undefined;\n if (!collection) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\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 filter: (node): node is Node<CollectionType> => node.data instanceof CollectionType,\n connector: ({ node }) => {\n const collection = node.data;\n const space = getSpace(collection);\n if (!space) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\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, { id: 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 filter: (node): node is Node<ReactiveEchoObject<any>> => isEchoObject(node.data),\n actions: ({ node }) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructObjectActions({ node, dispatch, navigable: state.navigableCollections });\n },\n }),\n ]);\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Capabilities", "contributes", "createIntent", "Expando", "Filter", "FQ_ID_LENGTH", "getSpace", "isEchoObject", "isSpace", "OBJECT_ID_LENGTH", "SPACE_ID_LENGTH", "SpaceState", "isDeleted", "log", "ClientCapabilities", "createExtension", "toSignal", "isNonNullable", "context", "resolve", "typename", "requestCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "SPACE_PLUGIN", "icon", "testId", "role", "disposition", "disabled", "childrenPersistenceClass", "onRearrangeChildren", "nextOrder", "graph", "requestCapability", "AppGraph", "client", "ClientCapabilities", "Client", "_sortEdges", "map", "objects", "spacesOrder", "spaces", "default", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "order", "log", "warn", "contributes", "AppGraphBuilder", "createExtension", "position", "filter", "node", "actions", "SpaceAction", "AddSpace", "_tag", "data", "params", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "connector", "resolver", "undefined", "toSignal", "onChange", "subscribe", "unsubscribe", "get", "isReady", "state", "SpaceCapabilities", "State", "settings", "SettingsStore", "getStore", "value", "memoizeQuery", "orderMap", "Map", "index", "space", "has", "sort", "a", "b", "showHidden", "SpaceState", "SPACE_INACTIVE", "constructSpaceNode", "navigable", "navigableCollections", "personal", "namesCache", "spaceNames", "length", "SPACE_ID_LENGTH", "SPACE_READY", "isSpace", "constructSpaceActions", "migrating", "sdkMigrationRunning", "spaceState", "collection", "CollectionType", "target", "object", "isNonNullable", "createObjectNode", "getSpace", "FQ_ID_LENGTH", "spaceId", "objectId", "split", "OBJECT_ID_LENGTH", "isDeleted", "isEchoObject", "constructObjectActions"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/util.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createIntent, type PromiseIntentDispatcher, LayoutAction } from '@dxos/app-framework';\nimport { EXPANDO_TYPENAME, getObjectAnnotation, getTypename, type Expando } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { getSchema, isReactiveObject, makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n cleanup,\n getGraph,\n memoize,\n type ActionData,\n type Graph,\n type InvokeParams,\n type Node,\n type NodeArg,\n} from '@dxos/plugin-graph';\nimport {\n Filter,\n fullyQualifiedId,\n getSpace,\n isEchoObject,\n isSpace,\n SpaceState,\n type Echo,\n type FilterSource,\n type Query,\n type QueryOptions,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { CollectionType, SpaceAction } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const SPACE_TYPE = 'dxos.org/type/Space';\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\nconst EMPTY_ARRAY: never[] = [];\n\n/**\n *\n * @param spaceOrEcho\n * @param filter\n * @param options\n * @returns\n */\nexport const memoizeQuery = <T extends ReactiveEchoObject<any>>(\n spaceOrEcho?: Space | Echo,\n filter?: FilterSource<T>,\n options?: QueryOptions,\n): T[] => {\n const key = JSON.stringify({\n space: isSpace(spaceOrEcho) ? spaceOrEcho.id : undefined,\n filter: Filter.from(filter).toProto(),\n });\n\n const query = memoize(\n () =>\n isSpace(spaceOrEcho)\n ? spaceOrEcho.db.query(filter, options)\n : (spaceOrEcho?.query(filter, options) as Query<T> | undefined),\n key,\n );\n const unsubscribe = memoize(() => query?.subscribe(), key);\n cleanup(() => unsubscribe?.());\n\n return query?.objects ?? EMPTY_ARRAY;\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 disabled: !navigable,\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<ReactiveEchoObject<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<ReactiveEchoObject<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<ReactiveEchoObject<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 };\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: 'toolbar',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n const locked = space.properties[COMPOSER_SPACE_LOCK];\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.Share._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n return;\n }\n await dispatch(createIntent(SpaceAction.Share, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n disabled: locked,\n disposition: 'toolbar',\n iconOnly: false,\n variant: 'default',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: locked ? getId(SpaceAction.Unlock._tag) : getId(SpaceAction.Lock._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n await dispatch(createIntent(SpaceAction.Unlock, { space }));\n } else {\n await dispatch(createIntent(SpaceAction.Lock, { space }));\n }\n },\n properties: {\n label: [locked ? 'unlock space label' : 'lock space label', { ns: SPACE_PLUGIN }],\n icon: locked ? 'ph--lock-simple-open--regular' : 'ph--lock-simple--regular',\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 id: getId(SpaceAction.OpenSettings._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--gear--regular',\n },\n },\n );\n }\n\n // TODO(wittjosiah): Consider moving close space into the space settings dialog.\n if (state !== SpaceState.SPACE_INACTIVE && !hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Close._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Close, { space }));\n },\n properties: {\n label: ['close space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--x--regular',\n disabled: personal,\n },\n });\n }\n\n if (state === SpaceState.SPACE_INACTIVE) {\n actions.push({\n id: getId(SpaceAction.Open._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Open, { space }));\n },\n properties: {\n label: ['open space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--clock-counter-clockwise--regular',\n disposition: 'toolbar',\n },\n });\n }\n\n return actions;\n};\n\nexport const createObjectNode = ({\n object,\n space,\n navigable = false,\n resolve,\n}: {\n object: ReactiveEchoObject<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 node,\n dispatch,\n navigable = false,\n}: {\n node: Node<ReactiveEchoObject<any>>;\n dispatch: PromiseIntentDispatcher;\n navigable?: boolean;\n}) => {\n const object = node.data;\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: 'toolbar',\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): Doesn't work.\n // keyBinding: 'shift+F6',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const graph = getGraph(node);\n const collection = graph\n .nodes(node, { relation: '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\n */\nexport const getActiveSpace = (graph: Graph, active?: string) => {\n if (!active) {\n return;\n }\n\n const node = graph.findNode(active);\n if (!node || !isReactiveObject(node.data)) {\n return;\n }\n\n return getSpace(node.data);\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: ReactiveEchoObject<any>,\n resolve: (typename: string) => Record<string, any>,\n): Promise<ReactiveEchoObject<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: ReactiveEchoObject<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 ? getObjectAnnotation(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": ["createIntent", "LayoutAction", "EXPANDO_TYPENAME", "getObjectAnnotation", "getTypename", "invariant", "getSchema", "isReactiveObject", "makeRef", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "cleanup", "getGraph", "memoize", "Filter", "fullyQualifiedId", "getSpace", "isEchoObject", "isSpace", "SpaceState", "SPACES", "SPACE_PLUGIN", "SPACE_TYPE", "COMPOSER_SPACE_LOCK", "SHARED", "EMPTY_ARRAY", "memoizeQuery", "spaceOrEcho", "filter", "options", "key", "JSON", "stringify", "space", "isSpace", "id", "undefined", "Filter", "from", "toProto", "query", "memoize", "db", "unsubscribe", "subscribe", "cleanup", "objects", "getSpaceDisplayName", "personal", "namesCache", "state", "get", "SpaceState", "SPACE_READY", "properties", "name", "length", "ns", "getCollectionGraphNodePartials", "navigable", "collection", "resolve", "disabled", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "isEchoObject", "map", "makeRef", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "add", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "hasPendingMigration", "CollectionType", "typename", "partials", "type", "cacheable", "label", "description", "hue", "icon", "testId", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "disposition", "running", "locked", "OpenCreateObject", "ACTION_TYPE", "Share", "iconOnly", "variant", "keyBinding", "macos", "windows", "Unlock", "Lock", "Rename", "params", "caller", "OpenSettings", "SPACE_INACTIVE", "Close", "Open", "createObjectNode", "getTypename", "metadata", "Object", "keys", "graphProps", "fullyQualifiedId", "default", "persistenceClass", "persistenceKey", "constructObjectActions", "node", "getSpace", "invariant", "RenameObject", "RemoveObjects", "graph", "getGraph", "nodes", "relation", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "LayoutAction", "Expose", "part", "subject", "getActiveSpace", "active", "findNode", "isReactiveObject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "schema", "getSchema", "getObjectAnnotation", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
|
|
7
|
-
}
|