@dxos/plugin-space 0.8.4-main.fd6878d → 0.8.4-main.fffef41
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-VZW75QPJ.mjs → app-graph-builder-DTM7BJ6D.mjs} +114 -97
- package/dist/lib/browser/app-graph-builder-DTM7BJ6D.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-YPHYVZAP.mjs → app-graph-serializer-TIKXF43P.mjs} +19 -19
- package/dist/lib/browser/app-graph-serializer-TIKXF43P.mjs.map +7 -0
- package/dist/lib/browser/chunk-AFUOMLX6.mjs +167 -0
- package/dist/lib/browser/chunk-AFUOMLX6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PSIBVBTA.mjs → chunk-CKACGS7T.mjs} +576 -500
- package/dist/lib/browser/chunk-CKACGS7T.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-SMB4DGYO.mjs → chunk-KFUMADZF.mjs} +184 -60
- package/dist/lib/browser/chunk-KFUMADZF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-WAXS2ZVX.mjs → chunk-VGKOXAPE.mjs} +27 -13
- package/dist/lib/browser/chunk-VGKOXAPE.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/{chunk-3UFG6LQQ.mjs → chunk-ZQMSGD5J.mjs} +44 -22
- package/dist/lib/browser/chunk-ZQMSGD5J.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-T6ZNVE7S.mjs → identity-created-NAXTPQXE.mjs} +5 -5
- package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +89 -91
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-TS6CCKST.mjs → intent-resolver-3FNTO3VW.mjs} +103 -85
- package/dist/lib/browser/intent-resolver-3FNTO3VW.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-Q7VBWBES.mjs +30 -0
- package/dist/lib/browser/react-root-Q7VBWBES.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-V3ARS2BP.mjs → react-surface-TTHS332A.mjs} +75 -109
- package/dist/lib/browser/react-surface-TTHS332A.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-5LBA43X5.mjs → schema-defs-QPI2JU3X.mjs} +6 -6
- package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +7 -0
- package/dist/lib/browser/{settings-FLLBP5KI.mjs → settings-45PGPO2V.mjs} +5 -5
- package/dist/lib/browser/{settings-FLLBP5KI.mjs.map → settings-45PGPO2V.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-FXEP6XEW.mjs → spaces-ready-QCND4DVY.mjs} +15 -14
- package/dist/lib/browser/spaces-ready-QCND4DVY.mjs.map +7 -0
- package/dist/lib/browser/{state-K3UBPKYP.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-XNVQOJLE.mjs → app-graph-builder-FBJFWI4H.mjs} +114 -97
- package/dist/lib/node-esm/app-graph-builder-FBJFWI4H.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-PKVLWV6V.mjs → app-graph-serializer-BESQZAYU.mjs} +19 -19
- package/dist/lib/node-esm/app-graph-serializer-BESQZAYU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-S7MKRQHY.mjs → chunk-6VEONPNZ.mjs} +44 -22
- package/dist/lib/node-esm/chunk-6VEONPNZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6ZQGZBEP.mjs +168 -0
- package/dist/lib/node-esm/chunk-6ZQGZBEP.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-CTQMR7E3.mjs → chunk-OK2L7N2F.mjs} +184 -60
- package/dist/lib/node-esm/chunk-OK2L7N2F.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HYIZVPOA.mjs → chunk-QBRPYAEL.mjs} +27 -13
- package/dist/lib/node-esm/chunk-QBRPYAEL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-KYUHPPRN.mjs → chunk-XGAMJC5C.mjs} +576 -500
- package/dist/lib/node-esm/chunk-XGAMJC5C.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-AL7NNCKH.mjs → identity-created-OXLKCJE3.mjs} +5 -5
- package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +89 -91
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-W6P27SCF.mjs → intent-resolver-6O5FSB7Z.mjs} +103 -85
- package/dist/lib/node-esm/intent-resolver-6O5FSB7Z.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-N27KETKT.mjs → react-root-K66W3FMA.mjs} +13 -12
- package/dist/lib/node-esm/react-root-K66W3FMA.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-TNPAUQCM.mjs → react-surface-Y7FTEIDF.mjs} +75 -109
- package/dist/lib/node-esm/react-surface-Y7FTEIDF.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-TPWZPDCR.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-WKUWY3P6.mjs → settings-6FO65BA6.mjs} +5 -5
- package/dist/lib/node-esm/{settings-WKUWY3P6.mjs.map → settings-6FO65BA6.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-PQLLIO5W.mjs → spaces-ready-P7CKVXBE.mjs} +15 -14
- package/dist/lib/node-esm/spaces-ready-P7CKVXBE.mjs.map +7 -0
- package/dist/lib/node-esm/{state-4M5A6OSB.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 +6 -5
- 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/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/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/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 +1704 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +6 -4
- 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 +1707 -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/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 +1540 -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 +1707 -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 +1537 -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 +1537 -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 +1538 -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 -14
- 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 +1332 -22
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +92 -97
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +12 -8
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +65 -59
- package/src/SpacePlugin.ts +228 -218
- package/src/capabilities/app-graph-builder.ts +184 -135
- package/src/capabilities/app-graph-serializer.ts +12 -12
- package/src/capabilities/capabilities.ts +17 -11
- package/src/capabilities/identity-created.ts +2 -2
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/intent-resolver.ts +89 -62
- package/src/capabilities/react-root.tsx +4 -3
- package/src/capabilities/react-surface.tsx +69 -145
- package/src/capabilities/schema-defs.ts +1 -1
- package/src/capabilities/spaces-ready.ts +8 -5
- package/src/capabilities/state.ts +2 -2
- 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 +15 -15
- package/src/components/CreateDialog/CreateObjectDialog.tsx +48 -31
- package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
- 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} +21 -20
- 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} +6 -6
- package/src/components/ObjectRenamePopover/index.ts +5 -0
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -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 +23 -26
- package/src/components/SpacePluginSettings.tsx +15 -10
- package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +22 -22
- package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +16 -11
- 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 +15 -8
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +45 -24
- package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
- package/src/components/SyncStatus/SyncStatus.stories.tsx +7 -8
- package/src/components/SyncStatus/SyncStatus.tsx +107 -11
- package/src/components/ViewEditor.tsx +51 -23
- package/src/components/index.ts +7 -8
- package/src/events.ts +6 -6
- 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 +26 -10
- package/src/types/types.ts +42 -23
- package/src/util.tsx +183 -62
- package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs +0 -88
- package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs.map +0 -7
- package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
- package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-VZW75QPJ.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-YPHYVZAP.mjs.map +0 -7
- package/dist/lib/browser/chunk-3UFG6LQQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-CBYL62HG.mjs +0 -19
- package/dist/lib/browser/chunk-CBYL62HG.mjs.map +0 -7
- package/dist/lib/browser/chunk-DYKFFVN6.mjs +0 -94
- package/dist/lib/browser/chunk-DYKFFVN6.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-PSIBVBTA.mjs.map +0 -7
- package/dist/lib/browser/chunk-Q5EEPP3S.mjs +0 -20
- package/dist/lib/browser/chunk-Q5EEPP3S.mjs.map +0 -7
- package/dist/lib/browser/chunk-SMB4DGYO.mjs.map +0 -7
- package/dist/lib/browser/chunk-WAXS2ZVX.mjs.map +0 -7
- package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-TS6CCKST.mjs.map +0 -7
- package/dist/lib/browser/react-root-RQGTZ2ZO.mjs +0 -29
- package/dist/lib/browser/react-root-RQGTZ2ZO.mjs.map +0 -7
- package/dist/lib/browser/react-surface-V3ARS2BP.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-5LBA43X5.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-LPL35WOJ.mjs +0 -124
- package/dist/lib/browser/schema-tools-LPL35WOJ.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-FXEP6XEW.mjs.map +0 -7
- package/dist/lib/browser/state-K3UBPKYP.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs +0 -89
- package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs.map +0 -7
- package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
- package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-XNVQOJLE.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-PKVLWV6V.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7MZ3J3LI.mjs +0 -21
- package/dist/lib/node-esm/chunk-7MZ3J3LI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CTQMR7E3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FJZNSJC4.mjs +0 -20
- package/dist/lib/node-esm/chunk-FJZNSJC4.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-HYIZVPOA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KLG4Y4GY.mjs +0 -96
- package/dist/lib/node-esm/chunk-KLG4Y4GY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KYUHPPRN.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-S7MKRQHY.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-W6P27SCF.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-N27KETKT.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-TNPAUQCM.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-TPWZPDCR.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-PJE2FKWH.mjs +0 -126
- package/dist/lib/node-esm/schema-tools-PJE2FKWH.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-PQLLIO5W.mjs.map +0 -7
- package/dist/lib/node-esm/state-4M5A6OSB.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/RecordMain.d.ts +0 -7
- package/dist/types/src/components/RecordMain.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
- package/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 -31
- package/src/components/ObjectDetailsPanel.tsx +0 -77
- package/src/components/PersistenceStatus.tsx +0 -83
- package/src/components/RecordMain.tsx +0 -43
|
@@ -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": ";;;;;;;AAIA,OAAOA,SAASC,eAAe;AAE/B,SAASC,eAAe;AAExB,SAASC,QAAkBC,KAAKC,gBAAgB;AAChD,SAAqBC,UAAUC,gBAAgB;AAC/C,SAASC,sBAAsB;AAC/B,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAC1B,SAASC,UAAU;AACnB,SAASC,qBAAqB;AAIvB,IAAMC,gBAAgB,CAAC,EAAEC,QAAO,MAAyB;;;AAC9D,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,QAAQC,SAASN,OAAAA;AACvB,UAAMO,OAAOC,QAAQ,OAAO;MAAER;IAAQ,IAAI;MAACA;KAAQ;AACnD,UAAMS,UAAUC,kBAAkBL,OAAOL,SAAS;MAChDW,YAAY;MACZC,WAAW;IACb,CAAA;AACA,UAAMC,eAAeJ,QAAQK,WAAW;AAExC,WACE,sBAAA,cAACC,UAAUC,SAAO,MAChB,sBAAA,cAACC,OAAAA;MAAIC,MAAK;MAAOC,WAAWC,GAAG,iDAAA;OAC7B,sBAAA,cAACH,OAAAA;MAAIC,MAAK;MAAOC,WAAWC,GAAG,6BAAA;OAC7B,sBAAA,cAACC,SAAAA;MAAQH,MAAK;MAAUX;MAAYe,OAAO;SAG5Cb,QAAQK,SAAS,KAChB,sBAAA,cAACG,OAAAA;MAAIC,MAAK;MAAOC,WAAWC,GAAG,uBAAuBP,eAAe,mBAAmB,SAAA;OACtF,sBAAA,cAACU,SAAAA;MAAMJ,WAAU;OAAkClB,EAAE,uBAAA,CAAA,GACrD,sBAAA,cAACuB,QAAQC,MAAI;MACXC,OAAOjB;MACPkB,QAAQC;MACRC,aAAahB,eAAe,IAAIiB;MAChCC,iBAAAA;;;;;AAOd;AAEA,IAAMH,OAAO,CAAC,EAAErB,MAAMP,QAAO,MAAqB;;;AAChD,UAAMO,OAAOC,QAAQ,OAAO;MAAER;IAAQ,IAAI;MAACA;KAAQ;AACnD,WAAO,sBAAA,cAACqB,SAAAA;MAAQH,MAAK;MAAOX;MAAYe,OAAO;;;;;AACjD;AAGA,IAAMZ,oBAAoB,CACxBL,OACA2B,QACAC,UAAyD,CAAC,MAAC;AAE3D,QAAMC,UAAUC,SAAS9B,OAAO+B,OAAOC,WAAU,CAAA;AACjD,SAAO7B,QAAQ,MAAA;AACb,QAAI,CAACwB,QAAQ;AACX,aAAO,CAAA;IACT;AAEA,UAAMvB,UAAqB,CAAA;AAG3B,QAAIwB,QAAQtB,YAAY;AACtB,YAAM2B,gBAAgB,CAACC,QAAAA;AACrB,eAAOC,OAAOC,oBAAoBF,GAAAA,EAC/BG,IAAI,CAACC,SAASJ,IAAII,IAAAA,CAAsB,EACxCC,OAAO,CAACC,UAAUC,IAAIC,MAAMF,KAAAA,CAAAA;MACjC;AAEA,YAAMlC,aAAa2B,cAAcN,MAAAA;AACjC,YAAMgB,mBAAmBrC,WAAW+B,IAAI,CAACO,QAAQA,IAAIC,MAAM,EAAEN,OAAOO,aAAAA;AACpE,YAAMC,mBAAmBlB,QAAQU,OAAO,CAACL,QAAAA;AACvC,cAAMc,OAAOf,cAAcC,GAAAA;AAC3B,eAAOc,KAAKC,KAAK,CAACL,QAAQA,IAAIC,WAAWlB,MAAAA;MAC3C,CAAA;AAEAvB,cAAQ8C,KAAI,GAAIP,kBAAAA,GAAqBI,gBAAAA;IACvC;AAEA,QAAInB,QAAQrB,WAAW;AAErB,YAAM4C,kBAAkB,CAACjB,QAAAA;AACvB,YAAI;AACF,iBAAOkB,SAASC,WAAWnB,GAAAA,KAAQkB,SAASE,UAAUpB,GAAAA,KAAQkB,SAASG,UAAUrB,GAAAA;QACnF,QAAQ;AACN,iBAAO;QACT;MACF;AAEA,YAAM3B,YAAYsB,QAAQU,OAAO,CAACL,QAAQkB,SAASC,WAAWnB,GAAAA,CAAAA,EAAMK,OAAO,CAACL,QAAQiB,gBAAgBjB,GAAAA,CAAAA;AACpG,YAAMsB,gBAAgBjD,UACnBgC,OAAO,CAACkB,aAAaL,SAASG,UAAUE,QAAAA,MAAc9B,MAAAA,EACtDU,IAAI,CAACoB,aAAaL,SAASE,UAAUG,QAAAA,CAAAA;AACxC,YAAMC,gBAAgBnD,UACnBgC,OAAO,CAACkB,aAAaL,SAASE,UAAUG,QAAAA,MAAc9B,MAAAA,EACtDU,IAAI,CAACoB,aAAaL,SAASG,UAAUE,QAAAA,CAAAA;AAExCrD,cAAQ8C,KAAI,GAAIM,eAAAA,GAAkBE,aAAAA;IACpC;AAEA,WAAOtD;EACT,GAAG;IAACuB;IAAQE;GAAQ;AACtB;AAEA,IAAA,wBAAenC;",
|
|
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-6ZQGZBEP.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-CTQMR7E3.mjs";
|
|
17
|
+
createStaticSchemaNode
|
|
18
|
+
} from "./chunk-OK2L7N2F.mjs";
|
|
19
19
|
import {
|
|
20
20
|
SPACE_TYPE,
|
|
21
21
|
SpaceAction
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-6VEONPNZ.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 { SpaceState, getSpace, isSpace
|
|
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
38
|
import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
|
|
36
|
-
import { ROOT_ID,
|
|
37
|
-
import {
|
|
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,24 +368,32 @@ 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(() => [])));
|
|
@@ -384,30 +401,30 @@ var app_graph_builder_default = (context) => {
|
|
|
384
401
|
}),
|
|
385
402
|
// Create record nodes.
|
|
386
403
|
createExtension({
|
|
387
|
-
id: `${
|
|
404
|
+
id: `${meta.id}/records`,
|
|
388
405
|
resolver: (id) => {
|
|
389
406
|
let query;
|
|
390
|
-
return
|
|
407
|
+
return Atom.make((get) => {
|
|
391
408
|
const client = context.getCapability(ClientCapabilities.Client);
|
|
392
|
-
const
|
|
393
|
-
if (!
|
|
409
|
+
const dxn = DXN.tryParse(id)?.asEchoDXN();
|
|
410
|
+
if (!dxn || !dxn.spaceId) {
|
|
394
411
|
return null;
|
|
395
412
|
}
|
|
396
|
-
const space = client.spaces.get(spaceId);
|
|
413
|
+
const space = client.spaces.get(dxn.spaceId);
|
|
397
414
|
if (!space) {
|
|
398
415
|
return null;
|
|
399
416
|
}
|
|
400
417
|
if (!query) {
|
|
401
|
-
query = space.db.query(Filter.ids(
|
|
418
|
+
query = space.db.query(Filter.ids(dxn.echoId));
|
|
402
419
|
}
|
|
403
|
-
const object = get(
|
|
420
|
+
const object = get(atomFromQuery(query)).at(0);
|
|
404
421
|
if (!object) {
|
|
405
422
|
return null;
|
|
406
423
|
}
|
|
407
424
|
return createObjectNode({
|
|
408
425
|
object,
|
|
409
426
|
space,
|
|
410
|
-
resolve,
|
|
427
|
+
resolve: resolve(get),
|
|
411
428
|
disposition: "hidden"
|
|
412
429
|
});
|
|
413
430
|
});
|
|
@@ -415,25 +432,25 @@ var app_graph_builder_default = (context) => {
|
|
|
415
432
|
}),
|
|
416
433
|
// Create collection actions and action groups.
|
|
417
434
|
createExtension({
|
|
418
|
-
id: `${
|
|
435
|
+
id: `${meta.id}/object-actions`,
|
|
419
436
|
actions: (node) => {
|
|
420
437
|
let query;
|
|
421
|
-
return
|
|
438
|
+
return Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => {
|
|
422
439
|
const space = getSpace(node2.data);
|
|
423
|
-
return space && Obj.isObject(node2.data) ? Option.some({
|
|
440
|
+
return space && Obj.isObject(node2.data) && Obj.getTypename(node2.data) === node2.type ? Option.some({
|
|
424
441
|
space,
|
|
425
442
|
object: node2.data
|
|
426
443
|
}) : Option.none();
|
|
427
444
|
}), Option.flatMap(({ space, object }) => {
|
|
428
|
-
const
|
|
429
|
-
if (!query &&
|
|
430
|
-
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));
|
|
431
448
|
}
|
|
432
|
-
let deletable = !
|
|
433
|
-
!(Obj.instanceOf(
|
|
434
|
-
if (
|
|
435
|
-
const views = get(
|
|
436
|
-
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)));
|
|
437
454
|
deletable = filteredViews.length === 0;
|
|
438
455
|
}
|
|
439
456
|
const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
|
|
@@ -449,7 +466,7 @@ var app_graph_builder_default = (context) => {
|
|
|
449
466
|
dispatch: dispatcher.dispatchPromise,
|
|
450
467
|
objectForms,
|
|
451
468
|
deletable,
|
|
452
|
-
navigable: get(
|
|
469
|
+
navigable: get(atomFromSignal(() => state.navigableCollections))
|
|
453
470
|
});
|
|
454
471
|
}
|
|
455
472
|
}), Option.map((params) => constructObjectActions(params)), Option.getOrElse(() => [])));
|
|
@@ -457,8 +474,8 @@ var app_graph_builder_default = (context) => {
|
|
|
457
474
|
}),
|
|
458
475
|
// View selected objects.
|
|
459
476
|
createExtension({
|
|
460
|
-
id: `${
|
|
461
|
-
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) => [
|
|
462
479
|
{
|
|
463
480
|
id: [
|
|
464
481
|
node2.id,
|
|
@@ -470,7 +487,7 @@ var app_graph_builder_default = (context) => {
|
|
|
470
487
|
label: [
|
|
471
488
|
"companion selected objects label",
|
|
472
489
|
{
|
|
473
|
-
ns:
|
|
490
|
+
ns: meta.id
|
|
474
491
|
}
|
|
475
492
|
],
|
|
476
493
|
icon: "ph--tree-view--regular",
|
|
@@ -481,8 +498,8 @@ var app_graph_builder_default = (context) => {
|
|
|
481
498
|
}),
|
|
482
499
|
// Object settings plank companion.
|
|
483
500
|
createExtension({
|
|
484
|
-
id: `${
|
|
485
|
-
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) => [
|
|
486
503
|
{
|
|
487
504
|
id: [
|
|
488
505
|
node2.id,
|
|
@@ -494,7 +511,7 @@ var app_graph_builder_default = (context) => {
|
|
|
494
511
|
label: [
|
|
495
512
|
"object settings label",
|
|
496
513
|
{
|
|
497
|
-
ns:
|
|
514
|
+
ns: meta.id
|
|
498
515
|
}
|
|
499
516
|
],
|
|
500
517
|
icon: "ph--sliders--regular",
|
|
@@ -505,8 +522,8 @@ var app_graph_builder_default = (context) => {
|
|
|
505
522
|
]), Option.getOrElse(() => [])))
|
|
506
523
|
})
|
|
507
524
|
]);
|
|
508
|
-
};
|
|
525
|
+
});
|
|
509
526
|
export {
|
|
510
527
|
app_graph_builder_default as default
|
|
511
528
|
};
|
|
512
|
-
//# sourceMappingURL=app-graph-builder-
|
|
529
|
+
//# sourceMappingURL=app-graph-builder-FBJFWI4H.mjs.map
|