@dxos/plugin-space 0.8.4-main.84f28bd → 0.8.4-main.a4bbb77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs +31 -0
- package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs +90 -0
- package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs.map +7 -0
- package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +68 -0
- package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-PMDF6PJV.mjs → app-graph-builder-W7RVDAUA.mjs} +202 -48
- package/dist/lib/browser/app-graph-builder-W7RVDAUA.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-UKYMBX4O.mjs → app-graph-serializer-VLHVTDX4.mjs} +14 -14
- package/dist/lib/browser/app-graph-serializer-VLHVTDX4.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GVTXQCIW.mjs → chunk-2BFVC5K6.mjs} +431 -373
- package/dist/lib/browser/chunk-2BFVC5K6.mjs.map +7 -0
- package/dist/lib/browser/chunk-E2I747A7.mjs +20 -0
- package/dist/lib/browser/chunk-E2I747A7.mjs.map +7 -0
- package/dist/lib/browser/chunk-EIXZABXD.mjs +19 -0
- package/dist/lib/browser/chunk-EIXZABXD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-ELJDGQTO.mjs} +3 -3
- package/dist/lib/browser/{chunk-VLBRSGJ2.mjs.map → chunk-ELJDGQTO.mjs.map} +3 -3
- package/dist/lib/browser/chunk-IRKDREHY.mjs +11 -0
- package/dist/lib/browser/chunk-IRKDREHY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-S6NY637J.mjs → chunk-JCHSUOPF.mjs} +70 -10
- package/dist/lib/browser/chunk-JCHSUOPF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-WBSEOLEM.mjs → chunk-PN27K4I7.mjs} +209 -54
- package/dist/lib/browser/chunk-PN27K4I7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6VLSHG4A.mjs → chunk-ZIZ2JLW6.mjs} +71 -9
- package/dist/lib/browser/chunk-ZIZ2JLW6.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-PW2BA46S.mjs} +4 -4
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs.map → identity-created-PW2BA46S.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +95 -26
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-WK5WYFH3.mjs → intent-resolver-HA7DPAUE.mjs} +185 -30
- package/dist/lib/browser/intent-resolver-HA7DPAUE.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-7S6FIC5G.mjs → react-root-YQUJU64P.mjs} +11 -11
- package/dist/lib/browser/react-root-YQUJU64P.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-6C3YJNDK.mjs → react-surface-HTXYMRSW.mjs} +78 -46
- package/dist/lib/browser/react-surface-HTXYMRSW.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-K3B3OAH4.mjs → schema-defs-R56ZDBZ7.mjs} +5 -5
- package/dist/lib/browser/schema-defs-R56ZDBZ7.mjs.map +7 -0
- package/dist/lib/browser/{settings-XNWYRWNM.mjs → settings-5XPQMSPO.mjs} +5 -5
- package/dist/lib/browser/{settings-XNWYRWNM.mjs.map → settings-5XPQMSPO.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-K7NSNBHM.mjs → spaces-ready-YY77ANIF.mjs} +17 -15
- package/dist/lib/browser/spaces-ready-YY77ANIF.mjs.map +7 -0
- package/dist/lib/browser/{state-522XTUR4.mjs → state-Y4RVCG4A.mjs} +7 -7
- package/dist/lib/browser/state-Y4RVCG4A.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs +32 -0
- package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs +91 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs.map +7 -0
- package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +70 -0
- package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-TO72W6MI.mjs → app-graph-builder-5ZJJUMQI.mjs} +202 -48
- package/dist/lib/node-esm/app-graph-builder-5ZJJUMQI.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-LA3IZDXJ.mjs → app-graph-serializer-EZJSGJUT.mjs} +14 -14
- package/dist/lib/node-esm/app-graph-serializer-EZJSGJUT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SXD6T2N4.mjs → chunk-5XRYHWL7.mjs} +71 -9
- package/dist/lib/node-esm/chunk-5XRYHWL7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2THX6G4C.mjs → chunk-6WNZW6KT.mjs} +70 -10
- package/dist/lib/node-esm/chunk-6WNZW6KT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OUBADVJE.mjs → chunk-BLPXWPLB.mjs} +431 -373
- package/dist/lib/node-esm/chunk-BLPXWPLB.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-IJVBBVCL.mjs +21 -0
- package/dist/lib/node-esm/chunk-IJVBBVCL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HWNG4MEU.mjs → chunk-MWNATOXL.mjs} +2 -4
- package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-Q6AAQLQG.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs.map → chunk-Q6AAQLQG.mjs.map} +3 -3
- package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +20 -0
- package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HJJHLWKY.mjs → chunk-XDQXUZMK.mjs} +209 -54
- package/dist/lib/node-esm/chunk-XDQXUZMK.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-MWTLGQRU.mjs} +4 -4
- package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs.map → identity-created-MWTLGQRU.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +95 -26
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-HSR27ME4.mjs → intent-resolver-LQNHMPIX.mjs} +185 -30
- package/dist/lib/node-esm/intent-resolver-LQNHMPIX.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-HUK3ANLV.mjs → react-root-UTLJEIKE.mjs} +11 -11
- package/dist/lib/node-esm/react-root-UTLJEIKE.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-AGAWX7DD.mjs → react-surface-LYDYON3U.mjs} +78 -46
- package/dist/lib/node-esm/react-surface-LYDYON3U.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-4MCDG4DV.mjs → schema-defs-7IMJPIWS.mjs} +5 -5
- package/dist/lib/node-esm/schema-defs-7IMJPIWS.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-YGKHGFPH.mjs → settings-XBSK5KHH.mjs} +5 -5
- package/dist/lib/node-esm/{settings-YGKHGFPH.mjs.map → settings-XBSK5KHH.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-UM2P3DCR.mjs → spaces-ready-YX4IHT4P.mjs} +17 -15
- package/dist/lib/node-esm/spaces-ready-YX4IHT4P.mjs.map +7 -0
- package/dist/lib/node-esm/{state-C4IOXPZP.mjs → state-HOHAVPUO.mjs} +7 -7
- package/dist/lib/node-esm/state-HOHAVPUO.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 +11 -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/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/CollectionMain.d.ts +1 -0
- package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +5 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1584 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -3
- 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 +1 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.d.ts +3 -2
- package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.stories.d.ts +1584 -5
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
- package/dist/types/src/components/ObjectDetailsPanel.d.ts +9 -0
- package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
- package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
- package/dist/types/src/components/RecordMain.d.ts +7 -0
- package/dist/types/src/components/RecordMain.d.ts.map +1 -0
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +1412 -4
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1417 -4
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1418 -5
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/status.d.ts +5 -5
- package/dist/types/src/components/ViewEditor.d.ts +8 -0
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +14 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +1 -0
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/hooks/useActiveSpace.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 +1262 -11
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +124 -64
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +34 -7
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +61 -60
- package/src/SpacePlugin.ts +205 -137
- package/src/capabilities/app-graph-builder.ts +249 -36
- package/src/capabilities/app-graph-serializer.ts +7 -7
- package/src/capabilities/capabilities.ts +15 -9
- package/src/capabilities/identity-created.ts +1 -1
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/intent-resolver.ts +140 -19
- package/src/capabilities/react-root.tsx +4 -3
- package/src/capabilities/react-surface.tsx +93 -42
- package/src/capabilities/schema-defs.ts +3 -2
- package/src/capabilities/spaces-ready.ts +10 -7
- package/src/capabilities/state.ts +5 -4
- package/src/components/AwaitingObject.tsx +7 -9
- package/src/components/CollectionMain.tsx +4 -2
- package/src/components/CollectionSection.tsx +2 -2
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -10
- package/src/components/CreateDialog/CreateObjectDialog.tsx +50 -36
- package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +4 -4
- package/src/components/JoinDialog.tsx +7 -7
- package/src/components/MembersContainer.stories.tsx +36 -10
- package/src/components/MembersContainer.tsx +17 -16
- package/src/components/MenuFooter.tsx +4 -5
- package/src/components/ObjectDetailsPanel.tsx +79 -0
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -2
- package/src/components/ObjectSettings/ForeignKeys.tsx +2 -2
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -2
- package/src/components/PersistenceStatus.tsx +7 -8
- package/src/components/PopoverRenameObject.tsx +10 -16
- package/src/components/PopoverRenameSpace.tsx +4 -4
- package/src/components/RecordMain.tsx +43 -0
- package/src/components/SchemaContainer.tsx +4 -4
- package/src/components/SpacePluginSettings.tsx +8 -9
- package/src/components/SpacePresence.stories.tsx +23 -22
- package/src/components/SpacePresence.tsx +9 -9
- package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +17 -17
- package/src/components/SyncStatus/InlineSyncStatus.tsx +2 -2
- package/src/components/SyncStatus/SyncStatus.stories.tsx +6 -7
- package/src/components/SyncStatus/SyncStatus.tsx +5 -4
- package/src/components/SyncStatus/status.ts +4 -4
- package/src/components/ViewEditor.tsx +59 -0
- package/src/components/index.ts +7 -1
- package/src/events.ts +7 -6
- package/src/hooks/useActiveSpace.ts +2 -2
- package/src/hooks/useInputSurfaceLookup.tsx +1 -1
- package/src/meta.ts +1 -3
- package/src/translations.ts +68 -5
- package/src/types/types.ts +70 -12
- package/src/util.tsx +199 -55
- package/dist/lib/browser/app-graph-builder-PMDF6PJV.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-UKYMBX4O.mjs.map +0 -7
- package/dist/lib/browser/chunk-6VLSHG4A.mjs.map +0 -7
- package/dist/lib/browser/chunk-C7KGJTAL.mjs +0 -18
- package/dist/lib/browser/chunk-C7KGJTAL.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-GVTXQCIW.mjs.map +0 -7
- package/dist/lib/browser/chunk-S6NY637J.mjs.map +0 -7
- package/dist/lib/browser/chunk-WBSEOLEM.mjs.map +0 -7
- package/dist/lib/browser/chunk-XXIPJLJF.mjs +0 -19
- package/dist/lib/browser/chunk-XXIPJLJF.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-WK5WYFH3.mjs.map +0 -7
- package/dist/lib/browser/react-root-7S6FIC5G.mjs.map +0 -7
- package/dist/lib/browser/react-surface-6C3YJNDK.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-K3B3OAH4.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-K7NSNBHM.mjs.map +0 -7
- package/dist/lib/browser/state-522XTUR4.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-TO72W6MI.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-LA3IZDXJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2THX6G4C.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-72QMMRKC.mjs +0 -19
- package/dist/lib/node-esm/chunk-72QMMRKC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AT7LGFER.mjs +0 -20
- package/dist/lib/node-esm/chunk-AT7LGFER.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HJJHLWKY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OUBADVJE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SXD6T2N4.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-HSR27ME4.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-HUK3ANLV.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-AGAWX7DD.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-4MCDG4DV.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-UM2P3DCR.mjs.map +0 -7
- package/dist/lib/node-esm/state-C4IOXPZP.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/src/capabilities/schema-tool.test.ts +0 -44
- package/src/capabilities/schema-tools.ts +0 -125
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-IRKDREHY.mjs";
|
|
4
|
+
|
|
5
|
+
// src/components/CollectionMain.tsx
|
|
6
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
7
|
+
import React from "react";
|
|
8
|
+
import { useTranslation } from "@dxos/react-ui";
|
|
9
|
+
import { baseSurface, descriptionMessage, mx } from "@dxos/react-ui-theme";
|
|
10
|
+
var CollectionMain = ({ collection }) => {
|
|
11
|
+
var _effect = _useSignals();
|
|
12
|
+
try {
|
|
13
|
+
const { t } = useTranslation(meta.id);
|
|
14
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
15
|
+
role: "none",
|
|
16
|
+
className: mx(baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
|
|
17
|
+
"data-testid": "composer.firstRunMessage"
|
|
18
|
+
}, /* @__PURE__ */ React.createElement("p", {
|
|
19
|
+
role: "alert",
|
|
20
|
+
className: mx(descriptionMessage, "rounded-md p-8 font-normal text-lg max-is-[24rem] break-words")
|
|
21
|
+
}, collection.name ?? t("unnamed collection label")));
|
|
22
|
+
} finally {
|
|
23
|
+
_effect.f();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var CollectionMain_default = CollectionMain;
|
|
27
|
+
export {
|
|
28
|
+
CollectionMain,
|
|
29
|
+
CollectionMain_default as default
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=CollectionMain-AX7KKXWP.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/CollectionMain.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { baseSurface, descriptionMessage, mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\nexport const CollectionMain = ({ collection }: { collection: DataType.Collection }) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div\n role='none'\n className={mx(baseSurface, 'min-bs-screen is-full flex items-center justify-center p-8')}\n data-testid='composer.firstRunMessage'\n >\n <p\n role='alert'\n className={mx(descriptionMessage, 'rounded-md p-8 font-normal text-lg max-is-[24rem] break-words')}\n >\n {collection.name ?? t('unnamed collection label')}\n </p>\n </div>\n );\n};\n\nexport default CollectionMain;\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,sBAAsB;AAC/B,SAASC,aAAaC,oBAAoBC,UAAU;AAK7C,IAAMC,iBAAiB,CAAC,EAAEC,WAAU,MAAuC;;;AAChF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,WACE,sBAAA,cAACC,OAAAA;MACCC,MAAK;MACLC,WAAWC,GAAGC,aAAa,4DAAA;MAC3BC,eAAY;OAEZ,sBAAA,cAACC,KAAAA;MACCL,MAAK;MACLC,WAAWC,GAAGI,oBAAoB,+DAAA;OAEjCZ,WAAWa,QAAQZ,EAAE,0BAAA,CAAA,CAAA;;;;AAI9B;AAEA,IAAA,yBAAeF;",
|
|
6
|
+
"names": ["React", "useTranslation", "baseSurface", "descriptionMessage", "mx", "CollectionMain", "collection", "t", "useTranslation", "meta", "id", "div", "role", "className", "mx", "baseSurface", "data-testid", "p", "descriptionMessage", "name"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-IRKDREHY.mjs";
|
|
4
|
+
|
|
5
|
+
// src/components/ObjectDetailsPanel.tsx
|
|
6
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
7
|
+
import React, { useCallback } from "react";
|
|
8
|
+
import { setValue } from "@dxos/echo-schema";
|
|
9
|
+
import { invariant } from "@dxos/invariant";
|
|
10
|
+
import { useClient } from "@dxos/react-client";
|
|
11
|
+
import { Filter, getSpace, useQuery, useSchema } from "@dxos/react-client/echo";
|
|
12
|
+
import { Callout, useTranslation } from "@dxos/react-ui";
|
|
13
|
+
import { useSelected } from "@dxos/react-ui-attention";
|
|
14
|
+
import { Form, useRefQueryLookupHandler } from "@dxos/react-ui-form";
|
|
15
|
+
import { typenameFromQuery } from "@dxos/schema";
|
|
16
|
+
import { isNonNullable } from "@dxos/util";
|
|
17
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectDetailsPanel.tsx";
|
|
18
|
+
var ObjectDetailsPanel = ({ objectId, view }) => {
|
|
19
|
+
var _effect = _useSignals();
|
|
20
|
+
try {
|
|
21
|
+
const { t } = useTranslation(meta.id);
|
|
22
|
+
const client = useClient();
|
|
23
|
+
const space = getSpace(view);
|
|
24
|
+
const typename = view.query ? typenameFromQuery(view.query.ast) : void 0;
|
|
25
|
+
const schema = useSchema(client, space, typename);
|
|
26
|
+
const queriedObjects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());
|
|
27
|
+
const selectedRows = useSelected(objectId, "multi");
|
|
28
|
+
const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);
|
|
29
|
+
const handleRefQueryLookup = useRefQueryLookupHandler({
|
|
30
|
+
space
|
|
31
|
+
});
|
|
32
|
+
const handleSave = useCallback((values, { changed }) => {
|
|
33
|
+
const id = values.id;
|
|
34
|
+
invariant(typeof id === "string", void 0, {
|
|
35
|
+
F: __dxlog_file,
|
|
36
|
+
L: 38,
|
|
37
|
+
S: void 0,
|
|
38
|
+
A: [
|
|
39
|
+
"typeof id === 'string'",
|
|
40
|
+
""
|
|
41
|
+
]
|
|
42
|
+
});
|
|
43
|
+
const object = queriedObjects.find((obj) => obj.id === id);
|
|
44
|
+
invariant(object, void 0, {
|
|
45
|
+
F: __dxlog_file,
|
|
46
|
+
L: 40,
|
|
47
|
+
S: void 0,
|
|
48
|
+
A: [
|
|
49
|
+
"object",
|
|
50
|
+
""
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
const changedPaths = Object.keys(changed).filter((path) => changed[path]);
|
|
54
|
+
for (const path of changedPaths) {
|
|
55
|
+
const value = values[path];
|
|
56
|
+
setValue(object, path, value);
|
|
57
|
+
}
|
|
58
|
+
}, [
|
|
59
|
+
queriedObjects
|
|
60
|
+
]);
|
|
61
|
+
if (selectedObjects.length === 0) {
|
|
62
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
63
|
+
role: "none",
|
|
64
|
+
className: "plb-cardSpacingBlock pli-cardSpacingInline"
|
|
65
|
+
}, /* @__PURE__ */ React.createElement(Callout.Root, {
|
|
66
|
+
classNames: "is-full"
|
|
67
|
+
}, /* @__PURE__ */ React.createElement(Callout.Title, null, t("row details no selection label"))));
|
|
68
|
+
}
|
|
69
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
70
|
+
role: "none",
|
|
71
|
+
className: "bs-full is-full flex flex-col p-2 gap-1 overflow-y-auto"
|
|
72
|
+
}, schema && selectedObjects.map((object) => /* @__PURE__ */ React.createElement("div", {
|
|
73
|
+
key: object.id,
|
|
74
|
+
className: "border border-separator rounded"
|
|
75
|
+
}, /* @__PURE__ */ React.createElement(Form, {
|
|
76
|
+
autoSave: true,
|
|
77
|
+
schema,
|
|
78
|
+
values: object,
|
|
79
|
+
onSave: handleSave,
|
|
80
|
+
onQueryRefOptions: handleRefQueryLookup
|
|
81
|
+
}))));
|
|
82
|
+
} finally {
|
|
83
|
+
_effect.f();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
var ObjectDetailsPanel_default = ObjectDetailsPanel;
|
|
87
|
+
export {
|
|
88
|
+
ObjectDetailsPanel_default as default
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=ObjectDetailsPanel-ETI5YBTH.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ObjectDetailsPanel.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type JsonPath, setValue } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, getSpace, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { Callout, useTranslation } from '@dxos/react-ui';\nimport { useSelected } from '@dxos/react-ui-attention';\nimport { Form, useRefQueryLookupHandler } from '@dxos/react-ui-form';\nimport { type DataType } from '@dxos/schema';\nimport { typenameFromQuery } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../meta';\n\ntype RowDetailsPanelProps = { objectId: string; view: DataType.View };\n\nconst ObjectDetailsPanel = ({ objectId, view }: RowDetailsPanelProps) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const space = getSpace(view);\n const typename = view.query ? typenameFromQuery(view.query.ast) : undefined;\n const schema = useSchema(client, space, typename);\n\n const queriedObjects = useQuery(space, schema ? Filter.type(schema) : Filter.nothing());\n const selectedRows = useSelected(objectId, 'multi');\n const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);\n\n const handleRefQueryLookup = useRefQueryLookupHandler({ space });\n\n const handleSave = useCallback(\n (values: any, { changed }: { changed: Record<JsonPath, boolean> }) => {\n const id = values.id;\n invariant(typeof id === 'string');\n const object = queriedObjects.find((obj) => obj.id === id);\n invariant(object);\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n for (const path of changedPaths) {\n const value = values[path];\n setValue(object, path, value);\n }\n },\n [queriedObjects],\n );\n\n if (selectedObjects.length === 0) {\n return (\n <div role='none' className='plb-cardSpacingBlock pli-cardSpacingInline'>\n <Callout.Root classNames='is-full'>\n <Callout.Title>{t('row details no selection label')}</Callout.Title>\n </Callout.Root>\n </div>\n );\n }\n\n return (\n <div role='none' className='bs-full is-full flex flex-col p-2 gap-1 overflow-y-auto'>\n {schema &&\n selectedObjects.map((object) => (\n <div key={object.id} className='border border-separator rounded'>\n <Form\n autoSave\n schema={schema}\n values={object}\n onSave={handleSave}\n onQueryRefOptions={handleRefQueryLookup}\n />\n </div>\n ))}\n </div>\n );\n};\n\nexport default ObjectDetailsPanel;\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAAwBC,gBAAgB;AACxC,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,UAAUC,UAAUC,iBAAiB;AACtD,SAASC,SAASC,sBAAsB;AACxC,SAASC,mBAAmB;AAC5B,SAASC,MAAMC,gCAAgC;AAE/C,SAASC,yBAAyB;AAClC,SAASC,qBAAqB;;AAM9B,IAAMC,qBAAqB,CAAC,EAAEC,UAAUC,KAAI,MAAwB;;;AAClE,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,SAASC,UAAAA;AACf,UAAMC,QAAQC,SAASR,IAAAA;AACvB,UAAMS,WAAWT,KAAKU,QAAQC,kBAAkBX,KAAKU,MAAME,GAAG,IAAIC;AAClE,UAAMC,SAASC,UAAUV,QAAQE,OAAOE,QAAAA;AAExC,UAAMO,iBAAiBC,SAASV,OAAOO,SAASI,OAAOC,KAAKL,MAAAA,IAAUI,OAAOE,QAAO,CAAA;AACpF,UAAMC,eAAeC,YAAYvB,UAAU,OAAA;AAC3C,UAAMwB,kBAAkBF,aAAaG,IAAI,CAACpB,OAAOY,eAAeS,KAAK,CAACC,QAAQA,IAAItB,OAAOA,EAAAA,CAAAA,EAAKuB,OAAOC,aAAAA;AAErG,UAAMC,uBAAuBC,yBAAyB;MAAEvB;IAAM,CAAA;AAE9D,UAAMwB,aAAaC,YACjB,CAACC,QAAa,EAAEC,QAAO,MAA0C;AAC/D,YAAM9B,KAAK6B,OAAO7B;AAClB+B,gBAAU,OAAO/B,OAAO,UAAA,QAAA;;;;;;;;;AACxB,YAAMgC,SAASpB,eAAeS,KAAK,CAACC,QAAQA,IAAItB,OAAOA,EAAAA;AACvD+B,gBAAUC,QAAAA,QAAAA;;;;;;;;;AAEV,YAAMC,eAAeC,OAAOC,KAAKL,OAAAA,EAASP,OAAO,CAACa,SAASN,QAAQM,IAAAA,CAAiB;AACpF,iBAAWA,QAAQH,cAAc;AAC/B,cAAMI,QAAQR,OAAOO,IAAAA;AACrBE,iBAASN,QAAQI,MAAMC,KAAAA;MACzB;IACF,GACA;MAACzB;KAAe;AAGlB,QAAIO,gBAAgBoB,WAAW,GAAG;AAChC,aACE,sBAAA,cAACC,OAAAA;QAAIC,MAAK;QAAOC,WAAU;SACzB,sBAAA,cAACC,QAAQC,MAAI;QAACC,YAAW;SACvB,sBAAA,cAACF,QAAQG,OAAK,MAAEjD,EAAE,gCAAA,CAAA,CAAA,CAAA;IAI1B;AAEA,WACE,sBAAA,cAAC2C,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACxBhC,UACCS,gBAAgBC,IAAI,CAACY,WACnB,sBAAA,cAACQ,OAAAA;MAAIO,KAAKf,OAAOhC;MAAI0C,WAAU;OAC7B,sBAAA,cAACM,MAAAA;MACCC,UAAAA;MACAvC;MACAmB,QAAQG;MACRkB,QAAQvB;MACRwB,mBAAmB1B;;;;;AAMjC;AAEA,IAAA,6BAAe/B;",
|
|
6
|
+
"names": ["React", "useCallback", "setValue", "invariant", "useClient", "Filter", "getSpace", "useQuery", "useSchema", "Callout", "useTranslation", "useSelected", "Form", "useRefQueryLookupHandler", "typenameFromQuery", "isNonNullable", "ObjectDetailsPanel", "objectId", "view", "t", "useTranslation", "meta", "id", "client", "useClient", "space", "getSpace", "typename", "query", "typenameFromQuery", "ast", "undefined", "schema", "useSchema", "queriedObjects", "useQuery", "Filter", "type", "nothing", "selectedRows", "useSelected", "selectedObjects", "map", "find", "obj", "filter", "isNonNullable", "handleRefQueryLookup", "useRefQueryLookupHandler", "handleSave", "useCallback", "values", "changed", "invariant", "object", "changedPaths", "Object", "keys", "path", "value", "setValue", "length", "div", "role", "className", "Callout", "Root", "classNames", "Title", "key", "Form", "autoSave", "onSave", "onQueryRefOptions"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// src/components/RecordMain.tsx
|
|
2
|
+
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
3
|
+
import React, { useCallback } from "react";
|
|
4
|
+
import { Obj } from "@dxos/echo";
|
|
5
|
+
import { setValue } from "@dxos/echo-schema";
|
|
6
|
+
import { invariant } from "@dxos/invariant";
|
|
7
|
+
import { getSpace } from "@dxos/react-client/echo";
|
|
8
|
+
import { Form, useRefQueryLookupHandler } from "@dxos/react-ui-form";
|
|
9
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/RecordMain.tsx";
|
|
10
|
+
var RecordMain = ({ record }) => {
|
|
11
|
+
var _effect = _useSignals();
|
|
12
|
+
try {
|
|
13
|
+
const space = getSpace(record);
|
|
14
|
+
const schema = Obj.getSchema(record);
|
|
15
|
+
invariant(schema, "Record has no schema.", {
|
|
16
|
+
F: __dxlog_file,
|
|
17
|
+
L: 16,
|
|
18
|
+
S: void 0,
|
|
19
|
+
A: [
|
|
20
|
+
"schema",
|
|
21
|
+
"'Record has no schema.'"
|
|
22
|
+
]
|
|
23
|
+
});
|
|
24
|
+
const handleRefQueryLookup = useRefQueryLookupHandler({
|
|
25
|
+
space
|
|
26
|
+
});
|
|
27
|
+
const handleSave = useCallback((values, { changed }) => {
|
|
28
|
+
const id = values.id;
|
|
29
|
+
invariant(typeof id === "string", void 0, {
|
|
30
|
+
F: __dxlog_file,
|
|
31
|
+
L: 23,
|
|
32
|
+
S: void 0,
|
|
33
|
+
A: [
|
|
34
|
+
"typeof id === 'string'",
|
|
35
|
+
""
|
|
36
|
+
]
|
|
37
|
+
});
|
|
38
|
+
const changedPaths = Object.keys(changed).filter((path) => changed[path]);
|
|
39
|
+
for (const path of changedPaths) {
|
|
40
|
+
const value = values[path];
|
|
41
|
+
setValue(record, path, value);
|
|
42
|
+
}
|
|
43
|
+
}, [
|
|
44
|
+
record
|
|
45
|
+
]);
|
|
46
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
47
|
+
role: "none",
|
|
48
|
+
className: "container-max-width flex flex-col p-2 gap-1 overflow-y-auto"
|
|
49
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
50
|
+
key: record.id,
|
|
51
|
+
className: "border border-separator rounded"
|
|
52
|
+
}, /* @__PURE__ */ React.createElement(Form, {
|
|
53
|
+
autoSave: true,
|
|
54
|
+
schema,
|
|
55
|
+
values: record,
|
|
56
|
+
onSave: handleSave,
|
|
57
|
+
onQueryRefOptions: handleRefQueryLookup
|
|
58
|
+
})));
|
|
59
|
+
} finally {
|
|
60
|
+
_effect.f();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
var RecordMain_default = RecordMain;
|
|
64
|
+
export {
|
|
65
|
+
RecordMain,
|
|
66
|
+
RecordMain_default as default
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=RecordMain-TEBGAVSL.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/RecordMain.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { type JsonPath, setValue } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Form, useRefQueryLookupHandler } from '@dxos/react-ui-form';\n\nexport const RecordMain = ({ record }: { record: Obj.Any }) => {\n const space = getSpace(record);\n const schema = Obj.getSchema(record);\n invariant(schema, 'Record has no schema.');\n\n const handleRefQueryLookup = useRefQueryLookupHandler({ space });\n\n const handleSave = useCallback(\n (values: any, { changed }: { changed: Record<JsonPath, boolean> }) => {\n const id = values.id;\n invariant(typeof id === 'string');\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n for (const path of changedPaths) {\n const value = values[path];\n setValue(record, path, value);\n }\n },\n [record],\n );\n\n return (\n <div role='none' className='container-max-width flex flex-col p-2 gap-1 overflow-y-auto'>\n <div key={record.id} className='border border-separator rounded'>\n <Form autoSave schema={schema} values={record} onSave={handleSave} onQueryRefOptions={handleRefQueryLookup} />\n </div>\n </div>\n );\n};\n\nexport default RecordMain;\n"],
|
|
5
|
+
"mappings": ";;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAASC,WAAW;AACpB,SAAwBC,gBAAgB;AACxC,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,MAAMC,gCAAgC;;AAExC,IAAMC,aAAa,CAAC,EAAEC,OAAM,MAAuB;;;AACxD,UAAMC,QAAQL,SAASI,MAAAA;AACvB,UAAME,SAAST,IAAIU,UAAUH,MAAAA;AAC7BL,cAAUO,QAAQ,yBAAA;;;;;;;;;AAElB,UAAME,uBAAuBN,yBAAyB;MAAEG;IAAM,CAAA;AAE9D,UAAMI,aAAab,YACjB,CAACc,QAAa,EAAEC,QAAO,MAA0C;AAC/D,YAAMC,KAAKF,OAAOE;AAClBb,gBAAU,OAAOa,OAAO,UAAA,QAAA;;;;;;;;;AAExB,YAAMC,eAAeC,OAAOC,KAAKJ,OAAAA,EAASK,OAAO,CAACC,SAASN,QAAQM,IAAAA,CAAiB;AACpF,iBAAWA,QAAQJ,cAAc;AAC/B,cAAMK,QAAQR,OAAOO,IAAAA;AACrBnB,iBAASM,QAAQa,MAAMC,KAAAA;MACzB;IACF,GACA;MAACd;KAAO;AAGV,WACE,sBAAA,cAACe,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACzB,sBAAA,cAACF,OAAAA;MAAIG,KAAKlB,OAAOQ;MAAIS,WAAU;OAC7B,sBAAA,cAACpB,MAAAA;MAAKsB,UAAAA;MAASjB;MAAgBI,QAAQN;MAAQoB,QAAQf;MAAYgB,mBAAmBjB;;;;;AAI9F;AAEA,IAAA,qBAAeL;",
|
|
6
|
+
"names": ["React", "useCallback", "Obj", "setValue", "invariant", "getSpace", "Form", "useRefQueryLookupHandler", "RecordMain", "record", "space", "schema", "getSchema", "handleRefQueryLookup", "handleSave", "values", "changed", "id", "changedPaths", "Object", "keys", "filter", "path", "value", "div", "role", "className", "key", "autoSave", "onSave", "onQueryRefOptions"]
|
|
7
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getActiveSpace
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ELJDGQTO.mjs";
|
|
4
4
|
import {
|
|
5
5
|
SpaceCapabilities
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-E2I747A7.mjs";
|
|
7
7
|
import {
|
|
8
8
|
SHARED,
|
|
9
9
|
SPACES,
|
|
@@ -11,30 +11,32 @@ import {
|
|
|
11
11
|
constructSpaceActions,
|
|
12
12
|
constructSpaceNode,
|
|
13
13
|
createObjectNode,
|
|
14
|
+
createStaticSchemaActions,
|
|
15
|
+
createStaticSchemaNode,
|
|
14
16
|
rxFromQuery
|
|
15
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-PN27K4I7.mjs";
|
|
16
18
|
import {
|
|
17
19
|
SPACE_TYPE,
|
|
18
20
|
SpaceAction
|
|
19
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-JCHSUOPF.mjs";
|
|
20
22
|
import {
|
|
21
|
-
|
|
22
|
-
} from "./chunk-
|
|
23
|
+
meta
|
|
24
|
+
} from "./chunk-IRKDREHY.mjs";
|
|
23
25
|
|
|
24
26
|
// src/capabilities/app-graph-builder.ts
|
|
25
27
|
import { Rx } from "@effect-rx/rx-react";
|
|
26
|
-
import { Array, Option, pipe } from "effect";
|
|
28
|
+
import { Array, Option, Schema, pipe } from "effect";
|
|
27
29
|
import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
|
|
28
|
-
import {
|
|
30
|
+
import { SpaceState, getSpace, isSpace, parseId } from "@dxos/client/echo";
|
|
29
31
|
import { Filter, Obj, Query, Type } from "@dxos/echo";
|
|
30
32
|
import { log } from "@dxos/log";
|
|
31
33
|
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
32
|
-
import {
|
|
33
|
-
import { createExtension, rxFromObservable,
|
|
34
|
-
import { DataType } from "@dxos/schema";
|
|
34
|
+
import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
|
|
35
|
+
import { ROOT_ID, createExtension, rxFromObservable, rxFromSignal } from "@dxos/plugin-graph";
|
|
36
|
+
import { DataType, typenameFromQuery } from "@dxos/schema";
|
|
35
37
|
import { isNonNullable } from "@dxos/util";
|
|
36
38
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/capabilities/app-graph-builder.ts";
|
|
37
|
-
var app_graph_builder_default = (context) => {
|
|
39
|
+
var app_graph_builder_default = ((context) => {
|
|
38
40
|
const resolve = (typename) => context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
|
|
39
41
|
const spacesNode = {
|
|
40
42
|
id: SPACES,
|
|
@@ -47,7 +49,7 @@ var app_graph_builder_default = (context) => {
|
|
|
47
49
|
label: [
|
|
48
50
|
"spaces label",
|
|
49
51
|
{
|
|
50
|
-
ns:
|
|
52
|
+
ns: meta.id
|
|
51
53
|
}
|
|
52
54
|
],
|
|
53
55
|
icon: "ph--planet--regular",
|
|
@@ -68,7 +70,7 @@ var app_graph_builder_default = (context) => {
|
|
|
68
70
|
} else {
|
|
69
71
|
log.warn("spaces order object not found", void 0, {
|
|
70
72
|
F: __dxlog_file,
|
|
71
|
-
L:
|
|
73
|
+
L: 71,
|
|
72
74
|
S: void 0,
|
|
73
75
|
C: (f, a) => f(...a)
|
|
74
76
|
});
|
|
@@ -79,7 +81,7 @@ var app_graph_builder_default = (context) => {
|
|
|
79
81
|
return contributes(Capabilities.AppGraphBuilder, [
|
|
80
82
|
// Primary actions.
|
|
81
83
|
createExtension({
|
|
82
|
-
id: `${
|
|
84
|
+
id: `${meta.id}/primary-actions`,
|
|
83
85
|
position: "hoist",
|
|
84
86
|
actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
|
|
85
87
|
{
|
|
@@ -92,7 +94,7 @@ var app_graph_builder_default = (context) => {
|
|
|
92
94
|
label: [
|
|
93
95
|
"create space label",
|
|
94
96
|
{
|
|
95
|
-
ns:
|
|
97
|
+
ns: meta.id
|
|
96
98
|
}
|
|
97
99
|
],
|
|
98
100
|
icon: "ph--plus--regular",
|
|
@@ -110,7 +112,7 @@ var app_graph_builder_default = (context) => {
|
|
|
110
112
|
label: [
|
|
111
113
|
"join space label",
|
|
112
114
|
{
|
|
113
|
-
ns:
|
|
115
|
+
ns: meta.id
|
|
114
116
|
}
|
|
115
117
|
],
|
|
116
118
|
icon: "ph--sign-in--regular",
|
|
@@ -132,7 +134,7 @@ var app_graph_builder_default = (context) => {
|
|
|
132
134
|
label: [
|
|
133
135
|
"share space label",
|
|
134
136
|
{
|
|
135
|
-
ns:
|
|
137
|
+
ns: meta.id
|
|
136
138
|
}
|
|
137
139
|
],
|
|
138
140
|
icon: "ph--users--regular",
|
|
@@ -157,7 +159,7 @@ var app_graph_builder_default = (context) => {
|
|
|
157
159
|
label: [
|
|
158
160
|
"open current space settings label",
|
|
159
161
|
{
|
|
160
|
-
ns:
|
|
162
|
+
ns: meta.id
|
|
161
163
|
}
|
|
162
164
|
],
|
|
163
165
|
icon: "ph--faders--regular",
|
|
@@ -171,7 +173,7 @@ var app_graph_builder_default = (context) => {
|
|
|
171
173
|
}),
|
|
172
174
|
// Create spaces group node.
|
|
173
175
|
createExtension({
|
|
174
|
-
id: `${
|
|
176
|
+
id: `${meta.id}/root`,
|
|
175
177
|
position: "hoist",
|
|
176
178
|
connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
|
|
177
179
|
spacesNode
|
|
@@ -192,7 +194,7 @@ var app_graph_builder_default = (context) => {
|
|
|
192
194
|
if (!spaces || !isReady) {
|
|
193
195
|
return [];
|
|
194
196
|
}
|
|
195
|
-
const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore(
|
|
197
|
+
const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore(meta.id)?.value;
|
|
196
198
|
try {
|
|
197
199
|
if (!query) {
|
|
198
200
|
query = client.spaces.default.db.query(Filter.type(Type.Expando, {
|
|
@@ -225,7 +227,7 @@ var app_graph_builder_default = (context) => {
|
|
|
225
227
|
}),
|
|
226
228
|
// Create space actions.
|
|
227
229
|
createExtension({
|
|
228
|
-
id: `${
|
|
230
|
+
id: `${meta.id}/actions`,
|
|
229
231
|
actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.type === SPACE_TYPE && isSpace(node2.data) ? Option.some(node2.data) : Option.none()), Option.flatMap((space) => {
|
|
230
232
|
const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
|
|
231
233
|
const [client] = get(context.capabilities(ClientCapabilities.Client));
|
|
@@ -244,7 +246,7 @@ var app_graph_builder_default = (context) => {
|
|
|
244
246
|
}),
|
|
245
247
|
// Create nodes for objects in the root collection of a space.
|
|
246
248
|
createExtension({
|
|
247
|
-
id: `${
|
|
249
|
+
id: `${meta.id}/root-collection`,
|
|
248
250
|
connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.type === SPACE_TYPE && isSpace(node2.data) ? Option.some(node2.data) : Option.none()), Option.map((space) => {
|
|
249
251
|
const state = context.getCapability(SpaceCapabilities.State);
|
|
250
252
|
const spaceState = get(rxFromObservable(space.state));
|
|
@@ -265,7 +267,7 @@ var app_graph_builder_default = (context) => {
|
|
|
265
267
|
}),
|
|
266
268
|
// Create nodes for objects in a collection or by its fully qualified id.
|
|
267
269
|
createExtension({
|
|
268
|
-
id: `${
|
|
270
|
+
id: `${meta.id}/objects`,
|
|
269
271
|
connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.Collection, node2.data) ? Option.some(node2.data) : Option.none()), Option.map((collection) => {
|
|
270
272
|
const state = context.getCapability(SpaceCapabilities.State);
|
|
271
273
|
const space = getSpace(collection);
|
|
@@ -279,13 +281,14 @@ var app_graph_builder_default = (context) => {
|
|
|
279
281
|
}),
|
|
280
282
|
// Create nodes for objects in a query collection.
|
|
281
283
|
createExtension({
|
|
282
|
-
id: `${
|
|
284
|
+
id: `${meta.id}/query-collection-objects`,
|
|
283
285
|
connector: (node) => {
|
|
284
286
|
let query;
|
|
285
287
|
return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.QueryCollection, node2.data) ? Option.some(node2.data) : Option.none()), Option.flatMap((collection) => {
|
|
286
288
|
const space = getSpace(collection);
|
|
287
|
-
|
|
288
|
-
|
|
289
|
+
const typename = typenameFromQuery(collection.query);
|
|
290
|
+
return typename && space ? Option.some({
|
|
291
|
+
typename,
|
|
289
292
|
space
|
|
290
293
|
}) : Option.none();
|
|
291
294
|
}), Option.map(({ typename, space }) => {
|
|
@@ -299,7 +302,7 @@ var app_graph_builder_default = (context) => {
|
|
|
299
302
|
Query.select(Filter.typename(typename)).referencedBy(DataType.Collection, "objects").reference("objects")
|
|
300
303
|
));
|
|
301
304
|
}
|
|
302
|
-
return get(rxFromQuery(query)).map((object) => get(rxFromSignal(() => createObjectNode({
|
|
305
|
+
return get(rxFromQuery(query)).toSorted((a, b) => a.id.localeCompare(b.id)).map((object) => get(rxFromSignal(() => createObjectNode({
|
|
303
306
|
object,
|
|
304
307
|
space,
|
|
305
308
|
resolve,
|
|
@@ -309,30 +312,181 @@ var app_graph_builder_default = (context) => {
|
|
|
309
312
|
}), Option.getOrElse(() => [])));
|
|
310
313
|
}
|
|
311
314
|
}),
|
|
312
|
-
//
|
|
315
|
+
// Static schema records.
|
|
313
316
|
createExtension({
|
|
314
|
-
id: `${
|
|
315
|
-
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
return
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
317
|
+
id: `${meta.id}/static-schemas`,
|
|
318
|
+
connector: (node) => {
|
|
319
|
+
const client = context.getCapability(ClientCapabilities.Client);
|
|
320
|
+
return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.QueryCollection, node2.data) && typenameFromQuery(node2.data.query) === DataType.StoredSchema.typename ? Option.some(node2.data) : Option.none()), Option.flatMap((collection) => {
|
|
321
|
+
const space = getSpace(collection);
|
|
322
|
+
return space?.properties.staticRecords ? Option.some(space) : Option.none();
|
|
323
|
+
}), Option.map((space) => {
|
|
324
|
+
return get(rxFromSignal(() => space.properties.staticRecords ?? [])).map((typename) => client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename)).filter(isNonNullable).map((schema) => createStaticSchemaNode({
|
|
325
|
+
schema,
|
|
326
|
+
space
|
|
327
|
+
}));
|
|
328
|
+
}), Option.getOrElse(() => [])));
|
|
329
|
+
}
|
|
330
|
+
}),
|
|
331
|
+
// Create static schema actions.
|
|
332
|
+
createExtension({
|
|
333
|
+
id: `${meta.id}/static-schema-actions`,
|
|
334
|
+
actions: (node) => {
|
|
335
|
+
let query;
|
|
336
|
+
return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
|
|
337
|
+
const space = isSpace(node2.properties.space) ? node2.properties.space : void 0;
|
|
338
|
+
return space && Schema.isSchema(node2.data) ? Option.some({
|
|
339
|
+
space,
|
|
340
|
+
schema: node2.data
|
|
341
|
+
}) : Option.none();
|
|
342
|
+
}), Option.map(({ space, schema }) => {
|
|
343
|
+
if (!query) {
|
|
344
|
+
query = space.db.query(Filter.type(DataType.View));
|
|
345
|
+
}
|
|
346
|
+
const views = get(rxFromQuery(query));
|
|
347
|
+
const filteredViews = get(rxFromSignal(() => (
|
|
348
|
+
// TODO(wittjosiah): Remove cast.
|
|
349
|
+
views.filter((view) => typenameFromQuery(view.query.ast) === Type.getTypename(schema))
|
|
350
|
+
)));
|
|
351
|
+
const deletable = filteredViews.length === 0;
|
|
352
|
+
const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
|
|
353
|
+
if (!dispatcher) {
|
|
354
|
+
return [];
|
|
355
|
+
}
|
|
356
|
+
return createStaticSchemaActions({
|
|
357
|
+
schema,
|
|
358
|
+
space,
|
|
326
359
|
dispatch: dispatcher.dispatchPromise,
|
|
327
|
-
|
|
328
|
-
navigable: get(rxFromSignal(() => state.navigableCollections))
|
|
360
|
+
deletable
|
|
329
361
|
});
|
|
362
|
+
}), Option.getOrElse(() => [])));
|
|
363
|
+
}
|
|
364
|
+
}),
|
|
365
|
+
// Create nodes for schema views.
|
|
366
|
+
createExtension({
|
|
367
|
+
id: `${meta.id}/schema-views`,
|
|
368
|
+
connector: (node) => {
|
|
369
|
+
let query;
|
|
370
|
+
return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
|
|
371
|
+
const space = getSpace(node2.data) ?? (isSpace(node2.properties.space) ? node2.properties.space : void 0);
|
|
372
|
+
return space && (Obj.instanceOf(DataType.StoredSchema, node2.data) || Schema.isSchema(node2.data)) ? Option.some({
|
|
373
|
+
space,
|
|
374
|
+
schema: node2.data
|
|
375
|
+
}) : Option.none();
|
|
376
|
+
}), Option.map(({ space, schema }) => {
|
|
377
|
+
if (!query) {
|
|
378
|
+
query = space.db.query(Filter.type(DataType.View));
|
|
379
|
+
}
|
|
380
|
+
const typename = Schema.isSchema(schema) ? Type.getTypename(schema) : schema.typename;
|
|
381
|
+
return get(rxFromQuery(query)).filter((view) => typenameFromQuery(view.query.ast) === typename).map((view) => get(rxFromSignal(() => createObjectNode({
|
|
382
|
+
object: view,
|
|
383
|
+
space,
|
|
384
|
+
resolve,
|
|
385
|
+
droppable: false
|
|
386
|
+
})))).filter(isNonNullable);
|
|
387
|
+
}), Option.getOrElse(() => [])));
|
|
388
|
+
}
|
|
389
|
+
}),
|
|
390
|
+
// Create record nodes.
|
|
391
|
+
createExtension({
|
|
392
|
+
id: `${meta.id}/records`,
|
|
393
|
+
resolver: (id) => {
|
|
394
|
+
let query;
|
|
395
|
+
return Rx.make((get) => {
|
|
396
|
+
const client = context.getCapability(ClientCapabilities.Client);
|
|
397
|
+
const { spaceId, objectId } = parseId(id);
|
|
398
|
+
if (!spaceId || !objectId) {
|
|
399
|
+
return null;
|
|
400
|
+
}
|
|
401
|
+
const space = client.spaces.get(spaceId);
|
|
402
|
+
if (!space) {
|
|
403
|
+
return null;
|
|
404
|
+
}
|
|
405
|
+
if (!query) {
|
|
406
|
+
query = space.db.query(Filter.ids(objectId));
|
|
407
|
+
}
|
|
408
|
+
const object = get(rxFromQuery(query)).at(0);
|
|
409
|
+
if (!object) {
|
|
410
|
+
return null;
|
|
411
|
+
}
|
|
412
|
+
return createObjectNode({
|
|
413
|
+
object,
|
|
414
|
+
space,
|
|
415
|
+
resolve,
|
|
416
|
+
disposition: "hidden"
|
|
417
|
+
});
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
}),
|
|
421
|
+
// Create collection actions and action groups.
|
|
422
|
+
createExtension({
|
|
423
|
+
id: `${meta.id}/object-actions`,
|
|
424
|
+
actions: (node) => {
|
|
425
|
+
let query;
|
|
426
|
+
return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
|
|
427
|
+
const space = getSpace(node2.data);
|
|
428
|
+
return space && Obj.isObject(node2.data) ? Option.some({
|
|
429
|
+
space,
|
|
430
|
+
object: node2.data
|
|
431
|
+
}) : Option.none();
|
|
432
|
+
}), Option.flatMap(({ space, object }) => {
|
|
433
|
+
const isSchema = Obj.instanceOf(DataType.StoredSchema, object);
|
|
434
|
+
if (!query && isSchema) {
|
|
435
|
+
query = space.db.query(Filter.type(DataType.View));
|
|
436
|
+
}
|
|
437
|
+
let deletable = !isSchema && // Don't allow the Records smart collection to be deleted.
|
|
438
|
+
!(Obj.instanceOf(DataType.QueryCollection, object) && typenameFromQuery(object.query) === DataType.StoredSchema.typename);
|
|
439
|
+
if (isSchema && query) {
|
|
440
|
+
const views = get(rxFromQuery(query));
|
|
441
|
+
const filteredViews = get(rxFromSignal(() => views.filter((view) => typenameFromQuery(view.query.ast) === object.typename)));
|
|
442
|
+
deletable = filteredViews.length === 0;
|
|
443
|
+
}
|
|
444
|
+
const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
|
|
445
|
+
const [appGraph] = get(context.capabilities(Capabilities.AppGraph));
|
|
446
|
+
const [state] = get(context.capabilities(SpaceCapabilities.State));
|
|
447
|
+
const objectForms = get(context.capabilities(SpaceCapabilities.ObjectForm));
|
|
448
|
+
if (!dispatcher || !appGraph || !state) {
|
|
449
|
+
return Option.none();
|
|
450
|
+
} else {
|
|
451
|
+
return Option.some({
|
|
452
|
+
object,
|
|
453
|
+
graph: appGraph.graph,
|
|
454
|
+
dispatch: dispatcher.dispatchPromise,
|
|
455
|
+
objectForms,
|
|
456
|
+
deletable,
|
|
457
|
+
navigable: get(rxFromSignal(() => state.navigableCollections))
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
}), Option.map((params) => constructObjectActions(params)), Option.getOrElse(() => [])));
|
|
461
|
+
}
|
|
462
|
+
}),
|
|
463
|
+
// View selected objects.
|
|
464
|
+
createExtension({
|
|
465
|
+
id: `${meta.id}/selected-objects`,
|
|
466
|
+
connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.View, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
467
|
+
{
|
|
468
|
+
id: [
|
|
469
|
+
node2.id,
|
|
470
|
+
"selected-objects"
|
|
471
|
+
].join(ATTENDABLE_PATH_SEPARATOR),
|
|
472
|
+
type: PLANK_COMPANION_TYPE,
|
|
473
|
+
data: "selected-objects",
|
|
474
|
+
properties: {
|
|
475
|
+
label: [
|
|
476
|
+
"companion selected objects label",
|
|
477
|
+
{
|
|
478
|
+
ns: meta.id
|
|
479
|
+
}
|
|
480
|
+
],
|
|
481
|
+
icon: "ph--tree-view--regular",
|
|
482
|
+
disposition: "hidden"
|
|
483
|
+
}
|
|
330
484
|
}
|
|
331
|
-
|
|
485
|
+
]), Option.getOrElse(() => [])))
|
|
332
486
|
}),
|
|
333
487
|
// Object settings plank companion.
|
|
334
488
|
createExtension({
|
|
335
|
-
id: `${
|
|
489
|
+
id: `${meta.id}/settings`,
|
|
336
490
|
connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.isObject(node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
|
|
337
491
|
{
|
|
338
492
|
id: [
|
|
@@ -345,7 +499,7 @@ var app_graph_builder_default = (context) => {
|
|
|
345
499
|
label: [
|
|
346
500
|
"object settings label",
|
|
347
501
|
{
|
|
348
|
-
ns:
|
|
502
|
+
ns: meta.id
|
|
349
503
|
}
|
|
350
504
|
],
|
|
351
505
|
icon: "ph--sliders--regular",
|
|
@@ -356,8 +510,8 @@ var app_graph_builder_default = (context) => {
|
|
|
356
510
|
]), Option.getOrElse(() => [])))
|
|
357
511
|
})
|
|
358
512
|
]);
|
|
359
|
-
};
|
|
513
|
+
});
|
|
360
514
|
export {
|
|
361
515
|
app_graph_builder_default as default
|
|
362
516
|
};
|
|
363
|
-
//# sourceMappingURL=app-graph-builder-
|
|
517
|
+
//# sourceMappingURL=app-graph-builder-W7RVDAUA.mjs.map
|