@dxos/plugin-space 0.8.4-main.5ad4a44 → 0.8.4-main.66e292d
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/{CollectionMain-AX7KKXWP.mjs → CollectionArticle-WTHWY4YS.mjs} +8 -8
- package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetailsPanel-ACGHWPDX.mjs +141 -0
- package/dist/lib/browser/ObjectDetailsPanel-ACGHWPDX.mjs.map +7 -0
- package/dist/lib/browser/ObjectSettings-U3IH7BMV.mjs +144 -0
- package/dist/lib/browser/ObjectSettings-U3IH7BMV.mjs.map +7 -0
- package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs +116 -0
- package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-Y2LBZX2G.mjs → app-graph-builder-HABMCWAI.mjs} +170 -173
- package/dist/lib/browser/app-graph-builder-HABMCWAI.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-425OVRTW.mjs → app-graph-serializer-G3VFEGTN.mjs} +10 -10
- package/dist/lib/browser/app-graph-serializer-G3VFEGTN.mjs.map +7 -0
- package/dist/lib/browser/chunk-6A3NWBB6.mjs +392 -0
- package/dist/lib/browser/chunk-6A3NWBB6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PUF3B7XO.mjs → chunk-C6DAPIFF.mjs} +4 -4
- package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-X6COEDOD.mjs → chunk-GJOZILGC.mjs} +182 -118
- package/dist/lib/browser/chunk-GJOZILGC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6KVKMOGQ.mjs → chunk-KCZ527AM.mjs} +607 -456
- package/dist/lib/browser/chunk-KCZ527AM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-CVZAZRW4.mjs → chunk-P25R3AOK.mjs} +34 -4
- package/dist/lib/browser/chunk-P25R3AOK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YZJWWMNB.mjs → chunk-POFUXISV.mjs} +68 -62
- package/dist/lib/browser/chunk-POFUXISV.mjs.map +7 -0
- package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
- package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-EIXZABXD.mjs → chunk-WJXU4GKV.mjs} +2 -2
- package/dist/lib/browser/{identity-created-PW2BA46S.mjs → identity-created-NAXTPQXE.mjs} +3 -3
- package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +83 -110
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-2TBYHOBA.mjs → intent-resolver-RZEWNJ2K.mjs} +90 -82
- package/dist/lib/browser/intent-resolver-RZEWNJ2K.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-KMJXJ5VX.mjs → react-root-JCRD74GI.mjs} +9 -8
- package/dist/lib/browser/react-root-JCRD74GI.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-YAJUAMER.mjs → react-surface-VOETEAG3.mjs} +64 -84
- package/dist/lib/browser/react-surface-VOETEAG3.mjs.map +7 -0
- package/dist/lib/browser/repair-CNLE35NF.mjs +44 -0
- package/dist/lib/browser/repair-CNLE35NF.mjs.map +7 -0
- package/dist/lib/browser/{settings-UYYJ225A.mjs → settings-TRLI52I5.mjs} +3 -3
- package/dist/lib/browser/{spaces-ready-YNZPWXA3.mjs → spaces-ready-OHGCWZHQ.mjs} +19 -12
- package/dist/lib/browser/spaces-ready-OHGCWZHQ.mjs.map +7 -0
- package/dist/lib/browser/{state-BPU73TYO.mjs → state-C7N6EDDZ.mjs} +3 -3
- package/dist/lib/browser/types/index.mjs +10 -4
- package/dist/lib/node-esm/{CollectionMain-EU57SRYK.mjs → CollectionArticle-KHXYT3SH.mjs} +8 -8
- package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-6OFTT3GG.mjs +142 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-6OFTT3GG.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectSettings-YXPJQMJ5.mjs +145 -0
- package/dist/lib/node-esm/ObjectSettings-YXPJQMJ5.mjs.map +7 -0
- package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs +117 -0
- package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-DMNLDT7E.mjs → app-graph-builder-T6VJKIOA.mjs} +170 -173
- package/dist/lib/node-esm/app-graph-builder-T6VJKIOA.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-ZEDSY77N.mjs → app-graph-serializer-2NLWWFUB.mjs} +10 -10
- package/dist/lib/node-esm/app-graph-serializer-2NLWWFUB.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FLRC6XWU.mjs → chunk-7EV4SN47.mjs} +33 -4
- package/dist/lib/node-esm/chunk-7EV4SN47.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7UIEPBQJ.mjs → chunk-AX3UGL5D.mjs} +68 -62
- package/dist/lib/node-esm/chunk-AX3UGL5D.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
- package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs → chunk-H4JILUJK.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-ZFCCFELA.mjs → chunk-I6FZP42D.mjs} +182 -118
- package/dist/lib/node-esm/chunk-I6FZP42D.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-L26ZIGHA.mjs → chunk-JAMGJUFU.mjs} +607 -456
- package/dist/lib/node-esm/chunk-JAMGJUFU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-36TAYXV7.mjs → chunk-WWGV5FJM.mjs} +4 -4
- package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-X34VDVMY.mjs +393 -0
- package/dist/lib/node-esm/chunk-X34VDVMY.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-MWTLGQRU.mjs → identity-created-OXLKCJE3.mjs} +3 -3
- package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +83 -110
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-YOG27WOG.mjs → intent-resolver-4PHJWDXW.mjs} +90 -82
- package/dist/lib/node-esm/intent-resolver-4PHJWDXW.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-27QMJZD2.mjs → react-root-O5I5CDJ7.mjs} +9 -8
- package/dist/lib/node-esm/react-root-O5I5CDJ7.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-RC73GAN5.mjs → react-surface-J3XDMU2D.mjs} +64 -84
- package/dist/lib/node-esm/react-surface-J3XDMU2D.mjs.map +7 -0
- package/dist/lib/node-esm/repair-EHZS6MFY.mjs +45 -0
- package/dist/lib/node-esm/repair-EHZS6MFY.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-Q736OQRP.mjs → settings-MNQTKHL7.mjs} +3 -3
- package/dist/lib/node-esm/{spaces-ready-XZQD7Q65.mjs → spaces-ready-ZPU24DA2.mjs} +19 -12
- package/dist/lib/node-esm/spaces-ready-ZPU24DA2.mjs.map +7 -0
- package/dist/lib/node-esm/{state-BY75TM32.mjs → state-45TXZQJ6.mjs} +3 -3
- package/dist/lib/node-esm/types/index.mjs +10 -4
- 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 +12 -6
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair.d.ts +4 -0
- package/dist/types/src/capabilities/repair.d.ts.map +1 -0
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionArticle.d.ts +6 -0
- package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
- package/dist/types/src/components/CollectionSection.d.ts +3 -4
- 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/CreateObjectDialog.stories.d.ts +218 -214
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +16 -9
- 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/JoinDialog.d.ts.map +1 -0
- package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
- package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1591 -0
- package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
- package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
- package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
- package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
- 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/BaseObjectSettings.stories.d.ts +1424 -0
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +3 -3
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
- package/dist/types/src/components/RecordArticle.d.ts +5 -0
- package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
- package/dist/types/src/components/{MembersContainer.stories.d.ts → RecordArticle.stories.d.ts} +219 -215
- package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
- package/dist/types/src/components/SchemaContainer.d.ts +2 -2
- package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +6 -5
- package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
- package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +218 -214
- package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
- package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
- package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +218 -214
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +219 -215
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor.d.ts +3 -4
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +10 -17
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/helpers/index.d.ts +2 -0
- package/dist/types/src/helpers/index.d.ts.map +1 -0
- package/dist/types/src/helpers/query.d.ts +8 -0
- package/dist/types/src/helpers/query.d.ts.map +1 -0
- package/dist/types/src/helpers/query.test.d.ts +2 -0
- package/dist/types/src/helpers/query.test.d.ts.map +1 -0
- 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.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
- package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +218 -214
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +24 -0
- package/dist/types/src/types/form.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +33 -74
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +19 -33
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +57 -48
- package/src/SpacePlugin.ts +64 -89
- package/src/capabilities/app-graph-builder.ts +165 -233
- package/src/capabilities/app-graph-serializer.ts +5 -5
- package/src/capabilities/capabilities.ts +18 -8
- package/src/capabilities/identity-created.ts +2 -2
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +66 -66
- package/src/capabilities/react-root.tsx +2 -1
- package/src/capabilities/react-surface.tsx +69 -119
- package/src/capabilities/repair.ts +57 -0
- package/src/capabilities/spaces-ready.ts +14 -5
- package/src/components/AwaitingObject.tsx +11 -13
- package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +5 -4
- package/src/components/CollectionSection.tsx +6 -4
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +6 -6
- package/src/components/CreateDialog/CreateObjectDialog.tsx +57 -40
- package/src/components/CreateDialog/CreateObjectPanel.tsx +33 -26
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +25 -7
- package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +21 -5
- package/src/components/JoinDialog/index.ts +5 -0
- package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +1 -1
- package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +11 -9
- package/src/components/MembersContainer/index.ts +5 -0
- package/src/components/{ObjectDetailsPanel.tsx → ObjectDetailsPanel/ObjectDetailsPanel.tsx} +8 -36
- package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
- package/src/components/ObjectDetailsPanel/index.ts +7 -0
- package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +5 -5
- package/src/components/ObjectRenamePopover/index.ts +5 -0
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -5
- package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
- package/src/components/ObjectSettings/ForeignKeys.tsx +6 -6
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +1 -1
- package/src/components/ObjectSettings/index.ts +3 -1
- package/src/components/RecordArticle.stories.tsx +115 -0
- package/src/components/RecordArticle.tsx +114 -0
- package/src/components/SchemaContainer.tsx +21 -24
- package/src/components/SpacePluginSettings.tsx +8 -2
- package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +1 -1
- package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +14 -9
- package/src/components/SpacePresence/index.ts +5 -0
- package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +6 -5
- package/src/components/SpaceRenamePopover/index.ts +5 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +52 -13
- package/src/components/SyncStatus/InlineSyncStatus.tsx +5 -5
- package/src/components/SyncStatus/SyncStatus.stories.tsx +3 -2
- package/src/components/SyncStatus/SyncStatus.tsx +105 -9
- package/src/components/ViewEditor.tsx +57 -18
- package/src/components/index.ts +7 -8
- package/src/helpers/index.ts +5 -0
- package/src/helpers/query.test.ts +24 -0
- package/src/helpers/query.ts +158 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useActiveSpace.ts +2 -1
- package/src/hooks/useInputSurfaceLookup.tsx +7 -2
- package/src/hooks/useTypeOptions.ts +27 -0
- package/src/index.ts +1 -0
- package/src/meta.ts +5 -0
- package/src/translations.ts +67 -58
- package/src/types/form.ts +75 -0
- package/src/types/index.ts +1 -0
- package/src/types/types.ts +39 -44
- package/src/util.tsx +187 -121
- package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetailsPanel-SJ4XUXXX.mjs +0 -90
- package/dist/lib/browser/ObjectDetailsPanel-SJ4XUXXX.mjs.map +0 -7
- package/dist/lib/browser/RecordMain-FHPCS6GM.mjs +0 -68
- package/dist/lib/browser/RecordMain-FHPCS6GM.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-Y2LBZX2G.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-425OVRTW.mjs.map +0 -7
- package/dist/lib/browser/chunk-6KVKMOGQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-CVZAZRW4.mjs.map +0 -7
- package/dist/lib/browser/chunk-IRKDREHY.mjs +0 -11
- package/dist/lib/browser/chunk-IRKDREHY.mjs.map +0 -7
- package/dist/lib/browser/chunk-OYHC63NL.mjs +0 -344
- package/dist/lib/browser/chunk-OYHC63NL.mjs.map +0 -7
- package/dist/lib/browser/chunk-PUF3B7XO.mjs.map +0 -7
- package/dist/lib/browser/chunk-X6COEDOD.mjs.map +0 -7
- package/dist/lib/browser/chunk-YZJWWMNB.mjs.map +0 -7
- package/dist/lib/browser/identity-created-PW2BA46S.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-2TBYHOBA.mjs.map +0 -7
- package/dist/lib/browser/react-root-KMJXJ5VX.mjs.map +0 -7
- package/dist/lib/browser/react-surface-YAJUAMER.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-2OCPV7JF.mjs +0 -26
- package/dist/lib/browser/schema-defs-2OCPV7JF.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-YNZPWXA3.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectDetailsPanel-P7D727OV.mjs +0 -91
- package/dist/lib/node-esm/ObjectDetailsPanel-P7D727OV.mjs.map +0 -7
- package/dist/lib/node-esm/RecordMain-V73AEB6N.mjs +0 -70
- package/dist/lib/node-esm/RecordMain-V73AEB6N.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-DMNLDT7E.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-ZEDSY77N.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-36TAYXV7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7UIEPBQJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ADEZJQE3.mjs +0 -345
- package/dist/lib/node-esm/chunk-ADEZJQE3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FLRC6XWU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-L26ZIGHA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MWNATOXL.mjs +0 -13
- package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZFCCFELA.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-YOG27WOG.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-27QMJZD2.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-RC73GAN5.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-X2Z7F2EV.mjs +0 -27
- package/dist/lib/node-esm/schema-defs-X2Z7F2EV.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-XZQD7Q65.mjs.map +0 -7
- package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
- package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
- package/dist/types/src/components/CollectionMain.d.ts +0 -7
- package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
- package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
- package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
- package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
- package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
- package/dist/types/src/components/RecordMain.d.ts +0 -7
- package/dist/types/src/components/RecordMain.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
- package/src/capabilities/schema-defs.ts +0 -31
- package/src/components/PersistenceStatus.tsx +0 -83
- package/src/components/RecordMain.tsx +0 -43
- /package/dist/lib/browser/{chunk-EIXZABXD.mjs.map → chunk-WJXU4GKV.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-UYYJ225A.mjs.map → settings-TRLI52I5.mjs.map} +0 -0
- /package/dist/lib/browser/{state-BPU73TYO.mjs.map → state-C7N6EDDZ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs.map → chunk-H4JILUJK.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-Q736OQRP.mjs.map → settings-MNQTKHL7.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-BY75TM32.mjs.map → state-45TXZQJ6.mjs.map} +0 -0
- /package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +0 -0
- /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
package/src/util.tsx
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';
|
|
6
|
+
import { Atom } from '@effect-atom/atom-react';
|
|
6
7
|
import * as Function from 'effect/Function';
|
|
8
|
+
import type * as Schema from 'effect/Schema';
|
|
7
9
|
|
|
8
10
|
import { LayoutAction, type PromiseIntentDispatcher, chain, createIntent } from '@dxos/app-framework';
|
|
9
|
-
import { Obj, Ref, Type } from '@dxos/echo';
|
|
10
|
-
import {
|
|
11
|
+
import { type Database, type Entity, Filter, Obj, Query, Ref, Type } from '@dxos/echo';
|
|
12
|
+
import { EXPANDO_TYPENAME } from '@dxos/echo/internal';
|
|
11
13
|
import { invariant } from '@dxos/invariant';
|
|
12
14
|
import { Migrations } from '@dxos/migrations';
|
|
13
15
|
import {
|
|
@@ -20,13 +22,13 @@ import {
|
|
|
20
22
|
type ReadableGraph,
|
|
21
23
|
isGraphNode,
|
|
22
24
|
} from '@dxos/plugin-graph';
|
|
23
|
-
import { type
|
|
25
|
+
import { type Space, SpaceState, getSpace, isSpace } from '@dxos/react-client/echo';
|
|
24
26
|
import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
|
|
25
27
|
import { type TreeData } from '@dxos/react-ui-list';
|
|
26
|
-
import {
|
|
28
|
+
import { Collection } from '@dxos/schema';
|
|
27
29
|
|
|
28
30
|
import { meta } from './meta';
|
|
29
|
-
import {
|
|
31
|
+
import { SPACE_TYPE, SpaceAction } from './types';
|
|
30
32
|
|
|
31
33
|
export const SPACES = `${meta.id}-spaces`;
|
|
32
34
|
export const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
|
|
@@ -34,10 +36,10 @@ export const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
|
|
|
34
36
|
export const SHARED = 'shared-spaces';
|
|
35
37
|
|
|
36
38
|
/**
|
|
37
|
-
* Convert a query result to an
|
|
39
|
+
* Convert a query result to an Atom value of the objects.
|
|
38
40
|
*/
|
|
39
|
-
export const
|
|
40
|
-
return
|
|
41
|
+
export const atomFromQuery = <T extends Entity.Unknown>(query: Database.QueryResult<T>): Atom.Atom<T[]> => {
|
|
42
|
+
return Atom.make((get) => {
|
|
41
43
|
const unsubscribe = query.subscribe((result) => {
|
|
42
44
|
get.setSelf(result.objects);
|
|
43
45
|
});
|
|
@@ -53,7 +55,7 @@ export const getSpaceDisplayName = (
|
|
|
53
55
|
{ personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},
|
|
54
56
|
): string | [string, { ns: string }] => {
|
|
55
57
|
return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0
|
|
56
|
-
? space.properties.name
|
|
58
|
+
? space.properties.name!
|
|
57
59
|
: namesCache[space.id]
|
|
58
60
|
? namesCache[space.id]
|
|
59
61
|
: personal
|
|
@@ -66,7 +68,7 @@ const getCollectionGraphNodePartials = ({
|
|
|
66
68
|
space,
|
|
67
69
|
resolve,
|
|
68
70
|
}: {
|
|
69
|
-
collection:
|
|
71
|
+
collection: Collection.Collection;
|
|
70
72
|
space: Space;
|
|
71
73
|
resolve: (typename: string) => Record<string, any>;
|
|
72
74
|
}) => {
|
|
@@ -136,32 +138,23 @@ const getCollectionGraphNodePartials = ({
|
|
|
136
138
|
};
|
|
137
139
|
};
|
|
138
140
|
|
|
139
|
-
const
|
|
141
|
+
const getSystemCollectionNodePartials = ({
|
|
140
142
|
collection,
|
|
141
143
|
space,
|
|
142
144
|
resolve,
|
|
143
145
|
}: {
|
|
144
|
-
collection:
|
|
146
|
+
collection: Collection.Managed;
|
|
145
147
|
space: Space;
|
|
146
148
|
resolve: (typename: string) => Record<string, any>;
|
|
147
149
|
}) => {
|
|
148
|
-
const
|
|
150
|
+
const metadata = resolve(collection.key);
|
|
149
151
|
return {
|
|
150
|
-
|
|
152
|
+
label: ['typename label', { ns: collection.key, count: 2 }],
|
|
153
|
+
icon: metadata.icon,
|
|
154
|
+
iconHue: metadata.iconHue,
|
|
151
155
|
acceptPersistenceClass: new Set(['echo']),
|
|
152
156
|
acceptPersistenceKey: new Set([space.id]),
|
|
153
157
|
role: 'branch',
|
|
154
|
-
canDrop: (source: TreeData) => {
|
|
155
|
-
return (
|
|
156
|
-
isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename
|
|
157
|
-
);
|
|
158
|
-
},
|
|
159
|
-
onTransferStart: (child: Node<Obj.Any>, index?: number) => {
|
|
160
|
-
// No-op. Objects are moved into query collections by being removed from their original collection.
|
|
161
|
-
},
|
|
162
|
-
onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {
|
|
163
|
-
// No-op. Objects are moved out of query collections by being added to another collection.
|
|
164
|
-
},
|
|
165
158
|
};
|
|
166
159
|
};
|
|
167
160
|
|
|
@@ -172,24 +165,6 @@ const getSchemaGraphNodePartials = () => {
|
|
|
172
165
|
};
|
|
173
166
|
};
|
|
174
167
|
|
|
175
|
-
const getViewGraphNodePartials = ({
|
|
176
|
-
view,
|
|
177
|
-
resolve,
|
|
178
|
-
}: {
|
|
179
|
-
view: DataType.View;
|
|
180
|
-
resolve: (typename: string) => Record<string, any>;
|
|
181
|
-
}) => {
|
|
182
|
-
const presentation = view.presentation.target;
|
|
183
|
-
const typename = presentation ? Obj.getTypename(presentation) : undefined;
|
|
184
|
-
const metadata = typename ? resolve(typename) : {};
|
|
185
|
-
|
|
186
|
-
return {
|
|
187
|
-
label: view.name || ['object name placeholder', { ns: typename, default: 'New view' }],
|
|
188
|
-
icon: metadata.icon,
|
|
189
|
-
canDrop: () => false,
|
|
190
|
-
};
|
|
191
|
-
};
|
|
192
|
-
|
|
193
168
|
const checkPendingMigration = (space: Space) => {
|
|
194
169
|
return (
|
|
195
170
|
space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||
|
|
@@ -214,9 +189,9 @@ export const constructSpaceNode = ({
|
|
|
214
189
|
}) => {
|
|
215
190
|
const hasPendingMigration = checkPendingMigration(space);
|
|
216
191
|
const collection =
|
|
217
|
-
space.state.get() === SpaceState.SPACE_READY && space.properties[
|
|
192
|
+
space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;
|
|
218
193
|
const partials =
|
|
219
|
-
space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(
|
|
194
|
+
space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection)
|
|
220
195
|
? getCollectionGraphNodePartials({ collection, space, resolve })
|
|
221
196
|
: {};
|
|
222
197
|
|
|
@@ -234,6 +209,7 @@ export const constructSpaceNode = ({
|
|
|
234
209
|
space.state.get() === SpaceState.SPACE_READY && space.properties.icon
|
|
235
210
|
? `ph--${space.properties.icon}--regular`
|
|
236
211
|
: undefined,
|
|
212
|
+
iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,
|
|
237
213
|
disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
|
|
238
214
|
testId: 'spacePlugin.space',
|
|
239
215
|
canDrop: (source: TreeData) => {
|
|
@@ -355,14 +331,21 @@ export const constructSpaceActions = ({
|
|
|
355
331
|
return actions;
|
|
356
332
|
};
|
|
357
333
|
|
|
358
|
-
export const createStaticSchemaNode = ({
|
|
334
|
+
export const createStaticSchemaNode = ({
|
|
335
|
+
schema,
|
|
336
|
+
space,
|
|
337
|
+
}: {
|
|
338
|
+
schema: Schema.Schema.AnyNoContext;
|
|
339
|
+
space: Space;
|
|
340
|
+
}): Node => {
|
|
359
341
|
return {
|
|
360
342
|
id: `${space.id}/${Type.getTypename(schema)}`,
|
|
361
343
|
type: `${meta.id}/static-schema`,
|
|
362
344
|
data: schema,
|
|
363
345
|
properties: {
|
|
364
|
-
label: ['typename label', { ns: Type.getTypename(schema), default: Type.getTypename(schema) }],
|
|
346
|
+
label: ['typename label', { ns: Type.getTypename(schema), count: 2, default: Type.getTypename(schema) }],
|
|
365
347
|
icon: 'ph--database--regular',
|
|
348
|
+
iconHue: 'green',
|
|
366
349
|
role: 'branch',
|
|
367
350
|
selectable: false,
|
|
368
351
|
canDrop: () => false,
|
|
@@ -398,7 +381,7 @@ export const createStaticSchemaActions = ({
|
|
|
398
381
|
);
|
|
399
382
|
},
|
|
400
383
|
properties: {
|
|
401
|
-
label: ['add view to schema label', { ns:
|
|
384
|
+
label: ['add view to schema label', { ns: meta.id }],
|
|
402
385
|
icon: 'ph--plus--regular',
|
|
403
386
|
disposition: 'list-item-primary',
|
|
404
387
|
testId: 'spacePlugin.addViewToSchema',
|
|
@@ -411,7 +394,7 @@ export const createStaticSchemaActions = ({
|
|
|
411
394
|
throw new Error('Not implemented');
|
|
412
395
|
},
|
|
413
396
|
properties: {
|
|
414
|
-
label: ['rename object label', { ns: Type.getTypename(
|
|
397
|
+
label: ['rename object label', { ns: Type.getTypename(Type.PersistentType) }],
|
|
415
398
|
icon: 'ph--pencil-simple-line--regular',
|
|
416
399
|
disabled: true,
|
|
417
400
|
disposition: 'list-item',
|
|
@@ -430,13 +413,37 @@ export const createStaticSchemaActions = ({
|
|
|
430
413
|
}
|
|
431
414
|
},
|
|
432
415
|
properties: {
|
|
433
|
-
label: ['delete object label', { ns: Type.getTypename(
|
|
416
|
+
label: ['delete object label', { ns: Type.getTypename(Type.PersistentType) }],
|
|
434
417
|
icon: 'ph--trash--regular',
|
|
435
418
|
disposition: 'list-item',
|
|
436
419
|
disabled: !deletable,
|
|
437
420
|
testId: 'spacePlugin.deleteObject',
|
|
438
421
|
},
|
|
439
422
|
},
|
|
423
|
+
{
|
|
424
|
+
id: getId(SpaceAction.Snapshot._tag),
|
|
425
|
+
type: ACTION_TYPE,
|
|
426
|
+
data: async () => {
|
|
427
|
+
const result = await dispatch(
|
|
428
|
+
createIntent(SpaceAction.Snapshot, {
|
|
429
|
+
space,
|
|
430
|
+
query: Query.select(Filter.type(schema)).ast,
|
|
431
|
+
}),
|
|
432
|
+
);
|
|
433
|
+
if (result.data?.snapshot) {
|
|
434
|
+
await downloadBlob(
|
|
435
|
+
result.data.snapshot,
|
|
436
|
+
// TODO(wittjosiah): Factor out file name construction.
|
|
437
|
+
`${new Date().toISOString()}-${space.id}-${Type.getTypename(schema)}.json`,
|
|
438
|
+
);
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
properties: {
|
|
442
|
+
label: ['snapshot by schema label', { ns: meta.id }],
|
|
443
|
+
icon: 'ph--camera--regular',
|
|
444
|
+
disposition: 'list-item',
|
|
445
|
+
},
|
|
446
|
+
},
|
|
440
447
|
];
|
|
441
448
|
|
|
442
449
|
return actions;
|
|
@@ -448,6 +455,7 @@ export const createObjectNode = ({
|
|
|
448
455
|
disposition,
|
|
449
456
|
droppable = true,
|
|
450
457
|
navigable = false,
|
|
458
|
+
managedCollectionChild = false,
|
|
451
459
|
resolve,
|
|
452
460
|
}: {
|
|
453
461
|
space: Space;
|
|
@@ -455,6 +463,7 @@ export const createObjectNode = ({
|
|
|
455
463
|
disposition?: string;
|
|
456
464
|
droppable?: boolean;
|
|
457
465
|
navigable?: boolean;
|
|
466
|
+
managedCollectionChild?: boolean;
|
|
458
467
|
resolve: (typename: string) => Record<string, any>;
|
|
459
468
|
}) => {
|
|
460
469
|
const type = Obj.getTypename(object);
|
|
@@ -463,15 +472,13 @@ export const createObjectNode = ({
|
|
|
463
472
|
}
|
|
464
473
|
|
|
465
474
|
const metadata = resolve(type);
|
|
466
|
-
const partials = Obj.instanceOf(
|
|
475
|
+
const partials = Obj.instanceOf(Collection.Collection, object)
|
|
467
476
|
? getCollectionGraphNodePartials({ collection: object, space, resolve })
|
|
468
|
-
: Obj.instanceOf(
|
|
469
|
-
?
|
|
470
|
-
: Obj.instanceOf(
|
|
477
|
+
: Obj.instanceOf(Collection.Managed, object)
|
|
478
|
+
? getSystemCollectionNodePartials({ collection: object, space, resolve })
|
|
479
|
+
: Obj.instanceOf(Type.PersistentType, object)
|
|
471
480
|
? getSchemaGraphNodePartials()
|
|
472
|
-
:
|
|
473
|
-
? getViewGraphNodePartials({ view: object, resolve })
|
|
474
|
-
: metadata.graphProps;
|
|
481
|
+
: metadata.graphProps;
|
|
475
482
|
|
|
476
483
|
// TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.
|
|
477
484
|
// e.g., create new collection with no name and rename it.
|
|
@@ -481,24 +488,39 @@ export const createObjectNode = ({
|
|
|
481
488
|
metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];
|
|
482
489
|
|
|
483
490
|
const selectable =
|
|
484
|
-
(!Obj.instanceOf(
|
|
485
|
-
!Obj.instanceOf(
|
|
486
|
-
!Obj.instanceOf(
|
|
487
|
-
(navigable && Obj.instanceOf(
|
|
491
|
+
(!Obj.instanceOf(Type.PersistentType, object) &&
|
|
492
|
+
!Obj.instanceOf(Collection.Managed, object) &&
|
|
493
|
+
!Obj.instanceOf(Collection.Collection, object)) ||
|
|
494
|
+
(navigable && Obj.instanceOf(Collection.Collection, object));
|
|
488
495
|
|
|
489
496
|
return {
|
|
490
|
-
id:
|
|
497
|
+
id: Obj.getDXN(object).toString(),
|
|
491
498
|
type,
|
|
492
499
|
cacheable: ['label', 'icon', 'role'],
|
|
493
500
|
data: object,
|
|
494
501
|
properties: {
|
|
495
502
|
label,
|
|
496
503
|
icon: metadata.icon ?? 'ph--placeholder--regular',
|
|
504
|
+
iconHue: metadata.iconHue,
|
|
497
505
|
disposition,
|
|
498
506
|
testId: 'spacePlugin.object',
|
|
499
507
|
persistenceClass: 'echo',
|
|
500
508
|
persistenceKey: space?.id,
|
|
501
509
|
selectable,
|
|
510
|
+
managedCollectionChild,
|
|
511
|
+
blockInstruction: (source: TreeData, instruction: Instruction) => {
|
|
512
|
+
if (source.item.properties.managedCollectionChild) {
|
|
513
|
+
// TODO(wittjosiah): Support reordering system collections.
|
|
514
|
+
// return !(managedCollectionChild && source.item.type === type && instruction.type.startsWith('reorder'));
|
|
515
|
+
return true;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
if (Obj.instanceOf(Collection.Managed, object)) {
|
|
519
|
+
return !instruction.type.startsWith('reorder');
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
return managedCollectionChild;
|
|
523
|
+
},
|
|
502
524
|
canDrop: (source: TreeData) => {
|
|
503
525
|
return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
|
|
504
526
|
},
|
|
@@ -511,14 +533,14 @@ export const constructObjectActions = ({
|
|
|
511
533
|
object,
|
|
512
534
|
graph,
|
|
513
535
|
dispatch,
|
|
514
|
-
|
|
536
|
+
resolve,
|
|
515
537
|
deletable = true,
|
|
516
538
|
navigable = false,
|
|
517
539
|
}: {
|
|
518
540
|
object: Obj.Any;
|
|
519
541
|
graph: ReadableGraph;
|
|
520
542
|
dispatch: PromiseIntentDispatcher;
|
|
521
|
-
|
|
543
|
+
resolve: (typename: string) => Record<string, any>;
|
|
522
544
|
deletable?: boolean;
|
|
523
545
|
navigable?: boolean;
|
|
524
546
|
}) => {
|
|
@@ -527,15 +549,15 @@ export const constructObjectActions = ({
|
|
|
527
549
|
const typename = Obj.getTypename(object);
|
|
528
550
|
invariant(typename, 'Object has no typename');
|
|
529
551
|
|
|
530
|
-
const getId = (id: string) => `${id}/${
|
|
552
|
+
const getId = (id: string) => `${id}/${Obj.getDXN(object).toString()}`;
|
|
531
553
|
|
|
532
|
-
const
|
|
533
|
-
const
|
|
534
|
-
|
|
535
|
-
|
|
554
|
+
const managedCollection = Obj.instanceOf(Collection.Managed, object) ? object : undefined;
|
|
555
|
+
const metadata = managedCollection ? resolve(managedCollection.key) : {};
|
|
556
|
+
const createObjectIntent = metadata.createObjectIntent;
|
|
557
|
+
const inputSchema = metadata.inputSchema;
|
|
536
558
|
|
|
537
559
|
const actions: NodeArg<ActionData>[] = [
|
|
538
|
-
...(Obj.instanceOf(
|
|
560
|
+
...(Obj.instanceOf(Collection.Collection, object)
|
|
539
561
|
? [
|
|
540
562
|
{
|
|
541
563
|
id: getId(SpaceAction.OpenCreateObject._tag),
|
|
@@ -552,7 +574,7 @@ export const constructObjectActions = ({
|
|
|
552
574
|
},
|
|
553
575
|
]
|
|
554
576
|
: []),
|
|
555
|
-
...(Obj.instanceOf(
|
|
577
|
+
...(Obj.instanceOf(Type.PersistentType, object)
|
|
556
578
|
? [
|
|
557
579
|
{
|
|
558
580
|
id: getId(SpaceAction.AddObject._tag),
|
|
@@ -567,31 +589,55 @@ export const constructObjectActions = ({
|
|
|
567
589
|
);
|
|
568
590
|
},
|
|
569
591
|
properties: {
|
|
570
|
-
label: ['add view to schema label', { ns:
|
|
592
|
+
label: ['add view to schema label', { ns: meta.id }],
|
|
571
593
|
icon: 'ph--plus--regular',
|
|
572
594
|
disposition: 'list-item-primary',
|
|
573
595
|
testId: 'spacePlugin.addViewToSchema',
|
|
574
596
|
},
|
|
575
597
|
},
|
|
598
|
+
{
|
|
599
|
+
id: getId(SpaceAction.Snapshot._tag),
|
|
600
|
+
type: ACTION_TYPE,
|
|
601
|
+
data: async () => {
|
|
602
|
+
const result = await dispatch(
|
|
603
|
+
createIntent(SpaceAction.Snapshot, {
|
|
604
|
+
space,
|
|
605
|
+
query: Query.select(Filter.type(Type.toEffectSchema(object.jsonSchema))).ast,
|
|
606
|
+
}),
|
|
607
|
+
);
|
|
608
|
+
if (result.data?.snapshot) {
|
|
609
|
+
await downloadBlob(
|
|
610
|
+
result.data.snapshot,
|
|
611
|
+
// TODO(wittjosiah): Factor out file name construction.
|
|
612
|
+
`${new Date().toISOString()}-${space.id}-${object.typename}.json`,
|
|
613
|
+
);
|
|
614
|
+
}
|
|
615
|
+
},
|
|
616
|
+
properties: {
|
|
617
|
+
label: ['snapshot by schema label', { ns: meta.id }],
|
|
618
|
+
icon: 'ph--camera--regular',
|
|
619
|
+
disposition: 'list-item',
|
|
620
|
+
},
|
|
621
|
+
},
|
|
576
622
|
]
|
|
577
623
|
: []),
|
|
578
|
-
...(
|
|
624
|
+
...(createObjectIntent
|
|
579
625
|
? [
|
|
580
626
|
{
|
|
581
627
|
id: getId(SpaceAction.OpenCreateObject._tag),
|
|
582
628
|
type: ACTION_TYPE,
|
|
583
629
|
data: async () => {
|
|
584
|
-
if (
|
|
630
|
+
if (inputSchema) {
|
|
585
631
|
await dispatch(
|
|
586
632
|
createIntent(SpaceAction.OpenCreateObject, {
|
|
587
633
|
target: space,
|
|
588
|
-
typename:
|
|
634
|
+
typename: managedCollection ? managedCollection.key : undefined,
|
|
589
635
|
}),
|
|
590
636
|
);
|
|
591
637
|
} else {
|
|
592
638
|
await dispatch(
|
|
593
639
|
Function.pipe(
|
|
594
|
-
|
|
640
|
+
createObjectIntent({}, { space }),
|
|
595
641
|
chain(SpaceAction.AddObject, { target: space, hidden: true }),
|
|
596
642
|
chain(LayoutAction.Open, { part: 'main' }),
|
|
597
643
|
),
|
|
@@ -599,7 +645,7 @@ export const constructObjectActions = ({
|
|
|
599
645
|
}
|
|
600
646
|
},
|
|
601
647
|
properties: {
|
|
602
|
-
label: ['create object in
|
|
648
|
+
label: ['create object in system collection label', { ns: meta.id }],
|
|
603
649
|
icon: 'ph--plus--regular',
|
|
604
650
|
disposition: 'list-item-primary',
|
|
605
651
|
testId: 'spacePlugin.createObject',
|
|
@@ -607,52 +653,56 @@ export const constructObjectActions = ({
|
|
|
607
653
|
},
|
|
608
654
|
]
|
|
609
655
|
: []),
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
656
|
+
...(managedCollection
|
|
657
|
+
? []
|
|
658
|
+
: [
|
|
659
|
+
{
|
|
660
|
+
id: getId(SpaceAction.RenameObject._tag),
|
|
661
|
+
type: ACTION_TYPE,
|
|
662
|
+
data: async (params?: InvokeParams) => {
|
|
663
|
+
await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params?.caller }));
|
|
664
|
+
},
|
|
665
|
+
properties: {
|
|
666
|
+
label: ['rename object label', { ns: typename }],
|
|
667
|
+
icon: 'ph--pencil-simple-line--regular',
|
|
668
|
+
disposition: 'list-item',
|
|
669
|
+
// TODO(wittjosiah): Not working.
|
|
670
|
+
// keyBinding: {
|
|
671
|
+
// macos: 'shift+F6',
|
|
672
|
+
// },
|
|
673
|
+
testId: 'spacePlugin.renameObject',
|
|
674
|
+
},
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
id: getId(SpaceAction.RemoveObjects._tag),
|
|
678
|
+
type: ACTION_TYPE,
|
|
679
|
+
data: async () => {
|
|
680
|
+
const collection = graph
|
|
681
|
+
.getConnections(Obj.getDXN(object).toString(), 'inbound')
|
|
682
|
+
.find(({ data }) => Obj.instanceOf(Collection.Collection, data))?.data;
|
|
683
|
+
await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));
|
|
684
|
+
},
|
|
685
|
+
properties: {
|
|
686
|
+
label: ['delete object label', { ns: typename }],
|
|
687
|
+
icon: 'ph--trash--regular',
|
|
688
|
+
disposition: 'list-item',
|
|
689
|
+
disabled: !deletable,
|
|
690
|
+
// TODO(wittjosiah): This is a browser shortcut.
|
|
691
|
+
// keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
|
|
692
|
+
testId: 'spacePlugin.deleteObject',
|
|
693
|
+
},
|
|
694
|
+
},
|
|
695
|
+
]),
|
|
646
696
|
...(navigable ||
|
|
647
|
-
(!Obj.instanceOf(
|
|
648
|
-
!Obj.instanceOf(
|
|
649
|
-
!Obj.instanceOf(
|
|
697
|
+
(!Obj.instanceOf(Collection.Collection, object) &&
|
|
698
|
+
!Obj.instanceOf(Collection.Managed, object) &&
|
|
699
|
+
!Obj.instanceOf(Type.PersistentType, object))
|
|
650
700
|
? [
|
|
651
701
|
{
|
|
652
702
|
id: getId('copy-link'),
|
|
653
703
|
type: ACTION_TYPE,
|
|
654
704
|
data: async () => {
|
|
655
|
-
const url = `${window.location.origin}/${space.id}/${
|
|
705
|
+
const url = `${window.location.origin}/${space.id}/${Obj.getDXN(object).toString()}`;
|
|
656
706
|
await navigator.clipboard.writeText(url);
|
|
657
707
|
},
|
|
658
708
|
properties: {
|
|
@@ -669,7 +719,9 @@ export const constructObjectActions = ({
|
|
|
669
719
|
id: getId(LayoutAction.Expose._tag),
|
|
670
720
|
type: ACTION_TYPE,
|
|
671
721
|
data: async () => {
|
|
672
|
-
await dispatch(
|
|
722
|
+
await dispatch(
|
|
723
|
+
createIntent(LayoutAction.Expose, { part: 'navigation', subject: Obj.getDXN(object).toString() }),
|
|
724
|
+
);
|
|
673
725
|
},
|
|
674
726
|
properties: {
|
|
675
727
|
label: ['expose object label', { ns: meta.id }],
|
|
@@ -683,6 +735,20 @@ export const constructObjectActions = ({
|
|
|
683
735
|
return actions;
|
|
684
736
|
};
|
|
685
737
|
|
|
738
|
+
// TODO(wittjosiah): Factor out.
|
|
739
|
+
const downloadBlob = async (blob: Blob, filename: string) => {
|
|
740
|
+
const url = URL.createObjectURL(blob);
|
|
741
|
+
const a = document.createElement('a');
|
|
742
|
+
a.href = url;
|
|
743
|
+
a.download = filename;
|
|
744
|
+
|
|
745
|
+
document.body.appendChild(a);
|
|
746
|
+
a.click();
|
|
747
|
+
|
|
748
|
+
document.body.removeChild(a);
|
|
749
|
+
URL.revokeObjectURL(url);
|
|
750
|
+
};
|
|
751
|
+
|
|
686
752
|
/**
|
|
687
753
|
* @deprecated This is a temporary solution.
|
|
688
754
|
*/
|
|
@@ -711,10 +777,10 @@ export const getNestedObjects = async (
|
|
|
711
777
|
*/
|
|
712
778
|
// TODO(burdon): Remove.
|
|
713
779
|
export const cloneObject = async (
|
|
714
|
-
object:
|
|
780
|
+
object: Obj.Any,
|
|
715
781
|
resolve: (typename: string) => Record<string, any>,
|
|
716
782
|
newSpace: Space,
|
|
717
|
-
): Promise<
|
|
783
|
+
): Promise<Obj.Any> => {
|
|
718
784
|
const schema = Obj.getSchema(object);
|
|
719
785
|
const typename = schema ? (Type.getTypename(schema) ?? EXPANDO_TYPENAME) : EXPANDO_TYPENAME;
|
|
720
786
|
const metadata = resolve(typename);
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/CollectionMain.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { baseSurface, descriptionMessage, mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\nexport const CollectionMain = ({ collection }: { collection: DataType.Collection }) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div\n role='none'\n className={mx(baseSurface, 'min-bs-screen is-full flex items-center justify-center p-8')}\n data-testid='composer.firstRunMessage'\n >\n <p\n role='alert'\n className={mx(descriptionMessage, 'rounded-md p-8 font-normal text-lg max-is-[24rem] break-words')}\n >\n {collection.name ?? t('unnamed collection label')}\n </p>\n </div>\n );\n};\n\nexport default CollectionMain;\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,sBAAsB;AAC/B,SAASC,aAAaC,oBAAoBC,UAAU;AAK7C,IAAMC,iBAAiB,CAAC,EAAEC,WAAU,MAAuC;;;AAChF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,WACE,sBAAA,cAACC,OAAAA;MACCC,MAAK;MACLC,WAAWC,GAAGC,aAAa,4DAAA;MAC3BC,eAAY;OAEZ,sBAAA,cAACC,KAAAA;MACCL,MAAK;MACLC,WAAWC,GAAGI,oBAAoB,+DAAA;OAEjCZ,WAAWa,QAAQZ,EAAE,0BAAA,CAAA,CAAA;;;;AAI9B;AAEA,IAAA,yBAAeF;",
|
|
6
|
-
"names": ["React", "useTranslation", "baseSurface", "descriptionMessage", "mx", "CollectionMain", "collection", "t", "useTranslation", "meta", "id", "div", "role", "className", "mx", "baseSurface", "data-testid", "p", "descriptionMessage", "name"]
|
|
7
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
meta
|
|
3
|
-
} from "./chunk-IRKDREHY.mjs";
|
|
4
|
-
|
|
5
|
-
// src/components/ObjectDetailsPanel.tsx
|
|
6
|
-
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
7
|
-
import React, { useCallback } from "react";
|
|
8
|
-
import { setValue } from "@dxos/echo/internal";
|
|
9
|
-
import { invariant } from "@dxos/invariant";
|
|
10
|
-
import { useClient } from "@dxos/react-client";
|
|
11
|
-
import { Filter, getSpace, useQuery, useSchema } from "@dxos/react-client/echo";
|
|
12
|
-
import { Callout, useTranslation } from "@dxos/react-ui";
|
|
13
|
-
import { useSelected } from "@dxos/react-ui-attention";
|
|
14
|
-
import { Form, useRefQueryLookupHandler } from "@dxos/react-ui-form";
|
|
15
|
-
import { getTypenameFromQuery } from "@dxos/schema";
|
|
16
|
-
import { isNonNullable } from "@dxos/util";
|
|
17
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectDetailsPanel.tsx";
|
|
18
|
-
var ObjectDetailsPanel = ({ objectId, view }) => {
|
|
19
|
-
var _effect = _useSignals();
|
|
20
|
-
try {
|
|
21
|
-
const { t } = useTranslation(meta.id);
|
|
22
|
-
const client = useClient();
|
|
23
|
-
const space = getSpace(view);
|
|
24
|
-
const typename = view.query ? getTypenameFromQuery(view.query.ast) : void 0;
|
|
25
|
-
const schema = useSchema(client, space, typename);
|
|
26
|
-
const queriedObjects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());
|
|
27
|
-
const selectedRows = useSelected(objectId, "multi");
|
|
28
|
-
const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);
|
|
29
|
-
const handleRefQueryLookup = useRefQueryLookupHandler({
|
|
30
|
-
space
|
|
31
|
-
});
|
|
32
|
-
const handleSave = useCallback((values, { changed }) => {
|
|
33
|
-
const id = values.id;
|
|
34
|
-
invariant(typeof id === "string", void 0, {
|
|
35
|
-
F: __dxlog_file,
|
|
36
|
-
L: 38,
|
|
37
|
-
S: void 0,
|
|
38
|
-
A: [
|
|
39
|
-
"typeof id === 'string'",
|
|
40
|
-
""
|
|
41
|
-
]
|
|
42
|
-
});
|
|
43
|
-
const object = queriedObjects.find((obj) => obj.id === id);
|
|
44
|
-
invariant(object, void 0, {
|
|
45
|
-
F: __dxlog_file,
|
|
46
|
-
L: 40,
|
|
47
|
-
S: void 0,
|
|
48
|
-
A: [
|
|
49
|
-
"object",
|
|
50
|
-
""
|
|
51
|
-
]
|
|
52
|
-
});
|
|
53
|
-
const changedPaths = Object.keys(changed).filter((path) => changed[path]);
|
|
54
|
-
for (const path of changedPaths) {
|
|
55
|
-
const value = values[path];
|
|
56
|
-
setValue(object, path, value);
|
|
57
|
-
}
|
|
58
|
-
}, [
|
|
59
|
-
queriedObjects
|
|
60
|
-
]);
|
|
61
|
-
if (selectedObjects.length === 0) {
|
|
62
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
63
|
-
role: "none",
|
|
64
|
-
className: "plb-cardSpacingBlock pli-cardSpacingInline"
|
|
65
|
-
}, /* @__PURE__ */ React.createElement(Callout.Root, {
|
|
66
|
-
classNames: "is-full"
|
|
67
|
-
}, /* @__PURE__ */ React.createElement(Callout.Title, null, t("row details no selection label"))));
|
|
68
|
-
}
|
|
69
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
70
|
-
role: "none",
|
|
71
|
-
className: "bs-full is-full flex flex-col p-2 gap-1 overflow-y-auto"
|
|
72
|
-
}, schema && selectedObjects.map((object) => /* @__PURE__ */ React.createElement("div", {
|
|
73
|
-
key: object.id,
|
|
74
|
-
className: "border border-separator rounded"
|
|
75
|
-
}, /* @__PURE__ */ React.createElement(Form, {
|
|
76
|
-
autoSave: true,
|
|
77
|
-
schema,
|
|
78
|
-
values: object,
|
|
79
|
-
onSave: handleSave,
|
|
80
|
-
onQueryRefOptions: handleRefQueryLookup
|
|
81
|
-
}))));
|
|
82
|
-
} finally {
|
|
83
|
-
_effect.f();
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
var ObjectDetailsPanel_default = ObjectDetailsPanel;
|
|
87
|
-
export {
|
|
88
|
-
ObjectDetailsPanel_default as default
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=ObjectDetailsPanel-SJ4XUXXX.mjs.map
|