@dxos/plugin-space 0.8.4-main.67995b8 → 0.8.4-main.72ec0f3
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-D2B75XBS.mjs → CollectionArticle-WTHWY4YS.mjs} +10 -10
- package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs +141 -0
- package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs.map +7 -0
- package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs +144 -0
- package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs.map +7 -0
- package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs +116 -0
- package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-V3MP3CDK.mjs → app-graph-builder-VQAB3GCQ.mjs} +138 -90
- package/dist/lib/browser/app-graph-builder-VQAB3GCQ.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-KSLKMEPP.mjs} +19 -19
- package/dist/lib/browser/app-graph-serializer-KSLKMEPP.mjs.map +7 -0
- package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-ERQMHU7L.mjs} +124 -63
- package/dist/lib/browser/chunk-ERQMHU7L.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FBJEXW54.mjs → chunk-J2BUK5E6.mjs} +587 -513
- package/dist/lib/browser/chunk-J2BUK5E6.mjs.map +7 -0
- package/dist/lib/browser/chunk-K5J7ZB5P.mjs +20 -0
- package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +7 -0
- package/dist/lib/browser/{chunk-SGTQ52SU.mjs → chunk-M2Z6D4ZI.mjs} +32 -21
- package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-OLBBSOVI.mjs} +30 -17
- package/dist/lib/browser/chunk-OLBBSOVI.mjs.map +7 -0
- package/dist/lib/browser/chunk-PU5IOFMG.mjs +167 -0
- package/dist/lib/browser/chunk-PU5IOFMG.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-WJXU4GKV.mjs +19 -0
- package/dist/lib/browser/chunk-WJXU4GKV.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-NAXTPQXE.mjs} +6 -6
- package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +91 -91
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-XHGD73WZ.mjs → intent-resolver-Q2XWHAVA.mjs} +87 -85
- package/dist/lib/browser/intent-resolver-Q2XWHAVA.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-MM4HADPE.mjs +30 -0
- package/dist/lib/browser/react-root-MM4HADPE.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-YWZZQF7H.mjs → react-surface-SGZC3Y4U.mjs} +81 -105
- package/dist/lib/browser/react-surface-SGZC3Y4U.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-Z6FC4AHC.mjs → schema-defs-QPI2JU3X.mjs} +6 -6
- package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +7 -0
- package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-WKLGKUHQ.mjs} +5 -5
- package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-WKLGKUHQ.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-C5QC2UFL.mjs} +21 -18
- package/dist/lib/browser/spaces-ready-C5QC2UFL.mjs.map +7 -0
- package/dist/lib/browser/{state-QYZAB45H.mjs → state-Q7YRE5KG.mjs} +7 -7
- package/dist/lib/browser/state-Q7YRE5KG.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionArticle-KHXYT3SH.mjs} +10 -10
- package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs +142 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs +145 -0
- package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs.map +7 -0
- package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs +117 -0
- package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-SG4VECBB.mjs → app-graph-builder-24JCLJPX.mjs} +138 -90
- package/dist/lib/node-esm/app-graph-builder-24JCLJPX.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-R723K764.mjs} +19 -19
- package/dist/lib/node-esm/app-graph-serializer-R723K764.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JH6F4C3I.mjs → chunk-2PN7QNGV.mjs} +32 -21
- package/dist/lib/node-esm/chunk-2PN7QNGV.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-H4JILUJK.mjs +20 -0
- package/dist/lib/node-esm/chunk-H4JILUJK.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2A3VBXBP.mjs → chunk-ITQFSFQ3.mjs} +587 -513
- package/dist/lib/node-esm/chunk-ITQFSFQ3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-TJPQDQNI.mjs +168 -0
- package/dist/lib/node-esm/chunk-TJPQDQNI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-VH2EBZEV.mjs} +124 -63
- package/dist/lib/node-esm/chunk-VH2EBZEV.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-WC4VBFMA.mjs} +30 -17
- package/dist/lib/node-esm/chunk-WC4VBFMA.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs +21 -0
- package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-OXLKCJE3.mjs} +6 -6
- package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +91 -91
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-LEANKSKZ.mjs → intent-resolver-YK4ESSET.mjs} +87 -85
- package/dist/lib/node-esm/intent-resolver-YK4ESSET.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-5Y7LJRX6.mjs → react-root-5ANDLQMX.mjs} +13 -12
- package/dist/lib/node-esm/react-root-5ANDLQMX.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-YQFNIKYT.mjs → react-surface-V7J2QB44.mjs} +81 -105
- package/dist/lib/node-esm/react-surface-V7J2QB44.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-WHJM7UZE.mjs → schema-defs-ZS2D47XW.mjs} +6 -6
- package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-RBB5633M.mjs} +5 -5
- package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-RBB5633M.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-SJCXV6YH.mjs} +21 -18
- package/dist/lib/node-esm/spaces-ready-SJCXV6YH.mjs.map +7 -0
- package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-362I5BMK.mjs} +7 -7
- package/dist/lib/node-esm/state-362I5BMK.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/SpacePlugin.d.ts +1 -1
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +7 -6
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +11 -12
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts +2 -2
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/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 +3 -3
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1694 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +7 -5
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +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.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
- package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1697 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
- 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 +1530 -0
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.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/RecordArticle.stories.d.ts +1697 -0
- package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
- package/dist/types/src/components/SchemaContainer.d.ts +1 -1
- package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
- package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
- package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1527 -0
- package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
- 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 +1527 -4
- 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 +1528 -5
- 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 -11
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.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 +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/usePath.d.ts +1 -1
- package/dist/types/src/hooks/usePath.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 +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1326 -26
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +78 -96
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +16 -11
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +68 -63
- package/src/SpacePlugin.ts +230 -220
- package/src/capabilities/app-graph-builder.ts +214 -133
- package/src/capabilities/app-graph-serializer.ts +12 -12
- package/src/capabilities/capabilities.ts +19 -13
- package/src/capabilities/identity-created.ts +3 -3
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/intent-resolver.ts +81 -65
- package/src/capabilities/react-root.tsx +6 -4
- package/src/capabilities/react-surface.tsx +78 -145
- package/src/capabilities/schema-defs.ts +4 -3
- package/src/capabilities/spaces-ready.ts +16 -10
- package/src/capabilities/state.ts +5 -4
- package/src/components/AwaitingObject.tsx +12 -14
- package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
- package/src/components/CollectionSection.tsx +8 -6
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +17 -16
- package/src/components/CreateDialog/CreateObjectDialog.tsx +51 -33
- package/src/components/CreateDialog/CreateObjectPanel.tsx +24 -13
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
- package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
- package/src/components/JoinDialog/index.ts +5 -0
- package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
- package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +22 -21
- package/src/components/MembersContainer/index.ts +5 -0
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
- package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
- package/src/components/ObjectDetailsPanel/index.ts +7 -0
- package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +10 -16
- package/src/components/ObjectRenamePopover/index.ts +5 -0
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -3
- package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
- package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +4 -3
- 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 +25 -28
- package/src/components/SpacePluginSettings.tsx +16 -11
- package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +24 -23
- package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +22 -17
- package/src/components/SpacePresence/index.ts +5 -0
- package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
- package/src/components/SpaceRenamePopover/index.ts +5 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +49 -28
- package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
- package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -9
- package/src/components/SyncStatus/SyncStatus.tsx +109 -12
- package/src/components/ViewEditor.tsx +51 -23
- package/src/components/index.ts +7 -7
- package/src/events.ts +7 -7
- 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 +3 -2
- package/src/hooks/useInputSurfaceLookup.tsx +8 -3
- package/src/hooks/usePath.ts +1 -1
- package/src/hooks/useTypeOptions.ts +59 -0
- package/src/index.ts +1 -0
- package/src/meta.ts +6 -3
- package/src/translations.ts +29 -14
- package/src/types/types.ts +31 -22
- package/src/util.tsx +131 -66
- package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +0 -88
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-V3MP3CDK.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
- package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
- package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
- package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
- package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
- package/dist/lib/browser/chunk-FBJEXW54.mjs.map +0 -7
- package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
- package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
- package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
- package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
- package/dist/lib/browser/chunk-VLBRSGJ2.mjs +0 -94
- package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
- package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
- package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-XHGD73WZ.mjs.map +0 -7
- package/dist/lib/browser/react-root-CMWOGJG5.mjs +0 -29
- package/dist/lib/browser/react-root-CMWOGJG5.mjs.map +0 -7
- package/dist/lib/browser/react-surface-YWZZQF7H.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
- package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +0 -89
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-SG4VECBB.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2A3VBXBP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
- package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
- package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SSLBYZEY.mjs +0 -96
- package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-LEANKSKZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-5Y7LJRX6.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-YQFNIKYT.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
- package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
- package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
- package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
- package/dist/types/src/capabilities/schema-tools.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/MembersContainer.stories.d.ts +0 -8
- package/dist/types/src/components/MembersContainer.stories.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/SpacePresence.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
- package/src/capabilities/schema-tool.test.ts +0 -44
- package/src/capabilities/schema-tools.ts +0 -125
- package/src/components/MembersContainer.stories.tsx +0 -30
- package/src/components/ObjectDetailsPanel.tsx +0 -77
- package/src/components/PersistenceStatus.tsx +0 -83
package/src/util.tsx
CHANGED
|
@@ -2,42 +2,42 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
5
|
+
import { Atom } from '@effect-atom/atom-react';
|
|
6
|
+
import * as Function from 'effect/Function';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { LayoutAction, type PromiseIntentDispatcher, chain, createIntent } from '@dxos/app-framework';
|
|
9
9
|
import { Obj, Ref, Type } from '@dxos/echo';
|
|
10
|
-
import { type AnyEchoObject, EXPANDO_TYPENAME } from '@dxos/echo
|
|
10
|
+
import { type AnyEchoObject, EXPANDO_TYPENAME } from '@dxos/echo/internal';
|
|
11
11
|
import { invariant } from '@dxos/invariant';
|
|
12
12
|
import { Migrations } from '@dxos/migrations';
|
|
13
13
|
import {
|
|
14
14
|
ACTION_GROUP_TYPE,
|
|
15
15
|
ACTION_TYPE,
|
|
16
|
-
type ReadableGraph,
|
|
17
16
|
type ActionData,
|
|
18
17
|
type InvokeParams,
|
|
19
18
|
type Node,
|
|
20
19
|
type NodeArg,
|
|
20
|
+
type ReadableGraph,
|
|
21
21
|
isGraphNode,
|
|
22
22
|
} from '@dxos/plugin-graph';
|
|
23
|
-
import {
|
|
23
|
+
import { type QueryResult, type Space, SpaceState, getSpace, isSpace } from '@dxos/react-client/echo';
|
|
24
24
|
import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
|
|
25
25
|
import { type TreeData } from '@dxos/react-ui-list';
|
|
26
|
-
import {
|
|
26
|
+
import { Collection, StoredSchema, View, getTypenameFromQuery } from '@dxos/schema';
|
|
27
27
|
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
28
|
+
import { meta } from './meta';
|
|
29
|
+
import { type ObjectForm, SPACE_TYPE, SpaceAction } from './types';
|
|
30
30
|
|
|
31
|
-
export const SPACES = `${
|
|
32
|
-
export const COMPOSER_SPACE_LOCK =
|
|
31
|
+
export const SPACES = `${meta.id}-spaces`;
|
|
32
|
+
export const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
|
|
33
33
|
// TODO(wittjosiah): Remove.
|
|
34
34
|
export const SHARED = 'shared-spaces';
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
|
-
* Convert a query result to an
|
|
37
|
+
* Convert a query result to an Atom value of the objects.
|
|
38
38
|
*/
|
|
39
|
-
export const
|
|
40
|
-
return
|
|
39
|
+
export const atomFromQuery = <T extends AnyEchoObject>(query: QueryResult<T>): Atom.Atom<T[]> => {
|
|
40
|
+
return Atom.make((get) => {
|
|
41
41
|
const unsubscribe = query.subscribe((result) => {
|
|
42
42
|
get.setSelf(result.objects);
|
|
43
43
|
});
|
|
@@ -57,8 +57,8 @@ export const getSpaceDisplayName = (
|
|
|
57
57
|
: namesCache[space.id]
|
|
58
58
|
? namesCache[space.id]
|
|
59
59
|
: personal
|
|
60
|
-
? ['personal space label', { ns:
|
|
61
|
-
: ['unnamed space label', { ns:
|
|
60
|
+
? ['personal space label', { ns: meta.id }]
|
|
61
|
+
: ['unnamed space label', { ns: meta.id }];
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
const getCollectionGraphNodePartials = ({
|
|
@@ -66,7 +66,7 @@ const getCollectionGraphNodePartials = ({
|
|
|
66
66
|
space,
|
|
67
67
|
resolve,
|
|
68
68
|
}: {
|
|
69
|
-
collection:
|
|
69
|
+
collection: Collection.Collection;
|
|
70
70
|
space: Space;
|
|
71
71
|
resolve: (typename: string) => Record<string, any>;
|
|
72
72
|
}) => {
|
|
@@ -141,20 +141,21 @@ const getQueryCollectionNodePartials = ({
|
|
|
141
141
|
space,
|
|
142
142
|
resolve,
|
|
143
143
|
}: {
|
|
144
|
-
collection:
|
|
144
|
+
collection: Collection.QueryCollection;
|
|
145
145
|
space: Space;
|
|
146
146
|
resolve: (typename: string) => Record<string, any>;
|
|
147
147
|
}) => {
|
|
148
|
+
const typename = getTypenameFromQuery(collection.query);
|
|
149
|
+
const metadata = typename ? resolve(typename) : {};
|
|
148
150
|
return {
|
|
149
|
-
icon:
|
|
151
|
+
icon: metadata.icon,
|
|
152
|
+
iconHue: metadata.iconHue,
|
|
150
153
|
acceptPersistenceClass: new Set(['echo']),
|
|
151
154
|
acceptPersistenceKey: new Set([space.id]),
|
|
152
155
|
role: 'branch',
|
|
153
156
|
canDrop: (source: TreeData) => {
|
|
154
157
|
return (
|
|
155
|
-
isGraphNode(source.item) &&
|
|
156
|
-
Obj.isObject(source.item.data) &&
|
|
157
|
-
Obj.getTypename(source.item.data) === collection.query.typename
|
|
158
|
+
isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename
|
|
158
159
|
);
|
|
159
160
|
},
|
|
160
161
|
onTransferStart: (child: Node<Obj.Any>, index?: number) => {
|
|
@@ -177,7 +178,7 @@ const getViewGraphNodePartials = ({
|
|
|
177
178
|
view,
|
|
178
179
|
resolve,
|
|
179
180
|
}: {
|
|
180
|
-
view:
|
|
181
|
+
view: View.View;
|
|
181
182
|
resolve: (typename: string) => Record<string, any>;
|
|
182
183
|
}) => {
|
|
183
184
|
const presentation = view.presentation.target;
|
|
@@ -187,6 +188,7 @@ const getViewGraphNodePartials = ({
|
|
|
187
188
|
return {
|
|
188
189
|
label: view.name || ['object name placeholder', { ns: typename, default: 'New view' }],
|
|
189
190
|
icon: metadata.icon,
|
|
191
|
+
iconHue: metadata.iconHue,
|
|
190
192
|
canDrop: () => false,
|
|
191
193
|
};
|
|
192
194
|
};
|
|
@@ -215,9 +217,9 @@ export const constructSpaceNode = ({
|
|
|
215
217
|
}) => {
|
|
216
218
|
const hasPendingMigration = checkPendingMigration(space);
|
|
217
219
|
const collection =
|
|
218
|
-
space.state.get() === SpaceState.SPACE_READY && space.properties[
|
|
220
|
+
space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;
|
|
219
221
|
const partials =
|
|
220
|
-
space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(
|
|
222
|
+
space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection)
|
|
221
223
|
? getCollectionGraphNodePartials({ collection, space, resolve })
|
|
222
224
|
: {};
|
|
223
225
|
|
|
@@ -235,6 +237,7 @@ export const constructSpaceNode = ({
|
|
|
235
237
|
space.state.get() === SpaceState.SPACE_READY && space.properties.icon
|
|
236
238
|
? `ph--${space.properties.icon}--regular`
|
|
237
239
|
: undefined,
|
|
240
|
+
iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,
|
|
238
241
|
disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
|
|
239
242
|
testId: 'spacePlugin.space',
|
|
240
243
|
canDrop: (source: TreeData) => {
|
|
@@ -245,40 +248,40 @@ export const constructSpaceNode = ({
|
|
|
245
248
|
nodes: [
|
|
246
249
|
{
|
|
247
250
|
id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
|
|
248
|
-
type: `${
|
|
251
|
+
type: `${meta.id}/settings`,
|
|
249
252
|
data: null,
|
|
250
253
|
properties: {
|
|
251
|
-
label: ['settings panel label', { ns:
|
|
254
|
+
label: ['settings panel label', { ns: meta.id }],
|
|
252
255
|
icon: 'ph--faders--regular',
|
|
253
256
|
disposition: 'alternate-tree',
|
|
254
257
|
},
|
|
255
258
|
nodes: [
|
|
256
259
|
{
|
|
257
260
|
id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
|
|
258
|
-
type: `${
|
|
259
|
-
data: `${
|
|
261
|
+
type: `${meta.id}/properties`,
|
|
262
|
+
data: `${meta.id}/properties`,
|
|
260
263
|
properties: {
|
|
261
|
-
label: ['space settings properties label', { ns:
|
|
264
|
+
label: ['space settings properties label', { ns: meta.id }],
|
|
262
265
|
icon: 'ph--sliders--regular',
|
|
263
266
|
position: 'hoist',
|
|
264
267
|
},
|
|
265
268
|
},
|
|
266
269
|
{
|
|
267
270
|
id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
|
|
268
|
-
type: `${
|
|
269
|
-
data: `${
|
|
271
|
+
type: `${meta.id}/members`,
|
|
272
|
+
data: `${meta.id}/members`,
|
|
270
273
|
properties: {
|
|
271
|
-
label: ['members panel label', { ns:
|
|
274
|
+
label: ['members panel label', { ns: meta.id }],
|
|
272
275
|
icon: 'ph--users--regular',
|
|
273
276
|
position: 'hoist',
|
|
274
277
|
},
|
|
275
278
|
},
|
|
276
279
|
{
|
|
277
280
|
id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
|
|
278
|
-
type: `${
|
|
279
|
-
data: `${
|
|
281
|
+
type: `${meta.id}/schema`,
|
|
282
|
+
data: `${meta.id}/schema`,
|
|
280
283
|
properties: {
|
|
281
|
-
label: ['space settings schema label', { ns:
|
|
284
|
+
label: ['space settings schema label', { ns: meta.id }],
|
|
282
285
|
icon: 'ph--shapes--regular',
|
|
283
286
|
},
|
|
284
287
|
},
|
|
@@ -312,7 +315,7 @@ export const constructSpaceActions = ({
|
|
|
312
315
|
await dispatch(createIntent(SpaceAction.Migrate, { space }));
|
|
313
316
|
},
|
|
314
317
|
properties: {
|
|
315
|
-
label: ['migrate space label', { ns:
|
|
318
|
+
label: ['migrate space label', { ns: meta.id }],
|
|
316
319
|
icon: 'ph--database--regular',
|
|
317
320
|
disposition: 'list-item-primary',
|
|
318
321
|
disabled: migrating || Migrations.running(space),
|
|
@@ -329,7 +332,7 @@ export const constructSpaceActions = ({
|
|
|
329
332
|
await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));
|
|
330
333
|
},
|
|
331
334
|
properties: {
|
|
332
|
-
label: ['create object in space label', { ns:
|
|
335
|
+
label: ['create object in space label', { ns: meta.id }],
|
|
333
336
|
icon: 'ph--plus--regular',
|
|
334
337
|
disposition: 'item',
|
|
335
338
|
testId: 'spacePlugin.createObject',
|
|
@@ -342,7 +345,7 @@ export const constructSpaceActions = ({
|
|
|
342
345
|
await dispatch(createIntent(SpaceAction.Rename, { space, caller: params?.caller }));
|
|
343
346
|
},
|
|
344
347
|
properties: {
|
|
345
|
-
label: ['rename space label', { ns:
|
|
348
|
+
label: ['rename space label', { ns: meta.id }],
|
|
346
349
|
icon: 'ph--pencil-simple-line--regular',
|
|
347
350
|
keyBinding: {
|
|
348
351
|
macos: 'shift+F6',
|
|
@@ -359,12 +362,14 @@ export const constructSpaceActions = ({
|
|
|
359
362
|
export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any; space: Space }) => {
|
|
360
363
|
return {
|
|
361
364
|
id: `${space.id}/${Type.getTypename(schema)}`,
|
|
362
|
-
type: `${
|
|
365
|
+
type: `${meta.id}/static-schema`,
|
|
363
366
|
data: schema,
|
|
364
367
|
properties: {
|
|
365
368
|
label: ['typename label', { ns: Type.getTypename(schema), default: Type.getTypename(schema) }],
|
|
366
369
|
icon: 'ph--database--regular',
|
|
370
|
+
iconHue: 'green',
|
|
367
371
|
role: 'branch',
|
|
372
|
+
selectable: false,
|
|
368
373
|
canDrop: () => false,
|
|
369
374
|
space,
|
|
370
375
|
},
|
|
@@ -374,15 +379,36 @@ export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any
|
|
|
374
379
|
export const createStaticSchemaActions = ({
|
|
375
380
|
schema,
|
|
376
381
|
space,
|
|
382
|
+
dispatch,
|
|
377
383
|
deletable,
|
|
378
384
|
}: {
|
|
379
385
|
schema: Type.Obj.Any;
|
|
380
386
|
space: Space;
|
|
387
|
+
dispatch: PromiseIntentDispatcher;
|
|
381
388
|
deletable: boolean;
|
|
382
389
|
}) => {
|
|
383
390
|
const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;
|
|
384
391
|
|
|
385
392
|
const actions: NodeArg<ActionData>[] = [
|
|
393
|
+
{
|
|
394
|
+
id: getId(SpaceAction.AddObject._tag),
|
|
395
|
+
type: ACTION_TYPE,
|
|
396
|
+
data: async () => {
|
|
397
|
+
await dispatch(
|
|
398
|
+
createIntent(SpaceAction.OpenCreateObject, {
|
|
399
|
+
target: space,
|
|
400
|
+
views: true,
|
|
401
|
+
initialFormValues: { typename: Type.getTypename(schema) },
|
|
402
|
+
}),
|
|
403
|
+
);
|
|
404
|
+
},
|
|
405
|
+
properties: {
|
|
406
|
+
label: ['add view to schema label', { ns: Type.getTypename(StoredSchema) }],
|
|
407
|
+
icon: 'ph--plus--regular',
|
|
408
|
+
disposition: 'list-item-primary',
|
|
409
|
+
testId: 'spacePlugin.addViewToSchema',
|
|
410
|
+
},
|
|
411
|
+
},
|
|
386
412
|
{
|
|
387
413
|
id: getId(SpaceAction.RenameObject._tag),
|
|
388
414
|
type: ACTION_TYPE,
|
|
@@ -390,7 +416,7 @@ export const createStaticSchemaActions = ({
|
|
|
390
416
|
throw new Error('Not implemented');
|
|
391
417
|
},
|
|
392
418
|
properties: {
|
|
393
|
-
label: ['rename object label', { ns: Type.getTypename(
|
|
419
|
+
label: ['rename object label', { ns: Type.getTypename(StoredSchema) }],
|
|
394
420
|
icon: 'ph--pencil-simple-line--regular',
|
|
395
421
|
disabled: true,
|
|
396
422
|
disposition: 'list-item',
|
|
@@ -409,7 +435,7 @@ export const createStaticSchemaActions = ({
|
|
|
409
435
|
}
|
|
410
436
|
},
|
|
411
437
|
properties: {
|
|
412
|
-
label: ['delete object label', { ns: Type.getTypename(
|
|
438
|
+
label: ['delete object label', { ns: Type.getTypename(StoredSchema) }],
|
|
413
439
|
icon: 'ph--trash--regular',
|
|
414
440
|
disposition: 'list-item',
|
|
415
441
|
disabled: !deletable,
|
|
@@ -424,47 +450,61 @@ export const createStaticSchemaActions = ({
|
|
|
424
450
|
export const createObjectNode = ({
|
|
425
451
|
space,
|
|
426
452
|
object,
|
|
453
|
+
disposition,
|
|
427
454
|
droppable = true,
|
|
428
455
|
navigable = false,
|
|
429
456
|
resolve,
|
|
430
457
|
}: {
|
|
431
458
|
space: Space;
|
|
432
459
|
object: Obj.Any;
|
|
460
|
+
disposition?: string;
|
|
433
461
|
droppable?: boolean;
|
|
434
462
|
navigable?: boolean;
|
|
435
463
|
resolve: (typename: string) => Record<string, any>;
|
|
436
464
|
}) => {
|
|
437
465
|
const type = Obj.getTypename(object);
|
|
438
466
|
if (!type) {
|
|
439
|
-
return
|
|
467
|
+
return null;
|
|
440
468
|
}
|
|
441
469
|
|
|
442
470
|
const metadata = resolve(type);
|
|
443
|
-
const partials = Obj.instanceOf(
|
|
471
|
+
const partials = Obj.instanceOf(Collection.Collection, object)
|
|
444
472
|
? getCollectionGraphNodePartials({ collection: object, space, resolve })
|
|
445
|
-
: Obj.instanceOf(
|
|
473
|
+
: Obj.instanceOf(Collection.QueryCollection, object)
|
|
446
474
|
? getQueryCollectionNodePartials({ collection: object, space, resolve })
|
|
447
|
-
: Obj.instanceOf(
|
|
475
|
+
: Obj.instanceOf(StoredSchema, object)
|
|
448
476
|
? getSchemaGraphNodePartials()
|
|
449
|
-
: Obj.instanceOf(
|
|
477
|
+
: Obj.instanceOf(View.View, object)
|
|
450
478
|
? getViewGraphNodePartials({ view: object, resolve })
|
|
451
479
|
: metadata.graphProps;
|
|
452
480
|
|
|
453
|
-
|
|
481
|
+
// TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.
|
|
482
|
+
// e.g., create new collection with no name and rename it.
|
|
483
|
+
const label = (object as any).name ||
|
|
484
|
+
Obj.getLabel(object) ||
|
|
454
485
|
// TODO(wittjosiah): Remove metadata labels.
|
|
455
486
|
metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];
|
|
456
487
|
|
|
488
|
+
const selectable =
|
|
489
|
+
(!Obj.instanceOf(StoredSchema, object) &&
|
|
490
|
+
!Obj.instanceOf(Collection.QueryCollection, object) &&
|
|
491
|
+
!Obj.instanceOf(Collection.Collection, object)) ||
|
|
492
|
+
(navigable && Obj.instanceOf(Collection.Collection, object));
|
|
493
|
+
|
|
457
494
|
return {
|
|
458
|
-
id:
|
|
495
|
+
id: Obj.getDXN(object).toString(),
|
|
459
496
|
type,
|
|
460
497
|
cacheable: ['label', 'icon', 'role'],
|
|
461
498
|
data: object,
|
|
462
499
|
properties: {
|
|
463
500
|
label,
|
|
464
501
|
icon: metadata.icon ?? 'ph--placeholder--regular',
|
|
502
|
+
iconHue: metadata.iconHue,
|
|
503
|
+
disposition,
|
|
465
504
|
testId: 'spacePlugin.object',
|
|
466
505
|
persistenceClass: 'echo',
|
|
467
506
|
persistenceKey: space?.id,
|
|
507
|
+
selectable,
|
|
468
508
|
canDrop: (source: TreeData) => {
|
|
469
509
|
return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
|
|
470
510
|
},
|
|
@@ -493,15 +533,15 @@ export const constructObjectActions = ({
|
|
|
493
533
|
const typename = Obj.getTypename(object);
|
|
494
534
|
invariant(typename, 'Object has no typename');
|
|
495
535
|
|
|
496
|
-
const getId = (id: string) => `${id}/${
|
|
536
|
+
const getId = (id: string) => `${id}/${Obj.getDXN(object).toString()}`;
|
|
497
537
|
|
|
498
|
-
const queryCollection = Obj.instanceOf(
|
|
538
|
+
const queryCollection = Obj.instanceOf(Collection.QueryCollection, object) ? object : undefined;
|
|
499
539
|
const matchingObjectForm = queryCollection
|
|
500
|
-
? objectForms.find((form) => Type.getTypename(form.objectSchema) === queryCollection.query
|
|
540
|
+
? objectForms.find((form) => Type.getTypename(form.objectSchema) === getTypenameFromQuery(queryCollection.query))
|
|
501
541
|
: undefined;
|
|
502
542
|
|
|
503
543
|
const actions: NodeArg<ActionData>[] = [
|
|
504
|
-
...(Obj.instanceOf(
|
|
544
|
+
...(Obj.instanceOf(Collection.Collection, object)
|
|
505
545
|
? [
|
|
506
546
|
{
|
|
507
547
|
id: getId(SpaceAction.OpenCreateObject._tag),
|
|
@@ -510,7 +550,7 @@ export const constructObjectActions = ({
|
|
|
510
550
|
await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));
|
|
511
551
|
},
|
|
512
552
|
properties: {
|
|
513
|
-
label: ['create object in collection label', { ns:
|
|
553
|
+
label: ['create object in collection label', { ns: meta.id }],
|
|
514
554
|
icon: 'ph--plus--regular',
|
|
515
555
|
disposition: 'list-item-primary',
|
|
516
556
|
testId: 'spacePlugin.createObject',
|
|
@@ -518,6 +558,29 @@ export const constructObjectActions = ({
|
|
|
518
558
|
},
|
|
519
559
|
]
|
|
520
560
|
: []),
|
|
561
|
+
...(Obj.instanceOf(StoredSchema, object)
|
|
562
|
+
? [
|
|
563
|
+
{
|
|
564
|
+
id: getId(SpaceAction.AddObject._tag),
|
|
565
|
+
type: ACTION_TYPE,
|
|
566
|
+
data: async () => {
|
|
567
|
+
await dispatch(
|
|
568
|
+
createIntent(SpaceAction.OpenCreateObject, {
|
|
569
|
+
target: space,
|
|
570
|
+
views: true,
|
|
571
|
+
initialFormValues: { typename: object.typename },
|
|
572
|
+
}),
|
|
573
|
+
);
|
|
574
|
+
},
|
|
575
|
+
properties: {
|
|
576
|
+
label: ['add view to schema label', { ns: Type.getTypename(StoredSchema) }],
|
|
577
|
+
icon: 'ph--plus--regular',
|
|
578
|
+
disposition: 'list-item-primary',
|
|
579
|
+
testId: 'spacePlugin.addViewToSchema',
|
|
580
|
+
},
|
|
581
|
+
},
|
|
582
|
+
]
|
|
583
|
+
: []),
|
|
521
584
|
...(matchingObjectForm
|
|
522
585
|
? [
|
|
523
586
|
{
|
|
@@ -528,12 +591,12 @@ export const constructObjectActions = ({
|
|
|
528
591
|
await dispatch(
|
|
529
592
|
createIntent(SpaceAction.OpenCreateObject, {
|
|
530
593
|
target: space,
|
|
531
|
-
typename: queryCollection
|
|
594
|
+
typename: queryCollection ? getTypenameFromQuery(queryCollection.query) : undefined,
|
|
532
595
|
}),
|
|
533
596
|
);
|
|
534
597
|
} else {
|
|
535
598
|
await dispatch(
|
|
536
|
-
pipe(
|
|
599
|
+
Function.pipe(
|
|
537
600
|
matchingObjectForm.getIntent({}, { space }),
|
|
538
601
|
chain(SpaceAction.AddObject, { target: space, hidden: true }),
|
|
539
602
|
chain(LayoutAction.Open, { part: 'main' }),
|
|
@@ -542,7 +605,7 @@ export const constructObjectActions = ({
|
|
|
542
605
|
}
|
|
543
606
|
},
|
|
544
607
|
properties: {
|
|
545
|
-
label: ['create object in smart collection label', { ns:
|
|
608
|
+
label: ['create object in smart collection label', { ns: meta.id }],
|
|
546
609
|
icon: 'ph--plus--regular',
|
|
547
610
|
disposition: 'list-item-primary',
|
|
548
611
|
testId: 'spacePlugin.createObject',
|
|
@@ -572,8 +635,8 @@ export const constructObjectActions = ({
|
|
|
572
635
|
type: ACTION_TYPE,
|
|
573
636
|
data: async () => {
|
|
574
637
|
const collection = graph
|
|
575
|
-
.getConnections(
|
|
576
|
-
.find(({ data }) => Obj.instanceOf(
|
|
638
|
+
.getConnections(Obj.getDXN(object).toString(), 'inbound')
|
|
639
|
+
.find(({ data }) => Obj.instanceOf(Collection.Collection, data))?.data;
|
|
577
640
|
await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));
|
|
578
641
|
},
|
|
579
642
|
properties: {
|
|
@@ -587,19 +650,19 @@ export const constructObjectActions = ({
|
|
|
587
650
|
},
|
|
588
651
|
},
|
|
589
652
|
...(navigable ||
|
|
590
|
-
(!Obj.instanceOf(
|
|
591
|
-
!Obj.instanceOf(
|
|
592
|
-
!Obj.instanceOf(
|
|
653
|
+
(!Obj.instanceOf(Collection.Collection, object) &&
|
|
654
|
+
!Obj.instanceOf(Collection.QueryCollection, object) &&
|
|
655
|
+
!Obj.instanceOf(StoredSchema, object))
|
|
593
656
|
? [
|
|
594
657
|
{
|
|
595
658
|
id: getId('copy-link'),
|
|
596
659
|
type: ACTION_TYPE,
|
|
597
660
|
data: async () => {
|
|
598
|
-
const url = `${window.location.origin}/${space.id}/${
|
|
661
|
+
const url = `${window.location.origin}/${space.id}/${Obj.getDXN(object).toString()}`;
|
|
599
662
|
await navigator.clipboard.writeText(url);
|
|
600
663
|
},
|
|
601
664
|
properties: {
|
|
602
|
-
label: ['copy link label', { ns:
|
|
665
|
+
label: ['copy link label', { ns: meta.id }],
|
|
603
666
|
icon: 'ph--link--regular',
|
|
604
667
|
disposition: 'list-item',
|
|
605
668
|
testId: 'spacePlugin.copyLink',
|
|
@@ -612,10 +675,12 @@ export const constructObjectActions = ({
|
|
|
612
675
|
id: getId(LayoutAction.Expose._tag),
|
|
613
676
|
type: ACTION_TYPE,
|
|
614
677
|
data: async () => {
|
|
615
|
-
await dispatch(
|
|
678
|
+
await dispatch(
|
|
679
|
+
createIntent(LayoutAction.Expose, { part: 'navigation', subject: Obj.getDXN(object).toString() }),
|
|
680
|
+
);
|
|
616
681
|
},
|
|
617
682
|
properties: {
|
|
618
|
-
label: ['expose object label', { ns:
|
|
683
|
+
label: ['expose object label', { ns: meta.id }],
|
|
619
684
|
icon: 'ph--eye--regular',
|
|
620
685
|
disposition: 'heading-list-item',
|
|
621
686
|
testId: 'spacePlugin.exposeObject',
|
|
@@ -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 { SPACE_PLUGIN } from '../meta';\n\nexport const CollectionMain = ({ collection }: { collection: DataType.Collection }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\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,YAAAA;AAE7B,WACE,sBAAA,cAACC,OAAAA;MACCC,MAAK;MACLC,WAAWC,GAAGC,aAAa,4DAAA;MAC3BC,eAAY;OAEZ,sBAAA,cAACC,KAAAA;MACCL,MAAK;MACLC,WAAWC,GAAGI,oBAAoB,+DAAA;OAEjCX,WAAWY,QAAQX,EAAE,0BAAA,CAAA,CAAA;;;;AAI9B;AAEA,IAAA,yBAAeF;",
|
|
6
|
-
"names": ["React", "useTranslation", "baseSurface", "descriptionMessage", "mx", "CollectionMain", "collection", "t", "useTranslation", "SPACE_PLUGIN", "div", "role", "className", "mx", "baseSurface", "data-testid", "p", "descriptionMessage", "name"]
|
|
7
|
-
}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SPACE_PLUGIN
|
|
3
|
-
} from "./chunk-FBCGT5YY.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-schema";
|
|
9
|
-
import { invariant } from "@dxos/invariant";
|
|
10
|
-
import { useClient } from "@dxos/react-client";
|
|
11
|
-
import { getSpace, Filter, 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 { isNonNullable } from "@dxos/util";
|
|
16
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectDetailsPanel.tsx";
|
|
17
|
-
var ObjectDetailsPanel = ({ objectId, view }) => {
|
|
18
|
-
var _effect = _useSignals();
|
|
19
|
-
try {
|
|
20
|
-
const { t } = useTranslation(SPACE_PLUGIN);
|
|
21
|
-
const client = useClient();
|
|
22
|
-
const space = getSpace(view);
|
|
23
|
-
const schema = useSchema(client, space, view.query?.typename);
|
|
24
|
-
const queriedObjects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());
|
|
25
|
-
const selectedRows = useSelected(objectId, "multi");
|
|
26
|
-
const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);
|
|
27
|
-
const handleRefQueryLookup = useRefQueryLookupHandler({
|
|
28
|
-
space
|
|
29
|
-
});
|
|
30
|
-
const handleSave = useCallback((values, { changed }) => {
|
|
31
|
-
const id = values.id;
|
|
32
|
-
invariant(typeof id === "string", void 0, {
|
|
33
|
-
F: __dxlog_file,
|
|
34
|
-
L: 36,
|
|
35
|
-
S: void 0,
|
|
36
|
-
A: [
|
|
37
|
-
"typeof id === 'string'",
|
|
38
|
-
""
|
|
39
|
-
]
|
|
40
|
-
});
|
|
41
|
-
const object = queriedObjects.find((obj) => obj.id === id);
|
|
42
|
-
invariant(object, void 0, {
|
|
43
|
-
F: __dxlog_file,
|
|
44
|
-
L: 38,
|
|
45
|
-
S: void 0,
|
|
46
|
-
A: [
|
|
47
|
-
"object",
|
|
48
|
-
""
|
|
49
|
-
]
|
|
50
|
-
});
|
|
51
|
-
const changedPaths = Object.keys(changed).filter((path) => changed[path]);
|
|
52
|
-
for (const path of changedPaths) {
|
|
53
|
-
const value = values[path];
|
|
54
|
-
setValue(object, path, value);
|
|
55
|
-
}
|
|
56
|
-
}, [
|
|
57
|
-
queriedObjects
|
|
58
|
-
]);
|
|
59
|
-
if (selectedObjects.length === 0) {
|
|
60
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
61
|
-
role: "none",
|
|
62
|
-
className: "plb-cardSpacingBlock pli-cardSpacingInline"
|
|
63
|
-
}, /* @__PURE__ */ React.createElement(Callout.Root, {
|
|
64
|
-
classNames: "is-full"
|
|
65
|
-
}, /* @__PURE__ */ React.createElement(Callout.Title, null, t("row details no selection label"))));
|
|
66
|
-
}
|
|
67
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
68
|
-
role: "none",
|
|
69
|
-
className: "bs-full is-full flex flex-col p-2 gap-1 overflow-y-auto"
|
|
70
|
-
}, schema && selectedObjects.map((object) => /* @__PURE__ */ React.createElement("div", {
|
|
71
|
-
key: object.id,
|
|
72
|
-
className: "border border-separator rounded"
|
|
73
|
-
}, /* @__PURE__ */ React.createElement(Form, {
|
|
74
|
-
autoSave: true,
|
|
75
|
-
schema,
|
|
76
|
-
values: object,
|
|
77
|
-
onSave: handleSave,
|
|
78
|
-
onQueryRefOptions: handleRefQueryLookup
|
|
79
|
-
}))));
|
|
80
|
-
} finally {
|
|
81
|
-
_effect.f();
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
var ObjectDetailsPanel_default = ObjectDetailsPanel;
|
|
85
|
-
export {
|
|
86
|
-
ObjectDetailsPanel_default as default
|
|
87
|
-
};
|
|
88
|
-
//# sourceMappingURL=ObjectDetailsPanel-YPTDQKMG.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/ObjectDetailsPanel.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type JsonPath, setValue } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace, Filter, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { Callout, useTranslation } from '@dxos/react-ui';\nimport { useSelected } from '@dxos/react-ui-attention';\nimport { Form, useRefQueryLookupHandler } from '@dxos/react-ui-form';\nimport { type DataType } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SPACE_PLUGIN } from '../meta';\n\ntype RowDetailsPanelProps = { objectId: string; view: DataType.View };\n\nconst ObjectDetailsPanel = ({ objectId, view }: RowDetailsPanelProps) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n const client = useClient();\n const space = getSpace(view);\n const schema = useSchema(client, space, view.query?.typename);\n\n const queriedObjects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());\n const selectedRows = useSelected(objectId, 'multi');\n const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);\n\n const handleRefQueryLookup = useRefQueryLookupHandler({ space });\n\n const handleSave = useCallback(\n (values: any, { changed }: { changed: Record<JsonPath, boolean> }) => {\n const id = values.id;\n invariant(typeof id === 'string');\n const object = queriedObjects.find((obj) => obj.id === id);\n invariant(object);\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n for (const path of changedPaths) {\n const value = values[path];\n setValue(object, path, value);\n }\n },\n [queriedObjects],\n );\n\n if (selectedObjects.length === 0) {\n return (\n <div role='none' className='plb-cardSpacingBlock pli-cardSpacingInline'>\n <Callout.Root classNames='is-full'>\n <Callout.Title>{t('row details no selection label')}</Callout.Title>\n </Callout.Root>\n </div>\n );\n }\n\n return (\n <div role='none' className='bs-full is-full flex flex-col p-2 gap-1 overflow-y-auto'>\n {schema &&\n selectedObjects.map((object) => (\n <div key={object.id} className='border border-separator rounded'>\n <Form\n autoSave\n schema={schema}\n values={object}\n onSave={handleSave}\n onQueryRefOptions={handleRefQueryLookup}\n />\n </div>\n ))}\n </div>\n );\n};\n\nexport default ObjectDetailsPanel;\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAAwBC,gBAAgB;AACxC,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,QAAQC,UAAUC,iBAAiB;AACtD,SAASC,SAASC,sBAAsB;AACxC,SAASC,mBAAmB;AAC5B,SAASC,MAAMC,gCAAgC;AAE/C,SAASC,qBAAqB;;AAM9B,IAAMC,qBAAqB,CAAC,EAAEC,UAAUC,KAAI,MAAwB;;;AAClE,UAAM,EAAEC,EAAC,IAAKC,eAAeC,YAAAA;AAC7B,UAAMC,SAASC,UAAAA;AACf,UAAMC,QAAQC,SAASP,IAAAA;AACvB,UAAMQ,SAASC,UAAUL,QAAQE,OAAON,KAAKU,OAAOC,QAAAA;AAEpD,UAAMC,iBAAiBC,SAASP,OAAOE,SAASM,OAAOC,KAAKP,MAAAA,IAAUM,OAAOE,QAAO,CAAA;AACpF,UAAMC,eAAeC,YAAYnB,UAAU,OAAA;AAC3C,UAAMoB,kBAAkBF,aAAaG,IAAI,CAACC,OAAOT,eAAeU,KAAK,CAACC,QAAQA,IAAIF,OAAOA,EAAAA,CAAAA,EAAKG,OAAOC,aAAAA;AAErG,UAAMC,uBAAuBC,yBAAyB;MAAErB;IAAM,CAAA;AAE9D,UAAMsB,aAAaC,YACjB,CAACC,QAAa,EAAEC,QAAO,MAA0C;AAC/D,YAAMV,KAAKS,OAAOT;AAClBW,gBAAU,OAAOX,OAAO,UAAA,QAAA;;;;;;;;;AACxB,YAAMY,SAASrB,eAAeU,KAAK,CAACC,QAAQA,IAAIF,OAAOA,EAAAA;AACvDW,gBAAUC,QAAAA,QAAAA;;;;;;;;;AAEV,YAAMC,eAAeC,OAAOC,KAAKL,OAAAA,EAASP,OAAO,CAACa,SAASN,QAAQM,IAAAA,CAAiB;AACpF,iBAAWA,QAAQH,cAAc;AAC/B,cAAMI,QAAQR,OAAOO,IAAAA;AACrBE,iBAASN,QAAQI,MAAMC,KAAAA;MACzB;IACF,GACA;MAAC1B;KAAe;AAGlB,QAAIO,gBAAgBqB,WAAW,GAAG;AAChC,aACE,sBAAA,cAACC,OAAAA;QAAIC,MAAK;QAAOC,WAAU;SACzB,sBAAA,cAACC,QAAQC,MAAI;QAACC,YAAW;SACvB,sBAAA,cAACF,QAAQG,OAAK,MAAE9C,EAAE,gCAAA,CAAA,CAAA,CAAA;IAI1B;AAEA,WACE,sBAAA,cAACwC,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACxBnC,UACCW,gBAAgBC,IAAI,CAACa,WACnB,sBAAA,cAACQ,OAAAA;MAAIO,KAAKf,OAAOZ;MAAIsB,WAAU;OAC7B,sBAAA,cAACM,MAAAA;MACCC,UAAAA;MACA1C;MACAsB,QAAQG;MACRkB,QAAQvB;MACRwB,mBAAmB1B;;;;;AAMjC;AAEA,IAAA,6BAAe5B;",
|
|
6
|
-
"names": ["React", "useCallback", "setValue", "invariant", "useClient", "getSpace", "Filter", "useQuery", "useSchema", "Callout", "useTranslation", "useSelected", "Form", "useRefQueryLookupHandler", "isNonNullable", "ObjectDetailsPanel", "objectId", "view", "t", "useTranslation", "SPACE_PLUGIN", "client", "useClient", "space", "getSpace", "schema", "useSchema", "query", "typename", "queriedObjects", "useQuery", "Filter", "type", "nothing", "selectedRows", "useSelected", "selectedObjects", "map", "id", "find", "obj", "filter", "isNonNullable", "handleRefQueryLookup", "useRefQueryLookupHandler", "handleSave", "useCallback", "values", "changed", "invariant", "object", "changedPaths", "Object", "keys", "path", "value", "setValue", "length", "div", "role", "className", "Callout", "Root", "classNames", "Title", "key", "Form", "autoSave", "onSave", "onQueryRefOptions"]
|
|
7
|
-
}
|