@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
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
meta
|
|
4
|
+
} from "./chunk-BDEFTL6K.mjs";
|
|
5
|
+
|
|
6
|
+
// src/components/RecordArticle.tsx
|
|
7
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
8
|
+
import React, { useMemo } from "react";
|
|
9
|
+
import { Surface } from "@dxos/app-framework/react";
|
|
10
|
+
import { Filter, Ref, Relation } from "@dxos/echo";
|
|
11
|
+
import { getSpace, useQuery } from "@dxos/react-client/echo";
|
|
12
|
+
import { useTranslation } from "@dxos/react-ui";
|
|
13
|
+
import { Masonry } from "@dxos/react-ui-masonry";
|
|
14
|
+
import { StackItem } from "@dxos/react-ui-stack";
|
|
15
|
+
import { mx } from "@dxos/react-ui-theme";
|
|
16
|
+
import { isNonNullable } from "@dxos/util";
|
|
17
|
+
var RecordArticle = ({ subject }) => {
|
|
18
|
+
var _effect = _useSignals();
|
|
19
|
+
try {
|
|
20
|
+
const { t } = useTranslation(meta.id);
|
|
21
|
+
const space = getSpace(subject);
|
|
22
|
+
const data = useMemo(() => ({
|
|
23
|
+
subject
|
|
24
|
+
}), [
|
|
25
|
+
subject
|
|
26
|
+
]);
|
|
27
|
+
const related = useRelatedObjects(space, subject, {
|
|
28
|
+
references: true,
|
|
29
|
+
relations: true
|
|
30
|
+
});
|
|
31
|
+
const singleColumn = related.length === 1;
|
|
32
|
+
return /* @__PURE__ */ React.createElement(StackItem.Content, null, /* @__PURE__ */ React.createElement("div", {
|
|
33
|
+
role: "none",
|
|
34
|
+
className: mx("flex flex-col gap-4 p-4 is-full overflow-y-auto")
|
|
35
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
36
|
+
role: "none",
|
|
37
|
+
className: mx("flex is-full card-max-width")
|
|
38
|
+
}, /* @__PURE__ */ React.createElement(Surface, {
|
|
39
|
+
role: "section",
|
|
40
|
+
data,
|
|
41
|
+
limit: 1
|
|
42
|
+
})), related.length > 0 && /* @__PURE__ */ React.createElement("div", {
|
|
43
|
+
role: "none",
|
|
44
|
+
className: mx("flex flex-col gap-1", singleColumn ? "card-max-width" : "is-full")
|
|
45
|
+
}, /* @__PURE__ */ React.createElement("label", {
|
|
46
|
+
className: "mbs-2 text-sm text-description"
|
|
47
|
+
}, t("related objects label")), /* @__PURE__ */ React.createElement(Masonry.Root, {
|
|
48
|
+
items: related,
|
|
49
|
+
render: Card,
|
|
50
|
+
columnCount: singleColumn ? 1 : void 0,
|
|
51
|
+
intrinsicHeight: true
|
|
52
|
+
}))));
|
|
53
|
+
} finally {
|
|
54
|
+
_effect.f();
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
var Card = ({ data: subject }) => {
|
|
58
|
+
var _effect = _useSignals();
|
|
59
|
+
try {
|
|
60
|
+
const data = useMemo(() => ({
|
|
61
|
+
subject
|
|
62
|
+
}), [
|
|
63
|
+
subject
|
|
64
|
+
]);
|
|
65
|
+
return /* @__PURE__ */ React.createElement(Surface, {
|
|
66
|
+
role: "card",
|
|
67
|
+
data,
|
|
68
|
+
limit: 1
|
|
69
|
+
});
|
|
70
|
+
} finally {
|
|
71
|
+
_effect.f();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
var useRelatedObjects = (space, record, options = {}) => {
|
|
75
|
+
const objects = useQuery(space, Filter.everything());
|
|
76
|
+
return useMemo(() => {
|
|
77
|
+
if (!record) {
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
80
|
+
const related = [];
|
|
81
|
+
if (options.references) {
|
|
82
|
+
const getReferences = (obj) => {
|
|
83
|
+
return Object.getOwnPropertyNames(obj).map((name) => obj[name]).filter((value) => Ref.isRef(value));
|
|
84
|
+
};
|
|
85
|
+
const references = getReferences(record);
|
|
86
|
+
const referenceTargets = references.map((ref) => ref.target).filter(isNonNullable);
|
|
87
|
+
const referenceSources = objects.filter((obj) => {
|
|
88
|
+
const refs = getReferences(obj);
|
|
89
|
+
return refs.some((ref) => ref.target === record);
|
|
90
|
+
});
|
|
91
|
+
related.push(...referenceTargets, ...referenceSources);
|
|
92
|
+
}
|
|
93
|
+
if (options.relations) {
|
|
94
|
+
const isValidRelation = (obj) => {
|
|
95
|
+
try {
|
|
96
|
+
return Relation.isRelation(obj) && Relation.getSource(obj) && Relation.getTarget(obj);
|
|
97
|
+
} catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const relations = objects.filter((obj) => Relation.isRelation(obj)).filter((obj) => isValidRelation(obj));
|
|
102
|
+
const targetObjects = relations.filter((relation) => Relation.getTarget(relation) === record).map((relation) => Relation.getSource(relation));
|
|
103
|
+
const sourceObjects = relations.filter((relation) => Relation.getSource(relation) === record).map((relation) => Relation.getTarget(relation));
|
|
104
|
+
related.push(...targetObjects, ...sourceObjects);
|
|
105
|
+
}
|
|
106
|
+
return related;
|
|
107
|
+
}, [
|
|
108
|
+
record,
|
|
109
|
+
objects
|
|
110
|
+
]);
|
|
111
|
+
};
|
|
112
|
+
var RecordArticle_default = RecordArticle;
|
|
113
|
+
export {
|
|
114
|
+
RecordArticle,
|
|
115
|
+
RecordArticle_default as default
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=RecordArticle-NACBH42P.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/RecordArticle.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Surface } from '@dxos/app-framework/react';\nimport { type SurfaceComponentProps } from '@dxos/app-framework/react';\nimport { Filter, type Obj, Ref, Relation } from '@dxos/echo';\nimport { type Space, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { Masonry } from '@dxos/react-ui-masonry';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { mx } from '@dxos/react-ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../meta';\n\nexport const RecordArticle = ({ subject }: SurfaceComponentProps) => {\n const { t } = useTranslation(meta.id);\n const space = getSpace(subject);\n const data = useMemo(() => ({ subject }), [subject]);\n const related = useRelatedObjects(space, subject, {\n references: true,\n relations: true,\n });\n const singleColumn = related.length === 1;\n\n return (\n <StackItem.Content>\n <div role='none' className={mx('flex flex-col gap-4 p-4 is-full overflow-y-auto')}>\n <div role='none' className={mx('flex is-full card-max-width')}>\n <Surface role='section' data={data} limit={1} />\n </div>\n\n {related.length > 0 && (\n <div role='none' className={mx('flex flex-col gap-1', singleColumn ? 'card-max-width' : 'is-full')}>\n <label className='mbs-2 text-sm text-description'>{t('related objects label')}</label>\n <Masonry.Root<Obj.Any>\n items={related}\n render={Card}\n columnCount={singleColumn ? 1 : undefined}\n intrinsicHeight\n />\n </div>\n )}\n </div>\n </StackItem.Content>\n );\n};\n\nconst Card = ({ data: subject }: { data: Obj.Any }) => {\n const data = useMemo(() => ({ subject }), [subject]);\n return <Surface role='card' data={data} limit={1} />;\n};\n\n// TODO(wittjosiah): This is a hack. ECHO needs to have a back reference index to easily query for related objects.\nconst useRelatedObjects = (\n space?: Space,\n record?: Obj.Any,\n options: { references?: boolean; relations?: boolean } = {},\n) => {\n const objects = useQuery(space, Filter.everything());\n return useMemo(() => {\n if (!record) {\n return [];\n }\n\n const related: Obj.Any[] = [];\n\n // TODO(burdon): Change Person => Organization to relations.\n if (options.references) {\n const getReferences = (obj: Obj.Any): Ref.Any[] => {\n return Object.getOwnPropertyNames(obj)\n .map((name) => obj[name as keyof Obj.Any])\n .filter((value) => Ref.isRef(value)) as Ref.Any[];\n };\n\n const references = getReferences(record);\n const referenceTargets = references.map((ref) => ref.target).filter(isNonNullable);\n const referenceSources = objects.filter((obj) => {\n const refs = getReferences(obj);\n return refs.some((ref) => ref.target === record);\n });\n\n related.push(...referenceTargets, ...referenceSources);\n }\n\n if (options.relations) {\n // TODO(dmaretskyi): Workaround until https://github.com/dxos/dxos/pull/10100 lands.\n const isValidRelation = (obj: Obj.Any) => {\n try {\n return Relation.isRelation(obj) && Relation.getSource(obj) && Relation.getTarget(obj);\n } catch {\n return false;\n }\n };\n\n const relations = objects.filter((obj) => Relation.isRelation(obj)).filter((obj) => isValidRelation(obj));\n const targetObjects = relations\n .filter((relation) => Relation.getTarget(relation) === record)\n .map((relation) => Relation.getSource(relation));\n const sourceObjects = relations\n .filter((relation) => Relation.getSource(relation) === record)\n .map((relation) => Relation.getTarget(relation));\n\n related.push(...targetObjects, ...sourceObjects);\n }\n\n return related;\n }, [record, objects]);\n};\n\nexport default RecordArticle;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useMemo", "Surface", "Filter", "Ref", "Relation", "getSpace", "useQuery", "useTranslation", "Masonry", "StackItem", "mx", "isNonNullable", "RecordArticle", "subject", "t", "useTranslation", "meta", "id", "space", "getSpace", "data", "useMemo", "related", "useRelatedObjects", "references", "relations", "singleColumn", "length", "StackItem", "Content", "div", "role", "className", "mx", "Surface", "limit", "label", "Masonry", "Root", "items", "render", "Card", "columnCount", "undefined", "intrinsicHeight", "record", "options", "objects", "useQuery", "Filter", "everything", "getReferences", "obj", "Object", "getOwnPropertyNames", "map", "name", "filter", "value", "Ref", "isRef", "referenceTargets", "ref", "target", "isNonNullable", "referenceSources", "refs", "some", "push", "isValidRelation", "Relation", "isRelation", "getSource", "getTarget", "targetObjects", "relation", "sourceObjects"]
|
|
7
|
+
}
|
|
@@ -1,44 +1,47 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
getActiveSpace
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TJPQDQNI.mjs";
|
|
5
5
|
import {
|
|
6
6
|
SpaceCapabilities
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-Z7BB6HC2.mjs";
|
|
8
8
|
import {
|
|
9
9
|
SHARED,
|
|
10
10
|
SPACES,
|
|
11
|
+
atomFromQuery,
|
|
11
12
|
constructObjectActions,
|
|
12
13
|
constructSpaceActions,
|
|
13
14
|
constructSpaceNode,
|
|
14
15
|
createObjectNode,
|
|
15
16
|
createStaticSchemaActions,
|
|
16
|
-
createStaticSchemaNode
|
|
17
|
-
|
|
18
|
-
} from "./chunk-4AOMYKDE.mjs";
|
|
17
|
+
createStaticSchemaNode
|
|
18
|
+
} from "./chunk-VH2EBZEV.mjs";
|
|
19
19
|
import {
|
|
20
20
|
SPACE_TYPE,
|
|
21
21
|
SpaceAction
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-2PN7QNGV.mjs";
|
|
23
23
|
import {
|
|
24
|
-
|
|
25
|
-
} from "./chunk-
|
|
24
|
+
meta
|
|
25
|
+
} from "./chunk-BDEFTL6K.mjs";
|
|
26
26
|
|
|
27
27
|
// src/capabilities/app-graph-builder.ts
|
|
28
|
-
import {
|
|
29
|
-
import
|
|
28
|
+
import { Atom } from "@effect-atom/atom-react";
|
|
29
|
+
import * as Array from "effect/Array";
|
|
30
|
+
import * as Function from "effect/Function";
|
|
31
|
+
import * as Option from "effect/Option";
|
|
32
|
+
import * as Schema from "effect/Schema";
|
|
30
33
|
import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
|
|
31
|
-
import {
|
|
32
|
-
import { Filter, Obj, Query, Type } from "@dxos/echo";
|
|
34
|
+
import { SpaceState, getSpace, isSpace } from "@dxos/client/echo";
|
|
35
|
+
import { DXN, Filter, Obj, Query, Type } from "@dxos/echo";
|
|
33
36
|
import { log } from "@dxos/log";
|
|
34
37
|
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
+
import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
|
|
39
|
+
import { ROOT_ID, atomFromObservable, atomFromSignal, createExtension } from "@dxos/plugin-graph";
|
|
40
|
+
import { Collection, StoredSchema, View, getTypenameFromQuery } from "@dxos/schema";
|
|
38
41
|
import { isNonNullable } from "@dxos/util";
|
|
39
42
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/capabilities/app-graph-builder.ts";
|
|
40
|
-
var app_graph_builder_default = (context) => {
|
|
41
|
-
const resolve = (typename) => context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
|
|
43
|
+
var app_graph_builder_default = ((context) => {
|
|
44
|
+
const resolve = (get) => (typename) => context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
|
|
42
45
|
const spacesNode = {
|
|
43
46
|
id: SPACES,
|
|
44
47
|
type: SPACES,
|
|
@@ -50,7 +53,7 @@ var app_graph_builder_default = (context) => {
|
|
|
50
53
|
label: [
|
|
51
54
|
"spaces label",
|
|
52
55
|
{
|
|
53
|
-
ns:
|
|
56
|
+
ns: meta.id
|
|
54
57
|
}
|
|
55
58
|
],
|
|
56
59
|
icon: "ph--planet--regular",
|
|
@@ -71,7 +74,7 @@ var app_graph_builder_default = (context) => {
|
|
|
71
74
|
} else {
|
|
72
75
|
log.warn("spaces order object not found", void 0, {
|
|
73
76
|
F: __dxlog_file,
|
|
74
|
-
L:
|
|
77
|
+
L: 74,
|
|
75
78
|
S: void 0,
|
|
76
79
|
C: (f, a) => f(...a)
|
|
77
80
|
});
|
|
@@ -82,9 +85,9 @@ var app_graph_builder_default = (context) => {
|
|
|
82
85
|
return contributes(Capabilities.AppGraphBuilder, [
|
|
83
86
|
// Primary actions.
|
|
84
87
|
createExtension({
|
|
85
|
-
id: `${
|
|
88
|
+
id: `${meta.id}/primary-actions`,
|
|
86
89
|
position: "hoist",
|
|
87
|
-
actions: (node) =>
|
|
90
|
+
actions: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
|
|
88
91
|
{
|
|
89
92
|
id: SpaceAction.OpenCreateSpace._tag,
|
|
90
93
|
data: async () => {
|
|
@@ -95,7 +98,7 @@ var app_graph_builder_default = (context) => {
|
|
|
95
98
|
label: [
|
|
96
99
|
"create space label",
|
|
97
100
|
{
|
|
98
|
-
ns:
|
|
101
|
+
ns: meta.id
|
|
99
102
|
}
|
|
100
103
|
],
|
|
101
104
|
icon: "ph--plus--regular",
|
|
@@ -113,7 +116,7 @@ var app_graph_builder_default = (context) => {
|
|
|
113
116
|
label: [
|
|
114
117
|
"join space label",
|
|
115
118
|
{
|
|
116
|
-
ns:
|
|
119
|
+
ns: meta.id
|
|
117
120
|
}
|
|
118
121
|
],
|
|
119
122
|
icon: "ph--sign-in--regular",
|
|
@@ -135,7 +138,7 @@ var app_graph_builder_default = (context) => {
|
|
|
135
138
|
label: [
|
|
136
139
|
"share space label",
|
|
137
140
|
{
|
|
138
|
-
ns:
|
|
141
|
+
ns: meta.id
|
|
139
142
|
}
|
|
140
143
|
],
|
|
141
144
|
icon: "ph--users--regular",
|
|
@@ -160,7 +163,7 @@ var app_graph_builder_default = (context) => {
|
|
|
160
163
|
label: [
|
|
161
164
|
"open current space settings label",
|
|
162
165
|
{
|
|
163
|
-
ns:
|
|
166
|
+
ns: meta.id
|
|
164
167
|
}
|
|
165
168
|
],
|
|
166
169
|
icon: "ph--faders--regular",
|
|
@@ -174,9 +177,9 @@ var app_graph_builder_default = (context) => {
|
|
|
174
177
|
}),
|
|
175
178
|
// Create spaces group node.
|
|
176
179
|
createExtension({
|
|
177
|
-
id: `${
|
|
180
|
+
id: `${meta.id}/root`,
|
|
178
181
|
position: "hoist",
|
|
179
|
-
connector: (node) =>
|
|
182
|
+
connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
|
|
180
183
|
spacesNode
|
|
181
184
|
]), Option.getOrElse(() => [])))
|
|
182
185
|
}),
|
|
@@ -185,25 +188,25 @@ var app_graph_builder_default = (context) => {
|
|
|
185
188
|
id: SPACES,
|
|
186
189
|
connector: (node) => {
|
|
187
190
|
let query;
|
|
188
|
-
return
|
|
191
|
+
return Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === SPACES ? Option.some(node2) : Option.none()), Option.map(() => {
|
|
189
192
|
const state = context.getCapability(SpaceCapabilities.State);
|
|
190
193
|
const client = context.getCapability(ClientCapabilities.Client);
|
|
191
|
-
const
|
|
192
|
-
const
|
|
193
|
-
const spaces = get(
|
|
194
|
-
const isReady = get(
|
|
194
|
+
const spacesAtom = atomFromObservable(client.spaces);
|
|
195
|
+
const isReadyAtom = atomFromObservable(client.spaces.isReady);
|
|
196
|
+
const spaces = get(spacesAtom);
|
|
197
|
+
const isReady = get(isReadyAtom);
|
|
195
198
|
if (!spaces || !isReady) {
|
|
196
199
|
return [];
|
|
197
200
|
}
|
|
198
|
-
const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore(
|
|
201
|
+
const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore(meta.id)?.value;
|
|
199
202
|
try {
|
|
200
203
|
if (!query) {
|
|
201
204
|
query = client.spaces.default.db.query(Filter.type(Type.Expando, {
|
|
202
205
|
key: SHARED
|
|
203
206
|
}));
|
|
204
207
|
}
|
|
205
|
-
const [spacesOrder] = get(
|
|
206
|
-
return get(
|
|
208
|
+
const [spacesOrder] = get(atomFromQuery(query));
|
|
209
|
+
return get(atomFromSignal(() => {
|
|
207
210
|
const order = spacesOrder?.order ?? [];
|
|
208
211
|
const orderMap = new Map(order.map((id, index) => [
|
|
209
212
|
id,
|
|
@@ -217,7 +220,7 @@ var app_graph_builder_default = (context) => {
|
|
|
217
220
|
navigable: state.navigableCollections,
|
|
218
221
|
personal: space === client.spaces.default,
|
|
219
222
|
namesCache: state.spaceNames,
|
|
220
|
-
resolve
|
|
223
|
+
resolve: resolve(get)
|
|
221
224
|
}));
|
|
222
225
|
}));
|
|
223
226
|
} catch {
|
|
@@ -228,8 +231,8 @@ var app_graph_builder_default = (context) => {
|
|
|
228
231
|
}),
|
|
229
232
|
// Create space actions.
|
|
230
233
|
createExtension({
|
|
231
|
-
id: `${
|
|
232
|
-
actions: (node) =>
|
|
234
|
+
id: `${meta.id}/actions`,
|
|
235
|
+
actions: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.type === SPACE_TYPE && isSpace(node2.data) ? Option.some(node2.data) : Option.none()), Option.flatMap((space) => {
|
|
233
236
|
const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
|
|
234
237
|
const [client] = get(context.capabilities(ClientCapabilities.Client));
|
|
235
238
|
const [state] = get(context.capabilities(SpaceCapabilities.State));
|
|
@@ -247,48 +250,49 @@ var app_graph_builder_default = (context) => {
|
|
|
247
250
|
}),
|
|
248
251
|
// Create nodes for objects in the root collection of a space.
|
|
249
252
|
createExtension({
|
|
250
|
-
id: `${
|
|
251
|
-
connector: (node) =>
|
|
253
|
+
id: `${meta.id}/root-collection`,
|
|
254
|
+
connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.type === SPACE_TYPE && isSpace(node2.data) ? Option.some(node2.data) : Option.none()), Option.map((space) => {
|
|
252
255
|
const state = context.getCapability(SpaceCapabilities.State);
|
|
253
|
-
const spaceState = get(
|
|
256
|
+
const spaceState = get(atomFromObservable(space.state));
|
|
254
257
|
if (spaceState !== SpaceState.SPACE_READY) {
|
|
255
258
|
return [];
|
|
256
259
|
}
|
|
257
|
-
const collection = get(
|
|
260
|
+
const collection = get(atomFromSignal(() => space.properties[Collection.Collection.typename]?.target));
|
|
258
261
|
if (!collection) {
|
|
259
262
|
return [];
|
|
260
263
|
}
|
|
261
|
-
return get(
|
|
264
|
+
return get(atomFromSignal(() => Function.pipe(collection.objects, Array.map((object) => object.target), Array.filter(isNonNullable), Array.map((object) => createObjectNode({
|
|
262
265
|
space,
|
|
263
266
|
object,
|
|
264
|
-
resolve,
|
|
267
|
+
resolve: resolve(get),
|
|
265
268
|
navigable: state.navigableCollections
|
|
266
269
|
})), Array.filter(isNonNullable))));
|
|
267
270
|
}), Option.getOrElse(() => [])))
|
|
268
271
|
}),
|
|
269
272
|
// Create nodes for objects in a collection or by its fully qualified id.
|
|
270
273
|
createExtension({
|
|
271
|
-
id: `${
|
|
272
|
-
connector: (node) =>
|
|
274
|
+
id: `${meta.id}/objects`,
|
|
275
|
+
connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(Collection.Collection, node2.data) ? Option.some(node2.data) : Option.none()), Option.map((collection) => {
|
|
273
276
|
const state = context.getCapability(SpaceCapabilities.State);
|
|
274
277
|
const space = getSpace(collection);
|
|
275
|
-
return get(
|
|
278
|
+
return get(atomFromSignal(() => Function.pipe(collection.objects, Array.map((object) => object.target), Array.filter(isNonNullable), Array.map((object) => space && createObjectNode({
|
|
276
279
|
object,
|
|
277
280
|
space,
|
|
278
|
-
resolve,
|
|
281
|
+
resolve: resolve(get),
|
|
279
282
|
navigable: state.navigableCollections
|
|
280
283
|
})), Array.filter(isNonNullable))));
|
|
281
284
|
}), Option.getOrElse(() => [])))
|
|
282
285
|
}),
|
|
283
286
|
// Create nodes for objects in a query collection.
|
|
284
287
|
createExtension({
|
|
285
|
-
id: `${
|
|
288
|
+
id: `${meta.id}/query-collection-objects`,
|
|
286
289
|
connector: (node) => {
|
|
287
290
|
let query;
|
|
288
|
-
return
|
|
291
|
+
return Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(Collection.QueryCollection, node2.data) ? Option.some(node2.data) : Option.none()), Option.flatMap((collection) => {
|
|
289
292
|
const space = getSpace(collection);
|
|
290
|
-
|
|
291
|
-
|
|
293
|
+
const typename = getTypenameFromQuery(collection.query);
|
|
294
|
+
return typename && space ? Option.some({
|
|
295
|
+
typename,
|
|
292
296
|
space
|
|
293
297
|
}) : Option.none();
|
|
294
298
|
}), Option.map(({ typename, space }) => {
|
|
@@ -299,13 +303,13 @@ var app_graph_builder_default = (context) => {
|
|
|
299
303
|
// TODO(wittjosiah): This query is broader than it should be.
|
|
300
304
|
// It will return all objects in the collection, not just the ones of the given type.
|
|
301
305
|
// However this works fine for now because this query is only used for exclusions.
|
|
302
|
-
Query.select(Filter.typename(typename)).referencedBy(
|
|
306
|
+
Query.select(Filter.typename(typename)).referencedBy(Collection.Collection, "objects").reference("objects")
|
|
303
307
|
));
|
|
304
308
|
}
|
|
305
|
-
return get(
|
|
309
|
+
return get(atomFromQuery(query)).toSorted((a, b) => a.id.localeCompare(b.id)).map((object) => get(atomFromSignal(() => createObjectNode({
|
|
306
310
|
object,
|
|
307
311
|
space,
|
|
308
|
-
resolve,
|
|
312
|
+
resolve: resolve(get),
|
|
309
313
|
droppable: false,
|
|
310
314
|
navigable: state.navigableCollections
|
|
311
315
|
})))).filter(isNonNullable);
|
|
@@ -314,14 +318,14 @@ var app_graph_builder_default = (context) => {
|
|
|
314
318
|
}),
|
|
315
319
|
// Static schema records.
|
|
316
320
|
createExtension({
|
|
317
|
-
id: `${
|
|
321
|
+
id: `${meta.id}/static-schemas`,
|
|
318
322
|
connector: (node) => {
|
|
319
323
|
const client = context.getCapability(ClientCapabilities.Client);
|
|
320
|
-
return
|
|
324
|
+
return Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(Collection.QueryCollection, node2.data) && getTypenameFromQuery(node2.data.query) === StoredSchema.typename ? Option.some(node2.data) : Option.none()), Option.flatMap((collection) => {
|
|
321
325
|
const space = getSpace(collection);
|
|
322
326
|
return space?.properties.staticRecords ? Option.some(space) : Option.none();
|
|
323
327
|
}), Option.map((space) => {
|
|
324
|
-
return get(
|
|
328
|
+
return get(atomFromSignal(() => space.properties.staticRecords ?? [])).map((typename) => client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename)).filter(isNonNullable).map((schema) => createStaticSchemaNode({
|
|
325
329
|
schema,
|
|
326
330
|
space
|
|
327
331
|
}));
|
|
@@ -330,10 +334,10 @@ var app_graph_builder_default = (context) => {
|
|
|
330
334
|
}),
|
|
331
335
|
// Create static schema actions.
|
|
332
336
|
createExtension({
|
|
333
|
-
id: `${
|
|
337
|
+
id: `${meta.id}/static-schema-actions`,
|
|
334
338
|
actions: (node) => {
|
|
335
339
|
let query;
|
|
336
|
-
return
|
|
340
|
+
return Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => {
|
|
337
341
|
const space = isSpace(node2.properties.space) ? node2.properties.space : void 0;
|
|
338
342
|
return space && Schema.isSchema(node2.data) ? Option.some({
|
|
339
343
|
space,
|
|
@@ -341,17 +345,22 @@ var app_graph_builder_default = (context) => {
|
|
|
341
345
|
}) : Option.none();
|
|
342
346
|
}), Option.map(({ space, schema }) => {
|
|
343
347
|
if (!query) {
|
|
344
|
-
query = space.db.query(Filter.type(
|
|
348
|
+
query = space.db.query(Filter.type(View.View));
|
|
345
349
|
}
|
|
346
|
-
const views = get(
|
|
347
|
-
const filteredViews = get(
|
|
350
|
+
const views = get(atomFromQuery(query));
|
|
351
|
+
const filteredViews = get(atomFromSignal(() => (
|
|
348
352
|
// TODO(wittjosiah): Remove cast.
|
|
349
|
-
views.filter((view) => view.query.
|
|
353
|
+
views.filter((view) => getTypenameFromQuery(view.query.ast) === Type.getTypename(schema))
|
|
350
354
|
)));
|
|
351
355
|
const deletable = filteredViews.length === 0;
|
|
356
|
+
const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
|
|
357
|
+
if (!dispatcher) {
|
|
358
|
+
return [];
|
|
359
|
+
}
|
|
352
360
|
return createStaticSchemaActions({
|
|
353
361
|
schema,
|
|
354
362
|
space,
|
|
363
|
+
dispatch: dispatcher.dispatchPromise,
|
|
355
364
|
deletable
|
|
356
365
|
});
|
|
357
366
|
}), Option.getOrElse(() => [])));
|
|
@@ -359,50 +368,89 @@ var app_graph_builder_default = (context) => {
|
|
|
359
368
|
}),
|
|
360
369
|
// Create nodes for schema views.
|
|
361
370
|
createExtension({
|
|
362
|
-
id: `${
|
|
371
|
+
id: `${meta.id}/schema-views`,
|
|
363
372
|
connector: (node) => {
|
|
364
373
|
let query;
|
|
365
|
-
return
|
|
374
|
+
return Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => {
|
|
366
375
|
const space = getSpace(node2.data) ?? (isSpace(node2.properties.space) ? node2.properties.space : void 0);
|
|
367
|
-
return space && (Obj.instanceOf(
|
|
376
|
+
return space && (Obj.instanceOf(StoredSchema, node2.data) || Schema.isSchema(node2.data)) ? Option.some({
|
|
368
377
|
space,
|
|
369
378
|
schema: node2.data
|
|
370
379
|
}) : Option.none();
|
|
371
380
|
}), Option.map(({ space, schema }) => {
|
|
372
381
|
if (!query) {
|
|
373
|
-
query = space.db.query(Filter.type(
|
|
382
|
+
query = space.db.query(Filter.type(View.View));
|
|
374
383
|
}
|
|
375
384
|
const typename = Schema.isSchema(schema) ? Type.getTypename(schema) : schema.typename;
|
|
376
|
-
return get(
|
|
385
|
+
return get(atomFromQuery(query)).filter((view) => getTypenameFromQuery(view.query.ast) === typename).filter((view) => get(atomFromSignal(() => {
|
|
386
|
+
const presentation = view.presentation.target;
|
|
387
|
+
if (presentation) {
|
|
388
|
+
const typename2 = Obj.getTypename(presentation);
|
|
389
|
+
return typename2 !== Collection.Collection.typename;
|
|
390
|
+
} else {
|
|
391
|
+
return false;
|
|
392
|
+
}
|
|
393
|
+
}))).map((view) => get(atomFromSignal(() => createObjectNode({
|
|
377
394
|
object: view,
|
|
378
395
|
space,
|
|
379
|
-
resolve,
|
|
396
|
+
resolve: resolve(get),
|
|
380
397
|
droppable: false
|
|
381
398
|
})))).filter(isNonNullable);
|
|
382
399
|
}), Option.getOrElse(() => [])));
|
|
383
400
|
}
|
|
384
401
|
}),
|
|
402
|
+
// Create record nodes.
|
|
403
|
+
createExtension({
|
|
404
|
+
id: `${meta.id}/records`,
|
|
405
|
+
resolver: (id) => {
|
|
406
|
+
let query;
|
|
407
|
+
return Atom.make((get) => {
|
|
408
|
+
const client = context.getCapability(ClientCapabilities.Client);
|
|
409
|
+
const dxn = DXN.tryParse(id)?.asEchoDXN();
|
|
410
|
+
if (!dxn || !dxn.spaceId) {
|
|
411
|
+
return null;
|
|
412
|
+
}
|
|
413
|
+
const space = client.spaces.get(dxn.spaceId);
|
|
414
|
+
if (!space) {
|
|
415
|
+
return null;
|
|
416
|
+
}
|
|
417
|
+
if (!query) {
|
|
418
|
+
query = space.db.query(Filter.ids(dxn.echoId));
|
|
419
|
+
}
|
|
420
|
+
const object = get(atomFromQuery(query)).at(0);
|
|
421
|
+
if (!object) {
|
|
422
|
+
return null;
|
|
423
|
+
}
|
|
424
|
+
return createObjectNode({
|
|
425
|
+
object,
|
|
426
|
+
space,
|
|
427
|
+
resolve: resolve(get),
|
|
428
|
+
disposition: "hidden"
|
|
429
|
+
});
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
}),
|
|
385
433
|
// Create collection actions and action groups.
|
|
386
434
|
createExtension({
|
|
387
|
-
id: `${
|
|
435
|
+
id: `${meta.id}/object-actions`,
|
|
388
436
|
actions: (node) => {
|
|
389
437
|
let query;
|
|
390
|
-
return
|
|
438
|
+
return Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => {
|
|
391
439
|
const space = getSpace(node2.data);
|
|
392
|
-
return space && Obj.isObject(node2.data) ? Option.some({
|
|
440
|
+
return space && Obj.isObject(node2.data) && Obj.getTypename(node2.data) === node2.type ? Option.some({
|
|
393
441
|
space,
|
|
394
442
|
object: node2.data
|
|
395
443
|
}) : Option.none();
|
|
396
444
|
}), Option.flatMap(({ space, object }) => {
|
|
397
|
-
const
|
|
398
|
-
if (!query &&
|
|
399
|
-
query = space.db.query(Filter.type(
|
|
445
|
+
const isSchema2 = Obj.instanceOf(StoredSchema, object);
|
|
446
|
+
if (!query && isSchema2) {
|
|
447
|
+
query = space.db.query(Filter.type(View.View));
|
|
400
448
|
}
|
|
401
|
-
let deletable = !
|
|
402
|
-
!(Obj.instanceOf(
|
|
403
|
-
if (
|
|
404
|
-
const views = get(
|
|
405
|
-
const filteredViews = get(
|
|
449
|
+
let deletable = !isSchema2 && // Don't allow the Records smart collection to be deleted.
|
|
450
|
+
!(Obj.instanceOf(Collection.QueryCollection, object) && getTypenameFromQuery(object.query) === StoredSchema.typename);
|
|
451
|
+
if (isSchema2 && query) {
|
|
452
|
+
const views = get(atomFromQuery(query));
|
|
453
|
+
const filteredViews = get(atomFromSignal(() => views.filter((view) => getTypenameFromQuery(view.query.ast) === object.typename)));
|
|
406
454
|
deletable = filteredViews.length === 0;
|
|
407
455
|
}
|
|
408
456
|
const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
|
|
@@ -418,7 +466,7 @@ var app_graph_builder_default = (context) => {
|
|
|
418
466
|
dispatch: dispatcher.dispatchPromise,
|
|
419
467
|
objectForms,
|
|
420
468
|
deletable,
|
|
421
|
-
navigable: get(
|
|
469
|
+
navigable: get(atomFromSignal(() => state.navigableCollections))
|
|
422
470
|
});
|
|
423
471
|
}
|
|
424
472
|
}), Option.map((params) => constructObjectActions(params)), Option.getOrElse(() => [])));
|
|
@@ -426,8 +474,8 @@ var app_graph_builder_default = (context) => {
|
|
|
426
474
|
}),
|
|
427
475
|
// View selected objects.
|
|
428
476
|
createExtension({
|
|
429
|
-
id: `${
|
|
430
|
-
connector: (node) =>
|
|
477
|
+
id: `${meta.id}/selected-objects`,
|
|
478
|
+
connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(View.View, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
431
479
|
{
|
|
432
480
|
id: [
|
|
433
481
|
node2.id,
|
|
@@ -439,7 +487,7 @@ var app_graph_builder_default = (context) => {
|
|
|
439
487
|
label: [
|
|
440
488
|
"companion selected objects label",
|
|
441
489
|
{
|
|
442
|
-
ns:
|
|
490
|
+
ns: meta.id
|
|
443
491
|
}
|
|
444
492
|
],
|
|
445
493
|
icon: "ph--tree-view--regular",
|
|
@@ -450,8 +498,8 @@ var app_graph_builder_default = (context) => {
|
|
|
450
498
|
}),
|
|
451
499
|
// Object settings plank companion.
|
|
452
500
|
createExtension({
|
|
453
|
-
id: `${
|
|
454
|
-
connector: (node) =>
|
|
501
|
+
id: `${meta.id}/settings`,
|
|
502
|
+
connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.isObject(node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
455
503
|
{
|
|
456
504
|
id: [
|
|
457
505
|
node2.id,
|
|
@@ -463,7 +511,7 @@ var app_graph_builder_default = (context) => {
|
|
|
463
511
|
label: [
|
|
464
512
|
"object settings label",
|
|
465
513
|
{
|
|
466
|
-
ns:
|
|
514
|
+
ns: meta.id
|
|
467
515
|
}
|
|
468
516
|
],
|
|
469
517
|
icon: "ph--sliders--regular",
|
|
@@ -474,8 +522,8 @@ var app_graph_builder_default = (context) => {
|
|
|
474
522
|
]), Option.getOrElse(() => [])))
|
|
475
523
|
})
|
|
476
524
|
]);
|
|
477
|
-
};
|
|
525
|
+
});
|
|
478
526
|
export {
|
|
479
527
|
app_graph_builder_default as default
|
|
480
528
|
};
|
|
481
|
-
//# sourceMappingURL=app-graph-builder-
|
|
529
|
+
//# sourceMappingURL=app-graph-builder-24JCLJPX.mjs.map
|